Skip to content

kngyeol/Project-Balemale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Project: Balemale

Balemale promotional poster composed from actual hardware and CAD

ArUco 마커 내비게이션과 AI 번호판 인식을 결합해 입차부터 주차, 출차까지 자동화한 스마트 자율주차 로봇

항목 내용
기간 2026.01 - 2026.02
형태 SSAFY 팀 프로젝트
참여 범위 ROS2 주행·주차 로직, 미션 통합, 마커 인식·추적, AI OCR·이상탐지 연동
핵심 기술 ROS2 Humble, Python, OpenCV, ArUco, Kalman Filter, MQTT, Spring Boot
공개 범위 공개용 설명·다이어그램, 실제 로봇 사진과 CAD만 수록, 소스 코드는 비공개

목차

프로젝트 개요

Balemale은 운전자가 입구에 차량을 맡기면 로봇이 번호판을 인식하고, 배정된 슬롯까지 차량을 운반한 뒤 다시 대기 위치로 복귀하는 자동 주차 시스템입니다.

프로젝트는 다음 세 가지 문제를 하나의 흐름으로 연결했습니다.

  1. 카메라 기반 번호판 인식과 차량 등록
  2. 28개 ArUco 마커를 이용한 로봇 위치 인식과 경로 주행
  3. 12개 슬롯의 입차·주차·출차 상태를 관리하는 18-state FSM

실제 하드웨어

Balemale robot on the parking testbed Balemale loading hardware CAD

팀이 제작한 주차 로봇의 실제 테스트 장면과 적재 장치 CAD입니다. 대표 포스터는 이 실제 프로젝트 아티팩트만 사용해 구성했습니다. 하드웨어 전체 설계를 개인 단독 결과로 주장하지 않습니다.

서비스 흐름

Balemale mission flow

입차와 출차는 모두 인식, 배차, 로봇 주행, 적재 장치 제어, 서버 상태 갱신을 거칩니다. 각 단계가 서로 다른 장치에서 실행되기 때문에 미션 상태를 명시적으로 관리하고 MQTT와 ROS2 메시지로 경계를 연결했습니다.

시스템 구조

Balemale system architecture

  • 키오스크와 관리 화면은 차량 등록, 슬롯 상태, 결제 및 출차 요청을 담당합니다.
  • 백엔드는 주차 슬롯과 경로 정보를 관리하고 로봇 미션을 MQTT로 전달합니다.
  • 로봇에서는 ROS2 노드가 인지, 경로, 모션, 적재 장치를 분리해 실행합니다.
  • 카메라 입력은 번호판 인식, ArUco 마커 검출, 이상 물체 감지에 사용됩니다.

주요 기능

기능 설명
번호판 인식 YOLO 계열 탐지와 OCR 결과를 다중 프레임 투표로 안정화
마커 내비게이션 ArUco 마커를 위치 기준으로 사용하고 소실 구간은 Kalman Filter로 추적
메카넘 주행 전후·횡·회전 명령을 결합해 좁은 주차 공간에서 정렬
미션 오케스트레이션 18개 상태로 인식, 적재, 주행, 주차, 하역, 복귀 흐름 관리
서버 연동 MQTT로 배차·재경로·이상 이벤트를 교환하고 슬롯 상태 갱신
안전 대응 장애물 감지나 비정상 상태에서 정지하고 재개 또는 재경로 요청

담당 작업

공개 가능한 Git 이력과 프로젝트 기록을 기준으로 다음 작업 범위에 참여했습니다.

  • ROS2 기반 주행·주차 제어와 미션 상태 통합
  • ArUco 마커 검출·추적 및 주행 구간 튜닝
  • 카메라, 모터, IMU, 적재 장치 노드를 포함한 시스템 통합 과정 참여
  • 번호판 OCR 및 이상탐지 결과를 로봇 미션과 연결
  • 실기 시험에서 공유 전원 구성으로 발생한 연산 보드 불안정 문제의 분리와 재현 조건 정리 참여

이 저장소는 팀 전체 결과와 개인 작업을 구분해 설명하며, 하드웨어 설계나 백엔드 전체를 개인 단독 결과로 주장하지 않습니다.

문제 해결

구동부 부하가 컴퓨팅 보드를 불안정하게 만들던 문제

Balemale power troubleshooting

현상

12V 모터 네 개와 Jetson을 하나의 전원 계통에서 구동할 때, 모터 부하가 커지는 순간 전압이 떨어지며 컴퓨팅 보드가 불안정해졌습니다.

판단과 조치

  • 소프트웨어 오류보다 부하 변화와 전원 계통의 상관관계를 먼저 확인했습니다.
  • Jetson과 모터의 전원을 분리해 순간 부하가 연산 장치에 전달되지 않도록 구성했습니다.
  • 공통 기준 전위와 통신 연결은 유지하면서 전력 경로만 분리했습니다.

결과

모터 구동 중 발생하던 연산 장치의 전원 불안정을 줄이고, 인지와 미션 노드를 지속적으로 실행할 수 있는 기반을 확보했습니다.

기술 스택

영역 기술
Robot ROS2 Humble, Python, OpenCV, ArUco, Kalman Filter
AI YOLOv8, EasyOCR, TensorRT, ONNX Runtime
Communication MQTT, WebSocket, Serial
Backend Java, Spring Boot, PostgreSQL, Redis
Hardware Jetson Orin Nano, Raspberry Pi, Arduino, 4WD Mecanum

공개 범위

SSAFY 팀 프로젝트의 소스 코드는 공개하지 않습니다. 이 저장소의 다이어그램은 공개 가능한 범위에서 새로 작성했으며, 내부 설정값, 모델 파일, 데이터셋, 배포 정보와 원본 저장소 이력은 포함하지 않습니다.

자세한 기준은 NOTICE.md를 참고해 주세요.

About

Autonomous parking robot project introduction

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors