GithubHelp home page GithubHelp logo

mburakg / highway-env Goto Github PK

View Code? Open in Web Editor NEW

This project forked from farama-foundation/highwayenv

0.0 1.0 0.0 19.25 MB

An environment for behavioral planning tasks in autonomous driving

Home Page: https://eleurent.github.io/highway-env/

License: MIT License

Makefile 0.46% Python 99.54%

highway-env's Introduction

highway-env

A collection of environments for highway driving and tactical decision-making tasks


An episode of one of the environments available in higwhay-env.

Build Status Docs Status

Installation

pip install --user git+https://github.com/eleurent/highway-env

Usage

import higwhay_env

env = gym.make("highway-v0")

done = False
while not done:
    action = ... # Your agent code here
    obs, reward, done, _ = env.step(action)
    env.render()

The environments

Highway

env = gym.make("highway-v0")

In this task, the ego-vehicle is driving on a multilane highway populated with other vehicles. The agent's objective is to reach a high velocity while avoiding collisions with neighbouring vehicles. Driving on the right side of the road is also rewarded.


The higwhay-v0 environment.

Merge

env = gym.make("highway-merge-v0")

In this task, the ego-vehicle starts on a main highway but soon approaches a road junction with incoming vehicles on the access ramp. The agent's objective is now to maintain a high velocity while making room for the vehicles so that they can safely merge in the traffic.


The highway-merge-v0 environment.

Roundabout

env = gym.make("highway-roundabout-v0")

In this task, the ego-vehicle if approaching a roundabout with flowing traffic. It will follow its planned route automatically, but has to handle lane changes and longitudinal control to pass the roundabout as fast as possible while avoiding collisions.


The highway-roundabout-v0 environment.

Parking

env = gym.make("highway-parking-v0")

A goal-conditioned continuous control task in which the ego-vehicle must park in a given space with the appropriate heading.


The highway-roundabout-v0 environment.

The framework

New highway driving environments can easily be made from a set of building blocks.

Roads

A Road is composed of a RoadNetwork and a list of Vehicles. The RoadNetwork describes the topology of the road infrastructure as a graph, where edges represent lanes and nodes represent intersections. For every edge, the corresponding lane geometry is stored in a Lane object as a parametrized center line curve, providing a local coordinate system.

Vehicle kinematics

The vehicles kinematics are represented in the Vehicle class by a Kinematic Bicycle Model.




Where (x, y) is the vehicle position, v its forward velocity and psi its heading. a is the acceleration command and beta is the slip angle at the center of gravity, used as a steering command.

Control

The ControlledVehicle class implements a low-level controller on top of a Vehicle, allowing to track a given target velocity and follow a target lane.

Behaviours

The vehicles populating the highway follow simple and realistic behaviours that dictate how they accelerate and steer on the road.

In the IDMVehicle class,

  • Longitudinal Model: the acceleration of the vehicle is given by the Intelligent Driver Model (IDM) from (Treiber et al, 2000).
  • Lateral Model: the discrete lane change decisions are given by the MOBIL model from (Kesting et al, 2007).

In the LinearVehicle class, the longitudinal and lateral behaviours are defined as linear weightings of several features, such as the distance and velocity difference to the leading vehicle.

The agents

Agents solving the highway-env environments are available in the RL-Agents repository.

pip install --user git+https://github.com/eleurent/rl-agents


The DQN agent solving highway-v0.

This model-free value-based reinforcement learning agent performs Q-learning with function approximation, using a neural network to represent the state-action value function Q.


The DDPG agent solving highway-roundabout-v0.

This model-free policy-based reinforcement learning agent is optimized directly by gradient ascent. It uses Hindsight Experience Replay to efficiently learn how to solve a goal-conditioned task.


The Value Iteration agent solving highway-v0.

The Value Iteration is only compatible with finite discrete MDPs, so the environment is first approximated by a finite-mdp environment using env.to_finite_mdp(). This simplified state representation describes the nearby traffic in terms of predicted Time-To-Collision (TTC) on each lane of the road. The transition model is simplistic and assumes that each vehicle will keep driving at a constant velocity without changing lanes. This model bias can be a source of mistakes.

The agent then performs a Value Iteration to compute the corresponding optimal state-value function.

This agent leverages a transition and reward models to perform a stochastic tree search (Coulom, 2006) of the optimal trajectory. No particular assumption is required on the state representation or transition model.


The MCTS agent solving highway-v0.

highway-env's People

Contributors

eleurent avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.