Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trajopt_ifopt TODO list #183

Open
11 of 15 tasks
mpowelson opened this issue May 27, 2020 · 7 comments
Open
11 of 15 tasks

Trajopt_ifopt TODO list #183

mpowelson opened this issue May 27, 2020 · 7 comments

Comments

@mpowelson
Copy link
Contributor

mpowelson commented May 27, 2020

@Levi-Armstrong
Copy link
Contributor

@mpowelson Is this what is remaining for completing trajopt_ifopt where it has the same functionality as trajopt?

@Levi-Armstrong Levi-Armstrong pinned this issue Sep 28, 2020
@mpowelson
Copy link
Contributor Author

Big things I can think of are #192 and #193. Smaller issues, we are missing the dynamic cartesian constraint as well as joint acceleration. There are probably other things that will come up where you can semantically do the same thing but it looks a little different in the optimization (e.g. the old trajopt start_fixed flag), but I think the other collision evaluators are really the main thing that is missing before it will work for the majority of cases.

Of course time parameterization is also something that will need to be reworked.

@colin-lewis-19
Copy link
Contributor

I'm going to start chipping away at this, starting with #192

@mpowelson
Copy link
Contributor Author

mpowelson commented May 14, 2021

Other possible performance improvements.

  • Test out other linear solvers. OSQP supports MKL Parsido. "MKL Pardiso is an efficient multi-threaded linear system solver that works well for large scale problems part of the Intel Math Kernel Library"
  • IFOPT problems don't change size, so we could use OSQP code generation to generate a problem once and solve it repeatedly. I'm not sure if this is supposed to be faster or is just for deploying the QP solver in an external codebase

@simonschmeisser
Copy link

Maybe I'm missing something obvious, but what's the difference between ifopt and sco? When would I use one or the other? Or is ifopt a successor to sco? If you provide me with some hints I can add a few lines to the readme

@mpowelson
Copy link
Contributor Author

Yes, trajopt_ifopt + trajopt_optimizers was intended as a successor to trajopt + trajopt_sco. It was intended to make the creation of the problem and the solver used more separate so we could more easily add other optimizers. Currently trajopt_ifopt is not recommended. We've used it for some examples, but there are still a few things to be worked out. However, there are some applications like this online planning example which aren't really possible with the way the old trajopt was structured.

@rjoomen
Copy link
Contributor

rjoomen commented Dec 13, 2023

I think the joint velocity, acceleration and jerk constraint coefficients are done, right? I also tested the MKL Pardiso solver as backend for OSQP and that works (albeit slower than QDLDL in my case), so that box can be checked as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants