簡體   English   中英

iOS / Android設備方向(俯仰,偏航,滾動)。 使用加速度計或陀螺儀是否更好?

[英]iOS/Android Device orientation (pitch, yaw, roll). Is it better with accelerometer or gyroscope?

我已經研究了一段時間,現在我必須決定走哪條路。

地雷要求:需要知道設備相對於真實航向的方位(地理北極,而非磁極)。 為此,我必須使用指南針,現在我必須確定加速度計或陀螺儀中的其他東西。

由於這對我來說是新事物,因此我花了最后幾個小時閱讀堆棧和Wikipedia文章,但仍然感到困惑。

我針對這兩個平台(iOS和Android),並使用Appcelerator Titanium開發它們。 使用Titanium,我可以輕松獲得加速度計的值(x,y,z)和trueHeading。

由於iPhone 3GS顯然沒有陀螺儀,因此我無法在該設備上使用它。 較新的iPhone和Android設備擁有它。

所以問題是:

  1. 加速度計的XYZ和compas的TrueHeading數據足以讓我計算設備的俯仰,橫搖和偏航嗎? 但這必須是准確的。

  2. 使用compas中的TrueHeading並使用陀螺儀的值而不是加速度計的值更准確嗎?

  3. 將加速度計和陀螺儀與TrueHeading結合使用是否明智?

如果走第一條路,我不必編寫用於獲取陀螺儀數據的Titanium模塊,因為它只給我提供加速度計數據,我也可以在3GS iPhone上使用它。

如果走第二條路,我必須編寫兩個模塊(iOS和Android)來獲取陀螺儀數據,而我又失去了對3GS的支持。

如果走第三條路,我將不得不再次編寫Titanium模塊,而失去3GS支持。

首先,如果您沒有龐大的3GS用戶基礎,但是編寫了新應用,則無需關心舊硬件。 IMO從經濟的角度來看沒有任何意義,但會減少系統架構中替代方案的數量。

您正在尋找的被稱為傳感器融合。 因此,這樣做需要像卡爾曼過濾器(Kalman Filters)等一些繁重的數學運算。好消息是它存在於iPhone( Core Motion )和Andriod的AFAIK(聽起來像是在Android上實現的Sensor Fusion中一樣)。

除了名稱之外,我對appcelerator的了解不多,因此無法說出一種簡單的使用方法。 無論如何,即使不是抽象層上的所有內容,我都認為appcelerator為您提供了進行本地API調用的可能性。 因此,您應該能夠嵌入本機API(經過一段時間的擺弄;-)。

通常,這取決於您的要求。 您需要越快地獲得准確的結果,我就越推薦真正的傳感器融合,包括所有3個傳感器。 如果您對響應時間較慢感到滿意,則可以將指南針和加速度計結合使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM