Трёхслойная архитектура для приложений робототехники
В главе Robotic Systems Architectures and Programming из Springer Handbook of Robotics'2016 приводится трёх-слойная архитектура ПО для управления робоагентами:
Behavioral control, иногда называемый также Skill Layer или Controller, представляет нижний слой управления и непосредственно соединён с Датчиками и Исполнительными устройствами робота. Примеры задач на этом слое: найти дверь, найти дверную ручку, проследовать в локацию, избегая препятствия и т.д. Это слой может быть реализован с помощью низкоуровневых планировщиков типа MoveIt или Navigation.
Executive (Sequencing) Layer - слой, соединяющий числовое управление на нижнем слое и символьное управление на верхнем слое, управляет передачей сообщений из высокоуровневых планов (goals, цели) к низкоуровневым (behaviours, поведения). Декомпозирует задачи в иерархии подзадач, вызывает соответствующие функции нижнего слоя, следит за их исполнением и обрабатывает ошибки. Иногда этот слой управляет ресурсами, если эта функция не доверена уровню Planning. Данный слой также может управлять распараллеливанием задач. В прикладных задачах часто для исполнения этих функций используются фреймворки для программирования деревьев поведения, конечных автоматов. Например, FlexBE или BehavoirTree.CPP.
Planning (Deliberating) Layer - отвечает за определение долгосрочных действий робота на основе целей высокого уровня. Там, где компонент Behavioural Control связан с здесь-и-сейчас, а Executive озабочен тем, что только что произошло и что должно произойти дальше, компонент Planning смотрит в будущее. Он занимается долгосрочным планированием, управлением ресурсами, построением оптимальных маршрутов, изменением планов. Пожалуй, этот лучше всего подходит для нашего планировщика и может быть реализован с помощью библиотеки Plansys2.
#theory #architecture #software
В главе Robotic Systems Architectures and Programming из Springer Handbook of Robotics'2016 приводится трёх-слойная архитектура ПО для управления робоагентами:
Behavioral control, иногда называемый также Skill Layer или Controller, представляет нижний слой управления и непосредственно соединён с Датчиками и Исполнительными устройствами робота. Примеры задач на этом слое: найти дверь, найти дверную ручку, проследовать в локацию, избегая препятствия и т.д. Это слой может быть реализован с помощью низкоуровневых планировщиков типа MoveIt или Navigation.
Executive (Sequencing) Layer - слой, соединяющий числовое управление на нижнем слое и символьное управление на верхнем слое, управляет передачей сообщений из высокоуровневых планов (goals, цели) к низкоуровневым (behaviours, поведения). Декомпозирует задачи в иерархии подзадач, вызывает соответствующие функции нижнего слоя, следит за их исполнением и обрабатывает ошибки. Иногда этот слой управляет ресурсами, если эта функция не доверена уровню Planning. Данный слой также может управлять распараллеливанием задач. В прикладных задачах часто для исполнения этих функций используются фреймворки для программирования деревьев поведения, конечных автоматов. Например, FlexBE или BehavoirTree.CPP.
Planning (Deliberating) Layer - отвечает за определение долгосрочных действий робота на основе целей высокого уровня. Там, где компонент Behavioural Control связан с здесь-и-сейчас, а Executive озабочен тем, что только что произошло и что должно произойти дальше, компонент Planning смотрит в будущее. Он занимается долгосрочным планированием, управлением ресурсами, построением оптимальных маршрутов, изменением планов. Пожалуй, этот лучше всего подходит для нашего планировщика и может быть реализован с помощью библиотеки Plansys2.
#theory #architecture #software