Skip to content

IoT-based AGV control platform that unifies RFID-guided vehicles, gates, conveyors, and storage under a single FSM-driven server with live PyQt6 monitoring.

Notifications You must be signed in to change notification settings

jinhyuk2me/DUST

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Banner

Presentation Slides System Demo Video

πŸ“š Table of Contents

πŸ“„ Korean version: README.ko.md

1. Team

πŸ§‘β€πŸ’Ό Jinhyuk Jang @jinhyuk2me

  • Designed and implemented the main server
  • Designed and developed the GUI
  • Authored the overall system architecture
  • Defined the communication interfaces
  • Built and managed the database

πŸ§‘β€πŸ’Ό Daein Kim @Daeinism

  • Project lead for DUST
  • Designed and built the resource distributor hardware/firmware
  • Designed and built the gate module hardware/firmware

πŸ§‘β€πŸ’Ό Geonwoo Lee @DigitalNomad230

  • Reviewed and maintained technical documentation
  • Built the resource storage hardware/firmware
  • Implemented logic that links container capacity with facility operation

πŸ§‘β€πŸ’Ό Seunghoon Lee @leesh0806

  • Developed the AGV module and mechanical structure
  • Designed AGV circuitry
  • Implemented the line-tracing control algorithm
  • Built FSM-based driving control
  • Implemented the AGV TCP communication protocol

2. Project Overview

⏰ Period: 3 May – 15 May 2025

DUST (Dynamic Unified Smart Transport) is an IoT-based transportation control platform that lets an RFID-guided AGV coordinate with logistics facilitiesβ€”gates, conveyors, loading/stocking stationsβ€”in real time through a unified control loop.


3. Project Goal

Industrial sites increasingly need AGVs (Automated Guided Vehicles) that can autonomously follow fixed routes and interact with multiple facilities (gates, belts, storage bays). This project integrates every step of that logistics scenario into a single control surface driven by an AGV-centric workflow.


4. System Design

System Architecture

ER Diagram


5. Key Features

🚚 AGV-related Functions

πŸ” Autonomous Driving ESP32-controlled driving along the RFID-tag path
πŸ“‘ Position Reporting Reads RFID tags β†’ determines position β†’ reports to the server
πŸ”‹ Battery Monitoring Periodically publishes remaining battery and FSM state
πŸ“¦ Mission Execution Receives missions β†’ triggers FSM transitions β†’ performs auto loading/unloading
πŸ›‘ Collision Avoidance Stops via ultrasonic sensor when an obstacle is detected

🏭 Facility Control Summary

Facility Sample Image Description
πŸšͺ Gate Control - Opens automatically for registered AGVs
- Blocks unregistered AGVs
πŸ“¦ Loader Control - Automatic drop-off once the AGV arrives
πŸŒ€ Belt / Storage Control - Start/stop belts via server commands or conditional triggers
- Detect storage saturation via sensors
- Auto-select container A/B based on remaining space
- Safety interlock blocks belt motion when full

πŸ–₯ Central Control Server

  • FSM Orchestration – Issues commands based on AGV/facility states
  • State Logging – Collects AGV/facility telemetry at fixed intervals
  • Emergency Control – Manual override for emergency stop and recovery
  • Auto Socket Registration – Promotes unregistered AGVs from TEMP IDs to real IDs
  • Auto Charge Switching – Moves the AGV to charging mode when idle + low battery

πŸ§‘β€πŸ’Ό User Interface (PyQt6 GUI)

Tab Description Preview
πŸ“ Main Monitoring Real-time visualization of the AGV location and FSM state + manual drive controls main1
🧭 Mission Management Register/delete missions manually and manage the flow from creation β†’ dispatch β†’ completion mission
πŸ“‘ Event Log Tail the live event stream covering state changes, command execution, and sensor events event
βš™οΈ Settings Configure AGV IDs, ports, communication parameters, and other runtime options settings

6. Technical Challenges

Issue Root Cause Resolution
Communication latency JSON parsing overhead Switched critical commands to a custom byte protocol to minimize parsing time
PWM instability PID loop conflicted with RFID reading cycle Pause PID updates during RFID reads to stabilize line following

7. Limitations & Scalability

Limitation Current Behavior Future Direction
Single-AGV FSM GUI & FSM handle only one AGV Extend to multi-AGV FSM + UI
Simulated battery level Battery handled via simulated values Integrate INA226 sensor for real readings
Simple facility ACK Only checks ACK without retry logic Add timeout-based retry & error logging
No persistent settings Runtime settings reset each session Store configs via JSON/MySQL and restore on restart

8. Tech Stack

Category Technologies
Environment Linux (Ubuntu 24.04) Linux Ubuntu
MCU & Firmware ESP32-WROOM, Arduino IDE ESP32 Arduino
Languages Python 3.12, C++ Python C++
Control UI PyQt6 PyQt6
Database MySQL MySQL
Version Control Git, GitHub Git GitHub
Collaboration Confluence, Slack, Jira Confluence Slack Jira

About

IoT-based AGV control platform that unifies RFID-guided vehicles, gates, conveyors, and storage under a single FSM-driven server with live PyQt6 monitoring.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 78.5%
  • C++ 21.5%