关于ROS中map、odom、base_link三个坐标系的理解

参考古月居的map,odom,base_link,base_laser坐标系和
ROS中map、odom、base_link坐标系的理解和这三个坐标系在AMCL中的关系

在这里我用自己的话总结一下:

  1. map与odom在起始时是重合的,建图时,一般以初始的odom作为map
  2. 关键在于odom-base_link、map-base_link、map-odom 这三者间的关系
  • 首先 odom-base_link 这个是由SLAM中的前端计算得到的,可以是视觉里程计、雷达里程计、编码器里程计、IMU里程计等方式获得的
  • 其次到了 map-base_link ,这个是由全局定位,例如AMCL获得的,在ORB或者LOAM系列中,这个全局定位是由后端经过优化获得
  • 最后到了 map-odom ,在这里把 map-base_link 的 tf 当作真值,而 odom-base_link 的 tf’ 存在累计误差,那么就获得了 map-odom 的 TF = tf - tf’ ,前端计算没有误差的话这个TF=0
  • 反正这个odom坐标系就可以理解为是一个为了看前端计算误差搞出来的虚拟坐标系,毕竟我们的惯性思维都是点在地图中哪个位置,当odom在抖动时也证明前端计算的位姿在抖动

在ROS中坐标系间的发布关系如下
在这里插入图片描述

odom到base_link的转换是由里程计源计算和发布的。然而,定位模块不发布map到base_link的转换(transform)。相反,定位模块先接收odom到base_link的transform,并使用这个信息发布map到odom的transform。

你可能感兴趣的:(算法,c++,自动驾驶)