Як обертати коваріацію?


11

Я працюю над EKF і маю запитання щодо перетворення кадру координат для коваріаційних матриць. Скажімо, я отримую деяке вимірювання(x,y,z,roll,pitch,yaw) з відповідною коваріаційною матрицею 6x6 C. Це вимірювання іC наведені в деякому координатному кадрі G1. Мені потрібно перетворити вимірювання в інший координатний кадр,G2. Перетворення самого вимірювання є тривіальним, але мені також потрібно би перетворити його коваріантність, правильно? Переклад міжG1 і G2має бути неактуальним, але мені все одно потрібно його обертати. Якщо я маю рацію, як би це зробити? Для коваріацій міжx, y, і zмоя перша думка полягала в тому, щоб просто застосувати 3D-матрицю обертання, але це працює лише для підматриці 3x3 в межах повної коваріаційної матриці 6x6. Чи потрібно застосовувати однакове обертання до всіх чотирьох блоків?

Відповіді:


8

Коваріація визначається як

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

де, у вашому випадку, XR6 - ваш стан і C - матриця коваріації, яку ви вже маєте.

Для трансформованого стану X=RX, с RR6×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 дорівнює 3х3 і Cстановить 6х6. Я думаю, що частина моєї проблеми полягає в тому, що я не впевнений, якR вплинуло б на коваріацію між лінійними осями та обертанням (або навіть на коваріацію самих кутів Ейлера), тобто як я повинен збільшувати Rтак що це 6x6.
TheWumpus

1
R- це будь-яке довільне афінне перетворення. У вашому випадку лівий верхній блок 3х3 та нижній правий 3х3 блоки є обома матрицями обертання (якщо ви вважаєте, що кути Ейлера можна повертати однаково ... див. Попередження у відповідь). Позадіагональні блоки - нулі.
ryan0270

1

Бібліотека MRPT може зробити це для вас. Вам потрібно використовувати a CPose3DPDFGaussianдля представлення пози і коваріації, а потім використовувати +оператора.

Під кришкою вона представляє вашу коваріацію 6DOF як базову коваріацію кватерніона 7DOF, де математика більш проста.


Було б вигідно показати математику, а також бібліотеку, яка робить це за вас.
чуцу

0

Дуже інтуїтивне пояснення з геометричною інтерпретацією коваріації та її розкладання.

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


Привіт і ласкаво просимо в робототехніку! Дякуємо за вашу відповідь, але ми вважаємо за краще, щоб відповіді були самостійними, де це можливо. Посилання мають тенденцію до гниття, тому відповіді, які покладаються на посилання, можуть бути марними, якщо зв’язок із вмістом зникає. Якщо ви додасте більше контексту за посиланням, швидше за все люди знайдуть вашу відповідь корисною.
мактро
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.