从零开始的三维激光雷达SLAM教程第一讲(搭建运行环境,并跑Kitti数据集)

Posted 季马宝宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始的三维激光雷达SLAM教程第一讲(搭建运行环境,并跑Kitti数据集)相关的知识,希望对你有一定的参考价值。

文章目录

引言

毕业设计打算做三维激光SLAM,记录一些学习历程,也给后面人一点帮助。本教程不涉及SLAM基本概念(如果没有自行补充),主要包含以下几部分内容。

  1. 搭建激光SLAM的运行环境并运行数据集
  2. 在Gazebo中构建仿真地图并添加动态障碍物,使用仿真小车采集激光数据。
  3. A-LOAM详解,算法+代码
  4. 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问题

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安装

下载压缩包

wget https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip

然后老套路安装就行了,可能cmake …时会出错
参考解决方案

结果

以上是关于从零开始的三维激光雷达SLAM教程第一讲(搭建运行环境,并跑Kitti数据集)的主要内容,如果未能解决你的问题,请参考以下文章

我的机器人

激光雷达SLAM 关键技术

激光雷达SLAM算法

激光雷达SLAM包括以下几种方案:

mlcc激光雷达与相机外参标定初体验

激光雷达导航技术的优势都有哪些?请说具体一点!