Traçage quaternion en utilisant Matlab « engine.h » de c ++
-
27-10-2019 - |
Question
I possède un algorithme en C ++ qui utilise filtre de Kalman. Quelque part dans le code de prévoir un quaternion q ', puis mettre à jour le quaternion avec Kalman Filter q .
Je veux tracer deux graphiques en Matlab avec l'évolution du quaternion prédite et la quaternion corrigée (mise à jour), donc je suis en utilisant la bibliothèque « de engine.h » pour envoyer informations quaternion à Matlab pendant le traitement (en fait ce que j'envoie une matrice 4x1).
Ma question est : Quelle est la meilleure façon de tracer un quaternion en Matlab pour que je puisse visuellement extraire l'information? Est-il peut-être mieux tracer les angles séparément?
La solution
Je pense que une bonne option envoie quaternion comme vecteur à Matlab, en utilisant le moteur Matlab C ++
[qx QY QZ QW]
Ensuite, dans l'environnement Matlab vous pouvez utiliser un boîte à outils pour traduire à angles d'Euler, qui est une option visuelle commune.
Pour ajouter un trajet d'une boîte à outils à moteur Matlab:
addpath(genpath('C:\Program Files (x86)\MATLAB\R2010a\toolbox\SpinCalc'));
Avec boîte à outils spincalc, la conversion serait quelque chose comme ceci:
Angles=SpinCalc('QtoEA321',Quaternion,0,0);
Autres conseils
Eh bien, en supposant que la question est « Comment visualiser une belle façon un espace 4D », Je peux penser à quelques options:
- Afficher plusieurs tranches de l'espace, qui est pour (x, y, z, t) -> (x, y), (y, z), etc ..
- Montre (x, y) en tant que nuage de points et encoder les informations de couleur en z, t la taille des points. Pour cela, vous pouvez utiliser la commande scatter :
points (X, Y, S, C) affiche des cercles de couleur aux emplacements spécifiés par les vecteurs x et y (qui doit être de la même taille).
Si votre question est « Comment visualiser dans un quarternions de façon agréable, vérifier cela