机器人操作系统(ROS)是一种通信接口,其使得机器人系统的不同部分,以发现彼此,并且发送和它们之间接收数据。MATLAB®用金宝app的函数库,使您能够以交换数据支持ROS ROS-能的实体机器人或机器人仿真器,如Gazebo®。
这个例子介绍如何:
MATLAB内设立ROS
在ROS网络获取有关信息的能力
获取有关ROS消息的信息
一个ROS网络包括在ROS通信的机器人系统的不同部分(例如,规划器或摄像机接口)。该网络可以在多台机器进行分配。
一个ROS主负责协调ROS网络的不同部分。它是由一个标识主URI(统一资源标识符),用于指定所述主运行的机器的主机名或IP地址。
一个ROS节点包含相关的ROS功能(如发布者,用户和服务)的集合。一个ROS网络可以有很多ROS节点。
出版商,用户和服务不同种类的ROS实体的过程数据。他们交换使用数据消息。
发布者将消息发送到一个特定的话题(例如,“测距”),并且该主题的订户接收的消息。一个主题可以与多个出版商和用户相关联。
欲了解更多信息,请参阅机器人操作系统(ROS)和概念在ROS网站上的一节。
用rosinit
初始化ROS。默认,rosinit
创建ROS主在MATLAB和启动全球节点连接到主设备。全球节点由其他ROS功能自动使用。
rosinit
在http初始化ROS主:// bat1073818glnxa64:39241 /。初始化的全球节点/ matlab_global_node_23845与NodeURI的http:// bat1073818glnxa64:35061 /
用rosnode
名单
看到ROS网络中的所有节点。请注意,唯一可用的节点是由创建的全局节点rosinit
。
rosnode名单
/ matlab_global_node_23845
用exampleHelperROSCreateSampleNetwork
填充ROS网络与另外三个节点和样品出版商和用户。
exampleHelperROSCreateSampleNetwork
使用rosnode名单
再次看到三个新节点(node_1
,node_2,
和Node_3上
)。
rosnode名单
/ matlab_global_node_23845 / node_1 / node_2 / Node_3上
该图显示了ROS网络的当前状态。MATLAB的全球节点断开,因为它目前没有任何出版商,订户或服务。
用rostopic
名单
看到ROS网络中可用的主题。有三个活动主题:/姿势
,/ rosout
和/扫描
。默认的日志记录的话题,rosout
,总是存在的ROS网络。另外两个议题作为样本网络的一部分创建。
rostopic名单
/姿势/ rosout /扫描
用rostopic信息
获得有关特定主题的具体信息。下面示出了命令/ node_1
发布(发送消息到)/姿势
话题,/ node_2
预订(从接收消息)到该主题。看到与ROS发布服务器和订阅Exchange数据想要查询更多的信息。
rostopic信息/姿势
类型:geometry_msgs /扭出版商:* / node_1(HTTP:// bat1073818glnxa64:33453 /)报名人数:* / node_2(HTTP:// bat1073818glnxa64:38729 /)
用rosnode
信息<
节点名称>
以获取有关特定节点的信息。下面示出了命令node_1
发布到/姿势
和/ rosout
主题和订阅的/扫描
话题。
rosnode信息/ node_1
节点:[/ node_1] URI:[HTTP:// bat1073818glnxa64:33453 /]出版物(2个活动主题):* /姿势* / rosout订阅(1个活动主题):* /扫描服务(0有效):
ROS服务提供跨网络ROS过程调用的机制。一个服务客户将请求消息发送到一个服务服务器,其处理在请求并返回与响应消息中的信息(见呼叫和提供ROS服务)。
用rosservice
名单
看到ROS网络中的所有可用服务的服务器。下图为两个服务的命令(/加
和/回复
)可供选择。
rosservice名单
/添加/回复
用rosservice信息
<服务>
以获取有关特定服务的信息。
rosservice信息/加
节点:/ Node_3上URI:rosrpc:// bat1073818glnxa64:40667 /类型:roscpp_tutorials / TwoInts参数数量:A B
发布者,用户和服务使用ROS消息来交换信息。每个ROS消息具有相关联的消息类型定义的数据类型和在该消息中的信息的布局(参见与基本ROS信息工作)。
用rostopic
类型
看由主题所使用的消息类型。下面示出了该命令,该/姿势
主题使用类型的邮件geometry_msgs /扭转
。
rostopic类型/姿势
geometry_msgs /扭转
用rosmsg
表演
<为messageType>
查看的消息类型的属性。该geometry_msgs /扭转
消息类型有两个属性线性
和角
。每个属性是类型的消息geometry_msgs /的Vector3
,这反过来又具有类型的三个属性双
。
rosmsg表演geometry_msgs /扭转
%在自由空间中分解成其线性和角度份此表示速度。线性的Vector3的Vector3角
rosmsg表演geometry_msgs /的Vector3
%这表示在自由空间中的矢量。双X双Y双ž
用rosmsg名单
看到MATLAB提供的消息类型的完整列表。
用exampleHelperROSShutDownSampleNetwork
从ROS网络取出样品节点,出版商和用户。如果样品网络较早使用创建时,才需要该命令exampleHelperROSStartSampleNetwork
。
exampleHelperROSShutDownSampleNetwork
用rosshutdown
关闭MATLAB中的ROS网络。这将关闭主ROS,是由启动rosinit
并删除了全球节点。运用rosshutdown
是推荐的程序一旦你完成的工作与ROS网络。
rosshutdown
关闭全球节点/ matlab_global_node_23845与NodeURI的http:// bat1073818glnxa64:35061 /关闭ROS主在http:// bat1073818glnxa64:39241 /。