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

[config] Allow external qpOASES dependency #22

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

olivier-roussel
Copy link
Contributor

@olivier-roussel olivier-roussel commented Mar 22, 2024

This PR enables the use of qpOASES from an external package. A similar approach to the one adopted on SOFA is proposed:

  • try to find an external package qpOASES first and use it if found
  • if not, fallback to the embedded version in code

Thus, this should keep compatibility for current users.

Edit 1: The PR also adds a cmake option SOFTROBOTSINVERSE_ENABLE_QPOASES to enable/disable the qpOASES solver support. We now have two cmakes options for enabling/disabling each qp solver implementation: one for qpOASES and one for proxQP. Note that they are not mutually exclusive and both solvers can be enabled (selected solver can be parameterized at runtime).

The CI based on Conda tests now both solvers (one CI for each solver/platform combination).

Edit 2: The PR also fixes the LCP QP solver which was still using qpOASES all the time. Now, the LCPQPSolver has an implementation for each QP solver, and the corresponding one is used.

This is part of some necessary steps to clean the code and to go toward a conda-forge package.

@olivier-roussel
Copy link
Contributor Author

olivier-roussel commented Mar 25, 2024

Note that 7593fd8 includes a fix that renames the directory cmake/modules to cmake/Modules, which is the one defined in the CMAKE_MODULE_PATH. So far, all these find modules could not be located on linux due to this case typo (but it seems that none is used actually, excepted the new one for qpOASES).
It should have been in a dedicated commit, I just missed it when squashing... sorry for that

@olivier-roussel
Copy link
Contributor Author

We'll re-run the CI once #20 is merged and then check for merging

@olivier-roussel olivier-roussel force-pushed the allow-external-qpOASES-2 branch 2 times, most recently from 934c2d3 to f8af23c Compare April 30, 2024 08:19
@olivier-roussel olivier-roussel force-pushed the allow-external-qpOASES-2 branch from f8af23c to e0bec8d Compare June 21, 2024 10:04
@olivier-roussel olivier-roussel marked this pull request as draft January 20, 2025 16:07
@olivier-roussel olivier-roussel force-pushed the allow-external-qpOASES-2 branch 6 times, most recently from 40e2adf to 9426528 Compare January 21, 2025 16:51
@olivier-roussel olivier-roussel force-pushed the allow-external-qpOASES-2 branch 2 times, most recently from 29a386a to 0f9fb7c Compare January 29, 2025 10:24
@olivier-roussel olivier-roussel force-pushed the allow-external-qpOASES-2 branch from 0f9fb7c to 1c23d01 Compare January 29, 2025 11:21
@olivier-roussel olivier-roussel marked this pull request as ready for review January 29, 2025 13:13
@olivier-roussel
Copy link
Contributor Author

@alxbilger @EulalieCoevoet This is finally ready for review. 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 this pull request may close these issues.

1 participant