ros tf 坐标系:base_link odom map base_laser理解

1 前言

ros机器人系统里面,往往存在着多个坐标系系统,这些坐标系系统有着约定俗成的命名规范,便于机器人开发人员更好的理解代码,这里进行总结一下各个坐标系的含义。

关键注意的是odom坐标系,最容易理解错

2 各个坐标系

base_link坐标系

base_link是机器人本体坐标系,以底座中心为原点(一般为机器人的旋转中心)。

跟随robot一起运动,robot身上的任何零件都是以该坐标系为母参考系。

odom坐标系

odom的坐标系是固定世界坐标系,但是odom坐标系会随时间推移而漂移,与map坐标系不同。

这种漂移使odom坐标系无法用作长期的全局参考。但是,可以确保机器人的位姿在 odom坐标系中是连续的,这意味着odom坐标系中的机器人的位姿始终以连续平稳的方式变化,而不会出现离散的跳跃,这一点与map坐标系不同。

一般的,里程计坐标系的数据来源于车轮里程计,视觉里程计或惯性测量单元,以此来计算机器人在里程计坐标系下面的位姿。

里程计坐标系下的机器人位姿可以作为一个短期的参考,但漂移的存在使其不能作为全局的参考。

map坐标系

map坐标系是固定的世界坐标系,其Z轴指向上方。

在map坐标系下,不应存在漂移,但是机器人在map坐标系下面的位姿可能会有离散的变化,因为机器人在map坐标系下面的位姿可能因为回环检测而较大幅度的修改。

一般的,定位模块会根据传感器的观测值不断地重新计算map坐标系中的机器人姿态,从而消除漂移,但是此时可能会引起离散的跳跃。

map坐标系是一个长期的全局定位参考,但在位置估计存在离散跳跃,使其不能作为局部的短期位置参考。

base_laser坐标系

激光坐标系,以base_link作为母坐标系,是激光相对于底座中心的坐标系,其与base_link之间的转换关系是固定的

3 补充说明

odom坐标系和odom topic之间的区别

odom里程计坐标系,这里要区分开和odom topic的区别,这是两个概念。

前者是一个坐标系,后者是一个根据编码器(或者视觉等)计算的里程计。

但是两者也有关系,odom topic 转化得位姿矩阵是odom–>base_link的tf关系。

odom坐标系和map坐标系之间的区别

在机器人刚开始运动的时候,odom和map坐标系是重合的。

但是,随着时间的推移是不重合的,而出现的偏差就是里程计的累积误差

那map–>odom的tf转换关系是怎么得到的?

就是在一些校正传感器合作校正的package比如amcl会给出一个位置估计(localization),这可以得到map–>base_link的tf,所以估计位置和里程计位置的偏差也就是odom与map的坐标系偏差。所以,如果你的odom计算没有错误,那么map–>odom的tf就是0

4 参考链接

  1. https://www.ros.org/reps/rep-0105.html
  2. http://www.jeepxie.net/article/102952.html

你可能感兴趣的:(ROS,tf,ros,坐标转换)