четверг, 29 мая 2008 г.

Искусственный интеллект роботов. Игры

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

Ведь согласитесь, BEAM-роботы хороши, но это ведь каменный век!

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

Тогда я упоминал проект Арена Роботов. Недавно со мной связался создатель этого проекта, Александр Залога, и поинтересовался моим мнением относительно своей Арены.

Также, Александр подкинул пару ссылок на в той или иной степени аналогичные проекты:

  • Robot Warfire - это проект, послуживший основной для Арены Роботов. Все довольно примитивно, однако играть, я подозреваю, было очень интересно. Вкратце: на поле выставляется несколько типов предметов: стена, яма, элемент питания, боеприпасы, вражеский робот, дружественный робот. У самого робота есть 4 слота, смотрящих в разные стороны. В слот можно помещать либо оружие, либо глаз робота. Робот видит соседние клетки, если они примыкают к его глазам. Ну и наконец, пишем суперхитрый скрипт поведения и маневрирования, и вперед, на чемпионат... Скриптовый язык, кстати, очень напоминает Бэйсик. Об этой простой, в общем-то, программке писали даже на Игромании!
  • Описание трехмерной арены роботов можно найти на Delphi Lab. Написано, правда, не русскими, но зато ребята очень мощно шагнули в графическом плане.

Кстати, самой крутой игрой по части "игрового искусственного интеллекта" я до сих пор считаю игрушку Генерал от NewGame Software. Ничего лишнего, никакой графики, но уж очень интересно играть. И, как ни странно, безумно реалистично (сочетание реализма и геймплея - это весьма сложная задача для практически любой игры).

Создание игрового ИИ - задача сложная и очень серьезная. Играя в проекты, подобные RoboChamps или Арене Роботов, Вы эту задачу пытаетесь решить.

