主要内容

开始使用ROS 2

这个例子展示了如何设置ROS 2在MATLAB中,并得到ROS的信息网络和ROS 2消息。

机器人操作系统(ROS 2)是ROS的第二个版本,这是一个机器人系统的通信接口,使不同地区发现,发送和接收数据。MATLAB®支万博1manbetx持ROS 2是一个函数库,允许您启用了ROS 2交换数据物理机器人或机器人仿真器如露台®。ROS 2是建立在数据分发服务(DDS)这是一个端到端的中间件提供的特性如发现呢,序列化和运输。这些特性结合ROS 2的设计原则等分布式的发现和控制不同“服务质量”选择交通工具。DDS使用实时发布-订阅(rtp)协议提供的通信不可靠UDP等网络协议。有关更多信息,请参见rtp

了解ROS,看到开始使用ROS

ROS 2术语

  • 一个ROS 2网络包括机器人系统的不同部分(如规划师或相机接口)/ ROS 2通信网络。网络可以分布在多个机器。

  • 一个ROS 2节点是一个实体,它包含一组相关的ROS 2功能(如出版商和用户)。网络可以有许多活性氧ROS 2 2节点。

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

  • 一个出版商发送消息到一个特定的主题(如“测程法”),该主题的订阅者,接收这些消息。可以有多个出版商和用户关联到一个单一的主题。

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

  • ROS 2中每个节点创建网络广告出现在相同的其他节点域ID只有

  • ROS 2网络是建立在数据分发服务(DDS)可以连接多个节点分布式网络。有关更多信息,请参见ROS中间件实现之间切换

  • rtp(实时publisher-subscriber)协议提供ROS 2网络功能发送消息在不可靠的网络条件。

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

有关更多信息,请参见机器人操作系统2 (ROS 2)概念ROS 2网站上部分。

初始化ROS 2网络

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

使用ros2node创建一个节点。

test1 = ros2node (“/ test1”)
test1 = ros2node属性:名称: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网络。节点使用/ paramater_events主题在网络监控或改变参数。你创建了/扫描和/构成主题作为样本的一部分网络。

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

每个主题有关联消息类型。运行以下命令ros2主题列表- t每个主题的消息类型。

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

服务质量(QoS)政策选择改变发布者和订阅者的方式处理和交换消息。

1。使用历史深度QoS策略来确定沟通对象的行为基于你想如何处理队列中的消息。指定历史这些选项之一。

  • “keeplast”——删除消息,只保留最新的信息。

  • “keepall”——把所有接收到的消息队列中,直到他们被处理。

2。使用可靠性QoS策略,以保证交付消息的订阅者。指定可靠性这些选项之一。

  • “可靠”——确保出版商不断将消息发送到订阅者直到用户确认收到的消息。

  • “besteffort”——只允许出版商发送消息一次。

3所示。使用耐用性QoS策略与深度输入控制消息的持久性late-joining连接。指定耐用性这些选项之一。

  • “transientlocal”——出版商将持久化消息发送给用户,如果用户加入后的网络出版商最初发送消息。

  • “不稳定”——出版商并不存在信息后发送。用户不从出版商请求持久化消息。

消息

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

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

ros2味精显示geometry_msgs /扭
#这表达速度在自由空间分为线性和角度部分。Vector3线性Vector3角
ros2味精显示geometry_msgs / Vector3
#这是一个向量在自由空间。#这是语义上不同于一个点。#一个向量总是固定在原点。#当变换应用到一个矢量,只有旋转组件是应用。float64 x float64 y float64 z

使用ros2味精列表看到消息类型的完整列表可以在MATLAB。

ROS 2网络断开

使用exampleHelperROS2ShutDownSampleNetwork删除示例节点,从ROS 2网络出版商和用户。删除自己的节点,使用清晰的与节点、出版商或用户对象。

exampleHelperROS2ShutDownSampleNetwork

DDS和RMW实现

可以切换RMW实现之间使用数据分发服务(DDS),当您使用ROS 2在MATLAB®和仿真软件®。万博1manbetx配置所需的RMW实现,遵循这些步骤。

1。下选项卡中环境MATLAB将来发布的部分开放偏好。

2。配置的Python™环境ROS工具箱的偏好对话框并选择实现的ROS的中间件(RMW)实现下拉列表。默认实现rmw_fastrtps_cpp

3所示。切换到一个自定义RMW实现点击配置和切换到自定义RMW实现,发射ROS中间件配置对话框。

4所示。安装和构建自定义RMW实现包验证ROS 2节点的创建与所选自定义RMW实现。

下一个步骤