KR20200010296A - 가상, 증강 및 혼합 현실 디스플레이 시스템들을 위한 키보드들 - Google Patents

가상, 증강 및 혼합 현실 디스플레이 시스템들을 위한 키보드들 Download PDF

Info

Publication number
KR20200010296A
KR20200010296A KR1020197035797A KR20197035797A KR20200010296A KR 20200010296 A KR20200010296 A KR 20200010296A KR 1020197035797 A KR1020197035797 A KR 1020197035797A KR 20197035797 A KR20197035797 A KR 20197035797A KR 20200010296 A KR20200010296 A KR 20200010296A
Authority
KR
South Korea
Prior art keywords
user
keyboard
virtual
physical
physical keyboard
Prior art date
Application number
KR1020197035797A
Other languages
English (en)
Other versions
KR102552551B1 (ko
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 KR20200010296A publication Critical patent/KR20200010296A/ko
Application granted granted Critical
Publication of KR102552551B1 publication Critical patent/KR102552551B1/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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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
    • 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
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/021Arrangements integrating additional peripherals in a keyboard, e.g. card or barcode reader, optical scanner
    • G06F3/0213Arrangements providing an integrated pointing device in a keyboard, e.g. trackball, mini-joystick
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/0219Special purpose keyboards
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0238Programmable keyboards
    • 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
    • G06F3/042Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
    • G06F3/0425Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected
    • G06F3/0426Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected tracking fingers with respect to a virtual keyboard projected or printed on the surface
    • 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
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • G06K9/00335
    • G06K9/00671
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • 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/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Databases & Information Systems (AREA)
  • Social Psychology (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Psychiatry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

가상 현실, 증강 현실 및 혼합 현실 디스플레이 시스템들을 위한 사용자 인터페이스들이 개시된다. 사용자 인터페이스들은 가상 또는 물리적 키보드들일 수 있다. 사용자 인터페이스들을 디스플레이하고, 구성하며 그리고/또는 사용자 인터페이스들과 인터페이싱하기 위한 기법들이 설명된다. 일례에서, 물리적 키보드는 사용자의 물리적 환경에 제공된다. 외향 이미징 시스템은 환경을 이미징하고, 하드웨어 프로세서는 키보드를 인식하기 위해 이미지를 분석한다. 그런다음, 하드웨어 프로세서는 콘텍스추얼 정보를 기반으로 물리적 키보드에 대한 사양을 결정하고, 사양에 기반하여 물리적 키보드의 기능들을 동적으로 구성한다. 그런다음, 하드웨어 프로세서는 사양에 기반하여 가상 키 라벨의 렌더링 위치를 결정하고, 결정된 렌더링 위치에서 가상 키 라벨을 렌더링하도록, 사용자의 물리적 환경에 가상 콘텐츠를 제공할 수 있는 디스플레이 시스템에 명령한다.

Description

가상, 증강 및 혼합 현실 디스플레이 시스템들을 위한 키보드들
[0001] 본 출원에 출원된 바와 같이 국외 또는 국내 우선권 주장이 출원 데이터 시트에서 식별되는 임의의 그리고 모든 출원들은 이로써 37 CFR 1.57에 따라 인용에 의해 포함된다. 본 출원은 2017년 5월 19일자 출원된 미국 가출원 제62/508,974호, 2017년 5월 22일자 출원된 미국 가출원 제62/509,648호, 및 2018년 3월 19일자 출원된 미국 가출원 제62/644,597호에 대한 우선권을 주장하며, 이 출원들 각각은 명칭이 "KEYBOARD FOR VIRTUAL, AUGMENTED, AND MIXED REALITY DISPLAY SYSTEMS"이고, 이 출원들 각각은 이로써 그 전체가 인용에 의해 본원에 포함된다.
[0002] 본 개시내용은 가상 현실 및 증강 현실 이미징 및 시각화 시스템들에 관한 것으로, 보다 구체적으로는 가상 현실 및 증강 현실 이미징 및 시각화 시스템들과 연관될 수 있는 키보드들에 관한 것이다.
[0003] 현대 컴퓨팅 및 디스플레이 기술들은 소위 "가상 현실", "증강 현실", 또는 "혼합 현실" 경험들을 위한 시스템들의 개발을 가능하게 했으며, 여기서 디지털적으로 재생된 이미지들은, 그들이 실제인 것으로 지각될 수 있는 방식으로 사용자에게 제시된다. 가상 현실 또는 "VR" 시나리오는 전형적으로 다른 실제 실세계 시각 입력에 대한 투명도 없이 디지털 또는 가상 이미지 정보의 프리젠테이션을 수반한다. 증강 현실 또는 "AR" 시나리오는 전형적으로 사용자 주변의 실제 세계의 시각화에 대한 증강으로서 디지털 또는 가상 이미지 정보의 프리젠테이션을 수반한다. 혼합 현실 또는 "MR" 시나리오는 실제 및 가상 세계들을 병합하여 물리적 및 가상 오브젝트들이 공존하고 실시간으로 상호작용하는 새로운 환경들을 생성하는 것과 관련된 AR 시나리오의 한 타입이다.
[0004] 본원에서 개시된 시스템들 및 방법들은 VR, AR 및 MR 기술에 관련된 다양한 난제들을 처리한다.
[0005] 도 1은 사용자가 보는 특정 물리적 오브젝트들 및 특정 가상 현실 오브젝트들을 갖는 AR/MR 시나리오의 예시를 묘사한다.
[0006] 도 2는 웨어러블 VR/AR/MR 시스템의 예를 개략적으로 예시한다.
[0007] 도 3은 다수의 깊이 평면들을 사용하여 3-차원 이미저리를 시뮬레이팅하기 위한 접근법의 양상들을 개략적으로 예시한다.
[0008] 도 4는 사용자에게 이미지 정보를 출력하기 위한 도파관 스택의 예를 개략적으로 예시한다.
[0009] 도 5는 도파관에 의해 출력될 수 있는 예시적인 출사 빔들을 도시한다.
[0010] 도 6은, 다-초점 볼류메트릭 디스플레이, 이미지 또는 광 필드의 생성에 사용되는, 도파관 장치, 도파관 장치로 또는 도파관 장치로부터의 광을 광학적으로 커플링하는 광학 커플러 서브시스템, 및 제어 서브시스템을 포함하는 광학 시스템을 도시하는 개략적 다이어그램이다.
[0011] 도 7은 웨어러블 VR/AR/MR 시스템의 일 예의 블록 다이어그램이다.
[0012] 도 8은 인식된 오브젝트들에 관하여 가상 콘텐츠를 렌더링하는 예시적인 방법의 프로세스 흐름도이다.
[0013] 도 9는 웨어러블 VR/AR/MR 시스템의 다른 예의 블록 다이어그램이다.
[0014] 도 10은 웨어러블 VR/AR/MR 시스템에 대한 사용자 입력을 결정하기 위한 예시적인 방법의 프로세스 흐름도이다.
[0015] 도 11은 가상 사용자 인터페이스와 상호작용하기 위한 예시적인 방법의 프로세스 흐름도이다.
[0016] 도 12는 다양한 입력 모드들을 사용하여 오브젝트와 상호작용하는 예들을 개략적으로 예시한다.
[0017] 도 13a, 13b 및 13c는 물리적 키보드를 동적으로 구성하는 예들을 예시한다.
[0018] 도 14는 재구성가능한 물리적 키보드의 예를 예시한다.
[0019] 도 15a는 FOR(field of interest), 세계 카메라의 FOV(field of view), 사용자의 시야 및 사용자의 응시 시야의 예를 개략적으로 예시한다.
[0020] 도 15b는 물리적 키보드를 사용하여 사용자의 FOR 및 FOV에서 가상 오브젝트들과 상호작용하는 예를 예시한다.
[0021] 도 15c는 물리적 키보드와 연관된 가상 스크린을 제공하는 예를 예시한다.
[0022] 도 16a-16d는 예시적인 피처들 및 가상 키보드와의 사용자 상호작용들을 예시한다.
[0023] 도 17a는 AR/MR 환경에서 물리적 키보드를 동적으로 구성하고 물리적 키보드와 상호작용하는 예시적인 프로세스를 예시한다.
[0024] 도 17b는 AR/VR/MR 환경에서 가상 키보드를 렌더링하고 가상 키보드와 상호작용하는 예시적인 프로세스를 예시한다.
[0025] 도 18은 VR/AR/MR 시스템의 디스플레이 상에 가상 키보드 기능성을 구현하는 데 사용될 수 있는 예시적인 VR/AR/MR 시스템 및 물리적 키보드를 개략적으로 예시한다.
[0026] 도 19는 가상 키보드 기능성을 도시하는 VR/AR/MR 시스템의 예시적인 디스플레이를 개략적으로 예시한다.
[0027] 도 20은 물리적 키보드와의 사용자의 상호작용에 기반하여 VR/AR/MR 시스템의 디스플레이 상에 가상 키보드 기능성을 구현하는 예시적인 방법을 묘사하는 흐름도이다.
[0028] 도 21은 웨어러블 디스플레이 시스템의 예를 예시한다.
[0029] 도 22 및 23은 햅틱 통신을 위한 예시적인 방법들을 예시하는 흐름도들이다.
[0030] 도 24는 AR/MR HMD(head mounted display) 시스템, 컴패니언 물리적 키보드 및 HMD 시스템의 디스플레이 상에 도시된 가상 모니터 간의 예시적인 상호작용을 개략적으로 예시한다.
[0031] 도 25는 물리적 키보드의 위치의 적어도 일부에 기반하여 가상 모니터의 위치를 결정하는 예시적인 프로세스를 예시한다.
[0032] 도 26은 물리적 키보드의 위치에 기반하여 가상 모니터의 렌더링 위치를 수정하는 예시적인 프로세스를 예시한다.
[0033] 도 27은 도 24의 가상 모니터를 사용하여 물리적 키보드에 의해 수신된 입력을 렌더링하는 예시적인 프로세스를 예시한다.
[0034] 도 28은 웨어러블 VR/AR/MR 시스템에 의해 디스플레이되는, 사용자 인터페이스 이미지 데이터(예컨대, 가상 키보드 이미지 데이터)와 부모 애플리케이션 이미지 데이터 간의 상대 공간 관계의 예를 예시한다.
[0035] 도 29a-29e는 부모 애플리케이션 이미지 데이터와 사용자 인터페이스 이미지 데이터(예컨대, 가상 키보드 이미지 데이터) 간의 허용 및 허용되지 않는 공간 관계들의 예들을 예시한다.
[0036] 도 30은 측면 접촉을 유지하기 위해 사용자 인터페이스 이미지 데이터(예컨대, 가상 키보드 이미지 데이터)에 대하여 부모 애플리케이션 이미지 데이터를 움직이기 위한 예시적인 방법의 흐름도이다.
[0037] 도 31은 측면 접촉을 유지하기 위해 사용자 인터페이스 이미지 데이터(예컨대, 가상 키보드 이미지 데이터)와 관련하여 부모 애플리케이션 이미지 데이터를 움직이기 위한 다른 예시적인 방법의 흐름도이다.
[0038] 도면들 전체에 걸쳐, 참조 번호들은 참조된 엘리먼트들 사이의 대응성(correspondence)을 표시하는 데 재사용될 수 있다. 도면들은 본원에서 설명된 예시적인 실시예들을 예시하기 위해 제공되며 본 개시내용의 범위를 제한하려는 의도는 아니다. 추가적으로, 도면들은 본원에서 설명된 예시적인 실시예들을 예시하기 위해 제공되며 본 개시내용의 범위를 제한하려는 의도는 아니다.
[0039] 일부 예들에서, 시스템은 사용자의 물리적 환경에 가상 콘텐츠를 제공하도록 구성된 디스플레이 시스템; 사용자의 물리적 환경을 이미징하도록 구성되는 외향 이미징 시스템; 디스플레이 시스템 및 외향 이미징 시스템과 통신하는 하드웨어 프로세서를 포함하며, 하드웨어 프로세서는 외향 이미징 시스템에 의해 획득된 물리적 환경의 이미지를 분석하며; 이미지의 분석에 기반하여 복수의 키들을 갖는 물리적 키보드를 인식하며; 물리적 키보드와 연관된 콘텍스추얼 정보를 결정하며; 콘텍스추얼 정보에 적어도 부분적으로 기반하여 물리적 키보드에 대한 사양(specification)을 결정하며; 사양에 적어도 부분적으로 기반하여 물리적 키보드의 적어도 일부의 기능들을 동적으로 구성하며; 사양에 적어도 부분적으로 기반하여 가상 키 라벨의 렌더링 위치를 결정하며; 그리고 결정된 렌더링 위치에서 가상 키 라벨을 렌더링하도록 디스플레이 시스템에 명령하도록 프로그래밍된다.
[0040] 일부 예들에서, 시스템은 가상 현실, 증강 현실 또는 혼합 현실 콘텐츠를 사용자에게 제공하도록 구성된 디스플레이; 물리적 키보드 ― 물리적 키보드는 사용자로부터의 입력을 수신하도록 구성된 하나 이상의 키들; 및 물리적 키보드에 관한 사용자의 손들 또는 손가락들 중 하나 이상의 위치를 나타내는 출력을 생성하도록 구성된 하나 이상의 센서들을 포함함 ―; 하나 이상의 하드웨어 프로세서들; 및 명령들을 저장한 하나 이상의 컴퓨터 저장 매체를 포함하며, 명령들은, 시스템에 의해 실행될 때, 시스템으로 하여금 하나 이상의 센서들의 출력에 기반하여 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 결정하는 동작; 및 디스플레이로 하여금, 물리적 키보드의 제1 이미지 표현 및 사용자의 손들 또는 손가락들 중 하나 이상의 배치의 제2 이미지 표현을 제공하게 하는 동작을 포함하는 동작들을 수행하게 하고, 제1 이미지 표현에 관한 제2 이미지 표현의 위치는 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 나타낸다.
[0041] 일부 예들에서, HMD(head mounted display)는 프레임; 프레임에 의해 지지되고 사용자의 눈에 이미지를 투사하도록 구성된 투사 광학기; HMD와 동작 가능하게 연결된 입력 디바이스와의 상호작용을 검출하기 위한 센서; 명령들을 저장하도록 구성된 비-일시적 데이터 스토리지; 및 비-일시적 데이터 스토리지에 동작 가능하게 커플링된 적어도 하나의 하드웨어 프로세서를 포함하며, 적어도 하나의 하드웨어 프로세서는 사용자 상호작용을 나타내는 신호를 센서로부터 수신하며; 신호에 기반하여 사용자 상호작용의 타입을 결정하며; 그리고 입력 디바이스에 햅틱 피드백 신호를 송신하도록 명령들에 의해 구성되며, 햅틱 피드백 신호는 입력 디바이스를 통해 사용자에게 통신 가능한 햅틱 응답을 생성하기 위한 하나 이상의 파라미터들을 포함한다.
[0042] 일부 예들에서, 시스템은 사용자에게 가상 모니터를 제공하도록 구성된 디스플레이 시스템; 사용자의 물리적 환경을 이미징하도록 구성되는 외향 이미징 시스템; 디스플레이 시스템 및 외향 이미징 시스템과 통신하는 하드웨어 프로세서를 포함하며, 하드웨어 프로세서는 외향 이미징 시스템에 의해 획득된 물리적 환경의 제1 이미지를 수신하며; 제1 이미지를 사용하여 사용자의 환경에서 물리적 키보드의 제1 위치를 결정하며; 물리적 키보드의 제1 위치에 적어도 부분적으로 기반하여 가상 모니터의 제1 렌더링 위치를 결정하며; 제1 렌더링 위치 및 가상 모니터의 사이즈 선호도에 적어도 부분적으로 기반하여 가상 모니터의 사이즈를 결정하며 ― 가상 모니터는 사용자 인터페이스 기능을 위해 구성됨 ―; 그리고 제1 렌더링 위치에서 결정된 사이즈로 가상 모니터를 렌더링하도록 디스플레이 시스템에 명령하도록 프로그래밍된다.
[0043] 일부 예들에서, 시스템은 다수의 깊이들에 있는 데이터를 디스플레이할 수 있는 가상 현실, 증강 현실 또는 혼합 현실 디스플레이; 하드웨어 프로세서를 포함하며, 하드웨어 프로세서는 제1 깊이에서 제1 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하며; 그리고 제2 깊이에서 제2 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하도록 구성되며, 제1 및 제2 애플리케이션들은 서로 관련되고, 그리고 제2 깊이는 제1 깊이로부터 고정된 거리에 있도록 선택된다.
[0044] 웨어러블 VR/AR/MR 시스템은 2D 또는 3D 가상 이미지들을 사용자에게 제공하도록 구성될 수 있다. 이미지들은 정지 이미지들, 비디오의 프레임들 또는 비디오, 또는 이들의 조합들 등일 수 있다. 웨어러블 시스템은 사용자 상호작용을 위한 VR, AR, 또는 MR 환경을 제공할 수 있는 웨어러블 디바이스를 포함할 수 있다. 웨어러블 VR/AR/MR 시스템은 HMD(head-mounted device)일 수 있다.
[0045] 도 1은 사용자가 보는 물리적 오브젝트들 및 가상 오브젝트들을 갖는 MR 또는 AR 시나리오의 예시를 묘사한다. AR/MR 기술의 사용자는 도 1에 묘사된 장면(100)을 보고, 그 장면(100)은 배경에 있는 사람들, 나무들, 빌딩들, 및 플랫폼(120)을 특징으로 하는 실세계 공원형 장소(110)를 포함한다. 이들 실세계 아이템들 외에도, AR/MR 기술의 사용자는 또한, 실세계 플랫폼(120) 상에 서 있는 가상 로봇 동상(130), 및 호박벌의 의인화인 것으로 보여지는 날고 있는 가상 만화형 아바타 캐릭터(140)를 지각하더라도, 이들 엘리먼트들은 실세계에 존재하지 않는다.
[0046] 3D 디스플레이가 시뮬레이팅된 겉보기 깊이감을 생성하기 위해, 디스플레이의 시계의 각각의 포인트가 그의 가상 깊이에 대응하는 원근조절 응답을 생성하는 것이 바람직할 수 있다. 만약 디스플레이 포인트에 대한 원근조절 응답이 수렴 및 입체시의 양안 깊이 큐들에 의해 결정된 바와 같은 그 포인트의 가상 깊이에 대응하지 않는다면, 인간의 눈은 원근조절 충돌을 경험할 수 있어, 불안정한 이미징, 해로운 안정피로(eye strain), 두통들, 그리고 원근조절 정보의 부재 시에, 겉보기 깊이의 거의 완벽한 결여를 야기할 수 있다.
[0047] VR, AR 및 MR 경험들은 복수의 깊이 평면들에 대응하는 이미지들이 뷰어에게 제공되는 디스플레이들을 갖는 디스플레이 시스템들에 의해 제공될 수 있다. 이미지들은 각각의 깊이 평면마다 상이할 수 있고(예컨대, 장면 또는 오브젝트의 약간 상이한 프리젠테이션들을 제공함) 뷰어의 눈들에 의해 상이하게 초점이 맞춰질 수 있어서, 상이한 깊이 평면 상에 위치되는 장면에 대한 상이한 이미지 특징들에 초점을 맞추도록 요구되는 눈의 원근조절에 기반하여 또는 상이한 깊이 평면들 상의 상이한 이미지 특징들이 초점에서 벗어나는 것을 관찰하는 것에 기반하여 깊이 큐들을 사용자에게 제공하는 것을 돕는다. 본원의 다른 곳에서 논의된 바와 같이, 이러한 깊이 큐들은 깊이의 신뢰할 수 있는 지각들을 제공한다.
[0048] 도 2는 웨어러블 VR/AR/MR 시스템(200)의 예를 예시한다. 웨어러블 시스템(200)은 디스플레이(220), 및 디스플레이(220)의 기능을 지원하기 위한 다양한 기계적 및 전자 모듈들 및 시스템들을 포함한다. 디스플레이(220)는 사용자, 착용자 또는 뷰어(210)에 의해 착용가능한 프레임(230)에 커플링될 수 있다. 디스플레이(220)는 사용자(210)의 눈들 앞에 포지셔닝될 수 있다. 디스플레이(220)는 사용자에게 AR/VR/MR 콘텐츠를 제공할 수 있다. 디스플레이(220)는 사용자의 머리에 착용된 HMD(head mounted display)일 수 있다. 일부 실시예들에서, 스피커(240)는 프레임(230)에 커플링되고, 사용자의 외이도에 인접하게 포지셔닝된다(도시되지 않은 다른 스피커가 입체/성형가능 사운드 제어를 제공하기 위해 사용자의 다른 외이도에 인접하게 포지셔닝될 수 있음).
[0049] 웨어러블 시스템(200)은 사용자 주위의 환경의 세계를 관찰하는 외향 이미징 시스템(464)(도 4에 도시됨)을 포함할 수 있다. 웨어러블 시스템(200)은 또한 사용자의 눈 움직임들을 추적하기 위해 사용될 수 있는 내향 이미징 시스템(462)(도 4에 도시됨)을 포함할 수 있다. 내향 이미징 시스템은 어느 한쪽 눈의 움직임들 또는 양쪽 눈들의 움직임들을 추적할 수 있다. 내향 이미징 시스템(462)은 프레임(230)에 부착될 수 있고, 프로세싱 모듈들(260 또는 270)과 전기 통신할 수 있으며, 이 프로세싱 모듈들은 예컨대, 사용자(210)의 동공 직경들 또는 눈들의 배향들, 눈 움직임들, 또는 시선을 결정하도록 내향 이미징 시스템에 의해 획득된 이미지 정보를 프로세싱할 수 있다.
[0050] 예로서, 웨어러블 시스템(200)은 외향 이미징 시스템(464) 또는 내향 이미징 시스템(462)을 사용하여 사용자의 포즈 또는 제스처들 등의 이미지들을 획득할 수 있다. 이미지들은 정지 이미지들, 비디오의 프레임들 또는 비디오, 또는 이들의 조합 등일 수 있다.
[0051] 디스플레이(220)는 이를테면, 유선 리드 또는 무선 연결성(250)에 의해, 다양한 구성들로 장착될 수 있는, 이를테면, 프레임(230)에 고정적으로 부착되거나, 사용자에 의해 착용된 헬멧 또는 모자에 고정적으로 부착되거나, 헤드폰들에 임베딩되거나, 그렇지 않으면 사용자(210)에게 제거가능하게 부착되는 (예컨대, 백팩-스타일 구성으로, 벨트-커플링 스타일 구성으로) 로컬 데이터 프로세싱 모듈(260)에 동작가능하게 커플링될 수 있다.
[0052] 로컬 프로세싱 및 데이터 모듈(260)은 하드웨어 프로세서는 물론, 디지털 메모리 이를테면, 비-휘발성 메모리(예컨대, 플래시 메모리)를 포함할 수 있고, 이 둘 모두는 데이터의 프로세싱, 캐싱 및 스토리지를 보조하기 위해 활용될 수 있다. 데이터는 a) 센서들(예컨대, 프레임(230)에 동작가능하게 커플링되거나 그렇지 않으면 사용자(210)에게 부착될 수 있음), 이를테면 이미지 캡처 디바이스들(예컨대, 내향 이미징 시스템 또는 외향 이미징 시스템 내의 카메라들), 마이크로폰들, IMU(inertial measurement unit)들, 가속도계들, 컴퍼스들, GPS(global positioning system) 유닛들, 라디오 디바이스들, 또는 자이로스코프들로부터 캡처되거나; 또는 b) 원격 프로세싱 모듈(270) 또는 원격 데이터 저장소(280)를 사용하여 획득 또는 프로세싱되는 (가능하게는, 이러한 프로세싱 또는 리트리벌 후 디스플레이(220)에 전달하기 위한) 데이터를 포함할 수 있다. 로컬 프로세싱 및 데이터 모듈(260)은 통신 링크들(262 또는 264)에 의해, 이를테면, 유선 또는 무선 통신 링크들을 통하여, 원격 프로세싱 모듈(270) 또는 원격 데이터 저장소(280)에 동작가능하게 커플링될 수 있어서, 이들 원격 모듈들은 로컬 프로세싱 및 데이터 모듈(260)에 대한 자원들로서 이용가능하다. 게다가, 원격 프로세싱 모듈(280) 및 원격 데이터 저장소(280)는 서로 동작가능하게 커플링될 수 있다.
[0053] 일부 실시예들에서, 원격 프로세싱 모듈(270)은 데이터 및/또는 이미지 정보를 분석 및 프로세싱하도록 구성된 하나 이상의 프로세서들을 포함할 수 있다. 일부 실시예들에서, 원격 데이터 저장소(280)는 "클라우드" 자원 구성에서 인터넷 또는 다른 네트워킹 구성을 통하여 이용가능할 수 있는 디지털 데이터 스토리지 설비일 수 있다. 일부 실시예들에서, 모든 데이터는 저장되고 모든 컴퓨테이션들은 로컬 프로세싱 및 데이터 모듈에서 수행되어, 원격 모듈로부터 완전히 자율적인 사용을 허용한다.
[0054] 인간 시각 시스템은 복잡하고, 깊이의 현실적 지각을 제공하는 것은 난제시된다. 오브젝트의 뷰어들이 이접운동과 원근조절의 조합으로 인해 오브젝트를 3-차원인 것으로 지각할 수 있다. 서로에 대해 2개의 눈들의 이접운동 움직임들(예컨대, 오브젝트를 응시하기 위해 눈들의 시선들을 수렴시키기 위해 서로를 향한 또는 서로부터 떨어진 동공들의 롤링 움직임들)은 눈들의 렌즈들의 초점 맞춤(또는 "원근조절")과 근접하게 연관된다. 정상 상태들 하에서, 하나의 오브젝트로부터 상이한 거리에서의 다른 오브젝트로 초점을 변경하기 위해, 눈들의 렌즈들의 초점을 변경하거나, 눈들을 원근조절하는 것은, "원근조절-이접운동 반사작용"으로 알려진 관계 하에서, 동일한 거리에 대한 이접운동에서 매칭 변화를 자동으로 유발할 것이다. 마찬가지로, 이접운동의 변화는, 정상 상태들 하에서, 원근조절의 매칭 변화를 트리거링할 것이다. 원근조절과 이접운동 간의 더 나은 매치를 제공하는 디스플레이 시스템들은 3-차원 이미저리의 더 현실적이고 편안한 시뮬레이션들을 형성할 수 있다.
[0055] 도 3은 다수의 깊이 평면들을 사용하여 3-차원 이미저리를 시뮬레이팅하기 위한 접근법의 양상들을 예시한다. 도 3을 참조하면, z-축 상에서 눈들(302 및 304)로부터 다양한 거리들에 있는 오브젝트들은, 상이한 정도들의 원근조절을 사용하여 초점이 맞춰지게 된다. 눈들(302 및 304)은 z-축을 따라 상이한 거리들에 있는 오브젝트들에 초점을 맞추게 하는 특정 원근조절 상태들을 취한다. 결과적으로, 특정 원근조절 상태는 연관된 초점 거리를 갖는, 깊이 평면들(306) 중 특정한 하나의 깊이 평면과 연관되는 것으로 말해질 수 있어서, 특정 깊이 평면의 오브젝트들 또는 오브젝트들의 부분들은, 눈이 해당 깊이 평면에 대해 원근조절 상태에 있을 때 초점을 맞추게 된다. 일부 실시예들에서, 3-차원 이미저리는 눈들(302 및 304) 각각에 대해 이미지의 상이한 프리젠테이션들을 제공함으로써, 그리고 또한 깊이 평면들 각각에 대응하는 이미지의 상이한 프리젠테이션들을 제공함으로써 시뮬레이팅될 수 있다. 예시의 명확성을 위해 눈들(302 및 304)의 개개의 시야들이 별개인 것으로 도시되지만, 이들은 z-축을 따른 거리가 증가함에 따라 오버랩할 수 있다. 게다가, 깊이 평면의 윤곽들(특정 원근조절된 상태에서 눈과 초점을 맞추는 포인트들의 로커스)은 예시의 용이함을 위해 평탄한 것으로 도시되지만, 이들은 물리적 공간에서 만곡될 수 있다. 인간 눈은 전형적으로 깊이 지각을 제공하기 위하여 유한 수의 깊이 평면들을 해석할 수 있다. 결과적으로, 지각된 깊이의 매우 믿을 수 있는 시뮬레이션은, 눈에, 이들 제한된 수의 깊이 평면들 각각에 대응하는 이미지의 상이한 프리젠테이션들을 제공함으로써 달성될 수 있다.
도파관 스택 어셈블리
[0056] 도 4는 사용자에게 이미지 정보를 출력하기 위한 도파관 스택의 예를 예시한다. 웨어러블 시스템(400)은 복수의 도파관들(432b, 434b, 436b, 438b, 4400b)을 사용하여 3-차원 지각을 눈/뇌에 제공하기 위하여 활용될 수 있는 도파관들의 스택, 또는 스택된 도파관 어셈블리(480)를 포함한다. 일부 실시예들에서, 웨어러블 시스템(400)은 도 2a의 웨어러블 시스템(200)에 대응할 수 있고, 도 4는 그 웨어러블 시스템(200)의 일부 부분들을 더 상세히 개략적으로 도시한다. 예컨대, 일부 실시예들에서, 도파관 어셈블리(480)는 도 2a의 디스플레이(220)에 통합될 수 있다.
[0057] 계속해서 도 4를 참조하면, 도파관 어셈블리(480)는 또한 도파관들 사이에 복수의 피처들(458, 456, 454, 452)을 포함할 수 있다. 일부 실시예들에서, 피처들(458, 456, 454, 452)은 렌즈들일 수 있다. 다른 실시예들에서, 피처들(458, 456, 454, 452)은 렌즈들이 아닐 수 있다. 오히려, 이들은 단순히 스페이서들(예컨대, 공기 갭들을 형성하기 위한 클래딩 층들 또는 구조들)일 수 있다.
[0058] 도파관들(432b, 434b, 436b, 438b, 440b) 또는 복수의 렌즈들(458, 456, 454, 452)은 다양한 레벨들의 파면 곡률 또는 광선 발산으로 이미지 정보를 눈에 전송하도록 구성될 수 있다. 각각의 도파관 레벨은 특정 깊이 평면과 연관될 수 있고 그 깊이 평면에 대응하는 이미지 정보를 출력하도록 구성될 수 있다. 이미지 주입 디바이스들(420, 422, 424, 426, 428)은 이미지 정보를 도파관들(440b, 438b, 436b, 434b, 432b)에 주입하기 위하여 활용될 수 있고, 이 도파관들 각각은 눈(410)을 향해 출력하도록, 각각의 개개의 도파관을 가로질러 인입 광을 분배하도록 구성될 수 있다. 광은 이미지 주입 디바이스들(420, 422, 424, 426, 428)의 출력 표면을 나가고 도파관들(440b, 438b, 436b, 434b, 432b)의 대응하는 입력 에지에 주입된다. 일부 실시예들에서, 단일 광빔(예컨대, 시준된 빔)은 특정 도파관과 연관된 깊이 평면에 대응하는 특정 각도들(및 발산의 양들)로 눈(410) 쪽으로 지향되는 시준된 클론 빔들의 전체 필드를 출력하기 위하여 각각의 도파관으로 주입될 수 있다.
[0059] 일부 실시예들에서, 이미지 주입 디바이스들(420, 422, 424, 426, 428)은 각각, 대응하는 도파관(440b, 438b, 436b, 434b, 432b)으로의 주입을 위한 이미지 정보를 각각 생성하는 이산 디스플레이들이다. 일부 다른 실시예들에서, 이미지 주입 디바이스들(420, 422, 424, 426, 428)은 예컨대, 이미지 정보를 하나 이상의 광학 도관들(예컨대, 광섬유 케이블들)을 통하여 이미지 주입 디바이스들(420, 422, 424, 426, 428) 각각에 파이핑할 수 있는 단일 멀티플렉싱된 디스플레이의 출력 단부들이다.
[0060] 제어기(460)는 스택된 도파관 어셈블리(480) 및 이미지 주입 디바이스들(420, 422, 424, 426, 428)의 동작을 제어한다. 제어기(460)는 도파관들(440b, 438b, 436b, 434b, 432b)에 대한 이미지 정보의 타이밍 및 프로비전을 조절하는 프로그래밍(예컨대, 비-일시적 컴퓨터-판독가능한 매체의 명령들)을 포함한다. 일부 실시예들에서, 제어기(460)는 단일 일체형 디바이스, 또는 유선 또는 무선 통신 채널들에 의해 연결되는 분산형 시스템일 수 있다. 제어기(460)는 일부 실시예들에서, 프로세싱 모듈들(260 또는 270)(도 2a에 예시됨)의 부분일 수 있다.
[0061] 도파관들(440b, 438b, 436b, 434b, 432b)은 TIR(total internal reflection)에 의해 각각의 개개의 도파관 내에서 광을 전파시키도록 구성될 수 있다. 도파관들(440b, 438b, 436b, 434b, 432b)은 각각 평면형이거나 다른 형상(예컨대, 곡면형)을 가질 수 있으며, 주 전방 및 후방 표면들을 가질 수 있고, 이들 주 전방 및 후방 표면들 사이에 에지들이 연장된다. 예시된 구성에서, 도파관들(440b, 438b, 436b, 434b, 432b)은 이미지 정보를 눈(410)에 출력하기 위해 각각의 개개의 도파관 내에서 전파되는 광을 도파관 밖으로 재지향시킴으로써 도파관으로부터 광을 추출하도록 구성된 광 추출 광학 엘리먼트들(440a, 438a, 436a, 434a, 432a)을 각각 포함할 수 있다. 추출된 광은 아웃-커플링된 광으로서 또한 지칭될 수 있고, 광 추출 광학 엘리먼트들은 또한 아웃-커플링 광학 엘리먼트들로서 지칭될 수 있다. 추출된 광빔은, 도파관 내에서 전파되는 광이 광 재지향 엘리먼트에 부딪치는 위치들에서 도파관에 의해 출력된다. 광 추출 광학 엘리먼트들(440a, 438a, 436a, 434a, 432a)은 예컨대, 반사 또는 회절 광학 피처들일 수 있다. 설명의 용이함 및 도면 명확성을 위하여 도파관들(440b, 438b, 436b, 434b, 432b)의 후방 주 표면들에 배치된 것으로 예시되지만, 일부 실시예들에서, 광 추출 광학 엘리먼트들(440a, 438a, 436a, 434a, 432a)은 전방 또는 후방 주 표면들에 배치될 수 있거나 또는 도파관들(440b, 438b, 436b, 434b, 432b)의 볼륨에 직접 배치될 수 있다. 일부 실시예들에서, 광 추출 광학 엘리먼트들(440a, 438a, 436a, 434a, 432a)은 도파관들(440b, 438b, 436b, 434b, 432b)을 형성하기 위해 투명 기판에 부착된 재료 층에 형성될 수 있다. 일부 다른 실시예들에서, 도파관들(440b, 438b, 436b, 434b, 432b)은 재료의 모놀리식 피스일 수 있고 광 추출 광학 엘리먼트들(440a, 438a, 436a, 434a, 432a)은 재료의 해당 피스의 표면 상에 또는 그 내부에 형성될 수 있다.
[0062] 계속해서 도 4를 참조하면, 본원에 논의된 바와 같이, 각각의 도파관(440b, 438b, 436b, 434b, 432b)은 특정 깊이 평면에 대응하는 이미지를 형성하기 위해 광을 출력하도록 구성된다. 예컨대, 눈에 가장 가까운 도파관(432b)은, 그러한 도파관(432b)에 주입된 시준된 광을 눈(410)에 전달하도록 구성될 수 있다. 시준된 광은 광학 무한대 초점 평면을 나타낼 수 있다. 다음 위의 도파관(434b)은 시준된 광이 눈(410)에 도달할 수 있기 전에 제1 렌즈(452)(예컨대, 네거티브 렌즈)를 통과하는 시준된 광을 보내도록 구성될 수 있다. 제1 렌즈(452)는 약간의 볼록한 파면 곡률을 생성하도록 구성될 수 있어서, 눈/뇌가 상기 다음 위의 도파관(434b)에서 나오는 광을 광학 무한대로부터 눈(410)을 향해 안쪽으로 더 가까운 제1 초점 평면에서 나오는 것으로 해석한다. 유사하게, 세번째 위의 도파관(436b)은 그 출력 광을, 눈(410)에 도달하기 전에 제1 렌즈(452) 및 제2 렌즈(454) 둘 모두를 통과시킨다. 제1 및 제2 렌즈들(452 및 454)의 조합된 광학 전력은 다른 증분 양의 파면 곡률을 생성하도록 구성될 수 있어서, 눈/뇌는 제3 도파관(436b)에서 나오는 광을, 상기 다음 위의 도파관(434b)으로부터의 광보다는 광학 무한대로부터 사람을 향해 안쪽으로 훨씬 더 가까운 제2 초점 평면에서 나오는 것으로 해석한다.
[0063] 다른 도파관 층들(예컨대, 도파관들(438b, 440b)) 및 렌즈들(예컨대, 렌즈들(456, 458))은 유사하게 구성되는데, 스택에서 가장 높은 도파관(440b)은 자신의 출력을, 사람과 가장 가까운 초점 평면을 나타내는 총 초점 전력에 대해 자신과 눈 간의 렌즈들 모두를 통하여 전송한다. 스택된 도파관 어셈블리(480)의 다른 측 상에서 세계(470)에서 나오는 광을 보거나/해석할 때 렌즈들(458, 456, 454, 452)의 스택을 보상하기 위하여, 보상 렌즈 층(430)은 아래의 렌즈 스택(458, 456, 454, 452)의 총 전력을 보상하기 위하여 스택의 최상부에 배치될 수 있다. 이러한 구성은 이용가능한 도파관/렌즈 쌍들이 존재하는 만큼 많은 지각된 초점 평면들을 제공한다. 도파관들의 광 추출 광학 엘리먼트들 및 렌즈들의 초점을 맞추는 양상들 둘 모두는 정적(예컨대, 동적이 아니거나 전자-활성이 아님)일 수 있다. 일부 대안적인 실시예들에서, 어느 하나 또는 둘 모두는 전자-활성 특징들을 사용하여 동적일 수 있다.
[0064] 계속해서 도 4를 참조하면, 광 추출 광학 엘리먼트들(440a, 438a, 436a, 434a, 432a)은 자신의 개개의 도파관들로부터 광을 재지향시키는 것은 물론, 도파관과 연관된 특정 깊이 평면에 대해 적합한 발산량 또는 시준으로 이 광을 출력하도록 구성될 수 있다. 결과적으로, 상이한 연관된 깊이 평면들을 가진 도파관들은 상이한 구성들의 광 추출 광학 엘리먼트들을 가질 수 있고, 이러한 광 추출 광학 엘리먼트들은 연관된 깊이 평면에 따라 상이한 발산량으로 광을 출력한다. 일부 실시예들에서, 본원에 논의된 바와 같이, 광 추출 광학 엘리먼트들(440a, 438a, 436a, 434a, 432a)은 특정한 각도들로 광을 출력하도록 구성될 수 있는 볼류메트릭 또는 표면 특징들일 수 있다. 예컨대, 광 추출 광학 엘리먼트들(440a, 438a, 436a, 434a, 432a)은 볼륨 홀로그램들, 표면 홀로그램들, 또는 회절 격자들일 수 있다. 광 추출 광학 엘리먼트들, 이를테면, 회절 격자들은 2015년 6월 25일에 공개된 미국 특허 공보 제2015/0178939호에 설명되며, 이는 그 전체가 본원에 인용에 의해 포함된다.
[0065] 일부 실시예들에서, 광 추출 광학 엘리먼트들(440a, 438a, 436a, 434a, 432a)은 회절 광학 엘리먼트(또한 본원에서 "DOE"로서 지칭됨)를 형성하는 회절 피처들이다. 일부 실시예들에서, DOE는 비교적 낮은 회절 효율성을 가져서, 빔의 광의 일부만이 DOE와의 각각의 상호작용으로 눈(410)을 향해 편향되지만, 나머지는 내부 전반사를 통하여 도파관을 통해 계속 이동한다. 따라서, 이미지 정보를 전달하는 광은 다수의 위치들에서 도파관을 나가는 다수의 관련된 출사 빔들로 분할될 수 있고, 그 결과는 이런 특정 시준된 빔이 도파관 내에서 이리저리 바운싱되기 때문에 눈(304)을 향하는 상당히 균일한 출사 방출 패턴이다.
[0066] 일부 실시예들에서, 하나 이상의 DOE들은, 그것들이 활성적으로 회절시키는 "온" 상태와 그것들이 상당히 회절시키지 않는 "오프" 상태 사이에서 전환가능할 수 있다. 예컨대, 전환 가능 DOE는, 미세액적들이 호스트 매질에서 회절 패턴을 포함하는 중합체 분산형 액정 층을 포함할 수 있고, 미세액적들의 굴절률은 호스트 재료의 굴절률에 실질적으로 매칭하도록 전환될 수 있거나(이 경우에 패턴은 입사 광을 현저하게 회절시키지 않음) 또는 미세액적은 호스트 매질의 인덱스에 매칭하지 않는 인덱스로 스위칭될 수 있다(이 경우 패턴은 입사 광을 활성적으로 회절시킴).
[0067] 일부 실시예들에서, 깊이 평면들의 수 및 분배는 뷰어의 눈들의 동공 사이즈들 또는 배향들에 기반하여 동적으로 변동될 수 있다. 피사계 심도는 뷰어의 동공 사이즈와 반대로 변할 수 있다. 결과적으로, 뷰어의 눈들의 동공들의 사이즈들이 감소함에 따라, 피사계 심도가 증가하여서, 인식가능하지 않은 하나의 평면의 위치가 눈의 초점의 깊이를 넘어서기 때문에 그 평면이 인식가능하게 되고 동공 사이즈의 감소를 통해 보다 초점이 맞게 나타나고 피사계 심도의 증가와 상응할 수 있다. 마찬가지로, 뷰어에게 상이한 이미지들을 제공하기 위해 사용되는 이격된 깊이 평면들의 수는 감소된 동공 사이즈에 따라 감소될 수 있다. 예컨대, 뷰어는 하나의 깊이 평면으로부터 멀리 그리고 다른 깊이 평면으로 눈의 원근조절을 조정하지 않고서는, 하나의 동공 사이즈에서 제1 깊이 평면 및 제2 깊이 평면 둘 모두의 세부사항들을 명확하게 지각할 수 없을 수 있다. 그러나, 이러한 2개의 깊이 평면들은 원근조절을 변하지 않고도 다른 동공 사이즈에서 사용자에게 동시에 충분히 초점을 맞출 수 있다.
[0068] 일부 실시예들에서, 디스플레이 시스템은 동공 사이즈 또는 배향의 결정들에 또는 특정 동공 사이즈 또는 배향을 나타내는 전기 신호들의 수신에 기반하여 이미지 정보를 수신하는 도파관들의 수를 변하게 할 수 있다. 예컨대, 만약 사용자의 눈들이 2개의 도파관들과 연관된 2개의 깊이 평면들을 구별할 수 없다면, 제어기(460)는 이들 도파관들 중 하나에 이미지 정보를 제공하는 것을 중단하도록 구성되거나 프로그래밍될 수 있다. 유리하게는, 이는 시스템 상의 프로세싱 부담을 감소시킬 수 있고, 그리하여 시스템의 반응성을 증가시킨다. 도파관에 대한 DOE들이 온 및 오프 상태들 사이에서 전환 가능 가능한 실시예들에서, 도파관이 이미지 정보를 수신할 때 DOE들은 오프 상태로 전환될 수 있다.
[0069] 일부 실시예들에서, 출사 빔이 뷰어의 눈의 직경 미만인 직경을 갖는 조건을 충족시키는 것이 바람직할 수 있다. 그러나 이 조건을 충족시키는 것은 뷰어의 동공들의 사이즈의 변동성을 고려하면 난제시될 수 있다. 일부 실시예들에서, 이 조건은 뷰어의 동공의 사이즈의 결정에 대한 응답으로 출사 빔의 사이즈를 변하게 함으로써 넓은 범위의 동공 사이즈들에 걸쳐 충족된다. 예컨대, 동공 사이즈가 감소함에 따라, 출사 빔의 사이즈가 또한 감소할 수 있다. 일부 실시예들에서, 출사 빔 사이즈는 가변 어퍼처를 사용하여 변동될 수 있다.
[0070] 웨어러블 시스템(400)은 세계(470)의 일부를 이미징하는 외향 이미징 시스템(464)(예컨대, 디지털 카메라)을 포함할 수 있다. 이러한 세계(470)의 일부는 세계 카메라의 FOV(field of view)로서 지칭될 수 있고, 이미징 시스템(464)은 때때로 FOV 카메라로서 지칭된다. 뷰어에 의한 이미징 또는 보기를 위해 이용가능한 전체 구역은 FOR(field of regard)로서 지칭될 수 있다. FOR은 웨어러블 시스템(400)을 둘러싸는 4π 스테라디안(steradian)들의 입체각을 포함할 수 있는데, 이는 착용자가 공간 내의 실질적으로 임의의 방향을 지각하기 위해 그의 신체, 머리, 또는 눈들을 움직일 수 있기 때문이다. 다른 맥락들에서, 착용자의 움직임들은 더 제약될 수 있고, 그에 따라서, 착용자의 FOR은 더 작은 입체각에 대할 수 있다. 외향 이미징 시스템(464)으로부터 획득된 이미지들은 사용자에 의해 행해진 제스처들(예컨대, 손 또는 손가락 제스처들)을 추적하고, 사용자 앞의 세계(470)의 오브젝트들을 검출하는 등을 행하기 위해 사용될 수 있다.
[0071] 웨어러블 시스템(400)은 또한 눈 움직임들 및 얼굴 움직임들과 같은 사용자의 움직임들을 관찰하는 내향 이미징 시스템(466)(예컨대, 디지털 카메라)을 포함할 수 있다. 내향 이미징 시스템(466)은 눈(304)의 동공의 사이즈 및/또는 배향을 결정하기 위해 눈(410)의 이미지들을 캡처하는데 사용될 수 있다. 내향 이미징 시스템(466)은, (예컨대, 홍채 식별을 통한) 사용자의 생체인식 식별을 위한 이미지들 또는 사용자가 바라보는 방향(예컨대, 눈 포즈)을 결정하는데 사용하기 위한 이미지들을 획득하기 위해 사용될 수 있다. 일부 실시예들에서, 독립적으로, 각각의 눈의 동공 사이즈 또는 눈 포즈를 별개로 결정하고, 그리하여 각각의 눈에 대한 이미지 정보의 프리젠테이션이 그 눈에 동적으로 맞춰지도록 허용하기 위해, 각각의 눈마다 적어도 하나의 카메라가 활용될 수 있다. 일부 다른 실시예들에서, (예컨대, 한 쌍의 눈들마다 단지 단일 카메라만을 사용하여) 단지 한쪽 눈(410)의 동공 직경 또는 배향이 결정되고 사용자의 양 눈들에 대해 유사한 것으로 가정된다. 내향 이미징 시스템(466)에 의해 획득진 이미지들은 사용자의 눈 포즈 또는 분위기를 결정하도록 분석될 수 있으며, 이는 어떤 청각적 또는 시각적 콘텐츠가 사용자에게 제공되어야 하는지를 판단하기 위해 웨어러블 시스템(400)에 의해 사용될 수 있다. 웨어러블 시스템(400)은 또한 IMU들, 가속도계들, 자이로스코프들 등과 같은 센서들을 사용하여 머리 포즈(예컨대, 머리 포지션 또는 머리 배향)를 결정할 수 있다.
[0072] 웨어러블 시스템(400)은, 사용자가 웨어러블 시스템(400)과 상호작용하도록 제어기(460)에 커맨드들을 입력할 수 있게 하는 사용자 입력 디바이스(466)를 포함할 수 있다. 예컨대, 사용자 입력 디바이스(466)는 트랙패드, 터치스크린, 조이스틱, 다중 DOF(degree-of-freedom) 제어기, 용량성 감지 디바이스, 게임 제어기, 키보드, 마우스, 방향 패드(D-패드), 완드, 햅틱 디바이스, 토템(예컨대, 가상 사용자 입력 디바이스로서 기능함) 등을 포함할 수 있다. 다중-DOF 제어기는 제어기의 일부 또는 모든 가능한 병진운동들(예컨대, 왼쪽/오른쪽, 전방향/후방향, 또는 위/아래) 또는 회전들(예컨대, 요, 피치, 또는 롤)에서 사용자 입력을 감지할 수 있다. 전환 움직임들을 지원하는 다중-DOF 제어기는 3DOF로서 지칭될 수 있는 한편, 전환들 및 회전들을 지원하는 다중-DOF 제어기는 6DOF로서 지칭될 수 있다. 일부 경우들에서, 사용자는 손가락(예컨대, 엄지손가락)을 사용하여, 웨어러블 시스템(400)에 입력을 제공하도록(예컨대, 웨어러블 시스템(400)에 의해 제공되는 사용자 인터페이스에 사용자 입력을 제공하도록) 터치-감지 입력 디바이스를 누르거나 스와이핑할 수 있다. 사용자 입력 디바이스(466)는 웨어러블 시스템(400)의 사용 동안 사용자의 손에 휴대될 수 있다. 사용자 입력 디바이스(466)는 웨어러블 시스템(400)과 유선 또는 무선 통신할 수 있다.
[0073] 도 5는 도파관에 의해 출력된 출사 빔들의 예를 도시한다. 하나의 도파관이 예시되지만, 도파관 어셈블리(480) 내의 다른 도파관들이 유사하게 기능할 수 있다는 것이 인지될 것이며, 여기서 도파관 어셈블리(480)는 다수의 도파관들을 포함한다. 광(520)은 도파관(432b)의 입력 에지(432c)에서 도파관(432b)에 주입되고 TIR에 의해 도파관(432b) 내에서 전파된다. 광(520)이 DOE(432a)에 충돌하는 포인트들에서, 광의 일부는 출사 빔들(510)로서 도파관을 나간다. 출사 빔들(510)은 실질적으로 평행한 것으로 예시되지만, 이들 출사 빔들(510)은 또한 도파관(432b)과 연관된 깊이 평면에 의존하여, 일정 각도로 눈(410)으로 전파되도록 재지향될 수 있다(예컨대, 발산 출사 빔들을 형성함). 실질적으로 평행한 출사 빔들은, 눈(410)으로부터 먼 거리(예컨대, 광학적 무한대)에 있는 깊이 평면 상에 세팅된 것으로 나타나는 이미지들을 형성하도록 광을 아웃-커플링하는 광 추출 광학 엘리먼트들을 갖는 도파관을 표시할 수 있다는 것이 인지될 것이다. 다른 도파관들 또는 광 추출 광학 엘리먼트들의 다른 세트들은 더 발산하는 출사 빔 패턴을 출력할 수 있으며, 이는, 눈(410)이 더 근접한 거리로 망막 상에 초점을 맞추도록 원근조절하는 것을 요구할 것이고 광학적 무한대보다 눈(410)에 더 근접한 거리로부터의 광으로서 뇌에 의해 해석될 것이다.
[0074] 도 6은, 도파관 장치, 도파관 장치로 또는 도파관 장치로부터의 광을 광학적으로 커플링하는 광학 커플러 서브시스템, 및 제어 서브시스템을 포함하는 광학 시스템을 도시하는 개략적 다이어그램이다. 광학 시스템은 다-초점 볼류메트릭 이미지 또는 광 필드를 생성하기 위해 사용할 수 있다. 광학 시스템은 하나 이상의 주 평면형 도파관들(632a)(도 6에서 단지 하나만 도시됨) 및 주 도파관들(632a) 중 적어도 일부의 주 도파관들 각각과 연관된 하나 이상의 DOE들(632b)을 포함할 수 있다. 평면형 도파관들(632b)은 도 4를 참조하여 논의된 도파관들(432b, 434b, 436b, 438b, 440b)과 유사할 수 있다. 광학 시스템은 제1 축(예컨대, 도 6에 도시된 수직 y-축)을 따라 광을 중계하고 제1 축을 따라 광의 유효 출사 동공을 확장시키기 위해 분배 도파관 장치를 이용할 수 있다. 분배 도파관 장치는, 예컨대, 분배 평면형 도파관(622b) 및 분배 평면형 도파관(622b)과 연관된 적어도 하나의 DOE(622a)를 포함할 수 있다. 분배 평면형 도파관(622b)은 주 평면형 도파관(632b)과 적어도 일부 면들에서 유사하거나 동일할 수 있지만, 상이한 배향을 갖는다. 마찬가지로, 적어도 하나의 DOE(622a)는 DOE(632a)와 적어도 일부 면들에서 유사하거나 동일할 수 있다. 예컨대, 분배 평면형 도파관(622b) 또는 DOE(622a)는 각각, 주 평면형 도파관(632b) 또는 DOE(632a)와 동일한 재료들로 제조될 수 있다. 도 6에 도시된 광학 디스플레이 시스템(600)의 실시예들은 도 2에 도시된 웨어러블 시스템(200)에 통합될 수 있다.
[0075] 중계된 그리고 출사-동공 확장된 광은 분배 도파관 장치로부터 하나 이상의 주 평면형 도파관들(632b)에 광학적으로 커플링될 수 있다. 주 평면형 도파관(632b)은 바람직하게는, 제1 축에 직교하는 제2 축(예컨대, 도 6에 도시된 수평 X-축)을 따라 광을 중계할 수 있다. 특히, 제2 축은 제1 축에 대해 비-직교 축일 수 있다. 주 평면형 도파관(632b)은 그 제2 축을 따라 광의 유효 출사 동공을 확장시킨다. 예컨대, 분배 평면형 도파관(622b)은 수직 y-축을 따라 광을 중계 및 확장시키며, 수평 x-축을 따라 광을 중계 및 확장시킬 수 있는 주 평면형 도파관(632b)으로 그 광을 전달할 수 있다.
[0076] 광학 시스템은 단일 모드 광섬유(640)의 근단부에 광학적으로 커플링될 수 있는 색광(colored light)(예컨대, 적색, 녹색 및 청색 레이저 광)의 하나 이상의 소스들(610)을 포함할 수 있다. 광 섬유(640)의 원단부는 압전 재료의 중공 튜브(642)를 통해 스레딩되거나 수용될 수 있다. 원단부는 고정되지 않은 가요성 캔틸레버(644)로서 튜브(642)로부터 돌출한다. 압전 튜브(642)는 4개의 사분면 전극들(예시되지 않음)과 연관될 수 있다. 전극들은 예컨대, 튜브(642)의 밖, 외측 표면 또는 외측 주변부 또는 직경 상에 도금될 수 있다. 코어 전극(예시되지 않음)은 또한 튜브(642)의 코어, 중심, 내부 주변부 또는 내부 직경에 위치될 수 있다.
[0077] 예컨대, 와이어들(660)을 통해 전기적으로 커플링된 구동 전자 장치(650)는 2개의 축들에서 압전 튜브(642)를 독립적으로 구부리기 위해 전극들의 대향하는 쌍들을 구동한다. 광섬유(644)의 돌출 원단 팁(protruding distal tip)은 기계적 공진 모드들을 갖는다. 공진 주파수들은 광섬유(644)의 직경, 길이 및 재료 특성들에 의존할 수 있다. 섬유 캔틸레버(644)의 제1 기계적 공진 모드 인근에서 압전 튜브(642)를 진동시킴으로써, 섬유 캔틸레버(644)는 진동하게 할 수 있고, 큰 편향들을 통해 스윕할 수 있다.
[0078] 2개의 축들에서 공진 진동을 자극함으로써, 섬유 캔틸레버(644)의 팁은 영역 충전 2차원(2D) 스캔으로 2축 방향으로 스캔된다. 섬유 캔틸레버(644)의 스캔과 동기하여 광원(들)(610)의 세기를 변조함으로써, 섬유 캔틸레버(644)로부터 나오는 광은 이미지를 형성할 수 있다. 그러한 셋업에 대한 설명들은 미국 특허 공보 제2014/0003762호에서 제공되며, 그 공보는 그 전체가 본원에 인용에 의해 통합된다.
[0079] 광학 커플러 서브시스템의 컴포넌트는 스캐닝 섬유 캔틸레버(644)로부터 나오는 광을 시준할 수 있다. 시준된 광은 미러 표면(648)에 의해 적어도 하나의 DOE(diffractive optical element)(622a)를 포함하는 좁은 분배 평면형 도파관(622b)으로 반사될 수 있다. 시준된 광은 TIR에 의해 분배 평면형 도파관(622b)을 따라(도 6에 도시된 뷰에 대해) 수직으로 전파될 수 있고, 이렇게 하여, DOE(622a)와 반복적으로 교차한다. DOE(622a)는 바람직하게는, 낮은 회절 효율성을 갖는다. 이는, 광의 프랙션(fraction)(예컨대, 10%)으로 하여금 DOE(622a)와의 각각의 교차점에서 더 큰 주 평면형 도파관(632b)의 에지를 향해 회절되게 할 수 있고, 광의 프랙션으로 하여금 TIR을 통해 분배 평면형 도파관(622b)의 길이 아래에서 그의 오리지널 궤적 상에서 계속되게 할 수 있다.
[0080] DOE(622a)와의 각각의 교차점에서, 추가적인 광이 주 도파관(632b)의 입구를 향해 회절될 수 있다. 인입 광을 다수의 아웃-커플링된 세트들로 분할함으로써, 광의 출사 동공은 분배 평면형 도파관(622b)에서 DOE(4)에 의해 수직으로 확장될 수 있다. 분배 평면형 도파관(622b) 밖으로 커플링되는 이러한 수직으로 확장된 광은 주 평면형 도파관(632b)의 에지에 들어갈 수 있다.
[0081] 주 도파관(632b)에 들어가는 광은 TIR(total internal reflection)을 통해 주 도파관(632b)을 따라(도 6에 도시된 뷰에 대해) 수평으로 전파될 수 있다. 광이 TIR을 통해 주 도파관(632b)의 길이의 적어도 일부를 따라 수평으로 전파됨에 따라 광은 다수의 포인트들에서 DOE(632a)와 교차한다. DOE(632a)는 유리하게는, 광의 편향 및 초점 맞추기 둘 모두를 생성하도록, 선형 회절 패턴 및 방사상 대칭 회절 패턴의 합인 위상 프로파일을 갖도록 설계 또는 구성될 수 있다. DOE(632a)는 유리하게는, 낮은 회절 효율성(예컨대, 10%)을 가질 수 있어서, 빔의 광 중 일부만이 DOE(632a)의 각각의 교차에 의해 뷰의 눈을 향해 편향되는 반면, 광의 나머지는 TIR을 통해 주 도파관(632b)을 통해 계속해서 전파된다.
[0082] 전파되는 광과 DOE(632a) 간의 각각의 교차점에서, 광의 프랙션이 주 도파관(632b)의 인접한 면을 향해 회절되어, 광이 TIR을 벗어나 주 도파관(632b)의 면으로부터 나오게 허용한다. 일부 실시예들에서, DOE(632a)의 방사상 대칭 회절 패턴은 추가적으로, 회절된 광에 초점 레벨을 부여하여, 개별 빔의 광 파면을 성형(예컨대, 곡률을 부여함)하는 것뿐만 아니라, 설계된 초점 레벨과 매칭하는 각도로 빔을 조종한다.
[0083] 그에 따라서, 이들 상이한 경로들은 상이한 각도들의 다수의 DOE들(632a), 초점 레벨들, 및/또는 출사 동공에서 상이한 충전 패턴들을 산출하는 것에 의해 광으로 하여금 주 평면형 도파관(632b) 밖으로 커플링되게 할 수 있다. 출사 동공에서의 상이한 충전 패턴들은 다수의 깊이 평면들을 갖는 광 필드 디스플레이를 생성하기 위해 유익하게 사용될 수 있다. 도파관 어셈블리 내의 각각의 층 또는 스택 내의 한 세트의 층들(예컨대, 3개의 층들)은 개개의 컬러(예컨대, 적색, 청색, 녹색)를 생성하기 위해 이용될 수 있다. 따라서, 예컨대, 제1 세트의 3개의 인접한 층들은 제1 초점 깊이로 적색, 청색 및 녹색 광을 각각 생성하기 위해 이용될 수 있다. 제2 세트의 3개의 인접한 층들은 제2 초점 깊이로 적색, 청색 및 녹색 광을 각각 생성하기 위해 이용될 수 있다. 다수의 세트들은 다양한 초점 깊이들을 갖는 완전한 3D 또는 4D 컬러 이미지 광 필드를 생성하기 위해 이용될 수 있다.
웨어러블 시스템의 다른 컴포넌트들
[0084] 다수의 구현들에서, 웨어러블 시스템은 위에서 설명된 웨어러블 시스템의 컴포넌트들에 부가적으로 또는 이에 대한 대안으로 다른 컴포넌트들을 포함할 수 있다. 웨어러블 시스템은 예컨대, 하나 이상의 햅틱 디바이스들 또는 컴포넌트들을 포함할 수 있다. 햅틱 디바이스들 또는 컴포넌트들은 사용자에게 촉감을 제공하도록 동작가능할 수 있다. 예컨대, 햅틱 디바이스들 또는 컴포넌트들은 가상 콘텐츠(예컨대, 가상 오브젝트들, 가상 도구들, 다른 가상 구조들)를 터치할 때 압력 또는 텍스처의 촉감을 제공할 수 있다. 촉감은 가상 오브젝트가 표현하는 물리적 오브젝트의 느낌을 복제할 수 있거나, 또는 가상 콘텐츠가 표현하는 상상의 오브젝트 또는 캐릭터(예컨대, 용)의 느낌을 복제할 수 있다. 일부 구현들에서, 햅틱 디바이스들 또는 컴포넌트들은 사용자에 의해 착용될 수 있다(예컨대, 사용자 웨어러블 글러브). 일부 구현들에서, 햅틱 디바이스들 또는 컴포넌트들은 사용자에 의해 홀딩될 수 있다.
[0085] 웨어러블 시스템은 예컨대, 웨어러블 시스템과의 입력 또는 상호작용을 허용하도록 사용자에 의해 조작가능한 하나 이상의 물리적 오브젝트들을 포함할 수 있다. 이러한 물리적 오브젝트들은 본원에서 토템들로서 지칭될 수 있다. 일부 토템들은 무생물 오브젝트들, 예컨대, 이를테면 금속 또는 플라스틱의 조각, 벽, 테이블의 표면의 형태를 취할 수 있다. 특정 구현들에서, 토템들은 실제로, 어떠한 물리적 입력 구조들(예컨대, 키들, 트리거들, 조이스틱, 트랙볼, 로커 스위치)도 갖지 않을 수 있다. 대신, 토템은 단순히 물리적 표면을 제공할 수 있고, 웨어러블 시스템은 토템의 하나 이상의 표면들 상에 있는 것으로 사용자에게 나타나도록 사용자 인터페이스를 렌더링할 수 있다. 예컨대, 웨어러블 시스템은 토템의 하나 이상의 표면들에 상주하는 것으로 나타나도록 컴퓨터 키보드 및 트랙패드의 이미지를 렌더링할 수 있다. 예컨대, 웨어러블 시스템은 토템으로서 역할을 하는 알루미늄의 얇은 직사각형 플레이트의 표면 상에 나타나도록 가상 컴퓨터 키보드 및 가상 트랙패드를 렌더링할 수 있다. 직사각형 플레이트 그 자체는 어떠한 물리적인 키들 또는 트랙패드 또는 센서들도 갖지 않을 수 있다. 그러나, 웨어러블 시스템은 가상 키보드 또는 가상 트랙패드를 통해 이루어진 선택들 또는 입력들로서 직사각형 플레이트와의 사용자 조작 또는 상호작용 또는 터치들을 검출할 수 있다. 사용자 입력 디바이스(466)(도 4에 도시됨)는, 트랙패드, 터치패드, 트리거, 조이스틱, 트랙볼, 로커 또는 가상 스위치, 마우스, 키보드, 다중-자유도 제어기 또는 다른 물리적 입력 디바이스를 포함할 수 있는 토템의 실시예일 수 있다. 사용자는 웨어러블 시스템 또는 다른 사용자들과 상호작용하기 위해 토템을 단독으로 또는 포즈들과 조합하여 사용할 수 있다.
[0086] 본 개시내용의 웨어러블 디바이스들, HMD, 및 디스플레이 시스템들과 함께 사용가능한 햅틱 디바이스들 및 토템들의 예들은 미국 특허 공보 제2015/0016777호에서 설명되며, 그 공보는 그 전체가 본원에 인용에 의해 통합된다.
예시적인 웨어러블 시스템들, 환경들, 및 인터페이스들
[0087] 웨어러블 VR/AR/MR 시스템은 렌더링된 광 필드들에서 높은 심도를 달성하기 위해 다양한 맵핑 관련 기법들을 이용할 수 있다. 가상 세계의 맵핑 시에, 실세계에 관하여 가상 오브젝트들을 정확히 묘사하기 위해 실세계의 피처들 및 포인트들을 아는 것이 유리하다. 이를 위해, 웨어러블 시스템의 사용자들로부터 캡처된 FOV 이미지들은, 실세계의 다양한 포인트들 및 피처들에 관한 정보를 운반하는 새로운 사진들을 포함함으로써 세계 모델에 추가될 수 있다. 예컨대, 웨어러블 시스템은, 한 세트의 맵 포인트들(이를테면, 2D 포인트들 또는 3D 포인트들)을 수집하고 새로운 맵 포인트들을 발견하여 세계 모델의 보다 정확한 버전을 렌더링할 수 있다. 제1 사용자의 세계 모델은 (예컨대, 네트워크, 이를테면 클라우드 네트워크를 통해) 제2 사용자에게 통신될 수 있어서, 제2 사용자는 제1 사용자 주변의 세계를 경험할 수 있다.
[0088] 도 7은 MR 환경(700)의 예의 블록 다이어그램이다. MR 환경(700)은 하나 이상의 사용자 웨어러블 시스템들(예컨대, 웨어러블 시스템(200) 또는 디스플레이 시스템(220)) 또는 고정 룸 시스템들(예컨대, 룸 카메라들 등)로부터 입력(예컨대, 사용자의 웨어러블 시스템으로부터의 시각 입력(702), 이를테면, 룸 카메라들로부터의 고정 입력(704), 다양한 센서들로부터의 감각 입력(706), 제스처들, 토템들, 눈 추적, 사용자 입력 디바이스(466)로부터의 사용자 입력 등)을 수신하도록 구성될 수 있다. 웨어러블 시스템들은 사용자의 환경의 위치 및 다양한 다른 속성들을 결정하기 위해 다양한 센서들(예컨대, 가속도계들, 자이로스코프들, 온도 센서들, 움직임 센서들, 깊이 센서들, GPS 센서들, 내향 이미징 시스템, 외향 이미징 시스템 등)을 사용할 수 있다. 이 정보는 추가로, 이미지들을 제공할 수 있는 룸의 고정 카메라들로부터의 정보 또는 상이한 관점으로부터의 다양한 큐들로 보충될 수 있다. 카메라들(이를테면, 룸 카메라들 및/또는 외향 이미징 시스템의 카메라들)에 의해 획득된 이미지 데이터는 한 세트의 맵핑 포인트들로 감소될 수 있다.
[0089] 하나 이상의 오브젝트 인식기들(708)은 맵 데이터베이스(710)의 도움으로, 수신된 데이터(예컨대, 포인트들의 집합)를 크롤링하고, 포인트들을 인식 또는 맵핑하고, 이미지들을 태깅하고, 시맨틱 정보를 오브젝트들에 부착할 수 있다. 맵 데이터베이스(710)는 시간이 지남에 따라 수집된 다양한 포인트들 및 그들의 대응하는 오브젝트들을 포함할 수 있다. 다양한 디바이스들 및 맵 데이터베이스는 클라우드에 액세스하기 위해 네트워크(예컨대, LAN, WAN 등)를 통해 서로 연결될 수 있다.
[0090] 맵 데이터베이스의 이러한 정보 및 포인트들의 집합에 기반하여, 오브젝트 인식기들(708a 내지 708n)은 환경 내의 오브젝트들을 인식할 수 있다. 예컨대, 오브젝트 인식기들은 얼굴들, 사람들, 창문들, 벽들, 사용자 입력 디바이스들, 텔레비전들, 사용자 환경의 다른 오브젝트들 등을 인식할 수 있다. 하나 이상의 오브젝트 인식기들은 특정 특징들을 갖는 오브젝트에 대해 전문화될 수 있다. 예컨대, 오브젝트 인식기(708a)는 얼굴들을 인식하는 데 사용될 수 있는 반면, 다른 오브젝트 인식기는 토템들을 인식하기 위해 사용될 수 있다.
[0091] 오브젝트 인식들은 다양한 컴퓨터 비전 기법들을 사용하여 수행될 수 있다. 예컨대, 웨어러블 시스템은 장면 재구성, 이벤트 검출, 비디오 추적, 오브젝트 인식, 오브젝트 포즈 추정, 학습, 인덱싱, 모션 추정, 또는 이미지 복원 등을 수행하기 위해 (도 4에 도시된) 외향 이미징 시스템(464)에 의해 획득된 이미지들을 분석할 수 있다. 하나 이상의 컴퓨터 비전 알고리즘들이 이러한 임무들을 수행하기 위해 사용될 수 있다. 컴퓨터 비전 알고리즘들의 비-제한적인 예들은, SIFT(Scale-invariant feature transform), SURF(speeded up robust features), ORB(oriented FAST and rotated BRIEF), BRISK(binary robust invariant scalable keypoints), FREAK(fast retina keypoint), Viola-Jones 알고리즘, Eigenfaces 접근법, Lucas-Kanade 알고리즘, Horn-Schunk 알고리즘, Mean-shift 알고리즘, vSLAM(visual simultaneous location and mapping) 기법들, 순차적 베이지안 추정기(예컨대, 칼만 필터, 확장된 칼만 필터 등), 번들 조정, 적응형 임계화(Adaptive thresholding)(및 다른 임계화 기법들), ICP(Iterative Closest Point), SGM(Semi Global Matching), SGBM(Semi Global Block Matching), 피처 포인트 히스토그램(Feature Point Histogram)들, 다양한 머신 학습 알고리즘들(이를테면, 예컨대, 지원 벡터 머신, k-최근접 이웃 알고리즘, 나이브 베이즈(Naive Bayes), 뉴럴 네트워크(콘볼루셔널(convolutional) 또는 딥 뉴럴 네트워크들을 포함함) 또는 다른 감독되는/감독되지 않는 모델들 등) 등을 포함한다.
[0092] 오브젝트 인식들은 추가적으로 또는 대안적으로, 다양한 머신 학습 알고리즘들에 의해 수행될 수 있다. 일단 트레이닝되면, 머신 학습 알고리즘은 HMD에 의해 저장될 수 있다. 머신 학습 알고리즘들의 일부 예들은, 회귀 알고리즘들(이를테면, 예컨대, 일반 최소 제곱 회귀(Ordinary Least Squares Regression)), 인스턴스-기반 알고리즘들(이를테면, 예컨대, 학습 벡터 양자화(Learning Vector Quantization)), 판단 트리 알고리즘들(이를테면, 예컨대, 분류 및 회귀 트리들), 베이지안 알고리즘들(이를테면, 예컨대, 나이브 베이즈), 클러스터링 알고리즘들(이를테면, 예컨대, k-민즈 클러스터링), 연관 규칙 학습 알고리즘들(이를테면, 예컨대, 선험적 알고리즘들), 인공 뉴럴 네트워크 알고리즘들(이를테면, 예컨대, 퍼셉트론(Perceptron)), 심층 학습 알고리즘들(이를테면, 예컨대, 딥 볼쯔만 머신, 또는 딥 뉴럴 네트워크), 차원 감소 알고리즘들(이를테면, 예컨대, 주요한 컴포넌트 분석(Principal Component Analysis)), 앙상블 알고리즘들(이를테면, 예컨대, 스택된 일반화(Stacked Generalization)), 및/또는 다른 머신 학습 알고리즘들을 포함하는 감독된 또는 비-감독된 머신 학습 알고리즘들을 포함할 수 있다. 일부 실시예들에서, 개별 모델들은 개별 데이터 세트들에 대해 맞춤화될 수 있다. 예컨대, 웨어러블 디바이스는 기본 모델을 생성하거나 저장할 수 있다. 기본 모델은 데이터 타입(예컨대, 텔레프레전스 세션의 특정 사용자), 데이터 세트(예컨대, 텔레프레전스 세션의 사용자의 획득된 한 세트의 추가적인 이미지들), 조건 상황들, 또는 다른 변동들에 특정적인 추가적인 모델들을 생성하기 위한 시작 포인트로서 사용될 수 있다. 일부 실시예들에서, 웨어러블 HMD는 집계된 데이터의 분석을 위한 모델들을 생성하기 위해 복수의 기법들을 활용하도록 구성될 수 있다. 다른 기법들은 사전-정의된 임계치들 또는 데이터 값들을 사용하는 것을 포함할 수 있다.
[0093] 맵 데이터베이스 내의 포인트들의 이러한 정보 및 집합에 기반하여, 오브젝트 인식기들(708a 내지 708n)은 오브젝트들을 인식할 수 있고, 오브젝트들에 생명을 부여하기 위해 시맨틱 정보를 이용하여 오브젝트들을 보충할 수 있다. 예컨대, 만약 오브젝트 인식기가 한 세트의 포인트들을 문이라고 인식하면, 시스템은 일부 시맨틱 정보를 부착할 수 있다(예컨대, 문은 힌지를 갖고, 힌지를 중심으로 90도 움직임을 가짐). 만약 오브젝트 인식기가 한 세트의 포인트들을 미러라고 인식하면, 시스템은 미러가 룸 내의 오브젝트들의 이미지들을 반사할 수 있는 반사 표면을 갖는다는 시맨틱 정보를 부착할 수 있다. 시간이 지남에 따라, 시스템(로컬로 상주할 수 있거나, 또는 무선 네트워크를 통해 액세스가능할 수 있음)이 세계로부터 더 많은 데이터를 누적함에 따라 맵 데이터베이스가 성장한다. 일단 오브젝트들이 인식되면, 정보는 하나 이상의 웨어러블 시스템들에 송신될 수 있다. 예컨대, MR 환경(700)은 캘리포니아에서 일어나는 장면에 관한 정보를 포함할 수 있다. 환경(700)은 뉴욕의 하나 이상의 사용자들에게 송신될 수 있다. FOV 카메라로부터 수신된 데이터 및 다른 입력들에 기반하여, 오브젝트 인식기들 및 다른 소프트웨어 컴포넌트들은 다양한 이미지들로부터 수집된 포인트들을 맵핑하고, 오브젝트들을 인식하는 등을 수행할 수 있어서, 장면이 세계의 상이한 부분에 있을 수 있는 제2 사용자에게 정확히 "전달될" 수 있다. 환경(700)은 또한 로컬화 목적들을 위해 토폴로지컬 맵을 사용할 수 있다.
[0094] 도 8은 인식된 오브젝트들에 관하여 가상 콘텐츠를 렌더링하는 예시적인 방법(800)의 프로세스 흐름도이다. 방법(800)은 가상 장면이 웨어러블 시스템의 사용자에게 어떻게 표현될 수 있는지를 설명한다. 사용자는 장면으로부터 지리적으로 원격일 수 있다. 예컨대, 사용자는 뉴욕에 있을 수 있지만, 현재 캘리포니아에서 진행되고 있는 장면을 보기를 원할 수 있거나, 또는 캘리포니아에 거주하는 친구와 함께 산책을 하러 가기를 원할 수 있다.
[0095] 블록(810)에서, 웨어러블 시스템은 사용자 및 다른 사용자들로부터, 사용자의 환경에 관한 입력을 수신할 수 있다. 이는 다양한 입력 디바이스들 및 맵 데이터베이스에 이미 보유된 지식을 통해 달성될 수 있다. 블록(810)에서, 사용자의 FOV 카메라, 센서들, GPS, 눈 추적 등은 시스템에 정보를 운반한다. 블록(820)에서, 시스템은 이러한 정보에 기반하여 희소 포인트들을 결정할 수 있다. 희소 포인트들은 사용자의 주변들의 다양한 오브젝트들의 배향 및 포지션을 디스플레이 및 이해하기 위해 사용될 수 있는 포즈 데이터(예컨대, 머리 포즈, 눈 포즈, 신체 포즈 및/또는 손 제스처들)를 결정하는데 사용될 수 있다. 블록(830)에서, 오브젝트 인식기들(708a, 708n)은 이러한 수집된 포인트들을 크롤링하고, 맵 데이터베이스를 사용하여 하나 이상의 오브젝트들을 인식할 수 있다. 그런다음, 블록(840)에서, 이러한 정보는 사용자의 개별 웨어러블 시스템으로 운반될 수 있으며, 그에 따라서, 블록(850)에서, 원하는 가상 장면이 사용자에게 디스플레이될 수 있다. 예컨대, 원하는 가상 장면(예컨대, CA의 사용자)은 뉴욕의 사용자의 다양한 오브젝트들 및 다른 주변들에 관하여 적절한 배향, 포지션 등에서 디스플레이될 수 있다.
[0096] 도 9는 웨어러블 VR/AR/MR 시스템의 다른 예의 블록 다이어그램이다. 이러한 예에서, 웨어러블 시스템(900)은, 세계에 대한 맵 데이터를 포함할 수 있는 맵을 포함한다. 맵은 부분적으로 웨어러블 시스템 상에 로컬로 상주할 수 있고, (예컨대, 클라우드 시스템에서) 유선 또는 무선 네트워크에 의해 액세스가능한 네트워킹된 저장 위치들에 부분적으로 상주할 수 있다. 포즈 프로세스(910)는 웨어러블 컴퓨팅 아키텍처(예컨대, 프로세싱 모듈(260) 또는 제어기(460)) 상에서 실행되고 맵으로부터 데이터를 활용하여, 웨어러블 컴퓨팅 하드웨어 또는 사용자의 포지션 및 배향을 결정할 수 있다. 포즈 데이터는 사용자가 시스템을 경험하고 세계에서 동작할 때 즉석에서(on the fly) 수집된 데이터로부터 컴퓨팅될 수 있다. 데이터는 이미지들, 센서들(이를테면, 일반적으로 가속도계 및 자이로스코프 컴포넌트들을 포함하는 관성 측정 유닛들)로부터의 데이터 및 실제 또는 가상 환경의 오브젝트들에 관련된 표면 정보를 포함할 수 있다.
[0097] 희소 포인트 표현은 동시적인 로컬화 및 맵핑(입력이 이미지들/시각 전용인 구성을 지칭하는 SLAM 또는 V-SLAM) 프로세스의 출력일 수 있다. 시스템은 다양한 컴포넌트들이 세계 어디에 있는지 뿐만 아니라, 세상이 무엇으로 이루어져 있는지를 파악하도록 구성될 수 있다. 포즈는 맵을 파퓰레이팅하고 맵으로부터의 데이터를 사용하는 것을 포함해서, 다수의 목표들을 달성하는 빌딩 블록일 수 있다.
[0098] 일 실시예에서, 희소 포인트 포지션은 그 자체로 완전히 충분하지 않을 수 있고, 다초점 AR, VR 또는 MR 경험을 생성하기 위해 추가적인 정보가 필요할 수 있다. 일반적으로 깊이 맵 정보를 지칭하는 조밀한 표현들이 이러한 갭을 적어도 부분적으로 충전하기 위해 활용될 수 있다. 그러한 정보는 입체(940)로서 지칭되는 프로세스로부터 컴퓨팅될 수 있으며, 여기서 깊이 정보는 기법, 이를테면 삼각측량 또는 비행-시간 감지를 사용하여 결정된다. 이미지 정보 및 활성 패턴들(이를테면, 활성 투사기들을 사용하여 생성된 적외선 패턴들)은 입체 프로세스(940)에 대한 입력의 역할을 할 수 있다. 상당한 양의 깊이 맵 정보가 함께 융합될 수 있으며, 그 중 일부는 표면 표현으로 요약될 수 있다. 예컨대, 수학적으로 정의가능한 표면들은 (예컨대, 큰 포인트 클라우드에 비해) 효율적일 수 있고, 게임 엔진들과 같은 다른 프로세싱 디바이스들에 이해가능한 입력들일 수 있다. 따라서, 입체 프로세스(940)의 출력(예컨대, 깊이 맵)은 융합 프로세스(930)에서 조합될 수 있다. 포즈는 또한 이 융합 프로세스(930)에 대한 입력일 수 있고, 융합(930)의 출력은 맵 프로세스(920)를 파퓰레이팅하기 위한 입력이 된다. 서브-표면들이 이를테면, 토폴리지 맵핑에서 서로 연결되어 더 큰 표면들을 형성할 수 있고, 맵은 포인트들 및 표면들의 큰 하이브리드가 된다.
[0099] 혼합 현실 프로세스(960)에서의 다양한 양상들을 해결하기 위해, 다양한 입력들이 활용될 수 있다. 예컨대, 도 9에 묘사된 실시예에서, 게임 파라미터들은, 시스템의 사용자가 다양한 위치들에서의 하나 이상의 괴물들, 다양한 조건들 하에서 죽거나 도망치는 괴물들(이를테면, 사용자가 괴물을 사냥하는 경우), 다양한 위치들에서의 벽들 또는 다른 오브젝트들 등을 갖는 괴물 전투 게임을 하고 있다고 결정하기 위한 입력들일 수 있다. 세계 맵은 혼합 현실로의 다른 가치있는 입력이 되도록 그러한 오브젝트들이 서로에 대해 존재하는 곳에 관한 정보를 포함할 수 있다. 세계에 대한 포즈가 또한 입력이 되며, 거의 모든 상호작용 시스템에 대해 중요한 역할을 한다.
[0100] 사용자로부터의 제어들 또는 입력들은 웨어러블 시스템(900)에 대한 다른 입력이다. 본원에서 설명된 바와 같이, 사용자 입력들은 시각 입력, 제스처들, 토템들, 오디오 입력, 감각 입력 등을 포함할 수 있다. 예컨대, 주위를 돌아다니거나 게임을 하기 위해, 사용자는 자신이 하기를 원하는 것에 관해 웨어러블 시스템(900)에게 명령할 필요가 있을 수 있다. 단지 공간에서 자신을 움직이는 것 외에도, 활용될 수 있는 다양한 형태들의 사용자 제어들이 존재한다. 일 실시예에서, 토템(예컨대, 사용자 입력 디바이스), 또는 오브젝트, 이를테면, 장난감 총은 사용자에 의해 홀딩되고 시스템에 의해 추적될 수 있다. 시스템은 바람직하게는, 사용자가 아이템을 홀딩하고 있다는 것을 알고 사용자가 아이템과 어떤 종류의 상호작용을 하고 있는지를 이해하도록 구성될 것이다(예컨대, 만약 토템 또는 오브젝트가 총이면, 시스템은 위치 및 배향뿐만 아니라, 센서, 이를테면 IMU가 장착될 수 있는 트리거 또는 다른 감지 버튼 또는 엘리먼트를 사용자가 클릭하고 있는지 여부를 이해하도록 구성될 수 있으며, 이러한 센서는 그러한 활동이, 카메라들 중 임의의 것의 시야 내에 있지 않을 때라도 무슨 일이 일어나고 있는지를 결정하는데 도움을 줄 수 있음).
[0101] 손 제스처 추적 또는 인식은 또한 입력 정보를 제공할 수 있다. 웨어러블 시스템(900)은 버튼 누름들에 대해, 왼쪽 또는 오른쪽, 정지, 잡기 및 홀드의 제스처에 대해, 기타 등등에 대해 손 제스처들을 추적 및 해석하도록 구성될 수 있다. 예컨대, 일 구성에서, 사용자는 비-게이밍 환경에서 이메일들 또는 캘린더를 훑어보거나 또는 다른 사람 또는 플레이어와 "주먹 인사"를 하길 원할 수 있다. 웨어러블 시스템(900)은, 동적일 수 있거나 동적이지 않을 수 있는 최소 크기의 손 제스처를 레버리지하도록 구성될 수 있다. 예컨대, 제스처들은 중지를 위한 펼쳐진 손, ok를 위한 엄지손가락 올리기, not ok를 위한 엄지손가락 내리기; 또는 방향성 커맨드들을 위한 오른쪽 또는 왼쪽 또는 위/아래로의 손 뒤집기와 같은 단순한 정적 제스처일 수 있다.
[0102] 눈 추적(예컨대, 특정한 깊이 또는 범위로 렌더링하도록 디스플레이 기술을 제어하기 위해 사용자가 바라보는 곳을 추적함)은 다른 입력이다. 일 실시예에서, 눈들의 이접운동은 삼각측량을 사용하여 결정될 수 있으며, 그런다음, 그 특정 사람을 위해 개발된 이접운동/원근조절 모델을 사용하여, 원근조절이 결정될 수 있다.
[0103] 카메라 시스템들과 관련하여, 도 9에 도시된 예시적인 웨어러블 시스템(900)은 3개의 쌍들의 카메라들, 즉 사용자의 얼굴의 측면들에 대해 배열되는 비교적 넓은 FOV 또는 수동 SLAM 쌍의 카메라들, 입체 이미징 프로세스(940)를 다루기 위해 그리고 또한, 사용자의 얼굴의 앞에서 손 제스처들 및 토템/오브젝트 추적을 캡처하기 위해 사용자의 앞에 배향된 상이한 쌍의 카메라들을 포함할 수 있다. FOV 카메라들 및 입체 프로세스(940)를 위한 카메라들의 쌍은 (도 4에 도시된) 외향 이미징 시스템(464)의 일부일 수 있다. 웨어러블 시스템(900)은 눈 벡터들 및 다른 정보를 삼각측량하기 위해 사용자의 눈들을 향해 배향되는 눈 추적 카메라들(도 4에 도시된 내향 이미징 시스템(462)의 일부일 수 있음)을 포함할 수 있다. 웨어러블 시스템(900)은 또한 장면에 텍스처를 주입하기 위해 하나 이상의 텍스처링된 광 투사기들(이를테면, IR(infrared) 투사기들)을 포함할 수 있다.
[0104] 도 10은 웨어러블 VR/AR/MR 시스템에 대한 사용자 입력을 결정하기 위한 예시적인 방법(1000)의 프로세스 흐름도이다. 이러한 예에서, 사용자는 토템과 상호작용할 수 있다. 사용자는 다수의 토템들을 가질 수 있다. 예컨대, 사용자는 소셜 미디어 애플리케이션에 대해 하나의 토템, 게임들을 하기 위해 다른 토템 등을 지정하였을 수 있다. 블록(1010)에서, 웨어러블 시스템은 토템의 모션을 검출할 수 있다. 토템의 움직임은 외향 시스템을 통해 인식될 수 있거나, 또는 센서들(예컨대, 햅틱 글러브, 이미지 센서들, 손 추적 디바이스들, 눈-추적 카메라들, 머리 포즈 센서들 등)을 통해 검출될 수 있다.
[0105] 블록(1020)에서, 토템을 통한 검출된 제스처, 눈 포즈, 머리 포즈, 또는 입력에 적어도 부분적으로 기반하여, 웨어러블 시스템은 레퍼런스 프레임에 대하여 토템(또는 사용자의 눈들 또는 머리 또는 제스처들)의 포지션, 배향, 및/또는 움직임을 검출한다. 레퍼런스 프레임은 한 세트의 맵 포인트들일 수 있으며, 그 한 세트의 맵 포인트들에 기반하여, 웨어러블 시스템은 토템(또는 사용자)의 움직임을 액션 또는 커맨드로 변환한다. 블록(1030)에서, 토템과의 사용자의 상호작용이 맵핑된다. 레퍼런스 프레임(1020)에 대한 사용자 상호작용의 맵핑에 기반하여, 블록(1040)에서 시스템은 사용자 입력을 결정한다.
[0106] 예컨대, 사용자는 가상 페이지를 넘기고 다음 페이지로 이동하거나 또는 하나의 UI(user interface) 디스플레이 스크린으로부터 다른 UI 스크린으로 이동하는 것을 나타내기 위해 토템 또는 물리적 오브젝트를 앞뒤로 이동시킬 수 있다. 다른 예로서, 사용자는 사용자의 FOR에 있는 상이한 실제 또는 가상 오브젝트들을 보기 위해 그들의 머리 또는 눈들을 움직일 수 있다. 만약 특정 실제 또는 가상 오브젝트에서의 사용자의 시선이 임계 시간보다 길면, 실제 또는 가상 오브젝트는 사용자 입력으로서 선택될 수 있다. 일부 구현들에서, 사용자의 눈들의 이접운동이 추적될 수 있으며, 원근조절/이접운동 모델은, 사용자가 초점을 맞추고 있는 깊이 평면에 대한 정보를 제공하는 사용자의 눈들의 원근조절 상태를 결정하기 위해 사용될 수 있다. 일부 구현들에서, 웨어러블 시스템은 어떤 실제 또는 가상 오브젝트들이 사용자의 머리 포즈 또는 눈 포즈의 방향을 따라 존재하는지를 결정하기 위해 광선 캐스팅 기법들을 사용할 수 있다. 다양한 구현들에서, 광선 캐스팅 기법들은 실질적으로 횡방향 폭이 거의 없는 얇은 펜슬 광선들을 캐스팅하는 것, 또는 실질적인 횡방향 폭을 갖는 광선들(예컨대, 콘들 또는 프러스텀(frustum)들)을 캐스팅하는 것을 포함할 수 있다.
[0107] 사용자 인터페이스는 본원에서 설명된 바와 같이 디스플레이 시스템(이를테면, 도 2a의 디스플레이(220))에 의해 투사될 수 있다. 그것은 또한, 다양한 다른 기법들, 이를테면 하나 이상의 투사기들을 사용하여 디스플레이될 수 있다. 투사기들은 물리적 오브젝트, 이를테면 캔버스 또는 구체 상으로 이미지들을 투사할 수 있다. 사용자 인터페이스와의 상호작용들은 시스템 또는 시스템의 일부 외부의 하나 이상의 카메라들을 사용하여 (이를테면, 예컨대 내향 이미징 시스템(462) 또는 외향 이미징 시스템(464)을 사용하여) 추적될 수 있다.
[0108] 도 11은 가상 사용자 인터페이스와 상호작용하기 위한 방법(1100)의 예의 프로세스 흐름도이다. 방법(1100)은 본원에서 설명된 웨어러블 시스템에 의해 수행될 수 있다.
[0109] 블록(1110)에서, 웨어러블 시스템은 특정 UI를 식별할 수 있다. UI의 타입은 사용자에 의해 미리 결정될 수 있다. 웨어러블 시스템은, 특정 UI가 사용자 입력(예컨대, 제스처, 시각 데이터, 오디오 데이터, 감각 데이터, 다이렉트 커맨드 등)에 기반하여 파퓰레이팅될 필요가 있다는 것을 식별할 수 있다. 블록(1120)에서, 웨어러블 시스템은 가상 UI에 대한 데이터를 생성할 수 있다. 예컨대, UI의 경계들, 일반적인 구조, 형상 등과 연관된 데이터가 생성될 수 있다. 게다가, 웨어러블 시스템은, 웨어러블 시스템이 사용자의 물리적 위치에 관하여 UI를 디스플레이할 수 있도록, 그 사용자의 물리적 위치의 맵 좌표들을 결정할 수 있다. 예컨대, 만약 UI가 신체 중심이라면, 웨어러블 시스템은, 링 UI가 사용자 주위에서 디스플레이될 수 있거나 또는 평면 UI가 벽 상에 또는 사용자의 앞에 디스플레이될 수 있도록, 사용자의 물리적 자세, 머리 포즈, 또는 눈 포즈의 좌표들을 결정할 수 있다. 만약 UI가 손 중심적이라면, 사용자의 손들의 맵 좌표들이 결정될 수 있다. 이들 맵 포인트들은 FOV 카메라들을 통해 수신된 데이터, 감각 입력, 또는 임의의 다른 타입의 수집된 데이터를 통해 도출될 수 있다.
[0110] 블록(1130)에서, 웨어러블 시스템은 클라우드로부터 디스플레이로 데이터를 전송할 수 있거나 또는 데이터가 로컬 데이터베이스로부터 디스플레이 컴포넌트들로 전송될 수 있다. 블록(1140)에서, UI는 전송된 데이터에 기반하여 사용자에게 디스플레이된다. 예컨대, 광 필드 디스플레이는 가상 UI를 사용자의 눈들 중 하나 또는 둘 다로 투사할 수 있다. 일단 가상 UI가 생성되면, 블록(1150)에서 웨어러블 시스템은 단순히 가상 UI 상에 더 많은 가상 콘텐츠를 생성하기 위해 사용자로부터의 커맨드를 기다릴 수 있다. 예컨대, UI는 사용자의 신체 주위의 신체 중심 링일 수 있다. 그런다음, 웨어러블 시스템은 커맨드(제스처, 머리 또는 눈 움직임, 사용자 입력 디바이스로부터의 입력 등)를 기다릴 수 있으며, 만약 그것이 인지되면(블록(1160)), 커맨드와 연관된 가상 콘텐츠가 사용자에게 디스플레이될 수 있다(블록(1170)). 예로서, 웨어러블 시스템은 다수의 스팀 추적들을 혼합하기 전에 사용자의 손 제스처들을 기다릴 수 있다.
[0111] 웨어러블 시스템들, UI들 및 사용자 경험들(UX)의 추가적인 예들은 미국 특허 공보 번호 제2015/0016777호에 설명되어 있으며, 이는 그 전체가 인용에 의해 본원에 통합된다.
다양한 사용자 입력 디바이스들 모드들과의 예시적인 상호작용들
[0112] 도 4 및 9를 참조로 설명된 바와 같이, 사용자는 입력 디바이스들 및 모드들 이를테면, 사용자 입력 디바이스(466), 음성 커맨드, 또는 포즈(예컨대, 머리 포즈, 눈 시선 또는 손 제스처)를 사용하여 사용자의 환경에서 오브젝트와 상호작용할 수 있다. 도 12는 다양한 입력 디바이스들 및 모드들 이를테면, 손 제스처(1260), 터치패드(1280) 및 키보드(1240)를 사용하여 오브젝트와 상호작용하는 예들을 개략적으로 예시한다.
[0113] 도 12에서, 사용자 웨어러블 HMD(1220)는 사용자의 FOV(1210) 내의 오브젝트(1212)를 지각할 수 있다. HMD(1220)는 도 2를 참조로 설명된 웨어러블 시스템(200)의 부분일 수 있다. 오브젝트(1212)는 물리적 오브젝트 또는 가상 오브젝트일 수 있다. 물리적 오브젝트는 사용자의 실제 주변 환경에 물리적으로 위치된 오브젝트를 포함할 수 있다. 예컨대, 거실 환경에서, 물리적 오브젝트들은 의자, 소파, 벽 등을 포함할 수 있다. 가상 오브젝트들은 사용자의 실제 환경 상에 가상으로 중첩되거나 또는 사용자의 가상 환경 내의 오브젝트들일 수 있다. 가상 오브젝트들은, 예컨대, 삭제된 파일들에 대한 휴지통, 커맨드들을 입력하기 위한 터미널, 파일들 또는 디렉토리들에 액세스하기 위한 파일 관리자, 아이콘, 메뉴, 오디오 또는 비디오 스트리밍을 위한 애플리케이션, 운영 시스템으로부터의 통지 등과 같은 운영 시스템 오브젝트들을 포함할 수 있다. 가상 오브젝트들은 또한 예컨대, 아바타들, 게임내 오브젝트들, 그래픽들 또는 이미지들 등과 같은 애플리케이션 내의 오브젝트들을 포함할 수 있다. 일부 가상 오브젝트들은 운영 시스템 오브젝트 및 애플리케이션 내의 오브젝트 둘 모두일 수 있다. 일부 실시예들에서, 웨어러블 시스템은 기존 물리적 오브젝트들에 가상 엘리먼트들을 추가할 수 있다. 예컨대, 웨어러블 시스템은 룸에 있는 텔레비전과 연관된 가상 메뉴를 추가할 수 있으며, 여기서 가상 메뉴는 웨어러블 시스템을 사용하여 텔레비전을 턴 온하거나 그의 채널을 변경하는 옵션을 사용자에게 제공할 수 있다.
[0114] 가상 오브젝트는 3D(three-dimensional), 2D(two-dimensional) 또는 1D(one-dimensional) 오브젝트일 수 있다. 예컨대, 가상 오브젝트는 (예컨대, 물리적 커피 메이커에 대한 가상 제어를 표현할 수 있는) 3D 커피 머그잔일 수 있다. 가상 오브젝트는 또한 (현재 시간을 사용자에게 디스플레이하는) 시계의 2D 그래픽 표현일 수 있다. 일부 구현들에서, 하나 이상의 가상 오브젝트들이 다른 가상 오브젝트 내에(또는 이와 관련하여) 디스플레이될 수 있다.
[0115] 사용자의 FOR 내의 오브젝트는 도 9를 참조로 설명된 바와 같이 세계 맵의 부분일 수 있다. 오브젝트들과 연관된 데이터(예컨대, 위치, 시멘틱 정보, 특성들 등)는 예컨대, 어레이들, 리스트들, 트리들, 해시들, 그래프들 등과 같은 다양한 데이터 구조에 저장될 수 있다. 적용 가능한 각각의 저장된 오브젝트의 인덱스는 예컨대, 오브젝트의 위치에 의해 결정될 수 있다. 예컨대, 데이터 구조는 기준 포지션으부터의 오브젝트의 거리(예컨대, 기준 포지션의 왼쪽 또는 오른쪽까지의 얼마나 먼지, 기준 포지션의 최상부 또는 최하부로부터 얼마나 먼지, 또는 기준 포지션으로부터의 깊이 방향으로 얼마나 먼지)와 같은 단일 좌표에 의해 오브젝트들을 인덱싱할 수 있다. 기준 포지션은 사용자의 포지션(이를테면, 사용자의 머리의 포지션)에 기반하여 결정될 수 있다. 기준 포지션은 또한, 사용자의 환경에서 가상 또는 물리적 오브젝트(이를테면, 타겟 오브젝트)의 포지션에 기반하여 결정될 수 있다. 이러한 방식으로, 사용자의 환경의 3D 공간은 가상 오브젝트들이 기준 포지션으로부터의 오브젝트의 거리에 따라 배열되는 2D 사용자 인터페이스로 콜랩스(collapse)될 수 있다.
[0116] 웨어러블 시스템은 FOV 내의 오브젝트들뿐만 아니라 FOR 내의 오브젝트들을 계속해서 추적할 수 있다. 예컨대, 로컬 프로세싱 & 데이터 모듈(260)은 사용자의 FOR에서 가상 오브젝트들을 리트리브하기 위해 원격 프로세싱 모듈(270) 및 원격 데이터 저장소(280)와 통신할 수 있다. 로컬 프로세싱 & 데이터 모듈(260)은 가상 오브젝트들을, 예컨대 버퍼 또는 임시 스토리지에 저장할 수 있다. 로컬 프로세싱 & 데이터 모듈(260)은 본원에서 설명된 기법들을 사용하여 사용자의 FOV를 결정할 수 있다. 로컬 프로세싱 & 데이터 모듈(260)은 저장된 가상 오브젝트에 액세스하여 사용자의 FOV 내에 있는 가상 오브젝트의 서브세트를 식별 및 렌더링할 수 있다. 사용자의 포즈가 변하면, 로컬 프로세싱 & 데이터 모듈(260)은 사용자의 FOV를 업데이트하고 그에 따라서 사용자의 현재 FOV에 대응하는 다른 가상 오브젝트들의 세트를 렌더링할 수 있다.
[0117] 본원에서 설명된 바와 같이, HMD(1220)는 하나 이상의 오브젝트 인식기들(708)을 통해 사용자의 손 제스처를 인식 및 추적할 수 있다. 예컨대, HMD는 외향 이미징 시스템(464)을 사용하여 사용자의 손 제스처의 이미지를 획득할 수 있다. 오브젝트 인식기(708)는 손 제스처를 식별하기 위해 이미지들을 분석할 수 있다. 특정 실시예들에서, 사용자의 손 제스처는 HMD 외부의 카메라에 의해 추적될 수 있다. 예컨대, 카메라는 고정 카메라 이를테면, 룸 사용자 카메라(사용자 환경에 포지셔닝됨), 사용자 입력 디바이스(466)에 (유선 또는 무선으로) 커플링되는 카메라(이를테면, 토템 또는 키보드), 또는 다른 컴퓨팅 디바이스 상의 (예컨대, 개인용 컴퓨터에 커플링된 웹캠과 같은) 카메라를 포함할 수 있다.
[0118] HMD(1220)는 또한 사용자 입력 디바이스(466)와의 사용자 상호작용들을 지원할 수 있다. 예로서, 도 12에서, 사용자는 오브젝트(1212)와 상호작용하기 위해 도 12의 터치패드(1280) 및 키보드(1240)를 작동시킬 수 있다. 특정 실시예들에서, 입력 디바이스들 및 모드들의 조합은 오브젝트(1212)와 상호작용하기 위해 사용자에 의해 사용될 수 있다. 예컨대, 사용자는 키보드(1240) 상의 키를 작동시킴으로써 오브젝트(1212)와 연관된 가상 메뉴를 열고 손 제스처(1260)를 사용하여 가상 메뉴를 이동시킬 수 있다.
사용자 입력 디바이스를 HMD와 페어링하는 예들
[0119] 사용자 입력 디바이스(466)(예컨대, 터치패드(1280) 또는 키보드(1240))는 (예컨대, 블루투스 또는 RF(radio frequency) 수신기를 통해서와 같이) 유선 또는 무선 채널들을 통해 HMD(1220)에 커플링될 수 있다. 사용자 입력 디바이스(466)는 예컨대, 블루투스 또는 RF 프로토콜을 사용하여 무선으로 또는 USB 연결과 같은 유선 연결을 통해 HMD(1220)와 페어링되거나 그와의 통신 연결을 확립할 수 있다. 페어링 프로세스는 사용자 입력 디바이스(466) 또는 HMD(1220)에 의해 개시될 수 있다. HMD에 의해 페어링 프로세스가 개시되는 경우, HMD(1220)는 다양한 기법들을 사용하여 사용자 환경에서 타겟 사용자 입력 디바이스를 식별할 수 있다. 예컨대, HMD(1220)는 타겟 사용자 입력 디바이스를 직접 질의할 수 있다. 이는 디바이스가 그러한 질의를 지원할 수 있는 프로토콜에 따라 Wi-Fi 또는 블루투스와 같은 RF 무선 프로토콜들에 의해 그 자체를 식별할 수 있는 경우에 가능하다.
[0120] HMD(1220)는 또한 시각 큐들을 통해 타겟 사용자 입력 디바이스를 식별할 수 있다. 예컨대, HMD(1220)는 외향 이미징 시스템(464)을 사용하여, 타겟 사용자 입력 디바이스의 이미지를 획득하고 오브젝트 인식기(708)를 사용하여 타겟 사용자 입력 디바이스의 타입을 식별할 수 있다. 오브젝트 인식기(708)는 예컨대, 컴퓨터 비전 알고리즘들 이를테면, 인공 뉴럴 네트워크(예컨대 "Alex-net")의 애플리케이션을 통해 또는 백 오프 워드들(Bag of Words) 타입 서치와 조합된 피처 키포인트 방법들(예컨대, SIFT)을 구현할 수 있다. HMD는 타겟 사용자 입력 디바이스를 계층적 방식으로 식별할 수 있다. 예컨대, HMD는 오브젝트가 물리적 키보드임을 식별하기 위해 제1 알고리즘을 실행할 수 있다. 그런다음 HMD는 키보드의 레이아웃 또는 키보드 제조/모델과 같은 키보드의 피처들을 식별하기 위해 제2 알고리즘을 실행할 수 있다.
[0121] HMD(1220)는 또한, (포즈들을 통한) 사용자 입력에 기반하여 타겟 사용자 입력 디바이스를 식별할 수 있다. 예컨대, 사용자는 자신의 손가락이 키보드를 가리킴으로써 페어링하기 위한 키보드를 식별할 수 있다. HMD(1220)는 사용자의 손가락 끝으로부터 광선 캐스팅을 수행하고 키보드가 광선과 교차하기 때문에 키보드를 선택할 수 있다.
[0122] 다른 예로서, 타겟 입력 디바이스는 바코드, QR 코드, LED 패턴 등과 같은 광학적으로 판독 가능한 고유 라벨을 포함할 수 있다. HMD는 라벨을 스캐닝 또는 이미징하고 라벨로부터 정보를 추출하기 위한 광학 센서(예컨대, 세계 카메라)를 포함할 수 있다. 추출된 정보는 제조자, 디바이스의 타입 등과 같은 디바이스 식별자들을 포함할 수 있다. 라벨은 타겟 디바이스에 붙여지거나 각인될 수 있다. 예컨대, 키보드(1240)는 키보드(1240)의 제조사, 모델, 일련 번호 등을 명시적으로 표시하는 스티커 또는 플래카드를 가질 수 있다. 다른 예로서, 키보드(1240)의 브랜드는 키보드(1240)의 표면 상에 각인될 수 있다.
[0123] 일부 실시예들에서, HMD(1220)가 사용자 입력 디바이스(예컨대, 키보드(1240) 또는 터치패드(1280))와 페어링되면, HMD는(예컨대, 사용자 입력 디바이스 그 자체로부터 그러한 정보를 수신함으로써, 네트워크를 통해 원격 소스에서 다운로드함으로써, 로컬로 저장된 데이터에 액세스 등을 함으로써) 사용자 입력 디바이스의 기능성에 관련된 정보에 액세스하고 사용자 입력 디바이스의 기능성에 기반하여 구성 세팅을 세팅한다. 예컨대, 만약 HMD(1220)가 키보드(1240)가 외국어 키보드임을 인식한다면, HMD(1220)는 키보드(1240)의 것과 매칭되도록 그의 시스템 언어 세팅(예컨대, 영어, 스페인어, 중국어 등)을 변화시킬 수 있다.
[0124] 게다가, 일부 실시예들에서, HMD(1220)가 사용자 입력 디바이스(예컨대, 키보드(1240), 터치패드(1280) 또는 임의의 다른 토템)와 페어링하거나 그렇지 않고 그와의 상호작용을 검출하면, HMD는 특정 사용자 입력 디바이스로부터 수신되거나 그 특정 사용자 입력 디바이스를 사용하여 수행된 사용자 입력들 또는 액션들이 태깅되거나, 라벨링되거나 또는 그러한 입력들이 이루어질 때 사용자 입력 디바이스가 상호작용했던 대응하는 HMD와 다른 방식으로 연관되는 컴퓨터 데이터 구조를 생성 또는 수정할 수 있다. 데이터 구조는, 데이터 구조가 하나 이상의 사용자 입력 디바이스들로부터의 사용자 입력들을 하나 이상의 HMD 디바이스들과 관련시키는 정보를 포함할 수 있도록 다수의 HMD 디바이스들 간에 공유될 수 있다(또는 다른 방식으로 액세스 가능하게 됨). 일부 경우들에서, 데이터 구조는 단일 사용자 입력 디바이스로부터의 사용자 입력들/액션들을 다수의 HMD 디바이스들과 연관시키고, 다수의 사용자 입력 디바이스들로부터의 사용자 입력들/액션들을 단일 HMD 디바이스와 연관시키고 그리고/또는 다수의 사용자 입력 디바이스들로부터의 사용자 입력들/액션들을 다수의 HMD 디바이스들과 연관시킬 수 있다. 그런다음, 이 정보는, 컴퓨터 파일 또는 가상 오브젝트를 생성 또는 수정하고 액션을 수행하는 등을 하는 데 사용될 수 있다. 일부 경우들에서, 각각의 사용자 입력/액션들을 개개의 HMD와 연관시키는 정보는 입력 또는 액션을 수행하는 사람의 아이덴티티를 표시하는 데 사용될 수있다.
[0125] 예컨대, 상이한 HMD 디바이스들의 사용자들은 대안적으로, 단일 키보드(1240)를 사용하여 텍스트, 포맷팅 변화들 등을 텍스트 문서에 입력할 수 있다. 데이터 구조는 키보드(1240)가 제1 HMD와 상호작용할 때 이루어진 그러한 키보드 입력들뿐만 아니라 키보드(1240)가 제2 HMD와 상호작용할 때 이루어진 그러한 사용자 입력들을 저장하는 데 사용될 수 있다. 그런다음 텍스트 문서를 수정하는데 이 정보가 사용될 수 있다. 예컨대, 제1 및 제2 HMD 디바이스들에 페어링하는 동안 이루어진 개개의 입력들은 텍스트(예컨대, 상이한 컬러들, 폰트들, 포맷팅 등)를 마크 업하여, 제2 HMD가 키보드(1240)와 페어링되었을 때 제2 HMD의 사용자에 의해 입력되거나 이루어진 것과 비교할 때 제1 HMD의 사용자에 의해 입력되거나 이루어진 텍스트, 포맷팅 등을 도시하는 데 사용될 수 있다. 다른 실시예들에서, 대응하는 HMD와 함께 사용자 입력들/액션들을 저장하는 데이터 구조로부터의 정보는 다른 액션들을 수행하는데 또한 사용될 수 있다. 예컨대, 제1 토템의 사용자에 의해 게임 또는 애플리케이션에서 수행되는 액션들은 검출되고 동일한 토템의 제2 사용자에 의해 수행되는 액션들로부터 구별될 수 있다. 방금 논의된 바와 같이, 이는 각각의 HMD가 HMD의 사용자가 상호작용하는 토템을 인식한 다음, 사용자가 그 토템과 상호작용하는 동안 이루어진 그러한 액션들 또는 입력들을 데이터 구조에 추가하는 것을 토대로 달성될 수 있다.
예시적인 키보드들의 개요
[0126] 도 12에 도시된 키보드(1240)는 HMD(1220)에 의해 렌더링된 가상 키보드 또는 물리적 키보드일 수 있다. 특정 구현들에서, 키보드(1240)는 다수의 디바이스들을 제어할 수 있다. 예컨대, 키보드(1240)는 데스크톱 컴퓨터에 단어 설명들을 입력하는 데 사용될 수 있는 반면, 동일한 키보드(1240)는 HMD(1220)와의 상호작용을 위한 정보를 입력하는데 또한 사용될 수 있다.
[0127] 사용자는 터치 제스처, 탭 제스처, 누름 제스처 등과 같은 다양한 손 제스처들을 사용하여 키보드(1240)를 작동시킬 수 있다. 상이한 손 제스처들은 상이한 입력 기능들과 연관될 수 있다. 예컨대, 터치 제스처는 숫자, 심볼 또는 캐릭터로 하여금 HMD(1220)에 입력되게 하는 반면, 누름 제스처는 커맨드 프롬프트로 하여금 HMD(1220)에 의해 개방되게 할 수 있다. 특정 실시예들에서, 모든 키들이 동일한 타입들의 손 제스처들을 인식하진 않을 것이다. 예컨대, 키보드(1240)는 터치 제스처를 인식하도록 구성되지만 누름 제스처를 인식하지 않는 터치 구역을 포함할 수 있다. 다른 예로서, 키보드(1240)는 터치 제스처를 지원하지 않는 키를 포함할 수 있다.
[0128] HMD(1220)는 제스처 인식들을 사용하여 키보드의 작동을 검출할 수 있다. 예컨대, HMD(1220)는 외향 이미징 시스템(464)으로부터 또는 외부 카메라로부터 획득된 이미지들을 (예컨대, 오브젝트 인식기(708)를 사용하여) 분석함으로써 사용자의 손가락의 움직임을 추적할 수 있다. 추가적으로 또는 대안적으로, HMD(1220)는 사용자의 눈 시선에 기반하여 광선 캐스팅을 수행하여 사용자의 시선 방향과 교차하는 키를 식별할 수 있다. 그에 따라서, HMD(1220)는 일단 키가 광선 캐스팅으로부터 식별되면 동작(예컨대, 키와 연관된 심볼 또는 캐릭터를 입력하거나 커맨드를 실행)을 수행할 수 있다. 일부 실시예들에서, 사용자의 눈 시선에 의해 키가 "작동되는" 것으로 고려하기 전에 사용자가 키를 바라보는 미리 결정된 체류 기간이 요구될 수 있다.
[0129] 키보드를 작동시키기 위한 제스처 인식 및 광선 캐스팅 기법들은 물리적 키보드 및 가상 키보드에 적용될 수 있다. 결과적으로, 사용자는 키를 작동시키기 위해 물리적 키보드를 터치하거나 물리적 키보드를 누를 필요가 없을 수 있다.
[0130] 키보드(1240)는 하나 이상의 사양들과 연관될 수 있다. 사양들은 키들의 레이아웃 및 대응하는 키 기능들, 터치 표면들 또는 다른 제어들을 포함할 수 있다. 도 13a-13c를 참조로 설명된 바와 같이, 키보드(1240)의 사양은 동적으로 구성 가능할 수 있다. 예컨대, 키보드(1240)는 블랭크 물리적 키보드일 수 있다(예컨대, 물리적 키보드의 키들은 영구적으로 할당된 캐릭터들, 숫자들, 심볼들 등과 같은 영구적으로 할당된 기능들로 라벨링되지 않고 그리고/또는 그 기능들을 갖지 않을 수 있음). HMD는 대응하는 동적으로 할당된 기능으로, 하나 이상의 가상 키들을 블랭크 물리적 키보드의 키들 상에 렌더링할 수 있다. 예컨대, 사용자가 하나의 애플리케이션으로부터 다른 애플리케이션으로 전환할 때 구성이 하나로부터 다른 것으로 변할 수 있다. 예컨대, HMD(1220)는 사용자가 10개의 손가락들로 타이핑하는 워드 프로세싱 애플리케이션에 대한 쿼티(QWERTY) 레이아웃을 렌더링할 수 있다. 그러나 사용자가 두 엄지손가락 타이핑에 대해 바람직한 웹 기반 애플리케이션과 상호작용하는 경우 HMD(1220)는 KALQ 레이아웃을 블랭크 물리적 키보드 상에 렌더링할 수 있다.
[0131] 가상 키보드의 사양이 또한 동적으로 재구성 가능할 수 있다. 예컨대, 가상 키보드는 물리적 키보드의 에뮬레이션일 수 있다. 예컨대, 웨어러블 시스템은 본원에서 설명된 다양한 기법들을 사용하여 물리적 키보드를 식별할 수 있다. 웨어러블 시스템은 추가로 컴퓨터 비전 기법들을 사용하거나 데이터베이스에 액세스하여 사양을 리트리브함으로써 물리적 키보드의 사양에 액세스할 수 있다. 예컨대, 웨어러블 시스템은 물리적 키보드의 사양을 수신하기 위해 물리적 키보드의 제조자와 통신할 수 있다. 특정 구현들에서, 사양들은 또한 각각의 키에 대해 에뮬레이팅될 실제 코드들(예컨대, 캐릭터들, 숫자들, 심볼들 등에 대한 ASCII 코드들)을 포함할 수 있다. 다른 예로서, 가상 키보드는 하나의 게임 애플리케이션에 대해 키들 "A", "D", "W", "S"을 렌더링하는 반면, 상이한 게임 애플리케이션에 대해 위, 아래, 왼쪽 및 오른쪽 화살표 키들을 렌더링할 수 있다.
[0132] 본원에서 추가로 설명된 바와 같이, 키보드(1240) 상의 하나 이상의 키들은 터치 감지성일 수 있다. 예컨대, 키보드(1240)가 물리적 키보드인 경우, 키보드 상의 스페이스 바는 터치 표면(사용자에 의한 키의 작동을 수신하도록 구성됨), 사용자의 제스처를 검출할 수 있는 터치 센서 및 터치 센서로부터 수신된 신호를 HMD(1220)로 통신할 수 있는 PCB 보드를 포함할 수 있다. 키보드(1240)가 가상 키보드인 경우, HMD(1220)는 하나 이상의 키들의 작동을 위해 하나 이상의 키들 상의 터치 제스처 또는 스와이프 제스처를 검출할 수 있다.
[0133] 키보드(1240)는 다수의 상호작용하는 구역들을 포함할 수 있다. 하나의 상호작용하는 구역은 특정 타입들의 사용자 상호작용들과 연관될 수 있다. 예컨대, 하나의 상호작용하는 구역(이를테면, 쿼티 키보드의 숫자 패드 구역)은 터치 제스처, 스와이프 제스처, 탭 및 누름 제스처를 지원할 수 있는 반면, 다른 상호작용하는 구역(예컨대, 글자 구역)만이 누름 제스처를 지원할 수 있다.
[0134] 예시적인 기법들이 키보드를 참조로 설명되었지만, 유사한 기법들이 다른 타입들의 사용자 입력 디바이스들(466)에 또한 적용될 수 있다. 예컨대, 토템의 사양이 또한 동적으로 구성 가능할 수 있다. 예컨대, 토템 상의 키는 수학-관련 애플리케이션에서 숫자 키에 할당되는 동안 게임 애플리케이션에서 왼쪽 화살표와 연관될 수 있다.
동적으로 재구성 가능한 물리적 키보드의 예들
[0135] 도 12를 참조로 설명된 바와 같이, 물리적 키보드는 라벨을 갖지 않는 하나 이상의 블랭크 키들을 포함할 수 있다(예컨대, 물리적 키보드의 키들은 영구적으로 할당된 캐릭터들, 숫자들, 심볼들 등과 같은 영구적으로 할당된 기능들로 라벨링되지 않고 그리고/또는 그 기능들을 갖지 않을 수 있음). 웨어러블 시스템은 물리적 키보드의 적어도 일부에 대한 사양을 동적으로 재구성할 수 있다. 도 12를 참조로 설명된 바와 같이, 웨어러블 시스템은 키보드와 통신하거나 시각 큐들을 사용함으로써 키보드 또는 키보드 또는 키들을 인식할 수 있다. 예컨대, 웨어러블 시스템은 키보드로부터 디바이스 식별자를 수신하고 원격 데이터 저장소(280) 또는 컴퓨팅 디바이스(이를테면, 예컨대, 키보드 제조자와 연관된 컴퓨팅 디바이스)와 통신하여 저장된 레이아웃에 액세스함으로써 키보드의 키들의 레이아웃을 리트리브할 수 있다. 추가적으로 또는 대안적으로 웨어러블 시스템은 오브젝트 인식기(708)를 사용하여 키보드뿐만 아니라 키보드 상의 키들의 수 및 위치를 인식할 수 있다.
[0136] 도 13a-13c는 물리적 키보드의 사양을 동적으로 구성하는 예들을 예시한다. 구성된 사양은 키보드를 통해 가상 키 라벨들을 렌더링하는 데 사용될 수 있다. 이들 도면들에서, 사용자는 가상 사용자 인터페이스(1310)를 지각할 수 있고, 물리적 키보드(1340)는 HMD(1210)에 의해 제공된 AR/MR 장면을 통해 도시된다. 물리적 키보드(1340)는 키보드(1240)의 실시예일 수 있다. 물리적 키보드(1340)의 일부는 물리적 라벨들을 포함할 수 있다. 예로서, 키들(1322a, 1322b, 1322c, 1322d)은 A, S, D, F로서 라벨링된다. 결과적으로, 키(1322a)가 작동될 때, 키보드(1340)는 글자 A가 시스템에 입력되었음을 표시하는 신호를 전송할 수 있다. 예컨대, 눌러지고 있는 키(1322a)의 신호는 웨어러블 시스템으로 하여금 키(1322a)와 연관된 ASCII 값을 식별하게 할 수 있다. 웨어러블 시스템은 (예컨대, 사용자가 문장을 입력할 때) 사용자 인터페이스 상호작용들을 위해 ASCII 값을 글자 A로 자동으로 전환할 수 있다.
[0137] 물리적 키보드의 특정 부분들 이를테면, 부분(1342 및 1344)은 블랭크일 수 있으며, 이는 블랭크 물리적 키들이 영구적으로 할당된 캐릭터들, 숫자들, 심볼들 등과 같은 영구적으로 할당된 기능들로 라벨링되지 않고 그리고/또는 그 기능들을 갖지 않을 수 있다는 것을 의미한다. HMD(1210)는 콘텍스추얼 정보에 기반하여 가상 키 라벨들을 제공할 수 있다.
[0138] 콘텍스추얼 정보는 물리적 키보드, 이를테면, 예컨대, 물리적 키보드의 포지션 또는 배향, 기존 레이아웃, 물리적 키보드에 의해 지원되는 작동들의 타입들(예컨대, 터치, 스와이프 등), 키보드의 사이즈, 블랭크 키들의 수 및 위치 등과 연관될 수 있다. 예컨대, 섹션(1342)에 대한 레이아웃은 숫자들에 적절하다. 결과적으로, HMD(1210)는 도 13b에 도시된 바와 같이 섹션(1342)의 물리적 키들에 중첩된 가상 이미지 데이터(AR 이미지 데이터)로서 숫자들(0-9)을 렌더링할 수 있다. 웨어러블 시스템은, 도 7을 참조로 설명된 다양한 컴퓨터 비전 알고리즘들을 사용하여 섹션(1342) 및 그의 레이아웃을 인식할 수 있다. 예컨대, 웨어러블 시스템은, 섹션들(1342)과 연관된 표면의 형상을 예시하는 이미지를 획득할 수 있다. 이러한 예에서, 섹션(1342)과 연관된 표면은 10개의 정사각형 형상의 범프들 및 1개의 직사각형 범프를 포함할 수 있다. 오브젝트 인식기(708)는 이러한 표면 형상과, 10개의 정사각형 형상의 키들 및 1개의 직사각형 형상의 키의 레이아웃을 매칭시킬 수 있다. 특정 실시예들에서, 물리적 키보드는 사전-라벨링된 하나 이상의 키들을 가질 수 있다. 결과적으로, 웨어러블 시스템은, 키보드의 라벨들(예컨대, 이미지의 일련의 글자 스트링 "QWERTY")을 검출함으로써 오브젝트가 키보드라는 것을 인식할 수 있다. 다른 예로서, 스페이스바(키(1324)로서 예시됨)는 터치 감지 표면을 가질 수 있다. 결과적으로, HMD는 키(1324) 상의 슬라이딩 바를 렌더링할 수 있고, 사용자는, 예컨대, 애플리케이션을 개방/폐쇄하거나, 슬라이딩 바의 움직임과 동일한 방향으로 가상 오브젝트를 이동시키는 것과 같은 사용자 인터페이스 동작을 수행하기 위해 슬라이딩 바를 홀딩하고 이를 일단으로부터 타단으로 이동시킬 수 있다. 또 다른 예로서, 사용자는 물리적 키보드를, 이를테면, 예컨대, 거실로부터 침실의 단부 책상으로 이동시킬 수 있다. 움직임의 결과로서, 웨어러블 시스템은 물리적 키보드의 포지션을 재결정하고, 그에 따라서 가상 키 라벨들의 렌더링 위치들을 업데이트할 수 있다. 웨어러블 시스템은 오브젝트 인식기(708)를 사용하여 물리적 키보드의 위치를 추적할 수 있다. 예컨대, 웨어러블 시스템은 물리적 키보드의 이미지들을 획득하고, 물리적 키보드를 식별하도록 이미지들을 파싱하기 위해 오브젝트 인식기(708)를 사용할 수 있다. 특정 실시예들에서, 웨어러블 시스템은 물리적 키보드의 키들의 포지션들을 매칭시키기 위해 템플릿을 사용할 수 있다. 템플릿은 물리적 키보드의 표면의 형상을 추적할 수 있다. 이미지들을 파싱하는 동안, 오브젝트 인식기(708)는 템플릿과 이미지의 물리적 키보드를 정렬하려고 시도할 수 있다. 일단 정렬이 성공적이면, 오브젝트 인식기(708)는 템플릿에 기반하여 각각의 키의 위치를 결정할 수 있다. 또한, 사용자는, (예컨대, 더 편안한 포지션 등을 달성하기 위해) 타이핑하는 동안, 키보드의 위치 또는 배향을 변경할 수 있다. 웨어러블 시스템은 또한 키보드의 배향의 이러한 변화들을 검출하고, 그에 따라서 가상 키들의 렌더링 위치들을 조정할 수 있다.
[0139] 콘텍스추얼 정보는 또한 사용자의 환경의 특징 또는 HMD에 의해 실행되는 애플리케이션, 이를테면, 예컨대, 사용자 환경의 오브젝트들의 레이아웃, 위치, 사이즈, 사용자가 현재 상호작용하는 오브젝트의 타입 또는 상호작용 피처들, (예컨대, 키들의 조명들을 조정하기 위한)사용자의 환경의 조명 상태 등과 연관될 수 있다. 예컨대, 키(1324)는, 만약 사용자의 환경의 오브젝트들이 서로로부터 비교적 멀리 떨어져 위치되면, 슬라이딩 바를 포함할 수 있다. 키(1324) 상에서 슬라이딩함으로써, 사용자는 가상 오브젝트를 다른 위치로 더 신속하게 이동시킬 수 있다. 그러나, 만약 사용자의 환경의 오브젝트들이 함께 더 조밀하게 있다면, 웨어러블 시스템은 슬라이딩 바를 렌더링하지 않을 수 있다. 오히려, 사용자는 가상 오브젝트를 이동시키기 위해 섹션(1346)의 화살표 키들에 의존하는 것이 필요할 수 있다. 화살표 키들을 사용함으로써, 사용자는 가상 오브젝트를 더 개선된 방식으로 이동시킬 수 있고, 가상 오브젝트와 다른 오브젝트의 충돌을 회피할 수 있다. 또 다른 예로서, 사용자는, 사용자의 주방의 적합하게 인에이블링된 물리적 냉장고와 상호작용하면서, 키보드를 사용하기를 원할 수 있다. 이러한 예에서, 사용자는 냉장고(예컨대, 이를테면, 냉장고의 온도)를 프로그래밍하기 위해 키보드를 사용할 수 있다. 웨어러블 시스템은 사용자의 눈 시선 방향을 검출하고, 냉장고를 식별하기 위해 광선 캐스팅 기법을 사용할 수 있다. 웨어러블 시스템은 추가로, (예컨대, 연장된 시간 기간 동안 키(1324) 상의 누름을 검출함으로써) 사용자가 키보드를 작동시킬 때 또는 사용자가 특정 제스처를 보여줄 때, 사용자가 냉장고를 프로그래밍하려고 한다고 결정할 수 있다. 결과적으로, 웨어러블 시스템은 키보드(1340) 상의 냉장고에 특정적인 다양한 제어부들을 렌더링할 수 있다. 예컨대, 웨어러블 시스템은 섹션(1342)에서, 예컨대, 섭씨 0, -10, 또는 4 도와 같이 다수의 사전 설정된 온도들을 렌더링하는 한편, 사용자가 온도들을 추가로 조정하기 위해 섹션(1346)에서 위 화살표 및 아래 화살표를 렌더링할 수 있다.
[0140] 도 13b 및 13c는 오브젝트의 타입 및 상호작용 피처들에 기반하여 키보드(1340)를 동적으로 재구성하는 예를 예시한다. 사용자는 HMD(1210)를 통해 가상 오브젝트 A(1312a)를 지각할 수 있다. 가상 오브젝트 A(1312a)는 사용자의 3D 환경에서 렌더링될 수 있다. 가상 오브젝트 A(1312a)는 수학 애플리케이션을 포함할 수 있다. 결과적으로, HMD(1210)는 숫자들(0-9)을 키보드(1340)의 섹션(1342) 상에 렌더링할 수 있다. 일부 상황들에서, 수학 애플리케이션은 어카운팅 피처들 및 수학적 피처들 둘 모두를 포함할 수 있다. HMD(1210)는, 만약 사용자가 어카운팅 피처들을 사용하면, 도 13b에 도시된 바와 같이 사양을 렌더링할 수 있다. 그러나, 만약 사용자가 수학적 피처들로 전환되면, HMD(1210)는 수학적 피처들에 특정적인 추가적인 키들을 렌더링할 수 있다. 예컨대, HMD는 키보드 섹션(1344)의 수학적 연산자들과 연관된 심볼들을 렌더링할 수 있다. 만약 사용자가 가상 오브젝트 A(1312a)라기 보다는 가상 오브젝트 B(1312b)와 상호작용하면, 웨어러블 시스템은 키보드(1340)의 사양을 도 13c에 도시된 것으로 조정할 수 있다. 도 13c의 사양은 섹션(1342)의 심볼들을 포함하고, 숫자들은 (도 13b에 도시된 바와 같이) 섹션(1342)이라기 보다는 섹션(1344)에서 렌더링된다. 이것은, 가상 오브젝트 B(1312b)가 수학 관련 애플리케이션이라기 보다는 워드 프로세싱 애플리케이션과 연관되기 때문일 수 있다.
[0141] 콘텍스추얼 정보는 추가로, 예컨대, 사용자의 인구 통계 정보, 사용자의 선호도, 또는 사용자의 과거 상호작용들과 같은 사용자의 특징에 기반할 수 있다. 예컨대, 웨어러블 시스템은 사용자의 모국어를 결정하고, 사용자의 모국 언어로 설계된 사양에 따라 키보드(1340) 상에 키 라벨들을 중첩시킬 수 있다. 다른 예로서, 웨어러블 시스템은 사용자의 과거 타이핑 거동에 기반하여 몇몇의 빈번하게 사용되는 이모티콘들을 식별하고, 사용자가 액세스하기 위한 키보드(1340)의 섹션(1342)의 이모티콘들을 렌더링할 수 있다. 또 다른 예로서, 웨어러블 시스템은, 사용자로부터 디폴트 레이아웃으로서 AZERTY 레이아웃의 선택을 수신함으로써 또는 웨어러블 시스템과 사용자의 과거 상호작용들을 관찰함으로써 사용자에 대해 AZERTY 레이아웃이 QWERTY 레이아웃보다 선호된다고 결정할 수 있다(예컨대, 사용자는 종종 QWERTY 레이아웃이라기 보다는 AZERTY 레이아웃을 선택함). 결과적으로, 웨어러블 시스템은 QWERTY 레이아웃이라기 보다는 키보드(1340) 상에서 AZERTY 레이아웃을 렌더링할 수 있다.
[0142] 다양한 실시예들에서, 콘텍스추얼 정보는, 예컨대, 디스플레이(220)의 광학 특징과 같은, HMD의 특징을 포함할 수 있다. 예컨대, 디스플레이(220)를 통해 지각되는 사용자의 AR/MR FOV는 물리적 키보드의 사이즈보다 더 작을 수 있다. 결과적으로, 사용자가 HMD와 상호작용하는 동안, 사용자는 전체 키보드(1340)를 지각하지 못할 수 있다. 이러한 문제점을 해결하기 위해, 웨어러블 시스템은 사용자의 눈 시선 및 머리 포즈에 기반하여 키들의 포지션들을 동적으로 이동시킬 수 있다. 예컨대, 사용자가 플레이하고 있는 게임이 4개의 방향 키들(위, 아래, 오른쪽 및 왼쪽)을 요구할 수 있지만, 웨어러블 시스템은 섹션(1346)의 4개의 방향 키들을 초기에 렌더링할 수 있다. 그러나, 만약 사용자가 왼쪽으로 회전하면, 그에 따라서 사용자의 FOV가 업데이트된다. (예컨대, 4개의 방향 키들과 사용자의 FOV 사이에 상대적인 포지션들을 유지함으로써) 4개의 방향 키들이 여전히 사용자의 FOV에 있는 것을 보장하기 위해, 그에 따라서 HMD는 4개의 방향 키들의 렌더링 위치들을 키보드(1340) 상에서 왼쪽으로 이동시킬 수 있다. 이러한 움직임의 결과로서, 4개의 방향 키들은 섹션(1346)의 키들 상에서 더 이상 렌더링되지 않는다.
[0143] HMD는 키 라벨들을 물리적 키보드(1340) 상에서 렌더링하기 위한 다양한 기법들을 사용할 수 있다. HMD는 키 값의 픽셀 스틱을 통해 키보드의 물리적 키 상에 키 값(예컨대, 글자 "B" 또는 "$" 심볼)을 렌더링할 수 있다. 픽셀 스틱은 이미지 또는 픽셀로 하여금 3D 공간의 위치 또는 오브젝트(예컨대, 키)에 "달라붙게" 할 수 있다. 다른 예로서, 웨어러블 시스템은 물리적 키보드의 최상부 상에 있도록 물리적 키보드의 물리적 특징(예컨대, 키들의 사이즈, 위치들 등)과 매칭하는 가상 키보드를 오버레이할 수 있다. 다양한 실시예들에서, 웨어러블 시스템은 가상 키 라벨들을 키보드(1340)의 부분으로 렌더링할 수 있다. 예컨대, 웨어러블 시스템은 키보드(1340)의 다른 섹션들이 아니라 섹션(1342)으로 가상 키 라벨들을 렌더링할 수 있다. 키보드(1340)의 다른 섹션들 중 일부가 (물리적 라벨들로) 사전-라벨링되지만, 사용자는 디스플레이(220)를 통해 이들 사전-라벨링된 키들을 보고, 물리적 라벨들에 의해 표시된 기능들에 기반하여 사전-라벨링된 키들과 상호작용할 수 있다.
[0144] 특정 실시예들에서, 웨어러블 시스템은, 이미 물리적 라벨들을 갖는 키들 상에 가상 키 라벨들을 렌더링할 수 있다. 가상 키 라벨들은, 물리적 라벨들을 가리지 않은 위치에서 렌더링될 수 있다. 예컨대, 사용자는, HMD와 상호작용할 때 영어 및 히브리어 둘 모두를 사용할 수 있다. 키보드(1340)는 영어 캐릭터들로 사전-라벨링될 수 있다. 그러나, 사용자가 입력 모드를 히브리어로 전환할 때, 웨어러블 시스템은 키보드의 키들 상에 히브리어 캐릭터들을 렌더링할 수 있다. 히브리어 캐릭터는 특정 키 상의 영어 캐릭터에 근접하게 렌더링될 수 있다. 히브리어 캐릭터의 포지션은 영어 캐릭터를 가리지 않을 수 있다. 결과적으로, 사용자는 (예컨대, 물리적 라벨로 인해) 영어 캐릭터 및 (예컨대, 가상 라벨로 인해) 히브리어 캐릭터 둘 모두를 지각할 수 있다. 일부 구현들에서, 가상 키 라벨들은 물리적 라벨을 가릴 수 있다. 예컨대, 가상 키 라벨들의 밝기는 사용자의 환경의 광보다 더 높을 수 있다. 결과적으로, 사용자는, 가상 키 라벨이 물리적 라벨 위에 렌더링될 때, 물리적 라벨을 지각하지 못할 수 있다.
[0145] 가상 키 라벨들의 렌더링 위치들에 부가하여 또는 이에 대안적으로, 웨어러블 시스템은 또한 사양에 따라 키의 기능을 동적으로 업데이트할 수 있다. 도 13b 및 도 13c를 참조로, 키(1352)가 0이 되도록 초기에 할당될 때, 웨어러블 시스템은 키(1352)의 작동을 표시하는 신호를 0과 연관된 ASCII 값으로 번역할 수 있다. 그에 따라서, 웨어러블 시스템은 0의 입력 값에 따라 연산을 수행할 수 있다. 그러나, 도 13c에서, 키(1352)에는 동일한 심볼이 할당된다. 결과적으로, 웨어러블 시스템은 키(1352)의 작동을 표시하는 신호를 "="와 연관된 ASCII 값으로 번역할 수 있다. 그에 따라서, 웨어러블 시스템은 이러한 입력에 따라 연산(예컨대, 수학 연산)을 수행할 수 있다.
[0146] 도 13a-13c의 예시적인 키보드(1340)가 물리적 라벨들을 갖는 키들을 포함하지만, 특정 실시예들에서, 키보드(1340)는 전체적으로 블랭크일 수 있고, 웨어러블 시스템은 콘텍스추얼 정보에 기반하여 가상 키 라벨들을 물리적 키보드 상에 렌더링할 수 있다. 추가로, 다양한 실시예들에서, 하나 초과의 콘텍스추얼 팩터는 물리적 키보드의 사양을 결정하는 데 사용될 수 있다. 예컨대, 웨어러블 시스템은, 어떤 레이아웃이 물리적 키보드(1340) 상에 렌더링되어야 하는지를 결정하기 위해, 사용자가 현재 상호작용하는 애플리케이션 외에도 사용자의 선호도를 고려할 수 있다. 이들 예들이 물리적 키보드를 참조로 설명되지만, 가상 키보드를 동적으로 재구성하기 위해 유사한 기법들 및 콘텍스추얼 정보가 또한 사용될 수 있다. 예컨대, 웨어러블 시스템은, 도 13a-13c를 참조로 설명된 콘텍스추얼 정보에 기반하여, 키보드 템플릿(특정 가상 키들을 가짐)을 다양한 가상 키 값들로 동적으로 업데이트할 수 있다.
[0147] 물리적 키보드의 키들의 할당된 기능들을 동적으로 재구성하는 것 외에도, 키보드(1340)는, 물리적 키보드의 하나 이상의 키들의 "느낌"을 동적으로 변경하는 데 사용될 수 있는 햅틱 트랜스듀서 또는 다른 기계적 또는 전기 엘리먼트들을 포함할 수 있다. 하나 이상의 이러한 엘리먼트들이 키마다 제공될 수 있다. 작동될 때 키가 사용자를 느끼거나 응답하는 방법에 관련된 임의의 특징은 이들 엘리먼트들에 의해 변경될 수 있다. 예컨대, 키의 저항, 중량, 이동 등 모두는 변경될 수 있다. 임의의 키의 작동 특징의 변화들은 키보드의 사양의 변화에 대한 응답으로 수행될 수 있다. 예컨대, 키들의 작동 특징은, 만약 HMD가 AR 피아노 애플리케이션을 실행하면, 더 피아노 같은 느낌을 제안하도록 변경될 수 있다. 또는 작동 특징은, 만약 HMD가 AR 타이핑 애플리케이션을 실행하면, 타자기형이 되도록 변경될 수 있다.
키보드의 예시적인 섹션들 및 상호작용 구역들
[0148] 특정 실시예들에서, 물리적 키보드는, 키보드가 다수의 섹션들로부터 어셈블리될 수 있도록 재구성 가능할 수 있다. 키보드는 또한 다수의 섹션들로 분해될 수 있다. 유리하게, 일부 실시예들에서, 재구성가능한 키보드는 사용자가 키보드의 사이즈 및 형상을 용이하게 변경하게 허용할 수 있다.
[0149] 도 14는 재구성가능한 물리적 키보드(1420)의 예를 예시한다. 재구성가능한 물리적 키보드(1420)는 도 12에 도시된 키보드(1240)의 예시적인 실시예일 수 있다. 물리적 키보드(1420)는 섹션들(이를테면, 1412, 1414 및 1416) 및 다른 섹션들(1418)로 분리될 수 있다. 예컨대, 사용자가 게임을 플레이하는 동안, 사용자는 전체 키보드(1420)라기 보다는 섹션(1414)을 사용할 수 있다. 키보드(1420)로부터 섹션(1414)을 분리함으로써, 사용자는 HMD(1210)와 상호작용하면서 전체 키보드(1420)를 들고 다닐 필요가 없다. 다른 예로서, 사용자는 새로운 키보드를 생성하기 위해 섹션(1412) 및 섹션(1416)을 함께 조립할 수 있다. 사용자는 추가로 새로운 키보드의 키들의 레이아웃을 맞춤화하기 위해 다른 섹션들을 새로운 키보드에 부착할 수 있다. 예컨대, 사용자는 섹션(1414)의 키들이 섹션(1420)의 키들보다 더 큰 것을 원할 수 있다. 결과적으로, 사용자는 섹션(1414)을, 섹션(1414)의 키들보다 더 큰 키들을 제공하는 다른 섹션으로 대체할 수 있다. 다른 섹션은, 사용자가 키보드(1420)의 오리지널 섹션(1414)에 있는 더 큰 키들을 갖는 맞춤화된 키보드를 가질 수 있도록, 키보드(1420)에 물리적으로 부착될 수 있다. 각각의 섹션은 다른 섹션들과 정합하고 그리고/또는 섹션들 사이의 전기 통신을 확립하기 위한 기계적 및/또는 전기 연결기들을 포함할 수 있다.
[0150] 개별 섹션들은 키보드 또는 키들의 기계적 특징, 키들과 연관된 기능들 또는 잠재적인 커맨드들에 기반하여 분할될 수 있다. 예컨대, 일부 실시예들에서, 스페이스바 키는 홀로 섹션에 있을 수 있다. 사용자는, 피아노 키들과 닮은 키보드를 생성하기 위해 다수의 스페이스 바 키들을 순차적 방식으로 부착할 수 있다. 결과적으로, 사용자는, HMD가 사용자가 연주하기 위한 가상 피아노를 제공할 때, 어셈블리된 키보드를 사용할 수 있다. 다른 예로서, 키들의 섹션들은, 다수의 섹션들을 사용자가 이동시키기에 불편할 수 있는 형상으로 어셈블리할 가능성을 감소시킬 수 있는 직사각형 형상일 수 있다.
[0151] 도 12를 참조로 설명된 바와 같이, 키보드는, 각각의 상호작용 구역이 유사한 사용자 상호작용들을 지원하거나 유사한 기능들을 수행할 수 있는 다수의 상호작용 구역들로 분할될 수 있다. 상호작용 구역들은 키보드의 섹션들과 일치할 수 있거나 일치할 수 없다. 예컨대, 키보드는 섹션(1414)과 일치하기 위한 하나의 상호작용 구역 및 섹션(1416)과 일치하기 위한 다른 상호작용 구역을 포함할 수 있다. 섹션(1414)과 일치하는 상호작용 구역은 오브젝트들을 (예컨대, 위/아래/왼쪽/오른쪽으로) 이동시키도록 설계될 수 있는 반면에, 섹션(1416)과 일치하는 상호작용 구역은 수치적 조작들과 같은 기능들을 수행할 수 있다. 그러나, 섹션(1412)은 2개의 상호작용 구역들을 가질 수 있고, 여기서 하나의 상호작용 구역(1422b)은 다른 상호작용 구역(1422a)보다 더 짙은 색조로 예시된다. 상호작용 구역(1422a)의 키들은 용량성 터치 센서들을 포함할 수 있고, 결과적으로, 터치 제스처를 검출할 수 있다. 그러나, 상호작용 구역(1422b)의 키들에는 용량성 터치 센서들이 장착되지 않을 수 있고, 따라서 그들은 터치 제스처들을 인식할 수 없다. 다른 예로서, 사용자는 섹션(1412) 및 섹션(1416)을 새로운 키보드를 어셈블리할 수 있다. 새로운 키보드는, 키보드가 다수의 섹션들을 가질지라도, 하나의 상호작용 구역으로서 고려될 수 있다.
[0152] 도 13a-13c를 참조로 설명된 바와 같이, 키들은 사전-인쇄된 물리적 라벨을 가질 수 있거나, 블랭크일 수 있다. 사용자는, 모든 키들이 블랭크이거나 모든 키들이 사전-인쇄된 물리적 라벨들 및 영구적으로 할당된 기능들을 갖거나 사전-인쇄된 키보드의 부분(예컨대, 하나의 섹션은 블랭크인 반면에, 다른 섹션은 사전-인쇄된 라벨들을 가짐)만을 갖는 키보드를 어셈블리할 수 있다. HMD는 도 13a-13c를 참조로 설명된 유사한 기법들을 사용하여 어셈블리된 키보드를 구성할 수 있다. 예컨대, HMD는, 오브젝트 인식기(708)를 사용하여, 어셈블리된 키보드에서 얼마나 많은 키들이 있는지 및 키들의 포지션을 인식할 수 있다. 일단 HMD가 어셈블리된 키보드의 물리적 레이아웃을 결정하면, HMD는, 하나 이상의 키들이 블랭크인지(예컨대, 키들의 이미지가 키들 상에 라벨들을 갖지 않기 때문에) 여부 및 어떤 기능들/가상 라벨들이 블랭크 키들에 할당될 것인지를 결정할 수 있다.
[0153] 도 14의 예들이 물리적 키보드를 참조로 설명되지만, 유사한 기법들이 또한 가상 키보드에 적용될 수 있다. 예컨대, 사용자는 가상 키보드를 어셈블리 또는 디스어셈블리하기 위해 손 제스처 및 팔 움직임들을 사용할 수 있다. 물리적 키보드의 섹션들은 가상 키보드의 정의된 템플릿에 대응할 수 있다.
키보드와의 예시적인 사용자 경험들
[0154] 도 12를 참조로 설명된 바와 같이, 키보드(1240)는 사용자의 FOV 및 FOR 내의 오브젝트들과 상호작용할 수 있다. 도 15a는 세계 카메라의 FOR(field of regard), FOV(field of view), 사용자의 시야, 및 사용자의 응시 필드의 예를 개략적으로 예시한다.
[0155] 도 4를 참조로 설명된 바와 같이, FOR(1500)은, 웨어러블 시스템을 통해 사용자에 의해 지각될 수 있는, 사용자 주위 환경의 일부를 포함한다. FOR은 웨어러블 시스템(400)을 둘러싸는 4π 스테라디안의 입체각을 포함할 수 있는데, 왜냐하면 착용자가 공간에서 실질적으로 임의의 방향을 지각하기 위해 자신의 신체, 머리 또는 눈들을 움직일 수 있기 때문이다. 다른 맥락들에서, 착용자의 움직임들은 더 제한될 수 있고, 그에 따라서 착용자의 FOR은 더 작은 입체각에 맞닿을 수 있다.
[0156] 세계 카메라(1570)의 시야는, 외향 이미징 시스템(464)에 의해 현재 관찰되는 사용자의 FOR의 일부를 포함할 수 있다. 도 4를 참조로, 세계 카메라(1570)의 시야는 정해진 시간에 웨어러블 시스템(400)에 의해 관찰된 세계(470)를 포함할 수 있다. 세계 카메라(1270)의 FOV의 사이즈는 외향 이미징 시스템(464)의 광학 특징에 의존할 수 있다. 예컨대, 외향 이미징 시스템(464)은 사용자 주위에 190도 공간을 이미징할 수 있는 광각 카메라를 포함할 수 있다. 특정 구현들에서, 세계 카메라(1570)의 FOV는 사용자의 눈들의 자연적인 FOV보다 더 크거나 동일할 수 있다.
[0157] 사용자(1550)의 FOV는, 사용자가 정해진 시간에 지각하는 FOV(1500)의 부분을 포함할 수 있다. 사용자(1550)의 FOV는 웨어러블 디바이스의 디스플레이의 사이즈 또는 광학 특징에 의존할 수 있다. 예컨대, AR 디스플레이는, 사용자가 디스플레이의 특정 부분을 통해 볼 때, AR 기능성만을 제공하는 광학기를 포함할 수 있다. FOV(1550)는, 예컨대, 스택된 도파관 어셈블리(480)(도 4) 또는 평면형 도파관(600)(도 6)과 같은 AR 디스플레이를 통해 볼 때, 사용자에 의해 지각되는 입체각에 대응할 수 있다. 특정 실시예들에서, 사용자(1550)의 FOV는 사용자의 눈들의 자연적인 FOV보다 더 작을 수 있다.
[0158] 웨어러블 시스템은 또한, 사용자의 응시 범위(1590)를 결정할 수 있다. 응시 범위(1590)는, 사용자의 눈들이 응시(예컨대, 해당 부분에 시각적 시선을 유지)할 수 있는 FOV(1550)의 일부를 포함할 수 있다. 응시 범위(1590)는 사용자의 FOV(1550)보다 작을 수 있으며, 예컨대, 응시 범위는 가로로(across) 몇 도 내지 약 5 도일 수 있다. 결과적으로, 사용자는 비록 응시 범위(1590)에는 없지만 사용자의 주변 시야에는 있는, FOV(1550) 내의 일부 가상 오브젝트들을 지각할 수 있다.
물리적 키보드와의 UI 상호작용들의 예들
[0159] 도 15b는 물리적 키보드(1540)를 사용하여 사용자의 FOR(1500) 및 FOV(1550) 내의 가상 오브젝트들과 상호작용하는 예를 예시한다. 도 15b에서, FOV(1550)는 파선(1552)으로 개략적으로 예시된다. 웨어러블 시스템의 사용자는 FOV(1550) 내의 다수의 오브젝트들, 이를테면 가상 오브젝트(1542), 가상 오브젝트(1544), 그리고 가상 오브젝트(1530)의 일부를 지각할 수 있다. 사용자는, 가상 오브젝트들(1510 및 1520)이 FOR(1500) 내에는 있지만 FOV(1550) 내에는 없기 때문에, 이들을 직접 볼 수 없을 수 있다.
[0160] 사용자는 키보드(1540)를 작동시켜 가상 오브젝트들을 FOV(1550) 안팎으로 이동시킬 수 있다. 예컨대, 사용자는 키(1548)를 눌러 오브젝트들을 우향으로 이동시킬 수 있다. 이 예에서, 가상 맵(1510)은 초기에 사용자의 FOV(1550)를 벗어나 있을 수 있다. 만약 키(1548)가 터치되면, 가상 맵(1510)은 사용자의 FOV(1550) 내로 이동할 수 있고, 그리고 예컨대, 가상 오브젝트(1530)는 사용자의 FOV(1550)를 벗어나게 이동할 수 있다.
[0161] 도 13a-13c를 참조로 설명되는 바와 같이, 키보드(1540)는 블랭크 키들을 갖는 키보드일 수 있고, 웨어러블 시스템은 특정 기능 및 기능에 대응하는 가상 라벨에 대해 블랭크 키들을 할당할 수 있다. 일부 실시예들에서, 만약 사용자의 포즈(예컨대, 머리 포즈 또는 눈 시선)에서의 변화로 인해 FOV(1550)가 변한다면, 웨어러블 시스템은 가상 라벨의 렌더링 위치를 동적으로 업데이트할 수 있고, 그리고 사용자가 동일한 기능을 수행하기 위해 키보드(1540)를 여전히 작동시킬 수 있도록 기능을 새로운 키에 재할당할 수 있다.
[0162] 도 15c는 물리적 키보드와 연관된 가상 스크린을 제공하는 예를 예시한다. 물리적 키보드는, 물리적 키보드에 부착되거나, 물리적 키보드로부터 연장되거나, 또는 이와 달리 물리적 키보드와 통합되는 블랭크 물리적 스크린을 포함할 수 있다. 이러한 물리적 스크린은 하나 이상의 가상 키들 또는 다른 상호작용식 피처들로 가상 스크린을 렌더링하기 위한 위치의 역할을 할 수 있다. 웨어러블 시스템은 물리적 키보드와 연관된 가상 스크린을 제공할 수 있다. 물리적 키보드의 작동은, 사용자 인터페이스 동작이 가상 스크린 상에서 수행될 수 있게 할 수 있다. 예컨대, 웨어러블 시스템은, 가상 스크린(1584)을, 키보드(1540) 인근에 나타나도록 제공할 수 있다. 사용자가 키보드(1540)를 누를 때, 사용자는 가상 스크린(1584) 상의 가상 오브젝트(1582)를 이동시키거나 사이즈를 변경할 수 있다. 특정 실시예들에서, 가상 스크린(1584)은 키보드(1540)의 이미지를 렌더링할 수 있다. 사용자가 키보드(1540) 상의 키를 작동시킬 때, 웨어러블 시스템은 가상 스크린(1584) 상의 대응하는 키에 시각 초점 표시자를 제공할 수 있다. 시각 초점 표시자는, 헤일로(대응하는 가상 키를 실질적으로 둘러싸거나 인근에 있음), 컬러, 지각되는 사이즈 또는 깊이 변화(예컨대, 대응하는 가상 키로 하여금 더 가깝게 그리고/또는 더 크게 보이게 함), 또는 사용자의 주의를 끄는 다른 시각적 효과들을 포함할 수 있다. 유리하게, 일부 실시예에서, 물리적 키보드(1540)에 대응하는 가상 스크린(1584)을 제공함으로써, 사용자는 자신이 어느 키를 누르는지 알기 위해 아래를 내려다 볼 필요가 없다. 이는, 사용자가 HMD와 상호작용할 때 사용자 피로를 감소시킬 수 있다.
[0163] 특정 구현들에서, 물리적 키보드(1540) 상에 렌더링된 가상 키 라벨의 사이즈는 사용자의 머리 포즈에 기반하여 변경될 수 있다. 예컨대, 물리적 키보드(1540)는 테이블 상에 제공될 수 있다. 가상 키 라벨은, 사용자가 물리적 키보드(1540)를 내려다보고 있다는 것을 HMD의 IMU가 검출할 때, 사용자가 어느 키를 누르는지 사용자가 보도록 돕기 위해 확대될 수 있다. 이 사이즈 변화는, 물리적 키보드(1540)가 대응하는 가상 스크린을 갖는 상황들로 제한되지 않는다. 예컨대, 사용자가 도 15b에 도시된 바와 같이 FOV 및 FOR 내의 오브젝트들과 상호작용하고 있을 때, 사이즈 변화가 또한 구현될 수 있다.
[0164] 웨어러블 시스템은, 렌더링 위치를 업데이트하거나, 또는 가상 스크린이 본원에 설명된 콘텍스추얼 정보에 기반하여 가시적이게/비가시적이게 설정할 수 있다. 예컨대, 만약 키보드(1540)가 사용자의 FOV에 있다면, 웨어러블 시스템은 가상 스크린(1584)을 디스플레이할 수 있다. 만약 사용자의 포즈가 변하고 키보드(1540)가 더 이상 사용자의 FOV에 있지 않다면, 웨어러블 시스템은 가상 스크린(1584)을 은닉할 수 있다. 가상 스크린(1584)은 다양한 시각적 효과들과 연관될 수 있다. 예컨대, 웨어러블 시스템은, 가상 스크린 (1584)이 가시적인 것으로 설정될 때 가상 스크린(1584)을 롤링 다운하는 애니메이션을 제공할 수 있다. 웨어러블 시스템은 또한, 가상 스크린(1584)이 비가시적인 것으로 설정될 때 롤링 업 애니메이션을 제공할 수 있다.
[0165] 본원에서 설명되는 바와 같이, 물리적 키보드는 가상 오브젝트들 또는 물리적 오브젝트들과 상호작용하기 위해 사용될 수 있다. 물리적 오브젝트들과 상호작용들이 이루어지는 경우, 웨어러블 시스템은, (예컨대, 물리적 키보드의 용량성 센서로부터의 신호들을 통해) 물리적 키보드의 작동을 검출하고 그리고 대응하는 커맨드를 물리적 오브젝트(예컨대, 냉장고, 텔레비전, 또는 커피 메이커 등)에 통신하여 물리적 오브젝트로 하여금 액션을 수행하게(예컨대, 턴 온/턴 오프하게, 온도를 변경하게, 채널/볼륨을 변경하는 등을 하게) 할 수 있다.
가상 키보드와의 예시적 UI 상호작용들
[0166] 다양한 실시예들에서, 웨어러블 시스템은 사용자의 환경의 물리적 또는 가상 오브젝트들과의 상호작용들을 위해 사용될 수 있는 가상 키보드를 생성할 수 있다. 가상 키보드는, 표면, 이를테면, 예컨대 테이블 또는 벽 상에 중첩된 AR 이미지 데이터로 렌더링되거나, 또는 사용자의 3D 환경에서 렌더링(예컨대, 표면과 부딪침 없이 사용자의 앞에 렌더링)될 수 있다.
[0167] 본원에서 설명되는 바와 같이, 가상 키보드는 또한, 콘텍스추얼 정보에 기반하여 동적으로 구성가능하다. 일 예에서, 웨어러블 시스템은, 사용자가 현재 상호작용하고 있는 오브젝트에 기반하여 가상 키보드의 사양을 결정할 수 있고 그리고 사양에 기반하여 사용자의 환경에서 가상 키보드를 렌더링할 수 있다. 예컨대, 웨어러블 시스템은, 오브젝트와의 상호작용을 위해 사용되는 가장 자주 사용된 키를 결정하고 그리고 가장 자주 사용된 키들을 포함하도록 가상 키보드를 렌더링할 수 있다. 만약 사용자가 가장 자주 사용된 키들이 아닌 키들을 사용하기를 원한다면, 사용자는 가상 키보드를 작동시키거나 자신의 포즈를 변경하여, 웨어러블 시스템으로 하여금, 이전에 렌더링되지 않았던 추가 키들을 가상 키보드 상에 띄우게(bring up) 할 수 있다. 다른 예로서, 만약 애플리케이션이 수학 기반 애플리케이션이면, 웨어러블 시스템은 가상 숫자 패드를 렌더링할 수 있다. 만약 애플리케이션이 외국어(예컨대, 언어 학습 애플리케이션 또는 메신저 애플리케이션)를 수반한다면, 웨어러블 시스템은 키들이 그 외국어로 맞춤화되는 가상 키보드를 렌더링할 수 있다.
[0168] 다른 예로서, 가상 키보드는 사용자의 환경에서의 물리적 키보드의 에뮬레이션일 수 있다. 도 12를 참조로 설명되는 바와 같이, 웨어러블 시스템이 물리적 키보드를 인식한 후, 웨어러블 시스템은, 예컨대 원격 데이터 저장소(280)로부터 물리적 키보드의 사양에 액세스할 수 있다. 웨어러블 시스템은 대응하는 가상 키보드를 사용자의 환경에 렌더링할 수 있다. 결과적으로, 사용자는 사용자의 환경에서 오브젝트들과 상호작용하기 위해 물리적 키보드를 이리저리 휴대하고 다닐 필요가 없다.
[0169] 물리적 키보드를 재구성할 수 있는 일부 상황들에서, 웨어러블 시스템은 또한, 웨어러블 시스템이 물리적 키보드의 구성의 업데이트를 검출할 때 그에 따라서 가상 키보드를 업데이트한다. 예컨대, 사용자는 초기에 물리적 키보드 A와 상호작용할 수 있다. 그에 따라서, 웨어러블 시스템은 물리적 키보드 A의 사양에 따라 가상 키보드를 렌더링할 수 있다. 그러나, 사용자는 키보드 A와 키보드 B를 물리적으로 붙여 새로운 물리적 키보드를 어셈블리할 수 있고, 이로써 새로운 물리적 키보드는, 하나는 물리적 키보드 A에 해당하는 섹션인 반면 다른 하나는 물리적 키보드 B에 해당하는 섹션인, 2개의 섹션들을 가질 수 있다. 웨어러블 시스템은, 외향 이미징 시스템(464)에 의해 또는 HMD 외부의 카메라에 의해 획득된 이미지들에 기반하여, 새로운 키보드가 키보드 A 및 키보드 B에 기반하여 어셈블리된 것을 검출할 수 있다. 예컨대, 웨어러블 시스템은, 사용자가 물리적 키보드 A와 물리적 키보드 B를 함께 어셈블리할 때, 이들의 움직임을 추적할 수 있다. 웨어러블 시스템은 또한, 시각적 큐들(이를테면, 예컨대, 키들의 레이아웃, 물리적 키보드의 키들에 대한 라벨들 등)에 기반하여 물리적 키보드의 사양을 식별하기 위해 물리적 키보드의 이미지를 분석할 수 있다. 웨어러블 시스템은 물리적 키보드 A 및 물리적 키보드 B에 대한 사양들을 조합함으로써 사양을 식별할 수 있다. 웨어러블 시스템은 또한, 사양의 시각 큐들에 기반하는 사양을 리트리브하기 위해 데이터 저장소에 액세스할 수 있다. 웨어러블 시스템은 새로운 물리적 키보드의 사양에 따라 가상 키보드를 업데이트하고 가상 키보드를 렌더링할 수 있다. 업데이트된 가상 키보드는 새로운 물리적 키보드의 레이아웃 및 기능들을 가질 수 있다.
[0170] 일부 실시예들에서, 사용자는, 사용자의 포즈의 변화에 기반하여 또는 사용자 입력 디바이스의 작동에 기반하여 물리적 키보드와 가상 키보드 간을 전환할 수 있다. 예컨대, 만약 사용자가 물리적 키보드 상의 키를 누른다면, 웨어러블 시스템은 입력 모드를 가상 키보드에서 실제 키보드로 변경할 수 있다. 다른 예로서, 사용자는 손 제스처(예컨대, 자신의 손 두 번 흔들기)를 사용하여, HMD로 하여금 사용자가 상호작용할 가상 키보드를 제공하게 할 수 있다.
[0171] 웨어러블 시스템은 또한 전환을 자동으로 수행할 수 있다. 자동 전환은 사용자의 포즈(예컨대, 제스처, 머리 포즈, 눈 시선 등)에 기반할 수 있다. 예컨대, 웨어러블 시스템은 사용자 상호작용을 위한 가상 키보드를 제공할 수 있다. 사용자가 자신의 신체와 머리를 이리저리 움직일 때, 웨어러블 시스템은 사용자의 FOV에서 물리적 키보드를 검출하고 인식할 수 있다. 웨어러블 시스템은, 가상 키보드로 하여금 물리적 키보드 상에 렌더링되게 할 수 있고, 그리고 가상 키보드의 기능들을 포함하도록 물리적 키보드의 기능들을 동적으로 구성할 수 있다. 그에 따라서, 사용자는 물리적 키보드를 사용하여 웨어러블 시스템과 상호작용할 수 있다. 일부 상황들에서, 웨어러블 시스템은 가상 키보드의 일부를 물리적 키보드 상에 렌더링할 수 있다. 예컨대, 물리적 키보드는 숫자 패드일 수 있다. 그러나, 가상 키보드는 또한 숫자들이 아닌 다른 키들(이를테면, 예컨대 글자들)을 포함할 수 있다. 결과적으로, 웨어러블 시스템은 숫자들에 대한 가상 라벨들을 숫자 패드 상에 렌더링하지만, 나머지 가상 키들은 숫자 패드 상에 렌더링하지 않을 수 있다. 만약 숫자 패드가 사전-라벨링되었다면, 웨어러블 시스템은 가상 키보드의 숫자 키들을 은닉하지만, 사용자가 숫자 패드를 통해 숫자들을 입력할 수 있게 허용할 수 있다.
[0172] 도 16a-16d는 가상 키보드와의 사용자 상호작용들 및 피처들의 예들을 예시한다. 사용자의 환경은 다수의 가상 키보드들과 연관될 수 있다. 예컨대, 오브젝트는 QWERTY 키보드 또는 Dvorak 키보드를 사용하여 이들과 상호작용할 수 있다. 다른 예로서, 웨어러블 시스템으로 하여금 다수의 대응하는 가상 키보드들을 생성하게 할 수 있는 사용자의 환경에 다수의 물리적 키보드들이 존재할 수 있다. 또 다른 예로서, 사용자의 환경의 오브젝트들은 상이한 가상 키보드과 연관될 수 있다. 텔레비전(1610)은 원격 제어기와 유사한 레이아웃을 갖는 가상 키보드와 연관될 수 있는 반면, 가상 아바타(1624)는 터치가능한 구역을 갖는 가상 키보드와 연관될 수 있다.
[0173] 사용자는 포즈들을 사용하여, 또는 사용자 입력 디바이스를 작동시킴으로써 가상 키보드를 선택할 수 있다. 예컨대, 사용자는, 특정 시간(예컨대, 5, 10, 15 초 등) 동안 가상 키보드를 응시함으로써, 가상 키보드를 선택할 수 있다. 사용자는 또한, 오브젝트(예컨대, 텔레비전(1610) 또는 아바타(1624))를 가리키기 위해 토템을 사용할 수 있으며, 이는 웨어러블 시스템으로 하여금, 오브젝트와 연관된 가상 키보드를 제공하게 할 수 있다. 일부 실시예들에서, 웨어러블 시스템은 다수의 가상 키보드들로 하여금 사용자의 환경에서 렌더링되게 할 수 있다. 사용자는 잡기 제스처를 사용함으로써 하나 이상의 가상 키보드들을 선택할 수 있다. 사용자는 또한, 던지기(throw-away) 제스처를 사용하여 다른 가상 키보드들을 제거할 수 있다.
[0174] 도 16a는 HMD의 사용자에 의해 지각되는 환경의 예를 예시한다. 예시적인 환경(1600a)은 사용자의 홈의 거실을 포함한다. 환경(1600a)은, TV(television)(5110), TV 스탠드(1630), 및 창문(5140)과 같은 물리적 오브젝트들, 및 가상 빌딩(1622) 및 가상 아바타(1624)와 같은 가상 오브젝트들을 갖는다.
[0175] 사용자가 HMD를 착용하고 있는 동안, 사용자는 물리적 오브젝트들을 지각하고, 가상 키보드를 사용하여 물리적 오브젝트들과 상호작용할 수 있다. 예컨대, 사용자는 HMD를 착용하면서 TV(1610)를 시청할 수 있다. 가상 키보드(1620)는 TV를 제어하기 위한 리모컨의 역할을 할 수 있다(예컨대, 도 16d에 도시된 것 참조). 예컨대, 사용자는 TV(1610)를 턴 온시키기/턴 오프시키기 위해 (도 16b에 도시된 바와 같이) 가상 스페이스바 키(1652)를 작동시킬 수 있다. 사용자는 또한, TV(1610)의 채널 또는 볼륨을 변경하기 위해 방향 키들(예컨대, 위/아래/왼쪽/오른쪽 화살표들로 라벨링된 키들)을 작동시킬 수 있다.
[0176] 사용자는 또한, 가상 오브젝트와 상호작용하기 위해 가상 키보드(1620)를 작동시킬 수 있다. 도 16a 및 16b를 참조하면, 사용자는 "-"로 라벨링된 키를 사용하여 가상 아바타(1624)의 사이즈를 (예컨대, 도 16a에 도시된 사이즈에서 도 16b에 도시된 사이즈로) 감소시킬 수 있다. 사용자는 또한, 스페이스바 키(1652)에 대해 좌향 스와이핑하여, 가상 아바타(1624)를 도 16a에 도시된 포지션에서 도 16b에 도시된 포지션으로 이동시킬 수 있다.
[0177] 예시적인 환경들(1600a 및 1600b)에서, 가상 키보드(1620)는 창문(1640)의 일부를 가리도록 렌더링된다. 일부 실시예들에서, 가상 키보드는, 가상 키보드(1620)를 통해, 사용자가 창문(1640)을 볼 수 있도록 투명할 수 있다.
[0178] 가상 키보드의 렌더링 위치는 콘텍스추얼 정보에 의존할 수 있다. 예컨대, 만약 사용자가 TV(1610)와 상호 작용하고 있다면, 키보드(1620)는 TV(1610) 인근에 렌더링될 수 있다. 키보드(1620)는 또한, 사용자 팔의 길이(reach) 내에(예컨대, 사용자로부터 0.3-1.5m의 거리 내에) 렌더링될 수 있다. 일부 상황들에서, 가상 키보드의 사양은 렌더링 위치에 의존할 수 있다. 예컨대, 만약 가상 키보드가 사용자에게서 멀리있다면, 키들 또는 가상 키보드의 사이즈가 (전체적으로) 증가할 수 있다. 그러나, 만약 가상 키보드가 사용자의 팔 길이 내에 있다면, 키들 또는 가상 키보드의 사이즈는 변경되지 않을 수 있다. 유리하게, 일부 실시예들에서, 거리에 기반하여 키들/가상 키보드의 사이즈를 동적으로 조정함으로써, 웨어러블 시스템은 사용자 피로를 감소시키고 가상 키보드와의 사용자 상호작용의 정확도를 증가시킬 수 있다. 이는, 사용자가 자신의 팔을 매우 정확한 포지션에서 유지하지 않는 한, 작은 키가 일정 거리를 두고 위치되어 있는 경우, 이 작은 키를 정확히 가리키기 어렵기 때문이다.
[0179] 콘텍스추얼 정보에 기반하여 렌더링 위치를 조정하는 다른 예로서, 웨어러블 시스템은 사용자의 움직임에 기반하여 렌더링 위치를 조정할 수 있다. 예컨대, 가상 키보드(1620)는 사용자의 머리 움직임과 함께 움직일 수 있다. 결과적으로, 가상 키보드(1620)는 사용자의 머리 움직임에 관계없이 사용자의 FOV에 유지될 수 있다.
[0180] 도 13a-14를 참조로 설명되는 바와 같이, 일부 실시예들에서, 웨어러블 시스템은 콘텍스추얼 정보에 기반하여 가상 키보드(1620)의 사양을 동적으로 업데이트할 수 있다. 예컨대, 웨어러블 시스템은 콘텍스추얼 정보에 기반하여 가상 키보드(1620)의 섹션 또는 가상 키보드(1620)의 하나 이상의 키들을 동적으로 보여주거나 제거할 수 있다. 예컨대, 사용자가 TV(1610)를 시청하고 있는 동안, 웨어러블 시스템은, 나머지 키들은 은닉시키면서, 볼륨 및 채널 조정을 위한 방향 키들을 가상 키보드(1620)에 제공할 수 있다.
[0181] 예컨대, 도 16d에 도시된 바와 같이, 웨어러블 시스템은 가상 키보드(1620)가 제거될 때 가상 키보드(1620)의 트랜지션(transition) 효과를 제공할 수 있다. 제거는 트리거링 이벤트, 이를테면 연장된 비활동 기간, 또는 사용자의 손 제스처에 대한 응답일 수 있다. 트리거링 이벤트가 충족된다는 것을 웨어러블 시스템이 결정하면, 웨어러블 시스템은 가상 키보드(1620)의 투명도를 점진적으로 증가시킬 수 있다.
[0182] 도 16b에 도시된 바와 같이 손 제스처들을 사용하여 가상 키보드와 상호작용하는 것에 부가하여 또는 이에 대안적으로, 사용자는 또한 도 16c에 도시된 바와 같이 머리 포즈를 사용하여 가상 키보드와 상호작용할 수 있다. 예컨대, 웨어러블 시스템은 내향 이미징 시스템(464)을 사용하여 사용자의 시선 방향을 결정하고, IMU를 사용하여 사용자의 머리 포즈를 결정할 수 있다. 눈 시선 및 머리 포즈에 기반하여, 웨어러블 시스템은 가상 키보드 상의 키들에 대한 광선 캐스트를 수행할 수 있다. 웨어러블 시스템은, 만약 키가 광선 캐스팅에서 광선과 교차하는 경우 키의 작동을 검출할 수 있다.
물리적 키보드와의 UI 상호작용들의 예시적 프로세스
[0183] 도 17a는 물리적 키보드를 동적으로 구성하여 상호작용하는 예시적인 프로세스를 예시한다. 예시적인 프로세스(1700)는 본원에서 설명된 웨어러블 시스템에 의해 수행될 수 있다.
[0184] 블록(1710)에서, 웨어러블 시스템은 사용자의 환경에서의 물리적 키보드를 식별할 수 있다. 물리적 키보드는 사전정의된 라벨 또는 기능과 연관되지 않은 하나 이상의 블랭크 키들을 포함할 수 있다. 웨어러블 시스템은 (예컨대, 블루투스, WiFi, 또는 RF 프로토콜들 등을 통해) 물리적 키보드와 전자적으로 통신함으로써 물리적 키보드를 식별할 수 있다. 웨어러블 시스템은 또한, 사용자 환경의 이미지들에 액세스하고 분석함으로써 물리적 키보드를 식별할 수 있다. 이미지들은, 웨어러블 시스템의 외향 이미징 시스템에 의해, 사용자의 환경에서의 카메라(예컨대, 룸 카메라)에 의해, 또는 다른 컴퓨팅 디바이스(예컨대, 랩톱 또는 토템)의 카메라에 의해 획득될 수 있다. 도 12를 참조로 설명되는 바와 같이, 웨어러블 시스템은 물리적 키보드를 식별하기 위해 오브젝트 인식기(708)를 사용하여 이미지를 분석할 수 있다.
[0185] 선택적인 블록(1720)에서, 웨어러블 시스템은 물리적 키보드를 머리-장착 디스플레이와 페어링할 수 있다. 머리-장착 디스플레이는 웨어러블 시스템의 일부일 수 있고, 도 2에서의 디스플레이(220)의 실시예일 수 있다. 물리적 키보드는 도 12를 참조하여 설명된 다양한 유선 및 무선 페어링 기술들을 사용하여 머리-장착 디스플레이와 페어링될 수 있다. 일부 실시예들에서, 물리적 키보드 상의 키들이 조명될 수 있다. 예컨대, 하나 이상의 키들은 LED(light emitting diode)를 포함하거나, 또는 키들을 둘러싸는 LED들을 가질 수 있다. 웨어러블 시스템은 물리적 키보드에 의해 조명되는 광 패턴들의 이미지를 캡처하고, 오브젝트 인식기(708)를 사용하여 광 패턴에 기반한 정보를 추출할 수 있다. 예컨대, 물리적 키보드의 디바이스 식별자가 1234라고 가정한다. "1", "2", "3" 및 "4" 라벨들을 갖는 키가 조명될 수 있다. 외향 이미징 시스템은 키보드의 이미지에서 이 조명 패턴을 캡처할 수 있다. 오브젝트 인식기(708)는 키들 상의 라벨들(예컨대, "1", "2", "3", "4")을 인식하고 이들 키들의 조명들을 인식할 수 있다. 그에 따라서, 오브젝트 인식기(708)는 조명 패턴에 기반하여 숫자 1234를 추출할 수 있다. 이 숫자 "1234"는 물리적 키보드의 디바이스 정보를 획득하기 위해 웨어러블 시스템에 의해 사용될 수 있다. 일부 상황들에서, 키들의 조명은 순서대로 이루어질 수 있다. 예컨대, 숫자 "12"를 표현하기 위해 "2"로 라벨링된 키 이전에 "1"로 라벨링된 키가 조명될 수 있다. 그러나, 만약 "2"로 라벨링된 키가 "1"로 라벨링된 키 이전에 조명되면, 이 조명 시퀀스로부터 추출되는 숫자는 "21"이다. 숫자들에 부가하여 또는 이에 대안적으로, 다른 키들, 이를테면 글자들로 라벨링된 키들이 또한 디바이스 페어링 동안 조명될 수 있다. 추가로, 키보드는 또한, 조명 패턴들을 사용하여 디바이스 식별자 이외의 정보를 전달할 수 있다. 예컨대, 키보드는, 본원에서 설명된 조명 패턴들을 사용하여, 페어링 패스워드, 키보드의 제조 정보, 키보드의 모델, 키보드에 의해 지원되는 통신 또는 페어링 프로토콜들 등을 전달할 수 있다.
[0186] 블록(1730)에서, 웨어러블 시스템은 콘텍스추얼 정보에 액세스 할 수 있다. 도 12-13c를 참조로 설명되는 바와 같이, 콘텍스추얼 정보는 키보드, 사용자, 머리-장착 디스플레이, 환경과 단독으로 또는 조합하여 연관될 수 있다.
[0187] 블록(1732)에서, 웨어러블 시스템은 물리적 키보드 상의 블랭크 키 및 블랭크 키의 포지션을 식별할 수 있다. 웨어러블 시스템은 오브젝트 인식기(708)를 사용하여 이러한 식별을 할 수 있다. 예컨대, 웨어러블 시스템은, 만약 키가 물리적 라벨을 갖지 않는다면 키를 블랭크 키로서 식별할 수 있다. 추가로 또는 대안으로, 웨어러블 시스템은 또한, 키의 형상 또는 포지션을 고려할 수 있다. 예컨대, 웨어러블 시스템은 키보드의 에지 인근에 위치된 키를 인식할 수 있으며, 키는 긴 직사각형 형상을 갖는다. 이 키는 키에 대한 라벨을 갖지 않을 수 있지만, 그럼에도 불구하고 웨어러블 시스템은, 이 키가 스페이스바 키로서 지정되었었기 때문에, 이 키가 블랭크 키가 아니라고 결정할 수 있다.
[0188] 블록(1734)에서, 웨어러블 시스템은 콘텍스추얼 정보에 기반하여 블랭크 키에 할당될 가상 키를 결정할 수 있다. 예컨대, 도 13a-13c를 참조로 설명되는 바와 같이, 웨어러블 시스템은 블랭크 키들의 위치들에 기반하여 키보드 또는 키보드의 일부와 연관된 사양, 이를테면 레이아웃 또는 기능들을 결정할 수 있다.
[0189] 블록(1736)에서, 웨어러블 시스템은 기능을 블랭크 키의 작동에 연관시키는 명령을 생성할 수 있다. 예컨대, 블랭크 키는 "+" 심볼에 할당될 수 있다. 결과적으로, 블랭크 키가 눌릴 때, 머리-장착 디스플레이에 의해 "+" 심볼이 디스플레이될 수 있다. 일부 실시예들에서, 다수의 기능들이 하나의 블랭크 키에 할당될 수 있다. 각각의 기능은 블랭크 키를 작동시키는 손 제스처와 연관될 수 있다. 예컨대, 하나의 키가 상표 심볼(예컨대, "®")와 저작권 심볼(예컨대, "ⓒ") 둘 모두에 할당될 수 있다. 키가 터치될 때는 상표 심볼이 웨어러블 시스템에 입력될 수 있지만, 키가 눌릴 때는 저작권 심볼이 입력될 수 있다.
[0190] 블록(1738)에서, 웨어러블 시스템은 또한, 가상 키의 이미지를 블랭크 키 상에 렌더링할 수 있다. 이 예시적 예에서, 웨어러블 시스템은 블랭크 키 상에 가상 키 라벨 "+"를 중첩할 수 있다. 키가 다수의 심볼들에 할당되는 경우, 웨어러블 시스템은 키 라벨들 둘 모두(예컨대, 상표 심볼 및 저작권 심볼 둘 모두)를 키 상에 렌더링할 수 있다. 추가적으로 또는 대안적으로, 웨어러블 시스템은 키가 어떻게 작동되는지에 기반하여 가상 키 라벨들을 렌더링할 수 있다. 예컨대, 키가 터치될 때는 상표 심볼이 표시될 수 있지만, 키가 눌릴 때는 저작권 심볼이 표시될 수 있다. 사용자가 특정 방식으로 키를 작동시킬 때, 웨어러블 시스템은 키가 어떻게 작동되는지를 보여주는 초점 표시자를 제공할 수 있다. 예컨대, 키가 터치될 때, 웨어러블 시스템은 상표 심볼의 사이즈의 증가를 보여줄 수 있다. 도 15b를 참조하여 설명된 예시적인 시각적 초점 표시자에 부가하여 또는 이에 대안적으로, 초점 표시자는 또한, 다른 타입들의 피드백들, 이를테면 예컨대 햅틱 또는 오디오 피드백을 포함할 수 있다. 예컨대, 키보드 또는 웨어러블 시스템은 키가 어떻게 작동되는지에 기반하여 사운드를 플레이할 수 있다(예컨대, 키가 터치될 때 하나의 사운드를 플레이하고 키가 누릴 때 다른 사운드를 플레이한다). 키보드는 또한, 키가 어떻게 작동되는지에 의존하여 햅틱 피드백을 제공할 수 있다. 예컨대, 키보드는, 키가 누릴 때는 진동을 제공하고 키가 터치될 때는 때 진동을 제공하지 않을 수 있다. 일부 실시예들에서, 초점 표시자(시각적, 햅틱, 또는 오디오)는 각각의 키와 상이할 수 있다. 예컨대, 스페이스바의 작동은 하나의 사운드와 연관될 수 있는 반면, 숫자 키의 작동은 다른 사운드와 연관될 수 있다.
[0191] 선택적인 블록(1740)에서, 웨어러블 시스템은 블랭크 키의 작동의 표시를 수신할 수 있다. 표시는 (예컨대, 유선 또는 무선 통신 채널을 통해) 키보드로부터 수신될 수 있다. 표시는 또한, 이미지들의 분석에 기반하여 검출될 수 있다. 예컨대, 웨어러블 시스템은 오브젝트 인식기(708)를 사용하여 사용자의 손 포지션을 식별하고, 손 포지션을 키들의 포지션들과 비교하여 사용자의 손 포지션이 키와 일치하는지를 여부를 결정할 수 있다. 작동을 검출하는 데 사용되는 이미지들은 다수의 소스들로부터 발생될 수 있다. 예컨대, 웨어러블 시스템은 키보드의 카메라에 의해 획득된 이미지들을 외향 이미징 시스템의 카메라로부터 획득된 이미지들과 함께 사용하여 키의 작동을 검출할 수 있다.
[0192] 선택적인 블록(1742)에서, 웨어러블 시스템은 블랭크 키에 할당된 기능에 기반하여 동작(예컨대, 사용자 인터페이스 동작)을 수행할 수 있다. 예컨대, 만약 블랭크 키에 할당된 기능이 수학 연산(예컨대, 덧셈)과 연관되면, 블랭크 키가 작동될 때 웨어러블 시스템은 그에 따라서 수학 연산을 수행할 수 있다.
[0193] 이 도면의 예들은 블랭크 키를 구성하는 것을 참조하여 설명되었지만, 웨어러블 시스템은 또한, 미리-정의된 기능들 또는 물리적 라벨들을 이미 갖고 있는 키에 기능들 또는 가상 라벨들을 할당할 수 있다. 예컨대, 스페이스바 키가 누릴 때 빈 공간을 입력하도록 스페이스바 키가 이미 구성되어 있음에도 불구하고, 웨어러블 시스템은 스페이스바 키에 슬라이딩 바 기능을 할당할 수 있다. 슬라이딩 바 기능의 결과로서, 사용자가 스페이스바 키를 스와이핑할 때, 웨어러블 시스템은 그에 따라서 애플리케이션을 열거나 닫을 수 있다. 다른 예로서, 웨어러블 시스템은 이모지와들과 연관된 한 세트의 기능들 및 아이콘들을 키보드 상의 일부 글자 키들에 할당할 수 있다.
[0194] 추가로, 일부 상황들에서, 하나의 키에 대해 기능 및 이미지를 할당하는 대신, 가상 키보드 또는 키보드의 섹션이 물리적 키보드에 할당될 수 있다. 예컨대, 웨어러블 시스템은, 사용자가 물리적 키보드를 바라볼 때, 가상 키보드가 물리적 키보드 위에 오버레이되도록 자동으로 이동할 수 있다.
가상 키보드와의 UI 상호작용들의 예시적 프로세스
[0195] 도 17b는 가상 키보드를 렌더링하여 상호작용하는 예시적인 프로세스를 예시한다. 프로세스(1750)는 본원에서 설명된 웨어러블 시스템에 의해 수행될 수 있다.
[0196] 블록(1752)에서, 웨어러블 시스템은 사용자의 환경과 연관된 콘텍스추얼 정보에 액세스할 수 있다. 예컨대, 웨어러블 시스템은, 사용자의 환경에서의 물리적 또는 가상 오브젝트들과 연관된 정보, 이를테면 예컨대 사용자의 환경에서의 물리적 또는 가상 오브젝트들의 타입 및 기능들에 액세스할 수 있다. 일부 실시예들에서, 웨어러블 시스템은 사용자의 머리 포즈 또는 눈 시선에 기반하여 사용자가 현재 상호작용하는 또는 상호작용하려고 의도하는 타겟 오브젝트를 식별할 수 있다.
[0197] 블록(1754)에서, 웨어러블 시스템은 사용자의 환경에서의 가상 키보드를 식별할 수 있다. 가상 키보드는 사용자의 입력에 기반하여 식별될 수 있다. 예컨대, 사용자는 가상 키보드의 닉네임을 말할 수 있고, 그에 따라서 웨어러블 시스템은 닉네임에 기반하여 가상 키보드를 식별할 수 있다. 다른 예로서, 웨어러블 시스템은 사용자의 눈 시선 방향 또는 손 제스처(예컨대, 가상 키보드를 가리킴)에 기반하여 가상 키보드를 식별할 수 있다. 가상 키보드는 또한, 물리적 키보드에 기반하여 식별될 수 있다. 예컨대, 가상 키보드는 사용자의 환경에서의 물리적 키보드의 에뮬레이션일 수 있다. 추가로, 가상 키보드는 사용자의 환경의 오브젝트들에 기반하여 식별될 수 있다. 예컨대, 웨어러블 시스템은 사용자의 환경 에서의 모든 것(또는 오브젝트들 대부분)와 상호작용 하기에 적절한 가상 키보드에 액세스할 수 있다. 웨어러블 시스템이 타겟 오브젝트를 식별한 경우, 웨어러블 시스템은 타겟 오브젝트와 연관되거나 타겟 오브젝트와의 상호작용에 적절한 가상 키보드를 식별할 수 있다.
[0198] 블록(1756)에서, 웨어러블 시스템은 콘텍스추얼 정보에 기반하여 가상 키보드의 사양을 결정할 수 있다. 사양은 가상 키보드 상의 키들의 레이아웃 및 기능들을 포함할 수 있다. 예컨대, 블록(1754)에서 식별된 가상 키보드는 블랭크 가상 키보드 템플릿을 포함할 수 있다. 블록(1756)에서 결정된 사양은, 블랭크 가상 키보드 템플릿의 키들 중 일부(또는 모두)에 어떤 기능들 또는 가상 키 라벨들이 할당될지를 특정할 수 있다. 게다가, 본원에 설명되는 바와 같이, 가상 키보드의 레이아웃이 또한 변경될 수 있다. 예컨대, 사용자가 하나의 오브젝트와 상호작용할 때, 블랭크 가상 키보드 템플릿의 키가 숫자에 할당될 수 있다. 그러나, 사용자가 다른 오브젝트와 상호 작용할 때, 웨어러블 시스템은 키를 글자에 동적으로 재할당할 수 있다.
[0199] 블록(1758)에서, 웨어러블 시스템은 사양에 적어도 부분적으로 기반하여 사용자의 환경에서 가상 키보드를 렌더링할 수 있다. 예컨대, 웨어러블 시스템은 가상 키보드 상에 가상 키 라벨들을 렌더링할 수 있다. 웨어러블 시스템은 또한, 서브세트의 가상 키를 렌더링할 수 있다. 예컨대, 블랭크 가상 키보드 템플릿이 1개 초과의 가상 오브젝트들과 상호작용하는 데 사용되는 경우, 웨어러블 시스템은 하나의 가상 오브젝트에 공통적으로 사용되는 제1 세트의 가상 키들을 렌더링하면서, 다른 가상 오브젝트에 공통적으로 사용되는 제2 세트의 가상 키들을 렌더링할 수 있다.
[0200] 선택적인 블록(1760)에서, 웨어러블 시스템은 가상 키보드의 작동의 표시를 수신할 수 있다. 가상 키보드는 또한, 다양한 작동 방식들을 지원할 수 있다. 예컨대, 가상 키보드는 터치 또는 스와이프 제스처를 지원할 수 있다. 웨어러블 시스템은 외향 이미징 시스템에 의해 획득된 이미지들에 기반하여 사용자의 손 포지션들을 추적하고, 사용자의 손 포지션들이 하나 이상의 가상 키들과 교차하는지 여부를 결정할 수 있다. 가상 키보드는 또한, 누름 제스처를 지원할 수 있다. 예컨대, 웨어러블 시스템은 사용자의 공간에서 가상 키와 연관된 볼륨을 특정할 수 있다. 사용자의 손가락이 볼륨을 침투할 때, 웨어러블 시스템은 사용자가 가상 키를 작동시켰다는 것을 결정할 수 있다.
[0201] 선택적인 블록(1762)에서, 웨어러블 시스템은 가상 키보드의 작동에 적어도 부분적으로 기반하여 사용자 인터페이스 동작을 수행할 수 있다. 일부 예시적인 사용자 인터페이스 동작들은 작동되었던 키(또는 가상 키보드)에 대한 초점 표시자를 제공하는 것, 가상 오브젝트를 이동시키거나 또는 선택하는 것, 가상 또는 물리적 오브젝트와 연관된 가상 메뉴를 여는 것 등을 포함할 수 있다. 가상 키보드의 작동은 또한, 사용자 인터페이스 동작들 이외의 커맨드들로 하여금 수행되게 할 수 있다. 예컨대, 가상 키보드의 작동은, 웨어러블 시스템으로 하여금, 텔레비전의 채널을 변경하기 위한 명령을 생성하여 텔레비전에 전송하게 할 수 있다. 다른 예로서, 가상 키보드의 작동은, 웨어러블 시스템으로 하여금 MR 장면에서 VR 장면으로 전환하게 할 수 있다.
예들
[0202] 일부 예들에서, 시스템은 사용자의 물리적 환경에 가상 콘텐츠를 제공하도록 구성된 디스플레이 시스템; 사용자의 물리적 환경을 이미징하도록 구성되는 외향 이미징 시스템; 디스플레이 시스템 및 외향 이미징 시스템과 통신하는 하드웨어 프로세서를 포함하며, 하드웨어 프로세서는 외향 이미징 시스템에 의해 획득된 물리적 환경의 이미지를 분석하며; 이미지의 분석에 기반하여 복수의 키들을 갖는 물리적 키보드를 인식하며; 물리적 키보드와 연관된 콘텍스추얼 정보를 결정하며; 콘텍스추얼 정보에 적어도 부분적으로 기반하여 물리적 키보드에 대한 사양을 결정하며; 사양에 적어도 부분적으로 기반하여 물리적 키보드의 적어도 일부의 기능들을 동적으로 구성하며; 사양에 적어도 부분적으로 기반하여 가상 키 라벨의 렌더링 위치를 결정하며; 그리고 결정된 렌더링 위치에서 가상 키 라벨을 렌더링하도록 디스플레이 시스템에 명령하도록 프로그래밍된다.
[0203] 이전 예들 중 임의의 예에서, 가상 콘텐츠는 증강 또는 혼합 현실 콘텐츠 중 적어도 하나를 포함한다.
[0204] 이전 예들 중 임의의 예에서, 이미지를 분석하기 위해, 하드웨어 프로세서는 물리적 키보드의 시각적 특징들에 기반하여 물리적 키보드를 식별하기 위해 오브젝트 인식기를 실행하도록 프로그래밍될 수 있다.
[0205] 이전 예들 중 임의의 예에서, 시각적 특징들은 물리적 키보드의 표면의 형상 또는 물리적 키보드의 라벨 중 적어도 하나를 포함할 수 있다.
[0206] 이전 예들 중 임의의 예에서, 외향 이미징 시스템은 FOV를 갖는 세계 카메라를 포함할 수 있으며, FOV는 주어진 시간에 세계 카메라에 의해 관찰되는 물리적 환경의 일부를 포함할 수 있으며, 물리적 키보드를 인식하기 위해, 하드웨어 프로세서는 물리적 키보드의 적어도 일부가 FOV 내에 있음을 검출하도록 프로그래밍될 수 있다.
[0207] 이전 예들 중 임의의 예에서, 사양은 복수의 키들의 레이아웃 또는 복수의 키들의 기능들 중 적어도 하나를 포함할 수 있다.
[0208] 이전 예들 중 임의의 예에서, 물리적 키보드에 대한 사양을 결정하기 위해, 하드웨어 프로세서는 이미지의 분석에 기반하여 물리적 키보드의 모델을 결정하며; 그리고 사양을 리트리브하기 위해 모델의 사양을 저장하는 데이터베이스에 액세스하도록 프로그래밍될 수 있다.
[0209] 이전 예들 중 임의의 예에서, 복수의 키들 중 적어도 하나의 키는 용량성 터치 센서를 가질 수 있다.
[0210] 이전 예들 중 임의의 예에서, 콘텍스추얼 정보는 물리적 키보드의 포지션 또는 물리적 키보드의 배향 중 적어도 하나를 포함할 수 있다.
[0211] 이전 예들 중 임의의 예에서, 물리적 키보드의 일부는 블랭크 키들을 포함할 수 있으며, 물리적 키보드의 적어도 일부의 기능들을 동적으로 구성하기 위해, 하드웨어 프로세서는 커맨드 기능들을 블랭크 키들에 할당하도록 프로그래밍될 수 있으며, 커맨드 기능들은 시스템으로 하여금 사용자 인터페이스 동작을 수행하게 한다.
[0212] 이전 예들 중 임의의 예에서, 가상 키 라벨의 렌더링 위치는 물리적 키보드의 일부에서의 블랭크 키의 위치와 일치할 수 있으며, 하드웨어 프로세서는 픽셀 스틱을 사용하여 블랭크 키상에 가상 키 라벨을 중첩시키도록 디스플레이 시스템에 명령하도록 구성될 수 있다.
[0213] 일부 예들에서, 방법은 사용자의 3D(three-dimensional) 물리적 환경에서 복수의 키들을 갖는 키보드의 일부를 식별하는 단계; 콘텍스추얼 정보에 적어도 부분적으로 기반하여 키보드의 일부에 대한 사양을 결정하는 단계; 사양에 적어도 부분적으로 기반하여 키보드의 일부에 대한 기능들을 동적으로 구성하는 단계; 사양에 적어도 부분적으로 기반하여 키보드의 일부에서 가상 키 라벨의 렌더링 위치를 결정하는 단계; 및 결정된 렌더링 위치에서 가상 키 라벨을 렌더링하도록 디스플레이 시스템에 명령하는 단계를 포함한다.
[0214] 이전 예들 중 임의의 예에서, 키보드는 물리적 키보드를 포함할 수 있다.
[0215] 이전 예들 중 임의의 예에서, 물리적 키보드는 복수의 분리 가능한 섹션들로 어셈블리될 수 있다.
[0216] 이전 예들 중 임의의 예에서, 물리적 키보드는 사용자의 3D 물리적 환경에서 가상 스크린과 연관될 수 있으며, 가상 스크린은 물리적 키보드의 작동에 대한 응답으로 사용자 인터페이스 기능을 수행하도록 구성될 수 있다.
[0217] 이전 예들 중 임의의 예에서, 키보드는 가상 키보드를 포함할 수 있으며, 가상 키보드는 사용자의 환경의 표면 상에 렌더링된다.
[0218] 이전 예들 중 임의의 예에서, 표면은 물리적 키보드의 표면을 포함할 수 있다.
[0219] 이전 예들 중 임의의 예에서, 키보드를 식별하는 단계는 키보드의 식별 정보를 획득하기 위해 키보드와 통신하는 단계, 콘텍스추얼 정보에 기반하여 복수의 키보드들 중에서 키보드를 선택하는 단계, 키보드의 이미지에 기반하여 키보드를 인식하는 단계 중 적어도 하나를 포함할 수 있다.
[0220] 이전 예들 중 임의의 예에서, 이미지는 머리-장착 디바이스의 외향 이미징 시스템, 룸 카메라, 또는 물리적 키보드에 커플링된 카메라 중 적어도 하나에 의해 획득될 수 있다.
[0221] 이전 예들 중 임의의 예에서, 키보드의 일부는 블랭크 키들을 포함할 수 있다.
[0222] 이전 예들 중 임의의 예에서, 콘텍스추얼 정보는 키보드, 사용자 또는 3D 물리적 환경 중 적어도 하나와 연관될 수 있다.
[0223] 일부 예들에서, 컴퓨터-판독가능한 매체는 명령들을 포함할 수 있으며, 명령들은, 하드웨어 프로세서에 의해 판독될 때, 하드웨어 프로세서로 하여금 방법을 수행하게 하며, 방법은, 사용자의 3D(three-dimensional) 물리적 환경에서 복수의 키들을 갖는 키보드의 일부를 식별하는 단계; 콘텍스추얼 정보에 적어도 부분적으로 기반하여 키보드의 일부에 대한 사양을 결정하는 단계; 사양에 적어도 부분적으로 기반하여 키보드의 일부에 대한 기능들을 동적으로 구성하는 단계; 사양에 적어도 부분적으로 기반하여 키보드의 일부에서 가상 키 라벨의 렌더링 위치를 결정하는 단계; 및 결정된 렌더링 위치에서 가상 키 라벨을 렌더링하도록 디스플레이 시스템에 명령하는 단계를 포함한다.
[0224] 이전 예들 중 임의의 예에서, 키보드는 물리적 키보드를 포함할 수 있다.
[0225] 이전 예들 중 임의의 예에서, 물리적 키보드는 복수의 분리 가능한 섹션들로 어셈블리될 수 있다.
[0226] 이전 예들 중 임의의 예에서, 물리적 키보드는 사용자의 3D 물리적 환경에서 가상 스크린과 연관될 수 있으며, 가상 스크린은 물리적 키보드의 작동에 대한 응답으로 사용자 인터페이스 기능을 수행하도록 구성된다.
[0227] 이전 예들 중 임의의 예에서, 키보드는 가상 키보드를 포함할 수 있으며, 가상 키보드는 사용자의 환경의 표면 상에 렌더링된다.
[0228] 이전 예들 중 임의의 예에서, 표면은 물리적 키보드의 표면을 포함할 수 있다.
[0229] 이전 예들 중 임의의 예에서, 키보드를 식별하는 단계는 키보드의 식별 정보를 획득하기 위해 키보드와 통신하는 단계, 콘텍스추얼 정보에 기반하여 복수의 키보드들 중에서 키보드를 선택하는 단계, 키보드의 이미지에 기반하여 키보드를 인식하는 단계 중 적어도 하나를 포함할 수 있다.
[0230] 이전 예들 중 임의의 예에서, 이미지는 머리-장착 디바이스의 외향 이미징 시스템, 룸 카메라, 또는 물리적 키보드에 커플링된 카메라 중 적어도 하나에 의해 획득될 수 있다.
[0231] 이전 예들 중 임의의 예에서, 키보드의 일부는 블랭크 키들을 포함할 수 있다.
[0232] 이전 예들 중 임의의 예에서, 콘텍스추얼 정보는 키보드, 사용자 또는 3D 물리적 환경 중 적어도 하나와 연관될 수 있다.
[0233] 일부 예들에서, 시스템은 사용자의 물리적 환경에 가상 콘텐츠를 제공하도록 구성된 웨어러블 디바이스의 디스플레이 시스템; 사용자의 포즈와 연관된 데이터를 획득하도록 구성된 포즈 센서; 디스플레이 시스템 및 포즈 센서와 통신하는 하드웨어 프로세서를 포함하며; 하드웨어 프로세서는, 포즈에 기반하여 사용자의 환경의 오브젝트와 상호작용하기 위한 표시를 수신하며; 오브젝트와의 상호작용을 위한 키보드를 식별하며; 키보드와 연관된 가상 콘텐츠를 결정하며; 사용자의 환경에서 가상 콘텐츠의 렌더링 위치를 결정하며; 키보드의 작동을 검출하며; 그리고 키보드의 실행에 기반하여 커맨드의 실행을 명령하도록, 프로그래밍된다.
[0234] 이전 예들 중 임의의 예에서, 포즈 센서는 웨어러블 디바이스의 세계 카메라, 웨어러블 디바이스 외부의 카메라, 또는 눈 카메라 중 적어도 하나를 포함할 수 있다.
[0235] 이전 예들 중 임의의 예에서, 포즈는 머리 포즈, 시선 또는 손 제스처 중 적어도 하나를 포함할 수 있다.
[0236] 이전 예들 중 임의의 예에서, 사용자의 환경에서 오브젝트와 상호작용하기 위한 표시는 머리 포즈 또는 시선 중 적어도 하나를 포함할 수 있고, 오브젝트는 광선 캐스팅 사용하여 식별될 수 있다.
[0237] 이전 예들 중 임의의 예에서, 키보드는 사용자의 포즈 또는 오브젝트와 연관된 특징들 중 적어도 하나에 기반하여 식별될 수 있다.
[0238] 이전 예들 중 임의의 예에서, 키보드는 물리적 키보드를 포함할 수 있고, 가상 콘텐츠는 물리적 키보드의 복수의 키들에 대한 가상 키 라벨들을 포함할 수 있다.
[0239] 이전 예들 중 임의의 예에서, 키보드는 가상 키보드를 포함할 수 있고, 가상 콘텐츠는 키보드의 가상 키들을 포함할 수 있다.
[0240] 이전 예들 중 임의의 예에서, 오브젝트는 물리적 오브젝트를 포함할 수 있고, 키보드는 가상 키보드를 포함할 수 있으며, 키보드는 물리적 오브젝트 상에 렌더링될 수 있다.
[0241] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 포즈의 변화를 검출하고; 그리고 포즈의 변화에 기반하여 가상 콘텐츠의 렌더링 위치를 업데이트하도록 추가로 프로그래밍될 수 있다.
[0242] 이전 예들 중 임의의 예에서, 키보드는 물리적 키보드일 수 있고, 가상 콘텐츠의 렌더링 위치를 업데이트하기 위해, 하드웨어 프로세서는 제1 세트의 키들 상에 렌더링된 키 라벨들을 제2 세트의 키들로 이동시키도록 프로그래밍될 수 있다.
[0243] 이전 예들 중 임의의 예에서, 키보드의 작동을 검출하기 위해, 하드웨어 프로세서는 키 누름과 연관된 사운드, 사용자의 손 제스처와 연관된 이미지, 또는 키보드로부터 수신된 무선 신호 중 적어도 하나와 연관된 데이터를 분석하도록 프로그래밍될 수 있다.
[0244] 이전 예들 중 임의의 예에서, 각각의 키는 사운드에 할당될 수 있고, 키의 작동은 사운드가 생성되게 한다.
[0245] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 다른 오브젝트와 다른 사용자의 상호작용의 다른 표시를 수신하고; 그리고 다른 오브젝트와 연관된 콘텍스추얼 정보에 기반하여 키보드를 동적으로 재구성가능하도록 추가로 프로그래밍될 수 있다.
[0246] 일부 예들에서, 방법은 웨어러블 디바이스의 디스플레이 시스템을 사용하여 사용자의 물리적 환경에 가상 콘텐츠를 제공하는 단계; 포즈 센서를 사용하여 사용자의 포즈와 연관된 데이터를 획득하는 단계; 포즈에 기반하여 사용자의 환경에서 오브젝트와 상호작용하기 위한 표시를 하드웨어 프로세서를 사용하여 수신하는 단계; 오브젝트와의 상호작용을 위한 키보드를 하드웨어 프로세서를 사용하여 식별하는 단계; 키보드와 연관된 가상 콘텐츠를 하드웨어 프로세서를 사용하여 결정하는 단계; 사용자 환경에서 가상 콘텐츠의 렌더링 위치를 하드웨어 프로세서를 사용하여 결정하는 단계; 하드웨어 프로세서를 사용하여 키보드의 작동을 검출하는 단계; 및 키보드의 실행에 기반하여 커맨드의 실행을 하드웨어 프로세서를 사용하여 명령하는 단계를 포함한다.
[0247] 이전 예들 중 임의의 예에서, 포즈 센서는 웨어러블 디바이스의 세계 카메라, 웨어러블 디바이스 외부의 카메라, 또는 눈 카메라 중 적어도 하나를 포함할 수 있다.
[0248] 이전 예들 중 임의의 예에서, 포즈는 머리 포즈, 시선 또는 손 제스처 중 적어도 하나를 포함할 수 있다.
[0249] 이전 예들 중 임의의 예에서, 사용자 환경에서 오브젝트와 상호작용하기 위한 표시는 머리 포즈 또는 시선 중 적어도 하나를 포함할 수 있고, 오브젝트는 광선 캐스팅 사용하여 식별될 수 있다.
[0250] 이전 예들 중 임의의 예에서, 키보드는 사용자의 포즈 또는 오브젝트와 연관된 특징들 중 적어도 하나에 기반하여 식별될 수 있다.
[0251] 이전 예들 중 임의의 예에서, 키보드는 물리적 키보드를 포함할 수 있고, 가상 콘텐츠는 물리적 키보드의 복수의 키들에 대한 가상 키 라벨들을 포함할 수 있다.
[0252] 이전 예들 중 임의의 예에서, 키보드는 가상 키보드일 수 있으며, 가상 콘텐츠는 키보드의 가상 키들을 포함할 수 있다.
[0253] 이전 예들 중 임의의 예에서, 오브젝트는 물리적 오브젝트를 포함할 수 있고, 키보드는 가상 키보드를 포함할 수 있으며, 그리고 키보드는 물리적 오브젝트 상에 렌더링될 수 있다.
[0254] 이전 예들 중 임의의 예에서, 방법은 하드웨어 프로세서를 사용하여 포즈의 변화를 검출하는 단계; 및 하드웨어 프로세서를 사용하여, 포즈의 변화에 기반하여 가상 콘텐츠의 렌더링 위치를 업데이트하는 단계를 더 포함할 수 있다.
[0255] 이전 예들 중 임의의 예에서, 키보드는 물리적 키보드일 수 있고, 가상 콘텐츠의 렌더링 위치를 업데이트하는 단계는, 하드웨어 프로세서를 사용하여, 제1 세트의 키들 상에 렌더링된 키 라벨들을 제2 세트의 키들로 이동시키는 단계를 포함할 수 있다.
[0256] 이전 예들 중 임의의 예에서, 키보드의 작동을 검출하는 단계는 키 누름과 연관된 사운드, 사용자의 손 제스처와 연관된 이미지, 또는 키보드로부터 수신된 무선 신호 중 적어도 하나와 연관된 데이터를 분석하는 단계를 포함할 수 있다.
[0257] 이전 예들 중 임의의 예에서, 각각의 키는 사운드에 할당될 수 있고, 키의 작동은 사운드가 생성되게 할 수 있다.
[0258] 이전 예들 중 임의의 예에서, 방법은, 하드웨어 프로세서를 사용하여, 다른 오브젝트와의 다른 사용자의 상호작용의 다른 표시를 수신하는 단계; 및 하드웨어 프로세서를 사용하여, 다른 오브젝트와 연관된 콘텍스추얼 정보에 기반하여 키보드를 동적으로 재구성하는 단계를 더 포함할 수 있다.
[0259] 일부 예들에서, 비-일시적 컴퓨터-판독가능한 매체는 하드웨어 프로세서에 의해 판독될 때, 하드웨어 프로세서로 하여금 방법을 수행하게 하는 명령들을 포함할 수 있으며, 방법은, 웨어러블 디바이스의 디스플레이 시스템을 사용하여 사용자의 물리적 환경에 가상 콘텐츠를 제공하는 단계; 포즈 센서를 사용하여 사용자의 포즈와 연관된 데이터를 획득하는 단계; 포즈에 기반하여 사용자의 환경에서 오브젝트와 상호작용하기 위한 표시를 수신하는 단계; 오브젝트와의 상호작용을 위한 키보드를 식별하는 단계; 키보드와 연관된 가상 콘텐츠를 결정하는 단계; 사용자 환경에서 가상 콘텐츠의 렌더링 위치를 결정하는 단계; 키보드의 작동을 검출하는 단계; 및 키보드의 실행에 기반하여 커맨드의 실행을 명령하는 단계를 포함한다.
[0260] 이전 예들 중 임의의 예에서, 포즈 센서는 웨어러블 디바이스의 세계 카메라, 웨어러블 디바이스 외부의 카메라, 또는 눈 카메라 중 적어도 하나를 포함할 수 있다.
[0261] 이전 예들 중 임의의 예에서, 포즈는 머리 포즈, 시선 또는 손 제스처 중 적어도 하나를 포함할 수 있다.
[0262] 이전 예들 중 임의의 예에서, 사용자 환경에서 오브젝트와 상호작용하기 위한 표시는 머리 포즈 또는 시선 중 적어도 하나를 포함할 수 있고, 오브젝트는 광선 캐스팅 사용하여 식별될 수 있다.
[0263] 이전 예들 중 임의의 예에서, 키보드는 사용자의 포즈 또는 오브젝트와 연관된 특징들 중 적어도 하나에 기반하여 식별될 수 있다.
[0264] 이전 예들 중 임의의 예에서, 키보드는 물리적 키보드를 포함할 수 있고, 가상 콘텐츠는 물리적 키보드의 복수의 키들에 대한 가상 키 라벨들을 포함할 수 있다.
[0265] 이전 예들 중 임의의 예에서, 키보드는 가상 키보드일 수 있으며, 가상 콘텐츠는 키보드의 가상 키들을 포함할 수 있다.
[0266] 이전 예들 중 임의의 예에서, 오브젝트는 물리적 오브젝트를 포함할 수 있고, 키보드는 가상 키보드를 포함할 수 있으며, 그리고 키보드는 물리적 오브젝트 상에 렌더링될 수 있다.
[0267] 이전 예들 중 임의의 예에서, 컴퓨터 판독 가능 매체에 의해 유발된 방법은 포즈의 변화를 검출하는 단계; 및 포즈의 변화에 기반하여 가상 콘텐츠의 렌더링 위치를 업데이트하는 단계를 더 포함할 수 있다.
[0268] 이전 예들 중 임의의 예에서, 키보드는 물리적 키보드일 수 있고, 가상 콘텐츠의 렌더링 위치를 업데이트하는 단계는 제1 세트의 키들 상에 렌더링된 키 라벨들을 제2 세트의 키들로 이동시키는 단계를 포함할 수 있다.
[0269] 이전 예들 중 임의의 예에서, 키보드의 작동을 검출하는 단계는 키 누름과 연관된 사운드, 사용자의 손 제스처와 연관된 이미지, 또는 키보드로부터 수신된 무선 신호 중 적어도 하나와 연관된 데이터를 분석하는 단계를 포함할 수 있다.
[0270] 이전 예들 중 임의의 예에서, 각각의 키는 사운드에 할당될 수 있고, 키의 작동은 사운드가 생성되게 한다.
[0271] 이전 예들 중 임의의 예에서, 컴퓨터 판독가능 매체에 의해 유발된 방법은, 다른 오브젝트와의 다른 사용자 상호작용의 다른 표시를 수신하는 단계; 및 다른 오브젝트와 연관된 콘텍스추얼 정보에 기반하여 키보드를 동적으로 재구성하는 단계를 더 포함할 수 있다.
물리적 키보드와의 사용자의 상호작용에 대응하는 가상 키보드 기능성의 예들
[0272] 도 18-20은 본원에서 설명된 VR/AR/MR 시스템들의 일부 실시예들이 물리적 키보드와의 사용자의 상호작용에 대응하는 가상 키보드 기능성을 어떻게 구현할 수 있는지를 예시한다. 본원의 다른 곳에서 설명된 바와 같이, VR/AR/MR 시스템과 상호작용하기 위한 사용자 입력을 수신하기 위해 하나 이상의 물리적 키보드들 또는 다른 입력 디바이스들이 제공될 수 있다. 사용 동안, 물리적 키보드가 사용자의 시야를 벗어나 위치되어서, 비효율적인 키보드 사용을 야기하고, 부정확한 키스트로크들을 야기하며, 그리고/또는 사용자가 반복적으로, 키보드 및/또는 키보드에 관한 사용자의 손들 및 손가락들의 위치를 보기 위해 관심대상 영역으로부터 멀어지게 돌릴 것을 요구할 수 있다. 일부 경우들에서, VR/AR/MR 시스템에 의해 디스플레이되는 가상 콘텐츠가 키보드에 대한 사용자의 뷰를 부분적으로 또는 완전히 차단하여서, 사용자가 물리적 키보드 상의 자신의 손들 및 손가락들의 위치를 정확히 결정하는 것을 방해할 수 있다. 따라서, 물리적 키보드를 나타내는 가상 키보드 또는 다른 가상 이미저리가 VR/AR/MR 시스템의 디스플레이에 의해 사용자에게 디스플레이될 수 있다. 게다가, VR/AR/MR 시스템의 디스플레이는, 물리적 키보드에 대한 사용자의 손 포지셔닝 및/또는 물리적 키보드 상에서 사용자에 의해 이루어지는 키스트로크들의 표현을 도시할 수 있다. 이는, 물리적 키보드를 볼 필요 없이 VR/AR/MR 시스템의 시야 내에서 사용자가 물리적 키보드와의 자신의 상호작용들을 지각할 수 있도록, 실시간으로 수행될 수 있다.
[0273] 도 18은 물리적 키보드(1820)와의 사용자의 상호작용들에 기반하여 VR/AR/MR 시스템의 디스플레이 상에 가상 키보드 기능성을 구현하기 위한 시스템(1800)을 예시한다. 일부 실시예들에서, 물리적 키보드는 물리적 키보드에 대한 사용자의 손(들) 및/또는 손가락들의 배치에 관한 정보를 검출할 수 있는 하나 이상의 빌트-인 센서들을 포함한다. 이들 빌트-인 손 배치 센서들은 예컨대 용량성 터치 센서들, 광 검출기들, 전기 또는 기계적 스위치들, 카메라들, 마이크로폰들 등을 포함할 수 있다. 다른 실시예들에서, 손 배치 검출 센서들은 물리적 키보드(1820) 외부에 있을 수 있으며, VR/AR/MR 시스템 또는 별개의 디바이스들과 통합될 수 있다. 예컨대, 외부 손 배치 검출 센서들(1830)은 하나 이상의 마이크로폰들 및/또는 카메라들을 포함할 수 있다.
[0274] 외부 손 배치 검출 센서로서 마이크로폰의 예에서, 마이크로폰은, 키가 눌려지는 사운드에 기반하여 키 누름들을 검출하도록 구성될 수 있다. 일부 실시예들에서, 각각의 키는, 키를 키보드(1820)의 다른 키들과 구별하기 위해, 눌려질 때 고유한 사운드 프로파일을 갖도록 구성될 수 있다. 따라서, 마이크로폰은 키 누름에 대응하는 사운드를 검출할 수 있고, 시스템(1800)은 마이크로폰으로부터 수신된 출력을 분석하는 것에 기반하여 어느 키가 눌렸는지를 결정할 수 있다.
[0275] 추가로, 키 누름들의 결정된 위치들에 기반하여 손 및/또는 손가락 위치가 계산될 수 있다. 외부 손 배치 검출 센서로서 카메라의 예에서, 하나 이상의 카메라들이, 예컨대 키보드 위로부터 키보드의 이미지들을 캡처하도록 정렬 및 구성될 수 있다. 일부 실시예들에서, 캡처된 이미지들에 기반한 손 위치의 결정을 가능하게 하기 위해 하나 이상의 기준 마커들이 키보드 상에 제공될 수 있다. 예컨대, 복수의 기준점들이 키보드의 키들의 표면 상에 인쇄되거나 또는 이 표면에 달리 적용될 수 있다. 키보드의 이미지가 분석될 때, 이미지 내에서 보이는 기준점들은 사용자의 손에 의해 덮이지 않은 키보드 상의 위치를 표시할 수 있고, 알려져 있지만 이미지 내에서 보이지 않은 기준점들은 사용자의 손에 의해 덮이는 키보드 상의 위치를 표시할 수 있다. 일부 실시예들에서, 손 배치 검출 센서들은 VR/AR/MR 시스템과 상호작용하기 위한 입력 신호들을 제공하기 위해 사용자에 의해 사용되는, 물리적 키보드의 키들과는 별개일 수 있다. 물리적 키보드(1820) 및 손 배치 센서(들)(1830)는 VR/AR/MR 시스템과 통신가능하게 커플링될 수 있다.
[0276] 디스플레이(1810)는 예컨대 본원에서 설명된 디스플레이 디바이스들 중 임의의 디스플레이 디바이스일 수 있다. 일부 실시예들에서, 도 18에 도시된 디스플레이(1800)는 도 2에 도시된 디스플레이(220)일 수 있고, 물리적 키보드(1820) 및 손 배치 센서(들)(1830)는 디스플레이(220), 로컬 프로세싱 및 데이터 모듈(260) 및/또는 원격 프로세싱 모듈(270)과 통신할 수 있다. 일반적으로, 디스플레이(1810)는, 이미지 콘텐츠를 사용자에게 디스플레이하기 위해 사용자의 눈에 광을 투사하도록 구성된다. 본원에서 논의된 바와 같이, 일부 실시예들에서, 디스플레이(1810)는 웨어러블 디바이스, 이를테면, 예컨대, 머리-장착 디스플레이이다. 이미지 콘텐츠를 사용자에게 디스플레이하는 것 외에도, 디스플레이(1810)는 추가로, 주변 물리적 환경으로부터의 광이 사용자의 눈을 통과하여서, 투사된 이미지 콘텐츠가, 사용자의 주변 물리적 환경에 대한 사용자의 뷰 상에 중첩된 증강 현실 또는 혼합 현실 이미지 콘텐츠로서 사용자에게 제공되게 허용하도록 구성될 수 있다. 다른 실시예들에서, 디스플레이(1810)는, 사용자에게 주변 물리적 환경의 뷰를 제공하지 않는 가상 현실 디스플레이일 수 있다. 디스플레이(1810)는 물리적 키보드(1820), 외부 센서(1830) 및/또는 임의의 다른 데이터 소스, 예컨대, 인터넷, 하나 이상의 원격 프로세싱 및/또는 메모리 모듈들 등으로부터 데이터를 수신하도록 구성된 하나 이상의 프로세서들 및/또는 메모리 유닛들을 포함하거나 또는 이들에 통신가능하게 커플링될 수 있다.
[0277] 물리적 키보드(1820)는, 사용자로부터의 입력을 검출하고 사용자 입력을 나타내는 신호들을 생성하도록 구성된 복수의 키들(1822)을 포함한다. 키들(1822)은 예컨대 텍스트, 심볼들, 커맨드들 등을 VR/AR/MR 시스템에 입력하는 데 사용될 수 있다. 물리적 키보드(1820)는, 키들(1822) 중 하나 이상이 눌렸을 때 사용자에 의해 이루어진 키스트로크들을 검출할 수 있다. 물리적 키보드(1820)는 내부 키스트로크 검출 메커니즘들을 사용하여 키스트로크들을 검출할 수 있다. 이들은 예컨대 기계적 또는 전기 스위치들, 용량성 센서들 등을 포함할 수 있다. 게다가, 키들(1822) 중 일부 또는 전부는, 키(1822)가 눌려지고 있는지 여부와 관계없이, 키(1822)와 접촉하는 사용자의 손가락을 검출하도록 구성된 터치 센서들(1824)을 포함할 수 있다. 예컨대, 터치 센서들(1824)은 용량성 터치 센서들 또는 터치를 검출할 수 있는 임의의 다른 센서일 수 있다. 물리적 키보드가 키스트로크 검출 메커니즘들, 터치 센서들(1824) 및/또는 손 배치 센서들로부터 신호들을 수신할 때, 물리적 키보드는, 예컨대 물리적 키보드에 대한 사용자의 손 또는 손가락 포지셔닝, 사용자의 키스트로크들 등을 나타내는 신호들, 데이터 및/또는 파라미터들을 VR/AR/MR 시스템에 제공할 수 있다.
[0278] 빌트-인 또는 외부 손 배치 센서(들)(1830)는 물리적 키보드에 대한 사용자의 손들 또는 손가락들의 위치(들), 또는 물리적 키보드(1820) 상의 또는 그 인근의 사용자의 손들 및/또는 손가락들의 외관, 사운드 또는 다른 양상을 나타내는 정보를 검출한다. 손 배치 센서(들)(1830)는 디스플레이(1810)와 통신가능하게 커플링될 수 있다. 예컨대, 손 배치 센서(들)(1830)는 센서(들)에서 검출된 데이터(예컨대, 이미지들, 사운드들, 포지션 신호들 등) 및/또는 데이터에 기반하여 결정된 파라미터들(예컨대, 손 및/또는 손가락 위치 등)을 디스플레이 디바이스(1810)에 전송하도록 구성될 수 있다.
[0279] 도 19는 디스플레이(1810)가 물리적 키보드(1820), 물리적 키보드에 대한 사용자의 손 및/또는 손가락 배치(들) 및/또는 사용자에 의해 이루어진 키스트로크들에 대응하는 가상 이미지 콘텐츠(1840)를 어떻게 도시할 수 있는지의 예이다. 도 19에 도시된 예시적인 실시예에서, 이미지 콘텐츠(1840)는 물리적 키보드(1820)에 대응하는 가상 키보드(1842) 및 사용자의 손들(1828)에 대응하는 가상 손들(1846)을 포함한다. 가상 손들(1846)의 손가락들(1848)은 사용자의 손들(1828)의 손가락들(1829)에 의해 터치되는 물리적 키보드(1820)의 키들(1822)에 대응하는 가상 키들(1844)을 터치하는 것으로 도시된다. 이 이미저리는, 물리적 키보드 상에서 사용자에 의해 이루어지는 키스트로크들을 도시하도록 실시간으로 업데이트될 수 있다.
[0280] 도 19의 예시적인 실시예에 도시된 이미지 콘텐츠(1840)는 예컨대 물리적 키보드(1820)와 사용자의 손들(1828) 및 손가락들(1829)의 진짜 외관의 3-차원 표현으로서 디스플레이될 수 있다. 그러나, 다양한 실시예들에서, 물리적 키보드(1820) 및 사용자의 손들(1828) 및/또는 손가락들(1829)을 나타내는 다른 시각 콘텐츠가 사용될 수 있다. 예컨대, 일부 실시예들에서, 가상 키보드(1842) 및/또는 가상 손들(1846)은, 물리적 키보드(1820), 손들(1828) 및/또는 손가락들(1829)의 실제 외관의 표현이라기 보다는, 키보드 및/또는 손들의 일반적 이미지들로서 묘사될 수 있다. 다른 예에서, 가상 키보드(1842) 및/또는 가상 손들(1846)은 물리적 키보드(1820), 손들(1828) 및/또는 손가락들(1829)의 단순화된 2-차원 표현들일 수 있다. 일 예에서, 사용자의 손가락들(1829)의 위치들은, 사용자의 손가락들(1829)에 의해 터치되는 물리적 키들(1822)에 대응하는, 가상 키보드(1842)의 가상 키들(1844) 상에 중첩된 도트들 또는 다른 심볼들로서 간단히 표현될 수 있다.
[0281] 일부 실시예들에서, 심볼들(예컨대, 글자들, 숫자들, 구두점 및/또는 다른 캐릭터들)이 가상 키보드(1840)의 가상 키들(1844) 상에 디스플레이된다. 예컨대, 도 19에 도시된 바와 같이, 가상 키들(1844)은 표준 QWERTY 키보드와 일치하는 심볼들을 디스플레이한다. 가상 키들(1844) 상에 디스플레이된 심볼들은 물리적 키보드(1820)의 키들 상에 디스플레이된 심볼들과 일치하거나 또는 상이할 수 있다. 예컨대, 물리적 키보드가 QWERTY 키보드 레이아웃에 따라 캐릭터들 및 심볼들로 마킹된 키들(1822)을 가질 수 있는 한편, 가상 키들(1844)은 드보락 단순화 키보드, 알파벳 순서, 이모지 키보드, 표준 외국어 키보드 레이아웃 또는 임의의 다른 원하는 키보드 레이아웃과 일치하는 어레인지먼트로 캐릭터들 및 심볼들을 디스플레이할 수 있다. 추가적인 실시예들에서, 물리적 키보드(1820)는 인쇄된 심볼들이 없는 블랭크 키들(1822)을 가져서, 가상 키들(1844)만이 라벨링될 수 있다.
[0282] 도 20을 참조하면, 가상 키보드 콘텐츠를 생성 및 디스플레이하는 예시적인 방법(2000)이 설명될 것이다. 방법(2000)은, 키보드 정보가 VR/AR/MR 시스템의 프로세싱 컴포넌트에 의해 수신되는 블록(2010)에서 시작한다. 키보드 정보는 물리적 키보드의 타입 및/또는 디스플레이될 가상 키보드의 타입에 대응하는 데이터, 이를테면, 예컨대, 가상 키보드 상의 키들의 수, 사이즈, 형상 또는 레이아웃, 및/또는 가상 키보드의 키들 상에 디스플레이될 심볼들을 포함할 수 있다. 일부 실시예들에서, 키보드 정보를 수신하는 것은 물리적 키보드와 연관된 정보, 이를테면, 예컨대, 물리적 키보드 상의 키들의 수, 형상, 사이즈 또는 레이아웃에 기반하여 가상 키보드 정보 파일을 선택, 다운로드 또는 달리 획득하는 것을 포함할 수 있다. 다른 실시예들에서, 키보드 정보는 방법(2000)을 수행하기 위해 VR/AR/MR 시스템에 사전-프로그래밍될 수 있다.
[0283] 블록(2020)에서, 블록(2010)에서 수신된 키보드 정보에 기반하여 가상 키보드 이미지가 생성된다. 앞서 설명된 바와 같이, 가상 키보드 이미지는 물리적 키보드에 대응하는 2-차원 또는 3-차원 이미지를 포함할 수 있다. 일부 실시예들에서, 키보드 이미지는 예컨대 형상, 컬러, 키 사이즈 및 레이아웃 등이 물리적 키보드와 매칭하는, 물리적 키보드의 실질적으로 정확한 레크리에이션이다. 다른 실시예들에서, 가상 키보드 이미지가 외관 사이즈, 형상, 키 사이즈, 키 형상, 키 레이아웃, 컬러 또는 다른 품질들이 물리적 키보드와는 상이할 수 있어서, 가상 키보드 이미지는 물리적 키보드의 문자 그대로의 묘사라기 보다는 물리적 키보드의 개략적 표현일 수 있다. 일부 실시예들에서, 가상 키보드 이미지는 외부 소스, 이를테면, 인터넷으로부터 획득될 수 있고, 그리고/또는 디스플레이 시스템 내의 사전-프로그래밍된 키보드 이미지일 수 있다.
[0284] 블록(2030)에서, 손 또는 손가락 배치 센서(들)로부터 정보가 수신된다. 블록(2030)은 블록들(2010 및/또는 2020) 전에, 후에 또는 동시에 수행될 수 있다. 손 또는 손가락 배치 센서 정보는 빌트-인 키보드 센서들(예컨대, 터치 센서들 또는 키스트로크 검출 메커니즘들) 및/또는 외부 센서들(예컨대, 카메라들, 마이크로폰들 등)에 의해 획득된 임의의 정보를 포함할 수 있다. 그에 따라서, 수신된 센서 정보는 물리적 키보드에 관한 사용자의 손(들)의 위치, 물리적 키보드에 관한 사용자의 손가락들 중 하나 이상의 위치, 눌리는 한 세트의 키들, 사용자의 손의 손가락에 의해 터치되는 한 세트의 키들, 또는 디스플레이 시스템의 센서들로부터 도출된 다른 정보를 나타낼 수 있다.
[0285] 블록(2040)에서, 블록(2030)에서 수신된 센서 정보에 기반하여 가상 손 또는 손가락 배치 이미지가 생성된다. 손 또는 손가락 배치 이미지는 사용자의 손들 및/또는 손가락들의 하나 이상의 묘사들, 이를테면, 도 19를 참조하여 설명된 묘사들을 포함할 수 있다. 일 예에서, 수신된 센서 정보는 터치되는 물리적 키보드의 키들의 서브세트의 표시를 포함하며, 생성된 손 또는 손가락 배치 이미지는, 사용자의 손가락들에 의해 터치되고 있는 물리적 키보드의 키들에 대응하는 가상 키보드 이미지 내의 각각의 위치에 그래픽, 이를테면, 원 또는 다른 심볼을 포함한다. 다른 예에서, 생성된 손 또는 손가락 배치 이미지는, 수신된 센서 정보에 표시된 키들 상에 손가락 끝들이 놓여 있는 손가락들을 갖는 손들의 3-차원 렌더링들을 포함한다. 센서 정보가 하나 이상의 손 위치들을 나타내는 정보를 더 포함하는 실시예들의 경우, 손가락들에 부착된 가상 손들의 위치들은 센서 정보에 기반하여 결정될 수 있다. 물리적 키보드의 키들의 상부 표면들 상에 위치된 용량성 터치 센서들이 키 상의 손가락의 존재를 검출할 수 있을 수 있지만, 사용자의 손의 어느 손가락이 키를 터치하고 있는지를 결정할 수는 없을 수 있다는 것이 인지될 것이다. 일부 실시예들에서, 디스플레이 시스템은, 터치 센서 데이터의 조합에 기반하여, 추정된 손 포지션을 결정하도록 구성될 수 있다. 예컨대, 만약 터치 센서들이 물리적 키보드의 A, S, D, F, J, K, L 및 세미콜론 키들 상에 손가락들이 놓여 있음을 표시하면, 디스플레이 시스템은, A, S, D 및 F 키들이 왼손의 손가락들의 위치들을 표현하는 한편, 물리적 키보드의 J, K, L 및 세미콜론 키들은 오른손의 손가락들의 위치들을 표현한다고 결정할 수 있다.
[0286] 블록(2050)에서, 가상 키보드 이미지, 그리고 손 또는 손가락 배치 이미지는 사용자에게 디스플레이된다. 디스플레이 시스템이 키보드 이미지와 손 또는 손가락 배치 이미지를 조합하여서, 사용자에게 디스플레이된 합성 이미지는, 물리적 키보드 상에서의 사용자의 손들의 포지션 및 모션과 일치하는 포지션에서 가상 키보드 상에 타이핑하는 가상 손들을 도시하는 것으로 나타날 수 있다. 그에 따라서, 사용자에게 디스플레이된 합성 이미지는, 사용자가 물리적 키보드를 내려다 볼 필요 없이 물리적 키보드 상에서 자신의 손가락 끝들의 위치를 결정하게 허용할 수 있다. 일부 실시예들에서, 방법(2000)은, 추가적인 키보드 및/또는 센서 정보를 수신하고 가상 키보드 및/또는 손/손가락 배치 이미지들을 재생성하기 위해, 블록들(2010 및 2030) 중 하나 또는 둘 모두로 리턴할 수 있다. 예컨대, 일부 실시예들에서, 키보드 이미지가 일정하게 유지되는 한편, 방법(2000)은 디스플레이 시스템의 외부 센서들 및/또는 키보드 센서들로부터 수신된 실시간 또는 거의 실시간 업데이트된 정보에 기반하여 손/손가락 배치 이미지를 연속적으로 또는 반복적으로 재생성한다. 그에 따라서, 사용자 이미지가 재생성 및 다시 디스플레이될 때, 사용자 이미지는, 물리적 키보드 상에서의 사용자의 손들의 실제 움직임들과 일치하여 가상 키보드 상에서 움직이고 타이핑하는 애니메이팅된 손들로서 사용자에게 나타날 수 있다.
예들
[0287] 일부 예들에서, 시스템은, 가상 현실, 증강 현실 또는 혼합 현실 콘텐츠를 사용자에게 제공하도록 구성된 디스플레이; 물리적 키보드 ― 물리적 키보드는, 사용자로부터의 입력을 수신하도록 구성된 하나 이상의 키들, 및 물리적 키보드에 관한 사용자의 손들 또는 손가락들 중 하나 이상의 위치를 나타내는 출력을 생성하도록 구성된 하나 이상의 센서들을 포함함 ―; 하나 이상의 하드웨어 프로세서들; 및 명령들을 저장한 하나 이상의 컴퓨터 저장 매체를 포함하며; 명령들은, 시스템에 의해 실행될 때, 시스템으로 하여금, 하나 이상의 센서들의 출력에 기반하여 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 결정하는 동작; 및 디스플레이가, 물리적 키보드의 제1 이미지 표현 및 사용자의 손들 또는 손가락들 중 하나 이상의 배치의 제2 이미지 표현을 제공하게 하는 동작을 포함하는 동작들을 수행하게 하며; 제1 이미지 표현에 관한 제2 이미지 표현의 위치는 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 나타낸다.
[0288] 이전 예들 중 임의의 예에서, 하나 이상의 센서들은 키들 상에 배치된 터치 센서들을 포함할 수 있다.
[0289] 이전 예들 중 임의의 예에서, 터치 센서들은 용량성 터치 센서들을 포함할 수 있다.
[0290] 이전 예들 중 임의의 예에서, 시스템은, 물리적 키보드 인근의 오브젝트의 위치를 검출하도록 구성된 적어도 하나의 카메라를 더 포함할 수 있다.
[0291] 이전 예들 중 임의의 예에서, 제1 이미지 표현은 하나 이상의 가상 키들을 포함하는 가상 키보드를 포함할 수 있으며, 각각의 가상 키는 물리적 키보드의 키에 대응한다.
[0292] 이전 예들 중 임의의 예에서, 가상 키들 중 복수의 가상 키들 각각은 물리적 키보드의 대응하는 키의 기능을 나타내는 심볼을 포함할 수 있다.
[0293] 이전 예들 중 임의의 예에서, 복수의 가상 키들 중 적어도 하나의 심볼은 물리적 키보드의 대응하는 키 상에 디스플레이된 심볼과는 상이할 수 있다.
[0294] 이전 예들 중 임의의 예에서, 물리적 키보드의 키들은 심볼들을 포함할 수 없다.
[0295] 이전 예들 중 임의의 예에서, 제2 이미지는 하나 이상의 손가락들의 시각 표현을 포함할 수 있다.
[0296] 이전 예들 중 임의의 예에서, 시스템은 추가로, 물리적 키보드에 관한 사용자의 적어도 하나의 손의 위치를 결정하도록 구성될 수 있고, 제2 이미지 표현은 적어도 하나의 손의 시각 표현을 포함할 수 있다.
[0297] 이전 예들 중 임의의 예에서, 제2 이미지는 하나 이상의 센서들의 출력에 적어도 부분적으로 기반하여 실시간 또는 거의 실시간으로 업데이트될 수 있다.
[0298] 일부 예들에서, 시스템은, 가상 현실, 증강 현실 또는 혼합 현실 콘텐츠를 사용자에게 제공하도록 구성된 디스플레이; 하나 이상의 하드웨어 프로세서들; 및 명령들을 저장한 하나 이상의 컴퓨터 저장 매체를 포함하며; 명령들은, 시스템에 의해 실행될 때, 시스템으로 하여금, 시스템과 통신하는 물리적 키보드로부터, 물리적 키보드에 관한 사용자의 손들 또는 손가락들 중 하나 이상의 위치를 나타내는 정보를 수신하는 동작; 수신된 정보에 기반하여 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 결정하는 동작; 및 디스플레이가, 물리적 키보드의 제1 이미지 표현 및 사용자의 손들 또는 손가락들 중 하나 이상의 배치의 제2 이미지 표현을 제공하게 하는 동작을 포함하는 동작들을 수행하게 하며; 제1 이미지 표현에 관한 제2 이미지 표현의 위치는 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 나타낸다.
[0299] 일부 예들에서, 방법은, 하나 이상의 센서들로부터, 물리적 키보드에 관한 사용자의 손들 또는 손가락들 중 하나 이상의 위치를 나타내는 입력을 수신하는 단계; 하나 이상의 센서들의 입력에 기반하여 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 결정하는 단계; 및 디스플레이로 하여금, 물리적 키보드의 제1 이미지 표현 및 사용자의 손들 또는 손가락들 중 하나 이상의 배치의 제2 이미지 표현을 제공하게 하는 단계를 포함하며, 제1 이미지 표현에 관한 제2 이미지 표현의 위치는 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 나타낸다.
[0300] 이전 예들 중 임의의 예에서, 하나 이상의 센서들은 물리적 키보드의 키들 상에 배치된 터치 센서들을 포함할 수 있다.
[0301] 이전 예들 중 임의의 예에서, 터치 센서들은 용량성 터치 센서들을 포함할 수 있다.
[0302] 이전 예들 중 임의의 예에서, 방법은, 카메라로부터의 이미지 데이터에 기반하여 물리적 키보드 인근의 오브젝트의 위치를 검출하는 단계를 더 포함할 수 있다.
[0303] 이전 예들 중 임의의 예에서, 제1 이미지 표현은 하나 이상의 가상 키들을 갖는 가상 키보드를 포함할 수 있으며, 각각의 가상 키는 물리적 키보드의 키에 대응한다.
[0304] 이전 예들 중 임의의 예에서, 가상 키들 중 복수의 가상 키들 각각은 물리적 키보드의 대응하는 키의 기능을 나타내는 심볼을 포함할 수 있다.
[0305] 이전 예들 중 임의의 예에서, 복수의 가상 키들 중 적어도 하나의 심볼은 물리적 키보드의 대응하는 키 상에 디스플레이된 심볼과는 상이할 수 있다.
[0306] 이전 예들 중 임의의 예에서, 물리적 키보드의 키들은 심볼들을 포함할 수 없다.
[0307] 이전 예들 중 임의의 예에서, 제2 이미지 표현은 하나 이상의 손가락들의 시각 표현을 포함할 수 있다.
[0308] 이전 예들 중 임의의 예에서, 방법은, 물리적 키보드에 관한 사용자의 적어도 하나의 손의 위치를 결정하는 단계를 더 포함할 수 있고, 제2 이미지 표현은 적어도 하나의 손의 시각 표현을 포함할 수 있다.
[0309] 이전 예들 중 임의의 예에서, 제2 이미지 표현은 하나 이상의 센서들의 출력에 적어도 부분적으로 기반하여 실시간 또는 거의 실시간으로 업데이트될 수 있다.
[0310] 일부 예들에서, 비-일시적 컴퓨터-판독가능한 매체는, 하드웨어 프로세서에 의해 판독될 때, 하드웨어 프로세서로 하여금 방법을 수행하게 하는 명령들을 포함하고, 방법은, 하나 이상의 센서들로부터, 물리적 키보드에 관한 사용자의 손들 또는 손가락들 중 하나 이상의 위치를 나타내는 입력을 수신하는 단계; 하나 이상의 센서들의 입력에 기반하여 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 결정하는 단계; 및 디스플레이로 하여금, 물리적 키보드의 제1 이미지 표현 및 사용자의 손들 또는 손가락들 중 하나 이상의 배치의 제2 이미지 표현을 제공하게 하는 단계를 포함하며, 제1 이미지 표현에 관한 제2 이미지 표현의 위치는 물리적 키보드에 관한 하나 이상의 손들 또는 손가락들의 위치를 나타낸다.
[0311] 이전 예들 중 임의의 예에서, 하나 이상의 센서들은 물리적 키보드의 키들 상에 배치된 터치 센서들을 포함할 수 있다.
[0312] 이전 예들 중 임의의 예에서, 터치 센서들은 용량성 터치 센서들을 포함할 수 있다.
[0313] 이전 예들 중 임의의 예에서, 컴퓨터-판독가능한 매체에 의해 유발된 방법은, 카메라로부터의 이미지 데이터에 기반하여 물리적 키보드 인근의 오브젝트의 위치를 검출하는 단계를 더 포함할 수 있다.
[0314] 이전 예들 중 임의의 예에서, 제1 이미지 표현은 하나 이상의 가상 키들을 갖는 가상 키보드를 포함할 수 있으며, 각각의 가상 키는 물리적 키보드의 키에 대응한다.
[0315] 이전 예들 중 임의의 예에서, 가상 키들 중 복수의 가상 키들 각각은 물리적 키보드의 대응하는 키의 기능을 나타내는 심볼을 포함할 수 있다.
[0316] 이전 예들 중 임의의 예에서, 복수의 가상 키들 중 적어도 하나의 심볼은 물리적 키보드의 대응하는 키 상에 디스플레이된 심볼과는 상이할 수 있다.
[0317] 이전 예들 중 임의의 예에서, 물리적 키보드의 키들은 심볼들을 포함할 수 없다.
[0318] 이전 예들 중 임의의 예에서, 제2 이미지 표현은 하나 이상의 손가락들의 시각 표현을 포함할 수 있다.
[0319] 이전 예들 중 임의의 예에서, 컴퓨터-판독가능한 매체에 의해 유발된 방법은, 물리적 키보드에 관한 사용자의 적어도 하나의 손의 위치를 결정하는 단계를 더 포함할 수 있고, 제2 이미지 표현은 적어도 하나의 손의 시각 표현을 포함한다.
[0320] 이전 예들 중 임의의 예에서, 제2 이미지 표현은 하나 이상의 센서들의 출력에 적어도 부분적으로 기반하여 실시간 또는 거의 실시간으로 업데이트될 수 있다.
햅틱 피드백을 갖는 VR/AR/MR 시스템의 예들
[0321] 도 21은 웨어러블 디스플레이 시스템(60)의 예시적인 실시예를 예시한다. 웨어러블 디스플레이 시스템(60)은 디스플레이(70), 및 그 디스플레이(70)의 기능성을 지원하기 위한 다양한 기계적 및 전자 모듈들 및 시스템들을 포함한다. 웨어러블 디스플레이 시스템(60)은 (예컨대, 도 2에 도시된 바와 같이) 본원에서 다른 곳에 설명되는 것들과 유사한 VR/AR/MR 시스템일 수 있다.
[0322] 일부 실시예들에서, 입력 디바이스(10)는 웨어러블 디스플레이 시스템(60)과 상호작용하고 그리고/또는 이를 제어하기 위해 사용될 수 있다. 예컨대, 입력 디바이스(10)는, 디스플레이(70)에 의해 투사된 이미지들과 상호작용할 뿐만 아니라 다른 동작들을 수행하기 위한 캐릭터들 및 커맨드들을 입력하기 위해 사용자가 동작시키는 키보드일 수 있다. 입력 디바이스(10)는 통신 링크(16)에 의해, 이를테면 유선 리드 또는 무선 연결성에 의해 로컬 데이터 프로세싱 모듈(140)에 동작가능하게 커플링될 수 있다. 로컬 프로세싱 및 데이터 모듈(140)에 의해 프로세싱, 캐싱 및 저장된 데이터는 입력 디바이스로부터 수신된 데이터, 이를테면, 디스플레이(70) 상에 투사된 이미지들을 이동시키고 그렇지 않으면 상호작용하기 위한 키 스트로크들, 제어 입력들 등을 포함할 수 있다.
[0323] 일부 실시예들에서, 입력 디바이스(10)는 하나 이상의 햅틱 피드백 컴포넌트들(15)을 포함할 수 있다. 햅틱 피드백 컴포넌트(15)는 웨어러블 디스플레이 시스템(60)과 상호작용할 때 사용자에게 촉각 피드백을 제공하기 위해 입력 디바이스(10)에서 사용될 수 있다. 햅틱 피드백 컴포넌트(15)는 예컨대, 입력이 웨어러블 디스플레이 시스템(60)에 의해 수신된 것을 표시하는 촉각 피드백을 사용자에게 제공할 수 있다. 일부 실시예들에서, 햅틱 피드백 컴포넌트(15)는, 입력 디바이스(10)에 전달되고 사용자에 의해 인지가능한 힘, 진동 또는 모션을 생성할 수 있다. 예컨대, 입력 디바이스(10)는 키보드일 수 있고, 햅틱 피드백 컴포넌트(15)는 키보드 또는 그 로컬화된 구역으로 하여금, 키보드의 키 또는 로컬화된 구역과 사용자의 상호작용에 대한 응답으로 진동하게 할 수 있다.
[0324] 일부 실시예들에서, 복수의 햅틱 피드백 컴포넌트들(15)은 입력 디바이스(10)에서 제공될 수 있다. 이러한 실시예들에서, 햅틱 피드백 컴포넌트들(15) 각각은 정해진 햅틱 피드백 컴포넌트(15)와 각각 연관된 또는 커플링된 입력 디바이스(10)의 별개의 구역 또는 영역 내에서 로컬화된 진동 또는 움직임을 유발할 수 있다. 예컨대, 키보드 입력 디바이스(10)의 상이한 키 또는 키들의 그룹과 각각 연관되는 복수의 햅틱 피드백 컴포넌트들(15)이 제공될 수 있다. 따라서, 각각의 햅틱 피드백 컴포넌트(15)는 연관된 키 또는 키들의 그룹에 햅틱 응답(예컨대, 진동 또는 움직임)을 전달할 수 있다.
[0325] 햅틱 피드백 컴포넌트들(15)은 상이한 타입들의 사용자 상호작용들에 대한 응답으로 반응하도록 구성가능할 수 있다. 예컨대, 앞서 설명된 바와 같이, 햅틱 피드백 컴포넌트(들)(15)는 사용자 입력 사용자 상호작용(예컨대, 키스트로크)에 대한 응답으로 전체 사용자 입력 디바이스(10)를 통한 진동 또는 로컬화된 그 일부를 생성할 수 있다. 다른 예에서, 햅틱 피드백 컴포넌트(들)(15)는, 정해진 키 또는 가상 입력 엘리먼트에 대한 정해진 근접도 내에서 사용자의 손이 검출될 때 로컬화된 피드백 응답을 생성할 수 있다. 따라서, 키에 대한 근접도 내에서 (예컨대, 적절한 배향 또는 키에 대해 서치하는) 사용자의 손이 검출되는 경우 정해진 키와 연관된 표면의 영역은 사용자가 키를 식별하는 것을 보조하기 위해 피드백 응답을 경험할 수 있다. 일부 실시예들에서, 근접도 사용자 상호작용과 연관된 피드백 응답은, 덜 현저하도록, 입력 사용자 상호작용보다 낮은 크기 및/또는 빈도를 가질 수 있다. 일부 실시예들에서, 피드백 응답은 사용자가 원하는 입력 엘리먼트에 더 근접하게 이동할 때 증가될 수 있다(예컨대, 피드백 응답을 더 현저하게 하기 위해 크기가 증가되거나 빈도가 증가된다). 다른 구성들이 가능하다.
[0326] 햅틱 피드백 컴포넌트(들)(15)는 입력 디바이스(10) 상에 장착되거나 그 내부에 인클로징될 수 있고 입력 디바이스(10)에 전달되는 진동을 생성하도록 구성될 수 있다. 햅틱 피드백 컴포넌트(15)는 링크(12a)에 의해 입력 디바이스(10)에 동작가능하게 커플링될 수 있다. 일부 구현들에서, 피드백 응답을 생성하기 위해, 전기 회로 링크(12a)는 햅틱 피드백 컴포넌트(15)에서 전기 신호를 생성하기 위한 전기 전압 소스를 포함하거나 그에 연결된다. 대안적으로 또는 조합하여, 햅틱 피드백 컴포넌트(들)(15)는 통신 링크(12b)에 의해, 이를테면 유선 리드 또는 무선 연결성에 의해 로컬 프로세싱 및 데이터 모듈(140)에 동작가능하게 커플링될 수 있다. 햅틱 피드백 디바이스(들)는 각각 통신 링크들(12a 및 12b)을 통해 입력 디바이스(10) 및/또는 로컬 데이터 및 프로세싱 모듈(140) 중 하나 또는 둘 모두로부터 제어 신호들(또한 본원에서 "피드백 신호들"로 지칭됨)을 수신할 수 있다. 제어 신호들은 본원에서 때때로 햅틱 피드백 파라미터들로 지칭되는 햅틱 피드백의 양(예컨대, 크기, 진폭 및/또는 빈도)을 나타내는 데이터를 포함할 수 있다.
[0327] 일부 실시예들에서, 햅틱 피드백 컴포넌트(15)는 원하는 피드백 응답을 나타내는 피드백 파라미터들(예컨대, 힘 또는 진동의 세기 및 방향)을 포함하여, 아래에서 설명되는 바와 같은 제어 또는 피드백 신호를 수신할 수 있다. 일부 실시예들에서, 응답은 진동의 크기 및/또는 빈도에 기반할 수 있다. 상이한 타입들의 사용자 상호작용들이 상이한 햅틱 피드백 응답들과 연관될 수 있다. 예컨대, 키보드 상의 키스트로크는 성공적인 키스트로크로서 사용자에 의해 지각될 수 있는 정해진 크기 및 주파수의 로컬화된 진동에 대응할 수 있다. 다른 예로서, 사용자 상호작용은 키를 누르는 것을 포함할 수 있고, 이는 전체 입력 디바이스(10)에 대한 햅틱 응답을 유발할 수 있다. 일부 실시예들에서, 원하는 햅틱 피드백 응답 및 사용자 상호작용의 연관은 비-일시적 데이터 스토리지(예컨대, 로컬 프로세싱 및 데이터 모듈(140) 또는 원격 데이터 저장소(160))에 저장될 수 있다. 예컨대, 연관은 검출된 사용자 상호작용에 대한 응답으로 로컬 데이터 프로세싱 모듈(140)에 의해 액세스가능한 LUT(look-up-table)로서 저장될 수 있다.
[0328] 일부 구현들에서, 햅틱 피드백 디바이스(15)는 디스플레이 상의 이벤트에 대한 응답으로 진동할 수 있다. 예컨대, 디스플레이된 오브젝트는 다른 디스플레이된 오브젝트 또는 실세계 오브젝트와 상호작용할 수 있고, 이러한 상호작용은 입력 디바이스(10)에 전달되는 햅틱 피드백에 대응할 수 있다. 예컨대, 웨어러블 디스플레이 시스템(60)은 비디오 게임의 일부로서 가상 오브젝트를 투사하기 위해 사용될 수 있고, 게임 내의 액션들은 입력 디바이스에서 햅틱 피드백을 생성하기 위한 제어 신호로 변환될 수 있다.
[0329] 햅틱 피드백 컴포넌트(들)(15)은 예컨대, 편심 회전 질량 모터들, 선형 공진 작동기들, 피에조 전자장치 또는 다른 트랜스듀서들일 수 있다. 햅틱 피드백 컴포넌트(들)(15)는 동작가능하게 전기 회로에 커플링되고 전력 소스에 연결될 수 있다. 제어기는 소스로 하여금 제어 신호에 기반하여, 진동을 생성하기 위해 햅틱 피드백 컴포넌트(15)에 전류 또는 전압을 인가하게 할 수 있다. 예컨대, 편심 회전 질량 모터가 사용되는 경우, 오프-축 질량으로 하여금 회전하게 하여 진동을 유발하기 위해 모터에 전류가 인가될 수 있다. 전류의 양 및 듀티 사이클은 진동의 크기 및 빈도를 제어할 수 있다. 따라서, 제어 신호는 원하는 피드백 응답에 대한 햅틱 피드백 디바이스에 인가될 전류 또는 전압을 나타낼 수 있다. 특정한 예시적인 햅틱 피드백 컴포넌트(15)가 설명되었지만, 다른 구성들이 가능하다. 예컨대, 선형 공진 작동기의 음성 코일이 그에 제공되는 전기 신호에 기반하여 유사하게 제어될 수 있다. 따라서, 비-일시적 데이터 스토리지에 저장된 햅틱 피드백 응답은 햅틱 피드백 컴포넌트에 인가될 전기 신호를 나타낼 수 있다.
[0330] 도 22는 웨어러블 디스플레이 시스템(예를 들어, 도 21의 웨어러블 디스플레이 시스템(60))의 사용자에게 햅틱 통신을 제공하기 위한 예시적인 프로세스 흐름(2200)이다. 프로세스 흐름(2200)은 앞서 설명된 바와 같이, 입력 디바이스와 사용자의 상호작용들에 대한 응답으로 사용자에게 햅틱 통신을 제공하는 예와 관련된다. 프로세스 흐름(2200)은 하드웨어(예컨대, 도 21의 웨어러블 디스플레이 시스템)에 의해 수행될 수 있다. 프로세스 흐름(2200)은 로컬 데이터 및 프로세싱 모듈(140)의 로직 디바이스들에 동작가능하게 커플링된 비-일시적 데이터 스토리지에 저장된 명령들에 의해 프로그래밍된 로컬 데이터 및 프로세싱 모듈(140)에 의해 구현될 수 있다. 다른 실시예에서, 로컬 데이터 및 프로세싱 모듈(140)은 원격 데이터 저장소(160)에 동작가능하게 연결된 로컬 프로세싱 모듈(140)의 로직 디바이스들에 의해 실행되는 원격 프로세싱 모듈(150)을 통한 프로세스 흐름(2200)을 구현할 수 있다.
[0331] 블록(2210)에서, 프로세스 흐름(2200)은 햅틱 피드백 시스템이 활성화된다고 결정할 수 있다. 하나 이상의 실시예들에서, 사용자는 단순히 햅틱 피드백 시스템을 턴 온할 수 있다. 또는, 다른 실시예들에서, 햅틱 피드백 시스템은 디폴트로 활성일 수 있고, 사용자는 햅틱 피드백 시스템을 턴 오프하는 것으로 판단할 수 있다. 로컬 데이터 및 프로세싱 모듈(140)은 햅틱 피드백 시스템이 활성인 것을 표시하는 신호를 수신할 수 있다.
[0332] 블록(2220)에서, 프로세스 흐름(2200)은 입력 디바이스를 검출할 수 있다. 앞서 설명된 바와 같이, 입력 디바이스는 입력 디바이스(10), 이를테면 키보드일 수 있다. 하나 이상의 실시예들에서, 입력 디바이스를 검출하는 것은 입력 디바이스에 대한 웨어러블 디스플레이 시스템의 동작 구성 또는 환경을 모니터하는 것을 포함할 수 있다. 이는 예컨대, 사용자의 앞의 환경의 이미지들을 캡처하고 그 안의 입력 디바이스를 식별하기 위해 외향 카메라를 사용하여 수행될 수 있다. 또는, 다른 예에서, 웨어러블 디스플레이 시스템은, 예컨대, 유선 또는 무선 통신 링크들(16)을 통해 입력 디바이스와 연결이 확립되었음을 인식할 수 있다. 다른 실시예에서, 사용자는 입력 디바이스의 존재를 표시하는 웨어러블 디스플레이 시스템의 기능(예컨대, 키보드가 연결된 것을 진술하는 입력을 선택함)을 실행할 수 있다.
[0333] 블록(2230)에서, 프로세스 흐름(2200)은 입력 디바이스 타입 또는 구성(예컨대, 실제 또는 가상 키보드, 비디오 게임 제어기 등)을 결정할 수 있다. 입력 디바이스 타입은 블록(2220)에서 디바이스를 검출하기 위해 사용되는 것과 유사한 수단(예컨대, 외향 카메라, 통신 링크들 및 사용자 식별)을 통해 식별될 수 있다. 입력 디바이스는 예컨대, 무선 통신 프로토콜(예컨대, 블루투스, ZigBee 등)을 통해 웨어러블 디스플레이 시스템과 페어링될 수 있고, 여기서 키보드는 웨어러블 디스플레이 시스템과 연결을 확립하고 식별 데이터를 교환하기 위해 핸드셰이크 프로토콜을 실행한다. 결정된 입력 디바이스 타입에 기반하여, 웨어러블 디스플레이 시스템은 어느 타입들의 사용자 상호작용들이 예상되는지 및 입력 디바이스 내의 햅틱 피드백 컴포넌트들의 구성을 결정할 수 있다. 입력 디바이스 타입은 또한 입력 디바이스 내의 특정 타입(들)의 햅틱 피드백 컴포넌트들을 식별할 수 있고, 이는 상이한 동작 파라미터들 및 구성들을 요구할 수 있다.
[0334] 일부 실시예들에서, 입력 디바이스 타입은 사용자 상호작용들 및 피드백 신호들의 데이터 구조와 연관될 수 있다. 예컨대, 제1 입력 디바이스(예컨대, 키보드)는 사용자 상호작용들 및 피드백 신호들의 제1 리스트와 연관될 수 있는 반면, 제2 입력 디바이스(예컨대, 게임 제어기)는 제2 리스트와 연관될 수 있다. 데이터 구조는 웨어러블 디스플레이 디바이스에 또는 입력 디바이스에 저장될 수 있다. 또한, 유사한 타입들의 상이한 입력 디바이스들, 이를테면 다양한 타입들의 키 보드들(예컨대, 글자 키보드들, 이모지 키보드들, 숫자 키보드 등)이 상이한 사용자 상호작용들 및 피드백 신호들과 연관될 수 있다. 따라서, 웨어러블 디스플레이 시스템은 입력 디바이스가 실행할 수 있는 원하는 햅틱 피드백 신호를 송신하기 위해 사용자 상호작용 및 피드백 신호 페어링들의 정확한 데이터 구조를 리트리브할 수 있다. 이는, 예컨대, 입력 디바이스의 어느 로컬화된 구역들이 햅틱 피드백 컴포넌트들을 포함하는지 및 이러한 컴포넌트들이 어떤 전압들 및 전류들을 실행할 수 있는지를 웨어러블 디스플레이 시스템이 알도록 허가할 수 있다.
[0335] 프로세스 흐름(2200)의 블록(2240)에서, 웨어러블 디스플레이 시스템은 선택적으로 입력 디바이스에 대한 근접도 내에서 사용자를 검출할 수 있다. 예컨대, 웨어러블 디스플레이 시스템은, 입력 디바이스의 센서들(예컨대, 근접도 또는 관성 센서들) 또는 외향 카메라를 통해, 사용자가 근접도 내에 있고 따라서 입력 디바이스를 사용하려고 의도하는 것을 검출할 수 있다. 이는 원하는 사용자 상호작용의 결과가 아닌 입력 디바이스와의 상호작용을 검출하는 결과들을 제한할 수 있다.
[0336] 프로세스 흐름(2200)의 블록(2250)에서, 웨어러블 디스플레이 시스템 또는 입력 디바이스는 예컨대, 상호작용을 나타내는 신호를 수신함으로써 상호작용이 발생했는지 여부를 결정할 수 있다. 예컨대, 상호작용들은 근접도 사용자 상호작용들, 입력 사용자 상호작용들, 또는 다른 가상 또는 실제 오브젝트들과 상호작용하는 하나 이상의 디스플레이된 가상 오브젝트들의 상호작용들을 포함할 수 있다. 만약 어떠한 상호작용도 발생하지 않았다면, 프로세스 흐름은 블록(2240)으로 리턴하고, 검출가능한 상호작용들에 대해 모니터를 계속한다. 그러나, 만약 상호작용이 검출되면, 입력 디바이스 또는 웨어러블 디스플레이 시스템은 상호작용을 특성화하는 상호작용 신호를 송신할 수 있다. 예컨대, 상호작용이 사용자 상호작용인 경우, 신호 내의 데이터는 어디서 터치가 발생했는지(예컨대, 어느 키인지) 및 웨어러블 디스플레이 시스템이 터치에 대한 응답으로 어떻게 반응할지(예컨대, 디스플레이된 가상 오브젝트들이 어떻게 수정되는지)를 포함할 수 있다. 가상 상호작용(예컨대, 디스플레이 내의 다른 오브젝트들(실제 또는 가상)과 상호작용하는 가상 오브젝트)의 경우, 웨어러블 디스플레이 시스템은, 이것이 몰입적인 엔터테인먼트 경험을 향상시키기 위해 입력 디바이스를 통해 사용자에게 햅틱 방식으로 통신될 상호작용이라고 결정할 수 있다.
[0337] 블록(2260)에서, 프로세스 흐름(2200)은 블록(2250)에서 수신된 신호에 기반하여 상호작용 타입을 결정한다. 예컨대, 데이터 스토리지는 입력 디바이스 및/또는 웨어러블 디스플레이 시스템으로부터 수신된 데이터에 기반하여 식별가능한 사용자 상호작용 타입들의 분류를 포함할 수 있다. 또는 수신된 데이터는 그 자체로 사용자 상호작용을 식별할 수 있다. 사용자 상호작용은 앞서 설명된 바와 같이, 키스트로크, 선택된 숫자, 글자, 기능, 이미지, 디스플레이 디바이스에 의해 디스플레이된 이미지들의 의도된 효과 등을 식별할 수 있다. 사용자 상호작용은 입력 디바이스의 타입(예컨대, 블록(2230)) 및 사용자가 입력 디바이스 상에서 어디에서 또는 어떤 엘리먼트를 선택했는지에 기반할 수 있다.
[0338] 블록(2270)에서, 프로세스 흐름(2200)은 블록(2260)의 결정된 상호작용 타입에 기반하여 햅틱 피드백 파라미터들을 리트리브한다. 로컬 데이터 및 프로세싱 모듈(140)은 원하는 피드백 응답을 나타내는 복수의 피드백 파라미터들을 저장하는 데이터베이스에 액세스하도록 프로그래밍될 수 있다. 피드백 파라미터들은, 앞서 설명된 바와 같이, 정해진 사용자 상호작용에 대해 원하는 햅틱 피드백 응답의 크기 및 빈도를 정의할 수 있다. 따라서, 근접도 사용자 상호작용은 원하는 크기 및 빈도에 대응할 수 있는 한편, 입력 사용자 상호작용은 상이한 크기 및/또는 빈도와 연관된다. 유사하게, 상이한 입력 사용자 상호작용들은 상이한 크기들 및 빈도들과 연관될 수 있다. 다른 실시예에서, 피드백 파라미터는 또한 입력 디바이스 타입 및/또는 햅틱 피드백 컴포넌트들의 타입들에 기반할 수 있다.
[0339] 블록(2280)에서, 프로세스 흐름(2200)은 햅틱 피드백 신호를 입력 디바이스에 송신한다. 햅틱 피드백 신호는 햅틱 피드백 파라미터들을 포함할 수 있다. 입력 디바이스는 프로세스 흐름(2300)과 관련하여 아래에서 설명되는 바와 같이, 원하는 햅틱 피드백 응답을 생성하기 위해 햅틱 피드백 신호를 활용할 수 있다. 피드백 신호를 송신한 후, 프로세스 흐름은 미래 상호작용들에 대해 모니터하기 위해 블록(2250)으로 리턴한다.
[0340] 도 23은 웨어러블 디스플레이 시스템(예를 들어, 도 21의 웨어러블 디스플레이 시스템(60))의 사용자에게 햅틱 통신을 제공하기 위한 예시적인 흐름도의 프로세스 흐름(2300)이다. 프로세스 흐름(2300)은 앞서 설명된 바와 같이, 사용자의 상호작용들에 대한 응답으로 사용자에게 햅틱 통신을 제공하는 입력 디바이스의 예와 관련된다. 프로세스 흐름(2300)은 하드웨어(예컨대, 도 21의 입력 디바이스(10) 및/또는 햅틱 피드백 디바이스(15)에 의해 수행될 수 있다. 프로세스 흐름은 하나 이상의 프로세서들의 로직 디바이스들에 동작가능하게 커플링된 비-일시적 데이터 스토리지에 저장된 명령들에 의해 프로그래밍된 입력 디바이스(10)의 하나 이상의 하드웨어 프로세서들에 의해 구현될 수 있다. 다른 실시예에서, 입력 디바이스는 데이터 스토리지에 동작가능하게 연결된 로컬 프로세싱 모듈(140)의 로직 디바이스들에 의해 실행되는 로컬 데이터 및 프로세싱 모듈(140)을 통한 프로세스 흐름(2300)을 구현할 수 있다.
[0341] 블록(2310)에서, 프로세스 흐름(2300)은 햅틱 피드백 시스템이 활성화된다고 결정할 수 있다. 예컨대, 입력 디바이스는 시작할 시에 디폴트로 활성화될 수 있다. 다른 예에서, 햅틱 피드백 시스템은, 예컨대, 유선 또는 무선 통신 링크(16)를 통해 입력 디바이스와 연결이 확립되었을 때 활성화될 수 있다. 연결은, 도 22의 2230과 관련하여 앞서 설명된 바와 같이, 입력 디바이스가 식별 정보를 송신할 수 있는 경우, 예컨대, 핸드셰이크 프로토콜을 통한 데이터의 교환을 포함할 수 있다. 식별 정보는 또한 내부의 햅틱 피드백 컴포넌트들의 식별 및 컴포넌트들에 대한 동작 파라미터들을 포함할 수 있다. 일부 실시예들에서, 식별 정보는 예상되는 사용자 상호작용들 및 햅틱 피드백 컴포넌트들의 피드백 응답 능력들의 연관을 포함할 수 있다.
[0342] 블록(2320)에서, 프로세스 흐름(2300)은 터치 또는 사용자 상호작용을 검출한다. 예컨대, 입력 디바이스는 디바이스의 입력 엘리먼트에 적용된 누름 또는 힘을 통해 입력 사용자 상호작용을 검출할 수 있다. 다른 예에서, 입력 디바이스는 또한 앞서 설명된 바와 같이 근접도 사용자 상호작용을 검출할 수 있다.
[0343] 블록(2330)에서, 프로세스 흐름(2300)은 사용자 상호작용을 나타내는 사용자 상호작용 신호를 송신한다. 사용자 상호작용 신호는 도 22와 관련하여 설명된 바와 같은 사용을 위해 통신 링크(16)를 통해 웨어러블 디스플레이 시스템에 송신될 수 있다.
[0344] 앞서 설명된 바와 같이, 블록(2280)과 관련하여, 피드백 신호는 입력 디바이스에 송신되고, 블록(2340)에서 피드백 신호는 입력 디바이스에 의해 수신된다. 신호는 통신 링크(16)를 통해 송신될 수 있다. 앞서 설명된 바와 같이, 피드백 신호는 블록(2320)에서 검출된 사용자 상호작용과 연관된 원하는 피드백 응답의 크기 및/또는 빈도를 나타내는 데이터를 포함할 수 있다. 일부 실시예들에서, 피드백 신호는, 예컨대, 앞서 설명된 바와 같이, 웨어러블 디스플레이 디바이스에서 가상 상호작용이 검출될 때, 블록(2320)에서 사용자 상호작용을 검출하는 것과 관계없이 수신될 수 있다.
[0345] 블록(2350)에서, 프로세스 흐름(2300)은 블록(2340)에서 수신된 햅틱 피드백 신호에 기반하여 햅틱 피드백 응답을 생성한다. 다양한 실시예들에서, 입력 디바이스의 제어기는 피드백 신호를 수신하고 그 안에 포함된 피드백 파라미터들을 리트리브하기 위해 피드백 신호를 프로세싱할 수 있다. 피드백 파라미터들은 햅틱 피드백 컴포넌트들에 적용될 수 있다. 예컨대, 피드백 파라미터들은 원하는 피드백 응답을 생성하기 위해 하나 이상의 햅틱 피드백 컴포넌트들에 인가할 전류 및/또는 전압을 정의할 수 있다. 입력 디바이스는 그에 부착된 햅틱 피드백 컴포넌트들에 전류를 인가하도록 구성된 전압 소스를 갖는 전기 회로를 포함할 수 있다. 햅틱 피드백 파라미터들에 기반하여, 소스는 입력 디바이스를 통해 원하는 진동을 생성하기 위해 원하는 듀티 사이클로 정해진 크기의 전류를 인가하도록 구성될 수 있다. 프로세서는 또한 로컬화된 피드백 응답을 생성하기 위해 전류를 인가할 로컬화된 구역(예컨대, 햅틱 피드백 컴포넌트들의 식별된 그룹)을 식별하도록 구성될 수 있다. 사용자 상호작용 위치 및 연관된 햅틱 피드백 컴포넌트들의 맵핑은 프로세서가 액세스할 수 있는 데이터 스토리지에 저장될 수 있다. 햅틱 피드백 응답을 생성한 후, 프로세스 흐름은 미래 사용자 상호작용들에 대해 모니터하기 위해 블록(2320)으로 리턴한다.
예들
[0346] 일부 예들에서, HMD는 프레임; 프레임에 의해 지지되고 사용자의 눈에 이미지를 투사하도록 구성된 투사 광학기; 및 HMD와 작동 가능하게 연결된 입력 디바이스와의 상호작용을 검출하기 위한 센서; 명령들을 저장하도록 구성된 비-일시적 데이터 스토리지; 비-일시적 데이터 스토리지에 동작 가능하게 커플링되고, 사용자 상호작용을 나타내는 신호를 센서로부터 수신하고; 신호에 기반하여 사용자 상호작용의 타입을 결정하고; 그리고 입력 디바이스에 햅틱 피드백 신호를 송신하기 위한 명령들에 의해 구성되는 적어도 하나의 하드웨어 프로세서를 포함하며, 햅틱 피드백 신호는 입력 디바이스를 통해 사용자에게 통신가능한 햅틱 응답을 생성하기 위한 하나 이상의 파라미터들을 포함한다.
[0347] 이전 예들 중 임의의 예에서, 입력 디바이스는 햅틱 피드백 컴포넌트를 포함할 수 있다.
[0348] 이전 예들 중 임의의 예에서, 파라미터들은 햅틱 응답의 크기 및 주파수를 나타내는 데이터를 포함할 수 있다.
[0349] 이전 예들 중 임의의 예에서, 파라미터들은 햅틱 피드백 컴포넌트에 공급될 전류 및 전압 중 적어도 하나를 나타낼 수 있다.
[0350] 이전 예들 중 임의의 예에서, 햅틱 피드백 컴포넌트는 편심 회전 질량 모터, 선형 공진 작동기 및 압전 작동기 중 적어도 하나를 포함할 수 있다.
[0351] 이전 예들 중 임의의 예에서, 입력 디바이스는 키보드일 수 있다.
[0352] 이전 예들 중 임의의 예에서, 센서는 프레임 상에 배치된 외향 카메라를 포함할 수 있고 디스플레이 디바이스와의 사용자 상호작용을 검출하도록 구성될 수 있다.
[0353] 이전 예들 중 임의의 예에서, 외향 카메라는 HMD 앞에서 복수의 이미지들을 캡처하도록 구성될 수 있고, 적어도 하나의 하드웨어 프로세서는 복수의 이미지들에 기반하여 사용자 상호작용을 결정하도록 추가로 구성될 수 있다.
[0354] 이전 예들 중 임의의 예에서, 사용자 상호작용의 타입은 입력 디바이스의 키를 누르고, 입력 디바이스의 컴포넌트를 움직이고, 입력 디바이스와 상호작용하는 것 중 적어도 하나를 포함할 수 있다.
[0355] 이전 예들 중 임의의 예에서, 비-일시적 데이터 스토리지는 복수의 타입들의 사용자 상호작용들 및 햅틱 피드백 신호들을 저장하도록 구성될 수 있으며, 사용자 상호작용의 각 타입은 하나 이상의 파라미터들 중 하나와 연관된다.
[0356] 이전 예들 중 임의의 예에서, 적어도 하나의 하드웨어 프로세서는 사용자 상호작용의 타입에 기반하여 하나 이상의 파라미터들을 리트리브하도록 추가로 구성될 수 있으며, 피드백 응답은 사용자 상호작용의 타입에 대응한다.
[0357] 일부 예들에서, 방법은 센서로부터 입력 디바이스를 통해 웨어러블 디스플레이 시스템과의 사용자 상호작용을 나타내는 신호를 수신하는 단계; 신호에 기반하여 사용자 상호작용의 타입을 결정하는 단계; 및 입력 디바이스에 햅틱 피드백 신호를 송신하는 단계를 포함하고, 햅틱 피드백 신호는 입력 디바이스를 통해 사용자에게 통신가능한 햅틱 응답을 생성하기 위한 하나 이상의 파라미터를 포함한다.
[0358] 이전 예들 중 임의의 예에서, 입력 디바이스는 햅틱 피드백 컴포넌트를 포함할 수 있다.
[0359] 이전 예들 중 임의의 예에서, 파라미터들은 햅틱 응답의 크기 및 주파수를 나타내는 데이터를 포함할 수 있다.
[0360] 이전 예들 중 임의의 예에서, 파라미터들은 햅틱 피드백 컴포넌트에 공급될 전류 및 전압 중 적어도 하나를 나타낼 수 있다.
[0361] 이전 예들 중 임의의 예에서, 햅틱 피드백 컴포넌트는 편심 회전 질량 모터, 선형 공진 작동기 및 압전 작동기 중 적어도 하나를 포함할 수 있다.
[0362] 이전 예들 중 임의의 예에서, 입력 디바이스는 키보드일 수 있다.
[0363] 이전 예들 중 임의의 예에서, 센서는 웨어러블 디스플레이 시스템 상에 배치된 외향 카메라를 포함할 수 있고 사용자 상호작용을 검출하도록 구성될 수 있다.
[0364] 이전 예들 중 임의의 예에서, 외향 카메라는 웨어러블 디스플레이 시스템 앞에서 복수의 이미지들을 캡처하도록 구성될 수 있고, 방법은 복수의 이미지들에 기반하여 사용자 상호작용을 결정하는 단계를 더 포함할 수 있다.
[0365] 이전 예들 중 임의의 예에서, 사용자 상호작용의 타입은 입력 디바이스의 키를 누르고, 입력 디바이스의 컴포넌트를 움직이고, 입력 디바이스와 상호작용하는 것 중 적어도 하나를 포함할 수 있다.
[0366] 이전 예들 중 임의의 예에서, 방법은 복수의 타입의 사용자 상호작용들 및 햅틱 피드백 신호들을 저장하는 단계를 더 포함할 수 있으며, 각 타입의 사용자 상호작용은 하나 이상의 파라미터들 중 하나와 연관된다.
[0367] 이전 예들 중 임의의 예에서, 방법은 사용자 상호작용의 타입에 기반하여 하나 이상의 파라미터들을 리트리브하는 단계를 더 포함할 수 있으며, 피드백 응답은 사용자 상호작용의 타입에 대응한다.
[0368] 일부 예들에서, 비-일시적 컴퓨터 판독 가능 매체는, 하드웨어 프로세서에 의해 판독될 때, 하드웨어 프로세서로 하여금, 입력 디바이스를 통해 웨어러블 디스플레이 시스템과의 사용자 상호작용을 나타내는 신호를 센서로부터 수신하는 단계; 신호에 기반하여 사용자 상호작용의 타입을 결정하는 단계; 및 햅틱 피드백 신호를 입력 디바이스에 송신하는 단계를 포함하는 방법을 수행하게 하는 명령들을 포함하며, 햅틱 피드백 신호는 입력 디바이스를 통해 사용자에 통신할 수 있는 햅틱 응답을 생성하기 위한 하나 이상의 파라미터들을 포함한다.
[0369] 이전 예들 중 임의의 예에서, 입력 디바이스는 햅틱 피드백 컴포넌트를 포함할 수 있다.
[0370] 이전 예들 중 임의의 예에서, 파라미터들은 햅틱 응답의 크기 및 주파수를 나타내는 데이터를 포함할 수 있다.
[0371] 이전 예들 중 임의의 예에서, 파라미터들은 햅틱 피드백 컴포넌트에 공급될 전류 및 전압 중 적어도 하나를 나타낼 수 있다.
[0372] 이전 예들 중 임의의 예에서, 햅틱 피드백 컴포넌트는 편심 회전 질량 모터, 선형 공진 작동기 및 압전 작동기 중 적어도 하나를 포함할 수 있다.
[0373] 이전 예들 중 임의의 예에서, 입력 디바이스는 키보드일 수 있다.
[0374] 이전 예들 중 임의의 예에서, 센서는 웨어러블 디스플레이 시스템 상에 배치된 외향 카메라를 포함할 수 있고 사용자 상호작용을 검출하도록 구성될 수 있다.
[0375] 이전 예들 중 임의의 예에서, 외향 카메라는 웨어러블 디스플레이 시스템 앞에서 복수의 이미지들을 캡처하도록 구성될 수 있고, 방법은 복수의 이미지들에 기반하여 사용자 상호작용을 결정하는 단계를 더 포함할 수 있다.
[0376] 이전 예들 중 임의의 예에서, 사용자 상호작용의 타입은 입력 디바이스의 키를 누르고, 입력 디바이스의 컴포넌트를 움직이고, 입력 디바이스와 상호작용하는 것 중 적어도 하나를 포함할 수 있다.
[0377] 이전 예들 중 임의의 예에서, 컴퓨터 판독가능 매체에 의해 유발된 방법은 복수의 타입의 사용자 상호작용들 및 햅틱 피드백 신호들을 저장하는 단계를 더 포함할 수 있으며, 각 타입의 사용자 상호작용은 하나 이상의 파라미터들 중 하나와 연관된다.
[0378] 이전 예들 중 임의의 예에서, 컴퓨터 판독가능 매체에 의해 유발된 방법은 사용자 상호작용의 타입에 기반하여 하나 이상의 파라미터들을 리트리브하는 단계를 더 포함할 수 있으며, 피드백 응답은 사용자 상호작용의 타입에 대응한다.
사용자 입력 디바이스와 가상 모니터 간의 예시적인 조정
[0379] HMD와 같은 웨어러블 디스플레이 시스템은 물리적 사용자 입력 디바이스(예컨대, 키보드)와 같은 컴패니언 디바이스와 함께 작동하도록 구성될 수 있다. HMD와 물리적 사용자 입력 디바이스가 함께 작동(예컨대, 무선으로 정보를 교환)하기 위해서, 컴패니언 디바이스와 HMD는 먼저 서로 페어링하는 것이 필요할 수 있다. 페어링 후, 웨어러블 디스플레이 시스템은 사용자에게 가상 모니터를 도시할 수 있다. 가상 모니터는, 예컨대, 모니터의 외관 및 기능을 시뮬레이션하기 위해 AR 이미지 데이터가 디스플레이되는 HMD의 시야의 일부일 수 있다. 가상 모니터의 위치 및 가상 모니터에 도시된 콘텐츠는 물리적 사용자 입력 디바이스의 위치 및/또는 사용자 입력 디바이스로의 입력에 기반할 수 있다. 예컨대, 가상 모니터는 물리적 키보드 인근에 표시될 수 있다. 가상 모니터의 위치는 물리적 사용자 입력 디바이스의 위치에 기반하여 결정될 수 있다. 가상 모니터의 위치는 물리적 사용자 입력 디바이스의 새로운 위치에 기반하여 사용자 변화들과 관련하여 그 상대적인 물리적 위치로서 업데이트될 수 있다. 다른 예로서, 물리적 사용자-입력 디바이스로의 입력은 가상 모니터에 도시된 콘텐츠의 변화를 산출할 수 있다. 본 개시내용은 이러한 가상 모니터-사용자 입력 디바이스 오케스트레이션을 위한 시스템 및 방법을 제공한다.
[0380] 도 24는 웨어러블 HMD 시스템, 연관된 물리적 키보드 및 HMD 시스템의 디스플레이 상에 도시된 가상 모니터 간의 예시적인 상호작용을 개략적으로 예시한다. HMD 시스템(2404)은 물리적 키보드(2408) 또는 일부 타입의 물리적 사용자 입력 디바이스(예컨대, 터치패드)와 같은 컴패니언 디바이스를 인증할 수 있다. 물리적 키보드(2408)에 대해, 사용자는 물리적 키를 눌러서 눌린 키에 대응하는 신호를 생성할 수 있다. 그런 다음, 눌린 키에 대응하는 신호는 HMD 시스템에 송신될 수 있으며, 이어 HMD 시스템은 신호에 대응하는 액션을 수행할 수 있다. 예컨대, 액션은 가상 모니터 상에 눌린 키에 해당하는 캐릭터, 숫자 또는 심볼을 디스플레이하는 것일 수 있다.
[0381] HMD 시스템(2404) 및 물리적 키보드(2408)는 예컨대, 라디오 주파수(RF) 통신 채널(2412)(예컨대, WiFi, 블루투스 등)을 통해 무선으로 통신할 수 있다.
[0382] HMD 시스템(2404)은 HMD 시스템(2404)의 사용자를 둘러싼 환경의 이미지를 캡처할 수 있는 카메라와 같은 외향 이미지 캡처 디바이스를 포함할 수 있다. 사용자의 FOV(field of view)는 물리적 키보드(2408)를 포함할 수 있다. 사용자의 환경의 이미지는 또한 물리적 키보드(2408)를 포함할 수 있다. HMD 시스템(2404)은 이미지를 분석함으로써 사용자의 FOV에서의 물리적 키보드(2408)의 존재를 결정할 수 있다. HMD 시스템(2404)은 또한 컴퓨터 비전 기법들을 사용하여 물리적 키보드(2408)의 위치를 결정할 수 있다. 물리적 키보드(2408)의 위치에 기반하여, HMD 시스템(2404)은 가상 모니터(2416)의 위치를 결정하고 가상 모니터(2416)를 결정된 위치에 디스플레이할 수 있다.
[0383] 가상 모니터는 HMD 시스템(2404)의 시야의 일부에 대응할 수 있다. 키보드(2408)로부터의 사용자 입력은 시야의 그 일부에 보여질 수 있다. 일부 실시예들에서, 물리적 키보드(2408)의 작동은 사용자 인터페이스 동작이 가상 모니터상에서 수행되게 할 수 있다. 예컨대, 웨어러블 시스템은 시야 내의 물리적 키보드(2408) 인근에 나타나도록 가상 모니터(2416)를 제공할 수 있다. 일부 실시예들에서, 시야 내의 물리적 키보드(2408)의 검출된 위치와 가상 모니터에 대응하는 이미지 데이터가 시야 내에 도시되는 위치 간의 고정된 공간 관계가 존재한다. 예컨대, 만약 시야 내의 물리적 키보드(2408)의 위치가 변경되면, 가상 모니터의 디스플레이된 포지션은 또한 대응하는 방식으로 변경될 수 있다.
[0384] HMD 시스템(2404)은 렌더링 위치를 업데이트하거나 사용자의 FOV에 있는 것에 기반하여 가상 모니터(2416)가 가시적/비가시적이 되게 세팅할 수 있다. 예컨대, 만약 물리적 키보드(2408)가 사용자의 FOV에 있다면, HMD 시스템(2404)은 가상 모니터(2416)를 디스플레이할 수 있다. 만약 사용자의 머리 포즈가 변하고 물리적 키보드(2408)가 더 이상 사용자의 FOV에 있지 않으면, HMD 시스템(2404)은 가상 모니터(2416)를 은닉할 수 있다.
가상 모니터 위치의 예시적인 결정
[0385] 도 25는 물리적 키보드의 위치의 적어도 일부에 기반하여 가상 모니터, 가상 디스플레이 또는 가상 스크린의 위치를 결정하는 예시적인 프로세스(2500)를 예시한다. 블록(2504)에서, 웨어러블 디스플레이는 웨어러블 시스템의 사용자의 물리적 환경의 제1 이미지를 수신할 수 있다. 물리적 환경의 제1 이미지는 세계 카메라의 FOV에 대응한다. 세계 카메라의 시야는 사용자의 시야의 적어도 일부를 포함할 수 있다. 제1 이미지는 사용자의 FOV가 물리적 키보드와 같은 입력 디바이스를 포함하고 있음을 도시할 수 있다.
[0386] 블록(2508)에서, 웨어러블 시스템은 제 1 이미지를 사용하여 사용자의 환경에서 물리적 키보드의 제1 위치/배향을 결정할 수 있다. 웨어러블 시스템은 물리적 키보드의 제1 위치가 사용자의 FOV에 있다고 결정할 수 있다. 웨어러블 시스템은 본원에서 개시된 하나 이상의 컴퓨터 비전 기법들을 활용하는 오브젝트 인식기를 구현하여 사용자의 FOV 내의 물리적 키보드의 존재 및 물리적 키보드의 제1 위치/배향을 결정할 수 있다.
[0387] 일부 실시예들에서, 웨어러블 시스템은 물리적 키보드의 시각 특징(예컨대, 기준들의 위치들)을 사용하여 물리적 키보드의 제1 위치/배향을 결정하기 위해 본원에서 개시된 하나 이상의 컴퓨터 비전 기법들을 활용하는 오브젝트 인식기를 구현할 수 있다. 예컨대, 시각 특징은 물리적 키보드의 표면의 형상 또는 물리적 키보드와 연관된 적어도 하나의 라벨 중 적어도 하나를 포함할 수 있다. 물리적 키보드와 연관된 라벨은 사용자에게 비가시적일 수 있다(예컨대, 사람의 눈에 비가시적인 염료를 사용하여 생성된 기준).
[0388] 일부 실시예들에서, 물리적 키보드의 제1 위치/배향은 물리적 키보드의 위치/배향 센서를 사용하여 결정된 물리적 키보드로부터 수신될 수 있다. 예컨대, 위치/배향 센서는 GPS(global positioning system) 유닛, 가속도계, 관성 측정 유닛, 자이로스코프, 컴퍼스 또는 이들의 조합을 포함할 수 있다. 일부 실시예들에서, 위치/배향 센서는 제1 수의 자유도(예컨대, 3 자유도)를 갖는 위치/배향 정보를 제공하기 위해 사용될 수 있다. 그런 다음, 컴퓨터 비전 기법들이 자유도의 수를 증가시키기 위해(예컨대, 위치/배향 정보를 6 자유도로 증가시키기 위해) 키보드의 센서로부터 위치/배향 정보를 보충하기 위해 사용될 수 있다. 예컨대, 일부 실시예들에서, 키보드의 센서는 키보드의 배향을 제공하는 3-축 가속도계일 수 있다. 그런 다음, 컴퓨터 비전 기법들이 3-차원 공간 내에서 키보드의 포지션을 로케이팅하기 위해 사용될 수 있다. 토템들을 포함한 물리적 오브젝트의 위치/배향을 결정하기 위해 유사한 기법들이 사용될 수 있다.
[0389] 일부 실시예들에서, 키보드의 제1 위치/배향은 이미지에서 물리적 키보드 인근의 사용자의 손에 기반하여 결정될 수 있다. 예컨대, 물리적 키보드에 근접하게 커플링된 타이핑 모션은 사용자가 타이핑하고 있음을 표시할 수 있다. 따라서 물리적 키보드의 위치/배향은 손의 위치에 기반하여 결정될 수 있다.
[0390] 일부 실시예들에서, 물리적 키보드상의 키들은 비-균일할 수 있다. 예컨대, 특정 키들은 (예컨대, 물리적 키보드의 레퍼런스 평면에 비해) 더 대형이거나 클 수 있다. 다른 키들과 관련하여 이 키들의 특성들은 물리적 키보드의 위치/배향을 결정하기 위해 사용될 수 있다. 일부 실시예들에서, 웨어러블 시스템은 사용자의 눈의 이미지를 수신하고 사용자의 눈의 시선 배향을 결정할 수 있다. 시선 배향에 기반하여, 웨어러블 시스템은 눈이 물리적 키보드의 특정 키(예컨대, 더 크거나 더 넓은 키)를 보고 있다고 결정할 수 있다. 특정 키를 보는 것은 웨어러블 시스템에 대한 특정 키와 연관된 커맨드일 수 있다. 커맨드는 예컨대 물리적 키보드와 관련하여 비교적 고정된 것으로 나타나는 것으로 가상 모니터를 로킹하기 위한 로킹 커맨드를 이네이블 또는 디세이블할 수 있다.
[0391] 블록(2512)에서, 웨어러블 시스템은 물리적 키보드의 제1 위치에 적어도 부분적으로 기반하여 가상 모니터의 제1 렌더링 위치/배향을 결정할 수 있다. 예컨대, 제1 렌더링 위치/배향은 물리적 키보드의 제1 위치/배향에 상대적일 수 있다. 다른 예로서, 제1 렌더링 위치/배향은 사용자로부터 물리적 키보드의 거리에 기반할 수 있다.
[0392] 블록(2516)에서, 웨어러블 시스템은 가상 모니터의 제1 렌더링 위치/배향 및 사이즈 선호도에 적어도 부분적으로 기반하여 가상 모니터의 사이즈를 결정할 수 있다. 예컨대, 만약 가상 모니터의 사이즈 선호도가 더 크다면, 렌더링된 가상 모니터의 사이즈는 커야 한다. 다른 예로서, 만약 키보드가 사용자로부터 비교적 더 멀리 떨어져 있다면, 가상 모니터의 사이즈는 비교적 더 작게 렌더링되어서 상대적으로 말하면, 사이즈에 상응하게 될 수 있다. 블록(2520)에서, 웨어러블 시스템은 웨어러블 시스템의 디스플레이 시스템이 가상 모니터를 결정된 사이즈 및 배향으로 제1 렌더링 위치에 렌더링하도록 명령할 수 있다. 일부 실시예들에서, 웨어러블 시스템은 가상 입력 디바이스를 물리적 입력 디바이스 상에 중첩되게 나타나는 것으로 제1 위치에 렌더링할 수 있다.
예시적인 가상 모니터 위치 업데이트
[0393] 도 26은 물리적 키보드의 위치에 기반하여 가상 모니터의 렌더링 위치/배향을 수정하는 예시적인 프로세스(2600)를 예시한다. 예시된 방법(2600)은 위에서 설명된 블록(2520)에 후속하여 블록(2604)이 발생하도록 앞서 논의된 프로세스(2500)의 구현 이후에 구현될 수 있다.
[0394] 블록(2604)에서, 웨어러블 시스템은 물리적 환경의 제2 이미지를 수신할 수 있다. 물리적 환경의 제2 이미지는 세계 카메라의 FOV에 대응한다. 세계 카메라의 시야는 사용자의 시야의 적어도 일부를 포함할 수 있다. 제2 이미지는 사용자의 FOV가 물리적 키보드와 같은 입력 디바이스를 포함하고 있음을 도시할 수 있다.
[0395] 블록(2608)에서, 웨어러블 시스템은 제2 이미지를 사용하여 (및/또는 키보드의 위치/배향 센서로부터의 정보를 사용하여) 사용자의 환경에서 물리적 키보드의 제2 위치/배향을 결정할 수 있다. 웨어러블 시스템은 물리적 키보드의 제2 위치가 사용자의 FOV 내에 있다고 결정할 수 있다. 웨어러블 시스템은 본원에서 개시된 것들과 같은 하나 이상의 컴퓨터 비전 기법들을 활용하는 오브젝트 인식기를 구현하여 사용자의 FOV 내의 물리적 키보드의 존재 및 물리적 키보드의 제1 위치/배향을 결정할 수 있다.
[0396] 일부 실시예들에서, 웨어러블 시스템은 물리적 키보드의 시각 특징(예컨대, 기준들의 위치들)을 사용하여 물리적 키보드의 제2 위치/배향을 결정하기 위해 본원에서 개시된 것들과 같은 하나 이상의 컴퓨터 비전 기법들을 활용하는 오브젝트 인식기를 구현할 수 있다. 예컨대, 위에서 언급한 바와 같이, 시각 특징은 물리적 키보드와 연관된 적어도 하나의 라벨을 포함할 수 있다. 그러나 이 블록에서 설명된 라벨과 블록(2508)을 참조하여 설명된 라벨은, 제1 블록이 더 이상 웨어러블 시스템에 보이지 않거나 제2 라벨이 더 명확하게 보일 수 있는 포지션에 위치될 수 있기 때문에 상이할 수 있다.
[0397] 블록(2612)에서, 웨어러블 시스템은 재-렌더링 기준이 충족되는지 여부를 결정할 수 있다. 재-렌더링 기준은 다음 팩터들 중 하나 이상에 기반할 수 있다. 예컨대, 재-렌더링 기준은 물리적 키보드의 제1 위치/배향과 물리적 키보드의 제2 위치/배향 간의 거리/변화에 적어도 부분적으로 기반할 수 있다. 만약 거리/변화가 임계치 미만이면, 재-렌더링 기준이 충족되지 않을 수 있고 가상 모니터의 위치/배향이 변경될 필요가 없어서 재-렌더링을 불필요하게 할 수 있다.
[0398] 재-렌더링 기준은 물리적 키보드의 배향 센서를 사용하여 결정되는 그 물리적 키보드의 배향에 적어도 부분적으로 기반할 수 있다. 사용자는 물리적 랩톱의 뚜껑을 클로징하는 것을 시뮬레이팅하기 위해 물리적 키보드를 회전시킴으로써 가상 모니터를 "클로징"하려는 자신의 의도를 표시할 수 있다. 웨어러블 디스플레이는 입력 디바이스의 배향 또는 입력 디바이스의 배향의 변화를 수신하고, 디스플레이 시스템으로 하여금 그 입력 디바이스의 배향에 적어도 부분적으로 기반하여 가상 디스플레이의 렌더링을 중단시키게 할 수 있다. 물리적 키보드의 배향은 그 물리적 키보드의 배향 센서, 이를테면 가속도계, 관성 측정 유닛, 자이로스코프, 컴퍼스, 또는 이들의 조합을 사용하여 결정될 수 있다. 일부 실시예들에서, 웨어러블 시스템은 입력 디바이스의 타입에 적어도 부분적으로 기반하여 가상 디스플레이의 렌더링을 중단시킬 수 있다. 예컨대, 만약 물리적 키보드가 물리적 랩톱의 키보드를 표현한다면, 웨어러블 디스플레이 시스템은 물리적 키보드가 회전되고 있다는 표시를 수신한 이후에 가상 모니터의 디스플레이를 중단시킬 수 있다. 그러나, 만약 물리적 키보드가 데스크톱 컴퓨터의 키보드를 표현한다면, 웨어러블 디스플레이 시스템은 동일한 표시를 수신한 이후에 가상 모니터의 디스플레이를 중단시키지 않을 수 있다. 더 일반적으로, 키보드는 손 제스처들과 유사한 그것의 움직임들에 기반하여 커맨드들과 연관될 수 있다. 키보드 움직임들에 기반하는 커맨드들 중 일부는 재-렌더링 기준(예컨대, 만약 물리적 키보드가 데스크톱 키보드에 대응한다면, 그 물리적 키보드를 회전시킴)을 충족시킬 수 없고, 따라서 가상 모니터의 재-렌더링을 요구하지 않는다. 예로서, 물리적 키보드를 사용자로부터 더욱 멀어지게 움직이는 것은 가상 모니터의 재-렌더링 또는 리사이징을 요구하지 않을 수 있다.
[0399] 블록(2616)에서, 웨어러블 시스템은 물리적 키보드의 제2 위치/배향에 적어도 부분적으로 기반하여 가상 모니터의 제2 렌더링 위치/배향을 결정할 수 있다. 예컨대, 제2 렌더링 위치/배향은 물리적 키보드의 제2 위치/배향에 상대적일 수 있다. 다른 예로서, 제2 렌더링 위치/배향은 사용자로부터의 물리적 키보드의 거리에 기반할 수 있다. 블록(2620)에서, 웨어러블 시스템은 가상 모니터를 제2 렌더링 위치/배향으로 재-렌더링하도록 디스플레이 시스템에 명령할 수 있다. 웨어러블 시스템은 가상 모니터의 제2 렌더링 위치 및 사이즈 선호도에 적어도 부분적으로 기반하여 그 가상 모니터의 사이즈를 결정할 수 있다. 예컨대, 만약 가상 모니터의 사이즈 선호도가 더 크다면, 렌더링되는 가상 모니터의 사이즈는 더 커야 한다. 다른 예로서, 만약 키보드가 사용자로부터 멀리 있다면, 가상 모니터의 사이즈가 더 작아질 수 있어서, 키보드와 가상 모니터가 사이즈에 있어 서로 상응하게 된다.
가상 모니터를 사용한 예시적인 렌더링
[0400] 도 27은 도 25의 가상 모니터를 사용하여, 물리적 키보드에 의해 수신되는 입력을 렌더링하는 예시적인 프로세스를 예시한다. 예시적인 방법(2700)이 앞서 논의된 프로세스(2500) 또는 프로세스(2600)의 구현에 이어서 구현될 수 있어서, 블록(2704)은 위에서 설명된 블록(2520) 또는 블록(2620)에 후속하여 발생한다.
[0401] 블록(2704)에서, 웨어러블 시스템은 물리적 키보드의 제1 키의 작동의 표시를 수신할 수 있다. 예컨대, 물리적 키보드는, 글자 "M"에 대응하는 물리적 키보드의 제1 키가 사용자에 의해서 작동되었거나 눌려졌다는 것을 표시하는 데이터를 통신 채널을 통해 간접적으로 또는 직접적으로 웨어러블 시스템에 송신할 수 있다. 블록(2708)에서, 웨어러블 시스템은 제1 키에 대응하는 제1 표시를 가상 모니터에서 제1 캐릭터의 제1 위치에 나타나는 것으로서 렌더링하도록 디스플레이 시스템에 명령할 수 있다. 예컨대, 글자 "M"에 대응하는 키가 작동되었다는 데이터를 수신한 이후에, 웨어러블 시스템은 글자 "M"에 대응하는 제1 표시를 디스플레이할 수 있다. 제1 표시는 글자 "M"의 표현(예컨대, 특정 폰트 및 사이즈를 가짐)을 포함할 수 있다. 제1 표시는 가상 모니터의 특정 위치에서 그 가상 모니터 상에 디스플레이될 수 있다. 일부 실시예들에서, 사용자의 FOV(field of view)는 가상 모니터의 일부만을 포함한다. 따라서, 만약 제1 표시의 위치가 사용자의 FOV 내에 있지 않다면, 그 표시는 가상 모니터 상에 디스플레이될 수 없다. 일부 실시예들에서, 키의 작동은 본원에서 설명된 사용자 인터페이스 동작, 이를테면 가상 오브젝트들 또는 물리적 오브젝트들을 움직이는 것에 대응한다. 일부 실시예들에서, 제1 키의 작동은 물리적 키보드에 대하여 비교적 고정되게 나타나는 것으로서 가상 모니터를 로킹시키기 위한 로킹 커맨드를 인에이블링 또는 디스에이블링하는 것에 대응한다.
[0402] 블록(2712)에서, 웨어러블 시스템은 물리적 키보드의 제2 키가 눌려졌다는 표시를 수신할 수 있다. 예컨대, 물리적 키보드는, 글자 "A"에 대응하는 물리적 키보드의 제2 키가 사용자에 의해서 작동되었거나 눌려졌다는 것을 표시하는 데이터를 통신 채널을 통해 간접적으로 또는 직접적으로 웨어러블 시스템에 송신할 수 있다. 일부 실시예들에서, 제2 키의 작동은 물리적 키보드에 대하여 비교적 고정되게 나타나는 것으로서 가상 모니터를 로킹시키기 위한 로킹 커맨드를 인에이블링 또는 디스에이블링하는 것에 대응한다.
[0403] 블록(2716)에서, 웨어러블 시스템은 제1 캐릭터의 제1 위치에 적어도 부분적으로 기반하여 제2 키에 대응하는 제2 표시의 제2 위치를 결정할 수 있다. 예컨대, 글자 "A"에 대응하는 제2 표시의 제2 위치는, 사용자가 가상 모니터 상에 보여지는 가상 문헌에 타이핑하고 있을 때, 제1 표시에 인접할 수 있다. 블록(2720)에서, 웨어러블 시스템은 제2 키에 대응하는 제2 표시를 가상 모니터에서 제2 캐릭터의 제2 위치에 나타나는 것으로서 렌더링하도록 디스플레이 시스템에 명령할 수 있다. 예컨대, 글자 "A"에 대응하는 키가 작동되었다는 데이터를 수신한 이후에, 웨어러블 시스템은 글자 "A"에 대응하는 제2 표시를 디스플레이할 수 있다. 제2 표시는 글자 "M"의 표현(예컨대, 특정 폰트 및 사이즈)을 포함할 수 있다. 제2 표시는 가상 모니터의 특정 위치에서 그 가상 모니터 상에 디스플레이될 수 있다. 블록들(2712-2716)은, 웨어러블 시스템이 물리적 키보드를 통해 사용자로부터 입력을 계속해서 수신할 수 있도록 반복될 수 있다.
예들
[0404] 일부 예들에서, 시스템은 가상 모니터를 사용자에게 제공하도록 구성된 디스플레이 시스템; 사용자의 물리적 환경을 이미징하도록 구성된 외향 이미징 시스템; 및 디스플레이 시스템 및 외향 이미징 시스템과 통신하는 하드웨어 프로세서를 포함하고, 하드웨어 프로세서는 외향 이미징 시스템에 의해 획득된 물리적 환경의 제1 이미지를 수신하고, 제1 이미지를 사용하여 사용자의 환경에서 물리적 키보드의 제1 위치를 결정하고, 물리적 키보드의 제1 위치에 적어도 부분적으로 기반하여 가상 모니터의 제1 렌더링 위치를 결정하고, 가상 모니터의 사이즈 선호도 및 제1 렌더링 위치에 적어도 부분적으로 기반하여 가상 모니터의 사이즈를 결정하고 ― 가상 모니터는 사용자 인터페이스 기능을 위해 구성됨 ―, 그리고 결정된 사이즈를 갖는 가상 모니터를 제1 렌더링 위치에서 렌더링하도록 디스플레이 시스템에 명령하도록 프로그래밍된다.
[0405] 이전 예들 중 임의의 예에서, 사용자의 환경에서 물리적 키보드의 제1 위치를 결정하기 위해, 하드웨어 프로세서는 물리적 키보드의 시각 특징을 사용하여 물리적 키보드의 제1 위치를 결정하기 위해서 오브젝트 인식기를 실행하도록 프로그래밍될 수 있다.
[0406] 이전 예들 중 임의의 예에서, 시각 특징은 물리적 키보드의 표면의 형상 또는 물리적 키보드와 연관된 라벨 중 적어도 하나를 포함할 수 있다.
[0407] 이전 예들 중 임의의 예에서, 물리적 키보드와 연관된 라벨은 사용자에게 비가시적일 수 있다.
[0408] 이전 예들 중 임의의 예에서, 물리적 키보드와 연관된 라벨은 물리적 키보드 상에 있을 수 있다.
[0409] 이전 예들 중 임의의 예에서, 물리적 키보드와 연관된 라벨은, 물리적 키보드에 대해 고정되고 물리적 키보드로부터 오프셋되는 라벨 위치에 있을 수 있다.
[0410] 이전 예들 중 임의의 예에서, 외향 이미징 시스템은 FOV(field of view)를 갖는 세계 카메라를 포함하고, FOV는 정해진 시간에 세계 카메라에 의해 관찰되는 물리적 환경의 일부를 포함하고, 여기서 물리적 키보드의 제1 위치를 결정하기 위해, 하드웨어 프로세서는 물리적 키보드의 적어도 일부가 FOV 내에 있음을 검출하도록 프로그래밍될 수 있다.
[0411] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 물리적 키보드의 제1 키의 작동의 표시를 수신하고; 그리고 제1 키에 대응하는 제1 표시를 가상 모니터에서 제1 캐릭터의 제1 위치에 나타나는 것으로서 렌더링하도록 디스플레이 시스템에 명령하도록 추가로 프로그래밍될 수 있다.
[0412] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 물리적 키보드의 제2 키가 눌려졌다는 표시를 수신하고; 제1 캐릭터의 제1 위치에 적어도 부분적으로 기반하여 제2 키에 대응하는 제2 표시의 제2 위치를 결정하고; 그리고 제2 키에 대응하는 제2 표시를 가상 모니터에서 제2 캐릭터의 제2 위치에 나타나는 것으로서 렌더링하도록 디스플레이 시스템에 명령하도록 추가로 프로그래밍될 수 있다.
[0413] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 물리적 키보드의 제1 키의 작동의 표시를 수신하고; 그리고 물리적 키보드의 제1 키의 작동에 기반하여 커맨드의 실행을 명령하도록 추가로 프로그래밍될 수 있다.
[0414] 이전 예들 중 임의의 예에서, 커맨드는 시스템으로 하여금 사용자 인터페이스 동작을 수행하게 할 수 있다.
[0415] 이전 예들 중 임의의 예에서, 커맨드는 물리적 키보드에 대하여 비교적 고정되게 나타나는 것으로서 가상 모니터를 로킹시키기 위한 로킹 커맨드를 인에이블링 또는 디스에이블링하는 것을 포함할 수 있다.
[0416] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 외향 이미징 시스템에 의해 획득되는 물리적 환경의 제2 이미지를 수신하고; 제1 이미지를 사용하여 사용자의 환경 내의 물리적 키보드의 제2 위치를 결정하고; 재-렌더링 기준이 충족되는지를 결정하고; 물리적 키보드의 제2 위치에 적어도 부분적으로 기반하여 가상 모니터의 제2 렌더링 위치를 결정하며, 그리고 제2 렌더링 위치에서 가상 모니터를 재-렌더링하도록 디스플레이 시스템에 명령하도록 추가로 프로그래밍될 수 있다.
[0417] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 물리적 키보드의 제1 위치와 물리적 키보드의 제2 위치 사이의 거리를 결정하도록 추가로 프로그래밍될 수 있고, 재-렌더링 기준은 그 거리에 적어도 부분적으로 기반할 수 있다.
[0418] 이전 예들 중 임의의 예에서, 재-렌더링 기준은 물리적 키보드에 대하여 비교적 고정되게 나타나는 것으로서 가상 모니터를 로킹시키기 위한 로킹 커맨드에 적어도 부분적으로 기반할 수 있다.
[0419] 이전 예들 중 임의의 예에서, 재-렌더링 기준은 물리적 키보드의 배향 센서를 사용하여 결정되는 그 물리적 키보드의 배향에 적어도 부분적으로 기반할 수 있다.
[0420] 이전 예들 중 임의의 예에서, 물리적 키보드의 제3 키의 특성 및 물리적 키보드의 제4 키의 대응하는 특성은 상이할 수 있다.
[0421] 이전 예들 중 임의의 예에서, 제3 키의 특성은 물리적 키보드의 레퍼런스 평면에 관한 제3 키의 높이를 포함할 수 있다.
[0422] 이전 예들 중 임의의 예에서, 시스템은 사용자의 눈을 이미징하도록 구성된 내향 이미징 시스템을 추가로 포함하고, 하드웨어 프로세서는 사용자의 눈의 이미지를 수신하고; 사용자의 눈의 이미지에서 사용자의 눈의 시선 방향을 결정하고; 눈의 이미지 내의 눈이 물리적 키보드의 제3 키를 보고 있다고 눈의 시선 방향을 사용하여 결정하고; 그리고 물리적 키보드의 제3 키를 보고 있는 눈의 이미지 내의 눈에 적어도 부분적으로 기반하여 커맨드의 실행을 명령하도록 추가로 프로그래밍된다.
[0423] 이전 예들 중 임의의 예에서, 커맨드는 물리적 키보드에 대하여 비교적 고정되게 나타나는 것으로서 가상 모니터를 로킹시키기 위한 로킹 커맨드를 인에이블링 또는 디스에이블링하는 것을 포함할 수 있다.
[0424] 일부 예들에서, 방법은 가상 디스플레이 오브젝트의 사용자의 환경에서 입력 디바이스의 제1 위치를 수신하는 단계; 입력 디바이스의 제1 위치에 적어도 부분적으로 기반하여 가상 디스플레이 오브젝트의 제1 렌더링 위치를 결정하는 단계; 제1 렌더링 위치에 적어도 부분적으로 기반하여 가상 디스플레이 오브젝트의 사이즈를 결정하는 단계; 및 디스플레이 시스템으로 하여금 제1 렌더링 위치에서 가상 디스플레이를 렌더링하게 하는 단계를 포함한다.
[0425] 이전 예들 중 임의의 예에서, 입력 디바이스는 물리적 키보드를 포함할 수 있다.
[0426] 이전 예들 중 임의의 예에서, 입력 디바이스의 제1 위치를 수신하는 단계는 위치 센서를 사용하여 입력 디바이스에 의해 결정된 입력 디바이스의 제1 위치를 수신하는 단계를 포함할 수 있다.
[0427] 이전 예들 중 임의의 예에서, 위치 센서는 GPS(global positioning system) 유닛, 가속도계, 관성 측정 유닛, 자이로스코프, 컴퍼스, 또는 이들의 조합을 포함할 수 있다.
[0428] 이전 예들 중 임의의 예에서, 입력 디바이스의 제1 위치를 수신하는 단계는 사용자의 환경에서 입력 디바이스의 이미지를 사용하여 입력 디바이스의 제1 위치를 결정하는 단계를 포함할 수 있다.
[0429] 이전 예들 중 임의의 예에서, 입력 디바이스의 제1 위치를 수신하는 단계는 이미지에서 입력 디바이스 인근의 사용자의 손의 위치를 사용하여 입력 디바이스의 제1 위치를 결정하는 단계를 더 포함할 수 있다.
[0430] 이전 예들 중 임의의 예에서, 방법은 디스플레이 시스템으로 하여금 제1 위치의 가상 입력 디바이스를 물리적 입력 디바이스에 중첩되어 나타나는 것으로서 렌더링하게 하는 단계를 더 포함할 수 있다.
[0431] 이전 예들 중 임의의 예에서, 방법은 입력 디바이스의 배향을 수신하는 단계; 및 디스플레이 시스템으로 하여금 입력 디바이스의 배향에 적어도 부분적으로 기반하여 가상 디스플레이의 렌더링을 중단시키게 하는 단계를 더 포함할 수 있다.
[0432] 이전 예들 중 임의의 예에서, 입력 디바이스의 배향을 수신하는 단계는 배향 센서를 사용하여 결정된 입력 디바이스의 배향을 수신하는 단계를 포함할 수 있고, 배향 센서는 가속도계, 관성 측정 유닛, 자이로스코프, 컴퍼스, 또는 이들의 조합을 포함한다.
[0433] 이전 예들 중 임의의 예에서, 디스플레이 시스템으로 하여금 가상 디스플레이의 렌더링을 중단시키게 하는 단계는 디스플레이 시스템으로 하여금 입력 디바이스의 타입에 적어도 부분적으로 기반하여 가상 디스플레이의 렌더링을 중단시키게 하는 단계를 포함할 수 있다.
[0434] 일부 예들에서, 비-일시적 컴퓨터-판독가능한 매체는 컴퓨터에 의해 준비될 때 컴퓨터로 하여금 방법을 수행하게 하는 명령들을 포함하고, 그 방법은 가상 디스플레이 오브젝트의 사용자의 환경에서 입력 디바이스의 제1 위치를 수신하는 단계; 입력 디바이스의 제1 위치에 적어도 부분적으로 기반하여 가상 디스플레이 오브젝트의 제1 렌더링 위치를 결정하는 단계; 제1 렌더링 위치에 적어도 부분적으로 기반하여 가상 디스플레이 오브젝트의 사이즈를 결정하는 단계; 및 디스플레이 시스템으로 하여금 제1 렌더링 위치에서 가상 디스플레이를 렌더링하게 하는 단계를 포함한다.
[0435] 이전 예들 중 임의의 예에서, 입력 디바이스는 물리적 키보드를 포함할 수 있다.
[0436] 이전 예들 중 임의의 예에서, 입력 디바이스의 제1 위치를 수신하는 단계는 위치 센서를 사용하여 입력 디바이스에 의해 결정된 입력 디바이스의 제1 위치를 수신하는 단계를 포함할 수 있다.
[0437] 이전 예들 중 임의의 예에서, 위치 센서는 GPS(global positioning system) 유닛, 가속도계, 관성 측정 유닛, 자이로스코프, 컴퍼스, 또는 이들의 조합을 포함할 수 있다.
[0438] 이전 예들 중 임의의 예에서, 입력 디바이스의 제1 위치를 수신하는 단계는 사용자의 환경에서 입력 디바이스의 이미지를 사용하여 입력 디바이스의 제1 위치를 결정하는 단계를 포함할 수 있다.
[0439] 이전 예들 중 임의의 예에서, 입력 디바이스의 제1 위치를 수신하는 단계는 이미지에서 입력 디바이스 인근의 사용자의 손의 위치를 사용하여 입력 디바이스의 제1 위치를 결정하는 단계를 더 포함할 수 있다.
[0440] 이전 예들 중 임의의 예에서, 컴퓨터 판독가능한 매체에 의해 유발되는 방법은 디스플레이 시스템으로 하여금 제1 위치의 가상 입력 디바이스를 물리적 입력 디바이스에 중첩되어 나타나는 것으로서 렌더링하게 하는 단계를 더 포함할 수 있다.
[0441] 이전 예들 중 임의의 예에서, 컴퓨터 판독가능한 매체에 의해 유발되는 방법은 입력 디바이스의 배향을 수신하는 단계; 및 디스플레이 시스템으로 하여금 입력 디바이스의 배향에 적어도 부분적으로 기반하여 가상 디스플레이의 렌더링을 중단시키게 하는 단계를 더 포함할 수 있다.
[0442] 이전 예들 중 임의의 예에서, 입력 디바이스의 배향을 수신하는 단계는 배향 센서를 사용하여 결정된 입력 디바이스의 배향을 수신하는 단계를 포함할 수 있고, 배향 센서는 가속도계, 관성 측정 유닛, 자이로스코프, 컴퍼스, 또는 이들의 조합을 포함한다.
[0443] 이전 예들 중 임의의 예에서, 디스플레이 시스템으로 하여금 가상 디스플레이의 렌더링을 중단시키게 하는 단계는 디스플레이 시스템으로 하여금 입력 디바이스의 타입에 적어도 부분적으로 기반하여 가상 디스플레이의 렌더링을 중단시키게 하는 단계를 포함할 수 있다.
애플리케이션 이미지 데이터와 연관된 사용자 인터페이스 이미지 데이터 간의 상대적 포지셔닝의 예들
[0444] 본원에서 개시된 웨어러블 VR/AR/MR 시스템들은, 가상 이미지 데이터가 사용자로부터 상이한 거리들에 위치된 다수의 겉보기 깊이들 또는 깊이 평면들 중 임의의 것으로부터 발생하는 것으로 나타나도록, 그 가상 이미지 데이터를 디스플레이할 수 있다. 따라서, 이들 웨어러블 VR/AR/MR 시스템들에서, 가상 이미지 데이터는 2D(two-dimensional) 영역 내에서 뿐만 아니라 3D(three-dimensional) 공간 볼륨 내에서 디스플레이될 수 있다. 가상 이미지 데이터가 디스플레이되는 공간 볼륨은, 예컨대, 박스일 수 있지만, 다른 형상들도 가능하다. 박스는 사용자의 시선을 따른 방향(예컨대, 도 28 및 29a-29e에 예시된 z-방향)으로 깊이 디멘션, 및 (예컨대, 도 28 및 29a-29e에 각각 예시된 x-방향 및 y-방향으로) 측방향 폭 및 높이 디멘션들을 가질 수 있다.
[0445] 본원에서 설명된 VR/AR/MR 시스템들이 다수의 소프트웨어 애플리케이션들(예컨대, 게임 애플리케이션, 맵 애플리케이션, 캘린더 애플리케이션, 메시징 애플리케이션, 클록 애플리케이션, 단어 프로세싱 애플리케이션 등)을 동시적으로 실행할 수 있기 때문에, 그리고 이들 애플리케이션들 각각이 고유의 연관된 가상 이미지 데이터를 가질 수 있기 때문에, 각각의 애플리케이션이 그것의 연관된 이미지 데이터를 디스플레이할 수 있는 별개의 비-오버랩핑 공간 볼륨들을 정의하는 것이 유리할 수 있다. 각각의 애플리케이션은 그것의 할당된 공간 볼륨 밖에 이미지 데이터를 디스플레이하는 것이 허용되지 않을 수 있다. 이런 식으로, 상이한 애플리케이션들에 대한 이미지 데이터 간의 충돌들이 회피될 수 있다.
[0446] 일부 실시예들에서는, 제1 애플리케이션이 그것의 이미지 데이터를 디스플레이하는 제1 공간 볼륨과 관련된 제2 애플리케이션이 그것의 이미지 데이터를 디스플레이하는 제2 공간 볼륨 간의 특정의 상대적 공간 관계를 제공하는 것이 바람직할 수 있도록, 2개의 애플리케이션들이 관련되거나 다른 방식으로 연관될 수 있다. 그 2개의 관련된 애플리케이션들은 별개의 애플리케이션들일 수 있거나, 그 애플리케이션들 중 하나의 애플리케이션이 다른 애플리케이션에 의해 제어되는 서브-애플리케이션일 수 있다. 관련된 애플리케이션들의 하나의 예시적인 쌍은 부모 애플리케이션(예컨대, 게임 애플리케이션, 맵 애플리케이션, 캘린더 애플리케이션, 메시징 애플리케이션, 클록 애플리케이션, 워드 프로세싱 애플리케이션 등) 및 사용자 인터페이스 애플리케이션, 이를테면 가상 키보드 애플리케이션이고, 그 사용자 인터페이스 애플리케이션은 사용자가 (예컨대, 텍스트, 커맨드들 등을 입력함으로써) 부모 애플리케이션과 상호작용하게 허용한다. 다양한 예시적인 시스템들 및 방법들이 부모 애플리케이션의 예 및 관련된 사용자 인터페이스 애플리케이션, 이를테면 가상 키보드 애플리케이션을 사용하여 본원에서 개시되지만, 동일한 시스템들 및 방법들에 임의의 관련된 또는 다른 방식으로 연관된 애플리케이션들이 사용될 수 있다는 것이 이해되어야 한다.
[0447] 부모 애플리케이션과 연관된 이미지 데이터 및 부모 애플리케이션에 대한 사용자 인터페이스와 연관된 이미지 데이터를 디스플레이하기 위해 할당된 공간의 개개의 비-오버랩핑 볼륨들의 상대적 공간 위치들을 결정할 때, 다음의 목적들 중 하나 이상을 만족시키는 것이 바람직할 수 있다 1) VR/AR/MR 시스템이 다수의 부모 애플리케이션들 및 다수의 대응하는 사용자 인터페이스들을 동시적으로 디스플레이할 수 있을 때, 어느 사용자 인터페이스(예컨대, 가상 키보드) 인스턴스가 어느 부모 애플리케이션과 페어링되는지의 표시를 사용자에게 제공하는 것; 2) 부모 애플리케이션에 대한 사용자 인터페이스의 위치를 결정하기 위한 포지셔닝 로직이 사용자가 그들이 선정하는 부모 애플리케이션의 임의의 부분을 보게 허용하는 것을 보장하는 것; 및 3) 가독성을 향상시킬 수 있는, 사용자 인터페이스와 부모 애플리케이션 간의 깊이 거리를 제공하는 것.
[0448] 도 28은 웨어러블 VR/AR/MR 시스템(200)에 의해 디스플레이되는 바와 같은, 사용자 인터페이스 이미지 데이터(2810)와 부모 애플리케이션 이미지 데이터(2820) 간의 상대적 공간 관계의 예를 예시한다. 애플리케이션들 둘 모두는 사용자(205)에 의해 착용되는 VR/AR/MR 시스템(200)에 의해 실행 및 디스플레이된다.
[0449] 공간(2812)의 볼륨은 사용자 인터페이스 이미지 데이터(2810)를 디스플레이하기 위해 확보(set aside)된다. 일부 실시예들에서, 공간(2812)의 볼륨은 예시된 z-방향에서 깊이 디멘션 및 예시된 x- 및 y-방향들에서 측방 디멘션들을 갖는 박스이다. 예시된 실시예에서, 사용자 인터페이스는 가상 키보드이고, 사용자 인터페이스 이미지 데이터(2810)는 사용자 인터페이스 박스(2812)의 전면 상에 디스플레이된다. 다른 실시예들에서, 사용자 인터페이스 이미지 데이터(2810)는, 동시적으로 또는 상이한 시간 순간들에서인지에 관계없이, 사용자 인터페이스 박스(2812)의 추가적인 부분들을 점유할 수 있다.
[0450] 공간(2822)의 상이한 볼륨은 부모 애플리케이션 이미지 데이터(2820)를 디스플레이하기 위해 확보된다. 일부 실시예들에서, 공간(2822)의 볼륨은 또한, 예시된 z-방향에서 깊이 디멘션 및 예시된 x- 및 y-방향들에서 측방 디멘션들을 갖는 박스이다. 예시된 실시예에서, 동시적으로 또는 상이한 시간 순간들에서인지에 관계없이, 부모 애플리케이션 이미지 데이터(2820)는 부모 애플리케이션 박스(2822)의 전면 상에 디스플레이되지만, 공간의 이러한 할당된 볼륨의 다른 부분들이 또한 부모 애플리케이션 이미지 데이터(2820)를 디스플레이하기 위해 사용될 수 있다.
[0451] 예시된 바와 같이, 사용자 인터페이스 박스(2812) 및 부모 애플리케이션 박스(2822)는 2개의 애플리케이션들 간의 이미지 데이터 충돌들을 회피하기 위해 오버랩되지 않는다. 그러나, 예시된 실시예에서, 2개의 박스들(2822, 2812)은 "터치"하며, 사용자 인터페이스 박스(2812)의 후면은 부모 애플리케이션 박스(2822)의 전면에 인접한다.
[0452] 도 28은 사용자 인터페이스 이미지 데이터(2810)와 부모 애플리케이션 이미지 데이터(2820) 간의 z-방향의 깊이 거리(D)를 도시한다. 깊이 거리(D)는 고정된 거리일 수 있다. 일부 실시예들에서, 깊이 거리(D)는 사용자 인터페이스 박스(2812)의 깊이 디멘션에 대응한다.
[0453] 깊이 거리(D)는 다양한 방식들로 측정될 수 있다. 일부 실시예들에서, 깊이 거리(D)는 부모 애플리케이션 박스(2822)의 표면으로부터 사용자 인터페이스 박스(2812)의 대응부 표면까지 측정된다. 예컨대, 깊이 거리(D)는 도 28에 도시된 바와 같이, 부모 애플리케이션 박스(2822)의 전면으로부터 사용자 인터페이스 박스(2812)의 전면까지 측정될 수 있다. 다른 실시예들에서, 고정된 깊이 거리(D)는 부모 애플리케이션 박스(2822) 내의 부모 애플리케이션 이미지 데이터(2820)의 깊이 평면으로부터 사용자 인터페이스 박스(2812) 내의 사용자 인터페이스 이미지 데이터(2810)의 깊이 평면까지 측정될 수 있다.
[0454] 사용자 인터페이스 이미지 데이터(2810)와 부모 애플리케이션 이미지 데이터(2820) 간의 깊이 거리(D)는, 부모 애플리케이션 박스(2822) 또는 사용자 인터페이스 박스(2812) 중 어느 하나가 이동되는 경우라도 VR/AR/MR 시스템(200)에 의해 고정된 값으로 유지될 수 있다. 예컨대, 만약 부모 애플리케이션 박스(2822)의 깊이 위치를 이동시키고 그리고/또는 박스(2822) 내의 부모 애플리케이션 이미지 데이터(2820)의 깊이 위치를 이동시키기 위한 커맨드가 (예컨대, 사용자(2805)에 의해 또는 부모 애플리케이션 그 자체에 의해) 발행되면, 웨어러블 VR/AR/MR 시스템(200)은, 고정된 깊이 거리(D)를 유지하기 위해 깊이 방향에서 대응하는 양만큼, 사용자 인터페이스 박스(2812), 및/또는 박스(2812) 내의 사용자 인터페이스 이미지 데이터(2810)를 자동으로 이동시킬 수 있다.
[0455] 부모 애플리케이션 이미지 데이터(2820)의 전부 또는 일부와 연관된 사용자 인터페이스 이미지 데이터(2810)(예컨대, 가상 키보드) 간의 그리고/또는 부모 애플리케이션 박스(2822)와 사용자 인터페이스 박스(2812) 간의 고정된 깊이 거리를 유지함으로써, 사용자 인터페이스 경험(예컨대, 타이핑 경험)이 향상될 수 있다. 별개의 깊이들 또는 깊이 평면들은 사용자 인터페이스 계층과 부모 애플리케이션 계층 간을 용이하게 구별하기 위한 사용자(2805)의 능력을 개선시키는 반면, 고정된 거리(D)는 사용자가 2개의 애플리케이션들이 서로 연관된다는 것을 콘텍스추얼하게 이해하는 것을 돕는다. 이러한 어레인지먼트는 또한, 사용자 인터페이스가 부모 애플리케이션 계층과 동일한 평면 상에 있었던 경우보다 사용자 인터페이스 뒤의 부모 애플리케이션 콘텐츠가 가시적이고 더 가독성있게 허용한다.
[0456] 게다가, 고정된 거리(D)는, 사용자가 VR/AR/MR 시스템(200) 상에서 다양한 애플리케이션들을 사용하고 있는 동안 적응해야 하는 이접운동-원근조절 푸시-업들의 치환들의 수를 제한할 수 있다. 이접운동-원근조절 푸시-업은, 부모 애플리케이션 이미지 데이터(2820)와 사용자 인터페이스 이미지 데이터(2810) 간에서 앞뒤로 보는 동안 상이한 거리들에 초점을 맞출 때 사용자의 눈들이 겪게 되는 스트레인을 설명하는 용어이다. 이러한 스트레인이 모든 사용자들에 의해 즉시 지각되지 않을 수 있지만, 그것은 시간이 지남에 따라 일부 사용자들에 대해 불편함을 유발할 수 있다.
[0457] 이접운동-원근조절 푸시-업과 연관된 초점 거리 시프트는, 키보드 키들 및 타이핑된 텍스트가 상이한 깊이들로 위치되므로 가상 키보드와 같은 사용자 인터페이스에 따라 비교적 빈번하게 발생할 수 있다. 이들 깊이들 간의 거리가 커질수록, 사용자의 눈들이 겪게 되는 스트레인이 커진다. 그러나, 깊이들 간의 거리가 적어질수록, 사용자가 애플리케이션 이미지 데이터(2820)와 사용자 인터페이스 이미지 데이터(2810) 간을 구별하는 것이 더 어렵게 된다. 이들 2개의 팩터들 간에 양호한 밸런스를 유지할 수 있는 깊이 거리(D)에 대한 값들의 범위가 존재한다. 일부 실시예들에서, 깊이 거리(D)는 10 내지 30 인치이다. 일부 실시예들에서, 깊이 거리(D)는 15 내지 20 인치이다. 일부 실시예들에서, 깊이 거리(D)에 대한 16.85인치의 값은 매우 양호하게 작동하는 것으로 발견되었다.
[0458] 일부 실시예들에서, 사용자 인터페이스 애플리케이션은 부모 애플리케이션 또는 사용자로부터의 커맨드에 의해 인보크될 수 있다. 사용자 인터페이스 애플리케이션이 인보크될 때, 사용자 인터페이스 박스(2812)는 부모 애플리케이션에 의해 또는 사용자에 의해 특정된 스폰(spawn) 포인트에 위치될 수 있다. 예컨대, 부모 애플리케이션은, 사용자 인터페이스 박스(2812) 상의 또는 그 내의 어느 특정 포인트에 위치되어야 하는지를 표시하는 한 세트의 로컬 좌표들(예컨대, 부모 애플리케이션 박스(2822)에 관해 특정된 좌표들)을 제공할 수 있다.
[0459] 일부 실시예들에서, 로컬 좌표들은 측방(x, y) 좌표들만을 특정할 필요가 있고, z 좌표는 고정된 깊이 거리(D)에 기반하여 결정될 수 있다. 그러나, 만약 사용자 인터페이스 이미지 데이터(2810)가 부모 애플리케이션 이미지 데이터(2820)로부터, 특정된 측방(x, y) 좌표들에서 그리고 고정된 깊이 거리에 간단히 디스플레이되었다면, 그것은 의도된 위치에 포지셔닝되는 것으로 사용자(2805)에게 실제로 나타나지 않을 수 있다. 이것은, 부모 애플리케이션 박스(2822) 및 사용자 인터페이스 박스(2812)가 사용자의 뷰 포인트에 대하여 위치되는 곳에 의존하여, 예컨대 부모 애플리케이션 이미지 데이터(2820)와 사용자 인터페이스 이미지 데이터(2810) 간의 깊이 거리(D)가 사용자의 관점으로부터 일부 자명한 측방 시프트를 도입할 수 있기 때문이다.
[0460] 예컨대, 부모 애플리케이션에 의해 정해진 로컬 좌표들은, 부모 애플리케이션 박스(2822)의 최하부와 동일 평면 상에 있게 사용자 인터페이스 박스(2812)를 포지셔닝시키도록 의도될 수 있다. 그러나, 만약 2개의 박스들이 사용자의 뷰 포인트 위에 또는 아래에 위치되면, 깊이 거리(D)에 의존하여, 사용자 인터페이스 박스(2812)는 대신, 부모 애플리케이션 박스(2822)와 오버랩하는 것으로 사용자(2805)에게 나타날 수 있거나, 또는 그것은 2개의 박스들 간에 갭이 존재하는 것으로 사용자(2805)에게 나타날 수 있다.
[0461] 따라서, 일부 실시예들에서, VR/AR/MR 시스템(200)은 로컬 좌표들에 의해 특정된 포인트로부터 광선을 사용자의 뷰 포인트를 향해 투사할 수 있다. 그런다음, VR/AR/MR 시스템(200)은 부모 애플리케이션 이미지 데이터(2820) 및/또는 박스(2822)로부터, 투사된 광선이 원하는 깊이 거리(D)에 위치된 평면과 교차하는 포인트를 계산할 수 있다. 그런다음, 사용자 인터페이스 이미지 데이터(2810) 및/또는 박스(2812)는 그 교차점에 기반하는 스폰 포인트에 포지셔닝될 수 있다. 예컨대, 사용자 인터페이스 박스(2812)의 전면의 최상부 에지의 중간(또는 사용자 인터페이스 박스 상의 또는 그 내의 임의의 다른 특정된 포인트)이 교차점에 포지셔닝될 수 있다. 이런 식으로, 사용자 인터페이스 이미지 데이터(2810) 및/또는 박스(2822)는, 부모 애플리케이션 박스(2822) 및 사용자 인터페이스 박스(2812)가 사용자의 뷰 포인트에 대한 것인지에 관계없이, 원하는 포지션에 위치되는 것으로 사용자(2805)에게 나타날 것이다.
[0462] 다른 실시예들에서, 만약 사용자 인터페이스를 위치시키기 위해 제공되는 로컬 좌표들이 부모 애플리케이션 박스(2822) 내에 놓이면, VR/AR/MR 시스템(200)은 사용자(205)로부터 로컬 좌표들에 의해 특정된 포인트로 시선을 따라 부모 애플리케이션 박스(2822) 외부에 놓인 스폰 포인트를 계산할 수 있다. (이것은 부모 애플리케이션 박스(2822) 및 사용자 인터페이스 박스(2812)가 오버랩핑되는 것을 방지하기 위해 수행될 수 있다). 예컨대, VR/AR/MR 시스템(200)은 로컬 좌표들에 의해 특정된 포인트로부터 사용자(205)의 뷰 포인트를 향해 광선을 투사할 수 있다. 그런다음, VR/AR/MR 시스템(200)은 투사된 광선이 부모 애플리케이션 박스(2822)의 전면의 평면과 교차되는 곳을 계산할 수 있다. 그런다음, 사용자 인터페이스 박스(2812)는 교차점에 기반하여 스폰될 수 있다. 예컨대, 사용자 인터페이스 박스(2812)의 후면의 최상부 에지의 중심(또는 사용자 인터페이스 박스 상의 또는 그 내의 임의의 다른 특정된 포인트)이 교차점에 포지셔닝될 수 있다. 만약 사용자 인터페이스 박스(2812)의 깊이 디멘션이 고정된 깊이 거리(D)와 동일하면 그리고 만약 사용자 인터페이스 이미지 데이터(2810)가 사용자 인터페이스 박스의 전면에 디스플레이되면, 사용자 인터페이스 이미지 데이터는 부모 애플리케이션 박스(2822)로부터 정확한 거리에 위치될 것이다.
[0463] 일부 실시예들에서, 사용자 인터페이스 이미지 데이터(2810) 및/또는 박스(2812)는 부모 애플리케이션 이미지 데이터(2820) 및/또는 박스(2822)를 측방으로 터치하도록 요구된다. 도 29a-29e는 허용된 및 허용되지 않은 공간 관계들의 예들을 예시한다. 도 29a는, 사용자 인터페이스 박스(2812)가 부모 애플리케이션 박스(2822)를 완전히 측방으로 오버랩한 예를 예시한다. 도 29b는, 사용자 인터페이스 박스(2812)가 부모 애플리케이션 박스(2822)를 부분적으로 측방으로 오버랩한 예를 예시한다. 도 29c는, 사용자 인터페이스 박스(2812)의 에지가 부모 애플리케이션 박스(2822)의 에지를 측방으로 터치한 예를 예시한다. 도 29d는, 사용자 인터페이스 박스(2812)의 코너가 부모 애플리케이션 박스(2822)의 코너를 측방으로 터치한 예를 예시한다. 한편, 도 29e는, 사용자 인터페이스 박스(2812)의 어떠한 부분도 부모 애플리케이션 박스(2822)의 임의의 부분을 측방으로 터치하지 않은 예를 예시한다. 사용자 인터페이스 박스(2812)가 부모 애플리케이션 박스(2822)를 측방으로 터치하도록 요구되는 실시예들에서, 도 29a-29d에 도시된 어레인지먼트들은 허가되지만, 도 29e에 도시된 어레인지먼트는 허가되지 않는다. 다른 실시예들에서, 사용자 인터페이스 이미지 데이터(2810) 및/또는 박스(2812)는 사용자에 의해 특정될 수 있는 부모 애플리케이션 이미지 데이터(2820) 및/또는 박스(2822)에 대하여 다른 상대적 공간 관계들로 배열될 수 있다.
[0464] 일부 실시예들에서, 부모 애플리케이션 박스(2822) 및 사용자 인터페이스 박스(2812)는 포메이션(formation)에서 서로 함께 이동할 수 있다. 만약 부모 애플리케이션 박스(2822)를 이동시키기 위한 커맨드가 사용자(2805)로부터 또는 부모 애플리케이션 그 자체로부터 수신되면, 사용자 인터페이스 박스(2812)는 대응하는 양만큼 이동될 수 있다. 예컨대, 사용자 인터페이스 박스(2812)는 부모 애플리케이션 박스(2822)와 동일한 방향으로 그리고 동일한 양만큼 이동될 수 있다. 또는, 사용자 인터페이스 박스(2812)는, 2개의 박스들(2812, 2822) 간의 동일한 자명한 상대적 포지션을 유지하는 방향으로 그리고 양만큼 이동될 수 있다. 앞서 논의된 바와 같이, 2개의 박스들(2812, 2822) 간의 자명한 상대적 포지션은, 그들이 사용자의 관점에 대해 위치되는 곳 및 박스들 간의 깊이 거리(D)에 의존할 수 있다. 따라서, 부모 애플리케이션 박스(2822)를 이동시키기 위한 커맨드가 발행될 때, 위에서 설명된 광선 투사 기법은 사용자 인터페이스 박스(2812)에 대한 새로운 포지션을 결정하기 위해 사용될 수 있다. 다른 실시예들에서, 2개의 박스들(2812, 2822) 간의 포지션이 고정되고, 자명한 상대적 포지션이 고려되지 않는다.
[0465] 일부 실시예들에서, 부모 애플리케이션 박스(2822)가 조작되고 있다는 것을 사용자 인터페이스 애플리케이션이 통지받지 못할 수 있고, 따라서 그 자신의 대응하는 움직임 거동을 제공하지 못할 수 있으므로, 부모 애플리케이션이 사용자 인터페이스 박스(2812)의 움직임을 제어한다 이것은, 부모 애플리케이션 박스(2822)의 조작의 시작부에서, 사용자 인터페이스 박스(2812)를 부모 애플리케이션 박스(2822)의 장면 그래프 자식으로 함으로써 달성될 수 있다. 장면 그래프 자식으로서, 부모 애플리케이션 박스(2822)에 적용된 움직임은 사용자 인터페이스 박스(2812)에 자동으로 적용될 수 있다. 부모 애플리케이션 박스(2822)의 조작의 끝에서, 장면 그래프 부모-자식 관계가 붕괴될 수 있으며, 사용자 인터페이스 박스(2812)는, 그것이 조작 이전에 이루어졌었던 것과 같이 루트 장면 그래프 오브젝트로 다시 한번 만들어질 수 있다.
[0466] 일부 실시예들에서, 부모 애플리케이션 박스(2822) 및 사용자 인터페이스 박스(2812)는 함께 이동하지만 정확한 포메이션에 있지는 않는다. 대신, 부모 애플리케이션 박스(2822)와 사용자 인터페이스 박스(2812) 간의 상대적 포지셔닝은, (예컨대, 도 29a-29d에 예시된 바와 같이) 박스들 간의 측방 터칭이 유지되는 한 변할 수 있다. 도 30은 이러한 타입의 움직임을 예시하는 흐름도(3000)이다.
[0467] 블록(3010)에서, 부모 애플리케이션 이미지 데이터(2820)는 공간의 제1 볼륨, 이를테면 부모 애플리케이션 박스(2822)에서 디스플레이된다. 한편, 사용자 인터페이스 이미지 데이터(2810)는 공간의 제2 볼륨, 이를테면 사용자 인터페이스 박스(2812)에서 디스플레이된다. 블록(3020)에서 언급된 바와 같이, 사용자 인터페이스 이미지 데이터(2810)는 부모 애플리케이션 이미지 데이터(2820)로부터 고정된 깊이 거리(D)에 디스플레이될 수 있다.
[0468] 블록(3030)에서, 공간의 볼륨들 중 하나(예컨대, 부모 애플리케이션 박스(2822))는 다른 공간의 볼륨에 대하여 측방으로 이동된다. 블록(3040)에서, 공간의 다른 볼륨(예컨대, 사용자 인터페이스 박스(2812))의 위치는, 공간의 2개의 볼륨들 간에 여전히 측방 터칭이 존재하는 한 움직임 없이 유지된다. 이것은, 부모 애플리케이션 박스(2822) 내의 적어도 하나의 포인트 및 사용자 인터페이스 박스(2812) 내의 적어도 하나의 포인트가 인접하는 측방 좌표들을 갖는 실제 측방 터칭을 지칭할 수 있다. 그것은 또한, (도 31과 관련하여 추가로 논의되는 바와 같이) 사용자의 관점으로부터의 자명한 측방 터칭을 지칭할 수 있다. 블록(3050)에서, 만약 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))의 움직임이, 공간의 제1 볼륨이 측방으로 공간의 제2 볼륨(예컨대, 사용자 인터페이스 박스(2812))을 더 이상 터치하지 않는 것을 야기한다면, 공간의 제2 볼륨은 또한 측방 터칭을 유지하기 위한 방식으로 이동될 수 있다.
[0469] 도 31은 도 30에 도시된 방법(3000)의 더 많은 세부사항을 예시하는 흐름도(3100)이다. 블록(3110)에서, 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))의 (예시된 x-방향의) 새로운 수평 포지션이 결정된다. 그런다음, 블록(3120)에서, VR/AR/MR 시스템(200)은 공간의 제2 볼륨의 코너들(예컨대, 사용자 인터페이스 박스(2812)의 후면의 코너들)로부터 사용자의 뷰포인트를 향해 광선들을 투사한다. 블록(3130)에서, 만약 투사된 광선들 중 적어도 하나가 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))의 새로운 수평 포지션에서 공간의 제1 볼륨과 교차한다면, 공간의 제2 볼륨(예컨대, 사용자 인터페이스 박스(2812))의 수평 포지션이 유지된다. 그렇지 않으면, 블록(3140)에서, 공간의 제2 볼륨(예컨대, 사용자 인터페이스 박스(2812))은 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))의 수평 움직임에 대응하는 양만큼 수평으로 이동될 수 있다. 또는, 공간의 제2 볼륨(예컨대, 사용자 인터페이스 박스(2812))은 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))과의 수평 접촉을 유지하는 데 필요한 최소의 양만큼 수평으로 이동될 수 있다.
[0470] 그런다음, 블록들(3150-3180)에서, 유사한 단계들이 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))의 (예시된 y-방향의) 새로운 수직 포지션에 대해 수행된다. 즉, 블록(3150)에서, 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))의 새로운 수직 포지션이 결정된다. 그런다음, 블록(3160)에서, VR/AR/MR 시스템(200)은 공간의 제2 볼륨의 코너들(예컨대, 사용자 인터페이스 박스(2812)의 후면의 코너들)로부터 사용자의 뷰포인트를 향해 광선들을 투사한다. 블록(3170)에서, 만약 투사된 광선들 중 적어도 하나가 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))의 새로운 수직 포지션에서 공간의 제1 볼륨과 교차한다면, 공간의 제2 볼륨(예컨대, 사용자 인터페이스 박스(2812))의 수직 포지션이 유지된다. 그렇지 않으면, 블록(3180)에서, 공간의 제2 볼륨(예컨대, 사용자 인터페이스 박스(2812))은 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))의 수직 움직임에 대응하는 양만큼 수직으로 이동될 수 있다. 또는, 공간의 제2 볼륨(예컨대, 사용자 인터페이스 박스(2812))은 공간의 제1 볼륨(예컨대, 부모 애플리케이션 박스(2822))과의 수직 접촉을 유지하는 데 필요한 최소의 양만큼 수직으로 이동될 수 있다.
[0471] 따라서, 부모 애플리케이션 박스(2822) 또는 사용자 인터페이스 박스(2812) 중 어느 하나는, 그것이 다른 것에 대하여 측방으로 "슬라이딩"되도록 조작을 통해 이동되도록 허가된다. 그러나, 이러한 움직임의 x-y 측방 범위는, 박스들(2812, 2822) 중 하나가 그것이 더 이상 측방 접촉되지 않게 다른 것으로부터 충분히 더 멀어지게 슬라이딩되지 않도록 제약될 수 있다. 도 31은 움직임들이 수평 및 수직 컴포넌트들로 분리되는 프로세스 ― 수평 움직임들이 먼저 수행되고 그런다음 수직 움직임들이 수행됨 ― 를 예시하지만, 다른 실시예들에서, 수직 움직임들은 수평 움직임들 전에 수행될 수 있거나, 또는 움직임들은 그들을 수평 및 수직 컴포넌트들로 분리시키지 않으면서 수행될 수 있다.
예들
[0472] 일부 예들에서, 방법은 다수의 깊이들에 있는 데이터를 디스플레이할 수 있는 가상 현실, 증강 현실 또는 혼합 현실 시스템을 사용하여, 제1 깊이에서 제1 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하는 단계; 및 제2 깊이에서 제2 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하는 단계를 포함하며, 제1 및 제2 애플리케이션들은 서로 관련되며, 그리고 제2 깊이는 제1 깊이로부터 고정된 거리에 있도록 선택된다.
[0473] 이전 예들 중 임의의 예에서, 제2 애플리케이션은, 사용자가 제1 애플리케이션과 상호작용하게 허용하는 사용자 인터페이스를 포함할 수 있다.
[0474] 이전 예들 중 임의의 예에서, 제2 애플리케이션은 키보드를 포함할 수 있다.
[0475] 이전 예들 중 임의의 예에서, 고정된 거리는 10-30 인치일 수 있다.
[0476] 이전 예들 중 임의의 예에서, 고정된 거리는 15-20 인치일 수 있다.
[0477] 이전 예들 중 임의의 예에서, 방법은, 커맨드에 대한 응답으로, 제1 애플리케이션과 연관된 이미지 데이터를 이동시키는 단계; 및 고정된 거리를 유지하기 위해, 제2 애플리케이션과 연관된 이미지 데이터를 자동으로 이동시키는 단계를 추가로 포함할 수 있다.
[0478] 이전 예들 중 임의의 예에서, 제1 애플리케이션과 연관된 이미지 데이터는 공간의 제1 볼륨에 디스플레이될 수 있으며, 그리고 제2 애플리케이션과 연관된 이미지 데이터는 공간의 제2 볼륨에 디스플레이될 수 있다.
[0479] 이전 예들 중 임의의 예에서, 고정된 거리는 공간의 제1 볼륨의 전면으로부터 공간의 제2 볼륨의 전면까지 측정될 수 있다.
[0480] 이전 예들 중 임의의 예에서, 공간의 제1 볼륨의 전면 및 공간의 제2 볼륨의 후면은 인접할 수 있다.
[0481] 이전 예들 중 임의의 예에서, 제1 애플리케이션과 연관된 이미지 데이터는 적어도 제1 영역에 디스플레이될 수 있으며, 그리고 제2 애플리케이션과 연관된 이미지 데이터는 적어도 제2 영역에 디스플레이될 수 있다.
[0482] 이전 예들 중 임의의 예에서, 제1 영역 및 제2 영역은 서로 측방으로 터치할 수 있다.
[0483] 이전 예들 중 임의의 예에서, 제1 영역의 적어도 코너는 제2 영역의 적어도 코너를 측방으로 터치할 수 있다.
[0484] 이전 예들 중 임의의 예에서, 제1 영역의 적어도 에지는 제2 영역의 적어도 에지를 측방으로 터치할 수 있다.
[0485] 이전 예들 중 임의의 예에서, 제1 영역 및 제2 영역은 서로 측방으로 오버랩할 수 있다.
[0486] 이전 예들 중 임의의 예에서, 방법은, 커맨드에 대한 응답으로 제1 영역을 측방으로 이동시키는 단계; 및 제1 영역 및 제2 영역이 서로 측방으로 터치하는 한 제2 영역의 측방 포지션(lateral position)을 유지하는 단계를 추가로 포함할 수 있다.
[0487] 이전 예들 중 임의의 예에서, 방법은, 제1 영역 및 제2 영역이 더 이상 서로 측방으로 터치하지 않을 때, 제1 영역과 제2 영역 간의 측방 접촉을 유지하도록 제2 영역을 측방으로 이동시키는 단계를 추가로 포함할 수 있다.
[0488] 이전 예들 중 임의의 예에서, 방법은, 제2 영역의 하나 이상의 주변 포인트들로부터의 하나 이상의 광선들을 사용자의 뷰포인트를 향해 투사함으로써, 제1 영역 및 제2 영역이 서로 측방으로 터치하는지 여부를 결정하는 단계; 및 광선들 중 적어도 하나가 제1 영역과 교차하는지 여부를 테스트하는 단계를 추가로 포함할 수 있다.
[0489] 이전 예들 중 임의의 예에서, 하나 이상의 주변 포인트들은 제2 영역의 모든 코너들을 포함할 수 있다.
[0490] 일부 예들에서, 시스템은 다수의 깊이들에 있는 데이터를 디스플레이할 수 있는 가상 현실, 증강 현실 또는 혼합 현실 디스플레이; 하드웨어 프로세서를 포함하며; 하드웨어 프로세서는, 제1 깊이에서 제1 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하며; 그리고 제2 깊이에서 제2 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하도록 구성되며, 제1 및 제2 애플리케이션들은 서로 관련되며, 그리고 제2 깊이는 제1 깊이로부터 고정된 거리에 있도록 선택된다.
[0491] 이전 예들 중 임의의 예에서, 제2 애플리케이션은, 사용자가 제1 애플리케이션과 상호작용하게 허용하는 사용자 인터페이스를 포함할 수 있다.
[0492] 이전 예들 중 임의의 예에서, 제2 애플리케이션은 키보드를 포함할 수 있다.
[0493] 이전 예들 중 임의의 예에서, 고정된 거리는 10-30 인치일 수 있다.
[0494] 이전 예들 중 임의의 예에서, 고정된 거리는 15-20 인치일 수 있다.
[0495] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 추가로 커맨드에 대한 응답으로, 제1 애플리케이션과 연관된 이미지 데이터를 이동시키고; 그리고 고정된 거리를 유지하기 위해, 제2 애플리케이션과 연관된 이미지 데이터를 자동으로 이동시키도록 구성될 수 있다.
[0496] 이전 예들 중 임의의 예에서, 제1 애플리케이션과 연관된 이미지 데이터는 공간의 제1 볼륨에 디스플레이될 수 있으며, 그리고 제2 애플리케이션과 연관된 이미지 데이터는 공간의 제2 볼륨에 디스플레이될 수 있다.
[0497] 이전 예들 중 임의의 예에서, 고정된 거리는 공간의 제1 볼륨의 전면으로부터 공간의 제2 볼륨의 전면까지 측정될 수 있다.
[0498] 이전 예들 중 임의의 예에서, 공간의 제1 볼륨의 전면 및 공간의 제2 볼륨의 후면은 인접할 수 있다.
[0499] 이전 예들 중 임의의 예에서, 제1 애플리케이션과 연관된 이미지 데이터는 적어도 제1 영역에 디스플레이될 수 있으며, 그리고 제2 애플리케이션과 연관된 이미지 데이터는 적어도 제2 영역에 디스플레이될 수 있다.
[0500] 이전 예들 중 임의의 예에서, 제1 영역 및 제2 영역은 서로 측방으로 터치할 수 있다.
[0501] 이전 예들 중 임의의 예에서, 제1 영역의 적어도 코너는 제2 영역의 적어도 코너를 측방으로 터치할 수 있다.
[0502] 이전 예들 중 임의의 예에서, 제1 영역의 적어도 에지는 제2 영역의 적어도 에지를 측방으로 터치할 수 있다.
[0503] 이전 예들 중 임의의 예에서, 제1 영역 및 제2 영역은 서로 측방으로 오버랩할 수 있다.
[0504] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 추가로 커맨드에 대한 응답으로 제1 영역을 측방으로 이동시키고; 그리고 제1 영역 및 제2 영역이 서로 측방으로 터치하는 한 제2 영역의 측방 포지션을 유지하도록 구성될 수 있다.
[0505] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 추가로 제1 영역 및 제2 영역이 더 이상 서로 측방으로 터치하지 않을 때, 제1 영역과 제2 영역 간의 측방 접촉을 유지하도록 제2 영역을 측방으로 이동시키도록 구성될 수 있다.
[0506] 이전 예들 중 임의의 예에서, 하드웨어 프로세서는 추가로 제2 영역의 하나 이상의 주변 포인트들로부터의 하나 이상의 광선들을 사용자의 뷰포인트를 향해 투사함으로써, 제1 영역 및 제2 영역이 서로 측방으로 터치하는지 여부를 결정하고; 그리고 광선들 중 적어도 하나가 제1 영역과 교차하는지 여부를 테스트하도록 구성될 수 있다.
[0507] 이전 예들 중 임의의 예에서, 하나 이상의 주변 포인트들은 제2 영역의 모든 코너들을 포함할 수 있다.
[0508] 일부 예들에서, 비-일시적 컴퓨터-판독가능한 매체는, 하드웨어 프로세서에 의해 판독될 때, 하드웨어 프로세서로 하여금 방법을 수행하게 하는 명령들을 포함할 수 있으며, 방법은, 다수의 깊이들에 있는 데이터를 디스플레이할 수 있는 가상 현실, 증강 현실 또는 혼합 현실 시스템을 사용하여, 제1 깊이에서 제1 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하는 단계; 및 제2 깊이에서 제2 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하는 단계를 포함하며, 제1 및 제2 애플리케이션들은 서로 관련되며, 그리고 제2 깊이는 제1 깊이로부터 고정된 거리에 있도록 선택된다.
[0509] 이전 예들 중 임의의 예에서, 제2 애플리케이션은, 사용자가 제1 애플리케이션과 상호작용하게 허용하는 사용자 인터페이스를 포함할 수 있다.
[0510] 이전 예들 중 임의의 예에서, 제2 애플리케이션은 키보드를 포함할 수 있다.
[0511] 이전 예들 중 임의의 예에서, 고정된 거리는 10-30 인치일 수 있다.
[0512] 이전 예들 중 임의의 예에서, 고정된 거리는 15-20 인치일 수 있다.
[0513] 이전 예들 중 임의의 예에서, 컴퓨터-판독가능한 매체에 의해 야기되는 방법은, 커맨드에 대한 응답으로, 제1 애플리케이션과 연관된 이미지 데이터를 이동시키는 단계; 및 고정된 거리를 유지하기 위해, 제2 애플리케이션과 연관된 이미지 데이터를 자동으로 이동시키는 단계를 추가로 포함할 수 있다.
[0514] 이전 예들 중 임의의 예에서, 제1 애플리케이션과 연관된 이미지 데이터는 공간의 제1 볼륨에 디스플레이될 수 있으며, 그리고 제2 애플리케이션과 연관된 이미지 데이터는 공간의 제2 볼륨에 디스플레이될 수 있다.
[0515] 이전 예들 중 임의의 예에서, 고정된 거리는 공간의 제1 볼륨의 전면으로부터 공간의 제2 볼륨의 전면까지 측정될 수 있다.
[0516] 이전 예들 중 임의의 예에서, 공간의 제1 볼륨의 전면 및 공간의 제2 볼륨의 후면은 인접할 수 있다.
[0517] 이전 예들 중 임의의 예에서, 제1 애플리케이션과 연관된 이미지 데이터는 적어도 제1 영역에 디스플레이될 수 있으며, 그리고 제2 애플리케이션과 연관된 이미지 데이터는 적어도 제2 영역에 디스플레이될 수 있다.
[0518] 이전 예들 중 임의의 예에서, 제1 영역 및 제2 영역은 서로 측방으로 터치할 수 있다.
[0519] 이전 예들 중 임의의 예에서, 제1 영역의 적어도 코너는 제2 영역의 적어도 코너를 측방으로 터치할 수 있다.
[0520] 이전 예들 중 임의의 예에서, 제1 영역의 적어도 에지는 제2 영역의 적어도 에지를 측방으로 터치할 수 있다.
[0521] 이전 예들 중 임의의 예에서, 제1 영역 및 제2 영역은 서로 측방으로 오버랩할 수 있다.
[0522] 이전 예들 중 임의의 예에서, 컴퓨터-판독가능한 매체에 의해 야기되는 방법은, 커맨드에 대한 응답으로 제1 영역을 측방으로 이동시키는 단계; 및 제1 영역 및 제2 영역이 서로 측방으로 터치하는 한 제2 영역의 측방 포지션을 유지하는 단계를 추가로 포함할 수 있다.
[0523] 이전 예들 중 임의의 예에서, 컴퓨터-판독가능한 매체에 의해 야기되는 방법은, 제1 영역 및 제2 영역이 더 이상 서로 측방으로 터치하지 않을 때, 제1 영역과 제2 영역 간의 측방 접촉을 유지하도록 제2 영역을 측방으로 이동시키는 단계를 추가로 포함할 수 있다.
[0524] 이전 예들 중 임의의 예에서, 컴퓨터-판독가능한 매체에 의해 야기되는 방법은, 제2 영역의 하나 이상의 주변 포인트들로부터의 하나 이상의 광선들을 사용자의 뷰포인트를 향해 투사함으로써, 제1 영역 및 제2 영역이 서로 측방으로 터치하는지 여부를 결정하는 단계; 및 광선들 중 적어도 하나가 제1 영역과 교차하는지 여부를 테스트하는 단계를 추가로 포함할 수 있다.
[0525] 이전 예들 중 임의의 예에서, 하나 이상의 주변 포인트들은 제2 영역의 모든 코너들을 포함할 수 있다.
결론
[0526] 본원에서 설명되고 그리고/또는 첨부 도면들에 묘사된 프로세스들, 방법들 및 알고리즘들 각각은 하나 이상의 물리적 컴퓨팅 시스템들, 주문형 회로 및/또는 특정 그리고 특별 컴퓨터 명령들을 실행하도록 구성된 전자 하드웨어(통칭하여 하드웨어 프로세서들로 지칭됨)에 의해 실행되는 코드 모듈들로 구현되고, 그리고 이 코드 모듈들에 의해 완전히 또는 부분적으로 자동화될 수 있다. 예컨대, 컴퓨팅 시스템들은 특정 컴퓨터 명령들로 프로그래밍된 범용성 컴퓨터들(예컨대, 서버들) 또는 특수 목적 컴퓨터들, 특수 목적 회로 등을 포함할 수 있다. 코드 모듈은 실행가능 프로그램으로 컴파일링되고 링크되거나, 동적 링크 라이브러리에 설치되거나, 또는 해석형 프로그래밍 언어로 작성될 수 있다. 일부 구현들에서, 특정 동작들 및 방법들은 정해진 기능에 특정적인 회로에 의해 수행될 수 있다.
[0527] 추가로, 본 개시내용의 기능성의 특정 구현들은 충분히 수학적으로, 계산상으로 또는 기술적으로 복잡하여, (적합한 전문화된 실행가능한 명령들을 활용하는) 주문형 하드웨어 또는 하나 이상의 물리적 컴퓨팅 디바이스들은, 예컨대 수반되는 계산들의 양(volume) 또는 복잡성으로 인해 또는 실질적으로 실시간으로 결과들을 제공하기 위해 그 기능성을 수행할 필요가 있을 수 있다. 예컨대, 비디오는 많은 프레임들(각각의 프레임은 수 백만개의 픽셀들을 가짐)을 포함할 수 있고, 그리고 상업적으로 합리적인 시간량 내에 원하는 이미지 프로세싱 임무 또는 애플리케이션을 제공하기 위해, 특별하게 프로그래밍된 컴퓨터 하드웨어가 비디오 데이터를 프로세싱할 필요가 있다.
[0528] 코드 모듈들 또는 임의의 타입의 데이터는, 임의의 타입의 비-일시적 컴퓨터-판독가능 매체, 이를테면 하드 드라이브들, 고체 상태 메모리, RAM(random access memory), ROM(read only memory), 광학 디스크, 휘발성 또는 비-휘발성 스토리지, 이들의 조합들 등을 포함하는 물리적 컴퓨터 스토리지 상에 저장될 수 있다. 방법들 및 모듈들(또는 데이터)은 또한 생성된 데이터 신호들로서(예컨대, 반송파 또는 다른 아날로그 또는 디지털 전파 신호의 일부로서) 무선-기반 및 유선/케이블-기반 매체들을 포함하는 다양한 컴퓨터-판독가능 송신 매체들 상에서 송신될 수 있고, 그리고 (예컨대, 단일 또는 멀티플렉싱된 아날로그 신호의 일부로서, 또는 다수의 이산 디지털 패킷들 또는 프레임들로서) 다양한 형태들을 취할 수 있다. 개시된 프로세스들 또는 프로세스 단계들의 결과들은 임의의 타입의 비-일시적, 유형의 컴퓨터 스토리지에 영구적으로 또는 다른 방식으로 저장될 수 있거나 또는 컴퓨터-판독가능 송신 매체를 통해 통신될 수 있다.
[0529] 본원에서 설명되고 그리고/또는 첨부 도면들에 묘사된 흐름도들에서 임의의 프로세스들, 블록들, 상태들, 단계들, 또는 기능성들은 (예컨대, 논리적 또는 산술적) 특정한 기능들 또는 프로세스의 단계들을 구현하기 위한 하나 이상의 실행가능한 명령들을 포함하는 코드 모듈들, 세그먼트들, 또는 코드 부분들을 잠재적으로 표현하는 것으로 이해되어야 한다. 다양한 프로세스들, 블록들, 상태들, 단계들 또는 기능성들은 본원에서 제공된 예시적인 예들에서 조합되거나, 재배열되거나, 이들에 추가되거나, 이들로부터 삭제되거나, 수정되거나 또는 다른 방식으로 변경될 수 있다. 일부 실시예들에서, 추가적인 또는 상이한 컴퓨팅 시스템들 또는 코드 모듈들은 본원에서 설명된 기능성들 중 일부 또는 모두를 수행할 수 있다. 본원에서 설명된 방법들 및 프로세스들은 또한 임의의 특정 시퀀스로 제한되지 않고, 그와 관련된 블록들, 단계들 또는 상태들은 적합한 다른 시퀀스들로, 예컨대 직렬로, 병렬로, 또는 일부 다른 방식으로 수행될 수 있다. 임무들 또는 이벤트들은 개시된 예시적인 실시예들에 추가되거나 이들로부터 제거될 수 있다. 게다가, 본원에서 설명된 구현들에서 다양한 시스템 컴포넌트들의 분리는 예시 목적들을 위한 것이고 모든 구현들에서 그런 분리를 요구하는 것으로 이해되지 않아야 한다. 설명된 프로그램 컴포넌트들, 방법들 및 시스템들이 일반적으로 단일 컴퓨터 제품에 함께 통합되거나 다수의 컴퓨터 제품들로 패키징될 수 있다는 것이 이해되어야 한다. 많은 구현 변동들이 가능하다.
[0530] 프로세스들, 방법들 및 시스템들은 네트워크(또는 분산형) 컴퓨팅 환경에서 구현될 수 있다. 네트워크 환경들은 전사적 컴퓨터 네트워크들, 인트라넷들, LAN(local area network)들, WAN(wide area network)들, PAN(personal area network)들, 클라우드 컴퓨팅 네트워크들, 클라우드-소스드(crowd-sourced) 컴퓨팅 네트워크들, 인터넷, 및 월드 와이드 웹(World Wide Web)을 포함한다. 네트워크는 유선 또는 무선 네트워크 또는 임의의 다른 타입의 통신 네트워크일 수 있다.
[0531] 본 개시내용의 시스템들 및 방법들 각각은 몇몇 혁신적인 양상들을 가지며, 이 양상들 중 어떠한 단일 양상도 본원에서 개시된 바람직한 속성들을 위해 전적으로 책임지거나 요구되지 않는다. 상기 설명된 다양한 특징들 및 프로세스들은 서로 독립적으로 사용될 수 있거나, 또는 다양한 방식들로 조합될 수 있다. 모든 가능한 조합들 및 서브-조합들은 본 개시내용의 범위 내에 속하는 것으로 의도된다. 본 개시내용에 설명된 구현들에 대한 다양한 수정들은 당업자들에게 자명할 수 있으며, 본원에서 정의된 일반적인 원리들은 본 개시내용의 사상 또는 범위를 벗어나지 않으면서 다른 구현들에 적용될 수 있다. 따라서, 청구항들은 본원에 도시된 구현들로 제한되는 것으로 의도되는 것이 아니라, 본원에서 개시되는 본 개시내용, 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위에 부합될 것이다.
[0532] 별개의 구현들의 맥락에서 본 명세서에 설명된 특정 특징들은 또한, 단일 구현으로 조합하여 구현될 수 있다. 대조적으로, 단일 구현의 맥락에서 설명된 다양한 특징들은 또한, 별도로 다수의 구현들로 또는 임의의 적절한 서브-조합으로 구현될 수 있다. 게다가, 비록 특징들이 특정 조합들로 작용하는 것으로서 위에서 설명될 수 있고, 심지어 그와 같이 처음에 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은, 일부 경우들에서, 그 조합으로부터 제거될 수 있고, 그리고 청구된 조합은 서브-조합 또는 서브-조합의 변형과 관련될 수 있다. 단일 특징 또는 특징들의 그룹이 각각의 모든 실시예에 필요하거나 필수적인 것은 아니다.
[0533] 구체적으로 다르게 언급되지 않거나, 사용된 맥락 내에서 다르게 이해되지 않으면, 본원에서 사용된 조건어, 이를테면 특히, "할 수 있다("can", "could", "might", "may")" 및 "예컨대" 등은 일반적으로 특정 실시예들은 특정 특징들, 엘리먼트들 및/또는 단계들을 포함하지만, 다른 실시예들은 이들을 포함하지 않는다는 것을 전달하도록 의도된다. 따라서, 그런 조건어는 일반적으로, 특징들, 엘리먼트들 및/또는 단계들이 어쨌든 하나 이상의 실시예들을 위해 요구된다는 것, 또는 하나 이상의 실시예들이, 저자 입력 또는 프롬프팅을 사용하여 또는 이러한 것을 사용함 없이, 이들 특징들, 엘리먼트들 및/또는 단계들이 임의의 특정 실시예에 포함되는지 또는 이 임의의 특정 실시예에서 수행되어야 하는지를 판단하기 위한 로직을 반드시 포함하는 것을 암시하도록 의도되지 않는다. "포함하는(comprising)", "포함하는(including)", "갖는(having)" 등의 용어들은 동의어이고 오픈-엔디드(open-ended) 방식으로 포괄적으로 사용되고, 그리고 추가적인 엘리먼트들, 특징들, 작용들, 동작들 등을 배제하지 않는다. 또한, "또는"이라는 용어는 (그의 배타적인 의미가 아닌) 포괄적인 의미로 사용되어, 예컨대 리스트의 엘리먼트들을 연결하기 위해 사용될 때, "또는"이란 용어는 리스트 내 엘리먼트들 중 하나, 일부 또는 모두를 의미한다. 게다가, 본 출원 및 첨부된 청구항들에 사용된 단수 표현들은, 다르게 특정되지 않으면 "하나 이상" 또는 "적어도 하나"를 의미하는 것으로 해석될 것이다.
[0534] 본원에서 사용된 바와 같이, 아이템들의 리스트 중 "적어도 하나"를 지칭하는 구절은, 단일 멤버들을 포함하여, 이들 아이템들의 임의의 조합을 지칭한다. 예로서, "A, B 또는 C 중 적어도 하나"는 "A, B, C; A 및 B; A 및 C; B 및 C; 및 A, B 및 C를 커버하도록 의도된다. 구체적으로 다르게 언급되지 않으면, "X, Y 및 Z 중 적어도 하나"라는 구절과 같은 접속어는, 일반적으로 아이템, 용어 등이 X, Y 또는 Z 중 적어도 하나일 수 있다는 것을 전달하기 위해 사용되는 문맥으로 이해된다. 따라서, 그런 접속어는 일반적으로, 특정 실시예들이 X 중 적어도 하나, Y 중 적어도 하나 및 Z 중 적어도 하나가 각각 존재할 것을 요구하는 것을 암시하도록 의도되지 않는다.
[0535] 유사하게, 동작들이 특정 순서로 도면들에 묘사될 수 있지만, 원하는 결과들을 달성하기 위해, 그런 동작들이 도시된 특정 순서 또는 순차적 순서로 수행될 필요가 없거나, 또는 모든 예시된 동작들이 수행될 필요가 없다는 것이 인식되어야 한다. 추가로, 도면들은 순서도 형태로 하나 이상의 예시적인 프로세스들을 개략적으로 묘사할 수 있다. 그러나, 묘사되지 않은 다른 동작들은 개략적으로 예시된 예시적인 방법들 및 프로세스들에 통합될 수 있다. 예컨대, 하나 이상의 추가적인 동작들은 예시된 동작들 중 임의의 동작 이전에, 이후에, 동시에, 또는 그 중간에 수행될 수 있다. 추가적으로, 동작들은 다른 구현들에서 재배열되거나 재정렬될 수 있다. 특정 상황들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 게다가, 위에서 설명된 구현들에서 다양한 시스템 컴포넌트들의 분리는 모든 구현들에서 그런 분리를 요구하는 것으로 이해되지 않아야 하고, 그리고 설명된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 제품으로 함께 통합될 수 있거나 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다. 추가적으로, 다른 구현들은 하기의 청구항들의 범위 내에 있다. 일부 경우들에서, 청구항들에서 언급된 액션들은 상이한 순서로 수행될 수 있으며 그럼에도 불구하고 원하는 결과들을 달성할 수 있다.

Claims (38)

  1. 사용자의 물리적 환경에 가상 콘텐츠를 제공하도록 구성된 디스플레이 시스템;
    상기 사용자의 물리적 환경을 이미징하도록 구성되는 외향 이미징 시스템;
    상기 디스플레이 시스템 및 상기 외향 이미징 시스템과 통신하는 하드웨어 프로세서를 포함하며,
    상기 하드웨어 프로세서는,
    상기 외향 이미징 시스템에 의해 획득된 상기 물리적 환경의 이미지를 분석하며;
    상기 이미지의 분석에 기반하여 복수의 키들을 갖는 물리적 키보드를 인식하며;
    상기 물리적 키보드와 연관된 콘텍스추얼 정보를 결정하며;
    상기 콘텍스추얼 정보에 적어도 부분적으로 기반하여 상기 물리적 키보드에 대한 사양(specification)을 결정하며;
    상기 사양에 적어도 부분적으로 기반하여 상기 물리적 키보드의 적어도 일부의 기능들을 동적으로 구성하며;
    상기 사양에 적어도 부분적으로 기반하여 가상 키 라벨의 렌더링 위치를 결정하며; 그리고
    상기 결정된 렌더링 위치에서 상기 가상 키 라벨을 렌더링하도록 상기 디스플레이 시스템에 명령하도록,
    프로그래밍되는, 시스템.
  2. 제1 항에 있어서,
    상기 가상 콘텐츠는 증강 또는 혼합 현실 콘텐츠 중 적어도 하나를 포함하는, 시스템.
  3. 제1 항에 있어서,
    상기 이미지를 분석하기 위해, 상기 하드웨어 프로세서는 상기 물리적 키보드의 시각적 특징들에 기반하여 물리적 키보드를 식별하기 위해 오브젝트 인식기를 실행하도록 프로그래밍되는, 시스템.
  4. 제3 항에 있어서,
    상기 시각적 특징들은 상기 물리적 키보드의 표면의 형상 또는 상기 물리적 키보드의 라벨 중 적어도 하나를 포함하는, 시스템.
  5. 제1 항에 있어서,
    상기 외향 이미징 시스템은 FOV를 갖는 세계 카메라를 포함하며, 상기 FOV는 주어진 시간에 상기 세계 카메라에 의해 관찰되는 상기 물리적 환경의 일부를 포함하며, 물리적 키보드를 인식하기 위해, 상기 하드웨어 프로세서는 상기 물리적 키보드의 적어도 일부가 상기 FOV 내에 있음을 검출하도록 프로그래밍되는, 시스템.
  6. 제1 항에 있어서,
    상기 사양은 상기 복수의 키들의 레이아웃 또는 상기 복수의 키들의 기능들 중 적어도 하나를 포함하는, 시스템.
  7. 제1 항에 있어서,
    상기 물리적 키보드에 대한 사양을 결정하기 위해, 상기 하드웨어 프로세서는 상기 이미지의 분석에 기반하여 상기 물리적 키보드의 모델을 결정하며; 그리고 상기 사양을 리트리브(retrieve)하기 위해 상기 모델의 사양을 저장하는 데이터베이스에 액세스하도록 프로그래밍되는, 시스템.
  8. 제1 항에 있어서,
    상기 복수의 키들 중 적어도 하나의 키는 용량성 터치 센서를 갖는, 시스템.
  9. 제1 항에 있어서,
    상기 콘텍스추얼 정보는 상기 물리적 키보드의 포지션 또는 상기 물리적 키보드의 배향 중 적어도 하나를 포함하는, 시스템.
  10. 제1 항에 있어서,
    상기 물리적 키보드의 일부는 블랭크 키들을 포함하며, 상기 물리적 키보드의 적어도 일부의 기능들을 동적으로 구성하기 위해, 상기 하드웨어 프로세서는 커맨드 기능들을 상기 블랭크 키들에 할당하도록 프로그래밍되며, 상기 커맨드 기능들은 상기 시스템으로 하여금 사용자 인터페이스 동작을 수행하게 하는, 시스템.
  11. 제10 항에 있어서,
    가상 키 라벨의 상기 렌더링 위치는 상기 물리적 키보드의 일부에서의 블랭크 키의 위치와 일치하며, 상기 하드웨어 프로세서는 픽셀 스틱(pixel stick)을 사용하여 상기 블랭크 키 상에 상기 가상 키 라벨을 중첩시키도록 상기 디스플레이 시스템에 명령하도록 구성되는, 시스템.
  12. 사용자의 3D(three-dimensional) 물리적 환경에서 복수의 키들을 갖는 키보드의 일부를 식별하는 단계;
    콘텍스추얼 정보에 적어도 부분적으로 기반하여 상기 키보드의 일부에 대한 사양을 결정하는 단계;
    상기 사양에 적어도 부분적으로 기반하여 상기 키보드의 일부에 대한 기능들을 동적으로 구성하는 단계;
    상기 사양에 적어도 부분적으로 기반하여 상기 키보드의 일부에서 가상 키 라벨의 렌더링 위치를 결정하는 단계; 및
    상기 결정된 렌더링 위치에서 상기 가상 키 라벨을 렌더링하도록 상기 디스플레이 시스템에 명령하는 단계를 포함하는, 방법.
  13. 제12 항에 있어서,
    상기 키보드는 물리적 키보드를 포함하는, 방법.
  14. 제13 항에 있어서,
    상기 물리적 키보드는 복수의 분리 가능한 섹션들로 어셈블리되는, 방법.
  15. 제13 항에 있어서,
    상기 물리적 키보드는 상기 사용자의 3D 물리적 환경의 가상 스크린과 연관되며, 상기 가상 스크린은 상기 물리적 키보드의 작동에 대한 응답으로 사용자 인터페이스 기능을 수행하도록 구성되는, 방법.
  16. 제12 항에 있어서,
    상기 키보드는 가상 키보드를 포함하며, 상기 가상 키보드는 사용자의 환경의 표면 상에 렌더링되는, 방법.
  17. 제16 항에 있어서,
    상기 표면은 물리적 키보드의 표면을 포함하는, 방법.
  18. 제12 항에 있어서,
    키보드를 식별하는 단계는 상기 키보드의 식별 정보를 획득하기 위해 상기 키보드와 통신하는 단계, 상기 콘텍스추얼 정보에 기반하여 복수의 키보드들 중에서 상기 키보드를 선택하는 단계, 상기 키보드의 이미지에 기반하여 상기 키보드를 인식하는 단계 중 적어도 하나를 포함하는, 방법.
  19. 제18 항에 있어서,
    상기 이미지는 머리-장착 디바이스의 외향 이미징 시스템, 룸 카메라, 또는 물리적 키보드에 커플링된 카메라중 적어도 하나에 의해 획득되는, 방법.
  20. 제12 항에 있어서,
    상기 키보드의 일부는 블랭크 키들을 포함하는, 방법.
  21. 제12 항에 있어서,
    상기 콘텍스추얼 정보는 상기 키보드, 상기 사용자 또는 상기 3D 물리적 환경 중 적어도 하나와 연관되는, 방법.
  22. 명령들을 갖는 컴퓨터-판독가능한 매체로서,
    상기 명령들은, 하드웨어 프로세서에 의해 판독될 때, 상기 하드웨어 프로세서로 하여금 방법을 수행하게 하며,
    상기 방법은,
    사용자의 3D(three-dimensional) 물리적 환경에서 복수의 키들을 갖는 키보드의 일부를 식별하는 단계;
    콘텍스추얼 정보에 적어도 부분적으로 기반하여 상기 키보드의 일부에 대한 사양을 결정하는 단계;
    상기 사양에 적어도 부분적으로 기반하여 상기 키보드의 일부에 대한 기능들을 동적으로 구성하는 단계;
    상기 사양에 적어도 부분적으로 기반하여 상기 키보드의 일부에서 가상 키 라벨의 렌더링 위치를 결정하는 단계; 및
    상기 결정된 렌더링 위치에서 상기 가상 키 라벨을 렌더링하도록 상기 디스플레이 시스템에 명령하는 단계를 포함하는, 컴퓨터-판독가능한 매체.
  23. 사용자의 물리적 환경에 가상 콘텐츠를 제공하도록 구성된 웨어러블 디바이스의 디스플레이 시스템;
    상기 사용자의 포즈와 연관된 데이터를 획득하도록 구성된 포즈 센서;
    상기 디스플레이 시스템 및 상기 포즈 센서와 통신하는 하드웨어 프로세서를 포함하며;
    상기 하드웨어 프로세서는,
    상기 포즈에 기반하여 상기 사용자의 환경의 오브젝트와 상호작용하기 위한 표시를 수신하며;
    상기 오브젝트와의 상호작용을 위한 키보드를 식별하며;
    상기 키보드와 연관된 가상 콘텐츠를 결정하며;
    상기 사용자의 환경에서 상기 가상 콘텐츠의 렌더링 위치를 결정하며;
    상기 키보드의 작동을 검출하며; 그리고
    상기 키보드의 실행에 기반하여 커맨드의 실행을 명령하도록,
    프로그래밍되는, 시스템.
  24. 웨어러블 디바이스의 디스플레이 시스템을 사용하여 사용자의 물리적 환경에 가상 콘텐츠를 제공하는 단계;
    포즈 센서를 사용하여 상기 사용자의 포즈와 연관된 데이터를 획득하는 단계;
    상기 포즈에 기반하여 상기 사용자의 환경의 오브젝트와 상호작용하기 위한 표시를 하드웨어 프로세서를 사용하여 수신하는 단계;
    상기 하드웨어 프로세서를 사용하여, 오브젝트와의 상호작용을 위한 키보드를 식별하는 단계;
    상기 하드웨어 프로세서를 사용하여, 상기 키보드와 연관된 가상 콘텐츠를 결정하는 단계;
    상기 하드웨어 프로세서를 사용하여, 상기 사용자의 환경에서 상기 가상 콘텐츠의 렌더링 위치를 결정하는 단계;
    상기 하드웨어 프로세서를 사용하여 상기 키보드의 작동을 검출하는 단계; 및
    상기 하드웨어 프로세서를 사용하여, 상기 키보드의 실행에 기반하여 커맨드의 실행을 명령하는 단계를 포함하는, 방법.
  25. 하드웨어 프로세서에 의해 판독될 때, 상기 하드웨어 프로세서로 하여금 방법을 수행하게 하는 명령들을 갖는 비-일시적 컴퓨터-판독가능한 매체로서,
    상기 방법은,
    웨어러블 디바이스의 디스플레이 시스템을 사용하여 사용자의 물리적 환경에 가상 콘텐츠를 제공하는 단계;
    포즈 센서를 사용하여 사용자의 포즈와 연관된 데이터를 획득하는 단계;
    상기 포즈에 기반하여 상기 사용자의 환경에서 오브젝트와 상호작용하기 위한 표시를 수신하는 단계;
    상기 오브젝트와의 상호작용을 위한 키보드를 식별하는 단계;
    상기 키보드와 연관된 가상 콘텐츠를 결정하는 단계;
    상기 사용자 환경에서 상기 가상 콘텐츠의 렌더링 위치를 결정하는 단계;
    상기 키보드의 작동을 검출하는 단계; 및
    상기 키보드의 실행에 기반하여 커맨드의 실행을 명령하는 단계를 포함하는, 비-일시적 컴퓨터-판독가능한 매체.
  26. 가상 현실, 증강 현실 또는 혼합 현실 콘텐츠를 사용자에게 제공하도록 구성된 디스플레이;
    물리적 키보드 ― 상기 물리적 키보드는,
    상기 사용자로부터의 입력을 수신하도록 구성된 하나 이상의 키들, 및
    상기 물리적 키보드에 관한 사용자의 손들 또는 손가락들의 중 하나 이상의 위치를 나타내는 출력을 생성하도록 구성된 하나 이상의 센서들을 포함함 ―;
    하나 이상의 하드웨어 프로세서들; 및
    명령들을 저장한 하나 이상의 컴퓨터 저장 매체를 포함하며;
    상기 명령들은, 상기 시스템에 의해 실행될 때, 상기 시스템으로 하여금,
    상기 하나 이상의 센서들의 출력에 기반하여 상기 물리적 키보드에 관한 상기 하나 이상의 손들 또는 손가락들의 위치를 결정하는 동작;
    상기 디스플레이가, 상기 물리적 키보드의 제1 이미지 표현 및 상기 사용자의 손들 또는 손가락들 중 하나 이상의 배치의 제2 이미지 표현을 제공하게 하는 동작
    을 포함하는 동작들을 수행하게 하며;
    상기 제1 이미지 표현에 관한 상기 제2 이미지 표현의 위치는 상기 물리적 키보드에 관한 상기 하나 이상의 손들 또는 손가락들의 위치를 나타내는, 시스템.
  27. 가상 현실, 증강 현실 또는 혼합 현실 콘텐츠를 사용자에게 제공하도록 구성된 디스플레이;
    하나 이상의 하드웨어 프로세서들; 및
    명령들을 저장한 하나 이상의 컴퓨터 저장 매체를 포함하며;
    상기 명령들은, 상기 시스템에 의해 실행될 때, 상기 시스템으로 하여금,
    상기 시스템과 통신하는 물리적 키보드로부터, 상기 물리적 키보드에 관한 상기 사용자의 손들 또는 손가락들 중 하나 이상의 위치를 나타내는 정보를 수신하는 동작;
    상기 수신된 정보에 기반하여 상기 물리적 키보드에 관한 상기 하나 이상의 손들 또는 손가락들의 위치를 결정하는 동작; 및
    상기 디스플레이가, 상기 물리적 키보드의 제1 이미지 표현 및 상기 사용자의 손들 또는 손가락들 중 하나 이상의 배치의 제2 이미지 표현을 제공하게 하는 동작을 포함하는
    동작들을 수행하게 하며;
    상기 제1 이미지 표현에 관한 상기 제2 이미지 표현의 위치는 상기 물리적 키보드에 관한 상기 하나 이상의 손들 또는 손가락들의 위치를 나타내는, 시스템.
  28. 하나 이상의 센서들로부터, 물리적 키보드에 관한 사용자의 손들 또는 손가락들 중 하나 이상의 위치를 나타내는 입력을 수신하는 단계;
    상기 하나 이상의 센서들의 입력에 기반하여 상기 물리적 키보드에 관한 상기 하나 이상의 손들 또는 손가락들의 위치를 결정하는 단계; 및
    디스플레이로 하여금, 상기 물리적 키보드의 제1 이미지 표현 및 상기 사용자의 손들 또는 손가락들 중 하나 이상의 배치의 제2 이미지 표현을 제공하게 하는 단계를 포함하며, 상기 제1 이미지 표현에 관한 상기 제2 이미지 표현의 위치는 상기 물리적 키보드에 관한 상기 하나 이상의 손들 또는 손가락들의 위치를 나타내는, 방법.
  29. 하드웨어 프로세서에 의해 판독될 때, 상기 하드웨어 프로세서로 하여금 방법을 수행하게 하는 명령들을 갖는 비-일시적 컴퓨터-판독가능한 매체로서,
    상기 방법은,
    하나 이상의 센서들로부터, 물리적 키보드에 관한 사용자의 손들 또는 손가락들 중 하나 이상의 위치를 나타내는 입력을 수신하는 단계;
    상기 하나 이상의 센서들의 입력에 기반하여 상기 물리적 키보드에 관한 상기 하나 이상의 손들 또는 손가락들의 위치를 결정하는 단계; 및
    디스플레이로 하여금, 상기 물리적 키보드의 제1 이미지 표현 및 상기 사용자의 손들 또는 손가락들 중 하나 이상의 배치의 제2 이미지 표현을 제공하는 단계를 포함하며, 상기 제1 이미지 표현에 관한 상기 제2 이미지 표현의 위치는 상기 물리적 키보드에 관한 상기 하나 이상의 손들 또는 손가락들의 위치를 나타내는, 비-일시적 컴퓨터-판독가능한 매체.
  30. 머리 장착 디스플레이(HMD)로서,
    프레임;
    상기 프레임에 의해 지지되고 사용자의 눈에 이미지를 투사하도록 구성된 투사 광학기;
    상기 HMD와 동작 가능하게 연결된 입력 디바이스와의 상호작용을 검출하기 위한 센서;
    명령들을 저장하도록 구성된 비-일시적 데이터 스토리지; 및
    상기 비-일시적 데이터 스토리지에 동작 가능하게 커플링된 적어도 하나의 하드웨어 프로세서를 포함하며;
    상기 적어도 하나의 하드웨어 프로세서는,
    상기 사용자 상호작용을 나타내는 신호를 상기 센서로부터 수신하며;
    상기 신호에 기반하여 상기 사용자 상호작용의 타입을 결정하며; 그리고
    상기 입력 디바이스에 햅틱 피드백 신호를 송신하도록,
    상기 명령들에 의해 구성되며;
    상기 햅틱 피드백 신호는 상기 입력 디바이스를 통해 상기 사용자에게 통신 가능한 햅틱 응답을 생성하기 위한 하나 이상의 파라미터들을 포함하는, 머리 장착 디스플레이(HMD).
  31. 센서로부터 입력 디바이스를 통해, 웨어러블 디스플레이 시스템과의 사용자 상호작용을 나타내는 신호를 수신하는 단계;
    상기 신호에 기반하여 상기 사용자 상호작용의 타입을 결정하는 단계; 및
    상기 입력 디바이스에 햅틱 피드백 신호를 송신하는 단계를 포함하며,
    상기 햅틱 피드백 신호는 상기 입력 디바이스를 통해 상기 사용자에게 통신 가능한 햅틱 응답을 생성하기 위한 하나 이상의 파라미터들을 포함하는, 방법.
  32. 하드웨어 프로세서에 의해 판독될 때, 상기 하드웨어 프로세서로 하여금 방법을 수행하게 하는 명령들을 갖는 비-일시적 컴퓨터-판독가능한 매체로서,
    상기 방법은,
    센서로부터 입력 디바이스를 통해, 웨어러블 디스플레이 시스템과의 사용자 상호작용을 나타내는 신호를 수신하는 단계;
    상기 신호에 기반하여 상기 사용자 상호작용의 타입을 결정하는 단계; 및
    상기 입력 디바이스에 햅틱 피드백 신호를 송신하는 단계를 포함하며;
    상기 햅틱 피드백 신호는 상기 입력 디바이스를 통해 상기 사용자에게 통신 가능한 햅틱 응답을 생성하기 위한 하나 이상의 파라미터들을 포함하는, 비-일시적 컴퓨터-판독가능한 매체.
  33. 사용자에게 가상 모니터를 제공하도록 구성된 디스플레이 시스템;
    상기 사용자의 물리적 환경을 이미징하도록 구성되는 외향 이미징 시스템;
    상기 디스플레이 시스템 및 상기 외향 이미징 시스템과 통신하는 하드웨어 프로세서를 포함하며;
    상기 하드웨어 프로세서는,
    상기 외향 이미징 시스템에 의해 획득된 물리적 환경의 제1 이미지를 수신하며;
    상기 제1 이미지를 사용하여 상기 사용자의 환경에서 물리적 키보드의 제1 위치를 결정하며;
    상기 물리적 키보드의 제1 위치에 적어도 부분적으로 기반하여 상기 가상 모니터의 제1 렌더링 위치를 결정하며;
    상기 제1 렌더링 위치 및 상기 가상 모니터의 사이즈 선호도에 적어도 부분적으로 기반하여 상기 가상 모니터의 사이즈를 결정하며 ― 상기 가상 모니터는 사용자 인터페이스 기능을 위해 구성됨 ―; 그리고
    상기 제1 렌더링 위치에서 결정된 사이즈로 상기 가상 모니터를 렌더링하도록 상기 디스플레이 시스템에 명령하도록,
    프로그래밍되는, 시스템.
  34. 가상 디스플레이 오브젝트의 사용자의 환경에서의 입력 디바이스의 제1 위치를 수신하는 단계;
    상기 입력 디바이스의 제1 위치에 적어도 부분적으로 기반하여 상기 가상 디스플레이 오브젝트의 제1 렌더링 위치를 결정하는 단계;
    상기 제1 렌더링 위치에 적어도 부분적으로 기반하여 상기 가상 디스플레이 오브젝트의 사이즈를 결정하는 단계; 및
    상기 디스플레이 시스템으로 하여금 상기 제1 렌더링 위치에서 상기 가상 디스플레이를 렌더링하게 하는 단계를 포함하는, 방법.
  35. 컴퓨터에 의해 준비될 때, 상기 컴퓨터로 하여금 방법을 수행하게 하는 명령들을 갖는 비-일시적 컴퓨터-판독가능한 매체로서,
    상기 방법은,
    가상 디스플레이 오브젝트의 사용자의 환경에서의 입력 디바이스의 제1 위치를 수신하는 단계;
    상기 입력 디바이스의 제1 위치에 적어도 부분적으로 기반하여 상기 가상 디스플레이 오브젝트의 제1 렌더링 위치를 결정하는 단계;
    상기 제1 렌더링 위치에 적어도 부분적으로 기반하여 상기 가상 디스플레이 오브젝트의 사이즈를 결정하는 단계; 및
    상기 디스플레이 시스템으로 하여금 상기 제1 렌더링 위치에서 상기 가상 디스플레이를 렌더링하게 하는 단계를 포함하는, 비-일시적 컴퓨터-판독가능한 매체.
  36. 다수의 깊이들에 있는 데이터를 디스플레이할 수 있는 가상 현실, 증강 현실 또는 혼합 현실 시스템을 사용하여, 제1 깊이에서 제1 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하는 단계; 및
    제2 깊이에서 제2 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하는 단계를 포함하며;
    상기 제1 및 제2 애플리케이션들은 서로 관련되며; 그리고
    상기 제2 깊이는 상기 제1 깊이로부터 고정된 거리에 있도록 선택되는, 방법.
  37. 다수의 깊이들에 있는 데이터를 디스플레이할 수 있는 가상 현실, 증강 현실 또는 혼합 현실 디스플레이;
    하드웨어 프로세서를 포함하며;
    상기 하드웨어 프로세서는,
    제1 깊이에서 제1 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하며; 그리고
    제2 깊이에서 제2 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하도록 구성되며;
    상기 제1 및 제2 애플리케이션들은 서로 관련되며; 그리고
    상기 제2 깊이는 상기 제1 깊이로부터 고정된 거리에 있도록 선택되는, 시스템.
  38. 하드웨어 프로세서에 의해 판독될 때, 상기 하드웨어 프로세서로 하여금 방법을 수행하게 하는 명령들을 갖는 비-일시적 컴퓨터-판독가능한 매체로서,
    상기 방법은,
    다수의 깊이들에 있는 데이터를 디스플레이할 수 있는 가상 현실, 증강 현실 또는 혼합 현실 시스템을 사용하여, 제1 깊이에서 제1 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하는 단계; 및
    제2 깊이에서 제2 애플리케이션과 연관된 이미지 데이터의 적어도 일부를 디스플레이하는 단계를 포함하며;
    상기 제1 및 제2 애플리케이션들은 서로 관련되며; 그리고
    상기 제2 깊이는 상기 제1 깊이로부터 고정된 거리에 있도록 선택되는, 비-일시적 컴퓨터-판독가능한 매체.
KR1020197035797A 2017-05-19 2018-05-18 가상, 증강 및 혼합 현실 디스플레이 시스템들을 위한 키보드들 KR102552551B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762508974P 2017-05-19 2017-05-19
US62/508,974 2017-05-19
US201762509648P 2017-05-22 2017-05-22
US62/509,648 2017-05-22
US201862644597P 2018-03-19 2018-03-19
US62/644,597 2018-03-19
PCT/US2018/033536 WO2018213801A1 (en) 2017-05-19 2018-05-18 Keyboards for virtual, augmented, and mixed reality display systems

Publications (2)

Publication Number Publication Date
KR20200010296A true KR20200010296A (ko) 2020-01-30
KR102552551B1 KR102552551B1 (ko) 2023-07-06

Family

ID=64274803

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197035797A KR102552551B1 (ko) 2017-05-19 2018-05-18 가상, 증강 및 혼합 현실 디스플레이 시스템들을 위한 키보드들

Country Status (8)

Country Link
US (1) US11610371B2 (ko)
EP (1) EP3625658A4 (ko)
JP (2) JP2020521217A (ko)
KR (1) KR102552551B1 (ko)
CN (2) CN117891335A (ko)
AU (1) AU2018270286A1 (ko)
CA (1) CA3061332A1 (ko)
WO (1) WO2018213801A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022019636A1 (ko) * 2020-07-22 2022-01-27 삼성전자 주식회사 가상 사용자 인터랙션을 수행하기 위한 방법 및 그 장치

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6484603B2 (ja) * 2016-12-26 2019-03-13 新日鉄住金ソリューションズ株式会社 情報処理装置、システム、情報処理方法、及び、プログラム
US11610371B2 (en) 2017-05-19 2023-03-21 Magic Leap, Inc. Keyboards for virtual, augmented, and mixed reality display systems
JP7005224B2 (ja) * 2017-08-22 2022-01-21 キヤノン株式会社 情報処理装置、システム、画像処理方法、コンピュータプログラム、及び記憶媒体
JP7118650B2 (ja) * 2018-01-18 2022-08-16 キヤノン株式会社 表示装置
US11614793B2 (en) * 2018-02-28 2023-03-28 Logitech Europe S.A. Precision tracking of user interaction with a virtual input device
US10643362B2 (en) * 2018-03-26 2020-05-05 Lenovo (Singapore) Pte Ltd Message location based on limb location
JP7209474B2 (ja) * 2018-03-30 2023-01-20 株式会社スクウェア・エニックス 情報処理プログラム、情報処理方法及び情報処理システム
US10755486B2 (en) * 2018-04-19 2020-08-25 Disney Enterprises, Inc. Occlusion using pre-generated 3D models for augmented reality
US10783712B2 (en) 2018-06-27 2020-09-22 Facebook Technologies, Llc Visual flairs for emphasizing gestures in artificial-reality environments
US10712901B2 (en) 2018-06-27 2020-07-14 Facebook Technologies, Llc Gesture-based content sharing in artificial reality environments
US10635895B2 (en) 2018-06-27 2020-04-28 Facebook Technologies, Llc Gesture-based casting and manipulation of virtual content in artificial-reality environments
US11393170B2 (en) 2018-08-21 2022-07-19 Lenovo (Singapore) Pte. Ltd. Presentation of content based on attention center of user
KR102653267B1 (ko) 2018-11-28 2024-04-02 삼성전자 주식회사 전자 장치의 키 입력 방법 및 이를 사용하는 전자 장치
US10902250B2 (en) * 2018-12-21 2021-01-26 Microsoft Technology Licensing, Llc Mode-changeable augmented reality interface
US10901495B2 (en) * 2019-01-10 2021-01-26 Microsofttechnology Licensing, Llc Techniques for multi-finger typing in mixed-reality
JP7446835B2 (ja) 2019-02-05 2024-03-11 キヤノン株式会社 画像形成装置
US11137908B2 (en) * 2019-04-15 2021-10-05 Apple Inc. Keyboard operation with head-mounted device
US10885716B1 (en) 2019-07-01 2021-01-05 Microsoft Technology Licensing, Llc Mixed reality system user interface placement
CN112241200A (zh) * 2019-07-17 2021-01-19 苹果公司 头戴式设备的对象跟踪
US11270515B2 (en) * 2019-09-04 2022-03-08 Qualcomm Incorporated Virtual keyboard
US11216065B2 (en) * 2019-09-26 2022-01-04 Lenovo (Singapore) Pte. Ltd. Input control display based on eye gaze
US11379033B2 (en) * 2019-09-26 2022-07-05 Apple Inc. Augmented devices
WO2021086304A1 (en) * 2019-10-28 2021-05-06 Hewlett-Packard Development Company, L.P. Provision of feedback to an actuating object
CN110852963B (zh) * 2019-10-29 2021-06-29 天津大学 一种基于相关最大性的湍流退化图像复原方法
US11144115B2 (en) 2019-11-01 2021-10-12 Facebook Technologies, Llc Porting physical object into virtual reality
US11816757B1 (en) * 2019-12-11 2023-11-14 Meta Platforms Technologies, Llc Device-side capture of data representative of an artificial reality environment
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
CN111427446B (zh) * 2020-03-04 2023-10-13 青岛小鸟看看科技有限公司 头戴显示设备的虚拟键盘显示方法、装置及头戴显示设备
CN111443796B (zh) * 2020-03-10 2023-04-28 维沃移动通信有限公司 一种信息处理方法及装置
US11275945B2 (en) * 2020-03-26 2022-03-15 Varjo Technologies Oy Imaging system and method for producing images with virtually-superimposed functional elements
CN111580669A (zh) * 2020-05-12 2020-08-25 南京睿悦信息技术有限公司 虚拟现实和增强现实移动端平面应用的交互方法和装置
CN111651048B (zh) * 2020-06-08 2024-01-05 浙江商汤科技开发有限公司 多虚拟对象排列展示方法、装置、电子设备及存储介质
US20210401405A1 (en) * 2020-06-26 2021-12-30 Siemens Medical Solutions Usa, Inc. Image classification-dependent user interface in ultrasound imaging
US11467403B2 (en) * 2020-08-20 2022-10-11 Htc Corporation Operating method and electronic system
US11582245B2 (en) * 2020-09-15 2023-02-14 Meta Platforms Technologies, Llc Artificial reality collaborative working environments
US11755124B1 (en) 2020-09-25 2023-09-12 Apple Inc. System for improving user input recognition on touch surfaces
US11537258B2 (en) * 2020-10-16 2022-12-27 Meta Platforms Technologies, Llc Hand presence over keyboard inclusiveness
US11213733B1 (en) * 2020-11-05 2022-01-04 Liteboxer Technologies, Inc. Surface interactions in a virtual reality (VR) environment
CN112445341B (zh) * 2020-11-23 2022-11-08 青岛小鸟看看科技有限公司 虚拟现实设备的键盘透视方法、装置及虚拟现实设备
US11854230B2 (en) * 2020-12-01 2023-12-26 Meta Platforms Technologies, Llc Physical keyboard tracking
EP4288950A1 (en) 2021-02-08 2023-12-13 Sightful Computers Ltd User interactions in extended reality
JP2024506630A (ja) * 2021-02-08 2024-02-14 サイトフル コンピューターズ リミテッド 生産性のためのエクステンデッド・リアリティ
CN117043709A (zh) * 2021-02-08 2023-11-10 视域电脑有限公司 用于生产力的扩展现实
JP2024507749A (ja) 2021-02-08 2024-02-21 サイトフル コンピューターズ リミテッド エクステンデッドリアリティにおけるコンテンツ共有
WO2023009580A2 (en) 2021-07-28 2023-02-02 Multinarity Ltd Using an extended reality appliance for productivity
CN113589958A (zh) * 2021-08-05 2021-11-02 西交利物浦大学 文本输入方法、装置、设备及存储介质
US11797175B2 (en) 2021-11-04 2023-10-24 Microsoft Technology Licensing, Llc Intelligent keyboard attachment for mixed reality input
EP4339873A4 (en) * 2021-11-09 2024-05-01 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR PROVIDING CONTENT RELATED TO AN AUGMENTED REALITY SERVICE BETWEEN AN ELECTRONIC DEVICE AND A PORTABLE ELECTRONIC DEVICE
US11954256B2 (en) * 2021-12-17 2024-04-09 Google Llc Haptic interface for computing devices
US11948263B1 (en) 2023-03-14 2024-04-02 Sightful Computers Ltd Recording the complete physical and extended reality environments of a user
US20230334795A1 (en) 2022-01-25 2023-10-19 Multinarity Ltd Dual mode presentation of user interface elements
US20230324986A1 (en) * 2022-04-08 2023-10-12 Meta Platforms Technologies, Llc Artificial Reality Input Using Multiple Modalities
US20230343005A1 (en) * 2022-04-22 2023-10-26 Zebra Technologies Corporation Methods and Systems for Automated Structured Keyboard Layout Generation
US11855831B1 (en) 2022-06-10 2023-12-26 T-Mobile Usa, Inc. Enabling an operator to resolve an issue associated with a 5G wireless telecommunication network using AR glasses
US11886767B2 (en) 2022-06-17 2024-01-30 T-Mobile Usa, Inc. Enable interaction between a user and an agent of a 5G wireless telecommunication network using augmented reality glasses
US20240050856A1 (en) * 2022-08-12 2024-02-15 Snap Inc. External controller for an eyewear device
WO2024049463A1 (en) * 2022-08-30 2024-03-07 Google Llc Virtual keyboard
CN116309850B (zh) * 2023-05-17 2023-08-08 中数元宇数字科技(上海)有限公司 一种虚拟触控识别方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970045578U (ko) * 1995-12-15 1997-07-31 모듈 키보드
US20140035819A1 (en) * 2012-08-03 2014-02-06 Research In Motion Limited Method and Apparatus Pertaining to an Augmented-Reality Keyboard
KR20140090022A (ko) * 2013-01-08 2014-07-16 삼성테크윈 주식회사 3차원 전자지도상에 촬영영상을 표시하는 방법 및 장치
KR20150110285A (ko) * 2014-03-21 2015-10-02 삼성전자주식회사 웨어러블 디바이스에서 가상의 입력 인터페이스를 제공하는 방법 및 이를 위한 웨어러블 디바이스

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5466078A (en) * 1989-07-07 1995-11-14 Health Care Keyboard Company Input keyboard apparatus for information processing and other keyboard devices
US6222525B1 (en) 1992-03-05 2001-04-24 Brad A. Armstrong Image controllers with sheet connected sensors
US5670988A (en) 1995-09-05 1997-09-23 Interlink Electronics, Inc. Trigger operated electronic device
US6388657B1 (en) * 1997-12-31 2002-05-14 Anthony James Francis Natoli Virtual reality keyboard system and method
US6614422B1 (en) * 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
USD514570S1 (en) 2004-06-24 2006-02-07 Microsoft Corporation Region of a fingerprint scanning device with an illuminated ring
US8696113B2 (en) 2005-10-07 2014-04-15 Percept Technologies Inc. Enhanced optical and perceptual digital eyewear
US11428937B2 (en) 2005-10-07 2022-08-30 Percept Technologies Enhanced optical and perceptual digital eyewear
US20070081123A1 (en) 2005-10-07 2007-04-12 Lewis Scott W Digital eyewear
US20100265182A1 (en) 2009-04-20 2010-10-21 Microsoft Corporation Context-based state change for an adaptive input device
US20150309316A1 (en) * 2011-04-06 2015-10-29 Microsoft Technology Licensing, Llc Ar glasses with predictive control of external device based on event input
JP5407950B2 (ja) * 2010-03-11 2014-02-05 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US8982160B2 (en) * 2010-04-16 2015-03-17 Qualcomm, Incorporated Apparatus and methods for dynamically correlating virtual keyboard dimensions to user finger size
JP2012008745A (ja) 2010-06-23 2012-01-12 Softbank Mobile Corp ユーザインターフェース装置及び電子機器
US20120113008A1 (en) * 2010-11-08 2012-05-10 Ville Makinen On-screen keyboard with haptic effects
US9304319B2 (en) 2010-11-18 2016-04-05 Microsoft Technology Licensing, Llc Automatic focus improvement for augmented reality displays
NZ725592A (en) 2010-12-24 2018-05-25 Magic Leap Inc An ergonomic head mounted display device and optical system
US10156722B2 (en) 2010-12-24 2018-12-18 Magic Leap, Inc. Methods and systems for displaying stereoscopy with a freeform optical system with addressable focus for virtual and augmented reality
EP2659302A1 (en) 2010-12-30 2013-11-06 Danmarks Tekniske Universitet System and device with three-dimensional image display
EP3462286A1 (en) 2011-05-06 2019-04-03 Magic Leap, Inc. Massive simultaneous remote digital presence world
US10795448B2 (en) 2011-09-29 2020-10-06 Magic Leap, Inc. Tactile glove for human-computer interaction
BR112014010230A8 (pt) 2011-10-28 2017-06-20 Magic Leap Inc sistema e método para realidade virtual e aumentada
KR102223290B1 (ko) 2012-04-05 2021-03-04 매직 립, 인코포레이티드 능동 포비에이션 능력을 갖는 와이드-fov(field of view) 이미지 디바이스들
US9671566B2 (en) 2012-06-11 2017-06-06 Magic Leap, Inc. Planar waveguide apparatus with diffraction element(s) and system employing same
NZ702897A (en) 2012-06-11 2017-03-31 Magic Leap Inc Multiple depth plane three-dimensional display using a wave guide reflector array projector
US9329678B2 (en) * 2012-08-14 2016-05-03 Microsoft Technology Licensing, Llc Augmented reality overlay for control devices
CN104813218A (zh) 2012-09-11 2015-07-29 奇跃公司 人机工程学的头戴显示设备和光学系统
US9378592B2 (en) * 2012-09-14 2016-06-28 Lg Electronics Inc. Apparatus and method of providing user interface on head mounted display and head mounted display thereof
US10013138B2 (en) * 2012-10-22 2018-07-03 Atheer, Inc. Method and apparatus for secure data entry using a virtual interface
KR102141992B1 (ko) 2013-01-15 2020-08-06 매직 립, 인코포레이티드 초고해상도 스캐닝 섬유 디스플레이
US20140205138A1 (en) * 2013-01-18 2014-07-24 Microsoft Corporation Detecting the location of a keyboard on a desktop
EP4193906A1 (en) 2013-03-11 2023-06-14 Magic Leap, Inc. Method for augmented and virtual reality
CN107656618B (zh) 2013-03-15 2021-03-23 奇跃公司 显示系统和方法
US10262462B2 (en) * 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US9874749B2 (en) 2013-11-27 2018-01-23 Magic Leap, Inc. Virtual and augmented reality systems and methods
US20150088547A1 (en) * 2013-09-22 2015-03-26 Ricoh Company, Ltd. Mobile Information Gateway for Home Healthcare
US9470906B2 (en) 2013-10-16 2016-10-18 Magic Leap, Inc. Virtual or augmented reality headsets having adjustable interpupillary distance
US9857591B2 (en) 2014-05-30 2018-01-02 Magic Leap, Inc. Methods and system for creating focal planes in virtual and augmented reality
KR102651578B1 (ko) 2013-11-27 2024-03-25 매직 립, 인코포레이티드 가상 및 증강 현실 시스템들 및 방법들
WO2015117043A1 (en) 2014-01-31 2015-08-06 Magic Leap, Inc. Multi-focal display system and method
CN106233189B (zh) 2014-01-31 2020-06-26 奇跃公司 多焦点显示系统和方法
US10203762B2 (en) 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US20150261293A1 (en) 2014-03-12 2015-09-17 Weerapan Wilairat Remote device control via gaze detection
TW201537939A (zh) * 2014-03-20 2015-10-01 Gogolook Co Ltd 行動裝置及其來電處理方法
US10564714B2 (en) * 2014-05-09 2020-02-18 Google Llc Systems and methods for biomechanically-based eye signals for interacting with real and virtual objects
WO2016018488A2 (en) 2014-05-09 2016-02-04 Eyefluence, Inc. Systems and methods for discerning eye signals and continuous biometric identification
USD759657S1 (en) 2014-05-19 2016-06-21 Microsoft Corporation Connector with illumination region
NZ727350A (en) 2014-05-30 2020-08-28 Magic Leap Inc Methods and systems for generating virtual content display with a virtual or augmented reality apparatus
USD752529S1 (en) 2014-06-09 2016-03-29 Comcast Cable Communications, Llc Electronic housing with illuminated region
US10852838B2 (en) * 2014-06-14 2020-12-01 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US10416760B2 (en) * 2014-07-25 2019-09-17 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment
JP5987879B2 (ja) 2014-09-17 2016-09-07 株式会社寺岡精工 ラベル発行装置
JP2016170528A (ja) 2015-03-11 2016-09-23 株式会社リコー 頭部装着型表示装置及び頭部装着型表示装置における外部機器との接続方法
US9697383B2 (en) * 2015-04-14 2017-07-04 International Business Machines Corporation Numeric keypad encryption for augmented reality devices
US20170052701A1 (en) 2015-08-19 2017-02-23 Vrideo Dynamic virtual keyboard graphical user interface
US10324293B2 (en) * 2016-02-23 2019-06-18 Compedia Software and Hardware Development Ltd. Vision-assisted input within a virtual world
USD805734S1 (en) 2016-03-04 2017-12-26 Nike, Inc. Shirt
USD794288S1 (en) 2016-03-11 2017-08-15 Nike, Inc. Shoe with illuminable sole light sequence
US10317989B2 (en) * 2016-03-13 2019-06-11 Logitech Europe S.A. Transition between virtual and augmented reality
US10672149B2 (en) * 2016-06-22 2020-06-02 Huawei Technologies Co., Ltd. Head mounted display device and processing method of head mounted display device
CN109478091A (zh) * 2016-07-12 2019-03-15 富士胶片株式会社 图像显示系统、以及头戴式显示器的控制装置及其工作方法和工作程序
CN107656687B (zh) * 2016-07-26 2020-04-24 南宁富桂精密工业有限公司 虚拟键盘生成的方法及系统
US10237509B1 (en) * 2016-08-05 2019-03-19 Apple Inc. Systems with keyboards and head-mounted displays
US10928888B2 (en) * 2016-11-14 2021-02-23 Logitech Europe S.A. Systems and methods for configuring a hub-centric virtual/augmented reality environment
US10586220B2 (en) * 2016-12-02 2020-03-10 Bank Of America Corporation Augmented reality dynamic authentication
US10311223B2 (en) * 2016-12-02 2019-06-04 Bank Of America Corporation Virtual reality dynamic authentication
US10410422B2 (en) * 2017-01-09 2019-09-10 Samsung Electronics Co., Ltd. System and method for augmented reality control
EP3577542A1 (en) * 2017-03-29 2019-12-11 Apple Inc. Device having integrated interface system
US11610371B2 (en) 2017-05-19 2023-03-21 Magic Leap, Inc. Keyboards for virtual, augmented, and mixed reality display systems
US11144115B2 (en) * 2019-11-01 2021-10-12 Facebook Technologies, Llc Porting physical object into virtual reality

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970045578U (ko) * 1995-12-15 1997-07-31 모듈 키보드
US20140035819A1 (en) * 2012-08-03 2014-02-06 Research In Motion Limited Method and Apparatus Pertaining to an Augmented-Reality Keyboard
KR20140090022A (ko) * 2013-01-08 2014-07-16 삼성테크윈 주식회사 3차원 전자지도상에 촬영영상을 표시하는 방법 및 장치
KR20150110285A (ko) * 2014-03-21 2015-10-02 삼성전자주식회사 웨어러블 디바이스에서 가상의 입력 인터페이스를 제공하는 방법 및 이를 위한 웨어러블 디바이스

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022019636A1 (ko) * 2020-07-22 2022-01-27 삼성전자 주식회사 가상 사용자 인터랙션을 수행하기 위한 방법 및 그 장치
US11954324B2 (en) 2020-07-22 2024-04-09 Samsung Electronics Co., Ltd. Method for performing virtual user interaction, and device therefor

Also Published As

Publication number Publication date
KR102552551B1 (ko) 2023-07-06
CN110832441B (zh) 2023-12-26
WO2018213801A1 (en) 2018-11-22
AU2018270286A1 (en) 2019-11-14
JP2023100884A (ja) 2023-07-19
US20180350150A1 (en) 2018-12-06
CN117891335A (zh) 2024-04-16
EP3625658A4 (en) 2021-03-17
JP2020521217A (ja) 2020-07-16
JP7411133B2 (ja) 2024-01-10
CN110832441A (zh) 2020-02-21
US11610371B2 (en) 2023-03-21
CA3061332A1 (en) 2018-11-22
EP3625658A1 (en) 2020-03-25

Similar Documents

Publication Publication Date Title
JP7411133B2 (ja) 仮想現実ディスプレイシステム、拡張現実ディスプレイシステム、および複合現実ディスプレイシステムのためのキーボード
US11741917B2 (en) Eclipse cursor for mixed reality displays
US11340694B2 (en) Visual aura around field of view
EP3549109B1 (en) Virtual user input controls in a mixed reality environment
US11567627B2 (en) Eclipse cursor for virtual content in mixed reality displays
JP7492558B2 (ja) 視野周辺の視覚的背光
KR102666960B1 (ko) 시야 주위의 시각적 아우라
KR20240070723A (ko) 시야 주위의 시각적 아우라

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant