主要内容

开始使用ROS

机器人操作系统(ROS)是一个通信接口,使机器人系统的不同部分中发现彼此,以及它们之间发送和接收数据。MATLAB®支金宝app持ROS的库函数,使您能够与ROS-enabled交换数据物理机器人或机器人仿真器如露台®。

这个示例介绍了如何:

  • 在MATLAB建立ROS

  • ROS网络获取信息的能力

  • 得到关于ROS的信息消息

ROS的术语

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

  • 一个ROS的主人坐标ROS网络的不同部分。它是确定的主URI(统一资源标识符),指定机器的主机名或IP地址的主人正在运行。

  • 一个ROS节点包含一组相关的ROS功能(如出版商、用户和服务)。可以有许多活性氧ROS网络节点。

  • 出版商,用户,服务不同种类的ROS实体过程数据。他们交换数据使用消息

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

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

初始化ROS网络

使用rosinit初始化ROS。默认情况下,rosinit创建一个ROS的主人在MATLAB和开始全球节点这是连接到主。全球其他ROS节点自动使用功能。

rosinit
启动ROS核心……在0.84716秒内完成。初始化ROS主在http://192.168.0.10:49666上。初始化全局节点/ matlab_global_node_80471 NodeURI http://bat800402glnxa64:37773

使用rosnode列表ROS网络中的所有节点。注意,是全球唯一可用的节点节点创建的rosinit

rosnode列表
/ matlab_global_node_80471

使用exampleHelperROSCreateSampleNetwork填充ROS网络与三个额外的节点和样本发布者和订阅者。

exampleHelperROSCreateSampleNetwork

使用rosnode列表再次看到这三个新节点(node_1,node_2,node_3)。

rosnode列表
/ matlab_global_node_80471 node_1 / node_2 / node_3

图中显示的当前状态的ROS网络。MATLAB全球节点断开连接,因为它目前没有任何出版商、用户或服务。

主题

使用rostopic列表ROS网络中可用的主题。有四个活动主题:/构成,/ rosout,/扫描/特遣部队。默认的主题:rosout特遣部队总是出现在ROS网络。其他两个话题是创建示例网络的一部分。

rostopic列表
/ / rosout /扫描/ tf

使用rostopic信息< topicname >具体的关于特定主题的信息。下面的命令显示/ node_1出版(发送消息)/构成的话题,/ node_2订阅(从)接收消息的主题。看到与ROS交换数据发布者和订阅者为更多的信息。

rostopic信息/构成
类型:geometry_msgs /扭出版商:* / node_1 (http://bat800402glnxa64:35799)用户:* / node_2 (http://bat800402glnxa64:43223)

使用rosnode信息< nodename >得到一个特定的节点的信息。下面的命令显示node_1发布到/构成,/ rosout/特遣部队话题,订阅/扫描主题和提供服务:/ node_1 / get_loggers和/ node_1 / set_logger_level。默认的日志服务:get_loggers和set_logger_level提供所有节点中创建ROS网络。

rosnode信息/ node_1
节点:[/ node_1] URI: [http://bat800402glnxa64:35799]出版物(3活动主题):* /姿势* / rosout特遣部队订阅(1活动主题):* / * /扫描服务活动(2):* / node_1 / get_loggers * / node_1 / set_logger_level

服务

ROS服务提供过程调用机制在ROS网络。一个服务客户端发送一个请求消息服务服务器,这过程中的信息请求,并返回响应消息(见调用并提供ROS服务)。

使用rosservice列表看到所有可用的服务ROS网络中的服务器。下面的命令显示,两个服务(/添加/答复)以及默认的日志服务的所有节点。

rosservice列表
/添加/ matlab_global_node_80471 / get_loggers / matlab_global_node_80471 / set_logger_level / node_1 / get_loggers / node_1 set_logger_level / node_2 / get_loggers / node_2 / set_logger_level / node_3 / get_loggers / node_3 / set_logger_level /回复

使用rosservice信息<名>特定的服务信息。

rosservice信息/添加
节点:/ node_3 URI: rosrpc: / / bat800402glnxa64:35647类型:roscpp_tutorials / TwoInts Args: MessageType B

消息

出版商、用户和服务使用ROS消息交换信息。每个ROS消息都有一个关联的消息类型定义数据类型和布局(见信息的消息处理基本的ROS消息)。

使用rostopic类型< topicname >看到消息类型使用的主题。下面的命令显示/构成主题使用消息的类型geometry_msgs /扭

rostopic类型/构成
geometry_msgs /扭

使用rosmsg显示< messagetype >查看消息的属性类型。的geometry_msgs /扭消息类型有两个属性,线性。每个属性的消息类型geometry_msgs / Vector3,进而有三个类型的属性

rosmsg显示geometry_msgs /扭
%这个表达速度在自由空间分为线性和角度部分。Vector3线性Vector3角
rosmsg显示geometry_msgs / Vector3
%这代表了自由空间中的一个向量。%,这只是代表一个方向。因此,它不%意义翻译适用于它(例如,当应用%通用Vector3刚性变换,tf2只会应用%旋转)。如果你想让你的数据也可翻译,而不是使用% geometry_msgs /点消息。双X双Y ' Z

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

ROS关闭网络

使用exampleHelperROSShutDownSampleNetwork删除示例节点,从ROS网络出版商和用户。这个命令只需要如果先前创建的示例网络使用exampleHelperROSStartSampleNetwork

exampleHelperROSShutDownSampleNetwork

使用rosshutdown在MATLAB ROS网络关闭。这关闭ROS主开始的rosinit全球节点和删除。使用rosshutdown是推荐的程序一旦你完成工作与ROS网络。

rosshutdown
关闭全球节点/ matlab_global_node_80471 NodeURI http://bat800402glnxa64:37773关闭ROS主在http://192.168.0.10:49666上。

下一个步骤