Files
lightweight-cobot/openspec/specs/simulation/spec.md
T

44 lines
3.0 KiB
Markdown

# 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-гизмы не активируются