Open Source Robotics

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

Homotopy Class

  • 又称: homotopy class of paths
  • 类别: Planning & manipulation › Motion planning
  • 标签: motion-planning, topology, trajectory-optimization, mobile-navigation

起点和目标相同、且无需穿过障碍物就能彼此连续变形的一组路径,例如所有从某根柱子左侧经过的路径。

定义

如果两条起点和终点相同的路径中,一条可以在端点保持固定、且每条中间路径都留在自由空间中的情况下连续地弯曲成另一条,那么这两条路径就是同伦的(homotopic)。这一关系把所有可能的路径划分为若干等价类,称为同伦类(homotopy classes)。在起点和目标之间只有一个障碍物的平面上,从它左侧经过的路径构成一类,从它右侧经过的路径构成另一类;在到达目标之前绕障碍物一圈或多圈的路径则构成更多的类,因此即使只有一个障碍物,也会产生无穷多个类,它们由绕数来区分。每增加一个障碍物,可能性都会成倍增加。

这一概念之所以重要,是因为大多数路径优化器都是局部工作的。基于梯度的轨迹优化器和弹性带会使路径变形,让它更短或更平滑,但它们无法把路径推过障碍物,因此只能找到它们起始所在类中的最佳路径。全局规划器决定使用哪个类,这一决定常常是隐式的。像 RRT 这样的基于采样的规划器可能先找到一条穿过某个空隙的路径,后来又发现一条穿过另一个空隙的更短路径,这表现为路径代价的突然下降,而不是逐步改进。同伦感知规划器通过并行跟踪多个类并在每个类中优化最佳路径,把这一点显式化。

在实践中,规划器常常使用一个可计算的不变量,而不是同伦本身。对于平面问题,H-signature 或围绕每个障碍物的缠绕角计数会标记路径从每个障碍物的哪一侧经过,严格来说,它识别的是与之相关但更粗的同调(homology)类。在机械臂的高维构型空间中,这些类依然存在,但很难枚举,因此它们大多是针对移动机器人、车辆和平面问题来讨论的。

为何重要

知道一条路径属于哪个同伦类,可以解释为什么局部优化器会卡在一条很长的绕行路径上,为什么规划器的代价会突然跳变,以及为什么机器人可能在从障碍物左侧和右侧经过之间来回摇摆。对类进行推理的规划器可以避免这些失败,并能提供真正不同的路线选项。

主要应用

  • 为移动机器人保留绕障碍物备选路线的局部规划器
  • 解释随时规划器和渐近最优规划器中解代价的阶跃变化
  • 为轨迹优化选择初始猜测
  • 需要商定从哪一侧经过的多机器人和人群导航
  • 系缆机器人,其缆绳绕障碍物所处的类会限制可达路径

实际应用

一台仓库机器人使用一个局部规划器,它保留若干条候选轨迹,每条位于绕附近托盘和行人的不同同伦类中。每个周期它都对每条候选轨迹按时间和间隙进行优化,然后选出代价最低的一条。如果不加注意,两个几乎相同的选项会使机器人在相邻周期之间换边,原地摇摆,因此团队加入了迟滞:新的类必须比当前的类好出一定余量,机器人才会改变主意。他们还限制所探索的类的数量,使规划器保持在其周期时间之内。

常见误解

  • 同伦路径长度相近 — 同伦是一种拓扑性质;同一类中的两条路径长度可能相差很大
  • 类的数量只等于绕过障碍物的方式数 — 反复绕障碍物会产生无穷多个类
  • 只要迭代足够多,局部优化器就会找到全局最短路径 — 它会停留在初始路径所在的类中
  • 同伦类和同调类是一样的 — 同调更粗,而 H-signature 等实用签名识别的是同调类

谁需要了解

  • 研究最优规划和多模态规划的运动规划研究人员
  • 调整局部规划器的移动机器人导航工程师
  • 选择初始化的轨迹优化从业者
  • 学习构型空间拓扑的学生

相关技术

  • H-signature
  • 时间弹性带(Timed Elastic Band,TEB)规划器
  • 绕数(winding number)
  • Voronoi 图(Voronoi diagram)
  • 可见性图(visibility graph)
  • CHOMP 与 TrajOpt

相关术语

  • Configuration Space
  • Elastic band
  • RRT*
  • Anytime Motion Planning
  • Narrow Passage Problem
  • Motion Planning

相关项目

  • 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 以浏览我们的开源机器人项目。