0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ROS中Message队列介绍

麦辣鸡腿堡 来源:古月居 作者:敢敢のwings 2023-11-15 15:39 次阅读

Message中的队列

ROS中有一些复杂的消息中可以包含其他的消息,并形成消息数组。

例如在exampleHelperROSCreateSampleNetwork例子中,变量tf包含一个消息,这个消息的主要作用是坐标转换的tf/tfMessage类型。通过输入tf我们可以看到

tf
tf = struct with fields:
MessageType: ‘tf/tfMessage’
Transforms: [1x53 struct]

tf有两个字段:MessageType包含一个标准数据数组,而Transforms包含一个对象数组。

在Transforms中存储了53条消息,它们都具有相同的结构。在Transforms中展开tf以查看结构:

tf.Transforms
ans=1×53 struct array with fields:
MessageType
Header
ChildFrameId
Transform

Transforms中的每个对象都有四个属性。

您可以展开以查看Transforms的Transform字段。下面的命令会返回53个单独的输出,因为每个对象都被求值并返回其Transform字段的值

% tformFields = tf.Transforms.Transform
cellTransforms = {tf.Transforms.Transform}

图片

这将把所有53个对象条目放在一个单元格数组中,这样就可以通过访问标准的MATLAB向量的方式来访问数组元素:

tf.Transforms(5)
ans = struct with fields:
MessageType: ‘geometry_msgs/TransformStamped’
Header: [1x1 struct]
ChildFrameId: ‘/imu_link’
Transform: [1x1 struct]

访问53个变换列表中第五个变换的信息:

tf.Transforms(5).Transform.Translation
ans = struct with fields:
MessageType: ‘geometry_msgs/Vector3X: 0.0599
Y: 0
Z: -0.0141
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    186

    文章

    2983

    浏览量

    231218
  • 数组
    +关注

    关注

    1

    文章

    417

    浏览量

    26041
  • ROS
    ROS
    +关注

    关注

    1

    文章

    281

    浏览量

    17143
收藏 人收藏

    评论

    相关推荐

    Linux下进程通讯消息队列

     MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列存放的内容是message 而已。MQ
    的头像 发表于 08-19 19:56 1903次阅读
    Linux下进程通讯消息<b class='flag-5'>队列</b>

    系统镜像Ubuntu_ROS2ROS2是什么意思,带有ROS2开发环境吗?

    请问一下,百度文库资料里面,下图所示的系统镜像Ubuntu_ROS2ROS2是什么意思,带有ROS2开发环境吗?与前面4GB版本的镜像有什么区别?
    发表于 03-01 23:06

    消息队列经典十连问

    我们通常说的消息队列,简称MQ(Message Queue),它其实就指消息中间件,当前业界比较流行的开源消息中间件包括:RabbitMQ、RocketMQ、Kafka。
    的头像 发表于 03-22 10:08 1334次阅读

    SystemVerilog队列

    队列是大小可变的有序集合,队列中元素必须是同一个类型的。队列支持对其所有元素的访问以及在队列的开始或结束处插入和删除。
    的头像 发表于 10-31 10:09 4185次阅读

    ROS基本介绍

    近来找到的实习主要是做智能车控制,用到的也就是ROS机器人操作系统,ROS需要运行在一个操作系统上,这个操作系统常用的就是Linux,而公司用的就是Ubuntu,所以Ubuntu-ROS组合就是实习的主要学习内容了。所以我就新开
    的头像 发表于 05-19 17:07 7548次阅读
    <b class='flag-5'>ROS</b>基本<b class='flag-5'>介绍</b>

    ROS机器人操作系统的实现原理(上)

    本文介绍ROS机器人操作系统(Robot Operating System)的实现原理,从最底层分析ROS代码是如何实现的。 **1、序列化** 把通信的内容(也就是消息messa
    的头像 发表于 05-19 17:41 1045次阅读
    <b class='flag-5'>ROS</b>机器人操作系统的实现原理(上)

    ROS机器人操作系统的实现原理(下)

    本文介绍ROS机器人操作系统(Robot Operating System)的实现原理,从最底层分析ROS代码是如何实现的。 **1、序列化** 把通信的内容(也就是消息messa
    的头像 发表于 05-19 17:42 1242次阅读

    FreeRTOS消息队列介绍

    队列是为了任务与任务、任务与中断之间的通信而准备的,可以在任务与任务、任务与中断之间传递消息,队列可以存储有限的、大小固定的数据项目。任务与任务、任务与中断之间要交流的数据保存在队列
    的头像 发表于 07-06 16:58 867次阅读
    FreeRTOS消息<b class='flag-5'>队列</b><b class='flag-5'>介绍</b>

    ROSXMLRPC是什么

    XMLRPC是什么? 关于ROS节点建立连接的技术细节,官方文档说的非常简单,在这里ROS Technical Overview。没有基础的同学看这个介绍必然还是不懂。 在ROS
    的头像 发表于 09-14 17:40 1063次阅读

    如何在Matlab自定义Message

    自定义Message 当我们的 message 消息比较复杂时,通常要用到自定义的 message 消息,MATLAB 2020b以上的版本自带了ROS Toolbox Interfa
    的头像 发表于 11-15 18:12 1415次阅读
    如何在Matlab<b class='flag-5'>中</b>自定义<b class='flag-5'>Message</b>

    Matlab创建一个Message方法

    创建一个空白ROS消息,并用机器人路径的X和Y位置填充它。然后将更新后的ROS消息发布到ROS网络。 简单介绍一下Blank Message
    的头像 发表于 11-15 18:18 915次阅读
    Matlab<b class='flag-5'>中</b>创建一个<b class='flag-5'>Message</b>方法

    Unity与ROS链接介绍

    对于ROS而言,其最常用的就是Topic话题以及Service两个了。之前我们在了解Unity Robotics Hub时候就了解到基本的Unity和ROS的通讯,下面我们来详细介绍一下Unity
    的头像 发表于 11-17 17:22 1094次阅读
    Unity与<b class='flag-5'>ROS</b>链接<b class='flag-5'>介绍</b>

    ROS核心框架介绍

    message_filter),有些应该是通过socket。 不过ROS的核心框架也就是ros-base主要由Willow Garage公司和一些开发者设计、提供以及维护,它提供了一些分布式计算的基本工具
    的头像 发表于 11-21 18:07 1076次阅读
    <b class='flag-5'>ROS</b>核心框架<b class='flag-5'>介绍</b>

    ROS2自带例程测试

    如果你是一个ROS2的开发者,可能对刚才我们使用的ROS2命令比较熟悉,这时你可能也会产生一个问题:我们之前也安装了ROS2系统,那ROS2的原生功能还可以正常运行么? 我们再来试一试
    的头像 发表于 11-28 16:29 1059次阅读
    <b class='flag-5'>ROS</b>2<b class='flag-5'>中</b>自带例程测试

    JavaWeb消息队列使用指南

    在现代的JavaWeb应用,消息队列Message Queue)是一种常见的技术,用于异步处理任务、解耦系统组件、提高系统性能和可靠性。 1. 消息队列的基本概念 消息
    的头像 发表于 11-25 09:27 203次阅读