https://github.com/oatml/oatomobile
A research framework for autonomous driving
https://github.com/oatml/oatomobile
autonomous-driving carla-simulator imitation-learning
Last synced: 5 months ago
JSON representation
A research framework for autonomous driving
- Host: GitHub
- URL: https://github.com/oatml/oatomobile
- Owner: OATML
- License: apache-2.0
- Created: 2020-06-17T13:37:40.000Z (almost 6 years ago)
- Default Branch: alpha
- Last Pushed: 2023-07-06T22:00:12.000Z (almost 3 years ago)
- Last Synced: 2025-12-06T04:26:12.079Z (6 months ago)
- Topics: autonomous-driving, carla-simulator, imitation-learning
- Language: Python
- Homepage: https://sites.google.com/view/av-detect-recover-adapt
- Size: 7.49 MB
- Stars: 201
- Watchers: 9
- Forks: 37
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OATomobile: A research framework for autonomous driving
**[Overview](#overview)**
| **[Installation](#installation)**
| **[Baselines]**
| **[Paper]**


[](https://arxiv.org/abs/2006.14911)
[](./LICENSE)
OATomobile is a library for autonomous driving research.
OATomobile strives to expose simple, efficient, well-tuned and readable agents, that serve both as reference implementations of popular algorithms and as strong baselines, while still providing enough flexibility to do novel research.
## Overview
If you just want to get started using OATomobile quickly, the first thing to know about the framework is that we wrap [CARLA] towns and scenarios in OpenAI [gym]s:
```python
import oatomobile
# Initializes a CARLA environment.
environment = oatomobile.envs.CARLAEnv(town="Town01")
# Makes an initial observation.
observation = environment.reset()
done = False
while not done:
# Selects a random action.
action = environment.action_space.sample()
observation, reward, done, info = environment.step(action)
# Renders interactive display.
environment.render(mode="human")
# Book-keeping: closes
environment.close()
```
[Baselines] can also be used out-of-the-box:
```python
# Rule-based agents.
import oatomobile.baselines.rulebased
agent = oatomobile.baselines.rulebased.AutopilotAgent(environment)
action = agent.act(observation)
# Imitation-learners.
import torch
import oatomobile.baselines.torch
models = [oatomobile.baselines.torch.ImitativeModel() for _ in range(4)]
ckpts = ... # Paths to the model checkpoints.
for model, ckpt in zip(models, ckpts):
model.load_state_dict(torch.load(ckpt))
agent = oatomobile.baselines.torch.RIPAgent(
environment=environment,
models=models,
algorithm="WCM",
)
action = agent.act(observation)
```
## Installation
We have tested OATomobile on Python 3.5.
1. To install the core libraries (including [CARLA], the backend simulator):
```bash
# The path to download CARLA 0.9.6.
export CARLA_ROOT=...
mkdir -p $CARLA_ROOT
# Downloads hosted binaries.
wget http://carla-assets-internal.s3.amazonaws.com/Releases/Linux/CARLA_0.9.6.tar.gz
# CARLA 0.9.6 installation.
tar -xvzf CARLA_0.9.6.tar.gz -C $CARLA_ROOT
# Installs CARLA 0.9.6 Python API.
easy_install $CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.6-py3.5-linux-x86_64.egg
```
1. To install the OATomobile core API:
```bash
pip install --upgrade pip setuptools
pip install oatomobile
```
1. To install dependencies for our [PyTorch]- or [TensorFlow]-based agents:
```bash
pip install oatomobile[torch]
# and/or
pip install oatomobile[tf]
```
## Citing OATomobile
If you use OATomobile in your work, please cite the accompanying
[technical report][Paper]:
```bibtex
@inproceedings{filos2020can,
title={Can Autonomous Vehicles Identify, Recover From, and Adapt to Distribution Shifts?},
author={Filos, Angelos and
Tigas, Panagiotis and
McAllister, Rowan and
Rhinehart, Nicholas and
Levine, Sergey and
Gal, Yarin},
booktitle={International Conference on Machine Learning (ICML)},
year={2020}
}
```
[Baselines]: oatomobile/baselines/
[Examples]: examples/
[CARLA]: https://carla.readthedocs.io/
[Paper]: https://arxiv.org/abs/2006.14911
[TensorFlow]: https://tensorflow.org
[PyTorch]: http://pytorch.org
[gym]: https://github.com/openai/gym