【力控】导纳控制
导纳控制
在机器人控制里,很多人一开始接触“位置控制”“速度控制”比较容易理解,但一听到“导纳控制”“阻抗控制”,就会觉得有点抽象。其实,这两个概念都和一个核心问题有关:
机器人在和外界接触时,应该怎样“表现得像一个有弹性、有阻尼的物体”?
尤其是在协作机器人、打磨装配、康复机器人、外骨骼这些场景中,机器人不是单纯地“按轨迹跑”,而是要能够“感受到外力,并作出柔顺反应”。这时候,导纳控制就很有价值。
一、什么是导纳控制
先用一句最通俗的话概括:
导纳控制,就是“你推我一下,我就动一点”。
也就是说,机器人把外部作用力作为输入,再根据预先设定好的“虚拟质量—阻尼—弹簧模型”,计算出机器人应该产生多大的位移或速度。
所以它的本质是:
力输入 → 位移/速度输出
这点非常关键。
生活中的类比
你可以把导纳控制想成一个带弹簧和阻尼的小车:
- 你用手推它一下,相当于施加了一个力;
- 小车不会无限制飞出去,因为它有“质量”;
- 小车也不会来回震荡太厉害,因为它有“阻尼”;
- 如果它偏离平衡位置太多,弹簧还会把它拉回来。
机器人在导纳控制下,就会表现出类似这种感觉:
受力后产生运动,但运动是“有分寸”的。
这不是说机器人真的有一个物理弹簧,而是控制器故意让机器人表现得像有这个弹簧—阻尼—质量系统一样。
二、力输入 → 位移/速度输出,到底怎么理解
这部分是导纳控制最核心的地方。
1. 外力是“命令信号”
在普通位置控制中,控制器通常会说:“去某个位置。”
但在导纳控制中,控制器会说:“先看看外界对你施加了多大的力,再决定该往哪里动。”
比如:
- 人手推一下机械臂末端;
- 力传感器测到 10N 的推力;
- 控制器根据导纳模型计算出应该往后退 2mm,或者以 20mm/s 的速度移动;
- 最后把这个位移/速度命令发给机器人底层伺服系统。
所以导纳控制通常并不是直接控制电机电流,而是位于外层,生成一个柔顺的运动参考。
2. 为什么这很有用
因为现实中的接触任务,往往不能只靠“死板的位置跟踪”。
举几个典型例子:
(1)装配
比如插销插孔、连接器插装。
如果只靠精确位置控制,一旦位置稍微有偏差,机器人就会“顶住”,甚至卡死。
用了导纳控制后,机器人接触到阻力时,会自动微调位置,沿着受力方向适当让步或修正,更容易完成插入。
(2)打磨抛光
打磨时,关键不是某个绝对位置,而是接触力要合适。
表面有高低起伏,机器人如果太刚,力会忽大忽小,效果很差。
导纳控制可以根据接触力变化,让机器人上下浮动一点,从而尽量维持稳定接触。
(3)人机协作
协作机械臂被人手推着走时,导纳控制可以让它表现出“轻推即动”的感觉,手感很自然。
三、导纳控制与阻抗控制的区别
这是最容易混淆的地方。
很多教材会说它们“互为对偶”,这句话没错,但对初学者不够直观。我们直接用工程语言来区分。
1. 最本质的区别
导纳控制:
输入是力,输出是运动。
也就是:
- 测量外力
- 计算位移/速度
- 再驱动机器人运动
阻抗控制:
输入是运动偏差,输出是力。
也就是:
- 机器人看到当前位置和目标位置有偏差
- 按照设定的弹簧阻尼关系,计算应该输出多大的力/力矩去对抗偏差
2. 一个非常好记的理解方式
- 导纳控制:机器人“比较听力的安排”
你给它一个力,它决定怎么动 - 阻抗控制:机器人“像个弹簧一样反抗”
你让它偏离了位置,它会产生一个恢复力
3. 为什么工业里常说导纳更实用
因为很多机器人本体本来就是高刚度的位置控制型平台,底层已经很擅长做位置伺服,而不一定方便直接做高质量的力控制。
这时,最自然的方式是:
- 在外层测力;
- 算出一个新的位置或速度参考;
- 内层还是用成熟的位置控制器去跟踪。
这就是典型的导纳控制架构。
所以在工程实现上:
- 导纳控制更适合“位置控制性能好、但想增加柔顺性”的机器人
- 阻抗控制更适合“本体就能较好地直接控制力/力矩”的系统
4. 两者的应用区别
更适合导纳控制的情况
- 协作机械臂拖动示教
- 装配中的接触修正
- 打磨抛光
- 上层做柔顺控制,底层仍保持位置伺服
更适合阻抗控制的情况
- 本体具有高性能力矩控制能力
- 需要直接塑造交互力学特性
- 双足机器人、灵巧手、部分高端力控平台
四、导纳控制的典型实现结构
工程上,导纳控制通常是一个“双层结构”。
外层:导纳模型
内层:位置/速度伺服
结构上可以理解为:
力传感器 → 导纳模型 → 位置/速度指令 → 伺服控制器 → 机器人执行
这个结构的好处是:
- 容易接入现有机器人控制系统
- 对底层驱动器改动较小
- 调参逻辑清楚
- 工程落地性强
五、导纳控制的离散实现
真正上控制器时,不可能直接连续计算,必须变成离散时间形式。
也就是说,控制器每隔一个采样周期算一次。
这部分虽然听起来偏理论,但其实很实用。
1. 连续模型回顾

