ROS 机器人技术 - 静态 TF 坐标帧

ROS中的TF坐标变换 ros中的tf坐标变换 阅读详情

上次总结了 ROS 机器人技术 - TF 坐标系统基本概念,这次学习下如何发布静态坐标转换,静态 TF 官方教程在这里

一、我在项目中应用 TF 的方法

先说下这个静态坐标转换在我项目中的应用,我在建图的时候需要一个 rslidar -> world 的 TF 变换,但是系统 TF 树中只有师兄 lego_loam 的 base_link -> world的转换,所以为了获取 rslidar -> world,我用 Kinetic 提供的工具手动发布了一个静态的 TF:

# 欧拉角
rosrun tf2_ros static_transform_publisher x y z yaw pitch roll frame_id child_frame_id
# 四元数
rosrun tf2_ros static_transform_publisher x y z qx qy qz qw frame_id child_frame_id

我用的第一种参数类型,因为我只是想要 rslidar -> world 的变换存在,不需要真实的旋转和平移,所以我把 6 个转换参数都设置为 0:

rosrun tf2_ros static_transform_publisher 0 0 0 0 0 0 base_link rslidar

这样我就能在系统中找到 rslidar -> world 了,但是这句话是在命令行中运行的,每次测试都要运行一遍很麻烦,所以我把上面这句加到我的 launch 中,跟测试的节点一同启动:

<launch>
  <!-- 其他节点 -->
    <node pkg="tf2_ros" type="static_transform_publisher" name="dlonng_static_transform_publisher" args="0 0 0 0 0 0 base_link rslidar" />
</launch>

以上就是这一节静态的 TF 帮我完成的工作,下面就带你手动实现一个静态 TF 发布程序,实际使用的时候不用自己写,直接使用已经提供的 static_transform_publisher 即可。

二、自己编写静态 TF 发布者

先在你的工作空间创建一个 learning_tf2 包,记得 source devel/setup.zsh

catkin_create_pkg learning_tf2 tf2 tf2_ros roscpp rospy turtlesim

然后进入这个包中,如果已经知道包名且环境变量也 source 了,可以直接使用 roscd 进入,不用一个个输入路径:

roscd learning_tf2

现在编写一个

ROS学习笔记10:TF坐标变换(ROS常用组件) 旋转参数的第一种命令格式使用以弧度为单位的yaw、pitch、roll角度(yaw是围绕z轴旋转的偏航角,pitch是围绕y轴旋转的俯仰角,roll是围绕x轴旋转的翻滚角),第二种命令格式使用四元数表达旋转角度。机器人本体和机器人的工作环境中往往存在大量的组件元素,在机器人设计和应用中会涉及不同组件的位置和姿态,这就需要引入坐标系和坐标变换的概念。可视化系统当中的所有tf的关系,监听5s,把5s之内所有坐标系之间的关系保存下来,并生成一个pdf。(2)机器人夹取的物体相对于机器人中心坐标系的位置; 阅读详情

相关推荐

在launch 中发布静态tf变换

方法 name自己随便定,args分别代表了 x y z yaw pitch roll。此命令一般在launch文件中引用,声明base_link 到 laser的坐标变换关系。40代表40ms发一次。如果args有7个参数则代表 x y z qx <node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" args="0.14 0.0 0.0 0.0 0.0 0.0 /base_link /laser

lovebc的博客 2644

tf坐标系旋转平移问题(欧拉角、内部旋转、外部旋转)

tf坐标系问题记录前言正文 前言 在标定相机和雷达外参时,不可避免的会遇到tf坐标转换。 在分析标定结果时,用rostf工具进行坐标系平移旋转的转换,发现了一个有点意思的问题,即不同的yaw, roll, pitch 会得到相同的旋转坐标系,在这里做一个记录。 正文 相机、雷达坐标系的初始化 红色的坐标系是X轴,绕着X轴旋转(roll) 绿色的坐标系是Y轴(pitch) 蓝色的坐标系是Z轴(yaw) ...

HRex39的博客 4422

ROS2入门21讲__第16讲__TF:机器人坐标系管理神器

在两只海龟的仿真器中,我们可以定义三个坐标系,比如仿真器的全局参考系叫做world,turtle1和turtle2坐标系在两只海龟的中心点,这样,turtle1和world坐标系的相对位置,就可以表示海龟1的位置,海龟2也同理。坐标系是我们非常熟悉的一个概念,也是机器人学中的重要基础,在一个完整的机器人系统中,会存在很多坐标系,这些坐标系之间的位置关系该如何管理?两个部分,通过一个四乘四的矩阵进行描述,在空间中画出坐标系,那两者之间的变换关系,其实就是向量的数学描述。

sangyongqi的博客 2223

ROS静态TF发布

ROS静态TF发布 x y z 代表link2相对与link1的位置变换。 qx qy qz qx表示link2相对与link1的位姿变换的四元数。 参数100表示每隔100毫秒发布一次。 方式2: x y z 代表link2相对与link1的位置变换。 yaw pitch roll表示link2相对与link1的位姿变换,其中yaw为绕z轴的旋转,pitch为绕y轴的旋转,roll为绕x轴的旋转,逆时针旋转为正,顺时针旋转为负。 参数100表示每隔100毫秒发布一次。 ...

qq_14977553的博客 7793

第 5 章 ROS 常用组件 1 —— TF 坐标变换_静态坐标变换 tf01_static / 动态坐标变换 tf02_dynamic

静态和动态坐标

qq_42731062的博客 2974

ROS理解:ros中的坐标以及对tf2进行解读

1. ROS中的坐标 2. tftf2的变化 3. 发布静态tf2 4. 发布动态tf2 5. 监听tf2 6. 增加自己的frame

非晚非晚的博客 2930

ROS2 TF机器人坐标系管理神器

TF机器人坐标变换

zhangqimeng的博客 1997

深入解析ROS中的TF2:从静态坐标发布到动态监听实战

本文深入解析ROS中的TF2库,从静态坐标发布到动态监听实战。详细介绍了如何使用TransformBroadcaster发布静态与动态坐标变换,并通过乌龟跟随案例演示了TF监听器的核心用法与时间戳处理。文章还涵盖了TF树构建、Rviz可视化及常见调试技巧,帮助开发者掌握机器人坐标统一这一关键技术

qsc901234567的博客 771

[ROS 系列学习教程] TF坐标变换 - TF

每广播一个坐标关系,ROS都会把他加入到一个列表中维护起来,这个列表就是TF树。旋转偏移量为:(1.57, 0.0, 0.0) 角度单位为弧度。使用以下命令可以把TF树保存为pdf文档(如果没有安装。的坐标关系没有发布,所以有两棵TF树,现在我们发布。位置偏移量为:(0.5, 0.8, 0)可以发现,我们发布了两组坐标关系。的坐标关系来看看效果。

淋曦的进击手记 6715

ROSTF2坐标转换及实战示例

现有一机器人模型,核心构成包含主体与雷达,各对应一坐标系,坐标系的原点分别位于主体与雷达的物理中心,已知雷达原点相对于主体原点位移关系如下: x 0.2 y0.0 z0.5。,前者用于坐标系间的转换,后者用于点之间的坐标转换,这对我们之后的使用很重要。在日常生活中,特别是对于机器人来说,各个目标系中的坐标转换是很关键的,通过右手系来标注坐标。将多个坐标先相对于世界坐标系进行转换,然后在调用api将转换后的数据进行相互转换。在现实生活中,我们面对的不仅有点对点的坐标转换,还动态的坐标转换。

qq_62839589的博客 4567

ROS2——TF坐标系(十五)

坐标系是我们非常熟悉的一个概念,也是机器人学中的重要基础,在一个完整的机器人系统中,会存在很多坐标系,这些坐标系之间的位置关系该如何管理?ROS给我们提供了一个坐标系的管理神器——TF。 比如在机械臂形态的机器人中,机器人安装的位置叫做基坐标系Base Frame,机器人安装位置在外部环境下的参考系叫做世界坐标系World Frame,机器人末端夹爪的位置叫做工具坐标系,外部被操作物体的位置叫做工件坐标系,在机械臂抓取外部物体的过程中,这些坐标系之间的关系也在跟随变化。这个示例需要我们先安装相应的功能包,然

戚晨夕的博客 3426

ROS中的TF坐标变换工具及实现、Rviz查看(十四)C++、python

1.Ubuntu中键盘失灵重启即可,不用重装键盘插件 2.只要配置好的CMakeLists代码文件编译过,就不会#include显示includepath有问题 因为编译后,相关导入库的路径才会更新到编译库里 3.在tf中,实际上是把收听到的广播信息存到buffer中,再调用buffer的API进行计算

weixin_50920579的博客 8971

7.ROSTF坐标变换(一):TF简介及静态坐标变换代码讲解

ROSTF坐标变换(一):TF简介及静态坐标变换代码讲解

qq_41694024的博客 3818

ROS中关于移动机器人坐标变换TF详解

一般在urdf文件中都要定义base_link,它代表了机器人的主干,其它所有的frame都是相对于base_link定义并粘在一起的,但本文所述的TF坐标变化不涉及关于urdf的知识点。 ROS中常用的定位模块是AMCL, 而AMCL必须需要里程计信息odom才行, 但并不是所有定位模块都需要里程计信息odom才能定位, 如差分GPS等。(能否通过NDT呢,待确定) 1. 带里程计odom的TF变换 base_link -> velodyne: base_link是移动机器人本体坐标系,激光雷达

qq_36458461的博客 2809

ROS TF坐标变换

TF坐标变换在ROS(Robot Operating System)中,TF(Transform)是一个非常重要的概念,它用于处理不同坐标系之间的空间关系。在机器人和自动化领域,理解和管理不同部分或传感器之间的相对位置和方向是至关重要的。TF提供了一种有效和一致的方式来处理这些问题。

m0_73640344的博客 1871

[ROS 系列学习教程] ROS TF坐标变换 - 动态坐标变换

所谓动态坐标变换,是指两个坐标系之间的相对位置是变化的。比如机械臂末端执行器与 base_link 之间,移动机器人base_link与world之间。可以理解动态坐标关系是随时间变化的静态坐标关系(即静态是动态对时间的微分)。订阅动态坐标转换关系,并利用该关系将小乌龟坐标系下的坐标转换到。目录,在这里存储脚本(如python脚本),我们创建。可以看到转换后的坐标,以及所属父坐标系。以及转换后的坐标都在同步动态变化。发布它相对世界坐标系的坐标。按钮,在弹出的窗口中选择。目录的同级,创建一个。

淋曦的进击手记 4508

ROS基础(四):一文说尽TF坐标变换

第四章:TF坐标变换一、概述三、初识TF:乌龟例程二、TF相关工具1. rqt_tf_tree2. tf_echo3. tf_monitor4. static_transform_publisher5.tf in rviz四、手写TF广播与监听(C++)五、手写TF广播与监听(python)六、总结 本文的目的是,将所有ROS下与tf坐标变换相关的问题一网打尽。 在代码实践部分,当前ros官方在推tf2,未来的tf要被废弃。所以我们的cpp和python两种实现,都是基于tf2编写的。 一、概述 机器人身体

miya的博客 3547

[ROS]TF变换:从原理到实践的权威技术指南

本文深度解析了机器人操作系统(ROS1)中不可或缺的坐标变换库(tf)。作为 ROS 的核心组件之一,tf 负责在复杂机器人系统中维护和管理动态的坐标系关系,为传感器融合、导航、定位及操作等关键任务提供统一的时空基准。

weixin_62160019的博客 2440
上一篇: ROS 机器人技术 - rosbag 详细使用教程!
下一篇: 数据结构与算法 - 时空复杂度分析
登龙
博客等级 码龄8年 127粉丝 103原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值