공분산을 회전시키는 방법?


11

EKF에서 일하고 있으며 공분산 행렬의 좌표 프레임 변환에 관한 질문이 있습니다. 측정을 해보자(x,y,z,roll,pitch,yaw) 해당 6x6 공분산 행렬 C. 이 측정과C 일부 좌표 프레임에 제공됩니다 G1. 측정 값을 다른 좌표 프레임으로 변환해야합니다.G2. 측정 자체를 변환하는 것은 쉽지 않지만 공분산도 변환해야합니까? 사이의 번역G1G2관련이 없어야하지만 여전히 회전해야합니다. 내가 맞다면 어떻게해야합니까? 공분산의 경우x, y, z내 첫 번째 생각은 단순히 3D 회전 행렬을 적용하는 것이었지만 전체 6x6 공분산 행렬 내에서 3x3 하위 행렬에 대해서만 작동합니다. 네 블록 모두에 동일한 회전을 적용해야합니까?

답변:


8

공분산은 다음과 같이 정의됩니다.

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

당신의 경우에는 XR6 귀하의 주 벡터이며 C 이미 가지고있는 공분산 행렬입니다.

변환 된 상태 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

경고로서 오일러 각에주의하십시오. 그것들은 일반적으로 직관적이지 않은 동작이므로 위치에 사용하는 것과 동일한 회전 행렬로 단순히 회전하지 못할 수도 있습니다. 그것들은 일반적으로 로컬 좌표 시스템에 의해 (로봇 세계에서) 정의되는 반면 위치는 일반적으로 글로벌 좌표 시스템에 의해 정의됩니다. 그러나 머리 꼭대기에서 특별한 치료가 필요한지 기억할 수 없습니다.


감사. 하지만이 경우R 3x3이고 C6x6입니다. 내 문제의 일부는 내가 어떻게 확신 할 수 없다는 것 같아R 선형 축과 회전 간의 공분산 (또는 오일러 각도 자체의 공분산)에 영향을 미칩니다. R6x6이됩니다.
TheWumpus

1
R임의의 아핀 변환입니다. 귀하의 경우 왼쪽 상단 3x3 블록과 오른쪽 하단 3x3 블록은 모두 회전 행렬입니다 (유러 각도를 동일하게 회전 할 수 있다고 가정하면주의 사항 참조). 비 대각선 블록은 0입니다.
ryan0270

1

MRPT 라이브러리는 당신을 위해이 작업을 수행 할 수 있습니다. 당신은을 사용할 필요가 CPose3DPDFGaussian당신의 포즈를 대표하고 공분산 후 사용할 +연산자를.

후드 아래에서 6DOF 공분산은 7DOF 쿼터니언 기본 공분산으로 표현되며 수학이 더 간단합니다.


수학뿐만 아니라 그것을 수행하는 라이브러리를 보여주는 것이 도움이 될 것입니다.
chutsu

0

공분산과 분해에 대한 기하학적 해석을 통한 매우 직관적 인 설명.

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


로봇 공학에 오신 것을 환영합니다! 답변 해 주셔서 감사합니다. 그러나 가능한 경우 답변이 포함되는 것이 좋습니다. 링크 가 썩는 경향이 있으므로 링크 된 내용에 대한 답변이 사라지면 링크에 의존하는 답변을 쓸모 없게 만들 수 있습니다. 링크에서 더 많은 컨텍스트를 추가하면 사람들이 귀하의 답변을 유용하게 사용할 가능성이 높습니다.
mactro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.