想象一下,你正在试图引导一个非常特殊的机器人穿过一座充满狭窄走廊、楼梯和悬垂障碍物的复杂多层建筑。这个机器人并不是一个可以向任何方向滚动的简单球体,它更像是一个长方形的盒子(或一只狗),有一个明确的“前部”和“后部”。如果它尝试侧着身子挤过一道窄门,它可能能通过;但如果它尝试头朝前通过,它可能会被卡住。
这篇论文介绍了一种为这种机器人绘制“地图”的新方法,称为 SE(2) 导航网格(Navigation Mesh)。以下是它的工作原理,通过简单的概念进行拆解:
1. 问题所在:旧地图太简单了
以前的机器人导航方法使用的地图将机器人视为一个完美的圆柱体(或圆圈)。
- 缺陷: 想象一条长而窄的走廊,宽度刚好够一个长方形机器人“侧着身子”通过,但不够它“头朝前”通过。
- 旧地图的错误: 因为旧地图假设机器人是一个圆,它在观察这条走廊时会认为:“这对圆来说太窄了,所以机器人不能走那里。”它会把这条路径完全封死,尽管机器人只要调整好身体方向其实是可以通过的。
- 结果: 机器人会陷入困境或绕远路,因为它无法理解机器人的形状会随着朝向的变化而改变。
2. 解决方案:带有方向感的“3D”地图
作者创建了一种新的地图,它不仅追踪机器人在“哪里”(左/右,前/后),还追踪它“朝向哪里”(偏航角/yaw)。
- 类比: 把旧地图想象成一张平面的 2D 地面图。新地图则像是一个多层的蛋糕。
- 每个“层”代表了机器人处于不同角度时的地图(例如,第 1 层是机器人面向北时的地图,第 2 层是面向东北时的地图,依此类推)。
- 如果一条走廊在“面向北”的层级中太窄,那么这条走廊在“北向层”中就是“阻塞”的。
- 但如果机器人在“面向东”时能通过同一条走廊,那么这条走廊在“东向层”中就是“开放”的。
- 神奇之处: 这张地图连接了这些层级。它知道机器人可以通过原地旋转,从“北向层”移动到“东向层”。这使得机器人能够规划出一条路径,即在进入狭窄通道之前,可能需要先转动身体。
3. 机器人如何寻找路径(ASA 策略)
一旦构建好地图,机器人就需要寻找路径。作者使用了一种名为 ASA(A* - 拉绳算法 - A*)的三步策略:
- 粗略草图(A 搜索):* 机器人首先在“蛋糕层”中寻找一条粗略路径。它确定要经过哪些房间和走廊,以及在每个地方应该面向哪个方向。
- 拉紧绳子(拉绳算法/String Pulling): 由于粗略路径必须遵循地图层的边缘,它往往是锯齿状的。机器人随后在起点和终点之间“拉紧一根绳子”,使路径变得平滑,就像把一根绳子紧紧地拉过一系列桩子一样,使其变得笔直。
- 微调转向(偏航角精修/Yaw Refinement): 现在路径已经变直了,机器人会重新检查它的转向角度。它会确保在直线的每一个点上,机器人的朝向都能完美避开墙壁。它会调整转向,使其达到最高效的状态。
4. 在行走中构建地图(在线生成)
通常情况下,你需要对整栋建筑进行完整的 3D 扫描才能制作地图。这篇论文介绍了一种在机器人行走时构建地图的方法。
- 类比: 想象机器人在走路时正在墙上画一幅壁画。它不会在每走一步时都重新粉刷整面墙(那样太慢了),它只粉刷它刚刚看到的那个小区域。
- 结果: 机器人可以探索一个未知的建筑,实时构建自己的地图,并立即开始导航,即使在发现新房间或楼梯的过程中也是如此。
5. 他们证明了什么
作者在一台真实的机器人(一种看起来像狗的足式机器人)和计算机模拟中测试了该方法:
- 更多空间: 他们的地图比旧地图发现了 50% 更多的可用空间。它成功识别出了那些旧地图认为无法通过的狭窄通道。
- 更好的路径: 机器人的路径更短、更平滑,且规划时间更短。
- 现实世界的成功: 他们成功引导机器人完成了现实生活中的爬楼梯、穿过窄门以及穿过悬垂障碍物等任务,同时在移动过程中实时构建地图。
总结来说: 这篇论文为机器人提供了一张更聪明的地图,它理解机器人的身体形状和方向。它让机器人不再会对狭窄空间感到“困惑”,并能比以往更高效地在复杂的、多层级的环境中进行导航。
技术摘要:SE(2) 导航网格
问题陈述
地面机器人在复杂的多层环境(例如带有楼梯、悬挑结构和狭窄通道的工业设施)中的全局导航,需要能够准确捕捉可通行区域并实现高效路径规划的表示方法。现有方法面临显著的局限性:
- 点云和体积地图(例如占据网格、TSDF)缺乏显式的表面结构,使得精细的可通行性评估在计算上非常昂贵,且需要额外的几何推理。
- 在稠密三角网格上直接进行路径搜索对于实时规划而言计算成本过高。
- 传统的导航网格(NavMeshes)将可通行区域抽象为凸多边形,但假设了航向不变的可通行性(yaw-invariant traversability)。由于它们将机器人近似为圆柱体,并要求对所有航向都具备可行性,因此无法捕捉非圆形机器人(例如矩形足式机器人)在狭窄空间中的特定约束,往往会丢弃有效的路径,或无法有效表示多层结构。
方法论
作者提出了 SE(2) 导航网格(SE(2) NavMesh),这是一种显式编码**航向依赖型可通行性(yaw-dependent traversability)**的多边形表示法。该系统有两种运行模式:从预建地图进行离线生成,以及从流式点云进行在线增量生成。
1. 表示法:SE(2) 导航网格
该方法通过将机器人的航向 (ψ) 纳入网格构建过程,扩展了经典的导航网格,创建了一个状态空间 X=M×S1(表面 × 朝向)。
- 机器人模型: 不同于经典导航网格中的圆柱体近似,本方法使用长方体近似(长度、宽度、高度)来更好地表示足式机器人的几何形状。
- 航向通道: 将连续的航向区间 [0,2π) 离散化为 NΨ 个通道。
- 足迹掩码(Footprint Masks): 使用连续航向足迹掩码评估可通行性。这些掩码代表了机器人在一个航向区间内,其足迹扫过的占用区域的并集,从而确保在相邻航向之间可以安全旋转。
- 分层结构: 可通行空间被划分为航向特定可通行层(Li)。每一层包含机器人可以在特定航向下通行的区域。
- 安全区域: 对所有离散化航向均可行。
- 受限区域: 仅对部分航向集合可行。
- 连通性: 导航图包含两种类型的边:
- 平移连通性: 同一航向层内的区域之间的移动(不改变航向)。
- 旋转连通性: 同一空间位置但属于不同航向层的区域之间的移动(原地旋转)。
2. 生成流水线
- 离线: 对环境(三角网格)进行体素化。计算距离图,根据机器人的足迹和遍历约束(步高、坡度)将体素分类为安全、受限或不可达。使用分水岭算法将这些体素划分为凸多边形,然后跨瓦片(tiles)进行合并,形成全局网格。
- 在线: 系统使用 Voxblox 从点云中进行增量几何重建。为了保持实时性能,更新是局部的。地图被划分为垂直的切片(slabs);只有受新几何结构影响及其相邻区域的切片会被重新处理。这避免了与全局重新生成相关的线性延迟增长。
3. 路径规划策略:ASA
作者引入了一种三阶段的 A-String Pulling-A (ASA)** 策略,用于同时优化位置和航向:
- 初始搜索: 在导航图上进行 A* 搜索,找到一系列特定层的区域和状态的可行序列。
- 路径拉直: 使用路径拉直(string-pulling)算法进行几何精化以消除锯齿状路径,在由区域序列定义的走廊内生成一条拉直后的路径。
- 航向精化: 第二次 A* 搜索沿拉直后的路径优化机器人的航向,确保最终轨迹符合航向依赖的可通行性约束。
核心贡献
- SE(2) 导航网格表示法: 一种新型多边形表示法,利用足迹掩码和分层图结构编码航向依赖的可行性。它捕捉到的可通行区域(尤其是在狭窄通道中)显著多于传统的导航网格。
- ASA 路径规划策略: 一种层次化规划方法,将几何路径拉直与航向优化解耦,使几何路径长度减少了 6.2%,并将最终路径代价降低至初始搜索代价的 87%。
- 在线生成框架: 一种高效的方法,通过基于局部切片的更新,从流式点云中增量构建和更新 SE(2) 导航网格,从而实现实时部署在车载硬件上。
实验结果
- 仿真(可通行性): 在六个不同的室内环境(包括多层场景)中,SE(2) 导航网格捕捉到的可通行区域比传统导航网格多出 50% 以上。它通过利用受限区域,成功连接了此前不连通的安全区域。
- 仿真(规划): 在受限环境中,ASA 流水线始终优于基于采样的基准方法(RRT, RRT*, PRM),实现了更高的成功加权路径代价(SPC)和更低的规划时间。在开阔空间中,基于采样的方法速度更快,但产生的路径代价更高。
- 实际部署: 在 ANYmal 足式机器人上的实验表明,该系统能够在复杂的场景中成功进行在线生成和导航,包括:
- 带有楼梯遍历的多层环境。
- 狭窄走廊(宽 0.8m,仅比机器人宽 0.27m)。
- 悬挑障碍物下的导航。
- 系统通过局部更新维持了 4 Hz 的更新率,而全局更新在地图增长时无法维持实时性能。
重要性与主张
论文声称,SE(2) 导航网格通过显式建模机器人航向与可通行性之间的关系,解决了地面机器人导航中的一个关键空白。通过超越传统的“圆形足迹”假设,该方法使得非圆形机器人在受限的多层环境中进行可靠导航成为可能,而传统方法在这些环境下往往会失效或过于保守。在线生成流水线的集成进一步确立了使用该表示法在未知、动态环境中进行自主探索的可行性。这项工作被视为迈向为足式机器人提供更鲁棒全局导航的重要一步,适用于工业和基础设施巡检任务。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。