본문 바로가기

개념공부/기타30

[C++] GUI 추천 Dear ImGui (아임구이) 회사에서 누군가 ImGui로 GUI를 만들어 놓아서 유지보수를 위해 반강제로 공부하게 되었다ㅎㅎ. 그런데 사용성도 간편하고, 비쥬얼라이저 효과가 좋아서 공부하길 잘한 것 같다. ImGui로 코드 짜신 분께 감사함! GitHub - ocornut/imgui: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependenciesDear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies - ocornut/imguigithub.comDear ImGuiDear ImGui는 가볍고 불필요한 기능을 줄인 C++용 그래픽 사용자 인터페이스 라이브러리 (GU.. 2024. 10. 28.
PC에서 개발한 소스코드를 임베디드 소스코드로 만들기 임베디드 소스코드로 변경하는 이유? 자동차, 생활가전, 모바일 등 아직까지도 많은 프로그램이 클라우드가 아닌 로컬 장치의 임베디드 환경에서 동작해야 한다. 이런 프로그램을 개발할 때 타겟 환경에서 바로 개발 및 테스트를 해보는 것이 좋지만, 때로는 PC에서 개발한 후 타겟 환경에서 테스트 해야 하는 경우도 있다. 이 때 PC환경에서 개발하다보면 OS(ex/ Windows)에서 제공하는 API나 기타 Library를 사용하게 된다. 이 코드를 그대로 타겟 환경으로 가져가게 되면 빌드 오류가 발생한다. 따라서 임베디드 환경에서 동작할 소스코드의 경우, 타겟 환경에서 사용할 수 없는 Windows API나 기타 Library를 사용하지 않도록 주의를 기울여야 한다.임베디드 소스코드를 만드는 과정 PC에서 개발.. 2024. 9. 14.
OSQP Solver 빌드하기 OSQP는 Quadratic Programming 최적화 문제를 풀어주는 오픈소스 Solver이다. 오픈소스를 나의 개발 환경에 맞춰 사용하기 위해 소스코드를 직접 빌드하여 라이브러리를 생성했다. 이 과정을 정리하였고, 이는 OSQP 공식 Docs 안내 글을 참고하였다. OSQP : https://osqp.org/docs/release-0.6.3/get_started/sources.html#build-from-sources 준비사항 1. Compiler : TDM-GCC 설치하자 (https://jmeubank.github.io/tdm-gcc/download/) 2. CMake : (https://cmake.org/download/#latest) 3. OSQP 소스코드 : https://github.co.. 2023. 12. 22.
QP Solver 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 GitHub - osqp/osq.. 2023. 11. 29.
FLOPS Flops는 floating point operations per second의 준말로 flops, flop/s라는 표현으로도 사용된다. 이는 1초동안 컴퓨터가 수행할 수 있는 부동 소수점 연산의 횟수이다. 컴퓨터의 performance를 나타내는 지표로 floating point 계산이 필요한 연산 능력을 측정하는데 유용하다. Flops와는 또 다른 개념으로 instructions per second가 있는데 이는 구분되는 개념이다. 먼저, Floating point는 부동 소숫점으로 실수를 나타낼 수 있는 표현 방식이다. Floting point 연산은 매우 크거나 작은 실수 연산에 필요하다. Floting point는 32-bit 포맷을 single precision이라 정의하고, 64-bit 포맷.. 2023. 10. 25.
[OpenGL] GLUT 먼저 OpenGL은 라이브러리가 아닌 API 규격이다. 함수의 이름, 기능, 인자, 작동 방식 등이 설명된 것이다. OpenGL에 명세된 내용은 그래픽 처리 장치 제조 업체에서 구현한다. 엔비디아, AMD, 인텔 과 같은 제조업체에서 구현되어 드라이버와 함께 그래픽 카드에 탑재된다. 이렇게 작성된 코드들을 라이브러리처럼 사용하게 된다. GLUT이란 OpenGL 유틸리티 툴킷으로 운영체제로부터 독립적이고 이식성이 좋은 코드를 구현하기 위해 개발되었다. GLUT 외에도 GLFW (Graphics Library Framework) 또한 유틸리티 라이브러리이다. 유틸리티 라이브러리는 GLFW, GLUT, FreeGLUT, GLU 등 다양하게 존재한다. 하지만 GLUT와 GLU는 1998년 이후로 업데이트 되지 .. 2023. 9. 11.