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".
In order to use the solver you need to install the following dependencies:
- The protoypical solver is written in
python3
. Therefore, get a recentpython3
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.
- Navigate to the folder
feasibility_paper_results
- Run the file
chen_allgoewer_comparison.py
- 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
- For FP-DDP within acados run:
For questions please send an email to [email protected]