KR102397236B1 - 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법 - Google Patents

사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법 Download PDF

Info

Publication number
KR102397236B1
KR102397236B1 KR1020210121363A KR20210121363A KR102397236B1 KR 102397236 B1 KR102397236 B1 KR 102397236B1 KR 1020210121363 A KR1020210121363 A KR 1020210121363A KR 20210121363 A KR20210121363 A KR 20210121363A KR 102397236 B1 KR102397236 B1 KR 102397236B1
Authority
KR
South Korea
Prior art keywords
motion
axis
user
angular velocity
electronic device
Prior art date
Application number
KR1020210121363A
Other languages
English (en)
Inventor
김호연
Original Assignee
(주)콕스스페이스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)콕스스페이스 filed Critical (주)콕스스페이스
Priority to KR1020210121363A priority Critical patent/KR102397236B1/ko
Priority to PCT/KR2021/016095 priority patent/WO2023038195A1/ko
Priority to CN202180102224.1A priority patent/CN118043761A/zh
Application granted granted Critical
Publication of KR102397236B1 publication Critical patent/KR102397236B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

전자 장치에서 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법은 상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 앞뒤 방향의 Y축, 및 위아래 방향의 Z축 각각에 대한 가속도 값을 획득하는 단계, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도 값을 획득하는 단계, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기 값을 획득하는 단계, 현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계, 및, 현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함할 수 있다.

Description

사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법{METHOD FOR CREATING USER DEFINED GESTURE PROFILE BASED ON USER'S REPETITIVE MOTIONS AND RECOGNIZING GESTURE}
본 발명은 전자 장치에서 수행되는 제스처 인식 방법에 관한 것이다.
제스처 또는 모션 인식 기술은 웨어러블 디바이스의 성장 및 컴퓨터 그래픽 기술, 증강 현실(Augmented Reality, AR), 가상 현실(Virtual Reality, VR), 혼합 현실(Mixed Reality, MR)과 같은 가상 현실에 기반한 컨텐츠 시장이 발전 등에 힘입어 지속적으로 발전하고 있다. 그러나 제스처 인식 기술은 장치를 제어하기 위해 사용되기보다는 게임의 가상 컨텐츠나 영화 제작사에서 컴퓨터 그래픽에 기반한 컨텐츠를 만들기 위해 주로 사용되고 있어 일상 생활에서 제스처 인식 기술은 매우 제한적으로 활용되고 있는 실정이다.
이러한 이유로는 첫 번째로 제스처 인식 기술에 오류가 있을 경우 오류에 의해 치명적인 결과를 발생시킬 수 있는 분야에는 사용하기 어렵다는 것과 두 번째로 제스처 인식을 위해 카메라로부터 객체의 영상을 획득하여 이미지 프로세싱에 기반하여 제스처 인식하는 방법이 널리 사용되고 있는데 이미지 프로세싱 방식은 환경에 의한 영향을 많이 받으므로 인식 오류도 빈번하고 알고리즘이 매우 정교할 필요가 있다는 문제점이 있다. 세 번째로 사용자에게 랜드마크를 부착하거나 특수한 장비를 착용하게 함으로써 제스처 인식의 정확도를 상승시킬 수 있는데 이러한 방식은 사용자에게 너무 번거롭고 불편한 작업이므로 제스처 인식이 일상 생활이나 일상 업무에서 활용되지 못하는 이유가 된다.
또한, 모션 센서를 통해 모션 데이터를 획득하고 이에 기반하여 제스처 인식을 하는 종래 기술들이 있으나 대부분 가속도 데이터와 같은 1~2개 종류의 데이터만을 활용하여 이를 가공함으로써 제스처 인식을 하는 기술들이다. 최근 가속도, 자이로, 지자기 센서를 포함하는 9축 센서가 널리 저렴하게 보급되고 있으나 이를 웨어러블 디바이스에 탑재하고 획득된 센서 데이터에 기반하여 제스처 인식을 하거나 특정 사용자에 특화된 제스처 프로파일을 생성함으로써 제스처 인식률을 높이기 위한 기술은 전무하다.
사용자가 3차원 공간 상에서 취하는 모션에 의해 획득되는 모션 데이터에 기반하여 사용자에게 특화된 제스처 프로파일을 생성하고, 생성된 제스처 프로파일에 기반하여 현재 사용자의 모션을 특정 제스처로 인식하기 위한 방법이 제공될 수 있다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
전자 장치에서 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법은, 상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 앞뒤 방향의 Y축, 및 위아래 방향의 Z축 각각에 대한 가속도를 일정 시간 간격으로 획득하는 단계, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도를 상기 일정 시간 간격으로 획득하는 단계, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기를 상기 일정 시간 간격으로 획득하는 단계, 현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계, 및 현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고, 상기 레퍼런스 모션은 왼쪽 무브 또는 오른쪽 무브를 포함하고, 상기 사용자의 제스처 프로파일을 생성하는 단계는, 상기 전자 장치의 피치축에 대한 기울기가 제1기준 범위 이내이고 롤축에 대한 기울기가 제2기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계, 상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계, 상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제3기준 범위를 벗어나거나 피치축에 대한 기울기가 제4기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계, 상기 레코딩 모션의 완료 시점의 요축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계, 상기 레코딩 모션의 시작에서 완료 시점까지 획득된 상기 X축에 대한 가속도들의 누적값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 상기 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계, 및 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고, 상기 레코딩 모션의 완료 시점은 현재 요축에 대한 각속도 값이 레코딩 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고, 각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고, 상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고, 상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정될 수 있다.
상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는, 상기 전자 장치의 피치축에 대한 기울기가 상기 제1기준 범위 이내이고 롤축에 대한 기울기가 상기 제2기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계, 상기 인식 모션이 준비되었으면, 요축에 대한 각속도가 상기 제1기준 값 이상이면 상기 인식 모션이 시작된 것으로 판단하는 제8단계, 상기 인식 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 상기 제3기준 범위를 벗어나거나 피치축에 대한 기울기가 상기 제4기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계, 상기 인식 모션의 완료 시점의 요축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계, 상기 인식 모션의 시작에서 완료 시점까지 획득된 상기 X축에 대한 가속도들의 누적값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계, 및 상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고, 상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고, 상기 인식 모션의 완료 시점은 현재 요축에 대한 각속도 값이 인식 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
전자 장치에서 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법은, 상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 앞뒤 방향의 Y축, 및 위아래 방향의 Z축 각각에 대한 가속도를 일정 시간 간격으로 획득하는 단계, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도를 상기 일정 시간 간격으로 획득하는 단계, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기를 상기 일정 시간 간격으로 획득하는 단계, 현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계, 및 현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고, 상기 레퍼런스 모션은 왼쪽 무브 또는 오른쪽 무브를 포함하고, 상기 사용자의 제스처 프로파일을 생성하는 단계는, 상기 전자 장치의 롤축에 대한 기울기 값이 제1기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계, 상기 레코딩 모션이 준비되었으면, 피치축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계, 상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제2기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계, 상기 레코딩 모션의 완료 시점의 피치축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계, 상기 레코딩 모션의 시작에서 완료 시점까지 획득된 상기 Z축에 대한 가속도들의 누적 값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 제스처 프로파일 생성을 종료하고 대기모드로 돌아가는 제5단계, 및 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고, 상기 레코딩 모션의 완료 시점은 현재 피치축에 대한 각속도 값이 상기 레코딩 모션 시작 후의 피치축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고, 각 횟수는 상기 제1단계부터 상기 제6단계까지의 동작이 모두 완료되어야 카운트되고, 상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고, 상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정될 수 있다.
상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는, 상기 전자 장치의 롤축에 대한 기울기 값이 상기 제1기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계, 상기 인식 모션이 준비되었으면, 상기 피치축에 대한 각속도가 상기 제1기준 값 이상이면 인식 모션이 시작된 것으로 판단하는 제8단계, 상기 인식 모션이 시작되면, 상기 인식 모션의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계, 상기 인식 모션의 완료 시점의 피치축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계, 상기 인식 모션의 시작에서 상기 인식 모션의 완료 시점까지 획득된 상기 Z축에 대한 가속도들의 누적 값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기모드로 돌아가는 제11단계, 및 상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션 시작의 후 상기 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고, 상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고, 상기 인식 모션의 완료 시점은 현재 피치축에 대한 각속도 값이 상기 레코딩 모션 시작 후의 피치축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정될 수 있다.
전자 장치에서 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법은, 상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 앞뒤 방향의 Y축, 및 위아래 방향의 Z축 각각에 대한 가속도를 일정 시간 간격으로 획득하는 단계, 상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도를 상기 일정 시간 간격으로 획득하는 단계, 상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기를 상기 일정 시간 간격으로 획득하는 단계, 현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계, 및 현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고, 상기 레퍼런스 모션은 동그라미 동작이고, 상기 사용자의 제스처 프로파일을 생성하는 단계는, 상기 전자 장치의 롤축에 대한 기울기가 제1기준 범위 이내이면 상기 사용자가 레코딩 모션을 취할 준비가 된 것으로 판단하는 제1단계, 상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도, 피치축에 대한 각속도, 롤축에 대한 각속도가 모두 각각의 제1기준 값 이하이면 대기상태로 돌아가는 제2단계, 상기 레코딩 모션이 시작되면 상기 전자 장치의 롤축에 대한 기울기가 제2기준 범위를 벗어나면 대기 상태로 돌아가는 제3단계, 상기 레코딩 모션의 시작 후 획득된 롤축의 각속도들의 누적치가 제2기준 값보다 크면 상기 레코딩 모션이 유효하지 않은 것으로 판단하고 대기 상태로 돌아가는 제4단계, 및 상기 레코딩 모션을 통해 획득된 피치축의 각속도와 요축의 각속도에 기반하여 상기 레코딩 모션의 동그라미 궤적을 획득하고 상기 동그라미 궤적의 가로 길이와 세로 길이의 비율인 기준 비율을 상기 사용자의 특성 값으로서 저장하는 제5단계를 포함할 수 있다.
상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고, 각 횟수는 상기 제1단계부터 상기 제5단계까지의 동작이 모두 완료되어야 카운트되고, 상기 기준 비율은 여러 횟수에 걸쳐 각각 획득된 기준 비율들에 기반하여 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는, 상기 전자 장치의 롤축에 대한 기울기가 상기 제1기준 범위 이내이면 상기 사용자가 인식 모션을 취할 준비가 되었는지 판단하는 제6단계, 상기 인식 모션이 준비되었으면, 요축에 대한 각속도, 피치축에 대한 각속도, 롤축에 대한 각속도가 모두 각각의 상기 제1기준 값 이하이면 대기상태로 돌아가는 제7단계, 상기 인식 모션이 시작되면 상기 전자 장치의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나면 대기 상태로 돌아가는 제8단계, 상기 인식 모션의 시작 후 롤축의 각속도의 누적치가 상기 제2기준 값보다 크면 상기 모션이 유효하지 않은 것으로 판단하고 대기 상태로 돌아가는 제9단계, 및 상기 인식 모션을 통해 획득된 피치축의 각속도와 요축의 각속도에 기반하여 상기 인식 모션의 동그라미 궤적을 획득하고 상기 동그라미 궤적의 가로 길이와 세로 길이의 비율을 상기 기준 비율과 비교하는 제10단계를 포함하고, 상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정될 수 있다.
3차원 공간 상에서의 모션 데이터 획득을 통해 사용자에게 특화된 제스처 프로파일을 생성하고, 생성된 제스처 프로파일에 기반하여 사용자의 특정 제스처를 인식하기 위한 방법이 제공될 수 있다.
사용자가 직접 레퍼런스 모션을 취함으로써 특정 레퍼런스 모션에 대한 사용자 특성 값이 저장되고 이에 기반하여 제스처 인식이 수행되므로 제스처 인식의 정확도가 향상되고 스마트폰, TV, 컴퓨터, 태블릿 PC, 홀로그램, HMD(Head Mount Display) 상의 다양한 컨텐츠를 쉽고 정밀하게 컨트롤 할 수 있다.
도1a는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(닫힌 상태)를 나타낸다.
도1b는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(열린 상태)를 나타낸다.
도2a는 일 실시 예에 따라, 전자 장치 내의 링형 장치를 나타낸다.
도2b는 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 것을 나타낸다.
도3은 일 실시 예에 따라, 전자 장치를 포함하는 시스템을 나타낸다.
도4a는 일 실시 예에 따라, 마우스 모드 하에서, 전자 장치로 수행되는 마우스 동작들을 나타낸다.
도4b는 일 실시 예에 따라, 전자 장치의 정면 부분이 세 개의 터치 영역들로 구분된 것을 나타낸다.
도4c는 일 실시 예에 따라, 세 개의 영역들을 이용해 인식되는 마우스 동작들을 나타낸다.
도5는 일 실시 예에 따라, 사용자의 움직임 정보와 대응하는 모션을 결정하기 위한 결정 모델을 나타낸다.
도6은 일 실시 예에 따라, 전자 장치를 활용한 조이스틱을 나타낸다.
도7은 일 실시 예에 따라, 제스처 모드 하에서, 전자 장치로 호스트 장치를 제어하기 위한 레퍼런스 모션들을 나타낸다.
도8은 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 방법의 흐름도를 나타낸다.
도9는 일 실시 예에 따라, 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다.
도10은 일 실시 예에 따라, 전자 장치의 블록도를 나타낸다.
도11은 일 실시 예에 따라, 3차원 공간 상의 9개의 축을 나타낸다.
도12는 일 실시 예에 따라, 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법의 흐름도를 나타낸다.
도13은 일 실시 예에 따라, 가이드 화면에 따라 사용자가 특정 레퍼런스 모션(왼쪽 무브 모션)을 취하는 모습을 나타낸다.
도14는 일 실시 예에 따라, 좌측 또는 우측 무브 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 수행되는 방법의 흐름도를 나타낸다.
도15는 일 실시 예에 따라, 동그라미 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 수행되는 방법의 흐름도를 나타낸다.
아래에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자들(이하, 통상의 기술자들)이 본 발명을 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 몇몇 실시 예가 명확하고 상세하게 설명될 것이다.
또한, 명세서에서 사용되는 "부" 또는 "모듈" 이라는 용어는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소 또는 회로를 의미할 수 있다.
제1, 제2 등의 용어는 다양한 구성요소들(단계, 값, 하드웨어 모듈 등)들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하, "컨텐츠"는 게임, 음악, 영화, 이미지, 애니메이션, 캐릭터, 아이템, 물체 등과 같은 미디어 자체 또는 미디어 상에서 재생되는 객체를 포함할 수 있으나 이에 제한되지 않는다. “컨텐츠”는 호스트 장치에서 구동되는 운영 체제 또는 소프트웨어를 포함할 수 있다. 소프트웨어는 워드 프로세서, 파워포인트와 같은 문서 프로그램, 전문적인 작업을 수행하기 위한 이미지 처리 프로그램, 캐드 프로그램, 및 게임을 포함할 수 있다. "컨텐츠"는 AR/VR/MR 과 같은 가상 현실에서 생성되는 가상 컨텐츠를 포함할 수 있다. "컨텐츠"는 2차원의 화면에 재생되는 객체 또는 홀로그램과 같은 3차원 공간 상에 표현되는 3차원 입체 객체를 포함할 수 있다. "컨텐츠"는 호스트 장치에 의해 생성, 실행 또는 재생될 수 있다. "컨텐츠"가 3차원 공간 상에 표현되는 가상 컨텐츠(예를 들어, 홀로그램)인 경우, 호스트 장치와 "컨텐츠"의 물리적인 위치는 다를 수 있다.
이하, "모션(motion)"은 컨텐츠를 제어하기 위해 사용자가 취하는 유의미한 움직임(movement)으로서, 사용자의 움직임으로부터 캡쳐, 추출, 인식, 분석 또는 결정될 수 있다.
이하, "제어 신호"는 모션 자체 또는 모션의 타입에 대한 정보를 포함하는 신호로서, 전자 장치는 “제어 신호”를 발생시키고 호스트 장치는 전자 장치로부터 수신되는 "제어 신호"에 기반하여 컨텐츠를 동작시키거나 제어할 수 있다. 예를 들어, "제어 신호"는 비트열 형태일 수 있으며 모션들 각각은 서로 다른 비트열로 표현될 수 있다.
도1a는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(닫힌 상태)를 나타낸다. 도1b는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(열린 상태)를 나타낸다.
사용자는 전자 장치(1000)를 손에 쥐거나 손에 든 상태로 터치나 손의 움직임에 의해 호스트 장치를 컨트롤할 수 있다. 호스트 장치는 다양한 종류의 전자 장치를 포함할 수 있다. 예를 들어, 호스트 장치는, 게임기, 스마트 폰, 태블릿 PC(Personal Computer), TV, 데스크톱 PC, 노트북 PC, 모바일 의료 기기, 카메라, 또는 웨어러블 장치(예를 들어, 전자 안경, 전자 옷, 전자 팔찌, 전자 목걸이, 전자 액세서리, 전자 문신 또는 스마트 워치) 중 어느 하나일 수 있으나 이에 제한되지 않는다. 예를 들어, 호스트 장치는 가상 컨텐츠를 표시하기 위한 HMD(Head Mounted Display) 및 가상 현실 게임 또는 가상 현실 컨텐츠를 실행하거나 재생하기 위한 게임기(예를 들어, 콘솔 기기)를 포함할 수 있다. 호스트 장치는 프리젠테이션 자료를 표시하기 위한 컴퓨터를 포함할 수 있다.
도1a와 1b를 같이 참조하면, 전자 장치(1000)는 사용자의 손가락에 착용 가능한 링형 장치(1200)와 링형 장치(1200)를 수납하기 위한 크래들 장치(1400)를 포함할 수 있다. 사용자는 링형 장치(1200)를 크래들 장치(1400)에 수납하고 뚜껑을 닫을 수 있다.
링형 장치(1200)가 크래들 장치(1400)에 수납되고 크래들 장치(1400)의 뚜껑이 닫힌 상태에서, 링형 장치(1200)의 정면 부분(헤드 부분)이 크래들 장치(1400)의 정면에 노출되며, 사용자는 크래들 장치(1400)를 손에 쥔 채 움직임으로써 모션 신호를 발생시키거나 노출된 링형 장치(1200)의 정면 부분을 터치함으로써 터치 동작을 수행할 수 있다. 일 실시 예에 따라, 링형 장치(1200)의 정면 부분에 터치 센싱 모듈이 위치할 수 있다.
사용자는 크래들 장치(1400)의 뚜껑을 열어서 링형 장치(1200)를 꺼낼 수 있다. 사용자는 링형 장치(1200)를 손가락에 착용한 채로 터치 동작이나 모션에 의해 호스트 장치를 제어할 수 있다. 크래들 장치(1400)는 사람이 손에 쥐기 쉬운 형상으로 제작될 수 있으며, 크래들 장치(1400)의 아래 쪽에는 무게중심 추가 위치하여 크래들 장치(1400)의 무게중심이 낮게 설계될 수 있다. 크래들 장치(1400)는 링형 장치(1200)를 충전시키기 위한 충전 단자와 전원 장치를 포함할 수 있다.
링형 장치(1200)는 사용자의 움직임 정보를 획득하기 위한 모션 센서와 사용자의 터치 정보를 획득하기 위한 터치 센서를 포함할 수 있다. 링형 장치(1200)는 획득된 움직임 정보와 터치 정보에 기반하여 제어 신호를 생성하고 생성된 제어 신호를 호스트 장치로 출력할 수 있다. 호스트 장치는 링형 장치(1200)로부터 수신되는 제어 신호에 기반하여 컨텐츠를 제어할 수 있다.
도2a는 일 실시 예에 따라, 링형 장치를 나타내고, 도2b는 일 실시 예에 따라, 사용자가 링형 장치를 착용한 채로 컨텐츠를 제어하는 것을 나타낸다.
도2a와 2b를 같이 참조하면, 링형 장치(1200)는 인체 또는 물체와 부착, 연결 내지는 착용 가능한 소형의 웨어러블 장치일 수 있다. 링형 장치(1200)는 착용이 편하며, 사용자는 별도의 학습없이 직관적으로 링형 장치(1200)의 기능을 동작시킬 수 있다. 나아가, 링형 장치(1200)는 움직임 정보와 터치 정보를 이용하여 범용 마우스처럼 범용 장치로서 사용이 가능하다.
링형 장치(1200)는 사용자의 손가락(2300)에 착용되도록 하기 위한 연결부(1220)와 센서를 이용하여 움직임 정보와 터치 정보를 획득하기 위한 메인 모듈(1240)을 포함할 수 있다. 연결부(1220)는 실리콘, 메탈 등의 소재로 구성될 수 있다. 메인 모듈(1240)은 사용자의 터치 정보와 움직임 정보를 획득하고 획득된 정보에 대응하는 제어 신호를 출력할 수 있다. 메인 모듈(1240)은 후술할 전자 장치(3000)의 구성 요소들 및 구성 요소들을 내장하는 케이스를 포함할 수 있다. 일 실시 예에 따라, 메인 모듈(1240)은 연결부(1220)와 분리될 수 있으며, 사용자는 메인 모듈(1240)만을 다양한 종류의 객체(지팡이, 주사위, 펜 등)에 삽입, 부착, 또는 내장하고 다양한 종류의 객체를 사용하여 호스트 장치를 제어할 수 있다.
메인 모듈(1240)은 터치 정보와 움직임 정보(예를 들어, 메인 모듈(1240)의 움직임에 대한 각속도, 가속도, 속도, 거리, 각도, 방향, 위치(3차원 공간 좌표) 정보)를 획득하고 이를 가공 및 처리함으로써 컨텐츠(2500)를 제어하기 위한 제어 신호를 출력할 수 있다.
도2b에는 링형 장치(1200)가 사용자의 손가락(2300)에 착용되는 것으로 도시되었으나 링형 장치(1200)는 다른 형태의 객체와 연결되거나 부착될 수 있다.
예를 들어, 메인 모듈(1240)은 주사위에 내장되고 주사위의 움직임에 기반하여 컨텐츠(2500)가 제어될 수 있다. 또는, 메인 모듈(1240)은 지팡이에 부착되고 지팡이의 움직임에 기반하여 컨텐츠(2500)가 제어될 수 있다. 또는, 메인 모듈(1240)은 펜에 내장되고 스마트폰 상의 컨텐츠(2500)가 펜의 움직임에 기반하여 제어될 수 있다. 이하, 객체는 사람의 신체 부위(예를 들어, 손가락), 사람이 착용 가능하거나 들 수 있는 물건, 또는 후술할 전자 장치(3000) 자체를 의미할 수 있다.
또한, 도2b에는 컨텐츠(2500)가 3차원 공간 상의 홀로그램 객체로 도시되었으나, 컨텐츠(2500)는 호스트 장치에서 재생되는 어떠한 형태의 컨텐츠나 소프트웨어(마이크로스프트사의 MS오피스, 게임 등) 등도 포함할 수 있다.
도3은 일 실시 예에 따라, 전자 장치를 포함하는 시스템을 나타낸다.
도3을 참조하면, 시스템(100)은 전자 장치(3000)와 호스트 장치(또는, 타겟 장치)를 포함할 수 있다. 전자 장치(3000)는 호스트 장치와 무선 통신 방식에 의해 연결될 수 있다. 예를 들어, 전자 장치(3000)는 호스트 장치와 블루투스 방식에 의해 페어링(pairing)될 수 있다. 전자 장치(3000)는 도1a의 링형 장치(1200)가 수납된 크래들 장치(1400), 크래들 장치(1400)로부터 분리된 링형 장치(1200), 또는 도2a의 링형 장치(1200)의 메인 모듈(1240)을 의미할 수 있다.
사용자는 전자 장치(3000)를 사용하여 호스트 장치의 다양한 컨텐츠를 제어할 수 있다. 일 실시 예에 따라, 사용자는 전자 장치(3000) 자체 또는 전자 장치(3000)와 연결된 객체의 움직임 및/또는 전자 장치(3000)에 입력되는 사용자 터치 동작에 기반하여 호스트 장치의 컨텐츠를 제어할 수 있다. 예를 들어, 사용자는 전자 장치(3000)를 자신의 손가락에 착용하고 손가락을 움직임이거나 손가락으로 전자 장치(3000)를 터치함으로써 호스트 장치의 다양한 컨텐츠를 제어할 수 있다.
도3을 참조하면, 전자 장치(3000)는 움직임 센싱 모듈(3200), 터치 센싱 모듈(3300), 통신 채널(3400), 및 제어 신호 출력부(3600)를 포함할 수 있다.
전자 장치(3000)는 마우스 모드(Mouse Mode) 또는 제스처 모드(Gesture Mode)로 동작할 수 있다. 마우스 모드 하에서, 전자 장치(3000)는 범용 마우스처럼 동작할 수 있으며, 제스처 모드 하에서, 전자 장치(3000)는 모션 인식 장치로서 동작할 수 있다.
마우스 모드 하에서, 전자 장치(3000)는 터치 센싱 모듈(3300)을 통해 감지되는 터치 동작 및 움직임 센싱 모듈(3200)을 통해 감지되는 움직임 정보 중 적어도 하나에 기반하여 마우스 동작을 결정하고 마우스 동작을 나타내는 마우스 신호를 출력할 수 있다.
예를 들어, 마우스 클릭(Click)은 전자 장치(3000)의 일면을 한번 터치함으로써 수행되고, 마우스 더블 클릭(Double Click)은 전자 장치(3000)의 일면을 기준 시간 내에 두 번 터치함으로써 수행되고, 마우스 무브(Move)는 전자 장치(3000)의 움직임 정보(예를 들어, 이하에서 설명되는 제2움직임 정보)로부터 결정되고, 마우스 스크롤(Scroll Up/Down)은 터치의 연속적인 변화(예를 들어, 스크롤 업은 전자 장치(3000)의 일면을 손가락으로 왼쪽에서 오른쪽으로 쓰는 움직임, 스크롤 다운은 전자 장치(3000)의 일면을 손가락으로 오른쪽에서 왼쪽으로 쓰는 움직임), 마우스 드래그(Drag)는 터치 시간(예를 들어, 긴 터치)과 전자 장치(3000)의 움직임 정보에 의해 결정될 수 있다. 일 실시 예에 따라, 터치 시간이 200ms 이내이면 짧은 터치로 결정되고, 터치 시간이 500ms 이상이면 긴 터치로 결정될 수 있다. 터치가 수행되는 전자 장치(3000)의 일면은 터치 센싱 모듈(3300)로서 도2a를 참조하여 설명한 정면 부분일 수 있다.
제스처 모드 하에서, 전자 장치(3000)는 센서를 이용하여 전자 장치(3000)의 움직임 정보를 획득하고, 획득된 움직임 정보에 기반하여 전자 장치(3000)의 움직임에 대응하는 모션을 결정할 수 있다. 전자 장치(3000)는 결정된 모션을 나타내는 모션 신호를 호스트 장치로 출력할 수 있다. 일 실시 예에 따라, 움직임 정보는, 객체의 움직임에 대한 특징들(예를 들어, 각속도, 가속도, 속도, 거리, 각도, 방향, 및 위치 중 적어도 하나)을 포함할 수 있다.
이하, 전자 장치(3000)의 구성 요소들의 동작과 기능에 대해 설명한다.
도3을 참조하면, 터치 센싱 모듈(3300)은 사용자의 터치를 감지할 수 있다. 예를 들어, 사용자가 링형 장치(1200)를 검지 손가락에 착용한 상태에서 사용자가 엄지 손가락으로 링형 장치(1200)의 정면 부분을 터치한 경우, 터치 센싱 모듈(3300)은 터치 동작을 감지할 수 있다. 터치 센싱 모듈(3300)에 의해 감지된 터치 동작은 통신 채널(3400)을 통해 제어 신호 출력부(3600)로 전달될 수 있다.
터치 센싱 모듈(3300)에 의해 감지되는 터치 동작은 상술한 마우스 모드 하에서의 마우스 동작을 결정하기 위해 사용될 수 있다. 또는, 터치 센싱 모듈(3300)에 의해 감지되는 터치 동작은 제스처 모드 하에서 객체의 움직임에 대응되는 모션을 결정하기 위해 사용될 수 있다. 또한, 터치 센싱 모듈(3300)에 의해 감지되는 터치 동작은 마우스 모드와 제스처 모드 사이의 전환을 위해 사용될 수 있다.
마우스 모드와 제스처 모드 사이의 전환은 터치 동작에 의해 수행될 수 있다. 예를 들어, 터치 센싱 모듈(3300)을 통해 사용자의 짧은 터치, 짧은 터치, 긴 터치가 연속적으로 감지되는 경우, 제스처 모드에서 마우스 모드로 또는 마우스 모드에서 제스처 모드로 전환될 수 있다. 또는, 터치 센싱 모듈(3300)을 통해 링형 장치(1200)의 정면 부분 중 가운데 부분을 기준 시간 이상 터치한 경우, 제스처 모드에서 마우스 모드로 또는 마우스 모드에서 제스처 모드로 전환될 수 있다.
움직임 센싱 모듈(3200)은 전자 장치(3000)의 제1움직임 정보를 획득할 수 있다. 제1움직임 정보는 마우스 모드와 제스처 모드에서 모두 사용될 수 있다. 제1움직임 정보는 가속도 센서를 통해 획득되는 가속도 데이터와 자이로 센서를 통해 획득되는 각속도 데이터 중 적어도 하나를 포함할 수 있다.
움직임 센싱 모듈(3200)은 가속도 센서(Accelerometer, 3220), 자이로 센서(Gyroscope, 3240), 지자기 센서(Magnetometer, 3260), 및 센서 융합부(3280)를 포함할 수 있다. 일 실시 예에 따른 자이로 센서(3240)는 각속도를 측정하기 위한 센서이다. 일 실시 예에 따른 가속도 센서(3220)는 가속도를 측정하고 진동, 충격 등의 동적 힘을 측정하기 위한 센서이다. 일 실시 예에 따른 지자기 센서(3260)는 지구 자기를 측정하고 그 크기를 검출하기 위한 센서이다.
자이로 센서(3240)에서 측정되는 값은 온도의 영향으로 오차가 발생하며 오차가 적분 과정에서 누적되어 최종 값이 드리프트(drift)되는 현상이 생길 수 있다. 따라서, 온도 센서도 함께 사용하여 자이로 센서(3240)의 오차를 보상할 필요가 있다.
정지 상태의 긴 시간의 관점에서 보면, 가속도 센서(3220)에 의해 계산된 기울어진 각도는 올바른 값을 나타내지만 자이로 센서(3240)는 시간이 지날수록 누적 드리프트로 인해 틀린 값을 나타낼 수 있다. 반대로, 움직이는 짧은 시간의 관점에서, 자이로 센서(3240)는 올바른 각속도를 나타내지만, 가속도 센서(3220)는 기울어진 각도와는 다른 계산 값이 도출될 수 있다. 또한, 주체가 정지된 상태에서 직진 방향으로 움직일 경우 기울기 측정이 불가능하다.
따라서, 가속도 센서(3220)와 자이로 센서(3240)를 모두 사용해서 각각의 단점을 보완 및 보상하기 위해, 칼만 필터와 같은 필터 또는 보상 및 융합 알고리즘이 적용될 수 있다. 다만, 이러한 보상 및 융합 동작에도 불구하고, 자이로 센서(3240)와 가속도 센서(3220)만을 사용할 경우, 3차원 공간에서의 좌표를 연산할 때에 오차율이 높아지므로 VR 기기와 같은 호스트 장치를 제어하기 위한 인터페이스로 사용하기에 부적절하다. 또한, 가속도 센서(3220)와 자이로 센서(3240)만을 사용할 경우, 절대 방위각이 아닌 상대 방위각을 사용하므로 움직이는 주체의 절대 위치를 파악하기 어렵다.
따라서, 움직임 센싱 모듈(3200)은 지자기 센서(3260)를 더 포함함으로써, 지자기 센서(3260)에 의해 측정되는 절대 방위각의 변화를 가속도 센서(3220)와 자이로 센서(3240)에서 측정된 데이터와 함께 연산함으로써 오차율이 낮은 데이터를 생성할 수 있다. 움직임 센싱 모듈(3200)은 지자기 센서(3260)를 포함함으로써, 자이로 센서(3240)에서 발생되는 누적 드리프트를 더욱 완벽하게 보상할 수 있으며, 자이로 센서(3240)는 지자기 센서(3260)의 자기 변화로 인해 발생되는 순간적으로 자기장이 튀는 현상(갑자기 생기는 자기장의 큰 변화)을 해결해 주어 서로의 단점을 보완 및 보상해주는 역할을 할 수 있다.
일 실시 예에 따라, 움직임 센싱 모듈(3200)은 3차원 공간 상에서의 위치 데이터를 정확하게 획득할 수 있는 9축 센서를 포함할 수 있다. 9축 센서는 가속도 3축, 자이로 2축, 지자기 3축, 온도 1축으로 구성된 센서로서, 3차원 공간 상에서 3차원 위치와 3축 방향의 회전 정도를 모두 획득할 수 있는 센서이다.
도3을 참조하면, 움직임 센싱 모듈(3200)은 센서들(3220, 3240, 3260)의 출력을 보상 및 융합하여 최적화된 위치 데이터를 생성하는 센서 융합(Sensor Fusion) 동작을 수행하기 위한 센서 융합부(3280)를 포함할 수 있다. 센서 융합부(3280)는 가속도 센서(3220), 자이로 센서(3240), 및 지자기 센서(3260)에서 각각 획득되는 데이터들을 잡음(Noise) 제거, 보상, 및 융합하여 데이터를 최적화함으로써 제1움직임 정보를 생성할 수 있다. 센서들(3220, 3240, 3260)에 의해 획득되는 로(row) 데이터를 그대로 이용하게 되면 정확한 위치 데이터를 획득할 수 없으므로 필터를 통해 정확한 위치를 추정(Position Estimation)함으로써 최적화된 위치 데이터가 생성될 수 있다. 예를 들어, 센서 융합 동작은 칼만 필터(Kalman Filter)와 같은 필터 또는 데이터 보상 및 융합 알고리즘에 기반하여 수행될 수 있다.
움직임 센싱 모듈(3200)을 통해 획득된 제1움직임 정보는 통신 채널(3400)을 통해 제어 신호 출력부(3600)로 전달될 수 있다. 일 실시 예에 따라, 통신 채널(3400)은 제1움직임 정보를 프로세서(3620)로 전달하기 위한 전자 장치(3000) 내의 내부 버스(internal bus)일 수 있다. 움직임 센싱 모듈(3200)과 제어 신호 출력부(3600)는 통신 채널(3400)의 버스 포맷에 기초하여 서로 데이터를 교환할 수 있다. 예를 들어, 버스 포맷은 USB(Universal Serial Bus), SPI(Serial Peripheral Interface), 및 I2C(Inter-Integrated Circuit) 등과 같은 다양한 인터페이스 규약 중 하나 이상을 포함할 수 있다.
제어 신호 출력부(3600)는 호스트 장치를 제어하기 위한 제어 신호를 출력할 수 있다. 제어 신호는 모션 신호와 마우스 신호를 포함할 수 있다. 제어 신호 출력부(3600)는 제1움직임 정보의 연산을 통해 제2움직임 정보를 획득할 수 있다. 제어 신호 출력부(3600)는 제스처 모드 하에서, 제2움직임 정보에 기반하여 전자 장치(3000)의 움직임에 대응되는 모션을 결정하고 결정된 모션을 나타내는 모션 신호를 출력할 수 있다. 제어 신호 출력부(3600)는 마우스 모드 하에서, 터치 센싱 모듈(3300)로부터 획득되는 터치 정보 및 제2움직임 정보 중 적어도 하나에 기반하여 마우스 동작을 결정하고 마우스 동작을 나타내는 마우스 신호를 출력할 수 있다. 제어 신호는 호스트 장치의 컨텐츠를 제어하기 위한 제어하기 위한 인터럽트(Interrupt) 신호일 수 있다. 예를 들어, 제어 신호는 특정 마우스 신호 또는 특정 모션 신호를 나타내는 비트열을 포함할 수 있다.
제어 신호 출력부(3600)는 통신 채널(3400)을 통해 수신되는 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 전자 장치(3000)의 각도 데이터, 거리 데이터, 속도 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 전자 장치(3000)의 제2움직임 정보는 마우스 모드와 제스처 모드에서 모두 활용될 수 있다. 예를 들어, 마우스 모드 하에서, 제2움직임 정보는 전자 장치(3000)의 마우스 무브(Move) 동작을 결정하기 위해 활용될 수 있다. 제스처 모드 하에서, 제2움직임 정보는 전자 장치(3000)로부터 출력되는 다양한 모션 신호를 결정하기 위해 활용될 수 있다.
일 실시 예에 따라, 제어 신호 출력부(3600)는 프로세서(3620) 및 통신부(3640)를 포함할 수 있다.
프로세서(3620)는 움직임 센싱 모듈(3200)로부터 통신 채널(3400)을 통해 수신되는 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 움직임에 대한 각도 데이터, 거리 데이터, 속도 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 프로세서(3620)는 기준 시간(예를 들어, 5ms) 마다 제1움직임 정보에 대한 연산을 수행함으로써 제2움직임 정보를 획득할 수 있다. 기준 시간은 30ms 이하일 수 있으나 이에 제한되지 않는다.
각도 데이터는 x축 방향, y축 방향, 및 z축 방향 각각에 대한 각도 데이터를 포함할 수 있다. 일 실시 예에 따라, 프로세서(3620)는 각속도 데이터에 적분 연산을 수행함으로써 각도 데이터를 획득할 수 있다.
속도 데이터는 x축 방향, y축 방향, 및 z축 방향 각각에 대한 속도 데이터를 포함할 수 있다. 거리 데이터는, x축 방향, y축 방향, 및 z축 방향 각각에 대한 거리 데이터를 포함할 수 있다. 일 실시 예에 따라, 프로세서(3620)는 가속도 데이터에 적분 연산을 수행함으로써 속도 데이터와 거리 데이터를 획득할 수 있다. 프로세서(3620)는 가속도 데이터에서 중력 가속도 성분을 제거하여 선형 가속도 데이터를 획득할 수 있다. 프로세서(3620)는 선형 가속도 데이터에 적분 연산을 수행함으로써 속도 데이터를 획득하고, 속도 데이터에 다시 적분 연산을 수행함으로써 거리 데이터를 획득할 수 있다.
방향 데이터는 객체의 순간 이동 방향에 관한 것으로서, x축 방향으로의 증감 여부, y축 방향으로의 증감 여부, 및 z축 방향으로의 증감 여부를 포함할 수 있다. 일 실시 예에 따라, 프로세서(3620)는 현재 거리 데이터와 이전 거리 데이터의 비교에 기반하여 방향 데이터를 포함할 수 있다. 예를 들어, 현재 거리 데이터의 x축 방향 값이 +50, y축 방향 값이 +10, z축 방향 값이 -5 이고 이전 거리 데이터의 x축 방향 값이 +60, y축 방향 값이 +15, z축 방향 값이 -10이라면, 프로세서(3620)는 현재의 움직임 방향을 x축 방향으로는 증가, y축 방향으로 증가, z축 방향으로 감소로 결정할 수 있다.
마우스 모드 하에서, 프로세서(3620)는 터치 센싱 모듈(3300)로부터 획득되는 터치 정보와 제2움직임 정보에 기반하여 대응하는 마우스 동작을 결정할 수 있다. 도4a는 일 실시 예에 따라, 마우스 모드 하에서, 전자 장치(3000)로 수행되는 마우스 동작들을 나타낸다. 마우스 동작은, 마우스 클릭, 줌 인/아웃(또는, 스크롤 업/다운), 마우스 무브, 마우스 드래그를 포함할 수 있다. 마우스 클릭은 한번 클릭(One Click), 더블 클릭(Double Click), 긴 클릭(Long Click)을 포함할 수 있다. 마우스 무브는 호스트 장치의 마우스 포인터를 움직일 수 있다.
도4b를 참조하면, 마우스 동작을 위해, 전자 장치(3000)의 터치 센싱 모듈(3300)의 표면(도2a의 메인 모듈(1240)의 정면)은 왼쪽에 위치한 터치 영역(R1), 가운데에 위치한 터치 영역(R2), 오른쪽에 위치한 터치 영역(R3)으로 구분될 수 있다. 도4c를 참조하면, 사용자가 터치 영역(R1)만을 터치하거나 터치 영역(R1)과 터치 영역(R2)를 같이 터치하면 해당 동작은 좌클릭(Left Click)으로 결정될 수 있다. 사용자가 터치 영역(R3)만을 터치하거나 터치 영역(R3)과 터치 영역(R2)을 같이 터치하면 해당 동작은 우클릭(Right Click)으로 결정될 수 있다. 사용자가 터치 영역(R2)만을 터치하거나 터치 영역(R2), 터치 영역(R1), 및 터치 영역(R3)을 같이 터치하면 해당 동작은 마우스 모드와 제스처 모드 사이의 전환(Mode Change)으로 결정될 수 있다. 사용자가 터치 영역(R1), 터치 영역(R2), 및 터치 영역(R3)를 순차적 및 연속적으로 터치하면 해당 동작은 스크롤 업(Scroll Up)으로 결정될 수 있다. 사용자가 터치 영역(R3), 터치 영역(R2), 및 터치 영역(R3)를 순차적 및 연속적으로 터치하면 해당 동작은 스크롤 다운(Scroll Down)으로 결정될 수 있다.
프로세서(3620)는 마우스 모드 하에서, 사용자가 키보드를 사용하고 있을 때와 마우스를 사용하고 있을 때를 구분하고, 사용자가 키보드를 사용하고 있는 것으로 판단되면 마우스 신호를 출력하지 않을 수 있다.
제스처 모드 하에서, 프로세서(3620)는 제2움직임 정보에 기반하여, 전자 장치(3000)의 움직임과 대응하는 모션을 결정할 수 있다. 예를 들어, 프로세서(3620)는 제2움직임 정보에 기반하여, 기 정의된 모션들 중에서 전자 장치(3000)의 움직임에 대응하는 하나의 모션을 결정할 수 있다. 프로세서(3620)는 결정된 모션을 나타내는 모션 신호를 생성하고 이를 통신부(3640)를 통해 호스트 장치로 전달할 수 있다. 만약, 프로세서(3620)는 전자 장치(3000)와 호스트 장치 사이의 거리가 기준 거리보다 크거나, 전자 장치(3000)의 움직임이 기 정의된 모션들 중 어느 것에도 해당하지 않거나 무의미한 움직임으로 판단되는 경우, 예외 처리할 수 있다.
기 정의된 모션들은 무브(Move), 탭(Tap), 잡기(Grasp), 스크롤(Scroll), 스와이프(Swipe), 제스처(Gesture), 로테이션(Rotation) 등을 포함할 수 있다. 무브 모션은 전자 장치(3000)를 임의의 방향으로 이동시키는 동작으로서가상의 컨텐츠를 이동시키거나 페이지를 넘기는 동작 등을 위해 사용될 수 있다. 예를 들어, 무브 모션은 3축(x, y, z축) 방향으로의 움직임을 포함할 수 있다. 탭 모션은, 무언가를 두드리는 동작으로서, 가상의 컨텐츠를 선택하거나 클릭하기 위해 사용될 수 있다. 사용자가 탭 모션을 기준 시간 내에 두 번 연속 취함으로써, 가상의 컨텐츠를 더블 클릭할 수 있다. 탭 모션은 마우스 모드 하에서의 클릭 동작과는 별개의 동작이다.) 잡기 모션은, 떨어져 있는 두 개의 객체가 서로 맞닿는 동작으로서, 가상의 컨텐츠를 잡기 위해 사용될 수 있다. 제스처는, 텍스트, 기호, 또는 모양(예를 들어, '?' 또는 'X')을 표현하기 위한 움직임을 의미할 수 있다.
기 정의된 모션은 사용자 정의 모션에 의해 추가될 수 있다. 사용자 정의 모션이란, 전자 장치(3000)의 제조사가 아닌 사용자에 의해 정의되는 모션으로서, 사용자는 자신이 입력하는 특정한 움직임을 사용자 정의 모션으로 추가할 수 있다. 예를 들어, 사용자는 전자 장치(3000)를 손에 쥐거나 착용한 상태로 특정한 움직임을 반복하여 취하고 이를 특정한 기능 또는 모션과 매칭시킬 수 있다. 전자 장치(3000)에 사용자가 반복하여 취한 움직임 정보 및 움직임 정보에 해당하는 기능 또는 모션이 대응되어 저장될 수 있다. 예를 들어, 전자 장치(3000)를 손가락에 착용한 사용자는 무언가를 찌르는 듯한 찌르기 동작을 10회 취하고 이를 찌르기 모션으로 지정하여 저장할 수 있다. 이후, 사용자는 전자 장치(3000)를 착용하고 찌르기 동작을 취하는 경우, 프로세서(3620)는 찌르기 모션을 나타내는 모션 신호를 통신부(3640)를 통해 호스트 장치로 전달할 수 있다.
전자 장치(3000)의 움직임 정보는 기계 학습에 기반하여 특정 모션과 매칭될 수 있다. 즉, 특정 움직임 정보를 기계 학습을 통해 학습된 결정 모델에 입력하면 결정 모델은 입력된 특정 움직임 정보에 대응하는 모션 신호를 출력할 수 있다.
일 실시 예에 따라, 전자 장치(3000)는 사용자들 별로 독립적인 결정 모델을 사용할 수 있다. 사용자들이 동일한 움직임을 취하더라도 생성되는 움직임 정보가 사용자들마다 상이하기 때문이다. 예를 들어, 팔을 돌려서 원을 그리는 동작이 전자 장치(3000)에서 출력되는 특정 모션 신호 또는 호스트 장치에서의 특정 기능과 대응된다고 가정하면, 사용자들마다 상기 동작을 취하면서 생성되는 움직임 정보는 모두 동일하지 않고 사용자들 마다의 특유한 패턴을 가지고 있을 수 있기 때문이다.
도5를 참조하면, 제1결정 모델(DEC#1), 제2결정 모델(DEC#2), 제3결정 모델(DEC#3)은 각각 제1사용자의 움직임 정보, 제2사용자의 움직임 정보, 제3사용자의 움직임 정보로부터 대응되는 모션 신호를 출력하기 위해 사용될 수 있다. 제어 신호 출력부(3600) 또는 프로세서(3620)는 전자 장치(3000)를 현재 사용하는 사용자가 제1사용자이면, 획득된 제1사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)를 제1결정 모델(DEC#1)에 입력하고 대응하는 모션 신호를 결정할 수 있다. 제어 신호 출력부(3600) 또는 프로세서(3620)는 현재 전자 장치(3000)를 사용하는 사용자가 제3사용자이면, 획득된 제3사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)를 제3결정 모델(DEC#3)에 입력하고 대응하는 모션을 결정할 수 있다.
모션 신호를 결정하기 위한 결정 모델은 기계 학습에 기반하여 생성될 수 있다. 예를 들어, 제1결정 모델(DEC#1)은 제1사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)와 특정 모션을 각각 입력과 출력으로 반복 적용하는 기계 학습을 수행함으로써 생성될 수 있다. 제1결정 모델(DEC#1)은 제1사용자가 팔을 돌려서 원을 그리는 동작으로부터 생성되는 제1사용자의 제2움직임 정보를 10회 이상 입력 받고, 입력받은 움직임 정보가 특정 모션 신호와 대응되도록 학습될 수 있다. 예를 들어, 제2결정 모델(DEC#2)은 제2사용자의 움직임 정보(예를 들어, 상술한 제2움직임 정보)와 특정 모션을 각각 입력과 출력으로 반복 적용하는 기계 학습을 수행함으로써 생성될 수 있다. 제2결정 모델(DEC#2)은 제2사용자가 팔을 돌려서 원을 그리는 동작으로부터 생성되는 제2사용자의 제2움직임 정보를 10회 이상 입력 받고, 입력 받은 움직임 정보가 특정 모션 신호와 대응되도록 학습될 수 있다.
기계 학습 기법은 SVM(Support Vector Machine), 랜덤 포레스트(Random forest), 서포트 벡터 머신(Support Vector Machine: SVM), 나이브 베이즈(Naive Bayes), 적응적 부스팅(Adaptive Boosting: AdaBoost), 랜덤 포레스트(Random Forest), 그래디언트 부스팅(Gradient Boosting), K-평균 클러스터링(K-means clustering), 인공 신경망(Artificial Neural Network) 등을 포함할 수 있다.
모션 신호를 결정하기 위해 사용되는 기계 학습 기반의 결정 모델은 전자 장치(3000) 내의 메모리(미도시)에 저장되거나 호스트 장치에 저장될 수 있다. 또한, 결정 모델을 생성하기 위한 학습은 전자 장치(3000)에서 수행되거나 호스트 장치에서 수행될 수 있다. 일 실시 예에 따라, 결정 모델을 생성하기 위한 학습은 호스트 장치에서 수행되고, 생성된 결정 모델은 전자 장치(3000) 내의 메모리(미도시)에 저장될 수 있다. 또는, 결정 모델에 대한 학습이 전자 장치(3000)에서 수행되고 전자 장치(3000)의 메모리(미도시)에 결정 모델이 저장될 수 있다.
도7은 일 실시 예에 따라, 제스처 모드 하에서, 전자 장치(3000)로 호스트 장치를 제어하기 위한 레퍼런스 모션들을 나타낸다. 레퍼런스 모션들은 전자 장치(3000)의 제조사에 의해 기 정의된 종류의 모션들을 의미할 수 있다. 예를 들어, 사용자는 왼쪽 무브(Left Move) 모션, 오른쪽 무브(Right Move) 모션, 위쪽 무브(Up Move) 모션, 아래쪽 무브(Down Move) 모션, 동그라미(Clockwise, Counter Clockwise Circle) 모션, 포워드/백 방향 무브(Forward/Back Move) 모션을 취하고 전자 장치(3000)는 레퍼런스 모션에 대응되는 제어 신호를 출력할 수 있다.
이러한 실시 예에서, 사용자는 전자 장치(3000)를 착용한 채로 3차원 공간에서 왼쪽 무브 또는 오른쪽 무브 모션을 취함으로써 호스트 장치에서 실행 중인 워드 문서의 페이지를 넘길 수 있다. 제스처 모드 하에서, 전자 장치(3000)가 호스트 장치를 제어하기 위한 모션은 상술된 실시 예에 제한되지 않는다. 예를 들어, 전자 장치(3000)가 지원하는 모션은 탭(Tap), 잡기(Grasp), 스크롤(Scroll), 스와이프(Swipe) 등을 더 포함할 수 있다.
다시 도3을 참조하면, 프로세서(3620)는 모션 신호 또는 마우스 신호를 나타내는 제어 신호를 생성할 수 있다. 예를 들어, 프로세서(3620)는 사용자의 움직임이 왼쪽 무빙(Left Moving) 모션으로 결정되면 왼쪽 무빙(Left Moving) 모션을 나타내는 제1비트열을 제어 신호로서 생성할 수 있다. 프로세서(3620)는 사용자의 움직임이 시계 방향의 로테이션 모션으로 결정되면 시계 방향의 로테이션 모션을 나타내는 제2비트열을 제어 신호로서 생성할 수 있다. 또는, 전자 장치(2000)와 호스트 장치와 약속된 규약을 사용하는 경우, 모션들 각각에 할당된 번호를 제어 신호로서 생성할 수도 있다. 프로세서(3620)는 사용자의 움직임이 마우스 무브로 결정되면 마우스 무브를 나타내는 제3비트열을 제어 신호로서 생성할 수 있다.
프로세서(3620)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 프로세서(3620)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 프로세서(3620)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
통신부(3640)는 제어 신호를 무선 통신 인터페이스를 통해 호스트 장치로 전달할 수 있다. 통신부(3640)는 Wi-fi(Wireless Fidelity)와 같은 무선 근거리 통신망(Wireless Local Area Network; WLAN), 블루투스(Bluetooth)와 같은 무선 개인 통신망(Wireless Personal Area Network; WPAN), 무선 USB(Wireless Universal Serial Bus), Zigbee, NFC(Near Field Communication), RFID(Radio-frequency identification), 또는 3G(3rd Generation), 4G(4th Generation), LTE(Long Term Evolution) 등 이동 통신망(mobile cellular network)에 접속 가능한 모뎀 통신 인터페이스 등을 포함할 수 있다. 블루투스 인터페이스는 BLE(Bluetooth Low Energy)를 지원할 수 있다.
전자 장치(3000)는, 전자 장치(3000)에서 수행되는 동작에 필요한 메모리(미도시)를 포함할 수 있다. 예를 들어, 전자 장치(3000)는 센서 융합부(3280)에서의 센서 융합 동작을 수행하기 위해 필요한 메모리(미도시)를 포함할 수 있다. 또한, 전자 장치(3000)는 기 정의된 모션들 및/또는 사용자 정의 모션을 저장하기 위해 사용되거나 프로세서(3620)에서 수행되는 동작에 필요한 메모리(미도시)를 포함할 수 있다. 메모리(미도시)는 사용자 움직임에 대응하는 모션 신호를 결정하기 위해 기계 학습에 기반하여 생성된 결정 모델을 저장할 수 있다. 메모리(미도시)는, 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM) 등과 같은 휘발성 메모리 장치, 플래시 메모리 장치(flash memory device), 솔리드 스테이트 드라이브(Solid State Drive; SSD) 등과 같은 비휘발성 메모리 장치를 포함할 수 있다.
전자 장치(3000)는, 전자 장치(3000)에서 수행되는 동작에 필요한 전원을 공급하기 위한 배터리(미도시)를 포함할 수 있다. 배터리(미도시)는 리튬 이온 배터리 또는 리튬 폴리머 배터리를 포함할 수 있으나 이에 제한되지 않는다. 예를 들어, 배터리(미도시)는 제어 신호 출력부(3600)에 포함될 수 있으며, 배터리(미도시)에서 출력되는 전원 중 일부가 움직임 센싱 모듈(3200)로 바이패스될 수 있다.
전자 장치(3000)는 배터리(미도시)를 충전시키기 위한 충전 단자를 포함할 수 있다. 전자 장치(3000)는 USB 타입의 충전 단자를 포함할 수 있다. 충전 단자를 통해 유입되는 전류는 배터리를 충전시키기 위해 사용될 수 있다. 일 실시 예에 따라, 도1a 및 1b의 링형 장치(1200)에 충전 단자가 존재할 수도 있으며, 크래들 장치(1400)에 충전 단자가 존재할 수도 있다. 예를 들어, 메인 모듈(1240)에 충전 단자가 존재하고, 링형 장치(1200)가 크래들 장치(1400)에 수납됨으로써 메인 모듈(1240)에 대한 충전이 수행될 수 있다.
이하, 도8 내지 9는 도3의 전자 장치(3000)에서 수행될 수 있다. 따라서, 이하 생략된 내용이라 하더라도 도3의 전자 장치(3000) 또는 호스트 장치에 관하여 기술된 내용은 도8 내지 9에도 적용될 수 있다.
도8은 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 방법의 흐름도를 나타낸다.
단계 S200에서, 전자 장치는 센싱 모듈에 기반하여 객체의 제1움직임 정보를 획득할 수 있다. 객체는 전자 장치 자체를 의미할 수 있다. 센싱 모듈은 가속도 센서, 자이로 센서, 및 지자기 센서를 포함할 수 있다. 제1움직임 정보는, 객체의 움직임에 대한 가속도 데이터와 각속도 데이터를 포함할 수 있다. 예를 들어, 제1움직임 정보는, 가속도 센서를 통해 획득되는 가속도 데이터와 자이로 센서를 통해 획득되는 각속도 데이터가 센서 융합부에 의해 최적화된 데이터일 수 있다.
단계 S400에서, 전자 장치는 단계 S200에서 획득된 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 각도 데이터, 속도 데이터, 거리 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 전자 장치는 객체가 움직이는 동안, 제2움직임 정보를 실시간으로 계산하고 획득할 수 있다. 예를 들어, 전자 장치는 기준 시간(예를 들어, 5ms) 마다 제1움직임 정보에 대한 연산을 수행함으로써 제2움직임 정보를 획득할 수 있다. 기준 시간은 30ms 이하일 수 있으나 이에 제한되지 않는다. 전자 장치는 검지의 중간 마디에 착용됨으로써, 검지의 첫 마디와 중간 마디 사이의 관절을 축으로 하여, 검지의 중간 마디가 움직인 각도와 속도를 결정할 수 있다. 또한, 전자 장치는 검지의 끝 마디에 착용됨으로써, 검지의 첫 마디와 중간 마디 사이의 관절을 축으로 하여 검지의 끝 마디가 움직인 각도와 속도를 결정할 수 있다.
단계 S500에서, 전자 장치는 현재 모드가 마우스 모드인지 제스처 모드인지 판단할 수 있다. 전자 장치는 현재 모드가 마우스 모드라면(Yes), 단계 S520에서 터치 정보를 획득하고, 단계 S540에서 제2움직임 정보와 터치 정보 중 적어도 하나에 기반하여 마우스 신호를 결정할 수 있다.
전자 장치는 현재 모드가 제스처 모드라면(No), 단계 S600에서, 전자 장치는 획득된 제2움직임 정보에 기반하여, 객체의 움직임에 대응하는 모션 신호를 결정할 수 있다. 일 실시 예에 따라, 전자 장치는 객체의 움직임에 대응하는 모션 신호를 결정할 수 있다. 일 실시 예에 따라, 전자 장치는 검지 손가락이 움직인 속도, 각도, 거리 등에 기반하여 모션을 결정할 수 있다. 모션들은 무브, 탭, 잡기, 스크롤, 스와이프, 제스처, 및 로테이션 모션 등을 포함할 수 있으나 이에 제한되지 않는다. 모션들은 사용자의 특성에 맞게 생성되는 제스처 프로파일들(LEFT/RIGHT, FORWARD/BACKWARD, CIRCLE(CLOCKWISE/COUNTERCLOCKWISE)을 포함할 수 있다. 전자 장치는 객체의 움직임이 제조사에 의해 기 정의된 모션들이나 사용자 정의 모션 중 어느 것에도 해당되지 않거나 무의미한 움직임으로 판단되는 경우, 모션 신호를 생성하지 않고 예외 처리할 수 있다.
단계 S800에서, 전자 장치는 결정된 모션 신호 또는 마우스 신호를 나타내는 제어 신호를 무선 통신 인터페이스를 통해 호스트 장치로 전달할 수 있다. 제어 신호는, 호스트 장치를 제어하기 위한 인터럽트 신호일 수 있다. 일 실시 예에 따라, 전자 장치는 객체의 위치가 컨텐츠가 재생되는 위치로부터 기준 거리 내에 있는지 판단하고, 판단 결과 기준 거리 내에 있을 때에만 제어 신호를 호스트 장치로 전달할 수 있다. 사용자가 컨텐츠로부터 멀리 떨어져 있는 경우, 사용자의 움직임이 컨텐츠를 제어하기 위한 움직임으로 보기 어렵기 때문이다.
단계 S900에서, 호스트 장치는 수신된 제어 신호에 기반하여, 컨텐츠를 제어할 수 있다. 예를 들어, 호스트 장치는, 수신된 제어 신호가 무브 모션인 경우, 게임 상의 야구공을 객체의 움직임에 비례하는 방향, 속도, 거리로 움직일 수 있다. 호스트 장치는, 수신된 제어 신호가 탭 모션인 경우, 게임 상의 아이템을 선택할 수 있다. 호스트 장치는, 수신된 제어 신호가 로테이션 모션인 경우, 게임 상의 원판을 회전시킬 수 있다. 호스트 장치는, 수신된 제어 신호가 무브 모션인 경우, 객체와 컨텐츠 사이의 거리에 따라, 컨텐츠를 줌-인 또는 줌-아웃할 수 있다. 호스트 장치는, 수신된 제어 신호가 페이지 넘기기 모션(예를 들어, LEFT MOVE, RIGHT MOVE)인 경우, 실행 중인 워드 문서 또는 프리젠테이션 문서의 페이지를 넘길 수 있다. 호스트 장치는, 수신된 제어 신호가 마우스 클릭인 경우, 현재 마우스 포지션에서 클릭 동작을 수행할 수 있다. 호스트 장치는, 수신된 제어 신호가 마우스 스크롤 업인 경우, 스크롤 업 동작을 수행할 수 있다.
도9는 일 실시 예에 따라, 전자 장치가 객체의 움직임에 대한 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다.
단계 S420에서, 전자 장치는 가속도 데이터로부터 중력 가속도 성분을 제거하여 선형 가속도 데이터를 생성할 수 있다. 가속도 데이터에서 중력 가속도에 의한 영향을 제거함으로써, 객체의 움직임에 대한 가속도 데이터가 획득될 수 있다.
단계 S440에서, 전자 장치는 선형 가속도 데이터에 적분 연산을 수행하여 속도 데이터를 획득할 수 있다.
단계 S460에서, 전자 장치는 속도 데이터에 적분 연산을 수행하여 거리 데이터를 획득할 수 있다.
도10는 일 실시 예에 따라, 전자 장치의 블록도를 나타낸다.
도10의 전자 장치(MD)는 도1a 내지 9를 참조하여 상술한 메인 모듈(1240) 또는 전자 장치(3000)일 수 있다. 예를 들어, 전자 장치(MD)는 손가락에 착용가능한 링형 장치일 수 있다. 전자 장치(MD)는 현재 사용자의 모션을 도7의 왼쪽 무브, 오른쪽 무브, 위쪽 무브, 아래쪽 무브, 동그라미(시계 방향, 반시계 방향), 포워드/백 무브 중 하나와 매칭시키고 매칭된 모션과 대응하는 제어 신호를 출력할 수 있다. 도10을 참조하면, 전자 장치(MD)는 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG), 제1프로세서(P1), 제2프로세서(P2), 및 메모리(M)를 포함할 수 있다.
가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)는 도3을 참조하여 상술한 가속도 센서(Accelerometer, 3220), 자이로 센서(Gyroscope, 3240), 지자기 센서(Magnetometer, 3260)와 각각 동일하므로 상세한 설명은 생략한다.
전자 장치(MD)를 손에 착용한 사용자의 움직임으로부터 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)는 각각 실시간으로 가속도 데이터, 각속도 데이터, 지자기 데이터를 획득할 수 있다. 제1프로세서(P1)는 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)로부터 수신되는 로(raw) 데이터에 기반하여 가공된 다양한 모션 데이터 값들을 획득할 수 있다.
도10과 11을 같이 참조하면, 제1프로세서(P1)는 가속도 센서(ACC)로부터 수신한 가속도 데이터에 기반하여 3축(좌/우(Left/Right, X축), 앞/뒤(Forward/Back, Y축), 위/아래(Up/Down, Z축)) 각각에 대한 가속도 값을 실시간으로 획득할 수 있다. 이하, 가속도는 가속도 센서(ACC)로부터 수신한 가속도 데이터에서 중력 가속도 성분을 제거한 선형 가속도를 의미할 수 있다.
제1프로세서(P1)는 자이로 센서(GYR)로부터 수신한 각속도 데이터에 기반하여 3축(요(Yaw), 피치(Pitch), 롤(Roll))축 각각에 대한 각속도 값을 실시간으로 획득할 수 있다.
제1프로세서(P1)는 가속도 센서(ACC), 자이로 센서(GYR), 지자기 센서(MAG)로부터 각각 획득한 가속도 데이터, 각속도 데이터, 지자기 데이터에 기반하여 전자 장치(MD)와 지면과의 기울기 값을 3축(요(Yaw), 피치(Pitch), 롤(Roll))축 각각에 대해 실시간으로 획득(이하, 요축에 대한 기울기 값, 피치축에 대한 기울기 값, 또는 롤축에 대한 기울기 값)할 수 있다.
일 실시 예에 따라, 제2프로세서(P2)는 주기적으로 또는 일정 시간 간격으로(예로서, 20ms 간격으로) 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값을 획득할 수 있다. 예를 들어, 제2프로세서(P2)는 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값을 제1프로세서(P1)로부터 주기적으로 또는 일정 시간 간격으로(예로서, 20ms 간격으로) 읽어올 수 있다.
제2프로세서(P2)는 제1동작 모드(제스처 레코딩 모드라고 칭함)에서, 제1프로세서(P1)로부터 일정 시간 간격으로 읽어오는 모션 데이터들에 기반하여 레퍼런스 모션들에 대한 현재 사용자의 제스처 프로파일(Gesture Profile)을 생성하거나 사용자가 실제로 취한 모션이 레퍼런스 모션들 중 어느 하나와 매칭되는지 판단할 수 있다. 제2프로세서(P2)는 제2동작 모드(제스처 인식 모드라고 칭함)에서 사용자가 현재 취한 모션을 특정 레퍼런스 모션과 매칭시킬 수 있다. 레퍼런스 모션(reference motion)이란, 전자 장치(MD)에서 기본적으로 제공되는 제어신호의 기반이 되는 기본적인 모션들로서, 레퍼런스 모션들은 왼쪽/오른쪽/위쪽/아래쪽 방향의 무브(MOVE), 포워드/백워드 방향의 무브, 동그라미(CLOCKWISE/COUNTERCLOCKWISE) 모션을 포함할 수 있다.
제스처 인식 모드에서 사용자가 취한 모션이 레퍼런스 모션들 중 하나와 매칭시키기 위해 레퍼런스 모션들 각각에 대해 사용자에 의해 정의된 기준들을 제스처 프로파일이라고 지칭할 수 있다. 예를 들어, 제스처 프로파일은 8개의 레퍼런스 모션들(왼쪽/오른쪽/위쪽/아래쪽 방향의 무브(MOVE), 포워드/백워드 방향의 무브, 동그라미(CLOCKWISE/COUNTERCLOCKWISE))에 대한 기준을 포함할 수 있다(도7 참조). 제스처 프로파일은 사용자들마다 독립적으로 생성될 수 있다. 이는 사용자들마다의 고유한 모션 특성을 반영하기 위함이다.
일 실시 예에 따라, 가이드 화면은 왼쪽 무브, 오른쪽 무브, 위쪽 무브, 아래쪽 무브, 포워드 무브, 백워드 무브, 시계 방향 동그라미, 반시계 방향 동그라미 중 적어도 하나를 반복해서 취할 것을 사용자에게 가이드할 수 있다. 예를 들어, 가이드 화면은 왼쪽 무브 동작을 5번 반복할 것을 화면을 통해 사용자에게 표시하고 사용자는 이를 따라할 수 있다(제스처 레코딩 모드에서의 레코딩 동작이라고 칭함). 전자 장치(MD)는 사용자의 반복된 모션으로부터 획득된 모션 데이터에 기반하여 레퍼런스 모션들 중 적어도 하나에 대해 제스처 프로파일을 생성하고 이를 메모리(M)에 저장할 수 있다. 도13은 일 실시 예에 따라, 왼쪽 무브 동작을 사용자에게 반복하도록 가이드하는 화면을 나타낸다.
제스처 레코딩 모드 하에서, 사용자는 레코딩을 위한 레코딩 모션을 취하고 전자 장치(MD)는 레코딩 모션으로부터 획득한 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값 중 적어도 하나에 기반하여 상기 레퍼런스 모션들 중 적어도 하나에 대한 제스처 프로파일을 생성하고 이를 메모리(M)에 저장할 수 있다.
제스처 인식 모드 하에서, 사용자는 인식 모션을 취하고 전자 장치(MD)는 현재 사용자가 취한 인식 모션을 레퍼런스 모션들 중 하나와 매칭시킬 수 있다.
도12는 일 실시 예에 따라, 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법의 흐름도를 나타낸다. 도12는 전자 장치(MD)에 의해 수행될 수 있다.
단계 S1210에서, 전자 장치는 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향(Left/Right)의 X축, 앞뒤 방향(Forward/Backward)의 Y축, 및 위아래 방향(Up/Down)의 Z축 각각에 대한 가속도를 일정 시간 간격으로 획득할 수 있다.
단계 S1220에서, 전자 장치는 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도를 일정 시간 간격으로 획득할 수 있다.
단계 S1230에서, 가속도 센서, 자이로 센서, 및 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기를 일정 시간 간격으로 획득할 수 있다.
단계 S1210 내지 S1230의 동작은 도10을 참조하여 상술한 제2프로세서(P2)의 동작과 유사하므로 상세한 설명은 생략한다.
현재 모드가 제스처 레코딩 모드이면, 단계 S1240에서, 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 전자 장치는 레퍼런스 모션에 대응하는 사용자의 제스처 프로파일을 생성할 수 있다.
현재 모드가 제스처 인식 모드이면, 단계 S1250에서, 사용자의 인식 모션(현재 취하는 모션)이 상기 레퍼런스 모션과 매칭되는지 판단할 수 있다.
도14는 일 실시 예에 따라, 왼쪽 또는 오른쪽 무브 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 전자 장치에서 수행되는 방법의 흐름도를 나타낸다. 도14의 방법의 흐름도는 전자 장치(MD) 또는 전자 장치(MD)의 제2프로세서(P2)에 의해 수행될 수 있다.
도14의 흐름도는 도12의 단계 S1240 또는 S1250의 하위 단계들일 수 있다. 예를 들어, 도12의 단계 S1240은 도14의 단계 S1410 내지 S1480들을 포함할 수 있다. 도12의 단계 S1250은 도14의 단계 S1410 내지 S1490들을 포함할 수 있다.
전자 장치(MD)는 주기적으로 또는 일정 시간 간격으로 사용자의 모션 데이터들을 획득할 수 있다. 일 실시 예에 따라, 제2프로세서(P2)는 20ms 간격으로 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값을 제1프로세서(P1)로부터 획득할 수 있다. 도14의 흐름도에서 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값은 제2프로세서(P2)가 제1프로세서(P1)로부터 주기적으로 읽어온 값을 의미할 수 있다.
전자 장치(MD)가 대기 상태로 돌아간다는 의미는 전자 장치(MD)가 사용자가 특정 레퍼런스 모션을 취한 것으로 최종적으로 결정하기 위해 판단하는 여러가지 조건들 중에서 하나라도 조건에 벗어난다면 사용자의 현재 모션을 유의미한 제스처가 아닌 것으로 판단하고 현재 수행 중인 제스처 프로파일 생성 동작(제스처 레코딩 모드에서) 또는 제스처 인식 동작(제스처 인식 모드에서)을 종료하고 다시 대기 상태로 돌아간다는 의미(리셋(Reset)이다.
도14를 참조하면, 동작 모드와 상관없이 단계 S1460까지는 동일하다. 따라서, 단계 S1460까지 사용자가 취하는 '모션'이라 함은 동작 모드가 제스처 레코딩 모드이면 제스처 프로파일을 생성하기 위한 '레코딩 모션'으로 칭해지고 제스처 인식 모드이면 실제로 전자 장치가 외부로 제어 신호를 출력하기 위한 '인식 모션'으로 칭해질 수 있으나 이는 각각의 모드에서 모션을 지칭하기 위한 용어 차이일 뿐이다.
단계 S1410에서 전자 장치는 롤축에 대한 기울기 또는 피치축에 대한 기울기 중 적어도 하나에 기반하여 사용자가 모션을 취할 준비되었는지 판단할 수 있다. 예를 들어, 피치축에 대한 기울기가 제1기준 범위 이내이고 롤축에 대한 기울기가 제2기준 범위 이내이면 사용자가 왼쪽 무브 모션을 취할 준비가 된 것으로 판단(Yes)할 수 있다. 예를 들어, 롤축에 대한 기울기 값이 제3기준 범위 이내이면 사용자가 오른쪽 무브를 취할 준비가 된 것으로 판단(Yes)할 수 있다. 그렇지 않으면(No) 대기 상태로 돌아간다. 단계 S1410에서, 모션 준비를 판단하기 위한 롤축에 대한 기울기 또는 피치축에 대한 기울기의 기준 범위는 왼쪽 무브, 오른쪽 무브마다 독립적으로 설정될 수 있다.
단계 S1420에서 전자 장치는 모션이 시작되었는지 판단할 수 있다. 예를 들어, 전자 장치는 요축에 대한 각속도가 제1기준 값 이상이면 왼쪽 무브 모션이 시작되었다고 판단할 수 있다. 전자 장치(MD)는 피치축에 대한 각속도가 제2기준 값 이상이면 오른쪽 무브 모션이 시작되었다고 판단할 수 있다. 단계 S1420에서, 모션 시작을 판단하기 위한 기준 값은 왼쪽 무브, 오른쪽 무브마다 독립적으로 설정될 수 있다. 모션이 시작되지 않은 것으로 판단되면(No), 대기모드로 돌아간다.
단계 S1430에서, 전자 장치는 모션을 취하는 동안의 기울기가 기준 범위 이내인지 판단할 수 있다. 예를 들어, 전자 장치는 피치축에 대한 기울기와 롤축에 대한 기울기 중 적어도 하나에 기반하여 기울기가 기준 범위 이내인지 여부를 판단할 수 있다. 예를 들어, 전자 장치는 모션을 취하는 동안 피치축의 기울기가 제4기준 범위를 벗어나거나 롤축의 기울기가 제5기준 범위를 벗어난다면 왼쪽 무브 모션이 아닌 것으로 판단(No)하고 대기 상태로 돌아간다. 전자 장치(MD)는 모션을 취하는 동안 롤축의 기울기가 제6기준 범위를 벗어난다면 오른쪽 무브 모션이 아닌 것으로 판단(No)하고 대기상태로 돌아간다. 단계 S1430에서, 제1기준 범위, 제2기준 범위는 서로 독립적으로 설정될 수 있다.
단계 S1450에서, 전자 장치는 모션 완료 시점의 각속도가 기준 값 이상인지 판단할 수 있다. 예를 들어, 전자 장치는 모션 완료 시점의 요축의 각속도가 제3기준 값 미만이면 대기 상태로 돌아간다. 또는, 전자 장치는 모션 완료 시점의 피치축의 각속도가 제4기준 값 미만이면 대기 상태로 돌아간다. 단계 S1450에서, 제3기준 값, 제4기준 값은 서로 독립적으로 설정될 수 있다. 전자 장치는 요축에 대한 각속도 및 피치축에 대한 각속도 중 적어도 하나에 기반하여 모션 완료 시점을 결정할 수 있다. 예를 들어, 모션 시작(단계 S1420) 후의 요축에 대한 각속도 최대값보다 현재 요축에 대한 각속도 값이 기준 비율 이하가 되는 시점을 왼쪽 무브, 위쪽 무브, 또는 아래쪽 무브 모션이 완료된 시점으로 결정할 수 있다. 예를 들어, 모션 시작(단계 S1420) 후의 피치축에 대한 각속도 최대값보다 현재 피치축에 대한 각속도 값이 기준 비율 이하가 되는 시점을 오른쪽 무브 모션이 완료되는 시점으로 결정할 수 있다.
단계 S1460에서, 전자 장치는 모션 시작 시점(단계 S1420)부터 완료 시점까지 획득된 가속도 값들을 누적한 값이 기준 값 이상인지 판단할 수 있다. 이는 사용자의 모션의 크기를 유추함으로써 모션이 이전까지의 모든 조건을 만족하였더라도 모션의 크기가 기준 값 이상일 때에만 유효한 모션으로 판단하기 위함이다. 예를 들어, 전자 장치는 X축 방향의 가속도 값들을 누적한 값이 제5기준 값 이상일 때에만 현재까지의 왼쪽 무브 모션이 유효한 것으로 판단할 수 있다. 전자 장치는 Z축 방향의 가속도 값들의 누적값이 제6기준 값 이상일 때에만 현재까지의 오른쪽 무브 모션이 유효한 것으로 판단할 수 있다. 단계 S1460에서, 제5기준 값, 제6기준 값은 서로 독립적으로 설정될 수 있다. 모션이 유효하지 않은 것으로 판단(No)되면 전자 장치는 대기상태로 돌아간다.
제스처 레코딩 모드는 제스처 인식을 위해 사용할 제스처 프로파일을 생성하는 모드이고 제스처 인식 모드는 기 생성된 제스처 프로파일을 이용해 제스처 인식을 수행하는 모드이다. 현재 동작 모드가 제스처 레코딩 모드(Yes)이면 단계 S1480가 수행되고, 제스처 인식 모드이면(No) 단계 S1490이 수행된다.
단계 S1480에서, 전자 장치는 레코딩 모션 시작 후 완료까지 획득된 모션 데이터들에 기반하여 현재 모션을 취하고 있는 사용자에게 고유한 사용자 특성 값들을 획득하고 이를 메모리에 저장할 수 있다. 전자 장치는 왼쪽 무브, 오른쪽 무브마다의 적어도 하나의 사용자 특성 값을 획득할 수 있다. 예를 들어, 동일한 가이드 영상(도13와 같은 왼쪽 무브)을 보고 사용자들이 모션을 취했더라도 사용자들마다 획득되는 데이터들이 모두 동일할 수 없기 때문에 사용자들 각각의 고유한 특성을 제스처 프로파일에 반영하기 위함이다. 전자 장치는 제스처 레코딩 모드에서 현재 사용자 특성 값을 획득하고 저장해두고 나중에 제스처 인식 모드에서 사용자로부터 획득되는 사용자 특성 값과 미리 저장된 사용자 특성 값을 비교함으로써 제스처 인식률을 높일 수 있다.
예를 들어, 제스처 레코딩 모드에서 제1사용자가 취한 왼쪽 무브 모션에 의해 획득된 사용자 특성 값은 제2사용자가 취한 왼쪽 무브 모션에 의해 획득된 사용자 특성 값과 상이할 수 있다. 예를 들어, 제1사용자가 왼쪽 무브 모션 시작 후 완료할때까지 획득된 롤축에 대한 각속도 값들 중 최대값을 요축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 회전량이 제1사용자의 왼쪽 무브 모션에 대한 사용자 특성 값으로 메모리에 저장될 수 있다. 예를 들어, 제1사용자가 왼쪽 무브 모션 시작 후 완료때까지의 피치축에 대한 각속도 값들 중 최대값을 요축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 간섭량이 제1사용자의 왼쪽 무브에 대한 사용자 특성 값으로 상기 메모리에 저장할 수 있다.
예를 들어, 제스처 레코딩 모드에서 제1사용자가 취한 오른쪽 무브 모션에 의해 획득된 사용자 특성 값은 제2사용자가 취한 오른쪽 무브 모션에 의해 획득된 사용자 특성 값과 상이할 수 있다. 예를 들어, 제1사용자가 오른쪽 무브 모션 시작 후 완료할때까지 획득된 롤축에 대한 각속도 값들 중 최대값을 피치축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 회전량이 제1사용자의 오른쪽 무브에 대한 사용자 특성 값으로 메모리에 저장될 수 있다. 예를 들어, 제1사용자가 오른쪽 무브 모션 시작 후 완료때까지의 요축에 대한 각속도 값들 중 최대값을 피치축에 대한 각속도 값들 중 최대값으로 나눈 값인 기준 간섭량이 제1사용자의 오른쪽 무브에 대한 사용자 특성 값으로 상기 메모리에 저장할 수 있다.
레퍼런스 모션들 중 위쪽 무브 모션과 아래쪽 무브 모션에 대해서도 제스처 레코딩 모드 또는 제스처 인식 모드에서 전자 장치에서 수행되는 방법의 흐름도(도14)와 유사하게 수행될 수 있다.
제스처 레코딩 모드에서, 사용자가 하나의 레코딩 모션을 여러 횟수 반복하여 취함으로써 제스처 프로파일이 생성될 수 있다. 일 실시 예에 따라, 단계 S1410 내지 S1480은 여러번(예를 들어, 5회) 수행되고 각 횟수마다 획득된 기준 회전량과 기준 간섭량 값들에 기반하여 사용자 특성 값이 결정될 수 있다. 단계 S1410 내지 S1480이 모두 수행되어야 한번의 레코딩 횟수로 간주될 수 있다. 예를 들어, 복수 횟수에 걸쳐 획득된 기준 회전량과 기준 간섭량들의 평균, 최소, 최대, 중간 값 등이 최종 기준 회전량과 최종 기준 간섭량으로 메모리에 저장될 수 있다.
회전량은 왼쪽 또는 오른쪽 무브 모션을 취할때 사용자마다 손목이 뒤틀리는 정도를 의미하고 간섭량은 움직임의 메인 축이 아닌 다른 축의 움직임 정도를 의미한다. 회전량과 간섭량은 사용자마다 다르므로 사용자 특성 값으로 사용될 수 있다.
단계 S1490에서, 현재 동작 모드가 제스처 레코딩 모드가 아니라면(No), 즉 제스처 인식 모드라면 사용자가 취한 모션으로부터 현재 획득된 사용자 특성 값을 미리 저장된 사용자 특성 값과 비교할 수 있다. 전자 장치는 현재 사용자가 제1사용자라면 제1사용자의 인식 모션으로부터 획득된 회전량과 간섭량을 미리 저장된 제1사용자의 기준 회전량과 기준 간섭량과 각각 비교할 수 있다. 전자 장치는 현재 사용자가 제2사용자라면 제2사용자의 인식 모션으로부터 획득된 회전량과 간섭량을 미리 저장된 제2사용자의 기준 회전량과 기준 간섭량과 각각 비교할 수 있다.
비교 결과에 기반하여 인식 모션과 레퍼런스 모션의 매칭 여부가 결정될 수 있다. 현재 획득된 회전량이 기준 회전량과 소정의 오차 범위 이내이고, 현재 획득된 간섭량이 기준 간섭량과 소정의 오차 범위 이내이면 인식 모션을 왼쪽 무브 또는 오른쪽 무브로 매칭(또는, 인식)할 수 있다.
이하, 왼쪽 무브 모션의 제스처 레코딩 방법과 제스처 인식 방법에 대해 도14를 다시 참조하여 상세히 설명한다.
전자 장치는 모션 준비를 판단하는 단계(S1410)에서 피치축에 대한 기울기가 -30°보다 크거나 같고 +30°보다 작거나 같고 롤축에 대한 기울기가 -25°보다 크거나 같고 +35°보다 작거나 같으면 왼쪽 무브 모션에 대한 준비가 된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션 시작을 판단하는 단계(S1420)에서 요축에 대한 각속도가 183 degree/sec 이상이면 왼쪽 무브 모션이 시작된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션의 기울기 조건을 판단하는 단계(S1430)에서 피치축에 대한 기울기가 -90°보다 크거나 같고 +90°보다 작거나 같아야 왼쪽 무브 모션이 계속되고 있는 것으로 판단한다. 또한, 전자 장치는 롤축에 대한 기울기가 -60°보다 크거나 같고 +90°보다 작거나 같아야만 왼쪽 무브 모션이 계속되고 있는 것으로 판단한다. 따라서, 전자 장치는 피치축에 대한 기울기가 -90°보다 작거나 +90°보다 크면 대기 상태로 돌아간다. 또는, 전자 장치는 롤 축에 대한 기울기가 -60°보다 작거나 +90°보다 크면 대기 상태로 돌아간다.
전자 장치는 모션의 완료 시점에 대한 각속도를 판단하는 단계(S1450)에서, 요축에 대한 각속도가 305 degree/sec 이상이어야 왼쪽 무브 모션이 완료된 것으로 판단할 수 있다. 모션 시작(단계 S1410) 후의 요축에 대한 각속도 최대값보다 현재 요축에 대한 각속도 값이 기준 비율 이하(예로서, 30%)가 되는 시점이 왼쪽 무브 모션이 완료된 시점으로 결정될 수 있다.
전자 장치는 모션이 유효한지 판단하는 단계(S1460)에서, X축 방향의 가속도 값들의 누적값이 4.88 m/s2 이상이어야 왼쪽 무브 모션이 유효한 것으로 판단할 수 있다.
단계 S1480와 S1490은 상술한 바와 동일하므로 설명은 생략한다.
이하, 오른쪽 무브 모션의 제스처 레코딩 방법과 제스처 인식 방법에 대해 도14를 다시 참조하여 상세히 설명한다.
전자 장치는 모션 준비를 판단하는 단계(S1410)에서 롤축에 대한 기울기가 0°보다 크거나 같고 90°보다 작거나 같이면 오른쪽 무브 모션에 대한 준비가 된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션 시작을 판단하는 단계(S1420)에서 피치축에 대한 각속도가 12 degree/sec이상면 오른쪽 무브 모션이 시작된 것으로 판단(Yes)하고 그렇지 않으면(No) 대기 상태로 돌아간다.
전자 장치는 모션의 기울기 조건을 판단하는 단계(S1430)에서 롤축에 대한 기울기가 -20°보다 크거나 같고 +90°보다 작거나 같아야 오른쪽 무브 모션이 계속되고 있는 것으로 판단한다. 따라서, 전자 장치는 롤축에 대한 기울기가 -20°보다 작거나 +90°보다 크면 대기 상태로 돌아간다.
전자 장치는 모션의 완료 시점을 결정하는 단계(S1440)에서 모션 시작(단계 S1410) 후의 피치축에 대한 각속도 최대값보다 현재 피치축에 대한 각속도 값이 기준 비율 이하(예로서, 30%)가 되는 시점을 오른쪽 무브 모션이 완료된 시점으로 결정할 수 있다.
전자 장치는 모션의 완료 시점에 대한 각속도를 판단하는 단계(S1450)에서, 피치축에 대한 각속도가 20 degree/sec 이상이어야 오른쪽 무브 모션이 완료된 것으로 판단할 수 있다. 모션 시작(단계 S1410) 후의 피치축에 대한 각속도 최대값보다 현재 피치축에 대한 각속도 값이 기준 비율 이하(예로서, 30%)가 되는 시점을 오른쪽 무브 모션이 완료된 시점으로 결정될 수 있다.
전자 장치는 모션이 유효한지 판단하는 단계(S1460)에서, Z축 방향의 가속도 값들의 누적값이 2.44 m/s2이상이어야 왼쪽 무브 모션이 유효한 것으로 판단할 수 있다.
단계 S1480와 S1490은 상술한 바와 동일하므로 설명은 생략한다.
도15는 일 실시 예에 따라, 동그라미(시계 방향 써클 또는 반시계 방향 써클) 모션에 대해 제스처 레코딩 모드 또는 제스처 인식 모드에서 전자 장치에서 수행되는 방법의 흐름도를 나타낸다. 도15의 흐름도는 전자 장치(MD) 또는 전자 장치(MD)의 제2프로세서(P2)에 의해 수행될 수 있다.
도15의 흐름도는 도12의 단계 S1240 또는 S1250의 하위 단계들일 수 있다. 예를 들어, 도12의 단계 S1240은 도15의 단계 S1510 내지 S1550들을 포함할 수 있다. 도12의 단계 S1250은 도15의 단계 S1510 내지 S1560들을 포함할 수 있다.
전자 장치(MD)는 주기적으로 또는 일정 시간 간격으로 사용자의 모션 데이터들을 획득할 수 있다. 일 실시 예에 따라, 제2프로세서(P2)는 20ms 간격으로 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값을 제1프로세서(P1)로부터 획득할 수 있다. 도15의 흐름도에서 3축(Left/Right, Forward/Back, Up/Down) 각각에 대한 가속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 각속도 값, 3축(Yaw/Pitch/Roll)축 각각에 대한 기울기 값은 제2프로세서(P2)가 제1프로세서(P1)로부터 주기적으로 읽어온 값을 의미한다.
전자 장치(MD)가 대기 상태로 돌아간다는 의미는 전자 장치(MD)가 사용자가 특정 레퍼런스 모션을 취한 것으로 최종적으로 결정하기 위해 판단하는 여러가지 조건들 중에서 하나라도 조건에 벗어난다면 사용자의 현재 모션을 유의미한 제스처가 아닌 것으로 판단하고 현재 수행 중인 제스처 프로파일 생성 동작(제스처 레코딩 모드에서) 또는 제스처 인식 동작(제스처 인식 모드에서)을 종료하고 다시 대기 상태로 돌아간다는 의미(리셋(Reset)이다.
도15를 참조하면, 동작 모드와 상관없이 단계 S1540까지는 동일하다. 따라서, 단계 S1540까지 사용자가 취하는 '모션'이라 함은 동작 모드가 제스처 레코딩 모드이면 제스처 프로파일을 생성하기 위한 '레코딩 모션'으로 칭해지고 제스처 인식 모드이면 실제로 전자 장치가 외부로 제어 신호를 출력하기 위한 '인식 모션'으로 칭해질 수 있으나 이는 각각의 모드에서 모션을 지칭하기 위한 용어 차이일 뿐이다.
단계 S1510에서 전자 장치는 롤축에 대한 기울기 또는 피치축에 대한 기울기 중 적어도 하나에 기반하여 사용자가 동그라미 모션을 취할 준비되었는지 판단할 수 있다. 예를 들어, 롤축에 대한 기울기가 제1기준 범위 이내이면 모션이 준비된 것으로 판단하되(Yes) 피치축에 대한 기울기가 제1기준 값 이하이고 롤축에 대한 기울기가 제2기준 값 이하이면(No) 대기상태로 돌아간다.
단계 S1520에서, 전자 장치는 모션 크기가 너무 작으면 현재 사용자의 모션이 동그라미 모션이 아닌 것으로 판단(No)하고 대기상태로 돌아간다. 예를 들어, 요축에 대한 각속도, 피치축에 대한 각속도, 롤축에 대한 각속도가 모두 각각의 기준 값 이하이면 모션이 거의 없는 것으로 판단하고 대기상태로 돌아간다. 요축에 대한 각속도, 피치축에 대한 각속도, 롤축에 대한 각속도 각각에 대한 기준 값은 독립적으로 설정될 수 있다.
단계 S1530에서, 전자 장치는 모션을 취하는 동안의 기울기가 기준 범위 이내인지 판단할 수 있다. 예를 들어, 전자 장치는 롤축에 대한 기울기가 제3기준 값보다 작으면 동그라미 모션이 아닌 것으로 판단(No)하고 대기상태로 돌아간다.
단계 S1540에서, 전자 장치는 모션이 유효한지 판단할 수 있다. 전자 장치는 롤축의 각속도 값들의 누적치에 기반하여 유효한 동그라미 모션을 위한 손목 회전이 발생하는지 확인할 수 있다. 예를 들어, 롤축의 각속도 값들의 누적치가 제2기준 범위를 벗어나면 모션이 유효하지 않은 것으로 판단(No)하고 대기상태로 돌아간다.
단계 S1550에서, 전자 장치는 현재 모드가 제스처 레코딩 모드(Yes)이면, 전자 장치는 레코딩 모션으로부터 획득된 모션 데이터들을 통해 모션의 동그라미 궤적을 획득하고 획득된 동그라미 궤적의 가로 길이와 세로 길이의 비율(기준 비율)을 사용자 특성 값으로서 획득할 수 있다. 예를 들어, 피치축의 각속도와 요축의 각속도에 기반하여 전자 장치의 좌표 값을 실시간으로(예를 들어, 20ms 마다) 생성하여 동그라미 궤적을 획득할 수 있다. 획득된 기준 비율은 메모리에 저장될 수 있다. 사용자들마다 그리는 동그라미의 모양이 다르기 때문에 기준 비율이 사용자 특성 값으로 사용될 수 있다.
단계 S1560에서, 전자 장치는 현재 모드가 제스처 레코딩 모드가 아니면(즉, 제스처 인식 모드이면), 인식 모션으로부터 획득된 모션 데이터들을 통해 모션의 동그라미 궤적을 획득하고 가로 길이와 세로 길이의 비율 값을 획득하고 이를 사용자 특성 값으로서 미리 저장된 기준 비율 값과 비교할 수 있다. 예를 들어, 피치축의 각속도와 요축의 각속도에 기반하여 전자 장치의 좌표 값을 실시간으로(예를 들어, 20ms 마다) 생성하여 동그라미 궤적을 획득할 수 있다.
비교 결과에 기반하여 인식 모션과 레퍼런스 모션의 매칭 여부가 결정될 수 있다. 현재 획득된 비율 값이 미리 저장된 기준 비율과 소정의 오차 범위 이내(Yes)이면 인식 모션을 동그라미 모션으로 매칭(또는, 인식)할 수 있다.
이하, 동그라미 모션의 제스처 레코딩 방법과 제스처 인식 방법에 대해 도15를 다시 참조하여 상세히 설명한다.
전자 장치는 동그라미 모션을 취할 준비되었는지 판단하는 단계(S1510)에서 롤축에 대한 기울기가 -20°이상이고 90°이하이면 동그라미 모션을 취할 준비가 된 것으로 판단하되 상기 준비 조건(롤축에 대한 기울기가 -20°~90°)을 만족하더라도 피치축에 대한 기울기가 0° 이하이고 롤축에 대한 기울기가 30° 이하이면 예외적으로 대기 상태로 돌아갈 수 있다.
전자 장치는 모션 크기를 판단하는 단계(S1520)에서 요축에 대한 각속도, 피치축에 대한 각속도, 롤축에 대한 각속도가 모두 2 degree/sec 이하이면 모션이 매우 작은 것으로 판단하고 대기 상태로 돌아갈 수 있다.
전자 장치는 모션을 취하는 동안의 기울기가 기준 범위 이내인지 판단하는 단계(S1530)에서, 롤축에 대한 기울기가 -40° 이상이면 기준 범위 이내인 것으로 판단하고 그렇지 않으면 대기상태로 돌아간다.
전자 장치는 모션이 유효한지 판단하는 단계(S1540)에서, 롤축의 각속도 값들의 누적치가 -1831 degree/sec 보다 작거나 +1831 degree/sec 보다 크면 대기상태로 돌아간다.
단계 S1550와 S1560은 상술한 바와 동일하므로 설명은 생략한다.
한편, 상술한 방법들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
위 설명들은 본 발명을 구현하기 위한 예시적인 구성들 및 동작들을 제공하도록 의도된다. 본 발명의 기술 사상은 위에서 설명된 실시 예들뿐만 아니라, 위 실시 예들을 단순하게 변경하거나 수정하여 얻어질 수 있는 구현들도 포함할 것이다. 또한, 본 발명의 기술 사상은 위에서 설명된 실시 예들을 앞으로 용이하게 변경하거나 수정하여 달성될 수 있는 구현들도 포함할 것이다.

Claims (9)

  1. 전자 장치에서 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법에 있어서,
    상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 앞뒤 방향의 Y축, 및 위아래 방향의 Z축 각각에 대한 가속도를 일정 시간 간격으로 획득하는 단계;
    상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 및 롤(Roll)축 각각에 대한 각속도를 상기 일정 시간 간격으로 획득하는 단계;
    상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기를 상기 일정 시간 간격으로 획득하는 단계;
    현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계; 및
    현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고,
    상기 레퍼런스 모션은 왼쪽 무브 또는 오른쪽 무브를 포함하고,
    상기 사용자의 제스처 프로파일을 생성하는 단계는,
    상기 전자 장치의 피치축에 대한 기울기가 제1기준 범위 이내이고 롤축에 대한 기울기가 제2기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계;
    상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계;
    상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제3기준 범위를 벗어나거나 피치축에 대한 기울기가 제4기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계;
    상기 레코딩 모션의 완료 시점의 요축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계;
    상기 레코딩 모션의 시작에서 완료 시점까지 획득된 상기 X축에 대한 가속도들의 누적값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 상기 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제5단계; 및
    상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고,
    상기 레코딩 모션의 완료 시점은 현재 요축에 대한 각속도 값이 레코딩 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
  2. 제1항에 있어서,
    상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고,
    각 횟수는 상기 제6단계의 동작이 완료되어야 카운트되고,
    상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고,
    상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
  3. 제1항에 있어서,
    상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는,
    상기 전자 장치의 피치축에 대한 기울기가 상기 제1기준 범위 이내이고 롤축에 대한 기울기가 상기 제2기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계;
    상기 인식 모션이 준비되었으면, 요축에 대한 각속도가 상기 제1기준 값 이상이면 상기 인식 모션이 시작된 것으로 판단하는 제8단계;
    상기 인식 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 상기 제3기준 범위를 벗어나거나 피치축에 대한 기울기가 상기 제4기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계;
    상기 인식 모션의 완료 시점의 요축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계;
    상기 인식 모션의 시작에서 완료 시점까지 획득된 상기 X축에 대한 가속도들의 누적값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기 상태로 돌아가는 제11단계; 및
    상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션의 시작 후 상기 완료 시점까지의 피치축에 대한 각속도 최대값을 요축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고,
    상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고,
    상기 인식 모션의 완료 시점은 현재 요축에 대한 각속도 값이 인식 모션 시작 후의 요축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
  4. 전자 장치에서 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법에 있어서,
    상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 앞뒤 방향의 Y축, 및 위아래 방향의 Z축 각각에 대한 가속도를 일정 시간 간격으로 획득하는 단계;
    상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도를 상기 일정 시간 간격으로 획득하는 단계;
    상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기를 상기 일정 시간 간격으로 획득하는 단계;
    현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계; 및
    현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고,
    상기 레퍼런스 모션은 왼쪽 무브 또는 오른쪽 무브를 포함하고,
    상기 사용자의 제스처 프로파일을 생성하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기 값이 제1기준 범위 이내이면 상기 레코딩 모션이 준비된 것으로 판단하는 제1단계;
    상기 레코딩 모션이 준비되었으면, 피치축에 대한 각속도가 제1기준 값 이상이면 레코딩 모션이 시작된 것으로 판단하는 제2단계;
    상기 레코딩 모션이 시작되면, 상기 레코딩 모션의 롤축에 대한 기울기가 제2기준 범위를 벗어나면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제3단계;
    상기 레코딩 모션의 완료 시점의 피치축에 대한 각속도가 제2기준 값 미만이면 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제4단계;
    상기 레코딩 모션의 시작에서 완료 시점까지 획득된 상기 Z축에 대한 가속도들의 누적 값이 제3기준 값 미만이면 상기 레코딩 모션이 유효하지 않은 것으로 판단하여 제스처 프로파일 생성을 종료하고 대기 상태로 돌아가는 제5단계; 및
    상기 레코딩 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 회전량과 상기 레코딩 모션의 시작 후 상기 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 기준 간섭량을 상기 사용자의 특성 값들로서 메모리에 저장하는 제6단계를 포함하고,
    상기 레코딩 모션의 완료 시점은 현재 피치축에 대한 각속도 값이 상기 레코딩 모션 시작 후의 피치축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
  5. 제4항에 있어서,
    상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고,
    각 횟수는 상기 제6단계의 동작이 완료되어야 카운트되고,
    상기 기준 회전량은 여러 횟수에 걸쳐 각각 획득된 기준 회전량들에 기반하여 결정되고,
    상기 기준 간섭량은 여러 횟수에 걸쳐 각각 획득된 기준 간섭량들에 기반하여 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
  6. 제4항에 있어서,
    상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기 값이 상기 제1기준 범위 이내이면 상기 인식 모션이 준비된 것으로 판단하는 제7단계;
    상기 인식 모션이 준비되었으면, 상기 피치축에 대한 각속도가 상기 제1기준 값 이상이면 인식 모션이 시작된 것으로 판단하는 제8단계;
    상기 인식 모션이 시작되면, 상기 인식 모션의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나면 인식을 종료하고 대기 상태로 돌아가는 제9단계;
    상기 인식 모션의 완료 시점의 피치축에 대한 각속도가 상기 제2기준 값 미만이면 인식을 종료하고 대기 상태로 돌아가는 제10단계;
    상기 인식 모션의 시작에서 상기 인식 모션의 완료 시점까지 획득된 상기 Z축에 대한 가속도들의 누적 값이 상기 제3기준 값 미만이면 상기 인식 모션이 유효하지 않은 것으로 판단하여 인식을 종료하고 대기 상태로 돌아가는 제11단계; 및
    상기 인식 모션의 시작 후 상기 완료 시점까지의 롤축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 현재 회전량과 상기 인식 모션 시작의 후 상기 완료 시점까지의 요축에 대한 각속도 최대값을 피치축에 대한 각속도 최대값으로 나눈 값인 현재 간섭량을 상기 메모리에 기 저장된 상기 기준 회전량 및 상기 기준 간섭량과 각각 비교하는 제12단계를 포함하고,
    상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되고,
    상기 인식 모션의 완료 시점은 현재 피치축에 대한 각속도 값이 상기 인식 모션 시작 후의 피치축에 대한 각속도 최대값의 기준 비율 이하가 되는 시점으로 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
  7. 전자 장치에서 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법에 있어서,
    상기 전자 장치의 가속도 센서로부터 수신한 가속도 데이터에 기반하여 좌우 방향의 X축, 앞뒤 방향의 Y축, 및 위아래 방향의 Z축 각각에 대한 가속도를 일정 시간 간격으로 획득하는 단계;
    상기 전자 장치의 자이로 센서로부터 수신한 자이로 데이터에 기반하여 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 각속도를 상기 일정 시간 간격으로 획득하는 단계;
    상기 가속도 센서, 상기 자이로 센서, 및 상기 전자 장치의 지자기 센서로부터 각각 획득한 가속도 데이터, 자이로 데이터, 및 지자기 데이터에 기반하여 상기 전자 장치의 요(Yaw)축, 피치(Pitch)축, 롤(Roll)축 각각에 대한 기울기를 상기 일정 시간 간격으로 획득하는 단계;
    현재 동작 모드가 제스처 레코딩 모드이면, 상기 사용자가 레퍼런스 모션을 따라하는 레코딩 모션을 적어도 한번 취함으로써 상기 레퍼런스 모션에 대응하는 상기 사용자의 제스처 프로파일을 생성하는 단계; 및
    현재 동작 모드가 제스처 인식 모드이면, 상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계를 포함하고,
    상기 레퍼런스 모션은 동그라미 동작이고,
    상기 사용자의 제스처 프로파일을 생성하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기가 제1기준 범위 이내이면 상기 사용자가 레코딩 모션을 취할 준비가 된 것으로 판단하는 제1단계;
    상기 레코딩 모션이 준비되었으면, 요축에 대한 각속도, 피치축에 대한 각속도, 롤축에 대한 각속도가 모두 각각의 제1기준 값 이하이면 대기상태로 돌아가는 제2단계;
    상기 레코딩 모션이 시작되면 상기 전자 장치의 롤축에 대한 기울기가 제2기준 범위를 벗어나면 대기 상태로 돌아가는 제3단계;
    상기 레코딩 모션의 시작 후 획득된 롤축의 각속도들의 누적치가 제2기준 값보다 크면 상기 레코딩 모션이 유효하지 않은 것으로 판단하고 대기 상태로 돌아가는 제4단계; 및
    상기 레코딩 모션을 통해 획득된 피치축의 각속도와 요축의 각속도에 기반하여 상기 레코딩 모션의 동그라미 궤적을 획득하고 상기 동그라미 궤적의 가로 길이와 세로 길이의 비율인 기준 비율을 상기 사용자의 특성 값으로서 저장하는 제5단계를 포함하는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
  8. 제7항에 있어서,
    상기 사용자의 제스처 프로파일은 상기 사용자가 상기 레코딩 모션을 여러 횟수 취함으로써 생성되고,
    각 횟수는 상기 제5단계의 동작이 완료되어야 카운트되고,
    상기 기준 비율은 여러 횟수에 걸쳐 각각 획득된 기준 비율들에 기반하여 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
  9. 제7항에 있어서,
    상기 사용자의 인식 모션이 상기 레퍼런스 모션과 매칭되는지 판단하는 단계는,
    상기 전자 장치의 롤축에 대한 기울기가 상기 제1기준 범위 이내이면 상기 사용자가 인식 모션을 취할 준비가 되었는지 판단하는 제6단계;
    상기 인식 모션이 준비되었으면, 요축에 대한 각속도, 피치축에 대한 각속도, 롤축에 대한 각속도가 모두 각각의 상기 제1기준 값 이하이면 대기상태로 돌아가는 제7단계;
    상기 인식 모션이 시작되면 상기 전자 장치의 롤축에 대한 기울기가 상기 제2기준 범위를 벗어나면 대기 상태로 돌아가는 제8단계;
    상기 인식 모션의 시작 후 롤축의 각속도의 누적치가 상기 제2기준 값보다 크면 상기 인식 모션이 유효하지 않은 것으로 판단하고 대기 상태로 돌아가는 제9단계; 및
    상기 인식 모션을 통해 획득된 피치축의 각속도와 요축의 각속도에 기반하여 상기 인식 모션의 동그라미 궤적을 획득하고 상기 동그라미 궤적의 가로 길이와 세로 길이의 비율을 상기 기준 비율과 비교하는 제10단계를 포함하고,
    상기 비교 결과에 기반하여 상기 인식 모션과 상기 레퍼런스 모션의 매칭 여부가 결정되는 사용자의 모션에 기반한 제어신호를 출력하기 위한 방법.
KR1020210121363A 2021-09-12 2021-09-12 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법 KR102397236B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210121363A KR102397236B1 (ko) 2021-09-12 2021-09-12 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법
PCT/KR2021/016095 WO2023038195A1 (ko) 2021-09-12 2021-11-08 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식을 위한 방법 및 장치
CN202180102224.1A CN118043761A (zh) 2021-09-12 2021-11-08 基于用户重复动作的用户定义手势档案生成及手势识别的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210121363A KR102397236B1 (ko) 2021-09-12 2021-09-12 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법

Publications (1)

Publication Number Publication Date
KR102397236B1 true KR102397236B1 (ko) 2022-05-13

Family

ID=81583726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210121363A KR102397236B1 (ko) 2021-09-12 2021-09-12 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법

Country Status (3)

Country Link
KR (1) KR102397236B1 (ko)
CN (1) CN118043761A (ko)
WO (1) WO2023038195A1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101481891B1 (ko) * 2013-04-19 2015-01-26 전북대학교산학협력단 모바일 단말 및 이의 제어 방법
KR101870542B1 (ko) * 2016-12-28 2018-06-25 주식회사 스탠딩에그 모션 인식 방법 및 장치
KR20190040768A (ko) * 2017-10-11 2019-04-19 김동욱 웨어러블 인터페이스 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013164701A (ja) * 2012-02-10 2013-08-22 Samsung Electronics Co Ltd ユーザインタラクションを利用した電子機器とその制御方法、及び電子機器制御システム
KR20180044613A (ko) * 2016-10-24 2018-05-03 주식회사 토즈 사용자 인체의 위치 정보를 이용하는 동작 인식 기반의 nui 제어 방법 및 시스템
KR102207510B1 (ko) * 2020-04-30 2021-01-27 (주)콕스스페이스 모션 신호와 마우스 신호를 사용하여 호스트 장치를 제어하기 위한 전자 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101481891B1 (ko) * 2013-04-19 2015-01-26 전북대학교산학협력단 모바일 단말 및 이의 제어 방법
KR101870542B1 (ko) * 2016-12-28 2018-06-25 주식회사 스탠딩에그 모션 인식 방법 및 장치
KR20190040768A (ko) * 2017-10-11 2019-04-19 김동욱 웨어러블 인터페이스 장치

Also Published As

Publication number Publication date
WO2023038195A1 (ko) 2023-03-16
CN118043761A (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
US11327577B2 (en) Multi-function stylus with sensor controller
US20220129060A1 (en) Three-dimensional object tracking to augment display area
US11797112B1 (en) Electronic device for controlling host device by using motion signal and mouse signal
US10565725B2 (en) Method and device for displaying virtual object
US9804679B2 (en) Touchless user interface navigation using gestures
US20170061700A1 (en) Intercommunication between a head mounted display and a real world object
US20200393918A1 (en) Displaying a shadow of a stylus or of content on a display device
CN106471450A (zh) 信息处理设备、信息处理方法和程序
US20190041978A1 (en) User defined head gestures methods and apparatus
JP6197702B2 (ja) 入力方法,プログラム及び入力装置
KR20040082559A (ko) 자계센서를 이용한 펜형 입력시스템 및 그 궤적 복원 방법
KR20160008890A (ko) 신체를 이용하여 터치 입력을 제공하는 장치 및 방법
KR20230030472A (ko) 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법
KR102397236B1 (ko) 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법
US20240028129A1 (en) Systems for detecting in-air and surface gestures available for use in an artificial-reality environment using sensors at a wrist-wearable device, and methods of use thereof
US20240019938A1 (en) Systems for detecting gestures performed within activation-threshold distances of artificial-reality objects to cause operations at physical electronic devices, and methods of use thereof
EP3791253B1 (en) Electronic device and method for providing virtual input tool
KR20220131658A (ko) 기계 학습에 기반하여 호스트 장치를 제어하기 위한 모션 신호를 결정하는 웨어러블 디바이스
KR101759829B1 (ko) 센서를 이용하는 인터페이싱 방법, 웨어러블 디바이스 및 사용자 단말
EP3726363A1 (en) Mobile device and control method thereof
CN108646931B (zh) 一种终端控制方法及终端
KR20240065988A (ko) 외부 디바이스의 인공지능 모델을 이용하여 객체를 인식하는 증강 현실 디바이스 및 그 동작 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant