robotology / osqp-eigen

Simple Eigen-C++ wrapper for OSQP library
https://robotology.github.io/osqp-eigen/
BSD 3-Clause "New" or "Revised" License
395 stars 118 forks source link
convex-optimization optimization osqp qp quadratic-programming

osqp-eigen

General c++14 License
CI/CD Codacy Badge CI Azure
conda Conda Recipe Conda Downloads Conda Version Conda Platforms

Simple C++ wrapper for osqp library.

📚 Documentation

The documentation is available online at the accompanying website.

📄 Dependences

The project depends only on osqp and Eigen3. Please install Catch2 if you want to run the tests only for testing.

🛠️ Usage

📦 Install with conda (recommended)

You can easily the library with conda using the following command

conda install -c conda-forge osqp-eigen

conda will automatically install osqp and Eigen3.

⚙️ Build from source (advanced)

  1. Clone the repository
    git clone https://github.com/robotology/osqp-eigen.git
  2. Build it
    cd osqp-eigen
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX:PATH=<custom-folder> ../
    make
    make install
  3. Add the following environmental variable
    OsqpEigen_DIR=/path/where/you/installed/

🖥️ How to use the library

osqp-eigen provides native CMake support which allows the library to be easily used in CMake projects. osqp-eigen exports a CMake target called OsqpEigen::OsqpEigen which can be imported using the find_package CMake command and used by calling target_link_libraries as in the following example:

cmake_minimum_required(VERSION 3.0)
project(myproject)
find_package(OsqpEigen REQUIRED)
add_executable(example example.cpp)
target_link_libraries(example OsqpEigen::OsqpEigen)

🐛 Bug reports and support

All types of issues are welcome.

📝 License

Materials in this repository are distributed under the following license:

All software is licensed under the BSD 3-Clause License. See LICENSE file for details.