在每个采样周期,我们根据当前的力、速度和位置,算出新的加速度,再积分得到速度和位置。
2. 最常见的离散递推方法

这就是一个非常经典、也很容易编程实现的离散导纳控制器。
3. 工程实现伪代码
可以写成这样:
读取力传感器 F
去除零偏和噪声
a = (F - B*v - K*x) / M
v = v + a * Ts
x = x + v * Ts
把 x 或 v 作为参考命令发送给机器人
如果是多维空间,比如末端六维力/位移控制,那么上面的标量就会变成向量和矩阵:
- 力变为 6 维广义力 [Fx,Fy,Fz,Mx,My,Mz]
- 位移变为 6 维位姿偏差
- M,B,K 也可以是对角矩阵或完整矩阵
4. 离散实现中最容易踩的坑
(1)力信号噪声太大
力传感器噪声会直接影响输出运动,导致机器人抖动。
常见处理方法:
- 低通滤波
- 滑动平均
- 设置死区阈值
- 对突变力做限幅
(2)采样周期过大
如果 TsT_sTs 太大,系统更新不够快,柔顺效果会变差,甚至出现振荡。
通常控制周期越小越好,工程中常见 1ms、2ms、5ms 这样的量级。
(3)参数设置不合理
- M 太小:系统太敏感,容易窜动
- B 太小:阻尼不足,容易振荡
- K 太大:系统太“硬”,失去柔顺性
- K 太小:可能偏移太多,不利于稳定接触
(4)没有做饱和限制
如果外力突然很大,而又没有对速度、位移做限制,机器人可能动作过猛。
工程上通常要加:
- 最大位移限制
- 最大速度限制
- 最大加速度限制
- 安全边界限制
六、参数怎么调,才更实用
导纳控制好不好用,很大程度取决于 MMM、BBB、KKK 的选择。
1. 虚拟质量 M
决定“推一下后动起来难不难”。
- M 大:动作稳,但显得迟钝
- M 小:反应快,但容易敏感
2. 虚拟阻尼 B
决定“运动时刹不刹得住”。
- B 大:更平稳,不容易振荡
- B 小:更灵活,但容易晃
3. 虚拟刚度 K
决定“偏离后想不想回到原位”。
- K 大:更像硬弹簧,不容易偏离太多
- K 小:更柔软,更容易被推开
4. 一个实用调参思路
如果你是第一次上手,不要一开始就追求“最优”,可以按下面思路:
- 先把 K 设小一点
先让系统有柔顺性 - 把 B 设大一点
优先保证不振荡 - 再慢慢减小或调整 M
找到反应速度和稳定性的平衡 - 最后根据任务增加 K
保证不会偏离过大
工程上,通常是先调出“稳”的系统,再调“快”和“柔”。
七、导纳控制适用场景
导纳控制之所以重要,正是因为它非常适合接触型任务和人机交互任务。
1. 协作机器人拖动示教
这是最典型的场景之一。
操作员用手推着机械臂走,机械臂根据受力自动运动,记录轨迹。
这种方式比手工编程更直观,特别适合:
- 小批量生产
- 频繁换工艺
- 非专业编程人员使用
在这个场景里,导纳控制的目标是:
让人感觉机器人“轻、顺、跟手”。
2. 精密装配
如:
- 插销插孔
- 连接器装配
- 轴孔配合
- 电池包插装
- 手机或电子产品组装
这些任务常常存在微小位置误差。
如果机器人太刚,接触后会横向受力增大,导致卡住、磨损甚至损坏零件。
导纳控制可以让机器人根据接触力自动做小范围让步和修正,提高装配成功率。
3. 打磨、抛光、去毛刺
这类任务的核心不是精确走到某个点,而是:
- 接触要连续
- 力要稳定
- 表面质量要均匀
工件表面可能并不完全平整,导纳控制能够使末端自动“贴着表面走”,从而提升加工一致性。
4. 医疗与康复机器人
在康复训练中,机器人不能像工业设备那样“硬推着人动”,而要根据患者的用力情况做柔顺响应。
导纳控制适合实现:
- 助力训练
- 主被动切换
- 柔顺交互
- 安全保护
比如患者稍微一用力,机器人就顺势带动关节运动,既自然又安全。
5. 外骨骼与助力设备
外骨骼系统中,设备需要根据人体施加的力来判断意图。
导纳控制能让设备“顺着人走”,而不是“拽着人走”。
这种体验差别非常大。
6. 遥操作与主从控制
在遥操作系统中,从端机器人与环境接触时,测得的接触力可以通过导纳模型转化为运动修正,使系统整体更平稳,减少刚性碰撞。
八、导纳控制特别适合哪些机器人系统
从工程角度说,以下类型系统特别适合导纳控制:
1. 底层是位置控制的工业机器人
这种最典型。
因为原有控制系统已经很成熟,增加一个外层导纳模块就能明显提升柔顺性。
2. 协作机械臂
天然需要人机交互和安全接触,导纳控制是常见方案。
3. 末端安装了六维力传感器的系统
有了可靠力反馈,导纳控制就更容易实现高质量效果。
4. 对接触过程“容错性”要求高的任务
如装配、打磨、检测、引导操作等。
九、导纳控制不是万能的
虽然导纳控制很好用,但也不是所有场景都适合。
1. 没有可靠力测量时,效果会打折扣
如果力传感器漂移大、噪声大,或者通过电机电流估算外力不准,那么导纳控制的稳定性会受影响。
2. 超高速强碰撞场景要慎用
导纳控制本质上还是“测到力再响应”,若碰撞特别剧烈,对采样频率、延迟和执行器性能要求很高。
3. 如果底层位置环很慢,导纳效果也会差
外层算得再好,内层跟不上,也无法表现出理想柔顺性。
所以导纳控制的落地效果,取决于整套系统:
- 传感器质量
- 采样频率
- 底层伺服带宽
- 参数整定
- 安全限幅策略
十、一个工程师视角的总结
如果用一句话来概括导纳控制:
它是一种把“接触力”转成“柔顺运动”的控制方法。
它的核心逻辑非常清晰:
- 感知外力
- 用虚拟质量—阻尼—刚度模型进行计算
- 生成位移或速度参考
- 让机器人表现得既能动,又不会乱动
和阻抗控制相比,导纳控制更适合许多底层以位置伺服为主的机器人平台,因此在工业应用中非常常见,也更容易落地。
它特别适用于:
- 人机协作
- 拖动示教
- 精密装配
- 打磨抛光
- 康复与助力设备
最重要的一点:
导纳控制关注的是:机器人受到多大力,就应该对应地“让出多少位移”或“给出多大速度”。
更多推荐
所有评论(0)