Skip to main content

OpenAI Gym for vertical rocket landing. Features full 2D physics engine and works like any other gym.

Project description

Rocket Landing Gym

Open AI Gym for vertical rocket landing containing an extensive tool to incorporate curriculum learning for your agents.

Installation

pip install rocketgym

Minimal usage

from rocketgym.environment import Environment
import random

env = Environment()
observation = env.reset()
done = False

while not done:
    observation, reward, done, info = env.step(random.randint(0, 3))
    env.render()

Environment

Rocket

Rocket is treated as a 2D free body. Its physics properties have been modeled after Falcon 9. By default rocket is spawned

State space

  1. Angle made with y-axis ($rad$): [$-\frac{\pi}{2},\frac{\pi}{2}$]
  2. Position Y ($m$): $[0,\infty]$
  3. Velocity X ($\frac{m}{s}$): $[-\infty,\infty]$
  4. Velocity Y ($\frac{m}{s}$): $[-\infty,\infty]$
  5. Angular velocity ($\frac{rad}{s}$): $[-\infty,\infty]$

Action space

At each timestep, rocket can perform one of the four actions:

  1. Left - rotate the engine to the left and set maximum thrust
  2. Mid - rotate the engine to the middle and set maximum thrust
  3. Right - rotate the engine to the right and set maximum thrust
  4. None - turn off thrust

Reward

Reward function takes multiple components into consideration:

  1. For each second, agent looses $0.3$.
  2. For impact with the ground, agent receives $15$.
  3. At impact, agent looses $0.5$ for each $rad$ off the vertical axis.
  4. At impact, agent looses $0.25$ for each $\frac{rad}{s}$ of angular velocity
  5. At impact, agent looses $1$ for each $\frac{m}{s}$ away from $-1\frac{m}{s}$ vertical velocity
  6. At impact, agent looses $0.25$ for each $\frac{m}{s}$ of horizontal velocity

Curriculum Learning

The best part about this gym. It allows you to alter the difficulty of the environment by changing things like initial height, action space etc.

Spawn height

from rocketgym.environment import Environment

env = Environment()
env.curriculum.set_fixed_height()
env.curriculum.set_random_height(1,5)

env.curriculum.enable_random_height()
env.curriculum.disable_random_height()

env.curriculum.enable_increasing_height(rate=0.05)
env.curriculum.disable_increasing_height()

Spawn orientation

env.curriculum.enable_random_starting_rotation()
env.curriculum.disable_random_starting_rotation()

Altering the reward function

env.curriculum.enable_x_velocity_reward()
env.curriculum.disable_x_velocity_reward()

Dashboard

This module enables saving flight logs. Logs will be saved in logs/plots directory.

Sample usage

from rocketgym.dashboard import Dashboard

# Creating logger
dash = Dashboard()

# Saving flight log
dash.plot_log(env.rocket.flight_log, episode=0)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rocketgym-0.0.13.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rocketgym-0.0.13-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file rocketgym-0.0.13.tar.gz.

File metadata

  • Download URL: rocketgym-0.0.13.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.7

File hashes

Hashes for rocketgym-0.0.13.tar.gz
Algorithm Hash digest
SHA256 aa6dfe7bd371d37b6e8ed23955367eda554f85efe80341bed80d95462f7e8b8b
MD5 ad2a98562b63ce2b189420a31d58a5ff
BLAKE2b-256 bbb722a05bccb176fc401f7d8b80f8f82943f2d87517b2586c9960ac28a798a0

See more details on using hashes here.

File details

Details for the file rocketgym-0.0.13-py3-none-any.whl.

File metadata

  • Download URL: rocketgym-0.0.13-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.7

File hashes

Hashes for rocketgym-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 8cae85d0af2c00edce864e7dadc830563e3d24ef1a04ed46d40af87cb6c050fc
MD5 6b8fe4949f3e616fb34cbfda8e2cb713
BLAKE2b-256 e2e252761daf647416964a6e0761dc386cc0cca25ca6b255a5f13ad359459732

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page