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
​​Открытая архитектура для аппаратного ускорения в ROS 2

Компания Acceleration Robotics, основанная бывшим системным архитектором Xilinx Виктором Майорал-Вилчесом (Víctor Mayoral-Vilches), анонсировала открытую архитектуру для аппаратного ускорения для приложений ROS 2. Публикация была сделана в блоге компании, в также в виде научной статьи для конференции IROS 22. Ведётся работа по включению данной архитектуры в набор стандартов ROS - REP-2008 - в рамках ROS 2 Hardware Acceleration Working Group. Компания использует данную архитектуру для разработки собственных коммерческих систем аппаратного ускорения ROS 2 под названием RobotCore, поддерживающий широкий класс оборудования (аппаратных модулей GPU/FPGA от NVIDIA, AMD, Xilinx).

Архитектура включает в себя следующие расширения для ROS 2:
- расширения для системы сборки (ament)
- расширения для инструментов сборки (colcon)
- добавляет новый компонент встроенного программного обеспечения в workspace, упрощающий сборку и развертывание ядер ускорения (acceleration kernels - GPU/FPGA)
- инструменты отслеживания и измерения производительности в реальном времени, основанные на Linux Tracing Toolkit (LTTng).

#fpga #gpu #acceleration #architecture
​​Анатомия Linux

Часто у новичков, впервые поставивших себе Linux, возникает шок от обилия непонятных абберивиатур, которыми пестрят мануалы по настройке тех или иных компонентов системы - alsa, grub, snap, apt и тому подобные. Во многом это обсусловлено объективными факторами, а именно - особенностью развития открытых систем как именно набора формально независимых компонентов, взаимодействующих через публичные API. Если проприетарные системы, как правило, пытаются изолировать пользователя от внутренней структуры своего продукта, представляя коробочное решение, то системы с открытым кодом представляют пользователю определённую свободу взаимодействия со всеми своими компонентами. Однако, за свободу приходится платить высоким порогом входа.

Данная статья является попыткой показать Linux не как монолита (хотя само ядро как раз таковым является), а экосистемой из разнообразных проектов, объединённых открытыми стандартами, протоколами и, разумеется, кодом. Это своеобразный коструктор, из которого собирается всё то многообразие дистрибутивов, которое мы знаем на данный момент.

#linux #os #architecture