【ROS学习】-tf学习(tf_monitor、tf_echo、static_transform_publisher、view_frames)

2023-05-16

写在前面

本文的内容主要来自 ros wiki 上的教程:http://wiki.ros.org/tf

简短总结:
tf_monitor : 将当前的坐标系转换关系打印到终端控制台。
tf_echo <source_frame> <target_frame> :把特定的坐标系之间的平移旋转关系,打印到终端控制台。
static_transform_publisher: 发布一个父坐标系到子坐标系的静态tf转换,偏移x/y/z (单位是m),旋转是欧拉角(或者四元数) ,这里的周期period_in_ms,是这个tf的发布周期,设置为100ms(也就是10hz)是一个很好的值。
view_frames : 可以输出当前的tf关系到pdf中。
roswtf: 帮助你找到tf中的错误。

一、tf_monitor

tf_monitor :将当前的坐标系转换关系打印到终端控制台。

rosrun tf tf_monitor

打印结果:
在这里插入图片描述

tf_monitor <source_frame> <target_target>:打印特定的坐标系关系
比如:

rosrun tf tf_monitor /map /base_link

打印结果:
在这里插入图片描述

二、tf_echo

tf_echo <source_frame> <target_frame> :把特定的坐标系之间的平移旋转关系,打印到终端控制台。

rosrun tf tf_echo /map /base_link

打印结果:
在这里插入图片描述

三、static_transform_publisher

这个是最重要的命令,既可以在命令行使用,也可以在launch文件使用,并且经常在launch文件中使用。主要有下面两种形式:

  1. 发布一个父坐标系到子坐标系的静态tf转换,偏移x/y/z (单位是m),旋转是欧拉角 yaw/pitch/roll (单位是弧度 rad),这里 yaw是关于Z轴的旋转,pitch是关于关于Y轴的旋转,roll是关于X轴的旋转。这里的周期period_in_ms,是这个tf的发布周期,设置为100ms(也就是10hz)是一个很好的值。
static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms

在launch文件中使用格式:

<launch>
	<node pkg="tf" type="static_transform_publisher" name="link1_broadcaster" args="1 0 0   0 0 0 link1_parent_frame link1_child_frame 100" />
</launch>
  1. 发布一个父坐标系到子坐标系的静态tf转换,偏移x/y/z (单位是m),旋转是四元数 qx qy qz qw ,这里的周期period_in_ms,是这个tf的发布周期,设置为100ms(也就是10hz)是一个很好的值。
static_transform_publisher x y z qx qy qz qw frame_id child_frame_id  period_in_ms

在launch文件中使用格式:

<launch>
	<node pkg="tf" type="static_transform_publisher" name="link1_broadcaster" args="1 0 0    0 0 0 1 link1_parent_frame link1_child_frame 100" />
</launch>

四、view_frames

view_frames 是一个图形化的调试工具,并且可以输出当前的tf关系到pdf中。
运行以下指令,可以让你在当前目录下得到一个 frames.pdf 和 frames.gv (可以理解为是一种图片)

rosrun tf view_frames

五、roswtf

roswtf: 帮助你找到tf中的错误。

运行效果:
在这里插入图片描述

参考链接:
[1] tf : http://wiki.ros.org/tf

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

【ROS学习】-tf学习(tf_monitor、tf_echo、static_transform_publisher、view_frames) 的相关文章

  • 重写 PHP 中的静态方法

    我有一个抽象页面类 如下所示 abstract class Page public static function display self displayHeader self displayContent self displayFoo
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息
  • VB.NET 中延迟加载属性中静态局部变量的使用

    我最近刚刚了解了 VB NET 中静态局部变量的使用 并想知道它在延迟加载属性中的潜在用途 请考虑以下示例代码 Public Class Foo Implements IFoo End Class Public Interface IFoo
  • 可以在 .h 文件中声明静态全局变量吗?

    static 关键字将全局变量的范围限制为该翻译单元 如果我使用static int x在 h 文件中并包含该 h 文件每隔一个文件 它们不会都属于同一个翻译单元吗 那么 x不是到处可见吗 那么现在static有什么作用呢 另外 有没有什么
  • 如何从与静态路径不同的目录提供静态文件?

    我正在尝试这个 favicon path path to favicon ico settings debug True static path os path join PATH static handlers r WebHandler
  • 使用反射获取静态类列表

    很多问题都很接近 但没有一个能回答我的问题 如何使用 C 3 5 中的反射从程序集中获取所有静态类 我已经定义了所有类型 但没有 IsStatic 属性 计算 0 个构造函数确实很慢 而且也不起作用 有什么提示或一行代码吗 Chris 以下
  • Msil 以动态类型发出静态数组

    我正在尝试使用 Reflection Emit 在 c 中 创建一个新类型 我想要创建的代码类似于 public class public static int A new int 1 2 3 我首先尝试定义一个字段 然后设置它的值 var
  • 如何将模块化 Sinatra 应用程序部署到 Heroku?

    由于某种原因 我无法访问公共目录中的任何文件 未发现错误 我不会把public显然 URL 中的一部分 查看GitHub 上的 Lovers 源代码存储库 https github com mattdipasquale loversapp
  • 强制动态链接库中静态变量的预初始化

    C 11 标准第 3 6 2 条 第 4 条规定 具有静态存储持续时间的非局部变量的动态初始化是否在 main 的第一个语句之前完成是由实现定义的 C 标准将静态初始化与动态初始化区分开来 静态初始化仅需要计算编译时常量 我相信急切静态初始
  • Windows 批处理文件:如何启用命令的内联回显

    如果在 Windows 批处理文件中默认禁用 echo 是否有办法为特定命令 内联 启用它 我知道可以回显特定命令disabled通过在命令前添加 但是有没有办法做相反的事情呢 例如 假设有一个像这样的批处理文件 echo off cmd1
  • C++ 模板静态成员实例化

    include
  • 在C++中初始化静态指针

    我有一个带有静态成员的类 它是一个指针 如下所示 动画 h class Animation public Animation static QString m 动画 cpp include animation h QString Anima
  • 当库静态链接时静态变量会发生什么

    假设我有图书馆 A 实现单例模式 它的实现中有一个静态变量 A 库被编译为静态库 现在 假设我的项目中有 B 另一个静态链接的静态库 A C 另一个静态链接的静态库 A D 一个顶级程序链接 B and C 最后 我的单例真的是单例 并且我
  • 重温经典的 C++ 静态初始化顺序惨败

    我最近遇到了一个奇怪的情况 让我们考虑下面的类 放在header h ifndef HEADER H define HEADER H include
  • 使用项目中的波形文件

    我目前只能通过将波形文件放在已编译的 exe 旁边来播放背景声音 但我实际上想要一个包含波形文件的静态可执行文件 这在Delphi XE2中可能吗 这是我的代码 SndPlaySound Raw wav SND ASYNC or SND L
  • 如何在静态方法中获取会话变量的值?

    我正在使用带有 jQ uery 的 ASP NET 页面方法 如何在 C 中的静态方法中获取会话变量的值 protected void Page Load object sender EventArgs e Session UserName
  • CSS3DObject 始终位于 WebGL Mesh 前面

    我正在混合CSS3D Renderer with WebGL Renderer to add HTML3D 空间中的元素WebGL场景 这CSS3DObject在前面WebGL网格即使WebGL Renderer具有较高的 z index
  • 氡变换线检测

    我正在尝试检测灰度图像中的线条 为此 我在 MATLAB 中使用 Radon 变换 我的 m 文件的示例如下所示 我可以使用此代码检测多行 我还使用线条的移位和旋转属性来绘制线条 但是 我不明白在获取rho和theta值后如何获取检测线的起
  • 使用 Windows 命令行将多行环境变量回显到文本文件

    我有一个环境变量 SSH PRIVATE KEY 并希望使用命令行将其打印到文件中 而不使用批处理文件 这是因为我需要在 Gitlab Ci yml 脚本中使用此文件 在 Linux 中 这很简单 echo SSH PRIVATE KEY
  • WordPress 无法与站点通信

    我正在尝试添加一个搜索框 到目前为止我拥有的代码是 div style padding right 30px padding top 25px height 50px width 500px div 我不断收到以下消息 无法与站点通信以检查

随机推荐

  • kubectl安装无法连接packages.cloud.google.com

    1 问题描述 Err 4 https packages cloud google com apt kubernetes xenial InRelease Could not connect to packages cloud google
  • Centos8-stream安装PostgreSQL13

    一 安装postgresql13 server yum span class token function install span y https download postgresql org pub repos yum reporpm
  • ttf文件结构解析

    TrueType字体通常包含在单个TrueType字体文件中 xff0c 其文件后缀为 TTF OpenType字体是以类似 于TrueType字体的格式编码的POSTSCRIPT字体 OPENTYPE字体使用 OTF文件后缀 OPENTY
  • centos卸载软件三种方式

    1 我们来卸载用yum安装的软件 xff1a yum remove 软件名字 xff1b 2 如果是用rpm包安装的软件呢 xff0c 则使用如图命令进行卸载 xff1b rpm e 软件名 xff1b 3 如果是用tar包安装的软件呢 x
  • Pycharm设置http代理

    1 Pycharm设置 2 urllib下载数据配置 span class token keyword from span urllib span class token punctuation span error span class
  • Docker 配置网络代理

    有时因为网络原因 xff0c 比如公司 NAT xff0c 或其它啥的 xff0c 需要使用代理 Docker 的代理配置 xff0c 略显复杂 xff0c 因为有三种场景 但基本原理都是一致的 xff0c 都是利用 Linux 的 htt
  • 安装 OpenVPN 客户端

    安装 OpenVPN 客户端 yum y span class token function install span epel release yum y span class token function install span op
  • 字符串-字符串匹配

    Leetcode 28题 1 题目描述 Given two strings needle and haystack return the index of the first occurrence of needle in haystack
  • pip无法安装包到新创建的虚拟环境下面,安装包冲突

    第1步 xff1a 查看安装包的路径 span class token punctuation span label studio span class token punctuation span user 64 master pytho
  • 数组-二分查找

    1 Search a 2D Matrix 1 1 题目描述 span class token comment You are given an m x n integer matrix matrix with the following t
  • 渗透测试工具学习笔记(1)——netcat(nc)

    v 显示详细输出内容 n 跟IP地址 xff0c 不进行DNS解析 l 打开一个listen端口 p 端口号 q n 当标准输出完成后延迟n秒断开 z 扫描模式 xff0c 不做I O操作 1 telnet banner nc vn ip地
  • 渗透测试工具学习笔记(2)——netcat(ncat)

    nc的缺点 xff1a nc缺乏加密和身份验证的能力 ncat包含于nmap工具包中 allow 允许连接的IP地址 A ncat c bash allow 192 168 20 14 vnl 333 ssl 用ssl加密 B ncat n
  • 渗透测试工具学习笔记(3)——wireshark

    manjaro安装GUI版本 xff1a yaourt S wireshark qt 需用sudo wireshark图形化版本以顺利使用全部功能 抓包嗅探协议分析 安全专家必备的技能 抓包引擎 Libpcap9 Linux Winpcap
  • PostgreSQL操作

    一 进入PostgreSQL数据库 Linux下切换到postgres用户 xff0c 执行psql即可进入 span class token function su span postgres bash 4 4 psql 此时就进入pos
  • 渗透测试工具学习笔记(4)——tcpdump

    no GUI的抓包分析工具 Linux Unix系统默认安装 说是这么说但是manjaro下没有 xff0c pacman一下即可 抓包 xff1a 默认只抓68个字节 i interface s snaplen 大小 w file tcp
  • 渗透测试工具学习笔记(5)——dradis、keepnote、truecrypt

    过程文档记录工具 1 dradis 导入导出扫描器日志 webapp 默认在http 0 0 0 0 3000 2 keepnote 层级化 3 truecrypt 加密工具 已停止更新 官方原因是安全性不够 xff0c 但实际使用却依然较
  • 渗透测试工具学习笔记(6)——nplookup(被动信息收集)

    被动信息收集 34 开源智能 34 open source OSINT 都是公开渠道可获得的信息 与目标系统不产生直接交互 尽量避免留下一切痕迹 Passive reconnaissance no direct interaction gt
  • PCL学习笔记——合并点云

    合并点云分为两种类型 xff1a 第一种是两个点云数据集的字段类型和维度相同 xff0c 合并之后点云只是点的数量增加了 xff1b 第二种是两个点云数据集的字段类型或维度不同 xff0c 但是点的数量相同 xff0c 合并之后相当于扩展了
  • 云服务器的图形界面的安装和远程连接xfce4 + VNC

    对于阿里和腾讯的云服务器学生价真的很优惠 xff0c 但是对于凑热闹买的我还是个小白 xff0c 我想装一个图形界面 xff08 特别是最近在用腾讯的CVM做HIT操作系统的实验 xff0c 其中有个软件必须要显示图形界面 xff09 较为
  • 【ROS学习】-tf学习(tf_monitor、tf_echo、static_transform_publisher、view_frames)

    写在前面 本文的内容主要来自 ros wiki 上的教程 xff1a http wiki ros org tf 简短总结 xff1a tf monitor 将当前的坐标系转换关系打印到终端控制台 tf echo lt source fram