roboforum.ru

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

Робот управляемыя через Интернет на базе BeagleBoard

Робот управляемыя через Интернет на базе BeagleBoard

andreynech » 10 ноя 2011, 13:47

Привет всем!

Вот решил выставить на суд общественности свою (точнее нашу с приятелем) поделку - робот управляемыя через Интернет на базе BeagleBoard. Документация по ссылке, как обычно :) , не закончена но на мой взгляд достаточна для того, чтобы понять и даже повторить сделанное.

В кратце (подробно по ссылке описано), в качестве платформы использовалась готовая гусенечная платформа от Pololu. На нее поставил BeagleBoard к которой подключил камеру, WLan, и GPS приемник. Для управления моторами использовал тоже готовые регуляторы скорости, которые в свою очередь уравляются ШИМ-ами генерируемыми на BeagleBoard-е. Дополнительно подключил через I2C компас и ультразвуковой сонар.

Вот так оно сейчас выглядит:
assembled2.jpg
Робот на базе BeagleBoard


На Beagl-е видео с камеры зажимается в реальном времени в h264 на BeagleBoard-овском (точнее не OMAP-овском) DSP с использованием TI-шных кодеков и GStreamer-а. Потом передается через WLan водителю. При этом, также решены многие проблемы с файерволом и НАТ-ом.

Для удобного управления, необходимо сохранять постоянную частоту кадров. Это довольно трудно реализовать при передаче видео через Интернет т.к. пропускная способность канала постоянно меняется. Для этого я написал свою систему адаптивного видео-стриминга. Вот по этой ссылке можно посмотреть презентацию на эту тему (слайды отдельно вот тут), которую я делал на GStreamer конференции.

В добавок к видео, на водительское приложение посылаются данные с сенсоров. Это дает возможность, например, отображать текущее положение на карте, которую я скачиваю с openstreetmap.org тоже в реальном времени.

Вот так выглядит программа для "водителя":
cockpit1.jpg
Программа управления


Это реальный скриншот. Водительское приложение полностью написано с использованием OpenGL и работает на Линуксе и Виндовсе (на Маке тоже должно по-идее, но не тестировал). Модель создана в Блендере и экспортированна в стандартный .DAE (COLLADA) формат. Когда приходит очередной видео кадр, он распаковывается, из него создается текстура и накладывается на соответствующую панель в 3D cцене. Панели слева и справа предназначены для вывода дополнительной информации (типа чтоб логи непонятные ползли постоянно и т.д. :) ).

За 3D модель, хочу сказать отделное спасибо Sungreen-у (он же Николай :) )! Он откликнулся на мой зов о помощи на blender-3d.ru форуме и создал все модели. Рекомендую глянуть на ссылку - там несколько классных альтернативных версий панели управления.

Весь софт (включая рецепты для OpenEmbedded/Angstrom-а для построения образа Linux-а для флэш-карты) доступны на гитхабе. Мы сейчас в процессе переселения с gitorious.org на github, так что если чего-то не будет хватать, можно поискать в старом репозитории.

Если интересно, можно еще почитать блог про проект - http://veter-project.blogspot.com.

Буду очень рад прочитать комментарии о проекте!

З.Ы.
Только сейчас заметил, что на скриншоте водительской панели виден "капот". Это не монтаж :) , просто мы кроме танчика, эту же платформу на машинку ставили поэтому "не правильный" скриншот затесался. Попозже добавлю "правильный" (также с отрисованной картой).
Последний раз редактировалось andreynech 10 ноя 2011, 20:38, всего редактировалось 1 раз.

Re: Робот управляемыя через Интернет на базе BeagleBoard

=DeaD= » 10 ноя 2011, 13:58

Серьезный проект! :good:

Re: Робот управляемыя через Интернет на базе BeagleBoard

Grem » 10 ноя 2011, 14:16

Компас не вынесли почему? Помехи не ловит?

Re: Робот управляемыя через Интернет на базе BeagleBoard

