roboforum.ru

Технический форум по робототехнике.

Автономный дрон Robosonic MC

Автономный дрон Robosonic MC

Виктор Казаринов » 25 ноя 2012, 11:35

Некоторое время назад я начал разработку автономного дрона, записавшись на конкурс http://www.robots.croc.ru. Схема дрона еще до конца не определена. Сразу скажу, что главным для меня является не авионика, хотя без нее тут никак и никуда. Главным я считаю способность автономного робота действовать адекватно окружающей среде, выполняя заранее поставленную человеком задачу при отсутствии или ненадежной связи с базой. Действовать дрон должен в стесненных обстоятельствах - пещеры, завалы, темные захламленные коридов, когда дрон своими действиями может поднимать кучу пыли, встречать на пути мелкие ветки, натянутые веревки и т.д. Еще одним важным свойством я считаю скоерость - как физическую скорость выполнения полетного задания, так и скорость принятия решений в каждый момент времени полета.
Для решения этой (и не только этой) задачи я начал разрабатывать ОС AINIX на основе BareMetal OS. Эта ОС должна функционировать на одном или нескольких бортовых компьютерах форм-фактоа Mini-ITX. В дальнейшем планирую изменить в сторону уменьшения форм-фактор плат.
Прототип ОС содержит некоторые ошибки и недоработки. Их устанение заняло у меня немало времени и кое-что я продолжаю улучшать. Одновременно на 64 битном ассемблере я начал писать свои новые системные вызовы ОС.
Никаких OpenCV и других чудес кибернетики. Только голое железо. В основе моей ОС лежит Мегатронная сеть моей разработки. А в ее основе - онтологии.
Здесь я хотел бы кратко освещать ход процесса разработки дрона. Однако этот процесс будет небыстрым т.к. сил и времени на это у меня маловато. Работа над дроном будет происходить не в полной зависимости от требований конкурса. Возможно, что я вовсе не смогу участвовать в вышеуказанном конкурсе автономных роботов, в частности, из-за полного отсутствия опыта строительства дронов или из-за недостатка материальных и временных ресурсов. Однако разрабатывать мозги я буду в любом случае.

Re: Автономный дрон Robosonic MC

Nesenin » 26 ноя 2012, 14:01

разработка ОС под croc? ну это как то вообще не в ту степь. обсуждение forum17/topic11989.html http://forum.rcdesign.ru/f123/thread291488.html
сложность текущей задачи крок не в "действовать адекватно окружающей среде". а в постройке самих коптерах и системах управления к ним. собственно организаторы так и задумывают на ежегодные соревнования с поэтапным развитием.
если прочесать раздел http://forum.rcdesign.ru/f123/ , становится ясно что даже задача создания просто стабильного в полете коптера далеко не тривиальна. а чтоб он мог висеть в пределах 2х2х2м, такое единицы делали.
AndreiSk вот post256922.html#p256922 на улице на привязи запускает.
я в доме запускаю. поломал уже 2 пропеллера пока пытался вырулить против отраженных от стен воздушных потоков. теперь новую раму делаю с защитой по периметру. недавно только сонар прикрутил к MultiWII контроллеру. так до сих пор ни в одной официальной прошивке MultiWII еще нет алгоритма удержания высоты по нему. только не в официальных. причем есть люди http://forum.rcdesign.ru/f123/thread283 ... ost3775510 которые уже приторговывают модификациями с рабочим удержанием высоты по сонару и акселерометру. и собственно http://www.multiwii.com/forum/viewtopic.php?f=7&t=1033 тема постоянно в топе.

не тем вы занимаетесь. согласно новым условиям будут контрольные точки http://www.robots.croc.ru/conditions/ если к установленным датам не продемонстрировать решение некоторых задач, идет отсев. посему все усилия должны идти на создание платформы робота. и только на последующих конкурсах будет идти наращивания его сложности поведения ( "действовать адекватно окружающей среде").

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

притом что автор код выложил http://code.google.com/p/multiwii-alexm ... loads/list мало кто повторил.
будет стабильно висящий аппарат. потом уже можно думать куда его на основе каких расчетов двигать.

известные аппараты от MIT (с мозгами\сенсорами на борту) способны летать только так.
а другие и так летать не могут.

Re: Автономный дрон Robosonic MC

Виктор Казаринов » 26 ноя 2012, 17:19

2Nesenin: Спасибо за ссылки и советы. Однако как я писал выше, для меня конкурс - лишь повод начать разработку автономного робота такого класса. Про контрольные точки конкурса я в курсе. Смысла делать механику не понимая, сможет ли она нести требуемый груз и делать что-то с требуемыми характеристиками, не вижу прежде чем смогу для себя ответить на вопрос- смогут ли мои алгоритмы и предполагаемая производительность процессорной системы обеспечить это. В ручном режиме дроном даже и управлять не собираюсь. Я планирую, что дрон будет самообучаться как маленький ребенок или птенец - сам учиться летать, получать опыт в т.ч. учитывающий отраженные потоки от стен и земли, порывы ветра и т.д. Т.е. я вообще не буду сам писать алгоритмы удержания положения. движегния по точкам, взлета и посадки. Дрон будет этому учиться. Ввиду этого придется сразу делать максимальную защиту конструкции от падений и столкновений, насколько это будет возможным. А потом посмотрю, можно ли уменьшить эту защиту. Общение с дроном будет на специальном языке, с пом. которого буду осуществлять постановку полетного задания, получать его какие-то вопросы если что-то будет непонятно и т.д.

Re: Автономный дрон Robosonic MC

AndreiSk » 26 ноя 2012, 18:46

IMHO, если дрону будет чего непонятно, вы и чирикнуть не успеете как он шмякнется.. не тот уровень общения :roll:

Re: Автономный дрон Robosonic MC

Виктор Казаринов » 26 ноя 2012, 19:24

Если шмякнется, то да, такое на уровне рефлексов должен выучить. Это как вождение автомобиля. Только после получения опыта можно поддерживать движение на "автомате". Я про такой период обучения дрона способности летать писал выше. Но даже самый опытный водитель спрашивает у пассажира- заказчика поездки, куда свернуть, если не знает. Я про вопросы дрона во время получения полетного задания писал. Если что непонятно ему особенно если он в уме будет проигрывать сценерий полета, то может задать вопросы как быть в разных ситуациях, обнаруженных им в таких воображаемых сценариях.
За рамками конкурса Крок если дрон будет выполнять задание и будет затрудняться в выборе следующего действия, то по связи также можно давать советы. Это при том, что он уверенно будет держаться в воздухе, не сталкиваться с другими предметами.

Re: Автономный дрон Robosonic MC

Aseris » 26 ноя 2012, 21:40

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

Re: Автономный дрон Robosonic MC

Виктор Казаринов » 26 ноя 2012, 23:09

В моем проекте обучение и обычная деятельность дрона не разделены, т.е. обучение идет непрерывно на основе деятельности и ее результатов. Виртуальная среда - это задача тоже немаленькая, как вы сами заметили.

Re: Автономный дрон Robosonic MC

Виктор Казаринов » 02 мар 2013, 11:56

В настоящее время я пишу на ANSI C в стиле, приближенном к ассемблеру, онтологичемкий движок, который находится в основе 3D зрения и других модулей. Суть в том чтобы этот движок позволял не только реконструировать глубину поверхностей наблюдаемой сцены, но и идентифицировать то, что видит, и что особенно важно - классифицировать это, т.е. на наиболее возможном для него уровне абстрагировать наблюдаемую часть мира.
Начинаю тестировать движок на простых структурах - одномерных последовательностях. Затем перейду к 2- мерным (изображениям, а затем либо к стерео-изображениям, либо восстановлению 3D из последовательности моно-изображений движущегося дрона. Вскоре узнаю, может ли мой движок самообучаться, абстрагировать и предсказывать.
http://robots.croc.ru/heroes/detail.php ... se_id=1606
Параллельно исследую Raspberry PI. Производительность ее не очень. Возможно, придется их ставить несколько на борту беспилотного робота. Особая трудность возникла при вводе и первичной обработке изображений до 30 fps в реальном времени.
Остальные заказанные для дрона детали еще идут из Китая.
Как я писал выше, возможно, я отсеюсь на ближайших КТ конкурса. Но работу над дроном по возможности продолжу в любом случае.

Re: Автономный дрон Robosonic MC

Nesenin » 02 мар 2013, 13:14

вопрос производительности многие решили так forum102/topic11627.html весит 200гр.

Re: Автономный дрон Robosonic MC

Виктор Казаринов » 02 мар 2013, 15:24

2Nesenin: Я ранее примерно так и собирался делать. Но тут не все так просто. Ставил я нечто подобное на наземного робта (Mini-ITX). Даже операционку написанную на 64 битном ассемблере под x86-64 BareMetal OS переделал под себя, о чем я написал выше.
Решение с NUC тянет за собой неплохой кусок батареи, что также нужно учитывать, а в итоге неизвестно, что будет эффективнее - два, три или даже четыре Raspberry весом по 40 г каждая и током потребления 0,7 А 5 вольт или NUC. Еще не поздно поставить NUC. Но хотелось бы чтобы такая плата была помощнее. Все-таки NUC не для мощных расчетов, а для медиа целей (киношки смотреть да по инету бродить). Думаю, что и NUC будет сильно не хватать, если бездумно пользоваться обычными решениями - виндой, чужими либами.
Задачи, которые я хотел бы распределить на отдельные процессоры, хорошо распараллеливаются.
Под NUC скорее всего придется гексу делать. А я хотел бы остаться в рамках более слабого класса - квадрокоптеров.

Re: Автономный дрон Robosonic MC

Nesenin » 02 мар 2013, 17:45

у AndreiSk летает на квадре post264975.html#p264975
Изображение
потребление NUC 20вт. мое ПО чувствует себя под виндой на NUC очень хорошо. к том же драйвер камеры( xtion live) используют ресурсы встроенного видеоядра. это в сравнении с моим стационарным компом, где старая видеокарта не поддерживает новые функции из openGL и большая часть расчетов ложится на слабенький ЦП.
под всякие ARM компы даже подключить камеры уже проблема. не работают не тянут.

Re: Автономный дрон Robosonic MC

Виктор Казаринов » 02 мар 2013, 19:22

Я не против x86 бортовых компьютеров. Даже очень за. Большое спасибо за ссылки и картинки. По роду своей деятельности я где-то с 1988 года продавал и программировал x86 компьютеры. Поэтому напробовался всякого железа и софта.
Из вышеприведенного фото от AndreiSk видно, что с NUC получилась летающая этажерка. Как бы бегемотик с маленькими крылышками. Вот от такого результата я хотел бы уйти по возможности. AndreiSk, кстати, обещал перейти на гексу. Со всеми вытекающими последствиями.
И еще. Мне кажется, что человечество немного "зажралось", если можно так выразиться. Если раньше хватало 2 килобайта для кода и программ и 256 тысяч операций в секунду, то сейчас компы потребляют гигабайты оперативки и гигагерцы тактовой частоты. Но при этом очень часто большая часть всех ресурсов уходит в "песок".

Re: Автономный дрон Robosonic MC

Nesenin » 02 мар 2013, 21:05

гекса под i7 на miniITX. бегемотики с крылышками это норма. см видео выше котера. и как удалось выяснить это платформа http://www.asctec.de/uav-applications/r ... c-pelican/
можно крылышки и увеличить и компоненты не башней поставить, а по раме раскидать, но габариты растут.
за стены\дверные проемы цепляет.

по поводу "зажрались". люди они ленивые и не терпеливые. они хотят результат с минимальными тратами сил и времени. причем как создатель так и потребитель. и в этом есть смысл.
если что-то человек делает большими усилиями чем мог бы, то либо на это есть веские причины со стороны "среды" вроде требований по отказоустойчивости, скоро действию и пр. либо особые душевные порывы вроде интереса или "любви":)
я из интереса освоил изготовление печатных плат фоторезистивным методом, запаял схемы с AVRками и программировал на assembler...а сейчас я использую arduino причем с их средой программирования.
для квадрокоптера я из интереса покупал комп с процем ARM на android. чуть покопался и плюнул ибо сложно это все осваивать.
сейчас делаю свое любительское ПО для роботов на labview. использую готовые функции.вот пример с машинным зрением post255799.html#p255799 но все равно лень даже это делать. ибо мотивации со стороны нет. а мотивации внутренней не хватает. жду "душевных порывов". :roll:

