ROS能有效得控制机器人,而MATLAB也是个数据处理和开发的利器,更重要的是,现在MATLAB现在已经支持ROS,只需安装Robotic tool box即可,当前的关键就是如何实现MATLAB和ROS的通信。
ROS上的通信是通过节点发布和订阅话题来实现的,同样的,我们也需要将MATLAB视作一个节点,进行话题的发布和订阅。
1.ROS下的配置。
这部分与我之前的主机同虚拟机的配置相同。
http://blog.csdn.net/banzhuan133/article/details/77887599
这里主机的IP为192.168.0.1,虚拟机的IP为192.168.0.2
除了网络配置,还需要配置下Ubuntu下的环境变量。
sudo gedit ~/.bashrc
打开.bashrc之后在最后添上
export ROS_MASTER_URI=http://192.168.0.2:11311
export ROS_HOSTNAME=192.168.0.2
第一条指令为ROS将要连接的Master主机的名称地址
第二条为本机的ROS名称地址
之后运行roscore
2.MATLAB配置
setenv('ROS_MASTER_URI','http://192.168.0.2:11311')
setenv('ROS_IP','192.168.0.1')
rosinit('http://192.168.0.2:11311’)
注意:这个地方一定要关掉防火墙,血的教训!
如何检查是否成功进行了通信?
在Terminal下输入
可以看见出现了一个名为matlab_global_node的节点
同样,在MATLAB下也可以
3.一个简单的例子
首先在Ubuntu下运行小乌龟
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
之后在MATLAB下
rostopic echo /turtle1/pose