ロボットの横向きのGoogle Project Tangoデバイスを搭載し、onPoseAvailable()
イベントリスナーから見出しを取得したいとします。私はフレームワークがAPIに記述されているように四元数を返すことを知っています。四元数から度(0〜360°)の回転から
クォータニオンを度単位の測定値に変換するのに多くの努力をしました。興味のある方向軸はy
(https://developers.google.com/project-tango/overview/coordinate-systems#project_tango_coordinate_systems)で、私のロボットの見出しを決定します。
私の最初のアプローチは、TYPE_ROTATION_VECTOR
,TYPE_GYROSCOPE
またはTYPE_ORIENTATION
(depricated)を使用することでした。しかし、結果の値は使用できませんでした。後で私はタンゴが磁気センサーに大きな問題を抱えていることを読む(How to detect an absolute rotation of an android device)
タンゴ自体から姿勢データに切り替える理由はこれでした。しかし、ここでも同じです。適切な結果を得るためにはロケット科学、タンゴには大きな問題があります。私はすべてのstackoverflowの記事と私がインターネットで見つけたほとんどすべてを読んだ。私が見つけたほぼすべてのコードを再実装しました。しかし、私の現在のシナリオでは、期待通りの作品はありませんでした。他の軸の他の動きについては、それは!
私は次のことを試してみた:
- https://developers.google.com/project-tango/apis/java/reference/TangoPoseData.html#field-detail
- https://android.googlesource.com/platform/external/jmonkeyengine/+/master/engine/src/core/com/jme3/math/Quaternion.java(
toAngles()
) - http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/
- ....(ではない、今手元にある)
かでありますロボットアプリケーションのローテーションを決定するもう1つの方法はありますか? (ちょうど見出し)。私が達成したいのは、あらかじめ定義された角度(度単位)で回転させることだけです。ほとんど私はちょうど右または左(90°)を回したいと思う。
誰かが(Google Project Tangoデバイスをターゲットにした)作業コードを提供できる場合は、非常に役に立ちます。これでもう忘れてしまった。他のAndroid搭載端末については、私はすぐに解決策を見つけました。除外されるべきではない、そのデバイスには他の大きなバグがあります。
ありがとうございました...まさに私が探していたものです。私自身でこの公式を推論する機会はなかった。 – dannyyy