Skip to content

SPIDER: Self-driving Planning and Intelligent Decision-making Engine with Reusability

Notifications You must be signed in to change notification settings

Thu-ADLab/SPIDER

Repository files navigation

SPIDER

Downloads

Self-driving Planning and Intelligent Decision-making Engine with Reusability

Installation

The python package has been released to pypi: https://pypi.org/project/spider-python/.

You are welcome to install it with pip install spider-python to have a try and provide valuable suggestions for further development of this project.

Overall Framework

The overall framework of the SPIDER planning module, including defining a unified data interface and coarse-grained modular decomposing of the internal procedures of the planner.

Framework
Overall framework of SPIDER

Build a Planner with SPIDER

A multi-scale tool chain is provided to build a planner by reusing the submodules seamlessly, and some are listed below.

common tools
SPIDER tools for building a planner

To have a glimpse of its capability, you can try to launch a demo script of LatticePlanner with

import spider
spider.teaser()

And you shall see how the LatticePlanner(simplified) implemented conveniently with our tools runs in a simple environment.

LatticePlanner
Lattice Planner

More demo planners implemented with SPIDER are listed in planner_zoo, in purpose of better understanding of the integration of the tools under different frameworks, and also easy reusing as baseline algorithms for your own research. Here shows another planner which attaches an optimizer to the LatticePlanner:

Optimized Lattice Planner
Optimized Lattice Planner

Significantly, SPIDER provides a set of tools to build data engines and data-driven planners, along with some implementions of the policy learning algorithms including IL and RL. Both log-replay and closed-loop training/testing are easy to be conducted with SPIDER. Here are the examples of testing with GRU-IL and DQN-RL:

GRUPlanner (log-replay testing)
GRUPlanner (log-replay testing)

DQNPlanner (closed-loop testing)
DQNPlanner (closed-loop testing)

SPIDER consists of a planner zoo with the implementation of different kinds of planners to show the support for various algorithms and frameworks. And we also compare the performance of them with the same customized metrics as a benchmark in a simple environment provided by SPIDER, which we call the planner arena. The experiments are conducted for 10 times with random initial states, and the results are shown as follows:

planner arena
Planner Arena

Access to the Environment

What's more, a unified interface of SPIDER planners contributes to the easy access, deployment and migration for different environments. If you have already got highway-env in your environment which can be installed with pip install highway-env, you can try another teaser about how spider gets access to the data interface conveniently and makes it easy to configure the environment:

from spider.interface.highway_env import HighwayEnvBenchmarkGUI
HighwayEnvBenchmarkGUI.launch()

LatticePlanner in HighwayEnv
LatticePlanner in HighwayEnv

Also, we provide the support for CARLA simulator which is a more realistic environment for self-driving research.

LatticePlanner in Carla
LatticePlanner in CARLA

Documentation

coming soon...

Citation

coming soon...

Contact Information

If you have any questions, please feel free to contact me:

Author: Zelin Qian(钱泽林)

Institution: School of Vehicle and Mobility, Tsinghua University, China

Email: qzl22@mails.tsinghua.edu.cn

About

SPIDER: Self-driving Planning and Intelligent Decision-making Engine with Reusability

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published