Домашний робот.
Важно: вся описываемая здесь работа, применима не только к Робосапиену, но и к вообще любому устройству, собранному Вашими руками. Скажу так - все это будет работать и на радиоуправляемом танке (как платформа перемещения), достаточно добавить к нему пару контроллеров, нет-бук и немного выдумки.
Дополнительно: устройство, описываемое здесь, очень интересное и открывает для оператора множество возможностей. Но те, кто считает себя еще пока недостаточно готовыми к таким экспериментам - есть предложение посмотреть на изготовление гораздо более простого Домашнего робота: переделанного из китайской радио-управляемой игрушки, дистанционно-управляемого по Wi-Fi и оборудованного Web-камерой домашнего робота.
В общем, на всю конструкцию было потрачено: один игрушечный робот (Robosapien v2 - 9500 руб.), один игрушечный танк (радиоуправляемый танк "warhammer" - 1500 руб.), один нетбук (ASUS eee pc 1001px d - 9500 руб.), одна web-камера (Logitech Webcam Pro 9000 - 3500 руб.). Web-камера (такая дорогая) была куплена ранее, с мыслью подключить ее к КПК, но.... подключение не удалось, камера осталась лежать пылиться, а потому - решено было ее использовать в проекте, китайский переходник USB-RS232 (на базе микросхемы PL-2303 - рублей 200), два микроконтроллера ATMega16 и один ATMega8 (рублей по 150 за штуку), две сервомашинки (они же - рулевые машинки) для радиоуправляемых моделей (тоже китайские) - по 300 рублей за штуку. Итого: 9500 + 1500 + 9500 + 3500 + 200 + 450 + 600 = 25250 рублей. Ну еще для удобной работы потребуется ноутбук (тыщ 25) или компьютер с WiFi точкой доступа. Итого - 50 000 рублей. Надо ли пояснять, что большинство закупленных предметов мной было куплено совершенно не для постройки робота - думаю излишне. Так что прямых вложений было осуществлено только на 11 000 рублей. Сам Робосапие и танк Вархаммер.
Результат эксперимента: Получен работающий механизм для развлечений, можно контролировать практически всю территорию квартиры по удаленному доступу (если есть доступ в интернет и на работе, и дома), можно в живую посмотреть - как программируются робо-технические устройства и с какими трудностями приходится сталкиваться разработчикам, полностью открытая система (можно навешивать к нему абсолютно любые устройства, которые можно подключить к персоналке), основа робота - операционная система Windows XP и х86 процессор, что позволяет составлять программы в таком замечательном компиляторе, как Microsoft VisualStudio2008, поверьте, при решении своих проблем, меньше всего хочется заниматься настройкой операционной системы (типа Linuxa). Единственный минус - требуется покупка лицухи, что впрочем особой проблемы для России не представляет (во всех смыслах).
Предварительный внешний вид устройства:
Пока такая фотография, потом поменяю на более удачную. Уж очень пестрый фон получился, да и тапочек был поднят случайно, потому и был заснят.
На следующей фотографии, показано где и что расположено:
Ну и внизу расположена гусеничная платформа от танка, и непосредственно сам каркас робота, куда все и навешено.
Ну и внизу расположена гусеничная платформа от танка, и непосредственно сам каркас робота, куда все и навешено.
Демонстрационный ролик, показывающий как оно работает:
(в ролике PARAM NAME="Play" VALUE="0", иначе крутит автоматом. Открыть в HTML)
Контроль за движением можно осуществлять через встроенную web-камеру. Команды вводятся последовательно, с контролем об выполнении предыдущей команды.
Что умеет: ездить вперед-назад, разворачиваться вправо-влево (если управляет оператор - непрерывное, если в режиме выполнения команд - пошаговое. Т.е.- проехать вперед 1-99 "шагов", повернуть - 1-99 шагов, с такой-то скоростью), качать торсом вправо-влево, наклон торса на выбранный угол (здесь и далее: под "углом" подразумевается некое число, от нуля до 1023. Это число привязано к показаниям потенциометра на валу редуктора, так что число жестко привязано к аппарату), поворот торса на выбранный угол, подъем на угол вверх-вниз правого манипулятора, подъем на угол вверх-вниз левого манипулятора, поворот на угол наружу-внутрь левой кисти, поворот на угол наружу-внутрь правой кисти, разжать-сжать на угол правый захват манипулятора, разжать-сжать на угол левый захват манипулятора, поворот на угол вправо-влево головы, подъем вверх-вниз на угол web-камеру, подъем на угол вверх-вниз дополнительной серво-машинки, включить-выключить левый (правый или оба сразу) глаз (реализовано для дополнительной сигнализации выполнения команд).
Поскольку ядром робота служит операционная система WinXP, то реализован речевой синтезатор (базовый - от Микрософта, но если поставить французский Дигало (Николай), то вполне говорит и по русски). К сожалению бесплатных речевых русскоязычных движков, на настоящий момент - нету. Но.... не думаю, что это кого-либо останавливает.
Сама управляющая роботом программа написана на C# (Си Шарп), язык не самый сложный. Задача, при проектировании, была как можно открытее и проще сделать устройство. К сожалению контроллеры программировались на Баскоме (Bascom-avr). Она так-же коммерческая, хотя для домашних экспериментаторов, вполне могли бы придумать и какой обходной маневр.
Продолжение:
Что умеет: ездить вперед-назад, разворачиваться вправо-влево (если управляет оператор - непрерывное, если в режиме выполнения команд - пошаговое. Т.е.- проехать вперед 1-99 "шагов", повернуть - 1-99 шагов, с такой-то скоростью), качать торсом вправо-влево, наклон торса на выбранный угол (здесь и далее: под "углом" подразумевается некое число, от нуля до 1023. Это число привязано к показаниям потенциометра на валу редуктора, так что число жестко привязано к аппарату), поворот торса на выбранный угол, подъем на угол вверх-вниз правого манипулятора, подъем на угол вверх-вниз левого манипулятора, поворот на угол наружу-внутрь левой кисти, поворот на угол наружу-внутрь правой кисти, разжать-сжать на угол правый захват манипулятора, разжать-сжать на угол левый захват манипулятора, поворот на угол вправо-влево головы, подъем вверх-вниз на угол web-камеру, подъем на угол вверх-вниз дополнительной серво-машинки, включить-выключить левый (правый или оба сразу) глаз (реализовано для дополнительной сигнализации выполнения команд).
Поскольку ядром робота служит операционная система WinXP, то реализован речевой синтезатор (базовый - от Микрософта, но если поставить французский Дигало (Николай), то вполне говорит и по русски). К сожалению бесплатных речевых русскоязычных движков, на настоящий момент - нету. Но.... не думаю, что это кого-либо останавливает.
Сама управляющая роботом программа написана на C# (Си Шарп), язык не самый сложный. Задача, при проектировании, была как можно открытее и проще сделать устройство. К сожалению контроллеры программировались на Баскоме (Bascom-avr). Она так-же коммерческая, хотя для домашних экспериментаторов, вполне могли бы придумать и какой обходной маневр.
Продолжение: