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. Это вообще моя первая статья, очень хочется услышать комментарии)


0 комментариев на «“CerebrumBot — проект колесного робота. Часть 0”»

  1. Ардуинка
    подключается по bluethoth к android-
    смартфону, который, в свою очередь,
    подключен к компу по wifi. — а зачем так сложно? нужно будет постоянно держать вкл. смартфон. Не проще передавать сразу на комп по ва-фай, тогда можно будет управлять роботом независимо — и с компа, и с смартфона…

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

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

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

    • про SLA — очень интересно, нужно будет попробовать 🙂

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

Arduino

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

Разделы

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

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

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

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