因为我虚拟机ip和树莓派ip前三位不一样,所以需要先给虚拟机手动设置一个静态ip。
一、虚拟机设置静态ip(非必须)
1.1 虚拟机设置静态ip
sudo nano /etc/netplan/01-netcfg.yaml
把下面内容加进去
network:version: 2renderer: networkdethernets:eth0:dhcp4: noaddresses:- 192.168.1.150/24 # 添加前缀长度gateway4: 192.168.1.1 # 确保这是你的路由器的 IP 地址nameservers:addresses:- 8.8.8.8- 8.8.4.4
192.168.1.150是我给虚拟机设的静态ip,
然后192.168.1.1这个是我设置的网关,
addresser和gateway4之间的关系是,ip的前三位必须对应,最后一位随便设个有效主机地址就行
gateway4:192.168.1.x
写完之后crtl+x 然后y保存,enter退出
1.2 重新应用配置
sudo netplan apply
结束后,在终端运行ifconfig查看ip是否设置成功。
二、配置环境
我主要是参考这篇博客的内容,感兴趣可自行查看,(为了自己查看方便,我就还是抄一下)
ROS开发之如何将树莓派采集的雷达、IMU数据在虚拟机rviz中显示
2.1 获取虚拟机和树莓派的ip及用户名
注意:用户名是终端每行开头后面那个
获取ip指令
ifconfig
2.2 配置hosts文件
2.2.1测试虚拟机和树莓派之间是否能ping通
在树莓派端执行 ping 虚拟机ip
ping 192.168.1.150
在虚拟机执行 ping 树莓派ip
ping 192.168.1.107
2.2.2 配置树莓派hosts文件
(1)打开hosts文件
sudo nano /etc/hosts
(2)填充内容
在文件的最后一行,把虚拟机的ip和用户名加进去
192.168.1.150 ubuntu
ctrl+x 然后y保存,enter退出
2.2.3 配置虚拟机hosts文件
(1)打开hosts文件
sudo nano /etc/hosts
(2)填充内容
在文件的最后一行,把树莓派的ip和用户名加进去
192.168.1.107 raspberrypi
三、配置bashrc文件
3.1 配置树莓派bashrc文件
(1)打开树莓派bashrc文件
sudo nano ~/.bashrc
(2)填充内容
export ROS_MASTER_URI=http://【树莓派IP】:11311
export ROS_HOSTNAME=【树莓派IP】eg:
export ROS_MASTER_URI=http://192.168.1.107:11311
export ROS_HOSTNAME=192.168.1.107
ctrl+x y enter
(3) 加载环境变量
source ~/.bashrc
注:以上更改后,必须跟以下虚拟机或其他设备联网才能正常运行ros,若需要树莓派单机运行,可将以上两行代码更改为(暂时没看懂这句话,先抄下来):
export ROS_MASTER_URI=http://localhost:11311
export ROS_HOSTNAME=localhost
3.2 配置虚拟机bashrc文件
(1)打开虚拟机bashrc文件
sudo nano ~/.bashrc
(2) 填充内容
export ROS_MASTER_URI=http://【树莓派IP】:11311
export ROS_HOSTNAME=【虚拟机IP】eg:
export ROS_MASTER_URI=http://192.168.1.107:11311
export ROS_HOSTNAME=192.168.1.150
ctrl+x y enter
(3) 加载环境变量
source ~/.bashrc
四、验证
(1)树莓派端操作
roscore
(2) 虚拟机端操作
rviz
若虚拟机rviz启动成功则说明,配置成功!