MindStorm EV3 gesture control with VR

Naive implementation
Raspberry pi for streaming 2 webcam data to smart phone
EV3 with leJos for control
Intel Realsense for recognize the gesture

매우 기초적인 작품(?)이다. 저번 학기에 팀플인데 컴퓨터 공부를 시작한 지 3개월 만에 만든 것이니 조잡하기 짝이 없다. 실력이 없기에 구현은 매우 어려웠다…  진짜 삽질이 뭔지에 대해 알게 되었는데… 진짜…

아이디어 기획 단계에서도 무엇을 해야하는지, 모두가 컴퓨터 전공이 아닌 상태에서 무엇을 할 수 있을 지… 그 과정은 이제 생각 안 나기에 패스…

실제 구현은 문제에 문제였다… 먼저 기본 EV3 펌웨어로는 제어할 수 있는 것이 적었기에 새로운 펌웨어를 올려야했다. 그래서 EV3DEV를 쓰려고 하였으나 뭐 Makefile도 모르는 상태에서 무엇을 할 수 있었으랴… 진짜 Makefile도 똑바로 몰랐으니 정말 삽질도 이런 삽질이 없었다. 어찌어찌 제어 컴퓨터로 제어에 성공해도 또 블루투스 제어를 하려니 정신이 나갈 듯 했다… 그래서 leJos라는 JVM 올라간 OS를 써서 remote method invocation을 통해 겨우 블루투스 제어에 성공했다. 이때 나는 자바를 처음 써보았고 쓸 줄 아는건 파이썬 뿐이었으며 모든 건 2주 안에 끝내야했다… 사실 EV3DEV 또한 제어 언어가 많았는데 뭐 되는게 없으니 파이썬부터 C++, C#까지 다 건드려보았다… 어떻게 쓰레기 코딩으로 RMI 성공 후 다음 문제에 직면한다.

지원금 반을 써가며 Intel Realsense를 샀는데 이거 원 쓰려니까… 다시 말하지만 OOP는 클래스 뭐시기 아냐? 상태로 리얼센스 API를 만지니 자살각이었다… 시간은 없고… 그냥 엄청 끼워 맞췄다… API문서 보는 법도 몰랐으나 그냥 했다… 다행히 나에게 영상처리 알고리즘을 짜라고 하지는 않았으니 됐었지 뭐… 어찌어찌 나의 손 인식 성공 후 어떻게 RMI를 써서 제어는 성공했으나 사실 정확도가 많이 떨어졌고… 원래는 영상과 같이 손 위치가 아니라, 두 손으로 제어하는 것이었다. 양손을 편 상태로 뻗으면 전진, 오른손만 뻗으면 우회전, 왼손만 뻗으면 좌회전, 두 손 주먹 쥐면 후진, 뭐 그런 것 아니었나 싶다. 근데 뭐 리얼센스의 수준은 생각 이하로 떨어져서 그냥 한 손 위치 인식으로 바꿔서 겨우 냈다.

뭐 이 정도 과정으로 했는데, 실제로 잠도 똑바로 못자고 방 구석에서 밤새 저것만 만졌다… 사실 삽질을 엄청 많았는데 뭐 그건 기억도 안나고 어째 만들었으니 됐다. 배운 점은 하나다. 근본없는 인간이 일을 벌이면 안 된다! 근본이나 키워야겠다…