You are not logged in.

#276 2013-08-29 10:55:31

chnav
Member
From: Russia / Kazakhstan
Registered: 2010-03-18
Posts: 3,193

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

Кстати для первичных экспериментов (с Калманом или любыми другими методами) думаю может подойти любой 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), надо будет испытать зимой, когда времени побольше будет.

Last edited by chnav (2013-08-29 11:07:42)

Offline

#277 2013-08-29 11:14:37

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

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

двухосный акселерометр Analog Devices ADXL320

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

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

Last edited by SviMik (2013-08-29 11:19:08)

Offline

#278 2013-08-29 11:19:16

chnav
Member
From: Russia / Kazakhstan
Registered: 2010-03-18
Posts: 3,193

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

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

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

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

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

Last edited by chnav (2013-08-29 21:46:06)

Offline

#279 2013-08-31 10:38:52

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,640

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

usm78-gis wrote:

Меня смущает только то, что фото продаваемого модуля не совпадает с мануалом:
не впаян разъем для uart и нет DC-DC 5V->3.3V и rs232 драйверов.

Все на самом деле впаяно, и модуль нормальный 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

Сырым данным думаю его сразу удастся научить (но только 1 Hz)

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

Last edited by usm78-gis (2013-08-31 10:40:38)

Offline

#280 2013-08-31 11:41:49

chnav
Member
From: Russia / Kazakhstan
Registered: 2010-03-18
Posts: 3,193

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

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

Offline

#281 2013-09-04 20:18:21

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,640

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

chnav wrote:

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

У меня есть много всяких разных, но реально и всерьез пока пользуюсь (по разным причинам) только дорогим AGV4000B (expert) http://www.agv4000.de
на чипе LPC1766FBD100 http://www.nxp.com/products/microcontro … BD100.html
разные причины = на A4 B7 шины CAN-Diagnostic и CAN-Powertrain это одна шина, поэтому доступ к датчикам колес и положения руля
можно получить прямо на OBD-2 разъеме. Более дешевые адаптеры предназначенные _только_ для OBD-2 диагностики
на STM32F1* физически не могут запихать весь 500kbit CAN траффик
в 230kbit uart, а фильтрование CAN пакетов на дешевом железе непростое дело.
Arduino CAN shield в общем отличная вещь, но выход пакетов у него на SPI порт, так что тут еще кто-то вроде raspberry pi
нужен для обработки пакетов.

Offline

#282 2013-09-08 15:43:48

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

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

мда... почитал про точность и шум этих акселерометров. Для навигации не годятся, только для отслеживания "отвернул влево/вправо" без конкретных чисел.

А смотрели ссылки про массивы из нескольких датчиков? Что думаете? По идее, там есть возможность повысить точность и снизить шум на порядок.

Я как раз получил по почте несколько испытуемых, возможно скоро выложу сырые данные с них smile
DSC_0908.jpg

Offline

#283 2013-09-08 17:06:14

chnav
Member
From: Russia / Kazakhstan
Registered: 2010-03-18
Posts: 3,193

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

SviMik wrote:

А смотрели ссылки про массивы из нескольких датчиков? Что думаете? По идее, там есть возможность повысить точность и снизить шум на порядок.

Смотрел, интересное решение, но я не краевед в этой области smile

Offline

#284 2013-10-10 14:34:33

Dimon
Member
Registered: 2010-11-26
Posts: 94

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

Всем привет. Интересно, конечно, понаблюдать за темой, но многолетняя езда на LEA6-R как раз показывает, что чуваки из ublox прошли по всем-всем-всем граблям, которые обсуждались последние 3-4-5 страниц. Мое мнение касательно миксования gps и датчикоданных логично вытекает из этих обсуждений. Компас - ниочем. Никакой достоверной информации с него нет, не было и не будет. Акселерометры КРАСИВО РИСУЮТ МЕЛКИЕ ПОДРОБНОСТИ И МИНИМАЛЬНЫЕ РАДИУСЫ. Я вобщем только ради этого и занялся этой темой. GPS-данные в ВЧ диапазоне - просто шум, который ничего не говорит о движении автомобиля - координаты дрейфуют, шум по азимуту просто дурной по сравнению с датчиками. И дело не в точности GPS, и не в сырых данных, и даже не в герцах юблокса (привет SviMik). Дело в принципе. Спутники летящие с бешенной скоростью относительно земли и автомобиля НИЧЕГО конкретного об этом не сообщат, особено в ситуации ежесекндной смены списка видимых спутников в городе. Геодезисты еще могут както неторопливо пройтись от одной точки к другой и выколотить боле-мене точные относительно и абсолютно данные. В автомобиле, который двигается по городу повышать качество gps-приема - абсолютно тупиковый путь развития.

С другой стороны, если за основу взять треки с датчиков угловых акселерометров, то они сами-посебе дают отличные картинки. Очень красивые, четкие радиусы. С этих данных можно брать производные, и первую и вторую, и любую (gpsу превед). Фактически остается одна проблема - справится с тем что трек датчиков медленно-медленно уезжает.

Чем молодцы ublox? - они асилили фильтр калмана. Они не просто исправляют трек - они еще запоминают на сколько он был исправлен, запоминают поправочные коэффициенты, держат термостатированные таблицы [gyro bias] и [gyro scale factor]. Вот до этого местное обсуждение еще не дошло. Дальше, юблохи непрерывно следят за разницей позиций датчиков и gps и когда она достигает порога начинают сравнивать трек за последние несколько секунд. Если gps рисует правдоподобную картинку ОТНОСИТЕЛЬНЫХ перемещений похожих на датчики, то он передвигает АБСОЛЮТНЫЕ позицию и азимут в точку gps. Причем не скачком, а плавной загогулиной, чтобы юзеров не кошмарить, и субъективно-красиво выкручиваться из достадного положения.

Чем можно их объегорить - суперНЧ фильтром. Есть смысл из gps брать только самые крупные данные - отрезки прямых, с отсечением первых и последних 10%, где gps носит, можно взять кривые гигантских радиусов, в сотни метров и другие вещи, которые однозначно узнаваемы в треке от датчиков. Вот кому хватит на это терпения и сил - будет респект и уважуха.

Ура, товарищи. Извиняюсь за могабукв.
зы. группа НИОКР из огромного концерна TYCO тоже прошла по всем этим граблям. У них получилось лучше чем у юблохов, но они спеклись давно, сняли с производства чипы ДР. Еще навис и еще несколько групп делают попытки но ИМХО результаты скромны.


Собираем GPS с гироскопом и одометром Dead Reckoning GPS

Offline

#285 2013-10-10 18:03:25

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

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

Данные с датчиков, которые на фотке #282 поста: http://svimik.com/imu_array_1.rar (37 мб)
+приклеил туда магнитометр.

В архиве два файла - запись с датчиков, и запись с GPS. В данный момент они не синхронизированы (единственное, начало и конец записи делались одновременно, так что на глаз прикинуть можно).

Главное нововведение (помимо того, что датчиков теперь 3) - общением с датчиками занимается контроллер, а не комп. Так что стало возможным делать очень точные временнЫе метки.

Новый формат лога:

492643,G0,232,368,16345,-124,916,-34,16.0
492643,G1,162,777,15907,-42,-116,69,16.7
492643,G2,369,358,15761,-55,29,90,16.7
494142,MG, 119, -83, -659
494588,W1,1,65535,85

492643 - текущее точное время в микросекундах (секунды\минуты не передаю, но их легко дорисовать самому, считая переход через ноль).

G0, G1, G2 - MPU6050. Благодаря наличию трёх независимых I2C интерфейсов, данные действительно снимаются синхронно, поэтому метка времени всегда одна. Далее идут: ACCEL_X, ACCEL_Y, ACCEL_Z, GYRO_X, GYRO_Y, GYRO_Z, и температура в градусах цельсия с 1 знаком после запятой.

MG - компас HMC5983 (x,y,z). Т.к. у компаса частота ниже, то данные идут реже, чем от IMU сенсора.

W0, W1 - датчики колёс. В примере выше (1,65535,85) 1 это число импульсов, 65535 - время* с момента предыдущего импульса до момента прихода этого импульса (не до timestamp лога! см. далее), 85 - время* с момента регистрации этого импульса (значение ненулевое, т.к. мгновенно залогировано быть не может, ибо процессор мог быть занят чем-то другим).
* время здесь - единица считается за 15.25мкс.

