AI & Robotics Lab
19 subscribers
71 photos
28 videos
9 files
108 links
Explore AI code generation, robotics, and ROS with original projects and hands-on guides. Follow along as I share my experience, code samples, and tips for building intelligent systems.
Download Telegram
🤳 Управление роботами с помощью MoveIt

MoveIt — это программная платформа для робототехники, которая упрощает управление манипуляторами.

Обзор архитектуры - concepts
Центральным элементом MoveIt является узел ROS под названием move_group. Он функционирует как интегратор, объединяя все компоненты системы и предоставляя пользователям интерфейс для управления роботом через топики и экшены (action) ROS.

Пользователи могут взаимодействовать с move_group тремя основными способами:
◦ C++: с помощью интерфейса move_group_interface.
◦ Python: через пакет moveit_commander.
◦ GUI: используя плагин для Rviz (визуализатор ROS).

Для своей работы move_group использует три вида конфигурации:
URDF (Unified Robot Description Format): XML-файл, описывающий геометрию и кинематическую схему робота.
SRDF (Semantic Robot Description Format): Файл, дополняющий URDF семантической информацией, например, определением групп суставов ("рука", "захват") или поз робота ("домой").
◦ Конфигурационные файлы MoveIt: YAML-файлы, содержащие настройки для планировщиков, кинематики, сенсоров и другие параметры.

Ключевые компоненты
Planning Scene (Сцена планирования): Это внутреннее представление мира, которое включает в себя робота, известные объекты (препятствия) и прикрепленные к роботу предметы. MoveIt использует эту сцену для проверки столкновений.
Motion Planning (Планирование движений): MoveIt использует плагины для подключения различных алгоритмов планирования (по умолчанию OMPL). Пользователь отправляет запрос на планирование, указывая целевую позу для манипулятора и ограничения (например, не сталкиваться с объектами). В ответ move_group генерирует траекторию движения, которая является безопасной и учитывает кинематические ограничения.
Planning Request Adapters (Адаптеры запросов): Позволяют изменять запросы до планирования и обрабатывать результаты после. Например, они могут сглаживать траекторию или добавлять в нее временные параметры (скорости и ускорения).
Kinematics (Кинематика): Для расчета положений суставов на основе заданной позы конечного звена (инверсная кинематика) MoveIt использует плагины. По умолчанию используется численный решатель, но пользователи могут подключить и аналитические решатели, например, сгенерированные с помощью IKFast.
Collision Checking (Проверка столкновений): Для предотвращения столкновений робота с окружающей средой или с самим собой используется библиотека FCL. Оптимизировать этот процесс помогает Allowed Collision Matrix (ACM) — матрица, которая указывает, какие пары звеньев можно не проверять на столкновения (например, соседние звенья или те, что физически не могут столкнуться).

#ros2 #moveit
1