среда, 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) Нет Нет
Система реального времени Нет Нет Нет Нет Да

1 комментарий:

Внимание! Реклама и прочий спам будут беспощадно удаляться.