Robossembler - Открытая робототехника
570 subscribers
44 photos
8 videos
2 files
209 links
Ваш персональный фронтир в борьбе роботов за лучшее будущее для кожаных мешков. Open Source Robotics и всё такое. По вопросам сотрудничества пишите @brylev, наш сайт robossembler.org
Download Telegram
​​Трёхслойная архитектура для приложений робототехники

В главе 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