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

Предыстория


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

Концепция


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

Bubot - Схема

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

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


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

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


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

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

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

Автоматизация выращивания грибов на базе Raspberry Pi

Автоматизация выращивания грибов
Автоматизированная система для выращивания грибов на базе Raspberry Pi, позволяет контролировать температуру, влажность и вентилятор циркуляции воздуха.
Для этого, автор написал программное обеспечение, которое доступно на GitHub.

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

Представлена Raspberry Pi 2 Model B


Raspberry Pi 2 Model B
Неожиданно, представлена новая версия популярного одноплатного компьютера — Raspberry Pi 2.
Основные изменения у новой модели — это однокристальная система Broadcom BCM2836 с четырьмя ядрами ARMv7 Cortex-A7 частотой 900 МГц, Broadcom VideoCore IV 250 МГц, ОЗУ — 1 Гбайт.

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

ToffeeBot - робот на базе Raspberry Pi



ToffeeBot — телеуправляемый робот, собранный на базе Raspberry Pi.
Для программирования использовался Python, а именно:

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

Рободайджест - январь 2015

Disney создали робота, рисующего на песке

Лаборатория Disney Research, совместно со швейцарской инженерной школой ETH Zürich создали робота Beach Bot — для рисования рисунков на песке.

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

Установка Python 3.4 и OpenCV 3.0 на Raspbian

Решил освоить raspberry, при этом не использовать компилируемые языки, выбор невольно остановился на Python 3.
Поскольку изначально планировалось задействовать OpenCV, то на текущий момент это возможно только с OpenCV 3.0 beta которая рекомендует использовать с ней Python 3.4.
Ни того ни другого в репозитории нет и пришлось собирать из исходников, по пути осваивая данный процесс. Идущим по моим следам посвящается:


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

iRobot Create 2

iRobot logo
iRobot Create 2

iRobot Create 2 — новая робо-платформа (на базе 600-й серии роботов-пылесосов от компании iRobot), которую можно программировать, используя Arduino или Raspberry Pi, при помощи Scratch или Python.

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

Как научить робота видеть лица даже в облаках

голова робота
Для поездки на выставку Robotics Expo 2014, мы захотели научить нашего робота Элвина распознавать лица.
Это оказалось довольно просто — достаточно было воспользоваться готовым каскадным классификатором, а в поставке OpenCV уже есть готовые обученные классификаторы для детектирования лиц и глаз.

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