This repository contains the implementation of the following paper. It is accepted to IEEE TIV.
- Paper Link: https://ieeexplore.ieee.org/document/10329446/
- Authors: Yuqing Guo, Zelin Guo, Yazhou Wang, Danya Yao, Bai Li, Li Li
- Contact Yuqing via email: gyq18@mails.tsinghua.org.cn)
LBADTP provides various autonomous driving trajectory planning test scenarios and planners with the following features:
- Test scenarios of varying complexity covering the full range of structured and unstructured autonomous driving applications.
- A complete implementation of state-of-art trajectory planners in Matlab, Python, and C++.
The test scenarios for autonomous driving trajectory planners are organized in the following structure:
scenarios/
├ structured scenarios/
├ Case1.csv
├ Case2.csv
└ ...
└ unstructured scenarios/
├ Case1.csv
├ Case2.csv
└ ...
Each scenario contains the following information:
- The information for planning ranges and obstacles
- The vehicle geometrics and kinematics settings
- The initial and terminal vehicle state constraints
- Runtime
- Score w.r.t. kinematic/dynamic feasibility, collision-free safety, trajectory smoothness, time-energy, etc.
- For more information about the score criteria, please refer to the score criteria in TPAP Competition
The code implementation of state-of-art trajectory planners in Matlab/Python/C++ is organized in the following structure. Here we take the Matlab language as an example.
Matlab/
├ Main.m
├ Planners/
├ Graphbased/
├ PlanAStarPath.m
├ PlanHybridAStarPath.m
├ PlanHybridAStarPath.m
├ PlanSimpleStateLatticePath.m
├ PlanControlLatticeTrajectory.m
└ ...
├ Samplingbased/
├ PlanInformedRRTPath.m
├ PlanKinodynamicRRTTrajectory.m
├ PlanCLRRTTrajectory.m
└ ...
├ Optimizationbased/
├ PlanOBCATrajectory.m
├ PlanSCPTrajectory.m
├ PlanL1SCPTrajectory.m
├ PlanL2SCPTrajectory.m
├convex corridors for collision constraints/
├FindCFS.m
├FindBox.m
├FindBubble.m
└ ...
├ CheckCollision/
├ CheckByCircle.m
├ CheckByAABB.m
├ CheckByOBB.m
└ CheckByArea.m
├ ConvertPathtToTrajectory/
├ PlanSpeedForStaicScenarios.m
├ PlanSpeedForDynamicScenarios.m
└ ...
- Clone this repo.
git clone https://github.com/gyq18/AutonomousDrivingTrajectoryPlanning
-
Install the required libraries.
-
Execute main.m/main.py/main.cpp script in each directory. You can replace the planner in the main.m/main.py/main.cpp script.
-
Add star to this repo if you like it 😃.
If you find our code or paper useful, please consider citing
@ARTICLE{10329446,
author={Guo, Yuqing and Guo, Zelin and Wang, Yazhou and Yao, Danya and Li, Bai and Li, Li},
journal={IEEE Transactions on Intelligent Vehicles},
title={A Survey of Trajectory Planning Methods for Autonomous Driving — Part I: Unstructured Scenarios},
year={2023},
pages={1-29},
doi={10.1109/TIV.2023.3337318}}
- Yuqing Guo, Zelin Guo, Danya Yao, and Li Li are with the Department of Automation, Tsinghua University, Beijing 100084, China.
- Bai Li, Yazhou Wang and Yakun Ouyang are with the College of Mechanical and Vehicle Engineering, Hunan University, Changsha 410082, China.
Special thanks to Matthias Althoff and Kristoffer Bergman for their help.
- MoveIt!
- Open Motion Planning Library (OMPL)
- Stochastic Trajectory Optimization for Motion Planning (STOMP)
- Covariant Hamiltonian Optimization for Motion Planning (CHOMP)
- Search-Based Planning Library (SBPL)
- AtsushiSakai/PythonRobotics
- TUMcps/CORA
- changliuliu/CFS
- XiaojingGeorgeZhang/H-OBCA
- libai1943/CartesianPlanner
- libai2020/On_Road_Single_Vehicle_Trajectory_Decision
- rst-tu-dortmund/teb_local_planner
- Mesywang/Corridor-based and BezierCurve-based Trajectory