话不多说 ,直接来进行配置:
所用软件:windows10下matlab2018b和同一台 电脑上虚拟机 virtubalbox上的Ubuntu——melodic 18.04版本。
第一步:将虚拟机网络设置为桥接模式:
**(注意:在关机状态下选择设置——网路——连接方式选为:桥接网卡,确定即可。当然在虚拟机开启的模式下也可以,但要重启之后才会生效。**)
第二步:打开虚拟机终端terminal 输入ifconfig,红框中即为虚拟机的IP地址,出现下图所示:
(注意:[要在桥接模式下,亲测,如果是10.0.2.15的话,说明不在桥接模式下,请返回上一步)
第三步:打开虚拟机主文件夹,Ctrl +H:显示隐藏文件,选择 .basrc文件打开,在最下面添加一行代码,“192.168.31.47”即为第二步虚拟机的ip,添加完后保存。如下图::
export ROS_IP=192.168.31.47
添加后保存,关闭。
第四步:在虚拟机中关掉终端,重新打开,运行roscore,出现如下:
复制红框的内容 如下
。
ROS_MASTER_URI=http://192.168.31.47:11311/
第五步:在window下打开MATLAB2018b,复制上一步红框的内容,在命令行中输入下面的命令。(其中 set environment 的缩写 设置环境变量的意思, 中间等号去掉,分别打上单引号,中间用逗号隔开):
第四步中roscore运行的红框内容
。
setenv('ROS_MASTER_URI','http://192.168.31.47:11311/')';
第六步:matlab中输入命令 rosinit,结果如下:
这样就完成matlab和虚拟机下ros的连接了,我们可以看一下是怎么连接的。
第七步:在matlab和ros下分别输入 :rosnode list,可以看到以下结果:
我们可以看到,二者是通过节点进行连接的。
第八步:通过小海龟 看效果
在ros中 先 roscore 再输入下面的代码,打开一个小海龟。我们可以通过rosnode list 来查看此时的节点数量,在matlab和ros中都可以打开,就交给读者体验了。
下面展示一些 代码
rosrun turtlesim turtlesim_node
第九步:在matlab中建立一个m文件,如下:
下面展示一些 matlab代码
。
cmdpub = rospublisher('/turtle1/cmd_vel',rostype.geometry_msgs_Twist);
pause(3) %wait to ensure publisher is setup
cmdmsg = rosmessage(cmdpub);
cmdmsg.Linear.X = 10;
cmdmsg.Angular.Z = 10;
send(cmdpub,cmdmsg)
第十步:好了各位,九九归一。 运行matlab上的m文件,等待一会,就能从虚拟机上的ros中看到如下结果:
完结,这样就完成了matlab和虚拟机下ros的通讯,希望对大家有用,欢迎留言交流,我看到会第一时间回复。