从零开始的三维激光雷达SLAM教程第一讲(搭建运行环境,并跑Kitti数据集)
Posted 季马宝宝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始的三维激光雷达SLAM教程第一讲(搭建运行环境,并跑Kitti数据集)相关的知识,希望对你有一定的参考价值。
文章目录
引言
毕业设计打算做三维激光SLAM,记录一些学习历程,也给后面人一点帮助。本教程不涉及SLAM基本概念(如果没有自行补充),主要包含以下几部分内容。
- 搭建激光SLAM的运行环境并运行数据集
- 在Gazebo中构建仿真地图并添加动态障碍物,使用仿真小车采集激光数据。
- A-LOAM详解,算法+代码
- Lego-LOAM详解,算法+代码
本教程所有代码都在github上:github
第一节:运行xx-LOAM与数据集
编译A-LOAM
先从git上clone代码,使用了我常用的ghproxy代理下载,直接clone可能会有网络问题,当然也有很多其他办法
git clone https://ghproxy.com/https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
安装ceres(最小二乘求解库)
安装ceres,先安装依赖
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
然后下载下面的文件并解压进入
https://github.com/ceres-solver/ceres-solver/releases/tag/2.0.0
然后是我们最熟悉的安装(不熟悉说明用的太少了),如果你发现有错很可能是需要加sudo
mkdir build
cd build
cmake ..
make -j8 #用八个核编译
sudo make install # 安装
安装pcl(最常见的点云处理库)
现在的版本基本上都可以一键安装
sudo apt-get install libpcl-dev pcl-tools
注意:如果是在ubuntu20.04在后面编译的时候需要把cmakelist里面的set(CMAKE_CXX_FLAGS “-std=c++11”)改成c++14,因为这个版本pcl只能用C++14编译
安装OPENCV
新版本一般都自带了opencv,但是可能找不到,你需要把#include <opencv/cv.h>
改为#include <opencv2/imgproc.hpp>
你也可以不安装opencv,删除src下的Kittihelper,我后面会使用将Kitti转ROSbag的方式制作数据集,然后山调scanRegistration文件中的包含的opencv头文件,因为根本没用到。
catkin_make
这个不用说了,catkin_make就行了
制作Kitti数据集
其实网上直接就有很多rosbag,但是还是将Kitti数据集制作成rosbag,这样在其他SLAM算法中也可以使用对比,总规是要对比算法效果的。
你可以通过官网下载,也可以通过连接下载(也在github上写了)
然后安装kitti转rosbag工具
pip install kitti2bag
可能会出现以下问题,主要针对noetic的python3问题
- 安装完成提示无命令可以参考这个
- numpy版本不正确且无法卸载可以看这个
下载一组数据和calib文件,解压后在一个文件夹下,运行命令就会生存bag文件
kitti2bag -t 2011_09_26 -r 0001 raw_synced .
运行A-LOAM建图
先启动aloam,kitti用的是64线的velodyne雷达
roslaunch aloam_velodyne aloam_velodyne_HDL_64.launch
再播放rosbag,注意要重新映射topic
rosbag play kitti_2011_09_26_drive_0001_synced.bag /kitti/velo/pointcloud:=/velodyne_points
还有一个阴间问题,如果是noetic版本(问题真多),一定要把所有原文件里面的/camera_init改成camera_init
LOAM安装
配置完aloam后,直接下载catkin_make即可
https://github.com/laboshinl/loam_velodyne.git
需要注意如果出错很可能是这个问题修改cmakelist
如果noetic一样要/camera_init改成camera_init,我提供的链接已经修改好了
然后运行即可
roslaunch loam_velodyne loam_velodyne.launch
可以在launch里面修改线数(默认16线)
Lego-LOAM安装
一样下载编译,但是要安装gtsam和opencv
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
可能有的问题(我其他都正常,在用noetic的时候各种问题,建议不要使用noetic):
- gtsam版本一定要正确
- libmetis.lib
- 点云存在NAN
- 没有intensity
- eigen的int问题
gtsam安装
下载压缩包
wget https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
然后老套路安装就行了,可能cmake …时会出错
参考解决方案
结果
以上是关于从零开始的三维激光雷达SLAM教程第一讲(搭建运行环境,并跑Kitti数据集)的主要内容,如果未能解决你的问题,请参考以下文章