在局域网内将笔记本与turtlebot3的系统时间同步
笔记本上安装Uuntu16.04,turtlebot3_burger的树莓派上安装了Ubuntu16 MATE,通过路由器组建局域网,没有与外网连接。由于burger没有挂外网,二者的时间不同步,在对burger进行自主导航的时候总是出现Costmap2DROS transform timeout的警告,即两个系统的消息收发时间不同步。
下面介绍
如何通过ntp对外网进行时间同步
1.主从分别安装chrony
$ sudo apt-get install chrony
2.主从分别安装ntpdate
$ sudo apt-get install ntpdate
3.主从分别同步时间
$ sudo ntpdate ntp.ubuntu.com
如何通过ntp来对局域网内的其进行时间同步。
(1)配置服务器(笔记本) 连接局域网之前的操作(以下操作需要联网) 1.同样需要在在笔记本上安装ntp:
$ sudo apt install ntp
2.在文件/etc/ntp.conf中配置ntp参数
$ sudo vim /etc/ntp.conf
3.在文件中添加:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap server 127.127.1.0 # local clock() fudge 127.127.1.0 stratum 10
第一条指令中的ip(局域网分配地址的前3段,最后一段为0,ifconfig查看) 为了能让192.168.1.0/ 255.255.255.0网段上的机器能和本机进行时间同步; 后两条指令是为了让本机的硬件时间和本机的ntp服务进行时间同步。 连接局域网之后的操作(以下操作不需要联网) 4.重启ntp服务:
$ sudo /etc/init.d/ntp restart
(2)配置客户端(turtlebot3) 连接局域网之前的操作(以下操作需要联网) 1.在树莓派安装ntp
$ sudo apt install ntp
2.在文件/etc/ntp.conf中配置ntp参数
server 192.168.1.100 # 笔记本的ip地址
连接局域网之后的操作(以下操作不需要联网) 3.重启ntp服务:
$ sudo /etc/init.d/ntp restart
通常会出现ntp.service failed 错误 需要手动同步时间
$ sudo /usr/sbin/ntpdate 192.168.1.100
(若还是失败,等待2分钟,再次同步时间就好啦)
Ubuntu Mate更换无线网在/etc/wpa_supplicant目录下的wpa_supplicant.conf 更换无线网的优先级
priority的值越大优先级越高!!! 换完优先级记得重启