机器人系统ros2-开发实践05-ROS2 中 tf2的定义及示例说明

1. what ros2 tf2 ?

tf2的全称是transform2,在ROS(Robot Operating System)中,它是专门用于处理和变换不同坐标系间位置和方向的库。这个名字来源于“transform”这个词,表示坐标变换,而“2”则代表了这是该库的第二版,即改进和优化过的版本。

ROS2(Robot Operating System 2)中的**tf2是一个用于处理机器人各部件之间相对位置关系的库**。它主要用于追踪多个坐标系之间的相对位置和方向,并在这些坐标系之间实现无缝转换。tf2是ROS2中一个重要的组件,因为在机器人的许多应用中,正确理解各个部件如何相对于彼此移动是至关重要的。

tf2库提供以下几个关键功能:

  • 坐标变换:允许用户在不同的坐标系之间转换向量、点、姿态等。
    时间差异处理:由于传感器数据可能在不同时间到达,tf2能够处理这些时间上的差异,确保坐标变换的正确性。
  • 坐标系跟踪:tf2维护一个时间线,记录各坐标系之间关系的变化,支持查询过去任何时刻的坐标变换。
  • 接口友好:tf2提供了丰富的API,方便在C++和Python等语言中进行调用。

主要的应用场景:

  • 机器人导航:在机器人导航中,tf2用于管理和转换机器人、传感器和环境之间的坐标系。例如,将来自激光雷达的数据转换到全局坐标系中,以实现路径规划和障碍物避让。
  • 传感器数据融合:在使用多个传感器(如IMU、GPS、视觉摄像头等)时,tf2可以帮助同步和整合不同传感器的数据。通过将所有传感器数据统一到一个坐标系中,可以更准确地进行环境感知和定位。
  • 机械臂操作:在机械臂和其他自动化设备的控制中,tf2被用来计算和更新机械臂各关节之间的相对位置和方向。这对于精确控制机械臂执行复杂的操控任务至关重要。
  • 仿真和建模:在机器人仿真系统中,tf2可以用于管理虚拟环境中的各种坐标系,确保模拟数据的准确性和一致性。
  • 多机器人系统:在多机器人协作场景中,tf2能够帮助各个机器人理解彼此的相对位置和姿态,从而进行协调合作。
  • 动态环境交互:当机器人在不断变化的环境中操作时,tf2可以帮助机器人实时更新和调整其对环境的理解,例如在人群中导航或与动态对象互动。

示例演示:

运行turtlesim 演示,并在使用turtlesim 的多机器人示例中了解tf2 的一些强大功能

让我们从安装演示包及其依赖项开始。

sudo apt-get install ros-humble-rviz2 ros-humble-turtle-tf2-py ros-humble-tf2-ros ros-humble-tf2-tools ros-humble-turtlesim

现在我们已经安装了turtle_tf2_py教程包,让我们运行演示。首先,打开一个新终端并获取 ROS 2 安装的源代码,以便ros2命令能够运行。然后运行以下命令:

ros2 launch turtle_tf2_py turtle_tf2_demo.launch.py

您将看到海龟模拟从两只海龟开始
在这里插入图片描述

在第二个终端窗口中键入以下命令:

ros2 run turtlesim turtle_teleop_key

一旦turtlesim启动,您可以使用键盘箭头键在turtlesim中驱动中央乌龟,选择第二个终端窗口,以便捕获您的击键来驱动乌龟。

您可以看到一只乌龟不断移动以跟随您驾驶的乌龟。

在这里插入图片描述

该演示使用 tf2 库创建三个坐标系:一个world坐标系、一个turtle1坐标系和一个turtle2坐标系。本教程使用tf2 广播器来发布海龟坐标系,并使用tf2 侦听器来计算海龟坐标系中的差异并移动一只海龟以跟随另一只海龟。

查看tf2 工具-tf2_tools

view_frames创建 tf2 通过 ROS 广播的帧的图表。请注意,该实用程序仅适用于 Linux;如果您使用的是 Windows,请跳至下面的“使用 tf2_echo”。

ros2 run tf2_tools view_frames

你会看见:

Listening to tf data during 5 seconds...
Generating graph in frames.pdf file...

这里,tf2 侦听器正在侦听通过 ROS 广播的帧,并绘制帧连接方式的树。要查看树,请frames.pdf使用您喜欢的 PDF 查看器打开结果。

在这里插入图片描述
这里我们可以看到 tf2 广播的三个帧:world、turtle1和turtle2。该框架是和框架world的父级。 还报告一些有关何时接收最旧和最新帧转换以及将 tf2 帧发布到 tf2 以便进行调试的诊断信息。turtle1turtle2view_frames

tf2_echo 报告通过 ROS 广播的任意两个帧之间的转换。

用法 :ros2 run tf2_ros tf2_echo [source_frame] [target_frame]

turtle2让我们看看框架相对于框架的变换turtle1,它相当于:

ros2 run tf2_ros tf2_echo turtle2 turtle1

tf2_echo当侦听器接收通过 ROS 2 广播的帧时,您将看到显示的转换。

At time 1622031731.625364060
- Translation: [2.796, 1.039, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.202, 0.979]
At time 1622031732.614745114
- Translation: [1.608, 0.250, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.032, 0.999]

当您驾驶乌龟四处走动时,您会看到两只乌龟相对移动时变换发生变化。

rviz2 和 tf2

rviz2是一个可视化工具,对于检查 tf2 帧很有用。让我们rviz2通过使用以下选项通过配置文件启动它来查看我们的海龟框架

ros2 run rviz2 rviz2 -d $(ros2 pkg prefix --share turtle_tf2_py)/rviz/turtle_rviz.rviz

在侧栏中,您将看到 tf2 广播的帧。当您驾驶乌龟四处走动时,您会看到框架在 rviz 中移动,tu在这里插入图片描述在这里插入图片描述
图中的两个坐标就会重合到一起

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/7660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何判断代理IP质量?

由于各种原因(从匿名性和安全性到绕过地理限制),代理 IP 的使用变得越来越普遍。然而,并非所有代理 IP 都是一样的,区分高质量和低质量的代理 IP 对于确保流畅、安全的浏览体验至关重要。以下是评估代理 IP 质量时需要…

C语言 main( ) 函数的指针数组形参是怎么回事?

一、问题 在使⽤⼀些开发⼯具⽣成C语⾔⽂件时,主函数 mian( ) 中会有参数,这个参数到底是怎么回事⼉呢? 二、解答 mian( ) 称为主函数,是所有程序运⾏的⼊口。 mian( ) 函数是由系统调⽤的,当处于操作命令状态下&…

【算法】滑动窗口——最大连续1的个数

本篇文章讲的是“最大连续1的个数”这道题,从最开始的简单暴力到用滑动窗口算法实现解题的思路历程,有需要借鉴即可。 目录 1.题目2.暴力求解3.滑动窗口解法3.1优化一:end重返start优化,end指针不回退3.2优化二:某一st…

【Android项目】“追茶到底”项目介绍

没有多的介绍,这里只是展示我的项目效果,后面会给出具体的代码实现。 一、用户模块 1、注册(第一次登陆的话需要先注册账号) 2、登陆(具有记住最近登录用户功能) 二、点单模块 1、展示饮品列表 2、双向联动…

Go语言系统学习笔记(一):基础篇

1. 写在前面 公司的新业务开发需要用到go语言,虽然之前没接触过这门语言,但在大模型的帮助下,边看项目边写代码也能进行go的项目开发,不过,写了一段时间代码之后,总感觉对go语言本身,我的知识体…

加密技术在保护企业数据中的应用

加密技术是企业数据保护的核心,对于维护信息安全至关重要。透明加密技术使文件加密后不改变用户对文件的使用习惯,内部文件打开自动解密,存储自动加密,一旦离开使用环境,加密文件将无法正常读取,从而保护文…

大模型+智能眼镜,让失明人士也能无障碍阅读

你有没有想过有一天你闭上眼睛也可以进行流畅阅读呢? 不是民科,也不是量子波动速读!借助大语言模型和智能眼镜,来自维也纳工业大学、罗马第一大学和明尼苏达大学的研究者,提出了一种无需视力也能阅读的辅助系统&#…

使用fitten code插件(vscode),替换通义千问,识别需求中的输入输出

今天我们介绍一个工具,具体介绍可以参考我的这篇文章的介绍,支持vs code 插件,Fitten Code是一款由非十科技开发的AI代码助手,旨在通过大模型驱动来提升编程效率和体验-免费神器-CSDN博客https://blog.csdn.net/lijigang100/article/details/137833223?spm=1001.2014.3001…

