У меня вопрос по инерциальной навигации с мобильного устройства. Я использую планшет Android для разработки, но я думаю, что вопрос связан со всеми типами (даже с лучшими датчиками) аппаратного обеспечения.
Самый основной вопрос при разработке инерциальной системы — как определить направление движения носителя. Даже если предположить, что показания магнитометра точны на 100% (а это явно не так!) остается вопрос ориентации прибора относительно пользователя.
Простой пример — если пользователь идет на север, но держит устройство так, чтобы ось Y устройства указывала на северо-восток (ссылка на изображение другой оси: http://developer.android.com/reference/android/hardware/SensorEvent.html) Тогда магнитометр будет указывать на северо-восток. Как мы можем определить, в каком направлении на самом деле движется пользователь? (То же самое будет, если мы используем и магнитометр, и гироскоп для определения курса)
Возможным решением будет использование показаний акселерометра по оси Y и оси X. Что-то в сторону использования arctan(aY/aX) (например - если пользователь держит устройство идеально ровно, то ось X ничего не покажет...) Но так как показания Акселерометра не стабильны, то это не так легкий...
Кто-нибудь знает алгоритм, который действительно работает? Я уверен, что это известная проблема, но я не могу найти ссылки на решения...
Заранее спасибо!
Ариэль