# 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` с именем, группой, описанием и суставными углами