Добавлена спецификация и навыки для codex и kimi-code
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# FRI Control
|
||||
|
||||
## Purpose
|
||||
|
||||
Описывает контракт управления физическим iiwa 7 через Sunrise FRI 1.16 и `ros2_control`, включая синхронизацию циклов, допустимые команды и отказ при потере надёжной связи.
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: Разделение циклов
|
||||
FRI-клиент SHALL выполнять отдельный циклический обмен с Sunrise и синхронизировать его с блокирующим циклом `controller_manager`.
|
||||
|
||||
#### Scenario: Согласованный период
|
||||
- **WHEN** аппаратный режим запускается с `robot.fri_cycle_ms=10`
|
||||
- **THEN** частота `controller_manager` задаётся равной 100 Гц
|
||||
|
||||
#### Scenario: Несовпадение периода
|
||||
- **WHEN** Sunrise сообщает период, отличный от настроенного FRI-периода
|
||||
- **THEN** обмен фиксирует ошибку вместо продолжения движения
|
||||
|
||||
### Requirement: Позиционный интерфейс
|
||||
Аппаратный интерфейс SHALL предоставлять команду положения для семи суставов и публиковать измеренные положение, скорость, усилие и внешний момент там, где доступны данные FRI.
|
||||
|
||||
#### Scenario: Активное позиционное управление
|
||||
- **WHEN** FRI находится в `COMMANDING_ACTIVE` с `POSITION` и `JOINT` overlay
|
||||
- **THEN** клиент передаёт полный массив семи суставных положений в радианах
|
||||
|
||||
### Requirement: Проверка режима и телеметрии
|
||||
Система MUST отвергать командование при неверном режиме, недостаточном качестве связи, нарушении safety-состояния, неактивных приводах или нечисловой телеметрии.
|
||||
|
||||
#### Scenario: Неверный FRI-режим
|
||||
- **WHEN** Sunrise сообщает командный режим, отличный от `POSITION` с `JOINT` overlay
|
||||
- **THEN** цикл командования завершается ошибкой и не принимает новую цель приложения
|
||||
|
||||
### Requirement: Ограничение команды
|
||||
Клиент MUST проверять конечность каждого целевого угла и допустимый диапазон до отправки; между циклами он SHALL ограничивать шаг по настроенной скорости и применять настроенное сглаживание положения.
|
||||
|
||||
#### Scenario: Цель за пределом
|
||||
- **WHEN** получена суставная цель вне настроенных пределов
|
||||
- **THEN** команда отвергается до вызова FRI `setJointPosition`
|
||||
|
||||
### Requirement: Остановка при нарушении цикла
|
||||
Система MUST считать пропуск FRI-пакета, отсутствие продвижения временной метки, истечение watchdog и выход из `COMMANDING_ACTIVE` отказом, требующим явного восстановления.
|
||||
|
||||
#### Scenario: Застывший цикл ros2_control
|
||||
- **WHEN** FRI-цикл не завершён `ros2_control` за 100 мс
|
||||
- **THEN** FRI worker отмечает отказ и прекращает дальнейшую нормальную выдачу целей
|
||||
|
||||
#### Scenario: Нет готовой сессии
|
||||
- **WHEN** сессия не достигла `MONITORING_READY` за 15 секунд после начала обмена
|
||||
- **THEN** инициализация завершается ошибкой
|
||||
|
||||
Reference in New Issue
Block a user