52 lines
3.7 KiB
Markdown
52 lines
3.7 KiB
Markdown
# Deployment
|
||
|
||
## Purpose
|
||
|
||
Определяет воспроизводимый запуск LWC в локальной или контейнерной среде, выбор физического робота или Webots и правила загрузки единой конфигурации.
|
||
|
||
## Requirements
|
||
|
||
### Requirement: Целевая платформа
|
||
Система SHALL поддерживать нативный запуск на Ubuntu 24.04 с ROS 2 Jazzy и отдельный Docker-сценарий на совместимом Linux-хосте.
|
||
|
||
#### Scenario: Локальная подготовка
|
||
- **WHEN** пользователь запускает `cobot local-setup` на поддерживаемом хосте
|
||
- **THEN** мастер проверяет зависимости ROS 2 и Webots и собирает workspace из `src/`
|
||
|
||
### Requirement: Явный выбор режима
|
||
Команда `cobot run` SHALL предлагать среду запуска и режим контроллера или Webots; режим Webots SHALL передавать launch-аргумент `simulate:=1`.
|
||
|
||
#### Scenario: Выбор симуляции
|
||
- **WHEN** пользователь выбирает «Симулятор Webots»
|
||
- **THEN** запускается общее дерево `iiwa.launch.py` с симуляционной аппаратной моделью и временем `/clock`
|
||
|
||
#### Scenario: Выбор контроллера
|
||
- **WHEN** пользователь выбирает «Контроллер»
|
||
- **THEN** запускается то же дерево с FRI hardware interface и системным временем
|
||
|
||
### Requirement: Единый файл настроек
|
||
Основной launch SHALL загружать путь из аргумента `setting`, разрешать `pkg://` пути и передавать параметры подсистемам из загруженной структуры.
|
||
|
||
#### Scenario: Пользовательская конфигурация
|
||
- **WHEN** задан `setting:=/path/to/cobot-setting.yaml`
|
||
- **THEN** launch использует этот файл для параметров робота, симуляции, планирования, веб-сервера и Foxglove
|
||
|
||
### Requirement: Ошибка конфигурации до движения
|
||
Система MUST отклонять некорректные обязательные параметры и отсутствующие обязательные файлы конфигурации до начала командного движения.
|
||
|
||
#### Scenario: Неверный период FRI
|
||
- **WHEN** `fri_cycle_ms` находится вне диапазона 1–100 мс
|
||
- **THEN** запуск аппаратного контроллера завершается ошибкой конфигурации
|
||
|
||
#### Scenario: Неверные параметры TCP-гизмы
|
||
- **WHEN** значение тайм-аута или скорости TCP-гизмы неположительно либо не является конечным числом
|
||
- **THEN** загрузчик настроек отвергает конфигурацию
|
||
|
||
### Requirement: Состав запуска
|
||
Основной launch SHALL поднимать публикацию состояния робота, контроллеры, MoveIt и сервер движения; Webots, RViz, веб-сервер и Foxglove SHALL включаться согласно режиму и настройкам.
|
||
|
||
#### Scenario: Отключён веб-сервер
|
||
- **WHEN** `web.enabled` имеет значение `false`
|
||
- **THEN** узел `iiwa_web_server` не добавляется в launch
|
||
|