RoboCleaner is a C++ application that simulates a robotic cleaner learning to navigate and clean a room using Reinforcement Learning (Q-Learning). The robot learns to avoid walls and maximize cleaning efficiency over time.
- Q-Learning Agent: Implements a tabular Q-learning algorithm to learn optimal policies.
- Interactive UI: Visualize the cleaning process, room layout, and real-time statistics (Clean %, Moves, Exploration Rate).
- Customizable Environment: Adjustable obstacle density and simulation speed.
- Real-time Graphs: Monitor the agent's learning progress with ImGui-based charting.
- CMake (3.14 or higher)
- C++ Compiler (supporting C++17)
-
Clone the repository:
git clone <repository_url> cd RoboCleaner./
-
Create a build directory and compile:
mkdir -p build cd build cmake .. make -
Run the application:
./RoboCleaner
- Start/Stop: Toggle the simulation.
- Reset: Reset the environment and the agent's memory (Q-Table) to start fresh.
- Speed: Adjust the simulation speed (train faster or watch closely).
- Obstacle Density: Change the number of walls in the generated map (automatically resets).
- C++17
- Dear ImGui for UI
- GLFW for window management
- OpenGL for rendering