本文链接:https://blog.csdn.net/weixin_43473122/article/details/110123619
关于Livox雷达时间同步问题(TIME SYNC)
参考大疆Github官网的Livox时间同步官方教程,无法进行时间同步的情况下(时间同步主要用于和外接imu进行loam建图),可以尝试参考以下操作进行时间同步:
1、查看网卡
ifconfig
2、查看网卡是否支持ptp
ethtool -T xxx(网卡名)
3、安装ptpd
sudo apt install ptpd
4、启动master时针
sudo ptpd -M -i xxx(网卡名) -C
按上述操作后,在livox viewer的设置面板中,若显示1588 signal即完成雷达与系统的硬件级时间同步。
注意:我们发现大量的笔记本电脑的网卡是不支持PTP的。
补充:设置ptpd服务为开机自启动
1、建立开机启动服务
新建开机启动服务
sudo vim /etc/systemd/system/my_ptpd.service
#该文件是自己建立的启动服务文件,
#/etc/my_ptpd.sh 是你要启动的脚本所在的路径以及文件名,其他保持默认格式即可
[Unit]
Description=/etc/my_ptpd.sh Compatibility
ConditionPathExists=/etc/my_ptpd.sh
[Service]
Type=forking
ExecStart=/etc/my_ptpd.sh
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
注意Type=forking
,服务启动模式的选择非常重要,具体参考systemd.service 中文手册。
2、创建要自启动的守护进程(父进程)
sudo vim /etc/my_ptpd.sh
#!/bin/sh
# 这里可以加入若干个子进程脚本
/home/spongebob/livox_ws/start_ptpd.sh
给启动脚本添加权限 sudo chmod +x /etc/my_ptpd.sh
3、创建实际需要运行的子进程
sudo vim /home/spongebob/livox_ws/start_ptpd.sh
#!/bin/sh
PASSWORD="your_password"
# 等待5秒
sleep 5
#你如果做系统移植时,可以把 roo t的密码参数设置为 export,然后这里设置为 PASSWORD=${ROOT_PASSWORD},就是直接提取你的 root 密码
#具体你的系统保持密码的参数是什么要看你的移植的系统了,我的是 ROOT_PASSWORD
echo ${PASSWORD} | sudo -S ptpd -M -i enp89s0 -C #echo ${PASSWORD} | sudo -S 是实现脚本自动把执行sudo命令时要输入的密码输入进去
给启动脚本添加权限 sudo chmod +x /home/spongebob/livox_ws/start_ptpd.sh
4、更新服务
$ sudo systemctl daemon-reload
# 测试服务是否可以正常执行
$ sudo systemctl start my_ptpd.service
# 然后查看进程是否正常运行
$ ps aux | grep ptpd
root 2670 0.0 0.0 14948 4840 pts/0 S+ 13:44 0:00 sudo systemctl start my_ptpd.service
root 2671 0.0 0.0 14956 4032 pts/0 S+ 13:44 0:00 systemctl start my_ptpd.service
root 2673 0.0 0.0 2616 588 ? Ss 13:44 0:00 /bin/sh /etc/my_ptpd.sh
root 2674 0.0 0.0 2616 528 ? S 13:44 0:00 /bin/sh /home/spongebob/livox_ws/start_ptpd.sh
root 2677 0.0 0.0 15196 4800 ? S 13:44 0:00 sudo -S ptpd -M -i enp89s0 -C
root 2678 0.0 0.0 4996 3256 ? S 13:44 0:00 ptpd -M -i enp89s0 -C
spongeb+ 2725 0.0 0.0 12116 712 pts/1 S+ 13:46 0:00 grep --color=auto ptpd
如果测试服务可以正常运行,那么将其使能为自启动
$ sudo systemctl enable my_ptpd.service
# 然后重启即可
如果哪天我们想要取消这个自启动服务
$ sudo systemctl disable my_ptpd.service
# 然后重启即可