主要内容

运行节点

启动ROS或ROS 2节点

描述

例子

运行节点(设备型号名称启动与已部署Simulink关联的ROS或ROS 2节点金宝app®模型命名型号名称这个node must be deployed in the workspace specified by theCatkinWorkspace输入的属性罗斯装置对象还是对象ROS2Workspace输入的属性Ros2设备对象设备.默认情况下,该节点连接到ROS主机的MATLAB®是与设备。DeviceAddress财产。

运行节点(设备型号名称马斯塔里连接到指定的主URI。此语法仅在以下情况下适用设备是一个罗斯装置对象

运行节点(设备型号名称马斯塔里nodeHost连接到指定的主URI和节点主机。节点将其地址作为给定的主机名或IP地址发布nodeHost.此语法仅适用于以下情况设备是一个罗斯装置对象

例子

全部崩溃

连接远端ROS设备并启动ROS节点。运行ROS核心,使ROS节点可以通过ROS网络进行通信。您可以运行和停止一个ROS核心或节点,并检查它们的状态罗斯装置对象

创建到ROS设备的连接。请输入指定ROS设备的地址、用户名和密码。设备已经包含可用的可运行的ROS节点运行节点

IP地址=“192.168.203.129”;d = rosdevice (ipaddress“用户”“密码”);d.ROSFolder=“/opt/ros/indigo”;d.CatkinWorkspace =“~ / catkin_ws_test”
d=rosdevice with properties:DeviceAddress:'192.168.203.129'用户名:'user'ROSFolder:'/opt/ros/indigo'CatkinWorkspace:'~/catkin_ws_test'可用节点:{'robotcontroller''robotcontroller2'}

运行一个ROS核心。连接MATLAB®到ROS主机使用松香. 此核心使您能够在ROS设备上运行ROS节点。

runCore (d) rosinit (d.DeviceAddress, 11311)
使用NodeURI初始化全局节点/matlab_全局_节点_84497http://192.168.203.1:56034/

检查连接的ROS设备上的可用ROS节点。列出的这些节点是在金宝app在Simulink®中开始使用ROS金宝app例子。

d.AvailableNodes
ans =1×2细胞{' robotcontroller} {' robotcontroller2 '}

运行ROS节点并指定节点名称。检查节点是否正在运行。

运行节点(d,“机器人控制器”)运行=isNodeRunning(d,“机器人控制器”
运行=逻辑1

停止ROS节点。断开与ROS网络的连接。停止ROS核心。

停止节点(d,“机器人控制器”)罗斯赫顿
使用NodeURI http://192.168.203.1:56034/关闭全局节点/matlab_global_node_84497
stopCore (d)

在连接的ROS设备上运行多个ROS节点。可以使用Simulink®模型生成ROS节点,以在ROS网络上执行不同的任务。然后将这些节点部署在ROS设备上,并可以独立于S金宝appimulink®运行。

这个例子使用了两个不同的Simulink模型,它们被部署为ROS金宝app节点。看到从Simulink®生成一个独立的ROS节点金宝app并按照说明生成和部署ROS节点。重复两次,然后给它们命名“机器人控制器”“robotcontroller2”这个“机器人控制器”Node向机器人发送速度指令以导航到指定的点。的“robotcontroller2”Node使用相同的模型,但将线速度提高一倍以驱动机器人更快。

创建到ROS设备的连接。请输入指定ROS设备的地址、用户名和密码。设备包含了ROS设备的信息,包括可用的可运行的ROS节点运行节点

IP地址=“192.168.203.129”;d = rosdevice (ipaddress“用户”“密码”
d = rosdevice with properties: DeviceAddress: '192.168.203.129' Username: 'user' ROSFolder: '/opt/ros/indigo' CatkinWorkspace: '~/catkin_ws' AvailableNodes: {0×1 cell}
d.CatkinWorkspace =“~ / catkin_ws_test”
d=rosdevice with properties:DeviceAddress:'192.168.203.129'用户名:'user'ROSFolder:'/opt/ros/indigo'CatkinWorkspace:'~/catkin_ws_test'可用节点:{'robotcontroller''robotcontroller2'}

运行ROS核心。ROS核心是主节点,使您能够在ROS设备上运行ROS节点。使用将MATLAB®连接到ROS主节点松香。对于本例,端口设置为11311。松香可以自动为您选择端口,而无需指定此输入。

runCore (d) rosinit (d.DeviceAddress, 11311)
使用NodeURI http://192.168.203.1:59395/初始化全局节点/matlab_global_node_66434

检查所连接的ROS设备上是否有可用的ROS节点。本例中列出的节点是从Simulink®模型按照金宝app从Simulink®生成一个独立的ROS节点金宝app示例。生成两个单独的节点,“机器人控制器”“robotcontroller2”,模型中的线速度分别设置为1和2。

d.AvailableNodes
ans =1×2细胞{' robotcontroller} {' robotcontroller2 '}

启动机器人模拟器使用ExampleHelper金宝appSimulinkRobotROS。此模拟器自动连接到ROS设备上的ROS主机。您将使用此模拟器运行ROS节点并控制机器人。

sim=示例Helpersimulin金宝appkRobotros;

运行ROS节点,指定节点名称“机器人控制器”节点将机器人命令到特定位置([-10 10]).等着看机器人开车吧。

运行节点(d,“机器人控制器”)暂停(10)

复位机器人模拟器,复位机器人位置。或者,单击重置模拟.因为节点仍在运行,所以机器人继续返回到特定的位置。若要停止发送命令,请停止节点。

resetSimulation (sim.Simulator)暂停(5)

停止节点(d,“机器人控制器”

运行“robotcontroller2”节点。此模型以两倍于线速度的速度驱动机器人。重置机器人位置。等待机器人驱动。由于速度增加,您应该会看到更宽的转弯。

运行节点(d,“robotcontroller2”)重置模拟(模拟模拟器)暂停(10)

关闭模拟器。停止ROS节点。断开ROS网络,停止ROS核心。

关闭停止节点(d,“robotcontroller2”)罗斯赫顿
使用NodeURI http://192.168.203.1:59395/关闭全局节点/matlab_global_node_66434
stopCore (d)

输入参数

全部崩溃

ROS或ROS 2装置,指定为罗斯装置Ros2设备对象,分别。

部署的Simulink模型的名称,指定为字金宝app符向量。如果模型名称无效,函数将返回错误。

ROS主机的URI,指定为字符向量。在启动时,节点使用给定的URI连接到ROS主机。

节点的主机名,指定为字符向量。节点使用这个主机名在ROS网络上发布自己,以便其他节点连接到它。

介绍了R2019b