Windows Server 2003安装DHCP服务器

0x00 前言 需要一个dhcp服务器,但是电脑只有一个windows server 2003,凑合着用的。 0x01 安装DHCP服务器 1. 打开控制面板,添加删除程序–添加/删除Windows组件–网络服务,勾选网络服务。 2. 点击【详细信息】,勾选…

深入Django:用户认证与权限控制实战指南

title: 深入Django:用户认证与权限控制实战指南 date: 2024/5/7 18:50:33 updated: 2024/5/7 18:50:33 categories: 后端开发 tags: AuthDecoratorsPermissionsGuardianRESTAuthSessionMgmtMFA 第1章:入门Django与设置 1.1 Django安装与环境配置 在…

Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】

1、数组 特别需要注意的是:在 Go 语言中,数组长度也是数组类型的一部分!所以尽管元素类型相同但是长度不同的两个数组,它们的类型并不相同。 1.1、数组的初始化 1.1.1、通过初始化列表{}来设置值 var arr [3]int // int类型的数…

Terraform资源

资源是Terraform中最核心的部分,使用Terraform的目的就是用于管理资源。 在Terraform中,资源使用resource块定义。 一个resource可以定义一个或多个基础设施资源对象,如:VPC,虚拟机,DNS记录,Con…

渗透测试流程

一、攻击流程 信息收集阶段→漏洞分析阶段→攻击阶段→后渗透阶段 二、信息收集 1、收集内容: IP资源:真实IP获取、旁站信息收集、C段主机信息收集域名发现:子域名信息收集、子域名枚举发现子域名、搜索引擎发现子域名、第三方聚合服务器发…

4G工业路由器快递柜应用案例(覆盖所有场景)

快递柜展示图 随着电商的蓬勃发展,快递行业迎来高速增长。为提高快递效率、保障快件安全,智能快递柜应运而生。但由于快递柜部署环境复杂多样,网络接入成为一大难题。传统有线宽带难以覆盖所有场景,而公用WiFi不稳定且存在安全隐患。 星创易联科技有限公司针对这一痛点,推出了…

好消息|5月6日起换发补发出入境证件可“全程网办”

国家移民管理局从2024年5月6日起,实施若干便民利企出入境管理的六项政策措施,包括在北京等20个城市试点实行换发补发出入境证件的“全程网办”,该举措对于访问学者、博士后研究人员及联合培养博士都是利好消息。故知识人网小编转载发布。 为更…

类和对象之六个默认成员函数

目录 1.构造函数 2.析构函数 3.构造函数(重载) 4.拷贝构造 4.1特征: 4.2写法: 4.3浅拷贝和深拷贝 5.运算符重载 6.&运算符重载和const成员 6.1权限问题 Date类中是否加const修饰 6.2取地址及const取地址操作符重载…

vue-img-cutter 图片裁剪详解

前言&#xff1a;vue-img-cutter 文档&#xff0c;本文档主要讲解插件在 vue3 中使用。 一&#xff1a;安装依赖 npm install vue-img-cutter # or yarn add vue-img-cutter # or pnpm add vue-img-cutter 二&#xff1a;构建 components/ImgCutter.vue 组件 <script se…

sh包装脚本

两个脚本,运行的时间间隔分别是一分钟和五分钟,放入到sh文件中,挂在后代,脚本里面的路径最好是绝对路径。 新建sh文件 新建 run_test.sh 文件,使其可以运行两个不同的 Python 脚本,一个每分钟运行一次,另一个每五分钟运行一次。下面是修改后的 run_test.sh 文件的示例:…

光伏SRM供应商管理解决方案

供应商管理是光伏企业中重要的一环&#xff0c;通过SRM管理供应商&#xff0c;可以提高产品质量&#xff0c;降低采购成本&#xff0c;并集成供应链&#xff0c;提高核心竞争力。 一、搭建管理系统 分为供应商和商户&#xff0c;供应商需要完善基本信息、类别、等级、产品概要…

大历史下的 tcp:一个松弛的传输协议

如果 tcp 是一个相对松弛的协议&#xff0c;会发生什么。 所谓松弛感&#xff0c;意思是它允许 “漏洞”&#xff0c;允许可靠传输的不封闭&#xff0c;大致就是&#xff1a;“不求 100% 可靠&#xff0c;只要 90%(或多或少) 可靠&#xff0c;另外 10% 的错误可检测到” or “…