ELAI S.r.l.

柔顺机器人也会用力过大吗?理解接触过程中的力

通过可复现示例理解刚度、阻尼和力峰值:为什么接触时能够让步,并不等于保证最大作用力。

柔顺机器人也会用力过大吗?理解接触过程中的力

问题:接触工件,却不持续强推

设想机器人在装配时把零件移向定位面。表面位置并不完全已知:几毫米误差,就可能把自由空间中的正确运动变成不必要的推压。直观办法是让机器人更柔顺,也就是在受到力时允许它偏离要求的位置。但这足以限制工件受到的压力吗?本文研究以牛顿计量的力;若要讨论压强,还必须知道实际接触面积。

目标是区分三个容易混淆的问题:机器人让步多少、全部静止后还剩多少力、停止之前出现多大的力峰值。我们建立单轴模型,求解其动力学,并比较三组参数。核心结果是:很小的最终作用力仍可伴随明显更大的峰值;运动中改变刚度,也会改变能量收支。这是使用合成数据的教学计算,不是机器人实测,也不是实际机器的调参指南。

先理解含义,再看公式:什么是阻抗

弹簧形变越大,反作用力越大。阻尼器产生与速度有关的阻力并耗散能量;质量则抵抗速度的变化。阻抗控制试图设定一种具有所需特性的运动—力关系。本文只调整刚度和阻尼,保持等效质量不变;这是常被称为刚度控制的一个特例。机器人腕部不一定真的装有弹簧:电机可以实现这种关系,但其效果也就依赖传感、计算与执行。

历史基础是 Neville Hogan 于 1985 年发表的理论工作,它把操作视为与环境的动态交互。Russ Tedrake 的课程笔记区分了直接力控制与构造期望机械响应。我们用这些来源建立概念背景;以下数值例子由本文构造,并非复现它们的实验。阻抗控制不是最近才出现的发现,本文也不声称是原创研究。

一个轴、一个表面,明确正负方向

将未变形表面设为 x = 0,进入材料的方向为正。x 的单位是米;微小压入量代表接触的等效弹性变形,并非穿过理想刚性墙面。表面对机器人的力为 −Kₑx,机器人对表面的力则为 F = Kₑx。环境刚度取合成值 Kₑ = 20 000 N/m。假设接触持续存在、关系线性、轴向无摩擦且环境没有阻尼。

控制器把末端拉向虚拟位置 δ = 0.005 m,即表面内侧五毫米处。我们故意设置这个参考误差,以便看清问题。等效质量 m = 2 kg 保持不变,并不必然等于整个机械臂的质量。指令刚度 K 的单位是 N/m,阻尼 D 的单位是 N s/m。初始时已经接触,x(0) = 0、速度为零,因此不模拟靠近表面时的碰撞。参考在初始时刻施加,此后固定。重力与其他动力学在模型中缺省或被理想补偿。

要确定接触点如何运动,就把各个力相加:回拉作用 K(δ − x)、阻力 −Dẋ 和反作用力 −Kₑx。ẋ 表示速度,ẍ 表示加速度。由牛顿第二定律得到:

mẍ + Dẋ + (K + Kₑ)x = Kδ; F = Kₑx

第一式中的每一项都是力。控制器与表面都抵抗位移,因此动力学中出现 K + Kₑ。这个和很关键:仅根据机器人在空气中的表现选择参数,并不能自动描述接触后的系统。即使软件不知道表面刚度,表面仍然会进入物理方程。

最终作用力:参考位置错误的代价

先看最容易理解的情况:所有运动结束后,速度与加速度都为零,只剩相互作用的两个等效弹簧。求解前式得到平衡形变 x* 与力 F*:

x* = Kδ/(K + Kₑ); F* = KKₑδ/(K + Kₑ)

当 K = 200 N/m 时,接触点移动约 0.0495 mm,最终力为 0.9901 N。它远没有到达要求的五毫米:正是这个位置误差体现了让步。其他条件不变,把 K 提高到 1000 N/m 后,位移增至 0.2381 mm,力增至 4.7619 N。这些力小于 Kδ,因为表面也会变形;Kₑ 趋于无穷大时,F* 才趋于 Kδ。而 K 趋于零时,用于维持接触的回拉作用也消失了。

