KR20220131658A - 기계 학습에 기반하여 호스트 장치를 제어하기 위한 모션 신호를 결정하는 웨어러블 디바이스 - Google Patents

기계 학습에 기반하여 호스트 장치를 제어하기 위한 모션 신호를 결정하는 웨어러블 디바이스 Download PDF

Info

Publication number
KR20220131658A
KR20220131658A KR1020210036580A KR20210036580A KR20220131658A KR 20220131658 A KR20220131658 A KR 20220131658A KR 1020210036580 A KR1020210036580 A KR 1020210036580A KR 20210036580 A KR20210036580 A KR 20210036580A KR 20220131658 A KR20220131658 A KR 20220131658A
Authority
KR
South Korea
Prior art keywords
motion
electronic device
mouse
motion information
host device
Prior art date
Application number
KR1020210036580A
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 KR1020210036580A priority Critical patent/KR20220131658A/ko
Publication of KR20220131658A publication Critical patent/KR20220131658A/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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • 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
    • 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/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03543Mice or pucks
    • 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
    • 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/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Selective Calling Equipment (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

호스트 장치와 페어링되어 호스트 장치의 컨텐츠를 제어하기 위한 전자 장치가 개시될 수 있다. 전자 장치는, 터치 센싱 모듈, 가속도 센서, 자이로 센서, 및 지자기 센서에 기반하여 전자 장치의 제1움직임 정보를 획득하기 위한 움직임 센싱 모듈, 및 제1움직임 정보의 연산을 통해 제2움직임 정보를 획득하고, 제스처 모드 하에서, 제2움직임 정보에 기반하여 전자 장치의 움직임에 대응되는 모션을 결정하고 결정된 모션을 나타내는 모션 신호를 호스트 장치로 출력하고, 마우스 모드 하에서, 터치 센싱 모듈로부터 획득되는 터치 정보 및 제2움직임 정보 중 적어도 하나에 기반하여 마우스 동작을 결정하고 마우스 동작을 나타내는 마우스 신호를 출력하기 위한 제어 신호 출력부를 포함할 수 있다.

Description

기계 학습에 기반하여 호스트 장치를 제어하기 위한 모션 신호를 결정하는 웨어러블 디바이스{WEARABLE DEVICE THAT DETERMINES MOTION SIGNAL FOR CONTROLLING HOST DEVICE BASED ON MACHINE LEARNING}
본 발명은 호스트 장치를 제어하기 위한 전자 장치에 관한 것으로, 보다 구체적으로는 터치 동작이나 삼차원 공간 상의 움직임에 기반하여 호스트 장치의 다양한 컨텐츠를 쉽고 직관적으로 제어하기 위한 전자 장치에 관한 것이다.
최근 증강 현실(Augmented Reality, AR), 가상 현실(Virtual Reality, VR), 혼합 현실(Mixed Reality, MR)과 같은 가상 현실에 기반한 컨텐츠 시장이 발전하고 있다. 또한, 가상 현실의 대중화에 따라 가상 컨텐츠를 생성하고 제어할 수 있는 인터페이스에 대한 관심이 높아지고 있다. 가상 컨텐츠는 가상의 3차원 공간에 재생되어 다루어지는 가상의 객체로서, 현재까지의 인터페이스 장치는 소비자의 요구를 충족시키는데 부족함이 있었으며 범용 인터페이스로도 적합하지 않았다.
종래의 VR 컨트롤러의 경우 기구가 크고 무거우며 고가일 뿐만 아니라, 다양한 기능들에 대한 학습이 필요하다. 또한, VR 컨트롤러는 특정 HMD(Head Mount Display)에 전용적으로 사용되므로 일반 범용 마우스처럼 언제 어디에서나 사용할 수 없는 문제점이 있다.
3차원 공간 상에서의 모션 트레킹(Motion Tracking)과 터치 센싱을 통해, 범용 마우스 동작과 컨텐츠를 제어하는 동작이 모두 수행 가능한 전자 장치가 제공될 수 있다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
호스트 장치와 페어링되어 상기 호스트 장치의 컨텐츠를 제어하기 위한 전자 장치는, 터치 센싱 모듈, 가속도 센서, 자이로 센서, 및 지자기 센서에 기반하여 상기 전자 장치의 제1움직임 정보를 획득하기 위한 움직임 센싱 모듈, 및 상기 제1움직임 정보의 연산을 통해 제2움직임 정보를 획득하고, 제스처 모드 하에서, 상기 제2움직임 정보에 기반하여 상기 전자 장치의 움직임에 대응되는 모션을 결정하고 상기 결정된 모션을 나타내는 모션 신호를 상기 호스트 장치로 출력하고, 마우스 모드 하에서, 상기 터치 센싱 모듈로부터 획득되는 터치 정보 및 상기 제2움직임 정보 중 적어도 하나에 기반하여 마우스 동작을 결정하고 상기 마우스 동작을 나타내는 마우스 신호를 출력하기 위한 제어 신호 출력부를 포함하고, 상기 제1움직임 정보는 상기 가속도 센서를 통해 획득되는 가속도 데이터와 상기 자이로 센서를 통해 획득되는 각속도 데이터 중 적어도 하나를 포함하고, 상기 움직임 센싱 모듈은 상기 제1움직임 정보를 내부 버스를 통해 상기 제어 신호 출력부로 전달하고, 상기 제2움직임 정보는, 각도 데이터, 거리 데이터, 속도 데이터, 및 방향 데이터 중 적어도 하나를 포함하고, 상기 마우스 신호는, 마우스 클릭, 마우스 스크롤, 마우스 무브, 또는 마우스 드래그를 포함하고, 상기 터치 센싱 모듈에 의해 감지되는 터치 동작에 의해 상기 마우스 모드와 상기 제스처 모드 사이의 전환이 수행될 수 있다. 제2움직임 정보는 기계 학습에 기반하여 사용자 모션을 결정하기 위한 모델이 입력될 수 있다.
착용이 편하며 직관적이며 조작 방법에 대한 학습이 필요 없는 전자 장치가 제공될 수 있다.
상기 전자 장치는 휴대가 간편하므로, 언제 어디서든 스마트폰, TV, 컴퓨터, 태블릿 PC, 홀로그램, HMD(Head Mount Display) 상의 다양한 컨텐츠를 쉽고 정밀하게 컨트롤 할 수 있다.
도1a는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(닫힌 상태)를 나타낸다.
도1b는 일 실시 예에 따라, 호스트 장치를 제어하기 위한 전자 장치(열린 상태)를 나타낸다.
도2a는 일 실시 예에 따라, 전자 장치 내의 링형 장치를 나타낸다.
도2b는 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 것을 나타낸다.
도3은 일 실시 예에 따라, 전자 장치를 포함하는 시스템을 나타낸다.
도4a는 일 실시 예에 따라, 마우스 모드 하에서, 전자 장치로 수행되는 마우스 동작들을 나타낸다.
도4b는 일 실시 예에 따라, 전자 장치의 정면 부분이 세 개의 터치 영역들로 구분된 것을 나타낸다.
도4c는 일 실시 예에 따라, 세 개의 영역들을 이용해 인식되는 마우스 동작들을 나타낸다.
도5는 일 실시 예에 따라, 사용자의 움직임 정보와 대응하는 모션을 결정하기 위한 결정 모델을 나타낸다.
도6은 일 실시 예에 따라, 전자 장치를 활용한 조이스틱을 나타낸다.
도7은 일 실시 예에 따라, 제스처 모드 하에서, 전자 장치로 호스트 장치를 제어하기 위한 모션들을 나타낸다.
도8은 일 실시 예에 따라, 전자 장치가 내장된 주사위를 나타낸다.
도9는 일 실시 예에 따라, 전자 장치가 연결된 지팡이를 나타낸다.
도10은 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 방법의 흐름도를 나타낸다.
도11은 일 실시 예에 따라, 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다.
도12는 일 실시 예에 따라, 전자 장치가 객체의 움직임을 마우스 모드 하에서의 마우스 무브 또는 제스처 모드 하에서의 무브 모션으로 결정하고, 움직인 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다.
도13은 일 실시 예에 따라, 호스트 장치가 무브 모션에 기반하여 컨텐츠를 줌-인하거나 줌-아웃하는 동작의 흐름도를 나타낸다.
도14는 일 실시 예에 따라, 전자 장치가 객체의 움직임을 탭 모션으로 결정하기 위한 방법의 흐름도를 나타낸다.
도15는 일 실시 예에 따라, 전자 장치가 객체의 움직임을 잡기 모션으로 결정하기 위한 방법의 흐름도를 나타낸다.
도16은 일 실시 예에 따라, 전자 장치가 객체의 움직임을 스크롤 모션으로 결정하기 위한 방법의 흐름도를 나타낸다.
도17은 일 실시 예에 따라 전자 장치가 객체의 움직임을 스와이프 모션으로 결정하기 위한 방법의 흐름도를 나타낸다.
도18은 일 실시 예에 따라, 전자 장치가 객체의 움직임을 로테이션 모션으로 결정하기 위한 방법의 흐름도를 나타낸다.
도19 내지 22는 일 실시 예에 따라, 전자 장치를 착용한채로 전자 장치에 의해 획득된 움직임 데이터가 재활 교정, 자세 교정, 운동 교정, 스포츠 교정 등을 위해 사용되는 것을 나타낸다.
아래에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자들(이하, 통상의 기술자들)이 본 발명을 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 몇몇 실시 예가 명확하고 상세하게 설명될 것이다.
또한, 명세서에서 사용되는 "부" 또는 "모듈" 이라는 용어는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소 또는 회로를 의미할 수 있다.
이하, "컨텐츠"는 게임, 음악, 영화, 이미지, 애니메이션, 캐릭터, 아이템, 물체 등과 같은 미디어 자체 또는 미디어 상에서 재생되는 객체를 포함할 수 있으나 이에 제한되지 않는다. “컨텐츠”는 호스트 장치에서 구동되는 운영 체제 또는 소프트웨어를 포함할 수 있다. 소프트웨어는 워드 프로세서, 파워포인트와 같은 문서 프로그램, 전문적인 작업을 수행하기 위한 이미지 처리 프로그램, 캐드 프로그램, 및 게임을 포함할 수 있다. "컨텐츠"는 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)를 수납하기 위한 크래들(Cradle) 장치(1400)를 포함할 수 있다. 사용자는 링형 장치(1200)를 크래들 장치(1400)에 수납하고 뚜껑을 닫을 수 있다.
링형 장치(1200)가 크래들 장치(1400)에 수납되고 크래들 장치(1400)의 뚜껑이 닫힌 상태에서, 링형 장치(1200)의 정면 부분(헤드 부분, 후술할 메인 모듈(1240)의 정면(또는, 일면))이 크래들 장치(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)으로 구분될 수 있다. 터치 센싱 모듈(3300)이 터치 영역(R1), 터치 영역(R2), 및 터치 영역(R3) 중 적어도 하나의 터치 동작을 감지함으로써 마우스 신호가 결정될 수 있다.
도4c를 참조하면, 사용자가 터치 영역(R1)만을 터치하거나 터치 영역(R1)과 터치 영역(R2)를 동시에 터치하면 해당 동작은 마우스 좌클릭(Mouse Left Click)으로 결정될 수 있다. 사용자가 터치 영역(R3)만을 터치하거나 터치 영역(R3)과 터치 영역(R2)을 동시에 터치하면 해당 동작은 마우스 우클릭(Mouse Right Click)으로 결정될 수 있다. 사용자가 터치 영역(R2)만을 터치하거나 터치 영역(R2), 터치 영역(R1), 및 터치 영역(R3)을 동시에 터치하면 해당 동작은 마우스 모드와 제스처 모드 사이의 전환(Mode Change)으로 결정될 수 있다. 사용자가 터치 영역(R1), 터치 영역(R2), 및 터치 영역(R3)를 순차적 및 연속적으로 터치하면 해당 동작은 마우스 스크롤 업(Mouse Scroll Up)으로 결정될 수 있다. 사용자가 터치 영역(R3), 터치 영역(R2), 및 터치 영역(R1)를 순차적 및 연속적으로 터치하면 해당 동작은 마우스 스크롤 다운(Mouse 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)의 메모리(미도시)에 결정 모델이 저장될 수 있다.
도6은 일 실시 예에 따라, 전자 장치(1000)가 조이스틱처럼 사용되는 것을 나타낸다. 도6을 참조하면, 전자 장치(1000)는 받침대 위에 올려져서 조이스틱처럼 동작할 수 있다. 전자 장치(1000)가 받침대 위에서 회전함으로써 마우스 무브 동작이 수행되고 마우스 포인터를 제어할 수 있다. 사용자는 전자 장치(1000)의 메인 모듈(1240)의 정면 부분을 터치함으로써 각종 마우스 동작을 수행할 수 있다. 마우스 동작은 도4a 내지 4c를 참조하여 상술한 바와 같다.
도7은 일 실시 예에 따라, 제스처 모드 하에서, 전자 장치(3000)로 호스트 장치를 제어하기 위한 왼쪽 무브(Left Move) 모션, 오른쪽 무브(Right Move) 모션, 위쪽 무브(Up Move) 모션, 아래쪽 무브(Down Move) 모션, 로테이션 (Clockwise Rotation, Counter Clockwise Rotation) 모션, 포워드/백 방향 무브(Forward/Back Move) 모션을 나타낸다. 왼쪽 무브 모션과 오른쪽 무브 모션은 x축 +/- 방향의 움직임으로부터 결정될 수 있다. 위쪽 무브 모션과 아래쪽 무브 모션은 z축 +/- 방향의 움직임으로부터 결정될 수 있다. 포워드 무브 모션과 백 무브 모션은 y축 +/- 방향의 움직임으로부터 결정될 수 있다. 일 실시 예에 따라, 사용자가 링형 장치(1200)를 손가락에 착용한 상태로 제스처 모드를 사용할 수 있으나 이에 제한되지 않는다.
이러한 실시 예에서, 사용자는 전자 장치(3000)를 착용한 채로 3차원 공간에서 왼쪽 무브 또는 오른쪽 무브 모션을 취함으로써 호스트 장치에서 실행 중인 워드 문서의 페이지를 넘길 수 있다. 제스처 모드 하에서, 전자 장치(3000)가 호스트 장치를 제어하기 위한 모션은 상술된 실시 예에 제한되지 않는다. 예를 들어, 전자 장치(3000)가 지원하는 모션은 탭(Tap), 잡기(Grasp), 스크롤(Scroll), 스와이프(Swipe) 등을 더 포함할 수 있다. 또한, 제스처 모드 하에서의 모션들(사용자 정의 모션을 포함)은 상술한 기계 학습 기반의 결정 모델을 통해 사용자에 의해 추가되고 사용될 수 있다.
다시 도3을 참조하면, 프로세서(3620)는 모션 신호 또는 마우스 신호를 나타내는 제어 신호를 생성할 수 있다. 예를 들어, 프로세서(3620)는 사용자의 움직임이 왼쪽 무브(Left Move) 모션으로 결정되면 왼쪽 무브 모션을 나타내는 제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)에 대한 충전이 수행될 수 있다. 크래들 장치(1400)에는 메인 모듈(1240)를 충전시키기 위한 전원 장치가 탑재될 수 있다.
도8은 일 실시 예에 따라, 전자 장치가 내장된 주사위를 나타낸다.
주사위는 도2 내지 3을 참조하여 상술한 전자 장치(3000)를 내장한 것으로서, 사용자는 주사위를 이용하여 AR 보드 게임 등을 즐길 수 있다.
주사위는 가속도 센서, 자이로 센서, 및 지자기 센서에 기반하여 주사위의 제1움직임 정보를 획득하기 위한 센싱 모듈, 주사위의 제1움직임 정보의 연산을 통해 제2움직임 정보를 생성하고, 제2움직임 정보에 기반하여 주사위의 움직임에 대응되는 제어 신호를 호스트 장치로 출력하기 위한 제어 신호 출력부, 센싱 모듈 및 제어 신호 출력부 중 적어도 하나의 동작을 위해 필요한 전원을 공급하는 배터리를 포함할 수 있다.
일 실시 예에 따라, 제어 신호 출력부는, 제1움직임 정보를 연산함으로써 제2움직임 정보를 획득하고, 제2움직임 정보 중 적어도 하나에 기반하여 주사위의 움직임과 대응하는 제어 신호를 생성하기 위한 프로세서와 블루투스 통신에 기반하여 제어 신호를 호스트 장치로 전달하기 위한 통신부를 포함할 수 있다. 제어 신호 출력부는, 가속도 데이터, 각속도 데이터, 속도 데이터, 거리 데이터, 및 방향 데이터 중 적어도 하나에 기반하여 주사위가 나타내는 숫자를 결정하고, 숫자 정보를 포함하는 제어 신호를 출력할 수 있다. 주사위로부터 출력되는 제어 신호는 주사위의 움직임에 따른 로테이션 모션 및/또는 로테이션 모션에 따라 결정되는 주사위의 숫자 정보(또는, 숫자 변화 정보)를 포함할 수 있다. 주사위의 숫자 변화는 호스트 장치에 의해 3차원 공간 상에 표현될 수 있다.
주사위는 전자 장치(3000)를 내장하기 위한 중공을 포함할 수 있다. 주사위는 센싱 모듈, 제어 신호 출력부, 및 배터리를 내장하기 위한 중공을 더 포함함으로써, 전자 장치(3000)를 내장할 수 있다.
주사위는 배터리의 충전을 위한 충전 단자를 더 포함할 수 있다. 예를 들어, 주사위의 표면에 충전 전류를 수신하기 위한 충전 단자가 위치할 수 있다. 따라서, 주사위에 내장된 전자 장치(3000)의 충전을 위해 전자 장치(3000)를 주사위로부터 꺼낼 필요 없이 주사위에 충전 케이블을 연결하는 것만으로 전자 장치(3000)의 충전이 가능하다.
도9는 일 실시 예에 따라, 전자 장치가 연결된 지팡이를 나타낸다.
지팡이는 도 3을 참조하여 상술한 전자 장치(3000)를 연결한 것으로서, 사용자는 지팡이를 이용하여 펜싱 게임, 칼싸움 게임 등 지팡이를 활용한 다양한 게임을 즐길 수 있다. 다른 실시 예에 따라, 지팡이에 도 3을 참조하여 상술한 전자 장치(3000)가 내장될 수도 있다.
또는, 전자 장치(3000)는 조이스틱과 같은 컨텐츠 컨트롤러에도 내장될 수 있다.
이하, 도10 내지 18을 참조하여, 전자 장치를 사용하여 컨텐츠를 제어하는 방법을 설명한다. 도10 내지 18을 참조하여 설명하는 방법은 도3의 전자 장치(3000) 및 호스트 장치 중 적어도 하나에서 수행될 수 있다. 따라서, 이하 생략된 내용이라 하더라도 도3의 전자 장치(3000) 또는 호스트 장치에 관하여 기술된 내용은 도10 내지 18에도 적용될 수 있다. 또한, 도10 내지 18의 방법에 대한 내용 역시 도3의 전자 장치(3000), 또는 호스트 장치에 적용될 수 있다.
도10은 일 실시 예에 따라, 전자 장치를 사용하여 컨텐츠를 제어하는 방법의 흐름도를 나타낸다.
단계 S200에서, 전자 장치는 센싱 모듈에 기반하여 객체의 제1움직임 정보를 획득할 수 있다. 객체는 전자 장치 자체를 의미할 수 있다. 센싱 모듈은 가속도 센서, 자이로 센서, 및 지자기 센서를 포함할 수 있다. 제1움직임 정보는, 객체의 움직임에 대한 가속도 데이터와 각속도 데이터를 포함할 수 있다. 예를 들어, 제1움직임 정보는, 가속도 센서를 통해 획득되는 가속도 데이터와 자이로 센서를 통해 획득되는 각속도 데이터가 센서 융합부에 의해 최적화된 데이터일 수 있다.
단계 S400에서, 전자 장치는 단계 S200에서 획득된 제1움직임 정보를 연산함으로써 제2움직임 정보를 생성할 수 있다. 제2움직임 정보는 각도 데이터, 속도 데이터, 거리 데이터, 및 방향 데이터 중 적어도 하나를 포함할 수 있다. 전자 장치는 객체가 움직이는 동안, 제2움직임 정보를 실시간으로 계산하고 획득할 수 있다. 예를 들어, 전자 장치는 기준 시간(예를 들어, 5ms) 마다 제1움직임 정보에 대한 연산을 수행함으로써 제2움직임 정보를 획득할 수 있다. 기준 시간은 30ms 이하일 수 있으나 이에 제한되지 않는다. 전자 장치는 검지의 중간 마디에 착용됨으로써, 검지의 첫 마디와 중간 마디 사이의 관절을 축으로 하여, 검지의 중간 마디가 움직인 각도와 속도를 결정할 수 있다. 또한, 전자 장치는 검지의 끝 마디에 착용됨으로써, 검지의 첫 마디와 중간 마디 사이의 관절을 축으로 하여 검지의 끝 마디가 움직인 각도와 속도를 결정할 수 있다.
단계 S500에서, 전자 장치는 현재 모드가 마우스 모드인지 제스처 모드인지 판단할 수 있다. 전자 장치는 현재 모드가 마우스 모드라면(Yes), 단계 S520에서 터치 정보를 획득하고, 단계 S540에서 제2움직임 정보와 터치 정보 중 적어도 하나에 기반하여 마우스 신호를 결정할 수 있다.
전자 장치는 현재 모드가 제스처 모드라면(No), 단계 S600에서, 전자 장치는 획득된 제2움직임 정보에 기반하여, 객체의 움직임에 대응하는 모션 신호를 결정할 수 있다. 일 실시 예에 따라, 전자 장치는 객체의 움직임에 대응하는 모션 신호를 결정할 수 있다. 일 실시 예에 따라, 전자 장치는 검지 손가락이 움직인 속도, 각도, 거리 등에 기반하여 모션을 결정할 수 있다. 모션들은 무브(x, y, z축 방향을 포함), 탭, 잡기, 스크롤, 스와이프, 제스처, 및 로테이션 모션 등을 포함할 수 있으나 이에 제한되지 않는다. 모션들은 사용자에 의해 정의되는 사용자 정의 모션을 포함할 수 있다. 전자 장치는 객체의 움직임이 제조사에 의해 기 정의된 모션들이나 사용자에 의해 추가된 사용자 정의 모션 중 어느 것에도 해당되지 않거나 무의미한 움직임으로 판단되는 경우, 모션 신호를 생성하지 않고 예외 처리할 수 있다.
단계 S800에서, 전자 장치는 결정된 모션 신호 또는 마우스 신호를 나타내는 제어 신호를 무선 통신 인터페이스를 통해 호스트 장치로 전달할 수 있다. 제어 신호는, 호스트 장치를 제어하기 위한 인터럽트 신호일 수 있다. 일 실시 예에 따라, 전자 장치는 객체의 위치가 컨텐츠가 재생되는 위치로부터 기준 거리 내에 있는지 판단하고, 판단 결과 기준 거리 내에 있을 때에만 제어 신호를 호스트 장치로 전달할 수 있다. 사용자가 컨텐츠로부터 멀리 떨어져 있는 경우, 사용자의 움직임이 컨텐츠를 제어하기 위한 움직임으로 보기 어렵기 때문이다.
단계 S900에서, 호스트 장치는 수신된 제어 신호에 기반하여, 컨텐츠를 제어할 수 있다. 예를 들어, 호스트 장치는, 수신된 제어 신호가 무브 모션인 경우, 게임 상의 야구공을 객체의 움직임에 비례하는 방향, 속도, 거리로 움직일 수 있다. 호스트 장치는, 수신된 제어 신호가 탭 모션인 경우, 게임 상의 아이템을 선택할 수 있다. 호스트 장치는, 수신된 제어 신호가 로테이션 모션인 경우, 게임 상의 원판을 회전시킬 수 있다. 호스트 장치는, 수신된 제어 신호가 무브 모션인 경우, 객체와 컨텐츠 사이의 거리에 따라, 컨텐츠를 줌-인 또는 줌-아웃할 수 있다. 호스트 장치는, 수신된 제어 신호가 왼쪽 무브 모션인 경우, 실행 중인 워드 문서 또는 프리젠테이션 문서의 페이지를 앞으로 넘길 수 있다. 호스트 장치는, 수신된 제어 신호가 오른쪽 무브 모션인 경우, 실행 중인 워드 문서 또는 프리젠테이션 문서의 페이지를 뒤로 넘길 수 있다. 호스트 장치는, 수신된 제어 신호가 마우스 무브인 경우, 마우스 포인터를 움직일 수 있다. 호스트 장치는, 수신된 제어 신호가 마우스 클릭인 경우, 현재 마우스 포지션에서 클릭 동작을 수행할 수 있다. 호스트 장치는, 수신된 제어 신호가 마우스 스크롤 업인 경우, 마우스 스크롤 업에 대응하는 동작을 수행할 수 있다.
도11은 일 실시 예에 따라, 전자 장치가 객체의 움직임에 대한 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다.
단계 S420에서, 전자 장치는 가속도 데이터로부터 중력 가속도 성분을 제거하여 선형 가속도 데이터를 생성할 수 있다. 가속도 데이터에서 중력 가속도에 의한 영향을 제거함으로써, 객체의 움직임에 대한 가속도 데이터가 획득될 수 있다.
단계 S440에서, 전자 장치는 선형 가속도 데이터에 적분 연산을 수행하여 속도 데이터를 획득할 수 있다.
단계 S460에서, 전자 장치는 속도 데이터에 적분 연산을 수행하여 거리 데이터를 획득할 수 있다.
도12는 일 실시 예에 따라, 객체의 움직임을 마우스 모드 하에서의 마우스 무브 또는 제스처 모드 하에서의 무브 모션으로 결정하고, 움직인 거리 데이터를 획득하기 위한 방법의 흐름도를 나타낸다. 도12는 도10의 단계 S540 또는 S600의 하위 단계를 나타낼 수 있다.
단계 S612에서, 전자 장치는 객체의 초기 움직임에 대한 각도와 속도를 결정할 수 있다. 전자 장치는 객체의 움직임이 시작된 후 초기 움직임(예를 들어, 움직임이 시작된 후 기준 시간 이내)에 대한 각도 데이터와 속도 데이터를 획득할 수 있다.
단계 S614에서, 전자 장치는 단계 S612에서 획득된 각도 데이터와 속도 데이터가 기준 조건을 만족하는지 판단할 수 있다. 예를 들어, 속도가 기준 값 이상이고 각도의 변화 폭이 20도 이내인 경우 전자 장치는 객체의 움직임을 직진 방향의 움직임으로 결정할 수 있다. 전자 장치는 각도 데이터와 속도 데이터가 기준 조건을 만족하지 않으면(No), 객체의 움직임이 다른 모션에 해당하는지 판단하거나 어떠한 모션에도 해당하지 않는 것으로 판단되는 경우 예외 처리할 수 있다(S618).
전자 장치는 각도 데이터와 속도 데이터가 기준 조건을 만족하면(Yes), 움직임을 무브 모션 또는 마우스 무브로 결정하고, 객체의 움직임에 대한 거리 데이터를 획득(S616)할 수 있다. 예를 들어, 전자 장치는 움직이고자 하는 방향으로 전자 장치가 기 설정된 속도 이상으로 움직이는 시점을 움직임에 대한 시작점으로 결정할 수 있다. 객체의 움직임에 대한 거리 데이터는 도11을 참조하여 상술한 방법으로 결정될 수 있다.
일 실시 예에 따라, 전자 장치는 거리 데이터 외에 위치 데이터(예를 들어, 객체의 3차원 공간 좌표)와 방향 데이터를 더 획득할 수 있다.
전자 장치는 임의의 시점에서의 객체의 위치 또는 임의의 공간 상의 위치를 기준점으로 하였을 때, 객체가 움직인 거리 데이터에 기반하여 현재의 객체의 위치 데이터를 획득할 수 있다. 전자 장치는 객체의 움직임 단위마다 움직인 거리를 결정하고, 결정된 거리 데이터를 메모리에 저장할 수 있다. 전자 장치는 메모리로부터 움직임들에 대한 거리 데이터를 읽어오고, 읽어온 거리 데이터를 합산하여 현재 객체의 위치 데이터를 결정할 수 있다.
예를 들어, 전자 장치는 임의의 이전 시점에서의 객체의 위치 데이터가 (0, 0, 0)이고 무브 모션이 3번 연속하여 발생된 경우, 제1무브 모션의 제1거리 데이터가 (10, -20, 30), 제2무브 모션의 제2거리 데이터가 (-10, -30, -10), 및 제3무브 모션의 제3거리 데이터가 (20, 100, 100)인 경우, 현재 객체의 위치 데이터를 (20, 50, 120)으로 결정할 수 있다. 예를 들어, 제1무브 모션이 한 번 발생하고, 객체가 사람이 위치를 옮김에 따라 단순 이동되고 다시 다른 무브 모션이 한 번 더 발생한 경우, 제1무브 모션의 제1거리 데이터가 (5, 30, 20), 단순 이동에 대한 제2거리 데이터가 (500, 500, 0), 제2무브 모션의 제2거리 데이터가 (10, 30, 30)인 경우, 현재 객체의 위치 데이터를 (515, 560, 50)으로 결정할 수 있다.
전자 장치는 현재의 거리 데이터와 이전 거리 데이터의 비교에 기반하여 객체가 움직이고 있는 방향 데이터를 획득할 수 있다. 이전 거리 데이터란, 직전에 획득된 거리 데이터를 의미할 수 있다. 예를 들어, 5ms 마다 거리 데이터가 연산되는 경우, 시점 t의 거리 데이터와 시점 t-5ms에 획득된 거리 데이터에 기반하여 x축 방향으로의 증감 여부, y축 방향으로의 증감 여부, 및 z축 방향으로의 증감 여부를 결정할 수 있다. 예를 들어, 현재 거리 데이터의 x축 방향 값이 +50, y축 방향 값이 +10, z축 방향 값이 -5 이고 이전 거리 데이터의 x축 방향 값이 +60, y축 방향 값이 +15, z축 방향 값이 -10이라면, 전자 장치(3000)는 현재의 움직임 방향을 x축 방향으로는 증가, y축 방향으로 증가, z축 방향으로 감소로 결정할 수 있다.
도13은 일 실시 예에 따라, 호스트 장치가 무브 모션에 기반하여 컨텐츠를 줌-인하거나 줌-아웃하는 동작의 흐름도를 나타낸다. 도14의 흐름도는 도10의 단계 S900의 하위 단계를 나타낼 수 있다.
단계 S920에서, 호스트 장치는 전자 장치로부터 수신된 제어 신호가 무브 모션인지 판단할 수 있다. 무브 모션은 도7을 참조하여 상술한 포워드 방향 또는 백 방향의 무브 모션일 수 있다. 수신된 제어 신호가 무브 신호가 아니면(No), 호스트 장치는 수신된 제어 신호에 대응하는 다른 동작을 수행할 수 있다(S930).
수신된 제어 신호가 무브 신호이면(Yes), 단계 S940에서, 컨텐츠와 객체 사이의 거리가 가까워지는지 여부를 판단할 수 있다. 호스트 장치의 디스플레이 상에 컨텐츠가 재생되고 있다면 컨텐츠의 위치는 호스트 장치 자체의 위치와 동일하고, 컨텐츠가 호스트 장치에 의해 재생되는 가상 현실 컨텐츠라면 컨텐츠 위치는 호스트 장치의 위치와 동일하지 않을 수 있다.
호스트 장치는 객체의 움직임 거리로부터 결정되는 객체의 위치와 컨텐츠의 위치 사이의 거리가 가까워지고 있는 것으로 판단되면(Yes) 컨텐츠를 줌-인할 수 있다(S950). 호스트 장치는 객체의 위치와 호스트 장치의 위치 사이의 거리가 멀어지고 있는 것으로 판단되면(No) 컨텐츠를 줌-아웃할 수 있다(S960). 다만, 도14의 흐름도는 호스트 장치가 무브 모션에 기반하여 줌-인/줌-아웃 동작을 수행하기 위한 하나의 실시 예일뿐이며, 줌-인/줌-아웃 동작은 다른 무브 모션으로 정의될 수 있다. 예를 들어, 컨텐츠가 객체 사이의 거리가 가까우면 줌-아웃을 수행하고, 거리가 멀어질수록 줌-인을 수행할 수도 있다. 또는, 객체가 우측(또는, 좌측)으로 이동하면 줌-인을 수행하고 객체가 좌측(또는, 우측)으로 이동하면 줌-아웃을 수행할 수 있다. 또는, 전자 장치에서 컨텐츠와 객체 사이의 거리를 판단하고, 판단 결과에 따라 제어 신호를 무브 신호가 아닌 줌-인/줌-아웃 신호로서 호스트 장치로 출력할 수도 있다. 이러한 경우, 컨텐츠와 객체 사이의 거리의 판단 및 줌-인/줌-아웃 신호의 전달 동작은 각각 도10의 단계 S600와 단계 S800에서 수행될 수 있다.
이하, 도14 내지 18은 일 실시 예에 따라, 전자 장치가 제스처 모드 하에서, 객체의 움직임 정보로부터 호스트 장치를 제어하기 위한 특정 모션 신호를 결정하기 위한 방법의 흐름도를 나타낸다.
도14는 일 실시 예에 따라, 전자 장치가 객체의 움직임을 탭(또는, 클릭(Click)) 모션으로 결정하기 위한 방법의 흐름도를 나타낸다. 도14의 흐름도는 도10의 단계 S600의 하위 단계를 나타낼 수 있다.
단계 S624에서, 전자 장치는 움직임에 대한 각도 데이터와 속도 데이터가 기준 조건을 만족하는지 여부를 판단할 수 있다. 전자 장치는 각도가 제1기준 범위 내에 속하고, 속도가 제2기준 범위 내에 속하는지 판단할 수 있다.
각도와 속도가 기준 조건을 만족하는 것으로 판단되면(Yes), 단계 S626에서, 전자 장치는 객체의 움직임을 탭 모션으로 결정할 수 있다. 그렇지 않으면(No), 단계 S628에서 전자 장치는 객체의 움직임이 다른 모션에 해당하는지 판단하거나 어떠한 모션에도 해당하지 않는 것으로 판단되는 경우 예외 처리할 수 있다.
도15는 일 실시 예에 따라 전자 장치가 객체의 움직임을 잡기 모션으로 결정하기 위한 방법의 흐름도를 나타낸다. 도16의 흐름도는 도10의 단계 S600의 하위 단계를 나타낼 수 있다.
단계 S634에서, 전자 장치는 각도와 속도가 기준 조건을 만족하는지 여부와 움직임에 잔향(Reverberation)이 없는지 여부를 판단할 수 있다. 예를 들어, 전자 장치는 각도가 제1기준 범위 내에 속하고, 속도가 제2기준 범위 이내인지 판단할 수 있다. 이와 함께, 전자 장치는 객체의 움직임에 대한 잔향 여부를 판단할 수 있다. 잔향이란, 사용자가 움직임을 종료하였음에도 객체의 특성 또는 움직임 관성에 따라 사용자의 의도와 상관없이 발생되는 객체(예를 들어, 손가락)의 움직임(또는, 떨림)을 의미한다. 예를 들어, 잔향은 가속도 센서의 관성에 의한 나머지 신호를 의미할 수 있다. 잡기 모션의 경우, 탭 모션과 달리, 객체(예를 들어, 검지 손가락)이 다른 객체(예를 들어, 엄지 손가락)과 접촉 또는 결합됨으로써 움직임이 종료되어 잔향이 발생되지 않으므로 잔향의 유무가 탭 모션과 잡기 모션을 구별하기 위한 기준이 될 수 있다.
각도와 속도가 기준 조건을 만족하고 잔향이 없는 것으로 판단(Yes)되면, 단계 S636에서, 전자 장치는 객체의 움직임을 잡기 모션으로 결정할 수 있다. 그렇지 않으면(No), 단계 S638에서 전자 장치는 객체의 움직임이 다른 모션에 해당하는지 판단하거나 어떠한 모션에도 해당하지 않는 것으로 판단되는 경우 예외 처리할 수 있다.
도16은 일 실시 예에 따라, 전자 장치가 객체의 움직임을 스크롤 모션으로 결정하기 위한 방법의 흐름도를 나타낸다. 도16의 흐름도는 도10의 단계 S600의 하위 단계를 나타낼 수 있다.
단계 S644에서, 전자 장치는 각도, 속도, 및 거리가 기준 조건을 만족하는지 여부를 판단할 수 있다. 예를 들어, 전자 장치는 각도가 제1기준 범위 내에 속하고, 속도가 제2기준 범위 내에 속하고, 거리가 제3기준 범위 내에 속하는지 판단할 수 있다. 예를 들어, 전자 장치는 x, y, z 축 중 어느 하나의 방향에 대한 각속도가 기준 값 이상이고, x, y, z 축 중 적어도 하나의 방향에 대한 각도가 기준 범위 이내인지 판단할 수 있다. 이와 함께, 전자 장치는 거리(예를 들어, 검지 손가락의 중간 마디 또는 끝 마디가 움직인 거리)가 임계 값보다 큰지 여부를 판단할 수 있다. 스크롤 모션은 탭 모션에 비해 손가락의 움직임이 큼을 고려하여, 거리가 탭 모션과 스크롤 모션을 구별하기 위한 기준이 될 수 있다.
각도, 속도, 및 거리가 기준 조건을 만족하면(Yes), 단계 S646에서, 전자 장치는 객체의 움직임을 스크롤 모션으로 결정할 수 있다. 그렇지 않으면(No), 단계 S648에서 전자 장치는 객체의 움직임이 다른 모션에 해당하는지 판단하거나 어떠한 모션에도 해당하지 않는 것으로 판단되는 경우 예외 처리할 수 있다.
도17은 일 실시 예에 따라, 전자 장치가 객체의 움직임을 스와이프 모션으로 결정하기 위한 방법의 흐름도를 나타낸다. 도17의 흐름도는 도10의 단계 S600의 하위 단계를 나타낼 수 있다.
단계 S654에서, 전자 장치는 속도 및 거리가 기준 조건을 만족하는지 여부를 판단할 수 있다. 예를 들어, 전자 장치는 속도가 제1기준 범위 내에 속하고, 거리가 제2기준 범위 내에 속하는지 판단할 수 있다. 스와이프 모션은 무브 모션에 비해 움직임이 큼을 고려할 때, 속도와 거리가 모두 임계 값보다 큰지 여부가 스와이프 모션과 무브 모션을 구별하기 위한 기준이 될 수 있다.
모션에 대한 속도 및 거리가 기준 조건을 만족하면(Yes), 단계 S656에서, 전자 장치는 객체의 움직임을 스와이프 모션으로 결정할 수 있다. 그렇지 않으면(No), 단계 S658에서 전자 장치는 객체의 움직임이 다른 모션에 해당하는지 판단하거나 어떠한 모션에도 해당하지 않는 것으로 판단되는 경우 예외 처리할 수 있다.
도18은 일 실시 예에 따라, 전자 장치가 객체의 움직임을 로테이션 모션으로 결정하기 위한 방법의 흐름도를 나타낸다. 도19의 흐름도는 도10의 단계 S600의 하위 단계를 나타낼 수 있다.
단계 S664에서, 전자 장치는 각도가 기준 조건을 만족하는지 여부를 판단할 수 있다. 예를 들어, 전자 장치는, x축, y축, z축 방향 각각에 대한 움직인 각도들이 기준 조건을 모두 만족하면(Yes), 단계 S666에서, 전자 장치는 객체의 움직임을 로테이션 모션으로 결정할 수 있다. 그렇지 않으면(No), 단계 S668에서 전자 장치는 객체의 움직임이 다른 모션에 해당하는지 판단하거나 어떠한 모션에도 해당하지 않는 것으로 판단되는 경우 예외 처리할 수 있다.
한편, 상술한 컨텐츠 제어 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
위 설명들은 본 발명을 구현하기 위한 예시적인 구성들 및 동작들을 제공하도록 의도된다. 본 발명의 기술 사상은 위에서 설명된 실시 예들뿐만 아니라, 위 실시 예들을 단순하게 변경하거나 수정하여 얻어질 수 있는 구현들도 포함할 것이다. 또한, 본 발명의 기술 사상은 위에서 설명된 실시 예들을 앞으로 용이하게 변경하거나 수정하여 달성될 수 있는 구현들도 포함할 것이다.

Claims (1)

  1. 호스트 장치와 페어링되어 상기 호스트 장치의 컨텐츠를 제어하기 위한 전자 장치에 있어서,
    터치 센싱 모듈;
    가속도 센서, 자이로 센서, 및 지자기 센서에 기반하여 상기 전자 장치의 제1움직임 정보를 획득하기 위한 움직임 센싱 모듈; 및
    상기 제1움직임 정보의 연산을 통해 제2움직임 정보를 획득하고, 제스처 모드 하에서, 상기 제2움직임 정보에 기반하여 상기 전자 장치의 움직임에 대응되는 모션을 결정하고 상기 결정된 모션을 나타내는 모션 신호를 상기 호스트 장치로 출력하고, 마우스 모드 하에서, 상기 터치 센싱 모듈로부터 획득되는 터치 정보 및 상기 제2움직임 정보 중 적어도 하나에 기반하여 마우스 동작을 결정하고 상기 마우스 동작을 나타내는 마우스 신호를 출력하기 위한 제어 신호 출력부를 포함하고,
    상기 제1움직임 정보는 상기 가속도 센서를 통해 획득되는 가속도 데이터와 상기 자이로 센서를 통해 획득되는 각속도 데이터 중 적어도 하나를 포함하고,
    상기 움직임 센싱 모듈은 상기 제1움직임 정보를 내부 버스를 통해 상기 제어 신호 출력부로 전달하고,
    상기 제2움직임 정보는, 각도 데이터, 거리 데이터, 속도 데이터, 및 방향 데이터 중 적어도 하나를 포함하고,
    상기 마우스 신호는, 마우스 클릭, 마우스 스크롤, 마우스 무브, 또는 마우스 드래그를 포함하고,
    상기 터치 센싱 모듈에 의해 감지되는 터치 동작에 의해 상기 마우스 모드와 상기 제스처 모드 사이의 전환이 수행되고,
    상기 제2움직임 정보는 기계 학습에 기반한 움직임 결정 모델로 입력되는 전자 장치.
