A Modern C++20 Implementation of OSQP Wrapper #608
Replies: 2 comments 4 replies
-
Hello @houchen-li, first of all, thanks a lot for open sourcing https://github.com/houchen-li/modern-osqp-cpp, it seems quite interesting! Full disclosure, I work on osqp-eigen repo, so I am also interested on your feedback on osqp-eigen.
I am not sure to understand what you mean by "soft constraints". To which functionality of osqp (or
Can you make an example of the aspects that are not user-friendly in osqp-eigen and instead are user friendly in
Can you make an example of this? If I am not wrong, in
Just to understand, are those wrappers based on |
Beta Was this translation helpful? Give feedback.
-
OSQP itself doesn't support soft constraints natively in the algorithm (yet...), so any wrappers that would support that are implementing it in their wrapper structure. I am working on an idea for how to support soft constraints natively in the projection operator, but it probably won't be available for a bit.
Managing which parts of the memory? We have actually been adding some memory storage wrappers in the OSQP test suite to wrap the OSQP objects inside But the general idea is that since OSQP is a C library, the user is still responsible for the vast majority of the memory management instead of the library. |
Beta Was this translation helpful? Give feedback.
-
Hello everyone! I am an software engineer who serves at an autonomous driving vehicle company of China.
In the past 6 months, I was asked to do lots of convex-optimizing-based trajectory plannings. The solver wrappers which I dealt with at that company were just horrible!!! Memory leaks and out-of-bound exceptions happened every where and all the time! Thus I decided to implement a modernized, user-friendly OSQP C++ wrapper.
As far as I knew, there were 2 osqp cpp wrapper existing on GitHub-- and . But they do come with some known issues:
In the end, I found the solutions to above three issues and completed my version of OSQP C++ wrapper. The source code of my library can be found at . This repository uses C++20 standard, but it can be downgraded to C++11 with very little jobs to do. I think this implementation can be applied to broader area of industry, not only be limited in autonomous driving vehicles.
I am wondering if my implementation would be admitted by the official development team of OSQP. Since this is my first public open-source project, you may find some bad implementations in it. But at least this repository provides an third option of OSQP C++ wrapper (from my opinion).
I hope to hear you all like my contribution to the community!
Beta Was this translation helpful? Give feedback.
All reactions