Кому лимон?
думаю FPV , можно отсечь предварительным конкурсом прохождением черного коридора( где камера будет бесполезна) в виде буквы W… и только затем допускать к гонке 8)
Как будто дрон не сможет нарисовать букву автоматически, а потом передать управление ФПВшнику.
И странно Алексей, от тебя такое слышать! Как по мне задача мега сложная, будь то удаленный мозг у дрона либо стационарный на борту…
Так я же не говорил что будет лехко 😉 Задача сложная и тем паче для неподготовленного человека. Контроллеров которые умеют тупо летать по точкам не так то и много, а люди бьются над прошивками не первый год.
Но в данном случае, программить сам FC не надо, достаточно взять готовый контроллер, который в состоянии выполнять AltHold или на крайняк просто стабилизацию. Команды ему может отдавать второй контроллер (через PPM_SUM) который и будет заниматься просчетом маршрута и например анализом видео с камеры. А если будет стоять комп на земле, так тут дрон вообще простейший получается - ничего специфичного на нем не надо тягать (разве что LIDAR) - видео камеру + линк на землю.
Но в данном случае, программить сам FC не надо, достаточно взять готовый контроллер, который в состоянии выполнять AltHold или на крайняк просто стабилизацию.
от потому я за ардрон, как писал выше… 😃 у них вроде стабилизация вертикальная/горизонтальная на уровне… с ГПС-ом ток не ясно…
Я ждал, что тема про этот конкурс появится тут.
Тоже интересно было бы попробовать, но сам я финансово не потяну точно. Вот тут как-раз предложения про разделение на любителей и профи актуально, так как с профи конкурировать не возможно.
И опять же интересно было бы сделать все на наиболее простом железе без больших затрат. Приз то только один и шанс его получить минимальный (для меня точно). Из этого сразу вытекает еще одно предложение организаторам - приз давать за несколько мест (например так 1-500к.р., 2-300к.р.,3-200к.р.).
А еще в правилах есть - организатор не несет ответственности за неправильное использование кнопки останова (т.е. если судья случайно, или как еще, нажал на выключение моторов). Если аппарат дорогой и упадет даже с 1.5м, то велика вероятность повреждения оборудования. А после повреждения врятле можно будет победить, если конечно нет запасного аппарата.
Из вариантов реализации (то что сразу в голову пришло):
- как написал Sir Alex - сделать отдельный блок, который получает данные с сонаров и выдает управляющие команды в FC (причем самый простой);
- удержание высоты тоже по сонару;
- лететь по тому же сонару вдоль стенки на небольшом расстоянии (+ограничители вдоль лучей, т.е. если коптер ткнется в стену проп не пострадает);
- ну и самое сложное определение места посадки - пока только вариант с андройд телефоном и openCV или что-то вроде RaspberryPi.
mahowik - а я вот думаю, что пройти конкурс может ~60%. Кстати предложение с ар.дроном тоже нормальное, но сонары я бы ему добавил все-равно.
Тут коллега кинул идею организации такого конкурса в РБ, конечно не самим, а например, подкинув идею в тот же ПВТ в Минске. У нас же как раз свой беспилотник сделали, каково будет заткнуть их за пояс 😃 с самодельной автономно летающей моделью, которой не надо целый “грузовик” для управления.
Не пугайте людей раньше времени. Дорогу осилит идущий. Смысл этих соревнований в том чтоб заставить людей начать заниматься этими вещами. А то так и будут 1,2 энтузиаста на всю Россию, способные сделать что-то достойное внимания. Вот вам повод, собрать команду, работать, получать знания, опыт и просвещать остальных.
Вот известный ролик квадрокоптера с изменяемым шагом винта
аппаратно такая схема превосходит и в скорости подъема и спуска (там же вывернуть можно винты в обратную сторону) и маневрировании.
вот двигатели\винты www.modelmotors.cz/index.php?page=61&product=2212&…
Ну и в чем проблема удерживать высоту в коробке без ветра (стенки кругом) с высотой потолка 3 м?
Вот вам
направили в землю и считайте свою высоту над землей с точностью <1см. у них как рас дальность 3-5м.
В прошивке добавите условие на изменение скорости вращения двигателей(и\или наклона винтов) согласно измеренному значению высоты.
Мозг для квадрика можете взять какой-нибудь на AVR по типу MultiWII и прошивку его можно расковырять. Всеж открыто всеж в Arduino пишется. По Uart-USB настроите общение с ПО на вашем бортовом ПК (nvidia tegra какой-нибудь). Будете слать данные с IMU и данные от приемника (команды типо старт\стоп\экстренное отключение). С ПК же команды высокоуровневые. Не хватит мощности встроенного контроллера можете сделать прослойку на другом (arduino nano\pro mini), который будет генерить обычные сигналы как на приемнике РУ из высокоуровневых команд.
И это я описываю максимальный вариант. Есть куча способов выполнить задание меньшими средствами\силами (но и шансы на победу упадут).
По заданию мы можем мозг вынести с борта на наземный компьютер.
Предлагаю бюджетный вариант:
- квадрокоптер дешевый, способный таскать нужный груз (см ниже) и нормально висеть на месте (достаточно IMU 6dof или меньше)
- arduino nano обвещиваем ультрозвуковыми дальномерами (они дешевые) подключаем к USb хабу который подключается к
3)роутер TL-MR3020 (оч. маленький ниче не весет) с прошивкой OpenWRT с настроенной трансляцией показаний дальномеров и изображения с
4)вебкамера дешевая - ваш любимый ПК (он у вас есть ничего не стоит, розетки вам дадут) принимает данные с дальномеров и камеры и отправляет команды на движение обратно по роутеру в Arduino nano (контроллер квадракоптера от нее читает сигналы)
ВСЁ! Это штука будет летать медленно но запросто обойдет все препятствия по правой стороне до места посадки и по левой стороне обратно.
Сложного там будет только программировать нахождение места посадки. Уж за год справитесь.
а я вот думаю, что пройти конкурс может ~60%
поживем увидим 😉
Кстати предложение с ар.дроном тоже нормальное, но сонары я бы ему добавил все-равно.
Ну и в чем проблема удерживать высоту в коробке без ветра (стенки кругом) с высотой потолка 3 м?
Вот вам
направили в землю и считайте свою высоту над землей с точностью <1см. у них как рас дальность 3-5м.
В прошивке добавите условие на изменение скорости вращения двигателей(и\или наклона винтов) согласно измеренному значению высоты.
на словах очень все просто… вам хоть знаком термин ПИД регулятор? и в курсе что для поддержания хорошей стабилизации нужен цикл от 200гц и выше? Еще раз - это не машинка на колесиках. Ну да ладно, попробуйте, сами все поймете… Из своей практики, удержание высоты самая сложная атомарная фунция полетных контроллеров…
Уж за год справитесь.
ну раз уж вы все заархитектили и 100% ясно, просто и дешево, тогда зачем напутствия остальным? 😃 Пишите код, уносите приз! 😃
ну раз уж вы все заархитектили и 100% ясно, просто и дешево, тогда зачем напутствия остальным? Пишите код, уносите приз!
ГЫ-гы интересное кино намечается 😃
на словах очень все просто… вам хоть знаком термин ПИД регулятор? и в курсе что для поддержания хорошей стабилизации нужен цикл от 200гц и выше? Еще раз - это не машинка на колесиках. Ну да ладно, попробуйте, сами все поймете… Из своей практики, удержание высоты самая сложная атомарная фунция полетных контроллеров…
ну раз уж вы все заархитектили и 100% ясно, просто и дешево, тогда зачем напутствия остальным? 😃 Пишите код, уносите приз! 😃
представьте себе только, я могу контролировать высоту с достаточной для выполнения задания точностью, опираясь на свое зрение (не более 60fps) и задержки нервы\мышцы\стики\потенциометры …\изменение подъемной силы. чудеса!
давайте без обид. если вас лично задевает мой “оптимистичный настрой” в сообщениях по поводу решения этого сложного задания, я по секрету, расскажу что знаком на личном опыте с решением в несколько лет кажущихся простыми задачи. Но рас и вы не новичок в деле разработчика, то должны знать, что нужно делать что бы привлечь интерес, деньги, ресурсы и пр. Я вот ищу желающих разделить бюджет с расчетом что деньги 100% вылетят в трубу. И все же я считаю будет не оч. хорошо если все начнут ныть и забьют на этот конкурс.
не более 60fps
удали себе мозжечек и поставь ардуину и 60 будет мало 😃
давайте без обид. если вас лично задевает мой “оптимистичный настрой” в сообщениях по поводу решения этого сложного задания, я по секрету, расскажу что знаком на личном опыте с решением в несколько лет кажущихся простыми задачи. Но рас и вы не новичок в деле разработчика, то должны знать, что нужно делать что бы привлечь интерес, деньги, ресурсы и пр. Я вот ищу желающих разделить бюджет с расчетом что деньги 100% вылетят в трубу. И все же я считаю будет не оч. хорошо если все начнут ныть и забьют на этот конкурс.
Ну вопервых, я не пытался никого отговаривать, а говорил и говорю про реальные проблемы, с которыми можно столкнуться. И это уж точно не нытье, как ты тут выразился. И да, теоретиков-пустомелоВ в саД! Сколько уж тут было таких, с темами “коптер из китайского телефона и т.д.”, а на деле zero…
И все, флуд закончили, далее говорим по теме!
Но рас и вы не новичок в деле разработчика, то должны знать, что нужно делать что бы привлечь интерес, деньги, ресурсы и пр.
Уж точно не пустое бла-бла-бла. Это тока деуки любят, да и то не все 😃
удали себе мозжечек и поставь ардуину и 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см примерно? Потому что на такой высоте заканчивается “поддержка” воздушной подушкой, и это та самая высота, на которой наш коптер с примитивным регулятором по высоте висит устойчиво. Почему бы не сделать аппарат, который пользуется таким эффектом, у него даже автопилот со стабилизацией не нужен, а-ля экранолет или штука на воздушной подушке. Чтобы вписаться в условия конкурса, нужно чтобы он после отрыва от земли по ней не чиркал.
В общем, если вкурить правильные вещи, то можно нагенерить кучу вариантов и оттянуться.