Dynamical Movement Primitives (DMP) 总结
概述
DMP通过将动态系统建立为①弹簧阻尼系统+②非线性控制项的方式 f f f,实现了对示教数据的建模。具体贡献如下:
① 提供了一种简单的非线性系统建模方法:
τ y ¨ = α ( β ( g − y ) − y ˙ ) + f ( x ) , \tau \ddot{y} = \alpha(\beta(g-y)-\dot{y})+f(x), τy¨=α(β(g−y)−y˙)+f(x), τ x ˙ = f 1 ( x ) \tau \dot{x} = f_1(x) τx˙=f1(x)
通过将控制量 f f f设计为隐式包含时间的非线性函数来实现系统的非线性性。
② 创新性地提出了利用一个相位系统,也称为标称系统(canonical system)来动态调节控制量 f f f的大小:
τ
x
˙
=
−
α
x
x
,
\tau \dot{x} = -\alpha_x x,
τx˙=−αxx,显然
x
x
x在原点处渐进稳定。通过将
x
0
x_0
x0设定为1,代表系统刚开始运行,
x
∞
=
0
x_{\infty} = 0
x∞=0代表系统结束,来隐式地表示时间
t
t
t。
文章将控制量
f
f
f设计为以下函数:
f
=
∑
i
=
1
N
Φ
i
(
x
)
ω
i
∑
i
=
1
N
Φ
i
(
x
)
x
(
g
−
y
0
)
,
f = \frac{\sum_{i=1}^{N}{\Phi_i(x)\omega_i}}{\sum_{i=1}^{N}\Phi_i(x)}x(g-y_0),
f=∑i=1NΦi(x)∑i=1NΦi(x)ωix(g−y0),
Φ
i
(
x
)
=
exp
−
1
2
σ
i
2
(
x
−
c
i
)
2
\Phi_i(x) = \exp{-\frac{1}{2 \sigma_i^2}(x-c_i)^2}
Φi(x)=exp−2σi21(x−ci)2
其中
Φ
i
(
x
)
,
i
=
1
,
.
.
.
,
N
\Phi_i(x),i=1,...,N
Φi(x),i=1,...,N代表基函数,
ω
i
\omega_i
ωi为待学习的参数,
g
g
g为示教数据的目标点,
y
0
y_0
y0为起始点,
x
x
x为相位系统的变量。
可以看出,当
t
→
∞
t\to \infty
t→∞时,
x
→
0
x\to 0
x→0,
f
→
0
f\to 0
f→0,这表示随着系统的轨线接近目标点,控制量
f
f
f越来越小,最终收敛到0.
注意到,在需要建模含有极限环的非线性系统时,只需要将控制量
f
f
f,基函数
Φ
i
(
x
)
\Phi_i(x)
Φi(x)变为周期函数:
τ
ϕ
˙
=
1
,
\tau \dot{\phi} = 1,
τϕ˙=1,
f
=
∑
i
=
1
N
Φ
i
ω
i
∑
i
=
1
N
Φ
i
r
,
f = \frac{\sum_{i=1}^{N}{\Phi_i\omega_i}}{\sum_{i=1}^{N}\Phi_i}r,
f=∑i=1NΦi∑i=1NΦiωir,
Φ
i
=
exp
(
h
i
(
cos
(
ϕ
−
c
i
)
−
1
)
\Phi_i=\exp({h_i(\cos(\phi-c_i)-1)}
Φi=exp(hi(cos(ϕ−ci)−1)就可以描述非线性系统中极限环的行为。
多维动态系统
如上图所示,文章通过同一相位系统,不同的非线性控制项
f
f
f以及不同的弹簧阻尼系统来进行不同维度之间变量的耦合。
系统参数的学习
给定示教数据
(
y
d
e
m
o
,
y
˙
d
e
m
o
,
y
¨
d
e
m
o
)
k
,
k
=
1
,
2
,
.
.
.
,
P
(y_{demo}, \dot{y}_{demo}, \ddot{y}_{demo})^k, k=1,2,...,P
(ydemo,y˙demo,y¨demo)k,k=1,2,...,P,若构建含有单一收敛子的系统,则选定
y
0
=
y
d
e
m
o
1
,
g
=
y
d
e
m
o
P
y_0=y_{demo}^1,g=y_{demo}^P
y0=ydemo1,g=ydemoP.时间常数
τ
\tau
τ选择为示教轨迹记录时常的1.05倍。
将方程改写为
f
t
a
r
g
e
t
=
τ
y
¨
−
α
(
β
(
g
−
y
d
e
m
o
)
−
y
˙
d
e
m
o
)
f_{target} = \tau \ddot{y} -\alpha(\beta(g-y_{demo})-\dot{y}_{demo})
ftarget=τy¨−α(β(g−ydemo)−y˙demo)设计损失函数为
J
=
1
2
(
f
t
a
r
g
e
t
−
f
(
x
)
)
2
J = \frac{1}{2}(f_{target}-f(x))^2
J=21(ftarget−f(x))2通过最小化损失函数来得到
c
i
,
σ
i
,
ω
i
c_i,\sigma_i,\omega_i
ci,σi,ωi。