GPS с гироскопом и одометром.

Добрый день!
Ребят, подскажите пожалуйста. Я наверно не по адресу, но это единственная русскоязычная ветка форума по данной проблеме, которую мне удалось найти.
У меня есть Arduino Mega 2560, есть GPS shield Ublox NEO-6M и 3-осевой гироскоп/акселерометр GY-521 MPU-6050.
Задача объединить gps и imu на платформе Arduino и получить gps-трекер с поправками от imu.
Понимаю, что задача не тривиальная, но может кто-то поделится информацией или ссылками по данной тематике если таковые имеются?
Гугл к сожаленью мне не помог…

kztp
Ключевые фразы для поиска “kalman filtering”, “dead reckoning”
Вот, например http://www.instructables.com/id/Guide-to-gyro-and-accelerometer-with-Arduino-inclu/
(добавлено: там оказывается без GPS)

Сразу следует отметить что у Вас и близко не получится результатов соизмеримых с u-Blox R-серии т.к. изначально компромиссный подход - взять готовые координаты (которые уже есть результат работы фильтра) и подмешать к ним инерциальный датчик. Т.е. в ситуациях когда есть прием 2-3 спутников ваша система полностью перейдёт в автономный режим, в то время как 6R продолжит использовать имеющиеся спутники.

chnav,
спасибо Вам за ответ, буду гуглить дальше. Я уже использую фильтр калмана при обработке результатов imu, теперь осталось туда прикрутить gps. Железо я одолжил (ардуино, gps, imu), так что выбирать особо не приходилось. Пока что идеальных результатов я не жду, мне бы сначала всё это запустить и оценить результаты, потом буду думать что делать дальше.

Добавил в вики ссылку на дипломную работу по интеграции INS и RTKLIB
http://publications.lib.chalmers.se/records/fulltext/200466/200466.pdf
u-blox тем временем уже продает EVK-M8L, но документации не показывает,
и судя по отсутствию разъема для CAN это все-таки не совсем
окончательное решение проблемы.

Исходная информация для DR на таком девайсе:
http://electronics360.globalspec.com/article/2256/volkswagen-7p6-035-670-3g-mmi-unit-by-harman-becker-teardown
http://www.electronicproducts.com/Volkswagen_3G_MMI_Unit_by_Harman_Becker-whatsinside_text-138.aspx

ReverseGear и WheelCounter/AllWheels приходят скорее всего с CAN шины,
GPS это antaris4/ublox6,
InternalGyro Epson Toyocom XV-8000LK Gyroscope - 3-Axis, 20 Degrees Inclined Angles, 10MHz
Internal3Daccelerometer ?
Temperature NXP LM75ADP Temperature Sensor - Digital, 0.125C Resolution, w/ 11-Bit ADC


0x00021000 sensor/Gyro/InternalGyro
0x00021005 sensor/WheelCounter/AllWheels
0x00021009 sensor/Accelerometer/Internal3Daccelerometer
0x00021006 sensor/ReverseGear
0x00021008 sensor/Temperature
0x0002101d sensor/GPS/LowLevel
0x0002100a sensor/GPS/Latitude
0x0002100b sensor/GPS/Longitude
0x0002100c sensor/GPS/Height
0x0002100d sensor/GPS/Heading
0x0002100e sensor/GPS/Speed
0x0002100f sensor/GPS/Time
0x00021010 sensor/GPS/Date
0x00021011 sensor/GPS/Fix
0x00021012 sensor/GPS/HDOP
0x00021013 sensor/GPS/PDOP
0x00021014 sensor/GPS/VDOP
0x00021015 sensor/GPS/AntennaState
0x00021016 sensor/GPS/SignalQuality
0x00021017 sensor/GPS/SatellitesUsed
0x00021018 sensor/GPS/SatellitesVisible
0x00021019 sensor/GPS/HorizontalPositionError
0x0002101a sensor/GPS/VerticalPositionError
0x0002101b sensor/GPS/AllGps
0x0002101c sensor/GPS/SatelliteInfo
0x00021021 sensor/GPS/NorthSpeed
0x00021022 sensor/GPS/EastSpeed
0x00021023 sensor/GPS/VerticalSpeed
0x0002101f sensor/Version/Identifier
0x00021020 sensor/Version/Date

Апдейт 2017. Остались коллекцонные образцы устройств всех поколений, lea-4r, lea-6r и восьмого. Восьмерки оказались глючные и не работают с u-center. Может по причине ненашего исполнения? У нас все работает. Все устройства питаются по usb-b (квадратный разъем, 5в). Интерфейсы на выбор, либо com+usb, либо usb+bluetooth. Оба порта работают одновременно. Можно треки писать с юсб, а андроид телефон подключить через bluetooth gps.

Кто-то ещё этой темой занимается?
Что-то я сейчас потыкался по ебею и алиэкспрессу, результаты неутешительные:

  1. LEA 6R: На ебее только голый чип, варианта с платами нет. На алиэкспрессе есть одна квадратная плата с антенной без фотографии обратной стороны, сильно смахивает на фейк.
  2. NEO M8L: На ебее ничего, на алиэкспрессе продают один чип, и тот фейк.
  3. EVK M8L: Нет нигде.
  4. NEO M8U (не совсем нормальный DR - к машине не подсоединяется, но заявляет, что со встроенными сенсорами это и не надо): На ебее только голый чип, на алиэкспрессе тоже, но там к тому же похоже ещё и смахивает на фейк.
  5. Устройство, которое разрабатывал господин постом выше: сайт дохлый, на форуме последний пост год назад, статус проекта не понятен.
    Есть сейчас в продаже какие-то готовые платы, чтобы оставалось только подключить и поехать?

Человек делал это на голом энтузиазме по себестоимости. Интереса у публики это не вызвало, грех теперь жаловаться “дохлый - не дохлый”.
Хобби обычно такое дело - добился успеха и пошёл дальше.

  1. Чистейшая правда, 12 лет назад именно так все и было, потому собственно и появился проект. Не для продажи, а для себя лично. Ну и если кто поучаствовать хочет - велком.
  2. Есть восьмой чип, в evaluation kit, очень дорого, там какой-то косяк с памятью, не запоминает настройки а без них фактически валяется на полке без дела. Техподдержка не стала утреждать себя ответами.
  3. Ну у меня есть и что толку с того? Нерабочая вещь впринципе.
  4. ИМХО это как с багажом в шереметьево. В дело вмешались “эффективные” менеджеры. Маркетолухи сказали что продажи сдерживает гиморойность подключения ко всем этим каншинам в машинах, сделайте автономку. Ну сделали. Но показывает она КМК хрень потому что она даже нулевую скорость не может определить изза дрейфа, т.е. разница с неИНС GPS исчезающая. Смысла GPS с гироскопом и одометром потерян совсем со всеми вытекающими. Из связки гироскоп-одометр именно последний суперточный прибор. Эти все mems гироскопы - оборудование бытового класса и без серьезной поддержки, в “автономке” ничего толком сказать не могут.
  5. Для меня лично остается загадкой как люди отличают “дохлый сайт” от “недохлого”. Интерес действительно минимальный, сидеть там смысла нет, но в личке неотвеченных сообзений никогда не было. Отсюда с осм вообще уведомления приходят. Спрашивайте, отвечаем. Пару приборов может и осталось, именно в таком виде “подключить и поехать”. Собственно из-за этого и был весь сыр-бор.

Из новостей чисто реакция на автопром. Машин без CAN-шины уже практически нет, т.е. это фактически последний канал связи с машиной. Поэтому просто нужен переходник со штатными разъемами авто. На выходе нужены speedpulse и задний ход. Хотите свой доставайте, хотите я закажу за границей. Это долго и дорого. Готовые решения плюс-минус в наличии есть на WV и Hyundai, подешевле и побыстрее. Сложнее всего с машинами типа старого Кайроном. Месяца два шел переходник этой зимой, но все заработало с первого раза. Установочная студия классно все установила.

Не то чтобы не вызвало, но все кому надо было - получили. Последние годы - да, единичные фанаты появляются, но это просто время такое - “разбираться в деталях - не главный конек современного бизнеса” :D:D:D

Понятно. Значит, произошло недопонимание. Я-то за проектом посматривал, но помню, он был в статусе разработки и прототипирования. Думал - подожду, когда оно будет в статусе “запущено серийное производство, можно заказать на сайте”. Не знал, что этого и не планировалось.

  1. Перехожу по ссылке в вашей подписи
  2. Нажимаю на ссылку “Сайт” в шапке форума
  3. Firefox can’t find the server at dr.unoforum.ru.
  4. ???
  5. Сайт дохлый.

У меня в Шкоде speedpulse доступен прямо с датчиков ABS (уже игрался с ним, подключая к ардуине). Задний ход могу взять с фары заднего хода. Выходит, не нужен мне ни CAN, ни переходник.

А можно мне тоже? :slight_smile: Просто, тут такое дело… сами видите, в какой стране я живу :smiley:

У ublox появилась весьма интересный чип ZED-F9K
Обещают GPS, GLONASS, Galileo и BeiDou, причём все четыре могут работать одновременно. И, вроде как, он двухдиапазонный? Вижу там L2 в списке диапазонов. Ну и dead reckoning, само собой, имеется.
По описанию - убойная штука. Жаль, с суффиксом K в продаже не вижу. На ебее есть ZED-F9P за $244, но он без DR. Но даже он обещает “centimeter level accuracy in seconds”.
Кто-нибудь тестировал?

1.Странно, проверил все работает. Может сайт заблокирован там? Можно еще на этом форуме под аватаркой нажать кнопочку “Email”

  1. с ABS заднего колеса сигналы - это прекрасно. Главное чтобы после подключения сам ABS не выключился. Там маловат уровень сигнала, можно поднять транзисторным ключиком или еще чем, не знаю как но одобряю - если брать прямые данные о положении колеса, да еще и вовремя, без CAN-задержек - получается самая точная информация, лучше всего все ИНСы работают, мои и не мои.

  2. Очень уважаю в какой стране, правда последний раз был лет 40 назад :smiley: :smiley: :smiley: , кстати есть оказия на днях до кик-ин-де-кёк. Если устроит и успею собрать и проверить. Всеже лучше через личку на том сайте про детали.

Ардуину уже подключал, ABS продолжает функционировать. В Шкоде там запас по уровню сигнала приличный.

Написал в личку модератору.

Девайс получил, всё супер!
Калибровка 100%, 99%, 99%, на калибровку хватило 30 мин (проехал 25км).

Из модификаций: сразу встроил преобразователь, чтобы питать от 12V:
http://svimik.com/IMG_20190727_095644.jpg
http://svimik.com/IMG_20190727_202135.jpg
Питание через USB меня не устроило, потому что я хочу туда подключать ноут, но при этом я не хочу, чтобы Bluetooth соединение переставало работать, когда ноут я отключаю.

Внимание: Устройство может уходить в спячку в момент отключения USB даже при автономном питании. Долго думал, от чего такое поведение: воткнул USB, вынул USB, и по Bluetooth данные перестают отправляться. Чтобы этого не происходило, надо в настройках в разделе USB выбрать вариант Self Powered. Не забудьте сохранить конфигурацию.

Установка: в багажнике слева:
http://svimik.com/IMG_20190727_232050.jpg
http://svimik.com/IMG_20190727_232426.jpg

Подключение: реверс - к фаре заднего хода, импульсы - к датчику ABS заднего колеса, используя дополнительную схему для согласования:
http://svimik.com/IMG_20190727_231032.jpg
Для Skoda Fabia схема будет состоять из оптопары и резистора 100ом паралельно ей. Схема подключается в разрыв датчика.
Имейте в виду, что у других автомобилей датчики ABS не такие, и схема там будет посложнее.

Пример трека:

Пожелания автору схемы:

  1. Добавить разъём для питания от 12V. Иронично, что в автомобильном устройстве нет входа для питания от автомобильной бортовой сети.
  2. Приделать BT и RS232 разъём одновременно. Не знаю, что мешает так сделать.
  3. Вывести UART разъём для подключения ардуины или другого МК (+5V, GND, TX, RX).
  4. Сразу настроить HC-05 на нормальное название (например, GPS) и нормальную скорость (например, 115200), иначе даже 4Гц туда не пролазит. Так мало того, что не пролазит туда, так ublox начинает и на USB пакеты терять из-за этого. Вся настройка занимает 5 минут, но требует переходника UART-USB, которого у кого-то может и не быть.

Спасибо за такой позитивный отзыв. Давно не было так радостно от чьих-то побед. Пример трека тоже очень позитивный, в городе чисто-спутниковая навигация такого никогда не даст, прямо с радиусами. На меньших радиусах разница ИНС еще больше заметна, но для этого надо импульсы брать с заднего правого колеса, если осевые линии дорог уже есть и нужны газончики и бордюрные камни. Ехать нужно тоже соответствующе - правее :smiley:

Про пожелания:

  1. Я сам удивился насколько меньше проблем в жизни становится если в автомобильном девайсе не делать питание от 12В. :smiley: Надо пересмотреть эту позицию с учетом современного китаепрома. Уже несколько установок было через 5в преобразователь.
  2. Можно сделать BT и RS232 одновременно. Мешает то что прямо на самом чипе второй выход физически USB, с работой с фирменными драйверами, виртуальным портом в компе итп. Его переделать назад в rs-232 - это целая история с риском получить кирпич. Bluetooth возможно проще.
  3. UART в TTL тоже несложно вывести, но места не так много, кроме того есть компоновочные проблемы: каждый лишний порт шумит, а RF-часть, а особенно цепи гироскопа очень боятся таких шумов. Получается что страдают люди, которым не нужен UART. Есть идейка как этого всего избежать - сделать байпасс на max 12в, чтобы без него выводить ttl напрямую на разьем db-9. А BT при этом повесить на USB. Так может быть шанс сохранить уникальные характеристики всей коробочки по основному показателю - чувствительности приема GPS.
  4. Тоже было в планах поковыряться в HC-05, в некоторых версиях HC-06. Пока они находятся в режиме “темный лес” - либо работают, либо не работают. Как нерабочий перепрошить и настроить пока не приходилось разбираться.

Вобщем посмотрим что радиоэлектронный рынок предложит “10 лет спустя”. Если получится собрать комплектуху, то к НГ можно будет что-нибудь замутить :sunglasses:

Немаловажно также настроить частоту NMEA хотя бы на 5Гц, иначе этой красоты по-умолчанию не видно. Но чтобы это сделать, придётся ещё перенастроить скорость порта, а чтобы не потерять при этом BT, надо ещё и перенастроить HC-05. Мне не сложно, но не все такие, как я.

Нет, я имел в виду все 3 оставить! BT и RS232 повесить на один порт. Один из них оставить только на передачу, чтобы не конфликтовали, и вывести на плате перемычку, какой из них пользователь хочет на приём команд, если хочет использовать u-center с одним из этих портов.

У вас там на плате пустые площади такие, что коня можно валять. Я приклеил преобразователь просто на пустое место, и там осталось ещё столько, что ардуина целый МК поместится с гнездом под MicroSD, чтобы коробка сама треки писала. Что, собственно, я и думаю сделать следующим шагом.

А ещё, на днях я планирую поставить мелкую ардуинку, чтобы суммировать импульсы с обоих колёс. Это должно быть не только точнее, но и позволит с чистой совестью писать трек посередине машины, а не слева или справа.

И вот вам ещё:
5) Сделать два входа для импульсов для тех, кто подключается к ABS датчикам. Припаиваем какой-нибудь мелкий AVR контроллер, и пишем код, который будет суммировать импульсы.

  1. Порт 115200 и любые герцы идут штатно через USB. Гнать все это через uart+max12+rs232+HC-05+bluetooth+мобилко-на-андроиде мягко говоря неоптимальная конструкция. Как говорится велком в клуб pccar.ru. Но я не настаиваю, каждый вправе извращаться как угодно в пределах своей компетенции :sunglasses:
  2. Идея ясна, можно сделать чуть другой формы переходник и пропилить дырку под BT над DB-9. Немного больше фонит. Перемычки - вот они сильно фонят, неприятно. Надо подумать. А нельзя просто все запараллелить и Rx и Tx? Просто не отправлять ничего туда и не будет путаницы.
  3. Это не пустые площади. Это только с точки зрения цифровой техники они “пустые”. К сожалению много очень квалифицированного народа нарвалось на крупные проблемы из-за такого восприятия. Вплоть до нерабочих схем. Если Вы посмотрите шумы и как от них защищаться, но становится понятным принцип экранирования и взаимного расположения деталей. Вся плата в заземлениях и металлизированных отверстиях, думаете от хорошей жизни? Вам еще провезло что питалово стоит в секторе питалова т.е. изначально шумном, как USB. Если такие вещи ставить со стороны гироскопа АЦП или RF тракта, все капец, прибор теряет примерно все.
  4. Так и не понял зачеи нужен трек “постереди машины”. Вы там порядовку делаете в карте? Обычно нужна либо осевая линия дороги, либо контурная асфальта-газона. Это я как градостроитель говорю. Осевая как раз практически на левом колесе идет, контур дороги на правом. Столько возни из-за странной линии. Кроме того есть еще в градостроительном софте функция offset - создание параллельных кривых. В случае ИНС треков заметно более продуктивный метод с развитыми возможностями по сравнению с осью машины. Еще есть гениальное место для осевой линии (я оттуда брал) - датчик вращения выходного вала КПП, до дифференциала. Конструкционно от abs не отличается ничем.
  5. Тут может оказаться превышение предельной частоты. Надо будет поискать в ТТХ, было где-то.

Опять вы меня не поняли. ublox не даёт отдельно выбрать частоту для USB, отдельно для UART. Если я поставил 5Гц - оно везде будет 5Гц, независимо от того, нужно мне оно на bluetooth, или нет. Поэтому единственный выход для bluetooth - мириться с этим, и передавать тоже на 5Гц. А в дефолтные 9600 5Гц никак не влазят.

Но, справедливости ради, мне нравится, как плавно и точно поворачивается карта в османде на телефоне, когда данные передаются на 5Гц. Если оно работает, и работает хорошо, то какие аргументы против?

Тогда надо развязать их с помощью подтяжки и двух диодов, дабы они не устроили КЗ в попытках установить линию в разное состояние.

Попробуйте накрыть чувствительные тракты металлическими экранами типа таких.
Ну и наконец, кардинально вопросы помех решают банальные 4-х слойки со слошными слоями массы и питания внутри.

А я не понял, как вы машиной бордюры измеряете. Всё равно у вас какой-то offset будет, если только не ехать колесом поверх самого бордюра. Да и из кабины ж не видно точное расстояние между колесом и бордюром, оно же плавать будет.

На вас водители странно не смотрят, когда вы колесом по разделительной полосе или бордюру едете? И не точнее ли получится, если проехать туда, обратно, и вычислить осевую линию между двумя треками? Держать машину по центру полосы гораздо легче, чем одним колесом куда-либо.

Плохое место. Ведущие колёса могут пробуксовывать, когда трогаешься. Задние в этом плане надёжнее.

Ну, я не градостроитель, и бордюры у нас и так по снимкам нарисовать можно. Задачи с GPS у всех разные.

Добавил выход для подключения ардуины (UART и 5V):
http://svimik.com/IMG_20190730_191509.jpg
http://svimik.com/IMG_20190730_194431.jpg

Сделал сумматор импульсов, чтобы использовать оба задних колеса:
http://svimik.com/IMG_20190730_192442.jpg
http://svimik.com/IMG_20190730_202410.jpg
Код можно взять здесь: https://gist.github.com/SviMik/9b7d5af135ae5ea2b234d6699f818c67

Тест в туннеле:

Разворот в первую и вторую полосу.

Этот снимок пришлось сместить под трек, что-то он аж на 7 метров уехал :confused:
Далее все снимки пойдут как есть, без смещения. Похоже, какой-то одиночный косяк Maa-amet.

Сравнение с GPS в телефоне:

Тут телефон поймал последнюю точку у форточки: