Точность акселерометра Android (инерциальная навигация)

Я хотел реализовать инерциальную навигационную систему для телефона Android, что, как я понимаю, непросто, учитывая точность акселерометра и постоянные колебания показаний.

Для начала я положил телефон на ровную поверхность и отобрал 1000 показаний акселерометра в направлениях X и Y (параллельно столу, так что гравитация в этих направлениях не действует). Затем я усреднил эти показания и использовал это значение для калибровки телефона (вычитая это значение из каждого последующего показания).

Затем я протестировал систему, снова положив ее на стол и отобрав 5000 показаний акселерометра в направлениях X и Y. Учитывая калибровку, я ожидал, что эти ускорения должны складываться в 0 (приблизительно) в каждом направлении. Однако это не так, и общее ускорение за 5000 итераций нигде не приближается к 0 (в среднем около 10 по каждой оси).

Я понимаю, что, не видя моего кода, на это будет трудно ответить, но в более общем смысле...

Это просто пример того, насколько неточны показания акселерометра на мобильном телефоне (HTC Desire S), или более вероятно, что я допустил некоторые ошибки в своем коде?

108
задан Ciro Santilli 新疆改造中心法轮功六四事件 30 April 2016 в 10:47
поделиться