机器人为什么需要“柔顺”:柔顺控制与力反馈入门
机械臂和机器人最擅长的是“按轨迹走”。但当它真正接触外界时,问题就变了:插销装配会遇到卡滞,打磨时接触力会不断变化,协作机器人还可能碰到人。

如果控制器只关心位置误差,机器人会努力把末端拉回目标轨迹,接触力可能迅速增大。对刚性环境来说,这容易造成冲击、振动,甚至损坏工件或伤害人员。
柔顺控制(compliant control)要解决的,正是这组矛盾:在保持任务性能的同时,让机器人能够感知外力,并对接触做出可控、稳定的让步。这里的“柔顺”不只是机械结构变软,也可以通过控制算法让一个刚性机械臂表现得像带有弹簧、阻尼和质量的系统。[1] [2] [3]
1. 柔顺控制从哪里来?
柔顺控制的早期思路来自机械结构本身。20 世纪 70 年代,Remote Center Compliance(RCC,远程中心柔顺)机构被用于装配任务,通过弹簧等弹性元件,让末端在插入、对准过程中自动吸收小范围的位置和姿态误差。它不依赖复杂的传感器和反馈,结构简单、响应快,但柔顺参数一旦确定,就很难根据任务实时改变。[1]
这类方法属于被动柔顺:机器人受到外力后,依靠弹簧、阻尼、柔性关节、柔性末端执行器等机械特性产生位移或变形。它的优点是天然安全、控制负担小;缺点是可调性和精确力控制能力有限,而且机械弹性可能降低位置带宽、引入振动和建模难题。[1] [3]
随后,研究重点逐渐转向主动柔顺。主动柔顺利用力/力矩传感器、关节力矩估计、驱动电流或动力学观测器,把接触信息放进控制回路,在线调整机器人输出。1981 年,Mason 等人提出混合位置/力控制的基本思想;1980 年代中期,Hogan 系统提出阻抗控制框架。此后,柔顺控制逐步从“直接控制接触力”发展到“塑造力与运动之间的动态关系”。[2] [3]
2. 柔顺控制的两种大分类
从实现方式看,柔顺控制首先可以分成两类:被动柔顺(passive)和主动柔顺(active)。
2.1 被动柔顺:让结构本身产生让步(靠机械结构,过时)
被动柔顺通过弹簧、阻尼器、柔性关节、串联弹性执行器或柔性末端机构改变机械系统的固有特性。机器人受到外力时,结构发生可预测的位移或变形,从而降低冲击力。
典型例子包括 RCC 末端、串联弹性执行器和柔性夹爪。它们适合装配、抓取、碰撞缓冲等任务,尤其适合高频接触,因为机械结构可以直接响应,而不必等待控制器计算。
但被动柔顺通常是“固定的”。如果同一个机械臂既要搬运重物,又要轻柔地接触人或脆弱物体,就需要可变刚度机构,或者再叠加主动控制。[1]
2.2 主动柔顺:根据力反馈实时调整(控制器主动参与)
主动柔顺把接触力看成反馈信号。控制器比较期望力和实际力,或者根据外力调整参考位置、速度、刚度和阻尼,使机器人在不同环境中表现出不同的“软硬程度”。
主动柔顺还可以继续分成两条路线:
- 直接力控制(direct):直接把力误差送入控制器,目标是跟踪某个期望接触力。包含hybrid和parallel force-position control。
- 间接力控制(indirect):不直接追踪力,而是规定机器人遇到外力后应该如何运动,目标是形成期望的阻抗或导纳关系。
这两条路线并不存在绝对的优劣。直接力控制更适合明确要求力跟踪的任务;阻抗和导纳控制通常更适合环境不确定、需要稳定接触或人机协作的场景。
3. 四类“主动柔顺控制”方法
3.1 阻抗控制:根据位置误差产生力(机械臂最常用)
阻抗控制(impedance control)不直接要求机器人始终输出某个力,而是规定力与运动之间应该满足什么关系:输入是位移和速度偏差,输出是力。
“阻抗”和“导纳”这两个词是Hogan 1984年的论文里从电路概念里借来的,阻抗表示电阻、电感对电流产生阻力,导纳则是阻抗的倒数。
最常见的目标模型是虚拟“质量—阻尼—弹簧”系统:
F
e
x
t
=
M
d
(
x
¨
−
x
¨
d
)
+
D
d
(
x
˙
−
x
˙
d
)
+
K
d
(
x
−
x
d
)
F_{ext}=M_d(\ddot{x}-\ddot{x}_d)+D_d(\dot{x}-\dot{x}_d)+K_d(x-x_d)
Fext=Md(x¨−x¨d)+Dd(x˙−x˙d)+Kd(x−xd)
这里的 M d M_d Md、 D d D_d Dd 和 K d K_d Kd 分别表示期望的虚拟惯量、阻尼和刚度。
- 刚度大,机器人更努力回到目标位置,位置误差小,但接触可能更“硬”;
- 刚度小,机器人更容易顺着环境让步,但位置精度会下降;
- 阻尼决定接触过程中的振动和能量耗散;
- 虚拟惯量影响机器人对快速外力和加速度的响应。
一个例子:机械臂需要去按压一个柔软的物体,按压力的大小由位置误差决定,按压痕迹越浅力就越大,直到平衡。
阻抗控制的价值在于,它控制的是“交互行为”,而不只是某一个瞬时力值。面对未知环境时,即使不能精确知道环境刚度,也可以通过合适的阻抗参数获得较稳定的接触行为。它还可以在不安装末端六维力传感器的情况下,通过动力学模型、关节力矩或扰动观测器实现部分力估计。[1] [2] [3]
3.2 导纳控制:根据外力生成运动
导纳控制(admittance control)可以看作阻抗控制的“对偶形式”:输入是外力,输出是期望运动。
典型的导纳模型可以写成:
M d x ¨ + D d x ˙ + K d x = F e x t M_d\ddot{x}+D_d\dot{x}+K_dx=F_{ext} Mdx¨+Ddx˙+Kdx=Fext
控制器测到外力后,先通过虚拟质量—阻尼—弹簧模型计算出位移、速度或轨迹修正量,再交给底层位置控制器执行。
这类方法很适合本身位置控制能力强、但不方便直接开放力矩控制接口的工业机械臂。人推一下机械臂,导纳控制器就把这一下转换成参考轨迹的变化,机械臂因此表现出“能被推动”的特性。
导纳控制的代价是依赖可靠的外力测量和稳定的内层位置环。外力噪声、滤波延迟、参数设置不合适,都可能导致抖动;在高刚度环境中,导纳参数过激也可能引发接触不稳定。[2] [3]
3.3 混合位置/力控制:不同方向分工
混合位置/力控制(hybrid force-position control)的核心是把任务空间划分成两组方向:一部分方向控制位置,另一部分方向控制力。
例如,在插销装配中,可以让竖直方向跟踪位置,让水平方向控制接触力。控制器通常用选择矩阵标记哪些自由度负责位置、哪些自由度负责力,再分别设计位置控制器和力控制器。
它的优点是结构清楚、位置和力的控制目标相对独立;缺点也很明显:需要较准确的环境几何和任务约束信息,而且位置方向与力方向通常要能够明确分开。环境发生变化或接触面并不规则时,控制性能会下降。[2][3]
3.4 并行位置/力控制:两个回路同时作用
并行位置/力控制(parallel position-force control)不再用选择矩阵把空间严格切开,而是让位置控制和力控制的输出叠加,在同一个方向上共同影响机器人运动。
一种常见做法是位置环使用 PD 控制,力环使用 PI 控制,再通过增益调整两者的影响。力控制往往需要更高优先级,以避免接触力超过安全范围。
与混合控制相比,并行控制对环境模型和接触几何的依赖较小,对任务变化也更有适应性。但两个控制目标可能互相“拉扯”:力跟踪更准时,位置误差可能变大;位置跟踪更硬时,接触力又可能上升。因此,增益、稳定性和力传感器质量非常重要。[1][2][3]
4. 力反馈到底从哪里来?
柔顺控制的效果,很大程度上取决于力是否测得准。常见的力反馈来源有三种。
4.1 末端六维力/力矩传感器
在机械臂末端安装 F/T 传感器,可以直接测量三轴力和三轴力矩。这是最直观的方案,适合装配、打磨、人机协作和研究平台。
问题是成本较高,传感器会增加末端质量和结构复杂度,还需要处理重力补偿、工具坐标变换、接触冲击和噪声滤波。
4.2 关节力矩传感器或柔性关节
通过关节扭矩传感器、串联弹性执行器或柔性传动元件,可以在关节层面得到力矩信息。关节力矩经过雅可比矩阵映射后,可以进一步估计末端力。
这类方法有利于实现关节级阻抗控制,也能改善反驱性。但柔性会带来额外振动,传动摩擦、回差和温度变化也会影响估计精度。[2]
4.3 无力传感器估计
如果没有六维力传感器,可以利用电机电流、动力学模型、扰动观测器、广义动量观测器或神经网络估计外力。
无传感器方案能降低硬件成本,也便于改造现有机械臂,但它对模型、摩擦补偿和参数辨识更敏感。低速运动时,摩擦和减速器非线性尤其容易被误认为外力。因此,“sensorless”并不等于不需要感知,而是把感知任务从专用传感器转移到了模型和观测器上。[1] [2]
5. 怎么选?从固定参数走向自适应柔顺
三篇综述给出的一个共同结论是:没有一种柔顺控制方法适合所有任务,方法选择要看控制目标、机器人底层接口、环境刚度以及力反馈是否可靠。
可以先用下面的思路做初步选择:
- 需要严格跟踪某个接触力:优先考虑直接力控制、并行位置/力控制。
- 任务几何明确,位置方向和受力方向容易划分:混合位置/力控制更自然。
- 环境未知、任务变化大,重点是稳定交互:阻抗控制通常更合适。
- 机械臂已有高性能位置控制器,希望通过外力改变运动:导纳控制更容易落地。
- 接触频率高、需要快速吸收冲击:可以加入被动柔顺结构,再叠加主动控制。
- 传感器成本或安装空间受限:考虑电流、力矩和扰动观测器,但必须认真处理摩擦与模型误差。
近几年的研究重点,已经从固定阻抗参数扩展到可变阻抗、可变导纳、神经网络、模糊控制、滑模控制和强化学习。它们试图让机器人根据接触力、速度、视觉信息甚至任务阶段,在线调整刚度和阻尼。
不过,智能方法并不能替代稳定性分析。强化学习在仿真中学会“会碰”,不代表真实机械臂就能安全接触;神经网络能补偿复杂非线性,也需要面对数据覆盖、泛化和实时计算问题。[1]
对工程应用来说,一个更稳妥的路线往往是:先用模型和传统控制保证基本稳定,再用观测器或学习方法补偿未知部分,最后通过能量限制、力限幅和碰撞检测增加安全边界。
柔顺控制的目标不是让机器人变得越软越好,而是让它在该硬的时候保持精度,在该让步的时候及时让步。力反馈提供了“感知接触”的能力,阻抗和导纳提供了“解释接触”的方式,而机械结构和安全约束决定了这种交互最终能不能可靠落地。
参考论文
[1] Zhu, M.; Gong, D.; Zhao, Y.; Chen, J.; Qi, J.; Song, S. Compliant Force Control for Robots: A Survey. Mathematics, 2025, 13, 2204. DOI: 10.3390/math13132204.
[2] Zhang, T.; Du, Q.; Yang, G.; Chen, C.-Y.; Wang, C.; Fang, Z. A Review of Compliant Control for Collaborative Robots. 2021 IEEE 16th Conference on Industrial Electronics and Applications, 2021, pp. 1103–1108. DOI: 10.1109/ICIEA51954.2021.9516193.
[3] Schumacher, M.; Wojtusch, J.; Beckerle, P.; von Stryk, O. An Introductory Review of Active Compliant Control. Robotics and Autonomous Systems, 2019, 119: 185–200. DOI: 10.1016/j.robot.2019.06.009.
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)