На самом деле, если бы я стал делать что-то подобное проекту Александра, вот на что я бы обратил внимание в первую очередь:

  1. Позаботился бы о наличии в игре реализма.
    • Выбор типа шасси. У каждого типа шасси свои особенности - разная проходимость, разная скорость передвижения, и т.д. Основные типы шасси: колесное, шагающее, прыгающее, ползающее, гусеничное, летающее, плавающее, амфибия и т.п.
    • Выбор набора датчиков. Тепловые, световые, видеокамера, радары разной дальности, дальномеры и т.п. Набор датчиков сильно влияет на способ выбора цели, скорость наведения, скорость движения по пересеченной местности; на способ обхода препятствий и построения маршрута движения и т.п.
    • Выбор набора оружия. Разная поражающая способность, разный вес, разный нагрев, разное потребление припасов и боезапаса. Я бы даже сделал оружие более приближенным к реальному. Т.е. например, пневматическая стрельба железными пульками; укрепленная на роботе бензопила и т.п.
    • Выбор количества и типа элементов питания. Солнечные батареи, различные аккумуляторы (какие-то работают дольше, но и заряжаются дольше, какие-то всем хороши, но имеют очень большой вес) и т.п. Это будет сильно влиять на зависимость робота от подзарядки.
    • Выбор брони. Ну здесь главное - вес. Чем тяжелее броня, тем сложнее роботу двигаться, а следовательно, тем больше он жрет энергии и медленнее ходит.
    На самом деле, настоящий робототехник действует по сути точно также: выбирает шасси, набор датчиков, тип элементов питания. Ну оружие и броня - только в случае роботов сумо или роботов для чемпионатов по стрельбе в цель.
    Реализм прибавляет игре привлекательность, но важно при этом не забыть о геймплее. Если выбора слишком много - глаза начинают разбегаться, и интерес к игре пропадает, либо сводится к перебору многих сотен вариантов оснащения робота, даже не доходя до главного - до алгоритма его поведения...
  2. Я бы сделал игру достаточно простой в графическом исполнении, но такой, чтобы максимальное число людей могли за игрой наблюдать онлайн. Например, чтобы можно было смотреть за игрой через браузер.
  3. Я бы сделал формат задания роботов и алгоритмов их поведения максимально стандартизированным. Например, есть такой язык RoboML, я о нем написал целую статью в свое время: Язык описания роботов - RoboML.
    Это весьма проработанный язык для описания роботов и их поведенческих функций. Как показывает практика, стандартизация в современном мире - это задача №1. Также, можно использовать стандарты, совместимые с Microsoft Robotics Studio, это еще более перспективное направление. Например, как вам такая идея: робот может работать согласно алгоритмам, созданным в Visual Programming Language? :) Ведь потом благодаря Robotics Studio можно будет перенести наработки алгоритмов на использование с совершенно реальными роботами!
  4. Систему управления я бы организовал из множества блоков "если". Например:
    • Если увидел цель - сближайся на максимальной скорости и тарань ее.
    • Если зарядки осталось 20% - ищи электростанцию.
    • Если зарядки более 20% и никто не нападает - свободный поиск..
    Это обыкновенный алгоритмический способ управления. Все алгоритмы более низкого уровня (поиск пути, захват цели) - пусть будут реализованы внутри игры. И для задания алгоритмов верхнего уровня я бы сделал нормальный обычный интерфейс, можно даже интерфейс на сайте, чтобы никуда не надо было ходить и ничего не нужно было бы скачивать.
    Таким образом, игра будет иметь больше игроков, ведь алгоритм может придумать почти каждый, а на С или на чем-нибудь еще - умеет программировать лишь ограниченное число людей. Даже после появления .Net...
    Но для истинных любителей, конечно, можно оставить альтернативную возможность создания полномасштабной программы управления.
  5. Добавил бы игрокам вселенскую цель, помимо уничтожения друг друга. Ведь сами подумайте, вот например в Арене Роботов. Там есть электростанции, от которых роботы подзаряжаются. Напрашивается следующая тактика: ищем электростанцию, заряжаемся, сидим ждем. Приходит враг - расстреливаем его, заряжаемся снова, ждем дальше. Разве интересно?! А представьте два противника и две электростанции - и сидят ждут друг друга...
    Нужна вселенская цель, которой заканчивается игра. Скорее всего, захват какого-либо артефакта, или флага.
  6. Добавил бы возможность командной игры. Это чрезвычайно важно в любой онлайн-игре. Банальный хороший чат. И как следствие - нужна возможность перепрограммирования роботов "на лету". И еще как одно следствие - необходима возможность создания и сохранения нескольких типов поведения, которые можно быстро, одним кликом мыши, менять друг с другом в процессе игры (типа мирное существование, избегание боев, агрессивность и т.п. Кстати, чтобы перепрограммирование не было слишком частым, лучше всего ввести зависимость этой возможности от наличия на роботе, например, некоего радиоприемника. А вместо радиоприемника ведь всегда можно поставить хорошую пушку, так что возможность перепрограммирования в данном случае компенсируется.

Да, кстати, если вдруг кто захочет такую вот штуковину написать - с удовольствием предоставлю бесплатный хостинг :) Обращайтесь!

среда, 28 мая 2008 г.

BEAM роботы

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

Самым, наверное, «крутым» BEAM-роботом - был Бастер. В книге Дэвида Хейзермана, автора идеи Бастера, описывается пошаговое создание этого робота: сначала это просто радиоуправляемая игрушка, затем функций становится все больше и больше, и постепенно Бастер превращается в забавное, увлекательное существо, вносящее оживление и радость в Ваш дом.

Книга наполнена схемами, рисунками, интересными идеями. Конечно, придется очень много паять. Но никто не заставляет делать Бастера до конца. Можно остановиться на любом шаге, а можно использовать просто часть принципиальных схем, рассмотренных автором, для создания собственного - возможно, еще более интересного, - робота.

Вообще, я не раз касался, тем или иным образом, концепции BEAM-роботов:

  • В сообщении Своими руками - представлял видео изготовления простенького BEAM-робота на солнечных батареях, и ссылку на статью про конструирование робота из зубной щетки.
  • В сообщении Интернет о роботах-2 - выкладывал ссылку на неочевидное место со сведениями по BEAM-роботам - форум мотоклуба «Дырчик».
  • и т.д.

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

