среда, 26 ноября 2008 г.

Пара самодельных роботов

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

Перед этим, между прочим, хочется сказать большое спасибо человеку под ником AMuHb, за разработку нового дизайна для сайта о моем первом роботе. Абсолютно бесплатную и, как мне кажется, очень удачную разработку. Спасибо! :)

Дак вот, вернемся к роботам. На форуме Winglion'а я обнаружил крайне интересную ветку про изготовление робота на основе вай-фай точки доступа. Идея примерно такая же, как и в случае изготовления робота на основе Wiimote, т.е. робот управляется компьютером через вайфай.

Однако, возможности вай-фай точки доступа, как оказалось, намного шире. В частности, у нее присутствуют абсолютно стандартные порты USB и COM, благодаря чему ее не только можно поставить на колеса, но можно даже присоединить к ней вебкамеру. Еще точку доступа можно прошить linux'ом в минимальной конфигурации, и придать роботу некоторую минимальную самостоятельность даже при отсутствии Wi-Fi сигнала. В общем, читайте сами. Мне лично идея понравилась чрезвычайно.

И еще, в блоге Виталия Клебана обнаружилось описание робота под названием kipmandroid, изготовленного Василием Костровым, знакомым Виталия. Видео, фотки. Полезно посмотреть, и вдохновиться на создание такого же или даже лучше :)

вторник, 11 ноября 2008 г.

Кубок по робототехнике в Красноярском крае.

Собственно, прошел этот кубок давненько - в начале ноября, однако написать об этом событии получилось только сейчас.

Конкурсов, событий, соревнований, - множество. Чем же интересен именно этот? Во-первых, что мне бросилось в глаза, когда я увидел фотографии, это невероятное для России количество собранных вместе Lego-роботов. И действительно, конкурс проводится именно среди комплектов Lego Mindstorms NXT. Причем, занимались разработкой роботов школьники.

Все участники были разбиты на три группы по возрасту: младшие, средние и старшие. Задачи вертелись вокруг следования по линии, чем старше участники, тем сложнее задача. Младшие должны были представить робота, который бы просто мог ездить по линии. А робот из старшей категории должен был, помимо этого, еще убирать с дороги препятствия, уметь забираться на возвышенности, и проезжать через тоннели.

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

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

четверг, 6 ноября 2008 г.

И снова: Robotics Studio

Продолжаю серию статей про Robotics Studio.

Во-первых, хочется рассказать об известном глюке Microsoft Robotics Studio, который мне некоторое время не позволял запускать симуляционную среду. Дело в том, что при установке движка AGEIA PhysX, требуется установить DirectX. Если его установить не в полном объеме, либо понадеяться на то, что он уже установлен, либо не дать инсталлеру стянуть необходимые файлики из сети - симуляционная среда скорее всего не будет запускаться, выдавая следующую ошибку:

System.TypeInitializationException: The type initializer for 'Dss...' threw an exception. ---> System.IO.FileNotFoundException: The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Лично мне пришлось переустановить Robotics Studio, загрузив дополнительно из сети аж целых 36Мб "DirectX Optional Runtime Components". Наверняка эти компоненты можно загрузить отдельно в виде оффлайн-инсталлера, но откуда - мне разобраться не удалось. Может, кто-нибудь из читателей знает? Отметьтесь в комментариях :)

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

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

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

Впрочем, очень уж далеко в сайт я не углублялся... Дак вот, о новостях: не так давно (в сентябре) открылся новый вид соревнований, называемый Urban Challenge.

Напоминает DARPA Urban Challenge, не правда ли? Все так и есть! Задание простое: требуется заставить беспилотную машину ездить по вполне оживленной модели города. Спонсором соревнования выступила компания KIA, главный приз - автомобиль KIA Soul. Между прочим, в том самом наборе файлов для выполнения задания - детальные модели некоторых автомобилей KIA...

среда, 5 ноября 2008 г.

Программирование. Среды разработки для роботов

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

Тема, сами понимаете, крайне интересная. Поэтому, я постараюсь здесь привести данные из статьи - в переводе на русский, и добавлю собственных мыслей...

Итак, ситуация сегодня такова, что среды робототехнической разработки появляются, словно грибы после дождя. Причем, в качестве дождя - выступила инициатива Microsoft в виде их знаменитой Robotics Studio.

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

Зато знаю, что статистику по роботам можно свободно посмотреть на сайте IFR Statistical Department (на английском). Очень познавательно, и главное - сразу понятно, чем руководствовался Microsoft :)

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

  • Во-первых, это потенциальная работа. Сегодня пишут: требуется программист со знанием Ajax, C#, ASP.Net. Завтра - кто знает, может быть на кругленькие суммы будут требоваться знания Microsoft Robotics Studio?
  • Во-вторых - это готовые драйвера для различных робототехнических устройств и для наиболее распространенных роботов-конструкторов.
  • В-третьих - это готовые к использованию, мощные библиотеки алгоритмов и решений. Например, поиск пути, распознавание образов, голосовое управление и т.д.

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

При этом, конкуренция очень важна. Microsoft, они возьмут завтра, и сделают Robotics Studio платной (кстати, для коммерческого использования она платная уже сейчас). Да и вообще, всегда приятно, когда есть альтернатива. Ведь кто пользуется Windows Media Player? Правильно, те, кто ни разу в жизни не видел Winamp :)

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

Skilligent - эта фирма является лидером в области технологий обучения роботов и их взаимодействия с окружающей средой. Философия Skilligent - отказаться от жесткого программирования функций робота, и сосредоточиться на предоставлении интерфейса для обучения робота любым функциям (между прочим, помните про робота, которого научили готовить яичницу?). Основной продукт фирмы называется Robot Learning and Behavior Control System, и в его составе поставляются следующие модули:

  • Система машинного зрения, позволяющая распознавать и отслеживать объекты, описания которых берутся из соответствующей базы данных.
  • Система навигации, которая берет на себя функции ориентирования в знакомых помещениях. Знакомыми помещения становятся после обучающей сессии...
  • Урезанная версия отказоустойчивой системы управления (Fault-Tolerant Control Framework), служащей для координации работы всех остальных модулей.

Robot Learning and Behavior Control System на самом деле не является самостоятельной средой разработки, зато представляет из себя прекрасный сборник решений. Силами специалистов Skilligent она была интегрирована в Microsoft Robotics Studio.

Полнофункциональная система разработки Urbi, детище компании Gostai, по функционалу стоит очень близко к Microsoft Robotics Studio. Urbi использует симуляционную среду Webots, и имеет готовые интерфейсы для роботов Aibo, iRobot Create, LEGO Mindstorms NXT. Интерфейсы для других роботов находятся в разработке.

Большим преимуществом Urbi является ее кроссплатформенность: система работает под Windows, Linux, и Mac OS. Также, благодаря модульности продукта, по весу Urbi получается гораздо меньше, чем MSRS.

Urbi имеет неплохой набор графических утилит разработки. Например, urbiMove - позволяет записывать последовательность действий робота, и затем воспроизводить их. Управляются роботы с помощью скриптового языка urbiScript.

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

В сообщении Наборы для роботостроения. Конструкторы роботов я уже описывал (немного гневно) набор ER1 от компании Evolution Robotics. Программное обеспечение для вышеупомянутого конструктора - продукт ERSP, является на самом деле серьезной средой разработки ПО для роботов, и состоит из трех основных частей: модуля визуального распознавания, модуля ориентирования (также с использованием веб-камеры), и операционной системы робота. Именно этому продукту, судя по всему, система ER1 обязана своей немаленькой ценой.

OROCOS (Open RObot COntrol Software) - это, как видно из названия, открытое программное обеспечение для управления роботами. К сожалению, у OROCOS отсутствуют как графические инструменты разработки, так и симуляционная среда; по сути дела это всего лишь набор библиотек для работы с роботами. Впрочем, иногда, чисто программистский подход - это намного лучше концептуально новых, и оттого непонятных, графических сред...

Общие данные по перечисленным выше системам собраны в таблице:

  MSRS 1.5 Skilligent Urbi ERSP OROCOS
Открытый исходный код Нет Нет Частично Нет Да
Бесплатно Edu/hby Нет Частично Нет Да
Windows Да Да Да Да Нет
Linux Нет Да Да Да Да
Распределенная архитектура
(сервисы)
Да Да Да Нет Нет
Отказоустойчивость Нет Да Нет Нет Нет
Стандарт JAUS Нет Да Нет Нет Нет
Графический контрольный
интерфейс
Да (Web) Да Да Да Нет
Графическое Drag-n-Drop IDE Да Нет Да Да Нет
Встроенный контроль
манипулятора робота
Нет Да Нет Нет Да
Встроенная система
распознавания изображений
Нет Да Нет Да Нет
Встроенная система
ориентирования
Нет Да Нет Да Нет
Обучаемость Нет Да Нет Нет Нет
Симуляционная среда Да Нет Да (Webots) Нет Нет
Система реального времени Нет Нет Нет Нет Да