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