ROS——TF介绍及应用

2023-05-16

TF 的简单介绍

TF(transform) 是一个允许用户时刻跟踪多个坐标架构的包,能及时地维持树结构中坐标帧之间的关系,并允许用户在任何时间点变化任何两个坐标帧之间的点和变量等。

目前 TF 已经被“弃用”了,转而支持 TF2

TF2 有 TF 特征的超集 及其依赖关系的子集,因此,TF所实现的功能在底层上已经由调用 TF2 中的函数所代替,这意味着所有用户都能够与TF2 兼容。

TF的包的简单使用

使用两个乌龟,
涉及到的包:
ros-melodic-ros-tutorials
ros-melodic-geometry-tutorials
ros-melodic-rviz
ros-melodic-rosbash
ros-melodic-rqt-tf-tree
使用 sudo apt-get install…
一般都有,没再按提示下也行。

(1)运行 turtle 功能包

roslaunch turtle_tf turtle_tf_demo.launch

在这里插入图片描述
然后在开启的那个终端框内使用方向键,即可以之间控制一个乌龟移动了,另外一个乌龟会跟着你控制移动的乌龟运动。

(2)使用 ros 的 tf tools 来监视 tf 信息。利用 view_frames

derek@derek-virtual-machine:~$ rosrun tf view_frames 
Listening to /tf for 5.0 seconds
Done Listening
dot - graphviz version 2.40.1 (20161225.0304)

Detected dot version 2.40
frames.pdf generated

坐标系已经保存在 frames.pdf 中了,使用指令查看

 evince frames.pdf

在这里插入图片描述
或者 使用 rqt_tf_tree 来查看 TF 树:

 rosrun rqt_tf_tree rqt_tf_tree

在这里插入图片描述
比较这两张坐标关系树,两个框架(turtle frame )的之间都存在 一个 Broadcaster , 这个是连接两个frame 必须的,中间一个节点会发布消息给 Broadcaster
如果缺少节点来发布消息维护这个联通,那这两者的连接必然断开。
同时,Broadcaster 也是一个发布者,如果连个frame 之间发生了相对运动,Broadcaster 就会发布相关的消息。

(3)使用 tf_echo 来监视两个坐标系之间的坐标变换关系,

derek@derek-virtual-machine:~$ rosrun tf tf_echo turtle2 turtle1
At time 1632462575.663
- Translation: [0.000, 0.000, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.463, 0.886]
            in RPY (radian) [0.000, -0.000, 0.963]
            in RPY (degree) [0.000, -0.000, 55.162]
At time 1632462576.382
- Translation: [0.000, 0.000, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.463, 0.886]
            in RPY (radian) [0.000, -0.000, 0.963]
            in RPY (degree) [0.000, -0.000, 55.162]
。。。。

如上,会打印两者的相对位置

(4)为了更直观的看到tf 的位置关系,此时还可以使用rivz

rosrun rviz rviz

