Matlab在2015a里引入了ROS工具箱。
官方文档:Robotic System Toolbox的官方文档
使用笔记:
1. 基础命令
rosinit:将当前matlab接入ROS的网络中,需在matlab命令窗口中运行rosinit命令,当前的matlab进程将作为一个ROS Node(称为matlab_node)在ROS master中注册。注意:若此前未开ROS master,则rosinit命令会先开启ROS master,后开启matlab_node。用rosshutdown命令可关闭matlab_node。
此工具箱提供的rostopic、rosmsg、rosnode、rosservice等命令与ROS中的类似。
2. 使用ROS Publisher和Subscriber交换信息
(1)robotics.ros.Node命令可以构造独立于matlab_node的新node。即使在matlab中使用rosshutdown关闭了matlab_node后,这些独立于matlab_node的node不会受影响。
(2)rospublisher和robotics.ros.Publisher均可用于发送消息。其中,使用robotics.Rate或rosrate可以以设定发送消息的频率,具体使用参考以特定频率发送消息。
(3)rossubscriber和robotics.ros.Subscriber均可用于订阅消息。其中,matlab提供两种接收消息的方法:receive和callback函数。
需要注意的是,凡是运行rospublisher、rossubscriber等函数时,均默认使用当前的matlab_node来发送或订阅消息;凡是用robotics.ros.Publisher、robotics.ros.Subscriber均使用指定的node来发送或订阅消息。
例子1:
segmentPub = rospublisher('/simple_msgs', 'std_msgs/Float64');
segmentMsg = rosmessage('std_msgs/Float64');
segmentMsg.Data = 3.33; % 注意,matlab中消息的字段都