Сидячие BEAM'ы питаются, чаще всего, от солнечных батарей, и могут лишь мигать светодиодами, либо издавать звуки. Обратите внимание, роботами я их не назвал, назвал просто - BEAM-ы (см. мой взгляд на определение понятия робот).

Сродни сидячим - настольные BEAM-ы, сами к передвижению по-прежнему не способные, однако имеющие механические приспособления, благодаря чему они могут двигать отдельными частями своей конструкции. Характерным примером настольного BEAM-а может служить поворачивающаяся к источнику света голова :)

Способные к передвижению, исходя из способа этого самого передвижения, делятся на следующие подтипы:

  • Колесные
  • Извивающиеся
  • Ползающие (сюда же входят гусеничные BEAM-роботы)
  • Прыгуны
  • Ходящие (среди BEAM-роботов двуногих конструкций почти не встречается, чаще всего ног не менее четырех)
  • Плавающие
  • Летающие

BEAM-роботы используют для своего передвижения энергию либо обычных батарей, либо солнечных. Во втором случае они получаются абсолютно автономными: поставил его на пол, и он дальше живет своей жизнью... :)

Большинство BEAM-ов обладает еще двумя абсолютно характерными чертами: они, во-первых, маленькие, а во-вторых - смотрятся очень красиво, эстетично (не зря буква A расшифровывается в этой аббревиатуре как Aesthetics - эстетика).

Меня на написание сегодняшнего сообщения во многом натолкнула новостная статья о кузнечике с Мембраны. Попробую немного развить эту "кузнечную" идею.

Принцип действия робота незамысловат и прост: малюсенький моторчик накручивает пружину до определенного момента, затем пружина резко разгибается, и кузнец летит куда-то далеко-далеко. Построить такого не так уж и сложно, в статье лишь обращают внимание, что очередной кузнечик оказался гораздо практичнее в конструкции, и побил прежний рекорд, прыгнув на высоту, в 27 раз превышающую его собственную высоту (предыдущий рекорд - 17 длин тела механического кузнеца).

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

А раз уж есть солнечные батареи, почему бы не сделать из кузнечика планер? Тогда ему будет гораздо проще приземлиться, и улететь он сможет гораздо дальше. Чтобы «крылья» не мешали прыжку - их нужно перед прыжком сложить, а после прыжка - развернуть. Для более удачного приземления пригодятся "лыжи".

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

Весь жизненный цикл робота, таким образом, состоит из следующих состояний:

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

Вот такая вот у меня лично возникла идея :) Честно скажу, на практике я кузнеца никогда не строил, так что в каких-то деталях могу ошибаться.

Благодаря разнообразию BEAM-конструкций - всегда найдется такой робот, который лично Вы сможете построить быстро, и одновременно это будет лично Вам весьма интересно :)

А ресурсов по BEAM-роботостроению - хватает!

Например, обязательно ознакомьтесь с весьма популярной статьей с сайта «Мой робот», про изготовление простейшего робота на основе одной микросхемы.

Кроме того, информация есть и на Робофоруме, там организован даже небольшой раздел в помощь BEAM-роботостроителям.

Итог: робототехника должна начинаться со слова BEAM, господа!

понедельник, 26 мая 2008 г.

Есть контакт!

Ну что я могу сказать. Как написано в комментариях к одному видео в YouTube, «Wow. Those "stupid" Americans have done it again. Great job!» (Вау. Эти "глупые" американцы снова сделали ЭТО. Супер!)

Видео из центра управления миссией - ожидание приземления и радость участников проекта. Интересно послушать и посмотреть, как это все проходит. Кстати, компьютеры центра работают под Unix...

Сплошные цифры, никаких видео и фотосъемок в процессе приземления. Это и понятно! Радиосвязь с Марсом имеет задержку в 16 минут, поэтому передают только цифры, а не гораздо более емкие фото и тем более видео кадры.

Как вообще должно выглядеть приземление - мы можем видеть из другого видео, как я понимаю, полученного то ли в процессе тестирования работы Феникса на Земле, то ли в результате продвинутого компьютерного монтажа.

Единственное, что здесь мне осталось неясным - это отсутствие парашютов. По идее, парашюты на Фениксе есть. Точнее, были :)

