Skip to content

samavmoore/diffipopt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

diffipopt

A differentiable JAX wrapper around IPOPT for direct collocation.

This code provides an interface for performing differentiable trajectory optimization using IPOPT, with bindings through cyipopt and automatic differentiation via JAX. Although the project has not been under active development for quite a while, it may still be useful to researchers interested in differentiable optimal control or parameter-sensitivity analysis/hardware-software co-design.

My original motivation was to explore how a system’s physical parameters influence the controllability, stability, or maneuverability of a closed-loop controller around a nominal trajectory obtained via trajectory optimization. The code includes an example (example.py) demonstrating differentiation through the open-loop solution for the cart-pole swing up problem wrt the physical params like mass and length. Only open-loop differentiation and trapezoidal collocation is implemented at present.

Task-in-the-Loop_Workflow_vertical

About

Differentiable JAX wrapper for trajectory optimization via IPOPT and direct collocation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages