Procedural Generation of Intersections for HD Maps for Autonomous Vehicle Development and Test. It's built using pyodrx library. It generates road networks in Open drive format. Detailed documentation with architecture can be found in the *docs folder of the repository.
The documentation moved to https://junctionart.readthedocs.io/
We have two peer-review papers and one preprint in this project. Please, cite the one that's most relevant to your research.
@article{Muktadir2022ProceduralGO,
author = {Muktadir, Golam Md and Jawad, Abdul and Paranjape, Ishaan and Whitehead, Jim and Shepelev, Aleksey},
year = {2022},
month = {05},
pages = {22},
title = {Procedural Generation of High-Definition Road Networks for Autonomous Vehicle Testing and Traffic Simulations},
volume = {6},
journal = {SAE International Journal of Connected and Automated Vehicles},
doi = {10.4271/12-06-01-0007}
}
@INPROCEEDINGS{10186533,
author={Ikram, Zarif and Muktadir, Golam Md and Whitehead, Jim},
booktitle={2023 IEEE Intelligent Vehicles Symposium (IV)},
title={Procedural Generation of Complex Roundabouts for Autonomous Vehicle Testing},
year={2023},
volume={},
number={},
pages={1-6},
doi={10.1109/IV55152.2023.10186533}
}
@unknown{Muktadir2022Intersections,
author = {Muktadir, Golam Md and Jawad, Abdul and Shepelev, Aleksey and Paranjape, Ishaan and Whitehead, Jim},
year = {2022},
month = {05},
pages = {},
title = {P r e -P r i n t Realistic Road Generation: Intersections},
doi = {10.13140/RG.2.2.30541.51683}
}
Steps:
- install dependencies
- create config.yaml (instructions below)
- create output folder (a folder called "output" in the root directory)
Python 3.7+
- pyodrx (included with the project. No need to install)
- dill
- pyyaml
- scipy, numpy, matplotlib, pytest, unittest
- methodtools.
- flask and jinja2 (for web-ui)
- scikit-spatial
- z3
- seaborn
- shapely, (requres installation of osgeo
- pandas
- tqdm
- sympy
- geos
- conda install dill
- conda install -c anaconda pyyaml
- conda install -c anaconda scipy
- conda install -c conda-forge matplotlib
- conda install -c anaconda unittest2
- conda install -c conda-forge scikit-spatial
- conda install -c asmeurer z3 (optional for road generation)
- conda install -c anaconda seaborn (for analysis)
- conda install -c conda-forge shapely
- conda install -c conda-forge pandas
- conda install tqdm
- conda install -c conda-forge shapely
- conda install -c conda-forge geos
copy the contents of config-sample.yaml file and create a new file "config.yaml" in the root directory of the project. Now change these configurations:
- esminipath - the folder containing the bin folder of esmini
- rootPath - the path to the root folder of this project.
- successor is connected to one's end.
- predecessor is connected to one's start.
- raw geometries in planview (Line, Arc, Spiral, ParamPoly, etc.)
- any lane
- any link
Documentation: Road Generators
Detailed documentation: docs/Sequential-RoadBuilder.md
This is the class that harvests junctions.