Главная arrow Робототехника arrow Обобщающая архитектура
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Обобщающая архитектура Печать

Обобщающая архитектура представляет собой инфраструктуру для сборки реактивных контроллеров из конечных автоматов. Узлы этих автоматов могут содержать средства проверки для некоторых сенсорных переменных, и в таких случаях трассировка выполнения конечного автомата становится обусловленной результатом подобной проверки. Дуги могут быть размечены сообщениями, которые вырабатываются при прохождении по этим дугам, после чего сообщения передаются в двигатели робота или другие конечные автоматы. Кроме того, конечные автоматы оборудованы внутренними таймерами (часами), которые управляют затратами времени, требуемыми для прохождения дуги. Полученные в итоге автоматы обычно называют дополненными конечными автоматами, или сокращенно AFSM (Augmented Finite State Machine), где под дополнением подразумевается использование часов.

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

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

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

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

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

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