ROS中的TF坐标变换
坐标变换是机器人系统中常用的基础功能,ROS中的坐标变换系统由TF功能包维护。一个机器人系统通常有很多三维坐标系,而且会随时间的推移发生变化,如世界坐标系(World Frame)、基坐标系(Base Frame)、机械爪坐标系(Gripper Frame)、机器人头部坐标系(Head Frame)等。而TF功能包则可以让用户随时间跟踪多个坐标系,以时间为轴跟踪这些坐标系(默认10s以内)。
TF功能包的作用?
5秒钟之前,机器人头部坐标系相对于全局坐标系的关系是什么样的?
机器人夹取的物体相对于机器人中心坐标系的位置在哪里?
机器人中心坐标系相对于全局坐标系的位置在哪里?
TF如何使用?
监听TF变换
广播TF变换
TF工具:
tf_monitor 打印TF树中所有坐标系的发布状态,也可以通过输入参数来查看指定坐标系之间的发布状态
查看TF树中所有坐标系的发布状态
$ tf_monitor
查看指定坐标系之间的发布状态
$ tf_monitor <source_frame> <target_frame>
tf_echo 查看指定坐标系之间的变换关系
$ tf_echo <source_frame> <target_frame>
static_transform_publisher 发布两个坐标系之间的静态坐标变换,这两个坐标系不发生相对位置变化,在命令中需要设置坐标的偏移参数和旋转参数,偏移参数都是使用相对于x、y、z三轴的坐标偏移;而旋转参数在第一种命令格式中是使用以弧度为单位的yaw/pitch/roll角度,在第二种命令格式中是使用四元数表达旋转角度。发布频率以ms为单位。
$ static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms
$ static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms
view_frames 是可视化的调试工具,可以生成pdf文件,显示整棵TF树的信息
$ rosrun tf view_frames
下面举个乌龟例程中的TF来说明一下:
1.安装该例程的功能包turtle-tf
$ sudo apt-get install ros-kinetic-turtle-tf
2.通过roslaunch来启动我们要运行的关于海龟跟随的指令
$ roslaunch turtle_tf turtle_tf_demo.launch
3.启动键盘控制节点
$ rosrun turtlesim turtle_teleop_key
4.查看系统中整个tf的数据结构,会生成一个pdf文件在该路径下
$ rosrun tf view_frames
5.使用tf_echo工具可以在TF工具树中查找乌龟坐标系之间的变换关系
$ rosrun tf tf_echo turtle1 turtle2
6.可以通过rviz的图形界面更加形象的看到这三者之间的坐标关系
$ rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz
如何实现一个tf广播器
定义TF广播器(TransformBroadcaster)
创建坐标变换值
发布坐标变换(sendTransform)
如何实现一个tf监听器
定义TF监听器(TransformListener)
查找坐标变换(waitForTransform、lookupTransform)
ROS中的TF坐标变换相关推荐
- ROS中的TF坐标变换工具及实现、Rviz查看(十四)C++、python
目录 TF坐标变换引言 概述 概念 坐标msg消息 简介 geometry_msgs/TransformStamped geometry_msgs/PointStamped 静态坐标变换 简介 C++ ...
- ROS入门五 TF坐标变换
ROS入门五 TF坐标变换 坐标变换简介 TF功能包 是什么? TF功能包干什么 ? TF坐标变换如何实现? TF工具 乌龟例程中的TF 安装功能包turtle_tf 运行 实现TF的广播和监听功能 ...
- 如何给定两个gps坐标 算出航向角_机器人开发如何配置ROS中的TF变换关系?
当我们进行机器人开发时,常常需要面对TF坐标转换,本文以 Autolabor Pro1 与思岚激光雷达为例,介绍ROS TF的使用. Autolabor Pro1是什么? Autolabor Pro1 ...
- 配置ROS中的TF变换关系
TF是什么? tf介绍wiki.ros.org tf is a package that lets the user keep track of multiple coordinate frames ...
- 详解ROS中的TF使用
个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-107.html 之前写过一篇博文<ROS-坐标转换> ...
- ROS中的tf与Eigen的转换
写ROS程序时会经常遇到tf与Eigen库的转换,即算法中大多会使用Eigen来进行运算和表示机器人的位姿,但是最终需要tf将pose发布出去,所以需要将Eigen表示的pose转换为tf以及相应的m ...
- ROS中的多坐标变换详解(示例+代码)
目录 坐标变换的数学基础 多坐标变换与静态/动态坐标变换的不同之处 tf坐标转换的实质 多坐标变换 静态/动态坐标变换 坐标系相对关系的发布 命令行形式:another_static_pub.laun ...
- ROS中观察TF的工具
1 . 使用 view_frames 创建一个在ROS上,由tf发布的坐标系的图片. 2 . 使用rqt_tf_tree 这是一个实时工具,观察在Ros上被发布的坐标系树,可用刷新按钮来更新树的内容. ...
- 【ROS学习】- tf学习 - tf中重要函数解析 (陆续更新....)
文章目录 一.函数waitForTransform().lookupTransform() 具体解释 二.函数 tf::StampedTransform().sendTransform() 具体解释 ...
最新文章
- Android学习CursorWrapper与Decorator模式
- java元婴期(29)----java进阶(springmvc(3)---springmvc和mybatis整合参数绑定(上))
- http1.0 和 http1.1 主要区别
- 铁乐学Python_day09_函数
- centos6安装mysql 5.5_CentOS6.5上安装MySQL5.5
- 学java web需要学php吗_学JAVA WEB要先学什么
- 博弈论开发工具Gambit的Python包安装
- 大土狗书屋好书推荐--《史蒂夫·乔布斯传》
- android 三星截长屏,三星如何截屏手机长图,三星四种截图方法介绍
- [Android第三方类库]聊一聊Android的第三方开发组件
- fastadmin常规错误排查
- 01惯性导航常用坐标系与地球参考椭球
- 40Gbit和100Gbit的网络可视性解决方案
- android通知栏点击关闭,Android点击通知栏 ,移除通知
- 绿纹龙的森林游记——UPC
- 由AFX_IDW_PANE_FIRST宏的含义分析界面库XTP的一个bug
- Elasticsearch 7.10 之 Total shards per node
- 清除Internet临时文件
- 【前端知识之webpack】Loader和Plugin都是什么,有什么区别
- 《情感分析、挖掘观点、情感和情绪》1