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

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

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

Diman_Y
Sergey70:

Очень хотелось бы увидеть ролик всего этого…

Ролик просто ОСД я могу выложить, но хочется все-же доделать авиагаризонт и тогда выолжить. 😃

Вчера разбирался с гироскопом. Был удивлен, что оказывается мемс гироскопы это вовсе не гироскопы, а измерители угловой скорости. В итоге придется интегрировать все это дело. Ошибка там приемлимая, так что нормальный горизонт сделать получится. 😃

AndyBig
Diman_Y:

Был удивлен, что оказывается мемс гироскопы это вовсе не гироскопы, а измерители угловой скорости.

Ничего другого и не могло быть 😃 Не моторчик же с маховиком внутри чипа 😃

Diman_Y:

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

Я бы на это не надеялся.

Diman_Y
AndyBig:

Я бы на это не надеялся.

Нет, блин. Сейчас все брошу…

AndyBig
Diman_Y:

Сейчас все брошу…

Не надо бросать, просто надо добавить датчики для горизонта 😃 Те же пиро.

Diman_Y
AndyBig:

просто надо добавить датчики для горизонта Те же пиро.

В принципе, у меня на плате и так стоит три 3D датчика. Зачем еще что-то? 😃

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

AndyBig
Diman_Y:

В принципе, у меня на плате и так стоит три 3D датчика. Зачем еще что-то?

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

Diman_Y
AndyBig:

Для длительного замера абсолютного положения нужны и датчики абсолютного положения.

GPS? 😃