2011-11-25 23 views
13

Tôi đang làm việc trên một ứng dụng Android có thể tính toán chuyển động của thiết bị theo 6 hướng. Tôi nghĩ rằng tôi có thể sử dụng tăng tốc như;Sử dụng gia tốc kế, con quay hồi chuyển và la bàn để tính toán chuyển động của thiết bị trong thế giới 3D

"x = a.t^2" nhưng không phải là hằng số. Và đây là vấn đề. Làm thế nào tôi có thể tính toán tổng số chuyển động ??

+0

Bạn sẽ cần phải thăm dò giá trị của 'a' và tính toán gia tốc trung bình và áp dụng trung bình đó trong khoảng thời gian giữa các cuộc thăm dò ý kiến. – Bringer128

+0

Rất tò mò về cách bạn quản lý để giải quyết vấn đề này và nếu bạn có nó để chính xác điều này cho phép điều hướng chính xác. – ina

Trả lời

18

Gia tốc kế cho bạn ba hướng (x, y, z). Chúng là các phép đo gia tốc, khó biết vị trí của thiết bị hơn. Tuy nhiên, hãy nhớ tăng tốc liên quan đến vị trí thông qua tích hợp:

a(t) = a[x] 
v(t) = a[x]t + c 
x(t) = a[x]t^2 + ct + d 

Vấn đề là bạn không thể biết c hoặc d vì khi bạn lấy đi các hằng số hằng số. Vì vậy, có một số tiền bạn không thể có được quyền với c và d mất tích. Bạn có thể cố gắng bù đắp bằng cách ghi nhớ các giá trị bạn đã sử dụng cuối cùng cho những giá trị đó. Vì vậy, sau khi lấy 3 mẫu, bạn có thể bắt đầu tính toán vị trí từ đó.

Có một lượng thông tin đáng kể về cách diễn giải dữ liệu từ các cảm biến. Giống như tìm ra nơi trọng lực là định hướng, và trừ đi trọng lực để tăng tốc tuyến tính.

http://developer.android.com/reference/android/hardware/SensorEvent.html

Dưới đây là một cách để đến với vị trí sử dụng một gia tốc cùng với một thuật toán cho việc tìm kiếm vị trí một cách chi tiết:

http://www.freescale.com/files/sensors/doc/app_note/AN3397.pdf

+2

Đặc biệt là liên kết thứ hai là một mỏ vàng cho tôi. Cảm ơn rất nhiều. – kubudi

+0

Chỉ là một cảnh báo: bạn sẽ nhận được các lỗi tích hợp khủng khiếp. – Ali

+0

Nó sẽ được. Đợi đấy. – kubudi

4

Đó là sự thật, bạn sẽ có được vị trí bằng cách tích hợp tăng tốc tuyến tính hai lần. Nhưng lỗi là khủng khiếp. Nó là vô ích trong thực tế.

Đây là an explanation why (Google Tech Talk) lúc 23:20. Tôi đánh giá cao đề xuất video này.

Nó không phải là tiếng ồn gia tốc gây ra sự cố mà là gyro white noise, xem phần phụ 6.2.3 Tuyên truyền lỗi. (Nhân tiện, bạn cũng sẽ cần các con quay hồi chuyển.)

Câu hỏi tương tự là Distance moved by Accelerometer.

+0

cảm ơn nhưng tôi nghĩ tôi không cần con quay hồi chuyển. Bạn có thể giải thích tại sao bạn nghĩ rằng nó là cần thiết để tìm khoảng cách di chuyển? – kubudi

+0

SensorManager cần các con quay hồi chuyển nếu bạn đang sử dụng gia tốc tuyến tính. Đối với câu trả lời được chấp nhận, tôi hy vọng bạn biết kết quả bạn nhận được sẽ rất nghèo. Xa tồi tệ hơn bạn mong đợi. – Ali

+0

Tại sao? Con quay hồi chuyển đang đưa bạn trở lại vận tốc góc cạnh. Bạn cần nó để tăng tốc. Tôi thực sự không hiểu. – kubudi

Các vấn đề liên quan