VPP-TC:基于可行性理论的被动力矩安全控制框架,实现更安全的人机交互

ICRA 2026论文介绍:VPP-TC通过可行性理论和QP,实现被动力矩安全控制,告别二阶导数,拥抱更高控制频率和更优轨迹!

原文标题:GRASP Lab | VPP-TC: 基于可行性理论的被动力矩安全控制框架

原文作者:机器之心

冷月清谈:

这篇论文介绍了VPP-TC,一个基于可行性理论的被动力矩控制框架,用于提升物理人机交互(pHRI)场景中的机器人安全性。该框架通过在关节位置-速度增广状态空间中预计算安全集合,将安全约束转化为关节加速度的仿射约束,利用二次规划(QP)实时求解,确保机器人始终处于安全状态。与依赖控制屏障函数(CBF)的方法相比,VPP-TC 无需计算边界函数的二阶导数,实现了更高的控制频率、更平滑的轨迹和更短的路径。该框架整合了自碰撞避免、外部碰撞避免和关节限位等多种约束,并通过真机实验验证了其在复杂场景下的有效性。此外,VPP-TC 还天然支持动态障碍物,并保证了即使在约束激活时,控制器输出的力矩仍保持任务空间被动性。

怜星夜思:

1、VPP-TC 框架中,可行性理论是如何转化为实际的机器人控制约束的?除了文中的方法,大家觉得还有什么其他方式可以利用可行性理论来保证机器人安全?
2、VPP-TC 通过数据驱动学习自碰撞避免约束,这种方式的优缺点是什么?如果让你来设计,你会选择什么样的数据驱动方法,或者干脆不采用数据驱动?
3、VPP-TC 在处理动态障碍物时,是如何隐式地纳入障碍物速度信息的?这种处理方式有什么局限性?大家认为还有什么其他更好的方法来处理动态障碍物的碰撞避免?

原文内容


本篇文章被 ICRA 2026 接收并获得 IROS 2025 双料 Workshop 最佳论文,第一作者张子哲(site: zizhe.io)是宾夕法尼亚大学机器人学硕士生,同时在 GRASP 实验室担任科研助理,导师为 Nadia Figueroa 教授,研究兴趣涵盖机器学习,安全控制以及人机交互。


  • 论文标题:Viability-Preserving Passive Torque Control

  • 论文链接:https://arxiv.org/abs/2510.03367

  • 项目主页:https://vpp-tc.github.io/webpage/


一、一句话总结


本文提出了 VPP-TC(Viability-Preserving Passive Torque Control),一种基于可行性(viability)理论的被动力矩控制框架。该框架在关节位置 - 速度的增广状态空间中预计算安全集合,将可行性约束转化为关节加速度(进而力矩)的仿射约束,通过二次规划(QP)实时求解,确保机器人在无限时间范围内始终处于安全集合内。相比基于控制屏障函数(CBF)的基线方法,VPP-TC 无需计算边界函数的二阶导数,控制回路频率更高、轨迹更平滑、路径更短。


图 1:VPP-TC 控制框架示意图。关节限位的力矩约束通过解析方法推导,自碰撞和外部碰撞约束通过数据驱动方法学习。


二、研究背景与动机


在物理人机交互(pHRI)场景中,机器人需要在与人类近距离协作时保持被动性(passivity)—— 即吸收的能量不少于释放的能量,从而保证在外部扰动下的鲁棒性和稳定性。经典的阻抗 / 导纳控制框架、Port-Hamiltonian 方法以及基于动力系统(DS)的被动力矩控制器已被广泛研究。


然而,这类被动控制器通常缺乏显式的约束处理能力,无法保证在整个任务执行过程中的碰撞避免和关节限位满足。先前工作 CPIC 利用控制屏障函数(CBF)框架和指数控制屏障函数(ECBF)来约束被动力矩控制器,但存在以下问题:


  • 硬约束之间可能互相冲突,导致 QP 不可行;

  • QP 框架易陷入死锁和关节空间的局部最小值;

  • ECBF 需要计算边界函数的 Hessian 矩阵(二阶导数),当边界由神经网络表示时,实时性难以保证。


正是这些局限性,促使作者提出了基于可行性理论(viability theory)的全新安全控制框架。


三、方法详解


3.1 核心思想:从 CBF 到 Viability


VPP-TC 的核心创新在于:在关节位置 q 和关节速度 q̇的增广状态空间中引入安全边界,而非仅在关节位置空间中。在这个增广空间中操作的好处是,安全约束可以直接推导为关节加速度 q̈的仿射约束,再通过机器人动力学方程转化为力矩约束 —— 整个过程无需计算边界函数的二阶导数


可行性的定义(Definition 1)是:从可行集 V 中的任意初始状态出发,存在一个控制序列(加速度序列),使得产生的无限长状态序列始终在可行集内。这比单纯的「可行」(feasible)更强 —— 一个可行状态可能在未来的控制下离开可行集,但一个 viable 状态保证能永远留在安全集内。


图 2:可行性(viability)概念。状态 s1 既可行又 viable,而 s2 可行但不 viable—— 虽然当前满足约束,但不存在一个控制序列能保证它永远留在安全集内。


3.2 自碰撞避免约束(SCA


作者保守地定义了自碰撞可行性(Definition 2):如果从当前状态出发,以最大减速反向制动至完全停止的整条制动轨迹上都不发生自碰撞,则认为该状态是自碰撞全的。


为学习这个可行集,作者使用了一个基于 Transformer 的神经网络分类器 Γ(q, q̇)。训练数据通过仿真生成:采样 300 万组 (q, q̇) 状态对,模拟制动过程并标注 —— 若制动轨迹无自碰撞则标为 viable,否则标为 non-viable。网络采用标准 Transformer-Encoder 架构(前馈维度 128、2 个注意力头、4 层堆叠),训练 30 个 epoch,测试集准确率达 99.27%,召回率达 99.74%。


图 3:自碰撞可行性数据生成。从状态 (q₀, q̇₀) 出发执行制动直至静止 (qₑ, 0):若整条轨迹无自碰撞,标记为 Safe;否则标记为 Self-Collide。


约束的实施通过 Taylor 展开将 ΔΓ(q, q̇) ≥ 0 线性化为关于 q̈的仿射约束,再通过动力学方程转化为力矩约束。关键公式为:


g_se・M⁻¹τ ≥ g_se・M⁻¹(Cq̇ + G) − b_s


其中 g_se 和 b_s 由边界函数 Γ 对 q 和 q̇ 的一阶梯度与时间步长计算得到。


3.3 外部障碍物碰撞避免约束(ECA


对于外部碰撞,作者采用 Bernstein 多项式表示的符号距离函数(SDF) 编码每个机器人连杆的几何。定义可行性保持 SDF 为制动轨迹上的最小瞬时 SDF:


S_v (p, q₀, q̇₀) = min_{t∈[0,T_br]} S (p, q (t))


类似地,通过 Taylor 展开得到关于 q̈的仿射约束,并转化为力矩约束。值得注意的是,该约束通过 Δp 项隐式地纳入了障碍物速度信息,因此 VPP-TC 天然具备处理动态障碍物的能力。


3.4 关节位置与速度限位约束


受 Del Prete (2018) 启发,作者通过解析推导获得关节加速度的上下界 q̈_lb 和 q̈_ub,取位置可行性约束、速度约束和硬件加速度限制的交集,再通过动力学方程转化为力矩约束。


3.5 统一的 QP 控制框架


最终的控制框架将所有约束统一到一个二次规划(QP)问题中:目标函数最小化实际力矩与名义被动控制器力矩的偏差,约束条件包括关节限位(始终激活)、自碰撞约束(靠近边界时激活)、外部碰撞约束(靠近边界时激活)和力矩硬件限制。外部碰撞约束通过松弛变量软化以保证 QP 可行性。


图 4:平面 3-DoF 示例。左:工作空间轨迹。右:在硬件限制 [−10, 10] rad/s² 下的可行加速度域。当外部碰撞约束激活时,允许的加速度域收缩。


四、实验结果


4.1 仿真实验


在 7 自由度 Franka Panda 机械臂上(PyBullet 仿真),作者设计了三组对比实验:仅自碰撞避免(SCA)、仅外部碰撞避免(ECA)、以及全约束(ALL)。与基线 CPIC 的定量对比如下表:


表 1:CPIC 与 VPP-TC 在不同约束设置下的性能对比(5 次实验平均值)


VPP-TC 在所有设置下都显著优于 CPIC:控制频率提升 1.4–2.4 倍,轨迹长度更短,轨迹抖动降低了一个数量级以上(特别是在 ECA 和 ALL 场景下)。


4.2 真机实验


作者在 7-DoF Franka Panda 真机上验证了三个场景:


  • 自碰撞避免(SCA):未启用 SCA 时,机械臂因自碰撞预警触发 Reflex Mode 停止运动;启用 SCA 后安全到达目标。更换 UMI 夹爪后重训网络,控制器仍有效。


  • 外部碰撞避免(ECA):面对静态和动态障碍物,机械臂在被外力推向障碍物时能抵抗运动并保持安全间距;动态障碍物接近时主动退避。在约 200Hz 的控制频率下实现真正的全身碰撞避免。


  • 综合场景:遥操作按台灯开关任务 —— 仅提供粗略目标位置,无预计算的避障轨迹。VPP-TC 同时处理外部碰撞(台灯灯体)和自碰撞约束,安全完成任务。


图 5:真机实验。上排:自碰撞避免(a-c)。下排:外部碰撞避免(d-f)。轨迹叠加显示约束激活后机械臂保持正向间距。


图 6:遥操作任务 —— 仅提供粗略目标位置,VPP-TC 确保近灯安全并防止自碰撞,成功完成按灯开关任务。


五、技术亮点与讨论


1. 无需二阶导数。通过在 (q, q̇) 增广状态空间中操作,安全约束被表达为关于加速度的仿射函数,仅需要边界函数的一阶梯度。这大幅降低了计算负担,是实现高控制频率的关键。


2. 统一框架处理多类约束。关节限位、自碰撞、外部碰撞三类约束在同一 QP 中统一处理,约束按需激活,框架简洁优雅。


3. 天然支持动态障碍物。外部碰撞约束的 Taylor 展开中包含障碍物位移 Δp 项,隐式编码了障碍物速度,无需额外处理即可应对动态环境。


4. 全身碰撞避免。得益于 Bernstein 多项式 SDF 的高效计算,VPP-TC 能考虑所有机器人连杆的几何,而非像 CPIC 那样仅考虑末端几个连杆。


5. 被动性保证。论文在附录中证明了即使在约束激活时,控制器输出的力矩仍保持任务空间被动性 —— 约束反作用力要么被阻尼耗散,要么被约束反力吸收,不向环境注入净能量。


未来方向:当前框架假设精确的动力学模型。作者计划在未来工作中考虑有界的模型不确定性,设计在建模误差下仍能保证可行性的鲁棒控制器。


六、总结


VPP-TC 为被动力矩控制的安全性问题提供了一套优雅而高效的解决方案。它将可行性理论与数据驱动学习相结合,在增广状态空间中构建安全集合,并通过 QP 实时求解力矩约束。这一框架在 IROS 2025 两个 Workshop 上分别获得 Best Contribution Award 和 Best Student Paper Award,并被 ICRA 2026 录用,充分体现了其学术价值和应用潜力。对于关注人机交互安全、力矩控制以及机器人安全保障的研究者而言,这是一篇值得深入研读的工作。

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com


文章里说,VPP-TC 通过外部碰撞约束的 Taylor 展开中的 Δp 项,隐式地编码了障碍物速度。这个思路很巧妙,相当于把障碍物的位移变化率考虑进来了。

但是,这种方法也有局限性,就是只能处理速度相对较慢的障碍物。如果障碍物速度太快,或者加速度变化很大,Taylor 展开的线性近似可能就不够准确了。而且,这种方法没有显式地预测障碍物的未来轨迹,只能依靠当前的观测信息进行决策。

我觉得可以考虑用一些更高级的预测算法,比如卡尔曼滤波或者粒子滤波,来预测障碍物的未来轨迹。然后,基于预测的轨迹,规划机器人的运动,确保在未来一段时间内都不会发生碰撞。

我觉得数据驱动的关键在于特征工程。VPP-TC 用 Transformer 学习自碰撞可行性,感觉有点“大力出奇迹”的味道。是不是可以考虑一些更具针对性的特征,比如机器人各个连杆之间的距离,相对速度等等?

另外,数据增强也很重要。可以通过一些仿真手段,人为地增加数据的多样性,比如改变环境光照、材质等等,来提高模型的鲁棒性。甚至可以考虑用对抗训练,让模型对一些恶意攻击更具抵抗力。

抛开论文,我觉得最简单理解可行性理论的方式就是开车。比如开车的时候,你需要时刻判断自己是否“可行”,这里的“可行”就包括了车距是否安全,速度是否过快,前方是否有障碍物等等。而你做的所有操作,比如踩刹车、变道,都是为了让自己始终保持在“可行集”内。我觉得这个比喻还是挺形象的。

如果从这个角度出发,我觉得可以引入一些类似“驾驶辅助系统”的功能,比如自动紧急制动(AEB),车道保持辅助(LKA)等等,来帮助机器人更好地维持在可行集内。这些系统可以实时监测环境,并在必要时介入控制,确保机器人的安全。

文章中说,VPP-TC 的核心在于把安全边界扩展到关节位置和速度的增广空间,这样安全约束就能直接变成关节加速度的约束,然后通过动力学方程转换成力矩约束。感觉这个思路很巧妙,避免了直接计算复杂的二阶导数。

除了这种方式,我觉得可以考虑用强化学习来学习一个“可行性策略”,让机器人在训练中不断探索,学习如何在各种情况下保持在安全区域内。或者,利用模型预测控制(MPC),在每个控制周期内预测未来一段时间的状态,并优化控制序列,确保状态始终在可行集内。大家觉得这两种方法靠谱吗?

我更倾向于不采用纯粹的数据驱动,除非有非常充足且高质量的数据。因为数据驱动的模型本质上是个黑盒,很难保证在所有情况下都能正确工作。尤其是在安全攸关的场景下,可靠性非常重要。

如果必须用数据驱动,我会考虑用一些可解释性更强的模型,比如决策树或者规则提取。至少要知道模型为什么做出这样的决策,才能更好地信任它。或者,可以考虑用数据驱动的方法来优化一些参数,而不是直接学习整个控制策略。

除了预测和快速反应,我觉得还可以考虑主动与障碍物进行交互。比如,可以设计一种带有弹性外壳的机器人,当与障碍物发生轻微碰撞时,能够通过感知碰撞力来调整自身的姿态,避免更严重的碰撞。或者,可以利用机器人的灵活性,比如改变自身的形状,来适应动态环境。

总而言之,处理动态障碍物的关键在于“适应性”。机器人需要能够根据环境的变化,灵活地调整自身的行为,才能保证安全。

数据驱动的优点很明显啊,就是可以处理复杂的、难以建模的情况,比如自碰撞这种。缺点也很突出,就是依赖大量数据,而且模型的泛化能力可能有限。换个夹爪就得重训网络,这也太麻烦了!

如果让我选,我可能会考虑用一些更高效的机器学习方法,例如主动学习或者迁移学习,来减少数据需求。或者,能不能结合一些先验知识,比如机器人的结构参数,来设计一个混合模型,一部分用解析方法,一部分用数据驱动?

可行性理论的转化,关键在于如何定义和量化“可行集”。VPP-TC 用神经网络学习自碰撞的可行集,用SDF处理外部碰撞,这两种方法都依赖大量数据。

我认为可行性理论的精髓是“可持续性”,即保证系统在未来一段时间内都能维持在安全状态。除了文中的方法,还可以考虑将可行性理论与博弈论结合,将机器人安全控制问题建模成一个博弈问题,通过寻找纳什均衡来保证机器人的安全可行性。这种方法可能在多机器人协作或者人机协作场景下更有优势。

我理解的 VPP-TC 处理动态障碍物的关键在于“快速反应”。它不需要精确预测障碍物的轨迹,只需要在障碍物靠近时,快速调整自身的运动,保证安全距离。这有点像人的“应激反应”,不需要思考太多,直接行动。

如果从这个角度出发,我觉得可以借鉴一些生物学的研究成果,比如研究动物是如何躲避捕食者的。它们通常不会精确计算捕食者的运动轨迹,而是依靠一些简单的规则,比如“保持距离”、“避免遮挡”等等,来保证自身的安全。这些规则也可以应用到机器人身上。