导纳控制与阻抗控制
记录一下阻抗控制和导纳控制,阻抗控制(Impedance Control)和导纳控制(Admittance Control)是机器人力控制领域中两种最常用的方法。这两种方法的核心思想都是通过构造一个虚拟的质量—阻尼—弹簧系统(Mass–Spring–Damper System),来描述机器人末端运动与接触力之间的动态关系,使机器人在与环境交互时表现出期望的力学特性。导纳控制图导纳控制图导纳控制图阻
前言
记录一下阻抗控制和导纳控制,阻抗控制(Impedance Control)和导纳控制(Admittance Control)是机器人力控制领域中两种最常用的方法。这两种方法的核心思想都是通过构造一个虚拟的质量—阻尼—弹簧系统(Mass–Spring–Damper System),来描述机器人末端运动与接触力之间的动态关系,使机器人在与环境交互时表现出期望的力学特性。

导纳控制图 导纳控制图 导纳控制图

阻抗控制图 阻抗控制图 阻抗控制图
阻抗控制
阻抗模型
机械阻抗的定义为
Z ( s ) = F ( s ) V ( s ) Z(s)=\frac{F(s)}{V(s)} Z(s)=V(s)F(s)
即输入运动,输出力。典型的阻抗动力学模型为
F = M x ¨ + B x ˙ + K x F = M\ddot{x} + B\dot{x} + Kx F=Mx¨+Bx˙+Kx
考虑期望轨迹与期望接触力时,可以写为
F e − F d = M ( x ¨ − x ¨ d ) + B ( x ˙ − x ˙ d ) + K ( x − x d ) F_e - F_d=M(\ddot{x}-\ddot{x}_d) + B(\dot{x}-\dot{x}_d) + K(x-x_d) Fe−Fd=M(x¨−x¨d)+B(x˙−x˙d)+K(x−xd)
即
F = F d + M ( x ¨ − x ¨ d ) + B ( x ˙ − x ˙ d ) + K ( x − x d ) F = F_d+M(\ddot{x}-\ddot{x}_d) + B(\dot{x}-\dot{x}_d) + K(x-x_d) F=Fd+M(x¨−x¨d)+B(x˙−x˙d)+K(x−xd)
阻抗控制得到的力指令 F F F直接发送给电流/力矩环,使得机器人与外界接触力F_e为指令F.
力/力矩控制
阻抗控制得到的力指令 F F F 需要进一步转换为关节空间的力矩指令,然后由底层的电流/力矩控制环执行。设机械臂末端力与关节力矩之间的关系为
τ = J T ( q ) F \tau = J^T(q)F τ=JT(q)F
其中 J ( q ) J(q) J(q) 为机械臂在关节位姿 q q q 处的雅可比矩阵, τ \tau τ 为关节力矩向量。由此可得到期望关节力矩
τ = J T ( q ) F \tau = J^T(q)F τ=JT(q)F
机械臂在力矩驱动下满足其动力学方程
M ( q ) q ¨ + C ( q , q ˙ ) q ˙ + g ( q ) = τ + τ e x t M(q)\ddot{q}+C(q,\dot q)\dot q+g(q)=\tau+\tau_{ext} M(q)q¨+C(q,q˙)q˙+g(q)=τ+τext
其中
- M ( q ) M(q) M(q) 为惯性矩阵
- C ( q , q ˙ ) C(q,\dot q) C(q,q˙)为科氏力和离心力项
- g ( q ) g(q) g(q) 为重力项
- τ e x t \tau_{ext} τext为环境作用在机械臂上的外部力矩
当末端执行器与环境发生接触时,环境会产生接触力 F e F_e Fe,该力通过雅可比矩阵传递到关节空间形成外部力矩
τ e x t = J T ( q ) F e \tau_{ext}=J^T(q)F_e τext=JT(q)Fe
F F F是指令接触力, F e F_e Fe是实际接触力,如果我们假设其相等,则我们的机器人实现了
当末端位置偏离期望轨迹时,控制器会产生相应的作用力,使机器人逐渐恢复到期望轨迹附近,从而实现柔顺的接触行为。
F e − F d = M ( x ¨ − x ¨ d ) + B ( x ˙ − x ˙ d ) + K ( x − x d ) F_e - F_d = M(\ddot{x}-\ddot{x}_d) + B(\dot{x}-\dot{x}_d) + K(x-x_d) Fe−Fd=M(x¨−x¨d)+B(x˙−x˙d)+K(x−xd)
总的来说,阻抗控制就是当机器人偏离期望轨迹时,我们控制它的末端接触力。末端接触力和运动轨迹偏离量的关系,符合阻抗模型。
导纳控制
导纳模型
机械导纳的定义为
Y ( s ) = V ( s ) F ( s ) Y(s)=\frac{V(s)}{F(s)} Y(s)=F(s)V(s)
即输入力,输出运动。典型的导纳动力学模型为
M x ¨ + B x ˙ + K x = F M\ddot{x} + B\dot{x} + Kx = F Mx¨+Bx˙+Kx=F
考虑期望轨迹与期望接触力时,可以写为
M ( x ¨ − x ¨ d ) + B ( x ˙ − x ˙ d ) + K ( x − x d ) = F e − F d M(\ddot{x}-\ddot{x}_d) + B(\dot{x}-\dot{x}_d) + K(x-x_d)=F_e-F_d M(x¨−x¨d)+B(x˙−x˙d)+K(x−xd)=Fe−Fd
即
M ( x ¨ − x ¨ d ) + B ( x ˙ − x ˙ d ) + K ( x − x d ) = F e − F d M(\ddot{x}-\ddot{x}_d) + B(\dot{x}-\dot{x}_d) + K(x-x_d)=F_e-F_d M(x¨−x¨d)+B(x˙−x˙d)+K(x−xd)=Fe−Fd
其中:
- x x x 为导纳模型输出的指令位置
- x d x_d xd 为期望位置
- F e F_e Fe 为实际接触力
- F d F_d Fd 为期望接触力
x ¨ = x ¨ d + 1 M ( F e − F d − B ( x ˙ − x ˙ d ) − K ( x − x d ) ) \ddot{x}=\ddot{x}_d+\frac{1}{M}\left(F_e-F_d-B(\dot{x}-\dot{x}_d)-K(x-x_d)\right) x¨=x¨d+M1(Fe−Fd−B(x˙−x˙d)−K(x−xd))
x ˙ ( t ) = ∫ x ¨ ( t ) d t \dot{x}(t)=\int \ddot{x}(t)\,dt x˙(t)=∫x¨(t)dt
x ( t ) = ∫ x ˙ ( t ) d t x(t)=\int \dot{x}(t)\,dt x(t)=∫x˙(t)dt
导纳控制以接触力误差 F e − F d F_e-F_d Fe−Fd 作为输入,通过导纳模型生成位置指令 x x x。当实际接触力偏离期望接触力时,导纳模型通过调整位置指令来修正机器人的运动。
位置控制
导纳控制得到的位置指令 x x x 需要进一步转换为关节空间的位置指令,然后由位置控制环执行。
q = I K ( x ) q = IK(x) q=IK(x)
其中 $ IK$ 为机械臂逆运动,q为关节位置指令(我们也可以通过逆雅各比通过末端速度指令计算关节速度指令)。位置控制环我们掠过不讲了,最终得到了机器人实际位置 x e x_e xe。
x x x是指令位置, x e x_e xe是实际位置,如果我们假设其相等,则我们的机器人实现了
当末端力偏离期望力时,控制器会产生相应的位移,使机器人逐渐恢复到期望接触力附件,从而实现柔顺的接触行为。
M ( x ¨ − x ¨ d ) + B ( x ˙ − x ˙ d ) + K ( x − x d ) = F e − F d M(\ddot{x}-\ddot{x}_d) + B(\dot{x}-\dot{x}_d) + K(x-x_d)=F_e - F_d M(x¨−x¨d)+B(x˙−x˙d)+K(x−xd)=Fe−Fd
总的来说,导纳控制就是当机器人偏离期望力时,我们控制它的末端运动。末端接触力和运动轨迹偏离量的关系,符合阻抗模型。
对比与总结
阻抗控制与导纳控制的核心区别在于系统输入与输出关系不同。
阻抗模型描述的是 运动到力的关系:
F = M x ¨ + B x ˙ + K x F = M\ddot{x} + B\dot{x} + Kx F=Mx¨+Bx˙+Kx
导纳模型描述的是 力到运动的关系:
M x ¨ + B x ˙ + K x = F M\ddot{x} + B\dot{x} + Kx = F Mx¨+Bx˙+Kx=F
在机器人控制系统中,两种控制方法的实现方式也有所不同。
阻抗控制中,控制器根据末端位置与期望轨迹之间的偏差,通过阻抗模型计算得到期望接触力 F F F,再通过雅可比矩阵转换为关节力矩并发送至电流/力矩控制环,从而直接调节机器人与环境之间的交互力。因此阻抗控制的本质是:
通过调节末端接触力来修正机器人运动。
导纳控制中,控制器首先测量机器人末端的实际接触力 F e F_e Fe,并与期望接触力 F d F_d Fd 进行比较,通过导纳模型计算得到新的末端位置指令 x x x,再通过逆运动学转换为关节空间位置指令并发送至位置控制环,从而通过改变机器人运动来调节接触力。因此导纳控制的本质是:
通过调节末端运动来修正机器人接触力。
两种控制方法的主要区别可以总结如下:
| 控制方式 | 输入 | 输出 | 控制接口 |
|---|---|---|---|
| 阻抗控制 | 运动偏差 | 力/力矩 | 力矩控制 |
| 导纳控制 | 力偏差 | 位置/速度 | 位置控制 |
因此,在具有力矩控制接口的机器人(如力矩控制机械臂)中,通常采用阻抗控制;而在大多数工业机器人仅提供位置控制接口的情况下,导纳控制更容易实现。
总体而言,阻抗控制和导纳控制本质上都是通过构造一个 虚拟质量–阻尼–弹簧系统(Mass–Spring–Damper system) 来描述机器人与环境之间的动态关系,使机器人在与环境接触时表现出期望的柔顺特性。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)