开始使用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。默认情况下,域ID是
0
。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实现。