前期准备
主机:自己的笔记本
工控机:被控制的系统
注意:两台设备必须连接同一个局域网
查看工控机ip地址
ifconfig
工控机ip地址为:192.168.1.100
(系统名为:cxd)
配置ssh连接
1.在本地计算机生成公钥和私钥
ssh-keygen
(一直回车确定)
2.然后将id_rsa.pub 文件复制到远程计算机
scp ~/.ssh/id_rsa.pub cxd@192.168.1.100:/home/cxd
(cxd@192.168.1.100改成被自己控制设备的名字和ip)
【输入yes】
到此就配置完成了。。
注意:如果报错:
ssh: connect to host 192.168.1.100 port 22: Network is unreachablelost connection
有可能是因为自己电脑没有ssh,需要安装:
sudo apt-get install ssh
远程控制实现
远程控制时直接输入:
ssh cxd@192.168.1.100
然后就可以看见自己的终端里名称已经变成被控制设备的名字了
此时就可以自己输入控制命令了。。
例如:运行被控制设备的ros
输入:
roscore
ssh免密连接
有些时候每次ssh连接都需要输入密码,比较麻烦,只要再配置一下就能免密连接了:
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
至此,ssh远程控制工控机已经实现了,但是如果要查看工控机的消息(如视频,点云等)权限不够,则需要配置一下ros多机通信
ros多机通信
1.打开hosts文件(笔记本及工控机匀配置)
sudo gedit /etc/hosts
将笔记本及工控机ip地址及名字写入两台设备的hosts文件
192.168.1.102 xx #笔记本
192.168.1.100 cxd #工控机
2.配置.bashrc文件(笔记本及工控机匀配置)
分别在两台设备中打开.bashrc文件
(在home目录中按ctrl+h就可以打开)
笔记本
export ROS_HOSTNAME=xx #本机名
export ROS_MASTER_URI=http://192.168.1.100:11311 #工控机ip(不要写错了)
工控机
export ROS_HOSTNAME=cxd #本机名
export ROS_MASTER_URI=http://192.168.1.100:11311 #工控机ip
(11311是ros多机通信固定的,不要改)
改完.bashrc文件保存退出后需要source一下才能生效
source ~/.bashrc
3.使用举例
【用的时候先通过ssh控制工控机,例如启动一个rosbag,然后在笔记本里面也能查看话题消息了】
如:
(通过ssh启动工控机一个rosbag)
这时在笔记本直接可以查看话题消息
3.注意
配置ros多机通信后,再用自己笔记本的ros时可能会不好使
如输入roscore
如果需要使用笔记本的ros,在.bashrc文件中把刚才加的那两句注释掉就行了
如再输入roscore,ros就能正常运行了