SLAM位姿变换关系总结

本文详细探讨了三维坐标变换,包括从0帧到k帧的坐标转换,以及相邻帧之间的变换关系。通过旋转矩阵和平移向量解释了如何在不同帧间转换点的位置。同时,介绍了场景流的概念,推导了点速度和物体速度的公式,强调了旋转和平移在计算物体运动中的作用。内容适用于理解SLAM和动态场景分析。
摘要由CSDN通过智能技术生成

目录

1.坐标变换

1.1已知k帧坐标

1.2已知0帧坐标

2.临帧变换

2.1临帧的相对变换关系

2.2临帧的变换关系(基于全局帧)

2.3临近两帧点关系

3.速度公式推导(场景流)

3.1点速度

3.2物体速度


图片来源:Dynamic SLAM: The Need For Speed

说明:

        左上标是参考帧,右下标是帧的时刻,左下标是变换之前的时刻帧。l左上标i是点

        H是相对于自身怎么去变化,L是相对于0帧(全局帧)怎么变化,l是点

1.坐标变换

将0帧中的坐标点与当前帧k中的坐标点互相转换

基础理论知识:

其中_B^AR是指B相对于A的旋转,^AP_{B_0}是指A坐标系到B坐标系的平移向量,可以看作两个坐标系原点连线形成的向量。

结论:已知B坐标中的点,求该点在A坐标中的坐标。则B坐标乘以A->B的旋转矩阵,再加上A->B的平移量

1.1已知k帧坐标

^0l_k^i=^0L_k . ^{L_k}l^i

1.2已知0帧坐标

{ }^{L} \bar{l}^{i}={ }^{0} L_{k}^{-10} \bar{l}_{k}^{i}

2.临帧变换

2.1临帧的相对变换关系

{ }_{k-1}^{L_{k-1}} H_{k}=^{0} L_{k-1}^{-1}{ }^{0} L_{k}

{ }_{k-1}^{L_{k-1}} H_{k}代表k-1到k帧的相对变化关系,是相对变换关系,即右乘。

{ }^{0} L_{k}={ }^{0} L_{k-1} \stackrel{L_{k-1}}{k-1} H_{k}

具体推导如下:

2.2临帧的变换关系(基于全局帧)

所以关系等式为:{ }_{k-1}^{0} H_{k}={ }^{0} L_{k-1}{ }_{k-1}^{L_{k-1}} H_{k}{ }^{0} L_{k-1}^{-1}

2.3临近两帧点关系

{ }^{0} \vec{l}_{k}^{i}={ }^{0} L_{k-1}{ }_{k-1}^{L_{k-1}} H_{k}{ }^{0} L_{k-1}^{-1}{ }^{0} \bar{l}_{k-1}^{i}

0 \bar{l}_{k}^{i}={ }_{k-1}^{0} H_{k}^{0} \bar{l}_{k-1}^{i}

物理意义:已知在上一帧的点位置,经过一个旋转平移操作算子到达下一帧位置(全局帧)

3.速度公式推导(场景流)

3.1点速度

设k-1帧和k帧的三维点分别为^0m_{k-1}^i^0m_{k}^i,两帧之间的位姿变化为^0_{k-1}H_k,则场景流可以表示为:

\begin{aligned} \mathbf{v} \approx^{0} \mathbf{m}_{k}^{i}-{ }^{0} \mathbf{m}_{k-1}^{i} &=\left({ }_{k-1}^{0} \mathbf{H}_{k}-\mathbf{I}_{4}\right)^{0} \mathbf{m}_{k-1}^{i} \\ &={ }_{k-1}^{0} \mathbf{t}_{k}-\left(\mathbf{I}_{3}-{ }_{k-1}^{0} \mathbf{R}_{k}\right)^{0} \mathbf{m}_{k-1}^{i} \end{aligned}

其中^0_{t-1}t_k表示由k-1帧到k帧的平移分量,^0_{k-1}R_k代表由k-1帧到k帧的旋转分量

此处需要注意的是对t的理解:t代表的是经过旋转后的两位置之间的位置差,即平移后物体可以重合。左图的经过t平移是无法重合的,而且以不同点得到的物体平移分量是不同的,这也说明了左图方式理解是错误的。

3.2物体速度

一个运动物体可以看作很多点速度的集合,一个刚体的各点的速度是一样的。一个物体的速度可以用质心的速度代替。

\begin{aligned} \mathbf{v} & \approx \frac{1}{n} \sum_{i=1}^{n}\left({ }_{k-1}^{0} \mathbf{t}_{k}-\left(\mathbf{I}_{3}-{ }_{k-1}^{0} \mathbf{R}_{k}\right)^{0} \mathbf{m}_{k-1}^{i}\right) \\ &={ }_{k-1}^{0} \mathbf{t}_{k}-\left(\mathbf{I}_{3}-{ }_{k-1}^{0} \mathbf{R}_{k}\right) \mathbf{c}_{k-1} \end{aligned}

注:要理解公式就要理解公式中各个量代表的意思;

  • ^0_{k-1}t_k代表的是蓝色向量,k-1帧中质点旋转后到k帧质点的向量
  • 其中^0_{k-1}R_kc_{k-1}代表k-1中旋转后的质心(橙色X),(I_3-^0_{k-1}R_k)c_{k-1}代表红色向量,即为旋转后质心指向原质心。
  • 所求的场景流为绿色的向量,代表k-1帧中的质心到k帧质心的连线
  • 需要注意的是,之所以在表示的时候会用物体的方式表达是因为如果只用点来表示这一过程,那么就看不出来旋转矩阵的作用,也就容易把蓝色向量和绿色向量混淆。

参考文献

Dynamic SLAM: The Need For Speed

VDO-SLAM: A Visual Dynamic Object-aware SLAM System

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值