Делаю OSD, автопилот и инерциалку...

SosoMan

Доброго времени суток, господа!
Я внимательно слежу за данной темой, т.к. мне очень интересен вопрос инерциальной навигационной системы и использовании ее для автопилота.
К сожалению никак не могу толком понять, что же такое OSD? Подскажете? Как я понял - это что-то типа “текст поверх основного изображения” - как меню в телевизоре. Тогда как это привязанно к остальной задаче?
Еще интересно на какой стадии работа, а то что-то давно нет никаких вестей. Понятно, что возникла проблема с отсутствием фена.
Поскольку мне работа интересна, то готов принять участие в разработке алгоритмов, если такая помощь будет необходима.

AndyBig

OSD - OnScreen Display - информация, выводимая поверх основного изображения. К остальной задаче это привязано тем, что OSD выводит в реальном времени информацию об углах, кренах, скорости, высоте и т.п. То есть, инфу, непосредственно связанную с навигацией 😃

8 days later
morion15

У когонить есть алгоритм, или выкладки как связать гироскоп и акселерометр?

Aleksey710

www.starlino.com/imu_guide.html

тут много инфы, про связь акселерометра и гироскопа.

Более сложно это делают через фильтр калмана, но тут уже стандартных решений нет. Вернее есть но они слишком общие.

morion15

Спс, по этой ссылке я уже был, там внизу они применяют типа адаптивный(обрезаный фильтр калмана). Когда то находил еще код на вии мошин+ с реализацией на калмане.
www.robochamp.ru/…/121-kalmanfilteringfordummies - типа для чайников фильтр Калмана
calypso.inesc-id.pt/FCUL/…/kalman-dan-simon.pdf - Калман на матлабе пример есть

Diman_Y

Всем привет!

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

За описание алгоритмов спасибо. Но до этого пока не дошло. Статус сейчас как и неделю назад это написание драйверов.
Остался только SPI написать. Может сегодня его и добью. 😃

Diman_Y

Вот тут советы нужны по писишному софту.

Есть два варианта управления системой:

  1. Управление через обычное радиоуправление. Есть 7 входов радиоуправления (5 управление и 1 - переключение камеры, 1 - WayPoints) и есть 5 выходов управления (в принципе сейчас я могу сделать 7, а в реальности будет все 16, но входов все равно будет только 7). В конфигурации для АП будет устанавливаться какой канал за что отвечает. Пик декодирует входы, TMS их считывает и если нужно изменяет. Недостаток, что в этом случае не будет обратного канала связи. Все передаваться будет на ОСД. Но основное приимущество, что в поле не нужен будет нетбук.

  2. Управление через XBee. В принципе это стоит дешевле чем футубовский приемник и передатчик. Джойстик подключается к компу с XBee и данные джоя передаются через XBee (можно не джой а пульт управления подцепить, он все равно как джой определяется). Будет максимум передаваться 9 пропорциональных каналов и еще 7 цифровых по 2 бита на канал (всего 4 позиции на цифровой канал). Передаваться будут только те каналы, которые меняются. Это нужно чтобы снизить количество передаваемых данных и не так часто ресетить XBee.
    Обратный канал будет передвать все параметры полета с определенной частотой (я думаю 1 Гц, но для отладки можно будет использовать и 50 Гц).

Теперь собственно вопросы.

  1. Для кого какой вариант управления более предпочтительный? И готовы ли вы перейти на обычные джойстики?

  2. Как правильно называются оси у пульта и что они означают? (ну там рудер, элеватор и т.д.) Что-то у меня с этим проблемы… 😃
    Мне это нужно чтобы сделать калибровку и назначение каналов управления на каналы джоя.

  3. Запись/воспроизведение видео на компе.
    Сейчас у меня есть возможность либо писать видео в файл и сразу выводить его на экран, или выводить на экран видео и накладывать на него данные телеметрии в реальном времени, но при этом в файл у меня писаться ничего не хочет. Собственно сам вопрос: нужна ли фича, чтобы данные телеметрии в реальном времени выводились на экран в виде графики (как очень навороченный ОСД) или достаточно будет реализовать все в виде приборов? В принципе все данные и так будут на экране, так как ОСД стоит на плате. Отличие только в качестве картинки. Если телеметрию накладывать на компе, то получается очень красиво, но одновременно писать в файл у меня не получается. 😃
    Как вариант, я могу сделать и то, и то, а народ сам будет выбирать. 😃
    Короче, нужна нам такая фича?

  4. Сейчас для задания маршрута полета и отображения полета используется Google Earth. Основной недостаток этого то, что надо иметь интернет. Все это можно сделать и на основе обычных карт, но софт тогда получится гараздо сложнее.
    Вопрос собственно в следующем: насколько неудобно пользоваться GE? Или можно его оставить и не заморачиваться?

