feat: Добавлен алгоритм 53

This commit is contained in:
Андрей Скирченко 2024-08-06 11:14:55 +03:00
parent f3f4d00e37
commit 46d658f3f9
4 changed files with 132 additions and 3 deletions

113
algorithm_53/body.puml Normal file
View File

@ -0,0 +1,113 @@
@startuml
|#696969|Оператор-наладчик|
:Выполнить программу для проверки калибровки.
По этой подпрограмме робот подводит сварочные клещи
к эталонной пластине и в предназначенном для выполнения
проверки калибровки месте сжимает клещи;
|#fc9738|Робот|
:Сигнал об успешном завершении работы
подпрограммы и выходе в точку для проверки;
:Запросить актуальные значения дальномеров и
координат точек на грани детали с камеры;
|#458ff7|ТСК|
:Обработать запрос на отправку в контроллер
робота значений датчиков сенсорной системы;
:Выполняет диагностику сенсорной системы;
note right: Алгоритм 51
if (Система исправна?) then (нет)
:Отправить код и описание ошибки;
|#fc9738|Робот|
:Отобразить принятые коды и описание ошибки
работы сенсорной системы;
end
else (да)
|#458ff7|ТСК|
:Применить калибровку для перевода значений
смещений из пикселей в миллиметры и
расчета угла наклона (для камеры), значения
с дальномеров получить как есть, без
применения калибровок;
:Отправить в контроллер робота значения
датчиков сенсорной системы, а также
значения порогов для последующего сравнения;
|#fc9738|Робот|
:Вывести в ЧМИ полученные значения;
if (Значения с дальномеров и камеры в диапазоне?) then (да)
end
else (нет)
:Сделать кнопку "Откалибровать" доступной
для нажатия оператором;
if (Кнопка нажата?) then (нет)
end
else (да)
|#458ff7|ТСК|
:Разжать клещи;
|#fc9738|Робот|
:Вывести робот в домашнее положение;
:Выдать сообщение "Установить оснастку
для калибровки камеры и дальномеров";
|#696969|Оператор-наладчик|
:Установить оснастку и подтвердить продолжение
калибровки;
|#fc9738|Робот|
if (Подтверждение получено?) then (нет)
end
else (да)
:Отправить сигнал "откалибровать дальномеры", если
было превышение порога по дальномерам,
"откалибровать камеру", если было превышение
по камере;
|#458ff7|ТСК|
:Получение сигнала;
split
:Обработать сигнал на калибровку дальномеров
из состава сенсорной системы;
:По каждому дальномеру принять текущее
значение как эталонное для перевода в
систему координат электрода;
split again
:Обработать сигнал на калибровку камеры
из состава сенсорной системы;
:Переключить профиль в ПО камеры (профиль
создается на заводе изготовителе);
:Получить данные с камеры;
:Выполнить расчет данных согласно
описанию алгоритма "Вычисление координат
ценра электрода";
end split
:Сохранить калибровку (Значения с дальномеров
и центр электрода);
:Отправить сигнал о завершении калибровки;
|#fc9738|Робот|
:Вывести в ЧМИ сообщение об успешном
завершении калибровки;
endif
endif
endif
endif
@enduml

3
algorithm_53/input.puml Normal file
View File

@ -0,0 +1,3 @@
@startuml
@enduml

13
algorithm_53/main.puml Normal file
View File

@ -0,0 +1,13 @@
@startuml
title
Алгоритм 53
Калибровка датчиков из состава сенсорной системы
end title
!include input.puml
!include body.puml
stop
@enduml

View File

@ -1,7 +1,8 @@
import argparse import argparse
from os import path, mkdir from os import path, mkdir
TEXT = "@startuml\n\nstart\n\n!include input.puml\n!include body.puml\n\nstop\n\n@enduml\n" TEXT_MAIN = "@startuml\n\nstart\n\n!include input.puml\n!include body.puml\n\nstop\n\n@enduml\n"
TEXT_COMMON = "@startuml\n\n@enduml\n"
def create_directory(directory_name: str) -> bool: def create_directory(directory_name: str) -> bool:
@ -17,8 +18,7 @@ def create_files(directory_name: str) -> None:
for file in files: for file in files:
f = open(path.join(directory_name, file), 'w') f = open(path.join(directory_name, file), 'w')
if "main" in file: f.write(TEXT_MAIN) if "main" in file else f.write(TEXT_COMMON)
f.write(TEXT)
f.close() f.close()