在这里插入图片描述
在Add 中添加 TF 即可以看到如此画面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS——TF介绍及应用 的相关文章

  • kinova-jaco2使用Moveit!控制真实机械臂抓取固定点物体

    kinova jaco2使用Moveit 控制真实机械臂抓取固定点物体 一 机械臂坐标系 坐标系方向 位姿方向 轴的起始点 二 启动机械臂和Moveit 三 实现抓取 python代码 python文件建议直接用python启动 四 遇到的
  • 使用WTGAHRS2(JY-GPSIMU)在ROS中读取数据并发布话题

    目录 IMU简介 驱动程序 IMU串口通信协议 程序 效果 IMU简介 十轴惯性导航传感器WTGAHRS2传感器集成高精度的陀螺仪 加速度计 地磁场传感器 GPS 模块 采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法 能够快速求
  • ROS之QtCreator开发环境搭建

    文章目录 系统环境 官方教程 安装 卸载 使用 导入工作空间 构建与运行 编写测试程序 系统环境 操作系统 Ubuntu20 04 ROS版本 Noetic 官方教程 按照官方教程或者下面笔记中的内容均能进行环境搭建 笔记中另外做了部分补充
  • 1-如何安装ROS

    如何安装ROS 大家好 我是如何 今天尝试在Ubantu下安装ROS Robot Operating System 测试环境 虚拟机VMware Ubantu20 04 准备步骤 添加ROS软件源 sudo sh c echo deb ht
  • ROS turtlebot_follower :让机器人跟随我们移动

    ROS turtlebot follower 学习 首先在catkin ws src目录下载源码 地址 https github com turtlebot turtlebot apps git 了解代码见注释 其中有些地方我也不是很明白
  • ROS 笔记(01)— Ubuntu 20.04 ROS 环境搭建

    ROS 官网 https www ros org ROS 中文官网 http wiki ros org cn 1 系统和 ROS 版本 不同的 ROS 版本所需的 ubuntu 版本不同 每一版 ROS 都有其对应版本的 Ubuntu 切记
  • ROS 第四天 ROS中的关键组件

    1 Launch文件 通过XML文件实现多节点的配置和启动 可自动启动ROS Master
  • 【ROS】usb_cam相机标定

    1 唠叨两句 当我们要用相机做测量用途时 就需要做相机标定了 不然得到的计算结果会有很大误差 标定的内容包括三部分 内参 外参还有畸变参数 所以标定的过程就是要求得上面这些参数 以前弄这个事估计挺麻烦 需要做实验和计算才能得到 现在通过ro
  • 《学习篇》学会这18个常用ROS命令集合就能入门ROS了

    常用ROS命令概述 ROS常用命令可以按照其使用场景分为ROSshell命令 ROS执行命令 ROS信息命令 ROS catkin命令与ROS功能包命令 虽然很难从一开始就很熟练地使用所有的命令 但是随着使用的次数增多 你会发现常用的几个R
  • 《机器人操作系统入门》课程代码示例安装出错解决方法

    问题描述 学习 机器人操作系统入门 课程时 在Ubuntu 16 04 上安装了kinetic 安装ROS Academy for Beginners时依赖总是报错 如下所示 rosdep install from paths src ig
  • ubuntu18.04命令安装ros2

    ROS2官方文档 本教程为apt get命令安装方式 官网教程有点问题 借鉴一下大佬的安装方式 文章目录 1 安装ROS2 1 1 安装秘钥相关指令 1 2 授权秘钥 1 3 添加ROS2软件源 1 4 安装 2 设置环境 可选但是推荐 2
  • 进入 docker 容器,exec 丢失 PATH 环境变量

    这是我的 Dockerfile FROM ros kinetic ros core xenial CMD bash 如果我跑docker build t ros docker run it ros 然后从容器内echo PATH 我去拿 o
  • 如何将视频或图像序列转换为包文件?

    我是 ROS 新手 我需要转换预先存在的视频文件 或者large可以连接到视频流中的图像数量 bagROS 中的文件 我在网上找到了这段代码 http answers ros org question 11537 creating a ba
  • 将 CUDA 添加到 ROS 包

    我想在 ros 包中使用 cuda 有人给我一个简单的例子吗 我尝试使用 cuda 函数构建一个静态库并将该库添加到我的包中 但总是出现链接错误 未定义的引用 cuda 我已经构建了一个可执行文件而不是库并且它可以工作 请帮忙 我自己找到了
  • ROS 从 python 节点发布数组

    我是 ros python 的新手 我正在尝试从 python ros 节点发布一个一维数组 我使用 Int32MultiArray 但我无法理解多数组中布局的概念 谁能给我解释一下吗 或者还有其他方式发布数组吗 Thanks usr bi
  • 可以在catkin工作区之外创建ROS节点吗?

    我想在catkin工作区之外创建一个ROS发布者节点 可以创建吗 当然可以 像对待任何其他 cpp 库或 python 包一样对待 ROS 在Python中你必须保留PYTHONPATH环境变量指向ros包 opt ros kinetic
  • 如何订阅“/scan”主题、修改消息并发布到新主题?

    我想通过订阅message ranges来改进turtlebot3的LDS 01传感器 通过应用一些算法修改messange ranges并将其发布到新主题 如下所示 但是当我运行编码时出现错误 错误是 遇到溢出的情况 错误是 运行时警告
  • 使用 CMake 链接 .s 文件

    我有一个我想使用的 c 函数 但它是用Intel编译器而不是gnu C编译器 我在用着cmake构建程序 我实际上正在使用ROS因此rosmake但基础是cmake所以我认为这更多是一个 cmake 问题而不是ROS问题 假设使用构建的文件
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息
  • 安装 ROS 时 Cmake 未检测到 boost-python

    我一直在尝试在我的 Mac 上安装 ROS 并根据不同版本的 boost 使用不同的库解决了错误 然而 似乎有一个库甚至没有检测到 boost python 这是我得到的错误 CMake Error at usr local share c

随机推荐

  • 卡尔曼滤波及数据融合:PX4-EKF源码分析

    卡尔曼滤波及数据融合 xff1a PX4 EKF源码分析 卡尔曼滤波PX4 EKF predictState 状态预测L 259calculateOutputStates xff1a L 323存进Buffer的内容 xff1a 修正算法
  • Ubuntu18.04安装Gazebo并与ROS连接

    Ubuntu18 04安装Gazebo并与ROS连接 Gazebo安装Gazebo与ROS连接 Gazebo安装 注意 xff1a Ubuntu18 04需要下载Gazebo9这个版本 xff0c Gazebo的版本不要弄错 如果已经下载了
  • Tiva C(TM4C)的bootloader和启动过程与stm32对比

    gossip 最近在咸鱼捡了个123GXL的板子 xff0c 板子没到就先装好了环境 xff0c 然后看了看资料 xff0c 前天板子到了 xff0c 先点了个灯 xff0c 然后把板子扔到一边又继续看资料去了emmm 看资料的时候发现有些
  • 科学计数法e/E?计算机?表示?

    计算机表达10的幂是一般是用E或e xff0c 即 1 03乘10的9次方 xff0c 可简写为 1 03E 43 09 的形式 1 03乘10的9次方 xff0c 可简写为 1 03E 43 09 的形式 1 03乘10的 9次方 xff
  • vscode - 添加新项目到远程仓库(gitee)

    本篇文章介绍使用VScode 把新的项目推送到远程仓库的操作 前提 xff1a 1 xff0c 一个新的项目 xff08 我这里用的是vue的项目 xff09 2 xff0c 一个新的远程仓库 xff08 我这里用的是Gitee xff09
  • vscode跳转返回快捷键

    windows系统 Alt 43 navigate back Alt 43 navigate forward Mac系统 Ctrl navigate back Ctrl 43 Shift navigate forward On Ubuntu
  • Windows和Linux之间如何传递数据|两台Linux之间如何传递数据

    摘要 xff1a 我们租用了一台服务器 xff0c 然后我们想要把我们写的项目上传到自己的Linux服务器中 xff0c 那么我们应该怎么上传呢 xff1f 如果我们想要从服务器中下载一些资料 xff0c 那么又该如何进行呢 xff1f 看
  • 【C++】多态及原理

    多态及原理 一 多态的实现1 多态的概念2 构成多态还有两个条件 xff1a 3 虚函数4 override和final关键字 二 抽象类三 多态的原理 一 多态的实现 1 多态的概念 多态是在不同继承关系的类对象 xff0c 去调用同一函
  • 【排序算法】桶排序算法原理

    桶排序 条件适用场景算法描述算法实现 桶排序又叫箱排序 xff0c 是计数排序的升级版 xff0c 它的工作原理是将数组分到有限数量的桶子里 xff0c 然后对每个桶子再分别排序 xff08 有可能再使用别的排序算法或是以递归方式继续使用桶
  • FreeRTOS(二)创建任务

    任务 一 任务的基本概念 FreeRTOS的任务可以认为是一系列独立的任务的集合 每个任务在自己的环境中运行 xff0c 并且每个时刻只有一个任务在运行 xff0c 但从宏观上看 xff0c 所有的任务都在同时执行 xff1b 不同任务的切
  • FreeRTOS(三)启动流程

    启动流程 FreeRTOS的主要两种启动流程 在 main 函数中将硬件初始化 xff0c RTOS 系统初始化 xff0c 所有任务的创建这些都弄好 最后启动 RTOS 的调度器 xff0c 开始多任务的调度 xff08 先创建 xff0
  • echarts参数详细介绍

    文章目录 title xff1a 标题grid配置项 xff1a 图标离容器的距离tootip xff1a 提示xAxis xff1a x轴yAxis xff1a y轴legend xff1a 图表旁边的文字series xff1a dat
  • 微信云开发报错(Error: ResourceNotFound.FunctionName, FunctionName 指定的资源不存在。 (9f4aff33-7528-43e2-b0db-d273d)

    在微信小程序云开发时 xff0c 上传login的时候报错 Error ResourceNotFound FunctionName FunctionName 指定的资源不存在 9f4aff33 7528 43e2 b0db d273d0d6
  • 在阿里云搭建CENTOS7系统以及图形界面

    1 搭建CentOS7操作系统服务器 首先要购买服务器 xff0c 推荐学生认证可以获得好几个月的免费服务器 略去具体的过程 阿里云默认的系统不是CentOS7 xff0c 所以需要先将操作系统改成CentOS7 在实例的基本信息中 xff
  • VSCode 配置git 环境

    VSCode 配置git 环境 安装插件 查询Git 安装路径 配置json 文件 安装插件 git history 打开 git bash 下面展示一些 内联代码片 查询git 路径 where git where git 配置json
  • 模拟实现trim 方法,去除字符串两端的空格

    思路 从字符串的两端分别遍历 xff0c 找寻第一个非空字符记录非空字符的索引截取头部第一个非空字符到尾部第一个非空字符串之间的内容 span class token keyword function span span class tok
  • git token使用

    2021年8月13日 xff0c git不再支持密码方式验证 xff0c 而是建议使用token token生成 个人设置 gt Settings gt Personal access tokens gt Generate new toke
  • 网页实现无插件RTSP 摄像头在线播放

    网页无插件RTSP 摄像头在线播放 为什么要求无插件1 xff0c flv js实现2 xff0c flv js的利弊延迟吃资源对网络要求高流可复用对声音处理比较麻烦 3 xff0c webrtc的利弊网络相关的资料少延迟低不吃资源 总结项
  • 计算机嵌入式开发技术考试错题集

    选择题 xff08 以前写的 xff0c 现在翻到了发出来 xff09 1 UTF 16采用的是双字节可变长编码 2 ARM处理器的7种类型的异常中 xff1a 最高的是 复位 xff1b 最低的是 未定义指令UND 和 软件中断SWI x
  • ROS——TF介绍及应用

    TF 的简单介绍 TF xff08 transform xff09 是一个允许用户时刻跟踪多个坐标架构的包 xff0c 能及时地维持树结构中坐标帧之间的关系 xff0c 并允许用户在任何时间点变化任何两个坐标帧之间的点和变量等 目前 TF