在连接的ROS设备上运行多个ROS节点。可以使用Simulink®模型生成ROS节点,以在ROS网络上执行不同的任务。然后将这些节点部署在ROS设备上,并可以独立于S金宝appimulink®运行。
这个例子使用了两个不同的Simulink模型,它们被部署为ROS金宝app节点。看到从Simulink®生成一个独立的ROS节点金宝app并按照说明生成和部署ROS节点。重复两次,然后给它们命名“机器人控制器”
和“robotcontroller2”
这个“机器人控制器”
Node向机器人发送速度指令以导航到指定的点。的“robotcontroller2”
Node使用相同的模型,但将线速度提高一倍以驱动机器人更快。
创建到ROS设备的连接。请输入指定ROS设备的地址、用户名和密码。设备包含了ROS设备的信息,包括可用的可运行的ROS节点运行节点
.
d = rosdevice with properties: DeviceAddress: '192.168.203.129' Username: 'user' ROSFolder: '/opt/ros/indigo' CatkinWorkspace: '~/catkin_ws' AvailableNodes: {0×1 cell}
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。松香
可以自动为您选择端口,而无需指定此输入。
使用NodeURI http://192.168.203.1:59395/初始化全局节点/matlab_global_node_66434
检查所连接的ROS设备上是否有可用的ROS节点。本例中列出的节点是从Simulink®模型按照金宝app从Simulink®生成一个独立的ROS节点金宝app示例。生成两个单独的节点,“机器人控制器”
和“robotcontroller2”
,模型中的线速度分别设置为1和2。
ans =1×2细胞{' robotcontroller} {' robotcontroller2 '}
启动机器人模拟器使用ExampleHelper金宝appSimulinkRobotROS
。此模拟器自动连接到ROS设备上的ROS主机。您将使用此模拟器运行ROS节点并控制机器人。
运行ROS节点,指定节点名称“机器人控制器”
节点将机器人命令到特定位置([-10 10]
).等着看机器人开车吧。
复位机器人模拟器,复位机器人位置。或者,单击重置模拟.因为节点仍在运行,所以机器人继续返回到特定的位置。若要停止发送命令,请停止节点。
运行“robotcontroller2”
节点。此模型以两倍于线速度的速度驱动机器人。重置机器人位置。等待机器人驱动。由于速度增加,您应该会看到更宽的转弯。
关闭模拟器。停止ROS节点。断开ROS网络,停止ROS核心。
使用NodeURI http://192.168.203.1:59395/关闭全局节点/matlab_global_node_66434