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


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

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

Для тех кто хочет познакомиться с нашим проектом поближе, предлагаю почитать мою статью о том, как всё начиналось. За ней была статья про настройку среды программирования для нашего проекта, а потом про Митино зрение и слух. Но самое главное, если у вас есть возможность оказаться в Москве 1 октября 2012, вы сможете посмотреть и потрогать робота Митю. Я направил заявку и получил приглашение на участие в выставке робототехники, которая проводится в рамках конференции Yet another Conference 2012. Большое спасибо компании Яндекс за эту возможность. Приглашаю всех желающих познакомиться с нашим проектом вживую, а я постараюсь ответить на ваши вопросы. Кстати, почему бы вам тоже не принять участие в выставке и не продемонстрировать свои проекты? Заявки на участие будут приниматься до 20 сентября. Это выглядит как реклама, но мне бы тоже хотелось посмотреть на подобные проекты. И чем их будет больше, тем интересней.

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

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

Следующая победа: предложенный опять же РобоЗекой контроллер. Вместо используемых у меня 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 аккумулятор, но для его заряда не требуется специального зарядного устройства – заряжать можно простым источником постоянного напряжения 8–9 В. Главное, чтобы ток заряда не превышал 1 А. Особенности этого аккумулятора мы обсуждали у себя в блоге.

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

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

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

  • контроллер;
  • смартфон;
  • ПК.

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

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

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

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

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

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

UPD:
Выставка робототехники на YaC2012 позади, вот небольшой фото/видеоотчёт. Ну и мои мысли.


0 комментариев на «“Знакомьтесь – робот Митя”»

  1. «сможет ли робот Митя и компания стать Платформой?»

    Я виделжурнал из 5ти страниц с прилагающейся крошечной микросхемкой. spy-robot.ru/
    Тема очень интересная и перспективная.

    То, что Вы пишите о стандартизации интрефейсов(для андроид, айфон, винфон) — это прекрасно.

    Если Вы дадите возможность купить все нужные запчасти у Вас на сайте, скорее всего станет проще стать Платформой.

    • Спасибо за ответ по существу. Я подумаю над вашей идеей. Вообще, в фоновом режиме я пытаюсь найти схемы монетизации для этого проекта. Ресурсы, которые я в него вкладываю, пока исключительно убыточны. Я имею в виду своё свободное время, деньги и сон 🙂

      Проект становится всё интересней и родней, поэтому мне надо придумывать как выкручиваться.

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение