参考:ROS by example volume 1
两个电脑都运行:
$ sudo apt-get install chrony
然后分别在电脑上运行:
$ sudo nano /etc/hosts
$ sudo nano /etc/hostname
将原本主机的名称换一个名称再加上.local,如在笔记本上改为zf.local在树莓派上改为pi.local
在笔记本上运行:
$ ping pi.lcoal
在树莓派上运行:
$ ping zf.local
都会有以下的语句出现表示运行正常
PING pi.local (192.168.191.2) 56(84) bytes of data.
64 bytes from 192.168.191.2: icmp_seq=1 ttl=64time=6.72 ms
64 bytes from 192.168.191.2: icmp_seq=2 ttl=64time=6.67 ms
如果还是报错,那么运行:
$ sudo service avahi-daemon restart
下一步决定哪一个是主机,哪个是客机,一般全自动机器人是作为主机,在树莓派上运行:
$ export ROS_HOSTNAME=pi.local
$ roscore
在笔记本上运行:
$ export ROS_HOSTNAME=zf.local
$ export ROS_MASTER_URI=http://pi.local:11311
为了确保两个电脑时间同步性,运行:
$ sudo ntpdate -b pi.local //一定要运行这个,否则笔记本电脑接收不到数据
得到
23 Nov 17:01:22 ntpdate[2743]: step time server192.168.191.2 offset -48.763026 sec
再运行:
$ rostopic list
出现:/rosout 和/rosout_agg
以上只要你一打开主机或者客机的终端一次,就要重复一次以上的步骤,如果有一段时间要用这样的方式,那么在主机输入:
$ echo “export ROS_HOSTNAME=pi.local” >>~/.bashrc
在客机输入:
$ echo “export ROS_HOSTNAME=zf.local” >>~/.bashrc
$ echo “export ROS_MASTER_URI=http://pi.local:11311”>> ~/.bashrc
查看修改~/.bashrc可以通过输入 $ nano ~/.bashrc进行查看
像一些必须要用机器人进行驱动的都要用机器人去运行程序,其他的像RVIZ就可以在电脑上运行了。也可以在笔记本电脑上运行在机器人上的文件,运行:
$ ssh pi.local //遇到的问题就是要输密码,但是树莓派的启动密码根本不行,所以还是以下命令靠谱,
$ ssh pi@192.168.191.2 //来自树莓派官网,IP在树莓派运行hostname -I得知。
我在树莓派上接上hokuyo机关雷达,运行它的驱动,在笔记本上运行rviz就可以看到数据了。