IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> SLAM相关笔记 -> 正文阅读

[人工智能]SLAM相关笔记

同步定位与建图(Simultaneous Localization And Mapping,SLAM)

常用SLAM: gmapping、hector_slam| cartographer、rgbdslam、ORB_SLAM

开源代码

虽然SLAM比较难,但是令人欣慰的是,SLAM领域有很多优秀的开源代码可以学习。列举几个主流的如下:

稀疏法:

ORB-SLAM2:支持单目,双目,RGB-D相机

https://github.com/raulmur/ORB_SLAM2

半稠密法:

LSD-SLAM:支持单目,双目,RGB-D相机

https://vision.in.tum.de/research/vslam/lsdslam

DSO:单目

https://vision.in.tum.de/research/vslam/dso

稠密法

Elastic Fusion:RGB-D相机

https://github.com/mp3guy/ElasticFusion

BundleFusion:RGB-D相机

https://github.com/niessner/BundleFusion

RGB-D SLAM V2:RGB-D相机

https://github.com/felixendres/rgbdslam_v2

多传感器融合:

VINS:单目 + IMU(惯性测量单元)

https://github.com/HKUST-Aerial-Robotics/VINS-Mono

OKVIS:(单目、双目、四目)+ IMU

https://wp.doc.ic.ac.uk/sleutene/2016/02/04/release-of-okvis-open-keyframe-based-visual-inertial-slam/

三个基础问题:

第一, 如何获得环境信息, 即环境特征提取问题;

第二, 怎样进行和已知全局地图的匹配, 即数据关联问题;

第三, 如何进行环境描述, 即地图表示问题。

激光SLAM

起步更早,在理论、技术和实际应用上都相对成熟,但成本高及缺乏语义信息等问题

Lego-LOAM、 LIO-SAM

2D激光SLAM(室内):

(1)Gmapping

一种基于滤波的SLAM算法,采用RBPF的方法,先定位后建图,每一个粒子都会单独建立一个地图。

该算法实现时间早,是目前比较成熟和可靠的算法,应用也非常广泛。

该算法在室内小场景和低特征环境下,具有较高的精度,鲁棒性较高,对传感器的频率要求并不是很高,同时计算量也很小。

但是,Gmapping对于里程计的要求很高,在进行比较大的或者是复杂的场景下,计算量会大大增加,而且由于回环检测的缺乏,误差会不断累积,建模的效果会比较差。

(2)Cartographer

谷歌公司于2016年发布的基于图优化的SLAM算法。

算法引入闭环检测,对建图过程中产生的误差进行消除,从而提高在大规模场景下建图的精度。Cartographer将测得的环境数据进行处理,生成栅格地图,将生成的子图与上一次扫描所获得的子图进行比对,并插入到上一次的子图中进行子图更新优化。当没有新的子图插入时,完整子图的构建就完成了。当完成多个完整子图的构建以后,后端会开始进行回环检测,对前面建立的子图进行优化,并且消除累计误差。

3D激光SLAM (室外):

(1)LOAM

于2014年由张吉等人提出,是一种低漂移实时激光雷达测距建图算法,是比较老的一种3DSLAM算法。

算法将定位与建图分开,用两个不同算法分别加以实现然后再结合,保证实时性和精度要求。但是这种算法没有回环检测环节,因此算法产生的漂移误差会随时间不断增加。现在LOAM已经不再开源,但是之后的许多开发者对该算法的一些思想和方法进行借鉴,产生了一些基于LOAM改进的算法。

(2)SegMap

Seg
Match的改进算法,同样是基于数据驱动。SegMap进行建图是使用了数据驱动描述,在进行3D片段建图以后引入数据驱动的片段描述符,然后对语义信息进行提取,用于提高对环境变动的鲁棒性,但该算法会产生漂移,并随着时间不断累积。

视觉SLAM(VSLAM)

信息丰富,成本低廉, SLAM领域的重要发展方向

存在难以兼顾实时性与准确性、鲁棒性有待提升,在室外动态复杂场景下的应用还面临着很大挑战

单目视觉SLAM

基于概率框架的单目视觉SLAM和非概率框架的单目视觉SLAM。

