ros入门(八)---TF坐标转换

本文介绍了ROS中的TF(坐标转换),包括TF的作用、常用坐标系如base_link、odom和map的解释,以及坐标系之间的关系。还提到了tf命令行工具的使用,如static_transform_publisher,用于发布静态坐标变换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. TF 简介

TF(TransForm),就是坐标转换,包括了位置和姿态两个方面的变换。注意区分坐标转换和坐标系转换。坐标转换是一个坐标在不同坐标系下的表示,而坐标系转换不同坐标系的相对位姿关系。
frame_id:表明发布的数据是来自哪一个坐标系的。
在这里插入图片描述

2. ROS常用坐标系

(1) base_link
以机器人中心为原点的坐标系,称为base_link坐标系。
base_link的x轴指向机器人前方,y轴为指向小车左方,z轴为指向小车上方。

(2) odom
在一般使用中odom坐标系是通过里程计信息计算出来的。比如轮子的编码器,视觉里程计算法或者陀螺仪和加速度计。odom是一个比较差的长期大范围坐标,但却是一个短期的局域的精确坐标系。

(3) map
一般来说map坐标系的坐标是通过传感器的信息不断的计算更新而来。比如激光雷达,视觉定位等等。因此能够有效的减少累积误差,但是也导致每次坐标更新可能会产生跳跃。
map坐标系下的坐标并不需要保证连续性。map坐标系是一个很有用的长期全局坐标系,但是由于坐标会跳跃改变,这是一个比较差

ROS中的坐标转换函数是通过tf2库来实现的。这个函数采用固定轴的旋转方式,先绕定轴x旋转(横滚),然后再绕定轴y (俯仰),最后绕定轴z(偏航)。从数学形式上说,这是绕定轴XYZ矩阵依次左乘,即R=R(z)R(y)R(x)的顺序。这种方式的好处是直观且便于人机交互。\[1\] 在动态坐标变换中,ROS系统会根据时间戳进行坐标系和坐标点的匹配,来保证坐标变换的准确性。当时间戳相差较大时,系统会报错。为了解决这个问题,需要在循环中更新订阅端的无效时间戳,即每次循环都要更新时间戳。虽然buffer的时间戳一直不变,但是其内容是一直变得,在一直更新。因此,忽略时间戳并不会影响转换精度。\[2\] 在创建项目功能包时,需要依赖于tf2、tf2_rostf2_geometry_msgs、roscpp、rospy、std_msgs、geometry_msgs和turtlesim等库。在准备参数时,需要提供两组静态坐标变换的偏移量和四元数,即对应的son1和son2在世界坐标系下的坐标变换。\[3\] #### 引用[.reference_title] - *1* [SLAM中坐标轴旋转及ros的接口解释](https://blog.youkuaiyun.com/qq_42911741/article/details/127728007)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ros tf坐标](https://blog.youkuaiyun.com/gyxx1998/article/details/128529862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ROS tf2 坐标变换学习(一)](https://blog.youkuaiyun.com/weixin_43134049/article/details/124017749)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值