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

Problem running casadi-based controllers for whole-body-controllers when installing whole-body-controllers from conda binary packages #782

Closed
traversaro opened this issue Jun 2, 2021 · 10 comments · Fixed by robotology/whole-body-controllers#130

Comments

@traversaro
Copy link
Member

When whole-body-controllers is installed from conda binary packages (so following the instructions in https://github.com/robotology/robotology-superbuild/blob/master/doc/conda-forge.md#binary-installation), the casadi package is installed via the casadi conda-forge binary available in https://github.com/conda-forge/casadi-feedstock . However, osqp is not enabled in that build, so some controllers that use casadi+osqp would fail at runtime.

@traversaro
Copy link
Member Author

Actually, looking directly in the whole-body-controllers code, it seems that the QP solver used there is qpoases (see https://github.com/robotology/whole-body-controllers/blob/6e9a67623642d190427bace17d0b439bd2a13e8d/library/simulink-library/MomentumVelocityControl/src/casadi_block.m#L226). This means that even the usual installation process is broken, as qpOASES is not enabled in the casadi build of the robotology-superbuild (see https://github.com/robotology/robotology-superbuild/blob/master/cmake/Buildcasadi.cmake#L22).

@CarlottaSartore @gabrielenava do you think we can switch to use osqp in https://github.com/robotology/whole-body-controllers/blob/6e9a67623642d190427bace17d0b439bd2a13e8d/library/simulink-library/MomentumVelocityControl/src/casadi_block.m#L226 ? Otherwise, we need to add qpOASES support both in the robotology-superbuild build of casadi, and in the conda-forge build ( https://github.com/conda-forge/casadi-feedstock ). Obviously if we can avoid that additional work and just use osqp it would be great!

@traversaro
Copy link
Member Author

traversaro commented Jun 2, 2021

Related issues: conda-forge/casadi-feedstock#51 .

@CarlottaSartore
Copy link

Ciao @traversaro ! Actually, the velocity controller version we are currently using has osqp as a solver (see https://github.com/robotology/whole-body-controllers/blob/258bced9cdb74a8c745ca3548c4c60ee85f295aa/library/simulink-library/MomentumVelocityControl/src/casadi_block.m#L251) but it is in devel and has not been merged yet into master.

@gabrielenava if we merge devel into master we should resolve the problem, what do you think?

@traversaro
Copy link
Member Author

Perfect! No hurry, it is not urgent. I just wanted to make sure that we eventually fix it.

@traversaro
Copy link
Member Author

The conda-forge part of the problem was fixed in conda-forge/casadi-feedstock#52 .

@gabrielenava
Copy link
Collaborator

@gabrielenava if we merge devel into master we should resolve the problem, what do you think?

yes, we will open a dedicated PR then

@traversaro
Copy link
Member Author

traversaro commented Aug 6, 2021

wbc master and the latest release still uses qpoases (see https://github.com/robotology/whole-body-controllers/blob/master/library/simulink-library/MomentumVelocityControl/src/casadi_block.m#L226), that is not enabled in most of our casadi builds.

@gabrielenava if we merge devel into master we should resolve the problem, what do you think?

yes, we will open a dedicated PR then

Any update on this that should solve the issue?

@gabrielenava
Copy link
Collaborator

I tried to open a PR from devel to master branch in whole-body-controller, but after a quick check I realized the devel branch is currently broken - see robotology/whole-body-controllers#130 (comment)

I will bump back the modification that broke the controllers, then it should be possible to proceed with merging.

@gabrielenava
Copy link
Collaborator

I fixed devel branch in whole-body-controllers - see robotology/whole-body-controllers#130 (comment)

I merged the PR and now no controllers should use qpOASES anymore even in master branch @traversaro

@gabrielenava gabrielenava reopened this Aug 6, 2021
@traversaro
Copy link
Member Author

I fixed devel branch in whole-body-controllers - see robotology/whole-body-controllers#130 (comment)

I merged the PR and now no controllers should use qpOASES anymore even in master branch @traversaro

Great, thanks!

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

Successfully merging a pull request may close this issue.

3 participants