1.环境依赖
ubuntu 20.04 + ROS1
gtsam
sudo add-apt-repository ppa:borglab/gtsam-release-4.0
sudo apt install libgtsam-dev libgtsam-unstable-dev
其他依赖
sudo apt-get install ros-noetic-fake-localization
sudo apt-get install ros-noetic-robot-localization
2.创建工作空间和克隆代码
mkdir -p liosam/src
cd liosam/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
3.修改文件
cpp
3.1 catkin_ws/src/LIO-SAM/include/ 文件夹下的 utility.h 文件,
替换其中的 #include <opencv/cv.h> 这一行,改为:#include <opencv2/opencv.hpp>
3.2 将catkin_ws/src/LIO-SAM/include/ 文件夹下的 utility.h 文件
#include <pcl/kdtree/kdtree_flann.h>剪切到#include <opencv2/opencv.hpp>前面
3.3 /catkin_ws/src/LIO-SAM/ 文件夹下的 CMakeList.txt 文件,
替换其中的 set(CMAKE_CXX_FLAGS "-std=c++11") 这一行,
改为:set(CMAKE_CXX_FLAGS "-std=c++14")
4.编译和运行launch
cpp
catkin_make -j4
cpp
source ./devel/setup.bash
roslaunch lio_sam run.launch
5.下载官方数据集,运行数据集
这里用网盘官方数据集的百度网盘链接 提取码: 1i2p
5.1 casual_walk_2.bag这个包不用修改,直接运行即可
5.2 outdoor.bag、west.bag
将 params.yaml
改成如下:
1)extrinsicRot 和 extrinsicRPY 设为单位矩阵
cpp
# Extrinsics (lidar -> IMU)
extrinsicTrans: [0.0, 0.0, 0.0]
# extrinsicRot: [-1, 0, 0,
# 0, 1, 0,
# 0, 0, -1]
#extrinsicRPY: [0, 1, 0,
# -1, 0, 0,
# 0, 0, 1]
extrinsicRot: [1, 0, 0,
0, 1, 0,
0, 0, 1]
extrinsicRPY: [1, 0, 0,
0, 1, 0,
0, 0, 1]
2)imuTopic: "imu_raw" 改为 imuTopic: "imu_correct"
cpp
imuTopic: "imu_correct" # IMU data
5.3 park.bag
这个数据集有 gps 数据,更改文件 params.yaml
文件即可使用gps数据;
1)
cpp
gpsTopic: "odometry/gpsz" 改为 gpsTopic: "odometry/gps"
2)
cpp
useImuHeadingInitialization: false 改为 useImuHeadingInitialization: true
6.保存pcd 和查看pcd
修改config/params.yaml
文件的这两行
cpp
savePCD: false # https://github.com/TixiaoShan/LIO-SAM/issues/3
savePCDDirectory: "/Downloads/LOAM/" # in your home folder, starts and ends with
false 改为true
/Downloads/LOAM/ 改为/your save directory/
ps: 1. 保存路径要以 / 开始和结束
2.这里路径已经从 /<usrname>/home/开始算了,所以直接是保存到家目录下
关闭Rviz,就可以保存到指定路径
查看pcd用命令
cpp
pcl_viewer XXX.pcd