ROS的TF系统

通过slam的节点得到了栅格地图,那定位信息应该怎么描述呢?

假设机器人开始建图的位置是地图的原点,机器人的运行过程是一边行走一边建图,机器人在地图

中的位置可以描述为机器人和地图坐标系原点的空间关系。为了方便描述,给地图和机器人各定义

一个坐标系:

地图坐标系:原点在机器人建图的初始位置,方向遵循右手法则,取名为map;

机器人坐标系:原点定在机器人底盘投影到地面的中心位置,坐标轴方向也遵循右手法则,取名为

base_footprint。

要描述机器人的位置,则将地图坐标系定义为父坐标系,机器人坐标系定义为子坐标系,那么就可

以将机器人的位置描述成子坐标系在父坐标系中xyz坐标轴的距离偏移量(z轴的偏移量通常为0)

另外一个描述量是子坐标系在父坐标系中xyz坐标轴的角度偏差值

(x轴:滚转 y轴:俯仰 z轴:偏航)由于机器人无法发生滚转和俯仰,则xy轴上的角度偏差值是0

只有z轴上的朝向角可以发生变化。

获取具体的数值——TF系统:两个坐标系的空间关系,坐标变换

TF关系通常是由特定的ROS节点以功能包的形式发布到TF话题中,其他的节点可以通过订阅话题

来查询当前运行的节点网络中都存在哪些坐标系,这些坐标系之间的空间关系又是什么样的。

eg:rviz订阅了tf的话题,使用可以直接显示tf的坐标系

                   

                                        

运行算法以后,另外打开一个终端运行rostopic list查找包含tf的话题,使用rostopic type /tf可以查

看tf的消息格式,使用rostopic echo /tf找到map和base_footprint可以得到下图所示,其中显示了

xyz的距离和角度偏移数值。

使用rosrun rqt_tf_tree rqt_tf_tree可以得到tf树,更清晰的展示了父坐标系和子坐标系之间的关系。

  • 13
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS(Robot Operating System)是一款用于机器人开发的开源软件平台,它提供了一些常用的功能模块和工具,如传感器数据处理、运动控制、导航、定位等。其中,TF(Transform)是ROS中非常重要的一个模块,主要用于机器人坐标系的变换和坐标系之间的关系。随着ROS的不断发展,TF2被引入到ROS中,取代了原来的TF模块。本文将介绍ROS系统TFTF2的相关知识。 1. TF TFROS中的一个模块,主要用于机器人坐标系的变换和坐标系之间的关系。TF可以帮助我们处理机器人在不同坐标系下的运动和感知,为机器人控制和导航等任务提供支持。TF的主要功能包括: 1)管理坐标系之间的关系:TF可以帮助我们管理机器人不同坐标系之间的关系,包括父子关系、坐标系之间的相对位置和姿态等。 2)发布变换:TF可以将一个坐标系的变换发布到ROS系统中,供其他节点使用。 3)监听变换:TF可以监听一个坐标系的变换,当变换发生变化时,TF会自动更新坐标系之间的关系。 2. TF2 TF2是ROSTF模块的升级版,它主要解决了TF模块存在的一些问题,并且提供了更加灵活和高效的接口。TF2的主要改进包括: 1)可扩展性:TF2支持动态添加和移除坐标系,可以在运行时动态调整坐标系之间的关系。 2)高效性:TF2使用了一些优化算法,可以在运行时快速计算坐标系之间的变换关系,提高了系统的效率。 3)可靠性:TF2使用了一些错误检测和纠正机制,可以防止坐标系之间出现不一致或错误的关系。 总的来说,TF2相对于TF模块来说更加灵活、高效和可靠,是ROS系统中不可或缺的一个模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值