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 раз.
andreynech
 
Сообщения: 40
Зарегистрирован: 06 сен 2011, 17:17
Откуда: Харьков, Украина.
ФИО: Андрей

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

Сообщение =DeaD= » 10 ноя 2011, 13:58

Серьезный проект! :good:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение Grem » 10 ноя 2011, 14:16

Компас не вынесли почему? Помехи не ловит?
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1523
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия, Севастополь
прог. языки: Java, C

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

Сообщение andreynech » 10 ноя 2011, 14:51

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

Я как-то даже не подумал про помехи... :pardon: . Но в глаза ничего особенного не бросилось... наверно как-то его помехи стороной обходят :)
andreynech
 
Сообщения: 40
Зарегистрирован: 06 сен 2011, 17:17
Откуда: Харьков, Украина.
ФИО: Андрей

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

Сообщение Grem » 10 ноя 2011, 17:18

С обычным компасом сверяли показания? Как узнали, что нет наводок? :)
Я то тоже могу показать рукой на север, но вот как точно... :)
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1523
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия, Севастополь
прог. языки: Java, C

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

Сообщение andreynech » 10 ноя 2011, 17:25

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

Да вообще никак не узнал... Я ж говорю, я как-то про помехи не подумал. Грубо (из серии рукой показать :wink: ) вроде правильно показывает. Но теперь я попробую поточней проверить. Спасибо за совет! :beer:
andreynech
 
Сообщения: 40
Зарегистрирован: 06 сен 2011, 17:17
Откуда: Харьков, Украина.
ФИО: Андрей

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ъ

Габариты и энергопотребление или что-то еще?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

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 в реальном времени уже впечатляет! Если добавить граббер который это хардвеерно делает, то это значительно увеличит габариты и стоимость.
Вобщем, если просуммировать, то комбинация цены, габаритов, производительности, энергопотребления и внешних интерфейсов меня убедила.
andreynech
 
Сообщения: 40
Зарегистрирован: 06 сен 2011, 17:17
Откуда: Харьков, Украина.
ФИО: Андрей

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

Сообщение =DeaD= » 10 ноя 2011, 20:26

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

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

А вот 1ГГц на борту - весомый аргумент :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

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

Сообщение noonv » 10 ноя 2011, 21:29

1ГГц - это действительно круто, но недавно я прогнал свой OpenCV-ный бенчмарк на бигле и был не очень удовлетворён результатом :) придётся "курить" DSP-ник :)
Аватара пользователя
noonv
 
Сообщения: 586
Зарегистрирован: 21 май 2007, 22:57
Откуда: Калининград
прог. языки: C++

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

Сообщение andreynech » 10 ноя 2011, 21:47

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


Да, это известная проблема с OpenCV. Библиотека-то изначально интеловская и для арм-а совсем не оптимизирована. Есть проект где народ пытается оптимизировать OpenCV для Бигла. Я давно уже не него не смотрел, поэтому точно не знаю в каком он состоянии. Есть еще TI-шная библиотека специально написанная для этого DSP. Но до нее у меня пока тоже руки не дошли.
andreynech
 
Сообщения: 40
Зарегистрирован: 06 сен 2011, 17:17
Откуда: Харьков, Украина.
ФИО: Андрей

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

Сообщение Angel71 » 11 ноя 2011, 03:16

для чего-то летающего может вес и проблема, а для ездящего на армах свет клином не сошелся. полно всяких миниатюрных плат с х86 совместимыми процами. via, intel (atom, atom 6xx с фпга, i3-i5) и amd. и они всё миниатюрней/легче становятся, потребляют всё меньше и меньше, а производительность растёт.
Аватара пользователя
Angel71
 
Сообщения: 9231
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

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 .
andreynech
 
Сообщения: 40
Зарегистрирован: 06 сен 2011, 17:17
Откуда: Харьков, Украина.
ФИО: Андрей

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

Сообщение andreynech » 14 янв 2013, 18:23

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

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


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

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

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

Изображение
Изображение
Последний раз редактировалось andreynech 14 янв 2013, 22:05, всего редактировалось 2 раз(а).
andreynech
 
Сообщения: 40
Зарегистрирован: 06 сен 2011, 17:17
Откуда: Харьков, Украина.
ФИО: Андрей

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

Сообщение Nesenin » 14 янв 2013, 18:38

симпатичная машинка.
http://www.robots.croc.ru/ участвуете?
какие у вас идеи\планы дальнейших работ?
Аватара пользователя
Nesenin
 
Сообщения: 1324
Зарегистрирован: 26 янв 2012, 03:59
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин

След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Mail.ru counter