Skip to main content

OpenAI gym environment of a racing car.

Project description

gym-racer

OpenAI gym environment of a racing car.

Action space

The action space is a combination of two discrete action spaces:

1) accelerate:  NOOP[0], UP[1], DOWN[2]
2) steer:  NOOP[0], LEFT[1], RIGHT[2]

Reward

The reward is mainly related to the direction along the street, then multiplied by the speed of the car squared.

Observation space

There are two types of observation possible:

  • lidar with shape (n): a lidar with n rays, each element indicates the first sensor out of the road
  • diamond with shape (n, n): a square of sensors, with a corner on the car

The observation type can be set by passing it in the call to gym.make, and the default parameters can be overridden by passing a sensor_array_params dict:

sat = "lidar"       # default
#  sat = "diamond"
racer_env = gym.make(
    "racer-v0",
    sensor_array_type=sat,
    sensor_array_params=sensor_array_params,
)

The default parameters for the lidar are:

sensor_array_params["ray_num"] = 7               # number of rays per side
sensor_array_params["ray_step"] = 15             # distance between sensors along a ray
sensor_array_params["ray_sensors_per_ray"] = 20  # number of sensors along a ray
sensor_array_params["ray_max_angle"] = 70        # angle to sweep left/right

The default parameters for the diamond are:

sensor_array_params["viewfield_size"] = 20  # number of rows/columns in the sensor
sensor_array_params["viewfield_step"] = 10  # spacing between the dots

Render modes

There are two types of render mode available, the human mode initializes pygame and renders what the car is doing to the screen, while in console mode only the bare minimum of the pygame environment is loaded (to use spritecollide). An environment in console mode cannot be rendered as human.

The render mode can be set by passing it in the call to gym.make:

mode = "human"       # default
#  mode = "console"
racer_env = gym.make(
    "racer-v0",
    render_mode=mode,
)

Info

Info is a dict with some car details:

keys = ["car_pos_x", "car_pos_y", "car_dir", "car_speed"]

Project details


Release history Release notifications

Download files

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

Files for gym-racer, version 0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size gym_racer-0.0.2-py3-none-any.whl (13.7 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size gym_racer-0.0.2.tar.gz (10.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page