Смартфон как джойстик для робота
Команда SpesRobotics представила проект teleop — инструмент, превращающий любой современный смартфон в устройство для телеуправления роботизированными манипуляторами. Решение использует WebXR API для отслеживания ориентации и положения устройства в 3D-пространстве, передавая данные на сервер, который управляет роботом.
Процесс настройки занимает три шага: установка сервера на ПК, открытие URL на телефоне и нажатие кнопки Start. Для iPhone требуется использование браузеров XR Browser или WebXR Viewer, так как Safari не поддерживает WebXR напрямую.
Ключевые возможности и интеграция
Библиотека поддерживает несколько сценариев использования, от простых прототипов до интеграции в ROS 2. Особое внимание уделено работе с инверсной кинематикой (IK) через утилиты JacobiRobot (на базе Pinocchio) и JacobiRobotROS.
Проект включает готовые интерфейсы для манипуляторов xArm (включая Lite 6) и симулятора Webots (для UR5e). Для ROS 2 публикуются топы target_frame (целевая поза) и tf (трансформация для визуализации), подписываясь на current_pose.
Сравнение интерфейсов и частот
Качество управления напрямую зависит от частоты обновления данных. Смартфоны обеспечивают около 30 FPS, что может требовать фильтрации, тогда как VR-джойстики выдают 90 FPS, обеспечивая более плавное управление без дополнительных фильтров.
| Интерфейс | Назначение | Ключевые особенности |
|---|---|---|
| Basic | Отладка и тесты | Вывод данных в консоль, нет фильтрации |
| xArm | Управление xArm (Lite 6) | Простая интеграция, требует высокой частоты источника |
| ROS 2 | Интеграция с MoveIt Servo / cartesian_controllers | Работа с топиками geometry_msgs, tf2_msgs |
| ROS 2 IK | Управление через инверсную кинематику | Использует JacobiRobot, поддержка joint_trajectory_controller |
Техническая реализация
Для продвинутых пользователей доступна установка в режиме редактирования (pip install -e) и запуск тестов через pytest. Библиотека позволяет создавать кастомные интерфейсы, подписываясь на колбэки с 4x4 матрицами трансформации конца манипулятора. Установка дополнительных утилит для кинематики осуществляется командой pip install teleop[utils].
Источник: Github ↗
