An open-ended driving simulator with infinite scenes
Project description
MetaDrive: Composing Diverse Driving Scenarios for Generalizable RL
MetaDrive is a driving simulator with the following key features:
- Compositional: It supports generating infinite scenes with various road maps and traffic settings for the research of generalizable RL.
- Lightweight: It is easy to install and run. It can run up to 300 FPS on a standard PC.
- Realistic: Accurate physics simulation and multiple sensory input including Lidar, RGB images, top-down semantic map and first-person view images.
🛠 Quick Start
Install MetaDrive via:
git clone https://github.com/decisionforce/metadrive.git
cd metadrive
pip install numpy cython
pip install -e .
or
pip install metadrive-simulator
You can verify the installation of MetaDrive via running the testing script:
# Go to a folder where no sub-folder calls metadrive
python -m metadrive.examples.profile_metadrive
Note that please do not run the above command in a folder that has a sub-folder called ./metadrive
.
🚕 Examples
Run the following command to launch a simple driving scenario with auto-drive mode on. Press W, A, S, D to drive the vehicle manually.
python -m metadrive.examples.drive_in_single_agent_env
Run the following command to launch a safe driving scenario, which includes more complex obstacles and cost to be yielded.
python -m metadrive.examples.drive_in_safe_metadrive_env
You can also launch an instance of Multi-Agent scenario as follows
python -m metadrive.examples.drive_in_multi_agent_env --env roundabout
or launch and render in pygame front end
python -m metadrive.examples.drive_in_multi_agent_env --pygame_render --env roundabout
env argument could be:
- roundabout (default)
- intersection
- tollgate
- bottleneck
- parkinglot
- pgmap
Run the example of procedural generation of a new map as:
python -m metadrive.examples.procedural_generation
Note that the above four scripts can not be ran in a headless machine. Please refer to the installation guideline in documentation for more information about how to launch runing in a headless machine.
Run the following command to draw the generated maps from procedural generation:
python -m metadrive.examples.draw_maps
To build the RL environment in python script, you can simply code in the OpenAI gym format as:
import metadrive # Import this package to register the environment!
import gym
env = gym.make("MetaDrive-v0", config=dict(use_render=True))
# env = metadrive.MetaDriveEnv(config=dict(environment_num=100)) # Or build environment from class
env.reset()
for i in range(1000):
obs, reward, done, info = env.step(env.action_space.sample()) # Use random policy
env.render()
if done:
env.reset()
env.close()
📦 Predefined environment sets
We define several standard MetaDrive Gym environments, where the user can start training off the shelf:
import gym
import metadrive # Register the environment
env = gym.make("MetaDrive-v0")
The following table presents the names for the predefined environments.
Gym Environment Name | Random Seed Range | Number of Maps | Comments |
---|---|---|---|
MetaDrive-test-v0 |
[0, 200) | 200 | Test set, not change for all experiments. |
MetaDrive-validation-v0 |
[200, 1000) | 800 | Validation set. |
MetaDrive-v0 |
[1000, 1100) | 100 | Default training setting, for quick start. |
MetaDrive-10envs-v0 |
[1000, 1100) | 10 | Training environment with 10 maps. |
MetaDrive-1000envs-v0 |
[1000, 1100) | 1000 | Training environment with 1000 maps. |
MetaDrive-training0-v0 |
[3000, 4000) | 1000 | First set of 1000 environments. |
MetaDrive-training1-v0 |
[5000, 6000) | 1000 | Second set of 1000 environments. |
MetaDrive-training2-v0 |
[7000, 8000) | 1000 | Thirds set of 1000 environments. |
... | More map set and environments will be added |
🏫 Documentations
Find more details in: MetaDrive
📎 References
Working in Progress!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for metadrive-simulator-0.2.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffcae6abdef9bb891699d59980dde3980a3c6bf8b483c41ec68dc3fdc3da70e7 |
|
MD5 | 48629858b0a7a85a021240444d3b61ab |
|
BLAKE2b-256 | 12afd91280719b1799ca3b2aef8fb51806162f589e0fa751897b13853c3a4ebd |
Hashes for metadrive_simulator-0.2.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86e2645bd9c99d6807d81548de7f3a07d50cd250b314e3164ab604a0c20ce2a3 |
|
MD5 | 6f11634ddf8d7bd33b6ab5f341580799 |
|
BLAKE2b-256 | f2e8adb6f5cb990c43f207aa91d84e4d38d1acd7fb09450b1f305601dcccb66d |