双目视觉SLAM

利用两个相机从不同角度拍摄的三维场景图像进行三维重建,通过立体匹配算法寻找对应同一三维点的投影点对、计算两张图像的视差图,再根据三角化原理估计深度信息,以恢复场景的三维结构。

RGB-D SLAM

将RGB-D相机与红外传感器相结合,得到的图像包括普通的RGB彩色图像和深度信息图像,在普通相机的基础上增加了深度测量的功能,可以得到每个像素点的具体深度信息。

视觉SLAM问题:

(1)拍摄相机选择问题。相机本身质量,拍摄环境的影响因素等都会影响相机标定的精度,同时影响图像质量。高质量相机拍摄区域大,但也要考虑到成本问题,低成本相机分辨率不够高,影响精度。

(2)特征检测与匹配算法问题。视觉SLAM算法在实现时需要地图表示、信息感知、数据关联、定位与构图问题。图像特征检测与匹配算法对传感器位姿初始情况有重要影响,其处理速度、效率与性价比问题仍有待进一步提高。

(3)后端优化问题。后端优化是减小成图误差、提高建图精度的主要方法,目前仍有待改善。

特征提取

常见的环境特征:点特征、线特征、弧特征和面特征。
其中点特征还分为平面点、断点 (Breakpoint) 特征、角点 (Corner) 特征和边界点等

直线特征提取方法:

目前(2017)广泛使用的激光扫描数据直线段分割提取算法有: S&M (Split-and-Merge) 算法(Split-and-Merge采用的是最小二乘方拟合直线, 速度最快、正确率最高, 在SLAM技术中应用和改进较广泛。)、
RANSAC(Random Sample Consensus) 算法、LR (Line-Regression) 算法、LT(Line-Tracking) 算法和EM (Expectation Maximization) 算法。

特征点提取方法:

基于曲率的边界边缘提取方法、基于特征值的边界边缘提取方法、基于邻域信息的边界边缘提取方法、聚类分析

数据关联 (Data Association, DA)

也称为一致性问题 (Consistency)
指对当前传感器观测数据与地图中已经存在的数据及特征进行比对更新时, 确定它们是否来源于环境中的同一物体

三个主要问题 : 新特征标志的检测、特征标志之间的匹配以及地图之间的匹配

常用的数据关联方法

最近邻算法 (Nearest Neighbor, NN) 、联合相容分支定界 (Joint Compatibility Branch and Bound, JCBB) 算法、多假设跟踪 (Multithytheis Tracker, MHT) 算法和联合概率数据关联算法(Joint Probability Data Association, JPDA)

SLAM中的常用方法

非线性最小二乘: 高斯牛顿法、 列文伯克-马夸尔特方法 ch6.2

特征点法
? 角点:Harris角点、FAST角点、GFTT角点 p153
? 局部图像特征:SIFT、 SURF、ORB P154

计算相机运动
2d-2d : 对极几何 p165
2d-3d : PnP p180
PnP求解方法:3对点估计位姿的P3P、直接线性变换(DLT)、EPnP(Efficient PnP)、UPnP 以及非线性优化的 光束法平差(Bundle Adjustment, BA)
3d-3d : ICP p196
ICP求解方法:利用线性代数求解(主要是SVD)、利用非线性优化方式求解(类似于BA)

直接法: P218

利用H的稀疏性加速计算的方法
Schur消元(SLAM中也称Marginalization边缘化)
常用的鲁棒核函数: Huber核、Cauchy核、Tukey核

ROS教程

【1】景元泉,王跃辉,韩伟,邹恒,邹宇杰.无人驾驶车辆与移动机器人SLAM方法综述[J].电子世界,2021(13):4-5.

【2】李晨曦,张军,靳欣宇,李广敬,李强.激光雷达SLAM技术及其在无人车中的应用研究进展[J].北京联合大学学报,2017,31(04):61-69.

【3】从零开始一起学习SLAM | 学习SLAM到底需要学什么?

【4】 高翔、张涛等 《视觉SLAM十四讲》

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 16:45:14  更:2021-12-02 16:46:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 2:27:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码