力控算法的本质是回答一个问题:如何让机器人末端表现出期望的“力-运动”关系,本文按照控制架构和柔顺性的来源,将主流方法分为七大类:直接力控、阻抗控制、导纳控制、力/位混合、ILC、MPC、被动柔顺。
一、直接力控(显式力控)
原理:将力传感器信号直接输入力矩环,力误差经过控制器(如 PID)直接产生关节力矩指令。
实现方式:
- 力传感器 → PID → 关节力矩指令(CST 模式)
- 控制回路全部在上位机
- 关节位置完全不闭环,位置由力的积分自然决定
优点:
- 结构最简单直观
- 响应速度快(没有位置环的刚度限制)
- 可以实现真正的恒力源
缺点:
- 在刚性接触环境下极易不稳定(釉面就是刚性环境)
- 自由空间中无法定位(没有接触力时力误差为常数,电机会持续加速)
- 需要精确的力矩环和重力补偿
适用场景:
- 打磨、抛光时保持恒压力
- 柔顺环境(如软材料)中的力跟随
- 力传感器的动态响应快、驱动器力矩环精度高的场合
- 在清洁中不推荐:釉面刚性太强,直接力控在接触瞬间极易振荡,需要极高带宽的力环和精确的动力学补偿,工程风险太大。
二、阻抗控制
原理:测量位置误差,产生力指令,机器人表现得像虚拟的弹簧-阻尼-质量系统。
实现方式:
- 笛卡尔空间:末端位姿误差 → 虚拟力 → 雅可比转置映射到关节力矩 → CST 模式
- 关节空间:每个关节独立执行 PD 控制(就是 MIT 模式)
优点:
- 物理上极其稳定(真实弹簧阻尼系统是天然稳定的)
- 在自由空间有位置跟踪能力(弹簧自然回到目标位置)
- 接触时柔顺,不接触时精确
- 不需要力传感器(在关节空间实现时)
缺点:
- 力控制的精度受位置测量精度和刚度参数影响,无法精确设定接触力
- 笛卡尔空间阻抗需要全动力学模型和力矩环
- 接触力的调节是间接的:通过调节目标位置和刚度来实现,不够直观
- 在高刚性环境下,力对位置误差极其敏感(1mm 位置误差可能产生 10N 力变化)
适用场景:
- 协作机器人关节层柔顺(如拖动示教)
- 未知/软环境中的安全交互
- 需要全身柔顺而非精确力控的任务
- 四足机器人、外骨骼
- 在清洁中关节空间阻抗(MIT 模式)作为底层执行层已经使用,但笛卡尔空间阻抗控制不适合用来实现精确的恒力贴合,因为力控制精度依赖于位置精度和刚度设定的准确性,无法精确解耦法向力。
三、导纳控制
原理:测量力误差,产生位置/速度修正,机器人表现得像虚拟的顺从者,根据外力大小决定移动多少。
实现方式:
- 力传感器 → 导纳计算 → 位置修正量 ΔX
- 参考轨迹 + ΔX → 逆运动学 → 关节位置指令(CSP 模式)
- 内环是位置环,外环是力环
优点:
- 内环位置环的高刚度,使得在刚性环境下也很容易保持稳定
- 接触力的控制是直接的(直接设定 F_des)
- 可以使用工业级位置接口伺服,无需力矩环
- 调试简单,参数物理意义清晰
- 在刚性环境下比阻抗控制更稳定
缺点:
- 在自由空间中如果不做处理,会因无接触力而漂移(需要状态机管理)
- 接触瞬间的冲击无法完全消除(位置环带宽有限)
- 对力传感器精度和滤波要求较高
- 带宽受限于位置内环
适用场景:
- 高刚性环境下的精确力控(釉面贴合
- 需要直接设定接触力的任务(打磨、压装、擦拭)
- 工业机器人上做力控(位置接口型机器人)
- 环境刚度远大于期望交互刚度时
- 在清洁中是最优解,因为釉面刚性极高,导纳控制天然适合这种软控制器+硬环境的组合。末端有力传感器,关节有位置模式,完全匹配。
四、力/位混合控制
原理:将任务空间分解为两个子空间:
- 约束方向(法向):力控制
- 自由方向(切向):位置控制
其中 S 是选择矩阵,决定哪些方向力控、哪些方向位置控。
实现方式:
- 法向:导纳或直接力控 → 控制法向力
- 切向:纯位置跟踪 → 沿曲面移动
- 两个方向的指令合并后映射到关节力矩
优点:
- 理论上最优雅:接触方向控力,运动方向控位
- 物理语义清晰,与任务需求完美对应
- 在需要同时精确跟踪路径和保持接触力的任务中表现最优
缺点:
- 需要精确知道曲面法向来构造选择矩阵 S
- 如果法向估计不准,力控和位控会互相干扰
- 实现复杂度高,需要全动力学模型
- 在曲面曲率变化大的地方,选择矩阵需要实时更新
适用场景:
- 已知几何形状的打磨、去毛刺
- 轴孔装配(法向对中力控,轴向位置控)
- 曲面跟踪清洁(如果你能准确获得法向信息)
- 在清洁中的评估,配合视觉前馈或触觉法向估计,这是理论上最优的方案。但实现复杂度高于纯导纳控制,且法向估计误差可能引入不稳定。当前阶段导纳控制已能实现类似效果(因为导纳输出的修正本身就是沿法向的)。
五、迭代学习控制
原理:利用重复任务的历史误差记录,逐步修正下一次执行时的指令,实现越做越好。
实现方式:
- 第 k 次执行时记录全程力误差
- 离线计算修正量,更新参考轨迹
- 第 k+1 次使用修正后的轨迹
优点:
- 不需要精确模型,通过重复试验逐步优化
- 可以补偿难以建模的系统性误差(如曲面形状偏差)
- 在重复性任务中可将误差收敛到接近零
缺点:
- 只适用于严格重复的任务
- 需要多次执行才能收敛
- 对外界干扰敏感(如果环境变化,学习结果失效)
- 收敛速度和稳定性受学习增益影响
适用场景:
- 固定工件的重复加工
- 注塑机合模力控制
- 同一重复清洁,在清洁中可选。如果面向的是固定场所的固定设备清洁,可以通过多次清洁学习出最佳轨迹,但如果是随机入户清洁不同马桶,ILC 不适用。
六、模型预测力控
原理:利用动力学模型对未来几个控制周期进行预测,通过优化找到最优控制输入。
实现方式:
- 需要完整的机械臂动力学模型 + 环境接触模型
- 预测未来 N 步的力响应
- 求解优化问题得到最优力矩/位置指令
优点:
- 可以显式处理约束(力限幅、位置限幅)
- 能够提前预测曲面变化并做出响应
- 控制性能最优(理论上)
缺点:
- 计算量大,不适合高速控制周期
- 需要精确的环境刚度模型(釉面刚度难以精确获取)
- 参数多、调试极其复杂
- 需要专业控制工程团队
适用场景:
- 高价值任务,值得投入大量建模和调参成本
- 需要处理复杂约束的力控任务
- 学术研究和高端工业应用
- 在清洁中的不需要,实现 MPC 需要数月工程量,导纳控制+前馈已能解决 95% 的问题。
七、被动柔顺控制
原理:不是通过算法,而是通过机械结构实现柔顺。在末端安装弹簧、气囊、软垫等物理柔顺元件。
实现方式:
- 在清洁头和机械臂之间增加弹性连接
- 接触力通过弹簧压缩量自然决定
- 不需要力传感器,不需要力控算法
优点:
- 极其简单,不需要任何算法
- 机械上天然稳定,不可能振荡
- 对高频扰动有极好的吸收能力
- 成本极低
缺点:
- 柔顺特性固定,无法根据任务调整
- 力与位移的关系由弹簧刚度决定,无法精确控制力值
- 不能实时改变期望力
- 在退出时需要额外的脱开机构
适用场景:
- 低成本产品,对力精度要求不高的场景
- 作为主动力控的物理安全层
- 需要吸收高频冲击的场合
- 在清洁中推荐作为补充,在清洁模组和工具座之间加一个弹性元件(如软弹簧或硅胶垫),可以吸收接触瞬间的高频冲击、作为导纳控制失效时的被动安全层、让清洁头更自然地贴服曲面,这是“主动力控+被动柔顺”的黄金组合。
八、总结对比表
九、推荐组合
按照硬件(MIT模式关节 + 末端六维力传感器 + 低速清洁任务):
【核心】导纳控制(一阶纯阻尼,法向恒力)
↓
【执行】MIT模式(高刚度虚拟位置环 + 重力/摩擦前馈)
↓
【补充】被动柔顺(机械弹性层,吸收高频冲击)
↓
【未来可选】力/位混合控制(配合视觉法向估计)
- 每一层都简单可靠
- 各层之间的分工清晰
- 任何一层失效,其他层仍能保证安全
- 不需要专业控制工程师也能调好