Tracciare quaternion in Matlab utilizzando “engine.h” da C ++
-
27-10-2019 - |
Domanda
Ho un algoritmo in C ++ che utilizza Kalman Filter. In qualche parte del codice di prevedere un quaternione q ' e poi aggiorno il Quaternion con Kalman Filter q .
Voglio tracciare due grafici in Matlab con l'evoluzione del quaternione predetto e il corretto quaternione (aggiornato) quindi sto usando "engine.h" libreria per inviare informazioni quaternione a Matlab durante la lavorazione (in realtà quello che mando è un matrice 4x1).
Quindi la mia domanda è: : Qual è il modo migliore per tracciare un quaternione in Matlab in modo da poter estrarre informazioni visivamente? E 'forse meglio per tracciare gli angoli separatamente?
Soluzione
Credo che una buona opzione è l'invio del quaternione come vettore per MATLAB, utilizzando il motore di C ++ MATLAB
[QX qy QZ qw]
Poi, in ambiente MATLAB è possibile utilizzare un strumenti per la traduzione di angoli di Eulero, che è un'opzione visiva comune.
Per aggiungere un percorso di una cassetta degli attrezzi a motore di MATLAB:
addpath(genpath('C:\Program Files (x86)\MATLAB\R2010a\toolbox\SpinCalc'));
Con la cassetta degli attrezzi SPINCALC, la conversione sarebbe qualcosa di simile:
Angles=SpinCalc('QtoEA321',Quaternion,0,0);
Altri suggerimenti
Bene, supponendo che la domanda è "Come visualizzare in modo piacevole uno spazio 4D", Mi vengono in mente un paio di opzioni:
- Mostra più sezioni dello spazio, che è per (x, y, z, t) -> (x, y), (y, z), ecc ..
- Show (x, y) come scatter plot e codificare le informazioni di z di colore, t in termini di dimensioni dei punti. Per questo è possibile utilizzare il dispersione di comando:
SCATTER (X, Y, S, C) visualizza cerchi colorati nelle posizioni specificate dai vettori X e Y (che deve essere della stessa dimensione).
Se la tua domanda è "Come visualizzare in modo piacevole quarternions, check this out