文章目录
- 测试通信
- 设置ROS_MASTER_URI
-
- 启动CCMSLAM
-
- SSH远程控制
-
背景:主机(笔记本,用户名rex):安装CCMSLAM。
从机(Nano,用户名nano):安装CCMSLAM,并可以驱动CSI摄像头,发布ROS话题。
测试通信
两台设备连到同一个网下,我用的是手机热点。
由于我的主机(笔记本)用的是虚拟机,需要把虚拟机网络设置为桥接模式,方法是:虚拟机 ->设置 ->网路适配器 ->桥接模式(自动):
在两台pc上分别输入命令查看IP:
ifconfig
将两台pc的/etc/hosts
文件中加入对方的IP和计算机名,分别在两台pc终端输入命令:
sudo gedit /etc/hosts
另一台计算机同理。
测试网络是否连通:
主机终端输入:
ping nano
从机终端输入
ping rex
如果能接受数据,表示两台pc连通,则进行下一步。
设置ROS_MASTER_URI
整个分布式系统只能有一个Master,需要在每个设备都设置。这里设置rex
为主机,nano
为从机。
主机rex终端输入:
sudo gedit ~/.bashrc
在末尾加入:
export ROS_HOSTNAME=rex
export ROS_MASTER_URI=http://rex:11311
然后更新一下:
source ~/.bashrc
从机nano终端输入:
sudo gedit ~/.bashrc
在末尾加入:
export ROS_HOSTNAME=nano
export ROS_MASTER_URI=http://rex:11311
然后更新一下:
source ~/.bashrc
启动CCMSLAM
主机rex
启动ROS核心
roscore
启动CCMSLAM服务端
roslaunch ccmslam Server.launch
启动rviz
rviz
从机nano
启动摄像头ROS节点
配置摄像头
USB摄像头配置参考:https://blog.csdn.net/klsjadkls/article/details/115856515
CSI摄像头配置参考:https://blog.csdn.net/klsjadkls/article/details/116207446
roslaunch jetson_nano_csi_cam jetson_csi_cam.launch
待ROS核心启动后,启动代理端
roslaunch ccmslam Client0_euroc.launch
查看效果
主机rex端查看效果:
查看rostopic:
rostopic list
rviz中添加话题后,查看:
总是跟踪失败,画不出图来,就不放跟踪的图了o(╥﹏╥)o
至此,ROS通信配置成功(ಥ_ಥ)
SSH远程控制
使用主机(rex)远程控制从机(Nano)
参考:https://blog.csdn.net/jackghq/article/details/54974141
配置SSH
主机是控制端,需要安装openssh-client
;从机是被控端,需要安装openssh-server
检查是否安装了openssh-client
和openssh-server
:
dpkg -l | grep ssh
这里都安装好了,如果没安装,参考下面步骤:
安装ssh-server服务
sudo apt-get install openssh-server
确认ssh-server是否启动了:
ps -e | grep ssh
如果看到sshd那说明ssh-server已经启动了。
如果没有则可以这样启动:sudo /etc/init.d/ssh start
或sudo service ssh start
启动SSH进行远程控制
格式:
ssh [username]@[IP]
比如这里用主机(rex)控制从机(Nano),其中Nano的IP为:192.168.134.220
则终端输入:
ssh nano@192.168.134.220
然后就可以远程控制了,结合上面的ROS多机通信运行,可以实现局域网远程控制前端运行CCMSLAM前端构建局部地图,把数据返回服务端构建全局地图。
至此,ROS通信+SSH远程控制配置成功(ಥ_ಥ)
转载请备注:https://blog.csdn.net/klsjadkls/article/details/116237166
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)