我已經在機器人上橫向放置了一個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)。但由此產生的價值是無法使用的。後來我讀了Tango在磁傳感器方面存在的主要問題(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/
- ....(手頭沒有現在)
或者是還有另一種確定機器人應用旋轉的方法嗎? (只是標題)。我想要達到的唯一目標就是轉動一個預定義的角度(以度爲單位)。大多數情況下我只想向右或向左轉(90°)。
如果任何人都可以提供一段工作代碼(定位Google Project Tango設備)將非常有幫助。用這個已經失去了日子。對於其他Android設備,我已經很快找到了解決方案。不排除,該設備有其他重大錯誤。
非常感謝你......正是我在找的東西。沒有機會由我自己推導出這個公式。 – dannyyy