Некоторая интересная информация:

  • Судя по первым фотографиям, на месте приземления Феникса льда не оказалось (на поверхности). Ученые, все-таки, ожидают обнаружить лед непосредственно под поверхностью. В случае, если он будет слишком глубоко, или если Феникс попал на слишком каменистый участок - можно наверное будет считать, что миссия в основном провалена. Ведь данный спускаемый аппарат ездить по Марсу не умеет. И даже аналога ПрОП-М на нем нету (зря!).
  • Температура в месте приземления Феникса: максимум -77 градусов по Цельсию ночью, и не более чем -17 днем.
  • Через одну минуту после приземления, и до раскрытия солнечных батарей - в целях экономии энергии, связь с Фениксом была полностью прервана.
  • Все общение с Фениксом происходит с помощью ретрансляционных станций, коими являются два марсианских искусственных спутника: Mars Odyssey и Mars Reconnaissance.
  • При разработке роботизированной руки особое внимание уделяли ее стерильности, чтобы наши земные микробы не попали в марсианскую почву... На мой взгляд, кстати, давно пора начать выводить сорт растений, которые бы смогли на Марсе расти. Первый шаг, так сказать, к терраформированию.
  • Феникс обошелся весьма дешево. На проект было потрачено 457 миллионов американских долларов, что по сегодняшнему курсу рубля составляет 10,78 миллиардов рублей. Напомню, о космическом бюджете РФ я уже рассказывал, на 2008 год на все про все (включая запуски спутников, обучение космонавтов, развитие ГЛОНАСС, строительство и амортизацию космодромов и т.п.) выделено около 20 миллиардов рублей. Т.е., если подтянуть пояса - лет за 5-6 мы бы вполне могли себе позволить примерно такой же проект :)

Первая цветная фотография с Марса:

Больше о Фениксе - на сайте НАСА. Там и куча фоток, и самые свежие новости, и куча информации по проекту...

пятница, 23 мая 2008 г.

До высадки Феникса на Марс осталось...

...меньше трех дней! Кстати, о времени. Вчера, 22го мая, была выпущена очередная версия программы Mars24, которая пригодится для сравнения текущего времени и времени на Марсе, наблюдения за временем нахождения на Марсе спускаемых аппаратов и марсоходов, определения положения Марса в отношении Земли, и т.д.

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

Я же накопил уже столько смежных материалов по Марсу, что...

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

Оказывается, не я один такой умный, а идея по использованию на Марсе ветряков - стара как мир. Еще в далеком 2001м году, например, мелькали в новостях заголовки: Ветряки с Антарктиды будут использоваться на Марсе. Дело в том, что условия на нашем земном крайнем юге очень тяжелые, почти марсианские. И ветряки там стоят - соответствующие. Так что вот!

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

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

Впрочем, наши в последнее время тоже радуют - сначала футбол, затем хоккей, кто знает, может и до космоса через пару лет дойдет очередь :)

среда, 21 мая 2008 г.

Робот-калькулятор. Машинное зрение роботов

Вот такого вот интересного робота-калькулятора построили два американца на основе Lego NXT:

Продолжение этого видео:

Итак, данный робот умеет выполнять простейшие арифметические операции с небольшими числами, и отображать результаты вычислений на LCD-дисплее. Строка для вычисления вводится в него с помощью обыкновенных листочков A4, с нанесенными на них достаточно крупными изображениями цифр и операторов.

Казалось бы, машинное зрение, распознавание образов, анализ изображений? Как бы не так!

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

Программное обеспечение написано на Java, и все работы были сделаны в течение месяца (конечно, базой оставался робот Lego NXT). И вот такая симпатичная вещичка получилась. Это я к тому, что выбирать близкие цели, особенно поначалу, особенно в робототехнике - это очень правильно, и это НУЖНО делать.

Небольшое обсуждение создатели робота-калькулятора создали на форуме сайта NXTasy.

Кстати, раз уж заговорили о машинном зрении, вот вам, господа, немного ссылок на общего плана статьи:

