【学习记录】小车配置Livox雷达记录
本文仅用于记录自己配置小车Livox雷达遇到的问题,和一些注意事项。
1. Livox-SDK2安装
https://github.com/Livox-SDK/Livox-SDK2
mid360使用的是SDK2,因此下载安装SDK2,并按照官方说明进行编译与安装。
2. livox-ros-driver 驱动
livox-ros-driver: https://github.com/Livox-SDK/livox_ros_driver
livox-ros-driver2: https://github.com/Livox-SDK/livox_ros_driver2
官方说2是1的更新。一开始安装了2,但后面配置 lio-livox
时用到了1,因此也把1也装上了。
安装后,
- 需要修改PC的IP为:192.168.1.50,掩码 255.255.255.0,网关默认为空或192.168.1.1
- livox的IP为:192.168.1.1xx,其中xx为livox的产品号最后两位。我的是 192.168.1.199
- 运行ros时,需要先修改
/livox_ros_driver2/config/MID360_config.json
文件:中的所有ip,为对应的IP。 - 运行指令,有两个:启动rviz可视化的,和仅发布数据的:
roslaunch livox_ros_driver2 rviz_MID360.launch # 打开rviz
roslaunch livox_ros_driver2 msg_MID360.launch # 仅发布数据的
3. LIO-Livox 里程计
3.1 安装依赖项
https://github.com/Livox-SDK/LIO-Livox
需要安装的依赖项包括:ceres
,cmake
等,参考官方的readme
cmake
由于安装ceres依赖 CMake 3.16,同依赖的 gflag/glog 等也依赖cmake版本。因此首先更新cmake,这里安装了 cmake 3.20版本。比较漫长。
ceres-solver
安装ceres需要先后安装gflag,glog,eigen等。
同时编译时报错:No rule to make target '/usr/local/cuda‘,因为工控机安装了cuda但没找到对应的编译。
后面虽然export了环境变量,但编译时出现了一堆cuda的报错。因此在cmake时取消了对cuda的依赖:cmake .. -DUSE_CUDA=OFF
其他安装
还需要eigen,PCL等,但工控机之前已经装过了,所以没有重装。
3.2 编译LIO-Livox
修改ceres改版后Manifold的语法
否则编译时报错:error: ‘LocalParameterization’ is not a member of ‘ceres’
ceres::LocalParameterization *quatParam = new ceres::QuaternionParameterization();
// 将上述的内容替换为下面的。这是ceres最近一次更新更换的名称;
ceres::Manifold *quatParam = new ceres::QuaternionManifold();
修改CMakeLists.txt
在LIO-Livox/CMakeLists.txt
中新增所依赖的 <livox-ros-driver/xxx.h> 头文件的路径(这个头文件是 livox-ros-driver的,这也是为什么安装了driver1):
include_directories(/home/nv/livox_ws/devel/include/livox_ros_driver)
自己没有尝试用 livox_ros_driver2里面的 msg.h 行不行。因为不仅需要改头文件,还需要改代码中的所有namespace,因此懒得修改了。
最后 catkin_make
完成了编译。
# 运行 LIO-Livox,打开rviz界面
roslaunch lio_livox horizon.launch
# 运行 livox 驱动
roslaunch livox_ros_driver2 msg_MID360.launch
#(目测用ros-driver2,和LIO-Livox的driver1的头文件,是兼容的)