CasADi vs. ACADO

1,406 views
Skip to first unread message

Robert Krug

unread,
Feb 25, 2014, 11:13:22 AM2/25/14
to casadi...@googlegroups.com
Hi,

I have used ACADO in the past to solve parameter estimation and optimal control problems (in C++). I'm wondering what are the conceptual differences between the two toolkits, seeing that both allow to formulate OCP/NLP problems in a symbolic fashion using automatic differentiation. CasADi seems to provide more interfaces to 3rd-party software/solvers but what are the differences from an intended applications point of view?

Thx,
-Robert-

Joel Andersson

unread,
Feb 25, 2014, 12:21:13 PM2/25/14
to casadi...@googlegroups.com
Hello Robert!

Both CasADi and ACADO are from the same research group so I can understand that there is a bit of confusion. The main difference, except being developed by different people, are:

ACADO allows users to specify optimal control problems with a symbolic syntax and then tries to solve these for the user. Its focus are on small, fast systems and on real-time algorithms for optimization based control and optimization.

CasADi, in contrast, is a much more of a general purpose optimization framework and can be used as an alternative to algebraic modelling languages such as AMPL or GAMS. It does not provide a "ready" solver for optimal control problems like ACADO, but provides relatively simple ways of transcribing an OCP to an NLP using a range of different methods including direct multiple shooting (the method used in ACADO) and direct collocation. To use CasADi efficiency, you need to understand the underlying optimal control algorithms.

I hope this makes things clearer!
Joel

Robert Krug

unread,
Feb 25, 2014, 6:58:53 PM2/25/14
to casadi...@googlegroups.com
Hi Joel, thanks for the speedy clarifications.

All the best,
-Robert-

Pedro Tabacof

unread,
Mar 3, 2014, 3:16:07 PM3/3/14
to casadi...@googlegroups.com
Hello,

I tried using both CasADi (direct collocation) and ACADO (multiple shooting) for nonlinear ODE parameter estimation problems.

With CasADi I had to tweak the base direct collocation code a bit before I got it to do parameter estimation, but when I did, it worked perfectly for my toy problem (1500 data samples for a very nonlinear system).

With ACADO it was much easier to implement the code because parameter estimation is already a standard feature there. However, its internal structure couldn't even handle the toy problem, running out of memory every time. See http://sourceforge.net/p/acado/discussion/general/thread/65216c56/

Besides, overall I preferred working with CasADi, it seems more versatile and powerful.

Pedro.

Reply all
Reply to author
Forward
0 new messages