Спасибо.

Aleksey710
  1. Я думаю оптимально было б оставить и то и то , с возможностью переключения.
    Софт подразумевается открытым?

Возможно ли?

  1. модель - приемопередатчик XBee - … - приемопередатчик XBee - модуль сопряжения - пульт (у них обычно гнездо для подключения передатчика есть)
  2. модель - приемопередатчик XBee - … - приемопередатчик XBee - модуль сопряжения - ноут - модуль сопряжения - пульт
  3. модель - модуль сопряжения- стандартный модельный приемник - … - модельный передатчик - пульт

под моделью подразумевается Ваша плата.
(футаба дорого, но есть к примеру хоббикинг на 6 каналов, он на несколько порядков дешевле, и его хватает во многих случаях)

В идеале предусмотреть большой файл конфиг, в котором каждый сможет выбирать - что ему больше нравится, или что более вероятно - что есть под рукой. Для приближения первого запуска можете сделать один конфиг под себя с реализацией функций под себя, но оставить возможность дописания и применения и других вариантов. Если будет необходимость и возможность - сообщество допишет.

  1. опять же в файл конфиге предусмотреть самостоятельное назначение пользователем функций, потомучто пульты делают мод1 и мод2, там ручки джойстиков поменяны местами.
    Если это возможно - предусмотреть вкладку калибровки.

  2. и то и то 😉
    Я так понимаю оно уже есть, т.е. написан и тот и тот вариант. Сделайте пожалуйста возможность выбора.

  3. Для приближения первого запуска можно пока оставить, а потом заняться более подробно.
    Вобще во многих местах принимает 3G и если полет идет не только с пульта но и с применением бука - то наличие GE - не самая большая проблема.

Уточняющий вопрос.
У программы управления и задания координат свой интерфейс + связь через инет с сервером GE, или интерфейс GE?

Diman_Y
Aleksey710:

У программы управления и задания координат свой интерфейс + связь через инет с сервером GE, или интерфейс GE?

Там чисто GE plugin. Т.е. это не совсем GE, но разница с GE незначительна.

Aleksey710:

Возможно ли?

  1. Немного не понятно с модулями сопряжения. Это должна быть отдельная плата на пульт. Сопряжение компа и пульта это стандартная плата. Сопряжение XBee и компа то-же стандартная плата. А вот пульта с XBee сопряжения я пока не видел.

  2. Все конфиги будут писаться/загружаться/сохраняться по полной программе со всеми калибравками. Это даже не обсуждается, как само собой разумеющееся. 😃

  3. Договорились. Будет и то, и то. По идее можно все совместить, только я пока не пойму как. 😃

Софт подразумевается частично открытым. Т.е. добавить туда можно будет все что угодно, но некоторые компоненты (соединение с платой и вообще модуль коммуникации на пример) будут закрытыми.

Aleksey710
Diman_Y:

Там чисто GE plugin. Т.е. это не совсем GE, но разница с GE незначительна.

  1. Немного не понятно с модулями сопряжения. Это должна быть отдельная плата на пульт. Сопряжение компа и пульта это стандартная плата. Сопряжение XBee и компа то-же стандартная плата. А вот пульта с XBee сопряжения я пока не видел.

модуль сопряжения - это общее название.
Сопряжение компа и пульта это стандартная плата - согласен
Сопряжение XBee и компа то-же стандартная плата - не сильно искал, но наверно такая тоже есть
А вот пульта с XBee сопряжения я пока не видел. - значит ее не хватает для полного счастья 😃 и ее нужно сделать. Опять же при необходимости. Я думаю что то типа Атмеги8 вполне справится с преобразованием PPM или PCM в уарт в передатчике и обратно - в приемнике.

Diman_Y:
  1. Все конфиги будут писаться/загружаться/сохраняться по полной программе со всеми калибравками. Это даже не обсуждается, как само собой разумеющееся. 😃

Отлично.

Diman_Y:
  1. Договорились. Будет и то, и то. По идее можно все совместить, только я пока не пойму как. 😃

а в чем проблема?

Diman_Y:

Софт подразумевается частично открытым. Т.е. добавить туда можно будет все что угодно, но некоторые компоненты (соединение с платой и вообще модуль коммуникации на пример) будут закрытыми.

Я наверно чегото не понял, а как тогда можно что-то добавить если все интерфейсы закрыты?

Diman_Y
Aleksey710:

а в чем проблема?

Я не особо большой специалист с DirectShow, поэтому потратив несколько часов на то чтобы добиться результата, решил больше не эксперементировать. Но я точно знаю, что можно и писать и дополнительную картинку на экран выводить.

Aleksey710:

Я наверно чегото не понял, а как тогда можно что-то добавить если все интерфейсы закрыты?

Да, недопоняли, или я коряво написал. 😃
А что конкретно хотите добавить?

Aleksey710
Diman_Y:

Я не особо большой специалист с DirectShow, поэтому потратив несколько часов на то чтобы добиться результата, решил больше не эксперементировать. Но я точно знаю, что можно и писать и дополнительную картинку на экран выводить.

Скорее всего да. Но непосредственно на полет это не влияет.
По этому думаю, что решение этой задачи можно отложить на потом.

Diman_Y:

Да, недопоняли, или я коряво написал. 😃
А что конкретно хотите добавить?

Я еще не видел , что есть, как оно выглядит в живую.
Но апетит появлется во время еды 😉 + Остановка - смерти подобна. Я за развитие. 😉

1 month later
Sergey70

Дмитрий напишите в каком состоянии находится проект, а то давно новостей нет.

Diman_Y

Всем Привет!

Новости пока неоднозначные.
Если кратко, то вроде все почти работает, а показать нечего. Т.е. все пока в состоянии заготовок. 😃
В принципе я планировал уже на этих выходных сделать ролик о том, что уже работает, но тут напасть одна приключилась, поэтому пока ролик откладывется. 😃

Сейчас дела вот как обстоят.
Под ДСП я сделал все драйвера так, как их надо было сделать (I2C, SPI, SD card, UART).
Сейчас SADF работает на DSP и соединена через UART с SADF Studio.
Сейчас я без проблем читаю/пишу данные в 3D акселерометр-магнитометр, пишу читаю данные из гироскопа, датчика высоты, читаю пишу в OSD, flash, MicroSD карту. Без проблем читаю и пишу данные из GPS вместе с раскодированием (использую стандартную библиотеку).
Сегодня вот промудохался с xBee, думаю к концу недели доделаю нормальное соденение по xBee между платой и приложением на PC.
PC приложение обрабатывает джойстик (сделал конфиг джойстика, интерфейс и т.д.) и записывает по идее в xBee (который будет к концу недели). Отображает все в google Erath и выводит и записывает видео.
Надо доделать отображение gps координат в ggogle и запись их в файл (или DB-) вместе с конфигурацией.
Вот думаю вставлять ли Fat32 для карточки (fat уже сделан и работает с карточкой) чтобы можно было карточку читать без платы или сделать свой формат карточки.

В принципе все устройства работают без проблем, но проблемы пока остаются, куда-же без них.
Основная проблема и пока единственная (кроме некоторых мелких косяков на плате) то, что мне так и не удалось запустить DSP в режиме загрузки без эмулятора. Даже не знаю в чем дело. В принципе все должно загружаться и работать, а вот не работает.
Если бы не эта проблема, то я уже как неделю бы собирал параметры полета моего иглвинга с гироскопа, акселерометров, GPS и всего остального на SD карту для последующего анализа и разработки непосредственно алгоритмов управления.

В кратце пока вот так.

Сейчас независимо от софта планирую делать вторую версию платы. Надо исправить кое-какие косяки, добавить некоторый функционал и т.д. В принципе по мелочи. По идее доработка платы должна занять недели три-четыре. Потом снова буду заказывать.

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

Вот как-то так. 😃

Diman_Y

Вот, написал про проблему и тут-же ее решил. 😃
Теперь все нормально стартует и грузится без эмулятора. 😃

Diman_Y

Сегодня окончательно разобрался с XBee. Все работает на ура!
Duty Cycle оказался не проблемой. Лучший способ это ресетить XBee плату. Ресет занимает порядка 100 мс + 250 мс на открытие/закрытие портов. Ресетить скорее всего придется каждые пол часа, а может и реже. 😃

1 month later
Sergey70

Дмитрий расскажите что нового в вашем проекте.

Diman_Y

Всем привет!

Новости просто хорошие. Если в кратце, то я доволен тем как все идет.

Сейчас я заканчиваю подключение всех девайсов к SADF и тогда можно уже будет говорить о непосредственно автопилоте.

Сейчас работают:

  1. ОСД. Пик который отвечает за ОСД полностью запрограммирован. Принимает команды и выводит информацию на дисплей. Частота обновления до 10 раз в секунду (максимум пока 50 герц). По моему получилось симпатично. Единственное, был неприятно удивлен что Макс7456 выдает картинку шире чем стандартный пал дисплей, но это удалось быстро забороть. В принципе видео как выглядет ОСД могу даже вечером выложить.
  2. Управление сервами. Пик, который должен управлять сервами, сейчас принимает команды от DSP и этими сервами управляет (5 каналов). Пока не сделана обработка входа для анализа команд приемника. Мне это не особо сейчас нужно, так как я планирую использовать xBee.
  3. GPS полностью готов. Т.е. встроен в SADF и выдает данные с частотой до 10 Гц (можно и больше можно и меньше, как запрограммировать). Интересно, что минимальная ошибка как раз получается при частоте 10 Гц, хотя должно быть наоборот.
  4. Вчера игрался с акселерометром и компасом. Мне понравилось. Оба встроены в SADF. Осталось сделать их на прерываниях по пинам.
  5. Сегодня додедлаю гироскоп и барометр. Завтра доделаю датчик скорости, но это надо делать на пике.
  6. Сделан, но еще не адоптирован под SADF, прием данных от джойстика. Т.е. писишное приложение передает через xBee команды джоя, а DSP их декодирует и преобразует в коды команд сервам.

Короче, как только все девайсы будут доделаны, я выложу видео как все работает. По идее должно получиться доделать до выходных, так что на выходных будем посмотреть первое приближение системы. Как минимум я выложу некоторые фотки графиков. 😃

Сейчас первый этап будет таким:

  1. ОСД работает и что-то выводит (координаты, скорость с GPS, высоту с GPS ). Можно даже сделать вывод авиагоризонта, но не точно.
  2. Работают все сенсоры, но информация с них записыватеся во флешку. Это надо чтобы проанализировать данные и потом сделать обраотку.
  3. Работает xBee и управление сервами. В принципе самолет можно будет уже запускать. 😃

Я планирую эти три пункта доделать в следующие пару недель. Но это как получится. 😃
Самое сложное будет это заставить работать плату без JTAGa. 😃

Diman_Y

Вот к стате графики с осей акселерометра (правда не синхронизированные). Скачек - это я повернул его. По идее все должно быть синхронно:

А вот проект который тестирует сам акселерометр и компас:

Sergey70

Очень хотелось бы увидеть ролик всего этого, для представления габаритов и рамеров и вооще. Хоть для меня большая часть проекта экзотически выглядит, но нечего подобного на русских ресурсах я не видел.