KR20210071083A - 가상 현실 시스템의 안전 경계를 수정하기 위한 시스템 및 방법 - Google Patents

가상 현실 시스템의 안전 경계를 수정하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20210071083A
KR20210071083A KR1020217016331A KR20217016331A KR20210071083A KR 20210071083 A KR20210071083 A KR 20210071083A KR 1020217016331 A KR1020217016331 A KR 1020217016331A KR 20217016331 A KR20217016331 A KR 20217016331A KR 20210071083 A KR20210071083 A KR 20210071083A
Authority
KR
South Korea
Prior art keywords
virtual boundary
world environment
real
elevation
virtual
Prior art date
Application number
KR1020217016331A
Other languages
English (en)
Inventor
존 폴러드
지미 케이. 윤
제이슨 동 욱 김
Original Assignee
페이스북 테크놀로지스, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 페이스북 테크놀로지스, 엘엘씨 filed Critical 페이스북 테크놀로지스, 엘엘씨
Publication of KR20210071083A publication Critical patent/KR20210071083A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • 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
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • 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/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/67ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for remote operation
    • 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
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Business, Economics & Management (AREA)
  • Optics & Photonics (AREA)
  • Epidemiology (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Geometry (AREA)

Abstract

개시된 컴퓨터 구현 방법은 실세계 환경의 평면을 나타내는 기준 고도의 표시를 수신하고 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하는 것을 포함할 수 있다. 방법은 사용자로부터 가상 경계를 수정하기 위한 요청을 수신하고, 사용자로부터의 요청에 응답하여 지향방향 데이터를 생성하기 위해 방향 표시기의 지향방향을 모니터링하는 것을 포함할 수 있다. 방법은 또한 기준 고도 및 지향방향 데이터에 기초하여 가상 경계를 수정하는 것을 포함할 수 있다. 다양한 다른 방법들, 시스템들, 및 컴퓨트 판독 가능한 매체들이 또한 개시된다.

Description

가상 현실 시스템의 안전 경계를 수정하기 위한 시스템 및 방법
관련 출원에 대한 상호 참조
본 출원은 2018년 10월 31일에 출원된 미국 정규출원 번호 16/177,424의 이익을 주장하며, 그 개시 내용은 그 전체가 참조에 의해 통합된다.
본 발명은 가상 현실 시스템의 안전 경계(safety boundary)를 수정하기 위한 시스템 및 방법에 관한 것이다.
가상 현실(VR) 시스템들 및 증강 현실(AR) 시스템들은 사용자들에게 일반 TV 또는 비디오 게임이 제공할 수 있는 것보다 더 몰입감이 있는 경험을 제공 할 수 있다. 헤드 마운트 디스플레이(HMD)를 착용한 상태에서 사용자는 자신의 머리를 임의의 방향으로 향하게 함으로써 캡처된 장면 또는 인공적으로 생성된 장면의 상이한 부분들을 볼 수 있으며, 이는 마치 사용자가 실세계 환경(real-world environment)을 보기 위해 자연스럽게 행동하는 것과 같다. 장면은 사용자 머리의 포지션 및 지향방향에 기초하여 HMD에서 사용자에게 제시될 수 있으며, 장면은 사용자 머리의 포지션 및 지향방향(orientation)의 변화에 따라 변경된다. 모바일 VR 시스템은 또한 사용자가 실세계 환경에서 걸어 다닐 때 사용자의 움직임을 고려할 수 있으며, 그에 따라 사용자가 가상 환경에서 자신이 움직이고 있는 것으로 인지하게 한다.
몰입형이지만, 이러한 특징들은 사용자의 실세계 환경의 중요한 측면들을 사용자로 하여금 잊어 버리게 하는 방식으로 사용자를 가상 환경에 끌어들일 수 있다. 예를 들어, 가상 환경의 한 포지션에서 다른 포지션으로 걸어가려는 사용자는, 실세계 환경에 대한 사용자의 인식 부족으로 인해, 테이블, 소파, 또는 벽과 같은 실세계 장애물들을 고려하는 데 실패할 수 있다(또는 볼 수 없다). 이러한 것은 실세계 환경 또는 실세계 환경의 피처(feature)와 충돌을 일으킬 수 있다.
이하에서 보다 상세히 설명되는 바와 같이, 본 개시는 HMD 디바이스를 착용한 사용자가 실세계 환경에서 가상 경계(virtual boundary)를 수정할 수 있도록 하는 시스템 및 방법을 설명하며, 이는 실세계 환경에서 피처들 또는 장애물들과의 충돌을 방지하는 데 사용될 수 있다.
일례에서, 가상 경계를 수정하기 위한 컴퓨터 구현 방법은, (1) 실세계 환경의 평면을 나타내는 기준 고도의 표시를 수신하는 단계, (2) 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하는 단계, (3) 사용자로부터 가상 경계를 수정하기 위한 요청을 수신하는 단계, (4) 사용자로부터의 요청에 응답하여, 지향방향 데이터(orientation data)를 생성하기 위해 방향 표시기(direction indicator)의 지향방향을 모니터링하는 단계, 및 (5) 기준 고도 및 지향방향 데이터에 기초하여 가상 경계를 수정하는 단계를 포함할 수 있다.
일부 예들에서, 지향방향 데이터는 기준 고도와 관련하여 방향 표시기 고도의 고도 데이터를 포함할 수 있다. 상기 가상 경계를 수정하는 단계는, 고도 데이터에 의해 표시된 고도 및 지향방향 데이터에 의해 표시된 지향방향에서 사용자 디바이스로부터 연장되는 가상 라인과 평면 사이의 교차점을 결정하는 단계를 포함할 수 있다.
일부 예들에서, 상기 방법은 헤드 마운트 디스플레이 시스템의 이미징 시스템으로 실세계 환경의 뷰를 캡처하는 단계를 포함할 수 있다. 캡처된 뷰는 렌즈-유도 왜곡(lens-induced distortion)을 가질 수 있다. 상기 방법은 또한 실세계 환경의 보상된 뷰(compensated view)를 생성하기 위해 캡처된 뷰 내의 렌즈-유도 왜곡을 수정하는 단계, 실세계 환경의 보상된 뷰에 가상 경계를 중첩하는 단계, 및 경계 수정 상태 동안 헤드 마운트 디스플레이 시스템의 디스플레이에서 실세계 환경의 보상된 뷰를 디스플레이하는 단계를 포함할 수 있다.
일부 예들에서, 가상 경계는 가상 경계가 최소 면적 임계 값(minimum area threshold)을 충족할 때 성공 색상(success color)으로 디스플레이될 수 있고, 상기 가상 경계는 가상 경계가 최소 면적 임계 값을 충족하지 않을 때 경고 색상(warning color)으로 디스플레이될 수 있다. 일부 예들에서, 가상 경계는 가상 경계에 의해 정의된 채워진 모양(filled-in shape)으로 디스플레이될 수 있다.
일부 예들에서, 가상 경계를 수정하는 단계는 가상 경계에 부분들을 추가하거나 그로부터 부분들을 제거하는 단계를 포함할 수 있다. 일부 예들에서, 상기 방법은 기준 고도의 확인(confirmation)을 수신하는 단계를 포함할 수 있다. 일부 예들에서, 상기 방법은 가상 경계를 재설정하기 위한 표시를 수신하는 단계를 포함할 수 있다.
일부 예들에서, 전술한 방법은 컴퓨터 판독 가능한 매체 상의 컴퓨터 판독 가능한 명령들로서 인코딩될 수 있다. 예를 들어, 컴퓨터 판독 가능한 매체는 하나 이상의 컴퓨터 실행 가능한 명령들을 포함할 수 있으며, 상기 하나 이상의 컴퓨터 실행 가능한 명령들은 컴퓨팅 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금, (1) 실세계 환경의 평면을 나타내는 기준 고도의 표시를 수신하게 하고, (2) 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하게 하고, (3) 지향방향 데이터를 생성하기 위해 방향 표시기의 지향방향을 모니터링하게 하고, (4) 기준 고도 및 지향방향 데이터에 기초하여 가상 경계를 수정하게 할 수 있다.
일부 예들에서, 지향방향 데이터는 기준 고도와 관련하여 방향 표시기 고도의 고도 데이터를 포함할 수 있다. 상기 가상 경계를 수정하는 것은, 고도 데이터에 의해 표시된 고도 및 지향방향 데이터에 의해 표시된 지향방향에서 방향 표시기로부터 연장되는 가상 라인과 평면 사이의 교차점을 결정하는 것을 포함할 수 있다.
일부 예들에서, 상기 명령들은 헤드 마운트 디스플레이 시스템의 이미징 시스템으로 실세계 환경의 뷰를 캡처하기 위한 명령들을 포함할 수 있다. 캡처된 뷰는 렌즈-유도 왜곡을 가질 수 있다. 상기 명령들은 또한 실세계 환경의 보상된 뷰를 생성하기 위해 캡처된 뷰 내의 렌즈-유도 왜곡을 수정하고, 가상 경계에 의해 정의된 채워진 모양으로서 상기 가상 경계를 실세계 환경의 보상된 뷰에 중첩하고, 경계 수정 상태 동안 헤드 마운트 디스플레이 시스템의 디스플레이에서 실세계 환경의 보상된 뷰를 디스플레이하기 위한 명령들을 포함할 수 있다.
일부 예들에서, 가상 경계는 가상 경계가 최소 면적 임계 값을 충족할 때 성공 색상으로 디스플레이될 수 있고, 상기 가상 경계는 가상 경계가 최소 면적 임계 값을 충족하지 않을 때 경고 색상으로 디스플레이될 수 있다.
일부 예들에서, 가상 경계를 수정하는 단계는 가상 경계에 부분들을 추가하거나 그로부터 부분들을 제거하는 단계를 포함할 수 있다. 일부 예들에서, 상기 명령들은 기준 고도의 확인을 수신하기 위한 명령들을 포함할 수 있다. 일부 예들에서, 상기 명령들은 가상 경계를 재설정하기 위한 표시를 수신하기 위한 명령들을 포함할 수 있다.
또한, 헤드 마운트 디스플레이 시스템은 사용자 부착 시스템에 고정된 디스플레이, 방향 표시기, 및 프로세싱 시스템을 포함할 수 있다. 프로세싱 시스템은, (1) 실세계 환경의 평면을 나타내는 기준 고도를 식별하고, (2) 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하고, (3) 방향 표시기의 지향방향을 특징짓는 지향방향 데이터 및 기준 고도에 기초하여 가상 경계를 수정하도록 구성된다.
일부 예들에서, 프로세싱 시스템은 또한 헤드 마운트 디스플레이 시스템의 이미징 시스템으로 실세계 환경의 뷰를 캡처하도록 구성될 수 있다. 캡처된 뷰는 렌즈-유도 왜곡을 가질 수 있다. 프로세싱 시스템은 또한 실세계 환경의 보상된 뷰를 생성하기 위해 캡처된 뷰 내의 렌즈-유도 왜곡을 수정하고, 가상 경계에 의해 정의된 채워진 모양으로서 상기 가상 경계를 실세계 환경의 보상된 뷰에 중첩하고, 경계 수정 상태 동안 헤드 마운트 디스플레이 시스템의 디스플레이에서 실세계 환경의 보상된 뷰를 디스플레이하도록 구성될 수 있다.
일부 예들에서, 가상 경계는 가상 경계가 최소 면적 임계 값을 충족할 때 성공 색상으로 디스플레이될 수 있고, 상기 가상 경계는 가상 경계가 최소 면적 임계 값을 충족하지 않을 때 경고 색상으로 디스플레이될 수 있다.
일부 예들에서, 가상 경계를 수정하는 것은 가상 경계에 부분들을 추가하거나 그로부터 부분들을 제거하는 것을 포함할 수 있다. 일부 예들에서, 지향방향 데이터는 방향 표시기 고도의 고도 데이터를 포함할 수 있다. 상기 가상 경계를 수정하는 단계는, 고도 데이터에 의해 표시된 고도 및 지향방향 데이터에 의해 표시된 지향방향에서 사용자 디바이스로부터 연장되는 가상 라인과 평면 사이의 교차점을 결정하는 단계를 포함할 수 있다.
전술한 임의의 실시예들로부터의 특징들은 여기에서 설명된 일반적인 원리들에 따라 서로 조합하여 사용될 수 있다. 이들 및 다른 실시예들, 특징들, 및 이점들은 첨부된 도면 및 청구 범위와 함께 다음의 상세한 설명을 읽으면 더욱 완전하게 이해될 것이다.
본 발명에 따른 일 실시예에서, 하나 이상의 컴퓨터 판독가능한 비 일시적 저장 매체들은 실행될 때 본 발명 또는 상기 언급된 실시예들 중 임의의 실시예에 따른 방법을 수행하도록 동작가능한 소프트웨어를 포함할 수 있다.
본 발명에 따른 일 실시예에서, 시스템은 하나 이상의 프로세서들; 및 프로세서들에 결합되고 프로세서들에 의해 실행가능한 지시들을 포함하는 적어도 하나의 메모리를 포함할 수 있고, 프로세서들은 지시들을 실행할 때 본 발명 또는 상기 언급된 실시예들 중 임의의 실시예에 따른 방법을 수행하도록 동작가능하다.
본 발명에 따른 일 실시예에서, 바람직하게 컴퓨터 판독가능한 비 일시적 저장 매체들을 포함하는 컴퓨터 프로그램 제품은 데이터 프로세싱 시스템에서 실행될 때 본 발명 또는 상기 언급된 실시예들 중 임의의 실시예에 따른 방법을 수행하도록 동작가능할 수 있다.
본 발명에 따른 실시예들은 특히, 방법, 저장 매체, 및 헤드 마운트 디스플레이(HMD)와 관련된 첨부된 청구 범위에 개시되며, 하나의 청구항 카테고리, 예컨대 방법에 언급된 임의의 피처는 다른 청구항 카테고리, 예컨대 HMD, 시스템 및 컴퓨터 프로그램 제품에서도 역시 청구될 수 있다. 첨부된 청구 범위에서 종속하거나 또는 참조하는 것은 형식적인 이유로만 선택된다. 그러나 임의의 이전 청구항들(특히 다중 종속)에 대한 의도적인 참조에 의해 기인한 어떠한 청구 대상도 역시 청구될 수 있으므로, 청구 범위 및 그 특징들의 어떠한 조합도 개시되는 것이며 첨부된 청구 범위에서 선택된 종속과는 상관없이 청구될 수 있다. 청구될 수 있는 청구 대상은 첨부된 청구 범위에 명시된 특징들의 조합들뿐만 아니라 청구 범위 내의 특징들의 어떠한 다른 조합도 포함하며, 청구 범위에서 언급된 각 특징은 임의의 다른 특징 또는 청구 범위 내의 다른 특징들의 조합과 결합될 수 있다. 더욱이, 본 명세서에 기재되거나 묘사된 실시예들 및 특징들의 어떠한 것도 별도의 청구항으로 및/또는 본 명세서에 기재되거나 묘사된 임의의 실시예 또는 특징 또는 첨부된 청구 범위의 임의의 특징들과의 임의의 조합으로 청구될 수 있다.
첨부된 도면들은 다수의 예시적인 실시예들을 도시하며 본 명세서의 일부이다. 다음의 설명과 함께, 이들 도면들은 본 개시의 다양한 원리들을 입증하고 설명한다.
도 1은 본 개시의 양상들에 따른, 실세계 환경에 대한 가상 경계를 수정하기 위한 예시적인 방법의 흐름도이다.
도 2는 본 개시의 양상들에 따른, 예시적인 헤드 마운트 디스플레이(HMD) 시스템의 블록도이다.
도 3은 본 개시의 양상들에 따른, 도 2의 HMD 시스템에 포함될 수 있는 예시적인 HMD 디바이스의 사시도이다.
도 4는 본 개시의 양상들에 따른, 도 2의 HMD 시스템에 포함될 수 있는 예시적인 핸드-헬드 컨트롤러의 사시도이다.
도 5a 및 5b는 본 개시의 양상들에 따라, 실세계 환경에서 도 3의 HMD 디바이스를 착용하고 도 4의 핸드-헬드 컨트롤러를 잡고 있는 사용자의 사시도 및 평면도를 각각 나타낸다.
도 6a 및 6b는 본 개시의 양상들에 따라, 가상 안전 경계를 생성하기 위해 실세계 환경의 재현(reproduction)과 상호 작용하는 사용자의 사시도 및 평면도를 각각 나타낸다.
도 6c는 본 개시의 양상들에 따라, 가상 경계를 정의하기 위해 실세계 환경과 상호 작용하기 위한 시스템을 도시하는 다이어그램이다.
도 7a 및 7b는 본 개시의 양상들에 따라, 가상 경계를 생성하기 위해 실세계 환경의 재현과 계속 상호 작용하는 사용자의 사시도 및 평면도를 각각 나타낸다.
도 8a 및 8b는 본 개시의 양상들에 따라, 정의된 가상 경계와 상호 작용하는 사용자의 사시도 및 평면도를 각각 나타낸다.
도 9는 본 개시의 양상들에 따라, 미리 정의된 가상 경계들의 세트에 대응하는 물리적 정의들의 세트를 포함하는 메모리 디바이스의 다이어그램이다.
도면들 전체에서 동일한 참조 문자들 및 설명들은 유사하지만 반드시 동일하지는 않은 요소들을 나타낸다. 본 명세서에 설명된 예시적인 실시예들은 다양한 변형들 및 대안적인 형태들이 가능하지만, 그 특정 실시예들이 도면들에 예로서 도시되어 있고 여기에서 상세히 설명될 것이다. 그러나, 본 명세서에 설명된 예시적인 실시예들은 개시된 특정 형태들로 제한되도록 의도되지 않는다. 오히려, 본 개시는 첨부된 청구항의 범위 내에 있는 모든 수정들, 등가물들, 및 대안들을 포함한다.
본 개시는 일반적으로 사용자가 사용자의 실세계 환경 및/또는 가상 환경에 대해 가상 경계를 수정할 수 있게 하는 시스템 및 방법에 관한 것이다. 아래에서 더 상세히 설명되는 바와 같이, 본 개시의 실시예들은 사용자가 예를 들어 핸드-헬드 컨트롤러, 손가락, 시선(eye-gaze), 또는 다른 방향 표시기를 사용함으로써 실세계 환경의 바닥 상의 가상 경계(virtual boundary on the floor)를 수정하게 할 수 있다. 사용자는 가상 경계에 대한 수정들을 "드로잉(draw)"(예를 들어, 방향 표시기를 사용하여 가상으로 드로잉)할 수 있다. 사용자가 HMD 디바이스를 착용하고 있는 동안, HMD 디바이스에 배치된 하나 이상의 카메라에 의해 실세계 환경의 뷰가 제공될 수 있다. 이러한 카메라들은 마치 사용자가 HMD 디바이스를 착용하지 않은 것처럼 실세계 환경을 보여주는 패스-스루 뷰(pass-through view)를 허용할 수 있다. 이러한 방식으로, 사용자는 환경의 피처들 및 피해야 할 장애물들을 볼 수 있고, 그러한 피처들로부터 안전한 거리 떨어진 가상 경계를 정의하고 수정할 수 있다.
일부 실시예들에서, 사용자는 실세계 환경의 바닥 상의 위치를 가리키도록 방향 표시기를 사용할 수 있다. 예를 들어, HMD 시스템은 바닥을 가리키는 데 사용할 수 있는 핸드-헬드 컨트롤러를 포함할 수 있다. 핸드-헬드 컨트롤러의 포지션 및 지향방향 정보는 바닥 위의 핸드-헬드 컨트롤러의 높이 및 핸드-헬드 컨트롤러의 지향방향을 사용하는 것과 같이 바닥 상의 특정 지점을 식별하기 위해 프로세싱 서브시스템에 의해 사용될 수 있다. 경계 수정 상태 동안, 가상 경계는 바닥 상에 디스플레이될 수 있으며, 사용자가 바닥 상의 가상 경계를 수정하는 동안 사용자에게 시각적 피드백을 제공하기 위해 핸드-헬드 컨트롤러로부터 바닥을 향해 연장되는 가상 선이 사용자에게 나타날 수 있다.
가상 경계를 수정한 후, 사용자가 실세계 환경을 인식하게 하고 및/또는 사용자가 발을 헛디디거나, 떨어지거나, 또는 물체에 걸려 넘어지는 것을 방지하기 위해, 사용자가 가상 경계의 임계 거리 내에 올 때마다 가상 경계 및/또는 가상 경계로부터 파생된 경계 벽의 표시가 HMD 디바이스에서 사용자에게 제시될 수 있다. 가상 경계에 의존하여, 사용자는 HMD 디바이스를 켜진 상태로 유지하고 실세계 환경에서 안전하게 움직일 수 있으므로 작동 상태에서 사용자에게 제시되는 가상 환경에 더 잘 참여할 수 있다. 여기에 설명된 양상들은 추가 센서들 또는 특수 하드웨어를 요구하지 않고서 안전 기능(safety feature)을 제공함으로써 VR 및 AR 기술을 향상시킬 수 있다. 또한, 여기에 설명된 측면들은 추가 리소스들을 요구하지 않고서 구현될 수 있는 안전 기능을 제공함으로써 컴퓨터의 기능을 향상시킬 수 있다. 예를 들어, 안전 기능은 컴퓨터에서 상당한 프로세싱 및 메모리 리소스들을 요구하지 않고서 구현될 수 있으므로, 컴퓨팅 성능에 부정적인 영향을 미치지 않을 수 있다.
다음은 도 1 내지 도 9를 참조하여 사용자가 실세계 환경에 대해 자신의 가상 경계를 수정하고 해당 가상 경계를 사용할 수 있도록 하여, 우발적 충돌의 위험이 아주 높을 때는 언제든지 사용자가 실세계 환경을 인식하게 하도록 사용자에게 시각적 및/또는 청각적 표시를 제공하는 시스템들 및 방법들의 상세한 설명을 제공할 것이다. 도 1은 가상 경계를 수정하는 예시적인 프로세스를 도시한다. 도 2는 예시적인 VR 시스템을 도시한다. 도 3은 예시적인 HMD 디바이스를 도시한다. 도 4는 예시적인 방향 표시기를 도시한다. 도 5a-5b는 예시적인 AR 시스템을 사용하는 사용자를 도시한다. 도 6a-6c는 사용자가 실세계 환경의 재현과 어떻게 상호 작용할 수 있는지를 도시한다. 도 7a-7b는 사용자가 가상 경계를 어떻게 수정할 수 있는지를 도시한다. 도 8a-8b는 사용자가 가상 경계와 어떻게 상호 작용할 수 있는지를 도시한다. 도 9는 VR 시스템의 예시적인 메모리 디바이스를 도시한다.
도 1은 가상 경계를 수정하기 위한 예시적인 컴퓨터 구현 방법(100)의 흐름도이다. 도 1에 도시된 단계들은 도 2-4에 도시된 시스템들을 포함하여 임의의 적합한 컴퓨터 실행 가능 코드 및/또는 컴퓨팅 시스템에 의해 수행될 수 있다. 일례에서, 도 1에 도시된 각 단계는 그 구조가 다수의 하위 단계들을 포함하고/하거나 그에 의해 표현되는 알고리즘을 나타낼 수 있으며, 그 예들이 아래에서 더 상세히 제공될 것이다.
도 1에 도시된 바와 같이, 단계 110에서, 본 명세서에 설명된 시스템들 중 하나 이상은 실세계 환경의 평면을 표현하는 기준 고도의 표시를 수신할 수 있다. 예를 들어, 도 2에 도시된 바와 같이, HMD 시스템(200)의 프로세싱 서브시스템(210)은 기준 고도의 표시를 수신할 수 있다.
일부 실시예들에서, "기준 고도"라는 용어는 방향 표시기에 의해 가리켜지는 지점들/위치들을 결정하는 데 사용될 수 있는 실세계 환경에서 기준 평면에 대응하는 고도를 지칭할 수 있다. 일부 실시예들에서, 기준 고도는 실세계 환경의 베이스 평면에 대응하는 베이스라인 고도일 수 있다. 용어 "베이스 평면"은 사용자가 실세계 환경에서 접할 수 있는 가장 낮은 고도를 지칭할 수 있다. 베이스 평면의 예는 바닥, 테이블, 지면 등을 포함하지만 이에 제한되지 않는다. 베이스라인 고도는 베이스 평면의 고도를 나타낼 수 있고 바닥에 직각으로 정의될 수 있다. VR 시스템에 대한 가상 경계는 기준 고도 및/또는 대응하는 평면에 대해 정의 및/또는 수정될 수 있다. 도 2는 가상 경계를 이용할 수 있는 예시적인 VR 시스템을 도시한다.
도 2는 장면(예를 들어, 캡처된 장면, 인공적으로 생성된 장면, 또는 이들의 조합)을 사용자에게 제시하는 HMD 시스템(200)의 일 실시예의 블록도이다. HMD 시스템(200)은 가상 현실(VR) 시스템 환경, 증강 현실(AR) 시스템 환경, 혼합 현실(MR) 시스템 환경, 또는 이들의 일부 조합에서 동작할 수 있다. 도 2에 도시된 HMD 시스템(200)은 프로세싱 서브시스템(210) 및 입력/출력(I/O) 인터페이스(215)를 포함하거나 그와 통신하는 HMD 디바이스(205)를 포함할 수 있다. HMD 디바이스(205)는 일부 실시예들에서 실세계 환경에 대한 사용자의 뷰를 완전히 방해할 수 있다. 다른 실시예들은 실세계 환경의 사용자의 뷰를 부분적으로만 방해할 수 있고 및/또는 HMD 디바이스(205)의 디스플레이에 디스플레이되는 콘텐츠에 따라 사용자의 뷰를 방해할 수 있다.
도 2는 적어도 하나의 HMD 디바이스(205) 및 적어도 하나의 I/O 인터페이스(215)를 포함하는 예시적인 HMD 시스템(200)을 도시하지만, 다른 실시예들에서는, 임의의 수의 이러한 구성요소들이 HMD 시스템(200)에 포함될 수 있다. 예를 들어, 다수의 HMD들(205)이 있을 수 있으며, 이들 각각은 연관된 I/O 인터페이스(215)를 갖고, 각각의 HMD 디바이스(205) 및 I/O 인터페이스(215)는 프로세싱 서브시스템(210)과 통신한다. 프로세싱 서브시스템(210)이 HMD 디바이스(205) 내에 포함되거나 통합되지 않는 실시예들에서, HMD 디바이스(205)는 유선 연결 또는 무선 연결을 통해 프로세싱 서브시스템(210)과 통신할 수 있다. 대안적인 구성들에서, 상이한 및/또는 추가의 구성요소들이 HMD 시스템(200)에 포함될 수 있다. 추가적으로, 도 2에 도시된 구성요소들 중 하나 이상과 관련하여 설명된 기능은 일부 실시예들에서 도 2와 관련하여 설명된 것과 다른 방식으로 구성요소들 사이에 분산될 수 있다.
HMD 디바이스(205)는 인공적으로 렌더링된 가상 세계 환경의 가상 뷰들 및/또는 컴퓨터 생성 요소들(예를 들어, 2 차원(2D) 또는 3 차원(3D) 이미지들, 2D 또는 3D 비디오, 사운드 등)로 증강된 물리적, 실세계 환경의 증강 뷰들을 포함하는 다양한 콘텐츠를 사용자에게 제시할 수 있다. 일부 실시예들에서, 제시된 콘텐츠는 HMD 디바이스(205), 프로세싱 서브시스템(210), 또는 둘 모두로부터 오디오 정보를 수신하고 오디오 정보에 기초하여 오디오 데이터를 제시하는 내부 또는 외부 디바이스(예를 들어, 스피커 및/또는 헤드폰)를 통해 제시되는 오디오를 포함한다. 일부 실시예들에서, 이러한 스피커들 및/또는 헤드폰들은 HMD 디바이스(205)에 통합되거나 해제 가능하게 결합되거나 부착될 수 있다. HMD 디바이스(205)는 하나 이상의 본체들(bodies)을 포함할 수 있으며, 이들은 함께 강성으로(rigidly) 또는 비강성(non-rigidly)으로 결합될 수 있다. 강성 본체들 간의 강성 결합은 결합된 강성 본체들이 단일의 강성 엔티티로 작동하게 할 수 있다. 대조적으로, 강성 본체들 간의 비강성 결합은 강성 본체들이 서로에 대해 움직이게 할 수 있다. HMD 디바이스(205)의 실시예는 도 3에 도시되고 아래에서 더 상세히 설명되는 HMD 디바이스(300)이다.
일부 예들에서, HMD 디바이스(205)는 깊이 감지 서브시스템(220)(또는 깊이 카메라 시스템), 전자 디스플레이(225), 하나 이상의 카메라를 포함하는 이미지 캡처 서브시스템(230), 하나 이상의 포지션 센서(235), 및/또는 관성 측정 유닛(IMU)(240)을 포함할 수 있다. HMD 디바이스(205)의 다른 실시예들은 사용자의 시선(user’s gaze)을 추정하기 위해 HMD 디바이스(205)의 사용자의 눈을 추적하도록 구성된 선택적인 아이-트래킹 또는 시선-추정 시스템(optional eye-tracking or gaze-estimation system)을 포함할 수 있다. 선택적 가변 초점 모듈이 아이-트래킹 시스템 및 다른 구성요소들로부터 획득된 결정된 아이-트래킹 정보에 기초하여 전자 디스플레이(225)에 디스플레이된 하나 이상의 이미지의 초점을 조정하도록 구성될 수 있다. HMD 디바이스(205)의 일부 실시예들은 도 2와 관련하여 설명된 것들과 다른 구성요소들을 갖는다.
깊이 감지 서브시스템(220)은 HMD 디바이스(205)의 일부 또는 전부를 둘러싼 로컬 실세계 영역 또는 환경을 특징짓고 및/또는 로컬 영역 내에서 깊이 감지 서브시스템(220)(그리고 이에 의해 HMD 디바이스(205))의 포지션, 속도, 또는 포지션을 특징짓는 깊이 정보를 설명하는 데이터를 캡처할 수 있다. 깊이 감지 서브시스템(220)은 (예를 들어, 하나 이상의 컴퓨터-비전 방식 또는 알고리즘에 따라 캡처된 광에 기초하여, 비행 시간(time-of-flight)(ToF) 이미징, SLAM(Simultaneous Localization and Mapping) 등에 의해 구조화된 광 패턴의 일부를 처리함으로써) 수집된 데이터를 사용하여 깊이 정보를 계산할 수 있거나, 또는 깊이 감지 서브시스템(220)은 깊이 감지 서브시스템(220)으로부터의 데이터를 사용하여 깊이 정보를 결정할 수 있는 프로세싱 서브시스템(210)의 외부 구현과 같은 다른 디바이스로 이러한 데이터를 전송할 수 있다.
전자 디스플레이(225)는 프로세싱 서브시스템(210)으로부터 수신된 데이터에 따라 사용자에게 2 차원 또는 3 차원 이미지를 디스플레이할 수 있다. 다양한 실시예들에서, 전자 디스플레이(225)는 단일 전자 디스플레이 또는 다중 전자 디스플레이들(예를 들어, 사용자의 각각의 눈에 대한 디스플레이)을 포함한다. 전자 디스플레이(225)의 예들은 액정 디스플레이(LCD), 유기 발광 다이오드(OLED) 디스플레이, 무기 발광 다이오드(ILED) 디스플레이, 액티브 매트릭스 유기 발광 다이오드(AMOLED) 디스플레이, 투명 유기 발광 다이오드(TOLED) 디스플레이, 다른 적절한 디스플레이, 또는 이들의 일부 조합을 포함할 수 있다. 전자 디스플레이(225)는 사용자가 전자 디스플레이(225)를 통해 로컬 환경을 볼 수 없도록 불투명할 수 있다.
이미지 캡처 서브시스템(230)은 로컬 환경으로부터 이미지 데이터를 캡처하고 수집하는 하나 이상의 광학 이미지 센서 또는 카메라를 포함할 수 있다. 일부 실시예들에서, 이미지 캡처 서브시스템(230)에 포함된 센서들은 로컬 환경 내의 HMD 디바이스(205)의 포지션 및 지향방향 및/또는 로컬 환경을 특징짓는 이미지 데이터를 생성하기 위해 프로세싱 서브시스템(210)에 의해 사용될 수 있는 로컬 환경의 입체 뷰들을 제공할 수 있다. 예를 들어, 이미지 캡처 서브시스템(230)은 SLAM(simultaneous localization and mapping) 카메라들, 또는 사용자의 눈에 의해 캡처될 수 있는 것보다 더 넓은 시야를 캡처하는 광각 렌즈 시스템(wide-angle lens system)을 포함하는 다른 카메라들을 포함할 수 있다. 본 명세서에 설명된 바와 같이, 이미지 캡처 서브시스템(230)은 HMD 시스템(200)이 경계 정의 상태(boundary definition state)에 있을 때 전자 디스플레이(225)를 통해 사용자에게 디스플레이되는 실세계 환경의 패스-스루 뷰들(pass-through views)을 제공할 수 있다.
일부 실시예들에서, 프로세싱 서브시스템(210)은 이미지 캡처 서브시스템(230)의 렌즈 시스템에 의해 및/또는 사용자의 눈 사이의 평균 이격보다 현저히 크거나 또는 현저히 작은 두 이미지 센서들 사이의 이격 거리에 의해 야기되는 왜곡을 제거하기 위해 이미지 캡처 서브시스템(230)에 의해 캡처된 이미지들을 처리할 수 있다. 예를 들어, 이미지 캡처 서브시스템(230)이 SLAM 카메라 시스템이거나 그 일부일 때, 이미지 캡처 서브시스템(230)으로부터의 직접 이미지들은 보정되지 않은 포맷으로 표시되면 사용자에게 왜곡된 것으로 보일 수 있다. 이미지 보정 또는 보상은 이미지들을 보정하고 사용자에게 보다 자연스러운 모습으로 제시하기 위해 프로세싱 서브시스템(210)에 의해 수행되어, 사용자가 HMD 디바이스(205)의 전자 디스플레이(225)를 통해 보고 있는 것처럼 사용자에게 보이도록 할 수 있다. 일부 실시예들에서, 이미지 캡쳐 서브시스템(230)은 로컬 환경의 패스-스루 뷰들을 제공하도록 (시야, 이격 거리 등의 관점에서) 적응된 렌즈들을 갖는 하나 이상의 이미지 센서들을 포함할 수 있다. 이미지 캡처 서브시스템(230)은 컬러 이미지 또는 단색 이미지들을 캡처할 수 있다.
IMU(240)는 일부 예들에서, 하나 이상의 포지션 센서(235)로부터 수신된 측정 신호들 및 깊이 감지 서브시스템(220) 및/또는 이미지 캡처 서브시스템(230)으로부터 수신된 깊이 정보에 기초하여 HMD 디바이스(205)의 포지션 및/또는 지향방향을 표시하는 데이터를 생성하는 전자 서브시스템을 나타낼 수 있다. 예를 들어, 포지션 센서(235)는 HMD 디바이스(205)의 움직임에 응답하여 하나 이상의 측정 신호를 생성할 수 있다. 포지션 센서들(235)의 예들은 하나 이상의 가속도계, 하나 이상의 자이로스코프, 하나 이상의 자력계, 움직임을 검출하는 다른 적합한 유형의 센서, IMU(240)의 에러 정정에 사용되는 유형의 센서, 또는 이들의 일부 조합을 포함한다. 포지션 센서들(235)은 IMU(240)의 외부, IMU(240)의 내부, 또는 이들의 일부 조합에 위치될 수 있다.
하나 이상의 포지션 센서(235)로부터의 하나 이상의 측정 신호에 기초하여, IMU(240)는 HMD 디바이스(205)의 초기 포지션 및/또는 지향방향에 대한 HMD 디바이스(205)의 추정된 현재 포지션, 고도 및/또는 지향방향을 표시하는 데이터를 생성할 수 있다. 예를 들어, 포지션 센서들(235)은 병진 운동(전진/후퇴, 상/하, 좌/우)을 측정하기 위한 다중 가속도계들 및 회전 운동(예를 들어, 피치(pitch), 요(yaw), 및 롤(roll))을 측정하기 위한 다중 자이로스코프들을 포함한다. 본 명세서에 설명된 바와 같이, 이미지 캡처 서브시스템(230) 및/또는 깊이 감지 서브시스템(220)은 HMD 디바이스(205)가 사용되는 실세계 환경에 대한 HMD 디바이스(205)의 추정된 현재 포지션 및/또는 지향방향을 표시하는 데이터를 생성할 수 있다.
I/O 인터페이스(215)는 사용자가 동작 요청을 전송하고 프로세싱 서브시스템(210) 및/또는 방향 표시기(270)로부터 응답들을 수신하도록 허용하는 서브시스템 또는 디바이스를 나타낼 수 있다. 일부 실시예들에서, 방향 표시기(270)는 방향 표시기(270)의 센서들에 의해 감지되는 지향방향 및/또는 포지션 데이터와 같은 입력을 I/O 인터페이스(215)에 제공하기 위해 사용자에 의해 조작될 수 있는 핸드-헬드 컨트롤러 또는 다른 디바이스를 포함할 수 있다. 다른 실시예들에서, 방향 표시기(270)는 I/O 인터페이스(215)에 수동 입력을 제공할 수 있다. 예를 들어, 방향 표시기(270)는 방향 표시기(270)에 대한 지향방향 및/또는 포지션 데이터를 결정하기 위해 HMD 시스템(200)의 센서들에 의해 검출될 수 있는, 사용자의 손가락 또는 손, 장갑 또는 기타 착용 가능한 물체, 손에 들고 있는 물체, 사용자의 눈 및/또는 시선, 및/또는 다른 사용자 조작 가능한 물체를 포함할 수 있다. 일부 실시예들에서, I/O 인터페이스(215)는 하나의 방향 표시기(270)보다 많은 표시기들와의 통신을 용이하게 할 수 있다. 예를 들어, 사용자는 각 손에 하나씩 두 개의 방향 표시기들(270)을 가질 수 있다. 동작 요청은 일부 예들에서 특정 동작을 수행하기 위한 요청일 수 있다. 예를 들어, 동작 요청은 이미지 또는 비디오 데이터의 시작 또는 종료를 위한 명령, 또는 애플리케이션 내에서의 특정 동작을 수행하기 위한 명령 또는 경계 정의 상태를 시작 또는 종료하기 위한 명령일 수 있다. I/O 인터페이스(215)는 하나 이상의 입력 디바이스를 포함하거나 하나 이상의 입력 디바이스와의 통신을 가능하게 할 수 있다. 예시적인 입력 디바이스들은 키보드, 마우스, 핸드-헬드 컨트롤러, 또는 동작 요청들을 수신하고 동작 요청들을 프로세싱 서브시스템(210)에 전달하기 위한 임의의 다른 적절한 디바이스를 포함할 수 있다.
I/O 인터페이스(215)에 의해 수신된 동작 요청은 동작 요청에 대응하는 동작을 수행할 수 있는 프로세싱 서브시스템(210)으로 전달될 수 있다. 일부 실시예들에서, 방향 표시기(270)는 초기 포지션에 대한 방향 표시기(270)의 추정된 포지션을 표시하는 관성 데이터를 캡처하는 IMU(240)를 포함한다. 일부 실시예들에서, I/O 인터페이스(215) 및/또는 방향 표시기(270)는 프로세싱 서브시스템(210) 및/또는 HMD 디바이스(205)로부터 수신된 명령들에 따라 사용자에게 햅틱 피드백을 제공할 수 있다. 예를 들어, 햅틱 피드백은 동작 요청이 수신될 때 제공되거나 또는 프로세싱 서브시스템(210)이 동작을 수행할 때 프로세싱 서브시스템(210)이 I/O 인터페이스(215)가 햅틱 피드백을 생성하거나 생성을 지시하도록 하는 명령들을 I/O 인터페이스(215)에 전달할 때 제공된다.
프로세싱 서브시스템(210)은 깊이 감지 서브시스템(220), 이미지 캡처 서브시스템(230), I/O 인터페이스(215), 및 방향 표시기(270) 중 하나 이상으로부터 수신된 정보에 따라 HMD 디바이스(205)에 콘텐츠를 제공하는 하나 이상의 프로세싱 디바이스 또는 물리적 프로세서를 포함할 수 있다. 도 2에 도시된 예에서, 프로세싱 서브시스템(210)은 엔진(260), 애플리케이션 저장소(250), 및 트래킹 모듈(255)을 포함한다. 프로세싱 서브시스템(210)의 일부 실시예들은 도 2와 관련하여 기술된 것들과는 상이한 모듈들 또는 구성요소들을 갖는다. 유사하게, 아래에서 추가로 설명되는 기능들은 도 2와 관련하여 기술된 것과 상이한 방식으로 HMD 시스템(200)의 구성요소들 사이에 분산될 수 있다.
애플리케이션 저장소(250)는 프로세싱 시스템(210)에 의한 실행을 위해 하나 이상의 애플리케이션들을 저장할 수 있다. 애플리케이션은 일부 예들에서 프로세서에 의해 실행될 때 사용자에게 제시하기 위한 컨텐츠를 생성하는 명령들의 그룹을 나타낼 수 있다. 애플리케이션에 의해 생성된 콘텐츠는 HMD 디바이스(205) 또는 방향 표시기(270)의 움직임을 통해 사용자로부터 수신된 입력들에 응답하여 생성될 수 있다. 애플리케이션들의 예들은: 게임 애플리케이션들, 회의 애플리케이션들, 비디오 재생 애플리케이션들, 또는 다른 적절한 애플리케이션들을 포함한다.
트래킹 모듈(255)은 하나 이상의 교정 파라미터들(calibration parameters)을 사용하여 HMD 시스템(200)을 교정할 수 있고, 하나 이상의 보정 파라미터들을 조정하여 HMD 디바이스(205) 또는 방향 표시기(270)의 포지션 결정에서 오류를 감소시킬 수 있다. 예를 들어, 트래킹 모듈(255)은 교정 파라미터를 깊이 감지 서브시스템(220)에 전달하여 깊이 감지 서브시스템(220)의 초점을 조정함으로써 깊이 감지 서브시스템(220)에 의해 캡처된 구조화된 광 요소들의 포지션들을 더 정확하게 결정할 수 있다. 트래킹 모듈(255)에 의해 수행된 교정은 또한 HMD 디바이스(205)의 IMU(240) 및/또는 방향 표시기(270)에 포함된 다른 IMU(240)로부터 수신된 정보를 고려할 수 있다. 추가적으로, HMD 디바이스(205)의 추적을 잃는 다면(예를 들어, 깊이 감지 서브시스템(220)이 적어도 임계 개수의 구조화된 광 요소들의 시선(line of sight)을 잃는 경우), 트래킹 모듈(255)은 HMD 시스템(200)의 일부 또는 전부를 재교정(recalibrate)할 수 있다.
트래킹 모듈(255)은 깊이 감지 서브시스템(220), 이미지 캡처 서브시스템(230), 하나 이상의 위치 센서(235), IMU(240), 또는 이들의 일부 조합으로부터의 정보를 사용하여 HMD 디바이스(205) 또는 방향 표시기(270)의 움직임을 추적할 수 있다. 예를 들어, 트래킹 모듈(255)은 HMD 디바이스(205)로 수집된 정보에 기초하여 실세계 환경의 매핑에서 HMD 디바이스(205)의 기준점의 포지션을 결정할 수 있다. 추가적으로, 일부 실시예들에서, 트래킹 모듈(255)은 HMD 디바이스(205) 및/또는 방향 표시기(270)의 미래 포지션 및/또는 지향방향을 예측하기 위해 IMU(240)로부터 HMD 디바이스(205) 및/또는 방향 표시기(270)의 포지션 및/또는 지향방향을 표시하는 데이터의 일부를 사용할 수 있다. 트래킹 모듈(255)은 또한 HMD 디바이스(205) 또는 I/O 인터페이스(215)의 추정된 또는 예측된 미래 포지션을 엔진(260)에 제공할 수 있다.
일부 실시예들에서, 트래킹 모듈(255)은 깊이 감지 서브시스템(220), 이미지 캡처 서브시스템(230) 및/또는 다른 시스템에 의해 관찰될 수 있는 다른 피처들을 추적할 수 있다. 예를 들어, 트래킹 모듈(255)은 실세계 환경 내에서 사용자의 손의 위치가 알려지고 활용될 수 있도록 사용자의 손 중 하나 또는 둘 다를 추적할 수 있다. 트래킹 모듈(255)은 예를 들어 방향 표시기(270)가 사용자의 손을 포함할 때 사용자의 손 중 하나의 손가락의 지시 방향(pointing direction)을 결정하기 위해 데이터를 수신하고 처리할 수 있다. 트래킹 모듈(255)은 또한 사용자의 시선(user's gaze)을 추적하기 위해 HMD 디바이스(205)의 일부 실시예들에 포함된 하나 이상의 아이-트래킹 카메라들로부터 정보를 수신할 수 있다.
이미지 프로세싱 엔진(260)은 HMD 디바이스(205)로부터 수신된 정보에 기초하여 HMD 디바이스(205)의 일부 또는 전부를 둘러싸는 영역(즉, "로컬 영역" 또는 "실세계 환경”)의 3 차원 매핑을 생성할 수 있다. 일부 실시예들에서, 엔진(260)은 깊이를 계산하는 데 사용되는 기술들에 관련된 깊이 감지 서브시스템(220)으로부터 수신된 정보에 기초하여 로컬 영역의 3 차원 매핑에 대한 깊이 정보를 결정한다. 엔진(260)은 구조화된 광으로부터 깊이를 계산하는 데 있어 하나 이상의 기술들을 사용하여 깊이 정보를 계산할 수 있다. 다양한 실시예들에서, 엔진(260)은 깊이 정보를 사용하여, 예를 들어, 로컬 영역의 모델을 업데이트하고, 업데이트된 모델에 부분적으로 기초하여 콘텐츠를 생성한다.
엔진(260)은 또한 HMD 시스템(200) 내에서 애플리케이션들을 실행할 수 있고 트래킹 모듈(255)로부터 HMD 디바이스(205)의 포지션 정보, 가속 정보, 속도 정보, 예측된 미래 포지션들, 또는 이들의 일부 조합을 수신할 수 있다. 수신된 정보에 기초하여, VR 엔진(260)은 사용자에게 제시하기 위해 HMD 디바이스(205)에 제공할 콘텐츠를 결정할 수 있다. 예를 들어, 수신된 정보가 사용자가 왼쪽을 봤다는 것을 나타내면, 엔진(260)은 가상 환경 또는 추가 콘텐츠로 로컬 영역을 증강하는 환경에서 사용자의 움직임에 대응하는 HMD 디바이스(205)를 위한 콘텐츠를 생성한다. 추가적으로, 엔진(260)은 I/O 인터페이스(215) 및/또는 방향 표시기(270)로부터 수신된 동작 요청에 응답하여 프로세싱 서브시스템(210)에서 실행되는 애플리케이션 내에서 동작을 수행하고 동작이 수행되었다는 피드백을 사용자에게 제공할 수 있다. 제공된 피드백은 HMD 디바이스(205)를 통한 시각적 또는 청각적 피드백이거나 또는 방향 표시기(270)를 통한 햅틱 피드백일 수 있다.
도 1로 돌아가면, 여기에 설명된 시스템들은 다양한 방식들로 단계 110을 수행할 수 있다. 일례에서, 기준 고도는 이전에 설정되고 저장되었을 수 있다. 다른 예들에서, 기준 고도를 정의 및/또는 확인하기 위해 HMD 디바이스(300) 및/또는 핸드-헬드 컨트롤러(400)를 사용하는 것과 같이, 기준 고도는 사용자에 의해 설정될 수 있다. 예를 들어, HMD 시스템(200)은 HMD 디바이스(300) 및/또는 핸드-헬드 컨트롤러(400)로부터 기준 고도의 표시를 수신할 수 있다.
도 3은 HMD 디바이스(205)의 일 실시예에 따른 HMD 디바이스(300)의 도면이다. HMD 디바이스(300)는 이미징 서브시스템 및 깊이 감지 서브시스템을 포함할 수 있다. HMD 디바이스(300)는 예를 들어 VR 시스템, AR 시스템, MR 시스템, 또는 이들의 일부 조합들의 일부일 수 있다. AR 시스템 및/또는 MR 시스템을 설명하는 실시예들에서, HMD 디바이스(300)의 전면(302)의 일부는 가시 대역(약 380 나노 미터(nm) 내지 750 nm)에서 적어도 부분적으로 투명하다. 보다 구체적으로, HMD 디바이스(300)의 전면(302)과 사용자의 눈 사이에 있는 HMD 디바이스(300)의 부분들은 적어도 부분적으로 투명할 수 있다(예를 들어, 부분적으로 투명한 전자 디스플레이(225)). 다른 실시예들에서, 전면(302)은 불투명하여 사용자가 실세계 환경을 보는 것을 막는다. HMD 디바이스(300)는 전자 디스플레이(225) 및 기타 구성요소들을 수용하는 전면 강체(305), HMD 디바이스(300)를 사용자의 머리에 고정하는 밴드(310)와 같은 사용자 부착 시스템, 및 HMD 디바이스(300)의 포지션 및/또는 지향방향을 특징지을 수 있는 기준점(315)을 포함할 수 있다.
또한, HMD 디바이스(300)는 이미징 어퍼처(320) 및 조명 애퍼처(325)를 포함할 수 있다. 깊이 감지 서브시스템(220)에 포함된 조명 소스는 조명 애퍼처(325)를 통해 광(예를 들어, 구조화된 광)을 방출할 수 있다. 깊이 감지 서브시스템(220)의 이미징 디바이스는 이미징 애퍼처(320)를 통해 로컬 영역으로부터 반사되거나 후방 산란되는 조명 소스로부터 광을 캡처할 수 있다. HMD 디바이스(300)의 실시예들은 도 2의 이미지 캡처 서브시스템(230)의 구성요소들일 수 있는 카메라들(340A 및 340B)을 더 포함할 수 있다. 카메라들(340A, 340B)은 사용자의 눈 사이의 평균 이격 거리와 상이한 거리만큼 서로 이격될 수 있다.
전면 강체(305)는 하나 이상의 전자 디스플레이 요소들, 하나 이상의 통합된 아이-트래킹 시스템들, IMU(330), 하나 이상의 포지션 센서(335), 및 기준점(315)을 포함할 수 있다. IMU(330)는 포지션 센서들(335) 중 하나 이상으로부터 수신된 측정 신호들에 기초하여 빠른 교정 데이터를 생성하는 전자 디바이스를 나타낼 수 있다. 포지션 센서(335)는 HMD 디바이스(300)의 움직임에 응답하여 하나 이상의 측정 신호를 생성할 수 있다.
도 4는 일부 실시예들에 따른, 도 2의 HMD 시스템(200)에 포함된 방향 표시기(270)의 실시예일 수 있는 예시적인 핸드-헬드 컨트롤러(400)의 사시도이다. HMD 시스템(200)은 컨트롤러(400)와 같은 하나 이상의 핸드-헬드 컨트롤러를 포함할 수 있다. 예를 들어, HMD 시스템(200)은 사용자의 오른손 및 왼손 각각에 대해 하나의 핸드-헬드 컨트롤러(400)를 갖는 2 개의 핸드-헬드 컨트롤러들(400)을 포함할 수 있다. 각각의 핸드-헬드 컨트롤러(400)는 HMD 디바이스(205) 및/또는 컴퓨팅 디바이스(예를 들어, 개인용 컴퓨터, 프로세싱 서브시스템(210) 등)에 통신 가능하게 결합될 수 있다. 핸드-헬드 컨트롤러(400)는 임의의 적절한 무선 및/또는 유선 연결을 통해 HMD 디바이스(205)에 통신 가능하게 결합될 수 있다.
도 4에 도시된 바와 같이, 핸드-헬드 컨트롤러(400)는 사용자의 손에 맞는 크기의 그립(402)을 포함할 수 있다. 헨드-헬드 제어기(400)는 또한 HMD 디바이스(205) 및/또는 실세계 환경에 대한 헨드-헬드 컨트롤러(400)의 포지션, 지향방향, 및/또는 움직임을 추적하기 위한 트래킹 루프(404)를 포함할 수 있다. 일부 실시예들에서, 트래킹 루프(404)는 트래킹 조명들(tracking lights)(406)의 어레이와 같은 하나 이상의 트래킹 조명들을 포함할 수 있다. 트래킹 조명들(406)의 어레이는 HMD 시스템(200)을 사용하는 동안 360도 모션 제어를 제공하기 위해 모션 및 포지션 트래킹 목적으로 사용되는 트래킹 LED들(예를 들어, 적외선(IR) LED들)을 포함할 수 있다. 트래킹 조명들(406)은 컨트롤러(400)의 지향방향을 결정하는 데 이용될 수 있어, 가상 경계를 "드로잉(draw)"하기 위해 실세계 환경의 바닥과의 교차점이 식별될 수 있다. 컨트롤러(400)는 컨트롤러(400)의 임의의 적절한 부분 상에 트래킹 조명들을 포함할 수 있다. 일부 예들에서, 핸드-헬드 컨트롤러(400)의 트래킹 조명들(406)은 대략 700 nm 초과 및 대략 900 nm 미만의 파장들을 갖는 광을 방출할 수 있다. 일 실시예에서, 핸드-헬드 컨트롤러(400)의 트래킹 조명(406)은 대략 850 nm(예를 들어, 대략 840 nm와 860 nm 사이 또는 대략 830 nm와 870 nm 사이)의 파장을 갖는 광을 방출할 수 있다. 적어도 하나의 실시예에서, 카메라들(340A 및 340B)은 핸드-헬드 컨트롤러(400) 상의 트래킹 조명들(406)에 의해 방출된 광을 수신할 수 있고, 트래킹 모듈(255)은 HMD 디바이스(205) 및/또는 실세계 환경의 기준 프레임과 같은 다른 기준 프레임에 대한 핸드-헬드 컨트롤러(400)의 위치, 지향방향 및/또는 움직임을 결정하기 위해 수신된 광을 이용할 수 있다.
기준 고도를 정의하기 위해, 사용자는 HMD 시스템(200)과 상호 작용할 수 있다. 예를 들어, 사용자는 실세계 환경의 베이스 평면을 제공할 수 있는 바닥과 접촉하는 핸드-헬드 컨트롤러(400)를 위치시키도록 촉구될 수 있다. 기준 고도는 바닥에 직각으로 정의될 수 있다. 일부 실시예들에서, HMD 디바이스(300)의 구성요소는 HMD 디바이스(300)의 지향방향 및 HMD 디바이스(300)로부터 바닥까지의 거리를 특징짓는 하나 이상의 깊이 측정치들에 기초하여 바닥 위의 높이를 결정할 수 있다. 예를 들어, HMD 시스템(200)은 사용자에게 가상 경계 정의 프로세스의 일부로서 실세계 환경의 바닥을 보도록 촉구할 수 있다.
일부 실시예들은 또한 기준 고도의 확인을 수신하는 것을 포함할 수 있다. 사용자에게는 기준 고도의 표시가 제시될 수 있다. 예를 들어, HMD 시스템(200)은 기준 고도 및/또는 기준 고도로부터 HMD 디바이스(300)의 현재 높이와 관련된 평면의 시각적 표현을 보여줄 수 있다. 그러면 사용자는 위에서 설명한 대로 기준 고도를 확인하거나 기준 고도를 정의/재정의할 수 있다.
도 1로 돌아가면, 단계 120에서 여기에 설명된 시스템들 중 하나 이상이 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립할 수 있다. 예를 들어, 프로세싱 서브시스템(210) 및/또는 HMD 디바이스(205) 및/또는 HMD 디바이스(300)는 방향 표시기(270) 및/또는 컨트롤러(400)로부터의 입력에 기초하거나 또는 이전에 정의된 가상 경계의 검색에 기초하여 가상 경계를 결정할 수 있다.
일부 실시예들에서, 용어 "가상 경계"는 사용자의 실세계 환경 및/또는 가상 환경에 대해 정의된 경계를 지칭할 수 있다. 가상 경계들의 예들은 VR 및/또는 AR 경험들 중에 사용자가 접할 수 있는 실세계 환경에서 장애물로부터 멀리 떨어진 안전 거리를 정의할 수 있는 여기에 설명된 안전 경계를 포함하며, 이에 대한 제한은 없다. 다른 가상 경계들은 센서들에 의해 검출되는 이상적인 위치들을 표시하는 경계들, 실세계 환경에서 사용자의 움직임을 제한하기 위한 경계들, 가상 환경에서 장애물을 배치 및/또는 제거하는 데 사용될 수 있는 경계들, 및 다른 사용을 위한 경계들을 포함할 수 있다.
여기에서 설명된 시스템들은 다양한 방식들로 단계 120을 수행할 수 있다. 하나의 예에서, 가상 경계는 HMD 시스템(200)에 저장된 이전의 사용자 동작 또는 디폴트 설정과 같은 이전에 저장된 설정으로부터 로딩될 수 있다. 다른 예들에서, 사용자는 예를 들어 HMD 시스템(200)을 사용하여 가상 경계를 정의할 수 있다.
도 5a 및 5b는 일부 실시예들에 따라, 거실과 같은 실세계 환경(500)에서 도 3의 HMD 디바이스(300)를 착용하고 도 4의 핸드-헬드 컨트롤러(400)를 들고 있는 사용자의 사시도 및 평면도를 각각 나타낸다. 실세계 환경(500)은 바닥(502)으로도 지칭되는 베이스 평면(502), 및 총괄적으로 벽들(504)로 지칭되는 벽들(504A, 504B, 504C, 및 504D)을 포함할 수 있다. 실세계 환경(500)은 또한 HMD 디바이스(300)에 의해 사용자의 뷰가 가려지는 경우 충돌 위험을 야기하는 방 내의 복수의 물체들 또는 피처들을 포함할 수 있다. 예를 들어, 환경(500)은 돌출된 맨틀피스(506B)를 갖는 벽난로(506A), 테이블(506C), 및 선반(506D)을 포함할 수 있다. 환경(500)은 도 5b에 도시된 바와 같이 소파(506E)를 더 포함할 수 있다. 물체들 및 피처들(506A, 506B, 506C, 506D, 및 506E)은 벽들(504)과 함께 실세계 환경(500)의 피처들(506)로 지칭될 수 있다.
일부 실시예들에서, 사용자는 HMD 디바이스(300)에 디스플레이된 가상 환경 내에서 이동하기 위해 실세계 환경(500) 내에서 이동할 수 있다. 즉, 사용자가 실세계 환경(500) 내에서 이동함에 따라, HMD 디바이스(300)의 전자 디스플레이(225)에 보여지는 이미지들은 사용자의 움직임에 따라 업데이트될 수 있다. 따라서, 사용자는 실세계 환경(500)에서 사용자가 이동함에 따라 가상 환경에 대해 이동한다. 아래에서 더 상세히 설명되는 바와 같이, 여기에 설명된 시스템들 및 방법들의 실시예들은 사용자가 실세계 환경(506)을 볼 수 없을 때(예를 들어, HMD 디바이스(300)에 의한 사용자의 실세계 뷰의 방해로 인해) 사용자가 피처들(506) 중 임의의 것과 충돌하는 것을 방지하기 위해 사용될 수 있는 가상 경계를 사용자가 정의하게 할 수 있다.
도 6a 및 6b는 일부 실시예들에 따라 가상 경계 또는 안전 경계를 생성하기 위해 사용자가 도 5a 및 5b의 실세계 환경(500)의 재현(reproduction)(600)과 상호 작용하는 데 대한 사시도 및 평면도를 각각 나타낸다. 실세계 환경(500)의 사용자 뷰가 HMD 디바이스(300)에 의해 전체적으로 또는 부분적으로 방해될 수 있기 때문에, 실세계 환경(500)의 재현(600)은 HMD 디바이스(300)의 전자 디스플레이(225)에서 사용자에게 제공될 수 있다. 재현(600)은 실세계 환경(500)의 패스-스루 뷰를 제공하기 위해 이미지 캡처 서브시스템(230)에 의해 생성될 수 있다. 일부 실시예들에서, 프로세싱 서브시스템(210)은 왜곡들을 제거하고 실세계 환경(500)의 개선된 뷰를 제공하기 위해 이미지 캡처 서브시스템(230)에 의해 캡처된 이미지에 대한 이미지 보정을 수행할 수 있다. 예를 들어, 프로세싱 서브시스템(210)은 카메라들(340A 및 340B)의 렌즈들에 의해 및/또는 카메라들(340A 및 340B) 사이의 이격 거리에 의해 야기되는 왜곡을 완화하기 위해 이미지 보정을 수행할 수 있다.
도 6a에 도시된 바와 같이, 사용자는 사용자가 가상 경계를 정의할 수 있는 경계 정의 상태 동안 교차점(602)을 선택하기 위한 포인터 또는 방향 표시기로서 컨트롤러(400)를 이용할 수 있다. 교차점(602)은 사용자에 의해 유지되고 조작되는 컨트롤러(400)의 지향방향 및 포지션에 의해 정의되는 가상 라인(604)과 바닥(502) 사이의 교차점의 위치로서 정의될 수 있다. 가상 라인(604)은 사용자가 바닥(502) 상에 가상 경계(606)를 드로잉할 수 있도록 HMD 디바이스(300)에서 사용자에게 디스플레이될 수 있다. 사용자가 컨트롤러(400)를 조작함에 따라, 교차점(602)과 같은 일련의 교차점들은 결합되어 바닥(502)을 따라 연장되는 가상 경계(606)를 형성할 수 있다. 도 6b는 교차점(602), 가상 라인(604), 및 가상 경계(606)를 묘사하는 실세계 환경(500)의 재현(600) 내의 평면도를 도시한다.
도 6c는 일부 실시예들에 따라 교차점(602)이 어떻게 정의될 수 있는지를 보여주는 다이어그램이다. 실세계 환경(500) 내의 핸드-헬드 컨트롤러의 포지션 및 지향방향은 IMU 및/또는 포지션 추적기들과 같은 핸드-헬드 컨트롤러(400) 내에 포함된 서브시스템들에 기초하여 결정될 수 있다. 일부 예들에서, 사용자는, 경계 정의 프로세스를 준비하기 위해 핸드-헬드 컨트롤러(400)를 베이스 평면 또는 바닥(502)과 접촉시켜 두도록 HMD 디바이스(300)에 디스플레이된 메시지에 의해 지시를 받을 수 있다. 그 다음, 사용자는 컨트롤러(400) 상의 버튼을 활성화하거나, 또는 컨트롤러(400)가 바닥(502)과 접촉하고 있음을 HMD 시스템(200)에 표시하기 위해 미리 결정된 양의 시간 동안 컨트롤러(400)를 가만히 유지할 수 있다. 그 다음, 사용자는 HMD 디바이스(300)와 컨트롤러(400) 모두가 바닥(502)의 컨트롤러(400)의 높이 또는 고도로서 사용될 수 있는 변위(D1)만큼 바닥(502)으로부터 변위되는 것을 유지하도록 지시받을 수 있다. 일부 실시예들에서, HMD 디바이스(300)는 바닥(502) 위의 고도 및 HMD 디바이스(300)와 핸드-헬드 컨트롤러(400) 사이의 거리를 결정할 수 있다. 예를 들어, 깊이 감지 서브시스템(220)은 구조화된 광을 사용하거나 또는 입체 이미지들을 사용하는 삼각측량 추정에 의해 바닥(502)으로부터 HMD 디바이스(300)까지의 거리를 결정할 수 있다. HMD 디바이스(300)와 핸드-헬드 컨트롤러(400) 사이의 거리는 변위(D1) 또는 핸드-헬드 컨트롤러(400)의 고도를 결정하기 위해 바닥(502) 위의 HMD 디바이스(300)의 높이로부터 차감될 수 있다. 컨트롤러(400)의 지향방향은 컨트롤러(400)의 축이 바닥(502)과 이루는 각도(A1)를 결정하기 위해 사용될 수 있다. 컨트롤러(400)의 위치, 상기 변위(D1), 및 상기 각도(Al)를 사용하여, 가상 라인(604)과 바닥(502) 사이의 교차점은 교차점(602)으로 사용될 수 있다. 컨트롤러(400)를 조작함으로써, 복수의 교차점들(602)이 식별될 수 있고 이들 점들(602)은 가상 경계(606)를 형성하도록 연결될 수 있다. 도 6c는 기준 고도로서 바닥(502)을 도시하지만, 다른 실시예들에서 기준 고도는 실세계 환경에서 또 다른 평면에 대해 정의될 수 있다.
다시 도 1로 돌아가면, 단계 130에서 여기에 설명된 시스템들 중 하나 이상은 사용자로부터 가상 경계를 수정하라는 요청을 수신할 수 있다. 예를 들어, HMD 시스템(200)은 컨트롤러(400)를 통해 사용자로부터 가상 경계를 수정하라는 요청을 수신할 수 있다.
일부 실시예들에서, HMD 시스템(200)은 가상 경계를 수정하기 위한 입력들을 모니터링하기 위해 경계 수정 상태(boundary modification state)에 들어갈 수 있다. "경계 수정 상태"라는 용어는 가상 경계가 사용자에 의해 수정될 수 있는 상태 또는 단계(state or phase)를 의미할 수 있다. 경계 수정 상태는 가상 경계가 정의될 수 있는 경계 정의 상태와 동일하거나 유사한 단계이거나, 또는 별도의 단계일 수 있다. 경계 수정 상태는 가상 경계를 수정하기 위한 전용의 HMD 시스템(200)의 특정 모드일 수 있다. 대안적으로, 경계 수정 상태는 HMD 시스템(200)의 다른 동작 상태들과 통합될 수 있다.
여기에서 설명된 시스템들은 다양한 방식들로 단계 130을 수행할 수 있다. 일례에서, 사용자는 가상 경계가 부적절할 수 있다는 통지를 받을 수 있고, 이에 따라 사용자는 경계 수정 상태를 시작할 수 있다. 사용자는 다양한 방식들로 가상 경계의 부적절함에 대해 통지를 받을 수 있다. 예를 들어, 사용자는 HMD 디바이스(300)를 통해서와 같이 시각적 또는 청각적 통지를 수신할 수 있다. 통지는 아이콘일 수 있으며, 또는 보다 강력한 시각적 표시기일 수 있다.
일부 예들에서, 상기 시스템은 또한 헤드 마운트 디스플레이 시스템의 이미징 시스템으로 실세계 환경의 뷰를 캡처할 수 있다. 캡처된 뷰는 렌즈-유도 왜곡을 가질 수 있다. 시스템은 캡처된 뷰에서 렌즈-유도 왜곡을 보정하여 실세계 환경의 보상된 뷰를 생성할 수 있다. 시스템은 또한 실세계 환경의 보상된 뷰에 가상 경계를 중첩하고, 경계 수정 상태 동안 헤드 마운트 디스플레이 시스템의 디스플레이에서 실세계 환경의 보상된 뷰를 디스플레이하할 수 있다. 도 7a 및 7b는 사용자에게 제시된 실세계 환경의 보상된 뷰의 예시적인 시나리오를 도시한다.
도 7a 및 7b는 일부 실시예들에 따라 가상 경계(606)를 생성하기 위해 실세계 환경(500)의 재현(600)과 상호 작용하는 사용자의 사시도 및 평면도를 각각 나타낸다. 가상 경계(606)는 경계 영역(608)을 정의할 수 있다. 경계 영역(608)은 가상 경계(606)에 의해 정의된 채워진 모양으로서 HMD 디바이스(300)에 의해 디스플레이될 수 있다. 경계 영역(608)은 단색과 같이 가상 경계(606)와 유사하게 디스플레이될 수 있거나, 가상 경계(606)에 대응하는 음영 또는 반투명 색상일 수 있다.
일부 예들에서, 가상 경계(606)에 의해 정의된 영역, 예를 들어 경계 영역(608)은 최소 면적 임계 값과 비교될 수 있다. 최소 면적 임계 값은 사용자가 실세계 환경에서 VR 및/또는 AR 시스템들을 안전하게 작동할 것으로 예상하게 되는 최소 사각형과 같은 최소 면적에 대응할 수 있다. 최소 면적 임계 값은 미리 결정된 값 또는 디폴트 값일 수 있거나 또는 실세계 환경에서 동적으로 결정될 수 있다. 최소 면적 임계 값은 최소 및/또는 최대 길이 및/또는 너비와 같은 치수 제한을 포함할 수 있다.
일부 예들에서, 최소 면적 임계 값은 최소 면적 임계 값에 맞거나 요구되는 평방 피트의 양과 같이, 사용자에게 명시적으로 제시될 수 있다. 다른 예들에서, 최소 면적 임계 값은 최소 면적 임계 값이 충족될 때 성공 색상(success color)으로 경계 영역을 디스플레이하고, 최소 면적 임계 값이 충족되지 않으면 경고 색상(warning color)으로 경계 영역을 디스플레이함으로써 표시될 수 있다. 예를 들어, 가상 경계(606) 및/또는 경계 영역(608)은 최소 면적 임계 값이 충족될 때 녹색으로, 최소 면적 임계 값이 충족되지 않으면 빨간색으로 디스플레이될 수 있다.
가상 경계(606)가 최소 면적 임계 값을 충족하지 않는 것을 볼 때, 사용자는 가상 경계를 수정하기 위해 경계 수정 상태를 시작할 수 있다. 대안적으로, 최소 면적 임계 값이 충족되지 않으면 경계 수정 상태가 자동으로 시작될 수 있다. 실례로, 경계 정의 상태 동안, 가상 경계(606)가 최소 면적 임계 값을 충족하지 않으면, 경계 수정 상태가 자동으로 시작될 수 있다. 또한, 사용자는 다른 이유들로 경계 수정 상태를 시작할 수 있다. 예를 들어, 실세계 환경이 변화되었거나, 또는 사용자가 더 작거나 더 큰 경계 영역을 선호하는 경우와 같이 사용자가 가상 경계를 조정하기를 원할 수 있다.
도 1로 돌아가면, 단계 140에서 여기에 설명된 시스템들 중 하나 이상은 사용자의 요청에 응답하여 방향 표시자의 지향방향을 모니터링하여 지향방향 데이터를 생성할 수 있다. 예를 들어, 프로세싱 서브시스템(210) 및/또는 HMD 디바이스(205) 및/또는 HMD 디바이스(300)는 방향 표시기(270) 및/또는 컨트롤러(400)로부터의 입력에 기초하여 지향방향 데이터를 결정할 수 있다. 일부 예들에서, 지향방향 데이터는 추가 입력 데이터를 포함할 수 있고 및/또는 그와 연관될 수 있다. 실례로, 지향방향 데이터는 기준 고도와 관련하여 방향 표시기의 고도 데이터를 포함할 수 있다. 지향방향 데이터는 방향 표시기의 포지션 데이터를 포함할 수 있다.
여기에서 설명된 시스템들은 다양한 방식들로 단계 140을 수행할 수 있다. 일례에서, 실세계 환경(500) 내의 핸드-헬드 컨트롤러(400)의 포지션 및 지향방향은 IMU 및/또는 포지션 센서들과 같은 핸드-헬드 컨트롤러(400) 내에 포함된 서브시스템들에 기초하여 결정될 수 있다. 도 6c와 관련하여 전술한 바와 같이, D1은 고도 데이터를 결정하기 위해 모니터링될 수 있고, A1은 지향방향 데이터를 결정하기 위해 모니터링될 수 있다. 대안적으로, 고도 데이터 및 지향방향 데이터는 실세계 환경(500)에서 컨트롤러(400)를 보는 카메라들과 같이 컨트롤러(400) 외부의 센서들로부터 결정될 수 있다.
도 1로 돌아가면, 단계 150에서 여기에 설명된 시스템들 중 하나 이상이 기준 고도 및 지향방향 데이터에 기초하여 가상 경계를 수정할 수 있다. 예를 들어, 프로세싱 서브시스템(210) 및/또는 HMD 디바이스(205) 및/또는 HMD 디바이스(300)는 방향 표시기(270) 및/또는 컨트롤러(400)로부터의 고도 데이터 및 지향방향 데이터, 및 기준 고도에 기초하여 가상 경계를 수정할 수 있다.
여기에서 설명된 시스템들은 다양한 방식들로 단계 150을 수행할 수 있다. 일례에서, 고도 데이터에 의해 표시된 고도 및 지향방향 데이터에 의해 표시된 지향방향에서 사용자 디바이스로부터 연장되는 가상 라인과 평면 사이의 교차점이 결정될 수 있다. 도 6c에 도시된 바와 같이, 컨트롤러(400)의 위치, D1, 및 A1은 가상 라인(604)이 시작하는 위치를 정의할 수 있고, 가상 라인(604)과 바닥(502) 사이의 교차하는 지점은 교차점(602)을 정의할 수 있다. 복수의 교차점들(602)이 가상 경계(606)를 정의하는 방법과 유사하게, 가상 경계(606)에 대한 수정은 하나 이상의 교차점(602)에 의해 정의될 수 있다. 교차점들(602)은 가상 경계(606)에 대한 확장을 정의할 수 있다.
가상 경계는 다양한 방식들로 수정될 수 있다. 예를 들어, 도 7a 및 7b는 가상 경계(606)가 어떻게 수정될 수 있는지를 예시한다. 가상 경계(606)는 최소 면적 임계 값을 충족하지 않을 수 있고, 경계 영역(608)은 경고 색상으로 디스플레이될 수 있다. 사용자는 하나 이상의 교차점(602)에 의해 정의될 수 있는 수정 라인(610)을 정의하기 위해 컨트롤러(400)를 조작할 수 있다. 도 7a 및 7b에서 완전하게 도시되지 않았지만, 수정 라인(610)은 최소 면적 임계 값을 충족시키기 위해 경계 영역(608)을 둘러싸는 영역의 윤곽을 그릴 수 있다.
가상 경계는 가상 경계에 부분들을 추가함으로써 수정될 수 있다. 예를 들어, 가상 경계(606)의 부분들은 경계 영역(608)에 추가 영역들을 추가하기 위해 연장될 수 있다. 추가 영역들은 경계 영역(608)의 측면에 연결되는 것과 같이 경계 영역(608)에 연결될 수 있으며, 또는 경계 영역(608)과 연관되는 분리된 그렇지 않으면 불연속적인 영역일 수 있다. 추가 영역들은 경계 영역(608)을 부분적으로 또는 완전히 둘러쌀 수 있다.
다른 예들에서, 가상 경계를 수정하는 것은 가상 경계로부터 부분들을 제거하는 것을 포함할 수 있다. 예를 들어, 경계 수정 상태는 부분들을 추가하기 위한 추가 상태 및 가상 경계로부터 부분들을 제거하기 위한 제거 상태를 포함할 수 있다. 사용자는 가상 경계를 원하는 모양으로 정의하고 수정하기 위해 추가 및 제거 상태 사이에서 전환할 수 있다. 예를 들어, 사용자는 컨트롤러(400)를 사용하여 추가 상태에 들어가고 가상 경계(606)에 추가들을 드로잉(draw)할 수 있다. 사용자는 컨트롤러(400)를 사용하여 제거 상태에 들어가고 가상 경계(606)로부터 부분들을 깎아낼 수 있다.
다른 예들에서, 가상 경계를 수정하는 것은 가상 경계를 재설정함으로써 달성될 수 있다. 예를 들어, 사용자는 가상 경계를 재설정하라는 표시를 보낼 수 있다. 그러면, 사용자는 빈 상태(empty state)에서 가상 경계를 정의할 수 있다. 대안적으로, 사용자는 하나 이상의 수정을 실행 취소/재실행할 수 있다.
수정된 가상 경계는 최소 면적 임계 값과 비교될 수 있다. 예를 들어, 사용자가 수정 사항들을 드로잉함에 따라 상기 비교는 실시간으로 동적으로 발생할 수 있다. 불완전한 루프들(incomplete loops) 및/또는 연결되지 않은 부분들은 예를 들어 면적을 추정하기 위해 연결되지 않은 부분들을 연결하기 위한 최단 거리 직선으로 자동으로 연결될 수 있다. 따라서, 사용자는 최소 면적 임계 값이 충족될 때 실시간으로 볼 수 있다. 대안적으로, 사용자가 경계 수정 상태를 종료하라고 나타낼 때 최소 면적 비교가 발생할 수 있다. 일부 예들에서, 사용자는 최소 면적 임계 값이 충족되지 않는 한 경계 수정 상태를 종료하지 않을 수도 있다.
또한 경계 수정 상태가 종료되면 가상 경계에 오류들이 있는지 확인할 수 있다. 오류들에는 예를 들어 폐쇄되지 않은 루프들, 제로 영역 부분들, 사용자가 합리적으로 사용하기에는 너무 작을 수 있는 부분들(최소 부분 영역 임계 값과 비교될 수 있음), 및 다른 오류들이 포함될 수 있다. 일부 예들에서, 오류들은 자동으로 수정될 수 있다. 예를 들어, 폐쇄되지 않은 루프들은 연결될 수 있고, 문제가 있는 부분들은 제거될 수 있는 등이다. 다른 예들에서, 사용자는 오류들에 대해 경고를 받을 수 있으며, 일부 예들에서 경계 수정 상태가 자동으로 다시 시작될 수 있다. 일부 예들에서, 경계 수정 상태는 가상 경계에서 검출된 오류가 없을 때까지 종료되지 않을 수 있다.
사용자가 경계 수정 상태를 완료하고, 최소 면적 임계 값의 충족을 요구할 수 있는 가상 경계를 완결 한 후, 사용자는 가상 경계와 상호 작용할 수 있다. 도 8a 및 8b는 일부 실시예들에 따라 가상 환경에서 정의된 가상 경계와 상호 작용하는 사용자의 사시도 및 평면도를 각각 나타낸다. 도 8a 및 8b에 도시된 바와 같이, 가상 환경(800)은 HMD 디바이스(300)에서 사용자에게 디스플레이될 수 있다. 가상 환경(800)은 사용자가 이동할 수 있는 캡처된 장면 또는 비디오 게임과 같은 인공적인 환경을 나타낼 수 있다. 사용자는 실세계 환경(500) 내에서 이동함으로써 가상 환경(800) 내에서 이동할 수 있다. 가상 환경은 가상 경계(606)의 시각적 표시를 포함할 수 있다. 다시 말해서, 가상 경계(606)는 HMD 디바이스(300)의 시야가 가상 경계(606)를 포함할 때마다 사용자가 가상 경계(606)를 볼 수 있도록 시각적으로 렌더링되어 사용자에게 제공될 수 있다. 일부 실시예들에서, 사용자는 가상 경계(606)가 일관되게 나타나게 하거나 또는 사용자가 임계 거리 내에 있을 때만 가상 경계(606)가 나타나게 하도록 설정을 선택할 수 있다. 이러한 임계 거리는 속도 또는 사용자의 움직임에 의존할 수 있으며 및/또는 경계에 가장 가까운 사용자 또는 HMD 시스템(200)의 특정 부분에 의존할 수 있다.
일부 실시예들에서, 사용자가 가상 경계(606)에 접근할 때, 경계 벽(802)(요소들(802A 및 802B)로 예시 됨)이 HMD 디바이스(300)에서 렌더링되어 사용자에게 가상 경계(606)에 대한 자신의 근접을 경고할 수 있으며, 결과적으로 충돌 위험이 있는 실세계 환경(500) 내의 피처(506)에 대한 자신의 근접을 경고할 수 있다. 경계 벽(802)은 사용자가 경계 벽(802)을 통해 가상 환경(800)의 부분을 계속 볼 수 있게 하는 일련의 수직 또는 수평 막대들, 라인 그리드(a grid of lines), 도트 그리드(a grid of dots) 등으로서 렌더링될 수 있다. 다른 실시예들에서, 경계 벽(802)은 가상 환경(800)의 부분에 대한 사용자의 뷰를 완전히 "차단"하는 방식으로 렌더링될 수 있다. 일부 실시예들에서, 경계 벽(802)의 렌더링은 사용자가 가상 경계(606)에 더 가까워짐에 따라 증가하는 사용자 뷰의 양을 방해할 수 있다. 다른 예들에서, 경계 벽(802)은 (예를 들어, 이미지 캡처 서브시스템(230)에 의해 제공되는) 실세계 환경의 패스-스루 뷰 위에 오버레이되거나 그렇지 않으면 렌더링될 수 있다.
도 8a 및 8b에 도시된 바와 같이, 별도의 벽 부분들이 HMD 디바이스(300)에서 렌더링될 수 있다. 따라서, 경계 벽(802A) 및 경계 벽(802B)이 도시된다. 경계 벽(802A)은 사용자와 가상 경계(606) 사이의 거리가 거리 D2보다 작거나 같을 때 렌더링될 수 있다. 거리 D2는 사용자에 의해 또는 HMD 시스템(200)에 의해 자동으로 구성될 수 있다. 예를 들어, 2 피트와 5 피트 사이의 임계 거리가 일부 실시예들에서 사용될 수 있다. 일부 실시예들에서, 임계 거리는 사용자의 속도의 함수일 수 있다. 경계 벽(802B)은 컨트롤러(400)와 가상 경계(606) 사이의 거리(D3)에 기초하거나 HMD 디바이스(300)와 가상 경계(606) 사이의 거리(D4)에 기초하여 HMD 디바이스(300)에서 렌더링될 수 있다. 일부 구현들에서, 사용자가 하나 이상의 컨트롤러(400)를 잡고 있는지 여부에 관계없이 사용자의 손 또는 손들이 가상 경계(606)에 너무 가깝다고 결정될 때 사용자의 손의 포지션이 모니터링될 수 있고 경계 벽(802)이 사용자에게 디스플레이될 수 있다.
일부 실시예들에서, 방법(100)은 실세계 환경의 물리적 정의를 생성하고, 가상 경계가 정의된 실세계 환경의 물리적 정의와 관련하여 임의의 수정들을 포함하는 가상 경계를 메모리 디바이스에 저장하여, 사용자 정의 가상 경계가 가상 경계가 정의된 동일한 실세계 환경에서 다시 로딩되어 다시 사용될 수 있다. 도 9에 도시된 바와 같이, 메모리 디바이스(900)로 지칭되는 메모리 디바이스는 HMD 시스템(200)에 포함될 수 있다. 메모리 디바이스(900)는 복수의 물리적 정의들(902A-D)을 포함하는 테이블 또는 가상 경계 라이브러리를 저장할 수 있다. 물리적 정의들(902A-D) 각각은 가상 경계(904A-D)와 각각 연관될 수 있다. 일부 실시예들에서, 가상 경계 라이브러리는 또한 예를 들어 사용자가 수정들을 실행 취소/재실행하는 것을 가능하게 하는 수정들의 이력을 결정하기 위해 엔트리가 수정에 대응하는지 여부를 추가로 나타낼 수 있다. 방법(100)은 실세계 환경의 임시 물리적 정의(provisional physical definition)를 생성한 다음 그 정의를 메모리 디바이스(900)에 포함된 물리적 정의들(902A-D)과 비교하는 것을 포함할 수 있는 실세계 환경 검사를 수행하는 동작들을 포함할 수 있다. 비교의 결과로서 일치(match)가 발견되면, 프로세싱 서브시스템(210)은 HMD 시스템(200)에 의해 대응하는 가상 경계의 사용을 허용할 수 있다. 프로세싱 서브시스템(210)은 실세계 환경 검사가 일치를 찾지 못하고 사용자에게 새로운 가상 경계를 정의하도록 요구할 때 HMD 시스템(200)에 의한 가상 경계의 사용을 거부할 수 있다.
여기에서 설명된 양상들에 따르면, VR 시스템의 사용자는 이전에 정의된 가상 경계를 수정할 수 있다. HMD 디바이스를 착용한 사용자는 실세계 환경의 패스-스루 뷰에 오버레이된 가상 경계를 볼 수 있다. 사용자는 핸드-헬드 컨트롤러를 사용하여 가상 경계에 대한 수정들을 드로잉할 수 있다. HMD 디바이스 및 핸드-헬드 컨트롤러는 사용자로 하여금 수정을 "드로잉" 또는 "페인트 브러싱(paint-brushing)"함으로써 가상 경계를 직관적으로 수정할 수 있게 한다. 사용자가 가상 경계를 수정할 수 있게 하는 것은, 보정이 필요한 경우 사용자가 처음부터 가상 경계를 완전히 재정의해야하는 것을 방지할 수 있다. 사용자는 또한 가상 경계에 대한 보정들이 필요한 경우 시각적으로 및/또는 청각적으로 통지를 받을 수 있으며 그런 다음 실시간으로 가상 경계를 보정할 수 있다. 따라서, 사용자는 가상 경계를 정의하고 수정하기 위한 보다 효율적이고 직관적인 인터페이스를 제시받을 수 있다.
상기 설명된 바와 같이, 여기에 설명 및/또는 예시된 컴퓨팅 장치들 및 시스템들은 여기에서 설명된 모듈들 내에 포함된 것들과 같은 컴퓨터 판독 가능 명령들을 실행할 수 있는 임의의 유형 또는 형태의 컴퓨팅 장치 또는 시스템을 광범위하게 나타낸다. 가장 기본적인 구성에서, 이러한 컴퓨팅 장치(들)는 각각 적어도 하나의 메모리 장치 및 적어도 하나의 물리적 프로세서를 포함할 수 있다.
일부 예들에서, "메모리 장치"라는 용어는 일반적으로 데이터 및/또는 컴퓨터 판독 가능 명령어들을 저장할 수 있는 임의의 유형 또는 형태의 휘발성 또는 비 휘발성 저장 장치 또는 매체를 지칭한다. 일례에서, 메모리 장치는 여기에서 설명된 모듈들 중 하나 이상을 저장, 로딩 및/또는 유지할 수 있다. 메모리 장치들의 예들은 RAM(Random Access Memory), ROM(Read Only Memory), 플래시 메모리, 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD), 광 디스크 드라이브, 캐시, 상기 동일한 것들의 하나 이상의 변형 또는 조합, 또는 임의의 다른 적절한 저장 메모리를 포함하며, 제한은 없다.
일부 예들에서, "물리적 프로세서"라는 용어는 일반적으로 컴퓨터 판독 가능 명령들을 해석 및/또는 실행할 수 있는 하드웨어 구현 프로세싱 유닛의 임의의 유형 또는 형태를 지칭한다. 일례에서, 물리적 프로세서는 상기 설명된 메모리 장치에 저장된 하나 이상의 모듈들을 액세스 및/또는 수정할 수 있다. 물리적 프로세서들의 예들은 마이크로 프로세서, 마이크로 컨트롤러, 중앙 처리 장치(CPU), 소프트 코어 프로세서를 구현하는 FPGA(Field-Programmable Gate Array), ASIC(Application-Specific Integrated Circuit), 상기 동일한 것들의 하나 이상의 부분들, 상기 동일한 것들의 하나 이상의 변형 또는 조합, 또는 임의의 다른 적절한 물리적 프로세서를 포함하며, 제한은 없다.
별도의 요소들로 예시되었지만, 여기에서 설명 및/또는 예시된 모듈들은 단일 모듈 또는 애플리케이션의 일부들을 나타낼 수 있다. 또한, 특정 실시예들에서, 이러한 모듈들 중 하나 이상은 컴퓨팅 장치에 의해 실행될 때 컴퓨팅 장치로 하여금 하나 이상의 작업들을 수행하게 할 수 있는 하나 이상의 소프트웨어 애플리케이션들 또는 프로그램들을 나타낼 수 있다. 예를 들어, 여기에서 설명 및/또는 예시된 하나 이상의 모듈들은 여기에서 설명 및/또는 예시된 하나 이상의 컴퓨팅 장치들 또는 시스템들에서 구동하도록 저장 및 구성된 모듈들을 나타낼 수 있다. 이러한 모듈들 중 하나 이상은 또한 하나 이상의 작업들을 수행하도록 구성된 하나 이상의 특수 목적 컴퓨터들의 전부 또는 일부를 나타낼 수 있다.
또한, 여기에서 설명된 하나 이상의 모듈들은 데이터, 물리적 장치들 및/또는 물리적 장치들의 표현들을 한 형태에서 다른 형태로 변환할 수 있다. 예를 들어, 여기에서 언급된 모듈들 중 하나 이상은 변환될 센서 데이터를 수신할 수 있고, 센서 데이터를 변환할 수 있고, 변환 결과를 출력하여 가상 경계를 디스플레이할 수 있고, 변환 결과를 사용하여 가상 경계를 정의 및/또는 수정할 수 있고, 변환 결과를 저장하여 가상 경계를 확립할 수 있다. 추가적으로 또는 대안적으로, 여기에서 언급된 모듈들 중 하나 이상은 컴퓨팅 장치에서 실행하고 컴퓨팅 장치에 데이터를 저장하고, 및/또는 그렇지 않으면 컴퓨팅 장치와 상호 작용함으로써, 프로세서, 휘발성 메모리, 비 휘발성 메모리, 및/또는 물리적 컴퓨팅 장치의 임의의 다른 부분을 한 형태에서 다른 형태로 변환할 수 있다.
일부 실시예들에서, "컴퓨터 판독 가능 매체"라는 용어는 일반적으로 컴퓨터 판독 가능 명령들을 저장하거나 전달할 수 있는 임의의 형태의 장치, 캐리어, 또는 매체를 지칭한다. 컴퓨터 판독 가능 매체의 예들은 반송파와 같은 전송 유형 매체와, 자기 저장 매체(예를 들어, 하드 디스크 드라이브, 테이프 드라이브, 및 플로피 디스크), 광학 저장 매체(예를 들어, 컴팩트 디스크(CD), 디지털 비디오 디스크(DVD), 및 BLU-RAY 디스크), 전자 저장 매체(예를 들어, 솔리드 스테이트 드라이브 및 플래시 매체), 및 기타 배포 시스템들과 같은 비 일시적 유형 매체를 포함하며, 제한은 없다.
본 개시의 실시예들은 인공 현실 시스템을 포함하거나 이와 함께 구현될 수 있다. 인공 현실은 사용자에게 제공 전에 일부 방식으로 조정된 현실의 형태이고, 이는 예를 들어 가상 현실(VR), 증강 현실(AR), 혼합 현실(MR), 하이브리드 현실 또는 이들의 일부 조합 및/또는 유도물을 포함할 수 있다. 인공 현실 컨텐츠는 완전하게 발생된 컨텐츠 또는 캡처된 (예를 들어, 실제-세계(real-world)) 컨텐츠와 결합되는 발생된 컨텐츠를 포함할 수 있다. 인공 현실 컨텐츠는 비디오, 오디오, 햅틱 피드백 또는 이들의 일부 조합을 포함할 수 있으며, 이들 중 임의의 것은 단일 채널 또는 다중 채널(예를 들어, 시청자에게 3차원 효과를 생성하는 입체 비디오)로 제공될 수 있다. 부가적으로, 일부 실시예들에서, 인공 현실은 또한 예를 들어 인공 현실에서 컨텐츠를 생성하고/하거나 인공 현실에서 달리 사용되는(예를 들어, 활동들을 수행하는), 애플리케이션들, 제품들, 액세서리들, 서비스들 또는 이들의 일부 조합과 관련될 수 있다. 인공 현실 콘텐츠를 제공하는 인공 현실 시스템은 호스트 컴퓨터 시스템에 연결된 헤드-마운티드 디스플레이(HMD), 독립형 HMD, 모바일 디바이스 또는 컴퓨팅 시스템, 또는 인공 현실 콘텐츠를 한명 이상의 뷰어들에게 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함하는 다양한 플랫폼들에서 구현될 수 있다.
여기에서 설명 및/또는 예시된 프로세스 파라미터들 및 단계들의 순서는 단지 예로서 제공되며 원하는 대로 변경될 수 있다. 예를 들어, 여기에서 예시 및/또는 설명된 단계들이 특정 순서로 도시되거나 논의될 수 있지만, 이들 단계들은 반드시 예시되거나 논의된 순서로 수행될 필요는 없다. 여기에서 설명 및/또는 예시된 다양한 예시적인 방법들은 또한 여기에서 설명되거나 예시된 단계들 중 하나 이상을 생략하거나, 개시된 것들에 추가하여 추가 단계들을 포함할 수 있다.
전술한 설명은 당업자가 본 명세서에 개시된 예시적인 실시예의 다양한 측면들을 가장 잘 활용할 수 있도록 제공되었다. 이러한 예시적인 설명은 포괄적이거나 개시된 임의의 정확한 형태로 제한되도록 의도되지 않는다. 본 개시의 사상 및 범위를 벗어나지 않고서 많은 수정들과 변경들이 가능하다. 따라서, 여기에 개시된 실시예들은 모든 면에서 예시적이고 제한적이지 않은 것으로 고려되어야 한다. 본 개시의 범위를 결정함에 있어 첨부된 청구 범위 및 그 등가물을 참조해야 한다.
달리 언급되지 않는 한, 명세서 및 청구 범위에서 사용되는 "연결된" 및 "결합된” (및 그 파생어)이라는 용어들은 직접 및 간접(즉, 다른 요소들 또는 구성 요소들을 통한) 연결을 허용하는 것으로 해석되어야 한다. 또한, 명세서 및 청구 범위에서 사용되는 단수 표현("a” 또는 "an”)의 용어들은 “적어도 하나”를 의미하는 것으로 해석되어야 한다. 마지막으로, 사용의 용이성을 위해, 명세서 및 청구 범위에서 사용되는 "포함하는" 및 "갖는” (및 그 파생어들)이라는 용어들은 "구비하는"이라는 용어와 상호 교환 가능하고 동일한 의미를 갖는다.

Claims (35)

  1. 방법으로서:
    실세계 환경의 평면을 나타내는 기준 고도의 표시를 수신하는 단계;
    상기 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하는 단계;
    사용자로부터 상기 가상 경계를 수정하기 위한 요청을 수신하는 단계;
    상기 사용자로부터의 요청에 응답하여, 지향방향 데이터(orientation data)를 생성하기 위해 방향 표시기(direction indicator)의 지향방향을 모니터링하는 단계; 및
    상기 기준 고도 및 상기 지향방향 데이터에 기초하여 상기 가상 경계를 수정하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서, 상기 지향방향 데이터는 상기 기준 고도와 관련하여 상기 방향 표시기의 고도의 고도 데이터를 포함하는, 방법.
  3. 제 2 항에 있어서, 상기 가상 경계를 수정하는 단계는 상기 고도 데이터에 의해 표시된 고도 및 상기 지향방향 데이터에 의해 표시된 지향방향에서 상기 방향 표시기로부터 연장되는 가상 라인과 상기 평면 사이의 교차점(intersection)을 결정하는 단계를 포함하는, 방법.
  4. 제 1 항에 있어서,
    헤드 마운트 디스플레이 시스템의 이미징 시스템으로 상기 실세계 환경의 뷰를 캡처하는 단계로서, 상기 캡처된 뷰는 렌즈-유도 왜곡(lens-induced distortion)을 갖는, 상기 실세계 환경의 뷰를 캡처하는 단계;
    상기 실세계 환경의 보상된 뷰를 생성하기 위해 상기 캡처된 뷰에서 상기 렌즈-유도 왜곡을 보정하는 단계;
    상기 실세계 환경의 보상된 뷰에 상기 가상 경계를 중첩하는 단계; 및
    상기 헤드 마운트 디스플레이 시스템의 디스플레이에서 상기 실세계 환경의 보상된 뷰를 디스플레이하는 단계를 더 포함하는, 방법.
  5. 제 4 항에 있어서, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값(minimum area threshold)을 충족할 때 성공 색상(success color)으로 디스플레이되고, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족하지 않을 때 경고 색상(warning color)으로 디스플레이되는, 방법.
  6. 제 4 항에 있어서, 상기 가상 경계는 상기 가상 경계에 의해 정의된 채워진 모양(filled-in shape)으로 디스플레이되는, 방법.
  7. 제 1 항에 있어서, 상기 가상 경계를 수정하는 단계는 상기 가상 경계에 부분들을 추가하거나 그로부터 부분들을 제거하는 단계를 포함하는, 방법.
  8. 제 1 항에 있어서, 상기 기준 고도의 확인(confirmation)을 수신하는 단계를 더 포함하는, 방법.
  9. 제 1 항에 있어서, 상기 가상 경계를 재설정하기 위한 표시를 수신하는 단계를 더 포함하는, 방법.
  10. 명령들을 저장하고 있는 유형의(tangible) 비 일시적 컴퓨터 판독가능한 저장 매체로서, 상기 명령들은 프로세싱 시스템에 의해 실행될 때 상기 프로세싱 시스템으로 하여금:
    실세계 환경의 평면을 나타내는 기준 고도의 표시를 수신하는 것;
    상기 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하는 것;
    지향방향 데이터를 생성하기 위해 방향 표시기의 지향방향을 모니터링하는 것; 및
    상기 기준 고도 및 상기 지향방향 데이터에 기초하여 상기 가상 경계를 수정하는 것을 포함하는 동작들을 수행하게 하는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  11. 제 10 항에 있어서, 상기 지향방향 데이터는 상기 기준 고도와 관련하여 상기 방향 표시기의 고도의 고도 데이터를 포함하는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  12. 제 11 항에 있어서, 상기 가상 경계를 수정하는 것은 상기 고도 데이터에 의해 표시된 고도 및 상기 지향방향 데이터에 의해 표시된 지향방향에서 상기 방향 표시기로부터 연장되는 가상 라인과 상기 평면 사이의 교차점을 결정하는 것을 포함하는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  13. 제 10 항에 있어서,
    헤드 마운트 디스플레이 시스템의 이미징 시스템으로 상기 실세계 환경의 뷰를 캡처하고-상기 캡처된 뷰는 렌즈-유도 왜곡을 가짐-;
    상기 실세계 환경의 보상된 뷰를 생성하기 위해 상기 캡처된 뷰에서 상기 렌즈-유도 왜곡을 보정하고;
    상기 실세계 환경의 보상된 뷰에 상기 가상 경계에 의해 정의된 채워진 모양으로서 상기 가상 경계를 중첩하고;
    상기 헤드 마운트 디스플레이 시스템의 디스플레이에서 상기 실세계 환경의 보상된 뷰를 디스플레이하기 위한 명령들을 더 포함하는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  14. 제 13 항에 있어서, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족할 때 성공 색상으로 디스플레이되고, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족하지 않을 때 경고 색상으로 디스플레이되는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  15. 제 10 항에 있어서, 상기 가상 경계를 수정하는 것은 상기 가상 경계에 부분들을 추가하거나 그로부터 부분들을 제거하는 것을 포함하는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  16. 헤드 마운트 디스플레이 시스템으로서:
    사용자 부착 시스템에 고정된 디스플레이;
    방향 표시기; 및
    프로세싱 시스템을 더 포함하고, 상기 프로세싱 시스템은:
    실세계 환경의 평면을 나타내는 기준 고도를 식별하고;
    상기 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하고;
    상기 방향 표시기의 지향방향을 특징짓는 지향방향 데이터 및 상기 기준 고도에 기초하여 상기 가상 경계를 수정하도록 구성되는, 헤드 마운트 디스플레이 시스템.
  17. 제 16 항에 있어서, 상기 프로세싱 시스템은 또한:
    헤드 마운트 디스플레이 시스템의 이미징 시스템으로 상기 실세계 환경의 뷰를 캡처하고-상기 캡처된 뷰는 렌즈-유도 왜곡을 가짐-;
    상기 실세계 환경의 보상된 뷰를 생성하기 위해 상기 캡처된 뷰에서 상기 렌즈-유도 왜곡을 보정하고;
    상기 실세계 환경의 보상된 뷰에 상기 가상 경계에 의해 정의된 채워진 모양으로서 상기 가상 경계를 중첩하고;
    상기 헤드 마운트 디스플레이 시스템의 디스플레이에서 상기 실세계 환경의 보상된 뷰를 디스플레이하도록 구성되는, 헤드 마운트 디스플레이 시스템.
  18. 제 17 항에 있어서, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족할 때 성공 색상으로 디스플레이되고, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족하지 않을 때 경고 색상으로 디스플레이되는, 헤드 마운트 디스플레이 시스템.
  19. 제 16 항에 있어서, 상기 가상 경계를 수정하는 것은 상기 가상 경계에 부분들을 추가하거나 그로부터 부분들을 제거하는 것을 포함하는, 헤드 마운트 디스플레이 시스템.
  20. 제 16 항에 있어서, 상기 지향방향 데이터는 상기 방향 표시기의 고도의 고도 데이터를 포함하고, 상기 가상 경계를 수정하는 것은 상기 고도 데이터에 의해 표시된 고도 및 상기 지향방향 데이터에 의해 표시된 지향방향에서 상기 방향 표시기로부터 연장되는 가상 라인과 상기 평면 사이의 교차점을 결정하는 것을 포함하는, 헤드 마운트 디스플레이 시스템.
  21. 컴퓨터 구현 방법에 있어서:
    실세계 환경의 평면을 나타내는 기준 고도의 표시를 수신하는 단계;
    상기 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하는 단계;
    사용자로부터 상기 가상 경계를 수정하기 위한 요청을 수신하는 단계;
    상기 사용자로부터의 요청에 응답하여, 지향방향 데이터를 생성하기 위해 방향 표시기의 지향방향을 모니터링하는 단계; 및
    상기 기준 고도 및 상기 지향방향 데이터에 기초하여 상기 가상 경계를 수정하는 단계를 포함하는, 컴퓨터 구현 방법.
  22. 제 21 항에 있어서, 상기 지향방향 데이터는 상기 기준 고도와 관련하여 상기 방향 표시기의 고도의 고도 데이터를 포함하고,
    선택적으로, 상기 가상 경계를 수정하는 단계는 상기 고도 데이터에 의해 표시된 고도 및 상기 지향방향 데이터에 의해 표시된 지향방향에서 상기 방향 표시기로부터 연장되는 가상 라인과 상기 평면 사이의 교차점을 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  23. 제 21 항 또는 제 22 항에 있어서,
    헤드 마운트 디스플레이 시스템의 이미징 시스템으로 상기 실세계 환경의 뷰를 캡처하는 단계로서, 상기 캡처된 뷰는 렌즈-유도 왜곡을 갖는, 상기 실세계 환경의 뷰를 캡처하는 단계;
    상기 실세계 환경의 보상된 뷰를 생성하기 위해 상기 캡처된 뷰에서 상기 렌즈-유도 왜곡을 보정하는 단계;
    상기 실세계 환경의 보상된 뷰에 상기 가상 경계를 중첩하는 단계; 및
    상기 헤드 마운트 디스플레이 시스템의 디스플레이에서 상기 실세계 환경의 보상된 뷰를 디스플레이하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  24. 제 23 항에 있어서, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족할 때 성공 색상으로 디스플레이되고, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족하지 않을 때 경고 색상으로 디스플레이되며; 및/또는
    상기 가상 경계는 상기 가상 경계에 의해 정의된 채워진 모양으로 디스플레이되는, 컴퓨터 구현 방법.
  25. 제 21 항 내지 제 24 항 중 어느 한 항에 있어서, 상기 가상 경계를 수정하는 단계는 상기 가상 경계에 부분들을 추가하거나 그로부터 부분들을 제거하는 단계를 포함하는, 컴퓨터 구현 방법.
  26. 제 21 항 내지 제 25 항 중 어느 한 항에 있어서, 상기 기준 고도의 확인을 수신하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  27. 제 21 항 내지 제 26 항 중 어느 한 항에 있어서, 상기 가상 경계를 재설정하기 위한 표시를 수신하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  28. 명령들을 저장하고 있는 유형의 비 일시적 컴퓨터 판독가능한 저장 매체로서, 상기 명령들은 프로세싱 시스템에 의해 실행될 때 상기 프로세싱 시스템으로 하여금:
    실세계 환경의 평면을 나타내는 기준 고도의 표시를 수신하는 것;
    상기 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하는 것;
    지향방향 데이터를 생성하기 위해 방향 표시기의 지향방향을 모니터링하는 것; 및
    상기 기준 고도 및 상기 지향방향 데이터에 기초하여 상기 가상 경계를 수정하는 것을 포함하는 동작들을 수행하게 하는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  29. 제 28 항에 있어서, 상기 지향방향 데이터는 상기 기준 고도와 관련하여 상기 방향 표시기의 고도의 고도 데이터를 포함하고;
    선택적으로, 상기 가상 경계를 수정하는 것은 상기 고도 데이터에 의해 표시된 고도 및 상기 지향방향 데이터에 의해 표시된 지향방향에서 상기 방향 표시기로부터 연장되는 가상 라인과 상기 평면 사이의 교차점을 결정하는 것을 포함하는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  30. 제 28 항 또는 제 29 항에 있어서,
    헤드 마운트 디스플레이 시스템의 이미징 시스템으로 상기 실세계 환경의 뷰를 캡처하고-상기 캡처된 뷰는 렌즈-유도 왜곡을 가짐-;
    상기 실세계 환경의 보상된 뷰를 생성하기 위해 상기 캡처된 뷰에서 상기 렌즈-유도 왜곡을 보정하고;
    상기 실세계 환경의 보상된 뷰에 상기 가상 경계에 의해 정의된 채워진 모양으로서 상기 가상 경계를 중첩하고;
    상기 헤드 마운트 디스플레이 시스템의 디스플레이에서 상기 실세계 환경의 보상된 뷰를 디스플레이하기 위한 명령들을 더 포함하며,
    선택적으로, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족할 때 성공 색상으로 디스플레이되고, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족하지 않을 때 경고 색상으로 디스플레이되는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  31. 제 28 항 내지 제 30 항 중 어느 한 항에 있어서, 상기 가상 경계를 수정하는 것은 상기 가상 경계에 부분들을 추가하거나 그로부터 부분들을 제거하는 것을 포함하는, 유형의 비 일시적 컴퓨터 판독가능한 저장 매체.
  32. 헤드 마운트 디스플레이 시스템으로서:
    사용자 부착 시스템에 고정된 디스플레이;
    방향 표시기; 및
    프로세싱 시스템을 포함하고, 상기 프로세싱 시스템은:
    실세계 환경의 평면을 나타내는 기준 고도를 식별하고;
    상기 기준 고도와 관련하여 가상 세계 환경에 대한 가상 경계를 확립하고;
    상기 방향 표시기의 지향방향을 특징짓는 지향방향 데이터 및 상기 기준 고도에 기초하여 상기 가상 경계를 수정하도록 구성되는, 헤드 마운트 디스플레이 시스템.
  33. 제 32 항에 있어서, 상기 프로세싱 시스템은 또한:
    헤드 마운트 디스플레이 시스템의 이미징 시스템으로 상기 실세계 환경의 뷰를 캡처하고-상기 캡처된 뷰는 렌즈-유도 왜곡을 가짐-;
    상기 실세계 환경의 보상된 뷰를 생성하기 위해 상기 캡처된 뷰에서 상기 렌즈-유도 왜곡을 보정하고;
    상기 실세계 환경의 보상된 뷰에 상기 가상 경계에 의해 정의된 채워진 모양으로서 상기 가상 경계를 중첩하고;
    상기 헤드 마운트 디스플레이 시스템의 디스플레이에서 상기 실세계 환경의 보상된 뷰를 디스플레이하도록 구성되며,
    선택적으로, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족할 때 성공 색상으로 디스플레이되고, 상기 가상 경계는 상기 가상 경계가 최소 면적 임계 값을 충족하지 않을 때 경고 색상으로 디스플레이되는, 헤드 마운트 디스플레이 시스템.
  34. 제 32 항 또는 제 33 항에 있어서, 상기 가상 경계를 수정하는 것은 상기 가상 경계에 부분들을 추가하거나 그로부터 부분들을 제거하는 것을 포함하는, 헤드 마운트 디스플레이 시스템.
  35. 제 32 항 내지 제 34 항 중 어느 한 항에 있어서, 상기 지향방향 데이터는 상기 방향 표시기의 고도의 고도 데이터를 포함하고, 상기 가상 경계를 수정하는 것은 상기 고도 데이터에 의해 표시된 고도 및 상기 지향방향 데이터에 의해 표시된 지향방향에서 상기 방향 표시기로부터 연장되는 가상 라인과 상기 평면 사이의 교차점을 결정하는 것을 포함하는, 헤드 마운트 디스플레이 시스템.
KR1020217016331A 2018-10-31 2018-12-20 가상 현실 시스템의 안전 경계를 수정하기 위한 시스템 및 방법 KR20210071083A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/177,424 US11244483B2 (en) 2018-10-31 2018-10-31 Systems and methods for modifying a safety boundary for virtual reality systems
US16/177,424 2018-10-31
PCT/US2018/066974 WO2020091822A1 (en) 2018-10-31 2018-12-20 Systems and methods for modifying a safety boundary for virtual reality systems

Publications (1)

Publication Number Publication Date
KR20210071083A true KR20210071083A (ko) 2021-06-15

Family

ID=70327132

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217016331A KR20210071083A (ko) 2018-10-31 2018-12-20 가상 현실 시스템의 안전 경계를 수정하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (3) US11244483B2 (ko)
EP (2) EP3874357A4 (ko)
JP (2) JP7279176B2 (ko)
KR (1) KR20210071083A (ko)
CN (1) CN113260969A (ko)
WO (1) WO2020091822A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200096901A (ko) * 2018-01-05 2020-08-14 삼성전자주식회사 가상 현실 (vr) 디바이스에 의해 디스플레이되는 가상 컨텐트를 네비게이트하는 방법 및 장치
US10965985B2 (en) * 2018-05-21 2021-03-30 Hisense Visual Technology Co., Ltd. Display apparatus with intelligent user interface
US10901081B2 (en) * 2018-10-02 2021-01-26 International Business Machines Corporation Virtual reality safety
JP6713591B1 (ja) * 2019-04-17 2020-06-24 楽天株式会社 表示制御装置、表示制御方法、プログラム、ならびに、非一時的なコンピュータ読取可能な情報記録媒体
KR102306392B1 (ko) * 2019-08-19 2021-09-30 한국과학기술연구원 인터랙션 인터페이스의 제어 방법 및 이를 지원하는 장치
US11175730B2 (en) 2019-12-06 2021-11-16 Facebook Technologies, Llc Posture-based virtual space configurations
US11073902B1 (en) * 2019-12-30 2021-07-27 Facebook Technologies, Llc Using skeletal position to predict virtual boundary activation
US11602691B2 (en) * 2020-03-13 2023-03-14 Harmonix Music Systems, Inc. Techniques for virtual reality boundaries and related systems and methods
US11257280B1 (en) 2020-05-28 2022-02-22 Facebook Technologies, Llc Element-based switching of ray casting rules
US11493764B2 (en) 2020-06-04 2022-11-08 Htc Corporation Method for dynamically displaying real-world scene, electronic device, and computer readable medium
US11256336B2 (en) 2020-06-29 2022-02-22 Facebook Technologies, Llc Integration of artificial reality interaction modes
CN115735174A (zh) * 2020-06-29 2023-03-03 美国斯耐普公司 使用保持社交距离的增强现实体验
US11178376B1 (en) 2020-09-04 2021-11-16 Facebook Technologies, Llc Metering for display modes in artificial reality
US11294475B1 (en) 2021-02-08 2022-04-05 Facebook Technologies, Llc Artificial reality multi-modal input switching model
JP2023056109A (ja) * 2021-10-07 2023-04-19 トヨタ自動車株式会社 仮想空間制御システム、その制御方法、及び、制御プログラム
CN113932805B (zh) * 2021-10-12 2024-02-23 天翼数字生活科技有限公司 用于提高ar虚拟对象定位准确性与速度的方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2636030A1 (en) 2006-01-17 2007-07-26 Qualcomm Incorporated Method and apparatus for setting the boundaries of virtual operations
US8161397B2 (en) 2008-06-05 2012-04-17 Samsung Electronics Co., Ltd. Interaction between real-world digital environments and virtual worlds
DE102009037835B4 (de) * 2009-08-18 2012-12-06 Metaio Gmbh Verfahren zur Darstellung von virtueller Information in einer realen Umgebung
WO2013126784A2 (en) 2012-02-23 2013-08-29 Huston Charles D System and method for creating an environment and for sharing a location based experience in an environment
US9754167B1 (en) 2014-04-17 2017-09-05 Leap Motion, Inc. Safety for wearable virtual reality devices via object detection and tracking
US9864016B2 (en) 2014-10-31 2018-01-09 GM Global Technology Operations LLC Battery system pack life estimation systems and methods
JP6539351B2 (ja) * 2014-11-05 2019-07-03 バルブ コーポレーション 仮想現実環境においてユーザをガイドするための感覚フィードバックシステム及び方法
EP3800532A1 (en) 2014-12-24 2021-04-07 Nokia Technologies Oy Monitoring
US9955862B2 (en) * 2015-03-17 2018-05-01 Raytrx, Llc System, method, and non-transitory computer-readable storage media related to correction of vision defects using a visual display
US9690374B2 (en) * 2015-04-27 2017-06-27 Google Inc. Virtual/augmented reality transition system and method
JP6346131B2 (ja) 2015-09-07 2018-06-20 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および画像生成方法
US20170103574A1 (en) 2015-10-13 2017-04-13 Google Inc. System and method for providing continuity between real world movement and movement in a virtual/augmented reality experience
US9996944B2 (en) 2016-07-06 2018-06-12 Qualcomm Incorporated Systems and methods for mapping an environment
WO2018158896A1 (ja) 2017-03-01 2018-09-07 三菱電機株式会社 情報処理システム
US9971854B1 (en) * 2017-06-29 2018-05-15 Best Apps, Llc Computer aided systems and methods for creating custom products
US10803663B2 (en) * 2017-08-02 2020-10-13 Google Llc Depth sensor aided estimation of virtual reality environment boundaries

Also Published As

Publication number Publication date
US11741649B2 (en) 2023-08-29
US11244483B2 (en) 2022-02-08
EP4227777A1 (en) 2023-08-16
CN113260969A (zh) 2021-08-13
JP7279176B2 (ja) 2023-05-22
JP2022509483A (ja) 2022-01-20
US20200134895A1 (en) 2020-04-30
JP2023109848A (ja) 2023-08-08
EP3874357A1 (en) 2021-09-08
US20230377744A1 (en) 2023-11-23
EP3874357A4 (en) 2021-12-15
WO2020091822A1 (en) 2020-05-07
US20220156997A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
JP7279176B2 (ja) 仮想現実システムのための安全境界を修正するためのシステムおよび方法
US10535199B1 (en) Systems and methods for determining a safety boundary for a mobile artificial reality user
US20220196840A1 (en) Using photometric stereo for 3d environment modeling
US10901215B1 (en) Systems and methods for providing a mobile artificial reality user with environmental awareness
JP6979475B2 (ja) ヘッドマウントディスプレイ追跡
JP6381711B2 (ja) 仮想現実システムの較正
CN110915208B (zh) 使用深度传感器的虚拟现实环境边界
JP6886510B2 (ja) 視線追跡情報に基づく画像領域内の適応パラメータ
CN109791442B (zh) 表面建模系统和方法
US10859831B1 (en) Systems and methods for safely operating a mobile virtual reality system
JP2022530012A (ja) パススルー画像処理によるヘッドマウントディスプレイ
KR20220007723A (ko) 우선순위화된 동작 모델들을 가지는 다중 계층 인공 현실 컨트롤러 포즈 추적 아키텍처
JP6558839B2 (ja) 媒介現実
US11156843B2 (en) End-to-end artificial reality calibration testing
US20120026376A1 (en) Anamorphic projection device
JP6662914B2 (ja) 媒介現実
JP7103354B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US11195320B2 (en) Feed-forward collision avoidance for artificial reality environments
CN117496098A (zh) 使用深度神经网络的稀疏颜色重建
JP2023114237A (ja) 情報処理装置および情報処理方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal