# Sunrise Program ## Purpose Определяет обязанности программы на контроллере KUKA при установлении FRI-сессии и ограничения выбранного сетевого и управляющего режима. ## Requirements ### Requirement: Отдельное развёртывание `ServerFriRos2` SHALL собираться и развёртываться в Sunrise Workbench отдельно от ROS workspace; физический запуск MUST сверять адрес ПК, порт FRI, инструмент и Load Data с конфигурацией ячейки. #### Scenario: Новый контроллер - **WHEN** программа переносится на другую ячейку - **THEN** оператор проверяет сетевые константы, имя инструмента и его данные нагрузки перед FRI-сессией ### Requirement: Выбор интерфейса сети Программа SHALL предлагать KONI или KLI и использовать адрес ПК выбранной сети при создании FRI-конфигурации. #### Scenario: Выбран KLI - **WHEN** оператор выбирает KLI - **THEN** период отправки устанавливается в 10 мс и режим ручного ведения недоступен в меню ### Requirement: Подъезд до запуска FRI Программа SHALL перемещать робот в предварительно заданное суставное положение до открытия FRI-сессии; оператор MUST проверять это положение для своей ячейки и инструмента. #### Scenario: Запуск физической программы - **WHEN** оператор начинает `ServerFriRos2` - **THEN** робот выполняет настроенный подъезд до входа в позиционный или мониторинговый режим FRI ### Requirement: Выбор командного режима Для позиционного управления программа SHALL создавать FRI-сессию с позиционными суставными командами; выбранный режим управления SHALL соответствовать возможностям клиентского аппаратного интерфейса. #### Scenario: Позиционный режим - **WHEN** оператор выбирает Position или JointImpedance для командного движения - **THEN** клиент ROS получает сессию с `POSITION` command mode и `JOINT` overlay ### Requirement: Мониторинг без команд Режим Monitor SHALL быть доступен только при выборе KONI; перед ручным ведением программа SHALL проверить данные нагрузки инструмента и предупредить оператора, если проверка не прошла. #### Scenario: Попытка Monitor на KLI - **WHEN** оператор выбирает KLI - **THEN** программа не предлагает Monitor как режим запуска #### Scenario: Неверные Load Data - **WHEN** проверка нагрузки инструмента в Monitor не проходит - **THEN** программа показывает предупреждение и предоставляет оператору выбор остановить запуск или явно продолжить ### Requirement: Завершение сессии Программа MUST закрывать FRI-сессию при штатном окончании и при освобождении приложения, включая ошибки соединения. #### Scenario: Нет клиента - **WHEN** FRI-клиент не подключается в отведённые 30 секунд - **THEN** программа сообщает тайм-аут и закрывает сессию