Comments 22
В целом, самая большая проблема — погрешность GPS координат

Нужно использовать L5
Погуглил, интересно. Однако полагаю, что по цене они будут изрядно дороже, чем массовые девайсы.
с Maps API, делается это бесплатно (пока).

Есть альтернативы вроде OpenstreetMap.
Тоже думал об этом, но документация Гугла гораздо прозрачнее и позволяет добиться цели совсем небольшими усилиями.
Одно время тоже увлекался такими танками, но до GPS так и не добрался.
Фото



В целом, самая большая проблема — погрешность GPS координат

Можно же считать курс по скорости.

Расчет направления (курса) можно производить по составляющим скорости VN, VE у которых точность лучше чем у координат.

В исходном nmea сообщении есть, и кстати уже "обработанные" в виде курса и скорости. И демон их тоже выдает:


track — numeric Course over ground, degrees from true north.
speed — numeric Speed over ground, meters per second.

Так я и писал же про него:
Стоит заметить, что эти же данные можно получить прямо с GPS, там есть поле track

А какие проблемы подключить плату c QMC5883L (I2C интерфейс), например?
Определять направление по GPS без компаса — это тупик. Будет все время рыскать, поскольку GPS координата с приемника очень характерно плавает по времени (при фиксированном физическом положении приемника).


Выведите координату с приемника на экран в графическом виде (кривая в 2D координатах) и сразу все поймете (простейшей программой на pyton или чем удобнее).


Но… Хотя, у меня похожая конструкция (https://habr.com/ru/post/424191), но отправлять ее где то шляться я бы не рискнул… сопрут.


Хотя с нынешним блоком аккумуляторов должна минимум 20 км проехать (емкость сборки как у электро самоката)

А чем I2C лучше USB?

>>Определять направление по GPS без компаса — это тупик
Да, пришел к такому же выводу.
Есть ещё фильтр Калмана. Модель вашего танка описывается довольно просто. Фильтр будет усреднять координаты с поправкой на проприоцепцию ходовой части вашего танка. Ориентироваться уже нужно не на самые свежие мгновенные координаты с приёмника, а на вектор по отношению к усреднённому (отфильтрованному) предполагаемому положению вашего танка. Координаты положения танка при правильной настройке фильтра должны сходиться.
Ещё можно оценивать погрешность определения своих координат и критерий целесообразности каждого перемещения вычислять в соответствии с:
  • допустимой погрешностью координат в точке прибытия
  • оценочной погрешностью определения своих координат на текущий момент
  • длиной вектора разности координат текущей и целевой точки
  • зарядом аккумулятора (видимо роботу стоит быть более ленивым при меньшем заряде?)

Куда эффектиынее подождать пока накопится достаточная точность усреднённых координат и поямается больше спутников, чем в панике метаться по кустам.
А чем I2C лучше USB?

  1. Ценой платки (копейки стоит, поскольку "для арудуино")
  2. Размерами разъема (подключение к GPIO) и не занимает дефицитный USB с его ограничениями по току (Hub не нужен).
  3. Не надо никаких специализированных драйверов искать для USB (не факт что есть вообще). Работает напрямую через I2C (библиотеки для Raspberry есть).

Я бы и GPS подключил прямо к GPIO… (но у меня валяется OEM плата GPS с RS-232 TTL 3.3v)

Рекомендую вам погуглить следующие вещи:
1. Истинный курс
2. Компасный курс
3. Девиация
4. Движение по азимутам
Я бы делал движение по азумуту, который корректируется раз 10 секунд и gps использовать как справочную систему
Only those users with full accounts are able to leave comments. Log in, please.