viewer
windows 下可以使用
linux 无法使用报错:编译环境问题
SDK
- 下载编译:略
TX2 下编译:
cd Livox-SDK
cd build && \
cmake .. -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++
make
sudo make install
- 修改 静态ip
来自
sudo gedit /etc/network/interfaces
设置ip
auto enp3s0
iface enp3s0 inet static #设置为静态
address 192.168.1.1 #ip 地址 livox默认:ip为:192.168.1.xxx
netmask 255.255.255.0 #子网掩码 livox默认:netmask 255.255.255.0
gateway 192.168.1.1 #网关 livox默认:192.168.1.1
重启网络:
sudo /etc/init.d/networking restart
- 测试
详见
./lidar_sample
./lidar_sample_cc -c "广播码" -l
./Livox-SDK/build/sample_cc/lidar/lidar_sample_cc -c "3JEDHC900100781"
存在问题:
重新插拔会造成网络波动,需要重启网卡才能重新连接
ROS_driver
- 安装
git clone https://github.com/Livox-SDK/livox_ros_driver.git
git clone https://github.com/Livox-SDK/livox_mapping.git
- 编译
catkin_make
- 测试
roslaunch livox_ros_driver livox_lidar.launch bd_list:="3JEDHC900100781"
//bd_list="广播码"
roslaunch livox_mapping mapping_mid.launch
loam_livox
roslaunch loam_livox livox.launch
roslaunch livox_ros_driver livox_lidar.launch bd_list:="3JEDHC900100781"
时间同步
livox 支持如下方式
- PTP 时钟:IEEE 1588v2.0 PTP 网络协议同步
<1> 简介:转载
高精度时间同步协议,可以到达亚微秒级精度,硬件实现时可以达到ns 级的精度,软件实现时通常可以达到ms 级的精度
<2> 特点:
-直接在 MAC 层进行 PTP 协议包分析 , 这样可以不经过UDP 协议栈 , 减少PTP 在协议栈中驻留时间 , 提高同步的精确度。
-主从同步系统,一般采用硬件时间戳,并配合一些对NTP更高精度的延时测量算法
-也可以承载在 UDP 上时 , 软件可以采用 SOCKET 进行收发 UDP包 , 事件消息的 UDP 端口号 319 , 普通消息的组播端口号为 320 ,但其精度就大大降低
-在物理硬件要求主从端都是PTP设备,且网络不能太大,其中间经过的交换机设备也必须支持PTP协议,并且主从时间网络链路唯一,不存在交替的PTP通道。
-采用相对时间同步机制。一个参与者被选作主时间钟,其将发送同步信息到从站。主站将发送同步报文到网络。所有的从站计算时间延迟。
<3>:时钟同步
传输路径延时: D e l a y = [ ( t 4 – t 1 ) – ( t 3 – t 2 ) ] / 2 Delay = [(t4 – t1) – (t3 – t2)]/2 Delay=[(t4–t1)–(t3–t2)]/2
时间偏移: O f f s e t = ( t 2 − t 1 ) − D e l a y = [ ( t 2 – t 1 ) + ( t 3 – t 4 ) ] / 2 Offset = (t2 - t1) - Delay = [(t2 – t1) + (t3 – t4)]/2 Offset=(t2−t1)−Delay=[(t2–t1)+(t3–t4)]/2
<4>:livox作为slave端,和master时钟设备进行ptp时间同步
linux 配置PTP
-安装(需要联网)
git clone http://git.code.sf.net/p/linuxptp/code linuxptp
cd linuxptp
make
sudo make install
-查看内核(需要3.0 以上)
uname -srm
-查看网卡需要支持硬件时间戳
ethtool -T eth0
-开启ptp4l 主时钟
sudo ptp4l -i eth0 -l 6 -m
#-L legacy硬件时间戳
#-i interface 确定一个ptp的端口。
#-m 将消息打印到标准输出。
#可以使用winreshasrk 查看
sudo wireshark
#选择 eth0 如果有时钟证明存在良好
-让系统时间和PTP硬件时钟同步
sudo phc2sys -c eth0 -s CLOCK_REALTIME -O 0
#-c 时间接收设备
#-s 时间源设备
#-o 接收时间源偏移意识按
- GPS:秒脉冲+GPRMC时间数据,GPS时间同步
- PPS:秒脉冲同步,需要通过串口等获取脉冲时间修正点云,不推荐使用。