Welcome to DoppelTest’s documentation!
DoppelTest is a scenario-based test generation framework for revealing bugs in autonomous driving softwares. It manages and orchestrates multiple ADS instances to simultaneously operate in a scenario and discover violation that occur by or among them. Since all vehicles are controlled by an instance of the ADS under test, each of them should respect traffic rules and react properly to other road traffic participants. At least one instance will be responsible for any violation occuring.
DoppelTest is implemented in Python 3.8.10 and depends on cyber_record
, DEAP
, docker
, NetworkX
, NumPy
, pandas
, protobuf
, Shapely
, and websocket-client
. More information for these libraries can be found at
cyber_record - Apollo’s cyberRT record file offline parse tool
protobuf - Python implementation of Google’s data interchange format
Shapely - Manipulation and analysis of planar geometric objects
DoppelTest was designed and implemented by Yuqi Huai, Yuntianyi Chen, Sumaya Almanee, Tuan Ngo, Xiang Liao, Ziwen Wan, Qi Alfred Chen and Joshua Garcia. If you have any problems using DoppelTest, please submit an issue to our GitHub repository or contact Yuqi at yhuai@uci.edu.
Known Issues
DoppelTest is optimized for small maps. While we provide 7 HD maps in the release, its performance is significantly better on
borregas_ave
.The initial analylsis of HD map may take more time to analyze. Its efficiency is based on the number of lanes the map has. It mainly checks the relation between each pair of lanes to determine whether a valid path exists between them. You do not have to do this analysis if you trust the HD map provided. (More details in Apollo Issue #14529)
Table of Contents
Introduction
Tool reference
Tutorials
General Information
Indices and tables
License
DoppelTest is distributed under the The GNU General Public License v3.0.