主要内容

从ROS开始吧

机器人操作系统(ROS)是一个通信接口,它使机器人系统的不同部分能够相互发现,并在它们之间发送和接收数据。MATLAB®通过函数库支持ROS,使您能够与启用ROS的物理机器人或机器人模拟器(如Gazebo®)交换数据。万博1manbetx

此示例介绍如何:

  • 在MATLAB中设置ROS

  • 获取有关ROS网络中功能的信息

  • 获取有关ROS消息的信息

活性氧术语

  • A.ROS网络包括通过ROS进行通信的机器人系统的不同部分(如规划器或摄像头接口)。网络可以分布在多台机器上。

  • A.罗斯大师协调ROS网络的不同部分。它由一个主URI(统一资源标识符),指定运行主机的计算机的主机名或IP地址。

  • A.活性氧节点包含一组相关的ROS功能(如发布者、订阅者和服务)。ROS网络可以有多个ROS节点。

  • 出版者,订户服务是处理数据的不同类型的ROS实体。它们使用信息.

  • 发布者向特定用户发送消息话题(例如“里程计”),该主题的订阅者将收到这些消息。一个主题可以与多个发布者和订阅者关联。

有关详细信息,请参阅机器人操作系统(ROS)概念ROS网站上的部分。

初始化ROS网络

使用松香要初始化ROS,默认情况下,松香创建一个罗斯大师在MATLAB中,启动一个全局节点连接到主节点的。全局节点由其他ROS功能自动使用。

松香
正在启动ROS核心…在1.8994秒内完成。正在启动ROS主控http://192.168.0.10:52959. 使用NodeURI初始化全局节点/matlab_全局_节点_96120http://dcc327509glnxa64:34689/

使用罗斯诺德列表查看ROS网络中的所有节点。请注意,唯一可用的节点是由创建的全局节点松香.

罗斯诺德列表
/matlab_全局_节点_96120

使用示例帮助错误创建SampleNetwork用三个额外的节点以及示例发布者和订阅者填充ROS网络。

示例帮助错误创建SampleNetwork

使用节点列表再次查看三个新节点(节点1,节点2节点3).

罗斯诺德列表
/matlab_全局_节点_96120/节点_1/节点_2/节点_3

该图显示了ROS网络的当前状态。MATLAB全局节点已断开连接,因为它当前没有任何发布者、订阅者或服务。

话题

使用罗斯托普列表查看ROS网络中的可用主题。有四个活动主题:/摆姿势,/罗索特,/扫描/tf. 默认主题:罗索特tf始终存在于ROS网络中。其他两个主题是作为示例网络的一部分创建的。

罗斯托普列表
/姿势/旋转/扫描/tf

使用吻视信息获取有关特定主题的特定信息。下面的命令显示/节点1发布(向发送消息)到/摆姿势主题,以及/节点2订阅(接收来自)该主题的消息。看见与ROS发布者和订阅者交换数据了解更多信息。

罗斯托普信息/摆姿势
类型:几何体\u msgs/Twist发布者:*/node\u 1(http://dcc327509glnxa64:42289/)订阅服务器:*/node_2(http://dcc327509glnxa64:44567/)

使用罗斯诺德信息获取有关特定节点的信息。下面的命令显示节点1出版给/摆姿势,/罗索特/tf主题,订阅/扫描主题并提供服务:/node_1/get_logger和/node_1/set_logger_level。默认日志服务:get_logger和set_logger_level由ROS网络中创建的所有节点提供。

罗斯诺德信息/节点1
节点:[/Node_1]URI:[http://dcc327509glnxa64:42289/]发布(3个活动主题):*/pose*/rosout*/tf订阅(1个活动主题):*/scan服务(2个活动):*/node\u 1/get\u loggers*/node\u 1/set\u logger\u level

服务

ROS服务为跨ROS网络的过程调用提供了一种机制服务客户端向服务器发送请求消息服务服务器,它处理请求中的信息并返回响应消息(请参阅致电并提供ROS服务).

使用罗斯服务列表查看ROS网络中所有可用的服务服务器。下面的命令显示两个服务(/加/答复:)与所有节点的默认记录器服务一起提供。

罗斯服务列表
/添加/matlab_global_node_96120/get_loggers/matlab_global_node_96120/set_logger_level/node_1/get_loggers/node_1/set_logger_level/node_2/set_logger_level/node_3/get_loggers/node_3/set_logger_level/reply

使用罗斯服务信息获取有关特定服务的信息。

罗斯服务信息/加
节点:/Node_3 URI:rosrpc://dcc327509glnxa64:40051 类型:roscpp_教程/TwoInts参数:消息类型A B

信息

发布者、订阅者和服务使用ROS消息来交换信息。每个ROS消息都有一个相关的消息类型定义该消息中信息的数据类型和布局(请参阅使用基本ROS消息).

使用罗斯托普类型查看主题使用的消息类型。下面的命令显示/摆姿势主题使用类型为的消息几何图形\u msgs/Twist.

罗斯托普类型/摆姿势
几何图形\u msgs/Twist

使用rosmsg显示要查看消息类型的属性,请执行以下操作:几何图形\u msgs/Twist消息类型有两个属性,线性的有棱角的。每个属性都是类型为的消息几何图形/矢量3,它又具有类型的三个属性双重的.

rosmsg显示几何图形\u msgs/Twist
%这表示自由空间中的速度,分为线性部分和角度部分
rosmsg显示几何图形/矢量3
%这表示自由空间中的向量。%n它仅表示方向。因此,对其应用平移是没有意义的(例如,当对向量3应用%通用刚性变换时,tf2将仅应用%旋转)。如果希望数据也可翻译,请使用%geometry_msgs/点消息。双X双Y双Z

使用rosmsg列表查看MATLAB中可用消息类型的完整列表。

关闭ROS网络

使用示例帮助错误切换下采样网络从ROS网络中删除示例节点、发布服务器和订阅服务器。仅当示例网络是先前使用创建的时,才需要此命令示例HelpErrorsStartSampleNetwork.

示例帮助错误切换下采样网络

使用罗斯赫顿关闭MATLAB中的ROS网络。这将关闭由启动的ROS主机松香并删除全局节点。使用罗斯赫顿是您完成ROS网络工作后的推荐程序。

罗斯赫顿
使用NodeURI关闭全局节点/matlab_全局节点_96120http://dcc327509glnxa64:34689/ 正在关闭上的ROS主机http://192.168.0.10:52959.

下一步