3.6 KiB
Motion Arbitration
Purpose
Определяет согласование конкурирующих источников движения, интерактивное управление TCP в Webots и семантику общей команды остановки.
Requirements
Requirement: Приоритет обычного движения
При включённой TCP-гизме цели обычного траекторного action SHALL иметь приоритет над низкоприоритетной командой гизмы.
Scenario: Цель MoveIt при активности гизмы
- WHEN поступает обычная цель
FollowJointTrajectory - THEN выдача новых низкоприоритетных целей блокируется до терминального результата контроллера
Requirement: Аренда приоритета
Сервис /cobot/tcp_gizmo/priority SHALL выдавать именованную аренду на конечный TTL по настенным часам и поддерживать продление и освобождение.
Scenario: Некорректный TTL
- WHEN владелец пуст или TTL не находится в допустимом интервале
(0, 60]секунд - THEN запрос аренды отклоняется
Scenario: Потеря аренды
- WHEN продление аренды из сервера движения не подтверждено
- THEN текущая операция движения прерывается с ошибкой приоритета
Requirement: Одна команда на жест
Гизма SHALL преобразовывать отпускание маркера в одну цель TCP с текущей эпохой состояния и SHALL отвергать устаревшую эпоху или недоступную обратную связь.
Scenario: Устаревшая эпоха
- WHEN команда содержит эпоху, отличную от опубликованной в
GizmoState - THEN цель не отправляется контроллеру и публикуется причина отклонения
Requirement: Безопасный переход приоритета
Новая высокоприоритетная команда SHALL ждать терминального результата уже переданной низкоприоритетной траектории до отправки контроллеру.
Scenario: Низкая цель ещё исполняется
- WHEN поступает высокая цель во время исполнения цели гизмы
- THEN высокая цель ожидает подтверждённого завершения низкой цели
Requirement: Общая остановка
/cobot/stop SHALL отменять текущую операцию планировщика и инвалидировать ожидающие операции; POST /stop дополнительно SHALL останавливать runner и прямую траекторию.
Scenario: HTTP остановка
- WHEN клиент вызывает
POST /stop - THEN веб-сервер останавливает последовательность, отправляет удержание/сброс прямой траектории и вызывает ROS-сервис остановки