1.概念
搞ros都离不开tf,当建立一个机器人模型时,第一步就是要确定机器人的tf结构。
以kobuki导航运行为例,首先是
map:地图坐标,固定坐标系
odom : 机器人初始位置坐标,固定坐标系
base_link:机器人中心位置坐标
一般想法认为有map和base_link就可以了,而从网上的各种资料看来,多出来的odom是因为:在机器人导航运行过程中会出现视觉定位偏差,里程计误差积累等等问题,当算法纠正这些偏差时,base_link会出现机器人中心的位置在map坐标系上不连续,发生跳跃,而有了odom,不管算法如何纠正,base_link相对于odom是连续的,不会发生太大跳跃,从而对导航/定位过程中的雷达扫描收敛,设置区间速度等等方面不会发生突变。
参考链接:
http://www.ros.org/reps/rep-0105.html
https://answers.ros.org/question/44584/frames-definition-odom-and-map/
2.tf代码运用
熟悉以下几个方法的运用就可以了。
广播:sendTransform
#include <tf/transform_broadcaster.h>
tf::TransformBroadcaster broadcaster;
broadcaster.sendTransform(
tf::StampedTransform(t