树莓派3b + Ubuntu mate 18.04 + ROS Melodic + 另一台主机ROS通信【下】
程序员文章站
2022-07-07 13:05:59
时间:20200924文章目录一、参考资料二、前言三、树莓派 ROS 与其他机器 ROS 通信流程四、后记一、参考资料ROS Wiki 多机通信二、前言在上篇文章中,树莓派3b+ 和 ubuntu mate 18.04 以及 ros melodic 都已配置完毕,如果这一步没有完成,请参考上篇内容。上篇我这里使用的主机是台式机单ubunntu 18.04系统,ROS版本melodic。树莓派是3b+,ubuntu mate 18.04 + ros melodic本文主要目的是为了弄明....
- 时间:
20200924
一、参考资料
二、前言
- 在上篇文章中,树莓派3b+ 和 ubuntu mate 18.04 以及 ros melodic 都已配置完毕,如果这一步没有完成,请参考上篇内容。上篇
- 我这里使用的主机是台式机单ubunntu 18.04系统,ROS版本melodic。树莓派是3b+,ubuntu mate 18.04 + ros melodic
- 本文主要目的是为了弄明白,主机ROS和树莓派ROS之间互相通信的工作流程。
三、树莓派 ROS 与其他机器 ROS 通信流程
-
双方安装 Chrony 和 ssh
sudo apt-get install chrony sudo apt-get install openssh-server ps -e|grep ssh
最后的命令输出中出现
sshd
说明ssh
已启动,若未启动,运行下面命令。sudo/etc/init.d/ssh restart
-
主机和树莓派中,修改host文件,添加虚拟机和树莓派的 IP 地址和域名。地址和域名之间一定要用 Tab 键,ip可用ifconfig查看。
sudo gedit /etc/hosts #主机中 #添加下面的 xx.xx.xx.xx 主机名 xx.xx.xx.xx 树莓派名 sudo pluma /etc/hosts #树莓派中 #添加下面的 xx.xx.xx.xx 主机名 xx.xx.xx.xx 树莓派名
-
检测网络是否畅通,两边都能Ping通,并且有数据传输就没问题。
# ----- 主机中 -----# ssh 主机名 ping 树莓派名 # ---- 树莓派中 ----# ssh 树莓派名 ping 主机名
-
分别在你的主机和树莓派上运行一下roscore,着重记录下面的内容
# ---- 主机 ----# process[master]: started with pid [29110] ROS_MASTER_URI=http://主机名:11311/ # ---- 树梅派 ----# process[master]: started with pid [2995] ROS_MASTER_URI=http://树梅派名:11311/
-
设置ROS主节点master的位置,到这里,网络畅通,需要设置ros master运行在哪一台机器上,我们先尝试让主节点在树梅派上,然后主机上运行其他节点看看效果。在台式机中的添加环境变量,bash和zsh修改对应的文件,我这里是zsh,修改后保存。
sudo gedit ~/.zshrc export ROS_HOST_NAME=树梅派名 export ROS_MASTER_URI=http://树梅派名:11311/
在树梅派上打开
roscore
,回到台式机新开命令行,查看话题列表,看到已经能够接收rostopic list #输出 /rosout /rosout_agg
尝试在树梅派上运行海龟仿真节点,然后在主机运行键盘控制节点,成功在主机控制了树梅派上的海龟运动,这里用树梅派做主节点的流程就走通了。
-
利用主机做主节点,步骤类似,只不过这次需要修改的是树梅派的环境变量。
四、后记
-
在更换网络环境测试时,树梅派出现了诡异的不能连接网络的情况,具体现象是能够搜索到网络的SSID,点击后一直在连接,wifi图标闪烁,但就是连不上网,用这个方法解决了,链接,步骤简要记录如下
cd /etc/netplan sudo cp 01-network-manager-all.yaml 01-network-manager-all.yaml.bak sudo pluma 01-network-manager-all.yaml #----------------------#修改文件 # Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager # below are WiFi info wifis: wlan0: optional: true access-points: "MyWiFi": password: "my_password" dhcp4: true sudo netplan --debug try sudo netplan --debug generate sudo netplan --debug apply sudo shutdown -r now sudo iw dev wlan0 scan | grep SSID #扫描SSID
本文地址:https://blog.csdn.net/sinat_25923849/article/details/108772139