понедельник, 1 октября 2012 г.

Добро пожаловать!


Знакомьтесь – робот Митя



Совершенно не предполагал, куда заведёт меня тихое домашнее помешательство на робототехнике. Ничем не обязывающий спор в офисе около года назад не только привёл к тому, что пришлось сделать робота, но и многое для меня открыл.

Оказывается, общий интерес притягивает близких по духу людей. Мысль очевидная, но она не приходила мне в голову раньше. Занимаясь своим проектом, я приобрёл новых замечательных знакомых, и это был совершенно неожиданный для меня приз. Мы объединили свои усилия и серьёзно изменили мой первоначальный проект. Как результат, робот стал проще в сборке, дешевле, при этом, как ни удивительно, функциональней. И роботов стало больше. Сейчас их три и на подходе четвёртый. Интересно, что живём мы в разных городах, а общему делу это никак не мешает.

Для тех кто хочет познакомиться с нашим проектом поближе, предлагаю почитать мою статью о том, как всё начиналось. За ней была статья про настройку среды программирования для нашего проекта, а потом про Митино зрение и слух.

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



За последние несколько месяцев нам, кажется, удалось найти очень удачные аппаратные компоненты. Прежде всего, оправдала свой выбор «тележка» робота: Pirate-4WD Mobile PlatformRoboZeka перепробовал несколько популярных платформ и признал нашу лучшей. Это не значит, что другие не подойдут, прекрасно подойдут. И гусеничные, и двухколёсные, и ещё какие угодно. Просто по нашему мнению для домашнего робота-игрушки в этой тележке прекрасно сошлись все характеристики: качество, размеры (в том числе пространство под аккумуляторы), вес, скорость. Думаю, обзор рассмотренных РобоЗекой тележек, это тема отдельной статьи.

Следующая победа: предложенный опять же РобоЗекой контроллер. Вместо используемых у меня Arduino Uno, Motor Shield, USB Host Shield и моего самодельного шилда для развязки по питанию двигателей и электроники, теперь используется Romeo-All in one Controller и Bluetooth-модуль. Я, например, использую DFRobot Bluetooth V3, совместимый по разъёму с Romeo, но можно использовать и другой. Мы отказались от тяжеловесного решения использования USB Host Shield. А функции Motor Shield реализованы в самом Romeo. Вот тут-то решение и стало проще и дешевле. Да и проводов уменьшилось – телефон теперь связан с контроллером по каналу Bluetooth.

И ещё одна находка: аккумулятор 7.4V Lipo 2200mAh Battery. Его особенность – встроенная электроника. Это Li-Pol аккумулятор, но для его заряда не требуется специального зарядного устройства – заряжать можно простым источником постоянного напряжения 9 В. Главное, чтобы ток заряда не превышал 1 А. Особенности этого аккумулятора мы обсуждали у себя в блоге.

В результате этих доработок стоимость деталей робота теперь составляет $156. Это не считая доставки из Китая. Подробнее о заказе деталей можно почитать у нас в блоге.

Теперь по поводу развития проекта. Прежде всего скажу, что проект был и остаётся открытым. Всё что мы делаем обсуждается и описывается в нашем блоге robo-hobby.blogspot.com. Исходные коды доступны на сайте проекта.

Как только появился второй робот, стало очевидно, что в каждой реализации проекта могут быть свои аппаратные особенности. Например, в первых двух роботах применялись разные телефоны, более того, были отличия в электронике роботов, а для управления в одном случае использовался геймпэд XBOX360, а в другом клавиатура. Тогда родилась следующая идея – мы выделили три уровня программного обеспечения:

  • контроллер;
  • смартфон;
  • ПК.
Программное обеспечение уровня контроллера берёт на себя управлением ходовыми двигателями и сервоприводами. Уровень смартфона отвечает за автономное поведение робота, транслирует потоковые видео и звук с камеры и микрофона телефона, а также обеспечивает связь с уровнем ПК. Программное обеспечение на ПК обеспечивает дистанционное управление роботом.

Программная и аппаратная реализация каждого уровня в разных роботах может отличаться. Например, сейчас мы используем смартфоны с ОС Android 2.3 и выше. Но почему бы не использовать аппараты iPhone, или Windows Phone? Или почему бы не использовать контроллер несовместимый с платформой Arduino? Чтобы обеспечить такую возможность, мы решили стандартизовать интерфейс между уровнями, а не реализации самих уровней.

Для связи контроллер-смартфон используется Bluetooth канал и Bluetooth-профиль Serial Port Profile. Связь на участке ПК-смартфон обеспечивается посредством UDP-датаграмм.
Но на обоих участках используется один и тот же язык текстовых сообщений. Подробно этотязык описан в нашем блоге.

Такой подход позволяет надеяться, что с увеличением числа участников проекта, появятся новые программные реализации для уровней, отличающихся аппаратно.

И здесь у меня вопрос к читателям: сможет ли робот Митя и компания стать Платформой? Мне очень хотелось бы это обсудить. В сравнении с Mindstorms наш проект дешевле (при важном условии, что у вас есть ПК и смартфон). В то же время, он безусловно сложнее. А может это и лучше для некоторых? Т.е. вопрос в целевой аудитории. К примеру, мне наш проект ближе, потому что предоставляет больше свободы для творчества. Впереди меня ждут задачи ИИ. Хотелось бы обеспечить некоторую автономность роботу, научить его ориентироваться в квартире, самостоятельно вставать на зарядку, узнавать лица, и так далее. Не буду даже развивать этот поток фантазии. Но я программист, и поэтому этот проект мне подходит. Думаю, сейчас мы очень упростили сборку робота, и именно из-за этого такая платформа больше всего подойдёт, пожалуй, нашему брату-программисту. Для большинства детей она сложна. Хотя если упростить процесс программирования робота, можно будет привлечь и детей. Но это вопрос будущего.

Ну а пока со своей стороны, я постараюсь заинтересовать как можно больше людей нашим проектом. Блога нам определённо уже не достаточно, думаю пора организовывать свой сайт. Интересно, похоже, процесс развития платформы меня захватил не меньше чем год назад процесс создания робота.

Комментариев нет:

Отправить комментарий