这个公式说明一种取舍:降低 K 可以减弱几何误差的影响,但也降低抵抗位置扰动的能力。它本身不能保证工艺所需的力。另外,静态结果中没有 D:在这个模型里,阻尼改变的是到达平衡的过程,而非最终值。要判断工件在这个过程中是否受到过大的推力,就必须把时间纳入分析。

峰值:表面改变了相对阻尼

受到弹簧加速的质量可能越过静态力平衡点,因为到达那里时仍有速度。阻尼器会从运动中移除能量。比较不同系统时,我们使用单位为弧度每秒的固有频率 ωₙ,以及无量纲阻尼比 ζ。它们不是新增指令,而是概括已有参数的综合作用。

ωₙ = √((K + Kₑ)/m); ζ = D/(2√(m(K + Kₑ)))

在 0 < ζ < 1 时,系统对突然施加的参考呈欠阻尼响应:会超过最终值,并在振荡中收敛。ζ = 1 时为临界阻尼;在我们的初始条件下,它上升但不超调。D = 2√(mK) 在 Kₑ = 0 的自由空间中可实现临界阻尼;但在 K = 200 N/m 的接触条件下,它只给出 ζ ≈ 0.0995。阻尼并未消失,只是相对于新的总刚度而言太小。

表中 A 的刚度较低,阻尼按自由空间设定;B 保持同样低的刚度,但将表面刚度计入临界阻尼;C 刚度更高,阻尼仍按自由空间设定。A、C 的峰值是解析最大值,不是从图中挑选最高采样点得出的估计。B 所列值是渐近极限,没有有限的峰值时刻。

情况K (N/m)D (N s/m)ζ最终 F (N)最大值/极限 F (N)
A20040.0000.09950.99011.7133
B200401.99510.99010.9901
C100089.4430.21824.76197.1207

A 在约 31.42 ms 后达到约 1.7133 N,比最终值高约 73%。我们没有证明这个力会损坏零件,只是说明静态值并不是上界。C 中增大 K,使最终力和峰值都更高。B 消除了该特定模型的超调,但需要知道 Kₑ,并理想实现大得多的 D。把这个数字直接写入真实控制器,并不能保证相同结果。

合成数据的解析响应。注意超过虚线最终值的峰值;B 接近与 A 相同的平衡值,但不超调。这不是机器人测量结果。
合成数据的解析响应。注意超过虚线最终值的峰值;B 接近与 A 相同的平衡值,但不超调。这不是机器人测量结果。

供进一步核查的推导

从动力学方程中减去平衡位置 x* 对应的部分,恒定力就被消去,剩下一个阻尼振子。其特征根为 −ζωₙ ± iωd,其中 ωd = ωₙ√(1 − ζ²),i 是虚数单位。初始位置与速度为零决定了解的系数。欠阻尼情形得到:

x(t) = x* [1 − exp(−ζωₙt)(cos(ωdt) + ζωₙ sin(ωdt)/ωd)] tₚ = π/ωd; Fₚ = F* [1 + exp(−πζ/√(1 − ζ²))]

t 是以秒计的时间,tₚ 是第一个最大值时刻,Fₚ 为对应力。第二行正的指数项衡量超过 F* 的比例:对 x(t) 求导,寻找 t = 0 之后第一个速度零点,再代入该时刻。速度正比于 exp(−ζωₙt) sin(ωdt),所以第一个相关零点是 π/ωd。ζ = 1 时应改用 x(t) = x*[1 − (1 + ωₙt)exp(−ωₙt)],它在非负时间上单调增加,不能除以此时为零的 ωd。

能量:稳定不等于力小

现在可以检查系统为何收敛,同时避免把收敛误当成力的上限。将能量 E 定义为质量的动能与两个等效弹簧势能之和,单位为焦耳。在参数与参考固定时,它的时间导数非常简单:

E = ½mẋ² + ½K(x − δ)² + ½Kₑx² dE/dt = −Dẋ² ≤ 0

验证时,对三项求导并提出 ẋ,括号内就是动力学方程给出的 −Dẋ。因此运动会耗散能量。在平衡点附近也可使用 ½mẋ² + ½(K + Kₑ)(x − x*)²;它只与原能量相差一个常数,最小值为零。D 为正时,唯一能持续静止的状态就是平衡状态。然而 A 与 C 仍然出现峰值。系统可以稳定并耗散能量,同时释放一部分初始储能。

