Matlab与ROS---TF坐标系(七)

news2024/12/23 8:34:16

0. 简介

我们上面讲了最基础的通信机制以及在Matlab中如何使用这些通信,下面我们这一讲来主要介绍ROS当中最常用的TF坐标系在Matlab中的使用。tf是分布式的,因此所有的坐标帧信息对ROS网络中的每个节点都是可用的。所以这一节就是带领读者熟悉该怎么在Matlab中使用ROS的TF坐标系

1. TF概念

要为这个示例创建一个真实的环境,可以使用exampleHelperROSStartTfPublisher来传播几个转换。这里通过转换来表示安装在机器人上的摄像机的位姿。

在这个变换树中定义了三个坐标坐标系:

  1. 机器人基本框架(robot_base)
  2. 相机的安装点(mounting_point)
  3. 相机的光学中心(camera_center)

同时会发布两个转换:

  1. 从机器人底座到相机安装点的转换
  2. 从安装点到相机中心的转换
exampleHelperROSStartTfPublisher

三个坐标坐标系的可视化表示如下所示

在这里插入图片描述
在这里,每个帧的x、y和z轴分别用红色、绿色和蓝色线表示。坐标框架之间的父子关系通过一个从子框架指向父框架的棕色箭头显示。

使用rostf函数创建一个新的转换树对象。您可以使用此对象访问所有可用的转换,并将它们应用于不同的实体。

tftree = rostf

tftree =
TransformationTree with properties:
AvailableFrames: {0x1 cell}
LastUpdateTime: [0x1 Time]
BufferTime: 10
DataFormat: ‘object’

一旦创建了对象,它就开始接收tf转换并在内部缓冲它们。将tftree变量保留在工作空间中,以便它继续接收数据。

停顿,以确保接收到所有转换。

pause(2);

您可以通过访问AvailableFrames属性查看所有可用坐标帧的名称。

tftree.AvailableFrames

ans = 3x1 cell
{‘camera_center’ }
{‘mounting_point’}
{‘robot_base’ }

这里显示三个坐标框架,描述相机、其安装点和机器人之间的关系。

2. 获取TF坐标系

现在TF转换是可用的,同时可以检查它们。任何转换都是由ROS的geometry_msgs/TransformStamped消息描述的,该消息中具有平移和旋转组件。

检索描述安装点和摄像机中心之间关系的转换。使用getTransform函数来做到这一点。

mountToCamera = getTransform(tftree, 'mounting_point', 'camera_center');
mountToCameraTranslation = mountToCamera.Transform.Translation

mountToCameraTranslation =
ROS Vector3 message with properties:
MessageType: ‘geometry_msgs/Vector3’
X: 0
Y: 0
Z: 0.5000
Use showdetails to show the contents of the message

quat = mountToCamera.Transform.Rotation

quat =
ROS Quaternion message with properties:
MessageType: ‘geometry_msgs/Quaternion’
X: 0
Y: 0.7071
Z: 0
W: 0.7071
Use showdetails to show the contents of the message

mountToCameraRotationAngles = rad2deg(quat2eul([quat.W quat.X quat.Y quat.Z]))

mountToCameraRotationAngles = 1×3
0 90 0

这里表示相对于安装点,摄像机中心位于沿z轴0.5米的位置,并围绕y轴旋转90度。

3. 发布TF坐标系

…详情请参照古月居

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

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

相关文章

gpt人工智能写论文怎么样-chatGTP如何写论文

用gpt写论文怎么样 使用 GPT 写论文具体的操作方法因人而异,但可以提供一些建议: 充分理解论文的题目、主题和结构,并确定论文所需的内容和方向。 针对论文的不同部分,使用 GPT 模型进行自动化生成或补充,例如摘要、…

Android签名 一 查看签名信息

你可能想知道 通过这篇文章可以解决哪些问题以及学到什么: 1.如果我们有一个应用,如何查看应用的签名信息? 2.如果我们有签名原始文件,如何查看签名文件中的签名信息? 这篇文章介绍了如何查看应用和签名文件中的签名信…

DiskGenius硬盘分区及数据恢复软件

目录 一、DiskGenius介绍 二、DiskGenius下载 三、DiskGenius功能 1、软件详细教程 2、将空闲空间合并到现有分区 3、无损扩容分区 4、注意事项: 一、DiskGenius介绍 DiskGenius是一款硬盘分区及数据恢复软件。它是在最初的DOS版的基础上开发而成的。Window…

PMP课堂模拟题目及解析(第3期)

21. 一家农业设备制造商因一个缺陷部件而召回数千个产品。这个问题导致许多客户不满,公司花费 500 万美元来修理和更换零件。哪一种成本预算类型可以防止这个问题? A. 非一致性成本 B. 一致性成本 C. 矩阵图 D. 多标准决策分析 22. 一位团队成员…

轨迹预测Leapfrog Diffusion Model for Stochastic Trajectory Prediction

结构速览 论文速读解决什么问题解决这个问题的几个关键点总体架构上面提出了哪些创新如何实现蛙跳如何处理轨迹表达和训练问题 0.Abstract1. Introduction第一段(介绍轨迹预测这个研究方向)第二段(前人未来轨迹预测方面的研究有哪些&#xff…

EEG微状态的皮层电图激活模式

前言 脑电图(EEG)微状态是表征大脑静息态网络自发激活的短暂连续的稳定头皮场电位。脑电微状态被假定介导局部活动模式。为了验证这一假设,本研究将瞬时全局脑电微状态动力学与皮层脑电图(ECoG)和立体定向脑电图(SEEG)深度电极记录的局部时间谱演变相关联。假设这些…

打造高性能网站:使用 nginx、MySQL 和 PHP 编译,搭建 LNMP 环境并安装 WordPress实战

前言 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人 &#xff0…

camunda错误事件的用途

在Camunda中,错误事件是一种可以在任务或操作执行过程中捕获错误并进行处理的事件类型。使用错误事件可以提高工作流的可靠性和容错性,避免由于错误操作导致的工作流中断或数据丢失等问题。 使用错误事件可以处理以下情况: 1、捕获错误并进…

K8s基础3——应用部署流程、服务编排、集群资源利用率、日志管理

文章目录 一、应用部署流程二、服务编排2.1 YAML文件格式说明2.2 部署应用2.2.1 命令部署2.2.2 yaml文件部署2.2.2.1 编写deployment.yaml文件2.2.2.2 编写service.yaml文件2.2.2.3 两个yaml文件混用2.2.2.4 测试——service和deployment的标签不一致导致访问网页混乱 2.2.3 自…

用JIRA管理你的项目——(三)基于LDAP用户管理

JIRA提供了基于LDAP方式的用户管理,也就是用户密码的管理交给LDAP,而JIRA只管理用户在系统中的角色。 相关链接: 用JIRA管理你的项目——(一)JIRA环境搭建 用JIRA管理你的项目——(二)JIRA语言…

AI 工具合辑盘点(五)持续更新

AI 视频生成和编辑工具 当今,视频已经成为最受欢迎的媒介之一。我们喜欢观看视频,但是制作高质量的视频需要耗费大量时间和精力。 无论你是内容创作者、专业视频编辑师,还是完全的新手,按照传统方式制作视频需要掌握各种知识、技…

[杂谈]从《天堂2》到永恒之塔私服的感慨

不才在下是个老丫头了,平时喜欢潜水,还是在玩激战时注册的多玩论坛号,也不怎么说话,都是看别人说得多(害羞嘛……)。 想当年《天堂二》内测时,刚好在成都开了个内测号 首发会,我大清…

[230509]托福听力真题TPO66|精听 Lecture2:marine biology class|9:45~11:30+12:00~12:30

目录 Lecture 2 一、要点 二、文本 三、文本注释 概括描述fins ⬆️ 详细描述two general types of fins ⬇️ 1st type 2nd type 今日marine biology class重点 不是所有的鱼都有caudal fins caudal fins的两个例子 四、复听笔记 Lecture 2 一、要点 1. 开…

网络安全监管

网络安全监管 网络安全法律体系建设计算机犯罪、信息安全等基本概念我国立法体系及网络安全法我国的立法体系网络安全法出台背景基本概念安全法主要结构第一章 总则第二章 网络安全支持与促进第三章 网络运行安全第四章 网络信息安全第五章 监测预警与应急处置第六章 法律责任 …

基于Python的PROSAIL模型介绍以及使用

1、介绍 PROSAIL是两种模型耦合得到的。 SAIL是冠层尺度的辐射传输模型,把冠层假设成是连续的且具有给定几何形状和密度的水平均匀分布的介质层,从而模拟入射辐射与均匀介质之间的相互作用,具体还是挺复杂的。而PROSPECT就是叶片尺度的辐射传…

​kali下搭建WiFi钓鱼热点​

在linux下建立无线热点并不像在windows下开启网络共享或者使用无线网卡驱动设置AP模式即可。 linux下的无线共享要用到两个软件:hostapd(创建无线热点)、dnsmasq(dns服务和dhcp服务). 1.安装以上两个软件: 1 2 apt-get install hostapd apt-get install…

【Java】字符串String

目录 1.字符串的构造 2.字符串转换 2.1字符串与数值转换 2.2大小写转换 2.3字符串转数组 2.4格式化 3.字符串操作 3.1字符串比较 3.2字符串查找 3.3字符串替换 3.4字符串拆分 3.5字符串截取 3.6去除空格 4.字符串的不可变性 5.字符串修改 5.1StringBuffer…

基于FreeRTOS的CPU利用率计算教程详解(STM32版)

前言:FreeRTOS 是一个 RTOS 类的嵌入式实时操作系统,作为实时操作系统其必定拥有任务调度的属性。通过系统自身的任务调度算法实现任务安全且高效的切换,这就不可避免的引出了各个任务对 CPU 的利用率问题(裸机情况下 CPU 利用率默…

自行车和电动自行车上亚马逊标准有什么区别?UL2849,16CFR1512

自行车 自行车是一种两轮的或三轮的交通工具,完全靠人力驱动后轮前进。本政策所涵盖的自行车包括当座位调整到最高位置时,座位离地面超过 25 英寸的自行车,以及座位高度为 25 英寸或以下的人行道自行车。本政策也适用于公路使用的卧式自行车…

有人看好、有人唱衰,无代码能不能开发复杂应用?

司马说 工欲善其事,必先利其器,软件开发也是如此。《人月神话》有一章的标题就是“巧匠因为他的工具而出名”。软件开发与编码工作是一项枯燥无味的任务,但现在这项工作很可能利用软件本身来完成。 无代码开发颠覆了传统编码的开发模式&#…