想象一下,一个机器人在没有 GPS 信号的情况下,试图穿过一片浓雾弥漫的森林。它不能直接询问方向;它必须在构建树木和岩石的心理地图的同时,弄清楚自己在这个地图中的位置。这种复杂的舞步被称为“同步定位与建图”,简称 SLAM。为了实现这一目标,机器人通常依赖于“回环检测”——即机器人识别出曾经去过的地方的那一刻,比如发现了一棵熟悉的橡树,这有助于它纠正记忆中产生的任何错误。虽然有些机器人使用复杂的概率数学来解决问题,但另一些机器人则向自然寻求灵感。具体来说,科学家长期以来一直在研究大鼠如何利用其大脑中被称为海马体的特殊部分在迷宫中导航。这种生物蓝图催生了“受生物启发”的机器人,它们试图模仿动物大脑处理空间和记忆的方式,从而提供一种不同且通常更稳健的方法来应对混乱或变化的环境。
现在,来认识一下这个领域的新成员:一个名为 NeoSLAM 的全新、高速版本的机器人大脑。最初的 NeoSLAM 是一个天才的想法,但它建立在陈旧、笨重的技术之上,这使得它运行缓慢且容易丢失重要信息,就像一个学生试图读书,却不断有人在旁边抢走书页一样。本文的作者决定对 NeoSLAM 进行一次彻底的大改造。他们从头开始重建了整个系统,将那些古老、慢动作的部件更换为现代化的、模块化的架构,使其运行在最新的软件框架之上。可以把它想象成将一条单车道的土路升级为一条多车道的公路,不同的工作团队(处理步骤)可以在互不干扰的情况下同时开展工作。
这次升级的结果令人印象深刻。在测试中,新的 NeoSLAM 几乎不再丢失数据,它能处理它看到的几乎每一帧视频,而旧版本在实时运行时会丢弃超过 90% 的信息。当研究人员将这个全新的、高速的 NeoSLAM 与其著名的对手 RatSLAM 在三种不同的环境中进行对比时——包括实验室、室外机器人轨道,甚至是一艘湖面上的船——他们发现新的 NeoSLAM 重建地图的能力与竞争对手不相上下。虽然它并不完美(在其中一项特定测试中,它犯的错误比 RatSLAM 稍多一点),但它证明了现代、高效的设计可以跟上最优秀的生物模型,这使得它成为了需要实时思考和移动的机器人的一个更具实用性的工具。
技术摘要:NeoSLAM 的新实现及其与 RatSLAM 的对比评估
问题陈述
自主移动机器人技术在未知、动态且缺乏 GPS 信号的环境(如地下、森林或水下环境)中面临着重大挑战。在这些场景中,机器人必须在没有先验地图的情况下进行同步定位与地图构建(SLAM),同时应对感知歧义、传感器噪声和环境变化。虽然受生物启发的方法(如 RatSLAM 以及更近期的基于神经科学的 NeoSLAM)提供了可扩展的拓扑表示并提高了对歧义的容忍度,但它们的实际应用往往受到软件限制。原始的 NeoSLAM 实现是在 ROS 1 生态系统中使用 Python 2.7 和遗留的 NuPIC 框架开发的,存在架构瓶颈。具体而言,其同步的请求/响应通信模型以及对过时技术的依赖,导致系统无法以全速率处理传入的感官数据,从而在实时应用中导致严重的数据丢失。
方法论
本研究展示了对 NeoSLAM 算法进行的完整架构重构和软件栈升级。该方法涉及三个主要的工程技术转变:
- 架构重构: 将原始的单体式
neoslam_server 节点分解为四个独立的并发节点:视觉特征提取器 (Visual Feature Extractor)、二进制投影器 (Binary Projector)、新皮层 (Neocortex) 和 空间视图细胞 (Spatial View Cells)。通过从同步的请求/响应范式转变为完全并发的发布/订阅流水线(使用 ROS 2),系统的吞吐量不再受限于所有阶段的总处理延迟,而是受限于最慢的单个阶段(即瓶颈)。
- 软件栈现代化: 实现过程从 ROS 1 和 Python 2.7 迁移到了 ROS 2 Rolling。遗留的 NuPIC 框架被现代化的
htm.core 库所取代,该库采用 C++17 实现并带有 Python 3 绑定。此外,随机矩阵文件被转换为二进制格式,并采用了高效的 Eigen 和 CRoaring 库进行矩阵运算和稀疏二进制数据处理。
- 系统模块: 新的实现包含七个 ROS 2 节点:
- 视觉特征提取器: 使用预训练的 AlexNet (conv3) 提取特征,并提供帧跨步(striding)和裁剪选项。
- 二进制投影器: 通过随机高斯投影进行降维,并使用稀疏局部敏感二进制哈希(sLSBH)进行二值化,以创建紧凑的二进制描述符。
- 新皮层: 实现层次化时间记忆(HTM)原理,特别是时间记忆(TM),用于编码时间上下文并将二进制输入扩展为更高维度的稀疏分布式表示(SDR)。
- 空间视图细胞: 根据相似性阈值将 SDR 观测结果分组,以检测回环并分配视觉模板标识符。
- 姿态细胞 (Pose Cells)、经验图 (Experience Map) 和视觉里程计 (Visual Odometry): 这些模块与 RatSLAM 架构保持一致。
主要贡献
本文概述了三个主要贡献:
- 架构重构: 一种模块化重新设计,显著提高了计算效率,实现了在极少丢弃传入感官数据的情况下,实现接近全容量的实时运行。
- 软件栈升级: 向现代、可维护技术(ROS 2, C++17,
htm.core)的过渡,解决了原始 Python 2.7/ROS 1 栈的扩展性和长期支持问题。
- 实验评估: 在三种不同的数据集(Robotarium、iRat Australia 和 FIU MMC Lake)及不同环境条件下,对新 NeoSLAM、原始 NeoSLAM 和 RatSLAM 进行了系统的对比分析。
实验结果
评估使用了三个数据集:Robotarium(陆地,室内)、iRat Australia(陆地,室外)和 FIU MMC Lake(水生,无人水面艇)。
- 实时性能: 新的实现大幅降低了数据丢失率。在 Robotarium 数据集上,数据丢失率从原始版本的 91% 降至 1%;在 iRat Australia 数据集上,从 90% 降至 0%。这种改进使新系统能够以输入速率处理帧,而原始系统则会丢弃大部分帧。
- 建图一致性: 在 Robotarium 和 iRat Australia 数据集中,由于数据丢失,原始 NeoSLAM 无法有效地完成回环检测,导致生成的拓扑地图不连贯。新的实现生成了与 RatSLAM 相当的一致性地图。
- 轨迹精度:
- iRat Australia: RatSLAM 的平均误差(0.24 m)略低于 NeoSLAM(0.29 m),尽管两者都生成了拓扑一致的地图。
- FIU MMC Lake: 在这个仅依靠惯性里程计的挑战性水生环境中,NeoSLAM 的平均误差(5.92 m)略低于 RatSLAM(6.10 m)。作者指出,必须调整
exclude_recent_intervals 参数以防止错误的重定位。
意义与主张
论文声称,所提出的基于 ROS 2 的 NeoSLAM 实现成功克服了原始版本的处理吞吐量限制,使其在实时应用中具有可行性。结果表明,新的 NeoSLAM 在多种环境下实现了与 RatSLAM 相当的地图重建性能。值得注意的是,作者指出这是首次在 USV 数据集上评估 NeoSLAM 的工作,强调了其在存在显著视觉歧义和仅靠惯性导航的条件下,构建能够改进退化纯里程计轨迹的拓扑地图的能力。该工作强调,虽然新的 NeoSLAM 在重建质量上与 RatSLAM 相当,但其现代化的架构为未来与当前机器人工具的集成提供了更优的维护性和可扩展性。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。