运行环境搭建
本项目提供基于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 ./docker_run.sh -c /path/to/code/repo -d $DATA_DIR
|
编译
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
| 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运行时画面
开发环境搭建
由于本项目作者在使用vscode
开发c++
时经常会遇到无法快捷跳转问题(其实笔者发现有很多人在使用vscode开发时都会有这个问题), 因此一并把解决方案写入项目中。
vscode Cpp函数快捷跳转
- 安装cpp扩展 vscode侧边栏进入扩展选项(ctrl+shift+x),搜索
c++
,安装C/C++ Extension Pack
- 打开项目 > File->Open Folder
- 保存为工作区 > File->Save Workspace as 选择目标目录及文件(默认以
.code-workspace
结尾)
- 打开刚才保存的工作区文件 > File->Open File 选择刚才打开的工作区文件
- 对工作区添加
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扩展会读取该工作空间文件下 的这个字段,并将里面的路径进行解析加到头文件解析路径中。
这里有两个路径要注意的
"${workspaceFolder}/include"
,也就是Simple-LIO-SAM仓库下的include路径
"/path/to/ros2_ws/install/spl_lio_sam/include/spl_lio_sam"
,这个要设置成你的ros工作空间对应的路径
另外,如果发现自己路径设置完成,但是有些函数还提示下划线,要看看是不是那些函数是c++17
或者更高的标准才支持的特性,在上面的配置文件中 设置c++/c标准为17
其余注意
- 尽量不要用
/path/**
的格式添加include路径,虽然看起来很省事,但会影响检索效率
- 刚设置完路径需要等待vscode检索构建数据库,在vscode右下方状态条会提示正在进行检索
- 上面配置文件中
"python.analysis.extraPaths","python.autoComplete.extraPaths","python.analysis.include"
是设置python语法提示器的 库检索路径,不同的python提示器插件会使用不同的路径。
Reference
- LIO-SAM
- LIO-SAM paper
- This Project
- LIO-SAM-note
- LIO-SAM-DetailedNote
本项目所有章节
- Simple-LIO-SAM——(一)项目简介
- Simple-LIO-SAM——(二)环境搭建与运行
- Simple-LIO-SAM——(三)总体流程认识
- Simple-LIO-SAM——(四)utility文件解读
- Simple-LIO-SAM——(五)点云去畸变模块
- Simple-LIO-SAM——(六)特征提取模块
- Simple-LIO-SAM——(七)GTSAM快速入门
- Simple-LIO-SAM——(八)IMU预积分模块
- Simple-LIO-SAM——(九)点云匹配算法详解
- Simple-LIO-SAM——(十)后端优化模块详解