主要内容

从ROS 2开始

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

这个例子展示了如何:

  • 在MATLAB中设置ROS 2

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

  • 获取有关ROS 2信息

要了解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)的基础上的,它使得跨分布式网络的多个节点连接成为可能。

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

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

有关更多信息,请参见机器人操作系统2 (ROS 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

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

清晰的test1

使用exampleHelperROS2CreateSampleNetwork用三个附加节点填充ROS网络,这些节点包含示例发布者和订阅者。

exampleHelperROS2CreateSampleNetwork

使用ros2节点列表再一次,观察有三个新节点,node_1,node_2,node_3)。

ros2节点列表
/ node_1 node_2 / node_3

下面是ROS 2网络当前状态的可视化表示。在示例的其余部分中,您可以使用它作为参考。

主题

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

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

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

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

消息

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

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

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

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

断开ROS 2网络

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

exampleHelperROS2ShutDownSampleNetwork

下一个步骤