本来想着电脑用Nomachine和小车进行连接就可以安安心心调试了,但是发现小车上装的ROS并不完整,一些ROS的包也没有,但是直接在车上下载一个是慢,另一个是占用了过多的小车本就不是很大的存储空间,希望在电脑上就能够利用已经存在的包操控小车,而不是在小车上重新安装。所以还是需要进行主从机配置,进行多机互通,一台主机上启动的roscore,其他的从机就都能够正常的使用ROS了,而且信息传输是相互打通的,在同一台机器上一样。


配置查看IP


  配置的第一步就是需要知道主机和从机的IP地址。机器都应该在同一个网段下,如果可以的画一定要固定IP!!!!!学校实验室的网没有办法固定IP上次就差点因为这翻车了。用ifconfig指令查看两台机器的IP地址。




  可以看出电脑的IP为192.168.1.103,小车的IP地址为192.168.1.107,记下这两个地址。


修改~/.bashrc文件


  主从机都需要修改这个文件,这里小车用作主机,电脑用作从机。


  在主机(小车)的~/.bashrc文件末尾添加


  1. export ROS_HOSTNAME=192.168.1.107 #主机IP地址
  2. export ROS_MASTER_URI=http://192.168.1.107:11311 #主机IP地址:11311
  3. export ROS_IP=190.168.1.107 #主机IP地址


  在从机(电脑)的~/.bashrc文件末尾添加


  1. export ROS_HOSTNAME=192.168.1.103 #从机IP地址
  2. export ROS_MASTER_URI=http://192.168.1.107:11311 #主机IP地址:11311
  3. export ROS_IP=192.168.1.107 #主机IP地址


修改/etc/hosts文件


  接下来就要将对方的IP添加进来,主机添加从机IP,从机添加主机IP。不然的话不能够进行双向控制。



sudo gedit /etc/hosts


  主机中添加


192.168.1.103   wangyun-Lenovo-V110-15IKB  #从机IP  从机名


从机中添加


192.168.1.107   ucar-mini   #主机IP    主机名


验证配置


  配置完毕,接下来就要验证是否配置成功。但是运行前先要把之前的终端关掉,不然还是之前的配置!!!!


  运行一个小海龟来验证一下,主机中输入:


  1. roscore
  2. rosrun turtlesim turtlesim_node


  在从机器中用键盘进行控制,从机中运行:


rosrun turtlesim turtle_teleop_key


  可以看出能在从机上控制主机,配置成功。(终端名字是不一样的,并不是在一台机器上运行的!!!)反过来也是一样的。但是会有一个问题,从机上好像就无法正常单独运行roscore了,必须依赖主机上的roscore。但是配置完成后小车的运行压力就会小很多,rviz什么的就可以在电脑上运行,不用占用小车主板的资源了。


参考教程:https://blog.csdn.net/zhanghm1995/article/details/106781954


                      http://wiki.ros.org/cn/Robots/Xbot/tutorial/Network%20Configuration