Skip to content

A prototypical implementation of a DDP solver for finding feasible trajectories in discrete-time optimal control

License

Notifications You must be signed in to change notification settings

david0oo/fp_ddp_python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FP-DDP

A prototypical implementation of a DDP solver for finding feasible trajectories in discrete-time optimal control. A high-performance implementation is available within acados.

This repository includes the code to check and reproduce the simulation results of the paper "Fast Generation of Feasible Trajectories in Direct Optimal Control".

Installation on Linux

In order to use the solver you need to install the following dependencies:

  • The protoypical solver is written in python3. Therefore, get a recent python3 version
  • Install packages.
pip install casadi rockit-meco matplotlib numpy scipy
  • Get HPIPM in python. Since we did some small changes to the python HPIPM interface, use the following repo and branch: new HPIPM python interface
  • Install the FP-DDP solver: Navigate to the fp_ddp_python directory and do
pip install -e .

For generating creating the acados results. Please install acados according to its installation instructions.

Run the experiments

  • Navigate to the folder feasibility_paper_results

Example 1: Fixed Time, Unstable OCP: Chen-Allgoewer Problem

  • Run the file chen_allgoewer_comparison.py

Example 2: Free-Time Cart Pendulum with obstacle avoidance

  • For reproducing the plot: Run the file plot_timings_performance_plot.py
  • For running the experiments, please run the following files individually:
    • For FP-DDP within acados run: acados_cart_pendulum/pendulum_p2p_obstacle.py
    • For IPOPT with code generation run: cart_pendulum/ipopt_code_generation/cart_pendulum_comparison.py
    • For IPOPT without code generation run: cart_pendulum/ipopt_no_codegen/cart_pendulum_comparison.py
    • For Scipy run: cart_pendulum/cart_pendulum_comparison.py

Contact

For questions please send an email to [email protected]

About

A prototypical implementation of a DDP solver for finding feasible trajectories in discrete-time optimal control

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages