主要内容

从ROS 2开始

机器人操作系统2(ROS2)是ROS的第二个版本,它是一个通信接口,使机器人系统的不同部分能够发现、发送和接收数据。对ROS 2的MATLAB®支持是一个函数库,允许您与启用ROS 2的物理机器人或机器人模拟器(如Gazebo®)交换数据。ROS 2基于万博1manbetx数据分布标准(DDS)哪个是端到端中间件,提供发现等功能序列化这些特性与ROS 2的设计原则一致,例如分布式的发现并控制不同的“服务质量”选择交通工具。DDS使用实时发布订阅(Real Time Publish-Subscribe, RTPS)协议,在UDP等不可靠的网络协议上提供通信。有关更多信息,请参见RTPS

这个例子展示了如何:

  • 在MATLAB中设置ROS 2

  • 获取有关ROS 2网络功能的信息

  • 获取ros2消息信息

要了解ROS,请看从ROS开始吧

ROS 2术语

  • 一个ROS 2网络包括通过ROS 2网络进行通信的机器人系统的不同部分(如规划器或摄像头接口)。网络可以分布在多台机器上。

  • 一个ROS 2节点是一个包含一系列相关ROS 2功能(如发布者和订阅者)的实体。一个ROS 2网络可以有多个ROS 2节点。

  • 出版者用户是处理数据的不同类型的ROS 2实体。他们使用消息

  • 发布者将消息发送到特定的话题(例如“里程计”),该主题的订阅者将收到这些消息。可以有多个发布者和订阅者与单个主题关联。

  • 一个是网络的物理分割。它由一个唯一的整数值标识,称为域ID。默认情况下,域ID0

  • ROS 2网络中的每个节点在创建时都会向同一网络中的其他节点通告自己的存在域ID只有

  • ROS 2分布式网络建立在数据分布标准(DDS)的基础上,使得跨分布式网络连接多个节点成为可能。

  • RTPS(实时发布者-订阅者)协议为ros2网络提供了在不可靠的网络条件下发送消息的能力。

  • ROS 2提供多种服务质量(QoS)允许您调整节点之间通信的策略。有关更多信息,请参阅管理ros2中的服务策略质量

有关更多信息,请参见机器人操作系统2 (ROS 2)概念章节。

初始化ROS2网络

与ROS不同,ROS 2在MATLAB中不需要初始化。ROS 2网络自动开始创建节点。

使用ros2node创建节点。

test1 = ros2node (“/test1”
test1 = ros2node with properties: Name: '/test1' ID: 0

使用ros2节点列表查看ROS 2网络中的所有节点。

ros2节点列表
/测试1

使用清楚的关闭ROS 2网络中的节点。

清楚的测试1

使用示例HelpErrors2CreateSampleNetwork在ROS网络中添加三个带有样本发布者和订阅者的节点。

示例HelpErrors2CreateSampleNetwork

使用ros2节点列表再次观察,这里有三个新节点,node_1node_2node_3).

ros2节点列表
/节点1/节点2/节点3

ROS 2网络当前状态的可视化表示如下所示。在本例的其余部分中研究这个示例网络时,请使用它作为参考。

主题

使用ros2主题列表查看ros2网络中可用的主题。注意这里有三个活跃的主题:/摆姿势/参数\u事件/扫描.这个话题/参数\u事件是一个全球性的话题,一直存在于ROS 2网络中。它被节点用来监视或改变网络中的参数。另外两个主题/扫描及/构成是作为示例网络的一部分创建的。

ros2话题列表
/ parameter_events /姿势/扫描

每个主题都与一个m相关联消息类型.使用Ros2主题列表-t查看主题的消息类型。

ros2话题列表-t
主题消息类型{uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

消息

发布者和订阅者使用ROS 2消息交换信息。每个ROS 2消息都有一个关联的消息类型,该消息定义了该消息中信息的数据类型和布局。有关更多信息,请参阅处理基本ROS 2消息

使用ros2味精显示查看消息类型的属性。的几何图形\u msgs/Twist消息类型有两个属性,线性有棱角的.每个属性都是一种类型的消息几何图形/矢量3,它又有三个type属性

ros2味精显示几何图形\u msgs/Twist
#这表示自由空间中的速度分解为线性和角部分。向量3线性向量3角向量
ros2味精显示几何图形/矢量3
这代表了自由空间中的一个向量。Float64 x Float64 y Float64 z

使用ros2味精列表查看MATLAB中可用的消息类型的完整列表。

断开ROS 2网络

使用exampleHelperROS2ShutDownSampleNetwork要从ROS 2网络中删除示例节点、发布服务器和订阅服务器,请使用清楚的节点、发布者或订阅者对象。

exampleHelperROS2ShutDownSampleNetwork

下一个步骤