Кому лимон?

Nesenin
mahowik:

удали себе мозжечек и поставь ардуину и 60 будет мало 😃

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

Обычный контроллер квадракоптера “кушает” PWM команды, что приемлемо для управления с пульта человеком. Работает на мегагерцах с прерываниями и минимальными задержками измеряемыми мкс.
ПК у нас имеет шины общения (возьмем USВ) с посылкой байт. ОС не real time. Возможны всякие задержки в работе с портом из нашего ПО (измеряется уже в мс).
Возникает вопрос, а хватит ли нам такой скорости взаимодействия (допустим запись конкртных значений PWM)?
Посему хочется сделать некий промежуточный слой, который бы принимал команду вида “движение на 5 метров под таким то углом в плоскости oxy (c фиксацией z)” и выдавал наш любимый PWM.
Есть мысли на этот счет?

Dav

Я вот читаю и жду когда вам надоест обсуждать FPV и начнеться серьезое обсуждение как решить задачу. Как верно подметил кто то - конкурс то затеян для того что бы побольше людей напрягло мозг и начало думать в правильную сторону.

А не только vis.аsta, с которым я кстати знаком 😃, и на 100% уверен что Виктор при желании сделает коптер, который задание выполнит. Весь вопрос в том, а нужно ли это ему и ему подобным? Он и так крут, и это все знают. И при необходимости он заработает за меньшее время больше днег просто продавая свои котеры с его волшебными автопилотами.

Но я также уверен, что любой хороший разработчик с базовыми знаниями схемотехники, наличием свободных вечеров и ночей, а также 2-3 тыс долларов и желанием также стать крутым может сделать дрон, который выполнит наше задание.

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

3 месяца назад мы НИЧЕГО не знали про дроностроение. Я был самый опытный в команде - собрал и поднял в воздух TREX450. Правда коллектив профессиональных программистов.

Мы купили с местной барахолки 6 роторный микрооптер (единственное что было доступно сразу). Прикрутили к нему ультразвуковой дальномер (как раз тот, что на фотке выше) и ардуину.

В итоге через месяц-полтора получили автоматический взлет-посадку и стабилизацию на высоте полуметра.

Вот запись первого успешного полета -

www.youtube.com/watch?v=ll_P2LHr5BE&feature=player…

Так как полет в помещении, то по горизонтали стабилизировали вручную (я).

Код кстати писал свежеиспеченный выпускник МАИ.

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

Реализация пока не блестящая, не отлажен PID-контроллер и по умному нужно использовать еще и фильтр кальмана, но для конкурсной задачи даже такое уже годиться.

Nesenin:

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

У нас первая реализация было совсем простой - ардуино практически ничего не делал, принимал показания с ультразвукового датчика, отсылал их черех XBee на замлю, принимал с земли уровень газа, и через UART-интерфейс flight controller’а микрокоптера говорил выше-ниже.

