Я тоже обратил внимание на шум по скорости. Так и не понял куда он делся, но в треках и движении его определить не удалось. Короче он сам куда-то девается, можно забить на проблему кмк.
По поводу разницы скорости вращения. Сколько общался с установщиками и пользователями подобных систем - они как сговорились, берут вращение только с одного заднего колеса. Как правило левого т.к. им удобнее работать с осевой линией узкой дороги и левой гранью полосы на много полосных. Было еще пара маньяков, которые наоборот, нуждались в съемке красных линий и формы бордюрных камней. Они, соответственно, все перекинули за заднее правое колесо.
По поводу зимнего экстремального вождения. Пытался сбить систему с толку всякими заносами и полицейскими разворотами. DR-GPS вообще не показал разницы, что я нормально езжу, что в сплошных скольжениях. Клал треки как ни-в-чем не бывало. Возможно это потому что гироскоп более непредвзятое устройство чем датчик угла поворота рулевого колеса.
Единственный случай когда удалось “уехать” от курсора gps - это затяжной разгон с буксами при съеме пульсов с ведущих передних колес. Метров на пять наверное на чистом льду уехал вперед GPS от меня, но на первом-же повороте все отклонения пропали. Не знаю что еще придумать.
Свежак: http://www.ixbt.com/news/hard/index.shtml?16/15/55
В конфигурацию этого микроконтроллера входит процессор ARM Cortex-M0+, работающий на частоте 48 МГц, от 32 до 128 КБ флэш-памяти, высокоскоростной 12/16-разрядный АЦП, 12-разрядный ЦАП, высокоскоростной аналоговый компаратор, таймеры, интерфейс сенсорной панели и контролер USB 2.0 (host/device/OTG). В режиме исполнения программы из флэш-памяти удельное потребление микроконтроллера составляет всего 40 мкА/МГц.
Цена новинки (MKL25Z128VLK4) в корпусе LQFP с 80 выводами — $1,98 за штуку в партии из 10000 штук; платформа Freescale Freedom (FRDM-KL25Z) стоит $12,95.
Ну как бы мимо: закладываться на непонятно какой фрискейл, при наличии прям под рукой, в любом магазине ST / LPC ( / Atmel / EnergyMicro / AnalogDevices / TI / …), а также отладочных плат под них (хочешь - made in russia, хочешь - китайских), как-то странно.
А вот кортекс-м0 плюс - это любопытно, надо будет почитать…
Есть ли какие мнения об использовании программного обеспечения (и железа ?) от http://www.openpilot.org ?
EKF там вроде как имплементирован и даже документация на него есть,
STM32F10x и STM32F4 поддерживаются
(CAN драйвера правда нет, но это поправимо).
Нонче появилось весьма интересное устройство - Raspberry Pi .
Для “самоделкина” оно привлекательно тем, что есть разъем GPIO. На него заведены - UART, I2C, SPI и просто IO.
Так оно выглядит (кто еще не в курсе):
Программы писать можно на нем-же. Система находится на SD. Хочешь Линукс, хочешь Андроид (CM9).
Есть примеры работы с GPIO.
Размер устройства примерно с банковскую карту.
Хотелось бы вернуться к изначальной постановке вопроса:
к raspberry pi подключаются на I2C пины через SKU: ACC53133P http://www.seeedstudio.com/depot/grove-i2c-hub-p-851.html
гироскоп SKU: SEN11763P http://www.seeedstudio.com/depot/grove-3axis-gyro-p-750.html
и акселерометр SKU: SEN21853P http://www.seeedstudio.com/depot/twig-3axis-accelerometer-p-765.html
По usb приходят пакеты с данными об угловых скоростях всех колес с CAN
шины, и сырые GNSS данные с ublox/nvs приемника на крыше.
rtklib отлично справляется с задачей дифференциального GPS позиционирования,
для гироскопа и акселерометра есть куча программ для ардуины.
Вопрос: как бы их всех объединить ?
Начать конечно надо с базовых уравнений, на которых и будет основываться
в дальнейшем EKF.
Я тоже решил сделать нечто подобное
На скрине - навигация внутри здания (гаражи), GPS не использовался. Для теста покрутил я там машину хорошо, так что к моменту выезда из гаража накопилась приличная угловая ошибка.
Трек специально подвинул на гаражи, так что въезд и выезд получились чуть криво - это не обращать внимания
В сумме сделал 6 кругов, 3 слева и 3 справа.
Источники данных:
Гироскоп с акселерометром MPU6050.
ABS датчики на задних колёсах (подключился напрямую, так информацию можно получать оперативнее).
Дополнительные материалы:
Переходник I2C - USB (ищется на ебее за $9.89).
Плата stm32f4discovery (впрочем, подойдёт и любая ардуина).
Самодельный переходник с оптической развязкой для согласования датчиков колёс с МК.
К слову, компас (использовал HMC5883L) на нашей широте работает отвратительно. Долго и утомительно калибрую, и даже после этого при малейшем наклоне направление съезжает… А ещё и смещение уже через час чуть уползает - и по-новой калибровать надо.
Тема будет незавершённой, если не выложу трек подлиннее:
Попытка добавить в расчёты GPS приводит пока только к плохим результатам: http://svimik.com/speedsensor15.jpg
Например, здесь GPS (синим) на повороте нехило вылетел на здания. И даже при хорошей фильтрации он утащил изначально правильный трек с дороги (красным), хотя непосредственно на повороте он ещё пытался сопротивляться
Если в на колёсах стоят активные датчики, то у них токовый выход, и подключиться к ним достаточно просто.
[color=#999]Для Skoda Fabia (2003) для задних колёс это будет провод, входящий под задними сиденьями, и идущий сразу в пучок проводов под задней дверью.
Альтернативный вариант - жёлтая колодка за рулевой осью (в книжке пишут “за приборной панелью”, но не стоит понимать буквально - сняв приборную панель вы встретитесь с непреодолимой перегородкой, а лезть надо снизу).[/color]
Схема для них будет такой, достаточно врезаться в кабель, и подключить оптрон с парой резисторов:
Датчик даёт ~50.4 импульса на метр, что позволяет мерить с сантиметровой точностью
не имея возможности поправить прошивку, придется все равно делать все “from scratch”
сигнал датчиков колес все-таки надо брать с соответсвующей CAN-шины (т.е. не CAN-entertainment :),
благо STM32F4 это легко позволяет сделать. Хотя я бы (по многим причинам)
скорее предпочел STM32F103.
Не уверен, что он там есть именно раздельно для каждого колеса, в нужном виде и с достаточной частотой обновления. Напрямую я сейчас с частотой 100гц с МК отчёты о колёсах получаю, а даст ли столько ABS контроллер в CAN?
STM32F4 взял потому, что он под рукой валялся. А так, с этой задачей (считать количество импульсов и измерять интервалы) должен справиться и AVR.