KR101965454B1 - 가상 엔지니어링을 위한 시스템 및 방법 - Google Patents

가상 엔지니어링을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101965454B1
KR101965454B1 KR1020130002537A KR20130002537A KR101965454B1 KR 101965454 B1 KR101965454 B1 KR 101965454B1 KR 1020130002537 A KR1020130002537 A KR 1020130002537A KR 20130002537 A KR20130002537 A KR 20130002537A KR 101965454 B1 KR101965454 B1 KR 101965454B1
Authority
KR
South Korea
Prior art keywords
virtual
position data
data
hand
head
Prior art date
Application number
KR1020130002537A
Other languages
English (en)
Other versions
KR20130112735A (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 KR20130112735A publication Critical patent/KR20130112735A/ko
Application granted granted Critical
Publication of KR101965454B1 publication Critical patent/KR101965454B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • 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
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0382Plural input, i.e. interface arrangements in which a plurality of input device of the same type are in communication with a PC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0384Wireless input, i.e. hardware and software details of wireless interface arrangements for pointing devices

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)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Abstract

가상 환경(102)의 가상 이미지(140)를 생성하기 위한 방법 및 시스템이 제공된다. 가상 현실 매니저(106)는 손 시스템(131)으로부터 사용자(104)의 적어도 하나의 손에 대한 손 위치 데이터(133)를 수신한다. 가상 현실 매니저(106)는 머리에-장착되는 시스템(108)으로부터 사용자(104)의 머리(112)에 대한 머리 위치 데이터(120)를 수신한다. 가상 현실 매니저(106)는 현재의 시간(314)에 대응하는 타겟 이미지를 이용하여 현재의 시간(314)에 대해 현재의 참조 프레임(330) 및 이미지-기반 위치 데이터(328)를 식별한다. 가상 현실 매니저(106)는 손 위치 데이터(133), 머리 위치 데이터(120), 이미지-기반 위치 데이터(328), 및 현재의 참조 프레임(330)을 이용하여 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성한다. 가상 이미지 제어 데이터(135)는 가상 이미지 애플리케이션(137)에 의한 사용을 위해 구성된다.

Description

가상 엔지니어링을 위한 시스템 및 방법{SYSTEM AND METHOD FOR VIRTUAL ENGINEERING}
본 발명은 일반적으로 가상 현실(virtual reality)에 관한 것인데, 특히, 가상 환경(virtual environment)과의 사용자 상호작용(user interaction)관한 것이다. 더욱 구체적으로는, 본 발명은 사용자가 가상 환경과 상호작용할 때 눈과 손의 협응(eye-hand coordination)의 레벨(level)을 증가시키기 위한 방법 및 시스템에 관한 것이다.
가상 현실(VR)은 실제의 환경 또는 상상의 환경을 가상 환경의 형태로 시뮬레이션하기 위해 이용될 수 있는 기술이다. 가상 환경은 실제의 환경 또는 상상의 환경에서 물리적 존재를 시뮬레이션할 수 있는, 컴퓨터로 시뮬레이션되는(computer-simulated) 환경이다. 전형적으로, 가상 환경은 2차원적인 환경 또는 3차원적인 환경으로서 사용자에게 시각적으로 제시된다. 일부 경우들에서, 가상 환경의 시각적 제시에 부가하여, 소리와 같은 감각(sensory) 정보가 사용자에게 제시될 수 있다.
가상 현실 시스템들의 상이한 타입들은 사용자를 위해 상이한 몰입 레벨들을 제공할 수 있다. 본 명세서에서 사용된 바와 같이, 가상 현실 시스템에 의해서 제공되는 "몰입(immersion)"의 레벨은 가상 현실 시스템에 의해서 생성된 가상 환경에서 사용자가 존재감을 느끼는 정도이다. 사용자가 지각적(perceptive) 몰입과 인지적(cognitive) 몰입 양쪽 모두를 경험할 때, 사용자는 가상 환경에 완전히 몰입될 수 있다.
사용자가 가상 환경에서 물리적으로 존재한다는 감각을 가질 때, 사용자는 지각적 몰입을 경험할 수 있다. 예를 들어, 사용자는 그의 또는 그녀의 손들이 가상 환경에서 존재한다고 느낄 수 있다. 사용자가 가상 환경에서 일어나고 있는 것이 실제로 일어나고 있다는 감각을 가질 때, 사용자는 인지적 몰입을 경험할 수 있다. 다시 말해, 사용자의 마음이 가상 환경에 몰입될 수 있다.
게다가, 사용자가 가상 환경에 인지적으로 몰입될 때, 사용자의 행위들은 가상 환경에 영향을 가질 수 있고, 가상 환경에서의 이벤트(event)들은 사용자의 감각들에 영향을 미칠 수 있다. 사용자가 가상 환경에 인지적으로 몰입될 때, 사용자는 가상 환경에 대한 영향들 및 사용자의 감각들에 대한 영향들이 실제 일어나는 것으로 받아들일 수 있다.
현재 이용가능한 몇몇 가상 현실 시스템들은 원하는 레벨의 몰입을 제공할 수 없다. 예를 들어, 현재 이용가능한 몇몇 가상 현실 시스템들은 원하는 레벨의 정확성을 가지고 가상 환경 내에서 인간의 움직임(human mobility)을 시뮬레이션할 수 없다. 특히, 이 가상 현실 시스템들은 가상 현실 시스템들의 사이즈 및/또는 무게를 원하는 것보다 증가시키지 않으면서 원하는 레벨의 정확성을 가지고 경첩 관절(hinged joint)들 둘레에서 사람의 골격 구성요소들의 회전을 시뮬레이션하는 것이 가능하지 않을 수 있다.
예를 들어, 자이로스코프(gyroscope)는 경첩 관절 둘레에서 사람의 골격 구성요소의 회전을 측정하는 것이 가능할 수 있다. 하지만, 이러한 회전 타입을 측정하기 위해서 필요한 자이로스코프에 대한 구성은 원하는 것보다 더 크고 및/또는 더 무거울 수 있다. 게다가, 자이로스코프에 대한 이러한 구성은 자이로스코프가 부착된 사람의 신체 부위에 원하지 않는 힘을 가할 수 있다. 예를 들어, 손에 부착된 자이로스코프는 손의 움직임을 측정할 때 손에 원하지 않는 힘을 가할 수 있다. 이러한 원하지 않는 힘은 원하지 않는 방식으로 손이 움직이는 것을 초래할 수 있다.
현재 이용가능한 몇몇 가상 현실 시스템들은, 예컨대 사용자의 손가락들의 움직임을 추적하기 위하여 이동변위 추정(displacement estimation) 기술을 이용할 수 있다. 하지만, 이러한 이동변위 추정 기술들은 원하는 정확성보다 낮은 정확성을 가지고 사용자의 손가락들의 움직임을 추적할 수 있다.
이러한 방식에 있어서, 현재 이용가능한 몇몇 가상 현실 시스템들은 원하는 레벨의 정확성을 가지고 사람의 신체 및/또는 사람의 신체의 일부들의 움직임을 시뮬레이션하는 것이 가능하지 않을 수 있다. 따라서, 이들 현재 이용가능한 가상 현실 시스템들은 가상 환경 내에서 사용자가 원하는 레벨의 몰입을 느끼는 것을 가능하게 하기 위해 필요한 레벨의 눈과 손의 협응을 사용자에게 제공하지 못할 수 있다.
가상 환경 내에서 원하는 레벨의 몰입을 제공하기 위해 필요한 레벨의 눈과 손의 협응이 없으면, 사용자는 원하는 만큼 신속하게 및/또는 효율적으로 가상 환경 내에서 특정 작업들을 수행하지 못할 수 있다. 그러므로, 상술한 문제점 및 다른 가능한 문제점들의 적어도 일부를 고려하는 시스템 및 방법을 가지는 것이 바람직할 것이다.
본 발명은 사용자가 가상 환경과 상호작용할 때 눈과 손의 협응의 레벨을 증가시키기 위한 방법 및 시스템을 제공하는 것을 목적으로 한다.
하나의 예시적인 실시 예에서, 가상 환경의 가상 이미지(virtual image)를 생성하기 위한 방법이 제공된다. 가상 현실 매니저는 손 시스템으로부터 사용자의 적어도 하나의 손에 대한 손 위치 데이터를 수신한다. 가상 현실 매니저는 머리에-장착되는 시스템으로부터 사용자의 머리에 대한 머리 위치 데이터를 수신한다. 가상 현실 매니저는 현재의 시간에 대응하는 타겟 이미지를 이용하여 현재의 시간에 대해 현재의 참조 프레임 및 이미지-기반 위치 데이터를 식별한다. 가상 현실 매니저는 손 위치 데이터, 머리 위치 데이터, 이미지-기반 위치 데이터, 및 현재의 참조 프레임을 이용하여 현재의 시간에 대해 가상 이미지 제어 데이터를 생성한다. 가상 이미지 제어 데이터는 가상 이미지 애플리케이션에 의한 사용을 위해서 구성된다.
다른 예시적인 실시 예에서, 가상 현실 시스템은 머리에-장착되는 시스템 및 가상 현실 매니저를 포함한다. 머리에-장착되는 시스템은 사용자의 머리에 대해 착용되도록 구성된다. 가상 현실 매니저는 머리에-장착되는 시스템과 연계된다. 가상 현실 매니저는 손 시스템으로부터 사용자의 적어도 하나의 손에 대한 손 위치 데이터를 수신하도록 구성된다. 가상 현실 매니저는 머리에-장착되는 시스템에서의 센서 시스템으로부터 사용자의 머리에 대한 머리 위치 데이터를 수신하도록 구성된다. 가상 현실 매니저는 현재의 시간에 대응하는 타겟 이미지를 이용하여 현재의 시간에 대해 현재의 참조 프레임 및 이미지-기반 위치 데이터를 식별하도록 구성된다. 가상 현실 매니저는 손 위치 데이터, 머리 위치 데이터, 이미지-기반 위치 데이터, 및 현재의 참조 프레임을 이용하여 현재의 시간에 대해 가상 이미지 제어 데이터를 생성하도록 구성된다. 가상 이미지 제어 데이터는 가상 이미지 애플리케이션에 의한 사용을 위해서 구성된다.
또 다른 예시적인 실시 예에서, 컴퓨터는 버스(bus), 버스에 연결된 비일시적(non-transitory) 저장 장치, 및 버스에 연결된 프로세서 유닛을 포함한다. 비일시적 저장 장치는 프로그램 코드를 포함한다. 프로세서 유닛은 프로그램 코드를 실행해서, 손 시스템으로부터 사용자의 적어도 하나의 손에 대한 손 위치 데이터를 수신하고, 머리에-장착되는 시스템으로부터 사용자의 머리에 대한 머리 위치 데이터를 수신하고, 현재의 시간에 대응하는 타겟 이미지를 이용하여 현재의 시간에 대해 현재의 참조 프레임 및 이미지-기반 위치 데이터를 식별하고, 그리고 손 위치 데이터, 머리 위치 데이터, 이미지-기반 위치 데이터, 및 현재의 참조 프레임을 이용하여 현재의 시간에 대해 가상 이미지 제어 데이터를 생성하도록 구성된다. 가상 이미지 제어 데이터는 가상 이미지 애플리케이션에 의한 사용을 위해 구성된다.
특징들 및 기능들은 본 공개의 다양한 실시 예들에서 독립적으로 달성될 수 있고, 또는 이하의 설명 및 도면들을 참조하여 추가적 세부사항들이 보일 수 있는 또 다른 실시 예들에서 조합될 수 있다.
도 1은 예시적인 실시 예에 따라서 블록도의 형태로 가상 현실 시스템을 도시한 것이고;
도 2는 예시적인 실시 예에 따라서 블록도의 형태로 손(hand) 시스템을 도시한 것이고;
도 3은 예시적인 실시 예에 따라서 블록도의 형태로 머리에-장착되는(head-mounted) 시스템을 도시한 것이고;
도 4는 예시적인 실시 예에 따라서 블록도의 형태로 데이터 코디네이터(data coordinator)를 도시한 것이고;
도 5는 예시적인 실시 예에 따라서 블록도의 형태로 가상 현실 시스템의 작동 모드(modes of operation)들을 도시한 것이고;
도 6은 예시적인 실시 예에 따라서 가상 현실 시스템을 사용하는 사용자를 도시한 것이고;
도 7은 예시적인 실시 예에 따라서 흐롬도의 형태로 가상 엔지니어링 환경과 상호작용하기 위한 프로세스를 도시한 것이고;
도 8은 예시적인 실시 예에 따라서 흐롬도의 형태로 가상 엔지니어링 환경과 상호작용하기 위한 프로세스를 도시한 것이고;
도 9는 예시적인 실시 예에 따라서 데이터 처리 시스템을 도시한 것이다.
예시적인 실시 예들의 특성이라고 믿어지는 신규한 특징들이 첨부된 청구항들에서 제시된다. 하지만, 예시적인 실시 예들뿐 아니라 바람직한 사용 모드, 추가적 목적들 및 이점들은 본 발명의 예시적인 실시 예의 이하의 상세한 설명을 참조하여 첨부 도면들과 결합하여 읽을 때 가장 잘 이해될 것이다.
상이한 예시적인 실시 예들은 상이한 고려사항들을 인식하고 고려한다. 예를 들어, 상이한 예시적인 실시 예들은 가상 환경이 상이한 타입의 엔지니어링 작업(engineering task)들을 수행하기에 유용할 수 있다는 것을 인식하고 고려한다.
이러한 엔지니어링 작업들은, 예컨대, 제한 없이(without limitation), 차량(vehicle)을 설계하는 것, 제품 설계를 위한 데이터를 관리하는 것, 항공기에서 사용하기 위한 구조를 테스트하는 것, 안테나 시스템을 위한 구성의 작동을 테스트하는 것, 시스템을 검사하는 것, 구조에 대한 유지보수를 수행하는 것, 차량의 작동들을 제어하는 것, 생산시설에서 생산장비를 제어하는 것, 우주 공간에서 구조물을 제어하는 것, 및 다른 적절한 타입의 엔지니어링 작업들을 포함할 수 있다. 다른 타입의 엔지니어링 작업들은, 예컨대, 제한 없이, 컴퓨터 프로그램과 상호작용하는 것, 접근하기 힘든 환경에 위치하는 전기기계 장치를 작동시키는 것, 극심한 기후 조건 및/또는 온도 조건 하에서 모바일 플랫폼(mobile platform)을 작동시키는 것, 및 또 다른 적절한 타입의 엔지니어링 작업들을 포함할 수 있다.
하나의 예시적인 예로서, 선택된 테스트 조건들을 갖는 테스트 환경을 시뮬레이션하는 가상 환경은 이러한 선택된 조건들 하에서 차량을 위한 구성요소에 대한 특정 구성의 작동을 테스트하기 위해 이용될 수 있다. 이 예시적인 예에서, 구성요소(component)에 대한 특정 구성의 모델이 가상 환경으로 유입된다.
가상 환경에서 모델을 이용하여 구성요소에 대한 특정 구성의 작동을 테스트하는 것은 실제 테스트 환경에서 실제 구성요소를 테스트하는 것보다 비용이 덜 들고, 덜 시간소모적(time-consuming)이고, 및/또는 더 효율적일 수 있다. 게다가, 구성요소의 이러한 타입의 가상 테스트(virtual testing)는 구성요소의 물리적 테스트에 비하여 더 적은 자원 및/또는 인력을 요할 수 있다.
하지만, 상이한 예시적인 실시 예들은, 가상 현실 시스템이 원하는 레벨의 눈과 손의 협응을 제공하지 않는다면, 사용자가 특정 타입의 엔지니어링 작업들을 수행하기 위하여 가상 현실 시스템에 의해 생성된 가상 환경을 이용하지 못할 수 있다는 것을 인식하고 고려한다. 본 명세서에서 사용된 바와 같이, "눈과 손의 협응(eye-hand coordination)"은 눈의 움직임 및 손의 움직임의 협조제어(coordinated control)이다. 눈과 손의 협응이라 함은 손들의 움직임을 가이드(guide)하기 위하여 시각적 입력을 이용하는 것과 눈들의 움직임을 가이드하기 위하여 손들의 고유 수용성 감각(proprioception)을 이용하는 것을 말한다.
특정 타입의 엔지니어링 작업들은 다른 타입의 엔지니어링 작업들보다 더 높은 레벨의 눈과 손의 협응을 요할 수 있다. 하나의 예시적인 예로서, 상이한 타입의 컨트롤(control)들, 스위치(switch)들, 버튼(button)들, 및 사용자 인터페이스를 포함하는 가상 항공기를 작동시키는 것은 가상 환경에서 문을 밀어 여는 것보다 더 높은 레벨의 눈과 손의 협응을 요할 수 있다.
상이한 예시적인 실시 예들은, 원하는 레벨의 눈과 손의 협응을 제공하는 것이 원하는 레벨의 정확성을 가지는 가상 환경에 대한 참조 프레임(a frame of reference)에 대해 사용자의 손들 및 사용자의 머리의 위치들을 식별하는 것을 요할 수 있음을 인식하고 고려한다. 부가적으로, 상이한 예시적인 실시 예들은, 원하는 레벨의 눈과 손의 협응을 제공하는 것이 실질적으로 실시간으로 원하는 레벨의 정확성을 가지고 가상 환경 내에서 사용자의 손들 및 손가락들의 움직임을 시뮬레이션하는 것을 요할 수 있음을 인식하고 고려한다. 본 명세서에서 사용된 바와 같이, "실질적으로 실시간으로(in substantially real-time)"이라는 문구는 사용자에게 인지될만한 시간적 지연이 없다는 것을 의미한다.
그래서, 상이한 예시적인 실시 예들은 사용자가 가상 환경과 상호작용할 때 사용자를 위해 눈과 손의 협응의 레벨을 증가시키기 위한 방법 및 시스템을 제공한다. 특히, 상이한 예시적인 실시 예들은 사용자에 대한 손 위치 데이터 및 머리 위치 데이터를 조직화하도록(coordinate) 구성된 가상 현실 시스템을 제공하고, 가상 환경 내에서 사용자에게 원하는 레벨의 눈과 손의 협응을 제공하기 위해 시간에 대하여 이 데이터를 동기화한다.
이제 도 1을 참조하면, 가상 현실 시스템의 도면이 예시적인 실시 예에 따라서 블록도의 형태로 도시된다. 이 예시적인 예들에서, 가상 현실 시스템(100)은 사용자(104)에게 가상 환경(102)을 시각적으로 제시하도록 구성된다. 게다가, 사용자(104)는 가상 현실 시스템(100)을 이용해서 가상 환경(102)과 상호작용할 수 있다.
이 예시적인 예들에서, 가상 환경(102)은 환경(101)의 시뮬레이션(simulation)이다. 환경(101)은 실제의 환경 또는 상상의 환경일 수 있다. 예를 들어, 환경(101)은 물리적 환경 또는 추상적 환경일 수 있다.
하나의 예시적인 예에서, 환경(101)은 엔지니어링 환경(engineering environment)(103)의 형태를 취한다. 엔지니어링 환경(103)은, 예컨대, 제한 없이, 설계(design) 환경, 생산(manufacturing) 환경, 컴퓨터(computer) 환경, 테스트(testing) 환경, 데이터 관리(data management) 환경, 검사(inspection) 환경, 작동(operations) 환경, 또는 몇몇 다른 적절한 타입의 엔지니어링 환경 중의 하나로부터 선택될 수 있다.
가상 환경(102)이 엔지니어링 환경(103)의 시뮬레이션일 때, 사용자(104)는 하나 이상의 엔지니어링 작업을 수행하기 위하여 가상 환경(102)과 상호작용하기 위해 가상 현실 시스템(100)을 이용할 수 있다. 예를 들어, 사용자(104)는 가상 환경(102) 내에서 항공기 또는 항공기의 일부와 같은 객체를 설계하기 위하여 가상 현실 시스템(100)을 이용할 수 있다.
다른 예시적인 예에서, 사용자(104)는 항공 교통 관제(air traffic control)와 관련된 작업들을 수행하기 위하여 가상 현실 시스템(100)을 이용할 수 있다. 예를 들어, 가상 환경(102)은 영공(airspace)의 영역의 시뮬레이션일 수 있다. 사용자(104)는 가상 환경(102)에서 항공기의 모델을 이용하여 영공의 영역에서 항공기의 작동을 제어하고 및/또는 항공기와 정보를 교환하기 위하여 가상 현실 시스템(100)을 이용할 수 있다.
게다가, 또 다른 예시적인 예에 있어서, 가상 환경(102)은 컴퓨터 프로그램에 대한 사용자 인터페이스의 시뮬레이션일 수 있다. 사용자(104)는 컴퓨터 프로그램과 상호작용하기 위하여 가상의 사용자 인터페이스와 상호작용하기 위해 가상 현실 시스템(100)을 이용할 수 있다. 예를 들어, 컴퓨터 프로그램은 데이터베이스 관리 프로그램일 수 있다. 사용자(104)는 이러한 데이터 관리 애플리케이션에 대한 가상의 사용자 인터페이스와 상호작용하기 위해 가상 현실 시스템(100)을 이용할 수 있다.
도시된 바와 같이, 가상 현실 시스템(100)은 가상 현실 매니저(virtual reality manager)(106), 머리에-장착되는(head-mounted) 시스템(108), 및 다수의 주변(peripheral) 시스템들(110)을 포함한다. 이러한 예시적인 예들에서, 가상 현실 매니저(106)는 하드웨어, 소프트웨어, 또는 이 둘의 조합을 이용해서 구현될 수 있다. 예를 들어, 가상 현실 매니저(106)는 데이터 처리 시스템(105)에서 구현될 수 있다.
이러한 예시적인 예들에서, 데이터 처리 시스템(105)은 머리에-장착되는 시스템(108)과 연계된다. 하나의 구성요소가 다른 구성요소와 "연계된(associated)" 경우에, 이러한 연계는 이 예들에서 물리적 연계이다.
예를 들어, 데이터 처리 시스템(105)과 같은 제1 구성요소는, 제2 구성요소에 고정됨으로써(secured), 제2 구성요소에 접착됨으로써(bonded), 제2 구성요소에 설치됨으로써(mounted), 제2 구성요소에 용접됨으로써(welded), 제2 구성요소에 체결됨으로써(fastened), 제2 구성요소에 전기적으로 연결됨으로써(electrically connected), 및/또는 몇몇 다른 적절한 방식으로 제2 구성요소에 연결됨으로써, 머리에-장착되는 시스템(108)과 같은 제2 구성요소와 연계되는 것이 고려될 수 있다. 제1 구성요소는 또한 제3 구성요소를 이용해서 제2 구성요소에 연결될 수 있다. 제1 구성요소는 또한 제2 구성요소의 일부로서 및/또는 확장으로서 형성됨으로써 제2 구성요소와 연계되는 것이 고려될 수 있다.
이러한 예시적인 예들에서, 데이터 처리 시스템(105)은 머리에-장착되는 시스템(108)의 일부로 여겨진다. 물론, 다른 예시적인 예들에서, 가상 현실 매니저(106)는, 머리에-장착되는 시스템(108)과는 별개인 프로세서 유닛(processor unit)에서 구현될 수 있고, 머리에-장착되는 시스템(108)과 무선으로 통신하도록 구성될 수 있다.
머리에-장착되는 시스템(108)은 사용자(104)의 머리(112)에 대해 착용되도록 구성된다. 예를 들어, 머리에-장착되는 시스템(108)은 사용자(104)의 머리(112) 위로(over) 및/또는 머리(112) 위에(on) 착용될 수 있다. 머리에-장착되는 시스템(108)은 다수의 상이한 형태들을 취할 수 있다. 예를 들어, 머리에-장착되는 시스템(108)은 헬멧(helmet), 바이저(visor), 모자(hat), 안경(glasses), 고글(goggles), 또는 사용자(104)의 머리(112) 위로 및/또는 머리(112) 위에 착용되도록 구성된 몇몇 다른 적절한 타입의 장치의 형태를 취할 수 있다. 하나의 예시적인 예에서, 머리에-장착되는 시스템(108)은 안경(114)의 형태를 취한다.
임의의 수의 상이한 구성요소들이 머리에-장착되는 시스템(108)과 연계될 수 있다. 예를 들어, 디스플레이 장치(116) 및 센서 시스템(118)은 머리에-장착되는 시스템(108)과 연계될 수 있다. 머리에-장착되는 시스템(108)이 안경(114)의 형태를 취할 때, 디스플레이 장치(116) 및 센서 시스템(118)은 안경(114)의 일부에 부착될(attached) 수 있고, 및/또는 이와 달리 안경(114)과 연계될 수 있다.
가상 현실 매니저(106)는 디스플레이 장치(116) 상에서 사용자(104)에게 가상 환경(102)을 시각적으로 제시하도록 구성된다. 하나의 예시적인 예에서, 디스플레이 장치(116)는 안경(114)에서의 렌즈(lens)들일 수 있다. 가상 현실 매니저(106)는, 사용자(104)가 안경(114)을 착용하고 있을 때 가상 환경(102)이 사용자(104)의 눈 앞에서 시각적으로 제시되도록 이 렌즈들 상에서 가상 환경(102)을 시각적으로 제시할 수 있다. 이러한 방식으로, 사용자(104)는 가상 환경(102)에서 존재감을 느낄 수 있다(feel present).
물론, 다른 예시적인 예들에서, 디스플레이 장치(116)는 몇몇 다른 형태를 취할 수 있다. 예를 들어, 디스플레이 장치(116)는 사용자(104)에 의해서 착용되도록 구성된 한 개 또는 두 개의 콘택트 렌즈(contact lens)들을 포함할 수 있다.
센서 시스템(118)은 하나 이상의 센서들을 포함할 수 있다. 센서 시스템(118)에서 센서들은, 예컨대, 제한 없이, 임의의 수의 MEMS(microelectromechanical sensors), NEMS(nanoelectromechanical sensors), 동작(motion) 센서들, 각도(angle) 센서들, 속도(velocity) 센서들, 가속도(acceleration) 센서들, 위치(position) 센서들, 카메라들, 비디오 카메라들, 이미지 센서들, 및/또는 다른 적절한 타입의 센서들을 포함할 수 있다. 머리에-장착되는 시스템(108)은 센서 시스템(118)을 이용해서 머리 위치 데이터(120)를 생성하도록 구성된다.
이러한 예시적인 예들에서, 가상 현실 시스템(100) 내의 다수의 주변 시스템들(110)에서의 각각의 주변 시스템은 데이터를 생성해서 가상 현실 매니저(106)로 보내도록 구성될 수 있다. 본 명세서에서 사용된 바와 같이, 다수의 주변 시스템들(110) 중의 하나와 같은, "주변 시스템(peripheral system)"은 머리에-장착되는 시스템(108)과 통신하도록 구성되되, 머리에-장착되는 시스템(108)의 일부로 여겨지지는 않는 시스템이다. 게다가, 본 명세서에서 사용된 바와 같이, "다수의" 아이템(item)들이라는 용어는 하나 이상의 아이템을 의미한다. 예를 들어, 다수의 주변 시스템(110)들은 하나 이상의 주변 시스템들일 수 있다.
이러한 예시적인 예들에서, 다수의 주변 시스템들(110)에서의 각각의 주변 시스템은 사용자(104)의 특정 신체 부위에 대한 데이터를 생성하도록 구성될 수 있다. 예를 들어, 다수의 주변 시스템들(110)에서의 주변 시스템은 사용자(104)의 손, 발, 팔, 다리, 몸통, 손가락, 발가락, 또는 다른 신체 부위에 대한 데이터를 생성하도록 구성될 수 있다.
하나의 예시적인 예에서, 다수의 주변 시스템들(110)은 손 시스템(hand system)(131)을 포함한다. 손 시스템(131)은 손 위치 데이터(133)를 생성하도록 구성된다. 손 위치 데이터(133)는 다수의 주변 시스템들(110)에 의해서 생성된 주변 위치 데이터(132)의 적어도 일부를 형성할 수 있다. 본 명세서에서 사용된 바와 같이, "적어도 일부(at least a portion)"라는 용어는 일부 또는 전부를 의미한다. 주변 위치 데이터(132)는 시간의 경과에 따른(over time) 사용자(104)에 대한 임의의 수의 신체 부위의 위치에 대한 데이터를 포함할 수 있다.
손 위치 데이터(133)는 사용자의 왼손(124)과 오른손(126) 중의 적어도 하나에 대한 데이터를 포함할 수 있다. 예를 들어, 손 시스템(131)은 왼손 시스템(121) 및 오른손 시스템(122) 중의 적어도 하나를 포함할 수 있다. 왼손 시스템(121)은 사용자(104)의 왼손(124)에 대한 데이터를 생성할 수 있는 반면, 오른손 시스템(122)은 사용자(104)의 오른손(126)에 대한 데이터를 생성할 수 있다.
이러한 예시적인 예들에서, 왼손 시스템(121)은 사용자(104)의 왼손(124)을 가지고 사용하도록 구성된 왼쪽 장갑(128)의 형태를 취할 수 있는 반면, 오른손 시스템(122)은 사용자(104)의 오른손(126)을 가지고 사용하도록 구성된 오른쪽 장갑(130)의 형태를 취할 수 있다. 왼쪽 장갑(128) 및 오른쪽 장갑(130)은 시간의 경과에 따른 왼손(124) 및 오른손(126)의 위치에 대한 데이터를 각각 생성하도록 구성된 장갑들일 수 있다.
특히, 사용자(104)가 왼쪽 장갑(128) 및 오른쪽 장갑(130)을 각각 착용하고 있을 때, 왼쪽 장갑(128)은 왼손(124)에 대한 왼손 위치 데이터(134)를 생성하는 반면, 오른쪽 장갑(130)은 오른손(126)에 대한 오른손 위치 데이터(136)를 생성한다. 왼손 위치 데이터(134) 및 오른손 위치 데이터(136)는 시간의 경과에 따른 왼손(124) 및 오른손(126)의 위치에 대한 데이터를 각각 포함할 수 있을 뿐 아니라, 시간의 경과에 따른 이들 손들에 대응하는 손목들 및 손가락들의 위치들에 대한 데이터를 포함할 수 있다.
가상 현실 매니저(106)는 머리에-장착되는 시스템(108)에서의 센서 시스템(118)으로부터 머리 위치 데이터(120)를 수신하고, 다수의 주변 시스템들(110)로부터 주변 위치 데이터(132)를 수신하도록 구성된다. 특히, 가상 현실 매니저(106)는 실질적으로 실시간으로 손 위치 데이터(133) 및 머리 위치 데이터(120)를 수신한다. 다시 말해, 위치 데이터가 인지될만한 지연(perceivable delay) 없이 생성되고 있을 때, 가상 현실 매니저(106)가 위치 데이터를 수신한다.
이러한 예시적인 예들에서, 가상 현실 매니저(106)는 가상 이미지 제어 데이터(135)를 생성하기 위해서 손 위치 데이터(133) 및 머리 위치 데이터(120)를 이용할 수 있다. 가상 이미지 제어 데이터(135)는 가상 환경(102)의 가상 이미지를 제어하기 위하여 가상 이미지 애플리케이션(137)에 의해 사용하도록 구성된 데이터일 수 있다.
예를 들어, 가상 이미지 애플리케이션(137)은 가상 환경(102)의 가상 이미지들을 생성하도록 구성된 컴퓨터 소프트웨어이다. 본 명세서에서 사용된 바와 같이, 가상 환경(102)과 같은 가상 환경의 "가상 이미지(virtual image)"는 가상 환경의 적어도 일부의 이미지이다. 몇몇 경우들에 있어서, 가상 이미지 애플리케이션(137)은 가상 환경(102)을 생성하도록 구성될 수 있다. 다른 경우들에 있어서, 가상 이미지 애플리케이션(137)은 다른 애플리케이션에 의해서 생성된 가상 환경(102)을 이용하도록 구성될 수 있다.
가상 현실 매니저(106)는, 예컨대, 제한 없이, 클라우드(cloud)(139)를 이용하여 가상 이미지 애플리케이션(137)과 통신하도록 구성될 수 있다. 클라우드(139)는 애플리케이션들, 컴퓨터 프로그램들, 장치들, 서버들, 클라이언트 컴퓨터들, 및/또는 서로 연결된 다른 컴퓨팅 구성요소들로 이루어진 네트워크일 수 있다. 가상 현실 매니저(106)는 클라우드(139)에 액세스하도록 구성될 수 있고, 이로써 예컨대, 제한 없이, 인터넷을 이용하여 가상 이미지 애플리케이션(137)에 액세스하도록 구성될 수 있다.
이러한 예시적인 예들에서, 가상 이미지 애플리케이션(137)은 가상 환경(102)의 가상 이미지들(138)의 시퀀스(sequence)를 생성하도록 구성된다. 본 명세서에서 사용된 바와 같이, 가상 이미지들(138)의 시퀀스와 같은 "이미지들의 시퀀스(sequence of images)"는 시간에 대해 정렬된 하나 이상의 이미지들이다. 이러한 방식으로, 가상 이미지들(138)의 시퀀스에서의 각각의 가상 이미지가 특정 시간에 대응한다. 일부 예시적인 예들에서, 가상 이미지들(138)의 시퀀스는 가상 프레임(virtual frame)들의 시퀀스라고 지칭될 수도 있다.
가상 이미지 애플리케이션(137)은 가상 현실 매니저(106)에 의해서 생성된 가상 이미지 제어 데이터(135)를 이용해서 가상 이미지들(138)의 시퀀스로 각각의 가상 이미지를 생성한다. 예를 들어, 가상 이미지 애플리케이션(137)은 가상 환경(102)의 이전에 생성된 가상 이미지를 갱신하기 위하여 가상 이미지 제어 데이터(135)를 이용할 수 있다. 이렇게 갱신된 가상 이미지는 가상 현실 매니저(106)로 되돌려보내질 수 있다. 이후, 가상 현실 매니저(106)는 디스플레이 장치(116)에서 이러한 갱신된 가상 이미지를 디스플레이할 수 있다.
이러한 방식으로, 가상 이미지들이 가상 이미지 애플리케이션(137)으로부터 수신될 때, 가상 현실 매니저(106)는 디스플레이 장치(116) 상에 가상 이미지 애플리케이션(137)에 의해서 생성된 가상 이미지들(138)의 시퀀스로 가상 이미지들을 디스플레이할 수 있다. 가상 현실 매니저(106)는 사용자(104)에게 가상 환경(102)을 디스플레이 장치(116)에서 시각적으로 제시하기 위하여 가상 이미지들(138)의 시퀀스를 디스플레이 장치(116)에서 디스플레이한다.
가상 이미지(140)는 가상 이미지들(138)의 시퀀스 내의 가상 이미지의 예이다. 가상 이미지(140)는 구현에 따라서 2차원 이미지 또는 3차원 이미지일 수 있다. 가상 이미지(140)는 시간(141)에 대응한다. 가상 이미지(140)는 시간(141) 내에 생성된 머리 위치 데이터(120)의 일부 및 손 위치 데이터(133)의 일부를 이용해서 생성된다. 예를 들어, 시간(141)은 예컨대 시간의 일순간 또는 시간의 기간일 수 있다.
특히, 시간(141) 내에 생성된 머리 위치 데이터(120)의 일부 및 손 위치 데이터(133)의 일부는 시간(141)에 대응하는 가상 이미지 제어 데이터(135)를 형성하기 위해서 이용된다. 시간(141)에 대응하는 가상 이미지 제어 데이터(135)는 가상 이미지(140)를 형성하기 위하여 가상 이미지 애플리케이션(137)에 의해 이용될 수 있다.
게다가, 가상 현실 매니저(106)는 가상 이미지(140)를 위한 참조 프레임(146)을 식별하기 위해서 머리 위치 데이터(120) 및/또는 센서 시스템(118)에 의해 생성된 다른 데이터를 이용할 수 있다. 참조 프레임(146)은 가상 환경(102)에 관한 가상 이미지(140)를 위한 좌표계이다. 특히, 참조 프레임(146)은 가상 이미지(140) 내에서 포착된(captured) 가상 환경(102)의 일부이다. 참조 프레임(146)은 사용자(104)의 머리(112)의 위치를 기초로 하여 식별된다. 다시 말해, 참조 프레임(146)은 사용자(104)의 머리(112)가 향하는 방향을 기초로 하여 식별된다.
이러한 예시적인 예들에서, 가상 현실 매니저(106)는 손 위치 데이터(133) 및 머리 위치 데이터(120)를 조직화함으로써(coordinating) 참조 프레임(146)을 이용해서 가상 이미지 제어 데이터(135)를 생성하도록 구성된다. 가상 현실 매니저(106)는 손 위치 데이터(133) 및 머리 위치 데이터(120)를 시간에 대해 동기화함으로써(synchronizing) 손 위치 데이터(133) 및 머리 위치 데이터(120)를 조직화할 수 있다. 이러한 타입의 동기화는 사용자(104)에게 제공되는 눈과 손의 협응을 증가시킬 수 있다.
예를 들어, 손 위치 데이터(133) 및 머리 위치 데이터(120)의 시간에 대한 동기화는 원하는 레벨의 정확성을 가지는 가상 이미지 제어 데이터(135)를 낳을 수 있다. 가상 이미지 제어 데이터(135)가 원하는 레벨의 정확성을 가질 때, 가상 이미지 애플리케이션(137)에 의해 생성된 가상 환경(102)의 가상 이미지들(138)의 시퀀스는 가상 환경(102) 내에서 사용자(104)의 존재 및 움직임의 실질적 실시간 시뮬레이션을 나타낼 수 있다.
게다가, 가상 현실 매니저(106)는 실질적으로 실시간으로 가상 이미지들(138)의 시퀀스를 디스플레이하도록 구성될 수 있다. 가상 환경(102) 내의 사용자(104)의 움직임과 사용자(104)의 존재가 실질적으로 실시간으로 가상 환경(102)에서 시뮬레이션되는 것을 가능하게 함으로써, 가상 현실 매니저(106)는 사용자(104)가 원하는 레벨의 정확성, 속도, 및 효율을 가지고 가상 환경(102) 내에서 하나 이상의 작업들을 수행하는 것을 가능하게 할 수 있다.
이러한 예시적인 예들에서, 가상 이미지(140)는 가상 왼손(142) 및 가상 오른손(144) 중의 적어도 하나를 포함한다. 가상 왼손(142)은 가상 이미지(140)에서 사용자(104)의 왼손(124)을 나타내는 이미지일 수 있다. 가상 오른손(144)은 가상 이미지(140)에서 사용자(104)의 오른손(126)을 나타내는 이미지일 수 있다. 가상 이미지 애플리케이션(137)은 가상 이미지 제어 데이터(135)를 이용해서 가상 이미지(140) 내에서 가상 왼손(142) 및 가상 오른손(144)을 위한 위치들을 결정할 수 있다.
부가적으로, 이러한 예시적인 예들에서, 가상 이미지 제어 데이터(135)는 또한 사용자 데이터(145)를 이용해서 생성될 수 있다. 사용자 데이터(145)는 사용자(104)에 대한 데이터를 포함할 수 있다. 특히, 사용자 데이터(145)는 사용자(104)의 하나 이상의 신체 부위의 기하구조(geometry)에 대한 데이터를 포함할 수 있다.
예를 들어, 사용자 데이터(145)는 사용자(104)의 왼손(124), 오른손(126), 및 머리(112) 중의 적어도 하나에 대한 데이터를 포함할 수 있다. 왼손(124) 또는 오른손(126)과 같은 사용자(104)의 손에 대한 데이터는, 예컨대, 제한 없이, 손의 치수의 측정치들, 손에 대응하는 손목의 측정치들, 손에서 손가락들의 측정치들, 손에서 손가락들 중의 하나 이상에 대한 운동 범위의 측정치들, 가만히 있는 및/또는 움직이고 있는 손에서 손가락들 사이의 거리의 측정치들, 및/또는 다른 적절한 타입의 데이터를 포함할 수 있다.
사용자 데이터(145)는 이미징 시스템(imaging system)(152)에 의해서 생성되는 사용자 이미지들의 세트(150)를 이용해서 식별될 수 있다. 본 명세서에서 사용된 바와 같이, 아이템들의 "세트(set of)"는 하나 이상의 아이템들을 의미한다. 예를 들어, 사용자 이미지들의 세트(150)는 하나 이상의 사용자 이미지들을 의미한다.
이미징 시스템(152)은 이 예시적인 예들에서 가상 현실 시스템(100)의 일부가 아니다. 하나의 예시적인 예에서, 이미징 시스템(152)은 3차원적인 레이저 스캐닝(laser scanning) 시스템일 수 있다. 이 예시적인 예에서, 사용자 이미지들의 세트(150)는 사용자(104)의 왼손(124) 및 오른손(126)의 기하구조를 포착하는 사용자(104)의 3차원적인 레이저 스캔(laser scan)들의 세트이다. 게다가, 이러한 3차원적인 레이저 스캔들의 세트는 사용자(104)들의 손목들 및 손가락들의 기하구조를 포착할 수 있다.
하나의 예시적인 예에서, 가상 현실 매니저(106)는 사용자 이미지들의 세트(150)를 수신하고 사용자 이미지들의 세트(150)를 이용해서 사용자 데이터(145)를 식별하도록 구성될 수 있다. 다른 예시적인 예에서, 사용자 데이터(145)는 가상 현실 매니저(106)로 직접 업로드될(uploaded) 수 있다. 또 다른 예시적인 예에서, 사용자 데이터(145)는 사용자 이미지들의 세트(150)일 수 있다.
가상 이미지(140)가 디스플레이 장치(116)상에서 사용자(104)에게 디스플레이될 때, 사용자(104)는 가상 왼손(142) 및 가상 오른손(144)을 본다. 특히, 사용자(104)는 왼손(124) 및 오른손(126)의 실제 위치들에 대응하는 위치들에서 가상 이미지(140) 내의 가상 왼손(142) 및 가상 오른손(144)을 각각 본다. 이러한 방식으로, 사용자(104)는 가상 환경(102)에서 존재감을 느낄 수 있다.
몇몇 예시적인 예들에서, 머리에-장착되는 시스템(108)에서의 다수의 주변 시스템들(110) 및/또는 센서 시스템(118)은 위치 데이터뿐 아니라 추가적 데이터(154)를 생성할 수 있다. 추가적 데이터(154)는 가상 이미지 제어 데이터(135)를 생성하기 위해 이용될 수 있다. 예를 들어, 추가적 데이터(154)는 가상 환경(102)에서 하나 이상의 인터랙티브 컨트롤(interactive control)들을 제어하기 위하여 가상 이미지 애플리케이션(137)에 의해 이용될 수 있는 데이터를 생성하는데 사용될 수 있다.
하나의 예시적인 예에서, 추가적 데이터(154)는 왼손(124) 및 오른손(126)에서의 손가락들에 대한 압력 데이터를 포함할 수 있다. 다른 예시적인 예들에서, 추가적 데이터(154)는 이미지 데이터를 포함할 수 있다. 물론, 또 다른 예시적인 예들에서, 추가적 데이터(154)는 다른 타입의 센서 데이터(sensor data)를 포함할 수 있다.
몇몇 예시적인 예들에서, 가상 현실 매니저(106)는 또한 클라우드(139)를 이용해서 가상 현실 시스템들(156)의 그룹과 통신하도록 구성될 수 있다. 가상 현실 시스템들(156)의 그룹에서 각각의 가상 현실 시스템은 가상 현실 매니저(106)와 유사한 방식으로 구현될 수 있는 가상 현실 매니저를 포함할 수 있다. 클라우드(139)는 상이한 가상 현실 매니저들이 동시에 가상 이미지 애플리케이션(137)과 상호작용하는 것을 가능하게 할 수 있다. 몇몇 경우들에서, 클라우드(139)는 상이한 사용자들이 가상 환경(102) 내에서 서로 상호작용하는 것을 가능하게 할 수 있다.
이제 도 2를 참조하면, 왼손 시스템의 도면이 예시적인 실시 예에 따라서 블록도의 형태로 도시된다. 도 2에서, 도 1에서의 왼손 시스템(121)에 대한 하나의 구현의 예가 도시된다. 왼손 시스템(121)에 대해 도시된 구성은 또한 도 1에서의 오른손 시스템(122)을 구현하는데 이용될 수 있다.
도시된 바와 같이, 왼손 시스템(121)은 왼쪽 장갑(128)의 형태를 취한다. 왼쪽 장갑(128)은 도 1에서 사용자(104)의 왼손(124)에 실질적으로 맞도록(conform) 구성된다. 하나의 예시적인 예로서, 왼쪽 장갑(128)은 예컨대 도 1에서의 사용자 이미지들의 세트(150)와 같은 사용자 이미지들의 세트 및/또는 도 1에서의 사용자 데이터(145)와 같은 사용자 데이터를 기초로 하여 제작될 수 있다. 사용자 이미지들의 세트(150)는 사용자(104)의 왼손(124)에 실질적으로 일치하는 장갑을 제작하기 위하여 이용될 수 있다. 예를 들어, 왼쪽 장갑(128)은 사용자(104)의 왼손(124)에 실질적으로 맞도록 구성된 물질(material)을 이용하여 제작될 수 있다. 게다가, 왼손(124)의 기하구조에 실질적으로 매치(match)하는 치수를 갖는 왼쪽 장갑(128)이 제작될 수 있다.
이 예시적인 예에서, 왼쪽 장갑(128)은 센서 시스템(202), 데이터 매니저(204), 및 통신 유닛(206)을 포함한다. 센서 시스템(202)은 마이크로전자기계 센서들(microelectromechanical sensors), 나노전자기계 센서들(nanoelectromechanical sensors), 동작 센서들, 각도 센서들, 위치 센서들, 속도 센서들, 가속도 센서들, 카메라들, 비디오 카메라들, 이미지 센서들, 압력 센서들, 촉각(tactile) 센서들 및/또는 다른 적절한 타입의 센서들을 포함하는 그룹으로부터 선택된 다수의 센서들을 포함한다.
센서 시스템(202)은 몇몇 예시적인 예들에서 왼쪽 장갑(128)을 제작하기 위해 이용된 물질로 통합될 수 있다. 예를 들어, 센서 시스템(202)에서 하나 이상의 센서들은 이 센서들이 사용자(104)에게 보이지 않을 수 있도록 하는 방식으로 왼쪽 장갑(128)을 제작하기 위해 이용된 물질로 통합될 수 있다. 왼쪽 장갑(128)에 대한 센서 시스템(202)에서 각각의 위치는, 예컨대, 제한 없이, 도 1에서의 사용자 이미지들의 세트(150) 및/또는 사용자 데이터(145)를 이용해서 결정될 수 있다.
도시된 바와 같이, 센서 시스템(202)은 사용자(104)의 왼손(124)을 위한 원본 손 위치 데이터(raw hand position data)(210)를 생성하도록 구성된다. 원본 손 위치 데이터(210)는, 예컨대, 제한 없이, DSSV(dynamic system state variables)의 세트를 포함할 수 있다.
몇몇 예시적인 예들에서, 센서 시스템(202)은 사용자 이미지들의 세트(150) 및/또는 사용자 데이터(145)를 이용해서 교정될(calibrated) 수 있다. 하나의 예시적인 예로서, 이 이미지들은 센서 시스템(202)에 의해 생성된 원본 손 위치 데이터(210)상에 제약사항들(constraints)을 부과하는데 이용될 수 있다.
데이터 매니저(204)는 하드웨어, 소프트웨어, 또는 둘의 조합을 포함할 수 있다. 예를 들어, 데이터 매니저(204)는 데이터 처리 시스템(205) 내에서 구현될 수 있다. 몇몇 예시적인 예들에서, 데이터 처리 시스템(205)은 센서 시스템(202) 내에서 구현될 수 있다. 다른 예시적인 예들에서, 데이터 처리 시스템(205)은 센서 시스템(202)과는 별도인 왼쪽 장갑(128) 내에서 구현될 수 있다.
또 다른 예시적인 예들에서, 데이터 처리 시스템(205)은 몇몇 다른 적절한 방식으로 왼쪽 장갑(128)과 연계될 수 있다. 예를 들어, 제한 없이, 데이터 처리 시스템(205)은 왼쪽 장갑(128)과 연계된 손목시계-타입의(wristwatch-type) 장치일 수 있다.
데이터 매니저(204)는 왼손 위치 데이터(134)를 형성하기 위하여 원본 손 위치 데이터(210)를 변경하도록(modify) 구성된다. 데이터 매니저(204)는 필터들의 세트(212)를 이용해서 원본 손 위치 데이터(210)를 변경할 수 있다. 필터들의 세트(212)는, 예컨대, 제한 없이, 임의의 수의 동작 평활화(motion smoothing) 필터들, 지터(jitter) 필터들, 칼만(Kalman) 필터들, 및/또는 다른 적절한 타입의 필터들을 포함할 수 있다. 게다가, 데이터 매니저(204)는 또한 도 1에서의 사용자 이미지들의 세트(150)를 기초로 하여 사용자(104)의 왼손(124)의 움직임에 대해 식별된 제약사항들을 기초로 해서 원본 손 위치 데이터(210)를 변경할 수 있다.
이러한 방식으로, 원본 손 위치 데이터(210)가 생성되고 있는 동안, 왼손 위치 데이터(134)가 센서 시스템(202)에서의 하나 이상의 센서들의 원하지 않는 움직임을 보상할(compensate) 수 있다. 이러한 원하지 않는 움직임(undesired movement)은, 예컨대, 흔들림(shaking), 떨림(vibrations), 지터(jitter), 및/또는 다른 적절한 타입의 원하지 않는 움직임을 포함할 수 있다.
몇몇 경우들에서, 왼손 위치 데이터(134)는 또한 사용자(104)의 왼손(124)의 원하지 않는 움직임 및 애매한 제스처(imprecise gesture)들을 보상할 수 있다. 예를 들어, 왼손 위치 데이터(134)는 원하지 않는 저킹(jerking) 타입의 왼손(124) 동작에 반응하여 왼손(124) 동작에서의 원하지 않는 스파이크(spike)들을 보상할 수 있다. 이러한 예시적인 예들에서, 왼손 위치 데이터(134)를 형성하도록 원본 손 위치 데이터(210)를 변경하는 것(modifying)은 원본 손 위치 데이터(210)를 안정화하는 것(stabilizing)이라고 언급될 수 있다.
데이터 매니저(204)는 통신 유닛(206)을 이용해서 왼손 위치 데이터(134)를 도 1의 가상 현실 매니저(106)로 보낸다. 통신 유닛(206)은 왼쪽 장갑(128) 및 다른 주변 시스템들 및/또는 머리에-장착되는 시스템(108) 사이의 하나 이상의 무선 통신 링크(link)들을 형성하는데 이용된다. 하나의 예시적인 예로서, 통신 유닛(206)은 머리에-장착되는 시스템(108)과의 무선 통신 링크(214)를 형성한다. 통신 유닛(206)은, 예컨대, 제한 없이, RF(radio frequency) 신호들을 이용하여 무선 통신 링크(214)를 통해서 도 1의 머리에-장착되는 시스템(108)으로 왼손 위치 데이터(134)를 전송할 수 있다.
몇몇 예시적인 예들에서, 데이터 매니저(204)는 또한 센서 시스템(202)을 교정하기 위해 이용될 수 있다. 다른 예시적인 예들에서, 데이터 매니저(204)는 센서 시스템(202)과의 설치 문제들(mounting issues)을 전자적으로 보상하기 위하여 원본 손 위치 데이터(210)를 변경하도록 구성될 수 있다.
이제 도 3을 참조하면, 머리에-장착되는(head-mounted) 시스템의 도면이 예시적인 실시 예에 따라서 블록도의 형태로 도시된다. 도 3에서, 도 1에서의 머리에-장착되는 시스템(108)에 대한 하나의 구현의 예가 도시된다.
이 예시적인 예에서, 머리에-장착되는 시스템(108)은 안경(114)의 형태를 취한다. 도시된 바와 같이, 가상 현실 매니저(106), 디스플레이 장치(116), 센서 시스템(118), 데이터 매니저(302), 및 통신 유닛(300)은 안경(114)과 연계되어 있다. 특히, 가상 현실 매니저(106), 디스플레이 장치(116), 센서 시스템(118), 데이터 매니저(302), 및 통신 유닛(300)은 이 예에서 안경(114)의 일부이다.
통신 유닛(300)은 머리에-장착되는 시스템(108)과 예컨대 도 1의 다수의 주변 시스템들(110)과 같은 다수의 다른 시스템들 사이에서 통신을 가능하게 하기 위해서 임의의 수의 무선 통신 링크들을 형성하도록 구성된다. 예를 들어, 머리에-장착되는 시스템(108)은 통신 유닛(300)을 이용해서 도 1의 다수의 주변 시스템들(110)로부터 주변 위치 데이터(132)를 수신할 수 있다.
특히, 가상 현실 매니저(106)는 통신 유닛(300)을 이용해서 도 1의 왼손 시스템(121)으로부터의 왼손 위치 데이터(134) 및 도 1의 오른손 시스템(122)으로부터의 오른손 위치 데이터(136)를 수신한다. 예를 들어, 통신 유닛(300)은 도 2의 왼쪽 장갑(128)의 통신 유닛(206)과 통신 유닛(300) 사이에 수립된 무선 통신 링크(214)를 이용해서 왼쪽 장갑(128)으로부터 왼손 위치 데이터(134)를 수신할 수 있다.
도시된 바와 같이, 센서 시스템(118)은 원본 머리 위치 데이터(raw head position data)(304)를 생성하도록 구성된다. 원본 머리 위치 데이터(304)는, 예컨대, 제한 없이, DSSV(dynamic system state variables)의 세트를 포함할 수 있다. 몇몇 예시적인 예들에서, 센서 시스템(118)은 도 1의 사용자 이미지들의 세트(150)를 이용해서 교정될 수 있다.
이러한 예시적인 예들에서, 데이터 매니저(302)는 하드웨어, 소프트웨어, 또는 둘의 조합을 이용해서 구현될 수 있다. 하나의 예시적인 예에서, 데이터 매니저(302)는 데이터 처리 시스템(305) 내에서 구현될 수 있다. 몇몇 경우들에서, 데이터 처리 시스템(305)은 도 1의 데이터 처리 시스템(105)과 연계될 수 있다. 다른 경우들에서, 데이터 처리 시스템(305)은 센서 시스템(118)과 연계될 수 있다. 몇몇 예시적인 예들에서, 데이터 매니저(302)는 데이터 처리 시스템(305) 대신 도 1의 데이터 처리 시스템(105) 내에서 구현될 수 있다.
데이터 매니저(302)는 도 1의 머리 위치 데이터(120)를 형성하기 위하여 원본 머리 위치 데이터(304)를 변경하도록 구성된다. 데이터 매니저(302)는 필터들의 세트(308)를 이용해서 원본 머리 위치 데이터(304)를 변경할 수 있다. 필터들의 세트(308), 예컨대, 제한 없이, 임의의 수의 동작 평활화 필터들, 지터 필터들, 칼만 필터들, 및/또는 다른 적절한 타입의 필터들을 포함할 수 있다. 게다가, 데이터 매니저(302)는 또한 도 1에서의 사용자 이미지들의 세트(150)를 이용해서 사용자(104)의 머리(112)의 움직임에 대해 식별된 제약사항들을 기초로 하여 원본 머리 위치 데이터(304)를 변경할 수 있다.
이러한 방식으로, 원본 머리 위치 데이터(304)가 생성되고 있는 동안, 머리 위치 데이터(120)가 센서 시스템(118)에서의 하나 이상의 센서들의 원하지 않는 움직임을 보상하는데 이용될 수 있다. 이러한 원하지 않는 움직임은, 예컨대, 흔들림, 떨림, 지터, 및/또는 다른 적절한 타입의 원하지 않는 움직임을 포함할 수 있다.
게다가, 몇몇 경우들에서, 머리 위치 데이터(120)는 또한 사용자(104)의 머리(112)의 원하지 않는 움직임을 보상하는데 이용될 수 있다. 예를 들어, 머리 위치 데이터(120)는 원하지 않는 저킹(jerking) 타입의 머리(112) 동작에 반응하여 머리(112) 동작에서의 원하지 않는 스파이크(spike)들을 보상할 수 있다. 이러한 예시적인 예들에서, 머리 위치 데이터(120)를 형성하도록 원본 머리 위치 데이터(304)를 변경하는 것은 원본 머리 위치 데이터(304)를 안정화하는 것이라고 언급될 수 있다. 데이터 매니저(302)는 머리 위치 데이터(120)를 가상 현실 매니저(106)로 보낸다.
몇몇 예시적인 예들에서, 데이터 매니저(302)는 또한 센서 시스템(118)을 교정하기 위해서 이용될 수 있다. 다른 예시적인 예들에서, 데이터 매니저(302)는 센서 시스템(118)과의 설치 문제들을 전자적으로(electronically) 보상하기 위하여 원본 머리 위치 데이터(304)를 변경하도록 구성될 수 있다.
부가적으로, 센서 시스템(118)은 이 예시적인 예에서 이미징 시스템(322)을 포함한다. 이미징 시스템(322)은 사용자(104)의 머리(112)가 향하는 방향과 실질적으로 동일한 방향으로 향하도록 구성된 하나 이상의 카메라를 포함한다. 이미징 시스템(322)은 다수의 주변 시스템들(110) 상에서 다수의 시각적 타겟(visual target)들을 포착하기에 충분히 넓고 충분히 깊은 시야(field of view)를 가지도록 구성된다. 이 시각적 타겟들은 예컨대 시각적 마커(visual marker)들, 라벨(label)들, 버튼(button)들, 윤곽(contour)들, 형상(shape)들, 및/또는 다른 적절한 타입의 시각적 타겟들을 포함할 수 있다.
하나의 예시적인 예로서, 다수의 시각적 마커들이 도 1의 왼쪽 장갑(128) 및 오른쪽 장갑(130)의 각각에 제시될 수 있다. 이미징 시스템(322)은 이미징 시스템(322)에 의해서 생성된 타겟 이미지(target image)에서 이러한 시각적 마커들을 포착하기에 충분히 넓고(wide) 충분히 깊은(deep) 시야를 가지도록 구성된다.
이러한 예시적인 예에서, 타겟 이미지(324)는 타겟 이미지들의 시퀀스(320)의 하나의 예이다. 타겟 이미지(324)는 현재의 시간(314)에서 이미징 시스템(322)에 의해 생성된다. 가상 현실 매니저(106)에서의 이미지 프로세서(326)는 타겟 이미지(324)를 이용해서 이미지-기반(image-based) 위치 데이터(328)를 생성하도록 구성된다. 이미지-기반 위치 데이터(328)는 현재의 시간(314)에서 타겟 이미지(324) 내의 왼쪽 장갑(128) 및 오른쪽 장갑(130)의 위치들을 식별시킨다. 이러한 위치들은 왼쪽 장갑(128) 및 오른쪽 장갑(130) 상에서의 시각적 타겟들을 이용하여 식별된다.
게다가, 이미지 프로세서(326)는 또한 현재의(current) 가상 이미지(310)를 위한 현재의 참조 프레임(현재의 참조 프레임)(330)을 식별하기 위해서 타겟 이미지(324)를 이용하도록 구성된다. 현재의 참조 프레임(330)은, 예컨대, 타겟 이미지(324)에 대응하는 가상 환경(102)의 부분일 수 있다. 예를 들어, 제2 타겟 이미지에서 포착된 영역의 왼쪽의 영역을 포착하는 제1 타겟 이미지는 제2 타겟 이미지에 대응하는 가상 환경(102)의 부분의 왼쪽의 가상 환경(102)의 부분에 대응한다.
이미지 프로세서(image processor)(326)는 현재의 참조 프레임(330) 및 이미지-기반 위치 데이터(328)를 데이터 코디네이터(data coordinator)(336)로 보내도록 구성된다. 데이터 코디네이터(336)는 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하기 위하여 현재의 참조 프레임(330), 이미지-기반 위치 데이터(328), 머리 위치 데이터(120), 왼손 위치 데이터(134), 및 오른손 위치 데이터(136)를 이용한다. 특히, 데이터 코디네이터(336)는 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 형성하기 위하여 현재의 시간(314)에 생성된 머리 위치 데이터(120), 왼손 위치 데이터(134), 및 오른손 위치 데이터(136)를 이용한다.
가상 이미지 제어 데이터(135)는 가상 환경(102)의 가상 이미지 내에서 예컨대, 가상 왼손 및 가상 오른손의 위치를 제어하기 위해 이용될 수 있는 현재의 참조 프레임(330)에 대해 예컨대, 도 1에서의 왼쪽 장갑(128) 및 오른쪽 장갑(130)에 대한 위치를 포함할 수 있다. 예시적인 예들에서, 데이터 코디네이터(336)는 처리(processing)하기 위한 가상 이미지 애플리케이션(137)으로 가상 이미지 제어 데이터(135)를 보낸다.
가상 이미지 애플리케이션(137)은 이미지 생성기(338)를 포함할 수 있다. 이미지 생성기(338)는 현재의 시간(314)에 대해 가상 환경(102)의 현재의 가상 이미지(310)를 형성하기 위하여 가상 이미지 제어 데이터(135)를 이용한다. 현재의 가상 이미지(310)는 현재의 참조 프레임(330)을 기초로 한다. 현재의 가상 이미지(310)는 디스플레이 장치(116) 상에서 디스플레이(display)하기 위해 형성되고 있는 가상 이미지일 수 있다. 다시 말해, 이 예에서, 현재의 가상 이미지(310)는 아직 디스플레이 장치(116) 상에서 디스플레이되지 않았다.
이 예에서, 현재의 가상 이미지(310)는 디스플레이 장치(116) 상에서 현재 디스플레이되고 있는 이전의(previous) 가상 이미지(312)의 갱신된 버전일 수 있다. 이전의 가상 이미지(312)는 이전의 시간(332)의 시간에 대해 가상 이미지 애플리케이션(137)에 의해서 생성되었을 수 있다. 현재의 가상 이미지(310)를 형성하기 위해 이용된 현재의 참조 프레임(330)은 이전의 가상 이미지(312)를 생성하기 위해 이용된 이전의 참조 프레임(334)과 동일하거나 상이할 수 있다.
도시된 바와 같이, 현재의 가상 이미지(310)는 현재의 가상 왼손(316) 및 현재의 가상 오른손(318)을 포함한다. 현재의 가상 왼손(316) 및 현재의 가상 오른손(318)에 대한 위치들은 가상 이미지 제어 데이터(135)에서 왼쪽 장갑(128) 및 오른쪽 장갑(130)에 대해 식별된 위치들을 기초로 할 수 있다.
일단 현재의 가상 이미지(310)가 이미지 생성기(338)에 의해서 생성되었으면, 가상 이미지 애플리케이션(137)은 현재의 가상 이미지(310)를 데이터 코디네이터(336)로 보낸다. 데이터 코디네이터(336)는 현재의 가상 이미지(310)를 디스플레이 장치(116)로 보내서, 현재의 가상 이미지(310)가 디스플레이 장치(116) 상에서 이전의 가상 이미지(312)의 자리(place)에 디스플레이될 수 있다.
이러한 방식으로, 가상 현실 매니저(106)와 가상 이미지 애플리케이션(137)은 특정 시간에 걸쳐 있는 복수의 시간들에 대해 도 1의 가상 이미지들의 시퀀스(138)를 형성하기 위하여 서로 통신할 수 있다. 특정 시간 기간에 대해 가상 이미지들에서 가상 왼손 및 가상 오른손에 대한 상이한 위치들이 도 1의 사용자(104)의 왼손(124) 및 오른손(126)의 움직임을 각각 시뮬레이션하도록 이미지들이 실질적으로 실시간으로 생성될 때, 가상 이미지들의 시퀀스(138)에서의 가상 이미지들이 디스플레이 장치(116) 상에 디스플레이될 수 있다.
몇몇 예시적인 예들에서, 머리에-장착되는 시스템(108)은 또한 마이크로폰(microphone)(340) 및/또는 스피커 시스템(speaker system)(342)을 포함할 수 있다. 사용자(104)는 가상 현실 매니저(106)에 의한 사용을 위해 오디오 데이터(audio data)를 생성하기 위하여 마이크로폰(340)을 이용할 수 있다. 게다가, 가상 현실 매니저(106)는 스피커 시스템(342)을 이용해서 소리(sound)들을 생성하도록 구성될 수 있다. 이 소리들은 사용자(104)가 가상 환경(102)에 더욱 몰입되도록 할 수 있다. 스피커 시스템(342)은 예컨대 헤드폰(344)의 형태를 취할 수 있다.
이제 도 4를 참조하면, 데이터 코디네이터의 도면이 예시적인 실시 예에 따라서 블록도의 형태로 도시된다. 도 4에서, 도 3에서의 데이터 코디네이터(336)에 대한 하나의 구현의 예가 도시된다.
이러한 예시적인 예에서, 데이터 코디네이터(336)는 현재의 시간(314)에 대해 현재의 가상 이미지(310)를 형성하는데 사용하기 위한 입력(402)을 수신하도록 구성된다. 입력(402)을 수신하는 것에 대한 응답으로, 데이터 코디네이터(336)는 출력(404)을 생성한다. 입력(402)은, 예컨대, 제한 없이, 사용자 데이터(145), 이미지-기반 위치 데이터(328), 손 위치 데이터(133), 머리 위치 데이터(120), 현재의 참조 프레임(330), 및/또는 다른 적절한 데이터를 포함할 수 있다. 이미지-기반 위치 데이터(328), 손 위치 데이터(133), 머리 위치 데이터(120), 및 현재의 참조 프레임(330)은 현재의 시간(314)에 대응하는 데이터일 수 있다. 출력(404)은 현재의 가상 이미지(310)일 수 있다.
이 도면에서 도시된 바와 같이, 데이터 코디네이터(336)는 제약사항 식별자(constraint identifier)(406), 데이터 변조기(data modulator)(408), 피드백 제어기(feedback controller)(410), 가상 이미지 분석기(411), 제어 데이터 생성기(412), 및 이미지 비주얼라이저(image visualizer)(414)를 포함한다. 이 예시적인 예시적인 예에서, 제약사항 식별자(406)는, 예컨대, 제한 없이, 사용자 데이터(145)를 기초로 하여 가상 이미지 제어 데이터(135)를 형성하기 위한 제약사항들의 세트(416)를 식별시킨다. 제약사항들의 세트(416)는 예컨대 도 1의 사용자의 왼손(124), 오른손(126), 및/또는 머리(112)의 위치들 및/또는 움직임에 대한 제약사항들을 포함할 수 있다. 제약사항 식별자(406)는 제약사항들의 세트(416)를 피드백 제어기(410)로 보낸다.
도시된 바와 같이, 데이터 변조기(408)는 손 데이터 변조기(418) 및 머리 데이터 변조기(420)를 포함한다. 손 데이터 변조기(418)는 변경된 손 위치 데이터(422)를 형성하기 위하여 이미지-기반 위치 데이터(328) 및 손 위치 데이터(133) 둘 다를 이용하도록 구성된다. 변경된 손 위치 데이터(422)는 이미지-기반 위치 데이터(328) 및 손 위치 데이터(133)에 가중치(weight)들을 적용함으로써 형성될 수 있다. 이 가중치들은 예컨대 사용자(104)의 왼손(124) 및/또는 오른손(126)이 움직이는 속도를 기초로 할 수 있다.
이 예시적인 예에서, 이미지-기반 위치 데이터(328)는 손에 대한 장갑에서의 센서 시스템을 이용하여 생성된 손 위치 데이터(133)보다 사용자(104)의 손에 대한 더욱 정확한 위치를 시간의 경과에 따라서 제공할 수 있다. 특히, 이미지-기반 위치 데이터(328)는 손이 천천히 움직일 때 손 위치 데이터(133)보다 더 정확한 데이터를 제공할 수 있다. 손 위치 데이터(133)는 손이 빠르게 움직일 때 이미지-기반 위치 데이터(328)보다 더 정확한 데이터를 제공할 수 있다.
결과적으로, 사용자(104)의 손이 충분히 빨리 움직일 때, 손 데이터 변조기(418)는 이미지-기반 위치 데이터(328)에 적용된 가중치들보다 더 큰 가중치들을 손 위치 데이터(133)에서의 해당 손 위치 데이터에 적용한다. 반면에, 사용자(104)의 손이 충분히 천천히 움직일 때, 손 데이터 변조기(418)는 이미지-기반 위치 데이터(328)에 적용된 가중치들보다 더 작은 가중치들을 손 위치 데이터(133)에서의 해당 손 위치 데이터에 적용한다. 가중치들이 적용되는 속도는 구체적인 구현에 따라서 다를 수 있다.
게다가, 머리 데이터 변조기(420)는 변경된 머리 위치 데이터(424)를 형성하기 위하여 머리 위치 데이터(120) 및 현재의 참조 프레임(330) 둘 다를 이용하도록 구성된다. 머리 데이터 변조기(420)는 머리 위치 데이터(120)와 현재의 참조 프레임(330)을 결합시킬(combine) 수 있으며, 변경된 머리 위치 데이터(424)를 형성하기 위하여 이러한 두 개의 타입의 데이터에 가중치를 부여한다(weight). 사용자(104)의 머리(112)가 천천히 움직일 때, 현재의 참조 프레임(330)은 머리 위치 데이터(120)보다 더 높게 가중치가 부여될 수 있다. 사용자(104)의 머리(112)가 빨리 움직일 때, 머리 위치 데이터(120)는 현재의 참조 프레임(330)보다 더 높게 가중치가 부여된다.
데이터 변조기(408)는 변경된 손 위치 데이터(422) 및 변경된 머리 위치 데이터(424)를 피드백 제어기(410)로 보낸다. 게다가, 데이터 변조기(408)는 변경된 손 위치 데이터(422) 및 변경된 머리 위치 데이터(424)를 제어 데이터 생성기(412)로 보낸다. 제어 데이터 생성기(412)는 가상 이미지 제어 데이터(135)를 생성하기 위하여 변경된 손 위치 데이터(422) 및 변경된 머리 위치 데이터(424)를 이용하도록 구성된다.
예를 들어, 제어 데이터 생성기(412)는 가상 이미지 제어 데이터(135)를 형성하기 위하여 필터들의 세트(425)를 이용할 수 있다. 필터들의 세트(425)는 변경된 손 위치 데이터(422) 및 변경된 머리 위치 데이터(424)를 평탄화하고(smooth out), 변경된 손 위치 데이터(422) 및 변경된 머리 위치 데이터(424)에서 원하지 않는 불연속성들(discontinuities)을 제거하고, 변경된 손 위치 데이터(422) 및 변경된 머리 위치 데이터(424)를 시간에 대해 동기화하도록 구성될 수 있다. 제어 데이터 생성기(412)는 가상 이미지 제어 데이터(135)를 가상 이미지 애플리케이션(137)으로 보낸다.
가상 이미지 애플리케이션(137)에서의 이미지 생성기(338)는 가상 이미지 제어 데이터(135)를 이용해서 현재의 가상 이미지(310)를 생성하도록 구성된다. 특히, 이미지 생성기(338)는 이전의 가상 이미지(312)를 갱신해서 도 1의 가상 환경(102)의 현재의 가상 이미지(310)를 형성한다. 이미지 생성기(338)는 현재의 가상 이미지(310)를 가상 이미지 분석기(411) 및 이미지 비주얼라이저(414)로 보낸다.
이 예시적인 예에서, 가상 이미지 분석기(411)는 현재의 가상 이미지(310)를 기초로 하여 실제 데이터(427)를 생성하기 위해서 현재의 가상 이미지(310)를 분석하도록 구성된다. 예를 들어, 가상 이미지 분석기(411)는 현재의 가상 이미지(310)를 분해해서(decompose), 현재의 가상 이미지(310)를 기초로 하여 사용자(104)의 머리(112)에 대한 실제 위치(actual position), 사용자(104)의 왼손(124)에 대한 실제 위치, 및/또는 도 1의 사용자(104)의 오른손(126)에 대한 실제 위치를 식별시키는 실제 데이터(actual data)(427)를 생성할 수 있다.
피드백 제어기(410)는 손가락 위치 에러(426), 상대적(relative) 손 위치 에러(428), 및 머리 위치 에러(430)를 형성하기 위하여, 실제 데이터(427), 제약사항들의 세트(416), 변경된 손 위치 데이터(422), 및 변경된 머리 위치 데이터(424)를 이용하도록 구성된다. 손가락 위치 에러(426)는 변경된 손 위치 데이터(422)에서 식별된 사용자(104)의 손가락들의 위치들과 현재의 가상 이미지(310)에서 시뮬레이션된 사용자(104)의 손가락들의 위치들과의 차이(difference)일 수 있다.
게다가, 상대적 손 위치 에러(428)는, 현재의 참조 프레임(330) 및/또는 사용자(104)의 머리(112)의 위치에 관해서, 변경된 손 위치 데이터(422)에서 식별된 사용자(104)의 손들의 위치들과 현재의 가상 이미지(310)에서의 가상의 손들의 위치들과의 차이일 수 있다. 머리 위치 에러(430)는 변경된 머리 위치 데이터(424)에서 식별된 사용자(104)의 머리(112)의 위치와 현재의 가상 이미지(310)를 기초로 하여 식별된 사용자(104)의 머리(112)의 위치와의 차이일 수 있다.
몇몇 예시적인 예들에서, 피드백 제어기(410)는 가상 이미지 제어 데이터(135)를 조정하기(adjust) 위하여, 손가락 위치 에러(426), 상대적 손 위치 에러(428), 및 머리 위치 에러(430)를 제어 데이터 생성기(412)로 보낼 수 있다. 물론, 몇몇 예시적인 예들에서, 가상 이미지 제어 데이터(135)를 조정하기 위하여 현재의 가상 이미지(310)를 이용해서 가상 이미지 제어 데이터(135)를 이미지 생성기(338) 및 피드백 제어기(410)로 보내는 프로세스는 가상 이미지 제어 데이터(135)가 원하는 레벨의 정확성을 가질 때까지 반복될 수 있다. 다시 말해, 이 프로세스는 손가락 위치 에러(426), 상대적 손 위치 에러(428), 및 머리 위치 에러(430)가 선택된 허용오차(tolerance)들 내에 있을 때까지 되풀이될(loop) 수 있다.
이후, 원하는 레벨의 정확성을 가지도록 조정된 가상 이미지 제어 데이터(135)는 현재의 가상 이미지(310)를 조정하기 위하여 이미지 비주얼라이저(414)에 의해 이용될 수 있다. 이후, 이미지 비주얼라이저(414)는 조정된 현재의 가상 이미지(310)를 출력할 수 있다.
이러한 방식으로, 원하는 레벨의 정확성을 가지고 시간의 경과에 따라서 생성된 가상 이미지 제어 데이터(135)가 도 1의 가상 이미지들의 시퀀스(138)를 생성하기 위하여 이용될 수 있다. 가상 이미지 제어 데이터(135)가 원하는 레벨의 정확성을 가지고 생성될 때, 가상 이미지들의 시퀀스(138)는 사용자(104)에게 원하는 레벨의 눈과 손의 협응을 제공할 수 있다. 다시 말해, 이 가상 이미지들에서 가상 왼손들 및 가상 오른손들의 위치들은 원하는 레벨의 정확성을 가질 수 있다. 게다가, 사용자(104)의 머리(112), 왼손(124), 및/또는 오른손(126)의 움직임은 원하는 레벨의 정확성을 가지고 가상 이미지들의 시퀀스(138) 내에서 시뮬레이션될 수 있다.
이제 도 5를 참조하면, 가상 현실 시스템의 작동 모드들의 도면이 예시적인 실시 예에 따라서 블록도의 형태로 도시된다. 이 예시적인 예에서, 모드들(500)은 도 1의 가상 현실 시스템(100)에 대한 작동 모드들일 수 있다. 도시된 바와 같이, 모드들(500)은 학습 및 교정(learning and calibration) 모드(502), 정적(static) 모드(504), 동적(dynamic) 모드(506), 및 트랜스페어런트(transparent) 모드(508) 중의 적어도 하나를 포함할 수 있다. 물론, 다른 예시적인 예들에서, 모드들(500)은 이 모드들에 부가하여 또는 이 모드들 대신에 하나 이상의 다른 모드들을 포함할 수 있다.
학습 및 교정 모드(502)에서, 도 1의 사용자(104)는 도 1의 손 시스템(131) 및 머리에-장착되는 시스템(108) 중의 적어도 하나를 이용하면서 실제 작업(actual task)을 수행할 수 있다. 이러한 실제 작업은 예컨대 가상 현실에서가 아닌 현실에서 수행되는 비가상(non-virtual) 작업일 수 있다. 이러한 비가상 작업은, 예컨대, 제한 없이, 키보드로 타이핑하는 것, 피아노를 치는 것, 기타를 치는 것, 상이한 유형들의 장비를 이용하는 것, 의료 수술을 수행하는 것, 물리적 작업을 수행하는 것, 또는 몇몇 다른 적절한 타입의 비가상 작업들일 수 있다.
학습 및 교정 모드(502)에서, 가상 현실 매니저(106)는 도 1의 가상 현실 시스템(100)을 교정하기 위하여 손 시스템(131)에 의해서 생성된 손 위치 데이터(133) 및 머리 위치 데이터(120) 중의 적어도 하나를 이용한다. 예를 들어, 가상 현실 매니저(106)는, 사용자(104)가 가상 현실 시스템(100)을 이용하여 해당 가상 작업(virtual task)을 수행할 때 생성된 데이터에서의 불일치들(inconsistencies)을 바로잡기 위해서 사용자(104)가 비가상 작업을 수행하는 동안 수집된 데이터를 이용할 수 있다.
정적 모드(504)에서, 사용자(104)는 사용자(104)의 손들만이 사용될 수 있는 가상 작업을 수행하기 위하여 가상 현실 시스템(100)을 이용할 수 있다. 예를 들어, 사용자(104)는 가상 작업을 수행하기 위하여 도 1의 왼손(124) 및/또는 오른손(126)을 사용할 수 있다. 정적 모드(504)에서, 사용자(104)에게 디스플레이된 가상 이미지들의 시퀀스(138)에서의 모든 가상 이미지들은 도 1의 사용자(104)의 머리(112)의 어떠한 움직임에도 변하지 않고(stationary) 있을 수 있다.
예를 들어, 가상 이미지들의 시퀀스(138)에서의 모든 가상 이미지들을 위한 도 1의 참조 프레임(146)은 손 시스템(131)에 의해서 제어되고 있는 가상 장치를 향해 겨냥되어 고정된 채로 있을 수 있다. 참조 프레임(146)이 변하지 않고(stationary) 있는 동안, 가상 왼손(142), 가상 오른손(144), 및/또는 다른 가상 구성요소들의 위치들이 도 1의 가상 이미지들의 시퀀스(138)에서의 서로 다른 가상 이미지들 사이에서 바뀔 수 있다. 하나의 예시적인 예에서, 가상 현실 매니저(106)는, 사용자(104)가 가상 작업을 수행하는 동안 도 1의 머리에-장착되는 시스템(108)에서의 센서 시스템(118)에 의해 생성된 임의의 머리 위치 데이터(120)를 걸러내도록(filter out) 구성될 수 있다.
동적 모드(506)에서, 손 위치 데이터(133) 및 머리 위치 데이터(120) 양쪽 모두가 사용자(104)에게 디스플레이되는 가상 이미지들의 시퀀스(138)를 제어하기 위해서 가상 현실 매니저(106)에 의해 이용된다. 가상 이미지들의 시퀀스(138)에서의 각각의 이미지에 대한 참조 프레임(146)은 사용자(104)의 머리(112)의 움직임을 기초로 하여 바뀔 수 있다.
트랜스페어런트 모드(508)에서, 어떠한 가상 이미지들도 도 1의 디스플레이 장치(116) 상에서 디스플레이되지 않는다. 대신, 사용자(104)는 도 1의 안경(114)을 통해서 보는 것이 허용될 수 있다. 다시 말해, 트랜스페어런트 모드(508)에서, 안경(114)의 렌즈들은 투명하게(transparent) 만들어질 수 있다.
도 1의 가상 현실 시스템(100)의 도면, 도 2의 왼손 시스템(121), 도 3의 머리에-장착되는 시스템(108), 도 4의 데이터 코디네이터(336), 및 도 5의 모드들(500)은 예시적인 실시 예가 구현될 수 있는 방식에 대한 물리적 또는 구조적 제한을 시사하도록 의도된 것이 아니다. 도시된 것들에 부가하여 또는 대신하여 다른 구성요소들이 이용될 수 있다. 일부 구성요소들은 불필요할 수 있다. 또한, 몇몇 기능적인 구성요소들을 나타내기 위한 블록들이 제시된다. 이 블록들의 하나 이상은 예시적인 실시 예에서 구현될 때 상이한 블록들로 결합, 분리, 또는 결합 및 분리될 수 있다.
몇몇 예시적인 예들에서, 가상 이미지 애플리케이션(137)은 도 1의 가상 현실 시스템(100) 내에서 구현될 수 있다. 예를 들어, 가상 이미지 애플리케이션(137)은 데이터 처리 시스템(105) 내에서 구현될 수 있다. 다른 예시적인 예들에서, 데이터 매니저(204)는 도 2의 센서 시스템(202)과는 별도로 구현될 수 있다.
몇몇 경우들에 있어서, 도 5에서 설명된 모드들에 부가하여 및/또는 대신하여 다른 모드들이 가상 현실 시스템(100)에 대한 작동 모드들(500)에 포함될 수 있다. 하나의 예시적인 예에서, 학습 및 교정 모드(502)는 학습 모드 및 교정 모드로 나누어질 수 있다.
이제 도 6을 참조하면, 가상 현실 시스템을 사용하는 사용자의 도면이 예시적인 실시 예에 따라서 도시된다. 이 예시적인 예에서, 사용자(600)는 가상 현실 시스템(601)을 착용하고 있다. 사용자(600)는 도 1의 사용자(104)의 예이다. 게다가, 가상 현실 시스템(601)은 도 1의 가상 현실 시스템(100)에 대한 하나의 구현의 예이다.
도시된 바와 같이, 가상 현실 시스템(601)은 머리에-장착되는 시스템(602), 왼쪽 장갑(604), 및 오른쪽 장갑(606)을 포함한다. 머리에-장착되는 시스템(602)은 도 1 및 3의 머리에-장착되는 시스템(108)에 대한 하나의 구현의 예이다. 도시된 바와 같이, 머리에-장착되는 시스템(602)은 안경(608)을 포함한다. 안경(608)은 도 1 및 3의 안경(114)에 대한 하나의 구현의 예이다. 게다가, 왼쪽 장갑(604) 및 오른쪽 장갑(606)은 도 1의 왼쪽 장갑(128) 및 오른쪽 장갑(130) 각각에 대한 구현의 예이다.
이 예시적인 예에서, 도 1의 가상 현실 매니저(106)와 같은 가상 현실 매니저는 사용자(600)의 눈 앞의 안경(608)에 가상 이미지(610)를 시각적으로 제시할 수 있다. 가상 이미지(610)는 도 1의 가상 이미지(140)에 대한 하나의 구현의 예일 수 있다. 게다가, 가상 이미지(610)는 가상 환경의 이미지이다. 사용자(600)가 이러한 가상 환경을 제어하고 가상 환경과 상호작용하는 것을 가능하게 하기 위해서, 가상 현실 매니저는 사용자(600)의 움직임에 반응하여 왼쪽 장갑(604), 오른쪽 장갑(606), 및 머리에-장착되는 시스템(602)에 의해 생성된 데이터를 이용하도록 구성된다.
이제 도 7을 참조하면, 가상 엔지니어링 환경과 상호작용하기 위한 프로세스의 도면이 예시적인 실시 예에 따라서 흐름도의 형태로 도시된다. 도 7에 도시된 프로세스는 도 1의 가상 현실 시스템(100)을 이용해서 구현될 수 있다. 특히, 이 프로세스는 도 1 및 3의 가상 이미지 애플리케이션(137)과 통신하는 가상 현실 매니저(106)를 이용해서 구현될 수 있다.
이 프로세스는 손 시스템으로부터 사용자의 적어도 하나의 손에 대한 손 위치 데이터를 수신함으로써 시작될 수 있다(오퍼레이션(operation) 700). 손 위치 데이터는 사용자의 왼손 및/또는 오른손에 대한 위치 데이터를 포함할 수 있다. 손 시스템은 사용자의 왼손에 대한 왼쪽 장갑 및/또는 사용자의 오른손에 대한 오른쪽 장갑을 포함할 수 있다. 손 시스템은 예컨대 도 1의 손 시스템(131)일 수 있다.
이후, 프로세스는 머리에-장착되는 시스템으로부터 사용자의 머리에 대한 머리 위치 데이터를 수신할 수 있다(오퍼레이션 702). 머리에-장착되는 시스템은, 예컨대, 도 1 및 3의 머리에-장착되는 시스템(108)일 수 있다. 하나의 예시적인 예에서, 머리에-장착되는 시스템은 도 1 및 3의 안경(114)의 형태를 취할 수 있다.
그 후에, 프로세스는 현재의 시간에 대한 타겟 이미지를 이용해서 현재의 시간에 대해 현재의 참조 프레임 및 이미지-기반 위치 데이터를 식별한다(오퍼레이션 704). 오퍼레이션 704는 예컨대 도 3의 이미지 프로세서(326)를 이용해서 수행될 수 있다. 타겟 이미지는 예컨대 도 3의 머리에-장착되는 시스템(108)과 연계된 센서 시스템(118)의 이미징 시스템(322)을 이용해서 생성된 타겟 이미지(324)일 수 있다. 타겟 이미지(324)는 타겟 이미지(324)에서의 왼쪽 장갑(128) 및 오른쪽 장갑(130)에 대한 위치가 식별되는 것을 가능하게 한다.
이후, 프로세스는 가상 이미지 제어 데이터를 형성하기 위하여 손 위치 데이터 및 머리 위치 데이터를 이미지-기반 위치 데이터 및 현재의 참조 프레임과 함께 조직화한다(coordinate)(오퍼레이션 706). 오퍼레이션 706은 예컨대 도 3 및 4의 데이터 코디네이터(336)를 이용해서 수행될 수 있다. 이후, 프로세스는 가상 이미지 제어 데이터를 이용해서 가상 환경의 현재의 가상 이미지를 생성하고(오퍼레이션 708), 이후 프로세스가 종료된다.
이제 도 8을 참조하면, 가상 엔지니어링 환경과 상호작용하기 위한 프로세스의 도면이 예시적인 실시 예에 따라서 흐롬도의 형태로 도시된다. 도 8에 도시된 프로세스는 도 1의 가상 현실 시스템(100)을 이용해서 구현될 수 있다. 게다가, 이 프로세스는 도 7에서 설명된 프로세스의 더욱 상세한 프로세스이다.
프로세스는 왼쪽 장갑 및 오른쪽 장갑으로부터 왼손 위치 데이터 및 오른손 위치 데이터를 각각 수신함으로서 시작된다(오퍼레이션 800). 왼손 위치 데이터는 시간의 흐름에 따른 사용자의 왼손에 대한 위치들을 식별시킨다. 오른손 위치 데이터는 시간의 흐름에 따른 사용자의 오른손에 대한 위치들을 식별시킨다.
게다가, 이 프로세스는 머리에-장착되는 시스템의 센서 시스템으로부터 머리 위치 데이터를 수신한다(오퍼레이션 802). 머리 위치 데이터는 시간의 흐름에 따른 사용자의 머리에 대한 위치들을 식별시킨다.
이후, 프로세스는 머리에-장착되는 시스템의 센서 시스템의 이미징 시스템으로부터 타겟 이미지들의 시퀀스를 수신한다(오퍼레이션 804). 그 이후, 프로세스는 현재의 시간에 대응하는 타겟 이미지들의 시퀀스에서의 타겟 이미지를 이용해서 현재의 시간에 대해 현재의 참조 프레임 및 이미지-기반 위치 데이터를 식별한다(오퍼레이션 806).
다음으로, 프로세스는 왼손 위치 데이터, 오른손 위치 데이터, 및 머리 위치 데이터를 시간에 대해 동기화한다(오퍼레이션 808). 이후, 프로세스는 가상 이미지 제어 데이터를 형성하기 위하여 동기화된 왼손 위치 데이터, 오른손 위치 데이터, 및 머리 위치 데이터를 이미지-기반 위치 데이터 및 현재의 참조 프레임과 함께 조직화한다(오퍼레이션 810).
프로세스는 클라우드를 이용해서 가상 이미지 제어 데이터를 가상 이미지 애플리케이션으로 보낸다(오퍼레이션 812). 가상 이미지 애플리케이션은 현재의 시간에 대한 가상 환경의 현재의 가상 이미지를 생성하기 위하여 가상 이미지 제어 데이터를 이용하도록 구성된다. 다음으로, 프로세스는 가상 이미지 애플리케이션에 의해서 생성된 현재의 가상 이미지를 수신한다(오퍼레이션 814).
프로세스는 머리에-장착되는 시스템과 연계된 디스플레이 장치에 현재의 가상 이미지를 디스플레이하고(오퍼레이션 816), 프로세스는 오퍼레이션 800으로 돌아간다. 오퍼레이션 800에서, 현재의 가상 이미지는 디스플레이 장치에서 디스플레이된 이전에-생성되었던(previously-generated) 가상 이미지를 대체한다. 사용자는 현재의 가상 이미지를 보고, 가상 환경에서 존재감을 느낄 수 있다.
오퍼레이션 816을 수행한 후 프로세스가 오퍼레이션 800으로 돌아가서 오퍼레이션들 802, 804, 및 806을 반복할 때, 오퍼레이션 806에서 사용된 현재의 시간은 오퍼레이션 816에서의 현재의 가상 이미지에 대한 현재의 시간 이후의 시간이다. 다시 말해, 도 8에서 설명된 프로세스는 다음 가상 이미지를 형성하기 위하여 반복될 수 있다. 이러한 방식으로, 시간에 대해 정렬된 가상 이미지들의 시퀀스가 생성되어 디스플레이 장치에서 디스플레이될 수 있다.
상이한 도시된 실시 예들에서의 흐름도 및 블록도들은 예시적인 실시 예에서의 장치들 및 방법들의 몇몇 가능한 구현의 아키텍처, 기능, 및 작동을 도시한다. 이와 관련하여, 흐름도들 또는 블록도들에서의 각각의 블록은 모듈(module), 세그먼트(segment), 함수 및/또는 오퍼레이션 또는 단계의 일부를 나타낼 수 있다. 예를 들어, 하나 이상의 블록들은 프로그램 코드로, 하드웨어로, 또는 프로그램 코드와 하드웨어의 조합으로 구현될 수 있다. 하드웨어로 구현될 때, 하드웨어는 예컨대 흐름도들 또는 블록도들에서 하나 이상의 오퍼레이션들을 수행하도록 구성되거나 제조된 집적회로(integrated circuit)의 형태를 취할 수 있다.
예시적인 실시 예의 몇몇 대안적인 구현들에서, 블록에서 언급된 기능 또는 기능들이 도면들에서 언급된 순서와 다르게 발생할 수 있다. 예를 들어, 일부 경우들에 있어서, 연속적으로 도시된 두 개의 블록들은 실질적으로 동시에 수행될 수 있고, 또는 블록들은 때때로 포함된 기능에 따라서 반대 순서로 실시될 수 있다. 또한, 흐름도 또는 블록도 내의 도시된 블록에 부가하여 다른 블록들이 추가될 수 있다.
이제 도 9를 참조하면, 데이터 처리 시스템의 도면이 예시적인 실시 예를 따라 도시된다. 이 예시적인 예에서, 데이터 처리 시스템(900)은 도 1의 데이터 처리 시스템(105)을 구현하기 위해서 이용될 수 있다. 이 예시적인 예에서, 데이터 처리 시스템(900)은 통신 프레임워크(communications framework)(902)를 포함하는데, 이것은 프로세서 유닛(processor unit)(904), 메모리(906), 영구 스토리지(persistent storage)(908), 통신 유닛(910), 입력/출력(I/O) 유닛(912), 및 디스플레이(914) 사이에서 통신을 제공한다.
프로세서 유닛(904)은 메모리(906)로 로딩될(loaded) 수 있는 소프트웨어를 위한 명령어들을 실행하도록 제공된다. 프로세서 유닛(904)은 특정 구현에 따라서 다수의 프로세서들, 멀티-프로세서 코어, 또는 일부 다른 타입의 프로세서일 수 있다. 아이템의 참조와 관련하여 본 명세서에서 사용된 바와 같이, 다수라는 용어는 하나 이상의 아이템을 의미한다. 게다가, 프로세서 유닛(904)은, 단일한 칩(chip) 상에서 메인(main) 프로세서가 보조(secondary) 프로세서와 함께 존재하는 다수의 이종(heterogeneous) 프로세서 시스템들을 이용해서 구현될 수 있다. 다른 예시적인 예에서와 같이, 프로세서 유닛(904)은 동일한 타입의 복수의 프로세서들을 포함하는 대칭(symmetric) 멀티-프로세서 시스템일 수 있다.
메모리(906) 및 영구 스토리지(908)는 저장 장치들(916)의 예들이다. 저장 장치는 예를 들어 제한 없이, 데이터, 함수 형태의 프로그램 코드, 및/또는 다른 적절한 정보와 같은 정보를 임시로(temporary basis) 및/또는 영구적으로(permanent basis) 저장할 수 있는 하드웨어의 임의의 부품(piece)이다. 저장 장치(916)는 이 예들에서 컴퓨터 판독가능 저장 장치로서 지칭될 수 있다. 이 예들에서, 메모리(906)는 예를 들어 RAM(random access memory), 또는 임의의 다른 적절한 휘발성 또는 비휘발성 저장 장치일 수 있다. 영구 스토리지(908)는 특정 구현에 따라서 다양한 형태들을 취할 수 있다.
예를 들어, 영구 스토리지(908)는 하나 이상의 구성요소들 또는 장치들을 포함할 수 있다. 예를 들어, 영구 스토리지(908)는 하드 드라이브, 플래시 메모리, 재기록가능(rewritable) 광학적 디스크, 재기록가능 자기 테이프, 또는 이들의 어떤 조합일 수 있다. 영구 스토리지(908)에 의해 사용된 매체는 또한 착탈가능할(removable) 수 있다. 예를 들어, 착탈가능한 하드 드라이브가 영구 스토리지(908)를 위해서 사용될 수 있다.
통신 유닛(910)은, 이 예들에서, 다른 데이터 처리 시스템들 또는 장치들과의 통신을 제공한다. 이 예들에서, 통신 유닛(910)은 네트워크 인터페이스 카드(network interface card)이다. 통신 유닛(910)은 물리적 및 무선의 통신 링크들 중 하나 또는 둘 다를 이용해서 통신을 제공할 수 있다.
입력/출력 유닛(912)은 데이터 처리 시스템(900)에 연결될 수 있는 다른 장치들과의 데이터의 입력 및 출력을 가능하게 한다. 예를 들어, 입력/출력 유닛(912)은 키보드, 마우스, 및/또는 일부 다른 적절한 입력 장치를 통하여 사용자 입력에 대한 연결(connection)을 제공할 수 있다. 게다가, 입력/출력 유닛(912)은 프린터로 출력을 보낼 수 있다. 디스플레이(914)는 사용자에게 정보를 디스플레이하기 위한 메커니즘을 제공한다.
운영 시스템을 위한 명령어들, 애플리케이션들, 및/또는 프로그램들은 저장 장치들(916) 내에 위치할 수 있고, 이것은 통신 프레임워크(902)를 통해서 프로세서 유닛(904)과 통신한다. 이 예시적인 예들에서, 명령어들은 영구 스토리지(908)상에서 함수 형태로 존재한다. 이 명령어들은 프로세서 유닛(904)에 의한 실행을 위해서 메모리(906)로 로딩될 수 있다. 상이한 실시 예들의 프로세스들은 메모리(906)와 같은 메모리 내에 위치할 수 있는 컴퓨터로-구현되는(computer-implemented) 명령어들을 이용해서 프로세서 유닛(904)에 의해 수행될 수 있다.
이 명령어들은 프로세서 유닛(904) 내의 프로세서에 의해 판독 및 실행될 수 있는 프로그램 코드, 컴퓨터 이용가능(usable) 프로그램 코드, 또는 컴퓨터 판독가능(readable) 프로그램 코드라고 말할 수 있다. 상이한 실시 예들에서의 프로그램 코드는 메모리(906) 또는 영구 스토리지(908)와 같이 상이한 물리적 또는 컴퓨터 판독가능 저장 매체상에서 구체화될 수 있다.
프로그램 코드(918)는 선택적으로 착탈가능한 컴퓨터 판독가능 매체(920)상에 함수 형태로 위치하고, 프로세서 유닛(904)에 의한 실행을 위해 데이터 처리 시스템(900)상으로 로딩되거나 데이터 처리 시스템(900)에 전송될 수 있다. 프로그램 코드(918) 및 컴퓨터 판독가능 매체(920)는 이 예들에서 컴퓨터 프로그램 제품(922)을 형성한다. 일 예에서, 컴퓨터 판독가능 매체(920)는 컴퓨터 판독가능 저장 매체(924) 또는 컴퓨터 판독가능 신호 매체(926)일 수 있다.
컴퓨터 판독가능 저장 매체(924)는 예를 들어 드라이브(drive)로 삽입되거나 배치되는 광학 또는 자기 디스크, 또는 영구 스토리지(908)의 일부인 하드 드라이브와 같이 저장 장치상으로의 전송을 위한 영구 스토리지(908)의 일부인 다른 장치를 포함할 수 있다. 컴퓨터 판독가능 저장 매체(924)는 또한 데이터 처리 시스템(900)에 연결되는, 하드 드라이브(hard drive), 썸 드라이브(thumb drive), 또는 플래시 메모리(flash memory)와 같은 영구 스토리지의 형태를 취할 수 있다. 일부 예들에서, 컴퓨터 판독가능 저장 매체(924)는 데이터 처리 시스템(900)으로부터 착탈가능하지 않을 수 있다.
이 예들에서, 컴퓨터 판독가능 저장 매체(924)는 프로그램 코드(918)를 전파 또는 전송하는 매체가 아니라 프로그램 코드(918)를 저장하기 위해서 사용되는 물리적 또는 유형의(tangible) 저장 장치이다. 컴퓨터 판독가능 저장 매체(924)는 또한 컴퓨터 판독가능한 유형의 저장 장치 또는 컴퓨터 판독가능한 물리적 저장 장치로 지칭된다. 다시 말해, 컴퓨터 판독가능 저장 매체(924)는 사람에 의해서 만져질 수 있는 매체이다.
이와 달리, 프로그램 코드(918)는 컴퓨터 판독가능 신호 매체(926)를 이용해서 데이터 처리 시스템(900)으로 전송될 수 있다. 컴퓨터 판독가능 신호 매체(926)는 예를 들어 프로그램 코드를 포함하는 전파되는(propagated) 데이터 신호일 수 있다. 예를 들어, 컴퓨터 판독가능 신호 매체(926)는 전자기 신호, 광학 신호, 및/또는 임의의 다른 적절한 타입의 신호일 수 있다. 이 신호들은 무선 통신 링크들, 광섬유 케이블, 동축 케이블, 전선, 및/또는 임의의 다른 적절한 타입의 통신 링크와 같은 통신 링크들을 통해서 전송될 수 있다. 다시 말해, 통신 링크 및/또는 연결은 예시적인 예들에서 물리적(physical)이거나 무선(wireless)일 수 있다.
일부 예시적인 실시 예들에서, 프로그램 코드(918)는 데이터 처리 시스템(900) 내에서 사용하기 위해 컴퓨터 판독가능 신호 매체(926)를 통하여 다른 장치 또는 데이터 처리 시스템으로부터 영구 스토리지(908)로 네트워크를 통해 다운로드될 수 있다. 예를 들어, 서버 데이터 처리 시스템 내의 컴퓨터 판독가능 저장 매체에 저장된 프로그램 코드는 서버로부터 데이터 처리 시스템(900)으로 네트워크를 통해 다운로드될 수 있다. 프로그램 코드(918)를 제공하는 데이터 처리 시스템은 서버 컴퓨터, 클라이언트 컴퓨터, 또는 프로그램 코드(918)를 저장 및 전송할 수 있는 어떤 다른 장치일 수 있다.
데이터 처리 시스템(900)을 위해 도시된 상이한 구성요소들은 상이한 실시 예들이 구현될 수 있는 방식에 대한 구조적 제한을 제공하는 것으로 의도된 것이 아니다. 상이한 예시적인 실시 예들은 데이터 처리 시스템(900)을 위해 도시된 것들에 부가하여 또는 대신하여 구성요소들을 포함하는 데이터 처리 시스템 내에서 구현될 수 있다. 도 9에 도시된 다른 구성요소들은 도시된 예시적인 예들로부터 변경될 수 있다. 상이한 실시 예들은 프로그램 코드를 실행할 수 있는 임의의 하드웨어 장치 또는 시스템을 이용하여 구현될 수 있다. 일 예로서, 데이터 처리 시스템은 무기적(inorganic) 구성요소들과 통합된 유기적(organic) 구성요소들을 포함할 수 있고, 및/또는 인간을 제외한 유기적 구성요소들로 전부 이루어질 수 있다. 예를 들어, 저장 장치는 유기 반도체(organic semiconductor)로 이루어질 수 있다.
다른 예시적인 예에서, 프로세서 유닛(904)은 특정 사용을 위해서 구성되거나 제조된 회로들을 갖는 하드웨어 유닛의 형태를 취할 수 있다. 이러한 타입의 하드웨어는 오퍼레이션들을 수행하도록 구성되기 위하여 프로그램 코드가 저장 장치로부터 메모리로 로딩될(loaded) 필요없이 오퍼레이션들을 수행할 수 있다.
예를 들어, 프로세서 유닛(904)이 하드웨어 유닛의 형태를 취할 때, 프로세서 유닛(904)은 다수의 오퍼레이션들을 수행하도록 구성된 회로 시스템, ASIC(application specific integrated circuit), 프로그램가능 논리 장치(programmable logic device), 또는 몇몇 다른 적절한 타입의 하드웨어일 수 있다. 프로그램가능 논리 장치에 있어서, 장치는 다수의 오퍼레이션들을 수행하도록 구성된다. 장치는 나중에 재구성될 수 있고, 또는 영구적으로 다수의 오퍼레이션들을 수행하도록 구성될 수 있다. 프로그램가능 논리 장치의 예들은 예컨대 프로그램가능 논리 어레이(programmable logic array), 필드 프로그램가능 논리 어레이(field programmable logic array), 필드 프로그램가능 게이트 어레이(field programmable gate array), 및 다른 적절한 하드웨어 장치들을 포함한다. 이러한 타입의 구현에 있어서, 상이한 실시 예들에 대한 프로세스들이 하드웨어 유닛에서 구현되기 때문에, 프로그램 코드(918)는 생략될 수 있다.
또 다른 예시적인 예에서, 프로세서 유닛(904)은 컴퓨터들 및 하드웨어 유닛들에 있는 프로세서들의 조합을 이용해서 구현될 수 있다. 프로세서 유닛(904)은 프로그램 코드(918)를 실행하도록 구성된 다수의 프로세서들 및 다수의 하드웨어 유닛들을 가질 수 있다. 이러한 도시된 예에 있어서, 일부 프로세스들은 다수의 하드웨어 유닛들에서 구현될 수 있는 반면, 다른 프로세서들은 다수의 프로세서들에서 구현될 수 있다.
다른 예에서, 버스 시스템은 통신 프레임워크(902)를 구현하기 위해서 이용될 수 있고, 시스템 버스 또는 입력/출력 버스와 같은 하나 이상의 버스로 이루어질 수 있다. 물론, 버스 시스템은 버스 시스템에 부착된 상이한 구성요소들 또는 장치들간의 데이터의 전송을 제공하는 임의의 적절한 타입의 아키텍처를 이용해서 구현될 수 있다.
부가적으로, 통신 유닛은 데이터를 송신하거나, 데이터를 수신하거나, 또는 데이터를 송신 및 수신하는 다수의 장치들을 포함할 수 있다. 통신 유닛은 예컨대 모뎀 또는 네트워크 어댑터(adapter), 두 개의 네트워크 어댑터, 또는 이들의 몇몇 조합들일 수 있다. 게다가, 메모리는 예컨대 통신 프레임워크(902)에 존재할 수 있는 메모리 컨트롤러 허브(memory controller hub) 및 인터페이스에서 발견되는 것과 같은 메모리(906) 또는 캐시(cache)일 수 있다.
그래서, 상이한 예시적인 실시 예들은 가상 환경의 가상 이미지들을 생성하기 위한 방법 및 장치를 제공한다. 하나의 예시적인 실시 예에서, 가상 환경의 가상 이미지를 생성하기 위한 방법이 제공된다. 가상 현실 매니저는 손 시스템으로부터 사용자의 적어도 하나의 손에 대한 손 위치 데이터를 수신한다. 가상 현실 매니저는 머리에-장착되는 시스템으로부터 사용자의 머리에 대한 머리 위치 데이터를 수신한다. 가상 현실 매니저는 현재의 시간에 대응하는 타겟 이미지를 이용해서 현재의 시간에 대한 현재의 참조 프레임 및 이미지-기반 위치 데이터를 식별한다. 가상 현실 매니저는 손 위치 데이터, 머리 위치 데이터, 이미지-기반 위치 데이터, 및 현재의 참조 프레임을 이용해서 현재의 시간에 대한 가상 이미지 제어 데이터를 생성한다. 가상 이미지 제어 데이터는 가상 이미지 애플리케이션에 의한 사용을 위해서 구성된다.
상이한 예시적인 실시 예들은 사용자가 가상 환경과 상호작용하는 것을 가능하게 하는 방법 및 시스템을 제공한다. 특히, 도 1의 가상 현실 시스템(100)은 도 1의 사용자(104)와 같은 사용자가 도 1의 가상 이미지 애플리케이션(137)과 같은 가상 이미지 애플리케이션과 상호작용하는 것을 가능하게 한다. 사용자는 가상 이미지 애플리케이션을 이용해서 관리되는 가상 환경에 영향을 주는 방식으로 가상 이미지 애플리케이션과 상호작용할 수 있다.
가상 현실 시스템(100)은 가상 엔지니어링을 수행하기 위해서 이용될 수 있다. 예를 들어, 사용자는 가상 엔지니어링 환경과 상호작용하기 위해서 가상 현실 시스템(100)을 이용할 수 있다. 가상 현실 시스템(100)은 사용자가 가상 엔지니어링 환경 내에서 원하는 레벨의 몰입을 경험할 수 있게 하기 위해서 원하는 레벨의 눈과 손의 협응을 제공하도록 구성된다.
도면 및 본 명세서에서, 일 관점에 있어서, 가상 환경(102)의 가상 이미지(140)를 생성하기 위한 방법이 공개되는데, 상기 방법은: 가상 현실 매니저(106)에서, 손 시스템(131)으로부터 사용자(104)의 적어도 하나의 손에 대한 손 위치 데이터를 수신하는 단계; 가상 현실 매니저(106)에서, 머리에-장착되는(head-mounted) 시스템(108)으로부터 사용자(104)의 머리(112)에 대한 머리 위치 데이터(120)를 수신하는 단계; 가상 현실 매니저(106)에 의해, 현재의 시간(314)에 대응하는 타겟 이미지(target image)를 이용하여 현재의 시간(314)에 대해 현재의 참조 프레임(330) 및 이미지-기반 위치 데이터(328)를 식별하는 단계; 및 가상 현실 매니저(106)에 의해, 손 위치 데이터(133), 머리 위치 데이터(120), 이미지-기반 위치 데이터(328), 및 현재의 참조 프레임(330)을 이용하여 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하는 단계를 포함하고, 가상 이미지 제어 데이터(135)는 가상 이미지 애플리케이션(137)에 의한 사용을 위해서 구성된다.
하나의 변형예에서, 상기 방법은: 가상 현실 매니저(106)에 의해, 가상 이미지 제어 데이터(135)를 가상 이미지 애플리케이션(137)에 보내는 단계; 및 가상 이미지 애플리케이션(137)에 의해, 현재의 시간(314)에 대한 가상 이미지 제어 데이터(135)를 이용하여 현재의 시간(314)에 대해 가상 환경(102)의 현재의 가상 이미지(310)를 생성하는 단계;를 더 포함한다.
다른 변형예에서, 상기 방법에 있어서, 현재의 시간(314)에 대한 가상 이미지 제어 데이터(135)를 이용하여 현재의 시간(314)에 대해 가상 환경(102)의 현재의 가상 이미지(310)를 생성하는 단계는: 가상 이미지 제어 데이터(135)를 기초로 하여 현재의 가상 이미지(130)에 가상 왼손(142) 및 가상 오른손(144)을 배치하는 단계를 포함하고, 가상 왼손(142)은 사용자(104)의 왼손(124)을 나타내는 이미지이고, 가상 오른손(144)은 사용자(104)의 오른손(126)을 나타내는 이미지이다.
또 다른 변형예에서, 상기 방법은: 가상 현실 매니저(106)에 의해, 머리에-장착되는 시스템(108)에 연계된 디스플레이 장치(116)에서 가상 환경(102)의 현재의 가상 이미지(310)를 사용자(104)에게 디스플레이하는 단계를 더 포함하고, 현재의 가상 이미지(310)는 디스플레이 장치(116)에 디스플레이된 이전의 가상 이미지(312)를 대체한다. 하나의 예에서, 상기 방법에 있어서, 손 위치 데이터(133), 머리 위치 데이터(120), 이미지-기반 위치 데이터(328), 및 현재의 참조 프레임(330)을 이용하여 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하는 단계는: 가상 현실 매니저(106)에 의해, 손 위치 데이터(133)와 머리 위치 데이터(120)를 시간에 대해 동기화하는 단계를 포함한다. 또 다른 변형예에서, 상기 방법은: 사용자(104)의 왼손(124)에 실질적으로 맞도록 구성된 왼쪽 장갑(128)을 이용하여 왼손 위치 데이터(134)를 생성하는 단계; 및 사용자(104)의 오른손(126)에 실질적으로 맞도록 구성된 오른쪽 장갑(130)을 이용하여 오른손 위치 데이터(136)를 생성하는 단계를 더 포함하고, 왼손 위치 데이터(134) 및 오른손 위치 데이터(136)는 손 위치 데이터(133)를 형성한다.
하나의 예에서, 상기 방법에 있어서, 상기 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하는 단계는: 손 위치 데이터(133)에서의 왼손 위치 데이터(134), 오른손 위치 데이터에서의 오른손 위치 데이터(136), 및 이미지-기반 위치 데이터(328)를 이용하여, 변경된 손 위치 데이터(422)를 식별하는 단계; 머리 위치 데이터(120) 및 현재의 참조 프레임(330)을 이용하여, 변경된 머리 위치 데이터(120)를 식별하는 단계; 및 변경된 손 위치 데이터(422), 변경된 머리 위치 데이터(120), 및 제약사항들의 세트(416)를 이용하여 가상 이미지 제어 데이터(135)를 생성하는 단계;를 포함한다. 다른 예에서, 상기 방법에 있어서, 상기 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하는 단계는, 사용자 이미지들의 세트(150)를 기초로 하는 사용자 데이터(145)를 이용하여 제약사항들의 세트(416)를 식별하는 단계를 더 포함한다.
또 다른 예에서, 변경된 손 위치 데이터(422), 변경된 머리 위치 데이터(120), 및 제약사항들의 세트(416)를 이용하여 가상 이미지 제어 데이터(135)를 생성하는 단계는: 피드백 제어기(410), 변경된 손 위치 데이터, 변경된 머리 위치 데이터(422), 및 제약사항들의 세트(416)를 이용하여 손가락 위치 에러(426), 상대적 손 위치 에러(428), 및 머리 위치 에러(430)를 식별하는 단계; 및 피드백 제어기(410), 손가락 위치 에러(426), 상대적 손 위치 에러(428), 및 머리 위치 에러(430)를 이용하여 원하는 레벨의 정확성을 가지고 가상 이미지 제어 데이터(135)를 생성하는 단계;를 포함한다. 하나의 예에서, 상기 방법에 있어서, 가상 환경(102)은 설계 환경, 생산 환경, 컴퓨터 환경, 테스트 환경, 데이터 관리 환경, 검사 환경, 및 작동 환경 중의 하나로부터 선택된 엔지니어링 환경의 시뮬레이션이다.
하나의 관점에 따라서, 가상 현실 시스템이 공개되는데, 가상 현실 시스템은: 사용자(104)의 머리(112)에 대해 착용되도록 구성된 머리에-장착되는 시스템(108); 및 머리에-장착되는 시스템(108)과 연계된 가상 현실 매니저(106)를 포함하고, 가상 현실 매니저(106)는: 손 시스템(131)으로부터 사용자(104)의 적어도 하나의 손에 대한 손 위치 데이터(133)를 수신하고; 머리에-장착되는 시스템(108)에서의 센서 시스템(118)으로부터 사용자(104)의 머리(112)에 대한 머리 위치 데이터(120)를 수신하고; 현재의 시간(314)에 대응하는 타겟 이미지를 이용하여 현재의 시간(314)에 대해 현재의 참조 프레임(330) 및 이미지-기반 위치 데이터(328)를 식별하고; 손 위치 데이터(133), 머리 위치 데이터(133), 이미지-기반 위치 데이터(328), 및 현재의 참조 프레임(330)을 이용하여 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하도록 구성되고; 가상 이미지 제어 데이터(135)는 가상 이미지 애플리케이션(137)에 의한 사용을 위해 구성된다.
하나의 변형예에서, 가상 현실 시스템에 있어서, 가상 현실 매니저(106)는 가상 이미지 제어 데이터(135)를 가상 이미지 애플리케이션(137)에 보내고, 가상 이미지 애플리케이션(137)으로부터 현재의 시간(314)에 대한 가상 환경(102)의 현재의 가상 이미지(310)를 수신하도록 구성된다. 다른 변형예에서, 가상 현실 시스템은: 머리에-장착되는 시스템(108)과 연계된 디스플레이 장치(116)를 더 포함하고, 가상 현실 매니저(106)는 디스플레이 장치(116)에서 가상 환경(102)의 현재의 가상 이미지(310)를 사용자(104)에게 디스플레이하도록 추가로 구성된다. 또 다른 변형례에서, 가상 현실 시스템에 있어서, 현재의 가상 이미지(310)는 가상 왼손(142) 및 가상 오른손(144)을 포함하고, 가상 왼손(142)은 사용자(104)의 왼손(124)을 나타내는 이미지이고, 가상 오른손(144)은 사용자(104)의 오른손(126)을 나타내는 이미지이다.
또 다른 변형예에서, 가상 현실 시스템에 있어서, 가상 현실 매니저(106)는: 손 위치 데이터(133)와 머리 위치 데이터(120)를 시간에 대해 동기화하도록 구성된 데이터 코디네이터(data coordinator)(336)를 포함하고, 데이터 코디네이터(336)는: 손 위치 데이터(133)에서의 왼손 위치 데이터(134), 손 위치 데이터(133)에서의 오른손 위치 데이터(136), 및 이미지-기반 위치 데이터(328)를 이용하여, 변경된 손 위치 데이터(422)를 식별하도록 구성된 손 데이터 변조기(418); 머리 위치 데이터(120) 및 현재의 참조 프레임(330)을 이용하여, 변경된 머리 위치 데이터(120)를 식별하도록 구성된 머리 데이터 변조기(420); 변경된 손 위치 데이터(422), 변경된 머리 위치 데이터(120), 및 제약사항들의 세트(416)를 이용하여 가상 이미지 제어 데이터(135)를 생성하도록 구성된 제어 데이터 생성기(412); 및 사용자 이미지들의 세트(150)를 기초로 하는 사용자 데이터(145)를 이용하여 제약사항들의 세트(416)를 식별하도록 구성된 제약사항 식별자(406);를 포함한다.
하나의 예에서, 가상 현실 시스템에 있어서, 데이터 코디네이터(336)는: 변경된 손 위치 데이터(422), 변경된 머리 위치 데이터(120), 및 제약사항들의 세트(416)를 이용하여 손가락 위치 에러(426), 상대적 손 위치 에러(428), 및 머리 위치 에러(430)를 식별하도록 구성된 피드백 제어기(410)를 더 포함하고, 제어 데이터 생성기(412)는 가상 이미지 제어 데이터(135)를 생성하기 위하여 손가락 위치 에러(428), 상대적 손 위치 에러(430), 및 머리 위치 에러(430)를 이용하도록 구성된다. 또 다른 예에서, 가상 현실 시스템에 있어서, 가상 현실 시스템은: 손 시스템(131)을 더 포함하고, 손 시스템(131)은: 왼손 위치 데이터(134)를 생성하도록 구성된 왼쪽 장갑(128); 및 오른손 위치 데이터(136)를 생성하도록 구성된 오른쪽 장갑(130);을 포함하고, 왼쪽 장갑(128)은 사용자(104)의 왼손(124)에 실질적으로 맞도록 구성되고, 오른쪽 장갑(130)은 사용자(104)의 오른손(126)에 실질적으로 맞도록 구성된다.
또 다른 예에서, 가상 현실 시스템에 있어서, 가상 이미지 제어 데이터(135)는 가상 환경(102)의 가상 이미지(140)를 제어하기 위하여 이용되고, 가상 환경(102)은 설계 환경, 생산 환경, 컴퓨터 환경, 테스트 환경, 데이터 관리 환경, 검사 환경, 및 작동 환경 중의 하나로부터 선택된 엔지니어링 환경(103)의 시뮬레이션이다.
하나의 관점에 따라서, 컴퓨터가 공개되는데, 컴퓨터는: 버스; 버스에 연결된 비일시적 저장 장치; 및 버스에 연결된 프로세서 유닛(904);을 포함하고, 비일시적 저장 장치는 프로그램 코드를 포함하고, 프로세서 유닛(904)은: 손 시스템(131)으로부터 사용자(104)의 적어도 하나의 손에 대한 손 위치 데이터(133)를 수신하고; 머리에-장착되는 시스템(108)으로부터 사용자(104)의 머리(112)에 대한 머리 위치 데이터(120)를 수신하고; 현재의 시간(314)에 대응하는 타겟 이미지를 이용하여 현재의 시간(314)에 대해 현재의 참조 프레임(330) 및 이미지-기반 위치 데이터(328)를 식별하고; 손 위치 데이터(133), 머리 위치 데이터(120), 이미지-기반 위치 데이터(328), 및 현재의 참조 프레임(330)을 이용하여 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하기; 위하여 프로그램 코드를 실행하도록 구성되고, 가상 이미지 제어 데이터(135)는 가상 이미지 애플리케이션(137)에 의한 사용을 위해서 구성된다.
하나의 변형예에서, 상기 컴퓨터에 있어서, 프로세서 유닛(904)은 머리에-장착되는 시스템(108)과 연계된 디스플레이 장치(116) 상에, 가상 이미지 애플리케이션(137)으로부터 수신된, 현재의 시간(314)에 대한 현재의 가상 이미지(310)를 디스플레이하기 위하여 프로그램 코드를 실행하도록 추가로 구성된다.
상이한 예시적인 실시 예들의 설명이 도시 및 설명의 목적을 위해서 제시되었으며, 공개된 형태의 실시 예들로 한정 또는 제한하려는 의도는 아니다. 많은 변경들 및 변형들이 당해 기술분야의 통상의 기술자들에게 명백할 것이다. 게다가, 상이한 예시적인 실시 예들은 다른 예시적인 실시 예들과 비교하여 상이한 이점들을 제공할 수 있다. 선택된 실시 예 또는 실시 예들은 실시 예들의 원리와 실용적인 애플리케이션을 가장 잘 설명하기 위하여 선택 및 설명되었고, 당해 기술분야의 통상의 기술자들이 심사숙고된 특정 사용에 적합한 다양한 변경들을 가진 다양한 실시 예들에 대해 본 공개로 이해하는 것을 가능하게 한다.

Claims (10)

  1. 가상 환경(virtual environment)(102)의 가상 이미지(virtual image)(140)를 생성하기 위한 방법으로서, 상기 방법은:
    가상 현실 매니저(virtual reality manager)(106)에서, 손 시스템(131)으로부터 사용자(104)의 적어도 하나의 손에 대한 손 위치 데이터를 수신하는 단계;
    가상 현실 매니저(106)에서, 머리에-장착되는(head-mounted) 시스템(108)으로부터 사용자(104)의 머리(112)에 대한 머리 위치 데이터(120)를 수신하는 단계;
    가상 현실 매니저(106)에 의해, 현재의 시간(314)에 대응하는 타겟 이미지(target image)를 이용하여 현재의 시간(314)에 대해 현재의 참조 프레임(330) 및 이미지-기반(image-based) 위치 데이터(328)를 식별하는 단계;
    가상 현실 매니저(106)에 의해, 손 위치 데이터(133), 머리 위치 데이터(120), 이미지-기반 위치 데이터(328), 및 현재의 참조 프레임(330)을 이용하여 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하는 단계; 및
    피드백 제어기(410)를 통해, 손가락 위치 에러(426), 상대적 손 위치 에러(428), 및 머리 위치 에러(430)를 이용하여 원하는 레벨의 정확성을 가지고 가상 이미지 제어 데이터(135)를 생성하는 단계;를 포함하고,
    가상 이미지 제어 데이터(135)는 가상 이미지 애플리케이션(137)에 의한 사용을 위해 구성되고,
    손가락 위치 에러(426)는 손 위치 데이터(133)에서 식별된 손가락들의 위치들과 현재의 가상 이미지에서 시뮬레이션된 손가락들의 위치들과의 차이이고,
    상대적 손 위치 에러(428)는 손 위치 데이터(133)에서 식별된 손들의 위치들과 현재의 가상 이미지에서의 가상의 손들의 위치들과의 차이이고,
    머리 위치 에러(430)는 머리 위치 데이터(120)에서 식별된 머리의 위치와 현재의 가상 이미지에서의 머리의 위치와의 차이인 것을 특징으로 하는, 가상 환경(102)의 가상 이미지(140)를 생성하기 위한 방법.
  2. 제 1 항에 있어서,
    가상 현실 매니저(106)에 의해, 가상 이미지 제어 데이터(135)를 가상 이미지 애플리케이션(137)에 보내는 단계; 및
    가상 이미지 애플리케이션(137)에 의해, 현재의 시간(314)에 대한 가상 이미지 제어 데이터(135)를 이용하여 현재의 시간(314)에 대해 가상 환경(102)의 현재의 가상 이미지(310)를 생성하는 단계;를 더 포함하고,
    현재의 시간(314)에 대한 가상 이미지 제어 데이터(135)를 이용하여 현재의 시간(314)에 대해 가상 환경(102)의 현재의 가상 이미지(310)를 생성하는 단계는: 가상 이미지 제어 데이터(135)를 기초로 하여 현재의 가상 이미지(130)에 가상 왼손(142) 및 가상 오른손(144)을 배치하는 단계를 포함하고,
    가상 왼손(142)은 사용자(104)의 왼손(124)을 나타내는 이미지이고, 가상 오른손(144)은 사용자(104)의 오른손(126)을 나타내는 이미지인 것을 특징으로 하는, 가상 환경(102)의 가상 이미지(140)를 생성하기 위한 방법.
  3. 제 1 항에 있어서,
    가상 현실 매니저(106)에 의해, 머리에-장착되는 시스템(108)에 연계된 디스플레이 장치(116)에서 가상 환경(102)의 현재의 가상 이미지(310)를 사용자(104)에게 디스플레이하는 단계로서, 현재의 가상 이미지(310)가 디스플레이 장치(116)에 디스플레이된 이전의 가상 이미지(312)를 대체하는 단계; 및
    사용자(104)의 왼손(124)에 실질적으로 맞도록 구성된 왼쪽 장갑(128)을 이용하여 왼손 위치 데이터(134)를 생성하는 단계; 및
    사용자(104)의 오른손(126)에 실질적으로 맞도록 구성된 오른쪽 장갑(130)을 이용하여 오른손 위치 데이터(136)를 생성하는 단계를 더 포함하고,
    왼손 위치 데이터(134) 및 오른손 위치 데이터(136)는 손 위치 데이터(133)를 형성하고,
    손 위치 데이터(133), 머리 위치 데이터(120), 이미지-기반 위치 데이터(328), 및 현재의 참조 프레임(330)을 이용하여 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하는 단계는:
    가상 현실 매니저(106)에 의해, 손 위치 데이터(133)와 머리 위치 데이터(120)를 시간에 대해 동기화하는 단계를 포함하는 것을 특징으로 하는, 가상 환경(102)의 가상 이미지(140)를 생성하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하는 단계는:
    손 위치 데이터(133)에서의 왼손 위치 데이터(134), 오른손 위치 데이터에서의 오른손 위치 데이터(136), 및 이미지-기반 위치 데이터(328)를 이용하여, 변경된 손 위치 데이터(422)를 식별하는 단계;
    머리 위치 데이터(120) 및 현재의 참조 프레임(330)을 이용하여, 변경된 머리 위치 데이터(120)를 식별하는 단계;
    변경된 손 위치 데이터(422), 변경된 머리 위치 데이터(120), 및 제약사항들의 세트(416)를 이용하여 가상 이미지 제어 데이터(135)를 생성하는 단계; 및
    사용자 이미지들의 세트(150)를 기초로 하는 사용자 데이터(145)를 이용하여 제약사항들의 세트(416)를 식별하는 단계를 포함하는 것을 특징으로 하는, 가상 환경(102)의 가상 이미지(140)를 생성하기 위한 방법.
  5. 제 4 항에 있어서,
    변경된 손 위치 데이터(422), 변경된 머리 위치 데이터(120), 및 제약사항들의 세트(416)를 이용하여 가상 이미지 제어 데이터(135)를 생성하는 단계는:
    피드백 제어기(410), 변경된 손 위치 데이터, 변경된 머리 위치 데이터(422), 및 제약사항들의 세트(416)를 이용하여 손가락 위치 에러(426), 상대적 손 위치 에러(428), 및 머리 위치 에러(430)를 식별하는 단계를 포함하고,
    가상 환경(102)은 설계 환경, 생산 환경, 컴퓨터 환경, 테스트 환경, 데이터 관리 환경, 검사 환경, 및 작동 환경 중의 하나로부터 선택된 엔지니어링 환경(engineering environment)의 시뮬레이션(simulation)인 것을 특징으로 하는, 가상 환경(102)의 가상 이미지(140)를 생성하기 위한 방법.
  6. 가상 현실 시스템으로서, 가상 현실 시스템은:
    사용자(104)의 머리(112)에 대해 착용되도록 구성된 머리에-장착되는 시스템(108);
    머리에-장착되는 시스템(108)과 연계된 가상 현실 매니저(106); 및
    가상 현실 매니저(106)의 데이터 코디네이터(data coordinator)(336)의 제어 데이터 생성기(412);를 포함하고,
    가상 현실 매니저(106)는:
    손 시스템(131)으로부터 사용자(104)의 적어도 하나의 손에 대한 손 위치 데이터(133)를 수신하고;
    머리에-장착되는 시스템(108)에서의 센서 시스템(118)으로부터 사용자(104)의 머리(112)에 대한 머리 위치 데이터(120)를 수신하고;
    현재의 시간(314)에 대응하는 타겟 이미지를 이용하여 현재의 시간(314)에 대해 현재의 참조 프레임(330) 및 이미지-기반 위치 데이터(328)를 식별하고; 그리고
    손 위치 데이터(133), 머리 위치 데이터(133), 이미지-기반 위치 데이터(328), 및 현재의 참조 프레임(330)을 이용하여 현재의 시간(314)에 대해 가상 이미지 제어 데이터(135)를 생성하도록 구성되고,
    가상 이미지 제어 데이터(135)는 가상 이미지 애플리케이션(137)에 의한 사용을 위해 구성되고,
    제어 데이터 생성기(412)는 가상 이미지 제어 데이터(135)를 생성하기 위하여 손가락 위치 에러(426), 상대적 손 위치 에러(428), 및 머리 위치 에러(430)를 이용하도록 구성되고,
    손가락 위치 에러(426)는 손 위치 데이터(133)에서 식별된 손가락들의 위치들과 현재의 가상 이미지에서 시뮬레이션된 손가락들의 위치들과의 차이이고,
    상대적 손 위치 에러(428)는 손 위치 데이터(133)에서 식별된 손들의 위치들과 현재의 가상 이미지에서의 가상의 손들의 위치들과의 차이이고,
    머리 위치 에러(430)는 머리 위치 데이터(120)에서 식별된 머리의 위치와 현재의 가상 이미지에서의 머리의 위치와의 차이인 것을 특징으로 하는 가상 현실 시스템.
  7. 제 6 항에 있어서,
    머리에-장착되는 시스템(108)과 연계된 디스플레이 장치(116)를 더 포함하고,
    가상 현실 매니저(106)는 디스플레이 장치(116)에서 가상 환경(102)의 현재의 가상 이미지(310)를 사용자(104)에게 디스플레이하도록 추가로 구성되고;
    가상 현실 매니저(106)는, 가상 이미지 제어 데이터(135)를 가상 이미지 애플리케이션(137)에 보내고, 가상 이미지 애플리케이션(137)으로부터 현재의 시간(314)에 대한 가상 환경(102)의 현재의 가상 이미지(310)를 수신하도록 구성되고;
    현재의 가상 이미지(310)는 가상 왼손(142) 및 가상 오른손(144)을 포함하고,
    가상 왼손(142)은 사용자(104)의 왼손(124)을 나타내는 이미지이고, 가상 오른손(144)은 사용자(104)의 오른손(126)을 나타내는 이미지인 것을 특징으로 하는 가상 현실 시스템.
  8. 제 6 항 또는 제 7 항에 있어서,
    데이터 코디네이터(336)는 손 위치 데이터(133)와 머리 위치 데이터(120)를 시간에 대해 동기화하도록 구성되고,
    데이터 코디네이터(336)는:
    손 위치 데이터(133)에서의 왼손 위치 데이터(134), 손 위치 데이터(133)에서의 오른손 위치 데이터(136), 및 이미지-기반 위치 데이터(328)를 이용하여, 변경된 손 위치 데이터(422)를 식별하도록 구성된 손 데이터 변조기(418);
    머리 위치 데이터(120) 및 현재의 참조 프레임(330)을 이용하여, 변경된 머리 위치 데이터(120)를 식별하도록 구성된 머리 데이터 변조기(420);
    변경된 손 위치 데이터(422), 변경된 머리 위치 데이터(120), 및 제약사항들의 세트(416)를 이용하여 가상 이미지 제어 데이터(135)를 생성하도록 구성된 제어 데이터 생성기(412); 및
    사용자 이미지들의 세트(150)를 기초로 하는 사용자 데이터(145)를 이용하여 제약사항들의 세트(416)를 식별하도록 구성된 제약사항 식별자(406);를 포함하고,
    데이터 코디네이터(336)는:
    변경된 손 위치 데이터(422), 변경된 머리 위치 데이터(120), 및 제약사항들의 세트(416)를 이용하여 손가락 위치 에러(426), 상대적 손 위치 에러(428), 및 머리 위치 에러(430)를 식별하도록 구성된 피드백 제어기(410)를 더 포함하는 것을 특징으로 하는 가상 현실 시스템.
  9. 제 6 항 또는 제 7 항에 있어서,
    가상 현실 시스템은: 손 시스템(131)을 더 포함하고,
    손 시스템(131)은:
    왼손 위치 데이터(134)를 생성하도록 구성된 왼쪽 장갑(128); 및
    오른손 위치 데이터(136)를 생성하도록 구성된 오른쪽 장갑(130);을 포함하고,
    왼쪽 장갑(128)은 사용자(104)의 왼손(124)에 실질적으로 맞도록 구성되고,
    오른쪽 장갑(130)은 사용자(104)의 오른손(126)에 실질적으로 맞도록 구성되고,
    가상 이미지 제어 데이터(135)는 가상 환경(102)의 가상 이미지(140)를 제어하기 위하여 이용되고,
    가상 환경(102)은 설계 환경, 생산 환경, 컴퓨터 환경, 테스트 환경, 데이터 관리 환경, 검사 환경, 및 작동 환경 중의 하나로부터 선택된 엔지니어링 환경(103)의 시뮬레이션인 것을 특징으로 하는 가상 현실 시스템.
  10. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 가상 환경(102)의 가상 이미지(140)를 생성하기 위한 방법은 컴퓨터에 의해서 실행될 수 있고, 컴퓨터는:
    버스(bus);
    버스에 연결된 비일시적(non-transitory) 저장 장치; 및
    버스에 연결된 프로세서 유닛(904);을 포함하고,
    비일시적 저장 장치는 프로그램 코드를 포함하고,
    프로세서 유닛(904)은 청구항 제 1 항 내지 제 5 항 중 어느 한 항에 따른 방법의 단계들을 포함하는 프로그램 코드를 실행하도록 구성되는 것을 특징으로 하는, 가상 환경(102)의 가상 이미지(140)를 생성하기 위한 방법.
KR1020130002537A 2012-04-03 2013-01-09 가상 엔지니어링을 위한 시스템 및 방법 KR101965454B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/438,692 US9170648B2 (en) 2012-04-03 2012-04-03 System and method for virtual engineering
US13/438,692 2012-04-03

Publications (2)

Publication Number Publication Date
KR20130112735A KR20130112735A (ko) 2013-10-14
KR101965454B1 true KR101965454B1 (ko) 2019-04-03

Family

ID=48143054

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130002537A KR101965454B1 (ko) 2012-04-03 2013-01-09 가상 엔지니어링을 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US9170648B2 (ko)
EP (1) EP2648073B1 (ko)
JP (1) JP6063749B2 (ko)
KR (1) KR101965454B1 (ko)
CN (1) CN103365416B (ko)
AU (1) AU2013200623B2 (ko)
BR (1) BR102013007952B1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5993127B2 (ja) * 2011-10-25 2016-09-14 オリンパス株式会社 頭部装着型表示装置、情報端末、プログラム、情報記憶媒体、画像処理システム、頭部装着型表示装置の制御方法及び情報端末の制御方法
US20150185825A1 (en) * 2013-12-30 2015-07-02 Daqri, Llc Assigning a virtual user interface to a physical object
US10148894B2 (en) * 2014-07-02 2018-12-04 Sony Corporation Image processing device, image processing method, and program
US20160027220A1 (en) * 2014-07-24 2016-01-28 JRC Integrated Systems, Inc. Low latency methodologies for a headset-mounted camera on virtual reality displays
US10726625B2 (en) 2015-01-28 2020-07-28 CCP hf. Method and system for improving the transmission and processing of data regarding a multi-user virtual environment
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
US9852546B2 (en) 2015-01-28 2017-12-26 CCP hf. Method and system for receiving gesture input via virtual control objects
RU2601169C1 (ru) * 2015-06-11 2016-10-27 Виталий Витальевич Аверьянов Способ и устройство для взаимодействия с виртуальными объектами
CN105824411A (zh) * 2016-03-07 2016-08-03 乐视致新电子科技(天津)有限公司 基于虚拟现实的交互控制方法及装置
CN105913715A (zh) * 2016-06-23 2016-08-31 同济大学 适用于建筑环境工学研究的vr可共享实验系统及方法
CN107798704B (zh) * 2016-08-30 2021-04-30 成都理想境界科技有限公司 一种用于增强现实的实时图像叠加方法及装置
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
EP3574494A4 (en) * 2017-01-24 2021-03-24 Lonza Limited METHODS AND SYSTEMS FOR USING A VIRTUAL OR EXTENDED REALITY DISPLAY TO PERFORM INDUSTRIAL MAINTENANCE
CN107515673B (zh) * 2017-08-03 2020-05-08 合肥云内动力有限公司 互感手套及基于互感手套的汽车线路检测方法
ES2704373B2 (es) * 2017-09-15 2020-05-29 Seat Sa Método y sistema para mostrar información de realidad virtual en un vehículo
CN108196669B (zh) * 2017-12-14 2021-04-02 网易(杭州)网络有限公司 游戏角色模型的修正方法、装置、处理器及头戴式显示设备
DE102018200011A1 (de) 2018-01-02 2019-07-04 Ford Global Technologies, Llc Testsystem und Verfahren zum Testen einer Steuerung eines zumindest teilweise autonom fahrenden Fahrzeugs in einer virtuellen Umgebung
CN108762489B (zh) * 2018-05-07 2021-09-21 武汉灏存科技有限公司 基于数据手套的控制方法、数据手套、系统及存储介质
KR102200998B1 (ko) * 2018-11-27 2021-01-11 (주)투케이시스템 가상현실 기반 근골격 건강 상태 측정 시스템
US11199912B2 (en) 2018-11-30 2021-12-14 Magic Leap, Inc. Multi-modal hand location and orientation for avatar movement
CN113377028B (zh) * 2021-06-15 2022-11-18 湖南汽车工程职业学院 一种基于vr及5d的动力蓄电池测试教学系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5436638A (en) 1993-12-17 1995-07-25 Fakespace, Inc. Image display method and apparatus with means for yoking viewpoint orienting muscles of a user
US5495576A (en) 1993-01-11 1996-02-27 Ritchey; Kurtis J. Panoramic image based virtual reality/telepresence audio-visual system and method
WO1999006981A1 (en) 1997-08-04 1999-02-11 Emory University System for treating patients with anxiety disorders
US5980256A (en) 1993-10-29 1999-11-09 Carmein; David E. E. Virtual reality system with enhanced sensory apparatus
US6084556A (en) 1995-11-28 2000-07-04 Vega Vista, Inc. Virtual computer monitor
US6184847B1 (en) 1998-09-22 2001-02-06 Vega Vista, Inc. Intuitive control of portable data displays
US7190331B2 (en) 2002-06-06 2007-03-13 Siemens Corporate Research, Inc. System and method for measuring the registration accuracy of an augmented reality system
US20120249741A1 (en) 2011-03-29 2012-10-04 Giuliano Maciocci Anchoring virtual images to real world surfaces in augmented reality systems
US20130117377A1 (en) 2011-10-28 2013-05-09 Samuel A. Miller System and Method for Augmented and Virtual Reality
US8456416B2 (en) 2008-06-03 2013-06-04 Shimane Prefectural Government Image recognition apparatus, and operation determination method and program therefor
US8615383B2 (en) 2008-01-18 2013-12-24 Lockheed Martin Corporation Immersive collaborative environment using motion capture, head mounted display, and cave

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3311025B2 (ja) * 1991-07-12 2002-08-05 株式会社東芝 情報検索装置
US5381158A (en) 1991-07-12 1995-01-10 Kabushiki Kaisha Toshiba Information retrieval apparatus
US5320538A (en) 1992-09-23 1994-06-14 Hughes Training, Inc. Interactive aircraft training system and method
JP2000102036A (ja) * 1998-09-22 2000-04-07 Mr System Kenkyusho:Kk 複合現実感提示システム、複合現実感提示方法、マン・マシーンインタフェース装置、およびマン・マシーンインタフェース方法
JP3363837B2 (ja) * 1999-06-11 2003-01-08 キヤノン株式会社 ユーザインタフェース装置および情報処理方法
US6771294B1 (en) 1999-12-29 2004-08-03 Petri Pulli User interface
CA2675276C (en) 2007-01-22 2017-09-12 Bell Helicopter Textron Inc. System and method for controlling a virtual reality environment by an actor in the virtual reality environment
US8577084B2 (en) * 2009-01-30 2013-11-05 Microsoft Corporation Visual target tracking
US8267781B2 (en) 2009-01-30 2012-09-18 Microsoft Corporation Visual target tracking
JP5388909B2 (ja) 2010-03-09 2014-01-15 株式会社日立製作所 ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495576A (en) 1993-01-11 1996-02-27 Ritchey; Kurtis J. Panoramic image based virtual reality/telepresence audio-visual system and method
US5980256A (en) 1993-10-29 1999-11-09 Carmein; David E. E. Virtual reality system with enhanced sensory apparatus
US5436638A (en) 1993-12-17 1995-07-25 Fakespace, Inc. Image display method and apparatus with means for yoking viewpoint orienting muscles of a user
US6084556A (en) 1995-11-28 2000-07-04 Vega Vista, Inc. Virtual computer monitor
US6127990A (en) 1995-11-28 2000-10-03 Vega Vista, Inc. Wearable display and methods for controlling same
WO1999006981A1 (en) 1997-08-04 1999-02-11 Emory University System for treating patients with anxiety disorders
US6184847B1 (en) 1998-09-22 2001-02-06 Vega Vista, Inc. Intuitive control of portable data displays
US7190331B2 (en) 2002-06-06 2007-03-13 Siemens Corporate Research, Inc. System and method for measuring the registration accuracy of an augmented reality system
US8615383B2 (en) 2008-01-18 2013-12-24 Lockheed Martin Corporation Immersive collaborative environment using motion capture, head mounted display, and cave
US8456416B2 (en) 2008-06-03 2013-06-04 Shimane Prefectural Government Image recognition apparatus, and operation determination method and program therefor
US20120249741A1 (en) 2011-03-29 2012-10-04 Giuliano Maciocci Anchoring virtual images to real world surfaces in augmented reality systems
US20120249591A1 (en) 2011-03-29 2012-10-04 Giuliano Maciocci System for the rendering of shared digital interfaces relative to each user's point of view
US20130117377A1 (en) 2011-10-28 2013-05-09 Samuel A. Miller System and Method for Augmented and Virtual Reality

Also Published As

Publication number Publication date
CN103365416B (zh) 2017-05-24
EP2648073A2 (en) 2013-10-09
BR102013007952B1 (pt) 2020-10-20
EP2648073A3 (en) 2015-03-18
AU2013200623B2 (en) 2017-10-26
US9170648B2 (en) 2015-10-27
AU2013200623A1 (en) 2013-10-17
CN103365416A (zh) 2013-10-23
BR102013007952A2 (pt) 2015-08-04
JP6063749B2 (ja) 2017-01-18
JP2013214285A (ja) 2013-10-17
US20130257904A1 (en) 2013-10-03
EP2648073B1 (en) 2020-01-08
KR20130112735A (ko) 2013-10-14

Similar Documents

Publication Publication Date Title
KR101965454B1 (ko) 가상 엔지니어링을 위한 시스템 및 방법
CN110647237B (zh) 在人工现实环境中基于手势的内容共享
JP7164630B2 (ja) 予測サッカード着地点に基づく動的グラフィックスレンダリング
Spanlang et al. How to build an embodiment lab: achieving body representation illusions in virtual reality
US8599194B2 (en) System and method for the interactive display of data in a motion capture environment
EP2942693B1 (en) Systems and methods for viewport-based augmented reality haptic effects
KR102194164B1 (ko) 홀로그램 객체 피드백
CN110647239A (zh) 人工现实环境中的虚拟内容的基于手势的投射和操纵
EP3462286A1 (en) Massive simultaneous remote digital presence world
KR20220012990A (ko) 인공 현실 시스템들을 위한 팔 응시-구동 사용자 인터페이스 요소 게이팅
EP3106963B1 (en) Mediated reality
CN108369478A (zh) 用于交互反馈的手部跟踪
CN103443742A (zh) 用于凝视和姿势接口的系统和方法
WO2018225187A1 (ja) 情報処理システム、情報処理装置、サーバ装置、画像提供方法および画像生成方法
KR20220018561A (ko) 사용자 인터페이스 요소들을 게이팅하기 위한 개인 어시스턴트 요소를 갖는 인공 현실 시스템들
US11496852B2 (en) Head-related transfer function
US10984571B2 (en) Preventing transition shocks during transitions between realities
KR20220018562A (ko) 인공 현실 시스템을 위한 모서리-식별 제스처-구동 사용자 인터페이스 요소 게이팅
Leoncini et al. Multiple NUI device approach to full body tracking for collaborative virtual environments
Mihelj et al. Introduction to virtual reality
CN106125927B (zh) 图像处理系统及方法
KR102256607B1 (ko) 다중 콘텐츠 표현이 가능한 다중 가상현실 콘텐츠 제공 시스템
KR20240009478A (ko) 저지연, 저전력 다중 채널 오디오 처리
Tecchia et al. Addressing the problem of Interaction in fully Immersive Virtual Environments: from raw sensor data to effective devices
Heukers A Smartphone-based Controller for Virtual Reality Applications

Legal Events

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