로보테크AI

융합_로보테크 AI 자율주행 로봇 개발자 과정-26/05/13[심화 프로젝트 발표회]

steezer 2026. 5. 13. 18:30


공기질 연동 자율주행 공기청정 로봇

프로젝트 주제

TurtleBot3 Waffle Pi + ROS2 Humble 환경에서 미세먼지 센서(ESP01 + PMS7003) 데이터를 기반으로 오염 구역을 자동 감지하고, A* 경로 탐색 + Pure Pursuit 추종으로 자율주행하여 공기를 정화하는 로봇 시스템. Spring Boot 웹 대시보드를 통해 실시간 모니터링과 원격 제어가 가능하며, Cloudflare Tunnel로 외부 접속을 지원한다.

기존 공기청정기가 고정 위치에서만 작동하는 것과 달리, 로봇이 직접 오염 구역으로 이동하여 청정하고, FSM 상태 머신으로 자율 판단(출동 → 청소 → 복귀)하는 것이 차별점이다.

팀 구성 및 본인 역할

4명 (팀 PURE) / 프로젝트 기획 + 센서 연동 + 자동 출동 로직 + PPT/영상 제작

  • 프로젝트 전체 기획 및 구조 설계
  • A* + Pure Pursuit 주행 제어 구현
  • Arduino, ESP-01, PMS7003 센서 연동 + MQTT 통신 구축
  • 미세먼지 기반 자동 출동 로직 구현 (FSM: IDLE → GO_TO_ZONE → CLEANING → RETURN)
  • PPT 제작 및 시연 영상 촬영/편집

시스템 구성

계층구성요소역할

센서 ESP01 (ESP8266) + PMS7003 Wi-Fi MQTT로 PM1.0/2.5/10 데이터 발행
통신 Mosquitto MQTT 브로커 센서 ↔ ROS2 ↔ 웹 서버 메시지 중계
로봇 제어 TurtleBot3 + ROS2 Humble SLAM, Nav2, A* 경로 탐색, Pure Pursuit 추종
Spring Boot 4.0.6 + MySQL REST API, MQTT 연동, Thymeleaf 대시보드
터널 Cloudflare Tunnel 외부 네트워크에서 웹 대시보드 접속

기능적 요소

ROS2 로봇 제어 (14개 노드)

  • FSM 상태 머신: PM2.5 임계치 초과 시 자동 출동, 청소 완료 후 자동 복귀
  • A* 경로 탐색: SLAM 맵 기반 최적 경로 계산 + 장애물 팽창(inflation) 적용
  • Pure Pursuit 추종: 곡선 구간 부드러운 주행, LiDAR 기반 동적 장애물 회피
  • ArUco 마커 정밀 정렬: 홈 복귀 시 카메라 기반 정밀 도킹 (EMA 필터링)
  • 먼지 히트맵: 로봇 위치 + PM10 데이터를 0.10m 그리드 셀로 융합 시각화
  • MQTT ↔ ROS2 양방향 브리지: 웹 명령 수신, 로봇 상태/경로/배터리/먼지 데이터 발행
  • 순찰 모드: node1 → node2 → node3 → home 순환 경로 자동 실행
  • 시뮬레이션 모드: 센서 없이 FSM 로직 테스트 가능

Spring Boot 웹 대시보드

  • 실시간 로봇 상태 모니터링 (위치, 배터리, FSM 상태)
  • 9개 제어 명령 전송 (node1~3 이동, 홈 복귀, 정지, 충전, 순찰, 청정 ON/OFF, 긴급정지)
  • 구역별 PM1.0 / PM2.5 / PM10 실시간 표시
  • SLAM 맵 위 로봇 위치 + 먼지 히트맵 오버레이
  • 맵 클릭 네비게이션 (클릭 좌표 → Nav2 Goal)
  • 3D ROS 시각화 (ROS3D.js): 2D 맵 + LiDAR + PointCloud + 카메라 피드
  • 회원가입 / 로그인

활용 기술 및 도구

구분내용

로봇 TurtleBot3 Waffle Pi (LDS-03 LiDAR, Intel RealSense)
OS Ubuntu 22.04
ROS2 Humble, rclpy, Nav2, AMCL, Cartographer
경로 A* 알고리즘, Pure Pursuit, Safety Cost Map
센서 ESP01 (ESP8266) + PMS7003 미세먼지 센서
통신 Mosquitto MQTT 브로커, paho-mqtt
Spring Boot 4.0.6, Java 21, Thymeleaf, MySQL 8
시각화 ROS3D.js, Three.js, ROSBridge WebSocket
터널 Cloudflare Tunnel
기타 ArUco 마커 (OpenCV), numpy, Pillow, Tkinter

프로젝트 주요 성과

  • A* + Pure Pursuit 조합으로 SLAM 맵 기반 자율주행 완전 구현 (Nav2 의존 최소화)
  • Safety Cost Map으로 장애물 근접 시 비용 증가하여 안전 경로 생성
  • ArUco 마커 + EMA 필터링으로 홈 도킹 정밀도 확보
  • ESP01 센서 → MQTT → ROS2 → 웹 대시보드까지 전 구간 실시간 데이터 파이프라인 구축
  • Spring Boot에서 MQTT Subscribe/Publish 양방향 연동으로 웹 기반 원격 제어 실현
  • 14개 ROS2 노드 + 6개 MQTT Subscriber를 단일 launch 파일로 통합 기동

힘들었던 점 및 아쉬웠던 점

  • MQTT 브리지 노드가 많아(6개) 데이터 흐름 디버깅이 복잡했음
  • Pure Pursuit 파라미터(lookahead distance, 최대 회전 속도) 튜닝에 시간 소요
  • 좁은 통로에서 A* inflation과 로봇 크기 간 균형 조정이 어려웠음
  • 웹 3D 대시보드에서 rosbridge_server 연결 불안정 이슈 간헐적 발생

기술적 개선 가능성

  • 다중 로봇 협업 청소 (멀티 에이전트)
  • 딥러닝 기반 오염원 예측 및 선제 대응
  • 자동 충전 도킹 스테이션 연동
  • 모바일 앱 (Flutter) 연동

소스코드: github.com/steeze1213/TBPJ