четверг, 16 июля 2009 г.

Всеядный робот EATR

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

Я уже писал о различных источниках энергии для роботов в сообщении Автономные роботы. Генераторы. А на днях один из читателей, скрывающийся под ником Shred, скинул отличную ссылку на очень интересную статью на SecurityLab. Речь идет о проекте робота, который может получать энергию для своего существования, добывая ее из окружающей среды. Цитирую:

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

Самое интересное - это извлечение энергии из любой органики. Я понял это так, что робот будет способен питаться даже травой. Учим роботов выращивать траву (или водоросли, что актуально для космического корабля), - и вуаля, проблема энергии решена :) Еще цитата, оттуда же:

Fox News подчеркивает, что термины "биомасса" и "другие органические источники энергии" не обязательно ограничиваются растительными материалами, поскольку трупы людей и животных содержат большое количество энергии и могут находиться в местах ведения боевых действий.

А вот это уже явно военное применение... Действительно: военные роботы в идеале должны работать в плохо освещенных местах (например, лес), на больших расстояниях от ближайших «розеток». Так что для них явно не подходят солнечные батареи или ветряные генераторы. А вот питание биомассой для такого робота - решение идеальное. Как вы уже наверное догадались, DARPA в этом проекте учавствует по полной программе!

Давайте рассмотрим поближе конструкцию данного робота:

Механизм «питания» осуществляют следующие компоненты робота:

  • Бензопила (а точнее, как я подозреваю, электропила) - отделяет от целевого объекта небольшие куски, пригодные для «питания».
  • Манипулятор с захватом - помещает готовые куски в емкость для топлива, внутри которой происходит извлечение энергии.
  • Стерео камеры - предназначены для распознавания объектов питания, и позиционирования манипулятора.
  • Поворотная башня - позволяет избежать «подруливания» к объекту, благодаря чему возможно эффективное функционирование робота в лесах и других захламленных большим числом препятствий пространствах.

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

Кроме того, поворотная башня в принципе может нести оружие, например пулемет. А бензопила может использоваться как прекрасное оружие для «рукопашного» боя.

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

Робот-шахматист и пара мыслей об ИИ

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

А вот это видео видели, наверное, далеко не все! Настоящий андроидный робот, который играет в шахматы. Смотрим:

Видео не ново, просто впервые попалось на глаза... На youtube есть еще даже лучшее: youtube.com/watch?v=chyR1ZxoiA4 - здесь роботы играют друг с другом, а один из них одновременно играет еще и с человеком.

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

Это парадоксальная особенность интеллекта. Цель любого интеллекта - познание, расширение. Основа любого интеллекта - любопытство. Любопытство сосредоточено на окружающем мире, но лучший способ познать окружающее - это познать самого себя.

Искусственный интеллект все еще очень далек от дня своего создания. Многие думают, что его невозможно создать. Лично мне, в частности после прочтения интегральной теории искусственного интеллекта, кажется, что задача эта все-таки решаема, хотя и очень сложна.

Напоследок, анекдотик с башорга:

Разговор с чат ботом A.L.I.C.E
(вроде один из лучших)
Human: All robots are stupid
ALICE: I don't think so.
Human: you have another opinion?
ALICE: What makes you think I have it?
Human: you don't believe that all robots are stupid
ALICE: Do you believe that all robots are stupid?
I can't say I believe it, but I believe you.
Human: are you robot?
ALICE: How did you know I am a machine?. Really.
Human: all robots are stupid and you are a robot,
that means you are stupid
ALICE: Hey, I'll tell my other robot friends you
called me stupid.
Human: I still think robots are stupid.
ALICE: I will remember you said that when robots
take over the World.
Human: O_o

P.S. Я сам играю в онлайн-шахматы на сервере FICS, хэндл - omlin. Сервер очень хороший, активный и вполне играбельный. Желающим присоединиться, предварительно нужно будет скачать клиент BabasChess, и, конечно, зарегистрироваться на FICS'е.

пятница, 10 июля 2009 г.

Robotics Developer Studio 2008 R2

Компания Microsoft, пока я был в отпуске, выпустила новую версию студии: Microsoft Robotics Developer Studio 2008 R2. На днях я ее скачал, по-тихоньку тестирую.

Кстати, как и предполагалось, Билл Гейтс по-тихоньку переводит свой робототехнический проект на коммерческие рельсы. Есть уже различные вариации студии, часть из них стоит денег. Кто знает, может быть версию 2009го года придется уже "крякать" :(

Скачать новую студию и почитать про нее можно на обновленном сайте Microsoft: www.microsoft.com/robotics.

Из нововведений отмечу, прежде всего, добавление поддержки некоторых весьма полезных датчиков в Simulation Environment. В частности, это:

  • Сонар
  • Датчик света (яркости)
  • Датчик цвета
  • Компас
  • Инфракрасный дальномер
  • GPS

Еще в симуляционную среду добавились новые примеры (Simulation Tutorials).

Другим интересным нововведением стал DSS Log Analyser. Напомню: в основе работы студии лежит взаимодействие множества сервисов. Теперь можно будет взглянуть, как же это все работает изнутри... Предполагается, что такая система облегчит отладку.

суббота, 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'а.

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