- 로봇팔의 순기구학 제어 원리를 시각적으로 검증하기 위해 OpenGL 기반 시뮬레이션을 구현
- 개발언어: C++
- 라이브러리: OpenGL,GLM,GLAD
- 개발 툴 : visual studio 2022
- OpenGL
- GLFW
- GLM
- Assimp
본 프로젝트는 CMake 기반으로 빌드되며,외부 라이브러리(GLFW, GLM, Assimp)는 vcpkg 등의 패키지 매니저를 통해 관리됩니다.
- 각 관절에 대해 glm::translate, glm::rotate를 계층적으로 적용하여 4×4 변환행렬(Mat4) 생성
- 상위 관절의 변환이 하위 관절에 누적되도록 계층적 좌표계(Hierarchical Coordinate System) 구성
- 최종적으로 Base → Shoulder → Elbow → Wrist → Palm 순으로 연결된 Forward Kinematics 체인 구조 구현
- Shader에 model matrix를 전달해 실시간 렌더링 및 조명 반영
- 키보드(1~5) 및 마우스 입력으로 각 관절 회전값 실시간 제어 (Manual control)
Base(1) ├── Shoulder(2) │ └── Elbow(3) │ └── Wrist(4) │ └── Palm(5) │ ├── Finger1 │ │ └── Finger1 Tip │ └── Finger2 │ └── Finger2 Tip
- Palm(손바닥)과 Object(주전자) 사이의 유클리드 거리 계산
- 거리 임계값(Threshold)과 손가락 각도(angle)에 따라 물체를 잡거나 놓는 상태 판단
- Forward Kinematics 결과 좌표를 이용해 grasp 동작 구현
- 물체를 놓을 경우, 현재 로봇팔 위치를 기준으로 중력 방향(−y축)으로 물체 낙하 시뮬레이션
- Primitive 추상 클래스를 중심으로, Cylinder, Sphere, Plane이 이를 상속(inheritance) 하여 다형성(polymorphism) 으로 각 기하 객체를 생성 → 코드 확장 시 다른 형태의 로봇 부품을 쉽게 추가 가능