Голосовое управление освещением X10 из ROS. Часть 2

Продолжение. Начало — Часть1

Преобразование голоса в текст

Для преобразования голоса в текст будем использовать сервис Google Speech, который предоставляет API, позволяющее использовать сервис в своих приложениях.



( Читать дальше )

Голосовое управление освещением X10 из ROS. Часть 1

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

Использовалось следующее оборудование:

Компьютер (нетбук ASUS Aspire One) с операционной системой Linux
Достаточно хороший микрофон (желательно направленный)
Микроконтроллер Arduino
Приборы X10
Прибор PSC05 (двусторонний модуль обмена данными между сетью X10 и другими системами)



( Читать дальше )

Bubot: Scout — машинка с управлением через веб интерфейс без строчки кода

Давно хотел сделать машинку с камерой, управляемую через веб-интерфейс. Предлагаю вашему вниманию видео о том, как запрограммировать такую машинку, не написав при этом ни строчки кода.



Видео сделано в продолжение обзорной статьи по фреймворку для робототехники и домашней автоматизации.

( Читать дальше )

Bubot — очень легкий фреймворк на Python 3 для программирования роботов и домашней автоматизации

Предыстория


Хотелось создать своего робота, а так же автоматизировать управление светом и климатом дома. С этой целью начал изучать имеющиеся возможности. Для себя я разделил все решения на две группы: системы в которых код на контроллере выполняется в одном главном цикле (arduino, lego и т.п.) и системы состоящие из параллельно работающих процессов обменивающихся между собой сообщениями.
Интуитивно выбрал вторую группу, так как хотелось найти максимально простое решение с дружественным пользовательским интерфейсом. Из наиболее популярных представителей этого «семейства» очень понравились Microsoft Robotics Studio и ROS. Но к сожалению, на текущий момент, привязать их к конкретному железу весьма не просто, да и разобраться в них с нуля так же весьма не тривиальная задача. В итоге принял решение писать сам, но «кодить» на C очень не хотелось, Душа просила чего-нибудь попроще и полегче. В итоге выбрал Python. А учитывая, что по мимо робота и «умного дома» в голову начало лезть куча других идей, то решил сразу сделать небольшой фреймворк, в котором основной упор был бы сделан на простоту разработки.

Концепция


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

Bubot - Схема

Сеть процессов строится на базе стандартного Python модуля multiprocessing. Система обмена сообщениями и разделяемая память реализованы при помощи Redis.

Каждый Bubot имеет встроенный веб-сервер веб-сервер Tornado, который позволяет контролировать состояние, управлять роботом, на ходу менять параметры (калибровать) робота, а также закладывается возможность обмена данными между роботами.
Bubot не является системой реального времени, хотя Bubot возможно интегрировать с кодом реального времени.


( Читать дальше )

Не дай себе засохнуть (неожиданное продолжение)... или о том, как программист создавал первое в своей жизни устройство на базе Arduino

Ранее в сериале:
Тут я рассказал, как создавал два, взаимодействующих между собой, электронных модуля, для обеспечения системы автоматического полива.
Тут я раскрыл тайны их внутреннего мира, т.е. программного обеспечения.
Тут я описал один из вариантов связи моей системы с внешним миром.

Все, в принципе, хорошо и работает, но, как всегда хочется чего то ещё большего и нового. И тут, я, задумался, как это не редко случается. А не замахнуться ли мне на самого, не побоюсь этого слова, Android-а. Т.е. поручить управление системой полива аппликации написанной под, опять же не побоюсь этого слова, Android. Да! Я даже сам себя уважать стал больше. Только вот одно «НО», как в том анекдоте: «На краю пропасти, стояла конница Будёного. И всё бы было хорошо, если бы не одно „НО!“». За всё время моей программистской практики, я, несколько раз пытался освоить программирование под этого причудливого зелёного человечка по имени Android, но, то ли Eclipse был не той системы, то ли не та библиотека использовалась в этой попытке, то ли само Android устройство не соответствовало каким то новым правилам, одним словом — полный, мягко говоря и научно выражаясь — конус.


( Читать дальше )

Робот управляемый нейронной сетью


Предисловие:
Привет всем тем, кто это читает. Я хотел бы рассказать Вам об одном своем эксперименте. Собственно описанная ниже идея не нова и наверняка приходила в голову многим людям, увлекающимся данной темой. На самом деле от простых размышлений до практической реализации прошло достаточно много времени. Начать работу мешало абсолютная уверенность в том, что в голове все работает, и вроде как реализовывать все в железе не имеет смысла. Но набравшись «смелости» и приступив к делу, все оказалось намного сложнее. На пути к достижению к цели пришлось немного повозиться. Об этом и история…


Цели эксперимента:

1) Установить возможность запуска нейронной сети на контроллере Arduino.
2) Установить пригодность ее работы в поставленных условиях.
3) Определить наилучшую топологию сети.

Для решения поставленной задачи были выбраны следующие комплектующие:

( Читать дальше )

Valli - шасси с камерой


Начну с небольшой предыстории:
Работа у меня связана с частыми командировками по России матушке и чтобы, постоянно не просить родственников посмотреть за квартирой, был сконструирован данный робот.
На данный момент реализовано управление и просмотр видео через браузер с любого устройства по средствам Internet.
Что планируется доделать в ближайшем будущем:
— получать данные с гироскопа MPU-6050 о положение робота в пространстве;
— записывать на внешний накопитель фото и видео;
— подключить 3G модем, чтоб была постоянная связь с Internetом;
— настроить библиотека компьютерного зрения OpenCV для распознавания лиц и предмеров;
— сам перемещаться по площади (квартире и тд) используя датчик Ultrasonic HC-SR04 для обьезда препядствий;
— снимать через определенное время фото (видео кадр) снимок и отправлять его на яндекс или гугл диск;
— сам подьезжать на базу для подзарядки используя ИК-локатор.

Итак, что нужно нам для сборки?

( Читать дальше )

Не дай себе засохнуть (окончание)... или о том, как программист создавал первое в своей жизни устройство на базе Arduino

Ранее в сериале:
Тут я рассказал, как создавал два, взаимодействующих между собой, электронных модуля, для обеспечения системы автоматического полива.
Тут я раскрыл тайны их внутреннего мира, т.е. программного обеспечения.
Вполне можно было бы на этом и остановиться, но, вкратце, пробежавшись по командам управления «домашним» модулем, я, конечно же, указал, как в дальнейшем им можно пользоваться, но, опять же, не рассказал, как пользуюсь ими сам, а это не есть хорошо в образовательном процессе. Поэтому, и пишу, дорогие читатели, эту главу, дабы, завершить описание моей системы, на том состоянии в котором она сейчас и прибывает. Очень надеюсь на её дальнейшее развитие, о котором я обещаю вас ставить в известность на страницах этого блога.


( Читать дальше )

Лабораторный блок питания

Думаю каждый уважающий себя радиолюбитель, робототехник, электронщик и радиотехник должен иметь под рукой лабораторный блок питания. Но стоит он не мало… В таком случае можно собрать ЛБП самому! Новичкам будет не так легко, а профессионалы могут сделать это за один день работы.

( Читать дальше )

Turtle - killer turtles - игра в ROS

Начало весны, пора приниматься за недоделанные проекты.
Пока жду детали и вспоминаю ROS.
В качестве разминки (надеюсь после разминки будут более интересные проекты) — небольшая игра в ROS с использованием пакета turtlesim.



ROS — (Robot Operating System) Операционная система для роботов — это фреймворк для программирования роботов, предоставляющий функционал для распределённой работы. Хорошие мануалы (с которых я начинал изучение ROS) на русском языке на этом сайте — здесь
Последняя (восьмая) версия ROS — indigo.

( Читать дальше )