首页 > 其他分享 >三维匀速运动CV模型

三维匀速运动CV模型

时间:2022-12-29 22:34:16浏览次数:30  
标签:begin end 匀速运动 矩阵 三维 bmatrix Delta aligned CV

三维匀速运动CV模型

Write By Champrin On 2022-10-22
GUET Evolution Team Visual Group


目录

这是2022赛季视觉组代码中卡尔曼滤波器(KF线性滤波器)所使用的模型,推导结果也与代码中的一致


状态变量X

对于三维坐标\((x,y,z)\) ,作为装甲板进行坐标结算后装甲板中心点的位置\((x,y,z)\)

\[X = \begin{bmatrix} x_1 \\ y_1 \\ z_1 \\ x_2 \\ y_2 \\ z_2 \end{bmatrix} 其中 \begin{aligned} x_1 & = x \\ y_1 & = y \\ z_1 & = z \\ x_2 & = \dot{x} \\ y_2 & = \dot{y} \\ z_2 & = \dot{z} \end{aligned}\]


状态方程

\[\begin{aligned} x_{1,k} & = x_{1,k-1} + \Delta{T}x_{2,k-1} + w_{1,k-1} \\ x_{2,k} & = x_{2,k-1} + w_{2,k-1} \\ y_{1,k} & = y_{1,k-1} + \Delta{T}y_{2,k-1} + w_{3,k-1} \\ y_{2,k} & = y_{2,k-1} + w_{4,k-1} \\ z_{1,k} & = z_{1,k-1} + \Delta{T}z_{2,k-1} + w_{5,k-1} \\ z_{2,k} & = z_{2,k-1} + w_{6,k-1} \\ \end{aligned}\]

转换为矩阵形式

\[X_k = \begin{bmatrix} 1 & \Delta{T} & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & \Delta{T} & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & \Delta{T} \\ 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix}\begin{bmatrix} x_{1,k-1} \\ y_{1,k-1} \\ z_{1,k-1} \\ x_{2,k-1} \\ y_{2,k-1} \\ z_{2,k-1} \end{bmatrix} + W_{k-1} \]

\[X_k = AX_{k-1} + W_{k-1} \]

其中
状态转移矩阵A

\[A = \begin{bmatrix} 1 & \Delta{T} & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & \Delta{T} & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & \Delta{T} \\ 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix} \]

过程噪声矩阵W

\[W_{k-1} = \begin{bmatrix} w_{1,k-1} \\ w_{2,k-1} \\ w_{3,k-1} \\ w_{4,k-1} \\ w_{5,k-1} \\ w_{6,k-1} \end{bmatrix} \]

过程噪声协方差矩阵Q

\[Q = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix} \]


测量状态变量Z

对于测量方程,速度无法测量,只能通过识别装甲板进行坐标结算获得装甲板中心点的位置,即位置\((x_1,y_1,z_1)\)

\[Z = \begin{bmatrix} z_1 \\ z_2 \\ z_3 \end{bmatrix} 其中 \begin{aligned} z_1 & = x_1 \\ z_2 & = y_1 \\ z_3 & = z_1 \\ \end{aligned} \]


测量方程

\[\begin{aligned} z_{1,k} & = x_{1,k} + v_{1,k} \\ z_{2,k} & = y_{1,k} + v_{2,k} \\ z_{3,k} & = z_{1,k} + v_{3,k} \end{aligned} \]

转换为矩阵形式

\[Z_k = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 \end{bmatrix}\begin{bmatrix} x_{1,k} \\ y_{1,k} \\ z_{1,k} \\ x_{2,k} \\ y_{2,k} \\ z_{2,k} \end{bmatrix} + V_k \]

\[Z_k = HX_k + V_k \]

其中
状态观测矩阵H

\[H = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 \end{bmatrix} \]

测量噪声矩阵V

\[V_k = \begin{bmatrix} v_{1,k} \\ v_{2,k} \\ v_{3,k} \end{bmatrix} \]

测量噪声协方差矩阵R

\[R = \begin{bmatrix} 10 & 0 & 0\\ 0 & 10 & 0\\ 0 & 0 & 10\\ \end{bmatrix} \]


\(P_0\) 及 \(\hat{X}_0\)

状态估计误差协方差矩阵 \(P_0\) 为 \(n*n\) 的单位矩阵

状态估计值的初值 \(\hat{X}_0 = \begin{bmatrix} x_0 \\ y_0 \\ z_0 \\ 0 \\ 0 \\ 0 \end{bmatrix}\) , \((x_0,y_0,z_0)\) 为第一次识别出的装甲板矩形的中心点


以上相关变量和矩阵都与上赛季2022的视觉代码中的线性卡尔曼滤波器变量和矩阵一致

个人认为对于R:
第\(k\)时刻,通过识别装甲板并坐标结算,得到装甲板的位置,是较为准确的,这是测量结果;因此\(R\)的对角线上的协方差应该设置得较为小,表示相信测量结果
但是坐标结算存在着波动,即使瞄一个静止不动的哨兵,当R设置的较为小时,同时坐标结算存在波动,这样会导致云台瞄准左右摇摆,因为\(R\)小会使得状态估计值更加相信测量结果,所以云台就同结算的波动而左右摇摆,因此\(R\)不得不设置为一个较大的值,但\(R\)设置得较大,会影响状态估计值,即预测的结果
若相信测量结果,预判理应会更加准确;但要使\(R\)设置较为小,要先解决好坐标结算波动的问题

标签:begin,end,匀速运动,矩阵,三维,bmatrix,Delta,aligned,CV
From: https://www.cnblogs.com/champrin/p/17013715.html

相关文章