Re: Автономный дрон Robosonic MC

AndreiSk » 02 мар 2013, 22:01

Виктор Казаринов писал(а):Из вышеприведенного фото от AndreiSk видно, что с NUC получилась летающая этажерка. Как бы бегемотик с маленькими крылышками. Вот от такого результата я хотел бы уйти по возможности. AndreiSk, кстати, обещал перейти на гексу. Со всеми вытекающими последствиями.

Да, этажерка получилась, там над плоскостью моторов плата NUC, а над ней-мой контроллер, который и управляет Назой. Думаю переделать, чтобы снизить высоту.
По поводу гексы и i7:

Это не автоматический полет. Это я miniitx/i7 (работающий пк), посадил на гексу и рулил с ру-пульта.
Идея была проверить, что там отвалится... ничего в целом не отвалилось. 5 минут туда сюда летало.
Ну и заодно поснимал видео с борта гексы.
Пока гексу не использую в экспериментах, квадрик он полегче будет, не так страшно :)
Сегодня доэкспериментировался, посадил квадрик с нуком в сугром со свежевыпавшим снегом :sorry:
Квадрик закопало, НУК весь в снегу, просушил, только биос сбросился,
а я там по дури сделал fast boot, так что не войдешь в биос. Пришлось все разбирать,
вытаскивать SSD и только тогда вошел в биос. Сейчас думаю что этажерку можно и пониже сделать :roll:

Re: Автономный дрон Robosonic MC

Виктор Казаринов » 04 мар 2013, 10:17

2AndreiSk: на фото вашего коптера вверху на этажерочке - это камера такая большая или дальномер? Если камера , то какую модель используете, если не секрет? С моим слабеньким Raspberry PI еще не всякая камера совместима. И FPS делает мало. Борюсь с такими мелочами. Хотя это не мелочи вовсе. Если же делать стереозрение, то помимо чисто вычислительных появляется проблема синхронизации по времени записи левого и правого кадра т.к. дрон может двигаться, например, разворачиваться. И тогда левый и правый кадры будут показывать совершенно разные участки поля зрения. Продаются стерео веб камеры. Но я их не пробовал и думаю, что через один USB порт 30х2 кадров совсем не сможет захватывать моя система.


Rambler\'s Top100 Mail.ru counter