АРХИТЕКТУРЫ РОБОТОТЕХНИЧЕСКОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Архитектурой программного обеспечения называется применяемая методология структуризации алгоритмов. В понятие архитектуры обычно включают языки и инструментальные средства для написания программ, а также общий подход к тому, как должно быть организовано взаимодействие программ.
Предложения по созданию современных архитектур программного обеспечения для робототехники должны отвечать на вопрос о том, как сочетаются реактивные средства управления и основанные на модели алгоритмические средства управления. Преимущества и недостатки реактивных и алгоритмических средств управления таковы, что эти средства во многом дополняют друг друга. Реактивные средства управления действуют на основании сигналов, полученных от датчиков, и хорошо подходят для принятия решений низкого уровня в реальном времени. Однако реактивные средства управления лишь в редких случаях позволяют вырабатывать приемлемые решения на глобальном уровне, поскольку глобальные управляющие решения зависят от информации, которая не может быть воспринята с помощью датчиков во время принятия решения. Для таких задач в большей степени подходят алгоритмические средства управления.
В связи с этим в большинстве вариантов робототехнических архитектур реактивные методы используются на низких уровнях управления, а алгоритмические методы — на более высоких уровнях. Такая комбинация средств управления уже встречалась в данной главе в описании PD-контроллеров, где было показано, как сочетается (реактивный) PD-контроллер с (алгоритмическим) планировщиком пути. Архитектуры, в которых сочетаются реактивные и алгоритмические методы, обычно называют гибридными архитектурами.
Обобщающая архитектура
Обобщающая архитектура [189] представляет собой инфраструктуру для сборки реактивных контроллеров из конечных автоматов. Узлы этих автоматов могут содержать средства проверки для некоторых сенсорных переменных, и в таких случаях трассировка выполнения конечного автомата становится обусловленной результатом подобной проверки. Дуги могут быть размечены сообщениями, которые вырабатываются при прохождении по этим дугам, после чего сообщения передаются в двигатели робота или другие конечные автоматы. Кроме того, конечные автоматы оборудованы внутренними таймерами (часами), которые управляют затратами времени, требуемыми для прохождения дуги. Полученные в итоге автоматы обычно называют дополненными конечными автоматами, или сокращенно AFSM (Augmented Finite State Machine), где под дополнением подразумевается использование часов.
Примером простого автомата AFSM может служить автомат с четырьмя состояниями, показанный на рис. 25.21, б, который вырабатывает команды циклического движения ноги для шестиногого шагающего робота. Этот автомат AFSM реализует циклический контроллер, который действует в основном без учета обратной связи от среды. Тем не менее обратная связь от датчика учитывается на этапе переноса ноги вперед. Если нога не может пройти вперед, что означает наличие впереди препятствия, робот отводит ногу немного назад, поднимает ее выше и предпринимает попытку еще раз выполнить шаг вперед. Поэтому данный контроллер приобретает способность реагировать на непредвиденные ситуации, возникающие в процессе взаимодействия робота со своей средой.
В обобщающей архитектуре предусмотрены дополнительные примитивы для синхронизации работы автоматов AFSM, а также для комбинирования выходных данных, поступающих от многочисленных, возможно конфликтующих автоматов AFSM. Благодаря этому такая архитектура позволяет программисту компоновать все более и более сложные контроллеры по принципу восходящего проектирования. В рассматриваемом примере можно начать с создания автоматов AFSM для отдельных ног, а вслед за этим ввести автомат AFSM для координации действий одновременно нескольких ног. В качестве надстройки над этими автоматами можно реализовать такое поведение высокого уровня, как предотвращение столкновений с крупными препятствиями, для чего могут потребоваться такие операции, как отступление и изменение направления движения.
Идея компоновки контроллеров роботов из автоматов AFSM весьма заманчива. Достаточно представить себе, насколько сложно было бы выработать такое же поведение с использованием любого из алгоритмов планирования пути в пространстве конфигураций, описанных в предыдущем разделе. Прежде всего, потребовалось бы точная модель местности. Пространство конфигураций робота с шестью ногами, каждая из которых приводится в действие двумя отдельными двигателями, имеет общее количество измерений, равное восемнадцати (двенадцать измерений для конфигурации ног и шесть для локализации и ориентации робота относительно его среды). Даже если бы применяемые компьютеры были достаточно быстродействующими для того, чтобы обеспечить поиск путей в таких многомерных пространствах, все равно нельзя было бы избавиться от необходимости учитывать такие неприятные ситуации, как скольжение робота по склону. Из-за таких стохастических эффектов единственный найденный путь через пространство конфигураций был бы наверняка слишком трудновыполнимым, и с возможными непредвиденными ситуациями не помог бы справиться даже PID-контроллер. Иными словами, задача выработки поведения, определяющего движение с помощью алгоритмических расчетов, слишком сложна для современных алгоритмов планирования движения робота.
К сожалению, обобщающая архитектура также не лишена недостатков. Во-первых, автоматы AFSM обычно действуют под управлением непосредственно полученных сенсорных входных данных. Такая организация работы оправдывает себя, если сенсорные данные надежны и содержат всю необходимую информацию для принятия решения, но становится неприемлемой, если есть необходимость агрегировать сенсорные данные, полученные за определенные промежутки времени, с помощью нетривиальных способов. Поэтому контроллеры обобщающего типа в основном применяются для решения локальных задач, таких как прохождение вдоль стены или движение к видимым источникам света. Во-вторых, из-за отсутствия средств выполнения алгоритмических расчетов изменение задания для робота становится затруднительным. Робот обобщающего типа обычно выполняет только одно задание, и нет такого способа, который позволил бы модифицировать его средства управления таким образом, чтобы он приспособился к выполнению других задач управления (в этом роботы такого типа полностью аналогичны навозному жуку, о котором речь шла на с. 1). Наконец, в работе контроллеров обобщающего типа трудно разобраться. На практике возникают такие запутанные взаимодействия десятков одновременно функционирующих автоматов AFSM (и со средой), что большинство программистов не в состоянии их проанализировать. По всем этим причинам, несмотря на свою огромную историческую важность, обобщающая архитектура редко используется в коммерческой робототехнике. Но для некоторых ее потомков судьба сложилась иначе.







Материалы

Яндекс.Метрика