主要内容

从ROS 2开始

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

这个例子展示了如何:

  • 在MATLAB中设置ROS 2

  • 获取关于ros2网络中能力的信息

  • 获取ros2消息信息

要了解ROS,请看开始使用ROS

ROS 2术语

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

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

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

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

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

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

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

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

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

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

初始化ROS 2网络

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

使用ros2node创建节点。

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

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

ros2节点列表
/ test1

使用清晰的关闭ros2网络中的节点。

清晰的test1

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

exampleHelperROS2CreateSampleNetwork

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

ros2节点列表
/ node_1 node_2 / node_3

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

主题

使用ros2主题列表查看ros2网络中可用的主题。注意这里有三个活跃的主题:/构成/ parameter_events/扫描.这个话题/ parameter_events是一个全球性的话题,一直存在于ROS 2网络中。它被节点用来监视或改变网络中的参数。另外两个主题/扫描和/构成作为样本网络的一部分。

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

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

ros2主题列表- t
主题MessageType  _____________________ _________________________________ {'/ parameter_events’}{' rcl_interfaces / ParameterEvent '}{/构成的}{geometry_msgs /“扭转操作”}{/扫描的}{' sensor_msgs /提升'}

消息

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

使用ros2味精显示查看消息类型的属性。的geometry_msgs /扭消息类型有两个属性,线性.每个属性都是一种类型的消息geometry_msgs / Vector3,它又有三个type属性

ros2味精显示geometry_msgs /扭
#这表示自由空间中的速度分解为线性和角部分。向量3线性向量3角向量
ros2味精显示geometry_msgs / Vector3
这代表了自由空间中的一个向量。Float64 x Float64 y Float64 z

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

断开ROS 2网络

使用exampleHelperROS2ShutDownSampleNetwork将样本节点、发布者和用户从ROS 2网络中移除。要删除自己的节点,请使用清晰的节点、发布者或订阅者对象。

exampleHelperROS2ShutDownSampleNetwork

下一个步骤