728x90
반응형
- Solver
- Optimization Problem을 풀어주는 Tool
- Optimization Problem 분류에 따라 Solve 알고리즘이 상이하고, Solver 또한 상이함
- ex) MATLAB - linprog, quadrprog, OSQP 등..
- OSQP Solver
- Linear Programming, Quadratic Programming을 풀 수 있는 Solver
- 오픈소스임 (License : Apache-2.0 License)
- OSQP 홈페이지 : https://osqp.org/
- OSQP 문서 : https://osqp.org/docs/release-0.6.3/
- OSQP Github (C 코드 개발 브랜치) : https://github.com/osqp/osqp
- 특징
- 임베디드 환경에서 사용 가능하도록 매크로 제공함 (동적 할당, 외부 라이브러리 미사용)
- 이때 QP 문제에 대한 Workspace 구조체를 미리 만들어 전역 변수로 선언해야 함
- MATLAB에서 OSQP API를 이용한 Codegen으로 Workspace .c / .h 를 생성할 수 있음
- Workspace.c / .h를 OSQP 소스코드와 함께 프로젝트에 추가하여 사용하면 됨
- 이때 QP 문제에 대한 Workspace 구조체를 미리 만들어 전역 변수로 선언해야 함
- 기본 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 |