CerebrumBot - проект колесного робота. Часть 0

Введение

Этот робот будет моим первенцем, так что основной целью проекта является просто построение робота. Потому, что Робот, и это круто )

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

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

Железо

Основные компоненты заказаны на сайте DealExtreme: китайский клон arduin-ы, bluethoth shield,motor shield и трехколесное шасси (два ведущих и одно переднее). Ардуинка подключается по bluethoth к android-смартфону, который, в свою очередь, подключен к компу по wifi. В общем вполне себе стандартная схема.

Теперь о датчиках. К arduino подключен ультразвуковой дальномер и энкодеры. Android снабжает робота данными с гироскопа/акселерометра/компаса и картинкой с камеры.
А камера-то не простая… Точнее, камера сама по себе самая обыкновенная смартфонная, но в поле её зрения есть лазерная линия (как сделать линию описывается в этом посте), лазер направлен по углом к земле, так что, чем дальше препятствие от робота, тем ниже линия — вот и получается дальномер.

Программное обеспечение

Я люблю программировать на C#, поэтому, я сначала собирался использовать Microsoft Robotics Developer Studio, но документации по ней я нашел очень мало. Поэтому буду использовать ROS, она показалась мне проще и понятнее, чем MRDS. И, к тому же, на RoboCraft очень много хороших статей по ней. Для публикации в ROS данных с датчиков смартфона есть программа ROS Android Sensor Driver( она же передает картинку с камеры). Arduino тоже можно сделать узлом в ROS, используя библиотеку rosserial, которая позволяет передавать сообщения ROS через последовательный порт в arduino и обратно — только на смартфоне нужно будет сделать проброс порта с bluethoth по wifi. Вся логика будет реализовываться на компьютере. Единственное исключение — система поиска wifi: если связь потеряна, смартфон остановит робота и заставит рыскать в поисках сети.

На этом пока все. Дожидаюсь получения деталей и попутно настраиваю и разбираюсь с ROS и подключаю к ней смартфон.

P.S. Это вообще моя первая статья, очень хочется услышать комментарии)

Комментарии (8)

RSS свернуть / развернуть
+
0
Отличное начало! ждём продолжение )
avatar

noonv

  • 8 марта 2013, 19:42
+
0
Спасибо)
avatar

NomenNotum

  • 8 марта 2013, 20:07
+
0
Ардуинка
подключается по bluethoth к android-
смартфону, который, в свою очередь,
подключен к компу по wifi. — а зачем так сложно? нужно будет постоянно держать вкл. смартфон. Не проще передавать сразу на комп по ва-фай, тогда можно будет управлять роботом независимо — и с компа, и с смартфона…
avatar

Nemo

  • 10 марта 2013, 16:11
+
+1
Причин две:
1) bluetooth шилд для ардуины легче достать
2) хочется использовать камеру и датчики смартфона
avatar

NomenNotum

  • 10 марта 2013, 16:59
+
0
я думаю управлять своим роботом с андроид сматфона по. wi-fi, но никогда не писао под андроид, может у Вас есть некоторие наработки? А я могу помочь, если будет нужно, с низким уровнем
avatar

Nemo

  • 10 марта 2013, 18:33
+
+1
Спасибо за предложение) У меня пока никаких наработок нет, но я копаю в сторону SLA. Отличное подспорье. Совсем не надо учить Java и сложный Android API. С этой прослойкой можно программировать почти на любом интерпретируемом языке (Python, Ruby, JavaScript), пользуясь простым API
avatar

NomenNotum

  • 10 марта 2013, 19:08
+
0
про SLA — очень интересно, нужно будет попробовать :)
avatar

noonv

  • 10 марта 2013, 19:44
+
+1
На хабрахабре есть хорошие статьи: habrahabr.ru/post/146020/
avatar

NomenNotum

  • 10 марта 2013, 19:12

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.