2025년 Comento Robot SW 교육 과정에서 진행한 로봇 기구학 실습 프로젝트입니다. 수업에서 배운 Kutzbach Formula를 코드로 옮겨 Robot DOF를 계산하고, 교육 자료에 제시된 UR5 DH Parameter로 Forward Kinematics를 구현했습니다. 계산 결과는 Python GUI와 3D visualization으로 확인했습니다.
수식으로 배운 로봇 기구학 개념을 Python 코드로 구현하는 데 초점을 맞췄습니다. 콘솔 계산에서 출발해 Tkinter GUI를 추가했고, 이어 PyQt5와 Matplotlib을 결합한 UR5 3D visualization으로 확장했습니다.
File: dof0713.py
- 링크 수 입력
- 관절 수 입력
- 각 관절의 자유도 입력
- Kutzbach Formula 기반 자유도 계산
- 입력값과 관절별 자유도 개수 검증
- Tkinter GUI
- 계산 결과에 따른 간단한 설계 피드백
교육 과정에서 학습한 Kutzbach Formula를 코드에 적용했습니다. 이 공식은 이 프로젝트에서 독자적으로 만든 것이 아닙니다.
F = 6 × (links - joints - 1) + Σ(joint DOF)
File: forwardKinematics0720.py
- 교육 자료에서 제공된 UR5 DH Parameter 적용
- 4×4 homogeneous transformation matrix 계산
- 6개 관절의 transformation을 순서대로 곱해 joint position 계산
- PyQt5 GUI
- 6개 joint slider (
-180°~180°) - slider 변경 시 3D configuration 갱신
- Matplotlib 3D visualization
- 현재 plot을 PNG로 저장하는 snapshot 기능
UR5 DH Parameter는 교육 자료에서 제공된 값을 그대로 사용했습니다.
a = [0, -0.425, -0.392, 0, 0, 0]
d = [0.089, 0, 0, 0.109, 0.095, 0.082]
alpha = [π/2, 0, 0, π/2, -π/2, 0]PyQt5 slider로 6개 관절 각도를 조정하고, Matplotlib 3D plot에서 관절 위치를 갱신하는 화면입니다.
- Robot DOF와 Kutzbach Formula
- DH Parameter의 의미
- Homogeneous Transformation Matrix
- Forward Kinematics
- 연속 transformation matrix multiplication
- Python GUI 구성
- Matplotlib 기반 3D visualization
위 항목은 Comento Robot SW 교육 과정과 실습에서 학습한 범위입니다.
- Python
- NumPy
- Tkinter
- PyQt5
- Matplotlib
Windows의 프로젝트 디렉터리에서 가상환경을 만들고 필요한 패키지를 설치합니다.
py -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtRobot DOF GUI:
python dof0713.pyUR5 Forward Kinematics GUI:
python forwardKinematics0720.pyRobot-SW-Develop/
├── dof0713.py
├── forwardKinematics0720.py
├── ur5_gui_snapshot.png
├── README.md
├── requirements.txt
└── .gitignore
Implemented:
- Robot DOF calculation
- Forward Kinematics
- UR5 joint position visualization
- Python GUI
Not implemented:
- Inverse Kinematics
- Jacobian / singularity analysis
- Dynamics
- Trajectory planning
- Collision detection
- ROS
- Actual UR5 hardware control
이 프로젝트는 기구학 수식과 Python 구현을 연결해 본 교육 실습입니다. 실제 UR5 하드웨어를 제어하는 프로젝트는 아닙니다.
이 저장소는 개인 독립 프로젝트가 아닌, 2025년 Comento Robot SW 교육 과정의 실습 결과물입니다. DOF와 Kutzbach Formula는 교육 과제로 학습했으며 UR5 DH Parameter는 교육 자료의 값을 사용했습니다. 수업에서 Forward Kinematics와 DH transformation을 익힌 뒤 Python 코드에 적용했습니다.
Git history에는 콘솔 DOF 계산에서 Tkinter GUI, Forward Kinematics, PyQt5 GUI로 기능을 넓혀 간 과정이 남아 있습니다. 수업에서 제공된 개념·공식·파라미터와 실습 중 작성한 코드의 범위를 구분해 설명하며, 본인 기여 비율을 임의의 수치로 제시하지 않습니다.
