본문 바로가기
개념공부/기타

QP Solver

by Zach Choi 2023. 11. 29.
728x90
반응형
  • Solver
    • Optimization Problem을 풀어주는 Tool
    • Optimization Problem 분류에 따라 Solve 알고리즘이 상이하고, Solver 또한 상이함
      • ex) MATLAB - linprog, quadrprog, OSQP 등..
  • OSQP Solver
 

GitHub - osqp/osqp: The Operator Splitting QP Solver

The Operator Splitting QP Solver. Contribute to osqp/osqp development by creating an account on GitHub.

github.com

  • 특징
    • 임베디드 환경에서 사용 가능하도록 매크로 제공함 (동적 할당, 외부 라이브러리 미사용)
      • 이때 QP 문제에 대한 Workspace 구조체를 미리 만들어 전역 변수로 선언해야 함
        • MATLAB에서 OSQP API를 이용한 Codegen으로 Workspace .c / .h 를 생성할 수 있음
        • Workspace.c / .h를 OSQP 소스코드와 함께 프로젝트에 추가하여 사용하면 됨
    • 기본 C언어로 작성되었고 C++, Python 등 다양한 언어 지원함

 

  • 사용 예시
    • 일반 PC 환경 : OSQP Example을 참고해 사용하면 됨
    • 임베디드 환경 : OSQP에서 제공하는 EMBEDDED Flag 활성화 후, QP Problem의 Hessian Matrix, Gradient Vector, Constraint Matrix, Bound Vector를 Update 하는 API를 사용하면 됨. (이때 Workspace .c/.h를 QP Problem의 크기에 맞게 미리 만들어 놓아야 함)
  • 차량 임베디드 환경에서 MPC Problem Update & Solve를 직접 테스트 하였음
728x90
반응형

'개념공부 > 기타' 카테고리의 다른 글

PC에서 개발한 소스코드를 임베디드 소스코드로 만들기  (0) 2024.09.14
OSQP Solver 빌드하기  (0) 2023.12.22
FLOPS  (0) 2023.10.25
[OpenGL] GLUT  (0) 2023.09.11
[MATLAB] mex 파일이란  (0) 2023.06.27