# OsqpEigen **Repository Path**: ph_code/osqp-eigen ## Basic Information - **Project Name**: OsqpEigen - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-11-09 - **Last Updated**: 2022-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [TOC] # OsqpEigen 安装 ​ **涂志明 2020.09.18** ### 1.Osqp安装 [OSQP安装步骤](https://osqp.org/docs/get_started/cc++) ​ 但Osqp使用时 矩阵(H矩阵,f矩阵)均是以三个向量去表示并存储的, 不够直观方便, 此时可以使用OsqpEigen库, 用Eigen去表达矩阵的形式,非常方便快捷. Osqp库源程序如osqp-0.4.1.zip 已经编译好,可以将头文件和库文件放到自己/usr/local/目录下 Osqp库例子程序如OSQPtest.zip ### 2.OsqpEigen 源程序更改 ```cpp //Solver.cpp osqp_setup()程序的接口错误 //下面注释的为原程序中内容 注释下方为更改后内容 bool OsqpEigen::Solver::initSolver() { if(m_isSolverInitialized){ std::cerr << "[OsqpEigen::Solver::initSolver] The solver has been already initialized. " << "Please use clearSolver() method to deallocate memory." << std::endl; return false; } if(!m_data->isSet()){ std::cerr << "[OsqpEigen::Solver::initSolver] Some data are not set." << std::endl; return false; } OSQPWorkspace* workspace; // if(osqp_setup(&workspace, m_data->getData(), // m_settings->getSettings()) != 0 ){ // std::cerr << "[OsqpEigen::Solver::initSolver] Unable to setup the workspace." // << std::endl; // return false; workspace = osqp_setup(m_data->getData(), m_settings->getSettings()); if( workspace == 0 ){ std::cerr << "[OsqpEigen::Solver::initSolver] Unable to setup the workspace." << std::endl; return false; } m_workspace.reset(workspace); m_isSolverInitialized = true; return true; } ``` ### 3.OsqpEigen库生成 此处使用Qt Creator去生成OsqpEigen的动态库与静态库 如OsqpEigen.zip文件 ### 4.OsqpEigen使用 [库的文档](https://robotology.github.io/osqp-eigen/doxygen/doc/html/index.html) 库例程如OsqpEigenTest.zip