关于turtlebot 中tf tree的理解

首先使turtlebot在导航模式下运行

rosrun rqt_tf_tree rqt_tf_tree
得到




(⊙﹏⊙)b图有点大


主要来讲turtlebot 有四个重要的tf坐标系, map,odom, base_footprint, base_link.

map的原点一般是刚开始建图时的地点,当然也可以在yaml里面修改原点坐标

在map的配置文件里

image: 
resolution: 0.050000
origin: [-1.4500000, 3.3600000, 0.000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

第一个为静态地图的路径,第二个为像素与坐标之间的倍数关系,第三个为map原点的坐标,,这个坐标体系并不在tf tree里,,只是让ros在图片里找到原点而已

def get_origin(x=0.0, y=0.0):
    x = (x + orign_x) /resolution
    y = height - (orign_y + y)/resolution
   return (x, y)
这个函数返还的是map坐标系下点转换成图片中的像素坐标,,比如我想在图片上标记原点之类的,,这个变换并不在tf tree里。


1.map

map是robot的全局坐标系, 原点上面已经说过了,

2.odom

odom同样是个现实世界的固定坐标系,但他是变动的,是ros在运动前已当前观测到的数据建立的临时的坐标系,避免远离map原点而造成误差,

3.base_link

先讲base_link, 他是已底座中心为原点的坐标系,跟随robot而动,robot身上的任何零件都是已这个为母参考系的。

4.base_footprint

base_footprint是base_link坐标系在地面上的投影,就是z恒等于0的base_link,


说一些小的应用来理解下这四个坐标系

比如我要获取他前进的距离,就获取base_footprint 相对于odom的坐标,计算每次运动前后的差值就是运动的距离。

在比如我想要获取目前机器人在地图上的坐标,那明显就要获取base_footprint 相对于map的坐标,然后在计算其像素坐标




  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值