Simple-LIO-SAM——(二)环境搭建与运行

运行环境搭建

本项目提供基于ROS2-humble的镜像,并提供脚本可直接在镜像中启动可视化程序。 docker镜像部署见下文。

数据

本项目同时提供转为rosbag2格式的数据包,下载地址:暂时未上传

1
export DATA_DIR=/path/to/download/ros2bag/dir

本项目中默认的配置文件params_default.yaml可以直接运行下面的数据: - park_dataset - walking_dataset - garden_dataset

环境部署

1
2
3
4
5
6
git clone git@github.com:zeal-up/Simple-LIO-SAM.git
cd Simple-LIO-SAM
./docker_run.sh -h # show help message
./docker_run.sh -c /path/to/code/repo -d $DATA_DIR

# ./docker_into.sh # enter the container next time

编译

1
2
3
4
5
6
7
8
9
cd Simple-LIO-SAM
./docker_into.sh

# 下面命令在镜像中执行
cd ~/ros_ws/
mkdir src && cd src &&ln -s /home/splsam/codes ./
cd ..
source /opt/ros/humble/setup.bash
colcon build --packages-select spl_lio_sam

运行

1
2
3
4
5
6
7
8
9
10
11
# docker镜像下运行
cd ~/ros_ws
source ./install/setup.bash
ros2 launch spl_lio_sam run.launch.py

# 新开终端
cd Simple-LIO-SAM
./docker_into.sh
cd data/ros2/
ros2 bag play ./park_dataset/ --topics /points_raw /imu_raw

运行时画面:

Simple-LIO-SAM运行时画面
Simple-LIO-SAM运行时画面

开发环境搭建

由于本项目作者在使用vscode开发c++时经常会遇到无法快捷跳转问题(其实笔者发现有很多人在使用vscode开发时都会有这个问题), 因此一并把解决方案写入项目中。

vscode Cpp函数快捷跳转

  1. 安装cpp扩展 vscode侧边栏进入扩展选项(ctrl+shift+x),搜索c++,安装C/C++ Extension Pack
  2. 打开项目 > File->Open Folder
  3. 保存为工作区 > File->Save Workspace as 选择目标目录及文件(默认以.code-workspace结尾)
  4. 打开刚才保存的工作区文件 > File->Open File 选择刚才打开的工作区文件
  5. 对工作区添加c++库检索路径 在刚才打开的工作区文件中,参考以下格式编辑
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
"folders": [
{
"path": "../Simple-LIO-SAM"
},
],
"settings": {
"C_Cpp.default.includePath": [
"${default}",
"/usr/include/**",
"/usr/include/c++/9/",
"/usr/lib/gcc/x86_64-linux-gnu/8/include/",
"/opt/ros/humble/include/**",

"${workspaceFolder}/include",

// 重点!!这里的路径要设置为ros2工作空间下spl_lio_sam编译出来的头文件
"/path/to/ros2_ws/install/spl_lio_sam/include/spl_lio_sam"

],
"C_Cpp.files.exclude": {
"**/.vscode": true,
"**/.vs": true
},
"C_Cpp.default.cStandard": "c17",
"C_Cpp.default.cppStandard": "c++17",
"python.analysis.include": [
"/opt/ros/humble/lib/python3.10/site-packages",
],
"python.autoComplete.extraPaths": [
"/opt/ros/humble/lib/python3.10/site-packages",
],
"python.analysis.extraPaths": [
"/opt/ros/humble/lib/python3.10/site-packages",
],
}
}

对工作区文件的解释

其实主要起作用的是工作区文件中settings->C_Cpp.default.includePath字段内容,vscode的cpp扩展会读取该工作空间文件下 的这个字段,并将里面的路径进行解析加到头文件解析路径中。

这里有两个路径要注意的

  1. "${workspaceFolder}/include",也就是Simple-LIO-SAM仓库下的include路径
  2. "/path/to/ros2_ws/install/spl_lio_sam/include/spl_lio_sam",这个要设置成你的ros工作空间对应的路径

另外,如果发现自己路径设置完成,但是有些函数还提示下划线,要看看是不是那些函数是c++17或者更高的标准才支持的特性,在上面的配置文件中 设置c++/c标准为17

其余注意

  1. 尽量不要用/path/**的格式添加include路径,虽然看起来很省事,但会影响检索效率
  2. 刚设置完路径需要等待vscode检索构建数据库,在vscode右下方状态条会提示正在进行检索
  3. 上面配置文件中"python.analysis.extraPaths","python.autoComplete.extraPaths","python.analysis.include"是设置python语法提示器的 库检索路径,不同的python提示器插件会使用不同的路径。

Reference

  1. LIO-SAM
  2. LIO-SAM paper
  3. This Project
  4. LIO-SAM-note
  5. LIO-SAM-DetailedNote

本项目所有章节

  1. Simple-LIO-SAM——(一)项目简介
  2. Simple-LIO-SAM——(二)环境搭建与运行
  3. Simple-LIO-SAM——(三)总体流程认识
  4. Simple-LIO-SAM——(四)utility文件解读
  5. Simple-LIO-SAM——(五)点云去畸变模块
  6. Simple-LIO-SAM——(六)特征提取模块
  7. Simple-LIO-SAM——(七)GTSAM快速入门
  8. Simple-LIO-SAM——(八)IMU预积分模块
  9. Simple-LIO-SAM——(九)点云匹配算法详解
  10. Simple-LIO-SAM——(十)后端优化模块详解