[DIY]흙수저 VR 자작 프로젝트: 기획
2019. 5. 31. 13:57
프로젝트 글목록
2020/05/01 - [자작/VR] - [DIY]흙수저 VR 자작 프로젝트: 사물의 이동과 방향표현
2019/06/01 - [자작/VR] - [DIY]흙수저 VR 자작 프로젝트: 적외선 카메라 트래킹 실전편
2019/06/01 - [자작/VR] - [DIY]흙수저 VR 자작 프로젝트: 적외선 카메라 트래킹 이론편
2019/05/31 - [자작/VR] - [DIY]흙수저 VR 자작 프로젝트: 기획
안녕하세요 하라는 공부는 쳐 안 하는 wei입니다
최근에 VR에 너무 꽂혀버렸습니다
돈은 없고 vr은 비싼데 그냥 직접 만들면 그만 아니야? 하는 생각에 무작정 시작한 프로젝트입니다
목표는 이렇습니다
1. pc게임, 좁게 말해 스팀vr 플랫폼을 지원할 것(최우선)
가장 하고싶은 게임이 비트세이번데 따라서 기본적으로 pc직접연결을 목표로 합니다.
2. 룸스케일 헤드 트래킹이 가능할 것
윈도우mr처럼 매우 한정된 시야에서의 트래킹이 아닌 컨트롤러와 hmd(뚝배기) 모두 방 안에서 자유롭게 인식해야 합니다.
3. 양손 컨트롤러를 사용할 것
모바일 플랫폼을 거르는 이유 중 하나입니다. 이거 아니면 굳이 만드는 이유가 많이 사라지죠
4. (선택)QHD급의 디스플레이를 사용할 것
가장 돈이 많이 들어가는 부분인데, 때문에 진행상황에 따라 크게 변동될 수 있는 부분입니다. 참고로 현세대 vr(htc vive, 오큘러스 리프트 등)에서 주로 사용되는 해상도가 QHD(2560x1440) 근처입니다.
이 조건을 만족시키고 드는 목표비용은 200달러 근처입니다.
20만원대면 기성품 중에는 윈도우mr 정도가 가능한데 mr의 큰 단점이 컨트롤러의 트래킹 범위가 hmd 앞쪽에 한정된다는 거예요. 예를 들어 활쏘기 동작을 하려고 왼쪽 손을 뒤로 당기면 범위 밖으로 나가져서 인식이 안 된다는 겁니다. 때문에 이 가격대에서 룸스케일을 지원하는 것이 큰 장점이 되겠습니다.
자작 vr에 대한 정보를 예전부터 많이 봐왔는데 대부분이 카드보드를 활용한 모바일 vr정도거나 많이 발전해서 웹캠과 적외선 led 3개를 이용한 헤드트래킹 정도더라구요. 게다가 이건 vr도 아니고
룸스케일 트래킹에 대해서는 국내에는 아예 자료가 없고 해외에도 거의 찾아볼 수가 없었습니다. 누구나 양덕이라면 떠올릴 만한 아이디언데 이상하리만치 자료가 없어서 혹시 특허 때문에 그런건가? 하는 생각까지 들더라구요. (특허 때문이라도 상업적으로 이용하는 건 아니니까 괜찮겠죠? 일단 특허기술은 공개가 원칙이니까)
제작 포인트
룸스케일 트래킹 구현은 어떻게 할 것인가?
트래킹 방식을 설명하기 앞서 룸스케일이란 방(room) 안에서 자유롭게 트래킹 하는 것을 말합니다. HMD의 회전만을 감지하는 카드보드 등과 달리 HTC의 바이브처럼 지정된 범위 내에서 HMD의 위치를 인식하는 것이 룸스케일 트래킹의 특징입니다.
일단 두 개 이상의 고정된 적외선 카메라와 자이로스코프 센서를 이용하여 트래킹을 합니다. 자이로스코프 센서가 실시간 트래킹을 맡으며 적외선카메라는 기기의 초기좌표 매핑과 자이로 센서 트래킹의 오차를 수정하는 역할을 합니다.
적외선카메라는 일반 카메라에 가시광선 차단 필터를 씌운 것으로 hmd와 컨트롤러에 부착된 적외선 led에서 나오는 빛을 추적합니다. 각각 다른 시점에서 촬영된 이미지 상에서 표시된 적외선의 좌표를 이용해 각 led의 절대 좌표를 구하고 이를 통해 자이로 센서에서 발생한 오차를 수정하는 데 사용합니다.
pc와는 어떻게 연결할 것인가?
디스플레이는 hdmi로 소형 LCD와 직결하여 써드모니터로 인식시키며 트래킹 좌표값과 컨트롤러 입력은 SteamVR API를 이용해 직접 드라이버를 제작해 vr 기기로 인식시킬 것입니다. 솔직히 하드웨어 제작보다 이쪽 난이도가 훨씬 더 높다고 생각이 됩니다..
아래 그림은 현재 계획된 VR시스템의 전체적인 하드웨어 구조도입니다.
부품 목록
극한의 단가 절감을 위해 거의 모든 부품을 중국 직구로 구합니다. 현재 정해진 주요 부품은 다음과 같습니다.
-카메라 모듈 ESP32-CAM(ov2640)
2백만 화소(1632x1232)에 최대 30 프레임의 실시간 스트리밍을 지원합니다. 와이파이가 탑재되어 있어 무선 연결도 가능합니다.
개당 6.5달러
-적외선 led 3mm
10개에 2달러
-가시광선 차단 필터
가시광선을 차단하여 적외선 LED에서 나오는 빛만을 감지하기 위해 필요합니다.
2개에 3달러
-FTDI 보드 FT232RL
ESP32 보드에 펌웨어를 업로드하기 위해 pc와 연결할 때 쓰입니다.
개당 1.3달러
-무선 시리얼 통신모듈 NRF24L01
hmd와 esp32 간의 통신지연시간을 줄이기 위해 사용됩니다. 따라서 esp32의 와이파이는 사용되지 않을 가능성이 높습니다.
2개에 1.4달러
-mipi lcd LS055R1SX03
디스플레이로 쓰일 lcd모듈입니다. 빔프로젝터 계획할 때 찾아논 건데 제 용도 찾아가네요. 이것도 언젠가 만들게 되면 포스팅하겠습니다.
개당 77달러
-자이로스코프 센서 mpu6050 or icm20806
실시간 트래킹에 쓰일 자이로 센서입니다. 후자가 좀 더 오차가 적고 속도가 빠른 대신 가격이 비쌉니다.
각각 1.4 10.5달러
-카드보드 헤드셋(?)
구글 카드보드에서 재질을 플라스틱으로 바꾸고 초점 조절기능과 머리 고정용 끈이 달린 물건입니다. 핸드폰을 넣는 자리에 대신 LCD모듈을 장착하여 사용합니다. hmd 케이스 제작 비용을 줄일 수 있고 디자인도 직접 만드는 것보다 좋습니다.
개당 11달러
여기까지 단 120달러가 쓰입니다.
나머지는 컨트롤러 제작과 아두이노 구입에 돈을 쓰면 얼추 200달러 근처로 가능할 것 같습니다.
성공한다는 보장도 없고 재수생이라는 조건 때문에 시간도 많이 투자 못 합니다. 소리소문없이 프로젝트가 끝날 수도 있습니다. 일단은 돈부터 모으고 부품들 배송기간이 최소 3주는 걸리기 때문에 기기제작은 6월모평 끝날 때쯤부터 가능할 것 같습니다. 그 사이에 먼저 물체 트래킹을 위한 이론과 알고리즘 구현하는 포스팅을 올리겠습니다.