Мы обнаружили, что это схема не рабочая из-за больших задержек по контуру управления. Всю обработку данных, которая связана с управлением полетом (а управление высотой к этому естественно относиться 😃 нужно делать на борту.

Код управления был перенесен с “земли” на борт (на ардуину). Тогда все наконец то заработало. С земли только команды “взлететь”, “сесть”, высота, которую удерживать + загружаются на борт настройки pid-контроллера и фильтра.

mahowik
Nesenin:

Есть мысли на этот счет?

для управления вполне достаточно подавать команды через обычный последовательный порт, т.е. не надо генерить PWM в качестве управляющей команды симулируя пулт… ясное дело, что полетный контроллер должен иметь режим управления через UART в этом случае… напрмер в mwii такой режим был:

/******************* RC signal from the serial port via Multiwii Serial Protocol *********/
      //#define RCSERIAL
Dav
mahowik:

для управления вполне достаточно подавать команды через обычный последовательный порт, т.е. не надо генерить PWM в качестве управляющей команды симулируя пулт… ясное дело, что полетный контроллер должен иметь режим управления через UART в этом случае… напрмер в mwii такой режим был:

точно

mahowik
Dav:

Код управления был перенесен с “земли” на борт (на ардуину). Тогда все наконец то заработало. С земли только команды “взлететь”, “сесть”, высота, которую удерживать + загружаются на борт настройки pid-контроллера и фильтра.

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

Dav

Нас за неделю затопили вопросами (тут, на хабре, по почте), в основном дублируются. Наша недоработка, все это при наличии опыта организации таких конкурсов следовало бы продумать заранее и внести в условия конкурса 😭

Берем тайм-аут до понедельника, мы их систематизируем, и ответы опубликуем на сайте на странице ЧАВО. Я свистну, как появиться.

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

mahowik
Dav:

Берем тайм-аут до понедельника

не убегайте! 😃
есть вопрос интересный: как запилинговать место посадки после прохода припятствия? горизонтальная камера с растояния 10м и высоты ~2…2.5м (т.к. ограничены сеткой на 3м) может и не задетектить, т.е. под углом мение 20…30град… тогда придется ползать по полю как робот пылесос и сканить вертикалкой?! либо, как подсказали товарищи, по спирали от предполагаемой точки посадки сканить?

Это упрощение, но возможно стоит поднять взлетно/посадочные платформы на 30-40см и добавить боковые маркеры?

Dav
mahowik:

не убегайте! 😃
есть вопрос интересный: как запилинговать место посадки после прохода припятствия? горизонтальная камера с растояния 10м и высоты ~2…2.5м (т.к. ограничены сеткой на 3м) может и не задетектить, т.е. под углом мение 20…30град… тогда придется ползать по полю как робот пылесос и сканить вертикалкой?! либо, как подсказали товарищи, по спирали от предполагаемой точки посадки сканить?

Это упрощение, но возможно стоит поднять взлетно/посадочные платформы на 30-40см и добавить боковые маркеры?

Не убегаю. Честный ответ - пока не знаю. Я уже неделю никак не доберусь собрать OpenCV и проверить, как он будет опозновать наши посадочные площадки. Их придеться склеить из бумаги и посмотреть дистанцию “захвата”. Скорее всего придеться запрограммировать какой-то алгоритм поиска. Может самый быстрый вариант - поставить камеру на подвес, лететь по центру “половинки” полигона и ворочать камерой влево-вправо. Эксперименты покажут, их слава богу можно делать без полетов - ножками с ноутбуком и камерой в руках 😃

Делать дополнительные маркеры не хочеться, так как мы считаем задачу и так вполне решаемой, и доводить ее до уровня “собрать из кубиков Лего” ну как то совсем не хочеться. Репу придеться поморщить…

AIRDAN
mahowik:

Это упрощение, но возможно стоит поднять взлетно/посадочные платформы на 30-40см и добавить боковые маркеры?

А зачем упрощать? Задание и так не сильно то сложное.

Dav:

запрограммировать какой-то алгоритм поиска.

Правильно. А то как то не интересно без поиска.

mahowik
Dav:

Репу придеться поморщить…

ок… будем кипеть мозгАм 😃

Dav
AIRDAN:

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

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

Но тут уже предлагали для той же навигации уже 3 варианта - лидар, камера, ультразвук+правило левой руки. Интересно сравнить, что будет эффективнее.

Есть еще очень дорогой вариант - ToF камера. Можно расковырять кинект (или просто его подвесить под коптер), можно купить серьезную штуку - www.mesa-imaging.ch/index.php. Если найдется команда с богатым спонсором, всячески рекомендую 😃. С этой штукой можно высшим пилотажем в катакомбах заниматься. Очень интересно посмотреть это живьем, мы так и не удосужились ее купить, лидар приехал быстрее. Мы переписывались с производителем, можем поделиться контактами, вроде остались.

По схемам дрона все местные похоже думают про квадрики, но я в ночном бреду бредил еще про вариант бАААльшого соосника. С примитивной электроникой они стабильны как слон. Вроде в соответствующей конфе видел ссылку на большое китайское чудо за смешные деньги.

Еще меня очаровал израильский дрон - iai.co.il/…/Groups_Military_Aircraft_MALAT_Product…. Можно что-то подобное собрать круто и дешево из нескольких соосников Ж-).

Следующая мысль - знаете, почему наш коптер на видео висит на высоте 50см примерно? Потому что на такой высоте заканчивается “поддержка” воздушной подушкой, и это та самая высота, на которой наш коптер с примитивным регулятором по высоте висит устойчиво. Почему бы не сделать аппарат, который пользуется таким эффектом, у него даже автопилот со стабилизацией не нужен, а-ля экранолет или штука на воздушной подушке. Чтобы вписаться в условия конкурса, нужно чтобы он после отрыва от земли по ней не чиркал.

В общем, если вкурить правильные вещи, то можно нагенерить кучу вариантов и оттянуться.

DVE
Dav:

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

Еще мысль - для большинства любителей конкурс имхо сложноват все же. Мало кто может “просто так” уделить этому несколько месяцев full-time, или закупить оборудования на несколько килобаксов.

Предложение - сделать еще несколько более простых конкурсов “для массовости”, естественно с меньшим уровнем призов, или c чисто символическими. Разбить участников на “весовые категории”. Если цель конкурса, в популяризации имени компании и робототехники в целом, думаю это неплохо послужило бы этой задаче.

AIRDAN
DVE:

сделать еще несколько более простых конкурсов “для массовости”,

Конкурс ФПВшников. Они уже готовы. 😃

ton4eg
Dav:

