Contents — find the section you need
位置控制——即仅向机械臂发出“移动到此坐标”的指令——在机械臂自由移动时效果良好。但如果目标位于刚性表面之外,减小位置误差可能会产生较大的接触力。接触力的大小取决于增益、机械刚度和环境刚度、接近速度以及扭矩限制。接触并非必然导致位置控制失效;控制这种相互作用力需要额外的设计。本文从这一具体的失效——“接触瞬间会发生什么”——出发,系统地探讨了阻抗控制、导纳控制和混合位置/力控制。阻抗控制使用虚拟弹簧、阻尼器和质量来定义力与机器人运动之间的关系;导纳控制则反转了这种因果关系;混合位置/力控制则根据空间方向将位置和力分离,并全程遵循相关方程。
一款能够感知力和触觉的机械手,现场展示图片:Robotic 2016年汉诺威工业博览会上的机械手 (NearEMPTiness, CC BY-SA 4.0), Wikimedia Commons.图中所示为一个具有代表性的多指机械手,能够感知接触和抓握力,而非文中讨论的阻抗控制或导纳控制的具体实现。
0. 本文内容
-
为什么仅靠位置控制无法处理机器人与环境接触的任务
-
力控制处理的输入(位置/力感知)与其输出(扭矩、关节角度)之间的关系
-
阻抗控制如何通过“虚拟弹簧、阻尼器和质量”将位置误差和力联系起来
-
导纳控制如何逆转阻抗控制的因果关系
-
混合位置/力控制背后的理念——在空间上分离约束方向和自由方向
-
纯力控制、阻抗控制、导纳控制和混合控制之间的区别,以及何时使用每种控制方法
-
为什么刚性环境、摩擦和传感器噪声会使力控制变得困难
-
工业机器人装配/抛光、协作机器人安全功能和人形机器人行走等不同场景下,力控制方法的选择有何变化
1. 结论:力控制和阻抗控制
简而言之:力控制是一种将机器人手(或关节)施加于环境或从环境接收的力作为显式控制目标的框架,而不仅仅是位置——而阻抗控制是力控制中的一种代表性设计,它通过将位置误差与力之间的关系定义为虚拟弹簧、阻尼器和质量(机械阻抗)来间接控制力。
这里的重要区别在于,“直接控制力”和“定义力与位置之间的关系”是不同的概念。纯粹的力控制的目标是力本身——“在这个方向上产生 10 N 的力”——而阻抗控制的目标是位置和力之间的行为规则:“如果位置发生漂移,则以与该漂移成比例的力进行反推(或被反推)。”正如我们将在后面的章节中看到的,这种差异对应对接触中固有的不确定性具有重大影响。
2. 为什么高刚度位置控制会产生较大的接触力
大多数工业机器人手臂都基于位置控制,它使用高增益PD控制持续跟踪目标关节角度。当手臂在自由空间中运动时,这不会造成任何问题——它只需输出扭矩来缩小目标位置和当前位置之间的差异(误差),手臂就能精确地沿着预定轨迹运动。
问题出现在手臂接触刚体物体的瞬间。位置控制器会不断检测到“我还没有到达目标位置”的误差,并持续输出扭矩来试图减小它。但由于环境(例如桌面、螺丝孔壁)不会移动,手臂根本无法继续移动。在理想化的刚体接触中,这种情况可以形式化地描述如下。
对于固定的目标和有限的增益,PD控制器在固定误差下会产生有限的扭矩;扭矩不会仅仅随着时间的推移而无限增长。较大的增益或目标穿透表面仍然可能产生过大的接触力。积分作用引入了另一个积分饱和问题。在实际系统中评估扭矩限制、柔顺性和接近速度。
此外,位置控制假设“目标轨迹”本身与环境几何形状精确匹配。考虑将销钉插入螺孔:即使孔的中心位置偏差 0.1 毫米,仅使用位置控制的机器人也会因该误差而持续压在墙上。人类能够完成这类手动任务,是因为我们的手腕和指尖天生具有一定的柔韧性(柔顺性)——“感受力,并稍作调整”——而机器人需要特意设计出同样的特性。这就是力控制和阻抗控制背后的动机。
3. 输入是什么?
力控制比单纯的位置控制需要更多信息来源。
-
关节角度和关节角速度:关节状态 \theta, \dot{\theta} 由编码器获取,并与位置控制共享。
-
施加于手部(或整个手臂)的力/力矩:从环境中接收到的实际力 F_{\text{ext}},由安装在手腕上的六轴力/力矩传感器或每个关节上的力矩传感器获取。此力传感的原理在力/触觉传感器的工作原理及领先产品中有详细介绍。
-
目标轨迹/目标阻抗:除了手部应达到的参考位置 \mathbf{x}_d 之外,阻抗控制还需要设计者预先提供目标虚拟质量、阻尼和刚度参数 ( M_d, D_d, K_d ) 作为输入。
-
接触和环境属性信息:混合控制等方法假设方向是否受约束取决于空间方向,它们还将哪些方向受环境约束(选择矩阵)作为设计输入。
力传感的加入是力控制与位置控制的最大区别。力传感器的带宽、采样率和噪声特性直接决定了整个力控制回路的响应速度和稳定性。
4. 我们求解的是什么?输出是什么?
力控制最终的输出与位置控制一样,都是向每个关节发出扭矩指令 \tau。不同方法的区别在于该扭矩的计算目标。
-
纯力控制:直接反馈目标力 F_d 与测量力 F_{\text{ext}} 之间的差值,使力误差趋于零。
-
阻抗控制:输出实现目标“位置与力关系”(虚拟弹簧、阻尼器和质量)的扭矩。接触力取决于环境刚度、穿透深度、K_d、延迟和饱和度,因此即使在刚度较高的环境中,也不能保证自动防止过大的力。
-
导纳控制:根据测量或估计的力计算位置修正值\Delta\mathbf{x}(或速度修正值),并将其传递给内部位置控制回路。力是输入,修正值是输出——与阻抗控制相比,因果关系相反。
-
混合位置/力控制:将任务空间划分为“需要控制位置的方向”和“需要控制力的方向”,并同时对每个方向应用不同的控制律(位置控制或力控制)。
这些方法都追求同一个共同目标——“在不造成损坏或事故的范围内,实现对任务有意义的轨迹和力水平”——只是通过不同的方程组合来实现。
5. 基本架构
力控制回路可以围绕“力反馈”如何融入位置控制回路的结构进行组织。首先,让我们通过图表来了解阻抗控制和导纳控制在因果关系上的差异。
图 1 — 阻抗控制以位置(误差)为输入,输出力,该力被转换为扭矩指令。相反,导纳控制以力为输入,输出位置校正值,该校正值被传递给现有的位置控制回路。
两者都使用相同的“虚拟弹簧、阻尼器和质量”关系,只是输入和输出互换了。
接下来,我们来看看混合位置/力控制如何将任务空间划分为两个子空间。
图 2 — 混合位置/力控制使用选择矩阵来分割任务空间的每个方向将“位置控制方向”和“力控制方向”分开,分别独立计算每个方向的力矩,并将它们组合成一个单一的关节力矩指令。
6. 代表性算法
柔顺控制——力控制的理论基础
早期系统地形式化力反馈控制的重要工作之一是 Matthew T. Mason 于 1981 年在 IEEE Transactions on Systems, Man, and Cybernetics 上发表的论文“计算机控制机械臂的柔顺性和力控制”。该论文提供了一个框架,用于根据机器人手部位置受任务对象几何形状约束时产生的约束类型(自然约束和人工约束)对位置和力进行分类,并成为下文讨论的混合位置/力控制的理论基础。这种思想——从几何角度确定“应该沿着任务坐标系的哪个轴控制位置,应该沿着哪个轴控制力”——至今仍是力控制的教科书式起点。
混合位置/力控制——空间分割实现同步控制
M.H. Raibert 和 J.J. Craig 于 1981 年在 ASME 的《动态系统、测量与控制杂志》上发表的论文《机械臂的混合位置/力控制》提出了混合位置/力控制。该方法将任务空间坐标系的每个轴显式地分割成一个用于控制位置的方向和一个用于控制力的方向,并同时控制两者。以沿工作台表面滑动的装配任务为例:垂直于工作台的方向(需要保持压力恒定)进行力控制,而平行于工作台的两个方向(需要跟踪轨迹)进行位置控制。
从数学角度来看,该方法使用一个选择矩阵S,其对角线元素为0或1。当S为1时,沿该方向应用位置控制律;当(I - S)为1时,沿该方向应用力控制律。
F_{\text{pos}}是根据位置误差计算出的虚拟力,F_{\text{force}}是根据力误差计算出的虚拟力。该方法的优势在于其直观性,但它假设约束方向与任务坐标系的某个轴完全对齐。当环境形状或姿态不确定时,由于选择矩阵本身的设计难度增加,这便成为一个弱点。
阻抗控制——定义位置与力之间的关系
内维尔·霍根 (Neville Hogan) 于 1985 年在 ASME 的《动态系统、测量与控制杂志》(Journal of Dynamic Systems, Measurement, and Control) 上发表了一篇题为“阻抗控制:一种操控方法”(第一部分——理论,第二部分——实现,第三部分——应用)的三部分论文,提出了一种不同于混合控制的理念。它并非选择位置或力作为控制目标,而是利用目标虚拟质量、阻尼和刚度参数来定义位置误差与手部响应所施加(或接收)的力之间的关系。
M_d, D_d, K_d 分别代表目标虚拟质量、虚拟阻尼系数和虚拟刚度(弹簧常数)——这些参数由设计者根据任务选择。该方程试图将手部的运动模拟为一个由质量块、弹簧和阻尼器组成的虚拟机械系统:“手部偏离目标位置越远,它对外部力F_{\text{ext}}的反作用力(或被反作用力)就越大。” K_d 的大小会使手部的反应更硬或更软,而D_d 则负责抑制振荡的阻尼。
关键在于,阻抗控制并不直接控制目标力本身。如果环境刚性较强,即使是微小的位置误差也会产生较大的反作用力来平衡,从而避免过大的作用力。相反,在自由空间中,外部力为零,因此该方程本质上简化为与普通位置控制(通过弹簧和阻尼器进行轨迹跟踪)相同的行为。这种鲁棒性——同一控制律在自由空间和受限空间中自然地改变其行为,而无需根据是否发生接触或环境刚度进行显式切换——正是阻抗控制被广泛用作力控制核心思想的原因。
导纳控制——一种反向设计,根据力计算位置修正
阻抗控制是一种“以位置(误差)为输入,输出力”的设计,而导纳控制则是一种具有相反因果关系的设计:“以力为输入,输出位置(修正值)”。测得的外部力F_{\text{ext}}被输入到同一个质量/阻尼/刚度机械系统中,由此产生的位置修正\Delta \mathbf{x}被添加到现有(高增益)位置控制回路的目标值中。
通过积分该方程(数值或解析方法)得到的 \mathbf{x} 即为修正后的目标位置,并将其传递给内部位置控制回路。其数学形式与阻抗控制方程几乎相同,但本质区别在于输入和输出的差异。这种因果关系上的差异与执行器在实际应用中是否能够直接控制扭矩有关——对于能够直接控制关节扭矩的高性能执行器机器人,阻抗控制可以直接实现;而对于只能控制位置(或速度)的工业机器人,由于其配备了刚性减速齿轮,因此导纳控制(将力信息转换为位置指令)更容易集成到现有的位置控制回路中。
7. 算法差异
| 方法 | 原理 | 精度(力跟踪) | 计算成本 | 对环境刚度变化的鲁棒性 | 实现难度 |
|---|---|---|---|---|---|
| 纯力控制 | 直接反馈力误差 | 高(忠实于目标力) | 低 | 低(在刚性环境中易不稳定) | 中等 |
| 混合位置/力控制 | 使用选择矩阵按方向分离位置控制和力控制 | 在约束方向上高,在自由方向上位置跟踪高 | 中等(需要设计选择矩阵) | 中等(如果约束方向假设不正确,则效果较弱) | 中等到高(需要任务坐标系设计) |
| 阻抗控制 | 通过虚拟弹簧/阻尼器/质量块连接位置误差和力 | 仅间接控制力(目标力跟踪效果差) | 中等 | 高(无需显式切换接触/非接触) | 高(假设执行器扭矩可控) |
| 导纳控制 | 以力作为输入,输出位置修正值,并将其传递给内部位置控制回路 | 与阻抗控制的间接性相同 | 中等 | 高 | 中等(易于改装到现有的位置控制机器人上) |
总的来说,如果优先考虑的是忠实于目标力本身,那么纯力控制或混合控制更具优势;如果优先考虑的是在不确定的环境刚度或形状下的稳定性和安全性,那么阻抗控制或导纳控制更具优势。由于大多数实际工业机器人的关节无法直接控制扭矩(它们大多是位置/速度控制机构),因此导纳控制或结合两者的混合实现方式往往比阻抗控制本身更常用。
8. 难点/困难环境
力控制和阻抗控制在实际应用中遇到的困难大致可以归纳如下。
在极硬环境中的稳定性:如果阻抗控制方程中的目标刚度K_d设置过高,即使是很小的位置误差也会产生很大的力,这会与传感器采样延迟和关节弹性(齿轮挠曲等)相互作用,从而引发振荡不稳定性(也称为接触不稳定性)。相反,如果K_d设置过低,则会失去对目标轨迹的跟踪。在不预先了解环境实际刚度的情况下,很难优化K_d的选择。
摩擦和执行器非线性:关节减速齿轮和皮带传动存在摩擦和间隙(游隙),这些会作为干扰因素,在理想化的扭矩控制方程中不会出现。尤其是在使用低成本减速齿轮的机器人中,这种摩擦会妨碍阻抗控制所假设的“虚拟弹簧/阻尼器”行为的精确再现。
力传感器噪声和带宽:力控制回路的响应速度直接受限于力传感器的采样率和噪声特性。将噪声较大的传感器输出直接输入反馈回路会导致控制律放大非预期的高频振动,因此始终需要在滤波和控制带宽之间进行权衡。
对环境形状和刚度的先验知识不足:混合位置/力控制需要预先知道约束方向对应的轴。如果实际任务对象的姿态或形状存在误差,则会产生与预期方向不同的意外力,选择矩阵本身的设计也会失效。
多点和表面接触:目前为止的大部分讨论都假设手部只有一个点与环境接触。在多点或面接触的情况下,例如机械手环绕并抓取物体,每个接触点的力都需要单独处理,这使得简单地扩展单点阻抗控制框架变得困难。
9. 实际选择
力控制和阻抗控制方法的选择取决于机器人的执行器类型、任务性质以及安全要求。
-
工业机器人手臂装配/抛光(螺丝拧紧、去毛刺、装配作业):许多此类任务的约束方向是预先已知的,因此混合位置/力控制或易于改装到现有位置控制机器人上的导纳控制被广泛应用。抛光作业——在保持压力恒定的情况下沿表面进行抛光——是一个典型的例子,其中力控制和位置控制的方向清晰分离。
-
协作机器人(cobot)安全功能:检测人体接触并立即减小或停止作用力的安全功能通常与阻抗控制式设计(软虚拟刚度)相结合,该设计利用来自关节扭矩传感器或腕部力/扭矩传感器的信号。协作机器人安全标准(例如 ISO/TS 15066)设定的接触力上限与此类力控制设计目标直接相关。
-
人形机器人和腿式机器人行走及足部与地面接触:通常在每个腿部关节应用阻抗控制(或以集成方式处理全身阻抗的全身控制),以吸收足部接触地面瞬间的冲击力,并在不平坦的地形上保持平衡。地面刚度通常未知,而阻抗控制对环境刚度变化的鲁棒性正是在此发挥作用。
-
假肢和康复机器人(与人体直接接触的设备):这类设备需要轻柔地适应佩戴者意外的力变化,而导纳控制(可将力作为输入)更受欢迎,因为它易于集成到现有的位置控制驱动执行器配置中。
-
需要精确力值的检测和测量任务:当精确跟踪目标力是首要任务时,纯力控制或混合控制比阻抗控制或导纳控制更合适,因为阻抗控制和导纳控制只能间接控制力。
在任何应用中,力控制都不是局限于机器人自身的孤立技术——要在实际硬件上实现有意义的“软接触”,需要结合以下要素:检测力和扭矩的力/触觉传感器;连接关节空间和任务空间的运动学(逆运动学和雅可比矩阵);以及实际产生关节扭矩的执行器的特性(有关液压驱动的力控制,请参阅液压系统入门)。
10. 总结(三行概括)
-
仅依靠位置控制的机器人一旦接触刚性环境就会立即失效,因为它会试图输出过大的力——这就是为什么需要显式处理力的控制方法。
-
阻抗控制通过虚拟弹簧、阻尼器和质量块将位置误差和力联系起来;导纳控制逆转了这种因果关系,通过力来计算位置修正。
-
混合位置/力控制能够清晰地将空间划分为位置控制和力控制两个方向,但它依赖于对环境姿态和形状的先验知识。
控制目标的主要参考资料
阻抗控制是否只是保持恒定的接触力?
它主要塑造力和运动之间的关系。将其与力跟踪区分开来,并检查接触条件和稳定性。
评论
请先登录。
暂无数据。