Skip to content

Commit 9b5aea4

Browse files
Merge pull request #2 from FSC-Lab/readme-update
update readme plots
2 parents 9e25117 + d231378 commit 9b5aea4

25 files changed

+4999
-4981
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ build/*
1717
**/.csv
1818

1919
# Python cache
20-
**/.pyc
20+
__pycache__/
21+
**/.pyc

README.md

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# TOGT-Planner
22

3-
**Time-Optimal Gate-Traversing (TOGT) Planner** is a light-weight racing trajectory generator that can accommondate a broad range of race tracks comprising gates with diverse shapes and sizes. It provides high trajectory quality in terms of dynamically feasibility by employing differential-flat nature of quadrotor systems and incorporating single-rotor thrust constriants.
3+
**Time-Optimal Gate-Traversing (TOGT) Planner** is a lightweight trajectory generator for racing drones that can accommodate a broad range of race tracks comprising gates with diverse shapes and sizes. It provides high trajectory quality in terms of dynamic feasibility by employing the differential-flat nature of quadrotor systems and incorporating single-rotor thrust constraints.
44

55
## Related Papers
66

7-
If the TOGT planner helps your academic projects, please cite our paper. Thank you!
7+
If the TOGT planner helps your academic projects, please cite our papers. Thank you!
88

99
- **Time-Optimal Gate-Traversing Planner for Autonomous Drone Racing**, Chao Qin, Maxime SJ Michet, Jingxiang Chen, and Hugh H.-T. Liu, IEEE International Conference on Robotics and Automation (ICRA-2024)
1010

1111
- **Time-Optimal Planning for Quadrotors: Reaching Constant Computation Costs for Arbitrary Distance**, Chao Qin, Jingxiang Chen, Yifan Lin, Abhishek Goudar, and Hugh H.-T. Liu, (On-going)
1212

1313
## Updates:
1414

15-
- **Feb. 19, 2024** - First version released
1615
- **May. 2, 2024** - Add three different variances of the TOGT planner and make the project public
16+
- **Feb. 19, 2024** - First version released
1717

1818
## Install on Ubuntu
1919

@@ -39,17 +39,16 @@ make
3939
```
4040

4141
## Visualize the TOGT trajectory
42-
The default race track `race_uzh_7g_multiprisma.yaml` contains 7 gates with different shapes. They are triangle, rectangle, pentagon, rectangle, rectangle, hexagon, and ball gates in order. The resulting lap time is `8.23` s.
42+
The default race track `race_uzh_7g_multiprisma.yaml` contains 7 gates with different shapes, respectively, triangle, rectangle, pentagon, rectangle, rectangle, hexagon, and ball gates in order. The resulting lap time is `8.23` s.
4343
```
4444
cd ../scripts/plots
4545
python3 plot_togt_traj.py
46-
4746
```
4847

4948
![Alt Text](documents/images/togt_traj.png)
5049

5150
## Visualize the TOGT-Refined trajectory
52-
The TOGT trajectory can be refined to reach true time optimality. We take the optimal gate-traveral point as the waypiont, and use the obtained time allocation to compute a proper node number for each segment bewteen two consecutive waypoints. Then, we warm-start the multiple-shooting method with the planned TOGT trajectory. The following python script conducts the refinement for us. The resulting lap time is `7.01` s.
51+
The TOGT trajectory can be refined to reach true time optimality. We take the optimal gate-traversal point as the waypoint and use the obtained time allocation to compute a proper node number for each segment between two consecutive waypoints. Then, we warm-start the multiple-shooting method with the planned TOGT trajectory. The following Python script conducts the refinement for us. The resulting lap time is `7.01` s.
5352
```
5453
cd ../scripts/togt_refine
5554
python3 togt_refine.py
@@ -60,7 +59,7 @@ python3 plot_togt_refined_traj.py
6059

6160
## Visualize the AOS trajectory for waypoint flight
6261

63-
Another example is the Split-S track provided in [this](https://www.science.org/doi/full/10.1126/scirobotics.abh1221) paper. It consists of 19 waypoints in total with a tolerance of 0.3 m for each point. Below is our generated trajectory. The AOS stands for automatic optimal synthesis, a novel framework to address time-optimal planning problem. It is part of the result from the second reference above. It takes around 6 s to solve the minimum-time trajectory that originally requires \~50 minutes in previous methods. The resulting lap time is only 1\~2% longer than the optimal solution. We will provide in-depth analytical analysis in the paper about its distance-insensitive nature. The resulting lap time is `17.93` s while the true optimal is `17.56` s.
62+
Another example is the Split-S track provided in [this](https://www.science.org/doi/full/10.1126/scirobotics.abh1221) paper. It consists of 19 waypoints in total with a tolerance of 0.3 m for each point. Below is our generated trajectory. The AOS stands for Automatic Optimal Synthesis, a novel framework to address time-optimal planning problems. It is part of the result from the second reference above. It takes around 6 seconds to solve the minimum-time trajectory that originally required \~50 minutes in previous methods. The resulting lap time is only 1\~2% longer than the optimal solution. We will provide an in-depth analytical analysis in the paper about its distance-insensitive nature. The resulting lap time is `17.93` s while the true optimal is `17.56` s.
6463

6564

6665
```
@@ -71,7 +70,7 @@ python3 plot_aos_traj.py
7170

7271
## Visualize the AOS-TOGT trajectory
7372

74-
The TOGT and AOS planners can be seemly integrated, contributing to a super efficienct and accurate method to solve the time-optimal gate-traversing problem. The code below can visualize the result. The resulting lap time is `16.83` s, which is 4% faster than time-optimal waypoint flights.
73+
The TOGT and AOS planners can be seamlessly integrated, contributing to a highly efficient and accurate method to solve the time-optimal gate-traversing problem. The code below can visualize the result. The resulting lap time is `16.83` s, which is 4% faster than time-optimal waypoint flights.
7574

7675
```
7776
cd ../scripts/plots
@@ -82,7 +81,7 @@ python3 plot_aos_togt_traj.py
8281

8382
## Acknowledgements
8483

85-
- We use [LBFGS-Lite](https://github.com/ZJU-FAST-Lab/LBFGS-Lite) as the internal solver: An Easy-to-Use Header-Only L-BFGS Solver.
84+
- We use [LBFGS-Lite: An Easy-to-Use Header-Only L-BFGS Solver](https://github.com/ZJU-FAST-Lab/LBFGS-Lite) as the internal solver.
8685
- We use [GCOPTER](https://github.com/ZJU-FAST-Lab/GCOPTER) for geometric constraint elimination.
8786
- We use several utility functions in [Agilicious](https://github.com/uzh-rpg/agilicious) to facilitate development.
8887
- We refer to [FastFly](https://github.com/BIT-KAUIS/Fast-fly) for the implementation of the multiple shooting method.

documents/images/aos_refined_traj.png

62.4 KB
Loading

documents/images/aos_togt_traj.png

-28.4 KB
Loading

documents/images/aos_traj.png

-19.6 KB
Loading

documents/images/aos_traj_refined.png

-80.9 KB
Binary file not shown.
319 Bytes
Loading

documents/images/togt_traj.png

2.43 KB
Loading

0 commit comments

Comments
 (0)