slam中变换矩阵的逆推导

在SLAM(Simultaneous Localization And Mapping,同时定位与建图)中,变换矩阵通常用来描述一个坐标系相对于另一个坐标系的位置和姿态变化。这类矩阵通常包括旋转部分和平移部分,可以表示为齐次坐标下的4x4矩阵形式:

T = [ R t 0 T 1 ] \mathbf{T} = \begin{bmatrix} \mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1 \end{bmatrix} T=[R0Tt1]

其中:

  • R \mathbf{R} R 是一个3x3的正交旋转矩阵,表示坐标系之间的旋转关系;
  • t \mathbf{t} t 是一个3x1的列向量,表示坐标系之间的平移向量;
  • 0 \mathbf{0} 0 是一个3x1的零向量,确保矩阵乘法规则下平移部分正确应用;
  • 1 1 1 是齐次坐标系中的标量分量,保证齐次坐标的性质。

变换矩阵的逆 T − 1 \mathbf{T}^{-1} T1 表示从目标坐标系回到原坐标系的变换,它用来对坐标进行逆向映射。对于上述形式的变换矩阵,其逆矩阵可以通过以下方式计算:

T − 1 = [ R T − R T t 0 T 1 ] \mathbf{T}^{-1} = \begin{bmatrix} \mathbf{R}^T & -\mathbf{R}^T \mathbf{t} \\ \mathbf{0}^T & 1 \end{bmatrix} T1=[RT0TRTt1]

这里:

  • R T \mathbf{R}^T RT 是旋转矩阵 R \mathbf{R} R 的转置,也是其逆矩阵,因为正交旋转矩阵满足 R T = R − 1 \mathbf{R}^T = \mathbf{R}^{-1} RT=R1
  • − R T t -\mathbf{R}^T \mathbf{t} RTt 是将平移向量按照旋转矩阵的逆方向进行反向平移。

推导过程如下:

要求 T − 1 \mathbf{T}^{-1} T1 使得 T ⋅ T − 1 = I \mathbf{T} \cdot \mathbf{T}^{-1} = \mathbf{I} TT1=I,其中 I \mathbf{I} I 是单位矩阵。展开得到:

[ R t 0 T 1 ] ⋅ [ A b c T d ] = [ I 3 0 0 T 1 ] \begin{bmatrix} \mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1 \end{bmatrix} \cdot \begin{bmatrix} \mathbf{A} & \mathbf{b} \\ \mathbf{c}^T & d \end{bmatrix} = \begin{bmatrix} \mathbf{I}_3 & \mathbf{0} \\ \mathbf{0}^T & 1 \end{bmatrix} [R0Tt1][AcTbd]=[I30T01]

分别对应元素相乘并利用矩阵乘法的规则,可以得出:

  1. 对于旋转和平移部分的乘积应为单位矩阵,即 R A = I 3 \mathbf{RA} = \mathbf{I}_3 RA=I3,且 R b + t = 0 \mathbf{Rb} + \mathbf{t} = \mathbf{0} Rb+t=0。这表明 A = R T \mathbf{A} = \mathbf{R}^T A=RT(旋转矩阵的逆就是其转置),且 b = − R T t \mathbf{b} = -\mathbf{R}^T \mathbf{t} b=RTt(反向平移)。

  2. 对于底部的齐次坐标,有 0 T A = 0 T \mathbf{0}^T \mathbf{A} = \mathbf{0}^T 0TA=0T 0 T b + c = 0 \mathbf{0}^T \mathbf{b} + c = 0 0Tb+c=0。由于 A = R T \mathbf{A} = \mathbf{R}^T A=RT 是一个3x3的旋转矩阵,其最后一列不会影响 0 T A \mathbf{0}^T \mathbf{A} 0TA 的结果。而 0 T b \mathbf{0}^T \mathbf{b} 0Tb 无论如何都为零,因此 c c c 可以是任意值。但在齐次坐标下,通常选择 c = 0 c = 0 c=0 以保持简洁。

  3. 最后,对于右下角的标量乘积,有 d ⋅ 1 = 1 d \cdot 1 = 1 d1=1,这意味着 d = 1 d = 1 d=1

综上所述,变换矩阵 T \mathbf{T} T 的逆 T − 1 \mathbf{T}^{-1} T1 可以明确地表示为:

T − 1 = [ R T − R T t 0 T 1 ] \mathbf{T}^{-1} = \begin{bmatrix} \mathbf{R}^T & -\mathbf{R}^T \mathbf{t} \\ \mathbf{0}^T & 1 \end{bmatrix} T1=[RT0TRTt1]

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值