자기전에 누가 컨트롤러 쓰면서 동시에 핸드트래킹은 안되냐는 댓글이 와서 한번 다뤄야겠다 생각하고 있었는데,


이게 자료를 찾는데 좀 오래걸렸다. 본 기억은 나는데 어디에서 본건지 기억이 안나서.

이 글에 나오는 트윗의 영상을 보면 대충 쉽게 이해할 수 있을것 같음


https://twitter.com/jrpowers/status/1412079782888624128


쓰레드로 이어져있기때문에 영상 파일형식으로 넣을거고 원문은 트위터 링크 참조.




LED 펄스를 카메라 노출이랑 동기화하고 짧은 시간 동안 캡쳐한 뒤, LED를 제외한 나머지는 다 날려버린다. 

여기서 어떤 점이 컨트롤러의 LED에 해당하게될까?





화면에 20개의 점이 있고, 그중 3개가 컨트롤러의 점이라고 가정하고, 컨트롤러에는 27개의 LED가 있을 경우, 경우의 수는 2천만개의 가능성이 존재함

또한 이걸 다 연산해버리면 OpenCV solveP3P 기준 180ms라는 레이턴시가 발생하게 된다.



우리는 대부분의 이용 사례에서 컨트롤러는 기본적으로 사람이 쥐고있으며 쥐고 있지 않더라도 그렇게 먼 거리에 두지는 않는다는 점을 알고있다.


그렇다면 여기서 대부분의 컨트롤러는 HMD에서 비교적 가까운 위치에 있다는점을 감안할 경우, 많은 가능성을 줄여버릴수 있는데 그렇게 가능성을 줄이게되면 2만에서 4만가지의 가능성이 존재하게 됨.


위치는 어느정도 해결이 되었다. 그렇다면 이제 포즈는 어떻게 해야할까?




IMU의 데이터를 들고와서 해결하면 된다!


이 영상은 러프 수준이기때문에 부정확하지만 어떤 과정으로 트래킹이 이루어지는지 알 수 있게된다.