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

2.9 KiB

Observability

Purpose

Определяет доступные оператору средства наблюдения за состоянием робота и симуляции и требования к диагностике отказов без сокрытия ошибок связи или движения.

Requirements

Requirement: Суставная телеметрия

Активный контроллер SHALL публиковать измеренное состояние семи суставов через joint_state_broadcaster для планирования и внешнего чтения.

Scenario: Работа контроллера

  • WHEN аппаратный или симуляционный контроллер активен
  • THEN /joint_states доступен серверу движения, веб-мосту и визуализации

Requirement: RViz по запросу

Основной launch SHALL поддерживать отдельный аргумент rviz для визуализации модели и планирования.

Scenario: RViz включён

  • WHEN launch получает rviz:=true
  • THEN запускаются RViz-узлы с конфигурацией из digital_twin.rviz.config

Requirement: Foxglove bridge по настройке

При foxglove.enabled=true система SHALL запускать foxglove_bridge с настроенными портом, адресом, TLS и списками разрешённых топиков, сервисов и параметров.

Scenario: Foxglove отключён

  • WHEN foxglove.enabled=false
  • THEN bridge не запускается основным launch

Requirement: Явное сообщение об отказе FRI

Аппаратная подсистема MUST сообщать диагностическую причину ошибки FRI, включая ошибки SDK, тайм-аут цикла, неверный период и потерю сессии.

Scenario: Ошибка FRI step

  • WHEN FRI step() завершается неуспешно
  • THEN worker отмечает отказ, прекращает нормальный обмен и выводит сообщение об ошибке

Requirement: Различение состояний движения

Action движения SHALL публиковать обратную связь planning и executing, а окончательный результат SHALL содержать сообщение, пригодное для диагностики.

Scenario: Планирование цели

  • WHEN сервер начал обработку action-цели
  • THEN клиент получает стадию planning, затем executing до вызова планирования и исполнения