map odom base_link和laser坐标系

转载:http://blog.sina.com.cn/s/blog_8a2281f70102xwc0.html

1. 前提:

       本文讨论的是在已有地图的情况下,进行导航的情形。

 

2. 坐标系出现的原因:

       为了实现机器人在环境中的自主定位而设定的。要让机器人实现自主定位,机器人就需要有一个先验的地图,可以经过前期使用slam_gmapping功能实现。

 

3. map坐标系:

       有了地图,如何表达自己的位置你呢?在创建地图之后,会根据地图设置了一个map坐标系,其位置一般在与地图相匹配的配置文件yaml中的origin项指定。origin制定了像素左下一个像素点在map坐标系下的坐标,所以给出这个值后,map坐标系的位置也就确定了。

       在构建地图时,机器人构建地图的起点位置就是map坐标系的位置。在导航节点,当加载地图时,map坐标系就确定了,其实是包含的地图属性中的,例如上面所说的origin属性。

       map坐标系一旦固定,就不会再变。

 

4. base_link坐标系:

       base_link坐标系是用于表示机器人本身位姿的坐标系,其始终与机器人本体保持一致。机器人的定位问题最本质的就是求出base_link在map坐标系下的坐标和姿态。

 

5. odom坐标系:

       由于器件、结构等方面的原因,通过运动反馈获得的里程信息会出现误差累计的问题,为消除累计误差,引入了odom坐标系。

       运动反馈一直更新的是odom-->base_link,即base_link在odom坐标系下的坐标,至于误差累计则是通过定位模块amcl纠正,也就是修改map-->odom,odom在map坐标系下的坐标,以此达到消除累计误差。

 

6. amcl定位模块:

       amcl使用粒子算法,通过激光点与地图匹配,首先求出map-->laser,laser在map下的位姿,然后根据已知的base_link-->laser,odom--> base_link,计算出map-->odom。

你可能感兴趣的:(AI)