DrifterFun

One need not hope in order to undertake, nor succeed in order to persevere.

Rat-SLAM阅读笔记

2018-09-05


如果是关心我博客的朋友可能会发现之前放的“文献阅读”标签已经悄悄地被我下线了,因为我发现我不是一个勤快的人,不会常常关心文献。我决定以后看一个比较成体系的架构之后再稍微整理下写一篇大的。今天这篇就是这个新坑的第一篇文章——让我来谈谈对于Rat-SLAM的理解。

之所以要去看Rat-SLAM,是因为之前综合CMP、Rat-SLAM、Reinforcement learning胡乱写的自然基金居然中了……也不知道是个好事还是坏事,总之可能之后的博士生涯就是和这个玩意儿做斗争了。

一、Why Rat-SLAM

机器人科学家长期以来一直梦想着给机器人创造类似的导航技能。 为了让机器人能够在我们的环境中变得更有用,机器人就必须具备在周围环境中靠自己寻路的能力。 有些机器人已经在家庭、办公室、仓库、医院、酒店以及自驾车,甚至整个城市范围内的环境中正在学习找路。尽管如此,这些机器人平台仍然难以在轻微挑战的条件下可靠地运行。 例如,自主驾驶车辆可能配备了复杂的传感器和前方道路的精细地图,但是司机仍然需要在大雨或下雪或夜间进行控制。

为了使机器人具有自主的导航功能,人们自然地将这个大问题切分成为两个子问题:“地图构建”&“导航”。为了完成这两个任务,我们要求机器人具备以下关键能力:探索未知环境、同步定位与建图(SLAM)、目标导航的路径规划与执行、环境变化的适应性。到目前为止,对于以上问题最成功的解决方案是基于核心概率法,使用大量从距离到拓扑的地图表征方法。这些基于概率的方法有很好的SLAM性能,但是很少能够完全解决整个地图构建与导航问题。相比之下,生物系统鲜为人知,并且仿真计算模型在恶劣环境下机器人平台上的应用非常有限。然而一个基本事实是:许多动物在不具备高精度传感器和高分辨率地图的情况下也能够很好地解决整个SLAM问题。Rat-SLAM是受生物启发的SLAM系统,它仿真老鼠的海马体,构建了一套SLAM与导航系统,给出了另一条解决问题的研究思路————基于生物机制去解决导航问题。

二、Rat-SLAM的工作机制

1.一些生物学的概念

    图片名称

2.RatSLAM架构

图片名称

RatSLAM的核心架构分为两部分:PosCell 与 Experience Map。其中PoseCell是核心部分,是对位置细胞和头朝向细胞的建模,其实现效果与网格细胞十分的类似,现在我将分别对PosCell与Experience Map作简要的介绍。

2.1 PoseCell: 图片名称

PoseCell是文章的核心创新点,如上图所示,PoseCell被建模为一个连续吸引网络(Continuous attractor networks),其可以被三种方式更新:Attractor Dynamics、 Path Integration、 Local View Calibration。

2.1.1 Attractor Dynamics

Attractor Dynamics分为两种机制:对附近细胞的激活、对其他所有细胞的抑制。这样做的好处在于,如果机器人没有运动,那么随着时间的进行AD机制会式细胞的激活模式稳定下来。AD机制具体的数学实现如下。对于周围细胞的激活与抑制机制,都使用三维高斯分布完成的。

$$\varepsilon_{a,b,c} = e^{-(a^2+b^2)/k_p}e^{-c^2/k_d}$$

其中:

$$a = (x-i)(modn_{x})$$

$$b = (y-i)(modn_{y})$$

$$c = (z-i)(modn_{z})$$

\(\varepsilon\)量度两个细胞的距离有了这个参数之后我们便可以实现我们之前的Idea。则激活机制细胞能量的改变值为:

$$\varDelta P_{x,y,z} = \sum_i^{n_x-1} \sum_j^{n_y-1} \sum_k^{nz-1} P\varepsilon$$

$$\varDelta P_{x,y,z} = \sum_i^{n_x-1} \sum_j^{n_y-1} \sum_k^{n_z-1} P\psi - \varphi $$

2.1.2 Path Integration

如上述所说,再经过了Attractor Dynamics步骤之后我们解决了第一个问题,随着时间的进行,机器人的pose会逐渐收敛下来。但是,这样的结果在于机器人的Pose细胞的pattern不会移动,为了使它动起来,我们需要引入Path Integration机制。在实现上Path Integration是一个VO,其输出的位移和角度值能够直接作用于Pose细胞,其机理也很简单,角度的改变导致了沿着纵轴的移动,xy的改变代表着沿着平面的移动。

2.1.3 Local View Calibration

再有了上述两种机制之后,我们的PoseCell便能够有放电方式的不同了。在这个基础上我们还需要做一个事情:Relocalization,即回环。在这个要求下,我们引入了Local View Calibration机制。首先我们定义一个向量V以代表不同View Cell的激活情况,然后引入\(\beta\)矩阵以代表V向量与P矩阵的连接。遵从Hebb’s机制,我们有了下述的跟新方式:

$$\beta_{i,x,y,\theta}^{t+1} = max(\beta_i^t, \lambda V_iP)$$

$$\varDelta P_{x,y,z} = \sum_i \beta_i V_i $$

2.2 Experience Map:

Experience Map实际上并不是和生物学有关的概念了,它在一定程度上是一个妥协的产物——向导航算法妥协。

首先一个Experience被定义为一个3-tuple

$$e_i = (P^i, V^i, p^i) $$

再定义一个Score Fuction,当\(S>S_{max}\)时一个新的Experience便会被建立。

$$S = \mu_p |P^i-P| + \mu_p |V^i-V|$$

新的Experience与前一帧的关系为:

$$e_j = (P^j, V^j, p^i + \varDelta p^{ij})$$

在回环方面,Experience Map的回环是依靠PoseCell的Local View Calibration机制完成的,当一个经历的P与V与已有经历的P与V相匹配时,Experience Map 开始一次回环操作,其更新的步骤为:

$$\varDelta P^i = \alpha[\sum_j(p^j - p^i -\varDelta p^{ij})+\sum_k(p^k - p^i -\varDelta p^{ki})]$$

2.3 实验结果:

利用以上的架构,在一个Mac上利用其自带的相机实现了对街区的建模。在这里给出实际的建图效果,具体实验数据分析可以参考论文。

图片名称


参考文献:

  1. RatSLAM讲解视频

  2. RatSLAM文章