#阻抗控制 #导纳控制
详细可参考书本:《现代机器人学:机构规划与控制》第11.7节。
阻抗的定义
在刚性环境中理想的[[力、运动-力混合控制|运动-力混合控制]],需要极端的机器人阻抗(impedance),阻抗将端点的运动变化作为干扰力的函数来进行表征。
理想的运动控制对应于高阻抗(由于力扰动而引起的运动变化很小),而理想的力控制对应于低阻抗(由于运动干扰而引起的力的变化很小)。例如用作触觉模拟器的机器人:
m
x
¨
+
b
x
˙
+
k
x
=
f
m\ddot{x}+b\dot{x}+kx=f
mx¨+bx˙+kx=f
如果
{
m
,
b
,
k
}
\{m,b,k\}
{m,b,k}中的一个或多个参数(一般指
b
b
b或
k
k
k)很大,则机器人呈现高阻抗;同样地,如果这些参数都很小,称机器人呈现低阻抗。
更正式的,对上式进行拉氏变换得到,
(
m
s
2
+
b
s
+
k
)
X
(
s
)
=
F
(
s
)
(ms^2+bs+k)X(s)=F(s)
(ms2+bs+k)X(s)=F(s)
则阻抗由位置扰动到力的传递函数
Z
(
s
)
=
F
(
s
)
/
X
(
s
)
Z(s)=F(s)/X(s)
Z(s)=F(s)/X(s)表示。因此,阻抗取决于频率,并且其低频响应由弹簧支配,而高频响应由质量支配。而导纳
Y
(
s
)
Y(s)
Y(s)是阻抗的倒数:
Y
(
s
)
=
Z
−
1
(
s
)
=
X
(
s
)
/
F
(
s
)
Y(s)=Z^{-1}(s)=X(s)/F(s)
Y(s)=Z−1(s)=X(s)/F(s)。
- 好的运动控制器→高阻抗(低阻纳)→ Δ X = Y Δ F \Delta X=Y\Delta F ΔX=YΔF→力扰动 Δ F \Delta F ΔF仅能产生很小的位置扰动 Δ X \Delta X ΔX;
- 好的力控制器→低阻抗(高导纳)→ Δ F = Z Δ X \Delta F=Z\Delta X ΔF=ZΔX→运动扰动 Δ X \Delta X ΔX仅能产生很小的力扰动 Δ F \Delta F ΔF。
阻抗/导纳控制目标
阻抗控制是为了实现如下的任务空间行为:
M
x
¨
+
B
x
˙
+
K
x
=
f
e
x
t
(11.64)
M\ddot{x}+B\dot{x}+Kx=f_{ext} \tag{11.64}
Mx¨+Bx˙+Kx=fext(11.64)
式中,
x
∈
R
n
x\in \mathbb{R}^n
x∈Rn是在最小坐标集中的任务空间位形,如
x
∈
R
3
x\in \mathbb{R}^3
x∈R3;
M
M
M,
B
B
B,
K
K
K,是由机器人模拟的正定虚拟质量、阻尼和刚度矩阵,并且
f
e
x
t
f_{ext}
fext是施加到机器人的力,该力可能由用户施加。
M
M
M,
B
B
B与
K
K
K的值可能会根据虚拟环境中的位置而改变,以便表示不同的物体,但我们所关注的是恒定量值情况。
上述行为可以使用运动旋量和力旋量来进行替代实现:
F
e
x
t
→
f
e
x
t
\mathcal{F}_{ext}\rightarrow f_{ext}
Fext→fext,
V
→
x
˙
\mathcal{V}\rightarrow \dot{x}
V→x˙,
V
˙
→
x
¨
\dot{\mathcal{V}}\rightarrow \ddot{x}
V˙→x¨,
S
θ
→
x
\mathcal{S}\theta\rightarrow x
Sθ→x。
阻抗/导纳控制型机器人
阻抗控制型机器人(impedance controlled):机器人感知端点运动 x ( t ) x(t) x(t)并控制关节力矩和力来生成 − f e x t -f_{ext} −fext,其为显示给用户的力,即实现了从运动到力的传递函数 Z ( S ) Z(\mathcal{S}) Z(S);
导纳控制型机器人(admittance controlled):机器人使用安装在腕部的力-力矩传感器来感知 f e x t f_{ext} fext,并控制其运动以作出响应,即实现了从力到运动的传递函数 Y ( S ) Y(\mathcal{S}) Y(S).
阻抗控制算法
在阻抗控制算法中,编码器、转速计、甚至可能包括加速度计,被用于估计关节和
端点的位置、速度、甚至加速度。通常阻抗控制下的机器人并不在腕部配备力-力矩
传感器,而是依靠它们精确控制关节扭矩的能力来呈现适当的末端执行器力
−
f
e
x
t
-f_{ext}
−fext,如为了实现式(11.64)的任务空间行为,根据[[力、运动-力混合控制#力控制]]可知,机器人对外部环境的施加力
−
f
e
x
t
-f_{ext}
−fext可以表示为
−
(
M
x
¨
+
B
x
˙
+
K
x
)
-(M\ddot{x}+B\dot{x}+Kx)
−(Mx¨+Bx˙+Kx),此时机器人的任务空间动力学方程可以写为:
F
=
Λ
~
(
θ
)
x
¨
+
η
~
(
θ
,
x
˙
)
⏟
用于动力学补偿
−
(
M
x
¨
+
B
x
˙
+
K
x
)
⏟
用于产生对环境的作用力
\mathcal{F} =\underset{\text{用于动力学补偿}}{\underbrace{\tilde{\Lambda}\left( \theta \right) \ddot{x}+\tilde{\eta}\left( \theta ,\dot{x} \right) }}\underset{\text{用于产生对环境的作用力}}{\underbrace{-\left( M\ddot{x}+B\dot{x}+Kx \right) }}
F=用于动力学补偿
Λ~(θ)x¨+η~(θ,x˙)用于产生对环境的作用力
−(Mx¨+Bx˙+Kx)
该式即可以看作基于前馈控制的阻抗控制律。
导纳控制算法
在导纳控制算法中,由腕部测力传感器来测量用户施加的力
f
e
x
t
f_{ext}
fext,同时机器人以满足式(11.64)的末端执行器加速度进行响应。一种简单的计算末端执行器的期望加速度
x
¨
d
\ddot{x}_d
x¨d的方法可采用:
M
x
¨
d
+
B
x
˙
+
K
x
=
f
e
x
t
M\ddot{x}_d+B\dot{x}+Kx=f_{ext}
Mx¨d+Bx˙+Kx=fext
式中,
(
x
,
x
˙
)
(x,\dot{x})
(x,x˙)是当前状态,根据上式可得
x
¨
d
=
M
−
1
(
f
e
x
t
−
B
x
˙
−
K
x
)
\ddot{x}_d=M^{-1}(f_{ext}-B\dot{x}-Kx)
x¨d=M−1(fext−Bx˙−Kx).
根据正向运动学
x
=
f
(
θ
)
x=f(\theta)
x=f(θ),[[开链机器人的静力学#1. 雅可比矩阵|雅可比矩阵]]为
∂
f
(
q
)
∂
q
\frac{\partial \boldsymbol{f}\left( \boldsymbol{q} \right)}{\partial \boldsymbol{q}}
∂q∂f(q),因此有
x
˙
=
J
(
θ
)
θ
˙
x
¨
=
J
(
θ
)
θ
¨
+
J
˙
(
θ
)
θ
˙
\begin{aligned} \dot{x}&=J\left( \theta \right) \dot{\theta}\\ \ddot{x}&=J\left( \theta \right) \ddot{\theta}+\dot{J}\left( \theta \right) \dot{\theta}\\ \end{aligned}
x˙x¨=J(θ)θ˙=J(θ)θ¨+J˙(θ)θ˙
所需的关节加速度
θ
¨
d
\ddot{\theta}_d
θ¨d可通过下式计算:
x
¨
=
J
(
θ
)
θ
¨
+
J
˙
(
θ
)
θ
˙
⇒
θ
¨
d
=
J
†
(
θ
)
(
x
¨
−
J
˙
(
θ
)
θ
˙
)
\ddot{x}=J\left( \theta \right) \ddot{\theta}+\dot{J}\left( \theta \right) \dot{\theta}\Rightarrow \ddot{\theta}_d=J^{\dagger}\left( \theta \right) \left( \ddot{x}-\dot{J}\left( \theta \right) \dot{\theta} \right)
x¨=J(θ)θ¨+J˙(θ)θ˙⇒θ¨d=J†(θ)(x¨−J˙(θ)θ˙)
再进一步使用逆动力学计算关节力和力矩指令
τ
\tau
τ。
阻抗控制器测量末端执行器的运动,并产生终点力以模拟质量-弹簧-阻尼系统。导纳控制器测量末端执行器的力,并产生终点运动。