ROS系统中各个设备大多是在不接外网的局域网内进行通讯。
树莓派等微处理器设备,因为不像PC带供时钟工作的电池,断电后微处理器的时间就停止了,又因为是在不接外网的局域网内工作,所以无法自动通过外网更新时间。
这样就可能导致ROS系统中各个设备的时间不一致,出现异常。
刚配置ROS系统时,根据指示,在客户端安装了chrony
sudo apt-get install -y chrony ntpdate
如果不能安装需要将apt-get 升级
sudo apt-get update
根据如下设置,只在客户端安装了chrony 修改了配置文件。
参考网址:ROS官网
这里这客户安装了chrony 然后修改配置文件,是可以用的,正常如果是使用ntp 中的ntpdate 命令,服务器和客户端都需要安装ntp ,不知道chrony 为啥服务器端不需要安装chrony。没有去深究。能用就行。
将时间同步命令ntpdate -q [服务器IP]添加到开机启动项。这样每次重启客户端,就会自动同步时间
后来不知道为什么不能时间同步了。执行sudo ntpdate -q [服务器IP]命令报错。
报错: no server suitable for synchronization found
使用 sudo ntpdate -d [服务器IP] 产看错误原因。
正常情况下stratum这个值得范围是“0~15”。
参考网址:ntp下同步错误
ntp 下的这种方法看起来无从下手,而且大都是复制粘贴。
在ROS官方论坛找到解决办法。
客户换根据原来的设置不变
在服务器端也安装 chrony
然后修改配置文件
最后重启服务器和客户端(一定要重启)
时间可以正常同步了: