阻抗控制(Impedance Control, 期望位置 -> 力[1])
- 需要最常规的闭环力矩控制器,不一定要独立力传感器。SDK 需要力矩/电流接口.
- 把软的变硬.
- 输入 位置 目标 x_des, v_des, a_des (一般是多个点)和当前 x, v, a
- 输出 力
F_cmd = K * (x_des - x) + B * (v_des - v) + M * (a_des - a)
导纳控制(Admittance control,外部力 -> 期望位置[1])
- 不需要闭环力矩控制器,但需要力传感器. 适合需要根据环境施加的力”让步“的场景. SDK 需要位控接口.
- 把硬的变软.
- 输入 外力, v, x_ref 是机器人在无外力时应该跟踪的位置
- 输出 位置. 计算加速度
a = (F_ext - B * v - K * (x - x_ref)) / M,然后显示欧拉积分直接 * dt 计算 v, a.
- 这里都是指末端的.
- 阻抗控制和导纳控制是实现柔顺控制(Compliance Control) 的方式.
力控
- 可以用 impedance control 或 admittance control 实现.
通用控制 (p 位置, F 外力) -> T 输出力矩.
F = k(p - p0) - m p'' - σ p'- 可设定: k 刚度 (stiffness. 常见 10000N/m) . m 惯性 . σ 阻尼 (damping).
不错的文章:https://zhuanlan.zhihu.com/p/31811242 : 为什么我们在机器人运动控制中一直在强调力控?(Force/Torque Control)
- 单单将关节目标位置(Target Position)作为控制输出量远远不能达到应用的要求,必须引入力矩/力控制输出量,或者将力矩/力作为闭环反馈量引入控制.