Skip to content

IoT 프로젝트 2조 저장소. 자동 분류 컨베이어 벨트와 라인 유도 주행을 활용한 물류 자동화 시스템 개발

License

Notifications You must be signed in to change notification settings

addinedu-ros-3rd/iot-repo-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

물류 자동화 시스템

시스템 구성

  • Automatic Sorter (자동 화물 분류기) : 화물 인식, 자동 분류
  • Autonomous Driving Robot (자율 주행 로봇) : 라인 주행, 장애물 인식
  • Central Management System (중앙 관리 시스템) : 통신 및 통합 제어
  • DB : 재고 추적, 관리
  • CCTV : 현장 녹화

팀원 소개 및 역할

구분 이름 역할
팀장 강한얼 전체 시스템 구성도 제작, 컨베이어 벨트 제어 전반(RFID, 서보 모터, DC 모터), CCTV 기능
팀원 강소희 분류기 서보 모터 제어, 회로 설계, 하드웨어 제작
팀원 오윤 DB 설계, Query 작성, PyQt, 시리얼 통신, RFID 인식
팀원 조태상 IR 및 초음파 센서 튜닝, 자율 주행 로봇 제작
팀원 한승준 자율 주행 로봇 시스템 구성도 제작, 회로 설계, 블루투스 시리얼 통신, 모바일 앱 제작

프로젝트 기간

2023.10.23 ~ 2023.10.27 (5일)

기술 스택

개발 환경

Visual Studio Code Arduino Git Github RDS Qt mitapp

언어

C++ Python

DBMS

Mysql

커뮤니케이션

Slack

프로젝트 소개

자동 화물 분류기와 자율 주행 로봇을 활용한 물류 자동화 시스템

  • 물류 프로세스 중 인력과 시간이 많이 소모되는 화물 분류 및 배송 단계의 자동화
  • RFID와 DB를 활용 재고 추적
  • 라인 유도 주행, 장애물 인식 기술을 사용한 자율 주행

1. Automatic Sorter (자동 화물 분류기)

1) 화물 입고, 분류 시나리오

2) 하드웨어 구성

3) 기능 리스트

  • 분류기 제어

    • 컨베이어 벨트 원격 제어(On/Off)
  • 화물 인식 및 분류

    • RFID 모듈을 통한 화물 ID 인식
    • ID별 화물의 분류 위치를 DB에서 조회하여 화물의 이동 위치를 결정
    • 결정된 위치의 서보 모터 분류기를 실행하여 이동 하는 화물을 분류 및 출고
  • 재고 추적 및 관리

    • DB를 통해 각 화물의 ID 및 분류 위치 데이터 관리
    • 각 화물이 입고된 시점을 DB에 업데이트
    • 분류 및 출고된 시점의 시간을 DB에 업데이트
    • CCTV를 통해 상황 녹화
  • 통신

    • 통신으로 PC와 데이터를 주고 받음

2. Autonomous Driving Robot (자율 주행 로봇)

1) 주행 시나리오

2) 하드웨어 구성

3) 기능 리스트

  • 로봇 제어

    • 관리자 앱을 통해 로봇을 ON / OFF 및 움직임을 제어
  • 라인 인식

    • 로봇 앞쪽에 위치한 IR (Infrared ray) 센서를 통해 라인을 인식
    • IR 센서는 좌, 우에 위치하며 직선, 곡선, 정지 라인을 인식
    • 인식한 라인의 형태에 따라 4개 모터에 알맞은 시나리오 (직진, 좌회전, 우회전, 정지)
  • 장애물 인식

    • Ultrasonic 센서를 통해 차의 진행방향에 장애물 여부 판단
    • 로봇의 진행방향과 동일한 선상에서 장애물을 인식한 경우 일단 정지
    • 서보 모터를 회전하여 왼쪽과 오른쪽의 장애물 여부를 판단하고 정지 상태 유지
  • 통신

    • 실시간으로 IR 센서 및 거리 값을 받음

3. PC

1) 중앙 관제 시스템 GUI

① 입고/처리/출고 시점 선택 (달력으로 년월일 선택, 시분초는 입력)
② 분류 콤보박스 선택 (서울_창고 / 부산_창고 / 출고)
③ 상태 콤보박스 선택 (미입고 / 입고 / 출고)
④ 특정 RFID 검색 (입력 형태가 틀린 경우 아래에 형태 안내 띄움)
⑤ 검색 필터(시점, 분류, 상태, RFID) 초기화
⑥ 검색: 현재 설정된 조건으로 DB 조회
⑦ 벨트제어: Start/Stop
⑧ DB 조회결과 표시
⑨ CCTV 화면표시 On/Off
⑩ CCTV 영상 녹화 On/Off
⑪ CCTV 사진 촬영
⑫ CCTV 현재 화면

2) Database : 분류기 및 로그 데이터 구조

4. 설계에 있었지만 구현하지 못한 내용

  • GUI를 통한 belt on/off/속도 제어 기능

    • 모터 제어 가능한 하드웨어 고장
    • belt 테이블 활용 x
  • RFID 리더기로 재고 관리 및 오분류/분실 방지 기능

    • RFID-RC522 모듈 사용, 회로 또는 전원 문제로 리더기가 인식하지 못하는 케이스 다수 발생
    • warning_log 테이블 활용 x
  • 차량 출발/도착/현재 위치 DB에 update하여 벨트와 상호 통신

    • 개발 기간 단축을 위해 블루투스 통신으로만 차량 제어, 와이파이 연계하지 못함
    • car 테이블, car_log 테이블 활용 x

5. 실행

  • 라이브러리 설치
pip install -r requirements.txt
  • Conveyer_Belt/requirements.txt 파일을 사용합니다.
  • db property 파일 설정: DB 접속은 config.ini 파일로 설정했습니다. git에 연동하지 않았으므로, 다음과 같은 형태로 생성이 필요합니다.
[dev]
host = 
port = 
user = 
password = 
database = 
  • ini 파일이 가리키는 데이터베이스에 접속 후, Conveyer_Belt/create_and_init.sql 파일을 사용합니다.
source create_and_init.sql
  • 파일명이나 경로, 형식을 수정한다면 Conveyer_Belt/src/DB.py 파일도 수정이 필요합니다.

6. 시연 영상


데모 영상 보러 가기

7. 발표자료

https://docs.google.com/presentation/d/1v5rwfUhqAP4vXjpZGAlny1NlASyI4Voo/edit?usp=sharing&ouid=118365173441214220116&rtpof=true&sd=true

8. 참고자료

About

IoT 프로젝트 2조 저장소. 자동 분류 컨베이어 벨트와 라인 유도 주행을 활용한 물류 자동화 시스템 개발

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published