odom坐标系的理解

ROS中基本坐标系的理解:map,odom,base_link,base_laster

在这里插入图片描述

1.map

地图坐标系,顾名思义,一般设该坐标系为固定坐标系,一般与机器人所在的世界坐标是重合的。

2.base_link

机器人本体坐标系,与机器人中心重合,当然有些机器人是base_footprint。

3.odom

里程计坐标系,这里主要区分odom topic,这是两个概念,一个是坐标系,一个是根据编码里程计计算得到的里程计信息。但是两者也有关系,odom topic转化得到的位姿矩阵是odom->base_link的tf关系。这时可能会有疑问:

①位姿矩阵得到的不应该是map->base_link的tf关系吗?
②map坐标系与odom坐标系又有什么关系?

其实机器人刚开始运动时,odom坐标系与map坐标系是重合的,即odom->base_link与map->base_link的tf是一致的。
但是随着时间的推移,出现了偏差,出现的偏差也就是里程计的累计误差,如果里程计精确度很高,没有计算误差,那么map坐标系与odom坐标系会一直是重合的

然而实际情况中,里程计是有偏差的,所以我们计算里程计得到的位姿矩阵是odom->base_link,与map->base_link还是有偏差的。

③那么map->odom的tf是怎么得到的呢?

除去里程计还有一些合作校正的传感器例如imu,这些传感器可以估计出机器人在地图中的位置也就是map->base_link的tf,我们估计机器人在地图中的位置和解算里程计得到的位置的偏差也就是map->odom的tf。

4.base_laser

激光雷达坐标系,与激光雷达的安装点有关,它与base_link的tf是固定的。

小结

最近在看tf的相关知识,后面会抽空总结一点,大家一起加油一起冲,周末愉快!

  • 14
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要将odom里程计坐标系绕Z轴旋转180度,可以使用ROS中的tf包来实现。具体的步骤如下: 1. 在RViz中打开机器人模型,选中odom坐标系,并在Fixed Frame中选择odom坐标系。 2. 在终端中输入以下命令,启动tf转换节点: ``` rosrun tf2_ros static_transform_publisher 0 0 0 0 0 0 odom base_link 1000 ``` 这条命令的作用是发布一个静态的坐标系变换,将odom坐标系与base_link坐标系进行关联,并且将两个坐标系的初始变换矩阵都设置为单位矩阵。 3. 在终端中输入以下命令,启动tf查看节点: ``` rosrun tf view_frames ``` 这条命令的作用是查看当前ROS系统中的所有坐标系,并生成一个PDF文件,保存在/home/username/.ros/frame.pdf。 4. 在终端中输入以下命令,打开PDF文件: ``` evince /home/username/.ros/frame.pdf ``` 这条命令的作用是打开PDF文件,查看当前ROS系统中的所有坐标系之间的变换关系。 5. 在PDF文件中找到odom坐标系和base_link坐标系之间的变换关系,并记录下两个坐标系的旋转角度(绕Z轴的旋转角度为180度)。 6. 修改第二步中的命令,将旋转角度改为180度,并重新运行该命令。 ``` rosrun tf2_ros static_transform_publisher 0 0 0 0 0 3.14159 odom base_link 1000 ``` 这条命令的作用是重新发布坐标系变换,将odom坐标系绕Z轴旋转180度。 7. 在RViz中查看机器人模型,检查odom坐标系和base_link坐标系之间的变换关系是否正确。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值