Leap Motion

Understanding the C++ Sample Application – 5. 프레임 데이터 가져오기

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

프레임 데이터 가져오기

컨트롤러는 Leap이 모션 트래킹 데이터를 감지하여 새로운 프레임을 만들어낼 때 onFrame 콜백 함수를 호출합니다. 이렇게 만들어진 새 데이터는 Controller::frame 함수를 이용하여 접근할 수 있습니다. 이 함수는 가장 최근에 생성된 Frame 객체를 리턴합니다. Frame 객체는 ID와 시간 값, Leap에서 감지한 Hand 객체들의 리스트를 담고 있습니다.

아래 코드는 예제 프로그램의 onFrame 함수의 구현 코드입니다. 예제 프로그램은 Frame 객체를 컨트롤러부터 받아와 인식한 Hand 객체들을 뽑아낸 뒤, Frame ID, 시간 값, 인식된 Hand, 손가락, 도구의 갯수를 출력하도록 되어있습니다.

그 다음으로, Hand 객체가 제공되는지 확인 한 뒤에 첫번째 Hand 객체의 내용을 출력하고 있습니다.

Hand 객체는 그 ID와 손의 물리적 특성을 나타내는 속성 값, 그리고 Finger의 리스트를 가지고 있습니다. 각 Finger 객체 또한 ID와  손가락의 물리적 특성을 나타내는 속성 값들을 가집니다.

Hand 객체가 존재한다면 다시 손가락 객체가 존재하는지 검사해보고 손가락 끝의 위치를 평균하는 작업을 거친 뒤 손가락의 수와 앞에서 계산한 평균 위치를 출력합니다.

다음으로, 손의 곡면을 따라 만들어진 가상 구의 반지름을 출력합니다.

마지막으로 onFrame 함수는 손의 노멀벡터로부터 Pitch, roll, yaw를 계산하기 위하여 벡터 함수를 사용합니다.  이 때 각도는 라디안에서 각으로 바뀌게 됩니다.


Add a Comment Trackback