SLAM实操入门(七):使用Velodyne16线激光雷达与A-Loam进行三维SLAM


前言

上文介绍使用自己的多线激光雷达来可视化、采数据,接下来就是介绍怎么使用港科大改进的A-Loam进行建图。

注意注意!第六和第七章使用的都是Ubuntu18.04系统!!!!!!

前文链接如下

1 A-LOAM

参考论文如下:LOAM: Lidar odometry and mapping in real-time

在这里插入图片描述

A-LOAM 是 LOAM的先进实现(Advanced Implementation),使用 Eigen 和 Ceres Solver 库来简化代码结构。它一种实时的里程计和映射方法,使用来自 6 自由度移动的 2 轴激光雷达的距离测量。距离测量是在不同的时间接收的,并且运动估计中的错误会导致结果点云的错误配准。迄今为止,可以通过离线批处理方法构建连贯的 3D 地图,通常使用闭环来校正随时间的漂移(建图过程走一个闭环路线,进行重新匹配与地图修正)。我们的方法无需高精度测距或惯性测量即可实现低漂移和低计算复杂度。获得这种性能水平的关键思想是同时定位和映射的复杂问题的划分,该问题旨在通过两种算法同时优化大量变量。

  • 一种算法以高频率但低保真度执行里程计来估计激光雷达的速度
  • 另一种算法以低一个数量级的频率运行,用于点云的精细匹配和配准

两种算法的组合允许该方法实时映射。该方法已通过大量实验以及 KITTI 里程计基准进行了评估。结果表明,该方法可以达到最先进的离线批处理方法水平的准确性(2014年,目前来看任然很好用)。

Github工程的链接如下:Advanced implementation of LOAM

在这里插入图片描述

此代码是从 LOAM 和LOAM_NOTED修改的,简洁明了且没有复杂的数学推导和冗余操作。对于 SLAM 初学者来说是很好的入门学习项目

2 预备条件

2.1 Ubuntu和ROS

Ubuntu 要求为64位16.04版本或18.04版本。
ROS为 Kinetic 或 Melodic 。

(18.04以上应该也能运行,但是可能会有一些小bug,建议还不熟悉的同学使用推荐版本搭建项目)

2.2 Ceres Solver(Ceres求解器)

Ceres安装的参考地址:Ceres Solver

Ceres Solver 是一个开源 C++ 库,用于建模和解决大型、复杂的优化问题。它可用于解决具有边界约束和一般无约束优化问题的非线性最小二乘问题。也是A-LOAM的支持包。

  • 首先安装依赖包
# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev

依赖包安装完成

  • 进入下载链接,点击如图所示连接,下载Ceres安装包

在这里插入图片描述

  • 进入下载文件
cd Downloads/
  • 使用ls看看文件名叫啥,使用tar解压
tar zxf ceres-solver-2.1.0.tar.gz

在这里插入图片描述

  • 创建工程文件,进入,编译
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.1.0

在这里插入图片描述

  • 成功后,执行以下命令
make -j3
make test
# Optionally install Ceres, it can also be exported using CMake which
# allows Ceres to be used without requiring installation, see the documentation
# for the EXPORT_BUILD_DIR option for more information.
make install

安装完成

2.3 PCL(Point Cloud Library)

PCL安装网址:Point Cloud Library

sudo apt install libpcl-dev

3 创建A-LOAM工程

  • 回到主页,创建工程文件
sudo mkdir -p catkin_ALoam/src/
  • 进入工程文件中
cd catkin_ALoam/src/
  • 拉取工程
sudo git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git

在这里插入图片描述

  • 返回上级目录,编译
cd ..
catkin_make

source一下bash文件以配置环境变量

source devel/setup.bash

搞定!

3 使用A-Loam进行SLAM

这时候得把第六章的代码一起跑,一个拿数据,一个来建图。

  • Ctrl+Alt+T打开新终端,启动激光雷达
roslaunch velodyne_pointcloud VLP16_points.launch
  • 启动A-Loam建图
 roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch

结果如下

在这里插入图片描述
把雷达拿起来动一动试试!

注意动作幅度最好不好太大,也不要给俯仰和滚转的运动。

  • 创建地图的过程视频如下,我简单站起来走了两步

A-Loam建图过程

建图效果如下

在这里插入图片描述
运动轨迹如下(站起来鬼畜)

在这里插入图片描述
看看地图的细节和不同角度

A-Loam创建的地图


总结

本文介绍了使用Velodyne的16线激光雷达进行建图,算法是港科大2014年重构的A-Loam,希望能帮到大家。

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴恩达亲传弟子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值