KR1020210036580A 2021-03-22 2021-03-22 기계 학습에 기반하여 호스트 장치를 제어하기 위한 모션 신호를 결정하는 웨어러블 디바이스 KR20220131658A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210036580A KR20220131658A (ko) 2021-03-22 2021-03-22 기계 학습에 기반하여 호스트 장치를 제어하기 위한 모션 신호를 결정하는 웨어러블 디바이스

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210036580A KR20220131658A (ko) 2021-03-22 2021-03-22 기계 학습에 기반하여 호스트 장치를 제어하기 위한 모션 신호를 결정하는 웨어러블 디바이스

Publications (1)

Publication Number Publication Date
KR20220131658A true KR20220131658A (ko) 2022-09-29

Family

ID=83461977

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210036580A KR20220131658A (ko) 2021-03-22 2021-03-22 기계 학습에 기반하여 호스트 장치를 제어하기 위한 모션 신호를 결정하는 웨어러블 디바이스

Country Status (1)

Country Link
KR (1) KR20220131658A (ko)

Similar Documents

Publication Publication Date Title
KR102207510B1 (ko) 모션 신호와 마우스 신호를 사용하여 호스트 장치를 제어하기 위한 전자 장치
US11983326B2 (en) Hand gesture input for wearable system
US20220129060A1 (en) Three-dimensional object tracking to augment display area
US10509487B2 (en) Combining gyromouse input and touch input for navigation in an augmented and/or virtual reality environment
US10565725B2 (en) Method and device for displaying virtual object
KR101546654B1 (ko) 웨어러블 증강현실 환경에서 증강현실 서비스 제공 방법 및 장치
US20190369752A1 (en) Styluses, head-mounted display systems, and related methods
KR101576979B1 (ko) 자기장 센서를 이용하여 사용자 입력을 판단하는 전기 장치
EP3414644B1 (en) Control system for navigation in virtual reality environment
TWI677814B (zh) 可穿戴式手錶及其顯示方法
CN106471450A (zh) 信息处理设备、信息处理方法和程序
JP6197702B2 (ja) 入力方法,プログラム及び入力装置
KR20160008890A (ko) 신체를 이용하여 터치 입력을 제공하는 장치 및 방법
WO2021193062A1 (ja) 情報処理装置、情報処理方法及びプログラム
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
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
KR20230030472A (ko) 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법
KR20220131658A (ko) 기계 학습에 기반하여 호스트 장치를 제어하기 위한 모션 신호를 결정하는 웨어러블 디바이스
KR102397236B1 (ko) 사용자의 반복 동작에 기반한 사용자 정의 제스처 프로파일 생성 및 제스처 인식 방법
US10936147B2 (en) Tablet computing device with display dock
KR102322968B1 (ko) 사용자의 손동작에 따른 명령 입력 장치 및 이를 이용한 명령 입력 방법
US20240161438A1 (en) Information processing apparatus, information processing method, and information processing system
Lee New interface design using accelerator sensor for smart phone
KR20170051135A (ko) 센서를 이용하는 인터페이싱 방법, 웨어러블 디바이스 및 사용자 단말
WO2023034631A1 (en) Systems for interpreting a digit-to-digit gesture by a user differently based on roll values of a wrist- wearable device worn by the user, and methods of use thereof