Добавлена спецификация и навыки для codex и kimi-code

This commit is contained in:
Даниил Грабарь
2026-11-05 14:07:19 +10:00
parent 0e3fd0358f
commit 54f8f14ed7
30 changed files with 3385 additions and 2 deletions
+43
View File
@@ -0,0 +1,43 @@
# Simulation
## Purpose
Описывает цифровой двойник в Webots для проверки запуска, суставного управления, объектов сцены, камер и интерактивного TCP без подключения к физическому роботу.
## Requirements
### Requirement: Симуляционный контроллер
Режим `simulate` SHALL создавать модель iiwa в Webots и использовать `webots_ros2_control` вместо FRI hardware interface.
#### Scenario: Запуск Webots
- **WHEN** launch получает `simulate:=true`
- **THEN** создаётся робот в выбранном world, а контроллеры запускаются с симуляционным временем
### Requirement: Начальное состояние и геометрия
Симуляция SHALL загружать начальные суставные положения, ограничения, инструмент и преобразование размещения робота из конфигурации.
#### Scenario: Изменён активный инструмент
- **WHEN** инструмент применён до нового запуска Webots
- **THEN** URDF модели содержит соответствующую геометрию и TCP
### Requirement: Объекты сцены
При включённых `digital_twin.webots.objects` система SHALL размещать заданное число объектов из перечисленных OBJ-моделей в настроенной области относительно основания робота.
#### Scenario: Повтор моделей
- **WHEN** число объектов больше числа доступных моделей
- **THEN** модели могут повторяться, а общее число создаваемых объектов соответствует `count`
### Requirement: Камеры
Камеры Webots SHALL загружаться из файлов конфигурации; включённый драйвер SHALL публиковать изображения и `CameraInfo`, а для датчика глубины — предусмотренные глубинные данные.
#### Scenario: Настроена D455
- **WHEN** в списке камер указан `d455_top.yaml`
- **THEN** симуляционный запуск создаёт камеру с именами топиков и параметрами из этого файла
### Requirement: Симуляционный TCP-инструмент
TCP-гизма SHALL запускаться только при включённом флаге и в режиме симуляции.
#### Scenario: Физический режим
- **WHEN** запуск выполняется с `simulate:=false`
- **THEN** узлы интерактивной TCP-гизмы не активируются