суббота, 27 июня 2009 г.

Собственный робот в Robotics Studio. Создание 3D-модели

Каждый, кто имел дело с Microsoft Robotics Studio, наверняка задавался вопросом: как же подключить к этой мощнейшей среде разработки собственного робота? Этот вопрос был одним из первых и для меня, ведь в России не так-то просто - да и далеко не дешево, купить готовый комплект для роботостроения, даже самые популярные, такие как Lego Mindstorms NXT или iRobot Create.

Задача, нужно признать, на первый взгляд кажется практически неразрешимой. Лишь поизучав как следует Robotics Studio, и разобравшись в ее «внутренностях», почти через год после первого знакомства - мне удалось эту задачу решить. Конечно, нужно будет немножко попотеть, но зато потом все разнообразие и мощь средств MS RS можно будет использовать в собственном роботе!

Прежде всего, отдельный интерес представляет создание 3D-модели для симуляционной среды. Ведь симуляционная среда - это мощнейший инструмент для тестирования программы управления роботом, который позволяет отладить программу вне зависимости от наличия каких-либо ошибок в аппаратной части. Зная, что в самой программе ошибок нет, всегда проще отловить аппаратные ошибки - которые, между прочим, распознаются обычно гораздо труднее программных!

Один из способов создания собственных 3D-моделей роботов описан на форумах Microsoft (на английском). В этой заметке я постараюсь пересказать и проиллюстрировать данный способ.

Итак, прежде всего, потребуется Google SketchUp. Это программа для создания 3D-зарисовок, распространяемая абсолютно бесплатно. Самая свежая на момент написания заметки версия - 7.0, весит 32.7Мб. Иногда, если вы работаете через прокси-сервер с определенными настройками, скачать эту программу не получится - я столкнулся с такой проблемой и не смог скачать SketchUp с работы. Проблема, впрочем, касается вообще всех Google-программ. Это называется "перемудрили" :)

В остальном проблем при скачивании и установке возникнуть не должно. Кучу готовых моделей можно скачать и поизменять, опять же, с Google.

После создания 3D-зарисовки необходимо ее экспортировать в требуемый формат. Для этого необходимо скачать специальный плагин для экспорта в Wavefront obj-файл. В обсуждении на форуме предлагается скачать плагин от Jim Foltz, он нам как раз подходит. На всякий случай я выложил его и на собственном сервере: http://robot.paccbet.ru/download/obj_export_1.1.rb.

Копируем этот файл в каталог C:\Program Files\Google\Google SketchUp 7\Plugins\, или соответствующий, если SketchUp установлен в каком-то другом месте. После перезапуска SketchUp в его меню появится новый пункт:

Перед экспортом не забудьте нажать на свою модель правой кнопкой мыши и выбрать во всплывающем меню пункт Explode.

К сожалению, возможности данного плагина довольно скромные. Многого он не экспортирует. Поэтому, если нужно, чтобы модель была цветной, нужно подкорректировать ее в программе Blender. Она тоже бесплатная. Версия для Windows 32bit весит около 10Мб. Импортируем наш obj-файл в Blender:

Далее добавляем цвета, и снова экспортируем в obj-файл. Файлов в итоге получается два: .obj и .mtl, последний содержит материалы и цвета для нашей модели.

В общем-то, на этом процесс почти закончен: осталось лишь скопировать эти два файла в <путь к MS Robotics Studio>\store\media, и можно использовать в качестве файла механики наш obj-файл. После этого студия сгенерирует еще bos-файл, который также можно будет использовать.

Как именно использовать созданные модели в студии - я расскажу в одной из следующих заметок. А пока попробуйте хотя бы разобраться со SketchUp и Blender: это тоже потребует времени. В общем, Google вам в помощь, и до скорых встреч!

суббота, 30 мая 2009 г.

Роботы-трансформеры

Попросили меня на днях пропиарить новый фильм - Трансформеры-2. Не люблю боевики, а вот сама идея роботов-трансформеров меня привлекла: решил написать небольшую статейку...

Для большинства трансформеры - это детские игрушки, и может быть детские мультики. На самом деле все так и начиналось, но сейчас.. Сейчас трансформеры - это целая игровая вселенная, с собственной историей, и лихо закрученным сюжетом. Разновидностей трансформеров очень много, а делятся они в основном на две половины - добрых автоботов, и жаждущих все разрушить десептиконов (на самом деле все посложнее, если интересно, читайте, например, на Википедии).

Кстати, трансформеры, как и всякая популярная игровая линия, используются повсеместно. Например, у меня вызвали особенное умиление две абсолютно работоспособные поделки: трансформер-флэшка, и трансформер-компьютерная мышь :)

Эти штуковины - уже в продаже на буржуйских сайтах.

Впрочем, есть "функциональные" трансформеры, которые продаются и в России. Например, забавный трансформер mp3-плеер продается на Роботронике.

А вот пример использования идеи трансформеров в рекламе. Смешно и классно! Смотрим:

Но на самом деле это все конечно антураж. А мне хотелось бы обсудить применимость идеи трансформеров в реальных условиях. Нужны ли нам настоящие роботы-трансформеры, и реально ли их изготовить уже сегодня?

Ответ на последний вопрос - ДА. Потому что сегодня такие роботы УЖЕ изготовлены.

Вот вам абсолютно реальный робот-трансформер японского изготовления WR-07, демонстрировавшийся на соревнованиях Robo-One еще в 2007м году. Он умеет ходить на двух ногах, трансформируется в колесного мобильного робота, ездит, и трансформируется обратно. Весь процесс - на видео. Смотреть обязательно!

Занятная поделка, не правда ли? :) Она такая не одна, есть и другие аналоги...

Что касается применимости и полезности роботов-трансформеров в современном мире: здесь прежде всего нужно выяснить, какие могут быть у таких роботов преимущества перед обычными. И какие у них бывают недостатки. Начнем с преимуществ:

  • Возможность работы в различных условиях окружающей среды. К примеру, робот, который умеет только ходить, может перемещаться по пересеченной местности, однако по ровной дороге он будет двигаться, по сравнению с обычным мобильным роботом, крайне медленно. Робот-трансформер же может успешно работать и на пересеченной местности, и по ровной дороге будет развивать достаточную скорость.
  • Расширение функционала. Разные формы могут предоставлять роботу разные функции, причем, как правило, наличие специализированной формы означает, что робот-трансформер будет выполнять 2 вида работ лучше, чем обычный робот, но спроектированный на совмещение этих двух видов работ при наличии лишь одной формы.
  • Маскировка. Одна из форм робота может быть маскировочной. Часто трансформеры - это обычные машины, самолеты, и т.п. - ничем не отличающиеся от обычных машин и самолетов, однако стоит им трансформироваться в боевую форму...

Недостатки:

  • Труднее проектировать и производить. Робот-трансформер является всегда более сложным механизмом, чем аналогичные роботы, выполненные отдельно.
  • Требует больше энергии. Функция трансформации не несет никакой полезной нагрузки, кроме изменения текущей формы. Трансформация сама по себе является в некотором роде лишним процессом, причем порой весьма сложным. А на сложный процесс нужна энергия, причем много.
  • Выше вероятность неисправности. Любая программа, которая содержит больше кода, чем надо - сложнее отлаживается. Сложнее ее поддерживать. С механикой все еще хуже. Например, поломка в процессе трансформации делает робота-трансформера, насколько это можно себе представить, абсолютно недееспособным.

Казалось бы, роботы-трансформеры идеальны для применения, например, в космических программах. Ведь там нужен и стационарный робот-бур для пробы грунта, и робот-планетоход для обследования местности, и, возможно, робот-корабль, для быстрого перелета на другие участки планеты. Это очень удобно...

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

И здесь дело не только в экономии массы. Дело в надежности. Космические полеты просто обязаны быть надежными. Возможно, в будущем космические роботы-трансформеры будут иметь место быть, однако - не сегодня...

Другая важная отрасль, где могут применяться роботы трансформеры (догадались уже по пункту "Маскировка"?) - военная. Помните, тендер агентства DARPA на создание полиморфного робота Chembot выиграл iRobot (подробнее в блоге dxdt.ru)? Видимо, уже наболело использовать роботов в антитеррористических операциях. Причем роботов, которые бы смогли проникнуть внутрь захваченного здания незаметно. Маскировка в случае робота-трансформера эту функцию вполне может выполнить. Ну и какие-то точечные военные операции, там бы тоже замаскированный робот не помешал...

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

Тематические ссылки:

  • Русский трэйлер фильма Трансформеры-2 - спецэффекты на высоте. И девочка красивая... Сходить чтоли на премьеру, в самом деле? :)
  • Трансформации - Отрывки, касающиеся трансформации роботов, из первой части фильма. Мне понравилось, например, как робот-инсектикон в мобильник трансформировался :)
  • Миры. "Трансформеры". Технологии - статья с сайта mirf.ru, много истории и особенностей мира трансформеров. Познавательно.
  • Transformer Zone - зона трансформеров. Инструкции, какой трансформер выбрать лучше всего, чем руководствоваться при выборе. Фотогалерея, инструкции по трансформациям.

понедельник, 25 мая 2009 г.

Спам! Клавиатурный робот «Спам»

После перерыва, продолжаю ведение блога...

Начну, пожалуй, с описания интересного и очень эффектного робота на платформе Lego NXT, который был представлен на Красноярской ассамблее 2009 «Технологии будущего» командой Техникума нефти и газа г. Ачинска во главе с Александрой Андрюшевич (ее материалы я публиковал и раньше, см. сообщение Кубок по робототехнике Краснодарского края).

Их собственное презентационное видео - сделано мастерски и с юмором, рекомендую посмотреть:

Итак, данный Lego-робот выбивает рисунки из псевдографики на клавиатуре. Вы скажете, это не слишком практичный робот? А мне кажется, с некоторыми изменениями, идею вполне можно использовать, например, для брутфорса паролей.

Впрочем, не в практичности дело. Хобби - это радость, эмоции, юмор. А данный клавиатурный монстр всего этого дает в достатке!

Рассмотрим реализацию...

Робот «Спам» имеет 3 «пальца» для нажатия на клавиши. Один из этих »пальцев» может быть позиционирован горизонтально, и предназначен для нажатия на различные кнопки строки цифровых символов.

Второй «палец», расположенный сбоку от клавиатуры - предназначен для нажатия на кнопку Shift. Последний, сверху - жмет Enter.

Кроме того, как вы, наверное, заметили, используется два процессора Lego. Число выполняемых действий у Спама довольно приличное, поэтому портов одного процессора для управления всеми частями робота - просто не хватило...

Процессоры связаны друг с другом по bluetooth. Эта функция предусмотрена заранее производителем, поэтому необходимо лишь настроить связку - и вот уже можно вызывать процедуры, зашитые в соседний процессор.

Один из процессоров отвечает за два основных «пальца» - позиционируемый, и Enter, - и в него же зашит текст, который нужно набить. Вспомогательный процессор ответственнен за нажатие Shift'а.

Вот еще пара фотографий: