Skip to content

olte36/reinforcement-learning-climber

Repository files navigation

Reinforcement learning climber

This project is inspired by rock climbing. The goal is to train a virtual climber to navigate a climbing route using Q-learning, a model-free reinforcement learning algorithm.

Project Overview

  • Route Definition: A route is a limmited area with holds and quickdraws. The route is considered complete when the climber reaches the top hold.
  • Climber Model: The climber is a simple model with limbs and basic joints. It can move only by using the holds and must clip the quickdraws, meaning it has to pass the rope through them.
  • Climbing Technique: The climber uses a technique involving alternating support between opposing limbs. This means most of the climber's weight is supported by the right arm and left leg, or the left arm and right leg. The other limbs are moved to the next holds.

Prerequisites

Python 3.8 is required and dependencies from requirements.txt or Pipfile.lock.

An example of setting up the environment on Fedora Linux.

Install python 3.8:

dnf install python3.8

Install pip:

python3.8 -m ensurepip --upgrade

Install dependencies:

python3.8 -m pip install -r requirements.txt

Running

To run the project, execute the following command:

python3.8 ./do_q_learning.py

This command launches the GUI with the climber. The model will start learning, with progress displayed in the console (this may take a few minutes). The climber will then attempt to reach the top hold or continue until the move limit is exceeded. Finally, a graph displaying the mean rewards will be shown.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Languages