KR20200076588A - 헤드 마운트 장치 입력을 위한 시스템 및 방법 - Google Patents

헤드 마운트 장치 입력을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20200076588A
KR20200076588A KR1020190152964A KR20190152964A KR20200076588A KR 20200076588 A KR20200076588 A KR 20200076588A KR 1020190152964 A KR1020190152964 A KR 1020190152964A KR 20190152964 A KR20190152964 A KR 20190152964A KR 20200076588 A KR20200076588 A KR 20200076588A
Authority
KR
South Korea
Prior art keywords
motion
hmd
hmd device
event
user
Prior art date
Application number
KR1020190152964A
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 삼성전자주식회사
Publication of KR20200076588A publication Critical patent/KR20200076588A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

일 구현예에 따르면, 헤드 마운트 디스플레이(HMD) 장치는 모션 감지기, 디스플레이, 및 모션 감지기와 디스플레이에 커플링되는 프로세서를 포함한다. 메모리는 프로세서에 커플링되며, 메모리는 프로세서로 하여금 모션에 대한 가용 범위를 정의하고, 가용 범위에 대한 그래픽 사용자 인터페이스를 상기 디스플레이에 출력하고, 상기 가용 범위 내에서, 상기 모션 감지기에 의해 감지된 HMD 장치의 모션에 기초하는 입력을 수신하고, 상기 이 입력에 응답하여 HMD 장치 또는 외부 장치 중 하나 제어하게 하는 실행 가능한 인스트럭션들이 저장될 수 있다.

Description

헤드 마운트 장치 입력을 위한 시스템 및 방법{SYSTEM AND METHOD FOR HEAD MOUNTED DEVICE INPUT}
본 발명은 일반적으로 모션을 감지하는 전자 장치에 관한 것이며, 특히 모션을 감지하도록 구성된 헤드 마운트 장치(head mounted device)에 관한 것이다.
헤드 마운트 디스플레이(HMD) 장치는 다양한 정보 또는 컨텐츠를 사용자에게 제공하기 위해 사용될 수 있으며, 현실 세계 이미지와 가상 이미지 모두로 이루어진 다양한 조합들을 제공할 수 있다. 일반적으로 가상 현실(virtual reality, VR)은 사용자에게, 흔히 일 환경에서 제공되는 완전 인공 디지털 이미지(fully artificial digital image)를 제공할 수 있다. 증강 현실(augmented reality, AR)은 현실 세계 환경 상에 가상 객체를 오버레이하여, 현실 세계 내에서의 기하학적 배치 및 배향을 가능하게 하는 공간 등록을 포함할 수 있다. 혼합 현실(mixed reality, MR)은 실제 및 가상 객체를 오버레이할뿐만 아니라, 가상 객체를 현실 세계 객체에 고정하여 사용자로 하여금 결합된 가상/실제 객체와 상호 작용할 수 있게 한다.
가상 현실, 증강 현실 및 혼합 현실 장치들은 다수의 애플리케이션(앱)에서 구현될 수 있으며, 엔터테인먼트 및 외부 장치의 제어와 같은, 사용자를 위한 실용적인 적용 모두를 제공할 수 있다. 그러나, HMD(Head Mounted Display) 장치를 사용하는 경우, HMD 장치에서 실행되는 애플리케이션과 상호 작용하기 위한 사용자 인터페이스는 애플리케이션에 따라 달라질 수 있다. 또한, 일부 사용자들은 HMD 장치의 사용자 인터페이스 요구 사항과 상호 작용하기 어려울 수도 있다. 혼합 현실(예를 들어, 가상 현실, 증강 현실 등)이 이용되는 기존 상황에서는, 인터페이스를 조작하기 위한 제어가 제한적이다.
따라서, 예를 들어 혼합 현실 상호 작용을 포함하는, HMD 장치에 대한 개선된 제어를 위한 솔루션이 필요하다.
본 발명의 일 실시예는 혼합 현실 입력들을 제공하는 시스템 및 방법을 포함한다. 이러한 실시예들은 움직임을 통해 HMD 장치 상에 디스플레이되는 컨텐츠를 제어하는 보다 몰입적인 방식을 제공할 수 있다. 사용자의 움직임들은 가상 현실 또는 증강 현실에서의 변화들과 연관시키는데 사용될 수 있다.
일 실시예에 따른 헤드 마운트 디스플레이 장치는 모션 감지기, 디스플레이, 상기 모션 감지기와 디스플레이에 커플링되는 프로세서, 및 프로세서에 커플링되는 메모리를 포함하고, 상기 메모리는 상기 프로세서로 하여금 모션에 대한 가용 범위를 정의하고, 가용 범위에 대한 그래픽 사용자 인터페이스를 상기 디스플레이에 출력하고, 상기 가용 범위 내에서, 상기 모션 감지기에 의해 감지된 HMD 장치의 모션에 기초하는 입력을 수신하고, 상기 입력에 응답하여 HMD 장치 또는 외부 장치 중 적어도 하나를 제어하도록 하는 인스트럭션들이 저장될 수 있다.
일 실시예에 따른 헤드 마운트 디스플레이 장치의 동작 방법은 모션에 대한 가용 범위를 정의하는 동작, 가용 범위에 대한 그래픽 사용자 인터페이스를 상기 HMD 장치의 디스플레이에 출력하는 동작, 상기 HMD 장치의 모션 감지기에 의해 감지된 HMD 장치의 모션에 기초하여, 가용 범위 내에서 입력을 수신하는 동작, 및 상기 입력에 응답하여 HMD 장치 또는 외부 장치 중 적어도 하나를 제어하는 동작을 포함할 수 있다.
일 실시예에 따른 컴퓨터 판독 가능 저장 매체는 모션에 대한 가용 범위를 정의하는 동작, 가용 범위에 대한 그래픽 사용자 인터페이스를 디스플레이에 출력하는 동작, 가용 범위 내에서, 모션 감지기에 의해 감지된 HMD 장치의 모션에 기초하는 입력을 수신하는 동작, 및 상기 입력에 응답하여 HMD 장치 또는 외부 장치 중 적어도 하나를 제어하는 동작을 수행하도록 하는 인스트럭션들이 저장될 수 있다.
다양한 실시예들에 따르면, 움직임을 통해 HMD 장치 상에 디스플레이되는 컨텐츠를 제어하는 것보다 사용자 몰입감이 향상될 수 있다. 사용자의 움직임들은 가상 현실 또는 증강 현실에서의 변화들과 연관시키는데 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 예시적인 네트워크 구성을 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 전자 장치의 예시적인 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 프로그램 모듈을 나타내는 블록도이다.
도 4는 증강 현실 장치를 나타내는 블록도이다.
도 5는 사용자의 감지된 헤드 기울임 움직임 또는 사용자의 선형 변형 움직임에 기초하여 범위에 대한 제어를 제공하는 예시적인 시나리오를 도시한 것이다.
도 6은 컨텐츠를 제어하기 위해 위치 움직임을 이용하는 HMD 장치에 대한 예시적인 흐름도를 도시한 것이다.
도 7a 내지 도 7c는 종방향 움직임이 디스플레이된 컨텐츠를 조정하기 위한 입력으로서 기능할 수 있는 예시적인 시나리오를 도시한 것이다.
도 8a 내지 도 8c는 수평 움직임이 디스플레이된 컨텐츠를 조정하는 예시적인 시나리오를 도시한 것이다.
도 9는 멀티미디어 컨텐츠에서의 위치가 사용자의 감지된 위치 움직임에 기초하여 제어될 수 있는 예시적인 시나리오를 도시한 것이다.
도 10은 다수의 위치 움직임 방향들 각각이 멀티미디어 컨텐츠의 양태를 제어할 수 있는 예시적인 시나리오를 도시한 것이다.
도 11은 회전 움직임이 디스플레이된 컨텐츠의 카테고리 선택을 제어할 수 있는 예시적인 시나리오를 도시한 것이다.
도 12는 감지된 헤드 기울임 움직임이 연결된 장치들을 제어할 수 있는 예시적인 시나리오를 도시한 것이다.
도 13은 임계값을 통과한 것에 기초하여 감지된 헤드 기울임을 사용하여 통지 응답(예를 들어, 거절, 선택 등)이 수행될 수 있는 예시적인 시나리오를 도시한 것이다.
도 14는 연결된 장치가 사용자의 감지된 위치 움직임에 기초하여 제어될 수 있는 다른 예시적인 시나리오를 도시한 것이다.
도 15는 HMD 장치 사용자가 향하고 있는 방향에 기초하여 장치가 제어될 수 있는 예시적인 시나리오를 도시한 것이다.
도 16은 HMD 장치 사용자와 장치들의 근접성에 기초하여 제어될 수 있는 복수의 장치들 중의 일 장치가 있는 예시적인 시나리오를 도시한 것이다.
도 17은 HMD 장치 사용자가 장치의 설정들을 토글할 수 있는 예시적인 시나리오를 도시한 것이다.
도 18은 HMD 장치 사용자가 TV 그리드 메뉴의 컨텐츠를 탐색할 수 있는 예시적인 시나리오를 도시한 것이다.
도 19는 HMD 장치 사용자가 3개의 회전 축을 사용하여 컨텐츠를 탐색할 수 있는 예시적인 시나리오를 도시한 것이다.
도 20a는 이벤트의 감지에 응답하여 플랫폼 이벤트 핸들러들 및 애플리케이션 이벤트 핸들러들을 동작시키는 방법을 나타내는 흐름도이다.
도 20b는 이벤트의 감지에 응답하여 비연속적 또는 연속적 동작들을 수행하는 방법을 나타내는 흐름도이다.
도 21은 헤드 마운트 디스플레이 장치를 동작시키는 방법을 나타내는 흐름도이다.
예시적인 실시예들에 대한 설명이 이하에서 제공된다. 본 텍스트 및 도면들은 독자가 본 발명을 이해하는 것을 돕기 위해 단지 예시로서만 제공된 것이다. 이들은 어떠한 방식으로도 본 발명의 범위를 제한하는 것으로 의도되지 않으며 그렇게 해석되어서도 안된다. 특정 실시예들 및 예들이 제공되었지만, 본 명세서의 개시 내용에 기초하여 당업자에게는 본 실시예들 및 예들의 변경이 본 발명의 범위를 벗어나지 않고 이루어질 수 있음이 명백할 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들에 대해 설명한다. 그러나, 본 개시는 이 실시예들에 한정되지 않으며, 그에 대한 모든 변경물 및/또는 균등물 또는 대체물도 본 개시의 범위에 속한다는 것을 이해해야 한다. 본 명세서 및 도면 전체에 걸쳐 동일하거나 유사한 참조 부호가 동일하거나 유사한 요소를 지칭하기 위해 사용될 수 있다.
본 명세서에서 사용되는 용어 "가진다", "가질 수 있다", "포함한다" 또는 "포함할 수 있다"는 일 특징(예를 들어, 숫자, 기능, 동작, 또는 부품과 같은 구성 요소)이 그 특징의 존재를 나타내며 다른 특징들의 존재를 배제하지 않는다.
본 명세서에서 사용되는 용어 "A 또는 B", "A 및/또는 B 중 적어도 하나" 또는 "A 및/또는 B 중 하나 이상"은 A 및 B의 모든 가능한 조합들을 포함할 수 있다. 예를 들어, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나"는 (1) 적어도 하나의 A를 포함하거나, (2) 적어도 하나의 B를 포함하거나, (3) 하나 이상의 A 및 하나 이상의 B를 포함하는 것 모두를 나타낼 수 있다.
본 명세서에서 사용되는 용어 "제 1" 및 "제 2"는 중요도에 관계없이 다양한 구성 요소들을 수정할 수 있으며 그 구성 요소들을 제한하지 않는다. 이 용어들은 하나의 구성 요소를 다른 구성 요소들과 구별하기 위해서만 사용된다. 예를 들어, 제 1 사용자 장치 및 제 2 사용자 장치는 장치의 순서 또는 중요도에 관계없이 서로 다른 사용자 장치들을 나타낼 수 있다. 예를 들어, 본 발명의 범위를 벗어나지 않으면서 제 1 구성 요소가 제 2 구성 요소로 명명될 수도 있으며, 그 반대의 경우도 가능하다.
일 요소(예를 들어, 제 1 요소)가 다른 요소(예를 들어, 제 2 요소)와 (동작 가능하게 또는 통신 가능하게) "커플링" 또는 "연결"되어 있는 것으로 언급될 경우, 이것은 다른 요소와 직접 또는 제 3 요소를 통해 커플링되거나 연결된 것일 수 있다. 대조적으로, 일 요소(예를 들어, 제 1 요소)가 다른 요소(예를 들어, 제 2 요소)와 "직접 커플링" 또는 "직접 연결"되어 있는 것으로 언급될 경우, 이 요소와 다른 요소 사이에는 어떠한 다른 요소(예를 들어, 제 3 요소)가 개입되지 않는다.
본 명세서에서 사용되는 용어 "구성되는(또는 설정되는)"은 상황에 따라 "적합한", "능력을 갖는", "설계된", "적응된", "만들어진", 또는 "할 수 있는"이라는 용어와 상호 교환적으로 사용될 수 있다. 용어 "구성되는(또는 설정되는)"은 본질적으로 "특별히 하드웨어로 설계되는"을 의미하는 것은 아니다. 오히려, "구성되는"이라는 용어는 장치가 다른 장치 또는 부품과 함께 동작을 수행할 수 있다는 것을 의미할 수 있다.
예를 들어, "A, B 및 C를 수행하도록 구성되는(또는 설정되는) 프로세서"라는 용어는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써 동작들을 수행할 수 있는 범용 프로세서(예를 들어, CPU 또는 애플리케이션 프로세서) 또는 동작들을 수행하기 위한 전용 프로세서(예를 들어, 내장 프로세서)를 의미할 수 있다.
본 명세서에서 사용되는 용어들은 단지 일부 실시예들을 설명하기 위해 사용 된 것이며, 본 발명의 다른 실시예들의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 달리 나타내지 않는 한, 복수의 표현을 포함한다. 본 명세서에서 사용되는 기술 용어 및 과학 용어를 포함하는 모든 용어들은 본 발명의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 또한, 일반적으로 사용되는 사전에 정의된 것들과 같은 용어들은 관련 기술의 맥락에서 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명시적으로 정의되어 있지 않은 한 이상적이거나 지나치게 공식적인 의미로 해석되지 않는다는 것이 이해될 것이다. 경우에 따라서는, 본 명세서에서 정의된 용어들이 본 발명의 실시예들을 배제하도록 해석될 수도 있다.
예를 들어, 본 발명의 다양한 실시예들에 따른 전자 장치의 예들로는 스마트 폰, 태블릿 PC(personal computer), 휴대폰, 비디오 폰, 전자 책 리더, 데스크탑 PC, 랩탑 컴퓨터, 넷북 컴퓨터, 워크스테이션, PDA(Personal Digital Assistant), 휴대용 멀티미디어 플레이어(PMP), MP3 플레이어, 모바일 의료 장치, 카메라 또는 웨어러블 장치(예를 들면, 스마트 안경, HMD, 전자 의류, 전자 팔찌, 전자 목걸이, 전자 액세서리, 전자 문신, 스마트 거울 또는 스마트 시계) 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치는 스마트 가전 기기일 수 있다. 스마트 가전 기기의 예들로는 텔레비전, DVD(Digital Video Disk) 플레이어, 오디오 플레이어, 냉장고, 에어컨, 청소기, 오븐, 전자 레인지, 세탁기, 건조기, 에어 클리너, 셋탑 박스, 홈 오토메이션 제어 패널, 보안 제어 패널, TV 박스(예를 들면, Samsung HomeSync™, Apple TV™ 또는 Google TV™), 게임 콘솔(Xbox™, PlayStation™), 전자 사전, 전자 키, 캠코더 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치의 예들로는 다양한 의료 장치(예를 들면, 다양한 휴대용 의료 측정 장치(혈당 측정 장치, 심장 박동 측정 장치 또는 체온 측정 장치, MRA(magnetic resource angiography) 장치, MRI(magnetic resource imaging) 장치, CT(computed tomography) 장치, 이미징 장치 또는 초음파 장치), 내비게이션 장치, GPS(global positioning system) 수신기, EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 세일링 전자 장치(예를 들면, 세일링 내비게이션 장치 또는 자이로 컴퍼스), 항공 전자 공학, 보안 장치, 차량 헤드 장치, 산업용 또는 가정용 로봇, 현금 자동 입출금기(ATM), POS(Point of Sale) 장치 또는 사물 인터넷 장치(예를 들면, 전구, 각종 센서, 전기 또는 가스 계량기, 스프링클러, 화재 경보기, 써모스탯, 가로등, 토스터, 피트니스 장비, 온수 탱크, 히터 또는 보일러) 중 적어도 하나를 포함할 수 있다.
본 발의 다양한 실시예들에 따르면, 전자 장치의 예들로는 가구 또는 빌딩/구조물의 일부, 전자 보드, 전자 서명 수신 장치, 프로젝터, 또는 다양한 측정 장치(예를 들어 물, 전기, 가스 또는 전자파 측정 장치) 중 적어도 하나일 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치는 전술한 장치들 중 하나이거나 또는 이들의 조합일 수 있다. 본 발명의 일 실시예에 따르면, 전자 장치는 플렉서블 전자 장치일 수 있다. 본 명세서에서 개시되는 전자 장치는 전술한 장치들에 한정되지 않으며, 기술 발전에 따른 새로운 전자 장치들을 포함할 수 있다.
이하, 본 발명의 다양한 실시예들에 따른 전자 장치들에 대하여 도면을 참조하여 설명한다. 본 명세서에서 사용되는 "사용자"라는 용어는 전자 장치를 사용하는 사람 또는 다른 장치(예를 들면, 인공 지능 전자 장치)를 나타낼 수 있다.
도 1은 본 발명의 일 실시예에 따른 예시적인 네트워크 구성을 도시한 것이다. 본 발명의 일 실시예에 따르면, 전자 장치(101)는 네트워크 환경(100)에 포함된다. 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입/출력 인터페이스(150), 디스플레이(160), 통신 인터페이스(170), 또는 이벤트 처리 모듈(180) 중 적어도 하나를 포함할 수 있다. 일부 실시예들에서, 전자 장치(101)는 이 구성 요소들 중 적어도 하나를 제외하거나 다른 구성 요소를 추가할 수 있다.
버스(110)는 구성 요소들(120 내지 180)을 서로 연결하고 구성 요소들 간의 통신들(예를 들어, 제어 메시지들 및/또는 데이터)을 전송하기 위한 회로를 포함할 수 있다.
처리 모듈(120)은 중앙 처리 장치(CPU), 응용 프로세서(AP) 또는 통신 프로세서(CP) 중 하나 이상을 포함할 수 있다. 프로세서(120)는 전자 장치(101)의 다른 구성 요소들 중 적어도 하나에 대한 제어를 수행하거나, 통신과 관련된 동작 또는 데이터 처리를 수행할 수 있다.
메모리(130)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 예를 들어, 메모리(130)는 전자 장치(101)의 적어도 하나의 다른 구성 요소와 관련된 명령들 또는 데이터를 저장할 수 있다. 본 발명의 일 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은 예를 들어, 커널(141), 미들웨어(143), 애플리케이션 프로그래밍 인터페이스(API)(145) 및/또는 애플리케이션 프로그램(또는 "애플리케이션")(147)을 포함할 수 있다. 커널(141), 미들웨어(143) 또는 API(145) 중 적어도 일부는 "운영 체제(OS)"로 표시될 수 있다.
예를 들어, 커널(141)은 다른 프로그램들(예를 들어, 미들웨어(143), API(145), 또는 애플리케이션 프로그램(147))에서 구현되는 동작들 또는 기능들을 수행하기 위해 사용되는 시스템 리소스들(예를 들어, 버스(110), 프로세서(120) 또는 메모리(130))을 제어 또는 관리할 수 있다. 커널(141)은 미들웨어(143), API(145) 또는 애플리케이션(147)이 전자 장치(101)의 개별 구성 요소들에 액세스하여 시스템 리소스들을 제어 또는 관리할 수 있게 하는 인터페이스를 제공할 수 있다.
미들웨어(143)는 예를 들어 API(145) 또는 애플리케이션(147)이 데이터를 커널(141)과 통신할 수 있게 하는 중계기로서 기능할 수 있다. 복수의 애플리케이션들(147)이 제공될 수 있다. 미들웨어(143)는, 예를 들어, 전자 장치(101)의 시스템 리소스들(예를 들면, 버스(110), 프로세서(120) 또는 메모리(130))을 사용하는 우선 순위를 복수의 애플리케이션들(134) 중 적어도 하나에 할당함으로써, 애플리케이션들(147)로부터 수신되는 작업 요청들을 제어할 수 있다.
API(145)는 애플리케이션(147)이 커널(141) 또는 미들웨어(143)로부터 제공되는 기능들을 제어할 수 있게 하는 인터페이스이다. 예를 들어, API(133)는 파일링 제어, 윈도우 제어, 이미지 처리 또는 텍스트 제어를 위한 적어도 하나의 인터페이스 또는 기능(예를 들어, 명령)을 포함할 수 있다.
입/출력 인터페이스(150)는, 예를 들어, 사용자 또는 다른 외부 장치들로부터 전자 장치(101)의 다른 구성 요소(들)로 명령들 또는 데이터 입력을 전달할 수 있는 인터페이스로서 기능할 수 있다. 또한, 입/출력 인터페이스(150)는 전자 장치(101)의 다른 구성 요소(들)로부터 수신된 명령들 또는 데이터를 사용자 또는 다른 외부 장치로 출력할 수 있다.
디스플레이(160)는, 예를 들어, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자 기계 시스템(MEMS) 디스플레이, 또는 전자 종이 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들어, 다양한 컨텐츠들(예를 들면, 텍스트, 이미지, 비디오, 아이콘 또는 심볼)을 사용자에게 표시할 수 있다. 디스플레이(160)는 터치스크린을 포함할 수 있으며, 예를 들어 전자 펜 또는 사용자의 신체 일부를 사용하여 입력되는 터치, 제스처, 근접(proximity) 또는 호버링(hovering)을 수신할 수 있다.
예를 들어, 통신 인터페이스(170)는 전자 장치(101)와 외부 전자 장치(예를 들면, 제 1 전자 장치(102), 제 2 전자 장치(104) 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들어, 통신 인터페이스(170)는 무선 또는 유선 통신을 통해 네트워크(162 또는 164)와 연결되어 외부 전자 장치와 통신할 수 있다.
제 1 외부 전자 장치(102) 또는 제 2 외부 전자 장치(104)는 웨어러블 장치이거나 또는 전자 장치(101) 장착형 웨어러블 장치(예를 들면, HMD)일 수 있다. 전자 장치(101)가 HMD 장치(예를 들면, 전자 장치(102))에 장착되는 경우, 전자 장치(101)는 HMD 장치에서의 장착을 감지하여 가상 현실 모드로 동작할 수 있다. 전자 장치(101)가 전자 장치(102)(예를 들면, HMD 장치)에 장착되는 경우, 전자 장치(101)는 통신 인터페이스(170)를 통해 전자 장치(102)와 통신할 수 있다. 전자 장치(101)는 전자 장치(102)와 직접 연결되며 이에 따라 별도의 네트워크를 수반하는 것 없이도 전자 장치(102)와 통신할 수 있다.
무선 통신은 셀룰러 통신 프로토콜로서, 예를 들어 LTE(long term evolution), LTE-A(long term evolution-advanced), CDMA(code division multiple access), WCDMA(wideband code division multiple access), UMTS(universal mobile telecommunication system), WiBro(wireless broadband), 또는 GSM(global system for mobile communication) 중 적어도 하나를 사용할 수 있다. 유선 연결은 USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232) 또는 POTS(plain old telephone service) 중 적어도 하나를 포함할 수 있다.
네트워크(162)는 통신 네트워크들, 예를 들어 컴퓨터 네트워크(예를 들어, LAN(local area network) 또는 WAN(wide area network)), 인터넷 또는 전화 네트워크 중 적어도 하나를 포함할 수 있다.
제 1 및 제 2 외부 전자 장치들(102 및 104) 각각은 전자 장치(101)와 동일하거나 상이한 타입의 장치일 수 있다. 본 발명의 일 실시예에 따르면, 서버(106)는 하나 이상의 서버들의 그룹을 포함할 수 있다. 본 발명의 일 실시예에 따르면, 전자 장치(101)에서 실행되는 모든 동작 또는 일부 동작은 다른 전자 장치(예를 들면, 전자 장치들(102 및 104) 또는 서버(106))에서 실행될 수 있다. 본 발명의 일 실시예에 따르면, 전자 장치(101)가 자동으로 또는 요청에 따라 일부 기능 또는 서비스를 수행해야 하는 경우, 자체적으로 또는 추가적으로 기능 또는 서비스를 실행하는 대신에, 관련된 적어도 일부의 기능들을 수행하도록 다른 장치(예를 들어, 전자 장치들(102 및 104) 또는 서버(106))에게 요청할 수 있다. 다른 전자 장치(예를 들면, 전자 장치들(102 및 104) 또는 서버(106))는 요청된 기능들 또는 추가 기능들을 실행하고, 그 결과를 전자 장치(110)에게 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리함으로써 요청된 기능 또는 서비스를 제공할 수 있다. 이를 위해, 예를 들어 클라우드 컴퓨팅, 분산 컴퓨팅 또는 클라이언트-서버 컴퓨팅 기술이 사용될 수 있다.
도 1은 전자 장치(101)가 네트워크(162)를 통해 외부 전자 장치(104 또는 106)와 통신하기 위한 통신 인터페이스(170)를 포함하는 것으로 도시하고 있지만, 본 발명의 일 실시예에 따라, 전자 장치(101)는 별도의 통신 기능없이 독립적으로 작동될 수도 있다.
서버(106)는 전자 장치(101)에서 구현되는 동작들(또는 기능들) 중 적어도 하나를 수행함으로써 전자 장치(101)를 구동하도록 지원할 수 있다. 예를 들어, 서버(106)는 전자 장치(101)에서 구현되는 이벤트 처리 모듈(180)을 지원할 수 있는 이벤트 처리 서버 모듈(미도시)을 포함할 수 있다.
예를 들어, 이벤트 처리 서버 모듈은 이벤트 처리 모듈(180)의 구성 요소들 중 적어도 하나를 포함하며, 이벤트 처리 모듈(180)에 의해 수행되는 동작들(또는 기능들) 중 적어도 하나를 수행(또는 대신 수행)할 수 있다.
이벤트 처리 모듈(180)은 다른 요소들(예를 들면, 프로세서(120), 메모리(130), 입/출력 인터페이스(150) 또는 통신 인터페이스(170))로부터 획득되는 정보 중 적어도 일부를 처리할 수 있으며, 이것을 다양한 방식으로 사용자에게 제공할 수 있다.
도 1에서는 이벤트 처리 모듈(180)이 프로세서(120)와는 별개의 모듈인 것으로 도시되어 있지만, 이벤트 처리 모듈(180)의 적어도 일부는 프로세서(120) 또는 적어도 하나의 다른 모듈에 포함되거나 구현될 수 있으며, 또는 이벤트 처리 모듈(180)의 전체 기능이 도시된 프로세서(120) 또는 다른 프로세서에 포함되거나 구현될 수도 있다. 이벤트 처리 모듈(180)은 메모리(130)에 저장된 적어도 하나의 프로그램(140)과 연동하여 본 발명의 실시예들에 따른 동작들을 수행할 수 있다.
본 명세서에서 설명된 예시적인 실시예들은 본 발명의 다양한 양태들을 제한하려는 것이 아니며 단지 예시적인 것으로 의도된다. 예시적인 실시예들이 특정 장치 카테고리(예를 들어, 헤드 마운트 디스플레이 등)에 적용 가능한 것으로 표시될 수 있지만, 본 제공된 프로세스들 및 예들은 그 장치 카테고리만으로 한정되는 것이 아니며 다양한 장치 카테고리들(예를 들면, 모바일 장치, 어플라이언스, 컴퓨터, 자동차 등)에 광범위하게 적용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 전자 장치의 예시적인 구성을 나타내는 블록도이다. 도 2를 참조하면, 본 발명의 일 실시예에 따른 전자 장치(220)는 적어도 하나의 디스플레이 수단을 갖는 전자 장치(220)일 수 있다. 이하의 설명에서, 전자 장치(220)는 주로 디스플레이 기능을 수행하는 장치일 수 있으며, 또는 적어도 하나의 디스플레이 수단을 포함하는 일반 전자 장치일 수도 있다. 예를 들어, 전자 장치(220)는 터치스크린(230)을 갖는 전자 장치(예를 들면, 스마트 폰)일 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치(220)는 터치스크린(230), 제어부(240), 저장부(250) 또는 통신부(260) 중 적어도 하나를 포함할 수 있다. 터치스크린(230)은 디스플레이 패널(231) 및/또는 터치 패널(232)을 포함할 수 있다. 제어부(240)는 증강 현실 모드 처리부(241), 이벤트 결정부(242), 이벤트 정보 처리부(243), 또는 애플리케이션 제어부(244) 중 적어도 하나를 포함할 수 있다.
예를 들어, 전자 장치(220)가 웨어러블 장치(210)에 장착되는 경우, 전자 장치(220)는 예를 들어 HMD 장치로서 동작하여, 증강 현실 모드를 실행할 수 있다. 또한, 본 발명의 일 실시예에 따르면, 전자 장치(220)가 웨어러블 장치(210)에 장착되지 않은 경우에도, 사용자의 설정에 따라 또는 증강 현실 모드 관련 애플리케이션을 실행함으로써 증강 현실 모드를 실행할 수 있다. 이하의 실시예에서, 전자 장치(220)가 증강 현실 모드를 실행하기 위해 웨어러블 장치(210)에 장착되도록 설정되어 있지만, 본 발명의 실시예들이 이것에 한정되는 것은 아니다.
본 발명의 일 실시예에 따르면, 전자 장치(220)가 증강 현실 모드에서 동작(예를 들어, 전자 장치(220)가 웨어러블 장치(210)에 장착되어 HMT(head mounted theater) 모드에서 동작)하는 경우, 사용자의 눈(왼쪽 및 오른쪽 눈)에 대응하는 2개의 화면이 디스플레이 패널(231)을 통해 표시될 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치(220)가 증강 현실 모드에서 동작하는 경우, 제어부(240)는 증강 현실 모드에서 동작하는 동안에 생성되는 이벤트와 관련된 정보를 증강 현실 모드에 맞게 처리하고, 처리된 정보를 표시하도록 하는 제어를 수행할 수 있다. 본 발명의 일 실시예에 따르면, 증강 현실 모드에서 동작하는 동안에 생성되는 이벤트가 애플리케이션 실행과 관련된 이벤트인 경우, 제어부(240)는 애플리케이션의 실행을 차단하거나 또는 애플리케이션을 백그라운드 프로세스로서 동작시키도록 처리할 수 있다.
보다 구체적으로, 본 발명의 일 실시예에 따르면, 제어부(240)는 본 발명의 다양한 실시예들에 따른 기능들을 수행하기 위한 증강 현실 모드 처리부(241), 이벤트 결정부(242), 이벤트 정보 처리부(243), 또는 애플리케이션 제어부(244) 중 적어도 하나를 포함할 수 있다. 본 발명의 실시예는 전자 장치(220)의 적어도 하나의 구성 요소(예를 들면, 터치스크린(230), 제어부(240) 또는 저장부(250))를 이용하여 후술하는 다양한 동작들 또는 기능들을 수행하도록 구현될 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치(220)가 웨어러블 장치(210)에 장착되거나 또는 사용자의 설정이나 증강 현실 모드 관련 애플리케이션이 실행됨에 따라 증강 현실 모드가 실행될 경우, 증강 현실 모드 처리부(241)가 증강 현실 모드의 동작과 관련된 다양한 기능들을 처리할 수 있다. 증강 현실 모드 처리부(241)는 저장부(250)에 저장된 적어도 하나의 증강 현실 프로그램(251)을 로딩하여 다양한 기능들을 수행할 수 있다.
이벤트 결정부(242)는 증강 현실 모드 처리부(241)에 의해 증강 현실 모드에서 동작되는 동안에 발생되는 이벤트를 결정할 수 있다. 또한, 이벤트 결정부(242)는 증강 현실 모드에서 동작하는 동안 발생되는 이벤트와 관련하여 화면에 표시될 정보가 있는지 여부를 결정할 수 있다. 또한, 이벤트 결정부(242)는 증강 현실 모드에서 동작하는 동안 발생되는 이벤트와 관련하여 실행될 애플리케이션을 결정할 수 있다. 이벤트 타입과 관련된 애플리케이션의 다양한 실시예들이 아래에 설명된다.
이벤트 정보 처리부(243)는 이벤트 결정부(242)에 의한 결정 결과에 따라 증강 현실 모드에서 동작하는 동안 발생하는 이벤트와 관련하여 표시될 정보가 있을 경우, 증강 현실 모드에 맞도록 화면에 표시될 이벤트 관련 정보를 처리할 수 있다. 이벤트 관련 정보를 처리하기 위한 다양한 방법들이 적용될 수 있다. 예를 들어, 증강 현실 모드에서 3 차원(3D) 이미지가 구현되는 경우, 전자 장치(220)는 이벤트 관련 정보를 3D 이미지에 맞게 변환할 수 있다. 예를 들어, 2 차원(2D)으로 디스플레이되고 있는 이벤트 관련 정보가 3D 이미지에 맞는 왼쪽 눈 및 오른쪽 눈에 대응되는 정보로 변환될 수 있으며, 변환된 정보는, 현재 실행되고 있는 증강 현실 모드의 화면에 합성되어 표시될 수 있다.
증강 현실 모드에서 동작하는 동안에 발생하는 이벤트와 관련하여 실행될 애플리케이션이 존재하는 것으로 이벤트 결정부(242)에 의해 결정되는 경우, 애플리케이션 제어부(244)는 그 이벤트와 관련된 애플리케이션을 차단하도록 하는 제어를 수행할 수 있다. 본 발명의 일 실시예에 따르면, 이벤트 결정부(242)가 증강 현실 모드에서 동작하는 동안 발생하는 이벤트와 관련하여 실행될 애플리케이션이 존재하는 것으로 결정하는 경우, 애플리케이션 제어부(244)는, 이벤트 관련 애플리케이션이 실행될 때 증강 현실 모드에 대응하는 애플리케이션의 실행 또는 화면 표시에 영향을 미치지 않게 그 애플리케이션이 백그라운드에서 실행되도록 하는 제어를 수행할 수 있다.
저장부(250)는 증강 현실 프로그램(251)을 저장할 수 있다. 증강 현실 프로그램(251)은 전자 장치(220)의 증강 현실 모드 동작과 관련된 애플리케이션일 수 있다. 저장부(250)는 이벤트 관련 정보(252)를 저장할 수 있다. 이벤트 결정부(242)는 저장부(250)에 저장된 이벤트 관련 정보(252)를 참조하여 발생 이벤트가 화면에 표시되는지 여부를 결정하거나 또는 발생 이벤트와 관련하여 실행될 애플리케이션에 대한 정보를 식별할 수 있다.
웨어러블 장치(210)는 도 1에 도시된 전자 장치(101)의 적어도 하나의 기능을 포함하는 전자 장치일 수 있으며, 웨어러블 장치(210)는 전자 장치(220)가 장착될 수 있는 웨어러블 스탠드일 수 있다. 웨어러블 장치(210)가 전자 장치인 경우, 전자 장치(220)가 웨어러블 장치(210)에 장착될 때에, 전자 장치(220)의 통신부(260)를 통해 다양한 기능들이 제공될 수 있다. 예를 들어, 전자 장치(220)가 웨어러블 장치(210)에 장착되는 경우, 전자 장치(220)는 웨어러블 장치(210)와의 통신을 위해 웨어러블 장치(210) 상에 장착되었는지 여부를 감지할 수 있으며, 증강 현실 모드(또는 HMT 모드)로 동작할지 여부를 결정할 수 있다.
본 발명의 일 실시예에 따르면, 통신부(260)가 웨어러블 장치(210)에 장착되었을 때에 전자 장치(220)의 장착 여부를 자동으로 결정하지 못한 경우, 사용자는 증강 현실 프로그램(251)을 실행하거나 또는 증강 현실 모드(또는 HMT 모드)를 선택함으로써 본 발명의 다양한 실시예들을 적용할 수 있다. 본 발명의 일 실시예에 따르면, 웨어러블 장치(210)가 전자 장치(101)로서의 기능들을 포함하는 경우, 전자 장치(220)가 웨어러블 장치(210)에 장착되었는지 여부를 자동으로 결정하여 전자 장치(220)의 실행 모드가 증강 현실 모드(또는 HMT 모드)로 자동 전환될 수 있도록 구현될 수 있다.
도 2에 도시된 제어부(240)의 적어도 일부 기능들은 도 1에 도시된 전자 장치(101)의 이벤트 처리 모듈(180) 또는 프로세서(120)에 포함될 수 있다. 도 2에 도시된 터치스크린(230) 또는 디스플레이 패널(231)은 도 1의 디스플레이(160)에 대응할 수 있다. 도 2에 도시된 저장부(250)는 도 1의 메모리(130)에 대응할 수 있다.
도 2에서는 터치스크린(230)이 디스플레이 패널(231) 및 터치 패널(232)을 포함하고 있지만, 본 발명의 일 실시예에 따르면, 디스플레이 패널(231) 또는 터치 패널(232)은 또한 단일의 터치스크린(230)에 있는 것이 아닌 별도의 패널로서 제공될 수도 있다. 또한, 본 발명의 일 실시예에 따르면, 전자 장치(220)는 디스플레이 패널(231)은 포함하고, 터치 패널(232)은 제외할 수도 있다.
본 발명의 일 실시예에 따르면, 설명의 편의를 위해 전자 장치(220)가 제 1 장치(또는 제 1 전자 장치)로 표시될 수 있고, 웨어러블 장치(210)가 제 2 장치(또는 제 2 전자 장치)로 표시될 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치는 증강 현실 모드에 대응하는 화면을 표시하는 디스플레이 및 적어도 하나의 이벤트 발생에 따른 인터럽트를 감지하고, 증강 현실 모드에 대응하는 형태로 이벤트와 관련된 이벤트 관련 정보를 변경하고, 증강 현실 모드에 대응하게 화면 상에 상기 변경된 이벤트 관련 정보를 표시하도록 하는 제어를 수행하는 제어부를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 이벤트는 전화 수신 이벤트, 메시지 수신 이벤트, 알람 통지, 스케줄러 통지, Wi-Fi(wireless fidelity) 연결, WiFi 연결 끊김, 배터리 부족 통지, 데이터 권한 또는 사용 제한 통지, 애플리케이션 응답 없음 통지, 또는 비정상적인 애플리케이션 종료 통지 중에서 선택되는 하나 이상의 것을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치는 이벤트가 증강 현실 모드에서 표시될 이벤트가 아닌 경우 이벤트 관련 정보를 저장하는 저장부를 더 포함하며, 제어부는 전자 장치가 증강 현실 모드에서 시스루(see-through) 모드로 전환할 경우 상기 저장부에 저장된 이벤트 관련 정보를 표시하도록 하는 제어를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치는 증강 현실 모드에서 표시될 적어도 하나의 이벤트에 관한 정보를 저장하는 저장부를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 이벤트는 인스턴트 메시지 수신 통지 이벤트를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 이벤트가 적어도 하나의 애플리케이션의 실행과 관련된 이벤트인 경우, 제어부는 그 이벤트의 발생에 따라 애플리케이션의 실행을 차단하도록 하는 제어를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 제어부는 전자 장치의 화면 모드가 증강 현실 모드에서 시스루 모드로 전환될 때에 차단된 애플리케이션을 실행하도록 하는 제어를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 이벤트가 적어도 하나의 애플리케이션의 실행과 관련된 이벤트인 경우, 제어부는 그 이벤트의 발생에 따른 애플리케이션이 증강 현실 모드 화면의 백그라운드에서 실행될 수 있도록 하는 제어를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치가 웨어러블 장치와 연결되는 경우, 제어부는 증강 현실 모드를 실행하도록 하는 제어를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 제어부는 현재 화면에 표시되고 있는 증강 현실 모드 화면의 3 차원(3D) 공간에 이벤트 관련 정보를 배열하고 처리하는 것을 가능하게 할 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치는 하나 이상의 RGB 카메라, DVS 카메라, 360도 카메라 또는 이들의 조합과 같은 추가 센서들을 포함할 수 있다.
도 3은 본 발명의 일 실시예에 따른 프로그램 모듈을 나타내는 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따르면, 프로그램 모듈은 시스템 운영 체제(예를 들어, OS)(310), 프레임워크(320), 애플리케이션(330)을 포함할 수 있다.
시스템 운영 체제(310)는 적어도 하나의 시스템 리소스 관리자 또는 적어도 하나의 장치 드라이버를 포함할 수 있다. 시스템 리소스 관리자는 예를 들어 시스템 리소스들의 제어, 할당 또는 복구를 수행할 수 있으며, 시스템 리소스 관리자는 프로세스 관리자, 메모리 관리자 또는 파일 시스템 관리자와 같은 적어도 하나의 관리자를 포함할 수 있다. 장치 드라이버는 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, Wi-Fi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버와 같은 적어도 하나의 드라이버를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 프레임워크(320)(예컨대, 미들웨어)는 예를 들면 애플리케이션에 공통적으로 필요한 기능들을 제공하거나, API를 통해 애플리케이션에 다양한 기능들을 제공하여 애플리케이션으로 하여금 전자 장치 내부의 제한된 시스템 리소스들을 효율적으로 사용 가능하게 할 수 있다.
본 발명의 일 실시예에 따르면, 프레임워크(320)에 포함되는 AR 프레임워크가 전자 장치의 증강 현실 모드 동작들과 관련된 기능들을 제어할 수 있다. 예를 들어, 증강 현실 모드 동작의 실행에 따라, AR 프레임워크(320)는 애플리케이션들(330) 중 증강 현실과 관련된 적어도 하나의 증강 현실(AR) 애플리케이션(351)을 제어함으로써, 전자 장치에 증강 현실 모드를 제공할 수 있다.
애플리케이션(330)은 복수의 애플리케이션들을 포함할 수 있으며, 증강 현실 모드에서 실행되는 적어도 하나의 AR 애플리케이션(351) 및 증강 현실 모드가 아닌 정상 모드에서 실행되는 적어도 하나의 일반 애플리케이션(352)을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 애플리케이션(330)은 AR 제어 애플리케이션(340)을 더 포함할 수 있다. 적어도 하나의 AR 애플리케이션(351) 및/또는 적어도 하나의 일반 애플리케이션(352)의 동작은 AR 제어 애플리케이션(340)의 제어에 따라 제어될 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치가 증강 현실 모드에서 동작하는 동안 적어도 하나의 이벤트가 발생하는 경우, 시스템 운영 체제(310)는 그 이벤트의 발생을 프레임워크(320)(예를 들면, AR 프레임워크)에게 통지할 수 있다.
프레임워크(320)는 증강 현실 모드에서가 아닌 일반 모드에서 발생하는 이벤트에 대해 이벤트 관련 정보가 화면 상에 표시될 수 있도록, 일반 애플리케이션(352)의 실행을 제어할 수 있다. 일반 모드에서 발생하는 이벤트와 관련하여 실행될 애플리케이션이 존재하는 경우, 프레임워크(320)는 적어도 하나의 일반 애플리케이션(352)을 실행하도록 하는 제어를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 증강 현실 모드에서 동작하는 동안 이벤트가 발생하는 경우, 프레임워크(320)(예를 들어, AR 프레임워크)는 발생 이벤트와 관련된 정보를 표시하기 위해 적어도 하나의 일반 애플리케이션(352)의 동작을 차단할 수 있다. 프레임워크(320)는 증강 현실 모드에서 동작하는 동안 발생하는 이벤트를 AR 제어 애플리케이션(340)에게 제공할 수 있다.
AR 제어 애플리케이션(340)은 증강 현실 모드에서 동작하는 동안 발생하는 이벤트와 관련된 정보를 처리하여 증강 현실 모드에 맞출 수 있다. 예를 들어, 2D 평면 이벤트 관련 정보가 3D 정보로 처리될 수 있다.
AR 제어 애플리케이션(340)은 현재 실행중인 적어도 하나의 AR 애플리케이션(351)을 제어할 수 있으며, AR 애플리케이션(351)에 의해 실행중인 화면과 상기 처리된 이벤트 관련 정보를 합성하여 그 결과를 표시하도록 하는 제어를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 증강 현실 모드에서 동작하는 동안 이벤트가 발생하는 경우, 프레임워크(320)는 발생 이벤트와 관련된 적어도 하나의 일반 애플리케이션(352)의 실행을 차단하도록 하는 제어를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 증강 현실 모드에서 동작하는 동안 이벤트가 발생하는 경우, 프레임워크(320)는 발생 이벤트와 관련된 적어도 하나의 일반 애플리케이션(352)의 실행을 일시적으로 차단하며, 증강 현실 모드가 종료하는 경우에는, 차단된 일반 애플리케이션(352)을 실행하도록 하는 제어를 수행할 수 있다.
본 발명의 일 실시예에 따르면, 증강 현실 모드에서 동작하는 동안 이벤트가 발생하는 경우, 프레임워크(320)는 발생 이벤트와 관련된 적어도 하나의 일반 애플리케이션(352)의 실행을 제어함으로써, 그 이벤트와 관련된 적어도 하나의 일반 애플리케이션(352)이 현재 실행중인 AR 애플리케이션(351)에 의한 화면에 영향을 미치지 않게 백그라운드에서 동작하도록 할 수 있다.
도 3과 관련하여 설명된 실시예는 프로그램 형태로 본 발명의 실시예를 구현하기 위한 예이며, 본 발명의 실시예들은 이것에 한정되지 않고 다른 다양한 형태들로 구현될 수 있다. 또한, 도 3과 관련하여 설명된 실시예가 AR을 참조하고 있지만, 본 발명은 가상 현실, 혼합 현실 등과 같은 다른 시나리오들에 적용될 수도 있다. 이러한 실시예들에서, AR 부분들 또는 구성 요소들은 가상 현실 또는 혼합 현실 양태들을 가능하게 하는데 이용될 수 있다. 전체적으로 다양한 현실 시나리오들을 본 명세서에서는 XR로 지칭할 수 있다.
도 4는 AR 장치를 도시한 블록도이다.
도 4를 참조하면, AR 장치(402)는 독립형 장치(즉, AR 장치의 동작들을 수행하기 위한 회로들을 가짐), 드롭-인(drop-in) 장치(즉, 스마트 폰과 같은 모바일 장치가 AR 장치에 삽입되는 경우), 또는 테더링형 장치(AR 장치의 동작들을 수행하기 위한 회로들을 가진 장치가 AR 장치에 테더링됨)일 수 있다. 도 4의 AR 장치(402)는 전자 장치(404)에 커플링될 수 있으며, 예를 들어 헤드 포즈(pose), 손 포즈, 눈 포즈 또는 다른 추적 포즈와 같은 사용자로부터의 입력들(408)을 감지하도록 구성된다. 일부 AR 장치들의 경우, 전자 장치(404)는 HMD 장치 외부의 제어부일 수 있다. 제어부로서 구현되는 전자 장치(404)는 단일 버튼과 같이 단순하거나 비디오 게임 제어부보다 더 복잡할 수 있다. 예를 들어, 사용자가 제어부 상의 버튼을 누름으로써 헤드 추적 상호 작용들을 활성화하는 상호 작용이 있을 수 있다.
다른 실시예들에 따르면, 전자 장치는 예를 들어 스마트 폰과 같은 모바일 장치일 수 있으며, 소프트웨어 제어부로서 구현될 수 있다. AR 장치(402)는 또한 특정 AR 기능을 제공하기 위해 개발자들에 의해 생성된 특정 AR 애플리케이션들일 수 있는, 애플리케이션(앱)을 실행함으로써, HMD 장치를 위한 운영 체제일 수 있는, 플랫폼을 동작시키기 위한 프로세서(410)를 포함한다. 프로세서는 또한 센서 이벤트 감지를 수행할 수 있으며, 버스(418)에 커플링되어 있다. 프로세서는 센서 이벤트 데이터를 사용함으로써 메모리에 저장된 센서 이벤트 정의들에 기초하여 이벤트를 인식하고, 그 인식된 이벤트에 기초하여 취해질 액션을 결정할 수 있는 애플리케이션 이벤트 핸들러(application event handler)의 기능을 수행할 수 있다.
유사하게, 프로세서(410)에 의해 운영되는 플랫폼은 센서 이벤트 데이터로부터의 데이터를 사용함으로써 메모리에 저장된 센서 이벤트 정의들에 기초하여 이벤트를 인식하고, 그 인식된 이벤트에 기초하여 취해질 액션을 결정할 수 있는 플랫폼 이벤트 핸들러(platform event handler)의 기능을 수행할 수 있다. 애플리케이션 이벤트 핸들링 및 플랫폼 이벤트 핸들링을 수행하기 위한 프로세서의 동작들에 대한 예에 대하여는 도 20 및 도 21을 참조하여 아래에서 설명된다.
프로세서(410)는 도 3의 프로그램 모듈에 따라 AR 프로그램으로서 프로그램들을 동작시키도록 구성될 수 있으며, 여기서 AR 장치(402)를 위한 플랫폼은 전술한 바와 같이 AR 제어 애플리케이션(340)에 따라 구현될 수 있다. 일부 실시예들에 따르면, 프로세서(410)는 또한 센서 데이터의 모니터링을 수행할 수 있으며, 감지된 센서 데이터에 기초하는 값들을 리턴할 수 있다. 감지된 센서 값들은 HMD 장치 또는 외부 장치를 제어하기 위해 HMD 장치에 의해 사용될 수 있는 특정 이벤트들을 인식하도록, 메모리에 저장된 센서 이벤트 정의들과 비교될 수 있다.
예를 들어, HMD 장치의 수평 움직임, 종방향 움직임, 수직 움직임, 또는 회전 움직임과 관련된 데이터가 필터링됨으로써 HMD 장치를 제어하는데 사용될 수 있는 이벤트가 감지되었는지 여부를 결정할 수 있다. 이러한 이벤트들은 구체적으로 다양할 수 있으며, 애플리케이션들 간에 겹칠 수 있다. 애플리케이션 개발자들은 원시 데이터에서 자체 이벤트들을 추상화하거나 플랫폼에 의존하여 감지된 이벤트들(HMD 장치의 감지 모션들)과 관련된 정보를 제공할 수 있다. 일부 실시예들에 따르면, 특정한 감지 이벤트들은 플랫폼에 의해서만 사용될 수도 있다.
이벤트가 감지되는 경우, 플랫폼은 감지된 이벤트가 어떻게 처리되는지, 그리고 이벤트에 응답하여 어떤 액션이 수행될 수 있는지를 결정한다. 플랫폼은 사용자가 이벤트 응답들(즉, 감지된 이벤트들에 응답하여 취해지는 HMD에 의한 액션)을 변경 가능하게 할 수 있도록 구성될 수 있다. 플랫폼은 개발자들에게 이벤트들에 대한 액세스를 제공할 수 있다. 이러한 액세스에는 원시 센서 데이터 또는 이벤트 식별이 포함될 수 있다. 앱 개발자들은 사용자가 이벤트 응답들을 변경할 수 있도록 하는 등의 앱 기능 제어를 가능하게 할 수 있다.
이벤트가 플랫폼에 의해 보호되는 경우, 플랫폼은 앱 실행 시에 제어 신호 생성을 위해 해당 감지된 이벤트를 사용하는 것으로 앱 개발자들이 해당 이벤트를 이용하지 못하게 할 수 있다. 예를 들어, 사용자의 알림(notification)을 열도록 하는 오른쪽으로 헤드 기울어짐이 플랫폼에 의해서 정의되는 경우, 플랫폼은 개발자가 해당 상호 작용을 변경하거나 앱에서 해당 이벤트를 사용하는 것을 금지할 수 있다. 즉, 플랫폼이 애플리케이션보다 우위에 있으며, 그 앱에서 사용 가능한 센서 데이터를 제어할 수 있다.
또한, 버스(418)는 센서들(420), 디스플레이(422), 통신 인터페이스(424), 입/출력 인터페이스(426) 및 메모리(428)와 인터페이스하도록 구성될 수 있다. 센서들(420)은 HMD 장치에 의해 사용되는 임의의 타입의 센서를 포함할 수 있으며, 예를 들어, IMU(inertial measurement unit), 가속도계, 자이로스코프, 근접 센서, 깊이 감지기, 카메라 또는 HMD 장치의 모션이나 배향 또는 HMD 장치에 의해 감지되는 입력들을 감지하는데 사용될 수 있는 임의의 다른 센서와 같은 모션 센서를 포함할 수 있다. 통신 인터페이스(424)는 통신 인터페이스(170)를 참조하여 전술한 바와 같이 구현될 수 있으며, 입/출력 인터페이스(426)는 입/출력 인터페이스(150)를 참조하여 전술한 바와 같이 구현될 수 있다.
메모리(428)는 예를 들어 센서 이벤트 정의들(430), 애플리케이션들(432), 애플리케이션 사용자 설정들(434), 소프트웨어 플랫폼(436) 및 소프트웨어 플랫폼 사용자 설정들(438)을 포함하는, 프로세서에 의해 사용되는 다양한 애플리케이션들 및 데이터를 저장할 수 있다. 센서 이벤트 정의들(430)은 예를 들어 모션 센서와 같은, HMD 장치의 센서에 의해 감지될 있는 수평 움직임, 종방향 움직임, 수직 움직임 및 회전 움직임, 또는 움직임들의 조합과 같은 감지 이벤트들의 정의들을 포함할 수 있다. 센서 이벤트 정의들은 다수의 센서와 관련된 데이터를 갖는 이벤트들을 포함할 수 있음을 이해해야 한다. 예를 들어, 센서 이벤트 정의는 모션과 관련된 정보뿐만 아니라 모션 동안 HMD 장치 사용자가 향하고 있는 정보를 포함할 수 있다. 예를 들어, 아래의 도 15 및 도 16의 예에서 설명되는 바와 같이, IMU에 의해 감지되는 헤드 모션뿐만 아니라, HMD 장치 사용자가 향하는 방향 또는 외부 장치에 대한 HMD 장치의 근접성에 기초하여, 감지된 이벤트에 대한 액션(예를 들어, 조명을 켬)이 취해질 수 있다.
사용자는 또한 애플리케이션들과 관련된 설정들 및 일부 경우 플랫폼과 관련된 설정들을 제어할 수 있다. 일부 구현예들에 따르면, HMD의 사용자는 임계값들을 설정하는 것이 허용될 수 있으며, 이것은 동작 동안에 개선된 편안함을 제공할 수 있다. 예를 들어, 사용자가 목 부상을 입었으며 디폴트 기울어짐 각도가 너무 극단적인 경우, 사용자는 앱 사용자 설정들(434)에서 최소 및 최대 임계값들을 설정할 수 있다. 다른 실시예들에 따르면, 사용자는 플랫폼 사용자 설정들(438)에서 플랫폼 레벨 상호 작용을 설정하는 것이 허용될 수 있다. 예를 들어, 플랫폼 설정들에는, 특정 태스크를 수행하도록 하는 헤드 기울어짐 액션을 설정하는 옵션이 있을 수 있다(예를 들면, 알림 열기, 집으로 이동, 초인종 카메라 확인).
HMD 장치에 대해 아래에서 더 상세히 설명되는 제어 특징들은, 헤드 모션을 사용하여 범위가 정해진 컨텐츠(예를 들면, 오디오 또는 비디오 컨텐츠와 같은 시간 차원을 갖는 컨텐츠 또는 컨텐츠 목록)를 이동시키는 등과 같은, 정상인 및 장애인 모두에게 유용한 HMD 장치를 제어하는 추가적인 방법을 HMD 장치 사용자에게 제공한다. 모션 시스템의 제스처 기반 제어 모드가 활성화되면, 사용자의 움직임들이 미리 정의된 범위에 매핑되며, 특히 그 범위의 최소값 및 최대값 내에 매핑된다. 해당 범위 내에서 감지된 사용자의 움직임들은 V/AR 세계에서의 변화와 연관될 수 있다. 예를 들어, 사용자는 개별 미디어(예를 들면, 노래) 또는 미디어 모음(예를 들면, 특정 시간의 사진들 및 비디오들)을 스크러빙할 수 있다.
시스템 상태(즉, 사용자가 범위 내에 있는 경우)는 사용자 주위의 공간, V/AR 세계에 표시되거나 또는 전혀 표시되지 않을 수도 있다(예를 들면, 수동적 경험). 임계값들이 설정될 수 있으며, 그 범위 내에서 임계값을 초과하는 경우 HMD 장치를 제어하는데 사용될 수 있는 이벤트인 것으로 결정될 수 있다. 예를 들어, 임계값을 초과하는 헤드 모션은 빠른 액션을 트리거하는데 사용될 수 있다. AR/VR 헤드셋 뷰는 확대된 화면 및 실행 애플리케이션들, 제스처 또는 이벤트가 있는 컨텐츠를 포함하도록 확장될 수 있다. 연결되어 있는 장치들은 음성 명령에 반응하는 스마트 스피커나 램프 등의 어플라이언스와 같이, 사용자가 가까이 있을 때 사용자 제스처들을 이용할 수 있다.
다양한 실시예들에 따르면, HMD 장치를 착용한 사용자의 신체 모션 또는 HMD 장치를 착용한 사용자의 헤드 움직임(예를 들어, 아래에서 더 상세히 설명되는 바와 같은 수평 헤드 움직임, 종방향 헤드 움직임, 수직 헤드 움직임, 또는 회전 헤드 움직임)과 같은 신체의 일부분에서의 위치 변화들은, HMD 장치와 같은 장치 또는 컴퓨터, TV, 랩탑 컴퓨터 또는 임의의 다른 전자 장치나 어플라이언스(예를 들어, 램프)와 같은 HMD 장치 외부의 장치를 제어하기 위해 감지되어 사용되는 이벤트들을 포함한다. HMD 장치 또는 외부 장치는 오디오 또는 시각적 컨텐츠와 같은 컨텐츠를, HMD 장치를 통해서 또는 스피커, TV 또는 다른 디스플레이 장치와 같은 외부 장치를 통해 사용자에게 제공할 수 있으며, 여기서 이 컨텐츠는 HMD 장치에서 감지되는 위치 변화들에 기초하여 제어될 수 있다.
도 5는 감지된 사용자의 헤드 기울어짐 움직임 또는 사용자의 선형 변형 움직임에 기초하여 범위에 대한 제어를 제공하는 예시적인 시나리오를 도시한 것이다. 이러한 감지는 예를 들어, 장치의 IMU(inertial motion unit)에 의해 단독으로 수행되거나 또는 HMD 장치의 다른 센서와 조합하여 수행될 수 있다. HMD 장치 또는 외부 장치를 제어하는데 사용되는 위치 변화를 포함하는 이벤트에 대한 이용 가능한 범위가 정의된다.
도 5에 도시된 바와 같이, 헤드 기울어짐에 대한 이용 가능한 범위(즉, HMD 장치의 사용자 신체의 평면에서 한쪽 어깨 또는 다른쪽 어깨를 향하는 헤드의 모션)가 정의되며, 여기서 이 범위는 HMD 장치에 의해 감지될 수 있는 헤드의 기울어짐과 관련된 최소(min) 또는 최대(max) 각도를 포함할 수 있다. 대안적으로, 최소 및 최대 범위 값들은 HMD 장치 사용자의 선형 변형(linear translation)에 기초하는 최소 및 최대 거리들일 수 있다. 이용 가능한 범위는 HMD 장치의 사용자로 하여금 그 범위 내에서 사용자 위치를 결정할 수 있게 하거나, 또는 아래에서 더 상세히 설명될 외부 장치를 제어하기 위한 것과 같은, 제어 신호를 생성할 목적을 위해 임계값이 충족되는지 여부를 결정할 수 있게 하는 시각적 안내 경로로서 디스플레이에 표시될 수 있다. 헤드 기울어짐 또는 선형 변형의 감지를 사용하는 제어에 대한 특정 예들이 아래에서 더 상세히 제공된다.
최소 및 최대 각도들은 기준 각도로부터의 측정치들일 수 있다(예를 들어, HMD를 착용한 사용자가 전방을 향하고 있는 경우, 한쪽에 대한 측정 각도가 양의 각도일 수 있고, 다른쪽에 대한 측정 각도가 음의 각도일 수 있음). 최소 및 최대 거리들은 중심점(예를 들어 HMD를 착용한 사용자가 처음에 서있는 위치)으로부터의 것일 수 있다. 대안적으로, 최소 거리는 처음 서있는 지점일 수 있으며, 예를 들어 오디오 또는 비디오가 전진된 이후에 오디오 또는 비디오를 스크러빙하는 동안 한쪽 또는 다른쪽으로의 모션이 위치를 변경하는데 사용될 수 있다.
양방향 화살표(예를 들어, 도 5에서 최소 또는 최대 각도 또는 최소 또는 최대 거리를 나타내는 양방향 화살표)가 모션을 나타내고 액션을 야기하는 임계값들의 예를 제공하기 위해 도면에 도시되어 있지만, 아래에서 더 상세히 설명되는 바와 같이, AR 장치에 입력을 제공하기 위해 이루어질 수 있는 모션들을 사용자가 인식하도록 하기 위해 양방향 화살표가 AR 장치의 디스플레이에 보여질 수도 있다. 예를 들어, 헤드의 모션이 직관적일 수 있는 일부 응용들의 경우에는, 양방향 화살표를 시각적 안내로서 보여주는 것이 불필요하거나 유익하지 않을 수 있지만, 입력을 제공하기 위한 모션들이 덜 직관적일 수 있는 다른 응용들의 경우 시각적 안내를 포함하는 것이 유리할 수 있다. 각도 및 거리가 예로서 도시되어 있지만, 모션과 관련된 임의의 다른 타입의 측정에서는 사용자가 헤드의 모션에 기초하여 입력을 제공할 수 있도록 시각적 안내가 제공될 수 있음을 이해해야 한다.
도 5에 도시된 최소 기울어짐 또는 최대 기울어짐과 같은 최소값 및 최대값은, AR 장치와 연관된 플랫폼, AR 장치에서 실행되는 애플리케이션에 의해 결정될 수 있거나, 사용자가 선택 가능할 수 있다. 최소값 및 최대값은 평균 사용자 또는 특정 사용자의 물리적 한계(예를 들어, 사용자가 헤드 기울어짐을 수행할 수 있는 정도)와 관련될 수 있음을 이해해야 한다. 대안적으로, 최소값 및 최대값은 HMD 장치에서 실행되는 앱과 관련된 제한이나, 특정 앱이 증강 현실 또는 혼합 현실 환경에서 컨텐츠를 제시하는 방법에 기초할 수 있다.
도 6은 컨텐츠를 제어하기 위해 위치 움직임을 이용하는 HMD 장치에 대한 예시적인 흐름도를 도시한 것이다.
도 6을 참조하면, 동작(602)에서 초기화가 수행되며, 여기서 초기화는 HMD 장치가 HMD 동작 동안에 사용될 수 있는 HMD에 대한 입력으로서 수신되도록 헤드 모션을 사용하는 HMD의 모드로 들어가게 할 수 있는 HMD에 의해 인식되는 이벤트를 포함한다. 예를 들어, 초기화 동안에, HMD 장치는 도 7 내지 도 19를 참조하여 더 상세히 설명되는 바와 같이, HMD 장치에 의해 액세스되는 컨텐츠를 제어하거나 외부 장치를 제어하기 위해 사용될 HMD 장치의 모션 감지를 허용하는 제스처 기반 제어 모드에 들어갈 수 있다. 초기화는 예를 들어 제어부 클릭 이벤트(예를 들어, HMD 장치 사용자와 HMD 장치의 제어부 또는 HMD 장치와 통신하는 장치와의 상호 작용), 음성, 손 제스처 또는 이미지 인식에 기초하는 것일 수 있다.
동작(604)에서는 이용 가능한 범위가 정의된다. 이용 가능한 범위는 예를 들어 도 5를 참조하여 위에서 나타낸 바와 같이 정의될 수 있으며, 여기서 이용 가능한 범위는 최소 각도에서 최대 각도까지 또는 최소 거리에서 최대 거리까지와 같은, 최소값에서 최대값까지 확장될 수 있다. 이용 가능한 범위는 예를 들어 헤드와 관련된 평균 모션 범위, 특정 사용자와 관련된 모션 범위, HMD가 작동하는 특정 환경의 크기 또는 배향, 예를 들면, 룸(room)의 크기 또는 룸에 있는 객체들의 위치를 포함하는, 상이한 팩터들에 기초하여 결정될 수 있다. 이용 가능한 범위는 또한 외부 장치에 대한 제어를 제공하거나 디스플레이 상의 컨텐츠 탐색과 같은, 애플리케이션 또는 애플리케이션 내의 특정 기능에 의존할 수도 있다.
동작(606)에서 HMD 장치는 HMD에 의해 검출된 헤드 모션과 같은 사용자 움직임에 응답할 수 있다. 예를 들어, 헤드 회전 또는 변형(translation) 또는 신체 회전 또는 변형이 HMD 장치 또는 외부 장치를 제어하기 위한 이벤트로서 감지될 수 있다. 감지된 사용자 움직임에 대한 응답은 개별 미디어 또는 이미지, 비디오, 오디오, 메시 또는 객체와 같은 미디어의 집합을 포함할 수 있는 미디어의 변경을 포함할 수 있다. 사용자 움직임에 응답하는 특정 예들이 아래에서 더 상세히 설명된다. 그 후, 동작(608)에서 초기화 해제가 수행될 수 있다. 일부 실시예들에 따르면, 초기화 해제는 HMD 장치가 제스처 기반 제어 모드를 종료하게 할 수 있다. 초기화 해제는 또한 HMD 장치로 하여금 HMD에 대한 입력으로서 수신되도록 헤드 모션을 사용하는 HMD의 모드를 종료하게 하는 HMD에 의해 인식된 이벤트를 포함할 수 있다. 초기화 해제는 또한 예를 들어 제어부 클릭 이벤트, 음성, 손 제스처 또는 이미지 인식에 의해 야기될 수도 있다.
도 7 내지 도 19는 감지된 모션에 응답하여 액션을 수행하기 위해 플랫폼 또는 앱에 의해 사용될 수 있는 이벤트로서 감지 및 인식될 수 있는 모션의 예들을 제공한다. 시각적 안내 경로들이 디스플레이에 제공될 수 있으며, 이 경로들은 HMD 장치에 의해 제어되는 컨텐츠의 변경 또는 외부 장치의 제어와 같은 결과를 달성하기 위해 필요한 모션을 이해하기 위해 사용자에 의해 사용될 수 있다. 도 7 내지 도 19의 예들은 증강 현실 환경 또는 혼합 현실 환경에서 구현될 수 있으며, 여기서 실제 및 가상 객체들이 오버레이될뿐만 아니라 가상 객체들이 실제 객체들에 앵커링됨으로써 사용자가 결합된 가상/실제 객체들과 상호 작용할 수 있다는 것을 이해해야 한다.
일부 실시예들에 따르면, 컨텐츠는 현실 세계 내의 식별된 정적 위치에 디스플레이될 수 있다. 따라서, HMD 사용자가 이동하거나 헤드 위치를 변경하는 경우, 이 디스플레이된 컨텐츠는 실제 세계 내의 동일한 위치에서 유지된다(따라서 사용자 움직임 또는 헤드 위치 변화의 결과로서 디스플레이의 상이한 위치에 나타나게 된다). 다른 실시예들에 따르면, 컨텐츠는 HMD 장치에 대한 정적 위치에 디스플레이될 수 있으며, 따라서 이 컨텐츠는 사용자의 움직임 또는 헤드 위치의 변화에도 불구하고 항상 디스플레이의 동일한 위치에 디스플레이될 것이다.
도 7a 내지 도 7c는 종방향 움직임(즉, HMD 장치 사용자의 신체의 평면에 수직인 평면에서의 HMD 장치 사용자의 움직임)이 HMD 장치 또는 외부 장치의 제어를 위한 입력으로서 기능할 수 있는 예시적인 시나리오를 도시한 것이다. 아래에서 더 상세히 설명되는 바와 같이, 종방향 움직임의 감지는 디스플레이된 컨텐츠를 조정하는데 사용될 수 있다.
도 7a 내지 도 7c의 예에 따르면, 이 시스템은 범위 내에서 사용자가 위치되는 곳과 연관된 미디어를 디스플레이하며, 여기서는 벽으로부터 멀어질 때 일정 기간(예를 들어, 2014년)의 컨텐츠를 보여주고, 사용자가 벽에 접근함에 따라 보다 최근의 컨텐츠(예를 들어, 2016년)가 디스플레이될 수 있다. 이미지들과 같은 컨텐츠 집합은 특정 연도(예를 들면, 도 7a에 도시된 바와 같이 2014년)로부터의 것일 수 있으며, 여기서 양방향 화살표로 도시된 시각적 안내 경로는 예를 들어 도 7 및 도 8에 도시된 바와 같이 컨텐츠를 변경하기 위해 HMD 장치 사용자가 취할 수 있는 모션을 나타낸다.
종방향 움직임이 감지됨에 따라, 다른 연도의 컨텐츠가 보여질 수도 있다. 이러한 변화는 연대순 변화(예를 들면, 일, 주, 월 또는 년)일 수 있다. 사용자가 앞으로 이동함(즉, HMD 장치의 디스플레이에 컨텐츠를 표시하는 사용자의 벽에 더 가까워짐)에 따라, 도 7b에 도시된 바와 같이, 2015년의 사진들이 디스플레이된다. 사용자가 계속 앞으로 이동함에 따라, 도 7c에 도시된 바와 같이 2016년의 사진들과 같은 보다 최근의 컨텐츠가 보여진다. 컨텐츠 변경의 그래뉼래러티는 컨텐츠를 디스플레이하는 애플리케이션에 기초하여 결정될 수 있으며, 컨텐츠의 양에 따라 달라질 수 있다. 예를 들어, 컨텐츠가 적을 경우(예를 들어, 사진 수가 적을 경우), 기간이 더 짧아질 수 있다(예를 들어, 월). 그러나, 앱이 더 많은 컨텐츠에 액세스할 경우 사용자의 종방향 움직임에 응답하여 디스플레이되는 컨텐츠는 1 년 또는 수 년만큼으로 변경될 수 있다.
도 8a 내지 도 8c는 디스플레이된 컨텐츠를 조정하기 위해 수평 움직임이 사용되는 예시적인 시나리오를 도시한 것이다. 연대순 컨텐츠가 보여지는 예에서, 수평 움직임(즉, 일반적으로 HMD 장치 사용자의 신체의 평면과 평행한 평면에서의 HMD 장치 사용자의 수평 움직임)은 상이한 기간들(예를 들어, 도 7a 내지 도 7c를 참조하여 전술한 바와 같이 일, 주, 월 또는 년)이, 감지된 위치 변화에 기초하여 디스플레이되는 것을 초래할 수 있다. 사용자가 왼쪽으로 이동함에 따라, 이전 연도의 사진들이 디스플레이될 수 있으며, 사용자가 오른쪽으로 이동함에 따라 보다 최근 연도의 사진들이 디스플레이될 수 있다. 또한, 도 7의 실시예에 따른 컨텐츠 변경 그래뉼래러티는 컨텐츠를 디스플레이하는 애플리케이션에 기초하여 결정될 수 있으며, 컨텐츠의 양에 따라 달라질 수 있다.
도 9는 멀티미디어 컨텐츠에서의 위치가 사용자의 감지된 위치 움직임에 기초하여 제어될 수 있는 예시적인 시나리오를 도시한 것이다. 이러한 움직임은 레코딩에서 비디오 또는 오디오 재생의 위치를 제어할 수 있다. 도 9의 실시예에 따르면, 비디오의 재생은 비디오를 시청하는 HMD 장치 사용자의 수평 움직임으로서의 예에 의해 여기서 도시되는, 선형 변형에 의해 제어될 수 있다. 즉, 사용자는 비디오의 어느 부분이 재생되는지를 변경하기 위해 왼쪽 또는 오른쪽으로 이동할 수 있다. 수평 움직임이 예로서 도시되어 있지만, 비디오 재생은 도 7a 내지 도 7c에서 설명된 바와 같이 종방향 움직임에 기초하여 제어될 수도 있음을 이해해야 한다. 최대 및 최소 거리 인디케이터들에 의해 나타나 있는, 시각적 안내 경로는 사용자가 비디오 재생 제어를 위해 수평 이동을 할 수 있도록 안내한다.
도 10은 다수의 위치 움직임 방향들 각각이 멀티미디어 컨텐츠의 양태를 제어할 수 있는 예시적인 시나리오를 도시한 것이다. 예를 들어, 표현 음악 애플리케이션에서, 사용자의 헤드 모션은 가로, 세로 및 수직 방향 모션에 따라 세 가지 변수에 영향을 줄 수 있다. 도 10에 도시된 바와 같이, 오디오 컨텐츠 또는 오디오 편집 소프트웨어의 경우, 수직 움직임(즉, 수직 방향으로 헤드 움직임)이 옥타브(octave)를 제어할 수 있고, 수평 움직임이 지연(delay)을 제어할 수 있으며, 종방향 움직임은 디스토션(distortion)을 제어할 수 있다. 예를 들어 사용자가 점프하거나 웅크리는 것에 의하여 수직 모션이 달성될 수 있다. 옥타브, 지연 및 디스토션이 예로서 도시되어 있지만, 예를 들어 고음, 베이스 또는 음량과 같은 오디오의 다른 특성들이 다수의 위치 움직임 방향들에 기초하여 조정될 수 있음을 이해해야 한다. 옥타브, 지연 또는 디스토션을 변경하는 방법을 나타내는 화살표에 의해 시각적 안내 경로가 제공될 수 있다.
도 11은 회전 움직임이 디스플레이된 컨텐츠의 카테고리 선택을 제어할 수 있는 예시적인 시나리오를 도시한 것이다. 도 11의 예에 따르면, 애플리케이션은 헤드 회전을 사용하여, 예를 들어 여기서는 "과학(Science)", "정치(Politics)" 또는 "엔터테인먼트(Entertainment)"로 도시되어 있는, 상이한 카테고리의 기사들을 미리 볼 수 있다. 도 11의 예에 따르면, 헤드의 후방 및 전방 기울임을 사용하여 디스플레이된 기사에서 커서를 위아래로 움직일 수 있다. 최소 및 최대 회전 값들이 또한 도시되어 있으며, 여기서 최소 임계값(MINTH) 또는 최대 임계값(MAXTH)에 도달할 경우, HMD 장치 사용자가 하나의 카테고리에서 다른 카테고리로 변경될 수 있다. 예를 들어, 헤드 회전이 MINTH 값을 초과하면 디스플레이된 기사가 정치에서 과학으로 전환될 수 있고, 헤드 회전이 MAXTH 값을 초과하면 디스플레이된 기사가 정치에서 엔터테인먼트로 변경될 수 있다. 최소 임계값 또는 최대 임계값에 도달할 때까지 헤드를 앞뒤로 기울이면 상이한 페이지들을 통해 커서를 위아래로 이동시키는 것이 달성될 수 있다. 예를 들어 헤드 전방의 빠른 움직임(즉, 헤드의 끄덕임)과 같은, HMD 장치에 의해 감지될 수 있는 다른 액션에 응답하여 특정 기사가 볼 수 있도록 선택될 수 있다.
도 12는 감지된 헤드 기울임 움직임이 연결되어 있는 장치들을 제어할 수 있는 예시적인 시나리오를 도시한 것이다. 도 12의 구현예에 따르면, 사물 인터넷(IoT) 애플리케이션이 헤드 기울어짐을 트리거로서 사용하여 조명을 토글하거나(예를 들어, 임계값을 초과하는 헤드의 경우, 모든 조명이 온/오프로 토글됨) 또는 조명에 대한 거리 및 시야에 의해 이것이 제어될 수 있다(예를 들면, 사용자가 보고 있는 조명 근처에 있거나 헤드가 임계값을 초과하여 기울어지면, 조명이 온/오프로 토글됨).
도 12에 도시된 바와 같이, 헤드 기울어짐을 감지하기 위한 최소 및 최대 각도가 정의된다. 최소 및 최대 각도는 토글할 임계값을 설정할 수 있도록 정의될 수 있다. 즉, 범위의 최대 및 최소 각도가 확립되고 나면, 토글하기 위한 임계값이 예를 들어 임계값 내의 특정 각도로서 설정될 수 있다. 사용자가 조명을 보고 있으며 토글할 임계값을 초과하는 헤드 기울어짐이 감지되는 경우, 조명이 상태를 변경할 수 있다(즉, 꺼져있을 경우 켜지거나, 켜져있을 경우 꺼질 수 있음). 헤드의 전방 또는 후방 모션과 같은 다른 모션들이 예를 들어 조명을 어둡게 하는 것과 같은, 조명의 다른 특징들을 제어하는데 사용될 수 있다. 램프가 예로서 도시되어 있지만, 다른 장치들 또는 어플라이언스들에 대한 최소/최대 범위 및 토글 임계값의 사용이 확립될 수도 있다.
헤드 모션 감지는 또한 스마트 홈의 장치 또는 요소와 같은, 장치의 상태 또는 조건을 결정하는데 사용될 수 있다.
도 13은 임계값 통과에 기초하여 감지되는 헤드 기울어짐을 사용하여 통지 응답(예를 들어, 거절, 선택 등)이 수행될 수 있는 예시적인 시나리오를 도시한 것이다. AR 또는 VR 플랫폼은 사용자가 UI(User Interface) 계층을 거치지 않고서도 헤드 기울임을 바로 가기로서 사용하여 사용자에게 정보를 제공할 수 있다. 예를 들어, 사용자가 무선으로 제어 가능한 도어 락을 가지고 있는 경우, 사용자는 도어가 잠겨 있는지 여부를 사용자에게 보여주는 바로 가기 액션을 설정할 수 있다. 즉, 헤드 기울임이 "체크 임계값"(즉, 도어가 잠겼는지 여부를 알아보기 위한 임계값)을 초과할 경우, HMD 디스플레이에 또는 가청 피드백을 사용하는 것과 같은 다른 표시에 의해 응답이 제공될 수 있다. 체크 임계값은 스마트 홈의 다양한 장치들과 연관될 수 있으며, 여기서 체크되는 장치는 예를 들어 HMD 장치 사용자가 보고 있는 위치에 기초하여 결정될 수 있다.
도 14는 연결된 장치가 감지된 사용자의 위치 움직임에 기초하여 제어될 수 있는 다른 예시적인 시나리오를 도시한 것이다. 도 14의 예에서, HMD 장치는 광학 입력(예를 들어, 카메라)에 기초하여 사용자의 랩탑과 같은 장치를 인식하고, 임계값을 통과하는 기울임 움직임에 기초하여 사용자가 랩탑을 잠그거나 잠금 해제할 수 있게 한다. 예를 들어, "잠금 해제 임계값"을 지나서 오른쪽으로 헤드가 기울어지면 랩탑 잠금이 해제될 수 있다. 다른 구현예들에 따르면, "잠금 임계값"을 지나 왼쪽으로 헤드가 기울어지면 랩탑을 잠글 수 있다.
도 15 및 도 16은 HMD 장치 사용자가 향하는 방향 또는 제어되는 장치에 대한 사용자의 근접성에 기초하여 장치가 턴 온 또는 턴 오프되거나 달리 제어될 수 있는 예들을 도시한 것이다. 도 15는 HMD 장치 사용자가 향하고 있는 방향에 기초하여 장치가 제어될 수 있는 예시적인 시나리오를 도시한 것이다. 도 15의 예에 따르면, 사용자는 HMD 장치에 의해 제어될 수 있는 스피커 및 램프를 가지고 있을 수 있다. 따라서, HMD 장치는 HMD 장치 사용자가 어느 곳을 향하고 있는지 따라, 제어 신호를 특정 장치로만 전송하게 된다.
제어할 장치를 선택하기 위한 결정은 HMD의 각종 센서들을 사용하여 달성될 수 있다. 일 방법에 따르면, 룸의 사용자 및 가상 객체들의 위치들에 대한 공간 맵이 유지될 수 있다. 사용자는 공간 맵에서 IoT 장치들과 같은 장치들의 상이한 위치들에 라벨을 지정할 수 있다. 라벨이 지정되고 나면, HMD는 사용자의 시선이 트리거 임계값 내에 있는지를 계산할 수 있다. 사용자가 시선 트리거 임계값 내에서 응시하고 있고 사용자가 기울어짐 임계값을 초과하여 헤드를 기울이는 경우, 이벤트가 시선 임계값 내의 장치로 전달될 수 있다. 다른 방법에 따르면, 장치는 제어될 수 있는 이전에 식별된 외부 장치를 식별하기 위해 이미지 인식을 사용할 수 있다. 그 후, HMD는 HMD 카메라의 중심에 가장 가까운 장치에 기초하여 제어할 장치를 결정할 수 있다.
대안적으로, 도 16의 예에 따르면, 복수의 외부 장치들 중의 하나의 장치가 HMD 장치 사용자와 그 외부 장치의 근접성에 기초하여 제어될 수 있다. 도 16에 도시된 바와 같이, 사용자가 스마트 스피커에서 1 미터 떨어져 있고 램프에서 2 미터 떨어져 있는 경우, 감지된 헤드 모션들이 더 가까운 장치를 제어하는데 사용된다. HMD 장치로부터 외부 장치까지의 거리는 HMD 장치의 하나 이상의 센서들에 의해 감지될 수 있다. 예를 들어, 카메라 또는 다른 센서들(사용자에 의해 또는 객체 검출 알고리즘을 통해 생성된)을 사용하는 가상 맵이, 감지된 장치들에 기초하여 생성될 수 있다. 장치의 제어가 그 장치까지의 거리에 기초하는 것인 경우, HMD는 공간 맵에 라벨링된 장치들과 사용자 사이의 거리를 계산할 수 있다. 그 후, 사용자가 기울임 임계값을 초과하여 헤드를 기울이면, 가장 가까운 장치가 제어될 수 있다.
또한 이미지 인식이 장치들의 상대적인 크기들이 고려될 수 있는, 거리 기반 결정에 사용될 수 있다. 예를 들어, 도 16의 거리 기반 결정에서 하나의 장치가 다른 장치들에 비해 더 큰 경우, 더 가까운 것으로 나타나는 장치가 사용될 수 있다. 시선 기반 제어를 사용하든 거리 기반 제어를 사용하든, 이미지 인식을 사용하려면 장치가 카메라의 시야 내에 있어야 한다. 대안적으로, 다른 센서 데이터가 사용될 수도 있다. 예를 들어, 블루투스 신호로부터의 수신기 신호 강도 인디케이터(receiver signal strength indicator, RSSI) 신호가 사용될 수 있다. 도 15 및 도 16의 이러한 구성은 제어될 수 있는 다수의 장치를 갖는 스마트 홈 환경에서와 같이, 다수의 장치들이 HMD 장치 사용자에 의해 제어될 수 있는 환경에서 유리할 수 있다.
도 17 내지 도 19는 장치를 제어하기 위한 다방향 헤드 모션에 대한 추가 예들을 도시한 것이다. 도 17의 예에 따르면, HMD 장치 사용자는 한 축에서의 헤드 기울임을 사용하여 변경될 설정을 선택하고, 다른 축을 사용하여 설정 값을 변경하는 것과 같이, 장치의 설정들을 토글할 수 있다. 예를 들어, 전방 및 후방 헤드 기울임을 사용하여 임계값에 도달할 경우 변경될 수 있는 복수의 설정들 중의 특정 설정을 선택할 수 있으며, 그 후 사이드 투 사이드(side-to-side) 헤드 기울임을 사용하여 선택된 설정을 변경할 수 있다(예를 들면, 볼륨). 예를 들어 시각적 또는 오디오 피드백을 통해 설정들이 변경되고, 설정들에 대해 선택된 값들이 사용자에게 제공될 수 있다.
도 18의 예에 따르면, HMD 장치 사용자는 연결된 TV에 대한 TV 그리드 메뉴의 컨텐츠를 탐색할 수 있으며, 여기서 전방 및 후방 헤드 기울임 모션들은 그리드에서 상하로 이동하는데 사용될 수 있으며, 사이드 투 사이드 헤드 기울임은 그리드에서 좌우로 이동하는데 사용될 수 있다. 최소 및 최대 임계값들은 한 행에서 다른 행으로 또는 한 열에서 다른 열로 이동하는데 사용될 수 있다. 도 19에 도시된 바와 같이 연결된 TV의 다른 예에 따르면, HMD 장치 사용자는 3개의 회전 축을 사용하여 컨텐츠를 탐색할 수 있으며, 여기서는 사이드 투 사이드 기울임이 레벨들 사이에서 이동하기 위해 추가로 사용될 수 있다.
예를 들어, 하나의 헤드 모션(예를 들어, 헤드를 좌측 또는 우측으로 돌리는 것)은 커서를 이동시키거나 스크린 상의 행에 있는 복수의 이미지들 중의 일 이미지의 선택을 가능하게 하는데 사용될 수 있다(예를 들어, 최소 및 최대 임계값들을 사용하여 행을 따라 스크롤할 수 있는 경우, 연결된 TV에 대한 프로그래밍 옵션). 헤드를 좌측 또는 우측으로 기울이는 등의 두 번째 헤드 모션은 프로그래밍의 레벨을 선택하는데 사용될 수 있다. 세 번째 헤드 모션(예를 들면, 헤드를 전방 및 후방으로 기울임)은 위/아래로 스크롤하는데 사용될 수 있으며, 여기서 최소 및 최대 임계값들은 예를 들어 상이한 행들로 스크롤하는데 사용될 수 있다. 최소 및 최대 값들은 상이한 헤드 모션들과 관련된 안내 경로들이 도 11 내지 도 19의 예들에서 제공되어 사용자가 HMD에 의해 이벤트로서 감지된 액션을 수행할 수 있게 하고, 이에 따라 HMD 장치가 그 액션에 응답할 수 있게 할 때에 제공될 수 있다.
도 20a, 도 20b 및 도 21은 HMD 장치를 동작시키는 방법들을 설명하고 있으며, 예를 들어 도 1 내지 도 19에 설명된 실시예들 중의 어느 것 또는 다른 적합한 장치들 및 시스템들을 사용하여 구현될 수 있다.
도 20a는 이벤트의 감지에 응답하여 플랫폼 이벤트 핸들러 및 애플리케이션 이벤트 핸들러를 동작시키는 방법을 도시한 흐름도이다.
도 20a를 참조하면, 동작(2002)에서 도 4의 센서들(420)과 같은 센서들이 원시 데이터를 이벤트 감지기로 전송한다. 동작(2004)에서 도 4의 프로세서(410)와 같은 이벤트 감지기는, 센서 데이터가 정의된 이벤트들과 매칭되는지를 결정할 수 있다. 동작(2006)에서 이벤트가 감지되는지 여부가 결정된다. 하나 이상의 센서들로부터의 센서 데이터가 예를 들어 메모리(428)에 저장된 센서 이벤트 정의에 대응하는 경우 이벤트가 식별될 수 있다.
이벤트가 감지되는 경우, 동작(2008)에서 이벤트가 플랫폼에 의해 보호되는지 여부가 결정된다. 즉, 이벤트는 플랫폼에 의해 보호될 수 있으며, 여기서 플랫폼은 앱 개발자들이 앱 실행 시에 감지된 이벤트에 응답하여 제어 신호를 생성하기 위해 감지된 이벤트를 사용하는 것으로 이벤트를 이용하지 못하게 한다. 이벤트가 플랫폼에 의해 보호되지 않는 경우, 동작(2010)에서 이벤트가 애플리케이션들에 이용될 수 있다.
이벤트는 다양한 이유로 HMD 장치의 플랫폼에 의해 보호될 수 있다. 예를 들어, HMD는 특정 이벤트들을 플랫폼 전용으로 유지하려고 할 수 있으며, 플랫폼과 독립적인 개발자들에 의해 제공된 애플리케이션들에서 해당 이벤트들이 이용되지 못하게 할 수 있다. 일부 실시예들에 따르면, 애플리케이션은 특정 시맨틱 이벤트들을 수신하기 위해 플랫폼에 등록할 수 있다. 예를 들어, 인터넷 애플리케이션 개발자는 'touchstart'라는 이벤트에 대한 인터넷 요소 모니터를 가질 수 있다. 브라우저가 사용자에 의한 화면 터치를 감지하는 경우, 플랫폼은 모든 이벤트 리스너(event listener)들이 이 이벤트를 인식하게 할 수 있다. 대안적으로, 플랫폼에서는 사용하려고 하지만 개발자들이 액세스하기를 원하지 않는 이벤트들이 존재할 수 있다. 예를 들어, 휴대폰 애플리케이션에서 작동하고 있고 홈 버튼이 눌려지는 경우, 플랫폼은 사용자가 앱을 종료하고 홈 화면으로 되돌아 갈 수 있게 하는 한편, 개발자의 애플리케이션은 'homebuttondown' 이벤트를 수신하지 못할 수 있다. 다른 예로서, 공간 컴퓨팅 헤드 변환 컨텍스트에서, 플랫폼은 플랫폼 기능을 위해 'headtiltleft' 이벤트를 이용할 수 있으며, 개발자가 이 이벤트를 오버라이트하지 못하게 할 수 있다.
그 후, 동작(2012)에서 앱이 그 이벤트를 사용하는지 여부가 결정된다. 앱이 그 이벤트를 사용하지 않는 경우, 이 이벤트에 기초하여 액션이 취해지지 않으며, 동작(2014)에서 프로세스가 종료된다.
동작(2012)에서 앱이 이벤트를 사용하는 것으로 결정되는 경우, 동작(2016)에서 사용자 설정이 디폴트 동작을 변경하는지 여부가 결정된다. 그렇지 않은 경우, 동작(2018)에서 앱 이벤트 핸들러가 디폴트 정의된 액션을 수행한다. 그렇지 않으면, 동작(2020)에서 앱 이벤트 핸들러가 사용자 정의 액션을 수행한다.
보호되는 이벤트는 플랫폼에 의해서만 수행될 수 있기 때문에, 동작(2008)에서 플랫폼에 의해 보호되는 것으로 결정된 이벤트들은 블록들(2022-2026)에서 플랫폼 이벤트 핸들러에 의해서만 수행된다. 따라서, 이벤트가 플랫폼에 의해 보호되는 것으로 결정되는 경우, 동작(2022)에서 사용자 설정이 디폴트 동작을 변경하는지 여부가 결정된다. 사용자 설정이 디폴트 동작을 변경하지 않는 경우, 동작(2024)에서 플랫폼 이벤트 핸들러가 디폴트 정의된 액션들을 수행한다. 그러나, 사용자 설정이 디폴트 동작을 변경하는 경우에는, 동작(2026)에서 플랫폼 이벤트 핸들러가 사용자 정의 액션을 수행한다.
도 20b는 이벤트의 감지에 응답하여 비연속적(discrete) 또는 연속적 액션들을 수행하는 방법을 도시한 흐름도이다.
도 20b의 흐름도에 따르면, 동작(2024)에서 플랫폼 이벤트 핸들러가 디폴트 정의 액션을 수행하거나, 동작(2026)에서 플랫폼 이벤트 핸들러가 사용자 정의 액션을 수행하거나, 동작(2018)에서 앱 이벤트 핸들러가 디폴트 정의 액션을 수행하거나, 또는 동작(2020)에서 앱 이벤트 핸들러가 사용자 정의 액션을 수행한 후에(도 20a에서 전술한 바와 같음), 동작(2030)에서 그 액션이 비연속적 액션인지 또는 연속적 액션인지 여부를 결정한다. 액션이 비연속적 액션인 경우, 동작(232)에서 단일의 액션 또는 기능이 수행된다. "비연속적" 액션은 단계적/양자적 상태로 간주될 수 있는 반면, "연속적"은 아날로그 상태로 간주될 수 있다. 도 7 및 도 8에서의 연도를 이동하는 예를 사용하면, 비연속적 구현은 예를 들어 사용자가 "다음 연도" 또는 "이전 연도"를 선택할 수 있는, 특정 연도로 이동할 수 있는 옵션을 제공한다.
그러나, 액션이 연속적 액션인 경우, 동작(2034)에서 HMD 장치는 변화를 감지하기 위한 센서의 모니터링을 시작한다. 동작(2036)에서 HMD 장치가 센서 변화 및 이벤트에 응답한다. 예를 들어, HMD는 사용자의 움직임에 기초하여 감지된 이벤트에 기초하여, 액션을 취할 수 있다. 동작(2038)에서 HMD 장치가 센서 변화 모니터링을 중지해야 하는지 여부가 결정된다. 긍정인 경우, 동작(2040)에서 HMD 장치가 센서 변화 모니터링을 중지한다. 그렇지 않은 경우, 동작(2034)에서 HMD 장치가 센서 변화를 계속 모니터링한다.
연속적인 구현은 슬라이더(slider)의 사용을 가능하게 할 수 있으며, 여기서 사용자는 2개의 지점 사이에서 연속적으로 이동하여 수 년의 범위 내에 다른 위치로 이동할 수 있다. 예를 들어, 사용자는 스크러빙된 위치에 가장 가까운 특정 날짜를 중심으로 하는 범위 내에서 미디어를 볼 수 있다.
도 21은 헤드 마운트 디스플레이 장치를 동작시키는 방법을 도시한 흐름도이다.
도 21을 참조하면, 동작(2102)에서 모션에 대한 가용 범위가 정의된다. 가용 범위는 예를 들어도 5를 참조하여 전술한 바와 같이 정의될 수 있다. 동작(2104)에서 가용 범위에 대한 그래픽 사용자 인터페이스가 디스플레이에 출력된다. 예를 들어, 그래픽 사용 인터페이스는 예를 들어 컨텐츠를 변경하기 위해 취할 수 있는 모션을 표시하기 위한 도 7 내지 도 19를 참조하여 전술한 바와 같이 컨텐츠를 조정하기 위한 움직임용의 시각적 안내 경로를 출력할 수 있다. 동작(2106)에서는 가용 범위 내에서, 모션 감지기에 의해 감지된 HMD 장치의 모션에 기초한 입력이 수신된다. 일부 실시예들에 따르면, 최소 및 최대 임계값들이 HMD 장치 또는 외부 장치를 제어하는데 사용될 수 있다. 예를 들어, 동작(2108)에서 이 입력은 전술한 최소 및 최대 임계값들과 같은 HMD 장치의 모션과 관련된 임계값과 비교될 수 있다. 동작(2110)에서 이 입력이 임계값을 초과하는 경우, HMD 장치에 의해 액세스되는 컨텐츠가 제어된다.
본 방법은 외부 장치의 제스처 기반 제어를 위한 최적의 범위를 결정하는 동작을 더 포함할 수 있다. 일부 실시예들에 따르면, HMD 장치에 의해 액세스되는 컨텐츠는 디스플레이에 제공되거나 외부 장치에 의해 제공되는 컨텐츠 중 적어도 하나를 포함할 수 있다. 가용 범위 내에서, 모션 감지기에 의해 감지된 HMD 장치의 모션에 기초하여 입력을 수신하는 것은 수평 헤드 움직임, 종방향 헤드 움직임, 수직 헤드 움직임, 또는 회전 헤드 움직임 중 적어도 하나를 감지하는 것을 포함할 수 있다. 그래픽 사용자 인터페이스를 출력하는 것은 컨텐츠를 조정하기 위한 움직임용의 시각적 안내 경로를 출력하는 것을 포함할 수 있다. 본 방법은 오디오 또는 비디오 컨텐츠 중 적어도 하나 내의 위치에 대한 인디케이터를 디스플레이에 출력하는 동작을 더 포함할 수 있다. HMD 장치에 의해 액세스되는 컨텐츠를 제어하는 것은 컨텐츠 내의 이벤트 시간 조정 또는 오디오 컨텐츠 또는 비디오 컨텐츠 중 적어도 하나 내의 재생 위치 변경 중 적어도 하나를 구현하는 것을 포함할 수 있다.
도면들에 도시된 영역들은 단지 예시일뿐이라는 것에 유의해야 한다. 또한, 상기한 예시들이 2 차원으로 도시되어 있지만, 구역들이 종종 3 차원이라는 점에 유의해야 한다. 예시의 명확성 및 용이성을 위해, 도면들이 반드시 스케일링된 것은 아니라는 점에 유의해야 한다.
상기한 상세한 도면들이 다양한 실시예들에 적용되는 본 발명의 신규한 특징들을 도시 및 설명하고 지적하였지만, 본 발명으로부터 일탈하지 않는 범위 내에서 도시된 장치 또는 프로세스의 형태 및 세부 사항에서의 다양한 생략, 대체 및 변경이 당업자에 의해 이루어질 수 있음을 이해할 것이다. 본 설명은 결코 제한적인 의미가 아니며, 본 발명의 일반적인 원리를 예시하는 것으로 간주되어야 한다.
실시예들이 그것의 특정 버전들을 참조하여 설명되었지만, 다른 버전들도 가능하다. 그러므로, 본 실시예들의 사상 및 범위는 본 명세서에 포함된 바람직한 버전들에 대한 설명으로 제한되지 않아야 한다.

Claims (20)

  1. 헤드 마운트 디스플레이(head mounted display, HMD) 장치에 있어서,
    모션 감지기(motion detector);
    디스플레이;
    상기 모션 감지기 및 상기 디스플레이에 커플링되는 프로세서; 및
    상기 프로세서에 커플링되는 메모리를 포함하며,
    상기 메모리는 상기 프로세서로 하여금,
    모션에 대한 가용 범위를 정의하고,
    상기 가용 범위에 대한 그래픽 사용자 인터페이스를 상기 디스플레이에 출력하고,
    상기 가용 범위 내에서, 상기 모션 감지기에 의해 감지된 상기 HMD 장치의 모션에 기초하여, 입력을 수신하며, 및
    상기 입력에 응답하여 상기 HMD 장치 또는 외부 장치 중 하나를 제어하도록 하는 실행 가능한 인스트럭션(instruction)들을 저장하는, HMD 장치.
  2. 제1항에 있어서, 상기 메모리는,
    상기 입력을 상기 HMD 장치의 모션과 관련된 임계값과 비교하고, 상기 입력이 상기 임계값을 초과하는 경우 상기 HMD 장치 또는 상기 외부 장치를 제어하도록 하는 인스트럭션들을 더 저장하는, HMD 장치.
  3. 제1항에 있어서, 상기 HMD 장치 또는 상기 외부 장치를 제어하는 것은,
    상기 디스플레이에 제공되거나 외부 장치에 의해 제공되는 컨텐츠를 제어하는 것을 포함하는, HMD 장치.
  4. 제1항에 있어서,
    상기 HMD 장치의 모션은 수평 헤드(head) 움직임, 종방향 헤드 움직임, 수직 헤드 움직임, 또는 회전 헤드 움직임 중 적어도 하나를 포함하는, HMD 장치.
  5. 제1항에 있어서, 상기 그래픽 사용자 인터페이스를 출력하는 것은,
    상기 HMD 장치 또는 상기 외부 장치 중 하나를 제어하는 움직임을 위한 시각적 안내 경로(visual guide path)를 출력하는 것을 포함하는, HMD 장치.
  6. 제1항에 있어서,
    상기 메모리는 오디오 또는 비디오 컨텐츠 중 적어도 하나 내의 위치에 대한 인디케이터를 상기 디스플레이에 출력하도록 하는 인스트럭션들을 더 저장하는, HMD 장치.
  7. 제1항에 있어서, 상기 컨텐츠를 제어하는 것은,
    컨텐츠 내의 이벤트 시간 조정 또는 오디오 컨텐츠 또는 비디오 컨텐츠 중 적어도 하나 내의 재생 위치 변경 중 적어도 하나를 구현하는 것을 포함하는, HMD 장치.
  8. 제1항에 있어서, 상기 HMD 장치를 제어하는 것은,
    현실 세계 내의 식별된 정적(static) 위치에 컨텐츠를 디스플레이하는 것을 포함하는, HMD 장치.
  9. 제1항에 있어서, 상기 HMD 장치를 제어하는 것은,
    상기 HMD에 대한 정적 위치에 컨텐츠를 디스플레이하는 것을 포함하는, HMD 장치.
  10. 헤드 마운트 디스플레이(HMD) 장치의 동작 방법에 있어서,
    모션에 대한 가용 범위를 정의하는 동작;
    상기 가용 범위에 대한 그래픽 사용자 인터페이스를 상기 HMD 장치의 디스플레이에 출력하는 동작;
    상기 가용 범위 내에서, 상기 HMD 장치의 모션 감지기에 의해 감지된 상기 HMD 장치의 모션에 기초하여, 입력을 수신하는 동작; 및
    상기 입력에 응답하여 상기 HMD 장치 또는 외부 장치 중 하나를 제어하는 동작을 포함하는 방법.
  11. 제10항에 있어서,
    상기 입력을 상기 HMD 장치의 모션과 관련된 임계값과 비교하는 동작; 및
    상기 입력이 상기 임계값을 초과하는 경우 상기 HMD 장치 또는 상기 외부 장치를 제어하는 동작을 더 포함하는 방법.
  12. 제10항에 있어서, 상기 HMD 장치 또는 상기 외부 장치를 제어하는 동작은,
    상기 HMD 장치의 상기 디스플레이에 제공되는 컨텐츠를 제어하거나 상기 외부 장치를 제어하는 동작을 포함하는 방법.
  13. 제10항에 있어서, 상기 가용 범위 내에서, 상기 모션 감지기에 의해 감지된 상기 HMD 장치의 모션에 기초하여, 입력을 수신하는 동작은,
    수평 헤드 움직임, 종방향 헤드 움직임, 수직 헤드 움직임, 또는 회전 헤드 움직임 중 적어도 하나를 감지하는 동작을 포함하는 방법.
  14. 제10항에 있어서, 상기 그래픽 사용자 인터페이스를 출력하는 동작은,
    상기 HMD 장치 또는 상기 외부 장치 중 하나를 제어하는 움직임을 위한 시각적 안내 경로를 출력하는 동작을 포함하는 방법.
  15. 제10항에 있어서,
    오디오 또는 비디오 컨텐츠 중 적어도 하나 내의 위치에 대한 인디케이터를 상기 디스플레이에 출력하는 동작을 더 포함하는, 방법.
  16. 제10항에 있어서, 상기 HMD 장치 또는 상기 외부 장치 중 하나를 제어하는 동작은,
    컨텐츠 내의 이벤트 시간 조정 또는 오디오 컨텐츠 또는 비디오 컨텐츠 중 적어도 하나 내의 재생 위치 변경 중 적어도 하나를 구현하는 동작을 포함하는 방법.
  17. 컴퓨터 판독 가능 저장 매체(computer readable medium)에 있어서,
    모션에 대한 가용 범위를 정의하는 동작;
    상기 가용 범위에 대한 그래픽 사용자 인터페이스를 디스플레이에 출력하는 동작;
    상기 가용 범위 내에서, 모션 감지기에 의해 감지된 상기 HMD 장치의 모션에 기초하여, 입력을 수신하는 동작; 및
    상기 입력에 응답하여 상기 HMD 장치 또는 외부 장치 중 하나를 제어하는 하는 동작을 수행하도록 하는 인스트럭션들을 저장하는 컴퓨터 판독 가능 저장 매체.
  18. 제17항에 있어서,
    상기 HMD 장치 또는 상기 외부 장치 중 하나를 제어하는 것은, 상기 입력을 상기 HMD 장치의 모션과 관련된 임계값과 비교하고, 상기 입력이 상기 임계값을 초과할 경우 상기 HMD 장치 또는 상기 외부 장치를 제어하는 인스트럭션들을 포함하는 컴퓨터 판독 가능 저장 매체.
  19. 제17항에 있어서,
    상기 가용 범위 내에서, 상기 모션 감지기에 의해 감지된 상기 HMD 장치의 모션에 기초하여, 입력을 수신하는 것은, 수평 헤드 움직임, 종방향 헤드 움직임, 수직 헤드 움직임, 또는 회전 헤드 움직임 중 적어도 하나를 감지하는 인스트럭션들을 포함하는 컴퓨터 판독 가능 저장 매체.
  20. 제17항에 있어서,
    상기 HMD 장치 또는 상기 외부 장치 중 하나를 제어하는 것은 컨텐츠 내의 이벤트 시간 조정 또는 오디오 컨텐츠 또는 비디오 컨텐츠 중 적어도 하나 내의 재생 위치 변경 중 적어도 하나를 구현하는 인스트럭션들을 포함하는 컴퓨터 판독 가능 저장 매체.
KR1020190152964A 2018-12-19 2019-11-26 헤드 마운트 장치 입력을 위한 시스템 및 방법 KR20200076588A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862782146P 2018-12-19 2018-12-19
US62/782,146 2018-12-19
US16/565,607 US11055923B2 (en) 2018-12-19 2019-09-10 System and method for head mounted device input
US16/565,607 2019-09-10

Publications (1)

Publication Number Publication Date
KR20200076588A true KR20200076588A (ko) 2020-06-29

Family

ID=71098719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190152964A KR20200076588A (ko) 2018-12-19 2019-11-26 헤드 마운트 장치 입력을 위한 시스템 및 방법

Country Status (2)

Country Link
US (1) US11055923B2 (ko)
KR (1) KR20200076588A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024005530A1 (ko) * 2022-06-28 2024-01-04 이상민 실물경제 기반의 메타버스 시스템 및 작동 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11252262B2 (en) 2019-10-28 2022-02-15 Facebook Technologies, Llc Coordination among artificial reality links
CN114077302A (zh) * 2020-08-21 2022-02-22 华为技术有限公司 一种智能眼镜及其交互方法和交互装置
US11867904B2 (en) 2020-12-18 2024-01-09 Samsung Electronics Co., Ltd. Method and electronic device for providing augmented reality environment
US11449149B2 (en) * 2021-02-03 2022-09-20 Google Llc Assistant device arbitration using wearable device data

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070222746A1 (en) 2006-03-23 2007-09-27 Accenture Global Services Gmbh Gestural input for navigation and manipulation in virtual space
WO2009063968A1 (ja) 2007-11-16 2009-05-22 Nikon Corporation 制御装置、ヘッドマウントディスプレイ装置、プログラム及び制御方法
US20120188148A1 (en) 2011-01-24 2012-07-26 Microvision, Inc. Head Mounted Meta-Display System
JP5880115B2 (ja) 2012-02-17 2016-03-08 ソニー株式会社 ヘッドマウントディスプレイ、ヘッドマウントディスプレイ制御プログラム及びヘッドマウントディスプレイの制御方法
RU2635230C2 (ru) 2012-05-08 2017-11-09 Филипс Лайтинг Холдинг Б.В. Осветительное применение для интерактивного электронного устройства
US9219901B2 (en) 2012-06-19 2015-12-22 Qualcomm Incorporated Reactive user interface for head-mounted display
JP6339887B2 (ja) 2014-07-24 2018-06-06 シャープ株式会社 画像表示装置
US10043319B2 (en) * 2014-11-16 2018-08-07 Eonite Perception Inc. Optimizing head mounted displays for augmented reality
EP3286620A4 (en) 2015-04-20 2018-12-05 Tiltsta Pty Ltd. Interactive media system and method
US9665170B1 (en) 2015-06-10 2017-05-30 Visionary Vr, Inc. System and method for presenting virtual reality content to a user based on body posture
US10112111B2 (en) * 2016-03-18 2018-10-30 Sony Interactive Entertainment Inc. Spectator view perspectives in VR environments
KR20170126295A (ko) 2016-05-09 2017-11-17 엘지전자 주식회사 헤드 마운티드 디스플레이 장치 및 그것의 제어방법
US10089063B2 (en) 2016-08-10 2018-10-02 Qualcomm Incorporated Multimedia device for processing spatialized audio based on movement

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024005530A1 (ko) * 2022-06-28 2024-01-04 이상민 실물경제 기반의 메타버스 시스템 및 작동 방법

Also Published As

Publication number Publication date
US20200202629A1 (en) 2020-06-25
US11055923B2 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
US11164380B2 (en) System and method for transition boundaries and distance responsive interfaces in augmented and virtual reality
US11137881B2 (en) Method and apparatus for changing screen in electronic device
US11055923B2 (en) System and method for head mounted device input
KR102649254B1 (ko) 디스플레이 제어 방법, 저장 매체 및 전자 장치
KR102628044B1 (ko) 삼차원 가상 현실 환경에서의 이차원 애플리케이션 사용을 위한 시스템 및 방법
KR102348947B1 (ko) 전자장치의 화면 표시 제어 방법 및 장치
KR102303420B1 (ko) 전자 장치 및 전자 장치의 윈도우 관리 방법
KR102537922B1 (ko) 디스플레이 사이의 각도를 측정하는 방법 및 이를 사용하는 전자 장치
US9633412B2 (en) Method of adjusting screen magnification of electronic device, machine-readable storage medium, and electronic device
AU2014201856B2 (en) APP operating method and device and app output device supporting the same
KR102576654B1 (ko) 전자 장치 및 그의 제어 방법
KR102324083B1 (ko) 화면 확대 제공 방법 및 그 전자 장치
KR102481632B1 (ko) 전자 장치 및 전자 장치의 디스플레이를 이용한 적응적 터치 입력 방법
KR102299774B1 (ko) 화면 구성 방법, 전자 장치 및 저장 매체
EP2947556B1 (en) Method and apparatus for processing input using display
KR20160011915A (ko) 화면 제어 방법 및 이를 사용하는 전자 장치
US10890982B2 (en) System and method for multipurpose input device for two-dimensional and three-dimensional environments
KR20160027775A (ko) 터치 입력 처리 방법 및 그 장치
US11036381B2 (en) Flexible device and operation method of flexible device
KR102373170B1 (ko) 하나 이상의 아이템들을 동시에 표시하는 방법 및 이를 위한 전자 장치
KR20170089655A (ko) 뷰 계층(뷰 레이어)들을 이용하여 입력을 처리하는 방법 및 전자장치
KR20170049991A (ko) 압력 터치를 이용한 사용자 인터렉션 제공 방법 및 그를 이용하는 전자 장치
US10719147B2 (en) Display apparatus and control method thereof
KR20150081749A (ko) 화면 업데이트 방법, 저장 매체 및 전자 장치
KR20180058097A (ko) 이미지를 표시하는 전자 장치 및 그 제어 방법