Leap Motion

Overview – 4. 모션 추적 데이터(Motion tracking data) (2)

원문과 원문에서 가져와 본 글에 사용한 영상 및 기타 자료들의 저작권은 Leap Motion에 있습니다.

모션 추적 데이터 (2)

손가락과 도구 모델

Leap Motion 컨트롤러는 시야 내에 있는 여러 개의 손가락과 도구들을 인식할 수 있습니다. Leap Motion 소프트웨어는 인식된 물체의 모양새에 따라 손가락스러운 물체로 구분하는데요. 도구로 분류하고자 한다면 손가락보다 길고 가늘며, 죽 뻗어야 합니다.

Leap Motion 모델에서는 손가락이나 도구 모두 Pointable 객체로 한꺼풀 씌워져있습니다(abstracted). 손가락이나 도구나 모두 매한가지 Pointable 물체의 한 종류죠. Pointable 물체의 물리적인 특성은 다음과 같습니다.

  • Length - 시야 내에 보이는 물체의 길이. 손에 쥐었을 때는 손의 경계로부터 물체의 끝과의 거리.
  • Width - 시야 내에 보이는 물체의 평균 폭
  • Direction - 물체가 뻗어져있는 방향의 단위 벡터
  • Tip Position - Leap Motion의 원점을 기준으로 한 물체 끝의 위치(밀리미터 단위)
  • Tip Velocity - 물체의 끝이 초당 이동한 밀리미터 거리

손가락의 tipPosition과 direction 벡터

또한 Leap Motion 소프트웨어는 pointable 객체가 손가락인지 도구인지 구분할 수 있습니다. 바로  Pointable::isTool()  함수를 사용하면 되지요.

도구는 손가락보다 길고 가늘며, 쭉 뻗어있다.

제스쳐

Leap Motion 소프트웨어는 사람이 어떤 명령을 내리기 위해서 움직이는 패턴을 인식할 수 있습니다. 손의 추적 데이터와 같은 방법으로 프레임 내에서 발견된 제스쳐가 있다면 관련된 정보를 얻을 수 있습니다. 각 제스쳐가 발견될 때마다 Leap Motion 소프트웨어가 제스쳐 객체를 프레임에 추가하게 됩니다. 추가된 제스쳐 객체는 프레임 내에서 gestures 리스트에서 접근할 수 있습니다.

다음 목록은 Leap Motion 소프트웨어가 인식할 수 있는 제스쳐들입니다.

  • Circle - 손가락 하나가 원을 그리는 것
  • Swipe - 손이 직선으로 움직이는 것
  • Key Tap - 키보드를 키를 누르는 것처럼 손가락을 두드리는 것
  • Screen Tap - 세로로된 스크린을 누르는 것처럼 손가락을 두드리는 것

Leap Motion 소프트웨어가 제스쳐 패턴을 인식하기 시작한 순간 제스쳐 객체가 프레임에 추가됩니다. 시간이 지나도 계속 제스쳐가 계속된다면, 제스쳐를 업데이트 한 다음 이어지는 다음 프레임에도 추가해둡니다. Circle이나 Swipe 같은 것들은 계속적으로 이어지는 종류이기 때문에, 이들은 각 프레임에서 계속 갱신되어 들어옵니다. 반대로 Tap은 딱 떨어지는 제스쳐라 각 프레임마다 독립된 하나의 제스쳐로 제공이 됩니다.

제스쳐를 사용하기 전에 어떤 제스쳐를 인식하고 싶은지 미리 결정하여 활성화시켜야 합니다. 컨트롤러 클래스가 가지고 있는 enableGesture()  함수가 그런 역할을 합니다.

Circle

손가락이 공간상에서 원을 그리면 Circle 제스쳐로 인식됩니다.

어느 손가락이나 도구로도 Circle 제스쳐를 취할 수 있습니다. 앞에서 이야기한 것처럼 Circle 제스쳐는 연속적이라서 제스쳐가 시작될 때부터 끝날 때까지 계속적으로 제스쳐 정보가 업데이트됩니다. Circle 제스쳐는 손가락이 그리던 원에서 떨어져 나가거나 원을 그리던 속도가 아주 느려지면 끝이 납니다.

Swipe

손가락들이 선형으로 움직이게 되면 Swipe 제스쳐로 인식됩니다.

Swipe 제스쳐는 어느 손가락이든 어느 방향이든 가능합니다. Swipe 역시 연속적인 제스쳐로 시작하고부터 정보가 계속 업데이트되다가, 손가락이 이동하던 방향을 바꾸거나 속도가 느려지면 끝나게 됩니다.

Taps

탭은 두가지 종류가 있습니다. 아래쪽으로 하는 Key Tap과 앞쪽으로 하는 Screen Tap입니다.

Key Taps

손가락이나 도구가 빠르게 아래쪽으로 탭핑하게 되면 Key Tap으로 인식됩니다.

피아노 건반을 누르는 것과 비슷합니다. Tap 제스쳐는 연속적이지 않아 하나의 제스쳐가 한 프레임에서 추가되고 끝이 납니다.

Screen Taps

손가락이나 도구가 앞으로 빠르게 이동하면 Screen Tap 제스쳐가 발생합니다.

세로로 된 스크린의 한 부분을 누르는 것과 같이 공간 상에서 손가락을 앞으로 밀어 누르면 됩니다. 불연속적인 특성은 Key Tap과 동일합니다. 하나의 탭 제스쳐는 한 프레임에만 들어갑니다.

 


Add a Comment Trackback