1. A Biologically Inspired Simultaneous Localization and Mapping System Based on LiDAR Sensor:
该文由RatSLAM(“Ratslam: a hippocampal model for simultaneous localization and mapping”)启发,提出位姿单元网络来保持位姿表征,集成来自激光雷达里程计的自运动线索和来自激光雷达局部视图单元的局部视图线索,旨在减少里程计漂移、解决制图过程中的局部视图多义性问题。利用位姿单元网络,SLAM系统能够基于自运动线索做路径积分来构建认知地图。此外,借助激光雷达视图线索,位姿单元网络执行闭环来标定估计的位姿和在线认知地图,以减少激光雷达里程计累积误差和漂移。
主要适用于构建室内环境的认知地图,该系统采用激光雷达传感器作为主要传感器,由三个主要模块组成,包括激光雷达里程计、激光雷达局部视图细胞和位姿细胞网络。激光雷达里程计在生成机器人的运动数据方面起着重要的作用,局部视图细胞模块提供了基于激光雷达观测进行处理和集成的局部视图线索,位姿细胞网络通过基于激光雷达里程计的自运动数据和局部视图细胞模块的局部视图线索执行路径积分和回环检测,从而估计机器人的三自由度位姿,并构建认知地图作为机器人运动体验的拓扑图,认知地图中的节点是经验节点,定义为位姿细胞、局部视图单元和位姿估计的状态元组。基于位姿细胞网络,SLAM系统使用来自激光雷达传感器的点云数据,能够利用来自激光雷达里程计的自运动线索和来自激光雷达局部视图细胞的局部视图线索来构建认知地图和估计机器人位姿。
主要贡献有:
1. 为了充分利用激光雷达传感器的优势,使用了一种激光雷达里程计算法,以生成伪里程计数据作为机器人的自运动线索,从而减少易发生内部错误和噪声的物理里程计传感器(如IMU和轮速)的使用;
2. 实现了激光雷达传感器的局部视图细胞模型,为位姿细胞网络提供局部视图线索,以执行位姿校准和环路闭合检测。为了降低激光雷达点云环路闭合检测的计算复杂度,提出了一种两阶段局部视图匹配方法;
3. 位姿细胞网络模型适用于激光雷达传感器,用于实现机器人的空间位置表示,并使用激光雷达自运动线索和激光雷达局部视图线索执行路径积分和环路闭合。实验结果表明,无论是在模拟环境还是在室内环境中,该性能都具有很高的适用性和足够的精度。
为了平衡算法复杂度和视图匹配精度,本文提出一个两阶段的局部视图匹配算法。在第一阶段,进行粗预匹配以提高实时性并降低计算复杂度,第二个阶段为精匹配阶段。
位姿细胞网络采用由RatSLAM启发的位姿细胞网络来保持位姿表示,并集成来自激光雷达里程计的自运动线索和来自激光雷达局部视图细胞的局部视图线索,旨在减少里程计漂移,解决建图过程中的局部视图模糊问题。利用位姿细胞网络,提出的SLAM系统能够通过基于自我运动线索执行路径积分来构建认知地图。此外,借助激光雷达视图线索,位姿细胞网络可以通过执行环路闭合来校准估计的位姿和在线认知地图,以减少激光雷达里程计累积的误差和漂移。位姿细胞网络是一个三维的连续吸引子网络(3D-CAN),可表示为活性的三维矩阵。位姿细胞网络中的每个位姿细胞单元通过兴奋性和抑制性连接与其相邻单元相连,这些连接以三维形式缠绕在网络的边界上,使得有限数量的位姿细胞网络能够表示无边界的空间。位姿细胞网络加入基于三维高斯分布的局部激发和全局抑制活动,随时间自我更新位姿细胞网络动力学。位姿细胞网络的稳定状态将位姿的估计编码为活动包的质心。在机器人运动的驱动下,路径积分根据激光雷达里程计的自运动线索更新位姿细胞的活性。
2. RatSLAM:a hippocampal model for simultaneous localization and mapping:
RatSLAM是一个海马模型的实现,一种基于视觉的可以在真正的机器人上实时执行的SLAM方法。实验结果表明,RatSLAM可以在模糊的地标信息下运行,并从轻微和主要的路径整合错误中恢复。RatSLAM系统使用基于竞争吸引子网络的海马复合体近似计算模型,使用竞争性吸引子网络作为表示的基础。竞争性吸引子网络中的活动包(或包)代表了机器人对其自身位姿的度量。机器人的运动会调节网络的动态,导致活动包发生变化,从而更新位姿估计。感官线索与活动包产生关联。
一旦感觉线索和位姿估计之间的关联被学习,感觉线索将影响活动包的位置,以更新机器人的位姿估计。通过使用竞争性吸引器网络结构,RatSLAM建立了一个部分是网格,部分是拓扑的表示。网络中接近的元素在空间上很可能是接近的,但网络的实际连通性和意义是由机器人在元素之间的行为决定的。此外,该系统还具有基于地标系统的主要优势。RatSLAM可以接受模糊的视觉输入,并同时维持和传播多个位姿假设。网络动力学允许这些假设相互竞争,直到竞争过程中的视觉输入可以加强到去相信一个或多个可能的位姿假设。机器人的位姿是由称为位姿单元的竞争性吸引器网络中的活动表示的。车轮编码器信息被用来执行路径整合,将活动注入位姿单元中从而转移当前的活动包。视觉信息被转换为局部视图表示,如果“熟悉”,则将活动注入与该特定局部视图相关联的特定位姿单元中。
RatSLAM能够建立环境的一致表征。任何一致和有用的环境表征都可以被称为'bap'',即使地图不遵循严格的笛卡尔一致性系统也可以清晰地构建地图。
RatSLAM的核心是位姿单元的表示,它抓住了基于网格、拓扑和基于地标的表示的优点,给机器人提供了一种空间感,而不是僵硬地绑在笛卡尔网格上。在真实机器人上的实验证明该系统可以在没有用户干预的情况下,以在线增量的方式创建一致的环境表示。此外,RatSLAM可以解决模糊的地标数据,即使在受到很大的里程误差的影响时也是如此。该方法对环境拓扑或几何结构的重大变化问题应对能力差,需要额外的维护方法来应对。
3. OpenRatSLAM: an open source brain-based SLAM system :
OpenRatSLAM是RatSLAM的开源版本,与ROS框架集成以利用机器人和传感器抽象,网络,数据回放和可视化等优势,能够在线和离线操作。OpenRatSLAM包括连接的ROS节点,以表示RatSLAM的位姿细胞单元,经验地图和局部视图单元,以及提供可视化里程估计的第四个节点。这些节点是参考 RatSLAM 模型和 ROS 实现的显著细节(如主题、消息、参数、类图、序列图和参数调优策略)来描述的。
具体贡献:
- RatSLAM的开源,模块化实现,用于在线和离线使用,与ROS及其可视化工具(如rviz)集成
- 一个路径规划系统,可返回用户提供的目标位置的最快路径
- 通过详细的UML类和序列图显示了RatSLAM的内部工作原理
- 对驱动RatSLAM算法的关键参数进行直观和技术性的解释,以及通过单个配置文件轻松更改这些参数的方法
- 提供了一个逐步调整参数以优化在给定数据集上性能的进程
- 提供了MATLAB的可视化脚本,可重建用于呈现和分析实验结果的关键指标,包括使用地面实况信息分析空间匹配误差
位姿细胞单元:为一个由units组成的连续吸引子网络(Continuous Attractor Network,CAN),通过兴奋性和抑制性连接来进行关联。该网络在三维棱镜中配置,细胞通过兴奋性连接与附近细胞相连,兴奋性连接可跨越网络的所有边界。细胞阵列的三维尺寸信息对应于地面机器人的三维位姿信息x、y和θ。细胞网络的稳定状态是一个单一的激活单元簇,称为活动包或能量包(activity packet or energy packet),该数据包的质心是对机器人当前位姿的最佳内部估计的编码。动力学行为是通过局部兴奋性、全局抑制性连接来实现的,由里程计输入提供的自运动信息会改变位姿单元中的活动,局部视图单元的活动提供了执行回环闭合的机制。
局部视图细胞单元:是一个可展开的单元数组,每个单元表示环境中一个不同的视觉场景。当看到新的视觉场景时,将创建一个新的局部视图单元格,并将其与该场景中的原始像素数据相关联。此外,在该局部视图细胞和对应位姿细胞单元中主导活动包的质心之间学习兴奋性联系(一次性学习)。当机器人再次看到该视图时,局部视图单元格被激活,并通过该兴奋性链接将活动注入位姿单元格。
经验地图:是一种图形地图,通过组合来自姿势单元格和局部视图单元格的信息来估计机器人位姿的唯一估计值。经验地图中的每个节点都可以定义为一个三元组(包括当前位姿信息、局部视图信息、匹配程度信息),通过图松弛算法在整个地图中分布辐射误差,提供机器人环境的地图。
OpenRatSLAM的实现由四个节点组成(位姿单元节点,局部视图单元节点,经验地图节点,视觉里程计节点),这种拆分增强了算法的模块化,并允许每个节点在单独的进程中运行,可以在连续的管道中运行,从而有效地利用多核CPU。
位姿单元节点:该节点管理代表姿势的能量包,以响应里程计和本地视图连接,还可以决定经验地图节点和链接创建。
局部视图单元节点:该节点使用图像比较技术确定当前视图给出的场景是新的还是熟悉的。
经验地图节点:该节点管理地图构建、地图松弛和路径规划。
视觉里程计节点:对于仅图像数据集,此节点根据视觉场景的变化提供里程计估计。
实现过程中的三个主要类(LocalViewMatch、PosCellNetwork和ExperienceMap)相互独立,可以单独编译,而不包括ROS或任何其他OpenRatSLAM组件。然后,每个类的ROS接口作为abstraction提供,允许OpenRatSLAM与其他ROS包交互。回调函数为每个类提供一个ROS包装器接口,这样类就不依赖于ROS。每个类和相关的ROS接口被编译成一个可执行的ROS节点。
4. LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain
LOAM框架在这样的硬件环境和使用场景中会存在一些问题:
由于搭载的是嵌入式系统,计算能力将会受限,LOAM的计算需要将难以满足,致使无法做到实时;如果使用LOAM框架,系统计算每个点曲率的处理频率(数据量很大,VLP-16一条线是1800个点)将难以跟上传感器的更新频率;UGA行驶的路面是非平滑连续的(运动是颠簸的),采集的数据将会失真(运动畸变,匀速运动模型无法适用于颠簸场景),使用LOAM很难在两帧之间找到可靠的特征对应。在噪杂的环境中操作UGV也会给LOAM带来一些挑战,例如:浮动的草丛和摆动的树叶的点云将被误提取为角点或面点,这些特征是不可靠的,难以在连续帧之间获取准确的匹配,从而会造成较大的漂移。
LeGO-LOAM 为应对可变地面而对LOAM进行了地面优化,同时保证了轻量级。LeGO-LOAM是专门为地面车辆设计的SLAM算法,要求在安装的时候Lidar能以水平方式安装在车辆上;如果是倾斜安装的话,也要进行位姿转换到车辆上。(作者的实验平台是一个移动小车(UGA),挂载了一个Velodyne VLP-16 线激光雷达,还配有一个低精度的 IMU;选用的硬件平台是 Nvidia Jetson TX2(ARM Cortex-A57 CPU);整体负载是 20Kg;移动速度为:2.0m/s;测试场景为:地面不平(比较颠簸)的草地。)首先LeGO-LOAM对采集到的点云进行聚类分割,分离出地面点云(地面点云代表了绝大部分不稳定的特征点),同时滤出异常点。然后使用LM进行两部优化解决连续帧之间的6自由度的变换,第一步是使用地面点云估算出平面变换参数,第二步是对分割后点云中边缘点和面进行匹配得到另外三个自由度参数。最后进行了回环检测以纠正运动估计漂移。对地面点云的配准主要使用的是面点特征;在分割后的点云配准主要使用的是边缘点和面点特征。使用边缘点的数量要远小于平面点的数量,这是能实现加速的主要原因。
LeGO_LOAM的软件系统输入 3D Lidar 的点云,输出 6 DOF 的位姿估计。整个软件系统分为 5 个部分:
- 点云分割Segmentation: 这一部分的主要操作是分离出地面点云;同时对剩下的点云进行聚类,滤除数量较少的点云簇。获取的原始点云数据存在很多噪声,采用点云分割可以忽略小于30个点左右的簇, 同时获取点的以下几个属性:
(1)将点云数据分为地面点和分割点(大型障碍物:树木等),组成一个大范围图像;
(2)大范围图像的行、列序号都已知;
(3)以及大范围数据;
2. 特征提取Feature Extraction:对分割后的点云(已经分离出地面点云)进行边缘点和面点特征提取,这一步和LOAM里面的操作一样。分别从地面点和分割点中提取特征,在这里给出分类不同点的粗糙率C,类似于LOAM,使用***cth***阈值来区分不同类型的特征。
3. 雷达里程计:在连续帧之间进行(边缘点和面点)特征匹配找到连续帧之间的位姿变换矩阵。里程计模块是估计相邻两次扫描之间传感器的运动,这种运动变换可使用point-edge和point-plane来进行扫描匹配。以下两点改进可以提高特征匹配的精度和效率:
(1)标签匹配:对地面点,只需要匹配之前的地面点集合;对边缘点,只需要匹配之前边缘点的集合;
(2)2-step LM优化: LM 优化方法在于找到两次扫描之间的最小距离转换。
4. 雷达建图:对特征进一步处理,然后在全局的点云地图中进行配准。将边缘点集和平面点集与周围的点云地图进行匹配,从而进行一步优化位姿转换矩阵(执行的频率很低)。
5. 第五部分:Transform Integration: Transform Integration 融合了来自雷达里程计和雷达建图的估计位姿进行输出最终的位姿估计值。
实验所显示的与LOAM相比的性能:
小规模无人车测试Small-Scale UGV Test(1个覆盖植被的户外环境),大尺度无人车测试(2个拥有许多建筑、树木、道路以及人行道的Stevens理工学院校园环境,1个森林覆盖的徒步小径环境),基于ROS平台运行。
在小场景的激烈运动过程中:LOAM 会把草丛、树叶提取为边缘点特征(草丛和树叶是不稳定特征的主要来源);而LeGO-LOAM会过滤掉这些不稳定的特征,只会在树干,地面,台阶等上提取稳定特征。
特征点数量对比:LeGO-LOAM特征点整体下降幅度超过:29%,40%,68%,72%。
迭代次数对比:里程计的迭代次数降低了34%到48%。
运行时间对比:降低了60%以上
位姿误差对比:LeGO-LOAM可以用更少的计算时间实现可比或更好的位置估计精度。
5. Efficient Surfel-Based SLAM using 3D Laser Range Data in Urban Environments
论文提出了一种基于面元地图(Surfel地图)的实时激光SLAM方案,本文是第一次把Surfel地图用在室外大场景三维SLAM中。
SuMa算法流程:
- 把当前帧的三维点云投影为二维深度图VD,并计算相应的向量图ND;
- 基于上一帧坐标系,从Minactive中渲染出一个虚拟帧:VM, NM;
- 在{VD , ND}和{ VM, NM}之间进行frame-to-model ICP,估算出当前帧的位姿;
- 根据估算出的位姿,用当前帧更新面元地图;
- 在当前帧和Minactive之间进行回环检测;
- 如果当前帧检测到了回环,则用接下来的帧去持续验证,如果连续若干帧都检测到了回环,则确认回环真的发生了,添加回环约束到位姿图中;
- 在一个单独的线程中运行后端优化,优化后的位姿将用来更新整个面元地图。
与LOAM在KITTI上的表现对比:
SuMa旋转误差为0.0032deg/m,平移误差1.4%;LOAM旋转误差0.0017deg/m,平移误差0.7%。SuMa无法正确的估计结构化对象很少的序列(如高速公路)中车辆的运动,由于缺乏结构来区分静态和动态对象,本方法有时无法识别哪些对象移动,特别是多个对象持续移动时(比如堵车时),且动态对象可能会错误地集成虚假surfel而对地图造成损害,可通过融入惯性测量值来获得更一致和准确的估计结果。(在KITTI Vision中的sequence 00上)平均运行时间为48ms,平均能够以20Hz的频率扫描处理。
面元和纹理的渲染基于OpenGL实现,依赖GPU来执行渲染操作。为了在地图规模不断增大后仍保持算法的实时性,SuMa 采用了类似子地图的策略 ,会把距离较远或较为陈旧的地图部分从GPU内存中暂时卸载,如果再次走到了这些地图区域,这部分地图会被重新加载到GPU中,GPU中相当于只维护了一个动态的周边地图。实际运行中大部分情况下,算法处理一帧数据的总耗时远小于100ms,证明算法有较好的实时性。
6. The Dynamic Window Approach to Collision Avoidance:
DWA算法为一种用于移动机器人的避障的局部导航方法,基于移动机器人的精确运动方程,推导出了可以使用有限段圆弧模拟机器人轨迹的一种方法。其原理主要是在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,再通过一个评价函数对这些轨迹打分,最优的速度被选择出来发送给下位机。与以往方法不同的是,该方法直接在速度空间中搜索控制机器人平移和旋转速度的命令。它优势在于它完美的结合了机器人的运动运动学,直接从同步驱动移动机器人的运动动力学出发,针对速度和加速度受限的约束而设计。这是通过将搜索空间缩小到动态窗口来实现的,动态窗口包括在短时间间隔内可达到的速度。在动态窗口内,该方法只考虑那些令机器人可以安全避停的admissible velocities。 在这些速度中,DWA通过最大化目标函数来选择最优的平移速度和旋转角速度。目标函数包含了机器人的前向速度,到轨迹上下一个障碍物的距离和朝向目标位置的进度。
该方法在计算下一个steering command时只考虑一个周期的时间间隔,以避免一般运动规划问题的巨大复杂性。在这样的时间间隔内,用circular curvatures逼近轨迹的结果是一个由平移速度和旋转角速度构成的二维搜索空间。 搜索空间可进一步简化为允许机器人安全刹停的admissible velocities。由于电机的加速度有限,因此速度受到进一步的限制,机器人只考虑在下一个时间间隔内可以达到的速度。这些速度形成了以机器人当前速度为中心的动态窗口。通过最大化目标函数来对动态窗口中由平移速度和旋转角速度组成的admissible velocities进行筛选。目标函数包含了机器人的前向速度、到轨迹上下一个障碍物的距离和朝向目标位置的进度。通过结合这些因素,机器人能够以一个较快的速度朝目标点前进,同时绕开障碍物。实验证明DWA能够令机器人在复杂和动态的环境中以最大95cm/s的速度工作。DWA与之前的方法在以下三个方面不同:
(1) 它是直接从移动机器人的运动动力学推导出来的;
(2)它考虑到了机器人的惯性,这对具有扭矩限制的机器人在高速运动时尤为重要;
(3)在各种杂乱的动态环境中可以以高达95cm/s的速度安全运行。特别适合速度较高的机器人和电机扭矩有限的低成本机器人。
7. Trajectory modification considering dynamic constraints of autonomous robots:
本文为一种路径优化方法,假设全局路径已经通过路径规划算法得到,而面对可能变化环境和动态障碍物,在此基础上通过本文基于“时间弹性带(TEB)”优化方法对局部路径进行优化。基于时间信息对经典的“弹性带”理论的扩充,该方法不仅可以考虑路径上的几何约束,而且可以同时考虑移动机器人的动力学约束。该算法可以实时地直接为底层机器人运动控制器生成命令。具有较高的灵活性,易于适应不同的机器人运动学和应用要求。
“弹性带”方法的主要思想是通过将一条最初给定的路径视为受到内力和外力的弹性橡皮带来变形,内力和外力相互平衡,试图在与障碍物保持一定距离的同时收缩路径。经典的“弹性带”使全局规划者生成的路径相对于最短路径长度变形,同时避免与障碍物接触。它不直接考虑底层机器人的任何动态约束。这一贡献引入了一种新的方法,称为“时间弹性带”,它根据动态约束(如有限的机器人速度和加速度)显式地考虑运动的时间方面,从而允许考虑机器人的动态约束和对轨迹的直接修改,而不是路径。在加权多目标优化框架下,建立了“时间弹性带”问题的数学模型。
TEB同时考虑了达到原始路径的中间路点和避免静态或动态障碍物,这两个目标函数都是相似的,不同之处在于点吸引弹性带和障碍物排斥弹性带的方式。以前的“弹性带”方法通过压缩弹性带的内力获得最短路径。由于本文方法将时间信息视为最短路径的目标,因此可以选择将最短路径的目标替换为最快路径的目标,或者组合这些目标。最快路径的目标可通过最小化所有时间差的和的平方来实现。大多数目标都是本地的,因为它们依赖于几个相邻的中间配置。这导致了一个稀疏系统矩阵,对于该稀疏系统矩阵,存在有效的大规模约束最小二乘优化方法。TEB的目标函数分为两类:约束条件,如速度和加速度限制,根据惩罚函数和目标来制定,与轨迹相关,如最短或最快路径或障碍物清除。在可自由使用的实现框架中,稀疏约束优化算法在机器人框架(例如ROS)中并不容易获得。因此,在“时间弹性带”的背景下,根据分段连续的、可微的成本函数将这些约束表示为目标,该成本函数惩罚表示边界的约束的违反。