KR20190136047A - 가상 현실 시스템에서 가상 컨트롤러의 위치 및 방위 추적 - Google Patents

가상 현실 시스템에서 가상 컨트롤러의 위치 및 방위 추적 Download PDF

Info

Publication number
KR20190136047A
KR20190136047A KR1020197032189A KR20197032189A KR20190136047A KR 20190136047 A KR20190136047 A KR 20190136047A KR 1020197032189 A KR1020197032189 A KR 1020197032189A KR 20197032189 A KR20197032189 A KR 20197032189A KR 20190136047 A KR20190136047 A KR 20190136047A
Authority
KR
South Korea
Prior art keywords
controller
virtual
segment
joint
user
Prior art date
Application number
KR1020197032189A
Other languages
English (en)
Other versions
KR102338836B1 (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 KR20190136047A publication Critical patent/KR20190136047A/ko
Application granted granted Critical
Publication of KR102338836B1 publication Critical patent/KR102338836B1/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/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/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/012Head 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)
  • Processing Or Creating Images (AREA)

Abstract

적어도 하나의 양상에서, 방법은 사용자의 헤드 마운트 디스플레이(HMD)의 위치를 결정하는 단계와, HMD의 위치에 기초하여 관절의 위치를 정의하는 단계와, 관절에서 세그먼트의 단부까지 세그먼트를 정의하는 단계와, 세그먼트의 단부의 위치에 기초하여 가상 현실(VR) 환경 내에서 가상 컨트롤러의 초기 가상 위치를 정의하는 단계와; 물리적 컨트롤러의 방위 이동에 응답하여, 세그먼트 및 관절에 기초하여 VR 환경에서 가상 컨트롤러의 가상 위치 및 가상 방위를 정의하는 단계를 포함할 수 있다.

Description

가상 현실 시스템에서 가상 컨트롤러의 위치 및 방위 추적
본 출원은 2017년 9월 18일에 출원된 미국 출원 번호 15/708,040에 대한 우선권으로 주장하며, 그 개시 내용은 전체가 참조로 본 명세서에 포함된다.
본 발명은 가상 현실(VR) 시스템에서 사용되는 컨트롤러의 3차원 위치 및 방위(orientation)를 추적하는 것에 관한 것이다.
일부 VR 시스템에서, 사용자는 헤드 장착 디스플레이(HMD : head-mounted display) 및 휴대용(hand-held) 컨트롤러를 사용하여 가상 환경에서 임의의 수의 가상 오브젝트와 상호 작용한다. 이러한 VR 시스템에서, 사용자는 휴대용 컨트롤러를 사용하여 HMD를 통해 오브젝트와 상호 작용할 수 있다. 3 자유도(3DOF) 추적(예를 들어, 방위 추적)만 사용하여 휴대용 컨트롤러를 추적하는데는 어려움이 있을 수 있다.
적어도 양태에서, 방법, 예를 들어 컴퓨터로 구현되는 방법은, 사용자의 헤드 마운트 디스플레이(HMD)의 위치를 결정하는 단계, HMD의 위치로부터 사전 결정된 거리에 기초하여 관절의 위치를 정의하는 단계, 관절로부터 세그먼트를 정의하는 단계, 세그먼트의 단부에 기초하여 가상 환경에서 가상 컨트롤러의 위치를 정의하는 단계 및 세그먼트 및 관절에 기초하여 물리적 컨트롤러 방위를 가상 환경 내의 가상 컨트롤러의 가상 위치 및 가상 방위로 변환하는 단계를 포함한다.
하나 이상의 구현의 세부 사항은 첨부 도면 및 이하의 설명에서 설명된다. 다른 특징은 상세한 설명 및 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 사용자의 우측을 나타내는데 사용된 예시적인 VR 암 모델의 사시도를 도시한다.
도 2a 내지 도 2c는 예시적인 실시예에 따른 컨트롤러의 위치를 결정하는 시스템의 예시적인 구현의 제3자 뷰를 도시한다.
도 3은 예시적인 실시예에 따른 VR 환경에서 컨트롤러의 위치를 결정하는데 사용될 수 있는 예시적인 VR 시스템의 도면이다.
도 4는 VR 공간에서 HMD 디바이스에 통신 가능하게 결합된 컨트롤러를 도시한 블록도이다.
도 5 및 도 6은 예시적인 실시예에 따른 VR 환경에서 컨트롤러의 위치를 결정하는 것과 관련된 흐름도이다.
도 7a 및 7b는 예시적인 실시예에 따른 사용자가 관절과 관련하여 움직일 때의 사용자의 개략도이다.
도 8은 본 명세서에 개시된 예를 구현하기 위해 사용될 수 있는 예시적인 컴퓨터 디바이스 및 예시적인 모바일 컴퓨터 디바이스의 개략적인 블록도이다.
본 명세서에 기술된 구현에서, 물리적 VR 컨트롤러는 일반적으로 피치, 롤 및 요로 지칭되는 x, y 및 z 축에 대한 회전 능력으로 추적하기 위해 3 자유도(3 DOF)만을 사용한다. 따라서, 이러한 물리적 컨트롤러는 회전 운동을 추적할 수 있다. 물리적 컨트롤러의 이러한 방위(orientation)는 공간의 절대 위치가 물리적 컨트롤러 또는 물리적 컨트롤러와 관련된 헤드 장착 디스플레이(HMD)에 의해 추적되지 않기 때문에 본질적으로 공간의 고정된 위치(또한 위치라고도 치징됨)에서 결정된다. 그러나, 이러한 3 DOF 추적은 VR 암(arm) 모델을 사용하여 HMD에서 볼 때 가상 컨트롤러의 공간에서 위치 및 방위를 추정(또는 투영)하는데 사용될 수 있다. 따라서, 물리적 컨트롤러의 3 DOF 추적은 HMD에서 볼 때 가상 컨트롤러의 6 DOF(예를 들어, x, y, z 위치 및 방위) 추적을 결정(예를 들어, 추정, 표현)하는데 사용될 수 있다. 일부 구현에서, VR 암 모델은 VR 암 모델로 지칭될 수 있다.
예를 들어, 사용자는 HMD를 통해 다양한 방식으로 머리를 기울이고 돌리는 것에 의해 VR 환경을 볼(view) 수 있다. 그러나, HMD의 뷰 내에서 가상 컨트롤러의 추적은 VR 컨트롤러의 제한된 3 DOF 추적 능력으로 인해 제한될 수 있어, 물리적 컨트롤러는 공간에서 절대 위치(예를 들어, 위치 추적)를 추적하지 않는다. 그러나, VR 암 모델은 물리적 컨트롤러의 방위 추적을 활용할 수 있어 HMD에서 볼 수 있는 가상 컨트롤러의 위치와 방위를 생성할 수 있다. 따라서, 본 명세서에 기술된 구현에서, VR 환경의 위치 및 방위에서 컨트롤러를 들고 있는 사람을 시뮬레이션하는 것이 가능하다. 더욱이, 본 명세서에 기술된 구현에서, 가상 컨트롤러는 사용자가 물리적 컨트롤러를 잡고 움직이는 방법에 대응하는 위치에서 VR 환경에 있을 수 있다.
본 명세서에 설명된 구현에 따르면, VR 시스템에서 휴대용 물리적 컨트롤러를 추적하는 개선된 기술은 예를 들어 팔꿈치 관절(제1 관절)과 손목 관절(제2 관절) 사이의 세그먼트를 정의하는 것을 포함할 수 있다. 세그먼트와 관절은 가상 컨트롤러의 움직임(이동)을 에뮬레이트하고 나타낸다. 개선된 기술의 일부 장점은 더 저렴하고, 더 효율적이고 및/또는 더 간단한(예를 들어, 컨트롤러의 방위 이외의 지식이 거의 필요하지 없음) 시스템을 제공한다. 게다가, 개선된 기술은 구현이 간단하고 사용자에게 비교적 몰입할 수 있는 충분한 충실도(예를 들어, 정확성)를 갖는다. 부가적으로, 일부 구현에서, 개선된 VR 시스템을 사용하기 위해 물리적 컨트롤러를 추적하기 위한 외부 센서들(예를 들어, HMD의 외부 카메라)이 필요하지 않다.
또한, 본 명세서에 기술된 구현에서, 최대 3개의 회전 운동을, 예를 들어 팔꿈치 관절(제1 관절)에서 2개 및 손목 관절(제2 관절)에서 1개, 보다 구체적으로는, 팔꿈치 관절에서 z 축과 y 축 움직임 및 손목 관절에서 x 축 움직임을 결정 및 측정함으로써, 이들은 VR 환경에서 물리적 컨트롤러의 움직임에 대한 효과적이고 비교적 현실적인 가상 표현을 달성하는데 사용될 수 있다. 가상 환경과 관련하여 논의되었지만, 본 명세서에 기술된 임의의 기술은 증강 현실 환경에 적용될 수 있다. 일부 구현에서, 가상 환경이라는 용어는 증강 현실 환경이거나 이를 포함할 수 있다.
도 1은 사용자를 나타내는데 사용되는 예시적인 VR 암 모델(10)의 사시도를 도시한다. 사용자의 우측에 도시되어 있지만, VR 암 모델(10)은 사용자의 좌측에 적용될 수 있다. 이 구현에서 사용자는 HMD(8)를 착용하고 있다. 도 1에 도시되지 않았지만, 물리적 컨트롤러(112)의 위치는 VR 암 모델(10)에 기초하여 사용자에 의해 HMD(8) 내에서 가상 컨트롤러(미도시)로서 보여질(예를 들어, 표현될) 수 있다. VR 암 모델(10)은 논의 목적으로 도 1에 도시되어 있지만, HMD(8)를 통해 사용자가 볼 수는 없다. 일부 구현에서, VR 암 모델(10)은 골격 모델로 지칭될 수 있다.
설명을 위해, 일반성을 잃지 않고, 본 설명은 신체 포즈와 유사하게 구성된 인간 모델인 예시적인 VR 암 모델을 설명한다. 인간 모델을 나타내는 VR 암 모델은 세그먼트를 포함할 수 있고, 각 세그먼트는 사용자의 신체 부분과 연관될 수 있다. VR 암 모델은 또한 하나 이상의 관절을 포함할 수 있다. 각 관절은 하나 이상의 세그먼트가 하나 이상의 다른 세그먼트에 대해 움직일 수 있게 할 수 있다. 예를 들어, 인간 모델을 나타내는 VR 암 모델은 복수의 강성 및/또는 변형 가능한 신체 부분을 포함할 수 있고, 일부 세그먼트는 인간의 대응하는 해부학적 신체 부분을 나타낼 수 있다. 다시 말해서, VR 암 모델의 각 세그먼트는 인접한 뼈들의 교차점에 관절들이 있는 하나 이상의 구조적 요소(예를 들어, "뼈")에 대응할 수 있다. 일부 구현에서, 일부 구조적 요소는 VR 암 모델의 세그먼트에 대응할 수 있고 및/또는 일부 구조적 요소는 VR 암 모델의 세그먼트에 해당하지 않을 수 있다. 일부 구현에서, 다양한 관절은 인간의 실제 관절에 해당할 수 있다.
도 1에 도시된 바와 같이, VR 암 모델(10)은 세그먼트(11, 13, 15, 17 및 19)와 관절(A, B, C, D 및 E)을 포함한다. 세그먼트(11)는 관절(A와 B) 사이, 세그먼트(13)은 관절(B와 C) 사이, 세그먼트(15)는 관절(C와 D) 사이, 세그먼트(17)은 관절(D와 E) 사이이고, 세그먼트(19)는 관절(E)에서 연장된다.
일부 구현에서, 관절(A, B, C, D 및 E) 각각은 그 관절들과 관련된 개별 세그먼트가 공간의 3차원 위치에서 회전할 수 있도록 구성될 수 있다. 다시 말해, 인체의 많은 관절이 1 또는 2 자유도로 정의되기 때문에 각 관절은 최대 3 자유도(3 DOF)(예를 들어, x, y 및 z 축)로 구성될 수 있다.
본 명세서에 기술된 VR 암 모델(10)에 따르면, 관절들의 서브 세트에 대한 회전은 물리적 컨트롤러(112)의 움직임을 나타내는데 사용된다. 구체적으로, VR 암 모델(10)에서, 관절(D 및 E)은 HMD(8) 내에서 가상 컨트롤러로서 볼 때 물리적 컨트롤러(112)의 위치를 결정하는데 사용될 수 있다. 일부 구현에서, 관절(D 및 E)은 HMD(8) 내에서 가상 컨트롤러로서 볼 때 물리적 컨트롤러(112)의 위치를 결정하는데 사용되는 유일한 관절일 수 있다.
이 구현에서, 물리적 컨트롤러(112)의 요, 피치 및 롤은 암 모델(10)의 다양한 관절에서의 움직임으로 해석된다. 물리적 컨트롤러(112)가 제1 축을 따라 종(세로) 방향으로 정렬되면, 롤은 제1 축에 대한 회전일 수 있다. 요는 제1 축에 직교하는 제2 축에 대한 그리고 물리적 컨트롤러(112)의 상단을 통한 회전일 수 있다. 피치는 제1 축 및 제2 축에 직교하는 제3 축에 대한 그리고 물리적 컨트롤러(112)의 측면을 통한 회전일 수 있다. 다시 말해서, 물리적 컨트롤러(112)의 3 DOF 움직임(예를 들어, 방위 이동)은 VR 암 모델(10)의 특정 관절 및/또는 세그먼트에 대한 가상 컨트롤러의 움직임(및 HMD 내에 표시됨)으로 해석된다.
예를 들어, z 축(예를 들어, 요)에 대한 물리적 컨트롤러(112)의 회전은 HMD(8)를 통해 볼 때, D 관절에서 z 축에 대한 좌우 움직임으로 표현될 수 있다. 따라서, 가상 컨트롤러는 HMD(8) 내에서 세그먼트(17)(및/또는 세그먼트(19))의 단부에 있고 좌우로 움직이는 것으로 볼 수 있다.
다르게 말하면, 일부 구현에서, 세그먼트(17)는 관절(D)을 중심으로(about) 움직이도록 구성될 수 있다. 예를 들어, 세그먼트(17)가 양옆으로(예를 들어, 좌우로) 움직이는 동안 세그먼트(17)의 일 단부는 관절(D)를 중심으로 회전할 수 있다. 다시 말해서, 세그먼트(17)는 z 축(예를 들어, 요)을 중심으로 움직일 수 있다. 이는 컨트롤러(112)가 VR 환경에서 유사한 방식으로 대응하여 움직이게 할 수 있다. 예를 들어, 세그먼트(17)가 (횡방향을 따라) 적어도 좌우로 움직일 때, HMD(8)의 VR 환경 내에서 볼 때 가상 컨트롤러는 또한 적어도 좌우로 움직인다. 이 특정 움직임에 관한 더 자세한 내용은 도 2a와 관련하여 기술되고 도시되어 있다.
다른 예로서, y 축(예를 들어, 피치)에 대한 물리적 컨트롤러(112)의 회전은 HMD(8)를 통해 볼 때 D 관절에서 y 축에 대한 가상 컨트롤러의 상하 움직임으로 표현될 수 있다. 따라서, 가상 컨트롤러는 HMD(8) 내에서 세그먼트(17)(및/또는 세그먼트(19))의 단부에 있고 상하로 움직이는 것으로 볼 수 있다.
다르게 말하면, 일부 구현에서, 세그먼트(17)의 제1 단부(예를 들어, 원위 단부(distal end))는 세그먼트의 제2 단부(예를 들어, 근위 단부(proximal end))가 관절(D)을 중심으로 회전하는 동안 상하로 움직이도록 구성될 수 있다. 다시 말해서, 세그먼트(17)는 y 축(예를 들어, 피치)을 중심으로 움직일 수 있다. 이는 컨트롤러(112)가 VR 환경에서 유사한 방식으로 대응하여 움직이게 할 수 있다. 예를 들어, 세그먼트(17)가 (수직 방향을 따라) 적어도 상하로 움직일 때, HMD 8)의 VR 환경 내에서 볼 때 가상 컨트롤러는 또한 적어도 상하로 움직인다. 이 특정 움직임에 관한 더 자세한 내용은 도 2b와 관련하여 기술되고 도시되어 있다.
또 다른 예로서, x 축(예를 들어, 롤)에 대한 물리적 컨트롤러(112)의 회전은 HMD(8)를 통해 볼 때 예를 들어 E 관절에서의 x 축의 회전으로서 나타낼 수 있다. 따라서, 가상 컨트롤러는 HMD(8) 내에서 세그먼트(19)(및/또는 세그먼트(17))의 단부에 있고 가상 컨트롤러의 길이(또는 축) 주위를 회전하는 것으로 볼 수 있다. 일부 구현에서, x 축(예를 들어, 롤)에 대한 물리적 컨트롤러(112)의 회전은 HMD(8)를 통해 볼 때 예를 들어 D 관절에서의 x 축(및 세그먼트(17))의 회전으로서 나타낼 수 있다.
다르게 말하면, 일부 구현에서, 세그먼트(19)는 관절(E)에 대해 회전하도록 구성될 수 있다. 예를 들어, 세그먼트(19)는 관절(E)에 대해 고정된 상태에서 좌우로 회전할 수 있다. 다시 말해서, 세그먼트(17)는 x 축(롤)을 중심으로 움직일 수 있다. 본 명세서에 설명된 구현에 따르면, 관절(E)에 대한 회전은 HMD(8)의 VR 환경 내에서 볼 때 손바닥을 노출시키기 위해 손을 회전시킨 다음 손등을 노출시키기 위해 회전하는 것으로 예시될 수 있다. 이 특정 회전에 관한 보다 상세한 내용은 도 2c와 관련하여 기술되고 도시되어 있다.
일부 구현에서, x 축에 대한 회전 운동은 관절(D 및 E)로 동시에 회전될 수 있다. 다시 말해, 일부 회전은 관절(D)에서 발생할 수 있고 일부 회전이 관절(E)에서 발생할 수 있다. 예를 들어, 회전 운동은 관절(D)에 대해 약 40%, 관절(E)에 대해 약 60%가 적용될 수 있다.
별도의 이동으로 설명되었지만, 임의의 위의 움직임은 결합될 수 있다. 예를 들어, 물리적 컨트롤러(112)의 (x, y 또는 z 축에 대한) 임의의 회전은 임의의 조합으로 결합된 후, VR 암 모델(10)을 사용하여 사용자에 의해 HMD(8) 내에서 볼 때 가상 컨트롤러의 움직임으로 표현될 수 있다.
일부 구현에서, 연결된 세그먼트들(15 및 17)은 직각의 팔을 나타낸다. 이 구성은 사용자의 자연스러운 움직임을 에뮬레이트하는데 적합할 수 있다. 다시 말해서, 사용자 팔의 자연스러운 움직임은 사용자가 물리적 컨트롤러(112)를 잡고 및/또는 작동하는 방법과 상관된다.
일부 구현에서, 세그먼트(11, 13, 15, 17 및 19)는 관절(B, C, D 및 E)를 통해 모두 연결될 수 있다. 예를 들어, 세그먼트(11)는 관절(B)을 통해 세그먼트(13)에 연결되고, 세그먼트(13)는 관절(C)을 통해 세그먼트(15)에 연결되고, 세그먼트(15)는 관절(D)를 통해 세그먼트(17)에 연결되고, 세그먼트(17)은 관절(E)를 통해 세그먼트(19)에 연결될 수 있다. 일부 구현에서, 세그먼트(17)는 세그먼트(15)에 대해 직교 방향으로 정렬될 수 있고, 세그먼트(15)는 세그먼트(13)에 대해 직교 방향으로 정렬될 수 있으며, 세그먼트(13)는 세그먼트(11)에 대해 직교 방향을 정렬될 수 있다.
일부 구현에서, 연결된 세그먼트(11, 13, 15, 17 및 19)는 사용자의 대응하는 해부학적 신체 부분을 나타낼 수 있다. 본 명세서에 기술된 구현에서, 연결된 세그먼트(11, 13, 15, 17 및 19)는 직각의 팔을 갖는 사용자 신체의 우측을 나타낼 수 있다. 일부 구현에서, 직각은 세그먼트(15)가 관절(D)를 통해 세그먼트(17)에 대해 직교 방향으로 정렬될 때 생성될 수 있다.
일부 구현에서, 세그먼트(11)는 사용자의 머리와 흉부 위의 중심 사이의 신체 부분을 나타내고, 세그먼트(13)는 사용자의 어깨를 나타내고, 세그먼트(15)는 사용자의 상박(upper arm)을 나타내고, 세그먼트(17)는 사용자의 팔뚝을 나타내고, 세그먼트(19)는 사용자의 손을 나타낼 수 있다. 세그먼트는 단지 신체 부분의 예시적인 표현이며, 신체의 다른 부분이 표현될 수 있음을 이해해야 한다.
일부 구현에서, 세그먼트(11, 13, 15, 17, 및 19)의 크기 또는 길이는 평균 성인 인간의 대응하는 해부학적 신체 부분을 나타낼 수 있다. 예를 들어, 세그먼트(11)는 대략 13-15cm, 세그먼트(13)는 대략 15-18cm, 세그먼트(15)는 대략 25-30cm, 세그먼트(17)는 대략 25-30cm, 세그먼트(19)는 대략 17-20cm 일 수 있다. 이들 치수는 단지 예시적인 것이며 배타적이지 않다.
일부 구현에서, 세그먼트(19)는 이 위치(location)(예를 들어, 포지션)에서 사용자가 물리적 컨트롤러를 잡고 있기 때문에 가상 컨트롤러의 위치 및/또는 움직임을 나타낼 수 있다. 세그먼트(19)는 가상 컨트롤러의 움직임 및/또는 방위를 에뮬레이션할 것이다.
일부 구현에서, 세그먼트들은 물리적 컨트롤러(112)의 초기 위치를 결정하는데 사용될 수 있다. 본 명세서에 설명된 구현에서, 물리적 컨트롤러(112)의 초기 위치는 관절(D)의 위치를 결정함으로써 결정될 수 있다. 따라서, 세그먼트(11, 13 및 15)는 세그먼트(11, 13 및 15)를 연결함으로써 물리적 컨트롤러(112)의 초기 위치를 결정하는데 사용될 수 있다. 예를 들어, 세그먼트(11)(예를 들어, 관절 A와 B 사이의)는 세그먼트(13)(예를 들어, 관절 B와 C 사이의)에 연결되고, 세그먼트(13)는 세그먼트(15)((예를 들어, 관절 C와 D 사이의)에 연결될 수 있다. 일부 구현에서, 초기 위치는 사전 결정된 오프셋 위치 또는 HMD(8)로부터의 거리로서 결정될 수 있다.
일부 구현에서, 세그먼트(17)의 물리적 이동 거리는 동일한 거리에서 가상 컨트롤러를 상응하게 이동할 수 있다. 다른 구현들에서, 세그먼트(17)의 이동 거리는 동일한 거리에서 가상 컨트롤러를 상응하게 이동시킬 수 없지만, 대신에 시스템은 그 거리에 근접할 수 있다. 예를 들어, 세그먼트(17)의 물리적 이동이 거리 "x"를 이동하면, 가상 컨트롤러는 거리 "x"보다 작거나 클 수 있는 거리 "y"를 이동할 수 있다. 또한, 물리적 컨트롤러 방위는 세그먼트(17) 및 관절(D)에 기초하여 가상 환경에서 가상 컨트롤러의 가상 위치 및 가상 방위로 변환(translate)될 수 있는데, 예를 들어 세그먼트의 길이 및 관절(D)에서의 세그먼트의 물리적 방위로 변환될 수 있다.
일부 구현에서, 본 명세서에 설명된 것 이외의 다른 모델이 또한 본 개시의 범위 내에서 사용될 수 있다. 예를 들어, 강성 다각형 메쉬의 계층들, 하나 이상의 변형 가능한 메쉬 또는 임의의 조합을 포함할 수 있는 와이어프레임 메쉬의 모델이 사용될 수 있다. 또한, 사용자의 형상을 정의하는 메쉬로서 복수의 삼각형이 사용될 수 있다. 또한, 다른 모델은 패치(patches), 불균일 합리적인 B-스플라인(non-uniform rational B-splines), 세분 표면(subdivision surfaces) 또는 다른 고차 표면을 포함할 수 있다.
일부 구현에서, 모델은 현재 포즈, 하나 이상의 과거 포즈 및/또는 모델 물리학에 관한 정보를 선택적으로 포함할 수 있다. 포즈를 취하고 시뮬레이션할 수 있는 임의의 모델은 본 명세서에 설명된 인식, 분석 및 추적과 호환 가능하다.
도 2a 내지 도 2c는 사용자에게 가상 현실 환경(105)이 디스플레이될 수 있는 헤드 장착 디스플레이(HMD)(106)를 착용한 사용자(20)의 제3자 사시도를 도시한다. 도 2a 내지 도 2c에 도시된 오브젝트(50)는 HMD(106)를 통해 VR 환경(105) 내에서 사용자(20)에 의해 보여지는 오브젝트이지만, 설명의 편의를 위해 제3 자 뷰에 의해 보여지는 것으로 도시되어 있다. 예를 들어, 도 2a 내지 도 2c에 도시된 오브젝트(50)는 HMD(106)를 통해 사용자(20)에 의해 보여지지만, 실제로는 제3 자에게는 보이지 않을 것이다. 이 상세한 설명 내의 다른 도면은 설명의 용이성을 위해 제3자 뷰에서 유사하게 예시된다. 일부 구현에서, 상세한 설명에 기술된 예들은 다수의 오브젝트 및/또는 다수의 사용자에게 적용될 수 있다.
본 명세서에 기술된 구현에 따르면, 가상 컨트롤러(113)(예를 들어, 컨트롤러의 가상 표현)는 VR 환경(105)에 디스플레이될 수도 있다. 사용자(20)는 VR 환경(105)에서 오브젝트(50)와 상호 작용(예를 들어, 잡기(grab), 터치, 접촉, 홀드)하기 위해 가상 컨트롤러(113)를 사용(예를 들어, 채용)할 수 있다. 가상 컨트롤러(113)가 오브젝트(50)와 상호 작용하기 위해, 오브젝트(50)와 상호 작용하는데 빔(70)(예를 들어, 폴(pole), 스틱 등)이 사용될 수 있다. 일부 구현에서, 물리적 컨트롤러(112)는 동작(예를 들어, 클릭, 터치, 스와이핑 등)하기 위해 여러 키를 포함할 수 있다. 예를 들어, 물리적 컨트롤러(112)는 홈 버튼(114a), 메뉴 버튼(114b) 및 터치 패드(114c)를 포함할 수 있다. 일부 구현에서, 물리적 컨트롤러(112)의 동일한 키들(예를 들어, 홈 버튼(114a), 메뉴 버튼(114b) 및 터치 패드(114c))이 가상 컨트롤러(113) 내에 도시(예를 들어, 내에 표현)될 수 있다.
일부 구현에서, 터치 패드(114c)는 빔(70)을 활성화/비활성화하는데 사용될 수 있다. 예를 들어, 사용자(20)가 오브젝트(50)와 상호 작용하는 경우, 사용자 (20)는 일반적으로 오브젝트(50)의 방향을 포인팅하여 빔(70)의 단부를 오브젝트(50) 근처 또는 오브젝트에 위치시키고, 터치 패드(114c)를 눌러 활성화(예를 들어, 오브젝트(50)를 잡은)한 다음, 원하는 위치에서 오브젝트(50)를 이동(또는 배치)한다. 오브젝트(50)를 해제하기 위해, 사용자는 터치 패드(114c)를 해제하여 오브젝트(50)를 해제한다.
VR 환경(105)에서 가상 컨트롤러(113)의 움직임의 효과적이고 비교적 현실적인 프리젠테이션을 달성하기 위해, 본 시스템 및 방법은 HMD(106)와 관련하여 물리적 컨트롤러(112)의 실제 물리적 위치를 사용하고 움직임을 VR 환경(105)으로 변환한다. 본 명세서에 설명된 구현에 따르면, 가상 컨트롤러(113)의 위치는 손목 관절(예를 들어, 관절 E)의 위치를 결정함으로써 결정될 수 있다. 손목 관절은 손 및/또는 가상 컨트롤러(113)의 위치에 대응할 수 있다. 일부 구현에서, 손목 관절의 위치는 HMD(106)의 위치를 초기에 결정하고, HMD(106)의 위치로부터의 사전 결정된 거리에 기초하여 팔꿈치 관절(예를 들어, 관절 D)의 위치를 정의하고, 팔꿈치 관절에서 손목 관절까지 세그먼트를 정의함으로써 결정될 수 있다. 센서(들)는 후술할 위의 위치들 각각의 위치를 결정하는데 사용될 수 있다.
도 2a에 도시된 바와 같이, 사용자(20)는 팔꿈치 관절(예를 들어, 관절 D)에서 팔을 움직일 수 있다. 이 구현에서, 팔은 화살표(90a)로 표시된 바와 같이 양옆으로(예를 들어, z 축을 중심으로 회전하여 좌우로(예를 들어, 페이지 안팎으로)) 이동할 수 있다. 즉, 사용자의 팔은 z 축(예를 들어, 세로축) 주위를 회전할 수 있다. 따라서, 사용자 팔의 이동 및 물리적 컨트롤러(112)의 z 축에 대한 회전은 화살표(91a)로 표시된 바와 같이, (VR 암 모델을 통해) 가상 컨트롤러(113)가 VR 환경(105)에서 유사한 방식으로 대응하여 이동하게 한다. 예를 들어, 사용자의 팔이 오른쪽으로 이동하면, 물리적 컨트롤러(112a)도 오른쪽으로 이동하여 가상 컨트롤러(113)가 오른쪽으로 이동하게 하고, 사용자의 팔이 왼쪽으로 이동하면, 물리적 컨트롤러(112b)도 왼쪽으로 이동하여 가상 컨트롤러(113)가 왼쪽으로 이동하게 한다. 일부 구현에서, 사용자 팔의 이동 거리는 VR 암 모델마다 가상 컨트롤러(113)를 대응하는 거리만큼 상응하게 이동할 수 있다.
비 제한적인 예에서, 사용자가 도어를 닫기 위해 도어와 상호 작용하는 경우, 사용자는 가상 컨트롤러(113)가 유사한 방식으로 이동할 수 있도록 터치 패드(114a)를 누르고 물리적 컨트롤러(112)를 좌측으로 이동시킴으로써 가상 컨트롤러(113)를 조작할 수 있다. 이러한 조작은 VR 환경에서 도어를 닫을 것이다.
도 2b에 도시된 바와 같이, 사용자(20)는 팔꿈치(예를 들어, 관절 D)에서 팔을 움직일 수 있다. 이 구현에서, 팔은 화살표(90b)로 표시된 바와 같이 상하로 이동할 수 있다. 즉, 사용자의 팔은 y 축을 중심으로 회전할 수 있다. 본 명세서에 설명된 구현에서, 상향 이동은 도 2b의 뷰에 대해 페이지를 벗어나는 방향을 갖는 것으로 도시될 수 있고 하향 이동은 도 2b의 뷰에 대해 페이지를 향하는 방향을 갖는 것으로 기술될 수 있다. 일부 구현에서, 사용자 팔의 이동은 (VR 암 모델을 통해) 가상 컨트롤러(113)가 VR 환경(105)에서 유사한 방식으로 대응하여 이동하게 한다. 예를 들어, 사용자의 팔이 위로 올라갈 때, 물리적 컨트롤러(112a) 또한 위로 올라가서 가상 컨트롤러(113)가 위로 이동하게 하고, 사용자의 팔이 아래로 내려갈 때, 물리적 컨트롤러(112b) 역시 아래로 내려가서 가상 컨트롤러(113)가 아래로 이동하게 한다. 일부 구현에서, 사용자 팔의 이동 거리는 VR 암 모델마다 가상 컨트롤러(113)를 대응하는 거리만큼 상응하게 이동할 수 있다.
비 제한적인 실시예에서, 사용자가 물리적 컨트롤러(112)를 HMD(106)쪽으로 더 가까이 이동시키면, VR 환경에서 보여지는 가상 컨트롤러(113)는 사용자의 시야에 더 가까워질 수 있다. 일부 구현에서, 가상 컨트롤러(113)는 컨트롤러 자체에 관한 정보를 가질 수 있다. 예를 들어, 가상 컨트롤러(113)는 도움말, 툴 팁(tool tips), 배터리 수명, 배터리 사용량 및/또는 다른 정보와 관련된 특징을 포함할 수 있다.
다른 비 제한적인 실시예에서, 컨베이어 벨트 상에 위치된 가상 오브젝트들이 사용자(20)를 향해 오는 경우, 사용자(20)는 물리적 컨트롤러(112)를 오브젝트를 향해 하향 이동시킴으로써 컨트롤러(113)를 작동시키고, 터치 패드(114a)를 눌러 컨베이어에서 오브젝트를 잡고, 터치 패드(114a)를 해제하여 원하는 위치에서 오브젝트를 해제할 수 있다. 일부 구현에서, 원하는 위치는 잡힌(grabbed, 포착된) 오브젝트의 위치와 동일한 위치에 있을 수 있다. 일부 구현에서, 원하는 위치는 잡힌 오브젝트의 위치와 다른 위치에 있을 수 있다.
도 2c에 도시된 바와 같이, 사용자(20)는 손목(예를 들어, 관절 E)에서 팔을 움직일 수 있다. 이 구현에서, 화살표(90c)로 표시된 바와 같이, 사용자 팔은 회전할 수 있다. 다시 말해, 사용자의 팔은 x 축(예를 들어, 세로축)을 중심으로 회전할 수 있다. 본 명세서에 설명된 구현에 따르면, 손목 관절에 대한 좌우 회전은 손바닥을 노출시키기 위해 손을 회전시킨 다음 손등을 노출시키기 위해 회전하는 것으로 도시될 수 있다. 사용자 손목의 움직임은 (점선 X에 대한 회전 또는 회전 가능한 움직임인) 화살표(91c)에 의해 표시된 바와 같이, (VR 암 모델을 통해) 가상 컨트롤러(113)가 VR 환경(105)에서 유사한 방식으로 대응하게 이동하게 한다. 예를 들어, 사용자의 손목이 우측으로 회전하면, 물리적 컨트롤러(112a)가 우측으로 회전하여 가상 컨트롤러(113)가 우측으로 회전하게 하고, 사용자의 손목이 좌측으로 회전하면, 물리적 컨트롤러(112b)가 좌측으로 회전하여 가상 컨트롤러(113)가 좌측으로 회전하게 한다. 일부 구현에서, 사용자 손목의 이동 거리는 VR 암 모델마다 가상 컨트롤러(113)를 대응하는 거리만큼 상응하게 이동할 수 있다.
비 제한적인 예에서, 위의 도어의 유사한 예를 사용하여, 사용자가 도어의 손잡이를 돌리기 위해 도어와 상호 작용하는 경우, 사용자는 가상 컨트롤러(113)가 유사한 방식으로 회전할 수 있도록 터치 패드(114a)를 누르고 물리적 컨트롤러(112)를 오른쪽으로 회전시킨으로써 가상 컨트롤러(113)를 조작할 수 있다. 이 조작은 VR 환경에서 도어의 손잡이를 돌릴 것이다.
일부 구현에서, 사용자의 팔 및/또는 손목의 둘 이상의 움직임이 결합될 수 있다. 예를 들어, 사용자의 팔은 적어도 양옆으로(도 2a) 및 적어도 상하로(도 2b), 이 순서로 또는 그 반대로 움직일 수 있다. 다른 예에서, 사용자의 팔은 적어도 양옆으로(도 2a) 및 적어도 좌우로(도 2c), 이 순서로 또는 그 반대로 움직일 수 있다. 또 다른 예에서, 사용자의 팔은 적어도 상하로(도 2b) 및 적어도 좌우로(도 2c), 이 순서로 또는 그 반대로 움직일 수 있다.
일부 구현에서, 사용자의 팔 및/또는 손목의 3개 이상의 움직임이 결합될 수 있다. 예를 들어, 사용자의 팔은 적어도 양옆으로(도 2a), 적어도 상하로(도 2b) 및 적어도 좌우로(도 3c), 이 순서로 또는 임의의 순서의 조합으로 움직일 수 있다.
도 3은 본 개시의 교시에 따른 3차원(3D) VR 환경(105)을 생성하고 상호 작용하기 위한 예시적인 가상 현실(VR) 시스템(100)의 도면을 도시한다. 일반적으로, 시스템(100)은 VR 환경(105), 및 사람(예를 들어, 사용자, 착용자)이 VR 환경(105)에 액세스, 뷰, 사용 및/또는 상호 작용할 수 있게 하는 VR 컨텐츠를 제공할 수 있다. VR 시스템(100)은 컨텐츠, 애플리케이션, 가상 오브젝트, 실제 오브젝트 및 VR 컨트롤에 액세스하기 위한 옵션을 사용자에게 제공할 수 있다. 도 2a 내지 도 2c의 예시적인 VR 시스템(100)은 HMD(106)를 착용하며 휴대용 물리적 컨트롤러(112)를 갖는 사용자(20)를 포함할 수 있다. 도 2a 내지 도 2c에 도시된 예시적인 VR 환경(105)은 HMD(106) 내부에서 사용자(20)에 대해 디스플레이되는 이미지의 표현이다.
도 3에 도시된 바와 같이, VR 애플리케이션(110)은 방위 모듈(118), 변환 모듈(translation module)(120) 및 VR 암 모듈(122)을 포함할 수 있다. VR 애플리케이션 또는 그 일부는 물리적 컨트롤러(112), HMD(106) 및/또는 VR 시스템(108)에 포함될 수 있다.
방위 모듈(118)은 예를 들어, 하나 이상의 관성 측정 유닛(IMU), 광 센서, 오디오 센서, 이미지 센서, 거리/근접 센서, 위치 센서 및/또는 현실 세계에서 물리적 컨트롤러(112)의 방위, 또는 가상 환경에 대한 물리적 환경을 결정하기 위한 다른 센서에 액세스할 수 있다. 일부 구현에서, 방위 모듈(118)은 물리적 컨트롤러(112)에 통합될 수 있다. 일부 구현에서, 방위 모듈(118)은 센서(들)를 통해 물리적 컨트롤러(112)의 방위를 결정하도록 구성될 수 있다. 다른 구현에서, 방위 모듈(118)은 예를 들어 하나 이상의 관성 측정 유닛, 광 센서, 오디오 센서, 이미지 센서, 거리/근접 센서, 위치 센서 및/또는 현실 세계에서 HMD(106)의 물리적 위치, 또는 가상 환경에 대한 물리적 환경을 추적하기 위한 다른 센서에 액세스할 수 있다. 일부 구현에서, 방위 모듈(118)은 HMD(106)에 통합될 수 있다. 일부 구현에서, 방위 모듈(118)은 센서(들)를 통해 HMD(106)의 위치를 결정하도록 구성될 수 있다.
일부 구현에서, 방위 모듈(118)은 물리적 컨트롤러(112) 및/또는 HMD(106)에 포함될 수 있다. 일부 구현에서, 방위 모듈(118)의 동작들은 물리적 컨트롤러(112) 및/또는 HMD(106)에서 실행 가능할 수 있다.
방위 모듈(118)은 물리적 환경(112), 사용자, 가상 오브젝트, 및 VR 환경(105) 내에서 움직이는 오브젝트와 관련된 영역들의 특정 방위를 결정하기 위해 본 명세서에 기술된 임의의 수의 메모리 저장소 및/또는 센서에 액세스할 수 있다. 예를 들어, 방위 모듈(118)은 물리적 컨트롤러(112)의 방위(예를 들어, 요, 피치 및/또는 롤)을 결정할 수 있다.
일단 방위 모듈(118)이 물리적 컨트롤러(112)의 방위를 결정하면, 변환 모듈(120)은 물리적 컨트롤러(112)의 움직임을 VR 환경(105)으로 변환할 수 있다. 일부 구현에서, 변환 모듈(120)은 다음의 움직임, 즉 a) 좌우 움직임(예를 들어, 요), b) 상하 움직임(예를 들어, 피치) 및/또는 c) 좌우 회전(예를 들어, 롤)에 기초하여 물리적 컨트롤러(112)의 움직임을 변환할 수 있다.
VR 암 모듈(122)은 가상 암 모델을 생성할 수 있다. 일부 구현에서, 변환 모듈(120)은 암 모듈(122)에 의해 생성된 암 모델을 사용할 수 있고, 방위 모듈(118) 및 암 모듈(122)로부터의 정보를 사용하여 가상 컨트롤러의 가상 위치 및/또는 방위를 생성할 수 있다.
일부 구현에서, 방위 모듈(118) 및/또는 변환 모듈(120)은 물리적 컨트롤러(112)가 가상 오브젝트들과 상호 작용하도록 허용할 수 있다. 컨트롤러 상호 작용은 가상 오브젝트상에서 수행되는 물리적 제스처(예를 들어, 움직임)로 해석될 수 있다. 예를 들어, 사용자는 가상 컨트롤러를 조작하여 오브젝트를 포인팅하거나 터치할 수 있다. 이러한 움직임은 3 DOF 움직임으로 수행되고 묘사될 수 있다.
예시적인 VR 시스템(108)은 네트워크(101)를 통해 데이터를 교환할 수 있는 임의의 수의 컴퓨팅 및/또는 전자 디바이스를 포함할 수 있다. 디바이스는 클라이언트 또는 서버를 나타낼 수 있고, 네트워크(101) 또는 임의의 다른 추가 및/또는 대안적인 네트워크(들)를 통해 통신할 수 있다. 클라이언트 디바이스는 이에 한정되지 않지만, HMD(106), 물리적 컨트롤러(112), 모바일 디바이스(102)(예를 들어, 스마트폰, 개인 휴대 정보 단말기, 휴대용 미디어 플레이어 등), 랩탑 또는 넷북(103), 데스크탑 컴퓨터(104), 전자 태블릿(미도시)), 카메라(미도시), 게임 디바이스(미도시), 및 네트워크(101) 또는 다른 네트워크(들)를 사용하여 다른 컴퓨팅 또는 전자 디바이스 또는 시스템과 통신할 수 있거나 VR 컨텐츠에 액세스하거나 VR 환경 내에서 동작하는데 사용될 수 있는 임의의 다른 전자 또는 컴퓨팅 디바이스를 포함한다. 디바이스(102-104, 106 및 112)는 클라이언트 또는 서버 디바이스를 나타낼 수 있다. 디바이스(102-104, 106 및 112)는 클라이언트 운영 체제, 및 각 개별 디바이스(102-104, 106 및 112)에 포함되거나 그와 함께 포함된 디스플레이 디바이스상에서 VR 컨텐츠를 액세스, 렌더링, 제공 또는 디스플레이할 수 있는 하나 이상의 클라이언트 애플리케이션을 실행할 수 있다.
VR 시스템(108)은 서버 디바이스를 나타낼 수 있다. 일반적으로, VR 시스템(108)은 가상 현실 장면을 생성, 수정 또는 실행할 수 있는 컨텐츠 및/또는 가상 현실 소프트웨어 모듈을 저장하는 임의의 수의 저장소를 포함할 수 있다. 도시된 예에서, VR 시스템(108)은 시스템(108)에 대한 컨텐츠 및/또는 컨트롤들을 액세스하고 제시할 수 있는 VR 애플리케이션(110)을 포함한다. 일부 구현에서, VR 애플리케이션(110)은 하나 이상의 디바이스(102-104)상에서 로컬로 실행될 수 있다. VR 애플리케이션(110)은 예를 들어, 임의의 또는 모든 디바이스(102-104)에서 실행되도록 구성되될 수 있고, 물리적 컨트롤러(112)를 사용하여 제어되거나 동작될 수 있다.
본 개시에서 설명된 특정 구현들은 사용자가 물리적 컨트롤러(112)를 사용하여 VR 환경과 상호 작용할 수 있게 할 수 있다. 예를 들어, 사용자는 VR 환경에서 3D의 가상 오브젝트를 선택하고 조작하기 위해 물리적 컨트롤러(112)를 보유할 수 있다. 예시적인 물리적 컨트롤러(112)는 컨트롤러 디바이스의 내부 구성 요소가 수용되는 하우징 및 사용자가 접근할 수 있는 하우징 외부상의 사용자 인터페이스(미도시)를 포함할 수 있다. 사용자 인터페이스는 예를 들어, 사용자 터치 입력, 버튼, 손잡이, 조이스틱, 토글, 슬라이드 및 다른 그러한 조작 디바이스를 수신하도록 구성된 터치 감지 표면(들)을 포함하는 복수의 상이한 유형의 조작 디바이스(도 2a 내지 도 2c에 상세히 도시되지 않음)를 포함할 수 있다.
물리적 컨트롤러(112)에는 하나 이상의 센서가 포함될 수 있다. 센서는 예를 들어 사용자들에 의해, 물리적 컨트롤러(112) 및 HMD 디바이스(106)에 액세스하는VR 환경에 대한 입력을 제공하도록 트리거될 수 있다. 센서는 이에 한정되지 않지만, 터치 스크린 센서, 가속도계, 자이로 스코프, 압력 센서, 생체 센서, 온도 센서, 습도 센서 및 주변 광 센서를 포함할 수 있다. 물리적 컨트롤러(112)는 센서들을 사용하여 VR 환경에서 물리적 컨트롤러(112)의 검출된 회전을 결정한다. 그런 다음 그 회전은 VR 환경에 대한 입력으로 사용될 수 있다. 하나의 비 제한적인 예에서, 물리적 컨트롤러(112)는 스틱, 연필 또는 펜, 그림 도구, 컨트롤러, 리모컨, 레이저 포인터, 모바일 전화기, 페인트 브러시 또는 다른 오브젝트 등으로서 VR 환경에 통합될 수 있다. VR 환경에 통합될 때(또는 그 내에 표현될 때) 사용자에 의한 물리적 컨트롤러(112)의 위치 측정(Positioning)은 VR 환경에서 사용자가 특정 가상 오브젝트들을 배치하고 스틱, 페인트 브러시, 연필 또는 펜, 그림 도구, 컨트롤러, 리모컨, 레이저 포인터, 모바일 전화기, 페인트 브러시 또는 기타 오브젝트를 배치할 수 있게 한다. 이러한 위치 측정은 일부 구현에서 앵커 포인트를 사용하여 오브젝트들을 조작하기 위한 트리거로서 사용될 수 있다.
HMD 디바이스(106)는 가상 현실 헤드셋, 안경, 접안렌즈 또는 가상 현실 컨텐츠를 디스플레이할 수 있는 다른 웨어러블 디바이스를 나타낼 수 있다. 동작시, HMD 디바이스(106)는 VR 애플리케이션을 실행할 수 있는데, 이는 HMD 디바이스(106)의 디스플레이(미도시)를 통해 수신 및/또는 처리된 이미지를 사용자에게 재생할 수 있다. 일부 구현에서, VR 애플리케이션(110)은 하나 이상의 디바이스들(102-104 및 106)에 의해 호스팅될 수 있다.
일부 구현에서, 예시적인 HMD 디바이스(106)는 예를 들어 헤드폰에 장착된 스피커를 포함하는 오디오 출력 디바이스와 함께 프레임에 연결된 하우징을 포함할 수 있다. 예시적인 HMD 디바이스(106)에서, 디스플레이(미도시)가 하우징의 전면 부의 내부 대향 측면에 장착될 수 있다. 렌즈들은 사용자의 눈과 디스플레이 사이에 하우징에 장착될 수 있다. 일부 구현에서, HMD 디바이스(106)는 예를 들어 오디오 센서(들), 이미지/광 센서(들), 위치 센서들(예를 들어, 자이로 스코프 및 가속도계를 포함하는 관성 측정 유닛)과 같은 다양한 센서들을 포함하는 감지 시스템을 포함할 수 있다. HMD 디바이스(106)는 또한 HMD 디바이스(106)의 동작을 용이하게 하기 위해 프로세서 및 다양한 제어 시스템 디바이스를 포함하는 제어 시스템을 포함할 수 있다.
일부 구현에서, HMD 디바이스(106)는 정지 및 동영상을 캡처하기 위해 하나 이상의 카메라(미도시)를 포함할 수 있다. 이러한 카메라로 캡처된 이미지는 실제환경에서 사용자 및/또는 물리적 컨트롤러(112)의 물리적 위치, 또는 VR 환경에 대한 물리적 환경을 추적하는데 사용될 수 있고 및/또는 통과 모드에서 디스플레이 상에서 사용자에게 디스플레이될 수 있어, 사용자는 HMD 디바이스(106)를 제거하거나 HMD 디바이스(106)의 구성을 변경하지 않고도 가상 환경을 일시적으로 떠나 물리적 환경으로 되돌아갈 수 있다.
일부 구현에서, 모바일 디바이스(102)는 HMD 디바이스(106) 내에 배치 및/또는 위치될 수 있다. 모바일 디바이스(102)는 HMD 디바이스(106)의 스크린으로서 사용될 수 있는 디스플레이 디바이스를 포함할 수 있다. 모바일 디바이스(102)는 VR 애플리케이션(110)을 실행하기 위한 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 일부 구현에서, HMD 디바이스(106)는 6 자유도 내에서 위치 및 사용자 움직임의 완전한 추적을 제공할 수 있다. 추적은 사용자의 손 움직임, 머리 움직임, 눈 움직임에 기초하거나 사용자 입력에 근거하여 움직이는 컨트롤러의 추적에 기초할 수 있다.
추가의 디바이스가 가능하고 이러한 디바이스는 서로 대체되도록 구성될 수 있다. 일부 구현에서, 디바이스(102-104)는 랩톱 또는 데스크탑 컴퓨터, 스마트 폰, 개인 정보 단말기, 휴대용 미디어 플레이어, 태블릿 컴퓨터, 게임 디바이스, 또는 다른 컴퓨팅 디바이스 또는 컴퓨터 시스템과 네트워크(101)를 사용하여 통신할 수 있는 다른 적절한 컴퓨팅 디바이스일 수 있다.
예시적인 시스템(100)에서, HMD 디바이스(106)는 예를 들어 VR 시스템(108)상의 VR 컨텐츠에 액세스하기 위해 디바이스(102) 또는 디바이스(104)에 연결될 수 있다. 디바이스(102 또는 104)는 디스플레이를 위한 VR 컨텐츠를 제공할 수 있는 HMD 디바이스(106)에 (유선 또는 무선으로) 연결될 수 있다.
일부 구현에서, 하나 이상의 컨텐츠 서버(예를 들어, VR 시스템(108)) 및 하나 이상의 컴퓨터 판독 가능 저장 디바이스는 VR 컨텐츠를 디바이스(102-104 및 106)에 제공하기 위해 네트워크(101)를 사용하여 컴퓨팅 디바이스(102-104, 106)와 통신할 수 있다. 일부 구현에서, 네트워크(101)는 공중 통신 네트워크(예를 들어, 인터넷, 셀룰러 데이터 네트워크, 전화 네트워크를 통한 전화 접속 모뎀) 또는 개인 통신 네트워크(예를 들어, 개인 LAN, 임대 회선) 일 수 있다. 일부 구현에서, 컴퓨팅 디바이스(102-108)는 하나 이상의 고속 유선 및/또는 무선 통신 프로토콜(예를 들어, 802.11 변형, Wi-Fi, 블루투스, 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP)), 이더넷, IEEE 802.3 등)을 사용하여 네트워크(101)와 통신할 수 있다.
일부 구현에서, 모바일 디바이스(102)는 VR 애플리케이션(110)을 실행하여 VR 환경에 대한 컨텐츠를 제공할 수 있다. 일부 구현에서, 랩톱 컴퓨팅 디바이스는 VR 애플리케이션(110)을 실행할 수 있고 하나 이상의 컨텐츠 서버(예를 들어, VR 시스템(108))로부터 컨텐츠를 제공할 수 있다. 하나 이상의 컨텐츠 서버 및 하나 이상의 컴퓨터 판독 가능 저장 디바이스는 HMD 디바이스(106)에서 디스플레이하기 위한 컨텐츠를 제공하기 위해 네트워크(101)를 사용하여 모바일 디바이스(102), 랩탑 컴퓨팅 디바이스(104) 및/또는 물리적 컨트롤러(112)와 통신할 수 있다.
도 4는 VR 환경에서 HMD 디바이스(106)에 통신 가능하게 결합된 물리적 컨트롤러(112)를 도시한 블록도이다. 동작시, 시스템(100)은 도 3에 도시된 디바이스들로 조작될 수 있는 임의의 수의 가상 오브젝트를 하우징하는 VR 환경을 제공하도록 구성될 수 있다. 물리적 컨트롤러(112)는 HMD 디바이스(106)와 인터페이스하여 몰입형 가상 환경을 생성할 수 있다. 물리적 컨트롤러(112)는 예를 들어 디바이스들 간의 통신을 수립하고 몰입형 VR 환경과의 사용자 상호 작용을 용이하게 하기 위해 HMD 디바이스(106)와 페어링될 수 있다. 일부 구현에서, 물리적 컨트롤러(112)는 HMD 디바이스(106)와 페어링될 수 있지만, 대신 VR 애플리케이션(110) 또는 다른 외부 추적 디바이스의 추적 모듈(116)에 의해 추적될 수 있다.
도 4를 참조하면, 물리적 컨트롤러(112)는 감지 시스템(460) 및 제어 시스템(470)을 포함한다. 감지 시스템(460)은 예를 들어 광 센서, 오디오 센서, 이미지 센서, 거리/근접 센서, 위치 센서(예를 들어, 자이로 스코프 및 가속도계를 포함하는 관성 측정 유닛(IMU)) 및/또는 다른 센서를 포함하는 하나 이상의 상이한 유형의 센서 및/또는 예를 들어 사용자와 관련된 시선을 검출 및 추적하도록 위치된 이미지 센서를 포함하는 상이한 센서 조합(들)을 포함할 수 있다. 제어 시스템(470)은 예를 들어 전원/일시정지 제어 디바이스, 오디오 및 비디오 제어 디바이스, 광학 제어 디바이스, 전이 제어 디바이스 및/또는 다른 이러한 디바이스 및/또는 디바이스의 다른 조합(들)을 포함할 수 있다. 감지 시스템(460) 및/또는 제어 시스템(470)은 특정 구현에 따라 더 많거나 더 적은 디바이스를 포함할 수 있다.
물리적 컨트롤러(112)는 또한 감지 시스템(460) 및 제어 시스템(470)과 통신하는 적어도 하나의 프로세서(490), 메모리(480), 및 물리적 컨트롤러(112)와 예를 들어, 후속 컨트롤러(들) 및/또는 HMD 디바이스(들)와 같은 다른 외부 디바이스 사이의 통신을 제공하는 통신 모듈(450)을 포함할 수 있다.
일반적으로, 본 개시에서 설명된 시스템 및 방법은 사용자 손 또는 물리적 컨트롤러(112)를 추적하고 VR 환경에서 그러한 손 및/또는 컨트롤러와 관련된 사용자 움직임을 분석하여 그러한 움직임의 의도를 결정할 수 있다.
도 5는 본 명세서에 개시된 VR 환경 내에서 가상 컨트롤러의 위치를 결정하기 위해 수행될 수 있는 예시적인 방법(500)을 도시한다. 도 5의 예시적인 방법(500)은 사용자의 HMD의 위치를 결정하는 단계(블록 502)와, HMD의 위치에 기초하여 관절의 위치를 정의하는 단계(블록 504)와, 관절에서 세그먼트의 단부까지 세그먼트를 정의하는 단계(블록 506)와, 그리고 세그먼트 및 관절에 기초하여 물리적 컨트롤러 방위을 VR 환경내의 가상 컨트롤러의 가상 위치 및 가상 방위로 변환하는 단계(블록 508)로 시작한다.
블록(502)에서, 사용자의 HMD의 위치는 사용자의 머리의 중심에서 결정될 수 있다. 본 명세서에 기술된 구현에 따르면, 컨트롤러를 잡고 있는 사용자는 똑 바로 앞을 바라보고 있으며 직각의 팔이어야 한다.
블록(504)에서, 제1 관절의 위치는 블록(502)에서 결정된 HMD의 위치에 기초하여 정의될 수 있다.
블록(506)에서, 관절(예를 들어, 관절 D)에서 세그먼트의 단부까지의 세그먼트가 정의된다. 일부 구현에서, 세그먼트의 단부는 관절(예를 들어, 관절 E)에 대응할 수 있다. 본 명세서에 기술된 구현에 따르면, 이 세그먼트는 사용자의 팔뚝을 나타낼 수 있다. 세그먼트는 관절 D를 중심으로 움직일 수 있다. 일부 구현에서, 세그먼트는 관절(예를 들어, 관절 D)을 중심으로 적어도 양옆 방향(예를 들어, 좌우로)으로 움직일 수 있다. 다른 구현에서, 세그먼트는 관절(예를 들어, 관절 D)을 중심으로 적어도 상하로 이동할 수 있다.
블록(508)에서, 물리적 컨트롤러 위치 및 방위는 세그먼트 및 관절에 기초하여 VR 환경 내의 가상 컨트롤러 위치 및 방위로 변환될 수 있다. 가상 컨트롤러는 물리적 컨트롤러와 유사한 방식으로 대응하여 이동할 수 있다.
도 5의 예시적인 방법(500) 또는 본 명세서에 개시된 다른 방법은 본 명세서에 개시된 예시적인 디스플레이 어셈블리를 제어 또는 동작시키기 위해 하나 이상의 프로세서에 의해 수행되는 기계 판독 가능 명령들로 구현될 수 있다. 프로세서, 컨트롤러 및/또는 임의의 다른 적절한 처리 디바이스가 본 명세서에 개시된 예시적인 방법을 실행 및/또는 수행하도록 사용, 구성 및/또는 프로그래밍될 수 있다. 예를 들어, 도 5의 예시적인 방법(500) 또는 본 명세서에 개시된 다른 방법은 프로세서, 컴퓨터 및/또는 도 3과 관련하여 아래에서 논의되는 것과 같은 프로세서를 갖는 다른 머신에 의해 액세스 가능한 유형의 및/또는 비-일시적 컴퓨터 판독 가능 매체상에 저장된 프로그램 코드 및/또는 기계 판독 가능 명령들로 구현될 수 있다. 기계 판독 가능 명령들은 예를 들어 프로세서, 컴퓨터 및/또는 프로세서를 갖는 머신으로 하여금 하나 이상의 특정 프로세스를 수행하게 하는 명령들을 포함할 수 있다. 도 5의 예시적인 방법(500)을 구현하는 많은 다른 방법 또는 본 명세서에 개시된 다른 방법이 이용될 수 있다. 예를 들어, 실행 순서가 변경될 수 있고 및/또는 설명된 하나 이상의 블록 및/또는 상호 작용이 변경, 제거, 세분화 또는 결합될 수 있다. 부가적으로, 도 5의 전체 예시적인 방법(500) 또는 본 명세서에 개시된 다른 방법들은 예를 들어 별도의 처리 스레드, 프로세서, 디바이스, 이산 로직, 회로들 등에 의해 순차적으로 수행 및/또는 병렬로 수행될 수 있다.
도 6은 본 명세서에 개시된 VR 환경 내에서 가상 컨트롤러의 위치를 결정하기 위해 수행될 수 있는 다른 예시적인 방법(600)을 도시한다. 도 6의 예시적인 방법(500)은 사용자의 HMD의 위치를 결정하는 단계(블록 602)와, HMD의 위치에 기초하여 관절의 위치를 정의하는 단계(블록 604)와, 관절로부터 세그먼트의 단부까지의 세그먼트를 정의하는 단계(블록 606)와, 세그먼트의 단부의 위치에 기초하여 가상 환경 내에서 가상 컨트롤러의 초기 가상 위치를 정의하는 단계(블록 608)와, 그리고 물리적 컨트롤러의 방위 이동에 응답하여, 세그먼트 및 관절에 기초하여, 가상 환경 내에서 가상 컨트롤러의 가상 위치 및 가상 방위를 정의하는 단계(블록 610)로 시작한다.
도 7a 및 7b는 예시적인 실시예에 따른, 사용자가 관절과 관련하여 움직일 때, 위의 제3자에 의해 보여지는 사용자의 개략도이다. 도 7a는 제1 관절(D1)와 관련된 제1 위치의 사용자(20)를 도시한다. 도 7b는 다른 위치에서 제1 관절(D2)와 관련된 제2 위치의 사용자(20)를 도시한다.
일부 구현에서, 전술한 바와 같이, 관절(D1)의 위치는 사용자의 머리(A1)(또는 HMD)의 일부(예를 들어, 중심)로부터 관절(D1)(예를 들어, 팔꿈치 관절)까지의 거리를 측정함으로써 결정될 수 있다. 예를 들어, 전술한 바와 같이, 관절(D1)의 위치는 그 관절(D1)의 위치를 얻도록 세그먼트들(예를 들어, 세그먼트들(11, 13, 15))에 의해 결정될 수 있다.
도 7a에 도시된 바와 같이, 사용자(20)는 라인(X)에 의해 정의된 바와 같이 전방을 똑바로 보고 있고, 컨트롤러(212)는 또한 전방 위치(예를 들어, 라인(X)에 평행)에 있다. 이것은 제1 위치로 정의될 수 있다. 일부 구현에서, 제1 위치는 측면 뷰에서 볼 때 사용자(20)의 팔이 직각, 예를 들어, 제2 세그먼트(예를 들어, 세그먼트 17)에 직교하는 제1 세그먼트(예를 들어, 세그먼트(15))에 있는 것을 포함할 수 있다. 사용자 팔의 단부에는 관절(E1)이 있다. 관절(E1)의 위치는 컨트롤러(212)의 위치를 결정하는데 사용될 수 있다.
일부 구현에서, 사용자(20)의 제1 위치는 또한 어깨 관절(예를 들어, 관절 C)의 위치를 결정하는 것을 포함할 수 있다. 일부 구현에서, 어깨 관절은 제1 위치에서 사용자를 정렬하는 것을 도울 수 있다. 본 명세서에 기술된 구현에서, 어깨 관절과 관절(D1) 사이에 정의될 수 있는 세그먼트(15)가 세그먼트(17)와 직각이기 때문에 어깨 관절과 관절(D1)은 상단 뷰(top view)에서 볼 때 동일한 위치에 있는 것으로 보인다.
비 제한적인 예에서, 사용자(20)가 적어도 어깨 관절의 위치에 기초하여 (예를 들어, 전방을 똑바로 보고 있는) 제1 위치에 있는 동안, 사용자(20)는 사용자 얼굴에 더 가깝도록 컨트롤러(212)를 가져올 수 있는데, 이는 VR 환경의 가상 컨트롤러가 유사한 방식으로(예를 들어, VR 환경의 사용자 얼굴에 더 가깝게) 움직이게 한다. 어깨를 똑바로 유지하면서(또는 관절 D1 정지), 사용자(20)는 가상 컨트롤러가 VR 환경에서 움직이지 않은 상태에서(예를 들어, 사용자 얼굴 앞에 정지) 머리를 왼쪽 또는 오른쪽으로 돌릴 수 있다. 어깨(또는 관절 D1)가 정적으로 유지되었기 때문에(예컨대, 정지(still), 정지(stationary), 고정(fixed) 등), 가상 컨트롤러는 사용자(20)가 머리를 돌리더라도 정적 상태를 유지했다. 따라서 컨트롤러의 추가 교정(calibration)이 필요하지 않았다.
일부 구현에서, 사용자 및/또는 물리적 컨트롤러의 각속도는 가상 컨트롤러의 움직임을 결정할 수 있다. 본 명세서에 설명된 구현에서, 각속도는 시간에 대한 각 변위의 변화율을 측정할 수 있다. 즉, 사용자 및/또는 물리적 컨트롤러가 시간에 대해 얼마나 빨리 움직이는가. 움직임이 각속도의 특정 임계값(예를 들어, 조건)을 만족(예를 들어, 충족)하면, 가상 컨트롤러가 움직일 수 있다. 예를 들어, 위와 유사한 예를 사용하여, 어깨의 위치를 정적으로 유지하면서 사용자(20)는 머리를 왼쪽 또는 오른쪽으로 비교적 빠르게 돌리고, 시스템 및 방법은 특정 각속도 임계값(또는 조건)이 충족됨에 따라 가상 컨트롤러가 그의 위치 및 방위에서 유지되어야 한다고 결정할 수 있다.
다른 비 제한적인 예에서, 다른 한편으로, 사용자가 비교적 느린 방식으로 머리를 돌리면(각속도 조건을 만족하지 않으면), 시스템 및 방법은 사용자의 위치가 변경될 수 있다고 결정하고 그에 따라 가상 컨트롤러의 위치를 이동시킬 수 있다.
다른 비 제한적인 예에서, 사용자가 물리적 컨트롤러를 (예를 들어, 상하로) 비교적 빠르게 움직이면(각속도 조건을 만족하면), 시스템 및 방법은 특정 각속도 임계값(또는 조건)이 충족됨에 따라 가상 컨트롤러가 그의 위치 및 방위에서 유지되어야 한다고 결정할 수 있다.
다른 비 제한적인 예에서, 다른 한편으로, 사용자가 물리적 컨트롤러를 (예를 들어, 상하로) 비교적 느리게 이동시키면(각속도 조건을 만족하면), 시스템 및 방법은 가상 컨트롤러의 위치가 사용자의 움직임에 따라 변경될 수 있다고 결정할 수 있다.
일부 구현에서, 사용자 및 물리적 컨트롤러 각속도는 모두 가상 컨트롤러를이동할지 여부를 결정하는데 사용될 수 있다. 예를 들어, 사용자의 머리와 물리적 컨트롤러가 임계값(또는 조건)을 충족시키기 위해 비교적 빠르게 움직이면, 시스템 및 방법은 원하는 위치로 가상 컨트롤러를 이동하도록 결정할 수 있다.
도 7b에 도시된 바와 같이, 사용자(20)가 관절(A1)에서 위치를 이동(예를 들어, 대략 우측으로 몸을 회전)하는 경우, 관절(예를 들어, 이제 D2에서)이 유사한 거리 및/또는 방위로 이동할 수 있도록 제1 위치와 관련된 관절(D1) 또한 이동한다. 결과적으로, 이것은 관절(E1)의 위치가 (예를 들어, 이제 E2에서) 유사한 거리 및/또는 방위로 이동하게 할 수 있다. 관절(D1)(및 관절 E1)의 위치는 동적인데, 이는 사용자(20)의 위치가 변경될 때 관절(D1)(및 관절 E1)이 이동하는 것을 의미한다. 이 예시적인 구현에 도시된 바와 같이, 사용자(20)는 예를 들어 어깨와 관련된 예를 들어 대략 30도 회전했을 수 있다. 일부 다른 구현에서, 사용자는 예를 들어 어깨와 관련된 0도와 360도 사이에서 회전할 수 있다.
일부 구현에서, HMD(106) 및/또는 물리적 컨트롤러(112)는 재교정(예를 들어 재중심)될 수 있다. 본 명세서에 기술된 구현에 따라, 재교정은 사용자(20) 및 물리적 컨트롤러(112)의 위치를 전방 및/또는 전방-지향 위치(forward-looking location))로 설정한다. 일부 구현에서, 재교정은 물리적 컨트롤러(112)와 관련된HMD(106)의 사전 결정된 위치에 기초할 수 있다. 보다 구체적으로, 제2 관절(예를 들어, E1)의 위치와 관련된 사용자 위치의 위치이다.
일부 구현에서, HMD(106) 및/또는 물리적 컨트롤러(112)를 재교정하기 위해, 사용자(20)는 물리적 컨트롤러(112)상의 키를 조작하여 HMD(106) 및/또는 물리적 컨트롤러(112)의 위치 및/또는 방위를 재설정할 수 있다. 예를 들어, 사용자(20)는 물리적 컨트롤러(112)의 홈 버튼(114a)을 눌러 물리적 컨트롤러(112)의 위치 및/또는 방위를 재설정할 수 있다.
본 명세서에 기술된 구현에 따른 시스템 및 방법은 도 1에 도시된 바와 같이 z 축(예를 들어, 상향 축)에서만 측정된 움직임을 재교정할 수 있다. 도 1에 도시된 바와 같이 x 축(예를 들어, 좌우 축) 및 도 1에 도시된 바와 같이 x 축(예를 들어, 전후 축)에서 측정된 움직임은 이들 움직임이 동일한 평면에서 측면으로(예를 들어, 좌우로) 움직이지 않기 때문에 일반적으로 재교정해서는 안된다.
도 8을 참조하면, 일반 컴퓨터 디바이스(P00) 및 일반 모바일 컴퓨터 디바이스(P50)의 예는 본 명세서에 설명된 기술과 함께 사용될 수 있다. 컴퓨팅 디바이스(P50)는 HMD(106), 물리적 컨트롤러(112), 디바이스(102-108) 및 컨트롤러(110)를 포함하지만 이에 제한되지 않는 본 명세서에 개시된 임의의 디바이스를 구현하는데 사용될 수 있다. 컴퓨팅 디바이스(P00)는 랩탑, 데스크탑, 태블릿, 워크 스테이션, 개인 정보 단말기, 텔레비전, 서버, 블레이드 서버, 메인 프레임 및 기타 적절한 컴퓨팅 디바이스와 같은 다양한 형태의 디지털 컴퓨터를 나타내도록 의도된다. 컴퓨팅 디바이스(P50)는 개인 정보 단말기, 셀룰러 전화기, 스마트폰 및 기타 유사 컴퓨팅 디바이스와 같은 다양한 형태의 모바일 디바이스를 나타내도록 의도된다. 본 명세서에 도시된 구성 요소, 그들의 연결 및 관계, 및 그 기능은 단지 예시적인 것이며, 본 명세서에 기술되고 및/또는 청구된 본 발명의 구현을 제한하려는 것은 아니다.
컴퓨팅 디바이스(P00)는 프로세서(P02), 메모리(P04), 저장 디바이스(P06), 상기 메모리(P04)와 고속 확장 포트(P10)에 연결되는 고속 인터페이스(P08), 및 저속 버스(P14)와 저장 디바이스(P06)에 연결되는 저속 인터페이스(P12)를 포함한다. 프로세서(P02)는 반도체 기반 프로세서일 수 있다. 메모리(P04)는 반도체 기반 메모리일 수 있다. 각각의 구성 요소(P02, P04, P06, P08, P10 및 P12)는 다양한 버스, 연결, 메모리, 캐시 등을 사용하여 상호 연결되며 공통 마더 보드 또는 기타 적절한 방식으로 장착될 수 있다. 프로세서(P02)는 메모리(P04) 또는 저장 디바이스(P06)에 저장된 명령들을 고속 인터페이스(P08)에 연결된 발광부(P16)와 같은 외부 입/출력 디바이스상의 GUI에 대한 발광부 그래픽 정보로 포함하여 컴퓨팅 디바이스(P00)에서 실행하기 위한 명령들을 처리할 수 있다. 다른 구현에서, 다수의 프로세서 및/또는 다수의 버스가 적절하게 다수의 메모리 및 다수 유형의 메모리와 함께 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스(P00)는 (예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 다중 프로세서 시스템으로서) 필요한 동작의 일부를 제공하는 각 디바이스와 연결될 수 있다.
메모리(P04)는 컴퓨팅 디바이스(P00)에 정보를 저장한다. 일 구현에서, 메모리(P04)는 휘발성 메모리 유닛(들)이다. 다른 구현에서, 메모리(P04)는 비 휘발성 메모리 유닛(들)이다. 메모리(P04)는 또한 자기 또는 광 디스크와 같은 다른 형태의 컴퓨터 판독 가능 매체일 수 있다.
저장 디바이스(P06)는 컴퓨팅 디바이스(P00)를 위한 대용량 저장소를 제공할 수 있다. 일 구현에서, 저장 디바이스(P06)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스 어레이와 같은 컴퓨터 판독 가능 매체이거나 이를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 매체에 유형적으로 내장될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 전술한 바와 같은 하나 이상의 방법을 수행하는 명령들을 포함할 수 있다. 정보 매체는 메모리(P04), 저장 디바이스(P06), 또는 프로세서(P02)상의 메모리와 같은 컴퓨터 판독 가능 매체 또는 기계 판독 가능 매체이다.
고속 컨트롤러(P08)는 컴퓨팅 디바이스(P00)에 대한 대역폭 집약적 동작을 관리하는 반면, 저속 컨트롤러(P12)는 보다 낮은 대역폭 집약적 동작을 관리한다. 이러한 기능 할당은 단지 예시적이다. 일 구현에서, 고속 컨트롤러(P08)는 메모리(P04), 발광부(P16)(예를 들어, 그래픽 프로세서 또는 가속기를 통해), 및 다양한 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(P10)에 연결된다. 구현에서, 저속 컨트롤러(P12)는 저장 디바이스(P06) 및 저속 확장 포트(P14)에 연결된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, Wi-Fi)를 포함할 수 있는 저속 확장 포트는 예를 들어, 네트워크 어댑터를 통해 키보드, 포인팅 디바이스, 스캐너, 또는 스위치 또는 라우터와 같은 네트워킹 디바이스와 같은 하나 이상의 입/출력 디바이스에 연결될 수 있다.
컴퓨팅 디바이스(P00)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 표준 서버(P20)로 구현되거나 이러한 서버 그룹에서 여러 번 구현될 수 있다. 또한 랙 서버 시스템(P24)의 일부로 구현될 수 있다. 또한, 랩탑 컴퓨터(P22)와 같은 개인용 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(P00)로부터의 구성 요소는 디바이스(P50)와 같은 모바일 디바이스(미도시)의 다른 구성 요소와 결합될 수 있다. 이러한 디바이스 각각은 하나 이상의 컴퓨팅 디바이스(P00, P50)를 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스(P00, P50)로 구성될 수 있다.
컴퓨팅 디바이스(P50)는 다른 구성 요소 중에서 프로세서(P52), 메모리(P64), 발광부(P54)와 같은 입력/출력 디바이스, 통신 인터페이스(P66) 및 트랜시버(P68)를 포함한다. 디바이스(P50)에는 또한 추가 저장소를 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 각 구성 요소(P50, P52, P64, P54, P66 및 P68)는 다양한 버스를 사용하여 상호 연결되며, 몇몇 구성 요소는 공통 마더 보드상에 또는 적절하게 다른 방식으로 장착될 수 있다.
프로세서(P52)는 메모리(P64)에 저장된 명령들을 포함하여 컴퓨팅 디바이스(P50) 내의 명령들을 실행할 수 있다. 프로세서는 개별 및 다수의 아날로그 및 디지털 프로세서를 포함하는 칩의 칩셋으로 구현될 수 있다. 프로세서는, 예를 들어, 사용자 인터페이스의 제어, 디바이스(P50)에 의해 실행되는 애플리케이션, 및 디바이스(P50)에 의한 무선 통신과 같은 디바이스(P50)의 다른 구성 요소의 조정을 제공할 수 있다.
프로세서(P52)는 발광부(P54)에 연결된 제어 인터페이스(P58) 및 발광부 인터페이스(P56)를 통해 사용자와 통신할 수 있다. 발광부(P54)는 예를 들어 TFT LCD(박막 트랜지스터 액정 발광부) 또는 OLED(유기 발광 다이오드) 발광부 또는 다른 적절한 발광부 기술일 수 있다. 발광부 인터페이스(P56)는 그래픽 및 다른 정보를 사용자에게 제시하기 위해 발광 부(P54)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(P58)는 사용자로부터 커멘드를 수신하여 프로세서(P52)에 제출하기 위해 변환할 수 있다. 또한, 프로세서(P52)와의 통신에 외부 디바이스(P62)가 제공되어 다른 디바이스들과 디바이스(P50)의 근거리 통신을 가능하게 한다. 외부 인터페이스(P62)는 예를 들어 일부 구현에서 유선 통신 또는 다른 구현에서는 무선 통신을 제공할 수 있고, 다수의 인터페이스가 사용될 수도 있다.
메모리(P64)는 컴퓨팅 디바이스(P50)에 정보를 저장한다. 메모리(P64)는 하나 이상의 컴퓨터 판독 가능 매체(medium) 또는 매체(media), 휘발성 메모리 유닛(들) 또는 비 휘발성 메모리 유닛(들)로 구현될 수 있다. 확장 메모리(P74)는 또한 예를 들어 SIMM(Single Inline Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(P72)를 통해 디바이스(P50)에 제공되고 연결될 수 있다. 이러한 확장 메모리(P74)는 디바이스(P50)를 위한 추가 저장 공간을 제공할 수 있거나, 디바이스(P50)를 위한 애플리케이션 또는 다른 정보를 저장할 수도 있다. 특히, 확장 메모리(P74)는 전술한 프로세스를 수행 또는 보완하기 위한 명령을 포함할 수 있고, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(P74)는 디바이스(P50)를 위한 보안 모듈로서 제공될 수 있고, 디바이스(P50)의 안전한 사용을 허용하는 명령들로 프로그램될 수 있다. 또한, SIMM 카드를 통한 식별 정보를 해킹 불가능한 방식으로 배치하는 것과 같이 추가 정보와 함께 보안 애플리케이션이 SIMM 카드를 통해 제공될 수 있다.
메모리는 예를 들어 후술하는 바와 같이 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 매체에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 전술한 바와 같은 하나 이상의 방법을 수행하는 명령들을 포함한다. 정보 매체는 예를 들어 송수신기(P68) 또는 외부 인터페이스(P62)를 통해 수신될 수 있는 메모리(P64), 확장 메모리(P74) 또는 프로세서(P5)의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
디바이스(P50)는 필요한 경우 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(P66)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(P66)는 GSM 음성 호출, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드 또는 프로토콜 하에서 통신을 제공할 수 있다. 이러한 통신은 예를 들어 무선 주파수 송수신기(P68)를 통해 발생할 수 있다. 또한, 블루투스, Wi-Fi 또는 다른 그러한 송수신기(미도시)를 사용하는 것과 같은 단거리 통신이 발생할 수 있다. 또한, GPS(Global Positioning System) 수신기 모듈(P70)은 디바이스(P50)에서 실행되는 애플리케이션에 의해 적절하게 사용될 수 있는 추가적인 내비게이션 관련 및 위치 관련 무선 데이터를 디바이스(P50)에 제공할 수 있다.
디바이스(P50)는 또한 사용자로부터 음성 정보를 수신하여 이를 사용 가능한 디지털 정보로 변환할 수 있는 오디오 코덱(P60)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(P60)은 예를 들어 디바이스(P50)의 핸드셋에 있는 스피커를 통해와 같이 사용자를 위해 가청음을 생성할 수 있다. 이러한 소리는 음성 전화 호출로부터의 소리를 포함할 수 있고, 녹음된 소리(예를 들어, 음성 메시지, 음악 파일 등)를 포함할 수 있고, 디바이스(P50)에서 동작하는 애플리케이션에 의해 생성된 소리를 포함할 수도 있다.
컴퓨팅 디바이스(P50)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 셀룰러 폰(P80)으로 구현될 수 있다. 또한 스마트 폰(P82), 개인 정보 단말기 또는 다른 유사한 모바일 디바이스의 일부로 구현될 수 있다.
본 명세서에 기술된 시스템 및 기술의 다양한 구현은 디지털 전자 회로, 집적 회로, 특별히 설계된 ASIC(application specific integrated circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현은 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령을 수신하고, 데이터 및 명령을 전송하기 위해 결합 된 특수 또는 범용일 수 있는 적어도 하나의 프로그램 가능 프로세서를 포함하는 프로그램 가능 시스템상에서 실행 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있다.
이들 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드라고도 함)은 프로그램 가능한 프로세서를 위한 기계 명령들을 포함하고, 고급 절차 및/또는 오브젝트 지향 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용된 바와같이, "기계 판독 가능 매체" "컴퓨터 판독 가능 매체"라는 용어는 기계 판독 가능 신호로서 기계 명령을 수신하는 기계 판독 가능 매체를 포함하여 기계 명령 및/또는 데이터를 프로그램 가능 프로세서로 제공하는데 사용되는 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예를 들어, 자기 디스크, 광 디스크, 메모리, 프로그램 가능 논리 디바이스(PLD))를 지칭한다. "기계 판독 가능 신호"라는 용어는 기계 명령 및/또는 데이터를 프로그램 가능 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
방법 단계들은 입력 데이터를 조작하고 출력을 생성함으로써 기능들을 수행하기 위해 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 방법 단계들은 또한 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(애플리케이션-특정 집적 회로)에 의해 수행될 수 있고 장치 또한 이들로 구현될 수 있다.
컴퓨터 프로그램의 처리에 적합한 프로세서는 예로서 범용 마이크로 프로세서 및 특수 목적 마이크로 프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 요소는 명령을 실행하기 위한 적어도 하나의 프로세서 및 명령과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스를 포함할 수 있다. 일반적으로, 컴퓨터는 또한 예를 들어 자기, 광 자기 디스크, 또는 광 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스를 포함하거나 이들로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 하도록 동작적으로 연결될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 구현하기에 적합한 정보 매체에는 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크( 예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광 자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함하여 모든 형태의 비 휘발성 메모리를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그에 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 기술된 시스템 및 기술은 사용자에게 정보를 발광하기 위한 발광부 디바이스(예를 들어, CRT(음극선 관) 또는 LCD(액정 발광부) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터에서 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 디바이스가 사용될 수도 있는데, 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백(예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백) 일 수 있으며; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에 설명된 시스템 및 기술은 백 엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나, 프론트 엔드 컴포넌트(예를 들어, 그래픽 사용자 인터페이스 또는 사용자가 본 명세서에 기술된 스템 및 기술의 구현과 상호 작용할 수 있는 웹 브라우저를 갖는 클라이언트 컴퓨터) 또는 이러한 백엔드, 미들웨어 또는 프론트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성 요소는 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)에 의해 상호 연결될 수 있다. 통신 네트워크의 예는 근거리 통신망("LAN"), 광역 통신망("WAN") 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다.
이에 한정되지는 않지만 본 명세서에서 대략, 실질적으로, 일반적으로 등과 같은 용어는 그들의 정확한 값 또는 범위가 요구되지 않고 특정될 필요가 없음을 나타내기 위해 본 명세서에서 사용된다. 본 명세서에 사용된 바와 같이, 위에서 논의된 용어는 당업자에게 준비적이고 즉각적인 의미를 가질 것이다.
또한, 본 명세서에서 위, 아래, 좌측, 우측, 상단, 하단, 측면, 단부, 전면, 후면 등과 같은 용어의 사용은 현재 고려되거나 도시된 방위에 대한 참조로 사용된다. 이들이 다른 방위과 관련하여 고려된다면, 그러한 용어는 대응하여 수정되어야 함을 이해해야 한다.
또한, 본 명세서 및 첨부된 청구 범위에서, 단수 형태 "a", "an"및 "the"는 문맥상 명백하게 다르게 지시되지 않는 한 복수의 언급을 배제하지 않는다. 더욱이, "및", "또는" 및 "및/또는"과 같은 조합은 문맥 상 명백하게 달리 지시하지 않는 한 포괄적이다. 예를 들어, "A 및/또는 B"는 A 단독, B 단독 및 A와 B를 포함한다.
또한, 제시된 다양한 도면에 도시된 연결 라인 및 커넥터는 다양한 요소 사이의 예시적인 기능적 관계 및/또는 물리적 또는 논리적 결합을 나타내도록 의도된다. 많은 대안 및/또는 추가 기능 관계, 물리적 연결 또는 논리적 연결이 존재할 수 있음에 유의해야 한다. 더욱이, 아이템 또는 구성 요소는 그 요소가 "필수(essential)" 또는 "필수(critical)"로 구체적으로 기술되지 않는 한, 본 개시의 실시에 필수적인 것은 아니다. 더욱이, 도면 및/또는 그림은 일정한 비율로 도시된 것이 아니라, 예시 및 설명의 명확성을 위해 그려진 것이다.
특정 예시적인 방법, 장치 및 제조 물품이 본 명세서에 기술되었지만, 본 특허의 범위는 이에 제한되지 않는다. 본 명세서에 사용된 용어는 특정 양태를 설명하기 위한 것이며 제한하려는 것이 아님을 이해해야 한다. 반대로, 본 특허는 본 특허 청구의 범위에 속하는 모든 방법, 장치 및 제조 물품을 포함한다.

Claims (18)

  1. 컴퓨터 구현 방법으로서,
    사용자의 헤드 마운트 디스플레이(HMD)의 위치를 결정하는 단계;
    상기 HMD의 위치로부터 사전 결정된 거리에 기초하여 관절의 위치를 정의하는 단계;
    상기 관절로부터 세그먼트를 정의하는 단계;
    상기 세그먼트의 단부에 기초하여 가상 환경에서 가상 컨트롤러의 위치를 정의하는 단계; 및
    상기 세그먼트 및 관절에 기초하여 물리적 컨트롤러 방위를 가상 환경에서 가상 컨트롤러의 가상 위치 및 가상 방위로 변환(translate)하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 가상 컨트롤러는,
    물리적 컨트롤러의 요(yaw) 움직임에 응답하여 측면 방향을 따라 이동하도록 구성되는 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 가상 컨트롤러는,
    물리적 컨트롤러의 피치(pitch) 이동에 응답하여 수직 방향을 따라 이동하도록 구성되는 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 가상 컨트롤러는,
    물리적 컨트롤러의 롤(roll) 운동에 응답하여 물리적 컨트롤러가 종 방향으로 정렬되는 축을 중심으로(about) 회전하도록 구성되는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 세그먼트는 제1 세그먼트이고, 상기 관절은 제1 관절이며,
    상기 방법은 제1 세그먼트의 단부에서 제2 관절로부터 연장되는 제2 세그먼트를 정의하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    상기 제2 세그먼트는 제2 관절을 중심으로 회전하도록 구성되는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    사용자의 위치가 검출되는 경우 관절의 위치를 재정의하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 컴퓨터 구현 방법으로서,
    사용자의 헤드 마운트 디스플레이(HMD)의 위치를 결정하는 단계;
    상기 HMD의 위치에 기초하여 관절의 위치를 정의하는 단계;
    상기 관절로부터 세그먼트의 단부까지 세그먼트를 정의하는 단계;
    상기 세그먼트의 단부의 위치에 기초하여 가상 현실(VR) 환경에서 가상 컨트롤러의 초기 가상 위치를 정의하는 단계; 및
    상기 물리적 컨트롤러의 방위 이동에 응답하여, 세그먼트 및 관절에 기초하여 VR 환경에서 가상 컨트롤러의 가상 위치 및 가상 방위를 정의하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 가상 컨트롤러는,
    물리적 컨트롤러의 요 움직임에 응답하여 측면 방향을 따라 이동하도록 구성되는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제8항에 있어서,
    상기 가상 컨트롤러는,
    물리적 컨트롤러의 피치 이동에 응답하여 수직 방향을 따라 이동하도록 구성되는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제8항에 있어서,
    상기 가상 컨트롤러는,
    물리적 컨트롤러의 롤 운동에 응답하여 물리적 컨트롤러가 종 방향으로 정렬되는 축을 중심으로 회전하도록 구성되는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제8항에 있어서,
    상기 세그먼트는 제1 세그먼트이고, 상기 관절은 제1 관절이며,
    상기 방법은 제1 세그먼트의 단부에서 제2 관절로부터 연장되는 제2 세그먼트를 정의하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 제8항에 있어서,
    사용자의 위치가 검출되는 경우 관절의 위치를 재정의하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 장치에 있어서,
    가상 현실(VR) 환경을 보는데 사용되는 헤드 장착 디스플레이(HMD);
    VR 환경 내의 오브젝트와 상호 작용하도록 구성된 물리적 컨트롤러; 및
    프로세서를 포함하고, 상기 프로세서는,
    사용자의 HMD의 위치를 결정하고;
    상기 HMD의 위치에 기초하여 관절의 위치를 정의하고;
    상기 관절로부터 세그먼트의 단부까지 세그먼트를 정의하고; 그리고
    상기 물리적 컨트롤러의 방위의 변화에 응답하여 가상 컨트롤러의 가상 위치 및 가상 방위의 변화를 정의하도록 프로그래밍되며, 상기 가상 컨트롤러는 세그먼트의 단부에 고정되는 것을 특징으로 하는 장치.
  15. 제14항에 있어서,
    상기 가상 컨트롤러는,
    물리적 컨트롤러의 요 움직임에 응답하여 측면 방향을 따라 이동하도록 구성되는 것을 특징으로 하는 장치.
  16. 제14항에 있어서,
    상기 가상 컨트롤러는,
    물리적 컨트롤러의 피치 이동에 응답하여 수직 방향을 따라 이동하도록 구성되는 것을 특징으로 하는 장치.
  17. 제14항에 있어서,
    상기 가상 컨트롤러는,
    물리적 컨트롤러의 롤 운동에 응답하여 물리적 컨트롤러가 종 방향으로 정렬되는 축을 중심으로 회전하도록 구성되는 것을 특징으로 하는 장치.
  18. 제14항에 있어서,
    상기 프로세서는,
    사용자의 위치가 검출되는 경우 관절의 위치를 재정의하도록 추가로 프로그래밍되는 것을 특징으로 하는 장치.













KR1020197032189A 2017-09-18 2018-09-17 가상 현실 시스템에서 가상 컨트롤러의 위치 및 방위 추적 KR102338836B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/708,040 2017-09-18
US15/708,040 US10386938B2 (en) 2017-09-18 2017-09-18 Tracking of location and orientation of a virtual controller in a virtual reality system
PCT/US2018/051361 WO2019055929A1 (en) 2017-09-18 2018-09-17 MONITORING THE LOCATION AND ORIENTATION OF A VIRTUAL CONTROL DEVICE IN A VIRTUAL REALITY SYSTEM

Publications (2)

Publication Number Publication Date
KR20190136047A true KR20190136047A (ko) 2019-12-09
KR102338836B1 KR102338836B1 (ko) 2021-12-13

Family

ID=63963384

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197032189A KR102338836B1 (ko) 2017-09-18 2018-09-17 가상 현실 시스템에서 가상 컨트롤러의 위치 및 방위 추적

Country Status (6)

Country Link
US (1) US10386938B2 (ko)
EP (1) EP3685248B1 (ko)
JP (2) JP7030854B2 (ko)
KR (1) KR102338836B1 (ko)
CN (1) CN110603510B (ko)
WO (1) WO2019055929A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3762809A4 (en) * 2018-03-07 2021-12-01 University of Massachusetts Medical School Office Of Technology Management SYSTEM TO FACILITATE VOICE-BASED COMMUNICATION FOR PEOPLE WHO CANNOT SPEAK OR WRITE
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US11126341B2 (en) * 2019-02-21 2021-09-21 Htc Corporation Object manipulating method, host device and computer readable storage medium
US11086392B1 (en) * 2019-04-09 2021-08-10 Facebook Technologies, Llc Devices, systems, and methods for virtual representation of user interface devices
US11373374B2 (en) * 2019-11-07 2022-06-28 Volvo Car Corporation Aligning the augmented reality or virtual reality world with the real world using natural position understanding
WO2022061114A1 (en) * 2020-09-17 2022-03-24 Bogie Inc. System and method for an interactive controller
CN113318435A (zh) * 2021-04-27 2021-08-31 青岛小鸟看看科技有限公司 手柄控制追踪器的控制方法、装置及头戴式显示设备
JP2023120843A (ja) * 2022-02-18 2023-08-30 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびデバイス位置推定方法
WO2024136903A1 (en) * 2022-12-23 2024-06-27 Innopeak Technology, Inc. Methods and systems for defining virtual boundaries

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236520A (ja) * 2000-02-21 2001-08-31 Nippon Telegr & Teleph Corp <Ntt> 仮想空間における動作入力方法および装置およびその動作入力プログラムを記録した記録媒体および仮想空間システム
JP2017045443A (ja) * 2015-08-28 2017-03-02 株式会社タカラトミー 頭部装着型ディスプレイを備えた情報処理装置

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104379A (en) * 1996-12-11 2000-08-15 Virtual Technologies, Inc. Forearm-supported exoskeleton hand-tracking device
US6042555A (en) * 1997-05-12 2000-03-28 Virtual Technologies, Inc. Force-feedback interface device for the hand
US7472047B2 (en) * 1997-05-12 2008-12-30 Immersion Corporation System and method for constraining a graphical hand from penetrating simulated graphical objects
US7324085B2 (en) 2002-01-25 2008-01-29 Autodesk, Inc. Techniques for pointing to locations within a volumetric display
US10936074B2 (en) 2003-11-20 2021-03-02 National Institute Of Advanced Industrial Science And Technology Haptic information presentation system and method
US20160098095A1 (en) * 2004-01-30 2016-04-07 Electronic Scripting Products, Inc. Deriving Input from Six Degrees of Freedom Interfaces
US20080009771A1 (en) * 2006-03-29 2008-01-10 Joel Perry Exoskeleton
US9082213B2 (en) * 2007-11-07 2015-07-14 Canon Kabushiki Kaisha Image processing apparatus for combining real object and virtual object and processing method therefor
JP5287421B2 (ja) * 2009-03-27 2013-09-11 株式会社Jvcケンウッド 入力装置及びこれを用いた電子機器
US20110267357A1 (en) * 2010-04-29 2011-11-03 Rennuit Antoine Felix Robert Animating a virtual object within a virtual world
US20110267356A1 (en) * 2010-04-29 2011-11-03 Rennuit Antoine F Lix Robert Animating a virtual object within a virtual world
US9177409B2 (en) * 2010-04-29 2015-11-03 Naturalmotion Ltd Animating a virtual object within a virtual world
US8483877B2 (en) * 2010-09-03 2013-07-09 GM Global Technology Operations LLC Workspace safe operation of a force- or impedance-controlled robot
US9552673B2 (en) 2012-10-17 2017-01-24 Microsoft Technology Licensing, Llc Grasping virtual objects in augmented reality
US9690376B2 (en) * 2012-11-01 2017-06-27 Eyecam, Inc. Wireless wrist computing and control device and method for 3D imaging, mapping, networking and interfacing
US20140152558A1 (en) * 2012-11-30 2014-06-05 Tom Salter Direct hologram manipulation using imu
US9202313B2 (en) * 2013-01-21 2015-12-01 Microsoft Technology Licensing, Llc Virtual interaction with image projection
WO2014204330A1 (en) 2013-06-17 2014-12-24 3Divi Company Methods and systems for determining 6dof location and orientation of head-mounted display and associated user movements
US9437159B2 (en) * 2014-01-25 2016-09-06 Sony Interactive Entertainment America Llc Environmental interrupt in a head-mounted display and utilization of non field of view real estate
US9649558B2 (en) * 2014-03-14 2017-05-16 Sony Interactive Entertainment Inc. Gaming device with rotatably placed cameras
US10416760B2 (en) * 2014-07-25 2019-09-17 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment
KR102299364B1 (ko) * 2014-08-25 2021-09-07 삼성전자주식회사 웨어러블 디바이스의 센서가 측정하는 임피던스 값을 보정하는 방법 및 장치
US9690367B2 (en) 2014-12-10 2017-06-27 Sixense Entertainment, Inc. System and method for assisting a user in locating physical objects while the user is in a virtual reality environment
JP6391465B2 (ja) 2014-12-26 2018-09-19 Kddi株式会社 ウェアラブル端末装置およびプログラム
US10725297B2 (en) * 2015-01-28 2020-07-28 CCP hf. Method and system for implementing a virtual representation of a physical environment using a virtual reality environment
US10180734B2 (en) * 2015-03-05 2019-01-15 Magic Leap, Inc. Systems and methods for augmented reality
US9898091B2 (en) * 2015-06-03 2018-02-20 Oculus Vr, Llc Virtual reality system with head-mounted display, camera and hand-held controllers
US20170003738A1 (en) * 2015-06-15 2017-01-05 Survios, Inc. Systems and methods for immersive physical interaction with a virtual environment
US10007108B2 (en) * 2015-08-07 2018-06-26 Sony Interactive Entertainment Inc. Systems and methods for using multiple MEMS projectors to determine a position of a photosensor of an HMD or another controller
US10010788B2 (en) * 2015-12-21 2018-07-03 Sony Interactive Entertainment Inc. Game controller with lights visible inside and outside the game controller
US10019131B2 (en) * 2016-05-10 2018-07-10 Google Llc Two-handed object manipulations in virtual reality
US10249090B2 (en) * 2016-06-09 2019-04-02 Microsoft Technology Licensing, Llc Robust optical disambiguation and tracking of two or more hand-held controllers with passive optical and inertial tracking
EP3487595A4 (en) * 2016-07-25 2019-12-25 CTRL-Labs Corporation SYSTEM AND METHOD FOR MEASURING MOVEMENTS OF ARTICULATED RIGID BODIES
US10596700B2 (en) * 2016-09-16 2020-03-24 Carbon Robotics, Inc. System and calibration, registration, and training methods
US10134192B2 (en) * 2016-10-17 2018-11-20 Microsoft Technology Licensing, Llc Generating and displaying a computer generated image on a future pose of a real world object
EP3552199A4 (en) * 2016-12-13 2020-06-24 Deepmotion, Inc. IMPROVED VIRTUAL REALITY SYSTEM USING MULTIPLE FORCE ASSEMBLIES FOR A SOLVER
US10444865B2 (en) * 2017-05-01 2019-10-15 Google Llc Tracking of position and orientation of objects in virtual reality systems
US11054894B2 (en) * 2017-05-05 2021-07-06 Microsoft Technology Licensing, Llc Integrated mixed-input system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236520A (ja) * 2000-02-21 2001-08-31 Nippon Telegr & Teleph Corp <Ntt> 仮想空間における動作入力方法および装置およびその動作入力プログラムを記録した記録媒体および仮想空間システム
JP2017045443A (ja) * 2015-08-28 2017-03-02 株式会社タカラトミー 頭部装着型ディスプレイを備えた情報処理装置

Also Published As

Publication number Publication date
CN110603510B (zh) 2023-10-27
KR102338836B1 (ko) 2021-12-13
EP3685248A1 (en) 2020-07-29
JP2020529646A (ja) 2020-10-08
EP3685248B1 (en) 2022-03-30
JP7030854B2 (ja) 2022-03-07
US10386938B2 (en) 2019-08-20
WO2019055929A1 (en) 2019-03-21
JP7382994B2 (ja) 2023-11-17
US20190087019A1 (en) 2019-03-21
CN110603510A (zh) 2019-12-20
JP2022008987A (ja) 2022-01-14

Similar Documents

Publication Publication Date Title
KR102338836B1 (ko) 가상 현실 시스템에서 가상 컨트롤러의 위치 및 방위 추적
US10642344B2 (en) Manipulating virtual objects with six degree-of-freedom controllers in an augmented and/or virtual reality environment
US10782793B2 (en) Context-sensitive hand interaction
KR102038638B1 (ko) 가상 현실에서 핸드 헬드 디바이스를 트랙킹하는 시스템
EP3314371B1 (en) System for tracking a handheld device in an augmented and/or virtual reality environment
CN108700941B (zh) 用于在虚拟现实环境中对准组件的方法和设备
US9367136B2 (en) Holographic object feedback
CN109074149B (zh) 用于增强或虚拟现实环境的头戴式参考系中的对象跟踪
JP2022540315A (ja) 人工現実環境において周辺デバイスを使用する仮想ユーザインターフェース
CN109074154B (zh) 增强和/或虚拟现实中的悬停触摸输入补偿
CN110709897B (zh) 用于插入到图像中的图像内容的阴影生成
CN108604123B (zh) 虚拟现实中的位置仪
CN111771180B (zh) 增强现实环境中对象的混合放置
EP3814876B1 (en) Placement and manipulation of objects in augmented reality environment
CN108073276A (zh) 增强和/或虚拟现实环境的拖拽虚拟元件
JP7316282B2 (ja) 拡張現実のためのシステムおよび方法
CN113496168A (zh) 手语数据采集方法、设备、存储介质
CN117234333A (zh) Vr物体选择方法、装置、电子设备及可读存储介质
Tecchia et al. Addressing the problem of Interaction in fully Immersive Virtual Environments: from raw sensor data to effective devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant