激光雷达与系统PTP时间同步


前言


一、安装软件工具

sudo apt update
sudo apt-get install linuxptp ethtool

二、确定网卡的时间同步功能

sudo ethtool -T 网卡名字(ifconfig可以查看)

注意:此处显示的hardware或software表示网卡对时间同步具备那些功能。其中,硬件同步能够达到微秒量级,软件同步额外误差在1-2ms

三、将网卡配置为grand master clock并运行

1、hardware

cd /etc/linuxptp
sudo -H gedit ./ptp4l.conf
(找到boundary_clock_jbod,修改值为1,且网卡名添加进去)
另外,为防止网络上存在多个master clock而引起冲突,可以将该网卡的ClockClass (时钟等级)设置的高一些,从而使其作为更优先的PTP参考时钟。设置方法很简单,找到clockClass条目,将原先的内容用“#”注释掉然后添加新的条目如下(原先数值为248,新值为128,数值越小表示优先级越高)
当然,如果确认网络中只有一个master clock,那不需要修改clockClass数值。

2、software
如果网卡只有software,需要将上述文件中的time_stamping参数的值设为software而不是默认的hardware.

sudo mkdir -p /etc/systemd/system/ptp4l.service.d
sudo -H gedit override.conf

在override.conf文件中写入下面内容

[Service]
ExecStart=
ExecStart=/usr/sbin/ptp4l -f /etc/linuxptp/ptp4l.conf

保存退出后,运行(重新加载 ptp4l)

sudo systemctl daemon-reload
sudo systemctl restart ptp4l
sudo systemctl status ptp4l

显示“assuming the grand master role”,表明网卡已经作为grand master clock并正常运行,此时它已经开始对外广播PTP同步数据包。上面还给出了该master clock的ID 为98fa9b.fffe.e8de37。 如果sudo systemctl status ptp4l没有显示以上提示信息,则可以多执行几次来查询最新状态,可能需要过十几秒钟才能看到。

四、用linux系统时间同步网卡的硬件时钟

默认情况下网卡会去抓取操作系统的时间并作为master clock对外提供参考,但是实际上抓取系统时间的操作本身会带来1~2毫秒的延时,导致PTP同步精度下降。为此,可以通过载入更新的phc2sys系统服务组件对网卡的硬件时钟先进行同步,消除这个延时。方法如下:

sudo mkdir -p /etc/systemd/system/phc2sys.service.d
sudo -H gedit override.conf

在override.conf文件中写入

[Service]
ExecStart=
ExecStart=/usr/sbin/phc2sys -O 37 -s CLOCK_REALTIME -c eth0

参数 -O 37 是指系统时间(UTC时间)和PTP时间(TAI时间)的37秒 offset (当前的闰秒数),如果希望雷达时钟以UTC来表示,则可设为 -O 0.

最后,重新运行phc2sys服务:

sudo systemctl daemon-reload
sudo systemctl restart phc2sys
sudo systemctl status phc2sys

五、若需要,配置Lidar

以ouster为例:

nc <lidar_ip> 7501
set_config_param timestamp_mode TIME_FROM_PTP_1588
reinitialize
save_config_params

通过get_time_info获取雷达的时钟信息,可以发现其时间显示为16多亿秒,并且同步模式是TIME_FROM_PTP_1588,这说明雷达时间已经被正确同步上了。

六、确认PTP同步状态

可以通过http http://<lidar_ip>/api/v1/system/time/ptp 来查询当前雷达的PTP同步状态,如下图所示。关注点已经在红框中标出。其中最重要的那个”offset_from_master” 指的就是雷达时钟与PTP master时钟的同步差异,单位为ns。在PTP成功同步时,该数值一般小于1 ms。

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值