2023년 1학기 캡스턴 프로젝트 - Inverse Kinematics와 로봇팔을 통한 하노이탑 놀이
카메라와 학습된 모델을 통해를 현재 하노이탑의 상태를 인식하고, 그에 따라 순서에 맞는 다음 동작(원반을 옮기는 동작)을 수행하는 3차원 5관절 로봇팔 제작
default.mp4
시연 동영상 링크: https://www.youtube.com/watch?v=ozFXrJzOaL8
이름 | 역할 | GitHub |
---|---|---|
김선우 | Inverse Kinematics 계산 & 모터 제어, 하노이탑 인식 구현 | https://github.com/sw801733 |
나영조 | Inverse Kinematics 수식 계산 & Object Detection 학습 환경 구축 및 학습 진행 | https://github.com/Taebee00 |
서종현 | HW(로봇팔 프레임) 3D 모델링 및 프린팅 & 코드 리팩토링 | https://github.com/surpise |
정우영 | HW(로봇팔 프레임) 3D 모델링 및 프린팅 & Object Detection 학습 환경 구축 및 학습 진행 | https://github.com/wooyoungman |
2023.03.02 ~ 2023.06.02
- 카메라와 학습된 인공지능 모델을 통해 현재 하노이탑의 상황 파악
- 파악한 현재 상황과 하노이탑 알고리즘을 활용해 다음 동작 계산
- Inverse Kinematics를 통해 계산된 각 관절의 각도값으로 로봇팔 동작 수행
구성 | 역할 |
---|---|
카메라 | 하노이탑의 현재 상태의 이미지로로 받아오는 역할 수행 |
1번 관절 | 원통 안에서 |
2번 관절 | 1번 관절에 붙어서 |
3번 관절 | 2번 관절에 붙어서 |
4번 관절 | 3번 관절에 붙어 5번 관절, 즉 그리퍼의 수평을 맞추기 위해 |
5번 관절 | 4번 관절에 붙어 하노이탑 원반을 잡거나 놓을 수 있도록 회전하는 관절(그리퍼 제어) |
로봇팔의 프레임을 AutoDesk Fusion 360 을 통해 3D모델링 한 후 프린트하여 제작
몸통 | 덮개 | 팔 | 그리퍼 연결부 |
---|---|---|---|
로봇팔이 하노이탑의 상태를 판단할 수 있어야 하기 때문에 하노이탑 각각의 원반 이미지를 학습시키고자 함
- Jetson Nano를 지원하는
jetson-inference
라이브러리의camera-capture
라는 툴을 사용하여 직접 각각의 dataset 레이블링 - 약 1200장의 dataset 확보 후, 6:2:2의 비율로 train, valdation, test 진행
참고 링크: https://github.com/dusty-nv/jetson-inference/blob/master/docs/pytorch-collect-detection.md
- 학습된 모델을 통해 모든 원반을 인식한 후, 각각의 원반의 위치 정보를 가져와서 하노이탑의 현재 상황 파악(원반 4개 기준 1~15단계) - 현재 상황을 판단한 후, 재귀함수를 통해 하노이탑 알고리즘 수행
로봇팔의 경우, 원하는 위치로 이동시키기 위해서는 각 관절의 각도를 알고 좌표를 계산하는 것(정기구학)이 아닌, 좌표가 주어졌을 때, 그에 맞는 각 관절의 각도를 계산하는**Inverse Kinematics(역기구학)**이 필요함
Inverse Kinematics(역기구학)이란? 역기구학이란 정기구학의 반대로, 관절을 가진 로봇을 원하는 좌표에 위치시키기 위해 관절의 각도를 조절하기 위한 학문을 말한다. 순기구학의 반대로, 순기구학은 관절의 각도에 따른 위치를 계산하는 것이고, 역기구학은 위치에 따른 관절의 각도를 계산하는 것이다.
- 1,2,3번 이렇게 3개의 관절을 통해 3차원 3관절 Inverse Kinematics를 계산하고, 계산한 값을 통해 4번 관절로 그리퍼의 수평을 맞춘다.
- 2차원 2관절 Inverse Kinematics를 먼저 계산한 뒤, 그 결과를 활용하여 3차원 3관절 Inverse Kinematics를 계산하였다.