机器人全身力控到底怎么做?
统计 阅读时间大约10分钟(3860字)

2026-10-09 机器人全身力控到底怎么做?

来源:豆包
力控是机器人领域一项发展多年的技术。它利用力与运动之间的物理关系,调整机器人与环境接触时的行为,让机器人不仅能够到达目标位置,还能在受到外力时适当退让,或以合适...

力控是机器人领域一项发展多年的技术。它利用力与运动之间的物理关系,调整机器人与环境接触时的行为,让机器人不仅能够到达目标位置,还能在受到外力时适当退让,或以合适的力度操作物体。

如今,具身智能越来越关注机器人与物理世界的交互,全身力控也因此受到更多关注。但“全身力控”背后并不是一种固定的实现方法。有的需求是让机器人身体各处受到推碰时能够顺势运动,有的则需要进一步调整关节的刚度和阻尼。

这篇文章主要围绕不额外加装关节力矩传感器的情况,介绍两类实现思路:在传统位置控制的基础上,通过修改目标位置或限制电机输出实现柔顺响应;通过 MIT 模式,直接设定关节的力矩响应。

在讨论具体方法之前,需要先看什么样的机器人适合做这件事。

01 什么样的系统适合做全身力控?

机械刚度与控制刚度

讨论力控时,经常会出现两个要求:既希望机器人保持较高的刚度,又希望它接触环境时足够柔顺。这里需要区分机械刚度和控制刚度。

机械刚度描述的是结构和传动机构抵抗弹性变形的能力。例如,连杆受力后弯曲多少,减速器承受力矩后产生多大的扭转变形。这主要取决于材料、结构和传动设计。

控制刚度描述的是控制系统对位置偏差产生多强的恢复作用。如果关节稍微偏离目标位置,控制器就要求电机输出很大的恢复力矩,控制刚度就高;如果允许关节产生较大的偏移,只施加较小的恢复力矩,控制刚度就低。

因此,机械结构较硬的机器人,也可以通过控制表现出柔顺性。此时的退让主要来自关节运动,而不是连杆或传动机构发生明显的弹性变形。

不过,在同一方向、相同工作条件下,位置保持与受力退让仍然存在取舍。机器人越坚持原来的位置,就越不容易被推动。实际应用中,可以根据任务,在不同方向、不同关节或不同阶段设置不同的响应。

控制环节与控制性能

控制能力与系统中间包含的控制环节数量和特性密切相关。控制环节越少,系统越容易被精确建模和描述,控制性能通常也越好。

如果传动机构存在较大的摩擦、间隙、弹性或自锁等因素,外部作用在传递过程中就可能被削弱或改变,使系统模型更加复杂,控制效果也更难保证。相反,传动链路简单、摩擦较小、反向驱动能力较好的系统,外部作用更容易传递到驱动侧,也更容易实现精确控制。

对于不额外加装力矩传感器、主要依靠电流反馈的方案,若因输出力矩要求采用较大减速比,应在速度环中引入积分控制,尽可能消除非线性因素造成的静态误差。同时,减少中间控制环节、降低传动摩擦和惯量通常更有利;在满足输出力矩要求的前提下,适当采用较低减速比和低惯量,有助于改善机器人与环境的接触交互。

控制接口与反馈能力

除了要了解被控对象的特性之外,还要看机器人开放了什么控制接口。

如果能够下发目标位置,并及时读取电流和运动状态,就可以考虑在位置控制外层增加柔顺控制。如果驱动器支持电流或力矩限幅,还可以约束电机的输出能力。

如果能够设置位置增益、速度增益和前馈力矩,则可以通过 MIT 模式直接调整关节响应。

这些方法都受到反馈质量、通信延迟和底层控制带宽的影响。能够读取电流或下发力矩指令,只是实现力控的起点,并不意味着系统已经具备灵敏、稳定的接触响应能力。

02 对环境的柔顺响应:传统位置控制的两种改造

传统位置控制的目标,是让机器人尽量跟随指定的位置或轨迹。当外部接触阻碍运动时,控制器往往会增加输出,尝试消除位置误差。

要让这类系统产生柔顺响应,可以从两个地方入手:一是改变它想去的位置,二是限制它为到达那个位置能够输出的力矩。

1. 修改目标位置

这条路线保留底层位置控制器,在外层增加一个模块:估计外部作用,并据此调整目标位置。

先从电流中估计外部作用。

对于常见的永磁同步电机,在适用工况下,电磁转矩与产生转矩的电流分量近似成正比:

τm ≈ Ktiq

其中,Kt 是转矩常数,iq 是产生转矩的电流分量,不能直接用电源侧电流代替。

但电流反映的不只是环境接触。机器人维持姿态需要对抗重力,加减速需要驱动自身惯量,传动过程还需要克服摩擦。即使没有接触环境,电流也会变化。

因此,需要根据机器人的实际运动状态,通过动力学模型计算自身运动所需的力矩,再与电流换算出的驱动力矩比较,从差异中估计外部作用。计算时还要考虑减速比,以及传动摩擦等因素。

这里依赖的是实际位置、速度等状态,而不只是下发的目标位置。工程上也常使用动量观测器等方法,避免直接计算加速度带来的噪声问题。

估计结果仍然会混入摩擦变化、负载误差和未建模动力学。参数辨识能够改善估计质量,却不能保证剩余差异全部来自环境。

此外,首先得到的是关节外力矩。如果不知道接触发生在哪里,通常不能直接将其唯一换算成某个接触点上的力。

再根据外力矩修改目标位置。

得到外力矩估计后,可以设计一个虚拟的质量—弹簧—阻尼系统:

Md Δq̈ + Dd Δq̇ + Kd Δq = τext

将求得的位置修正量叠加到原参考位置上:

qcmd = qref + Δq

这是一种关节空间的导纳控制。人推机器人时,外层控制器移动目标位置,底层位置环跟随新的目标,机器人就表现出退让。

虚拟刚度决定持续受力时的偏移程度,阻尼影响运动是否容易振荡,虚拟惯量影响响应快慢。如果保留恢复刚度,外力撤去后,机器人会趋向原来的参考位置;如果不设置恢复刚度,则需要另外处理漂移和运动停止的问题。

这种方法可以利用已有的位置控制系统,但响应需要经过外力估计、目标更新和位置跟踪。外力估计偏差可能导致误动作,滤波过强会降低灵敏度,参数过于激进则可能在硬接触时产生振荡。因此,实际使用时还需要限制位置修正量、速度和加速度。

2. 电机能力限幅

另一种方法不修改目标位置,而是限制电机的最大电流或输出力矩。

机器人仍然尝试到达原来的目标,但当所需输出超过上限时,就无法继续消除位置误差。在容易反向驱动的关节上,外力可以进一步推动关节,于是表现出一定的退让能力。

这种方法不需要先准确估计外力,但它规定的是“最多输出多少”,并没有完整规定“受到外力后如何运动”。

例如,关节在输出达到上限之前,仍可能表现得很硬;达到上限后,可能被推动,也可能因为摩擦而停住。如果是承重关节,输出不足还可能导致机器人无法维持原来的姿态。

因此,输出限幅与降低控制刚度是两件不同的事。前者限制输出上限,后者改变位置偏差与恢复力矩之间的关系。

实际使用中,通常会限制速度环输出的电流指令,使反馈与前馈共同发挥作用,同时也能对非预期的环境变化作出响应。关于从位置指令到电流指令的完整控制链路,可参考我的另一篇文章:机器人电机是怎么指哪走哪的?一文说清楚伺服三环控制。

同时,关节力矩上限不等于固定的接触力上限,接触位置和机器人姿态都会影响两者的对应关系。限流也不能消除运动部件已有的动能,因此不能单独决定碰撞瞬间的峰值力。

03 调整关节的动力学表现:MIT 模式

如果希望进一步设定关节受到外力后的响应,可以使用开放了增益和前馈力矩的控制接口。常见的 MIT 模式就属于这一类。

它通常包括目标位置、目标速度、位置增益、速度增益和前馈力矩,典型控制关系为:

τcmd = Kp(qd − q) + Kd(q̇d − q̇) + τff

计算出的力矩指令再由驱动器转换为电流指令执行。具体单位、参数范围及补偿方式,需要以执行器文档为准。

通过增益设定刚度和阻尼

公式中的位置项类似一个虚拟弹簧。关节被推离目标位置后,会产生与位置偏差相关的恢复力矩。降低 Kp,相同偏差对应的恢复力矩就减小,关节也更容易被推动。

在重力等作用得到适当补偿、忽略摩擦且没有输出饱和的简化静态条件下,有:

|Δq| ≈ |τext| / Kp

也就是说,同样的外力矩作用下,较低的位置增益允许更大的位置偏移。

当目标速度为零时,速度项提供与运动方向相反的作用,类似阻尼,用于抑制振荡。阻尼过小,关节可能来回摆动;阻尼过大,快速推动时也会感到明显阻力。

这种基本的弹簧—阻尼响应,不要求先显式估计外力矩。外力推动关节,位置和速度发生变化,控制器就按照设定的关系改变输出。

通过前馈承担自身负载

如果只是降低位置增益,机器人可能更容易被推动,也更容易在重力作用下下垂。

原因是,缺少补偿时,控制器需要依靠位置误差产生支撑力矩。增益越低,为了提供同样的支撑力矩,通常需要更大的位置偏差。

前馈力矩可以用于承担这部分负载。例如,通过动力学模型计算重力补偿,让电机先提供维持姿态所需的主要输出,再由位置和速度反馈设定关节响应。

这也是动力学计算的重要作用:减少关节仅靠位置误差来承担自身负载的需求,使较低控制刚度下的姿态保持成为可能。

不过,补偿误差仍然会影响最终表现。使用前馈之前,也需要确认驱动器已经包含哪些补偿,避免重复施加。

MIT 模式与阻抗控制:形式相似,观察方式不同

MIT 模式与阻抗控制在形式上比较相似,通常都可以写成由位置误差、速度误差和前馈项共同决定输出的形式:

τ = Kp(qd − q) + Kd(q̇d − q̇) + τff

从这个角度看,MIT 模式同样可以通过调整 Kp 和 Kd 来改变关节对位置误差和速度误差的响应,因此表现出类似“刚度”和“阻尼”的特性。

两者的主要区别在于观察方式不同。阻抗控制通常从机器人整体动力学出发,关注关节或末端在受到外力时表现出的力—位移、力—速度关系,并希望系统呈现出预期的机械阻抗。MIT 模式则更像是一种底层的力矩控制接口:用户直接设定位置增益、速度增益、目标位置、目标速度和前馈力矩,由驱动器按照给定规律计算并输出力矩。它可以产生类似阻抗控制的效果,但并不意味着已经完成了完整的机器人动力学补偿或末端阻抗设计。

因此,MIT 模式可以作为实现某些阻抗特性的基础。如果需要进一步了解阻抗控制的建模、参数设计和实现方式,可以参考我的另一篇文章:人形机器人里的PD控制,为什么看起来就是阻抗控制?。

04 两种全身力控模式该如何选择

在具体实现上,全身力控通常需要在基于位置的控制模式和 MIT 模式之间进行选择。MIT 模式本质上是将驱动器内部的速度环和位置环进行简化,并将相关控制环节放到上层控制器中。这样可以直接调整关节的动力学参数,使机器人对外部环境的响应更加灵敏,但同时也对控制器的执行频率和稳定性提出了更高要求。由于控制回路有所简化,关节的位置控制精度也可能受到影响。

因此,对于位置精度要求非常高的场景,更适合基于位置控制模式进行改造,在保留驱动器位置环稳定性的基础上实现柔顺控制;对于更强调环境响应、接触适应和交互柔性的场景,则可以采用 MIT 模式,以获得更直接的动力学参数调节能力。实际系统也可以根据不同关节和任务进行混合配置,而不是所有关节采用同一种控制模式。

动力学计算贯穿这些环节:在外力估计中,用于区分机器人自身运动与外部扰动;在关节控制中,用于计算重力等前馈补偿;在全身协调中,用于分析运动、接触与平衡之间的关系。

推荐阅读
{{item.author_display_name}}
{{item.author_display_name}}
{{item.author_user_occu}}
{{item.author_user_sign}}
×
右键可直接复制图片
×