Что нужно учитывать (далее просто будет К.О.):
- Датчики не могут быть выставлены идеально относительно друг друга. Я постарался (на фотке видно), но погрешность по всем осям всё равно будет.
- Вся эта конструкция целиком также имеет некоторые отклонения от осей автомобиля, ибо приделано на глаз.
- Часы у МК свои, так что все временные метки хотя и имеют высокое разрешение, они не обязаны совпадать с атомными часами на GPS спутниках. Более того, они вообще никак с GPS не синхронизированы.
- Данные передавались по USB-UART адаптеру, для него характерен некоторый мусор в самом начале файла (upd: в этом примере не попалось) smile Желательно ввести хоть какую-нибудь проверку каждой строки на соответствие формату.

Last edited by SviMik (2013-10-10 21:50:58)

Offline

#286 2013-10-11 21:57:16

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,640

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

SviMik wrote:

Благодаря наличию трёх независимых I2C интерфейсов, данные действительно снимаются синхронно

У них что и SCL линии синхронизированы ?
Я задумался над тем, как из этих данных вычислить 3 "калмановских" параметра,
используемых в модели ublox: $f_{T}, f_{\omega} и b_{\omega}$.
Для этого нужны радиус(ы) колес(а), независимые измерения скорости (gps?) и
скорости изменения угла поворота.
Сам я продал старую и купил новую машину, в ней нет такого сигнала
из каменного века как wheel tick roll ,
только 2 CAN шины на разделительном разъеме (CAN-Antrieb и CAN-Komfort),
и нет больше возможности считывать пакеты CAN-A с шины CAN-D (OBD-2),
а придется напрямую цепляться к пинам разъема CAN-A.
Так что LEA-6R теперь отдыхает.
Родной машинный навигатор MMI 3G (он же RNS850, и прочая) имеет собственный DR (Harman/Becker) и GPS приемник с
чипом antaris4, но там надо сильно хакать ОС QNX, впрочем я несколько продвинулся
и в этом направлении cool (частично описано в RTKlib теме).

Edit Умельцы конечно продают и для этой машины "генератор wheel tick" из сигнала с CAN,
но он стоит больше приемника LEA-6R tongue

Last edited by usm78-gis (2013-10-11 22:05:33)

Offline

#287 2013-10-12 00:09:35

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

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

У них что и SCL линии синхронизированы ?

Таки вы правы. Разница во времени может составлять до одного SCL такта. Но думаю, на этом масштабе, читателя будет волновать уже другие факторы smile

У меня ещё есть что улучшать в плане снятия данных, чтобы получать больше-быстрее-точнее, но я не буду продолжать развивать аппаратную часть, если это не будет кому-то интересно. Т.к. сам я уже сдался понять Калмана и Кватернионы, нужна помощь по части всего этого матана. От себя обещаю опубликовать схемы и прошивки под CC-BY-SA, если этот проект сдвинется с мёртвой точки. Но без решения математической части, сейчас это бесполезная груда железа, генерирующая бессмысленный поток цифр smile

Сам я продал старую и купил новую машину, в ней нет такого сигнала из каменного века как wheel tick

Я его даже не искал, мне было проще нащупать непосредственно датчик на колёсах, да и доверия к нему больше, ибо 100% не обработан никакими контроллерами, и не имеет никаких задержек.

Offline

#288 2013-10-12 23:37:07

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,640

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

SviMik wrote:

Но без решения математической части, сейчас это бесполезная груда железа, генерирующая бессмысленный поток цифр smile

Надо брать быка за рога и сразу делать калмана, так как описано u-blox'ом.
Но до этого надо предварительно разобраться с калибровкой датчиков и моделью часов.
Я так понимаю, что все I2C данные считываются STM32F4 по прерыванию таймера
и соответственно имеют метки времени часов STM32F4. Можно ли присоединть GPS к UART порту ?
NMEA будет тогда считываться по прерыванию UART и сравнивая метки времени GPS и STM32F4
можно будет составить модель дрифта часов STM32F4. Внешнее PPS прерывание пока трогать не будем smile
Скорость для модели радиуса колеса берется тогда прямо из данных GPS, вот только с углом поворота
по данным GPS у меня геометрической фантазии не хватает.

мне было проще нащупать непосредственно датчик на колёсах

Каков (примерный) радиус колеса и сколько "тиков" датчик дает на 1 оборот колеса ?

Offline

#289 2013-10-13 00:23:05

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

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

Я так понимаю, что все I2C данные считываются STM32F4 по прерыванию таймера

В данный момент это происходит в основном цикле. Хотя могу сделать и по прерыванию.

Можно ли присоединть GPS к UART порту ?

У меня в наличии только USB приёмник. Хотя учитывая неспешность интерфейсов у GPS, может с этим справится и комп?
При 4800 бод, пока GPS передаст, что у него есть, пройдёт вечность smile
Здесь PPS прерывание как раз имело бы больше смысла (и реализуется элементарно), если бы такой выход у моего приёмника был.

модель дрифта часов STM32F4

Это конечно круто! Но может попробуем пока без этого? smile

Каков (примерный) радиус колеса и сколько "тиков" датчик дает на 1 оборот колеса ?

Экспериментальным путём мы узнали, что первое (левое) колесо выдаёт 50.4 импульса на метр, а второе (правое) - 50.17. Колея автомашины - 1.41 метра.
В терминах радиуса и оборотов сейчас не скажу. Если надо - могу померить.

Offline

#290 2013-10-13 10:05:02

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

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

SviMik wrote:

Экспериментальным путём мы узнали, что первое (левое) колесо выдаёт 50.4 импульса на метр, а второе (правое) - 50.17.

Я бы предостерёг от использования этих цифр за абсолют. Они были получены на одном треке путём подбора параметров. С учётом того, что трек этот не симметричный по колёсам, вполне возможно что разница вызвана просальзыванием и наклоном колёс на поворотах.


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#291 2013-10-13 12:45:13

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,640

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

OverQuantum wrote:

Я бы предостерёг от использования этих цифр за абсолют.

Число тиков на оборот величина абсолютная, так как задается устройством железа:
числом зубов и т.п.
"Измеряемым" параметром в модели ublox
является средняя скорость, которую они и советуют брать с задних колес.
В модельном плане важнее как определить скорость изменения угла гироскопа
по данным GPS (ну или по данным для угла поворота руля).
Это чисто геометрические задачи.

Last edited by usm78-gis (2013-10-13 14:21:57)

Offline

#292 2013-10-13 22:37:13

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

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

Число тиков на оборот величина абсолютная, так как задается устройством железа

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

Кстати, попытался нарисовать схему алгоритма, и понял, что я даже не понимаю, что в каком порядке выплолнять.
Если идти по более-менее известному пути, то надо:
1. Откалибровать смещение (offset) всех осей всех датчиков. При необходимости также отмасштабировать (scale), и построить температурную таблицу этих параметров.
2. Используя немного геометрии, повернуть оси датчиков (благо они все 3-осевые) таким образом, чтобы получить виртуальные датчики, расположенные в одном направлении.
3. Объединить массивы гироскопов и акселерометров в один виртуальный гироскоп и акселерометр (алгоритмы уже более-менее известны, статьи есть, осталось реализовать).
4. Для датчиков колёс также произвести калибровку числа импульсов на пройденный путь, и расстояние между колёсами (колея).
5. Закинуть все датчики в фильтр Калмана, далее идёт какое-то волшебство, работа с кватернионами, и мы получаем текущее расположения автомобиля в пространстве.
---------(немного помечтаем, что может быть дальше, если меня досюда подбросят)---------
6. Портирование кода на конечную платформу, чтобы все вычисления выполнялись на МК и\или embedded платформе (пока положил глаз на связку STM32F4 и Raspberry Pi для высокоуровневых задач, благо обе железки достаточно дешёвые в своих областях применения).
7. Интерфейс для подключения ПК с симулятором NMEA (для совместимости с обычным софтом) и расширенным набором параметров (для своего софта).
8. Прочие интерфейсы (например, дисплей с компасом и искусственным горизонтом для украшения автомобиля), слежение через 3G, запись в чёрный ящик, и т.п.
9. Корпус (есть возможность печатать на 3D принтере), создание законченного девайса.
10. Применение для различных задач навигации и сбора информации. Маппинг поздемных парковок, тоннелей, видеомаппинг, навигация по полосам, и т.п.

Offline

#293 2013-10-13 22:49:19

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,728

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

SviMik wrote:

Но диаметр колёс - величина переменная.

Кстати, оно зависит от давления в шинах и их износа, а значит зависит от текущей погоды, скорости движения и прочего...
Другие коэффициенты скорей всего тоже плавающие во времени, так что, по хорошему, надо уметь динамически подстраиваться под текущую величину. Я так понимаю, фильтр Калмана примерно этим и должен заниматься...

Offline

#294 2013-10-14 05:30:23

chnav
Member
From: Russia / Kazakhstan
Registered: 2010-03-18
Posts: 3,193

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

SviMik
Прикол Калмана в том что для него все калибровочные коэффициенты (температурные, развороты осей, изменяющийся радиус колес и пр.) впоследствии можно вынести в алгоритм как "неизвестные", только с очень длинным low-pass фильтром. Но даже для Калмана п.п.1-4 из вашего описания, безусловно, нужны и важны для первой итерации, иначе можно годами ждать когда оно всё устаканится (а может и пойти вразнос). Но единожды задав хорошие начальные значения, в дальнейшем они могут жить своей жизнью.

Наши предыдущие споры заставили меня сесть и перечитать теорию. Раньше я постоянно сравнивал фильтр Калмана с уравниванием МНК (видимо у нас в морских нав.системах используется какая-то комбинация - часть работает на Калмане, часть на LSA). Оказалось всё намного интереснее и разнообразнее и общего у них только то, что оба минимизируют невязки. Хотя очень и очень по-разному.

В процессе поисков наткнулся на интересный проект OpenPilot для коптеров. Там довольно подробно описан алгоритм и модель при работе с гироскопами (у них фильтр работает на частоте 1000Hz), а также есть прошивка контроллера в исходниках и toolchain. Может найдёте что-то интересное для п.5 из вашего роадмапа.
http://wiki.openpilot.org/display/Doc/INSGPS+Algorithm

The OpenPilot Revolution system runs an Extended Kalman Filter to compute a 13 dimensional system state, including a complete covariance in real time. The following 13 state variables are computed:
Position in space - N axis
Position in space - E axis
Position in space - D axis
Movement velocity - N axis
Movement velocity - E axis
Movement velocity - D axis
Orientation in space - Quaternion - Q0
Orientation in space - Quaternion - Q1
Orientation in space - Quaternion - Q2
Orientation in space - Quaternion - Q3
Gyroscope drift bias - X axis
Gyroscope drift bias - Y axis
Gyroscope drift bias - Z axis

Last edited by chnav (2013-10-14 07:22:52)

Offline

#295 2013-10-14 21:17:33

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,640

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

SviMik wrote:

3. Объединить массивы гироскопов и акселерометров в один виртуальный гироскоп и акселерометр (алгоритмы уже более-менее известны, статьи есть, осталось реализовать).
4. Для датчиков колёс также произвести калибровку числа импульсов на пройденный путь, и расстояние между колёсами (колея).

Процитирую статью u-blox
"Low-Cost Sensor Fusion Dead Reckoning using a
Single-Frequency GNSS Receiver Combined with
Gyroscope and Wheel Tick Measurements":

                                 
The speed v and heading rate Hd' are derived from wheel
tick and gyroscope measurements as follows:
               
   v =  Traw*2\pi/(Tn*dt)*r*f_T     (1)
                             
    Hd' = fw (w - bw )                 (2)
with
         Traw     ...       wheel ticks measured
         r        ...       wheel radius
         Tn       ...       ticks per wheel turn
         dt       ...       time period
         w        ...       gyroscope reading

The wheel tick factor f_T accounts for changes of the wheel
radius and road surface unevenness which is the largest
error source with respect to the velocity derived from
wheel ticks. Gyroscope scaling factor fw and bias bw
consider the characteristics of the gyroscope sensor.

Например, мой фактический (статический) радиус колеса ~320мм (225/50R17), т.е. 2\pi*r ~= 2010mm
(порядка 2 метров на оборот). Число тиков Traw за период времени dt меряется, число тиков на оборот Tn известно.
Скорость v при езде по прямой (Hd'=0) можно взять из данных GPS. Таким образом определяется  фактор f_T
и его статистические параметры (среднее значение, стандартное отклонение).
С этого и стоит нАчать.

далее идёт какое-то волшебство, работа с кватернионами, и мы получаем текущее расположения автомобиля в пространстве.

Никакого волшебства, все делается тупо как описано в статье.
Фактически из (двумерного) вектора скорости v(t) + направления Hd(t) в данный момент времени t определяется путем 1 интегрирования
вектор положения (x(t),y(t)). Абсолютно элементарная задача в смысле физической модели, Калман здесь нужен только для
борьбы с "шумом".
Возможное расширение это учет данных о радиусе кривизны траектории (GPS+угол поворота руля).
Не хватает только элементов ковариационных матриц,
я думаю для начала надо будет ограничиться диагональными элементами, т.е. стандартным отклонением для нормально
распределенного шума. Которые надо брать или из документации, и/или определять экспериментально.

Last edited by usm78-gis (2013-10-16 09:06:10)

Offline

#296 2013-10-16 09:05:53

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,640

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

SviMik wrote:

Данные с датчиков, которые на фотке #282 поста

Хотелось бы все таки узнать радиус колеса, и
иметь еще 2 раздельных файла: стационарный (машина стоит) и
движение строго по прямой (с синхронизированными
по времени данными GPS)

Offline

#297 2013-10-16 09:39:08

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

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

стационарный (машина стоит)

Какая длительность нужна?
Можно взять кусок в начале, вырезать до первого сигнала датчика колеса.
Если надо больше - запишу отдельно.

Остальное - будет позже.

Offline

#298 2013-10-17 00:30:09

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,640

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

SviMik wrote:

Можно взять кусок в начале, вырезать до первого сигнала датчика колеса.

Погляжу. Вообще надо бы время в логе привести от таймера к нормальному
ISO8601 виду (пусть пока и с дрифтом).
В NMEA логе достаточно $GPGGA.

Offline

#299 2013-10-25 19:40:49

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,640

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

SviMik, нужны калибрационные данные гироскопа и акселерометра для используемого
устройства, и соответственно о системе единиц для измеренных параметров.
u-blox опубликовал на днях новый каталог v15 (u-blox_product_catalog_15.pdf), в нем есть данные о том, что можно ожидать от ublox M8 3D DR (UBX-M8030-Kx-DR)

Sensor option                Typical position error3
 Rear wheels (2D):                         12%
 Front wheels (2D):                        13%
 Four wheels (2D):                         10%
 Gyro + speedpulse (2D):                    5%
 Gyro + speedpulse + accelerometer (3D): <5%

и также требования к сенсорам

Sensor requirements
 Wheel tick:               Resolution better than 2 cm/tick4.
 Wheel info:               Free from deadband behavior and 
                           linear with wheel rotation.
 Gyro (optional): Accuracy:                       < 0.1°/s
                           Dynamic range: ±100°/s
                           Linearity:             ±0.5°/s (full scale)
 Accelerometer: Linear acceleration measurement 
      (optional)           range: ± 4g
                           Linear acceleration sensitivity: 8mg
4
   Resolution better than 50 cm/tick in combination with a yaw gyroscope.

Слово "CAN" нигде не упоминается, но фактически присутствует.
Предполагается, что некий "application processor" будет поставлять CAN данные для u-blox:

The digital data provided by the sensors is con-
verted to proprietary UBX messages by the application
processor.

ИМХО оптимистичное предположение, так как из-за явной нехватки вычислительных ресурсов
"20 Hz" достигаются откровенно жульническими методами:

Max. nav. update rate  20 Hz (1)
...
1) For update rates > 5 Hz, extrapolation techniques are applied

Harman/Becker, как я писал, тоже сами решают задачу DR, не полагаясь на ublox.

Offline

#300 2013-11-18 08:13:24

Utya
Member
Registered: 2013-11-18
Posts: 33

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

Добрый день. Проблемой комплексирование gps и других одмоетрическо-инерциальных приборов занимаюсь уже год, есть два прототипа собранных на коленке. Ядром платы является stm32f4dicovery, gps Neo-6m, и пока 3 инерциальных датчика (гир, магнитометр, аксель). Сейчас планирую делать нормальную плату логгер/анализатор/высчитыватель по подобию http://www.kickstarter.com/projects/ric … s?ref=live плюс инерциальные датчики. Хотел спросить, какой из gps модулей посоветуете, но так чтобы можно было достать и не стоил как тысяча убитых енотов? кому интересно могу скинуть апноуты для калибровки магнитометра и акселя. С гиром пока не совсем вся ясно.

Offline

Board footer

Powered by FluxBB