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


Download files

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

Source Distribution

gym_racer-0.0.2.tar.gz (10.8 kB view hashes)

Uploaded source

Built Distribution

gym_racer-0.0.2-py3-none-any.whl (13.7 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page