оценка положения Android через GPS

Я студент инженерного факультета и в настоящее время разрабатываю квадрокоптер с Android Nexus 5 в качестве контроллера полета.

Чтобы выполнить автономный полет, мне нужно реализовать подходящий контроллер положения и, таким образом, устройство оценки положения, вот мой вопрос: уже было доказано, что с более дешевым оборудованием можно получить хорошую оценку положения с помощью измерений GPS и IMU, но для экономии заряда батареи Политика Android вычисляет обновление GPS на очень низкой частоте (1 Гц), поэтому возможно ли получить более высокую частоту (например, 20 Гц)? Если у кого-нибудь есть лучшее решение, пожалуйста, скажите мне?

редактировать:

моя проблема не в том, как быстро я могу получить исправление (перед развертыванием я могу дождаться надежного исправления). Проблема заключается в точности оценки положения, и, как мне уже грустно, уже доказано, что с более дешевым оборудованием (например, ardupilot, который использует arduino mega, тот же imu, что и nexus 5, и ublox gps) можно получить очень хорошая точность, обеспечивающая безопасный полет и очень точное зависание.

даже с requestLocationUpdate() с минимальным временем, установленным на 0, данные GPS обновляются только один раз каждые 1000 мс.

Заранее спасибо Лоренцо


person Lorenzo    schedule 20.10.2014    source источник
comment
Параметр ограничения времени в requestLocationUpdate() является лишь подсказкой. Устройство может использовать или не использовать эту подсказку.   -  person Stefan    schedule 22.10.2014


Ответы (1)


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

Если это так, вы, очевидно, можете это несколько контролировать. Однако чем чаще вы запрашиваете обновления местоположения, тем сильнее будет нагрузка на батарею. Функции getLastKnownLocation() и requestLocationUpdates() можно использовать вместе для довольно быстрого обновления координат широты/долготы. Ознакомьтесь с менеджером местоположений.

Однако блокировка GPS займет время. По моему опыту, местоположение на открытой местности (без препятствий) может предоставляться каждые 10 секунд. Более быстрые оценки могут быть предоставлены, если у вас есть свобода действий в точности. Использование Locations при условии, что мои сетевые башни вместо GPS могут определить местоположение менее чем за 10 секунд на одно местоположение. Однако я бы ожидал, по крайней мере, величину ошибки 200 футов, по крайней мере.

Наконец, самый быстрый способ обновить местоположение — через Wi-Fi. Если вы можете обеспечить надежное соединение Wi-Fi, ваше местоположение может обновляться с почти определенной точностью в течение 5 секунд.

Также изучите API Карт Google. У них есть несколько интересных функций, которые вы можете использовать, чтобы еще быстрее определить свое местоположение и даже добавить карту Google в свое приложение.

person SeahawksRdaBest    schedule 20.10.2014