在运行LIO-SAM之前需要联合标定激光雷达和IMU的外参,官方推荐的方案是浙大的开源联合标定方案:lidar_IMU_calib。
github链接:https://github.com/APRIL-ZJU/lidar_IMU_calib
在安装前需要安装:
sudo apt-get install ros-melodic-pcl-ros ros-melodic-velodyne-msgs
不同的Ubuntu的版本对应不同的运行代码,只需要将melodic修改为自己对应的版本即可。
安装流程可以参考下面步骤:
# init ROS workspace
mkdir -p ~/catkin_li_calib/src
cd ~/catkin_li_calib/src
catkin_init_workspace
# Clone the source code for the project and build it.
git clone https://github.com/APRIL-ZJU/lidar_IMU_calib
# ndt_omp
wstool init
wstool merge lidar_IMU_calib/depend_pack.rosinstall
wstool update
# Pangolin
cd lidar_IMU_calib
./build_submodules.sh
## build
cd ../..
catkin_make
source ./devel/setup.bash
注:
使用20.04版本运行代码会报一堆错误
如:error: ‘minusscalar’ is not a member of ‘pcl::traits’
error: ‘minus’ is not a member of ‘pcl::traits’等等
需要做以下修改:
(参考链接:Ubuntu 20.04 issues · Issue #48 · APRIL-ZJU/lidar_IMU_calib · GitHub)
在src/ndt_omp CMakeLists.txt中:
(1)
将 add_definitions(-std=c++11 -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2)
改为 add_definitions(-std=c++14 -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2)
(2)
将 find_package(PCL 1.7 REQUIRED)
改为 find_package(PCL 1.10 REQUIRED)
--------------------------------------
由于暂时没有数据集,故在此处挖个坑,有数据集了再放演示图。
--------------------------------------
2023.10.12我来填坑啦。
数据集的地址为:https://drive.google.com/drive/folders/1kYLVLMlwchBsjAoNqnrwq2N2Ow5na4VD?usp=sharing
我从里面下载了两个文件,分别为户外和户内的ros包。放在百度网盘里面了。
这是链接:https://pan.baidu.com/s/1GHT5_JDWn9FhrUNHbilrMg
提取码:ygye
如果运行报了这样这样的错误,则需要在下面的位置修改一下。
[li_calib_gui-2] process has died [pid 12400, exit code -11...
下载之后需要在
(1)./catkin_li_calib/src/lidar_IMU_calib/include/utils/dataset_reader.h中大概101行的位置修改bool read(const std::string path...为void read(const std::string path。
(2)./catkin_li_calib/src/lidar_IMU_calib/thirdparty/Kontiki/include/kontiki/sensors/constant_bias_imu.h中大概83行的位置修改bool LockGyroscopeBias(bool lock) ...改为void LockGyroscopeBias(bool lock)
和void LockAccelerometerBias(bool lock)修改为bool LockAccelerometerBias(bool lock)
然后修改./calib.sh中的录制包的位置,然后运行程序:
cd src/lidar_IMU_calib/
./calib.sh
接下来,就会弹出一个界面。
先点击Initialization,然后点击DataAssociation,等待大概10s就会弹出:
再点击BatchOptimization,就可以在上方获取标定结果了。除此之外,标定结果也会保存在ros包的路径下。
完结~~~~~~撒花~~~~~~~~~