Task-Priority Inverse Kinematics
- 又称: hierarchical inverse kinematics, prioritized inverse kinematics
- 类别: Foundations & spatial maths › Kinematics
- 标签: inverse-kinematics, redundancy-resolution, whole-body-control, optimization, humanoids
用于冗余机器人的逆运动学,其中各任务被排序,每个较低优先级的任务只在不影响较高优先级任务的运动中求解。
定义
任务优先级逆运动学(Task-priority inverse kinematics)用于在冗余机器人必须同时满足多个目标时求解其运动,例如保持平衡、放置手部、保持注视方向以及保持在舒适姿态附近。各任务按重要性排序。首先求解优先级最高的任务,通常使用其雅可比矩阵(Jacobian)的伪逆;然后只在第一个任务的零空间内求解下一个任务,即不干扰第一个任务的关节运动集合,依此类推直到列表末尾。较低优先级的任务会被尽可能好地完成,但绝不会削弱较高优先级的任务。Nakamura、Hanafusa 和 Yoshikawa 于 1987 年将这一思想形式化,Siciliano 和 Slotine 于 1991 年给出了一种被广泛使用、适用于任意数量任务的递归形式。
在其经典形式中,该方法在速度层面上工作:q̇ = J₁⁺ ẋ₁ + N₁ (J₂N₁)⁺ (ẋ₂ − J₂J₁⁺ẋ₁),依此类推,其中 N₁ 投影到任务 1 的零空间上。由此产生两个实际问题。当两个任务相互冲突时,即使每个任务单独都不奇异,较低任务的投影雅可比矩阵也可能变得奇异,需要阻尼来使关节速度保持有界。此外,关节限位、碰撞规避和接触力都是不等式,纯粹的零空间投影很难处理它们。
因此,现代求解器把每个优先级层次表述为一个二次规划,依次求解或用专门的分层 QP 求解器求解,使等式任务和不等式任务都可以出现在任何层次上。这是任务栈(stack-of-tasks)方法以及 OpenSoT 和 CartesI/O 等库的基础。一种常见的替代方案是加权逆运动学(即软优先级逆运动学),它把所有任务以不同权重相加到一个代价中;它更简单、更平滑,但允许任务之间相互权衡,而不是强制执行严格的优先次序。
为何重要
人形机器人、带机械臂的四足机器人和移动机械臂的关节数远多于任何单个任务所需。任务优先级逆运动学明确规定了哪些目标绝不能被违反、哪些可以让步,这对此类机器人的全身运动至关重要。
主要应用
- 人形机器人和足式机器人的全身运动
- 底盘与机械臂协同运动的移动操作
- 在跟踪工具路径的同时必须避开关节限位和障碍物的冗余机械臂
- 遥操作以及向不同运动学结构机器人的动作重定向
- 轮腿机器人的轨迹跟踪
实际应用
在一台轮腿四足机器人上,运动规划器为机身、车轮和足端生成轨迹。为了在机器人上跟踪这些轨迹,团队构建了一个任务栈:最顶层是作为不等式约束的关节位置和速度限位;其次是必须保持在地面上的车轮接触点;然后是机身位姿;最后是一个把关节拉向名义构型的姿态任务。分层 QP 求解器在每个控制周期运行这个任务栈,并为底层控制器输出关节参考值。当机身无法在不抬起车轮的情况下达到指令高度时,求解器会让车轮保持在地面上,并让机身任务达不到目标,团队看到的是跟踪误差,而不是车轮打滑。
常见误解
- 较低优先级的任务被忽略 — 它们会在较高任务留出的自由运动范围内被尽可能接近地满足
- 加权逆运动学给出相同的结果 — 权重允许任务之间相互权衡,而严格的优先级绝不允许较低任务干扰较高任务
- 该方法能避开所有奇异性 — 任务之间的冲突会产生算法奇异性,需要阻尼或重新排序
- 零空间投影本身就能处理关节限位 — 不等式需要额外处理,这就是分层二次规划被广泛使用的原因
谁需要了解
- 面向人形机器人和足式机器人的全身控制工程师
- 移动操作开发人员
- 运动规划与遥操作工程师
- 学习冗余度求解的机器人专业学生
相关技术
- OpenSoT
- CartesI/O
- 任务栈(Stack of Tasks)
- 分层二次规划(Hierarchical Quadratic Programming)
- 阻尼最小二乘法(Damped Least Squares)
相关术语
- Inverse Kinematics
- Jacobian
- Whole-Body Control
- Operational Space Control
- Loco-Manipulation
- Humanoid Robot
相关项目
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- GEAR-SONIC: NVIDIA's whole-body controller for the Unitree G1, trained to track any human motion
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- ASAP: Sim-to-real framework for agile humanoid whole-body skills using delta action models
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization