ROS中odom、map坐标系的理解

学ROS大半年了,之前一直没搞明白odom和map,今天重新查资料看博客加自己思考才真正理解了。深深怀疑自己的理解能力。。。

此处参考了https://blog.csdn.net/flyinsilence/article/details/51854123,博主的解释一开始我还是没太看明白,看了好几遍才看懂,懂了之后才发现人家写的真的是言简意赅啊!

我就详细的把自己的理解以及想到的例子写出来,万一有人也是不太明白这个呢。

举个栗子

比如说我现在算出来了一个一维的坐标X=10(odom-->base_link),但是这个位置的真实坐标应该是X'=2(map-->base_link),也就是说我计算的坐标和真实坐标出现了偏差。但是ROS在说的时候换了个说法,不说计算出来的坐标在map中漂了8,而是说是odom坐标系相对于map坐标系漂了8。所以此时base_link相对odom坐标是真实坐标x=2(因为odom坐标系短时间是准确的,如果是刚开始时odom和map重合,odom中的该坐标就是真实坐标);odom相对于map坐标是driftX=8(map-->odom);最后计算出来的base_link相对于map的坐标就是X=drixfX+X'=10了。

如果用IMU作积分的话,通过IMU获得的是odom坐标系下的坐标,初始时odom和map重合,都为0。那么短时间内,由于IMU的漂移很小,所以获得的位移deltaX是准确的,最终的在odom坐标系下的坐标是X=dextaX,在map中的坐标X'也是deltaX。但是时间长了之后,IMU积分开始产生漂移driftX了,最终在map下的坐标X=deltaX+driftX。由于我们定义IMU在短时间内产的的位移deltaX是准确的,所以deltaX是就是IMU在odom坐标系下的真实位移,但是此时odom相对于map则漂移了driftX。

 

所以odom相当于是根据实际计算得到的坐标和真实坐标之间的变换虚拟出来的一个坐标系。

 

Relationship between Frames

The map frame is the parent of odom, and odom is the parent of base_link. Although intuition would say that both map and odom should be attached to base_link, this is not allowed because each frame can only have one parent.

(尽管直觉上map和odom都应该和base_link连接,但是这是不行的,由于每个坐标系只能有一个父坐标系)

  • 55
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值