Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Narrow Passage Problem

  • 又称: narrow passages
  • 类别: Planning & manipulation › Motion planning
  • 标签: motion-planning, sampling-based-planning, configuration-space, planner-failure-modes

基于采样的规划器在应对自由空间中狭窄走廊时遇到的困难:随机样本很少落在其中,因此规划变慢,或最终采用一条很长的绕行路线。

定义

狭窄通道问题(narrow passage problem)是概率路线图和快速探索随机树等基于采样的运动规划器最为人熟知的弱点。这些规划器通过抽取随机样本并用短的无碰撞运动把它们连接起来,来探索构型空间。如果唯一的路线或最短的路线要穿过自由空间中在一个或多个方向上很薄的区域,那么均匀样本落入其中的概率与其体积成正比,而这个体积非常小。即使有样本落在里面,它也未必能与两侧的邻居相连。于是规划器需要非常多的样本才能找到这条通道,或者会先找到一条更长的路线。

这种效应随维度增加而加剧。在 2D 地图中,比机器人稍宽一点的空隙很容易采样到;但对于伸进货架的 7 关节机械臂、把销钉插进孔里或让零件穿过夹具,有效构型可能在一个高维空间中形成一片薄薄的切片,其体积占比变得极小。对基于采样的规划器的理论分析,例如扩张性(expansiveness)和自由空间的 ε-良好性(ε-goodness),把这种依赖关系明确表达出来:收敛性保证仍然成立,但所需样本数会随着通道变窄而急剧上升。

许多补救方法会把采样偏向自由空间的边界和空隙。高斯采样把样本保留在障碍物表面附近;桥测试保留两端都处于碰撞中的短线段的中点;基于障碍物的采样器和中轴采样器把样本推向边界或走廊的中间;学习得到的采样器预测有用构型所在的位置。其他方法通过缩小障碍物或放宽约束来暂时扩大自由空间,在更容易的问题中规划,然后修复路径。在工程实践中,选择位置合适的中间路点或目标区域往往很有效。

为何重要

许多实际任务都是狭窄通道问题:插入、伸进杂乱的货架和料箱,以及穿过门或狭窄的夹具。识别出这个问题,就能解释规划器为何超时和绕路,并指向在采样器上做修正,而不是简单地提高时间上限。

主要应用

  • 轴孔插入以及装配到夹具中
  • 手臂伸进货架、柜子和料箱的运动
  • 穿过门和狭窄走廊的移动机器人和车辆
  • 机械零件的拆卸与可维护性分析
  • 为运动规划器做基准测试和设计采样策略

实际应用

一台机械臂必须把一个零件放进夹具,每侧只有几毫米的间隙。使用均匀采样器时,规划器经常超时,或者返回绕夹具大幅摆动的路径。团队通过把碰撞网格稍微缩小、看到规划变快,确认了原因。接着,他们在夹具上方加入一个预插入位姿作为中间目标,把最后的接近动作改为经过碰撞检查的笛卡尔直线运动,并为剩余的自由运动加入一个把样本集中在障碍物表面附近的采样器。规划时间下降,绕行也消失了。

常见误解

  • 狭窄通道就是物理上狭窄的空隙 — 它是在构型空间中狭窄;对于一个必须精确旋转的长物体,宽阔的门口仍可能是狭窄通道
  • 多给时间总能解决 — 所需样本数可能随维度和狭窄程度急剧增长,因此更好的采样或分解通常更有帮助
  • 概率完备性意味着规划器会很快找到通道 — 完备性只承诺最终会成功
  • 只有基于采样的规划器才受其影响 — 栅格搜索和优化在薄的自由空间区域中也会遇到困难,原因是分辨率限制或较差的初始猜测

谁需要了解

  • 使用 OMPL、MoveIt 或类似库的运动规划工程师
  • 从事插入和装配的操作工程师
  • 为规划器开发采样策略的研究人员
  • 学习基于采样的规划的学生

相关技术

  • 高斯采样(Gaussian sampling)
  • 桥测试采样(bridge test sampling)
  • 基于障碍物的 PRM(obstacle-based PRM)
  • 中轴 PRM(medial-axis PRM)
  • 学习得到的采样分布(learned sampling distributions)
  • OMPL

相关术语

  • Probabilistic Roadmap
  • Rapidly-exploring random tree
  • Configuration Space
  • RRT*
  • Homotopy Class
  • Peg-in-hole insertion

相关项目

  • OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
  • Ruckig: Real-time jerk-constrained time-optimal trajectory generation for robots and machines
  • NeuPAN: Real-time end-to-end planner that maps raw lidar points directly to robot actions

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。