ros:坐标系

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qit1314/article/details/83833950

ros中的坐标系,主要包括:
map,odom,base_link(base_footprint) 以及如laser,camera等传感器的坐标系;
这些坐标系间的关系可以用下图表示:

在这里插入图片描述

这是一个有向图,图中涉及四个坐标系,分别为map,odom,base_link和laser。
箭头分别表示从父节点到子节点的变换,所以这里注意在写变换矩阵的时候,是先平移,后旋转,并且是按照动轴的方式(矩阵右乘)定义的变换矩阵,这种方式的好处就是直观,可以想着怎么把父节点,一步一步地变换为子节点的姿态。

odom到base_link的变换是由里程计获得的;
map到laser的变换是由定位模块给出,例如,可以通过扫描匹配给定;
base_link到laser是我们自己定义的激光传感器在机器人中的安装位置;

我们注意到,这个图是存在环的,也就是有两条路径都可以从map到laser,并且里程计是存在漂移的,所以两条路径存在误差,我们下面可以采用图优化的方式…,不对,这里不是slam…

既然odom到base_link,map到laser,base_link到laser是确定的,那么我们就把误差传递给map到odom就好了!

所以,我们有时候会看到,刚开始的时候map和odom坐标系是重合的,跑着跑着map和odom就不重合了,因为这里把map到odom的变换定义为误差项了!

猜你喜欢

转载自blog.csdn.net/qit1314/article/details/83833950