Добавлена спецификация и навыки для codex и kimi-code
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# 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-сервис остановки
|
||||
|
||||
Reference in New Issue
Block a user