1.什么是slam?
SLAM,simultaneous location and mapping,即使定位与建图。他指的是搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。我理解的是,slam是为了解决机器自主运动问题的一种方案。
机器人实现自主运动需要解决两大问题。
其中,定位侧重对自身的了解,建图侧重对外在的了解。这两个问题是相互耦合的问题。因为准确的定位需要精确的地图,精确的地图来自准确的定位。
2.自动运动问题的建模
上面说到slam是解决机器自主运动问题的一种方案,通常为了解决现实生活中某个问题,我们需要首先对其进行建模。于是,我们需要对机器自主运动问题进行建模。机器的自主学习问题,用语言来描述说,就是自主运动问题就是机器人携带传感器在环境中运动以及观测。
2.1.什么是运动?
运动就是指机器人的位置以及姿态(位姿)是如何变化的。
运动过程的建模方程为:
其中,
是指在k时刻机器人的位姿。以二维空间中为例子,位姿可以表示为,其中x,y为位置坐标,theta为其姿态,即朝向。
为运动传感求测量的读数,即机器人位姿在一定时间范围内的变化量。以二维空间中为例子,其可以表示为。
为的噪声。
该运动方程表示,由上一时刻的位姿,传感器读数。以及的噪声可以估计出此刻的位姿
2.2.什么是观测?
观测就是机器人在k时刻于探测到了某个路标。
观测过程的建模方程为:
为路标。以二维空间为例,
为观测数据,表示传感器在处,探测到了路标,其观测数据为:
(也可以为相对机器人的笛卡尔坐标)
2.2.自主运动问题建模
这两个方程描述了slam最基本的问题。如何在知道运动数据u,以及观测数据z的条件下,求解定位问题(x),以及建图问题(坐标y)
3. slam框架简述
根据机器人运动问题的建模,我们就可以得出以下的slam框架。
其中,
前端视觉里程计:视觉里程计的任务是估算相邻图像间相机的运动
后端优化:后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。
回环检测:回环检测判断机器人是否到达过先前的位置。
建图:它根据估计的轨迹,建立与任务要求对应的地图。