Open Source Robotics

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

Constraint Manifold

  • 又称: constraint surface
  • 类别: Planning & manipulation › Trajectory optimisation
  • 标签: motion-planning, configuration-space, constrained-planning, bimanual-manipulation, sampling-based-planning

满足一个或多个等式约束(例如保持托盘水平)的机器人构型的集合;通常是构型空间内一个维数更低的曲面。

定义

约束流形(constraint manifold)是构型空间的一个子集,由满足等式约束 F(q) = 0 的所有构型 q 组成。典型的约束会固定末端执行器位姿的一部分:保持杯子直立、让笔贴着白板、在门转动时让夹爪一直握在门把手上,或者在两只手握住同一个物体时保持两手之间的固定变换。当 k 个约束方程相互独立时,隐函数定理表明,解集在局部是 n 维构型空间内的一个光滑的 (n − k) 维流形。由于它的维数低于周围的空间,它的体积为零:随机采样的构型满足约束的概率为零。

正是这一性质让带约束的运动规划变得困难。PRM 和 RRT 等基于采样的规划器抽取随机构型并用直线段把它们连接起来,而这两步在流形上都会失效,因为样本落不到流形上,而弯曲流形上两点之间的直线段会离开流形。带约束的规划器使用几种主要策略。投影方法取一个流形外的样本并把它拉到流形上,通常借助约束雅可比矩阵做牛顿迭代。延拓法或图册法在切空间上建立局部坐标卡,并沿着它们扩展搜索。松弛方法接受流形周围一条小的容差带,从而把流形变成一个体积不为零的薄区域。参数化方法在可用时用一组更少的自由坐标直接描述流形,例如在双手抓持中用解析逆运动学由一条机械臂的关节算出另一条机械臂的关节。

在闭式运动链中,包括两条机械臂握住同一个刚性物体以及并联机构,约束流形是闭环保持闭合的那些构型的集合。轨迹优化把同样的约束作为优化问题中的等式约束来处理,而不是作为一个可从中采样的集合。流形的结构对两者都很重要:它可能被关节限位或不同的逆运动学分支分成彼此分离的分量,而任何连续运动都无法在它们之间穿越。

为何重要

许多有用的任务都带有约束:搬运敞口容器、用两条机械臂移动物体、开门和抽屉,以及在表面上绘画或擦拭。忽视约束流形零体积结构的规划器,要么找不到路径,要么返回在路径点之间违反约束的路径,因此规划器如何处理流形,在很大程度上解释了它的速度和可靠性。

主要应用

  • 双臂操作一个共同的刚性物体
  • 搬运必须保持直立的物体,例如敞口容器
  • 沿铰链或滑轨打开门、抽屉和阀门
  • 闭链机构和并联机器人的规划
  • 工具在表面上的运动,例如书写、擦拭或抛光
  • 手或脚接触固定时的人形机器人和足式机器人规划

实际应用

两条七关节机械臂搬运一个长箱子,两个夹爪都刚性地握住它。组合后的构型空间有十四维,但两手之间的固定变换施加了六个等式约束,因此有效构型位于一个八维的约束流形上。一个基于投影的 RRT 采样一个随机构型,用约束雅可比矩阵做牛顿步把它拉到流形上,并沿每条边以小步长同时检查碰撞和约束误差。另一种做法在解析逆运动学可用时采用:在一条机械臂的关节加上另一条机械臂的冗余参数上进行规划,并以闭式解算出第二条机械臂的关节,这样每个样本按构造就满足约束。团队比较两种方法在关节限位附近失败的频率,因为在那里投影和闭式解都可能没有有效的答案。

常见误解

  • 带约束的规划只需要更多样本 — 流形的体积为零,因此无论抽取多少随机样本,它们几乎永远不会落在流形上
  • 如果每个路径点都满足约束,整条路径就满足约束 — 两个有效构型之间的直线插值通常会离开弯曲的流形,因此边也必须检查或投影
  • 约束流形是一个连通的曲面 — 关节限位和不同的逆运动学分支可能把它分成任何连续运动都无法连接的分量

谁需要了解

  • 运动规划工程师
  • 双臂操作和移动操作研究人员
  • 构建带约束轨迹优化器的工程师
  • 学习构型空间的机器人专业学生

相关技术

  • 基于投影的约束规划(Projection-Based Constrained Planning)
  • 基于图册的规划(Atlas-Based Planning)
  • 约束雅可比矩阵(Constraint Jacobian)
  • 牛顿–拉弗森法(Newton–Raphson Method)
  • 隐函数定理(Implicit Function Theorem)

相关术语

  • Configuration Space
  • Kinematic Redundancy
  • Inverse Kinematics
  • Rapidly-exploring random tree
  • Probabilistic Roadmap
  • Graph of Convex Sets

相关项目

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