1。2 技术现状
1。2。1自主定位技术
要实现移动机器人的自主导航,必须要解决机器人的定位问题。定位有时可以通过外部方法来解决,GPS全球定位系统、标识牌等,精度较高但是维护成本也都较大。其中GPS系统只有在室外才能发挥预期作用,标识牌方案需要在环境中放置人工标识,对环境做出了改变。而且在许多环境中,这些外部方法不可行,例如在水下、室内,尤其是未知环境中。这就需要移动机器人用一套自己的传感器为自己定位,所使用的传感器决定了机器人的定位方式。
多年来较受欢迎的传感器有超声波、激光、里程计、速度或加速度计、指南针,然而由于相机的发展,其廉价的特点和其所能提供的丰富信息量使得相机成为越来越流行的传感器选择。
机器人定位分为绝对定位与相对定位。其中常见的绝对定位即上文所说的,GPS系统与标识牌。而相对定位指的是,机器人通过计算自己当前所在位置与其他已知位置(如初始位置)的相对方向、距离,从而获知当前的定位,此方法即为所说的“航位推算法”。航位推算法的移动机器人控制结构分为环境感知,地图匹配,位姿估计,轨迹规划,运动执行五个部分,见图1。
图1。1 航位推算法
目前的航位推算法存在着一重要缺点:偏移误差会随时间累积,导致多次相对位置估计的之后出现较大的定位错误。对于这一问题,下文将介绍采用词袋SLAM与马尔科夫运动模型有效解决。
另外目前常用的马尔科夫定位(ML)、蒙特卡洛定位(MCL)、基于假设跟踪的定位、全局扫描匹配定位等方法,均属于全局定位方案。全局定位在无法确定机器人初始位姿的情况下,利用局部信息为机器人完成定位。论文网
1。2。2即时定位与地图创建(SLAM)
传统机器人导航存在着若干问题,其中最主要的问题是过失误差与在复杂环境中分不清方向。另外,利用视觉信息通过累计小的相对位置来进行位置估计,会逐渐累积误差和偏移,从而导致很大的误差。为了准确而持久的定位,被探索到的环境应该被绘制为地图,从而使得机器人能够认识之前曾经到达过的地方,并且纠正位置估计上的错误。这种将定位于地图创建同时进行的技术就是SLAM。
SLAM(Simultaneous Localization and Mapping)涉及同时生成地图与机器人位姿估计。最流行两种方法是扩展卡尔曼滤波(extended Kalman filter,EFK)和颗粒滤波。这两种方法在小尺度内十分有效,但是在更大的环境中导航或者同化闭环信息时则捉襟见肘。两种方法都已经在单目相机SLAM中被采用过,较为成功的有MonoSLAM(基于EFK)、FastSLAM(粒子滤波)。
近来的一些SLAM方案避免了在较大环境中的尺度问题—利用基于图的方式表示世界:SLAM问题是由机器人位姿与世界观测之间的约束组成的,如果这些约束被表示为图中的边,解决方案就可由图的优化给出。Atlas框架给出了一个较为流行的可扩展的基于图的方式。在这个方法中,每个点代表一组本地坐标系中的路标(一个子图,应用传统SLAM算法),每条边代表这些本地坐标系之间的转换。图中的边都根据转换的准确度而被赋予相应权值,通过寻找图中的最短路径,可以很方便的找到一个节点对于根节点的准确位置。
之前的单目SLAM方法还面临一个问题:算法复杂度太高——SLAM算法在即时操作中,随着地图创建区域的扩大而产生的代价太大。在长久的导航中,应该使用低成本低复杂度的SLAM算法,例如位姿图或Estrada的子图方法。