1、首先确保虚拟机是桥接网卡模式

确保是桥接模式即可

2、找到虚拟机的ip,作为主节点

使用命令查看虚拟机的ip,因为笔记本电脑自己有一个ip,而虚拟机使用桥接模式又有一个新的ip

ifconfig #enp3s0

可以得到`

ens33     Link encap:以太网  硬件地址 00:0c:29:95:6c:4a  
          inet 地址:192.168.31.241  广播:192.168.31.255  掩码:255.255.255.0
          inet6 地址: fe80::9233:27ec:c80a:d0c3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:9551 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:1392 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:1654323 (1.6 MB)  发送字节:222636 (222.6 KB)

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:3295 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:3295 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:505985 (505.9 KB)  发送字节:505985 (505.9 KB)

从而得出虚拟机的ip为:192.168.31.241

3、修改虚拟机(主机)配置文件

打开配置文件,因为修改了配置文件,为了避免之后的印象,如不需要和matlab连接,则最好修改回来

sudo vim ~/.bashrc

在该文件最下面加上

export ROS_IP=192.168.31.241

4、启动主节点

roscore

5、在同一个电脑上打开matlab

首先我们需要在matlab上安装 “Robotics_System_Toolbox” 工具箱,matlab2015B及以后自动安装有这个工具箱,但是可能由于激活的缘故,使得在输入rosinit 命令的时候会出现 “Undefined function or variable 'rosinit’ ”,这里我的是2019b,所以没有遇到这种情况,不过现在应该也不会使用2015之前的matlab了,如果实在需要,可以参考https://blog.csdn.net/crp997576280/article/details/102718771

下面进行配置很简单

setenv('ROS_MASTER_URI','http://192.168.31.241:11311')#主节点ip
#下面这个命令用不到,但是也进行一下说明
setenv('ROS_IP','192.168.31.241') #若另外一台机器上的matlab则要独自iP,需要改为另外台机ip,比如setenv('ROS_IP','192.168.1.102')

在matlab上启动节点,首先需要关闭节点

rosshutdown

然后重新启动

rosinit

提示:

The value of the ROS_MASTER_URI environment variable, http://192.168.31.241:11311, will be used to connect to the ROS master.
Initializing global node /matlab_global_node_71063 with NodeURI http://192.168.31.166:54207/

至此,成功!

6、测试

使用小乌龟测试

在虚拟机上:
首先安装小乌龟

sudo apt-get install ros-kinetic-turtlesim 

然后启动节点,这里已经启动roscore主节点

rosrun turtlesim turtlesim_node

在matlab里:

rostopic list

显示出

/rosout              
/rosout_agg          
/turtle1/cmd_vel     
/turtle1/color_sensor
/turtle1/pose 

测试通过!

有用的话,点个赞呀!

7、参考连接

如果有其他问题,可以评论提问,或者可以参考下面两个链接

之后我在使用发布的scan数据,进行gmapping建图的时候,仍需要看这个文章
https://blog.csdn.net/qq_43176116/article/details/86095482

https://blog.csdn.net/geerniya/article/details/84880514

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