
对于第\(i\)帧parking slot 建模为车位开口两个点\(p_0, p_1\),AVM到body坐标系外参为\(T^b_a\), 对于第\(j\)帧同样看到了此库位。因此可以构建误差函数为:
\[
\mathbf{F} = {q^b_a}^{-1} * \left( \left( {q^w_{b_j}}^{-1} * \left( \left( q^w_{b_i} * \left(q^b_a * p^a_{i_n} + t^b_a\right) + t^w_{b_i} \right) - t^w_{b_j}\right) \right) -t^b_a \right) - p^a_{j_n}
\]
这里AVM观测为2D,先写成3D方便推导。
误差函数对\(t^w_{b_i}, q^w_{b_i}\)的jacobian为:
\[
{\frac{\partial F}{\partial \left[ t^w_{b_i}, q^w_{b_i} \right]}}_{3\times6} = \begin{bmatrix} {q^b_a}^{-1} * {q^w_{b_j}}^{-1} & {q^b_a}^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} * -1 * \left[ q^b_a * p^a_{i_n} + t^b_a \right]_{\times} \end{bmatrix}
\]
关于\(t^w_{b_i}\)部分,去除无关项后为:
\[
{q^b_a}^{-1} * {q^w_{b_j}}^{-1} * t^w_{b_i}
\]
因此:
\[
\frac{\partial \mathbf{F}}{\partial t^w_{b_i}} = {q^b_a}^{-1} * {q^w_{b_j}}^{-1}
\]
关于\(q^w_{b_i}\)部分,去除无关项后为:
\[
{q^b_a}^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} * \left( q^b_a * p^a_{i_n} + t^b_a \right)
\]
因此:
\[
\frac{\partial \mathbf{F}}{\partial q^w_{b_i}} = {q^b_a}^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} * -1 * \left[ q^b_a * p^a_{i_n} + t^b_a \right]_{\times}
\]
误差函数对\(t^w_{b_j}, q^w_{b_j}\)的jacobian为:
\[
{\frac{\partial F}{\partial \left[ t^w_{b_j}, q^w_{b_j} \right]}}_{3\times6} = \begin{bmatrix} -1 * {q^b_a}^{-1} * {q^w_{b_j}}^{-1} & {q^b_a}^{-1} * \left[ {q^w_{b_j}}^{-1} * \left( \left( q^w_{b_i} * \left(q^b_a * p^a_{i_n} + t^b_a\right) + t^w_{b_i} \right) - t^w_{b_j}\right) \right]_{\times} \end{bmatrix}
\]
误差函数对\(t^b_a, q^b_a\)的jacobian为:
\[
{\frac{\partial F}{\partial \left[ t^b_a, q^b_a \right]}}_{3\times6} = \begin{bmatrix}
{q^b_a}^{-1} * \left( {q^w_{b_j}}^{-1} * q^w_{b_i} - I\right) \quad
-A \left[p^a_{i_n}\right]_{\times} + \left[ A p^a_{i_n} \right]_{\times}
+ \left[ {q^b_a}^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} * q^b_a * p^a_{i_n} \right]_{\times}
\end{bmatrix}
\]
关于\(t^b_a\)部分,去除无关项后,导数为变量前的系数:
\[
\frac{\partial \mathbf{F}}{\partial t^b_a} = {q^b_a}^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} - {q^b_c}^{-1} = {q^b_a}^{-1} * \left( {q^w_{b_j}}^{-1} * q^w_{b_i} - I\right)
\]
关于\(q^b_a\)部分, 去除无关项后为:
\[
{q^b_a}^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} * q^b_a * p^a_{i_n} +
{q^b_a}^{-1} * \left( {q^w_{b_j}}^{-1} * \left( \left( \left( q^w_{b_i} * t^b_c + t^w_{b_i} \right) - t^w_{b_j} \right) -t^b_c \right) \right)
\]
根据导数加法法则分成两个部分:
\[
(f(x) + g(x))^{'} = {f^{'}}(x) + {g^{'}}(x)
\]
第一部分:
令:
\[
A = {q^b_a}^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} * q^b_a
\]
右乘微小量李代数得:
\[
{\left[q^b_a * exp(\theta^{\wedge}) \right] }^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} * \left[q^b_a * exp(\theta^{\wedge}) \right] * p^a_{i_n} \\ = (I- \theta^{\wedge}) * A * (I + \theta^{\wedge}) \\ = A + A \theta^{\wedge} - \theta^{\wedge} A - \theta^{\wedge} A \theta^{\wedge} \\
\approx A + A \theta^{\wedge} - \theta^{\wedge} A
\]
其中:
\[
\theta^{\wedge} A \theta^{\wedge}
\]
为二阶无穷小,可省略。
则导数为:
\[
\begin{aligned}
{\frac{\partial \mathbf{F}}{\partial q^b_a}}_1 &= \lim_{\delta \theta^b_c \rightarrow 0} \frac{ \left( A + A \theta^{\wedge} - \theta^{\wedge} A \right) * p^a_{i_n} - A p^a_{i_n} }{\delta \theta^b_c} \\
&= \frac{\left( A\theta^{\wedge} - \theta^{\wedge} A \right) p^a_{i_n}}{\delta \theta^b_c} \\
&= -A \left[p^a_{i_n}\right]_{\times} + \left[ A p^a_{i_n} \right]_{\times}
\end{aligned}
\]
第二部分:
\[
{\frac{\partial \mathbf{F}}{\partial q^b_a}}_2 = \left[ {q^b_a}^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} * q^b_a * p^a_{i_n} \right]_{\times}
\]
误差函数对\(p^a_{i_n}\)的jacobian为:
令3D到2D降维矩阵为:
\[
reduce_{3\times2} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 0 \end{bmatrix}
\]
\[
{\frac{\partial F}{\partial \left[ p^a_{i_n} \right]}}_{3\times2} = \begin{bmatrix} {q^b_a}^{-1} * {q^w_{b_j}}^{-1} * q^w_{b_i} * q^b_a * reduce \end{bmatrix}
\]
Demo

Reference
[0]