RC-машинка управляется нейронной сетью


нейронная сеть для управления машинкой
После прохождения прошлогоднего курса машинного обучения (Stanford Machine Learning class от Andrew Ng), David Singleton решил создать какой-нибудь интересный проект с использованием полученных знаний. В качестве такого проекта он выбрал проект, который приводился в качестве примера на лекциях по машинному обучению — машину, управляемую при помощи нейронной сети.
Но так как хаммера под рукой не оказалось — он взял за основу простую радиоуправляемую машинку, смартфон под управлением Android и, разумеется, Arduino, которая использовалась для передачи команд с ПК на пульт управления машинкой.

блок-схема системы:

Решение простое и оригинальное — ардуино подключается к разобранному пульту ДУ и эмулирует нажатие кнопок пульта (через опто-развязку):

Нейронная сеть — многослойный перцептрон:
входной слой — 25344 нейрона (для обработки видеокадра с разрешением 176×144) (+bias)
скрытый слой — 64 нейрона (+bias)
выходной слой — 4 нейрона (команды: вперёд, назад, вправо, влево)
Для обучения использовался алгоритм обратного распространения ошибки(backpropagation)

видео работы:

проект открыт (BSD-лицензия) и исходники выложены на гитхабе (приложение под Android, Java-драйвер и скетч Arduino):
https://github.com/dps/nnrccar

Ссылки
How I built a neural network controlled self-driving (RC) car!

По теме
Бесплатные онлайн-курсы по машинному обучению и ИИ
Нейронная сеть — введение
Нейронная сеть — обучение ИНС с помощью алгоритма обратного распространения
Пример работы самоорганизующейся инкрементной нейронной сети SOINN


0 комментариев на «“RC-машинка управляется нейронной сетью”»

  1. Вы конечно извените но как эта фиговина отличаеться от простых «follow» роботов на фоторезисторах (извените если не так) которые тоже тупо ехали по начерченой линии?

    • по сути действия — ничем и не отличается 🙂
      главное отличие в сути используемой технологии, которая позволит после обучения ехать не только по начерченной линии 😉

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

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
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение