-
최근 조선업계는 기술자의 부족으로 어려움을 겪고 있다. 이 문제를 해결하기 위해 조선 3사는 자동화 기술을 도입하고 있으며, 스마트 야드 개념을 도입하여 선박 생산과 관리 영역에 IT 기술을 활용하고 있지만 도장 작업의 자동화 비율은 아직 낮은 상태다.
-
이 같은 상황에 도장 작업이 무인화를 이룬다면 작업 효율성 증대, 작업 안정성 강화 및 자동화를 통한 산업재해 감소 또한 기대해 볼 수 있다.
-
따라서 본 과제에서는 도장 작업의 자동화를 위해 비전 인식과 보정 기술을 이용한 블록 하부 도장 작업 자동화를 진행해 보고자 한다.
-
이 연구의 목표는 RGB 카메라 영상을 딥러닝 모델과 OpenCV를 활용하여 하부 도장 로봇의 작업에 필요한 제어 신호를 생성하고 Unity로 시뮬레이터를 구현해 적용해 봄으로써 실제 도장 작업에 사용할 수 있는 해결 방안을 제시하는 것을 목표로 한다.
이름 | 이메일 | 역할 |
---|---|---|
김정호 | 201824451@pusan.ac.kr | • Unity 시뮬레이션 구현 • 소켓 통신 구현 • Unity 신호 제어 구현 |
정제영 | aia1235@pusan.ac.kr | • 데이터 수집 및 전처리 • YOLO 모델 학습 및 적용 • YOLO 데이터 증강 및 성능 개선 |
최성렬 | littie123@naver.com | • Around view 구현 • Edge detection 모델 적용 및 성능 개선 • 직선 검출 알고리즘 구현 |

- Unity와 Python의 소켓 통신을 기반으로 한다.

- 로봇에 있는 4개의 카메라를 이용해 도장면 하부를 촬영한다.
- 상하좌우 4개의 이미지를 각각 Calibration한다.
- 4개의 이미지를 하나의 이미지로 Stitching 한다.
- 직선 검출을 위해 이미지에 Airline Model을 적용한다.
- 제어 신호의 필요한 직선만 검출하기 위해 YOLOv8 모델을 적용한다.
- YOLO의 bounding box를 기반으로 기준선을 탐지한다.
- 정확한 직선 검출을 위해 직선의 noise를 제거한다.
- 도장 로봇 제어에 필요한 정보들을 출력한다.

본 프로젝트는 Ubuntu 20.04 버전에서 개발되었으며 함께 포함된 다음의 스크립트를 수행하여 관련 패키지들의 설치와 빌드를 수행할 수 있습니다.
먼저 폴더를 다음과 같이 구성해야 하며, 빌드 된 Unity 시뮬레이터의 경우 아무 경로에 위치하여도 상관 없습니다.
C:
└── User
└── 사용자명
└── UnityGraudate
├── checkpoints
│ └── unet.pth
├── UnityStream2
├── PythonStream
├── ultimate.py
├── dexinedmodel.py
├── CRG.pyd
└── CRG
└── ...
F:
└── graduate
└── train15
└── weights
└── best.pt
YOLO 모델(best.pt)의 경우 ultimate 의 모델 로딩 부분의 코드를 고쳐 원하는 경로로 변경하여도 상관 없습니다.
# YOLO 모델 경로
yolomodel = YOLO(r'원하는 경로')
이미지 프로세싱 서버 역할을 하는 ultimate.py의 실행을 위해서는 requirements.txt를 이용한 파이썬 패키지 설치가 필요합니다.
dexi.pth 모델의 경우 해당 링크에서 다운로드 받을 수 있습니다.
https://drive.google.com/drive/folders/11TQxJjpBoZVKcQ0Pmb6GH3h0qQk4CnNe
실행 방법은 간단합니다.
- Unity 프로젝트를 로딩 후 빌드한다. 이 때, Unity 버전은 다음과 같다.(2021.3.19.f1)
- ultimate.py 를 실행 후 모델이 로딩될 때 까지 기다린다.
- 빌드 된 Unity 시뮬레이터의 Start 버튼을 클릭한다.
해당 과정을 통하여, YOLO/Airline을 이용하여 이미지 프로세싱을 하고 해당 정보를 통해 자율주행하는 도장로봇을 시뮬레이션 할 수 있습니다.