Files

48 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Robot Model
## Purpose
Фиксирует кинематическую модель семиосевого iiwa 7, систему координат TCP, ограничения суставов и зависимость модели от выбранного инструмента.
## Requirements
### Requirement: Семь осей и единицы
Модель SHALL содержать суставы `joint1`–`joint7` в заданном порядке; суставные положения SHALL выражаться в радианах, скорости в радианах в секунду.
#### Scenario: Публикация состояния
- **WHEN** запущен `joint_state_broadcaster`
- **THEN** `/joint_states` содержит имена и значения всех семи управляемых суставов
### Requirement: Согласованные лимиты
URDF, `ros2_control`, MoveIt и проверка внешних суставных команд MUST брать границы из `joint_limits.yaml` с учётом мягкого диапазона там, где он предусмотрен.
#### Scenario: Суставная цель вне мягкой границы
- **WHEN** HTTP-запрос суставного движения содержит угол за допустимой границей
- **THEN** запрос отклоняется до отправки ROS action с кодом 422
### Requirement: Активный инструмент
Конфигурация инструмента SHALL определять Xacro-описание, конечное звено кинематической цепи, TCP и пары отключённых самоколлизий.
#### Scenario: Выбор инструмента из реестра
- **WHEN** `cobot robot-setup` применяет инструмент из `tools.yaml`
- **THEN** обновляются `tool_active.xacro` и `iiwa7.srdf`, сохраняя существующие именованные положения
#### Scenario: Нет инструмента
- **WHEN** выбран `none`
- **THEN** TCP совпадает с `link_ee` через фиксированное соединение
### Requirement: Декартова система координат
Декартово движение SHALL задавать целевую позу TCP относительно указанного `frame_id`, по умолчанию `base_link`.
#### Scenario: Рамка не указана
- **WHEN** клиент оставляет `frame_id` пустым
- **THEN** сервер движения использует `planning.default_frame`
### Requirement: Именованные положения
Именованные положения SHALL определяться `group_state` в SRDF и предоставляться клиенту вместе с именами и углами суставов.
#### Scenario: Запрос каталога
- **WHEN** клиент вызывает `GET /robot/positions`
- **THEN** возвращаются доступные `group_state` с именем, группой, описанием и суставными углами