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

1. TF 简介

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

2. ROS常用坐标系

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

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

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

(4) 坐标关系
earth ------> map ------ > odom ------> base_link
base_link + 里程计等计算的信息 -> odom + 矫正(amcl)-> map坐标系

参考链接:ROS2 中常用坐标系 ROS坐标系之间的关系

3. tf命令行工具:
view_frames:可视化坐标变换的完整树。
tf_monitor:监视帧之间的转换。
tf_echo:将指定的变换打印到屏幕上
roswtf : 使用tfwtf插件,分析当前的 tf 配置并尝试找出常见问题
static_transform_publisher是一个用于发送静态转换的命令行工具。

static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms
使用以米为单位的 x/y/z 偏移和以弧度为单位的偏航/俯仰/滚动将静态坐标变换发布到 tf。(yaw 是围绕 Z 的旋转,pitch 是围绕 Y 的旋转,roll 是围绕 X 的旋转)。period_in_ms 周期(以毫秒为单位)指定发送转换的频率。100ms (10hz) 是一个不错的值。
例如:




tf 坐标转换 (x: -0.175m, y: 0.0m, z: 0.390m, yaw:0.0, roll:0, pitch:0)

static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms
使用以米和四元数为单位的 x/y/z 偏移将静态坐标变换发布到 tf。

参考连接:WIKI 源码

你可能感兴趣的:(ROS入门学习,自动驾驶,人工智能,机器学习)