本节摘要:运动规划解决了"手往哪走",但真实世界的操作远不止"到位"这么简单——拧螺丝需要精确力矩,装配轴孔需要顺应误差,搬运鸡蛋需要控制接触力。位置控制假设环境是刚性的、精确的,一旦遇到接触、装配、打磨这类任务就会失效。力控与柔顺操作(Force Control and Compliant Manipulation)就是为这些"贴着对象干活"的任务而生。本节讲清楚为什么纯位置控制不够、力控与阻抗控制的基本思想、以及柔顺操作在装配打磨等场景里的工程要点。
阅读完本节,你应当能够:
纯位置控制有一个隐含假设:机器人末端能精确到达指定位置,环境也不会干扰它。这个假设在自由空间里成立,在接触任务里就崩溃了。想象机器人要把一个轴插进一个孔,孔的尺寸和轴几乎一样,位置误差只要超过间隙,轴就会卡在孔口。如果机器人还是死板地按预定位置往下压,结果就是过大的接触力,要么损坏零件,要么损坏机器人。
更糟的是,环境本身有不确定性:零件有制造公差、夹具会松动、物体表面有摩擦变化。位置控制没有"感知接触"的反馈回路,它只能盲目执行预定轨迹,遇到阻力就硬顶。这就是为什么纯位置控制在装配、打磨、抛光、旋拧这类"贴合作业"里表现糟糕——这些任务本质上要求机器人"顺着力的反馈去调整运动",而不是"无视力地走完轨迹"。
所以,机器人需要一种新的控制范式:把"力"作为一等的控制量,让机器人在接触过程中既能控制位置,也能控制接触力,甚至让位置和力按照一定的动力学关系协调变化。这就是力控与柔顺操作的出发点。
力控大致分两条路线:直接力控和阻抗控制(间接力控)。
直接力控的思路很直白:直接测量接触力,把力误差反馈给控制器,让末端施加的目标力跟踪设定值。比如要施加 10 牛的恒定压力,就实时测力、算误差、调整驱动。直接力控在力要求明确的场景(如恒力打磨)很好用,但它有一个问题:当末端没接触到物体时(自由空间),力误差没有意义,控制器会失控。所以直接力控通常只在接触发生后启用,需要与位置控制做切换。
阻抗控制(Impedance Control)的思路更巧妙:它不直接控制力,而是控制"末端位置与接触力之间的动态关系",也就是把机器人末端建模成一个"质量-弹簧-阻尼"系统。这个动态关系用阻抗方程描述,比如让末端在受力时像弹簧一样产生柔顺位移。控制目标不是"力等于某个值",而是"力与位置满足某个动态关系"。这样机器人在自由空间能正常走轨迹,在接触时又自然表现出柔顺性,不需要硬切换。
实际工程里很少只用一种控制模式,而是做混合力/位置控制(Hybrid Force/Position Control):在某个方向上控制力,在另一个方向上控制位置。比如打磨平面,垂直于表面的方向控制接触力(保持恒压),平行于表面的方向控制位置(走打磨轨迹)。这种按方向分解的思路,把任务的几何约束和控制目标对应起来,是接触类任务的标准做法。
阻抗参数的整定是个经验活。阻抗参数(刚度、阻尼、惯性)决定了末端的"软硬程度":刚度过大,机器人就很"硬",遇到障碍会硬顶;刚度过小,机器人太"软",定位精度会下降。工程上要根据任务在"柔顺性"和"定位精度"之间权衡。比如精密装配需要较高的定位刚度、较低的接触刚度;而打磨则相反,需要柔顺地贴合表面。
| 控制方式 | 控制目标 | 优点 | 局限 |
|---|---|---|---|
| 位置控制 | 末端到达指定位置 | 自由空间精度高 | 接触任务易产生过大接触力 |
| 直接力控 | 接触力跟踪设定值 | 恒力作业精确 | 自由空间易失控,需切换 |
| 阻抗控制 | 力与位置的动态关系 | 自然柔顺、无需硬切换 | 参数整定复杂 |
| 混合力/位置控制 | 分方向分别控力/控位 | 适配接触约束 | 需明确的约束方向分解 |
⚠️ 常见坑:以为"加了力传感器就是力控"。力传感器只是提供反馈信号,真正的力控需要把力反馈纳入控制回路并合理整定参数,否则反而会引入震荡。
💡 关键直觉:柔顺不是"变软"这么简单,而是让机器人在接触中"顺着力的反馈调整运动"。阻抗控制把这种柔顺性建模成动力学关系,是接触类任务的核心工具。

不一定,但有力传感器会好很多。六维力/力矩传感器能直接测量末端的接触力与力矩,力控精度高、带宽足;没有力传感器时,也可以用关节电流或力矩来估计接触力,但精度和响应速度都差一些。选择取决于任务的力控精度要求——精密装配和打磨通常需要专用力传感器,简单的柔顺避障用关节电流估计就够了。
两者都是柔顺控制的实现方式,但控制方向相反。阻抗控制以位置为输入、输出力(给定位置偏差产生力),适合力矩可控的机械臂;导纳控制以力为输入、输出位置修正(感受到力后调整位置),适合位置控制的机械臂。工程上常根据硬件能力选择,力矩控制的臂多用阻抗控制,位置控制的臂多用导纳控制。
看任务是否涉及接触。自由空间里的点到点运动用位置控制就够了,一旦涉及与环境的接触——装配、打磨、抛光、旋拧——就必须引入力控或柔顺,否则误差会被接触力放大,轻则损坏零件,重则损坏机器人。
下一章我们进入学习范式,看强化学习、模仿学习以及仿真到现实的迁移,如何让机器人"学会"这些控制与操作技能。