论文阅读: Physical feasibility of robot base inertial parameter identification: A linear matrix inequality approach
概要
这篇论文主要讨论在考虑物理一致性的情况下的机器人动力学辨识。给出了三个方法,1用来检查给定的参数估计是否具有物理意义。2修正不可行的物理参数找到最近的可行的参数。这两个方法可以用到已存在的辨识上。3用最小二乘回归在考虑物理约束的情况下求解最优参数。
惯性参数的物理可行性
机器人的物理模型一般写成
M
(
q
)
q
¨
+
c
(
q
,
q
˙
)
+
g
(
q
)
=
τ
(1)
M(q)\ddot{q} + c(q,\dot{q}) + g(q) = \tau \tag{1}
M(q)q¨+c(q,q˙)+g(q)=τ(1)
其中各项取决于几何参数和动力学参数。所谓满足物理可行性,既是要求质量大于零,惯性张量正定
{
m
k
>
0
I
k
≻
0
(2)
\begin{cases} m_k>0\\ I_k\succ 0\\ \end{cases} \tag{2}
{mk>0Ik≻0(2)
惯性张量是
I
k
=
[
I
k
,
x
x
I
k
,
x
y
I
k
,
x
z
I
k
,
x
y
I
k
,
y
y
I
k
,
y
z
I
k
,
x
z
I
k
,
y
z
I
k
,
z
z
]
(3)
I_k=\left[ \begin{matrix} I_{k,xx}& I_{k,xy}& I_{k,xz}\\ I_{k,xy}& I_{k,yy}& I_{k,yz}\\ I_{k,xz}& I_{k,yz}& I_{k,zz}\\ \end{matrix} \right] \tag{3}
Ik=⎣
⎡Ik,xxIk,xyIk,xzIk,xyIk,yyIk,yzIk,xzIk,yzIk,zz⎦
⎤(3)
在link坐标系k下的惯性张量是
L
k
=
I
k
+
m
k
S
(
r
k
)
T
S
(
r
k
)
(5)
L_k = I_k+m_kS(r_k)^TS(r_k) \tag{5}
Lk=Ik+mkS(rk)TS(rk)(5)
其中
S
(
⋅
)
S(\cdot)
S(⋅)是反对称矩阵,
r
k
r_k
rk是link坐标系k中的质心。
L
k
L_k
Lk必须为正定对称矩。
为了进行线性回归,需要使用转矩向量
l
k
l_k
lk
l
k
=
[
l
k
,
x
l
k
,
y
l
k
,
z
]
=
m
k
r
k
=
m
k
[
r
k
,
x
l
k
,
y
l
k
,
z
]
(8)
l_k=\left[ \begin{array}{c} l_{k,x}\\ l_{k,y}\\ l_{k,z}\\ \end{array} \right] =m_kr_k=m_k\left[ \begin{array}{c} r_{k,x}\\ l_{k,y}\\ l_{k,z}\\ \end{array} \right] \tag{8}
lk=⎣
⎡lk,xlk,ylk,z⎦
⎤=mkrk=mk⎣
⎡rk,xlk,ylk,z⎦
⎤(8)
所以,(5)需要改写为
L
k
=
I
k
+
m
k
S
(
l
k
m
k
)
T
S
(
l
k
m
k
)
(9)
L_k=I_k+m_kS(\frac{l_k}{m_k})^TS(\frac{l_k}{m_k}) \tag{9}
Lk=Ik+mkS(mklk)TS(mklk)(9)
因为反对称是线性操作,所以
I
k
=
L
k
−
l
k
m
k
S
(
l
k
)
T
S
(
l
k
)
I_k=L_k-\frac{l_k}{m_k}S(l_k)^TS(l_k)
Ik=Lk−mklkS(lk)TS(lk)
因此,物理约束可以写为
{
m
k
>
0
L
k
−
1
m
k
S
(
l
k
)
T
S
(
l
k
)
≻
0
(11)
\begin{cases} m_k>0\\ L_k-\frac{1}{m_k}S(l_k)^TS(l_k)\succ 0\\ \end{cases} \tag{11}
{mk>0Lk−mk1S(lk)TS(lk)≻0(11)
将每个轴的惯性参数写到一起
δ
k
=
[
l
L
k
,
x
x
L
k
,
x
y
L
k
,
x
z
L
k
,
y
y
L
k
,
y
z
L
k
,
z
z
l
k
,
x
l
k
,
y
l
k
,
z
m
k
]
T
δ
=
[
δ
1
T
δ
2
T
⋯
δ
k
T
⋯
δ
N
T
]
T
\delta _k=\left[ \begin{matrix}{l} L_{k,xx}& L_{k,xy}& L_{k,xz}& L_{k,yy}& L_{k,yz}& L_{k,zz}& l_{k,x}& l_{k,y}& l_{k,z}& m_k\\ \end{matrix} \right] ^T \\ \delta =\left[ \delta _{1}^{T}\,\,\delta _{2}^{T}\,\,\cdots \,\,\delta _{k}^{T}\,\,\cdots \,\,\delta _{N}^{T} \right] ^T
δk=[lLk,xxLk,xyLk,xzLk,yyLk,yzLk,zzlk,xlk,ylk,zmk]Tδ=[δ1Tδ2T⋯δkT⋯δNT]T
共有
n
=
10
N
n=10N
n=10N个变量
集合
D
\mathcal{D}
D为
D
=
{
δ
∈
R
n
∣
m
k
>
0
,
L
k
−
m
k
−
1
S
(
l
k
)
T
S
(
l
k
)
≻
0
,
k
=
1
,
.
.
.
,
N
}
\mathcal{D} =\left\{ \delta \in \mathbb{R} ^n|m_k>0,L_k-m_{k}^{-1}S(l_k)^TS(l_k)\succ 0,k=1,...,N \right\}
D={δ∈Rn∣mk>0,Lk−mk−1S(lk)TS(lk)≻0,k=1,...,N}
机器人link的物理可行性
前面的公式可以写成
L
k
−
S
(
l
k
)
T
(
m
k
1
)
−
1
S
(
l
k
)
≻
0
(15)
L_k-S(l_k)^T\left( m_k\mathbf{1} \right) ^{-1}S(l_k)\succ 0 \tag{15}
Lk−S(lk)T(mk1)−1S(lk)≻0(15)
其中
1
\bf{1}
1是3x3单位矩阵,利用舒尔定理,可以写成
D
k
(
δ
k
)
=
[
L
k
S
(
l
k
)
T
S
(
l
k
)
m
k
1
]
≻
0
D_k\left( \delta _k \right) =\left[ \begin{matrix} L_k& S(l_k)^T\\ S(l_k)& m_k\mathbf{1}\\ \end{matrix} \right] \succ 0
Dk(δk)=[LkS(lk)S(lk)Tmk1]≻0
其中
D
k
(
δ
k
)
=
[
L
k
S
(
l
k
)
T
S
(
l
k
)
m
k
1
]
=
[
l
L
k
,
x
x
L
k
,
x
y
L
k
,
x
z
0
−
l
k
,
z
l
k
,
y
L
k
,
x
y
L
k
,
y
y
L
k
,
y
z
l
k
,
z
0
−
l
k
,
x
L
k
,
x
z
L
k
,
y
z
L
k
,
z
z
−
l
k
,
y
l
k
,
x
0
0
l
k
,
z
−
l
k
,
y
m
k
0
0
−
l
k
,
z
0
l
k
,
x
0
m
k
0
l
k
,
y
−
l
k
,
x
0
0
0
m
k
]
D_k\left( \delta _k \right) =\left[ \begin{matrix} L_k& S(l_k)^T\\ S(l_k)& m_k\mathbf{1}\\ \end{matrix} \right] =\left[ \begin{matrix}{l} L_{k,xx}& L_{k,xy}& L_{k,xz}& 0& -l_{k,z}& l_{k,y}\\ L_{k,xy}& L_{k,yy}& L_{k,yz}& l_{k,z}& 0& -l_{k,x}\\ L_{k,xz}& L_{k,yz}& L_{k,zz}& -l_{k,y}& l_{k,x}& 0\\ 0& l_{k,z}& -l_{k,y}& m_k& 0& 0\\ -l_{k,z}& 0& l_{k,x}& 0& m_k& 0\\ l_{k,y}& -l_{k,x}& 0& 0& 0& m_k\\ \end{matrix} \right] \\
Dk(δk)=[LkS(lk)S(lk)Tmk1]=⎣
⎡lLk,xxLk,xyLk,xz0−lk,zlk,yLk,xyLk,yyLk,yzlk,z0−lk,xLk,xzLk,yzLk,zz−lk,ylk,x00lk,z−lk,ymk00−lk,z0lk,x0mk0lk,y−lk,x000mk⎦
⎤
使用时可将正定放宽为半正定,而不会对结果有什么影响。
也可根据需要添加一些关于质量和质量矩的上下限约束,这些约束都是凸的。
同样,也可将摩擦系数添加到参数中。
基参数的物理一致性
在已知 δ \delta δ后检查其是否满足物理一致性是很容易的,直接将其带入所有不等式看是否满足。而参数辨识必须工作在最小惯性集上,因此需要讨论最小惯性参数的物理一致性。
构造最小惯性参数
机械臂的动力学是
δ
\delta
δ的线性函数
H
(
q
,
q
˙
,
q
¨
)
δ
=
τ
H\left( q,\dot{q},\ddot{q} \right) \delta =\tau
H(q,q˙,q¨)δ=τ
将其写为
[
H
b
H
d
]
[
δ
b
δ
d
]
=
τ
(30)
\left[ \begin{matrix} H_b& H_d\\ \end{matrix} \right] \left[ \begin{array}{c} \delta _b\\ \delta _d\\ \end{array} \right] =\tau \tag{30}
[HbHd][δbδd]=τ(30)
其中
H
b
H_b
Hb是
H
H
H中
n
b
n_b
nb个线性无关的列,
H
d
H_d
Hd是剩下
n
d
=
n
−
n
b
n_d=n-n_b
nd=n−nb个列。
H
d
H_d
Hd可以写成
H
b
H_b
Hb的线性组合
H
d
=
H
b
K
d
H_d=H_bK_d
Hd=HbKd
中
K
d
=
R
1
−
1
R
2
K_d=R_1^{-1}R_2
Kd=R1−1R2是一个常量矩阵。
δ
b
\delta_b
δb和
δ
d
\delta_d
δd是经过重新排序的参数,有
H
b
=
H
P
b
H
d
=
H
P
d
δ
b
=
P
b
T
δ
δ
d
=
P
d
T
δ
H_b=HP_b \\ H_d=HP_d \\ \delta _b=P_{b}^{T}\delta \\ \delta _d=P_{d}^{T}\delta
Hb=HPbHd=HPdδb=PbTδδd=PdTδ
P
b
P_b
Pb和
P
d
P_d
Pd是排序矩阵
P
P
P的前
n
b
n_b
nb和后
n
d
n_d
nd列
H
P
=
[
H
b
H
d
]
HP=[H_ b\ H_d]
HP=[Hb Hd]
因为线性相关性,公式(30)可以写为
H
b
β
=
τ
H_b\beta=\tau
Hbβ=τ
其中
β
=
[
β
1
β
2
β
3
.
.
.
β
n
b
]
\beta=[\beta_1\ \beta_2\ \beta_3 ...\beta_{n_b}]
β=[β1 β2 β3...βnb]是最小惯性参数,有
β
=
δ
b
+
K
d
δ
d
\beta=\delta_b+K_d\delta_d
β=δb+Kdδd
于是有
β
=
K
δ
K
=
P
b
T
+
K
d
P
d
T
=
[
I
b
,
R
1
−
1
R
2
]
P
T
\beta=K\delta\\ K=P^T_b+K_dP^T_d=[I_b,R_1^{-1}R_2]P^T
β=KδK=PbT+KdPdT=[Ib,R1−1R2]PT
这里的
R
1
R_1
R1和
R
2
R_2
R2是
H
H
H的堆叠矩阵
Z
Z
Z在QR分解时产生
Z
P
=
Q
R
=
Q
[
R
1
R
2
0
0
]
ZP=QR=Q\left[ \begin{matrix} R_1& R_2\\ 0& 0\\ \end{matrix} \right]
ZP=QR=Q[R10R20]
基参数可行性测试 BPFT
K
K
K矩阵将原始惯性参数
δ
\delta
δ映射到了基参数
β
=
K
δ
\beta=K\delta
β=Kδ。但是
K
K
K不是一个方阵,因此这个映射不是双射,一个
β
\beta
β对应着多个
δ
\delta
δ。满足物理一致性的基参数集合为
B
=
{
β
∈
R
n
b
:
∃
δ
∈
D
s
.
t
.
β
=
K
δ
}
\mathcal{B}=\{\beta\in\mathbb{R}^{n_b}:\exist \delta\in \mathcal{D}\ s.t. \ \beta=K\delta\}
B={β∈Rnb:∃δ∈D s.t. β=Kδ}
但是这个定义不能直接用来判断物理一致性,因为
K
K
K不是方阵。
定义一个新的映射
m
:
R
n
→
R
n
δ
↦
(
β
,
δ
d
)
m
(
δ
)
=
G
δ
\mathfrak{m} : \mathbb{R}^n\rightarrow\mathbb{R}^n \quad \delta \mapsto (\beta,\delta_d) \\ \mathfrak{m}(\delta) = G\delta
m:Rn→Rnδ↦(β,δd)m(δ)=Gδ
这里
G
=
K
G
P
T
G=K_GP^T
G=KGPT,
K
G
=
[
1
K
d
0
1
]
K_G=\left[ \begin{matrix} 1& K_d\\ 0& 1\\ \end{matrix} \right]
KG=[10Kd1]
所以有
G
δ
=
K
G
P
T
δ
=
[
1
K
d
0
1
]
[
δ
b
δ
d
]
=
[
β
δ
d
]
=
(
β
,
δ
d
)
\begin{aligned} G\delta &=K_GP^T\delta\\ &=\left[ \begin{matrix} 1& K_d\\ 0& 1\\ \end{matrix} \right] \left[ \begin{array}{c} \delta _b\\ \delta _d\\ \end{array} \right]\\ &=\left[ \begin{array}{c} \beta\\ \delta _d\\ \end{array} \right] =\left( \beta ,\delta _d \right)\\ \end{aligned}
Gδ=KGPTδ=[10Kd1][δbδd]=[βδd]=(β,δd)
因为
K
G
K_G
KG是上三角矩阵,
P
T
P^T
PT是排序矩阵,因此
G
G
G是可逆的,
m
\mathfrak{m}
m是个一对一的映射。所以这个扩展空间上的真正定性等价与原空间的正定性,满足物理一致性的集合可以写为
D
β
=
{
(
β
,
δ
d
)
∈
R
n
:
D
β
(
β
,
δ
d
)
⪰
0
}
D
β
(
β
,
δ
d
)
=
D
(
m
−
1
(
β
,
δ
d
)
)
\mathcal{D} _{\beta}=\left\{ \left( \beta ,\delta _d \right) \in \mathbb{R} ^n:D_{\beta}\left( \beta ,\delta _d \right) \succeq 0 \right\} \\ D_{\beta}\left( \beta ,\delta _d \right) =D\left( \mathfrak{m} ^{-1}\left( \beta ,\delta _d \right) \right)
Dβ={(β,δd)∈Rn:Dβ(β,δd)⪰0}Dβ(β,δd)=D(m−1(β,δd))
也就是说,先用
m
−
1
\mathfrak{m} ^{-1}
m−1反向映射得到
δ
\delta
δ,用
δ
\delta
δ的物理一致性来定义
(
β
,
δ
d
)
(\beta,\delta_d)
(β,δd)的物理一致性
m
−
1
(
β
,
δ
d
)
=
G
−
1
[
β
δ
d
]
=
P
−
T
G
K
−
1
[
β
δ
d
]
=
P
[
1
−
K
d
0
1
]
[
β
δ
d
]
\mathfrak{m} ^{-1}\left( \beta ,\delta _d \right) =G^{-1}\left[ \begin{array}{c} \beta\\ \delta _d\\ \end{array} \right] \\ =P^{-T}G_{K}^{-1}\left[ \begin{array}{c} \beta\\ \delta _d\\ \end{array} \right] \\ =P\left[ \begin{matrix} 1& -K_d\\ 0& 1\\ \end{matrix} \right] \left[ \begin{array}{c} \beta\\ \delta _d\\ \end{array} \right]
m−1(β,δd)=G−1[βδd]=P−TGK−1[βδd]=P[10−Kd1][βδd]
因此,基参数的物理一致性集合可以改写为
B
=
{
β
∈
R
n
b
:
∃
δ
d
∈
R
n
d
s
.
t
.
D
β
(
β
,
δ
d
)
⪰
0
}
\mathcal{B} =\{\beta \in \mathbb{R} ^{n_b}:\exists \delta _d\in \mathbb{R} ^{n_d}\,\,s.t. D_{\beta}\left( \beta ,\delta _d \right) \succeq 0\}
B={β∈Rnb:∃δd∈Rnds.t.Dβ(β,δd)⪰0}
这个定义中仍然包含
δ
d
\delta_d
δd,无法直接用来判断
β
\beta
β的物理一致性。
若一个给定的
β
^
\hat{\beta}
β^满足物理一致性,则至少存在一个
δ
d
\delta_d
δd,使得
D
β
(
β
,
δ
d
)
⪰
0
D_{\beta}\left( \beta ,\delta _d \right) \succeq 0
Dβ(β,δd)⪰0。描述为优化问题既为
f
i
n
d
δ
d
s
.
t
.
D
β
(
β
,
δ
d
)
⪰
0
\mathrm{find}\qquad \delta _d \\ \mathrm{s}.\mathrm{t}. \quad D_{\beta}\left( \beta ,\delta _d \right) \succeq 0
findδds.t.Dβ(β,δd)⪰0
这个优化问题叫做基参数可行性测试(base parameter feasibility test, BPFT)。
基参数可行性修正 BPFC
类似的,可以寻找距离给定基参数
β
^
\hat \beta
β^最接近的满足物理一致性的
β
\beta
β
min
(
β
,
δ
d
)
∣
∣
β
^
−
β
∣
∣
s
.
t
.
D
β
(
β
,
δ
d
)
⪰
0
\min_{\left( \beta ,\delta _d \right)} \quad ||\hat{\beta}-\beta || \\ \mathrm{s}.\mathrm{t}. D_{\beta}\left( \beta ,\delta _d \right) \succeq 0
(β,δd)min∣∣β^−β∣∣s.t.Dβ(β,δd)⪰0
这个问题称作基参数可行性修正(base parameter feasibility correction, BPFC)。
基参数优化
在满足物理一致性的条件下辨识最小惯性集参数。收集
s
s
s个点的关节角度和力矩数据之后堆叠成矩阵
W
=
[
H
b
(
q
1
,
q
˙
1
,
q
¨
1
)
H
b
(
q
2
,
q
˙
2
,
q
¨
2
)
⋮
H
b
(
q
s
,
q
˙
s
,
q
¨
s
)
]
w
=
[
τ
1
τ
2
⋮
τ
s
]
W=\left[ \begin{array}{c} H_b\left( q_1,\dot{q}_1,\ddot{q}_1 \right)\\ H_b\left( q_2,\dot{q}_2,\ddot{q}_2 \right)\\ \vdots\\ H_b\left( q_s,\dot{q}_s,\ddot{q}_s \right)\\ \end{array} \right] \quad w=\left[ \begin{array}{c} \tau _1\\ \tau _2\\ \vdots\\ \tau _s\\ \end{array} \right]
W=⎣
⎡Hb(q1,q˙1,q¨1)Hb(q2,q˙2,q¨2)⋮Hb(qs,q˙s,q¨s)⎦
⎤w=⎣
⎡τ1τ2⋮τs⎦
⎤
目标函数为
∣
∣
ϵ
∣
∣
2
=
∣
∣
w
−
W
β
∣
∣
2
||\epsilon||^2=||w-W\beta||^2
∣∣ϵ∣∣2=∣∣w−Wβ∣∣2
所以优化问题可以写为
min
(
β
,
δ
d
)
∣
∣
w
−
W
β
∣
∣
2
s
.
t
.
D
β
(
β
,
δ
d
)
⪰
0
\min_{\left( \beta ,\delta _d \right)} \quad ||w-W\beta ||^2 \\ \mathrm{s}.\mathrm{t}.D_{\beta}\left( \beta ,\delta _d \right) \succeq 0
(β,δd)min∣∣w−Wβ∣∣2s.t.Dβ(β,δd)⪰0
论文里给出了SDP的形式,如果需要进一步提升求解速度,使用SDP的形式更好。