И еще. У меня на работе, один из сотрудников поспорил с директором, что уже к 2010му году в Google будет доступен аналитический поиск по изображениям. Например, Вам нужно найти все свои фотографии. Берете одну за образец, загружаете в гугл, и жмете «найти похожие». А также, вариации данного вида поиска - поиск по контуру, аналитический поиск по словам (когда анализируются не подписи к картинке, а сама картинка), и т.д.

Дак вот, Google семимильными шагами движется уже в этом направлении (новости весьма и весьма свежие):

  • Google приобрела компанию Neven Vision, которая известна своими разработками в области распознавания фотографий.
  • Новый способ поиска изображений, предложенный Google, получил название VisualRank, и дает значительно более релевантные результаты, нежели чем существующий Google Image Search. Суть VisualRank - выдавать изображения, физически похожие друг на друга.

Я это все к чему: если Вам лично эта тема интересна, у вас математический склад ума и много хороших идей по распознаванию образов... Думаю, весьма скоро Ваш труд будет оценен :)

понедельник, 19 мая 2008 г.

Кухня. Пища. Робот. А также - 3D-ручка

Недавно новоявленный участник возглавляемого мной сообщества сайтов, Roboto.Ru, опубликовал аж целых три новостных статьи про использование робота-повара на кухне. Поскольку я уже писал о создании робота-повара, меня данные статьи заинтриговали, попробую представить краткий обзор перечисленных в этих статьях идей:

  1. Японский робот-повар, с видеоматериалом. Если вкратце, швейцарские ученые научили старенького японского робота компании Fujitsu (модель HOAP-3) готовить омлет. Смотреть реально смешно :) Основной смысл состоит в том, что данный универсальный робот способен обучаться. Ему просто показываешь какие-то движения, приводя в движение его манипуляторы, и затем можно давать ему команду на самостоятельное исполнение всего, что он запомнил.
    Если серьезно, то, что изображено на видео, самостоятельным изготовлением омлета назвать можно едва ли. Но явственно показано, что какие-то отдельные операции робот может уже выполнять.
    Итак, начинают находить свое применение по-настоящему универсальные роботы. Это то, что я называю настоящими роботами... Я уверен, поставь штук 5 таких роботов в конвейер, научи каждого делать по 2-3 простых действия - и они будут готовить омлеты серийно - и без всякой помощи :) Преимущество в том, что когда омлеты кушать Вам надоест, можно переучить свою пачку роботов на что-то еще :) А можно зарядить в робота какое-то расписание, согласно которого утром он будет готовить омлет, днем пылесосить комнаты и стирать пыль, ну а вечером, к примеру, подстригать кусты у Вас в саду. Разве не здорово!? :)
  2. Искусственный рот - это достаточно важный шаг при создании робота-дегустатора. Дело в том, что дегустирование - это достаточно однотипный процесс. Представьте себе, к примеру, фабрику, которая готовит 10 000 партий конфет в день. Согласно требованиям контроля качества, продукция обязательно должна быть продегустирована. Если превышен определенный процент негодных к употреблению конфет в партии - вся партия уходит в мусорный контейнер, а инженеры бегут проверять оборудование или исходные материалы (качество закупленного шоколада, например).
    Сейчас есть два способа дегустирования - химический анализ, и люди-дегустаторы. Химический анализ врядли что-то скажет о вкусе и о запахе продукта; а у человека - вкус от 10 000 партий замыливается неимоверно. К тому же, негодный к употреблению продукт может просто отравить дегустатора... Именно поэтому автоматические дегустаторы крайне актуальны, особенно при наличии уже действующих датчиков вкуса и запаха.
  3. Важная мысль затронута в третьем сообщении, Робот на кухне. Речь идет о выделении денег на исследование возможных психологических проблем, а также проблем физического взаимного пребывания на кухне робота и человека. В своем описании кухонного робота я решил все эти проблемы одномоментно, сделав робота статическим. Если же робот мобилен - вступают в силу совсем другие факторы. Ведь кухня - помещение маленькое, особенно там не развернешься...

Вернусь к самодельному роботу-повару. Первоначальный автор идеи его создания, Александр aka Alf, оказался настоящим генератором шикарных проектов (правда, не исполнителем). Сейчас Александр увлекся подготовкой другой мысли - об инструменте для электронного трехмерного рисования.

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

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

Может быть, для Вас эта идея выглядит как неосуществимая фантастика? Вы не правы! Ведь здесь все вопросы решит WiiMote. В принципе, достаточно будет даже одного пульта WiiMote, но для обеспечения точности я бы порекомендовал использовать два таких устройства, расположенных, например, сверху и перед художником. Тогда возможно на 100% однозначное отслеживание позиции ручки.

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

Программирование WiiMote - это задача уже решенная. Использование совместно Wii Remote и Microsoft Robotics Studio, например, я уже описывал, в том сообщении есть ссылка на соответствующую библиотеку. Другие примеры можно посмотреть на сайте Джонни Чанг Ли, автора большинства нестандартных применений WiiMote.

пятница, 16 мая 2008 г.

Космические роботы. Скоро посадка на Марс

Детище космического проекта Феникс - очередной марсоход, предназначенный для исследования полярных областей Марса, высадится на красную планету 25го мая. По нашему времени, на самом деле, это будет уже 26 мая, т.к. мы опережаем время по Вашингтону на 8 часов. Landing Blog (блог с описанием процесса посадки) будет вестись начиная с 19 мая и расположен на сайте NASA.

На сайте NASA уже опубликовано расписание этапов приземления Феникса. Там все в американском времени, поэтому для получения времени московского - следует прибавить 8 часов. Вкратце приведу основные моменты расписания здесь. Итак, маневры начинаются 25 мая (по их времени - 24го). Первый раз корректировать будут, если по нашему времени, в 3:46. Но в корректировках, на самом деле, ничего интересного нет. Собственно вход в атмосферу произойдет 26го мая 00:46:33. Раскрытие парашютов - в 00:50:15, плюс-минус 15 секунд. Касание Марса - 00:53:52, плюс-минус 46 секунд. Ну и остальное уже не так интересно (раскрытие солнечных батарей и т.д.). Детальная информация по полету, а также первые фотографии - будут доступны только еще через несколько часов. Думаю, к вечеру 26го мая мы уже будем знать все.

Все это будет транслироваться по NASA TV, начало - 25 мая в 23:30. У кого есть возможность посмотреть - не пропустите!

Кстати, смешное видео нашел на YouTube, про будущее освоения роботами Марса :)

Ну и наконец, упомяну, для тех кто еще не в курсе, что во всемирно известной NASA JPL (Jet Propulsion Laboratory, лаборатория, занимающаяся всеми космическими исследованиями NASA) есть специальный сектор, Mobility and Robotic Systems, который состоит из примерно 100 ученых и инженеров; и занимается робототехническими аспектами освоения космоса. Подробнее - на отдельном сайте сектора (на английском). Очень интересно посмотреть на текущие задачи сектора, уже сделанные проекты, подход к проектированию и конструированию, алгоритмы работы космических роботов.

четверг, 15 мая 2008 г.

Робот на основе калькулятора

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

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

Одной из статей вводного плана стал недавно подготовленный мной материал Калькулятор? Робот! Робот на основе калькулятора.

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

Собственно, лучше уж сами читайте. Я же лишь отмечу например вот такой интересный факт: знаете ли Вы, что советский программируемый калькулятор Электроника МК-52 летал в космос?! Александр Волков, космонавт с Союза ТМ-7, планировал использовать этот калькулятор для ручного расчета траектории посадки, в случае, если выйдет из строя бортовой компьютер...

Еще могу сказать, что для калькуляторов существуют мало того что игры, и разнообразные полезные утилиты. Для калькуляторов были написаны даже вирусные программы! Например, на сайте Кон-Тики в образовательных целях выложен исходный код вируса ti89/ti89i.Gaara.

В общем, программируемые калькуляторы имеют огромную историю, и благодаря своим особенностям - применимы даже на ниве роботостроения. Существует много до сих пор живых сайтов по микрокалькуляторам, например, Клуб Любителей Калькуляторов. Вот думаю, купить чтоли себе калькулятор, вступить в клуб... :)

вторник, 13 мая 2008 г.

Роботы и робототехника

Уже который раз ловлю себя на мысли, что не знаю, о чем бы написать... НЕТ! Не потому, что нет темы, не потому что нет материалов - наоборот! Каждый раз, публикуя очередное сообщение, при подборе или обработке материалов для него - у меня возникает 1-3 новых мысли. А бывает и так, что уже после публикации, я нахожу еще гору интересного материала...

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

Например, давным давно уже нашел статейку на 3D News, весьма интересную, обзорную по роботам - и никуда она вроде бы и не убирается, и по смыслу особенно не подходит. Хотя, статья весьма интересна. Автор производит впечатление скептически настроенного человека, которому просто заказали статью, и читать это - действительно весело :) Название статьи - соответствует настроению автора: "Роботы-2008. Могло быть и хуже". А вообще, информации собрано достаточно много, так что почитать стоит.

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

Ну и наконец, забавы ради, могу предложить посмотреть вот такое шутливое видео изготовления робота - вроде еще не публиковал, хотя нашел тоже очень давно :)

среда, 7 мая 2008 г.

Виртуальные соревнования роботов. Поединок программ

Microsoft проводит соревнования симуляций. Онлайн это видно через SilverLight, на сайте RoboChamps. Симуляция пишется, естественно, с помощью Robotics Studio. Кстати, господа, кто программировать умеет! Ведь Microsoft может запросто предложить победителю работу, так что, мимо ушей такие вещи пропускать не стоит! Я - так вообще, всегда был любителем таких вот вещей. Эх, было бы времени немножко - обязательно забацал бы симуляцию своего марсоходика!

Идея, кстати, не нова. Вот, например, был проект когда-то - Арена роботов. Смысл абсолютно такой же: пишем программу, используя специальный редактор, программа наша должна управлять виртуальным роботом. Отправляем программу организатору соревнований, он запускает чемпионат, и победитель получает приз. Все, собственно, просто. Сайт, надо заметить, существует с 2005го года :)

Если уж перечислять, то позволю себе также упомянуть еще разок RoboBrawl, замечательную онлайн флэш-игру, где можно поучавствовать в битвах роботов друг с другом. Весьма интересно, я в свое время полдня рабочего времени убил, играясь в нее :)

MechWarrior

Безумно популярная в прошлом вещь - AD&D, не могла обойти роботов, и имеет в своем составе конечно же, и вселенную MechWarrior. Про эту вселенную написано много книг, создано несколько жутко популярных компьютерных игр (серии MechWarrior, MechCommander).

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

А ведь они захотели! Самое простое - создать костюм меха, и это было сделано (и я думаю, неоднократно).

Описание другого смешного проекта по построению модели меха из подручных материалов (по сути дела из всякого хлама) - описан в блоге the Warehouse (англ. warehouse - склад, кладовая).

Однако, костюм костюмом, хлам хламом, а мех - это все-таки огромный пилотируемый боевой робот, а совсем не костюм из тряпки и пары алюминиевых реек (и уж тем более не крохотная моделька, собранная из мусора)! Поэтому, часть энтузиастов на костюмах не остановилась - а занялась проблемой всерьез. Всерьез, и надолго. Один из таких проектов, Mechanized Propulsuion Systems, является публичным и до сих пор действующим.

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

MPS - проект не единственный. Например, целый список подобных проектов (немного более любительских) можно найти на сайте BattlePicts.

Было бы очень здорово, конечно, увидеть живой экземпляр меха. Уже созданные на сегодняшний день экзоскелеты - это очередной шажок в данном направлении. Кто знает, может быть и в нашем, реальном мире, когда-нибудь мехи, как рыцари Cредневековья, будут охранять границы государств, и вести войны... Кто знает!

воскресенье, 4 мая 2008 г.

Марсианские пылевые бури

Александр Венедюхин в очередной раз дал мне повод для написания сообщения в блоге. Вообще, я заметил, все заметки моего блога делятся на две большие категории - плановые, и экспромпт. Последние возникают обычно после прочтения чего-либо интересного (именно поэтому я такое внимание обращаю, например, на сайты типа Roboto.Ru: Новости робототехники. Форум о роботах). Ну это я так, к слову...

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

Да, конечно, в космосе ветра нет, а вот на Марсе он еще какой! И проявляется в виде знаменитых пылевых бурь, одна из которых загубила и посадочный модуль Марс-3 с марсоходом ПрОП-М на борту... От подобных бурь страдали и американские современные марсоходы. Причем, пылевая буря почти полностью закрывает доступ света, поэтому у этих марсоходов был реальный шанс не "проснуться", если бы их солнечные батареи занесло песком (к счастью, оба марсохода пережили бурю)...

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

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

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

Марсианские бури имеют немного другие особенности, в частности, благодаря меньшему тяготению, они гораздо более масштабны. Кроме того, пылевым бурям на Марсе не препятствует никакая растительность, и известны случаи, когда вся видимая поверхность Марса была скрыта пылевой бурей (т.е. по крайней мере целое полушарие!). Хорошо о бурях на Марсе, марсианских "пылевых дьяволах", написано в статье на GalSpace.Spb.Ru.

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

четверг, 1 мая 2008 г.

Видео марсохода

Виталий Клебан, владелец блога Quark Mobile Robotics, о создаваемых им роботах серии Quark - опубликовал классное видео, в котором наглядно представлено движение марсохода ПрОП-М, аналог которого я пытаюсь создать.

Это видео дает очень много информации о движении оригинала. Ценность его сложно переоценить!

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

Еще в блоге Виталия есть другой материал о космических роботах - доклад с конференции о перспективах развития отечественной космической робототехники. В видео-варианте. Рекомендую посмотреть!

P.S. Этот день, кстати, принес также хорошие новости с SEO-фронта. А именно, все мои главные проекты получили в результате последнего апдейта PR гордую четверочку. Дебютант своеобразного сообщества уже сайтов, которое я представляю, сайт Роботы: новости, форумы - отхватил PR 2. Уверен, в течение 3-4 месяцев он тоже подтянется до PR 4... Список моих робототехнических проектов, и проектах, в которых я принимаю участие, выглядит теперь следующим образом:

ПроектPRтИЦ
Робототехника в России. Каталог лучших сайтов по робототехнике440
Самодельный робот на основе ноутбука - в домашних условиях430
Этот блог - Роботы и робототехника430

RoboNews - новости Hi-Tech480
Новости робототехники. Форумы о роботах210

Собственно, господа рекламодатели, напоминаю: я всегда готов выслушать любые ваши предложения :)

Выбор КПК для робота

КПК - это неплохой выбор в качестве "мозгов" для робота. Он легок и компактен, легко программируется, имеет гораздо большее время автономной работы, чем, например, ноутбук. Подробно о преимуществах и недостатках использования в роботе КПК я уже писал. Давайте же выясним, какой именно КПК лучше подойдет для использования при изготовлении робота?

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

Если у Вас нет КПК, и не хочется тратить слишком много денег, мой Вам совет - купите по дешевке обычный б/у Palm или его аналог. Его цена - порядка 1-2 тыс. руб.; купить можно, например, на Молотке, на eBay, или на каких-то других интернет-аукционах, барахолках и форумах.

Лично я для построения робота приобрел m125 (он на картинке), с монохромным дисплеем и на батарейках, со слотом расширения SD, работает этот зверь непрерывно порядка 30 часов(!). Кстати, такой КПК - вдобавок, еще и прекрасная читалка, он не пропадет, даже когда робот покроется пылью на антресоли...

Итак, для робота можно брать следующие модели: Palm m100, m105, m125, IIIxe, m500, Zire 21; Sony Clie SL-10, S300, S320, S360; а также любые другие, аналогичные по функционалу одной из указанных выше. Если Вы планируете использовать КПК также как читалку - старайтесь брать только модели со слотами расширения SD/MMC или MS.

Посмотреть спецификации различных карманных компьютеров можно, например, на сайте HPC.

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

Использование же Pocket PC хорошо тем, что в части программирования там все еще проще, поскольку все программирование может быть осуществлено с помощью Microsoft .Net Compact Framework, и с использованием современной мощной среды разработки Microsoft Visual Studio. Многие Pocket PC имеют интегрированные Bluetooth, Wi-Fi, GPS - управление этими модулями поможет сделать робота гораздо более интересным и продвинутым.