9.5.0 前言
随着关节数目的增加,一个多关节机器人的动力学方程可能会变得非常可怕。但幸运的是,动力学方程里面包含了一些重要的结构性质,这些性质可以给后面推导控制算法带来很大的便利。我们会在接下来的内容里看到这些优点。本节我们将会讨论其中的一些性质,包括反对称性质,被动性质以及参数的线性特征。对于转动关节机器人,惯量矩阵也满足了一些对设计控制算法有帮助的全局特征。
9.5.1 反对称性和无源性
反对称性
反对称性质指的是惯量矩阵
D
(
q
)
D(q)
D(q)与矩阵
C
(
q
,
q
˙
)
C(\boldsymbol{q}, \dot{\boldsymbol{q}})
C(q,q˙)之间的一种重要的关系,该性质定义如下
证明:
给定一个惯量矩阵
D
(
q
)
D(q)
D(q),根据求导的链式法则,得到
D
˙
(
q
)
\dot{D}(q)
D˙(q)的第
k
j
kj
kj 个元素为
d
˙
k
j
=
∑
i
=
1
n
∂
d
k
j
∂
q
i
q
˙
i
\dot{d}_{k j}=\sum_{i=1}^{n} \frac{\partial d_{k j}}{\partial q_{i}} \dot{q}_{i}
d˙kj=i=1∑n∂qi∂dkjq˙i
因此,
N
=
D
˙
−
2
C
N=\dot{D}-2 C
N=D˙−2C的第
k
j
kj
kj 个元素为:
n
k
j
=
d
˙
k
j
−
2
c
k
j
=
∑
i
=
1
n
[
∂
d
k
j
∂
q
i
−
{
∂
d
k
j
∂
q
i
+
∂
d
k
i
∂
j
−
∂
d
i
j
∂
q
k
}
]
q
˙
i
=
∑
i
=
1
n
[
∂
d
i
j
∂
q
k
−
∂
d
k
i
∂
q
j
]
q
˙
i
\begin{aligned} n_{k j} &=\dot{d}_{k j}-2 c_{k j} \\ &=\sum_{i=1}^{n}\left[\frac{\partial d_{k j}}{\partial q_{i}}-\left\{\frac{\partial d_{k j}}{\partial q_{i}}+\frac{\partial d_{k i}}{\partial_{j}}-\frac{\partial d_{i j}}{\partial q_{k}}\right\}\right] \dot{q}_{i} \\ &=\sum_{i=1}^{n}\left[\frac{\partial d_{i j}}{\partial q_{k}}-\frac{\partial d_{k i}}{\partial q_{j}}\right] \dot{q}_{i} \end{aligned}
nkj=d˙kj−2ckj=i=1∑n[∂qi∂dkj−{∂qi∂dkj+∂j∂dki−∂qk∂dij}]q˙i=i=1∑n[∂qk∂dij−∂qj∂dki]q˙i
由于
D
(
q
)
D(q)
D(q)是对称的,也就是说
d
i
j
=
d
j
i
,
d_{i j}=d_{j i},
dij=dji,根据这个条件带入到式子里面很容易就能得到证明:
n
j
k
=
−
n
k
j
n_{j k}=-n_{k j}
njk=−nkj
无源性
与反对称性质相关的另一个性质就是无源性,正如在之前的章节里面提到的那样,无源性意味着存在一个常量
β
≥
0
,
\beta \geq 0,
β≥0, 使得
∫
0
T
q
˙
T
(
ζ
)
τ
(
ζ
)
d
ζ
≥
−
β
,
∀
T
>
0
\int_{0}^{T} \dot{q}^{T}(\zeta) \tau(\zeta) d \zeta \geq-\beta, \quad \forall T>0
∫0Tq˙T(ζ)τ(ζ)dζ≥−β,∀T>0
q
˙
T
τ
\dot{q}^{T} \tau
q˙Tτ这一项单位为能量单位,因此上述表达式的左边代表了该系统在时间0到T的间隔里所消耗的能量有一个
−
β
-\beta
−β定义的下限。单词“无源性”来自于电路理论里面的无源系统(一个仅由电阻电容和电感组成的电路系统)。比如一个无源的机械系统可以有配重,弹簧和阻尼器组成。
为了证明无源性,我们用H代表系统的总能量(动能+势能)
H
=
1
2
q
˙
T
D
(
q
)
q
˙
+
P
(
q
)
H=\frac{1}{2} \dot{q}^{T} D(q) \dot{q}+P(q)
H=21q˙TD(q)q˙+P(q)因此,H的求导满足
H
˙
=
q
˙
T
D
(
q
)
q
¨
+
1
2
q
˙
T
D
˙
(
q
)
q
˙
+
q
˙
T
∂
P
∂
q
=
q
˙
T
{
τ
−
C
(
q
,
q
˙
)
−
g
(
q
)
}
+
1
2
q
˙
T
D
˙
(
q
)
q
˙
+
q
˙
T
∂
P
∂
q
\begin{aligned} \dot{H} &=\dot{q}^{T} D(q) \ddot{q}+\frac{1}{2} \dot{q}^{T} \dot{D}(q) \dot{q}+\dot{q}^{T} \frac{\partial P}{\partial q} \\ &=\dot{q}^{T}\{\tau-C(q, \dot{q})-g(q)\}+\frac{1}{2} \dot{q}^{T} \dot{D}(q) \dot{q}+\dot{q}^{T} \frac{\partial P}{\partial q} \end{aligned}
H˙=q˙TD(q)q¨+21q˙TD˙(q)q˙+q˙T∂q∂P=q˙T{τ−C(q,q˙)−g(q)}+21q˙TD˙(q)q˙+q˙T∂q∂P这里我们代入了动力学方程来消除
D
(
q
)
q
¨
D(q) \ddot{q}
D(q)q¨项,再代入
g
(
q
)
=
∂
P
∂
q
g(q)=\frac{\partial P}{\partial q}
g(q)=∂q∂P得到
H
˙
=
q
˙
T
τ
+
1
2
q
˙
T
{
D
˙
(
q
)
−
2
C
(
q
,
q
˙
)
}
q
˙
=
q
˙
T
τ
\begin{aligned} \dot{H} &=\dot{q}^{T} \tau+\frac{1}{2} \dot{q}^{T}\{\dot{D}(q)-2 C(q, \dot{q})\} \dot{q} \\ &=\dot{q}^{T} \tau \end{aligned}
H˙=q˙Tτ+21q˙T{D˙(q)−2C(q,q˙)}q˙=q˙Tτ第二项为0是因为括号里由反对称矩阵的特性(为什么等于0的细节我还未弄清楚)。因为能量H(T)至少为0,因此最后两边求导得到
∫
0
T
q
˙
T
(
ζ
)
τ
(
ζ
)
d
ζ
=
H
(
T
)
−
H
(
0
)
≥
−
H
(
0
)
\int_{0}^{T} \dot{q}^{T}(\zeta) \tau(\zeta) d \zeta=H(T)-H(0) \geq-H(0)
∫0Tq˙T(ζ)τ(ζ)dζ=H(T)−H(0)≥−H(0)
9.5.2 惯量矩阵的限制条件
前面我们已经知道一个n关节的刚体机器人的惯量矩阵是对称的正定矩阵。对于一个定值 q,假设
0
<
λ
1
(
q
)
≤
…
,
≤
0<\lambda_{1}(q) \leq \ldots, \leq
0<λ1(q)≤…,≤
λ
n
(
q
)
\lambda_{n}(q)
λn(q)代表
D
(
q
)
D(q)
D(q)的n个特征值。由于
D
(
q
)
D(q)
D(q)是正定矩阵,因此这些所有特征值都为正。因此很容易得到:
λ
1
(
q
)
I
n
×
n
≤
D
(
q
)
≤
λ
n
(
q
)
I
n
×
n
\lambda_{1}(q) I_{n \times n} \leq D(q) \leq \lambda_{n}(q) I_{n \times n}
λ1(q)In×n≤D(q)≤λn(q)In×n这里的
I
n
×
n
I_{n \times n}
In×n 代表
n
×
n
n \times n
n×n 的单位矩阵。要理解上述不等式,我们需要给出以下定义:
- A和B是nxn的矩阵,如果B<A,那么A-B是正定矩阵
- 如果B<=A,那么A-B是半正定矩阵
如果全部关节都是转动关节,那么惯量矩阵仅仅包含关节变量的有界方程(例如:sin和cos项)。结果就是我们可以找到两个常数构成
D
(
q
)
D(q)
D(q)的上下界:
λ
m
I
n
×
n
≤
D
(
q
)
≤
λ
M
I
n
×
n
<
∞
\lambda_{m} I_{n \times n} \leq D(q) \leq \lambda_{M} I_{n \times n}<\infty
λmIn×n≤D(q)≤λMIn×n<∞
9.5.3 参数的线性性质
机器人的动力学方程由一些特定的参数构成,比如连杆质量,惯量矩等等,要使用这些参数去仿真动力学方程或者调试控制器,我们需要对于每个特定的机器人仔细地考究其动力学参数。动力学方程的复杂性使得这些参数的确定变得十分困难。幸运的是,某些条件下动力学方程的惯量参数可以看成是线性的。因此存在一个
n
×
ℓ
n \times \ell
n×ℓ的矩阵方程
Y
(
q
,
q
˙
,
q
¨
)
Y(q, \dot{q}, \ddot{q})
Y(q,q˙,q¨) 和
ℓ
\ell
ℓ 维的向量使得之前的欧拉拉格朗日动力学方程可以改写为:
D
(
q
)
+
C
(
q
,
q
˙
)
q
˙
+
g
(
q
)
=
:
Y
(
q
,
q
˙
,
q
¨
)
Θ
=
τ
D(q)+C(q, \dot{q}) \dot{q}+g(q)=: Y(q, \dot{q}, \ddot{q}) \Theta=\tau
D(q)+C(q,q˙)q˙+g(q)=:Y(q,q˙,q¨)Θ=τ
Y
(
q
,
q
˙
,
q
¨
)
Y(q, \dot{q}, \ddot{q})
Y(q,q˙,q¨)项被称为回归矩阵,
Θ
\Theta
Θ是参数向量。
R
ℓ
\mathbf{R}^{\ell}
Rℓ是参数空间的维度,也就是说要表达动力学方程,所需要的参数的个数并不是唯一的。一般来说,一个给定刚体需要用10个参数来描述:总质量、6个惯性张量的项以及3个质心坐标项。因此一个n连杆的机器人最多需要用10n个动力学参数来完全描述。由于连杆之间由于关节的连接有一定的耦合关系,所以少过10n个参数有时也能完全描述一个机器人。但是找到机器人的最少参数集也不是件容易的事情。我们来举个例子:
例9.3 双连杆平面机器人
考虑例 9.4.2 里说到的双关节机器人。我们已经得到d的表达式
d
11
=
m
1
ℓ
c
1
2
+
m
2
(
ℓ
1
2
+
ℓ
c
2
2
+
2
ℓ
1
ℓ
c
2
2
+
2
ℓ
1
ℓ
c
2
cos
q
2
)
+
I
1
+
I
2
d
12
=
d
21
=
m
2
(
ℓ
c
2
2
+
ℓ
1
ℓ
c
2
cos
q
2
)
+
I
2
d
22
=
m
2
ℓ
c
2
2
+
I
2
\begin{aligned} d_{11} &=m_{1} \ell_{c 1}^{2}+m_{2}\left(\ell_{1}^{2}+\ell_{c 2}^{2}+2 \ell_{1} \ell_{c 2}^{2}+2 \ell_{1} \ell_{c 2} \cos q_{2}\right)+I_{1}+I_{2} \\ d_{12} &=d_{21}=m_{2}\left(\ell_{c 2}^{2}+\ell_{1} \ell_{c 2} \cos q_{2}\right)+I_{2} \\ d_{22} &=m_{2} \ell_{c 2}^{2}+I_{2} \end{aligned}
d11d12d22=m1ℓc12+m2(ℓ12+ℓc22+2ℓ1ℓc22+2ℓ1ℓc2cosq2)+I1+I2=d21=m2(ℓc22+ℓ1ℓc2cosq2)+I2=m2ℓc22+I2
因此如果取Θ满足:
Θ
1
=
m
1
ℓ
c
1
2
+
m
2
(
ℓ
1
2
+
ℓ
c
2
2
+
2
ℓ
1
ℓ
c
2
2
)
+
I
1
+
I
2
Θ
2
=
m
2
ℓ
1
ℓ
c
2
Θ
3
=
m
2
ℓ
c
2
2
+
I
2
\begin{aligned} \Theta_{1} &=m_{1} \ell_{c 1}^{2}+m_{2}\left(\ell_{1}^{2}+\ell_{c 2}^{2}+2 \ell_{1} \ell_{c 2}^{2}\right)+I_{1}+I_{2} \\ \Theta_{2} &=m_{2} \ell_{1} \ell_{c 2} \\ \Theta_{3} &=m_{2} \ell_{c 2}^{2}+I_{2} \end{aligned}
Θ1Θ2Θ3=m1ℓc12+m2(ℓ12+ℓc22+2ℓ1ℓc22)+I1+I2=m2ℓ1ℓc2=m2ℓc22+I2
那么
d
d
d 的表达式可以重写为
d
11
=
Θ
1
+
2
Θ
2
cos
(
q
2
)
d
12
=
d
21
=
Θ
3
+
Θ
2
cos
(
q
2
)
d
22
=
Θ
3
\begin{aligned} d_{11} &=\Theta_{1}+2 \Theta_{2} \cos \left(q_{2}\right)\\ d_{12} &=d_{21}=\Theta_{3}+\Theta_{2} \cos \left(q_{2}\right) \\ d_{22} &=\Theta_{3} \end{aligned}
d11d12d22=Θ1+2Θ2cos(q2)=d21=Θ3+Θ2cos(q2)=Θ3
由于
C
h
r
i
s
t
o
f
f
e
l
Christoffel
Christoffel 项也可以由已经定义的
Θ
2
\Theta_{2}
Θ2 来表达,因此不需要定义多余的参数描述。重力扭矩项则需要多两个参数描述,令
Θ
4
=
m
1
ℓ
c
1
+
m
2
ℓ
1
Θ
5
=
m
2
ℓ
c
2
\begin{aligned} \Theta_{4} &=m_{1} \ell_{c 1}+m_{2} \ell_{1} \\ \Theta_{5} &=m_{2} \ell_{c2} \end{aligned}
Θ4Θ5=m1ℓc1+m2ℓ1=m2ℓc2
因此得到
ϕ
1
=
Θ
4
g
cos
(
q
1
)
+
Θ
5
g
cos
(
q
1
+
q
2
)
ϕ
2
=
Θ
5
cos
(
q
1
+
q
2
)
\begin{aligned} \phi_{1} &=\Theta_{4} g \cos \left(q_{1}\right)+\Theta_{5} g \cos \left(q_{1}+q_{2}\right) \\ \phi_{2} &=\Theta_{5} \cos \left(q_{1}+q_{2}\right) \end{aligned}
ϕ1ϕ2=Θ4gcos(q1)+Θ5gcos(q1+q2)=Θ5cos(q1+q2)
把上述结果带入到动力学方程得到:
然后得到Θ的表达
Θ
=
[
Θ
1
Θ
2
Θ
3
Θ
4
Θ
5
]
=
[
m
1
ℓ
c
1
2
+
m
2
(
ℓ
1
2
+
ℓ
c
2
2
+
2
ℓ
1
ℓ
c
2
2
)
+
I
1
+
I
2
m
2
ℓ
1
ℓ
c
2
m
2
ℓ
c
2
2
+
I
2
m
1
ℓ
c
1
+
m
2
ℓ
1
m
2
ℓ
c
2
]
\Theta=\left[\begin{array}{c} \Theta_{1} \\ \Theta_{2} \\ \Theta_{3} \\ \Theta_{4} \\ \Theta_{5} \end{array}\right]=\left[\begin{array}{c} m_{1} \ell_{c 1}^{2}+m_{2}\left(\ell_{1}^{2}+\ell_{c 2}^{2}+2 \ell_{1} \ell_{c 2}^{2}\right)+I_{1}+I_{2} \\ m_{2} \ell_{1} \ell_{c 2} \\ m_{2} \ell_{c 2}^{2}+I_{2} \\ m_{1} \ell_{c 1}+m_{2} \ell_{1} \\ m_{2} \ell_{c2} \end{array}\right]
Θ=⎣⎢⎢⎢⎢⎡Θ1Θ2Θ3Θ4Θ5⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡m1ℓc12+m2(ℓ12+ℓc22+2ℓ1ℓc22)+I1+I2m2ℓ1ℓc2m2ℓc22+I2m1ℓc1+m2ℓ1m2ℓc2⎦⎥⎥⎥⎥⎤
因此我们用了五个参数就描述了该机器人的动力学方程,如果该机器人水平放置变成SCARA机器人的话,那么重力项就可以忽略,仅仅需要3个参数就够了。
参数的线性性质对于机器人动力学参数的辨识十分重要
参考引用
翻译自《robot dynamics and control》
作者:Mark W Spong,Seth Hutchinson, and M. Vidyasagar