slam一些资料

====================================第一部分=========================================

SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。 SLAM最早由Smith、Self和Cheeseman于1988年提出。

  SLAM问题可以描述为: 机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。

slam一些资料 slam一些资料

 slam一些资料slam一些资料

  slam一些资料slam一些资料

slam一些资料slam一些资料

 

slam一些资料

 slam一些资料

(Robust Optimization for Simultaneous Localization and Mapping  Niko Sunderhauf (PhD thesis) 2012" P22)

 

 Visual SLAM(视觉SLAM)

Cameras are employed as the only exteroceptive sensor. It is called visual SLAM.

In the last 10years, published articles reflect a clear tendency for using vision as the only external sensorial perception system to solve the problem of SLAM (Paz et al. 2008; Davison et al. 2007; Klein and Murray 2007; Sáez and Escolano 2006; Piniés and Tardós 2008).

The main reason for this tendency is attributed to the capability for a system based on cameras to obtain range information, and also retrieving the environment’s appearance, color and texture, giving a robot the possibility of integrating other high-level tasks like detection and
recognition of people and places. Furthermore, cameras are less expensive, lighter and have lower power consumption.

Unfortunately, there might be errors in the data due to the following reasons: insufficient camera resolution, lighting changes, surfaces with lack of texture, blurred images due to fast movements, among other factors.

 

Visual odometry视觉里程计
In robotics and computer vision, visual odometry is the process of determining the position and orientation of a robot by analyzing the associated camera images. It has been used in a wide variety of robotic applications, such as on the Mars Exploration Rovers.
 

Bundle Adjustment 光束法平差

Given a set of images depicting a number of 3D points from different viewpoints, bundle adjustment can be defined as the problem of simultaneously refining the 3D coordinates describing the scene geometry as well as the parameters of the relative motion and the optical characteristics of the camera(s) employed to acquire the images, according to an optimality criterion involving the corresponding image projections of all points.
 

粒子滤波就是指:通过寻找一组在状态空间中传播的随机样本来近似的表示概率密度函数,用样本均值代替积分运算,进而获得系统状态的最小方差估计的过程,这些样本被形象的称为“粒子”,故而叫粒子滤波。《粒子滤波原理及其应用》胡士强  ISBN 9787030283702

 

机器人“绑架”指的是机器人在运动过程中发生了滑动,机器人本身并不知道此情况的发生。

 

数据关联(Data Association),也被称为一致性问题(Correspondence Problem)是SLAM面临的挑战之一。数据关联是指建立在不同时间、不同地点获得的传感器测量之间、传感器测量与地图特征之间或者地图特征之间的对应关系,以确定它们是否源于环境中同一物理实体的过程。数据关联的正确与否对于SLAM问题中的状态估计至关重要。

 

扫描匹配    在栅格地图的建立过程中主要是应用范围传感器(例如超声阵列、激光雷达等),传感器的一次测量称为一次扫描(Scan)。扫描点之间一般不存在直接的对应关系,所以此时的数据关联需要确定两幅或者多幅扫描中源于相同物理实体的区域,从而确定获得各个传感器扫描时刻机器人定位间的相对位置关系。这类数据关联问题一般称为扫描匹配问题(Scan Matching)。

根据SLAM 问题中环境地图的类型,可以将SLAM 算法分为

  • 基于特征地图的SLAM 算法(Feature-based SLAM )
  • 基于栅格地图的SLAM 算法(Grid-based SLAM) 
  • 基于拓扑- 栅格地图SLAM 算法(Topological-Metric SLAM ) 
  • 基于密度地图的SLAM 算法(Dense SLAM)

根据SLAM 问题中模型的描述不同,可以将SLAM 算法分为:

1 基于状态空间描述的一类算法,如扩展卡尔曼滤波(Extended Kalman Filter,EKF )、压缩扩展卡尔曼滤波(Compressed Extended Kalman Filter, CEKF )等

2 基于样本集描述的一类算法,如Rao-Blackwellized  粒子滤波 SLAM,快速SLAM(FastSLAM)、DP-SLAM等

3 基于信息空间描述的一类算法,如扩展信息滤波(Extended Information Filter, EIF)、稀疏连接-树滤波(Thin Junction-Tree Filter, TJTF)等

4 基于差异描述的一类算法,如扫描匹配(Scan Matching)


====================================第二部分=========================================

SLAM算法分为三类:Kalman滤波、概率滤波、图优化

Kalman滤波方法包括EKF、EIF;概率滤波包括RBPF,FastSLAM是RBPF滤波器最为成功的实例, 也是应用最为广泛的SLAM方法;

SLAM分为Full SLAM和Online SLAM

常见的二维激光SLAM算法

1、GMapping is a highly efficient Rao-Blackwellized particle filer to learn grid maps from laser range data.

2、Tinyslam又称CoreSLAM
The advantage of DP-SLAM over CoreSLAM is thus the thoretical ability not to be lost in long corridors, and this
is the goal indeed of the map-per-particle concept - not the loop closing which can’t be achieved in DP-SLAM without an external process. As a matter of fact, we decided that this advantage didn’t worth the complexity - especially as we could rely on a good odometry on our platform and given that our goal was to close rather small loops (exploring laboratories instead of corridors...).
As the idea of CoreSLAM was to integrate laser information in our localization subsystem based on particle filter.
 
3、DPSLAM works by maintaining a joint distribution over robot poses and maps via a particle filter. The algorithm associates a map to each particle, and focuses on the problem of sharing parts of maps among particles in order to minimize memory (and time through map copy). The problem with DP-SLAM is that it is rather complex to integrate into an existing particle filter based localization susbystem
 
4、Hector-SLAM
 
5、Karto-SLAM

http://www.zhihu.com/question/35116055/answer/62001013

http://blog.csdn.net/dourenyin/article/details/48055441

视觉SLAM算法

1、orbslam 是14-15年被一个西班牙博士做的,目前还在做,最近又发了新文章:Probabilistic Semi-Dense Mapping from Highly Accurate Feature-Based Monocular SLAM。
orbslam可以看做是PTAM的一个延伸。ptam想必做visual slam 的都知道,它是第一个将tracking和mapping分成两个线程实现的实时slam系统,07年出来的时候很惊艳。几乎成立后来feature-based slam方法的标准。orbslam 算是这个思路的延伸,于ptam相比它又加了一个loopclosing的线程。这个系统基于ptam,个人感觉效果也更好一些(毕竟ptam相对较老),整合了covisible graph,基于bagofwords 做relocalization等技术。

常见的一些开源代码(高博整理):[转载]
* rtabslam https://github.com/introlab/rtabmap_ros#rtabmap_ros 
* ORB-slam https://github.com/raulmur/ORB_SLAM 
* rgbd-slam-v2 https://github.com/felixendres/rgbdslam_v2 
* lsd-slam https://github.com/tum-vision/lsd_slam 
* dvo-slam https://github.com/tum-vision/dvo_slam 
* hector-slam https://github.com/tu-darmstadt-ros-pkg/hector_slam 
* svo https://github.com/uzh-rpg/rpg_svo

SLAM研究体系分类

slam一些资料