在路径跟踪中,需要跟踪的是虚拟AUV;在轨迹跟踪中,需要跟踪的是位置随时间变化的点。无论是路径跟踪还是轨迹跟踪,实质上都是对一个移动的点进行跟踪,有相同之处。本文进行AUV在动系下的跟踪误差方程的推导,类似于在SF坐标系下的跟踪误差方程,关于在SF系下的跟踪误差方程,见https://blog.youkuaiyun.com/dooglocool/article/details/128681600?spm=1001.2014.3001.5501。
1.不同坐标系下的跟踪误差方程推导分析
虽然在不同坐标系下的跟踪误差方程有所不同,但其表达的本质相同。不同坐标系下的误差方程的推导,都有其共同点:就是跟踪误差结合坐标转换矩阵相关知识进行转化。
在SF系下的跟踪误差方程的推导中,用到的是
{
W
}
\{W\}
{W}系和
{
S
F
}
\{SF\}
{SF}系的转换。
而在动系下的跟踪误差方程推导中,用到的是动系和定系的坐标转换(主要),还涉及到动系和SF系的坐标转换。
2.动系下的跟踪误差方程推导
定义目标点在定系下的位置坐标为
η
R
=
[
x
R
,
y
R
,
z
R
]
T
\eta_R=[x_R,y_R,z_R]^{T}
ηR=[xR,yR,zR]T,AUV在定系下的位置坐标为
η
=
[
x
,
y
,
z
]
T
\eta=[x,y,z]^{T}
η=[x,y,z]T
定系下的跟踪误差向量表示为:
η
e
n
=
[
x
−
x
R
y
−
y
R
z
−
z
R
]
\eta_e^n=\begin{bmatrix}x-x_R\\y-y_R\\z-z_R\end{bmatrix}
ηen=
x−xRy−yRz−zR
此时在动系下的位置误差向量表示为
ϵ
=
[
x
e
y
e
z
e
]
=
J
1
(
η
2
)
T
η
e
n
\epsilon=\begin{bmatrix}x_e\\y_e \\z_e\end{bmatrix}=J_1(\eta_2)^T\eta_e^n
ϵ=
xeyeze
=J1(η2)Tηen
J
1
(
η
2
)
J_1(\eta_2)
J1(η2)为动系到定系的转换矩阵,上式表示将定系下的跟踪误差向量通过转换矩阵转换为动系下的跟踪误差向量。
对上式进行求导,得到跟踪误差方程
η
˙
=
J
˙
1
T
(
η
2
)
η
e
n
+
J
1
T
(
η
2
)
η
˙
e
n
\dot{\eta}=\dot{J}_1^T(\eta_2)\eta_e^n+J_1^T(\eta_2)\dot\eta_e^n
η˙=J˙1T(η2)ηen+J1T(η2)η˙en
下面需要用到旋转矩阵求导的知识,见https://blog.youkuaiyun.com/dooglocool/article/details/131954280?spm=1001.2014.3001.5501
即
J
˙
1
(
η
2
)
=
J
1
(
η
2
)
S
(
ω
n
b
b
)
\dot{J}_1(\eta_2)=J_1(\eta_2)S(\omega_{nb}^b)
J˙1(η2)=J1(η2)S(ωnbb)
其中
S
(
ω
n
b
b
)
=
[
0
−
r
q
r
0
0
−
q
0
0
]
S(\omega_{nb}^b)=\begin{bmatrix}0 & -r & q \\r & 0 &0\\-q&0&0\end{bmatrix}
S(ωnbb)=
0r−q−r00q00
此时的误差方程变为
ϵ
˙
=
S
T
(
ω
n
b
b
)
J
1
T
(
η
2
)
η
e
n
+
J
1
T
(
η
2
)
η
˙
e
n
\dot{\epsilon}=S^T(\omega_{nb}^b)J_1^T(\eta_2)\eta_e^n+J_1^T(\eta_2)\dot\eta_e^n
ϵ˙=ST(ωnbb)J1T(η2)ηen+J1T(η2)η˙en
进一步化简得到
ϵ
˙
=
S
T
(
ω
n
b
b
)
ϵ
+
J
1
T
(
η
2
)
η
˙
e
n
\dot{\epsilon}=S^T(\omega_{nb}^b)\epsilon+J_1^T(\eta_2)\dot\eta_e^n
ϵ˙=ST(ωnbb)ϵ+J1T(η2)η˙en
ϵ
˙
=
S
T
(
ω
n
b
b
)
ϵ
+
J
1
T
(
η
2
)
(
η
˙
−
η
˙
R
)
\dot{\epsilon}=S^T(\omega_{nb}^b)\epsilon+J_1^T(\eta_2)(\dot{\eta}-\dot{\eta}_R)
ϵ˙=ST(ωnbb)ϵ+J1T(η2)(η˙−η˙R)
ϵ
˙
=
S
T
(
ω
n
b
b
)
ϵ
+
J
1
T
(
η
2
)
J
1
(
η
2
)
η
˙
−
J
1
T
(
η
2
)
η
˙
R
\dot{\epsilon}=S^T(\omega_{nb}^b)\epsilon+J_1^T(\eta_2)J_1(\eta_2)\dot\eta-J_1^T(\eta_2)\dot{\eta}_R
ϵ˙=ST(ωnbb)ϵ+J1T(η2)J1(η2)η˙−J1T(η2)η˙R
ϵ
˙
=
S
T
(
ω
n
b
b
)
ϵ
+
ν
−
J
1
T
(
η
2
)
η
˙
R
\dot{\epsilon}=S^T(\omega_{nb}^b)\epsilon+\nu-J_1^T(\eta_2)\dot{\eta}_R
ϵ˙=ST(ωnbb)ϵ+ν−J1T(η2)η˙R
等式右侧最后一项意为动系下的目标点的速度,等价于将目标点在目标轨迹(SF系)上的速度转换到动系下的速度,而目标点在轨迹上的速度只有纵向速度。表示为
[
u
r
0
0
]
\begin{bmatrix}u_r\\0\\0\end{bmatrix}
ur00
此处的
u
r
u_r
ur也可以理解为目标点在定系下的和速度。
SF系到动系的转换矩阵表示为
则误差方程进一步变为
ϵ
˙
=
S
T
(
ω
n
b
b
)
ϵ
+
ν
−
J
(
ψ
e
,
θ
e
)
ν
F
\dot{\epsilon}=S^T(\omega_{nb}^b)\epsilon+\nu-J(\psi_e,\theta_e)\nu_F
ϵ˙=ST(ωnbb)ϵ+ν−J(ψe,θe)νF展开得到
[
x
˙
e
y
˙
e
z
˙
e
]
=
[
r
y
e
−
q
z
e
−
r
x
e
q
x
e
]
+
[
u
v
w
]
−
J
(
ψ
e
,
θ
e
)
[
u
r
0
0
]
\begin{bmatrix}\dot{x}_e\\\dot{y}_e\\\dot{z}_e\end{bmatrix}=\begin{bmatrix}ry_e-qz_e\\-rx_e\\qx_e\end{bmatrix}+\begin{bmatrix}u\\v\\w\end{bmatrix}-J(\psi_e,\theta_e)\begin{bmatrix}u_r\\0\\0\end{bmatrix}
x˙ey˙ez˙e
=
rye−qze−rxeqxe
+
uvw
−J(ψe,θe)
ur00
展开便得到在动系下的跟踪误差方程