变换矩阵的理解

用于表示同一世界在不同坐标系下的坐标值

为了方便理解, 建议先看 线性代数的本质--基变换

旋转矩阵

这里变换矩阵, 为了方便, 我们先只考虑旋转

\(R^{imu}_{global}\) 的列向量是imu坐标系的基向量在global坐标系下的坐标表示, 将imu坐标系下的坐标与R相乘, 得到同一个点在global坐标系下的坐标表示, 记住这是同一个点, 只是在不同坐标系下的表示不同而已

\[\bf{Coord}_{global} = R^{imu}_{global} X_{imu} \]

那么, 将global坐标系下的坐标表示转化为imu坐标系下的坐标表示, 只需要对变换矩阵求逆

\[\bf{Coord}_{imu} = {R^{imu}_{global}}^{-1} X_{global} \]

\({R^{imu}_{global}}^{-1}\) 的含义就是 \(R_{imu}^{global}\), 即global坐标系到imu坐标系的转化

平移向量

\[P = R^{imu}_{global}Q + t \Rightarrow Q = {R^{imu}_{global}}^{-1}P + {R^{imu}_{global}}^{-1} (-t) \]

平移向量t 表示的是在global坐标系下, 从global坐标系原点指向imu坐标系原点的向量
平移向量\({R^{imu}_{global}}^{-1} (-t)\) 表示的是在imu坐标系下, 从imu坐标系原点指向global坐标系原点的向量(注意是-t)

齐次变换矩阵

如果imu1的位姿是T1, imu2的位姿是T2

\[T^{imu1}_{imu2} = {T^{imu2}_{global}}^{-1}T^{imu1}_{global} \]

\[T^{imu1}_{imu2} = T_2^{-1}T_1 = \begin{bmatrix} R_2^{-1} & -R_2^{-1}t_2 \\ 0&1 \end{bmatrix} \begin{bmatrix} R_1 & t_1 \\ 0&1 \end{bmatrix} = \begin{bmatrix} R_2^{-1}R_1 & -R_2^{-1}(t_1 - t_2) \\ 0&1 \end{bmatrix} \]

可以看出来直接只使用齐次矩阵就好, 不用分别考虑旋转和平移

用于表示同一坐标系下的的运动

\(P_0, P_1, P_2\) 是同一坐标系下三个不同的点

\[P_1 = R_1P_0 + t_1 \]

\[P_2 = R_2P_0 + t_2 \]

\[P_2 = \Delta{R}P_1 + \Delta{t} \]

\[\Delta{R} = R_2R_1^{-1}, \quad \Delta{t}=t_2 - R_2R_1^{-1}t_1 \]

齐次变换矩阵

\[P_1 = T_1P_0 \]

\[P_2 = T_2P_0 \]

\[P_2 = \Delta{T}P_1 \]

\[\Delta{T}=T_2T_1^{-1} = \begin{bmatrix} R_2 & t_2 \\ 0&1 \end{bmatrix} \begin{bmatrix} R_1^{-1} & -R_1^{-1}t_1 \\ 0&1 \end{bmatrix} = \begin{bmatrix} R_2R_1^{-1} & t_2 - R_2R_1^{-1}t_1 \\ 0&1 \end{bmatrix} \]

可以看出来直接只使用齐次矩阵就好, 不用分别考虑旋转和平移

posted @ 2024-04-20 21:26  nowgood  阅读(13)  评论(0编辑  收藏  举报