(4)构建特征点云地图--2D激光雷达地图构建介绍

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
TODO:写完再整理

文章目录

  • 系列文章目录
  • 前言
  • 一、2D激光SLAM的介绍
    • 1.主要应用领域
    • 2.2D激光SLAM的输入
    • 3.2D激光SLAM的输出
  • 二、2D激光SLAM的关键技术
    • 1.2D激光SLAM的后端回环检测方法
      • (1)功能
      • (2)后端回环检测类型
  • 三、2D激光SLAM建图算法的发展
    • 1.基于滤波器的方法建图【比较不流行了,但原理基础很重要】
      • (1)基于滤波器Filter-based的SLAM算法发展历程
      • (2)FastSLAM算法的介绍
      • (3)Gmapping【用的非常多但是效果不好】
    • 2.基于图优化的方法建图【比较流行】
      • (1)基于Graph-based的算法发展历程
      • (2)非线性最小二乘原理
        • (1)非线性最小二乘解决的问题
        • (2)非线性最小二乘求解过程
      • (3)非线性最小二乘在SLAM中的应用
        • (1)图的构建方法
        • (2)误差函数
        • (3)固定坐标系
        • (4)构建线性系统及求解
      • (4)基于图优化的方法建图原理
      • (5)基于图优化的方法建图效果
      • (6)cartographer算法的介绍
    • 3.基于已知位姿的建图算法(Grid-based)
      • 方法一:覆盖栅格建图算法【gmapping用的】
        • (1)栅格地图的特征
        • (2)数学描述
        • (3)假设条件
        • (4)地图估计理论推导
        • (5)算法流程
        • (6)覆盖栅格建图算法特点
      • 方法二:计数(Count Model)建图算法
        • (1)概念
        • (2)数学描述
        • (3)观测模型
        • (4)地图估计
    • 4.基于激光融合视觉
      • (1)视觉提供的信息
      • (2)融合解决的问题
  • 四、SLAM的经验


前言

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!

本文先对2D激光雷达地图构建介绍做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章


提示:以下是本篇文章正文内容

一、2D激光SLAM的介绍

1.主要应用领域

(1)服务型机器人(室内建图定位导航)
(2)室内移动机器人

2.2D激光SLAM的输入

(1)IMU数据
(2)里程计数据
(3)单线激光雷达(Lidar)

3.2D激光SLAM的输出

(1)覆盖栅格地图
(2)机器人的轨迹(建图是的轨迹)
.
.

二、2D激光SLAM的关键技术

1.2D激光SLAM的后端回环检测方法

(1)功能

用于优化修正地图,每次回环都会优化一次地图,使得地图更加精确所以,【防盗标记–盒子君hzj】要先判断回环条件,在进行最小二乘算法优化地图
回环条件很重要,条件太苛刻就永远不会回环不会进行地图优化,条件太宽松就会一直瞎回环优化,浪费大量的计算机资源

(2)后端回环检测类型

(1)Scan-to-Scan
【使用两次扫描的数据进行匹配】
【没有典型应用,已经被淘汰了,信息量太少,非常容易匹配错误】
.

(2)Scan-to-Map
【使用当前扫描的数据和已经建立的子地图进行匹配】
【典型应用是cartorgraphor】

(3)Map-to-Map
【使用当前建立的地图和已经建立的子地图进行匹配】
【从开源的项目中使用得很少,是未来的方向】

(4)Branch and Bound & Lazy Decision
效果很好

.
.

三、2D激光SLAM建图算法的发展

1.基于滤波器的方法建图【比较不流行了,但原理基础很重要】

(1)基于滤波器Filter-based的SLAM算法发展历程

1)(卡尔曼)EKF-SLAM----90年代
2)FastSLAM----2002~2003
3)Gmapping----2007
4)Optimal RBPF----2010

主要用到贝叶斯滤波原理(泛化)方法粒子滤波原理(具体化)方法,这两种原理我另外开博客介绍,(比较理论)【防盗标记–盒子君hzj】请转战一下

这里我简单介绍一下FastSLAMGmapping

(2)FastSLAM算法的介绍

(1)Fast-SLAM介绍
(4)构建特征点云地图--2D激光雷达地图构建介绍_第1张图片
.
.
(2)Fast-SLAM算法流程
(4)构建特征点云地图--2D激光雷达地图构建介绍_第2张图片
.
.
(3)Fast-SLAM存在的问题及优化
问题优化一
(4)构建特征点云地图--2D激光雷达地图构建介绍_第3张图片
问题优化二
(4)构建特征点云地图--2D激光雷达地图构建介绍_第4张图片
问题优化三
(4)构建特征点云地图--2D激光雷达地图构建介绍_第5张图片

(4)Fast-SLAM最终算法流程
(4)构建特征点云地图--2D激光雷达地图构建介绍_第6张图片

(3)Gmapping【用的非常多但是效果不好】

(1)Gmapping特性
(1)目前使用的最为广泛的2D激光SLAM算法
(2)在较小的环境中能实现较好的建图效果
(3)以FastSLAM为基本原理
(4)在FastSLAM的基础上进行了优化1和优化2
(5)Gmapping没有使用优化3

(2)阅读Gmapping源码
具体看我另外的博客分解cartographer吧,转战一下~.
.
.

2.基于图优化的方法建图【比较流行】

(1)基于Graph-based的算法发展历程

1)Globally Consistent Range Scan For Environment Mapping----1997
2)Incremental Mapping of Large Cyclic Environments----1999
3)Karto SLAM----2010
4)Cartographer----2016

(2)非线性最小二乘原理

(1)非线性最小二乘解决的问题

(4)构建特征点云地图--2D激光雷达地图构建介绍_第7张图片

(2)非线性最小二乘求解过程

(1)总的过程
示意图表示
(4)构建特征点云地图--2D激光雷达地图构建介绍_第8张图片
(2)数学表示
(4)构建特征点云地图--2D激光雷达地图构建介绍_第9张图片
.
.
.
(2)误差函数
(4)构建特征点云地图--2D激光雷达地图构建介绍_第10张图片
.
.
.

(3)求解目标函数
(4)构建特征点云地图--2D激光雷达地图构建介绍_第11张图片

(3)非线性最小二乘在SLAM中的应用

(1)图的构建方法

(1)里程计测量检测方法【里程计测量又称预测值】【防盗标记–盒子君hzj】
(4)构建特征点云地图--2D激光雷达地图构建介绍_第12张图片
机器人从节点i运动到节点i+1,里程计测量得到此运动信息。并在对应的节点中连上一条边,边为里程计测量值。
.
.
(2)回环检测方法
(4)构建特征点云地图--2D激光雷达地图构建介绍_第13张图片
节点i和节点j观测到同样的环境信息,两者进行匹配得到相对位姿。并在对应的节点中连一条边,边为匹配的相对位姿。用信息矩阵来描述本次匹配的可靠性
.
.

(2)误差函数

(1)误差函数的表达式
(4)构建特征点云地图--2D激光雷达地图构建介绍_第14张图片

(2)误差函数的线性化
(4)构建特征点云地图--2D激光雷达地图构建介绍_第15张图片
.
.

(3)固定坐标系

(4)构建特征点云地图--2D激光雷达地图构建介绍_第16张图片
.
.

(4)构建线性系统及求解

(4)构建特征点云地图--2D激光雷达地图构建介绍_第17张图片
.
.
.

(4)基于图优化的方法建图原理

(4)构建特征点云地图--2D激光雷达地图构建介绍_第18张图片
用一个图(Graph)来表示SLAM问题,图中的节点来表示机器人的位姿,两个节点之间的边表示两个位姿的空间约束,构建图,并且找到一个最优的配置(各节点的位姿),让预测与观测的误差最小

(1)把SLAM建立地图的过程认为是一个建立“图”的过程
(2)机器人经过每一个地方的位姿认为是一个节点
(3)节点与节点之间的约束关系,我们认为是一个“边缘”向量
当机器人绕一个地图一圈形成一个闭环是,机器人的起点和终点理论上是重合的,但是在实际情况下,两者不一定会重合,【防盗标记–盒子君hzj】会存在一个误差,这个误差值T的计算方法有两种,一种是根据前向通道里程计不断累加的方法计算误差值T1,一种是根据起点传感器观测的数据和终点传感器观测的数据计算误差值T2,我们建立一个精确的地图必须优化,使得T1=T2即回环误差等于0,因此引出两个概念
(1)前向建图:相当于通过里程计数据,累计机器人移动时的位姿
(2)回环图优化:【防盗标记–盒子君hzj】通过非线性最小二乘法生成一个误差向量,用于优化图,使得T1=T2即回环误差等于0
.
.
.

(5)基于图优化的方法建图效果

(4)构建特征点云地图--2D激光雷达地图构建介绍_第19张图片
.
.

(6)cartographer算法的介绍

1)基于图优化的SLAM算法
2)比较完善的匹配系统,包含建图和定位
3)目前效果最好的开源激光SLAM系统
4)有人在专门的维护,不断增加新的特性

具体看我另外的博客分解cartographer吧,转战一下~
.
.
.

3.基于已知位姿的建图算法(Grid-based)

已知机器人当前位姿(xyw)和当前激光雷达的扫描数据scan,建立出一个地图,【防盗标记–盒子君hzj】环境地图是机器人进行定位和规划的前提

方法一:覆盖栅格建图算法【gmapping用的】

(1)栅格地图的特征

1)把环境分解成一个一个的小栅格,每个栅格有两种状态:占用(Occupied)或者空闲(free)
2)栅格地图属于非参的空间模型
3)随着地图的增大,内存需求急剧增加
4)天然区分可通行区域,适合进行轨迹规划

(2)数学描述

(4)构建特征点云地图--2D激光雷达地图构建介绍_第20张图片

(3)假设条件

(1)在建图的过程中,环境不会发生改变
(2)栅格地图中的栅格是一个二元随机变量,只能取两个值:占用(Occupied)或者空闲(Free),p(m)=1表示被占用,p(m)= 0表示空闲,p(m)= 0.5表示不知道(Unknown)
(3)地图中的每一个栅格都是独立的的,因此数学表达式可以表示为:
在这里插入图片描述
(4)地图估计问题表示为:
在这里插入图片描述
因此,估计环境的地图只需要对每一个独立的栅格进行估计即可
.
.
.

(4)地图估计理论推导

(4)构建特征点云地图--2D激光雷达地图构建介绍_第21张图片
.
.

(5)算法流程

(4)构建特征点云地图--2D激光雷达地图构建介绍_第22张图片

(6)覆盖栅格建图算法特点

该算法对某一个栅格进行操作的时候,只有加法操作【防盗标记–盒子君hzj】,因此具有非常高的更新速度
更新的时候,需要知道传感器的逆测量模型

激光雷达的逆观测模型
(4)构建特征点云地图--2D激光雷达地图构建介绍_第23张图片
.
.

方法二:计数(Count Model)建图算法

(1)概念

对于每一个栅格统计两个量:misses(i)和hits(i)
1)misses(i)表示栅格i被激光束通过的次数,即被标为free的次数
2)hits(i)表示栅格i被激光束击中的次数,即被标为occupied的次数
3)Hits(i)/(misses(i) + hits(i))表示栅格i的极大似然估计
4)当hits(i) / (missed(i) + hits(i))超过阈值则认为该栅格为Occupied,否则认为栅格是Free的

(2)数学描述

(4)构建特征点云地图--2D激光雷达地图构建介绍_第24张图片
.
.

(3)观测模型

(4)构建特征点云地图--2D激光雷达地图构建介绍_第25张图片
.
.

(4)地图估计

(4)构建特征点云地图--2D激光雷达地图构建介绍_第26张图片
.
.

4.基于激光融合视觉

(1)视觉提供的信息

1)高精度的里程信息
2)信息量丰富的视觉地图

(2)融合解决的问题

在这里插入图片描述

四、SLAM的经验

(1)好的算法不是万能的,甚至说效果贡献一般,工程复现做应用,更看重的是硬件性能、传感器精度,及吸热结构等等

(2)目前激光雷达SLAM比视觉SLAM的应用面广,【防盗标记–盒子君hzj】且二维的激光雷达比三维的激光雷达应用更多。在市场上价格是产品的一个很大的考虑因素,传感器和处理的选择不一定要用做高端的

你可能感兴趣的:(4,地图数据结构mapping,自动驾驶,算法,计算机视觉)