Autonomous Mobile Robot
A ROS2-powered mobile robot designed to navigate maze-like environments, detect thermal sources, and perform targeted engagement tasks.
Watch DemoThe Challenge
Problem Definition
This project simulates a thermal response scenario where an autonomous robot must navigate a new foreign enviroment, identify "hot" targets, and engage them. The system operates under strict time, power, and processing constraints, requiring a fully integrated solution for exploration, detection, and action.
Mission Objectives
The robot must autonomously map the environment, detect and localize multiple heat sources using thermal and LiDAR data, and then navigate to each source to perform a targeted launch, all within a 25-minute window.
Core Capabilities
Autonomous Exploration & SLAM
Utilizes the ROS2 Nav2 stack and frontier exploration to independently map unknown environments and build a real-time occupancy grid.
Thermal Source Detection
Employs dual AMG8833 thermal cameras and KMeans clustering to detect, fuse, and localize distinct heat sources in the environment.
Ramp Detection via IMU
IMU detects steep ramps; robot cancels path, backs off, and marks the area to avoid unsafe traversal.
Targeted Engagement
After mapping, the robot navigates to each heat source, aligns itself, and activates a dual-flywheel launcher to accurately fire a projectile.
Software Architecture
The Global Controller
The `GlobalController` node is the brain of the robot, responsible for high-level decision-making and subsystem coordination.
- State Management: Manages the robot's operational state (e.g., `Initializing`, `Exploratory_Mapping`) using a Python Enum for robust, predictable behavior.
- Sensor Integration: Subscribes to LiDAR, IMU, odometry, and thermal data to build a comprehensive world model.
- Action Client: Interfaces with the Nav2 server to send navigation goals and monitor their execution status.
Multi-Threaded Execution
A multi-threaded design ensures the robot remains responsive by handling tasks concurrently without blocking.
- Fast Loop (10 Hz): A high-frequency timer for real-time sensor checks, such as IMU interrupt detection for hazards like ramps.
- Control Loop (1 Hz): A slower loop for deliberate actions like finding the next frontier or sending a navigation goal.
- Background Tasks: A thread pool offloads heavy computations like occupancy grid processing, keeping the main loops free.
Technology Stack
Live Gameplay
See It In Action
This video demonstrates the final hardware in action. Watch as four players navigate the map, drop bombs, and compete in real-time. The demo highlights the fluid animation, responsive controls, and the successful implementation of the multiplayer UART link.
Watch Demo (2 mins)↗