RoboticExplorationLab/TrajectoryOptimization.jl
A fast trajectory optimization library written in Julia
What it solves
Trajectory optimization problems have a unique structure that makes general nonlinear programming (NLP) solvers inefficient. This package provides a specialized interface and evaluation methods that let solvers exploit that structure, dramatically improving computational efficiency. It also frees users from hand-writing derivatives, because all dynamics, cost, and constraint functions are differentiated automatically via Julia's ForwardDiff.jl.
How it works
TrajectoryOptimization.jl is a lightweight package that focuses only on defining and evaluating trajectory optimization problems. It does not include solvers; instead, it defines an interface that separate solver packages (like Altro.jl) implement. The package provides a convenient API to set up problems, and nearly all of its evaluation methods have zero memory allocations and are highly optimized for speed. Users specify dynamics, costs, and constraints as functions, and the package uses automatic differentiation to compute derivatives.
Who it's for
This package is for researchers and engineers working on trajectory optimization, especially in robotics and control. It is particularly useful for those who want to build or test custom solvers that can leverage the efficient problem evaluations, or for users who want a clean, modular way to formulate trajectory optimization problems in Julia.
Highlights
- Provides a clean API for defining trajectory optimization problems.
- Evaluation methods are extremely fast, with near-zero memory allocations (up to 100x faster than earlier versions).
- Automatically differentiates dynamics, cost, and constraints using ForwardDiff.jl — no manual derivatives needed.
- Decoupled from solvers, allowing different solver packages to implement its interface (e.g., Altro.jl).
- Split into modular packages (RobotDynamics.jl, Altro.jl, RobotZoo.jl, TrajOptPlots.jl) for increased flexibility.
Related
- Project
- Project
- Project
- Project