• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
wqm-story027
帮助1

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坐标系是一个很有用的长期全局坐标系,但是由于坐标会跳跃改变,这是一个比较差的局部坐标系(不适合用于避障和局部操作)。

(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) 是一个不错的值。
例如:

<node pkg="tf" type="static_transform_publisher" name="base_footprint_to_laser"
        args="-0.175 0.0 0.390 0.0 0.0 0.0 $(arg base_frame) $(arg lidar_frame) 100">
</node>

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 源码

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgabgcb
系列文章
更多 icon
同类精品
更多 icon
继续加载