Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RoboCleaner: A Q-Learning Robot Simulation

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.

Features

  • 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.

Prerequisites

  • CMake (3.14 or higher)
  • C++ Compiler (supporting C++17)

Building the Project

  1. Clone the repository:

    git clone <repository_url>
    cd RoboCleaner./
  2. Create a build directory and compile:

    mkdir -p build
    cd build
    cmake ..
    make
  3. Run the application:

    ./RoboCleaner

Controls

  • 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).

Technologies Used

  • C++17
  • Dear ImGui for UI
  • GLFW for window management
  • OpenGL for rendering

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages