主要内容

连接到一个ROS 2网络

ROS 2网络由多个ROS 2个节点。与活性氧ROS的掌握有利于通过跟踪所有活动ROS通信实体,ROS 2是基于数据分布标准(DDS)这是一个端到端的中间件提供等特性发现,序列化和运输。这些特性结合ROS 2的设计原则等分布式的发现和控制不同“服务质量”选择交通工具。

连接到ROS 1网络,看到连接到一个ROS网络

当你与ROS 2,你通常遵循以下步骤:

  • 连接到一个ROS 2网络。连接到ROS 2网络,您必须创建一个MATLAB中ROS 2节点指定网络域ID。

  • 交换数据。一旦连接,MATLAB交换数据与其他ROS 2节点在同一个域通过发布者和订阅者ID。

  • ROS 2网络断开。清除所有引用节点、出版商和用户删除的MATLAB ROS 2网络。

创建一个ROS 2节点在默认域

使用ros2node在默认域创建一个节点,它使用的ID0。节点与其他节点在同一个域,和不知道节点在其他领域。

defaultNode = ros2node (“/ default_node”)
defaultNode = ros2node属性:名称:' / default_node ' ID: 0

使用清晰的删除对节点的引用,允许它被删除的ROS 2网络。

清晰的defaultNode

创建一个ROS 2节点在不同的领域

在非默认创建一个节点域,显式地指定域ID作为第二输入参数ros2node。下面newDomainNode创建在指定的域ID吗25

newDomainNode = ros2node (“/ new_domain_node”,25)
newDomainNode = ros2node属性:名称:' / new_domain_node ' ID: 25

查看网络信息在一个特定的领域,提供的ID作为参数ros2函数。以下命令显示所有节点域ID25

ros2 (“节点”,“列表”,“DomainID”,25)
/ new_domain_node

改变默认域ID

如果域ID或没有提供明确的节点ros2命令,他们使用的价值ROS_DOMAIN_ID默认环境变量。使用采用当前值。是否设置环境变量,设置为一个有效的值,默认域的ID0就会被使用。

采用“ROS_DOMAIN_ID”)
ans = 0 x0空字符数组

你可以设置ROS_DOMAIN_ID使用setenv命令。

setenv (“ROS_DOMAIN_ID”,“25”)envDomainNode = ros2node (“/ env_domain_node”)
envDomainNode = ros2node属性:名称:' / env_domain_node ' ID: 25

ros2函数提供信息在网络上指定的环境变量。使用ros2节点列表查看节点域ID25

ros2节点列表
/ env_domain_node new_domain_node

重置ROS_DOMAIN_ID违约。

setenv (“ROS_DOMAIN_ID”,”“)

ROS 2中通信网络

连接到一个现有的ROS 2网络,创建一个节点所需的域。ROS 2网络自动检测任何新创建的节点在同一领域的一种机制发现

开始时,每个节点在ROS 2广告其他节点在同一领域的存在。其他节点响应这个广告新节点通过提供他们的信息。节点与出版商和用户沟通对象与其他节点建立连接是否有相应的对象与兼容的服务质量(QoS)的设置。关于QoS设置的更多信息,请参阅ROS 2中管理的服务质量策略

发现是一个持续的过程,使新节点加入网络的创建。每个节点是网络监控ROS 2和行动同样在活性氧ROS主网络。节点还宣传他们的离线时没有到其他节点。

新ROS 2节点发送其广告的现有的节点。现有的节点响应广告,然后设置为正在进行的通信。

ROS通信子网外

IP网络的子网是一个逻辑分区为多个,较小的网段。ROS 2节点可以与同一子网内的其他节点通信。检测节点外的子网,创建一个DEFAULT_FASTRTPS_PROFILE.xml文件配置特定的DDS实现MATLAB使用。添加系统的IP地址列表以外的子网内部通信地址元素。注意,对于交流的两个系统,它们都必须指定其他系统在各自的地址DEFAULT_FASTRTPS_PROFILE.xml文件。设置domainId元素到适当值用于通信的网络。

在MATLAB保持这个文件当前工作目录。系统使用ROS 2以外的MATLAB应该将这个文件在同一个目录下的ROS 2应用程序运行。下面是一个例子DEFAULT_FASTRTPS_PROFILES.xml文件。

< ?xml version = " 1.0 " encoding = " utf - 8 " ? > <档案> < profile_name参与者=“participant_win is_default_profile = " true " > < rtp > <装入的> < domainId > 0 < / domainId > < initialPeersList > <定位器> <一> UDPv4 < /类> <地址> 192.34.17.36 < /地址> < /定位器> <定位器> <一> UDPv4 < /类> <地址> 182.30.45.12 < /地址> < /定位器> <定位器> <一> UDPv4 < /类> <地址> 194.158.78.29 < /地址> < /定位器> < / initialPeersList > < /内装式> < / rtp > < /参与者> < /资料>

ROS 2广告信息与IP地址的节点出现在系统内上市DEFAULT_FASTRTPS_PROFILES.xml。没有信息外的其他机器子网的节点将接收DEFAULT_FASTRTPS_PROFILES.xml不存在或不包含正确的IP地址。

下一个步骤