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

У обоих систем есть ещё такое понятие, как курс. И если курс инерциальной системы забыть корректировать, сводя только X,Y, то будет очень плохо :slight_smile:
А тут в оркестр вступает ещё и компас - не только у GPS есть курс.
Кстати, сводить GPS, IMU и компас - это только одна задача.

Вторая - как повысить точность самой инерциальной системы - здесь ещё очень большой простор для полёта фантазии.
Например, пройденное расстояние надо корректировать текущим уклоном дороги (нам ведь географические координаты нужны?). Уклон бывает совсем немаленьким - тот трек, где я ездил в здании, я поднялся до 4 этажа и обратно :slight_smile: И если на дороге это компенсирует GPS - то как раз в здании его и не будет.

Подытожу, что у нас есть:
Поворот (°/s): гироскоп, одометр.
Курс: GPS, компас.
Пройденное расстояние: GPS, одометр.
Абсолютные координаты: GPS
Крен\тангаж: гироскоп, акселерометр
Скорость: GPS, одометр
Ускорение: акселерометр (с направлением), одометр (без направления)

Причём, разделение на гироскоп и акселерометр весьма условное - для вычисления кватернионов нужны они оба, а поворот\крен\тангаж надо уже брать из кватернионов. А ускорение надо брать, вычитая вектор гравитации с помощью тех же кватернионов.
И главное - не забыть про центробежную силу! На поворотах надо, зная текущую скорость, и °/s, корректировать (если я правильно понимаю) входные показания акселерометра по горизонтальной оси, перпендикулярной направлению движения.

Кстати, в логах MPU-6050 центробежную силу я уже попытался скомпенсировать, иначе трек в здании не выходил вообще.
(Речь идёт про логи с кватернионами. В последних логах я ничего не вычислял)

курс -это единичный вектор (x,y), x^2+y^2=1

Можно ли получить треки из поста #215 в виде:

?

или:
GPS: Абсолютные координаты, курс
Одометр: пройденное расстояние
Компас: курс

Или, для начала, в хотя бы виде gpx-треков? Как-то же инерциальный трек построен) Продифференцирую его, посмотрим что получится.

Смысла нет, т.к. я могу вычислить не так, как предполагают другие. Например, у каждого могут быть свои критерии фильтрации GPS точек по HDOP и количеству спутников. Так что берите сырой NMEA лог :slight_smile:
Что касается одометра - треки в посте #215 вообще с ошибкой, я на неё сразу указал (не учитывается направление движения автомобиля, задний ход засчитан как движение вперёд).
Тем более, в моём построении использовалась ручная помощь (указание начальной точки и направления).
Все данные, необходимые для вычислений, есть в архивах по ссылкам в том же #215 посте, а ниже - описание формата логов.

NMEA лог в архиве, используйте любой конвертер в gpx, если этот формат вам ближе :slight_smile:

См. $WRAW

Размечтались. Эту задачу я и сам не решил в полном объёме. В построении тех треков компас не участвовал :slight_smile:
Как задачу решить - пост #259. Методика рабочая, один раз я её пробовал. Но крайне трудоёмкая, поэтому только один раз.

Ладно, вот то, что я использовал для иллюстраций #215 поста: http://svimik.com/imutracks.rar

Спасибо, только не годится - отметки времени убитые. 2013-08-03T19:49:36Z

Ну да, я же сказал - для иллюстрации :frowning: Сами просили то, что “как-то построено”.
Придётся делать свой конвертер. Правда, тогда и смысла нет - читайте лог напрямую.

Вот код на пхп, который читает эти два лога и объединяет по временным меткам: http://svimik.com/imu_postprocess.txt
Там же в конце обрывки моих попыток слияния этих данных (заменить на свой алгоритм).

Зимой логфайл при буксовании было бы проще сделать, чем сейчас,
но можно попробовать (на гравии).
Я могу создать псевдо-NMEA файл в формате типа


$CAN_4A0_WHEELS,123456.789,0,99,0,100,0,101,0,102

где 123456.789 unix UTC время в секундах (или альтернативно ISO8601)
и за ним 4 пары [направление(вперед=0, назад=1),скорость (км/ч)]
При этом скорость естественно это на самом деле угловая скорость колеса (рад/с)
умноженная на “стандартный” радиус колеса, который и будет оцениваемым
модельным параметром в фильтре Калмана при работающем GPS.
“Среднее физическое” значение радиуса
при этом могу померять прямо на машине (колесо 235/45R17).

Когда датчик находится внутри (или близко к) железной коробки (=машине), то этим измеренным данным
доверия еще меньше, чем GPS в подвальном помещении.

Впринципе, оно конечно так, но компас у меня во всех местах работает одинаково отвратительно, и дома тоже :slight_smile: Я не нашёл условий, в которых он показал бы результаты, отличающиеся от описанного.
В защиту могу сказать, что при желании, всё можно скомпенсировать. Ведь компас закреплён в машине неподвижно, и влияние машины можно вычислить и скорректировать.

Есть такая miniPCIe карта VDB-800DR (Taiwan) с LEA-6R, антенным входом,
входом для одометра и встроенным гироскопом.
Выходы: USB (на miniPCIe) и uart.
http://www.sintrones.com/products/VDB-800DR.php
http://www.sintrones.com/support/test_report/GPS_Dead_Reckoning.php

Стоит 89 евро http://www.cartft.com/catalog/il/1591

Это дело я раскритиковал ещё на 8 странице.

usm78-gis
Крутая вещь. Где-то видел переходник mini-PCI->USB. Эту модель однозначно в закладки.

Меня смущает только то, что фото продаваемого модуля не совпадает с мануалом:
не впаян разъем для uart и нет DC-DC 5V->3.3V и rs232 драйверов.
Это не даст запитать модуль от 5V через uart разъем и придется иметь
дело только с miniPCIe. Корпус же все равно какой-то нужен, антенна не
должна висеть в воздухе.
Сырым данным думаю его сразу удастся научить (но только 1 Hz),
заодно и прошивку слить заархивировать.

Вот такой ?
http://www.ebay.com/itm/Mini-PCI-e-Wireless-WWAN-to-USB-Adapter-card-With-SIM-Card-Slot-for-HUAWEI-EM730-/400547398214

Да, точно он.

Кстати для первичных экспериментов (с Калманом или любыми другими методами) думаю может подойти любой IBM/Lenovo Thinkpad (цена 4000-6000р. за приличный Core 2 Duo): у них у всех встроен двухосный акселерометр Analog Devices ADXL320. Это конечно не так круто как wheel tick и gyroscope, но для обкатки технологий тоже годится. И паять ничего не надо. Вычислительная мощность больше любого смартфона, геометрически выровнять в автомобиле проще, чем смартфон. Можно даже док-станцию прикрутить намертво - цена 400 рублей за простой повторитель портов или 1000-1500р. за докстанцию с настоящим (не USB) COM-портом, который висит на отдельном прерывании и годится для PPS.

Интерфейс для программистов: http://www.thinkwiki.org/wiki/Active_Protection_System
Видео: http://www.youtube.com/watch?v=lza19PUdoL8

У меня скопился целый зоопарк thinkpad-ов (T60, T61, X61, X61 Tablet), надо будет испытать зимой, когда времени побольше будет.

А какие эксперименты с ним можно делать? Наклон автомобиля отображать? :slight_smile: Но даже это затруднительно, ибо надо вычесть центробежную силу на поворотах, а без гироскопа это не выйдет.

Рекомендую заказать MPU-6050 и USB TO I2C адаптер для подключения к ноутбуку. Будет 3-осевой акселерометр и 3-осевой гироскоп.
В сумме это обойдётся в $13.61, и паять кроме соединительных проводов ничего не надо.
Сам использую эту связку для экспериментов, и могу поделиться кодом на С++ для работы с ними (под винду).

Как раз центробежная сила (боковое ускорение) и является измеряемым параметром. Этот метод используется в топовых томтомах и некоторых моделях Pioner. Конечно точность у них не ахти, в основном для отслеживания развязок в тоннелях (map matching).

На видео в предыдущем посте ноутбук просто наклоняют. Я свой подергал на столе вперёд-назад и влево-вправо - отлично реагирует )))

За наводки по электронике спасибо.

(added)
мда… почитал про точность и шум этих акселерометров. Для навигации не годятся, только для отслеживания “отвернул влево/вправо” без конкретных чисел. Но отследить вылеты GPS и забраковать измерения по ним можно. Собственно интерес возник исключительно после чтения литературы по Калману, хочется хоть что-то в него замешать минимальными усилиями :slight_smile:

Все на самом деле впаяно, и модуль нормальный LEA-6R, нет только второго кабеля для 5 пинового JST разъема:


$GPTXT,01,01,02,HW  UBX-G60xx  00040007 777FFFFFf*45
$GPTXT,01,01,02,EXT CORE 7.03 (47340) May 10 2011 14:36:32*47
$GPTXT,01,01,02,ROM BASE 7.03 (45969) Mar 17 2011 16:18:34*57
$GPTXT,01,01,02,MOD LEA-6R-0*37
$GPTXT,01,01,02,DR 6R C0 2.00*70

Похоже все несколько сложнее:
В базовой прошивке RXM-RAW есть, а вот в EXT все это дело
зачистили, остался только TRK-SFRB. Дело в принципе поправимое,
но не за 5 минут.

usm78-gis
Не смог найти поиском - каким адаптером вы пользуетесь для сниффинга CAN-шины ? Или у вас всё реализовано через arduino shields ?