Продолжение. Начало см. PC Week/RE, № 43/99, с. 33.
Японские ученые, традиционно склонные к миниатюризации, создали робот длиной 1 см и массой в полграмма. Он предназначен для обслуживания АЭС и ТЭС и восстановления поврежденных участков электростанций. Робот способен проникать в поврежденные зоны, проползать по тончайшим трубкам и закрывать пораженные области своим телом.
В медицинском центре государственного университета штата Огайо создан робот-хирург, который имеет видеокамеру и две небольшие руки-манипулятора, а управляет им человек с помощью компьютера. Через небольшие разрезы на теле устройство проникает в сердце, после чего на основании полученной от него видеоинформации компьютер формирует трехмерный образ органа, позволяющий выполнять операцию значительно эффективнее. Хирурги единодушно признали пользу такого устройства.
Военные медики США создали робот для проведения операций в полевых условиях. Им можно дистанционно управлять с любого расстояния. Робот снабжен двумя манипуляторами, на каждом из которых установлено по 7 моторов и еще 14 моторов определяют положение тела. Система передает врачу трехмерное изображение оперируемой области и звуковой фон и обеспечивает обратную связь с хирургом, сообщая ему информацию, связанную с нагрузкой на скальпель. Компьютерный модуль компенсирует естественное дрожание кистей рук человека, повышена точность движений манипуляторов.
Похожие работы проводятся в российском Научном центре сердечно-сосудистой хирургии имени Бакулева РАМН. Используемый там робот также снабжен несколькими манипуляторами, способными держать различные инструменты (скальпель, пинцет и т. д.). Благодаря повышенному числу степеней свободы он может работать в самых неудобных, недоступных для человека положениях. Врач за монитором следит за увеличенной зоной операции и управляет манипуляторами, подавая через компьютер голосовые команды.
Военных в робототехнике интересуют прежде всего автономные летающие устройства для сбора разведывательной информации. Агентство DARPA готово финансировать выпуск беспилотных самолетов, в течение 20 - 60 мин полета преодолевающих 30 - 60 км и имеющих при этом массу не более 1 кг, а размеры - 20 см.
Фирма AeroVironment разработала снабженный различными датчиками самолет длиной 7,5 см, который может быть послан на разведку в очень сложных условиях - например, в городе. Пока главной проблемой остается посадка такого самолета, обычно не обходящаяся без поломок. Кроме того, трудно найти небольшой и достаточно мощный двигатель, поэтому фирма рассматривает возможность применения альтернативных (химических) источников энергии. Пока ее самолетик с двухграммовым пропеллером держится в воздухе 16 мин, развивая с попутным ветром скорость 70 км/ч.
Сотрудники лаборатории Вандербилтского университета пошли по другому пути. Они пытаются создать роботы, имитирующие движения насекомых. В них будут применены пьезоэлектрические приводы, используемые в пейджерах и имеющие КПД до 90% (КПД моторов, выполненных по другим технологиям, как правило, составляет около 60%).
Пока военные только готовятся к сражениям без участия людей, энтузиасты уже превратили такие войны в доходный бизнес. В США ежегодно проводится множество состязаний между роботами, цель которых одна - любой ценой “замочить” противника. В турнире BattleBots сражаются радиоуправляемые роботы, вооруженные молотками и прутьями; в уже шестом по счету конкурсе Fire-Fighting Home Robot Contest автономные роботы стреляют друг в друга, перемещаясь внутри жилого дома; организация Seattle Robotics Society проводит целый турнир для роботов Robothon, в который помимо драк входят такие виды “спорта”, как сумо, отжимание и т. д.
Для тех, кто не имеет возможности создать своего робота и отправиться с ним в США, можно предложить виртуальный турнир, проводимый на сайте www.robotwar3d.com.
Программные технологии для роботов
При создании роботов применяется самое разное компьютерное оборудование, нередко требующее низкоуровневого программирования. Для облегчения этой задачи создано немало программных систем. Исследовательская лаборатория Массачусетского технологического института свободно распространяет интерпретатор языка Interactive-C, ориентированный на быстрое выполнение команд и поддержку нескольких процессов, что особенно актуально при разработке робототехнических комплексов. Интерпретатор доступен по адресу: ftp://cher.media.mit.edu/pub/projects/interactive-c/.
Компания Parallax предлагает бортовой компьютер для роботов, который выполняет программы, написанные на Parallax BASIC (версии Бейсика),и поддерживает набор стандартных интерфейсов. В ОЗУ компьютера помещается 600 строк кода, а процессор выполняет 4 тыс. инструкций в секунду.
Фирма NetMedia выпускает более совершенную систему - диалект Бейсика (www.basicx.com), представляющий собой подмножество Microsoft Visual Basic. Микрокомпьютер NetMedia с ОЗУ объемом 64 Кб и многозадачной ОС выполняет команды со скоростью 100 тыс. операторов в секунду. Он использовался, например, при создании робота Fluffy 2, способного самостоятельно обнаруживать и обходить препятствия. При этом программа управляет работой 12 сервомоторов и обрабатывает показания ультразвукового датчика.
Одна из ведущих фирм - разработчиков роботов IS Robotics предлагает на рынке открытую программную архитектуру для управления робототехническими системами на основе технологии CORBA - MOBILITY Robot Software Development Environment Package. Это набор готовых компонентов для конструирования управляющих систем. Графическая оболочка среды разработки выполнена на Java, а само программирование ведется на языке L - усовершенствованном диалекте Common Lisp, поддерживающем параллельное выполнение и синхронизацию работы множества процессов, что необходимо при создании роботов с несколькими системами управления движением и анализа информации от различных периферийных датчиков.
Похожими работами занимается фирма RWI Division, автор так называемой “центральной нервной системы для роботов” uFLEX, связывающей все периферийные блоки робота с единым компьютерным модулем. На основе технологии uFLEX были созданы шагающий робот Ariel для подводного разминирования, набор небольших подводных лодок, имитирующих подвижность и маневренность стай рыб, робот Holon с 36 степенями свободы, несколько серий роботов STRIDE для выполнения разведывательных действий в областях со сложным рельефом, в городской местности и т. д.
Автономные агенты
Технологии автономных агентов привлекательны прежде всего тем, что позволяют разработчику, не знающему точного способа решения задачи или оптимальных параметров управления процессами, обойтись минимумом усилий, создав только один прототип агента, содружество которых затем запускается в компьютерную среду (например, в распределенную сеть) и достаточно эффективно выполняет черновую переработку информации, адаптируясь к окружающей среде и постепенно достигая поставленной цели.
В Колумбийском университете создана система JAM, предназначенная для анализа безопасности проведения электронных транзакций. Центральная самообучающаяся система, первоначально использующая набор шаблонов аномальных ситуаций, следит за изменением содержимого больших и быстро растущих распределенных БД в реальном масштабе времени, выявляя типичное для конкретной организации “поведение” транзакций. За возможными неисправностями и отклонениями в работе следят локальные агенты, также способные к обучению. Они передают накопленные сведения в главную систему, принимающую стратегические решения. Агенты могут объединяться в группы и превращаться в метаагенты, синтезирующие конкретные модели обучения своих подопечных.
Продолжаются работы над технологией Microsoft Agent, вводящей в Windows интерактивные персонажи, с которыми можно общаться и советоваться. Этот подход предполагает принципиально новый интерфейс взаимодействия человека и компьютера (более подробно см. http://msdn.microsoft.com/workshop/imedia/agent/).
Но наиболее перспективным сегодня считается применение интеллектуальных помощников для выполнения всевозможных операций поиска и сбора информации в Интернете - пока это всевозможные сетевые агенты (пауки, Web-роботы), индексирующие данные в Интернете. Однако стремительный и хаотический рост Web-пространства требует новых подходов для отбора нужных сведений. Новые поколения интеллектуальных автономных агентов подходят для этого как нельзя лучше - они способны самообучаться, эффективно взаимодействовать друг с другом и проявлять определенную самостоятельность при общении с клиентом.
Одни разработчики считают, что агент должен делать за пользователя в Интернете все - надо просто послать его за нужной информацией или файлом, и он принесет его “на блюдечке”. В более глобальной перспективе предполагается перенести на агентов и работу по электронной коммерции, когда продавцами и ассистентами будут выступать программы, а людям остается только подсчитывать прибыль. Идея хорошая, но пока для ее реализации нет подходящих ресурсов. Нужны мощные суперкомпьютеры, распределенные хранилища данных, эффективные низкоуровневые технологии поиска и ОС, поддерживающие выполнение мобильного кода.
Определенные шаги в этом направлении делаются. Когда появилась технология Java, группа OMG разработала Mobile Agent System Interoperability Facility - требования к протоколу общения агентов. Развивает эти идеи, в частности, японское отделение IBM, создавшее библиотеку разработчика Java-агентов (аглетов) Java Aglets SDK (www.trl.ibm.co.jp/aglets), в основу которой положен переделанный из Sun’овского слогана “пишется однажды, работает везде” новый: “пишется однажды, передвигается везде”.
Немалую активность в создании агентов для Интернета проявляет DARPA. Оно разработало протокол обмена знаниями и основанный на нем язык общения агентов Knowledge Query and Manipulation Language (KQML), также пригодный для применения в интеллектуальных решателях.
Интересное направление в области автономных агентов родилось с развитием языка XML. На его основе сегодня создаются XML-агенты, способные по запросу предоставлять информацию из произвольных источников данных. Немаловажно, что в отличие от Java-технологии, когда для выполнения байт-кода требуется JVM-машина, XML-агенты описываются единственным тегом <AGENT>, используют всего три типа объектов - “ввод”, “вывод” и “ошибка” и содержат набор рецепторов для общения со своими “коллегами”. Агенты могут применять любой доступный язык сценариев (или специально разработанный XMLScript), а также CGI-программы - в зависимости от возможностей сервера, на котором они выполняются. Главное, чтобы локальные программы стандартно обрабатывали три типа объектов.
Если классические агенты путешествуют по Сети сами, то XML-агенты лишь обмениваются сообщениями и данными с другими агентами с помощью HTTP-запросов, что позволяет создавать сколь угодно сложные структуры автоматического хранения и управления данными.
Окончание следует.