无源性讨论的是这种收支,而不是接触是否无害。只看机器人、不计环境弹簧时,储能 S = ½mẋ² + ½K(x − δ)² 满足 dS/dt = Fₑₓₜẋ − Dẋ²,其中 Fₑₓₜ 是环境对机器人的力。第一项是通过接触交换的功率。这个恒等式适用于参考固定的理想连续模型;它不能认证协作机器人,不包含生物力学限值,也不能自动证明加入延迟、采样或电机饱和后仍有相同性质。

如果 AI 改变刚度,能量从哪里来?

假设感知系统或学习策略在识别零件后决定提高机械臂刚度。这是待分析的可能架构,并非 EL-AI 产品描述。若位置误差已经存在,增大 K 会在没有运动的情况下增加虚拟弹簧储能。当 x = 0、δ = 5 mm 时,把 K 从 200 提高到 1000 N/m,会增加 0.010 J,计算为 ½(1000 − 200) × 0.005²。表面并未通过位移提供这部分能量;控制参数改变引入了另一条能量输入路径。

一般形式能说明问题,也避免把任何上层控制器都可能遇到的问题归咎于 AI。当 K 与 δ 随时间变化,而 m、Kₑ 不变时,对 E 求导会多出两项:

dE/dt = −Dẋ² + ½K̇(x − δ)² − K(x − δ)δ̇

K̇ 是刚度变化率,δ̇ 是参考位置速度。两个新增项的单位都是瓦,并可能输入能量。这不意味着每次自适应都会不稳定,而是说明固定参数下的证明已经不够。还需分析更新过程,必要时约束其能量和变化速度,并验证整个系统。仅保持 K 为正并不能解决问题。若等效质量也变化,还会出现本文未包含的额外项。

选择其他控制方式会改变什么

直接力控制试图把 F 调节到要求值,而不是让力作为位置误差的结果出现。当工艺要求确定载荷时,它可能有用,但需要可靠的力信息,并处理无接触与有接触之间的转换。导纳控制则利用测得的力生成运动指令,再交给内环执行;这条链路引入自身动力学。这不是同一软件的三种名称,也没有哪一种会自动消除转换峰值。

工业应用必须先明确任务:保持位置、跟随表面与施加力并不是相同目标。工具可能在不同方向需要不同刚度,而本文只有一个轴。真实机械臂的等效质量及力到关节力矩的映射也会随姿态变化。EL-AI 计划探索工业与协作机器人方向,因此这些问题具有相关性;这并不能证明公司已经完成控制器、部署或物理测试。

复现结果,同时认识缺失部分

附件计算的是解析解,而不是对复杂接触仿真器进行数值积分。图像每 0.1 ms 对解析解取样一次;这个间隔只用于画曲线,不代表数字控制器的频率。代码检查计算点的形变非负、解析峰值与对应时刻解一致,以及能量导数等于 −Dẋ²。不使用随机数,也不训练模型。对 N 个时刻和三个案例,计算成本为 O(N),保存全部轨迹所需内存也是 O(N);若只计算峰值,每个案例仅需固定工作量。

未包含的效应有非线性变形、带初始速度的碰撞、摩擦、脱离接触、关节弹性、滤波、噪声、延迟与饱和。开展物理试验需要平台模型与接口、实际控制频率、力测量校准、机械臂构型及可重复协议;还应记录瞬态与初始条件,并由具备相应能力的人员核查适用约束。我们不报告未经测量的安全百分比、开发板性能或机器人性能。

回答最初的问题

让机器人更柔顺,可以降低位置误差造成的力,却不能单独决定最大接触力。必须共同考虑机器人与环境刚度、质量、阻尼及初始条件。本例中,较柔顺的 A 最终低于一牛顿,瞬态却超过 1.7 N。改变刚度或参考时,还要重新核算能量收支。数学的价值在于把“机器人很柔顺”这一模糊描述,变成彼此区分、可验证的问题,从而避免赋予行为未经证明的保证。

来源与已运行代码

Neville Hogan (1985), Impedance Control: An Approach to Manipulation, Part I—Theory, Journal of Dynamic Systems, Measurement, and Control 107, 1–7.

Russ Tedrake, Robotic Manipulation, Manipulator Control: Indirect force control (course notes, 2026).

Kevin M. Lynch and Frank C. Park, Modern Robotics, 11.2.2 Linear Error Dynamics (book companion).

from experiment import run
for r in run()['rows']:
    print(r['case'], round(r['force_equilibrium_N'], 3),
          round(r['peak_force_N'], 3), r['peak_kind'])

代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 10 月 4 日。