ros中常见各坐标系之间衔接关系

在ros中,不论是建图还是导航,在机器人行走过程中,都需要知道机器人在map中的位置,以及机器人上的传感器与机器人之间的坐标关系。以下是常见的坐标衔接模式:
map–>odom–>base_link(base_footprint) // 通过里程计原点在map中的坐标和机器人在里程计里的坐标得到机器人在map中的坐标
base_link–>sensors // 定义一系列的传感器与器件和机器人中心的关系

通过以上这些坐标之间的关系,可以构建一个完成的机器人相关的坐标系统。

但是有些时候,底盘上的传感器相对于底盘的位置可能会不同于预定义好的转换关系,这时就需要使用static_transform_publisher 来定义它们之间的关系。
使用方法如下:

"tf" type="static_transform_publisher" name="base_to_laser" args="0.0 0.0 0.0 -1.57 0.0 -1.57 base_link laser 200"/>   // 6个数字代表x,y,z,yaw,pitch,roll 中间两个表示两个坐标系 200代表1秒发布200次

这样使用的功能如下:laser发布的数据的头文件中有个frame_id属性,说明的是这个scan数据是在哪个坐标系的,scan数据的坐标中心为frame_id的中心,我们需要将这些数据转换到底盘中心,所以需要坐标转换。在实际应用中一定要注意转换好传感器与底盘中心的位置关系

你可能感兴趣的:(ROS,机器人)