变换矩阵的理解
用于表示同一世界在不同坐标系下的坐标值
为了方便理解, 建议先看 线性代数的本质--基变换
旋转矩阵
这里变换矩阵, 为了方便, 我们先只考虑旋转
\(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}
\]
可以看出来直接只使用齐次矩阵就好, 不用分别考虑旋转和平移