andreynech » 10 ноя 2011, 14:51

Grem писал(а):Компас не вынесли почему? Помехи не ловит?

Я как-то даже не подумал про помехи... :pardon: . Но в глаза ничего особенного не бросилось... наверно как-то его помехи стороной обходят :)

Re: Робот управляемыя через Интернет на базе BeagleBoard

Grem » 10 ноя 2011, 17:18

С обычным компасом сверяли показания? Как узнали, что нет наводок? :)
Я то тоже могу показать рукой на север, но вот как точно... :)

Re: Робот управляемыя через Интернет на базе BeagleBoard

andreynech » 10 ноя 2011, 17:25

Grem писал(а):С обычным компасом сверяли показания? Как узнали, что нет наводок? Я то тоже могу показать рукой на север, но вот как точно...

Да вообще никак не узнал... Я ж говорю, я как-то про помехи не подумал. Грубо (из серии рукой показать :wink: ) вроде правильно показывает. Но теперь я попробую поточней проверить. Спасибо за совет! :beer:

Re: Робот управляемыя через Интернет на базе BeagleBoard

=DeaD= » 10 ноя 2011, 19:11

Такой вопрос - а зачем мега-дорогое решение типа BeagleBoard? Почему не используется более экономное и доступное типа DIR-320?
Вот местная движуха на эту тему: forum10/topic9534.html

Там и USB-порт на борту для вебки и вайфай и всё это за какие-то 1600руб.

Вместо порядка 164 евро, т.е. порядка 6900руб за:
BeagleBoard xM ~ €142
LogiLink аудио и видео grabber USB 2.0 ~ €10
TP-Link TL-WN821N USB WLan адаптер ~ €12ъ

Габариты и энергопотребление или что-то еще?

Re: Робот управляемыя через Интернет на базе BeagleBoard

andreynech » 10 ноя 2011, 20:19

=DeaD= писал(а):Такой вопрос - а зачем мега-дорогое решение типа BeagleBoard? Почему не используется более экономное и доступное типа DIR-320?
Вот местная движуха на эту тему: forum10/topic9534.html
Габариты и энергопотребление или что-то еще?


Тему про робота на основе DIR-320 я регулярно просматриваю. Хорошая идея и интересные вопросы обсуждаются.

По поводу "зачем мега-дорогое решение типа BeagleBoard" - причин несколько.
  • Габариты - в конечном итоге я хочу со всей этой историей взлететь :) . Т.е сделать квад-коптер и либо управлять через UMTS, и/или если будет медленно накрутить математики для автономности. Поэтому пытался делать максимально компактно. Например, у меня сейчас уже занято 3 USB порта: влан, видео граббер и GPS приемник. На Бигле 4 порта, т.е. я пока обхожусь без хаба, даже если ставлю две веб-камеры для стерео видения (версия с граббером и аналоговой камерой просто дешевле чем хорошая веб-камера типа Logitech 9000Pro). А отсутствие хаба это огромная экономия места!
  • Я не силен в электронике, зато хорошо умею программировать. Поэтому (ну и тоже с целью экономии места) я поставил себе цель сделать платформу, которую максимально просто собрать с минимумом паяния. Я даже решил не использовать МК т.к. на Бигле, в принципе есть все что нужно - UART, I2C, GPIO, SPI, три хардвеерных ШИМ генератора, и т.д. В результате я отделался только преобразователем напряжения ну и разъемы нужные поприпаивал.
  • DSP встроенный в OMAP чип - я планирую развиваться дальше в сторону автономности. DSP с его скоростью при этом просто незаменимая штука. Трудно найти другую платформу сейчас которая могла бы при сравнимом энергопотреблении предоставить такую производительность. Одно то, что можно видео прямо на борде жать в h264 в реальном времени уже впечатляет! Если добавить граббер который это хардвеерно делает, то это значительно увеличит габариты и стоимость.
Вобщем, если просуммировать, то комбинация цены, габаритов, производительности, энергопотребления и внешних интерфейсов меня убедила.

Re: Робот управляемыя через Интернет на базе BeagleBoard

=DeaD= » 10 ноя 2011, 20:26

andreynech писал(а):Габариты - в конечном итоге я хочу со всей этой историей взлететь

Кстати, для взлета важнее по идее вес, а не габариты, разъемы по идее вообще почти все выпаять, USB запаять проводками напрямую.

А вот 1ГГц на борту - весомый аргумент :)

Re: Робот управляемыя через Интернет на базе BeagleBoard

noonv » 10 ноя 2011, 21:29

1ГГц - это действительно круто, но недавно я прогнал свой OpenCV-ный бенчмарк на бигле и был не очень удовлетворён результатом :) придётся "курить" DSP-ник :)

Re: Робот управляемыя через Интернет на базе BeagleBoard

andreynech » 10 ноя 2011, 21:47

noonv писал(а):1ГГц - это действительно круто, но недавно я прогнал свой OpenCV-ный бенчмарк на бигле и был не очень удовлетворён результатом :) придётся "курить" DSP-ник :)


Да, это известная проблема с OpenCV. Библиотека-то изначально интеловская и для арм-а совсем не оптимизирована. Есть проект где народ пытается оптимизировать OpenCV для Бигла. Я давно уже не него не смотрел, поэтому точно не знаю в каком он состоянии. Есть еще TI-шная библиотека специально написанная для этого DSP. Но до нее у меня пока тоже руки не дошли.

Re: Робот управляемыя через Интернет на базе BeagleBoard

Angel71 » 11 ноя 2011, 03:16

для чего-то летающего может вес и проблема, а для ездящего на армах свет клином не сошелся. полно всяких миниатюрных плат с х86 совместимыми процами. via, intel (atom, atom 6xx с фпга, i3-i5) и amd. и они всё миниатюрней/легче становятся, потребляют всё меньше и меньше, а производительность растёт.

Re: Робот управляемыя через Интернет на базе BeagleBoard

andreynech » 14 май 2012, 17:22

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

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

Изображение
Изображение
Изображение

Сейчас я сижу фотографирую и замеряю все компоненты, чтобы можно было уже все абсолютно точно разместить в корпусе. Заказал 3Д принтер и надеюсь, что в начале июня смогу уже напечатать первый вариант. Буду рад услышать комментарии по поводу корпуса и вообще идеи печатать его на 3Д принтере. Подробности о проекте можно в первом сообщении и вот по вот этим ссылкам почитать: http://veter-project.blogspot.com , https://github.com/veter-team/veter/wiki/Russian-intro .

Re: Робот управляемыя через Интернет на базе BeagleBoard

andreynech » 14 янв 2013, 18:23

Мы наконец-то доделали наш 3Д-печатный корпус. Вот, что из этого получилось. Подробности можно почитать на нашем новом сайте. Все модели и весь софт - оупен сорс :-) .

Изображение
Изображение


Это пример в котором робот распознает напечатанную окружность и едет к ней. Для распознавания использовал OpenCV. В качестве сигнала для навигации использовал расстояние центра окружности от середины кадра. После этого ПИД-контроллер ведет робота к окружности, до тех пор, пока передний дальномер не покажет расстояние меньше 10см.

Это пример в котором используется алгоритм локализации Particle Filter . В качестве сенсоров использовались четыре бортовых дальномера (вперед, назад, влево и вправо), которые определяли расстояние до стен.

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

Изображение
Изображение
Последний раз редактировалось andreynech 14 янв 2013, 22:05, всего редактировалось 2 раз(а).

Re: Робот управляемыя через Интернет на базе BeagleBoard

Nesenin » 14 янв 2013, 18:38

симпатичная машинка.
http://www.robots.croc.ru/ участвуете?
какие у вас идеи\планы дальнейших работ?


Rambler\'s Top100 Mail.ru counter