如何旋转协方差?


11

我正在开发EKF,并且对协方差矩阵的坐标框架转换有疑问。假设我用对应的6x6协方差矩阵一些测量。这种测量和在一些坐标框架中给出。我需要将测量值转换为另一个坐标系。转换测量本身并不容易,但我还需要转换其协方差,对吗?和之间的平移应该无关紧要,但是我仍然需要旋转它。如果我是正确的,我将如何做?对于,之间的协方差(x,y,z,roll,pitch,yaw)CCG1G2G1G2xy和,我的第一个想法是简单地应用3D旋转矩阵,但这仅适用于完整6x6协方差矩阵内的3x3子矩阵。我是否需要对所有四个块应用相同的旋转?z

Answers:


8

协方差定义为

C=E(XXT)E(X)E(XT)

其中,在您的情况下,是您的状态向量,是您已经拥有的协方差矩阵。XR6C

对于转换后的状态,在您的情况下,X=RXRR6×6

C=E(XXT)E(X)E(XT)=E(RXXTRT)E(RX)E(XTRT)=R E(XXT) RTRE(X)E(XT)RT=R( E(XXT)E(X)E(XT))RT=RCRT

请注意,注意欧拉角。这些通常在行为上不直观,因此您可能无法简单地使用与位置相同的旋转矩阵来旋转它们。请记住,它们通常是在局部坐标系下定义的(在机器人世界中),而位置通常是根据全局坐标系定义的。不过,我不记得他们是否需要特殊对待。


谢谢。不过,在这种情况下,为3x3,为6x6。我想部分问题在于我不确定将如何影响线性轴与旋转之间的协方差(甚至是欧拉角本身的协方差),即我应该如何增大使其为6x6。RCRR
TheWumpus

1
R只是任意仿射变换。在您的情况下,左上方的3x3块和右下方的3x3块都是旋转矩阵(如果您假设欧拉角可以旋转相同的角度,请参见答案)。非对角线块为零。
ryan0270

1

MRPT库可以为你做到这一点。您需要使用a CPose3DPDFGaussian来表示您的姿势和协方差,然后使用+运算符。

在引擎盖下,它表示您的6DOF协方差为7DOF四元数基础协方差,其中数学更简单。


展示数学以及一个为您做的图书馆将是有益的。
chutsu

0

非常直观的解释,带有针对协方差及其分解的几何解释。

http://www.visiondummy.com/2014/04/geometric-interpretation-covariance-matrix/


您好,欢迎使用机器人技术!感谢您的回答,但我们希望答案尽可能独立存在。链接容易腐烂,因此,如果链接到内容的内容消失了,依赖于链接的答案将变得无用。如果您从链接中添加更多上下文,那么人们很可能会发现您的答案很有用。
mactro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.