Я уже неделю никак не доберусь собрать OpenCV и проверить, как он будет опозновать наши посадочные площадки. Их придеться склеить из бумаги и посмотреть дистанцию “захвата”.

А внешний вид препятствий и площадок будет известен?

VitaliyRU
DVE:

Предложение - сделать еще несколько более простых конкурсов “для массовости”, естественно с меньшим уровнем призов, или c чисто символическими. Разбить участников на “весовые категории”. Если цель конкурса, в популяризации имени компании и робототехники в целом, думаю это неплохо послужило бы этой задаче.

Это одна из самых светлых мыслей ИМХО. Даже денежный приз не особо важен. Медальку и сертификат(молодежи ведь еще работу искать) думаю будет в самый раз, надо только покумекать как его нопейсать так, что бы пригодился.
Как мысль задание решаемое на сонарах, без распознавания образов(мест посадки), или распозноваемое сонаром что еще интересней .

Dav:

По схемам дрона все местные похоже думают про квадрики, но я в ночном бреду бредил еще про вариант бАААльшого соосника.

Только не это. У него механическая стабилизация устроена так, что ветер 5 м/с(площадка же открытая?) сдует обратно на родину в китай.

Dav:

у него даже автопилот со стабилизацией не нужен, а-ля экранолет или штука на воздушной подушке

Не убивайте конкурс ЛА - не надо. На воздушной подушке задача ближе к гусинечно-колесной, там скорость/ перемещение элементарно померить. А в размерах же никто не ограничивает, штангу из карбона на метр поднял, да ищи место посадки ка на ЛА. Да и проконтролировать касание объективно не возможно практически.

Dav
ton4eg:

А внешний вид препятствий и площадок будет известен?

С препятствием все очень просто - это перегородка с проемом 2 метра. Перегородку и проем можно двигать. Чертеж площадок будет опубликован в скором времени, так что все успеют натренировать OpenCV 😃

Sevick
Dav:

Следующая мысль - знаете, почему наш коптер на видео висит на высоте 50см примерно? Потому что на такой высоте заканчивается “поддержка” воздушной подушкой

Проверьте, что у вас время цикла на ардуине не зависит от высоты. А если зависит 😉 - пните программиста

ps. а если я прав, то с того, кто придумал воздушную подушку - коробка чая (ну типа ящика пива)

FSFox
Dav:

проемом 2 метра.

Вроде же было 3 метра, и пункты посадки и взлета радиусом 3 м. Вес аппарата до 4 кг.

Я и сам уже давно задумывался сделать что-то типа системы безопасности на сонарах для коптера, что бы по коридорам нормально летать. Но пока только есть квадрик и недавно пришли сонары, я не думал их сразу на квадрике использовать - сначала на чем-то ездящем. А теперь увидев на хабре про конкурс (да и тут почитав) - так захотелось попробовать, хотя бы для себя.

высоте заканчивается “поддержка” воздушной подушкой

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

Еще касательно сонаров - хоть и сказано до 5м, но у меня получилось только такое:

  • atmega48 - полностью с нуля написал работу с сонаром по даташитам - уверенное изменение растояния до 3.5м
  • arduino uno - использовал то, что есть в примерах, и пока только 2.4м (есть конечно подозрение что из-за другого обвеса - LCD экранчик).
    Ну и еще про сонар, он то тоже требует времени на измерение, а если их будет 5 (думаю это возможный минимум) или больше. Одновременно их использовать не желательно, а то вдруг поймает сигнал от соседнего сонара.
ton4eg
Dav:

С препятствием все очень просто - это перегородка с проемом 2 метра. Перегородку и проем можно двигать. Чертеж площадок будет опубликован в скором времени, так что все успеют натренировать OpenCV 😃

Чтобы натренировать что то нужно иметь тестовую выборку, в данном случае видео с отмеченным на нем препятствиями и местом посадки, я вот пока не очень понимаю как это сделать для произвольных условий освещения…

mahowik
FSFox:

Еще касательно сонаров - хоть и сказано до 5м, но у меня получилось только такое: - atmega48 - полностью с нуля написал работу с сонаром по даташитам - уверенное изменение растояния до 3.5м - arduino uno - использовал то, что есть в примерах, и пока только 2.4м (есть конечно подозрение что из-за другого обвеса - LCD экранчик). Ну и еще про сонар, он то тоже требует времени на измерение, а если их будет 5 (думаю это возможный минимум) или больше. Одновременно их использовать не желательно, а то вдруг поймает сигнал от соседнего сонара.

2.5-3.5м на трех - пяти баксовых сонарах типа HC-SR04 (либо DYP-ME007) это еще очень даже круто, если на включенных движках 😉
я вот столкнулся с проблемой акустического шума от моторов, когда был полон энтузиазма прикрутить сонар к multiwii…