Windows Matlab 和虚拟机ROS通信问题记录
记录Matlab和ROS之间的通信bugubuntu ping不通windows虚拟机设置为桥接首先ubuntu ifconig查询虚拟机IP 假设为192.169.0.1windows cmd 输入ipconfig查询主机IP假设为192.168.0.2ubuntu操作然后sudo gedit ~/.bashrc输入:export ROS_IP=192.168.0.1然后sudo gedit /
记录Matlab和ROS之间的通信bug
虚拟机设置为桥接
首先ubuntu ifconig查询虚拟机IP 假设为192.169.0.1
windows cmd 输入ipconfig查询主机IP假设为192.168.0.2
ubuntu操作
然后sudo gedit ~/.bashrc输入:
export ROS_IP=192.168.0.1
然后sudo gedit /etc/hosts输入
192.168.0.1 ubuntuname
192.168.0.2 windowsname
这两个操作系统的name在cmd或者终端里hostname查询
windows操作
打开c/system32/driviers/etc/hosts输入
192.168.0.1 ubuntuname
192.168.0.2 windowsname
然后打开matlab
setenv('ROS_MASTER_URI','http://192.168.0.1:11311')
setenv('ROS_IP','192.168.0.2')
rosinit
在ubuntu打开rosrun turtlesim turtlesim_node
然后在matlab里rostopic list看看是否能看到相应话题,看看matlab能不能收到ROS
然后检验matlab能不能发到ROS,matlab执行下面的脚本,看小海龟会不会画圈,ros里能不能收到hello world
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 = 15;
send(cmdpub,cmdmsg)
chatterpub = rospublisher('/chatter',rostype.std_msgs_String)
pause(3)% Wait to ensure publisher is setup
chattermsg = rosmessage(chatterpub);
chattermsg.Data = 'hello world'
send(chatterpub,chattermsg)
pause(5)
注意
我用公司电脑老是matlab能收到ROS,但是ROS收不到Matlab发的,最后发现是公司电脑默认有防火墙,在我自己电脑上重复上述操作,打开防火墙就双向通信都ok
再加一条记录,今天用公司windows调试笔记本想跑carsim车辆模型与公司台式机ubuntu通信捣鼓半天也不行,用的网线直连,能ping通,改了bashrc ,改了两边host,matlab就是连不上rosmaster,最后把台式机换成工控机ubuntu就ok,是网线直连的问题?
更多推荐
所有评论(0)