Кому лимон?
удали себе мозжечек и поставь ардуину и 60 будет мало 😃
вот этот вопрос сейчас волнует больше всего.
я про разный уровень команд, скорости обработки и взаимодействия всяких вычислительных частей .
Обычный контроллер квадракоптера “кушает” PWM команды, что приемлемо для управления с пульта человеком. Работает на мегагерцах с прерываниями и минимальными задержками измеряемыми мкс.
ПК у нас имеет шины общения (возьмем USВ) с посылкой байт. ОС не real time. Возможны всякие задержки в работе с портом из нашего ПО (измеряется уже в мс).
Возникает вопрос, а хватит ли нам такой скорости взаимодействия (допустим запись конкртных значений PWM)?
Посему хочется сделать некий промежуточный слой, который бы принимал команду вида “движение на 5 метров под таким то углом в плоскости oxy (c фиксацией z)” и выдавал наш любимый PWM.
Есть мысли на этот счет?
Я вот читаю и жду когда вам надоест обсуждать FPV и начнеться серьезое обсуждение как решить задачу. Как верно подметил кто то - конкурс то затеян для того что бы побольше людей напрягло мозг и начало думать в правильную сторону.
А не только vis.аsta, с которым я кстати знаком 😃, и на 100% уверен что Виктор при желании сделает коптер, который задание выполнит. Весь вопрос в том, а нужно ли это ему и ему подобным? Он и так крут, и это все знают. И при необходимости он заработает за меньшее время больше днег просто продавая свои котеры с его волшебными автопилотами.
Но я также уверен, что любой хороший разработчик с базовыми знаниями схемотехники, наличием свободных вечеров и ночей, а также 2-3 тыс долларов и желанием также стать крутым может сделать дрон, который выполнит наше задание.
Для затравки. Мы начали двигаться тем путем, как написал Nesenin.
3 месяца назад мы НИЧЕГО не знали про дроностроение. Я был самый опытный в команде - собрал и поднял в воздух TREX450. Правда коллектив профессиональных программистов.
Мы купили с местной барахолки 6 роторный микрооптер (единственное что было доступно сразу). Прикрутили к нему ультразвуковой дальномер (как раз тот, что на фотке выше) и ардуину.
В итоге через месяц-полтора получили автоматический взлет-посадку и стабилизацию на высоте полуметра.
Вот запись первого успешного полета -
www.youtube.com/watch?v=ll_P2LHr5BE&feature=player…
Так как полет в помещении, то по горизонтали стабилизировали вручную (я).
Код кстати писал свежеиспеченный выпускник МАИ.
Могу посмотреть, сколько у него времени заняло.
Реализация пока не блестящая, не отлажен PID-контроллер и по умному нужно использовать еще и фильтр кальмана, но для конкурсной задачи даже такое уже годиться.
про разный уровень команд, скорости обработки и взаимодействия всяких вычислительных частей
У нас первая реализация было совсем простой - ардуино практически ничего не делал, принимал показания с ультразвукового датчика, отсылал их черех XBee на замлю, принимал с земли уровень газа, и через UART-интерфейс flight controller’а микрокоптера говорил выше-ниже.
Мы обнаружили, что это схема не рабочая из-за больших задержек по контуру управления. Всю обработку данных, которая связана с управлением полетом (а управление высотой к этому естественно относиться 😃 нужно делать на борту.
Код управления был перенесен с “земли” на борт (на ардуину). Тогда все наконец то заработало. С земли только команды “взлететь”, “сесть”, высота, которую удерживать + загружаются на борт настройки pid-контроллера и фильтра.
Есть мысли на этот счет?
для управления вполне достаточно подавать команды через обычный последовательный порт, т.е. не надо генерить PWM в качестве управляющей команды симулируя пулт… ясное дело, что полетный контроллер должен иметь режим управления через UART в этом случае… напрмер в mwii такой режим был:
/******************* RC signal from the serial port via Multiwii Serial Protocol *********/
//#define RCSERIAL
для управления вполне достаточно подавать команды через обычный последовательный порт, т.е. не надо генерить PWM в качестве управляющей команды симулируя пулт… ясное дело, что полетный контроллер должен иметь режим управления через UART в этом случае… напрмер в mwii такой режим был:
точно
Код управления был перенесен с “земли” на борт (на ардуину). Тогда все наконец то заработало. С земли только команды “взлететь”, “сесть”, высота, которую удерживать + загружаются на борт настройки pid-контроллера и фильтра.
все правильно, для режимов стабилизации процессинг данных с сенсоров должен крутится на борту, т.к. существенное увеличение задержки (сдвиг фаз) между снятием raw данных с сенсоров и формированием управляющего воздействия (на моторы) приведет к невозможности стабилизации пид контроллера (осцилляциям и перерегулированию), либо уменьшения его коэф. до уровня при котором стабилизация не возможна вообще…
Нас за неделю затопили вопросами (тут, на хабре, по почте), в основном дублируются. Наша недоработка, все это при наличии опыта организации таких конкурсов следовало бы продумать заранее и внести в условия конкурса 😭
Берем тайм-аут до понедельника, мы их систематизируем, и ответы опубликуем на сайте на странице ЧАВО. Я свистну, как появиться.
Для подогрева публики - нам прислали уже 11 персональных и 5 командных заявок на участие.
Берем тайм-аут до понедельника
не убегайте! 😃
есть вопрос интересный: как запилинговать место посадки после прохода припятствия? горизонтальная камера с растояния 10м и высоты ~2…2.5м (т.к. ограничены сеткой на 3м) может и не задетектить, т.е. под углом мение 20…30град… тогда придется ползать по полю как робот пылесос и сканить вертикалкой?! либо, как подсказали товарищи, по спирали от предполагаемой точки посадки сканить?
Это упрощение, но возможно стоит поднять взлетно/посадочные платформы на 30-40см и добавить боковые маркеры?
не убегайте! 😃
есть вопрос интересный: как запилинговать место посадки после прохода припятствия? горизонтальная камера с растояния 10м и высоты ~2…2.5м (т.к. ограничены сеткой на 3м) может и не задетектить, т.е. под углом мение 20…30град… тогда придется ползать по полю как робот пылесос и сканить вертикалкой?! либо, как подсказали товарищи, по спирали от предполагаемой точки посадки сканить?Это упрощение, но возможно стоит поднять взлетно/посадочные платформы на 30-40см и добавить боковые маркеры?
Не убегаю. Честный ответ - пока не знаю. Я уже неделю никак не доберусь собрать OpenCV и проверить, как он будет опозновать наши посадочные площадки. Их придеться склеить из бумаги и посмотреть дистанцию “захвата”. Скорее всего придеться запрограммировать какой-то алгоритм поиска. Может самый быстрый вариант - поставить камеру на подвес, лететь по центру “половинки” полигона и ворочать камерой влево-вправо. Эксперименты покажут, их слава богу можно делать без полетов - ножками с ноутбуком и камерой в руках 😃
Делать дополнительные маркеры не хочеться, так как мы считаем задачу и так вполне решаемой, и доводить ее до уровня “собрать из кубиков Лего” ну как то совсем не хочеться. Репу придеться поморщить…
Это упрощение, но возможно стоит поднять взлетно/посадочные платформы на 30-40см и добавить боковые маркеры?
А зачем упрощать? Задание и так не сильно то сложное.
запрограммировать какой-то алгоритм поиска.
Правильно. А то как то не интересно без поиска.
Репу придеться поморщить…
ок… будем кипеть мозгАм 😃
Короче походу всё сходиться к одной схеме реализации проекта. Разнообразия в принципах не будет. Будет разнообразие в программном коде (чего в принципе изначально желали организаторы - конкурс программистов)
Ну на самом деле даже если все примут плюс-минус одинакавые схему для дрона (квадрик + комплект сенсоров, который уже обсуждали), действительно все сведется к битве алгоритмов. В этом случае придеться сделать специальную номинацию - кто выполнил задание на самом дешевом дроне 😃 Правда я бы не сказал, что это нас (организатора) сильно разочарует и будет скучно.
Но тут уже предлагали для той же навигации уже 3 варианта - лидар, камера, ультразвук+правило левой руки. Интересно сравнить, что будет эффективнее.
Есть еще очень дорогой вариант - ToF камера. Можно расковырять кинект (или просто его подвесить под коптер), можно купить серьезную штуку - www.mesa-imaging.ch/index.php. Если найдется команда с богатым спонсором, всячески рекомендую 😃. С этой штукой можно высшим пилотажем в катакомбах заниматься. Очень интересно посмотреть это живьем, мы так и не удосужились ее купить, лидар приехал быстрее. Мы переписывались с производителем, можем поделиться контактами, вроде остались.
По схемам дрона все местные похоже думают про квадрики, но я в ночном бреду бредил еще про вариант бАААльшого соосника. С примитивной электроникой они стабильны как слон. Вроде в соответствующей конфе видел ссылку на большое китайское чудо за смешные деньги.
Еще меня очаровал израильский дрон - iai.co.il/…/Groups_Military_Aircraft_MALAT_Product…. Можно что-то подобное собрать круто и дешево из нескольких соосников Ж-).
Следующая мысль - знаете, почему наш коптер на видео висит на высоте 50см примерно? Потому что на такой высоте заканчивается “поддержка” воздушной подушкой, и это та самая высота, на которой наш коптер с примитивным регулятором по высоте висит устойчиво. Почему бы не сделать аппарат, который пользуется таким эффектом, у него даже автопилот со стабилизацией не нужен, а-ля экранолет или штука на воздушной подушке. Чтобы вписаться в условия конкурса, нужно чтобы он после отрыва от земли по ней не чиркал.
В общем, если вкурить правильные вещи, то можно нагенерить кучу вариантов и оттянуться.
все местные похоже думают про квадрики
Мы же вроде как в теме Квадрокоптеры и другие многороторные системы , так что местному населению ближе к серцу квадрики 😃
Для подогрева публики - нам прислали уже 11 персональных и 5 командных заявок на участие.
Еще мысль - для большинства любителей конкурс имхо сложноват все же. Мало кто может “просто так” уделить этому несколько месяцев full-time, или закупить оборудования на несколько килобаксов.
Предложение - сделать еще несколько более простых конкурсов “для массовости”, естественно с меньшим уровнем призов, или c чисто символическими. Разбить участников на “весовые категории”. Если цель конкурса, в популяризации имени компании и робототехники в целом, думаю это неплохо послужило бы этой задаче.
сделать еще несколько более простых конкурсов “для массовости”,
Конкурс ФПВшников. Они уже готовы. 😃
Я уже неделю никак не доберусь собрать OpenCV и проверить, как он будет опозновать наши посадочные площадки. Их придеться склеить из бумаги и посмотреть дистанцию “захвата”.
А внешний вид препятствий и площадок будет известен?
Предложение - сделать еще несколько более простых конкурсов “для массовости”, естественно с меньшим уровнем призов, или c чисто символическими. Разбить участников на “весовые категории”. Если цель конкурса, в популяризации имени компании и робототехники в целом, думаю это неплохо послужило бы этой задаче.
Это одна из самых светлых мыслей ИМХО. Даже денежный приз не особо важен. Медальку и сертификат(молодежи ведь еще работу искать) думаю будет в самый раз, надо только покумекать как его нопейсать так, что бы пригодился.
Как мысль задание решаемое на сонарах, без распознавания образов(мест посадки), или распозноваемое сонаром что еще интересней .
По схемам дрона все местные похоже думают про квадрики, но я в ночном бреду бредил еще про вариант бАААльшого соосника.
Только не это. У него механическая стабилизация устроена так, что ветер 5 м/с(площадка же открытая?) сдует обратно на родину в китай.
у него даже автопилот со стабилизацией не нужен, а-ля экранолет или штука на воздушной подушке
Не убивайте конкурс ЛА - не надо. На воздушной подушке задача ближе к гусинечно-колесной, там скорость/ перемещение элементарно померить. А в размерах же никто не ограничивает, штангу из карбона на метр поднял, да ищи место посадки ка на ЛА. Да и проконтролировать касание объективно не возможно практически.
А внешний вид препятствий и площадок будет известен?
С препятствием все очень просто - это перегородка с проемом 2 метра. Перегородку и проем можно двигать. Чертеж площадок будет опубликован в скором времени, так что все успеют натренировать OpenCV 😃
Следующая мысль - знаете, почему наш коптер на видео висит на высоте 50см примерно? Потому что на такой высоте заканчивается “поддержка” воздушной подушкой
Проверьте, что у вас время цикла на ардуине не зависит от высоты. А если зависит 😉 - пните программиста
ps. а если я прав, то с того, кто придумал воздушную подушку - коробка чая (ну типа ящика пива)
проемом 2 метра.
Вроде же было 3 метра, и пункты посадки и взлета радиусом 3 м. Вес аппарата до 4 кг.
Я и сам уже давно задумывался сделать что-то типа системы безопасности на сонарах для коптера, что бы по коридорам нормально летать. Но пока только есть квадрик и недавно пришли сонары, я не думал их сразу на квадрике использовать - сначала на чем-то ездящем. А теперь увидев на хабре про конкурс (да и тут почитав) - так захотелось попробовать, хотя бы для себя.
высоте заканчивается “поддержка” воздушной подушкой
Вот из-за этой самой подушки желательно в стенках внизу наделать отверстий.
Так как летая дома в закрытом помещении очень заметно влияние вихревых потоков, а еще и срывы с них - когда коптер прикидывается лягушкой (проваливается и потом поднимается).
Еще касательно сонаров - хоть и сказано до 5м, но у меня получилось только такое:
- atmega48 - полностью с нуля написал работу с сонаром по даташитам - уверенное изменение растояния до 3.5м
- arduino uno - использовал то, что есть в примерах, и пока только 2.4м (есть конечно подозрение что из-за другого обвеса - LCD экранчик).
Ну и еще про сонар, он то тоже требует времени на измерение, а если их будет 5 (думаю это возможный минимум) или больше. Одновременно их использовать не желательно, а то вдруг поймает сигнал от соседнего сонара.
С препятствием все очень просто - это перегородка с проемом 2 метра. Перегородку и проем можно двигать. Чертеж площадок будет опубликован в скором времени, так что все успеют натренировать OpenCV 😃
Чтобы натренировать что то нужно иметь тестовую выборку, в данном случае видео с отмеченным на нем препятствиями и местом посадки, я вот пока не очень понимаю как это сделать для произвольных условий освещения…
Еще касательно сонаров - хоть и сказано до 5м, но у меня получилось только такое: - atmega48 - полностью с нуля написал работу с сонаром по даташитам - уверенное изменение растояния до 3.5м - arduino uno - использовал то, что есть в примерах, и пока только 2.4м (есть конечно подозрение что из-за другого обвеса - LCD экранчик). Ну и еще про сонар, он то тоже требует времени на измерение, а если их будет 5 (думаю это возможный минимум) или больше. Одновременно их использовать не желательно, а то вдруг поймает сигнал от соседнего сонара.
2.5-3.5м на трех - пяти баксовых сонарах типа HC-SR04 (либо DYP-ME007) это еще очень даже круто, если на включенных движках 😉
я вот столкнулся с проблемой акустического шума от моторов, когда был полон энтузиазма прикрутить сонар к multiwii…