Add equations for landmark cost function. (#1254)
parent
1b88fb8e90
commit
30bc6bd97a
|
@ -20,13 +20,13 @@ Relative Transform Error 2D
|
|||
===========================
|
||||
|
||||
Given two poses
|
||||
:math:`\mathbf{p_i} = [\mathbf{x_i}; \theta_i] = [x_i, y_i, \theta_i]^T`
|
||||
and :math:`\mathbf{p_j} = [\mathbf{x_j}; \theta_j] = [x_j, y_j, \theta_j]^T`
|
||||
:math:`\mathbf{p}_i = [\mathbf{x}_i; \theta_i] = [x_i, y_i, \theta_i]^T`
|
||||
and :math:`\mathbf{p}_j = [\mathbf{x}_j; \theta_j] = [x_j, y_j, \theta_j]^T`
|
||||
the transformation :math:`\mathbf T` from the coordinate frame :math:`j` to the
|
||||
coordinate frame :math:`i` has the following form
|
||||
|
||||
.. math::
|
||||
\mathbf{T}( \mathbf{p_i},\mathbf{p_j}) =
|
||||
\mathbf{T}( \mathbf{p}_i,\mathbf{p}_j) =
|
||||
\left[
|
||||
\begin{array}{c}
|
||||
R(\theta_i)^T (\mathbf x_j - \mathbf x_i) \\
|
||||
|
@ -42,12 +42,12 @@ The weighted error :math:`f:\mathbb R^6 \mapsto \mathbb R^3` between
|
|||
coordinate frame :math:`i` can be computed as
|
||||
|
||||
.. math::
|
||||
\mathbf f( \mathbf{p_i},\mathbf{p_j}) =
|
||||
\mathbf f_{\text{relative}}( \mathbf{p}_i,\mathbf{p}_j) =
|
||||
\left[
|
||||
w_{\text{t}} \; w_{\text{r}}
|
||||
\right]
|
||||
\left(
|
||||
\mathbf T_{ij}^m - \mathbf T( \mathbf{p_i},\mathbf{p_j})
|
||||
\mathbf T_{ij}^m - \mathbf T( \mathbf{p}_i,\mathbf{p}_j)
|
||||
\right) =
|
||||
\left[
|
||||
\begin{array}{c}
|
||||
|
@ -68,7 +68,7 @@ Jacobian matrix :math:`J_f` is given by:
|
|||
|
||||
.. math::
|
||||
\begin{align}
|
||||
J_f( \mathbf{p_i},\mathbf{p_j}) &=
|
||||
J_f( \mathbf{p}_i,\mathbf{p}_j) &=
|
||||
\left[
|
||||
\frac{\partial\mathbf f}{\partial x_i} \quad
|
||||
\frac{\partial\mathbf f}{\partial y_i} \quad
|
||||
|
@ -92,3 +92,39 @@ Jacobian matrix :math:`J_f` is given by:
|
|||
\end{array}
|
||||
\right]
|
||||
\end{align}
|
||||
|
||||
Landmark Cost Function
|
||||
======================
|
||||
|
||||
Let :math:`\mathbf{p}_o` denote the global pose of the SLAM tracking frame at
|
||||
which a landmark with the global pose :math:`\mathbf{p}_l` is observed.
|
||||
The landmark observation itself is the measured transformation
|
||||
:math:`\mathbf{T}^m_{ol}` that was observed at time :math:`t_o`.
|
||||
|
||||
As the landmark can be observed asynchronously, the pose of observation
|
||||
:math:`\mathbf{p}_o` is modeled in between two regular, consecutive trajectory
|
||||
nodes :math:`\mathbf{p}_i, \mathbf{p}_j`.
|
||||
It is interpolated between :math:`\mathbf{p}_i` and
|
||||
:math:`\mathbf{p}_j` at the observation time :math:`t_o` using a linear
|
||||
interpolation for the translation and a quaternion SLERP for the rotation:
|
||||
|
||||
.. math::
|
||||
\mathbf{p}_o = \text{interpolate}(\mathbf{p}_i, \mathbf{p}_j, t_o)
|
||||
|
||||
Then, the full weighted landmark cost function can be written as:
|
||||
|
||||
.. math::
|
||||
\begin{align}
|
||||
\mathbf f_{\text{landmark}}(\mathbf{p}_l, \mathbf{p}_i, \mathbf{p}_j) &=
|
||||
\mathbf f_{\text{relative}}(\mathbf{p}_l, \mathbf{p}_o) \\
|
||||
&=
|
||||
\left[
|
||||
w_{\text{t}} \; w_{\text{r}}
|
||||
\right]
|
||||
\left(
|
||||
\mathbf T_{ol}^m - \mathbf T( \mathbf{p}_o,\mathbf{p}_l)
|
||||
\right)
|
||||
\end{align}
|
||||
|
||||
The translation and rotation weights :math:`w_{\text{t}}, w_{\text{r}}` are
|
||||
part of the landmark observation data that is fed into Cartographer.
|
||||
|
|
Loading…
Reference in New Issue