2010-12-07 60 views
1

私はWiiM +ジャイロを使って回転を計算しています。クォータニオンを使ってCでジャイロスコープの角度を表現する#

Iヨー、ピッチおよびロール軸に沿って旋回速度を統合し、各読み取りのためにそうangleSum

と呼ばれるベクトルに格納し、angleSum(読み出し)が最初からY、p及びrの回転を表します。オリエンテーション。

私は、このように表現するために(私はと完全に慣れていないよ)四元数を使用します。

Q = Quaternion.createfromyawPitchRoll(angleSum.yaw、angleSum.pitch、angleSum.roll *( - 1))

wiimoteを方向に90度回転させてqx、qy、qzを印刷すると、すべての読み取り値がターンの影響を受けます(これらの値はすべて90度回転して戻っていますが、

私の質問は非常に基本的です:どのように正確にこの四元数構造を使って方位を表現するのですか?私はヨー、ピッチ、ロールの面で絶対的な(あるいは少なくとも相対的な)姿勢が必要です。

ありがとうございます!

答えて

1

quaternionは、定義された軸(通常は{x, y, z, w}と表されます)の周りの軸と回転コンポーネントとして緩やかに定義された4次元構造です。 the method you've referenced,を見て、度の代わりにradiansにヨー、ピッチ、ロールを供給していると仮定します。これは、最も一般的な実装ミスをテーブルから削除します。

実装が正しいとすれば、q.x,q.y、およびq.zはいずれのローテーションでも変更されることが予想されます。 4次元オブジェクトを定義していることを忘れないでください。四元数は、あなたがより多くの人に優しいオイラー表記の読み出しを取得するためにようをたい場合Euler angles.

としてない同じことが、バックヨー、ピッチ、ロールにあなたの四元数を変換を検討しています。 XNAでそうするためにHere's a discussion

+0

ご清聴ありがとうございます。しかし、それをオイラー角に変換すれば、最初にクォータニオンを作る目的は何ですか?私はそれを操作しません(私の角度は最初は度で、私はラジアンに変換して四元数を作成します) – Imelza

+0

私の最終的な目標は、世界座標(ヨー、ピッチ、およびヨー)のジャイロスコープの向きを表示することですロール)それを達成するためにクォータニオンをどうすれば使用できますか? – Imelza

関連する問題