
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) 연동
'로보테크AI' 카테고리의 다른 글
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/05/18 (0) | 2026.05.18 |
|---|---|
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/05/14[프롬프트 + 웹] (0) | 2026.05.14 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/05/12 (0) | 2026.05.12 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/05/11 (0) | 2026.05.11 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/05/08 (0) | 2026.05.08 |