A C++ header-only library for real-time, spatial-temporal optimal trajectory generation for aggressive quadrotor flight.
AM-Traj is a C++ header-only library for generating optimal piecewise polynomial trajectories for aggressive quadrotor flight. It solves the trajectory optimization problem with a focus on computational efficiency and simultaneous spatial-temporal optimality, enabling real-time trajectory generation for autonomous drones. The library provides both constrained and unconstrained optimization methods to ensure dynamic feasibility while minimizing objective functions like jerk and acceleration.
Robotics researchers and engineers working on autonomous quadrotor navigation, especially those developing high-speed or aggressive flight capabilities requiring real-time trajectory planning.
Developers choose AM-Traj for its exceptional speed (≥150Hz optimization), minimal dependencies, and algebraic approach that avoids general-purpose NLP solvers, making it ideal for embedded or real-time systems where computational resources are limited.
Alternating Minimization Based Trajectory Generation for Quadrotor Aggressive Flight
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Generates spatial-temporal optimal trajectories with 60 pieces within 5ms, enabling real-time applications at 150Hz or higher, as demonstrated in the README benchmarks.
Requires only two header files (am_traj.hpp and root_finder.hpp) and minimal dependencies on STL and Eigen, making integration straightforward for C++11 projects.
Uses an algebraic method that scales efficiently with polynomial order, outperforming traditional checkers in speed for high-order constraints, as shown in performance comparisons.
Implements linear-time algorithms that can compute trajectories with up to 1,000,000 segments efficiently, requiring only seconds for unconstrained spatial optimization.
The repository is explicitly marked as deprecated, with the authors directing users to newer projects like EGO-Planner and GCOPTER, indicating no future updates or support.
Limited to a specific polynomial order; adapting to higher or lower orders requires significant code changes, as admitted in the README's misc section.
Running the provided examples necessitates installing ROS, specific GCC versions, PyGame, and OMPL, which adds substantial setup complexity beyond the core library.
Designed primarily for aggressive quadrotor flight, so it may not be directly applicable to other robotics domains without modification, as highlighted in the philosophy.