Search
🎮

피카츄 배구 모션 컨트롤러

Stacks
Python
OpenCV
진행기간
2022.04. ~ 2022.05.

TL;DR

졸업 연구를 통해 피카츄 배구(원제: 対戦! ぴかちゅ ~ビーチバレー編~)를 대상으로 키보드 인터페이스와 모션 인터페이스의 성능 및 몰입을 비교하였습니다.

왜 만들었을까?

학교를 졸업하려면 졸업연구가 필수적이었는데, 이전에 개인적으로 했었던 스쿼트로 점프킹하기가 생각나서 비슷한 주제로 선택해봤습니다. 이전에 했던 프로젝트는 유저의 반응을 직접 확인해보지 못했기 때문에 이 프로젝트를 통해서 경험해볼 수 있을 것이라고 생각했습니다.

담당

기획, 소프트웨어 개발 모두를 담당했습니다.

세부 내용

가속도 센서와 이상

이전에 스쿼트로 점프킹하기에서 했던 것 처럼 MPU6050 가속도 센서를 사용해서 유저의 동작을 인식하는 방식을 예상했습니다. 특정 축 방향의 가속도를 적분하면 속도가되므로 유저의 이동 방향을 알 수 있을 것이라고 생각했습니다. 하지만 가속도 센서의 오차 때문에 사용할 수록 오차가 누적되어서 결국 유저가 정지해도 정지 상태로 인식하지 못하는 문제가 발생했습니다,

다른 인식 방법 구상

그 이후 동작을 인식하기 위해 여러가지 방법을 구상한 결과 이미지 처리를 사용하기로 했습니다. 처음엔 OpenCV를 이용하여 사용자의 얼굴 위치를 인식하려고 했는데, Google에서 만든 MediaPipe를 이용하면 Pose Detection을 할 수 있는 것을 알았습니다. 이 라이브러리는 사진, 영상 또는 비디오 스트림에서 사람 각 부분의 좌표를 구해줍니다.

컨트롤러 제작

저는 카메라 영역을 일정 범위로 나누고 플레이어의 코와 양 손이 해당 영역으로 넘어가는지 여부를 확인해서 동작에 매핑된 키보드 입력을 발생시켰습니다.
조작법 안내.pdf
10197.2KB

결과

키보드를 사용했을 때 보다 모션 컨트롤러를 사용하면서 성능을 최대 90% 정도 감소했지만, 몰입도는 평균 37% 정도 향상된 것으로 보였습니다.
Undergraduate Research Project Report.pdf
1665.9KB

회고

이 졸업연구 프로젝트는 제 첫 연구 활동이라고 할 수 있습니다. 이전까지는 연구에 대해 대략적인 이미지만 가지고 있었는데 이 과정에서 어떤 느낌으로 연구가 진행되는지 간략하게나마 느낄 수 있었던 것 같습니다.