ROS多机通信(ssh控制)

这种方法需要在局域网范围内进行,通信距离取决于WIFI模块的传播距离

1、连接同局域网

将主机和从机连接相同的网络,在同一局域网内。例如192.168.0.*(前三位相同)

网络会自动给每个机器一个IP

2、安装SSH

sudo apt-get install ssh
sudo apt-get install openssh-server
sudo apt-get install openssh-client

3、id_rsa.pub文件传递

在本地计算机生成公钥和私钥:

ssh-keygen

ROS多机通信(ssh控制)_第1张图片

 然后将id_rsa.pub 文件复制到远程计算机

scp ~/.ssh/id_rsa.pub [email protected]:/tmp

4、修改 /etc/hosts文件 

加入无人机zhao和b的ip (感觉没必要,不影响)

 ROS多机通信(ssh控制)_第2张图片

 5、修改~/.bashrc(所有通信机器)

export ROS_HOSTNAME=192.168.0.122 #本机IP
export ROS_MASTER_URI=http://192.168.0.122 #主机IP

所有机器的主机IP都应该一样,变的只是本机IP,所有消息都会传到主机

6、登录SSH进行控制及查看消息

出现这个错误连接不上采用下面命令

ssh -o StrictHostKeyChecking=no 192.168.xx.xx

需要在主机运行ROSCORE,进入到从机后才能启动ros命令。如果想单独用从机运行,则把bashrc文件加的那两行export注释即可。

关于消息,只要是在同一局域网下,所有设备上的rostopic共享,在主机运行rosbag,从机也可以也受到topic。 ROS多机通信(ssh控制)_第3张图片

在主机收到两从机的图片topic 

你可能感兴趣的:(ROS常见问题及操作,无人机协同,ssh,运维)