KR20190073281A - 2-차원 및 3-차원 추적을 위해 사용가능한 햅틱방식-인에이블형 주변기기 - Google Patents
2-차원 및 3-차원 추적을 위해 사용가능한 햅틱방식-인에이블형 주변기기 Download PDFInfo
- Publication number
- KR20190073281A KR20190073281A KR1020180160670A KR20180160670A KR20190073281A KR 20190073281 A KR20190073281 A KR 20190073281A KR 1020180160670 A KR1020180160670 A KR 1020180160670A KR 20180160670 A KR20180160670 A KR 20180160670A KR 20190073281 A KR20190073281 A KR 20190073281A
- Authority
- KR
- South Korea
- Prior art keywords
- peripheral
- processor
- sensor
- haptic
- determining
- Prior art date
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 493
- 230000000694 effects Effects 0.000 claims abstract description 113
- 230000004044 response Effects 0.000 claims abstract description 73
- 230000033001 locomotion Effects 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims description 80
- 230000003287 optical effect Effects 0.000 claims description 37
- 230000003213 activating effect Effects 0.000 claims description 13
- 230000001052 transient effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 24
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 4
- 238000005452 bending Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 210000000707 wrist Anatomy 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000035807 sensation Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 230000003155 kinesthetic effect Effects 0.000 description 2
- 239000000696 magnetic material Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 229910001285 shape-memory alloy Inorganic materials 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 210000000245 forearm Anatomy 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 210000004247 hand Anatomy 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000009527 percussion Methods 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000005060 rubber Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03543—Mice or pucks
- G06F3/03544—Mice or pucks having dual sensing arrangement, e.g. two balls or two coils used to track rotation of the pointing device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
- G06F3/005—Input arrangements through a video camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/016—Input arrangements with force or tactile feedback as computer generated output to the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03543—Mice or pucks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/033—Indexing scheme relating to G06F3/033
- G06F2203/0333—Ergonomic shaped mouse for one hand
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/041—Indexing scheme relating to G06F3/041 - G06F3/045
- G06F2203/04101—2.5D-digitiser, i.e. digitiser detecting the X/Y position of the input means, finger or stylus, also when it does not touch, but is proximate to the digitiser's interaction surface and also measures the distance of the input means within a short range in the Z direction, possibly with a separate measurement setup
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
Abstract
본원에 개시되는 하나의 예시적인 주변기기는 실제 공간에서 주변기기의 물리적 위치를 검출하기 위해 사용가능한 하나 이상의 센서를 포함한다. 예시적인 주변기기는 센서(들)를 사용하여 실제 공간에서 주변기기가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정할 수 있다. 주변기기가 표면 상에 위치된다고 결정하는 것에 응답하여, 주변기기는 표면을 따르는 주변기기의 2-차원 움직임에 기초하여 햅틱 효과들의 제1 세트를 제공하도록 구성되는 제1 햅틱 출력 모드를 활성화시킬 수 있다. 주변기기가 표면을 벗어나 위치된다고 결정하는 것에 응답하여, 주변기기는 실제 공간에서 주변기기의 3-차원 움직임에 기초하여 햅틱 효과들의 제2 세트를 제공하도록 구성되는 제2 햅틱 출력 모드를 활성화시킬 수 있다.
Description
본 개시내용은 일반적으로 사용자 인터페이스 디바이스들의 분야에 관한 것이다. 더 구체적으로, 제한에 의해서가 아니라, 이 개시내용은 2-차원 및 3-차원 추적을 위해 사용가능한 햅틱방식-인에이블형 주변기기에 관한 것이다.
주변기기는 컴퓨팅 디바이스에 입력을 제공하거나 컴퓨팅 디바이스로부터 출력을 수신하거나, 또는 둘 모두를 수행하기 위해 컴퓨팅 디바이스에 접속하고 컴퓨팅 디바이스와 공조하는 보조 디바이스이다. 주변기기들은 이들이 통신하는 컴퓨팅 디바이스들과는 별개이며 컴퓨팅 디바이스들에 추가적인 기능성을 제공한다. 예를 들어, 입력 주변기기들은 컴퓨팅 디바이스에 추가적인 입력 기능성을 제공할 수 있다. 입력 주변기기들의 예들은 마우스, 키보드, 게임 제어기, 스타일러스, 또는 원드(wand)를 포함할 수 있다. 출력 주변기기들은 컴퓨팅 디바이스에 추가적인 출력 기능성을 제공할 수 있다. 출력 주변기기들의 예들은 디스플레이, 프린터, 또는 프로젝터를 포함할 수 있다. 일부 주변기기들은 터치스크린, 태블릿, e-리더기, 헤드셋(예를 들어, 가상 현실 헤드셋 또는 증강 현실 헤드셋), 또는 스마트 디바이스(예를 들어, 스마트폰 또는 스마트 워치)와 같은, 입력 및 출력 주변기기들 모두일 수 있다.
입력 주변기기들은 컴퓨팅 디바이스에 단일 타입의 입력을 제공하도록 일반적으로 설계된다. 예를 들어, 마우스는 2-차원 입력(예를 들어, 좌표면에서 X 및 Y 좌표들)만을 컴퓨팅 디바이스에 제공할 수 있다. 그리고 게임 제어기는 컴퓨팅 디바이스에 3-차원 입력(예를 들어, X, Y 및 Z 좌표들)만을 제공할 수 있다. 이는 사용자가 적어도 2개의 상이한 주변기기를 컴퓨팅 디바이스에 접속시키고, 상이한 디바이스들 사이에서 수동으로 스위칭하여 상이한 타입들의 입력을 컴퓨팅 디바이스에 제공할 것을 요구하는데, 이는 시간소모적이고 어려울 수 있다. 또한, 많은 주변기기들은 햅틱 피드백 능력들이 결여된다. 이는 주변기기들을 사용하는 컴퓨팅 디바이스와의 상호작용을 더 힘들고 덜 직관적이게 할 수 있다.
본 개시내용의 다양한 예들은 햅틱 효과들을 생성할 수 있고 2-차원 및 3-차원 추적 모두를 위해 사용가능한 주변기기를 수반한다.
일 예에서, 본 개시내용의 주변기기는 실제 공간에서 주변기기의 물리적 위치를 검출하고, 실제 공간에서 주변기기의 물리적 위치와 연관된 하나 이상의 센서 신호를 전송하기 위해 사용가능한 하나 이상의 센서를 포함한다. 주변기기는 하나 이상의 센서에 커플링되는 프로세서를 또한 포함할 수 있다. 주변기기는 프로세서가 하나 이상의 동작을 수행하도록 하기 위해 프로세서에 의해 실행가능한 프로그램 코드를 가지는 메모리 디바이스를 포함할 수 있다. 동작들은 하나 이상의 센서 신호를 수신하는 것을 포함할 수 있다. 동작들은 하나 이상의 센서 신호에 기초하여 실제 공간에서 주변기기가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정하는 것을 포함한다. 동작들은, 주변기기가 표면 상에 위치된다고 결정하는 것에 응답하여, 표면을 따르는 주변기기의 2-차원 움직임에 기초하여 햅틱 효과들의 제1 세트를 제공하도록 구성되는 제1 햅틱 출력 모드를 활성화시키는 것을 포함할 수 있다. 동작들은, 주변기기가 표면을 벗어나 위치된다고 결정하는 것에 응답하여, 실제 공간에서 주변기기의 3-차원 움직임에 기초하여 햅틱 효과들의 제2 세트를 제공하도록 구성되는 제2 햅틱 출력 모드를 활성화시키는 것을 포함할 수 있다.
또다른 예에서, 본 개시내용의 방법은 실제 공간에서 주변기기의 물리적 위치를 검출하기 위해 사용가능한 하나 이상의 센서로부터 센서 신호들의 제1 세트를 수신하는 것을 포함한다. 방법은 센서 신호들의 제1 세트에 기초하여 주변기기가 물리적으로 표면 상에 위치된다고 결정하는 것을 포함할 수 있다. 방법은, 주변기기가 물리적으로 표면 상에 위치된다고 결정하는 것에 응답하여, 표면을 따르는 주변기기의 2-차원 움직임에 기초하여 햅틱 효과들의 제1 세트를 제공하도록 구성되는 제1 햅틱 출력 모드를 활성화시키는 것을 포함할 수 있다. 방법은 하나 이상의 센서로부터 센서 신호들의 제2 세트를 수신하는 것을 포함할 수 있다. 방법은 센서 신호들의 제2 세트에 기초하여 실제 공간에서 주변기기가 물리적으로 표면을 벗어나 위치된다고 결정하는 것을 포함할 수 있다. 방법은, 주변기기가 표면을 벗어나 위치된다고 결정하는 것에 응답하여, 실제 공간에서 주변기기의 3-차원 움직임에 기초하여 햅틱 효과들의 제2 세트를 제공하도록 구성되는 제2 햅틱 출력 모드를 활성화시키는 것을 포함할 수 있다. 방법의 단계들 중 일부 또는 전부는 (예를 들어, 주변기기의) 프로세서에 의해 구현될 수 있다.
또다른 예에서, 본 개시내용의 비-일시적 컴퓨터-판독가능한 매체는 위 방법을 구현하기 위한 프로그램 코드를 포함할 수 있다.
이들 예시적인 예들은 본 발명 대상의 한계들을 제한하거나 정의하는 것이 아니라, 그 이해를 돕기 위한 예들을 제공하도록 언급된다. 예시적인 예들은 상세한 설명에서 논의되며, 추가적인 기재가 거기서 제공된다. 다양한 예들에 의해 제공되는 장점들은 이 명세서를 검토함으로써 그리고/또는 청구되는 발명대상의 하나 이상의 예를 구현함으로써 추가로 이해될 수 있다.
전체의 그리고 가능한 개시내용이 보다 구체적으로 명세서의 나머지에서 설명된다. 명세서는 후속하는 첨부된 도면에 대해 참조한다.
도 1a는 본 개시내용의 일부 양태들에 따른 주변기기의 예이다.
도 1b는 본 개시내용의 일부 양태들에 따른 표면을 벗어나 위치되는 도 1a의 주변기기의 예이다.
도 2는 본 개시내용의 일부 양태들에 따른 주변기기를 포함하는 시스템의 예의 블록도이다.
도 3은 본 개시내용의 일부 양태들에 따른 제거가능한 액세서리를 가지는 주변기기의 예이다.
도 4는 본 개시내용의 일부 양태들에 따른 운송 디바이스를 가지는 주변기기의 예이다.
도 5는 본 개시내용의 일부 양태들에 따른 운송 디바이스를 가지는 주변기기의 또다른 예이다.
도 6은 본 개시내용의 일부 양태들을 구현하기 위한 프로세스의 예의 플로우차트이다.
도 7은 본 개시내용의 일부 양태들에 따른 제스처를 검출하는 주변기기의 예이다.
도 8은 본 개시내용의 일부 양태들에 따른 오브젝트를 검출하는 주변기기의 예이다.
도 9는 본 개시내용의 일부 양태들을 구현하기 위한 프로세스의 일 예의 플로우차트이다.
도 1a는 본 개시내용의 일부 양태들에 따른 주변기기의 예이다.
도 1b는 본 개시내용의 일부 양태들에 따른 표면을 벗어나 위치되는 도 1a의 주변기기의 예이다.
도 2는 본 개시내용의 일부 양태들에 따른 주변기기를 포함하는 시스템의 예의 블록도이다.
도 3은 본 개시내용의 일부 양태들에 따른 제거가능한 액세서리를 가지는 주변기기의 예이다.
도 4는 본 개시내용의 일부 양태들에 따른 운송 디바이스를 가지는 주변기기의 예이다.
도 5는 본 개시내용의 일부 양태들에 따른 운송 디바이스를 가지는 주변기기의 또다른 예이다.
도 6은 본 개시내용의 일부 양태들을 구현하기 위한 프로세스의 예의 플로우차트이다.
도 7은 본 개시내용의 일부 양태들에 따른 제스처를 검출하는 주변기기의 예이다.
도 8은 본 개시내용의 일부 양태들에 따른 오브젝트를 검출하는 주변기기의 예이다.
도 9는 본 개시내용의 일부 양태들을 구현하기 위한 프로세스의 일 예의 플로우차트이다.
다양한 그리고 대안적인 예시적인 예들 및 첨부 도면들에 대한 참조가 이제 상세하게 이루어질 것이다. 각각의 예는 제한으로서가 아니라 설명으로써 제공된다. 수정들 및 변경들이 이루어질 수 있다는 것이 본 기술분야의 통상의 기술자에게 명백할 것이다. 예를 들어, 하나의 예의 일부로서 예시되거나 기술되는 특징들이 또다른 예에서 사용되어 추가적인 예를 산출할 수 있다. 따라서, 이 개시내용이 첨부되는 청구항들 및 그 등가물들의 범위 내에 드는 것으로서의 수정들 및 변경들을 포함하는 것이 의도된다.
햅틱방식
-
인에이블형
주변기기의 예시적인 예
본 개시내용의 일 예시적인 예는 데스크톱 컴퓨터와 같은 컴퓨팅 디바이스에 접속되는 주변기기 디바이스(예를 들어, "주변기기")를 포함한다. 주변기기는, 예를 들어, 책상 표면에 놓이는 컴퓨터 마우스일 수 있다. 사용자는 표면을 따라 주변기기를 움직여서 2-차원(2D) 입력을 컴퓨터에 제공할 수 있다. 예를 들어, 사용자는 컴퓨터-지원 설계(CAD) 소프트웨어를 사용하여 (예를 들어, 차량의) 모델을 설계할 수 있다. 사용자는 표면을 따라 주변기기를 슬라이딩시켜서 버튼들, 아이콘들, 메뉴들, 윈도우들, 또는 CAD 소프트웨어에 의해 출력되는 다른 오브젝트들과 상호작용하여 모델을 조작할 수 있다. 주변기기에 의해 제공되는 2D 입력은 사용자가 CAD 소프트웨어를 사용하여 수행되는 동작들에 대한 정확한 제어를 가지도록 할 수 있다. 예시적인 예에서, 사용자는 3-차원(3D) 환경에 보다 적합한 CAD 소프트웨어를 사용하여 다른 동작들을 수행하기를 또한 바랄 수 있다. 따라서, 사용자는 증강 현실 헤드셋을 착용하여 3D 환경에서 모델을 볼 수 있다. 사용자는 이후 주변기기를 표면으로부터 집어올리고, 책상 옆에 서서, 주변기기를 이용하여 실제 공간을 통해 움직여서 3D 입력을 컴퓨터에 제공한다. 이는 사용자가 2D 입력만을 사용하는 것보다 더 용이하게 모델을 회전시키고, 움직이고, 또는 그렇지 않은 경우 조작할 수 있게 한다. 예를 들어, 사용자는 모델 상의 제어 포인트들을 선택하고 조정함으로써 모델과 상호작용하여 모델의 표면 기하학형상을 조작할 수 있다. 일단 만족되면, 사용자는 책상에서 뒤로 기대어 앉고, 책상의 표면 상에 주변기기를 다시 위치시키고, 2D 입력을 사용하여 다시 계속 작업할 수 있다.
위의 예에서, 주변기기는 컴퓨팅 디바이스에 2D 및 3D 입력 모두를 제공할 수 있다. 주변기기는 실제 공간에서 주변기기의 물리적 위치를 검출하기 위한 하나 이상의 센서를 포함할 수 있다. 주변기기는 센서들을 사용하여 (실제 공간에서) 그것이 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정할 수 있다. 주변기기가 그것이 표면 상에 위치된다고 결정하는 경우, 주변기기는 2D 입력이 광학 센서와 같은 제1 센서를 사용하여 생성되어, 컴퓨팅 디바이스에 제공되는, 제1 추적 모드를 활성화시킬 수 있다. 주변기기가 그것이 표면을 벗어나 위치된다고 결정하는 경우, 주변기기는 3D 입력이 카메라와 같은 제2 센서를 사용하여 생성되어, 컴퓨팅 디바이스에 제공되는, 제2 추적 모드를 활성화시킬 수 있다. 이는 주변기기가 그것이 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 검출하고 그에 따라 추적 모드들 사이에서 스위칭할 수 있도록 한다. 일부 예들에서, 상이한 추적 모드들에 대해 사용되는 상이한 타입들의 센서들 및/또는 알고리즘은 제1 추적 모드가 제2 추적 모드보다 더 강건하고 정확해지는 결과를 초래할 수 있다.
일부 예들에서, 주변기기는 인사이드-아웃 추적을 사용하여 3D 입력을 생성할 수 있다. 인사이드-아웃 추적은 디바이스가, 디바이스 상에 위치되며 디바이스로부터 바깥쪽으로 향하는 센서를 사용하여 그것의 고유한 위치가 외부 환경에 대해 어떻게 변경하는지를 결정하는 것을 추적한다. 정확성을 개선하기 위해 외부 환경 내의 다양한 정적 위치들에 배치되는 마커들(예를 들어, 적외선 마커들)이 또한 존재할 수 있다. 예를 들어, 카메라는 주변기기 상에 위치되며 주변기기로부터 바깥쪽으로 향할 수 있다. 주변기기는 외부 환경에 대해 그것의 위치를 결정하기 위해 카메라를 사용하여 인사이드-아웃 추적을 구현할 수 있다. 인사이드-아웃 추적은 아웃사이드-인 추적과 대조될 수 있는데, 여기서 디바이스를 추적하는 센서는 디바이스에 대해 외부에 그리고 디바이스를 향하여 위치된다. 아웃사이드-인 추적의 예는 책상 위 또는 방 안에 서 있는 것과 같이, 주변기기에 대해 외부에 위치되어 방을 통하는 주변기기의 움직임의 이미지들을 캡처하는 카메라를 포함할 수 있다.
인사이드-아웃 추적은 임의의 개수 및 조합의 알고리즘들을 사용하여, 예컨대 동시적인 위치표시(localization) 및 매핑(SLAM) 알고리즘을 통해 구현될 수 있다. SLAM은 알려지지 않은 외부 환경의 맵을 구성하거나 업데이트하는 동시에 또한 그 환경 내에서 오브젝트의 위치를 계속 추적하는 것을 수반할 수 있다. 일 예에서, 주변기기는 실제 공간에서 그것의 3D 위치를 결정하기 위해 SLAM 알고리즘을 구현한다. 주변기기는 이후 컴퓨팅 디바이스에 대한 입력으로서 그것의 3D 위치를 제공할 수 있다.
일부 예들에서, 주변기기는 햅틱 피드백을 또한 생성할 수 있다. 주변기기는 주변기기가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지에 기초하여 상이한 햅틱 피드백을 생성할 수 있다. 예를 들어, 주변기기가 그것이 표면 상에 위치됨을 검출하는 경우, 주변기기는 표면을 따르는 주변기기의 2D 움직임에 기초하여 햅틱 효과들의 제1 세트를 생성하도록 구성되는 제1 햅틱 출력 모드를 활성화시킬 수 있다. 주변기기가 그것이 표면을 벗어나 위치됨을 검출하는 경우, 주변기기는 실제 공간에서 주변기기의 3D 움직임에 기초하여 햅틱 효과들의 제2 세트를 생성하도록 구성되는 제2 햅틱 출력 모드를 활성화시킬 수 있다. 햅틱 효과들의 제2 세트는 햅틱 효과들의 제1 세트와는 타입, 진폭, 파형, 듀레이션, 및/또는 주파수에 있어서 상이할 수 있다. 위에서 논의된 방식으로의 제1 및 제2 햅틱 출력 모드들 사이의 스위칭은 주변기기가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지에 따라 햅틱 피드백이 적절하게 조정될 수 있도록 한다.
이들 예시적인 예들은 본원에서 논의된 일반적인 발명 대상을 독자에게 소개하기 위해 주어지며, 개시된 개념들의 범위를 제한하도록 의도되지 않는다. 후속하는 섹션들은 동일한 번호들이 동일한 엘리먼트들을 나타내는 도면들에 관해 다양한 추가적인 특징들 및 예들을 기술하며, 안내적(directional) 기재들이 예시적인 예들을 기술하기 위해 사용되지만, 마찬가지로 예시적인 기재들은 본 개시내용을 제한하도록 사용되지 않아야 한다.
햅틱방식
-
인에이블형
주변기기들에 대한 예시적인 시스템들
도 1a는 본 개시내용의 일부 양태들에 따른 주변기기(102)의 예이다. 이 예에서, 주변기기(102)는 사용자의 손으로 잡고 조작하도록 구성되는 핸드-헬드 디바이스이다. 주변기기(102)는 컴퓨팅 디바이스에 입력을 제공하기 위해 컴퓨팅 디바이스에 (예를 들어, 무선으로) 접속된다.
이 예에서, 주변기기(102)는 표면(104) 상에 위치된다. 표면(104)의 예들은 테이블톱; 데스크톱; 마우스패드; 나무, 금속, 고무 또는 플라스틱 조각; 또는 이들의 임의의 조합을 포함할 수 있다. 표면(104)은 곡선 형상 또는 실질적으로 평면 형상을 가질 수 있는데, 이는 주변기기(102)가 슬라이드할 수 있는 비교적 평탄한 표면을 제공할 수 있다.
주변기기(102)는 입력 디바이스(110)와 같은, 하나 이상의 입력 디바이스를 포함할 수 있다. 입력 디바이스(110)의 예들은 버튼, 조이스틱, 터치스크린, 터치패드, 스위치, 또는 이들의 임의의 조합을 포함할 수 있다. 입력 디바이스는 사용자 입력을 검출하고 입력 신호를 컴퓨팅 디바이스에 전송할 수 있다. 입력 디바이스들은 주변기기(102)의 임의의 표면 또는 표면들의 조합 상에 위치될 수 있다.
주변기기(102)는 센서들(106a-b)과 같은 하나 이상의 센서를 포함할 수 있다. 2개의 센서(106a-b)가 도 1a에 예로서 도시되지만, 주변기기(102)는 1개 또는 3개의 센서와 같이, 더 많은 또는 더 적은 센서를 포함할 수 있다. 센서(들)는 실제 공간에서 주변기기(102)의 물리적 위치를 검출할 수 있다. 그리고 센서들은 동일한 타입 또는 상이한 타입들일 수 있다. 예를 들어, 센서(106a)는 표면(104)을 따르는 2D 추적을 구현하기 위한 광학 센서 또는 볼과 같은, 2D 센서일 수 있다. 센서(106b)는 실제 공간에서 3D 추적을 구현하기 위한 카메라, 가속계, 자이로스코프, 범위 검출기, 깊이 센서, 글로벌 포지셔닝 시스템(GPS) 및/또는 자속계와 같은 3D 센서일 수 있다.
주변기기(102)는 센서들(106a-b)을 사용하여 주변기기(102)가 표면(104) 상에 위치되는지 또는 표면(104)을 벗어나 위치되는지를 결정할 수 있다. 예를 들어, 주변기기(102)는 광학 센서로부터의 광학 신호들을 분석하여 주변기기(102)와 표면(104) 사이의 거리를 결정할 수 있다. 주변기기(102)는 이후 그 거리가 미리 정의된 임계를 초과하는지를 결정할 수 있다. 초과하지 않는다면, 주변기기(102)는 그것이 표면(104) 상에 위치된다고 결정하고, 제1 추적 모드를 활성화시킬 수 있다. 초과한다면, 주변기기(102)는 그것이 표면(104)을 벗어나 위치된다고 결정하고, 제2 추적 모드를 활성화시킬 수 있다. 주변기기(102)는 도 1b에 도시된 바와 같이, 주변기기(102)가 표면에 접촉하고 있지 않을 때 표면(104)을 "벗어나" 위치될 수 있다.
주변기기(102)는 또한 센서들(106a-b)을 사용하여 실제 공간에서 주변기기(102)의 2D 위치 및/또는 3D 위치를 결정할 수 있다. 예를 들어, 주변기기(102)가 제1 추적 모드에 있을 때, 주변기기(102)는 볼 또는 광학 센서를 사용하여 표면(104) 상의 주변기기(102)의 2D 위치를 결정할 수 있다. 그리고 주변기기(102)가 제2 추적 모드에 있을 때, 주변기기(102)는 하나 이상의 카메라를 사용하여 실제 공간에서 주변기기(102)의 3D 위치를 결정할 수 있다.
주변기기(102)는 햅틱 출력 디바이스들(108a-b)과 같은 하나 이상의 햅틱 출력 디바이스를 포함할 수 있다. 하나 이상의 햅틱 출력 디바이스(108a-b)는 하나 이상의 햅틱 효과를 사용자에게 제공할 수 있다. 햅틱 출력 디바이스들(108a-b)은 진동, 정전기력, 변형, 온도 변경, 및/또는 전기적 자극과 같은, 임의의 개수 및 조합의 자극들을 사용하여 임의의 개수 및 조합의 햅틱 효과들을 생성할 수 있다.
주변기기(102)는 하나 이상의 이벤트에 응답하여 햅틱 효과들을 출력하기 위해 햅틱 출력 디바이스들(108a-b)을 사용할 수 있다. 이벤트들은 컴퓨팅 디바이스 상에서 또는 주변기기(102) 상에서 발생할 수 있다. 이벤트는 임의의 상호작용, 액션, 충돌, 또는 연관된 햅틱 효과를 잠재적으로 가질 수 있는 다른 이벤트이다. 이벤트의 예들은 사용자 입력(예를 들어, 실제 또는 가상 버튼, 조이스틱, 또는 터치 표면과의 상호작용; 디바이스를 기울이거나 배향하는 것; 또는 디바이스를 구부리고, 접고, 뒤틀고, 늘이거나, 또는 휘는 것), 시스템 상태(예를 들어, 저 배터리, 저 메모리, 또는 시스템이 인입 호출을 수신하는 것에 기초하여 생성되는 통지와 같은 시스템 통지), 데이터의 송신, 데이터의 수신, 또는 프로그램 이벤트(예를 들어, 게임 오브젝트들 사이의 폭발, 충돌 또는 상호작용, 또는 새로운 레벨로의 진보와 같은 게임 이벤트)를 포함할 수 있다. 특정 예로서, 컴퓨팅 디바이스는 비디오 게임 내의 가상 캐릭터가 총에 맞았다고 결정하며 그 응답으로 햅틱 신호를 주변기기(102)에 전송할 수 있다. 주변기기(102)는 이후 햅틱 신호에 응답하여 햅틱 효과를 생성할 수 있다.
일부 예들에서, 주변기기(102)는 주변기기(102)가 표면(104) 상에 위치됨을 검출하는 것에 응답하여 제1 햅틱 출력 모드를 활성화시킬 수 있다. 주변기기(102)는 추가로 또는 대안적으로, 주변기기(102)가 표면(104)을 벗어나 위치된다고 검출하는 것에 응답하여 제2 햅틱 출력 모드를 활성화시킬 수 있다. 주변기기(102)는 어느 햅틱 출력 모드가 활성화되는지에 따라 상이한 햅틱 효과들을 출력할 수 있다. 예를 들어, 주변기기(102)는 상이한 햅틱 출력 디바이스들을 사용하여 어느 햅틱 출력 모드가 활성화되는지에 따라 햅틱 효과들을 생성할 수 있다. 특정 예로서, 주변기기(102)는 주변기기(102)가 제1 햅틱 출력 모드에 있을 때 제1 햅틱 출력 디바이스(108a)를 사용하여 (예를 들어, 진동과 같은 제1 타입의 자극을 사용하여) 제1 타입의 햅틱 효과를 생성할 수 있다. 그리고 주변기기(102)는 주변기기(102)가 제2 햅틱 출력 모드에 있을 때 제2 햅틱 출력 디바이스(108b)를 사용하여 (예를 들어, 변형과 같은 제2 타입의 자극을 사용하여) 제2 타입의 햅틱 효과를 생성할 수 있다.
일부 예들에서, 주변기기(102)는 상이한 햅틱-효과 라이브러리들 또는 알고리즘들을 사용하여 어느 햅틱 출력 모드가 활성화되느냐에 따라 출력할 햅틱 효과를 결정한다. 예를 들어, 주변기기(102)는 이벤트가 발생했음을 나타내는 통지를 컴퓨팅 디바이스로부터 수신할 수 있다. 주변기기(102)가 제1 햅틱 출력 모드에 있는 경우, 주변기기(102)는 제1 햅틱-효과 라이브러리를 사용하여 이벤트에 응답하여 출력할 햅틱 효과를 결정할 수 있다. 주변기기(102)가 제2 햅틱 출력 모드에 있는 경우, 주변기기(102)는 제2 햅틱-효과 라이브러리를 사용하여 이벤트에 응답하여 출력할 또다른 햅틱 효과를 결정할 수 있다. 이는 햅틱 효과들이 상이한 햅틱 출력 모드들에 대해 조정(tailor)될 수 있도록 한다.
일부 예들에서, 주변기기(102)는 어느 햅틱 출력 모드가 활성화되는지를 나타내는 정보를 컴퓨팅 디바이스에 전송할 수 있다. 컴퓨팅 디바이스는 이 정보를 사용하여 (i) 주변기기(102)를 사용하여 언제 햅틱 효과들이 생성되는지, (ii) 주변기기(102)를 사용하여 어느 햅틱 효과들이 생성되는지, 또는 (iii) 이들 모두를 제어할 수 있다. 예를 들어, 컴퓨팅 디바이스는 주변기기(102)가 제1 햅틱 출력 모드에 있을 때 단지 주변기기(102)가 이벤트들의 제1 세트에 응답하여 햅틱 효과들을 출력하도록 할 수 있다. 그리고 컴퓨팅 디바이스는 주변기기(102)가 제2 햅틱 출력 모드에 있을 때 이벤트들의 제2 세트에 응답하여 단지 주변기기(102)가 햅틱 효과들을 출력하도록 할 수 있다. 이는 상이한 햅틱 출력 모드들이 햅틱 트리거들로서 이벤트들의 상이한 세트들을 가질 수 있도록 할 수 있다. 또다른 예로서, 컴퓨팅 디바이스는 상이한 햅틱-효과 라이브러리들 또는 알고리즘들을 사용하여 어느 햅틱 출력 모드가 활성화되는지에 따라 주변기기(102)에 의해 출력될 햅틱 효과를 결정할 수 있다.
도 2는 본 개시내용의 일부 양태들에 따라 주변기기(102)를 포함하는 시스템(200)의 예의 블록도이다. 이 예에서, 주변기기(102)는 버스(206)를 통해 다른 하드웨어와 인터페이싱되는 하나 이상의 프로세서(202)를 포함한다. 다른 하드웨어는 메모리 디바이스(204), 네트워크 인터페이스 디바이스(210), 입력/출력(I/O) 인터페이스(212), 하나 이상의 센서(106), 및 하나 이상의 햅틱 출력 디바이스(108)를 포함한다. 이들 컴포넌트들 각각은 하기에 더 상세히 기술된다. 다른 예들은 도 2에 도시된 것보다 더 많거나 더 적은 컴포넌트를 포함할 수 있다.
메모리 디바이스(204)는 RAM, ROM, EEPROM 등과 같은 임의의 적절한 유형적(그리고 비-일시적) 컴퓨터-판독가능한 매체를 포함할 수 있고, 주변기기(102)의 동작을 구성하는 프로그램 컴포넌트들을 담을 수 있다. 예를 들어, 메모리 디바이스(204)는 하나 이상의 프로세서(202)가 동작들을 수행하도록 하기 위해 하나 이상의 프로세서(202)에 의해 실행가능한 프로그램 코드를 포함할 수 있다.
네트워크 인터페이스 디바이스(210)는 네트워크 접속을 용이하게 하는 또는 그렇지 않은 경우 전자 디바이스들 사이의 통신을 용이하게 하는 임의의 컴포넌트들을 포함할 수 있다. 일부 예들에서, 네트워크 인터페이스 디바이스(210)는 이더넷, USB 또는 IEEE1394 인터페이스와 같은 유선 인터페이스를 포함할 수 있다. 추가로 또는 대안적으로, 네트워크 인터페이스 디바이스(210)는 IEEE 802.11, 블루투스, 니어-필드 통신, 라디오-주파수 식별, 또는 라디오 인터페이스와 같은 무선 인터페이스를 포함할 수 있다. 라디오 인터페이스는 셀룰러 전화 네트워크들(예를 들어, CDMA, GSM, UMTS, 또는 다른 모바일 통신 네트워크)에 액세스하기 위한 것일 수 있다.
I/O 인터페이스(212)는 하나 이상의 디스플레이, 터치-감지 표면, 스피커, 마이크로폰, 버튼, 조이스틱, 및/또는 데이터를 입력하거나 데이터를 출력하기 위해 사용되는 다른 하드웨어와 같은 디바이스들에 대한 접속을 용이하게 할 수 있다.
일부 예들에서, 센서(들)(106)는 실제 공간에서의 주변기기(102)의 2D 위치, 실제 공간에서의 주변기기(102)의 3D 위치, 또는 둘 모두를 검출하기 위해 사용될 수 있다. 이러한 센서들의 예들은 볼, 광학 센서(예를 들어, 적외선 센서), 카메라, 깊이 센서, 범위 센서, 초음파 트랜스듀서, 스피커, 마이크로폰, 가속계, 자이로스코프, 경사계, GPS, 자속계, 또는 이들의 임의의 조합을 포함할 수 있다. 센서(들)(106)는 추가로 또는 대안적으로 저항성 센서, 용량성 센서, 압력 센서, 힘 센서, 바이오센서, 또는 이들의 임의의 조합과 같은, 다른 목적들을 위한 다른 타입들의 센서들을 포함할 수 있다. 센서(들)(106)는 센서 신호들을 프로세서(202)에 전송할 수 있다.
햅틱 출력 디바이스(들)(108)는 다양한 햅틱 효과들을 출력할 수 있다. 햅틱 효과들의 예들은 진동, 인지되는 마찰 계수에서의 변경, 시뮬레이트되는 텍스처, 온도에서의 변경, 타격감, 전기-촉각적 효과, 표면 변형(예를 들어, 주변기기(102)와 연관된 표면의 변형), 또는 이들의 임의의 조합을 포함할 수 있다. 주변기기(102)는 하나 이상의 햅틱 효과를 생성하기 위해 순차적으로 또는 동시에 동일한 또는 상이한 타입들의 다수의 햅틱 출력 디바이스(108)를 액추에이트시킬 수 있다. 햅틱 출력 디바이스(108)는 프로세서(202) 또는 컴퓨팅 디바이스(214)로부터의 햅틱 신호들에 응답하여 햅틱 효과들을 생성할 수 있다.
일부 예들에서, 햅틱 출력 디바이스(108)는 압전 재료, 전기 모터, 전자기 액추에이터, 보이스 코일, 형상 기억 합금, 전기-활성 폴리머, 솔레노이드, 이심 회전 질량 모터(ERM), 또는 선형 공진 액추에이터(LRA)와 같은, 기계적 진동-컴포넌트를 포함한다. 햅틱 출력 디바이스(108)는 기계적 진동-컴포넌트를 사용하여 진동들을 생성할 수 있다. 일부 예들에서, 햅틱 출력 디바이스(108)는 초음파 주파수(예를 들어, 20 kHz)에서 진동할 수 있는 초음파 액추에이터를 포함할 수 있다. 햅틱 출력 디바이스(108)는 초음파 액추에이터를 사용하여, 예를 들어, 표면 상의 인지되는 마찰 계수를 감소시킬 수 있다. 일부 예들에서, 햅틱 출력 디바이스(108)는 정전기 액추에이터를 포함할 수 있다. 정전기 액추에이터는 전도층 및 절연층을 가질 수 있다. 교류(AC)를 전도층에 인가하는 것은 전도층과 정전기 액추에이터 근처의 오브젝트(예를 들어, 신체 부위 또는 스타일러스) 사이의 용량성 커플링을 생성할 수 있고, 이에 의해 햅틱 효과를 생성한다. 정전기 액추에이터를 사용하여 생성되는 햅틱 효과의 예들은 시뮬레이트되는 텍스처, 시뮬레이트되는 진동, 타격감, 또는 주변기기(102)의 표면 상의 마찰 계수에서의 인지되는 변경을 포함할 수 있다.
햅틱 출력 디바이스(108)는 또한 주변기기(102)의 표면에서의 변형들을 생성할 수 있는데, 이는 변형 햅틱 효과들이라 지칭될 수 있다. 변형 햅틱 효과는 텍스처를 생성하기 위해서와 같이, 표면의 일부분들을 높이거나 낮추는 것; 표면을 구부리고, 접고, 말고, 비틀고, 쥐어짜거나 또는 휘는 것; 또는 이들의 임의의 조합을 포함할 수 있다. 일부 예들에서, 햅틱 출력 디바이스(108)는 스마트 겔 또는 형상-기억 합금을 사용하여 변형 햅틱 효과들을 생성할 수 있다. 다른 예들에서, 햅틱 출력 디바이스(108)는 유변 유체를 사용하여 변형 햅틱 효과들을 생성할 수 있다. 또다른 예들에서, 햅틱 출력 디바이스(108)는 회전 암 또는 피스톤과 같은 기계적 변형-디바이스를 사용하여 변형 햅틱 효과들을 생성할 수 있다. 일부 예들에서, 기계적 변형-디바이스는 래치 또는 잠금장치(lock)와 같은 커플링 메커니즘을 사용하여 활성화되거나 비활성화하는 수동 디바이스일 수 있다. 예를 들어, 주변기기(102)는 주변기기(102)의 2개의 부재가 서로에 대해 구부러질 수 있게 하는 힌지를 포함할 수 있다. 주변기기(102)가 표면 상에 위치될 때, 잠금장치는 힌지가 개방되는 것을 방지할 수 있고, 이에 의해 부재들이 구부러지는 것을 방지한다. 주변기기(102)가 표면으로부터 들어올려질 때, 잠금장치는 풀리고 부재들이 서로에 대해 구부러지도록 할 수 있는데, 이는 주변기기(102)를 변형시킬 수 있다.
다른 기법들 또는 방법들이 추가로 또는 대안적으로 햅틱 효과들을 출력하기 위해 사용될 수 있다. 예를 들어, 햅틱 출력 디바이스들(108)은 에어 또는 유체 포켓들, 입자 재밍, 전자석들, 공진 기계식 엘리먼트들, 마이크로-전자기계식 시스템("MEMS") 엘리먼트들 또는 펌프들, 열유체 포켓들, 가변 다공성 멤브레인, 또는 층류 변조를 사용하여 햅틱 효과들을 출력할 수 있다. 임의의 개수 및 조합의 기법들이 사용되어 햅틱 효과들을 생성할 수 있다.
일부 예들에서, 주변기기(102)는 표면으로부터 제거되는 것, 표면 상에 위치되는 것, 또는 둘 모두에 응답하여 형상을 변경할 수 있다. 예를 들어, 주변기기(102)는 주변기기(102)가 표면 상에 위치될 때 제1 형상(예를 들어, 마우스 형상)일 수 있다. 이는 2차원으로 표면을 따라 주변기기(102)를 슬라이딩할 때 사용자에게 보다 인체공학적으로 편안한 형상일 수 있다. 주변기기(102)가 표면으로부터 제거되는 경우, 주변기기(102)는 제거를 검출하고 그에 대응하여 제2 형상(예를 들어, 막대 형상 또는 스타일러스 형상)으로 변경할 수 있는데, 이는 3차원으로 주변기기(102)를 조작할 때 사용자에 대해 보다 인체공학적으로 편안한 형상일 수 있다. 일부 예들에서, 주변기기(102)는 햅틱 출력 디바이스(108)를 동작시킴으로써 그것의 형상을 변경할 수 있는데, 이는 주변기기(102)의 하나 이상의 표면을 변형시켜 주변기기(102)의 형상을 조작할 수 있다. 주변기기(102)는 그것이 표면에 접근하는 것, 그것이 표면 상에 위치되는 것, 입력 디바이스(예를 들어, 도 1의 입력 디바이스(110))가 조작되는 것, 또는 또다른 조건이 발생하는 것을 추가로 또는 대안적으로 검출할 수 있다. 그 응답으로, 주변기기(102)는 그것의 형상을 제1 형상으로 다시 조작할 수 있다. 예를 들어, 주변기기(102)는 카메라 또는 광학 센서를 사용하여 주변기기(102)가 표면에 접근하거나 접촉하는 것을 검출할 수 있다. 그 응답으로, 주변기기(102)는 그것의 형상을 다시 마우스 형상으로 변경할 수 있다.
주변기기(102)는 컴퓨팅 디바이스(214)와 같은 하나 이상의 외부 전자 디바이스와 유선 또는 무선 통신할 수 있다. 컴퓨팅 디바이스(214)의 예들은 데스크톱 컴퓨터, 랩톱 컴퓨터, 모바일 폰(예를 들어, 스마트폰), 휴대용 미디어 플레이어(예를 들어, MP3 플레이어), 태블릿, e-리더기, 휴대용 게임 디바이스, 게임 시스템, 의료 디바이스, 차량용 컴퓨팅 디바이스, 헤드셋, 또는 이들의 임의의 조합을 포함할 수 있다. 주변기기(102)는 컴퓨팅 디바이스(214)에 입력을 제공할 수 있다. 예를 들어, 주변기기(102)는 그것의 위치를 컴퓨팅 디바이스(214)에 통신할 수 있는데, 이는 주변기기(102)의 위치에 기초하여 커서의 위치를 제어할 수 있다.
주변기기(102)는 추가로 또는 대안적으로 가상 현실 헤드셋 또는 증강 현실 헤드셋과 같은 헤드셋(228)과 통신할 수 있다. 헤드셋(228)은 가상 오브젝트들을 시청하고 이와 상호작용하기 위한 디스플레이를 포함할 수 있다. 주변기기(102)는 헤드셋(228)에 입력을 제공할 수 있다. 예를 들어, 주변기기(102)는 주변기기(102)가 표면을 벗어나 위치될 때 헤드셋(228)에 3D 입력을 제공하고, 주변기기(102)가 표면 상에 위치될 때 헤드셋(228)에 2D 입력을 제공할 수 있다. 컴퓨팅 디바이스(214)가 헤드셋(228)과는 별개인 것으로서 도 2에 도시되지만, 다른 예들에서, 컴퓨팅 디바이스(214)는 헤드셋(228))이다(또는 이를 포함한다).
일부 예들에서, 주변기기(102)는 헤드셋(228)과 컴퓨팅 디바이스(214) 모두와 통신하여 둘 사이에서 스위칭할 수 있다. 예를 들어, 사용자는 온라인으로 옷을 쇼핑하기 위해 컴퓨팅 디바이스(214)를 사용할 수 있다. 컴퓨팅 디바이스는 가상 오브젝트를 디스플레이할 수 있는데, 예를 들어, 의복 아이템을 표현할 수 있다. 사용자는 주변기기(102)를 사용하여 원하는 경우 가상 오브젝트와 상호작용할 수 있다. 사용자는 이후 헤드셋(228)을 착용하고, 일어서서, 주변기기(102)를 표면으로부터 들어올려서 3D 환경에서 가상 오브젝트와 맞물릴 수 있다(engage with). 주변기기(102)는 그것이 표면으로부터 제거되었음을 검출할 수 있고 그에 응답하여 헤드셋(228)과 통신하여 헤드셋(228)이 그것의 디스플레이 상에 가상 오브젝트를 디스플레이하도록 한다. 주변기기(102)는 또한 컴퓨팅 디바이스(214)와 통신하여 컴퓨팅 디스플레이(214)가 그것의 디스플레이를 셧 다운시키고, 대기 모드로 들어가거나, 또는 또다른 동작을 수행하도록 할 수 있다. 일단 사용자가 3D 환경에서 가상 오브젝트와의 맞물림을 종료하면, 사용자는 주변기기(102)를 그것의 표면 상으로 다시 배치할 수 있다. 주변기기(102)는 그것이 표면 상에 다시 배치되었음을 검출할 수 있고, 그에 응답하여 컴퓨팅 디바이스(214)가 가상 오브젝트를 다시 한번 디스플레이하도록 한다. 주변기기(102)는 또한 헤드셋(228)이 그것의 디스플레이를 셧 다운시키고, 스탠바이 모드로 들어가거나, 또는 또다른 동작을 수행하도록 할 수 있다. 이는 사용자가 각자 컴퓨팅 디바이스(214) 및 헤드셋(228)에 의해 제공되는 2D 및 3D 환경들 사이에서 용이하게 스위칭할 수 있도록 한다.
주변기기(102)는 추가로 또는 대안적으로 하나 이상의 외부 센서(216)와 통신할 수 있다. 주변기기(102)는 외부 센서들(216)을 사용하여 실제 공간에서 주변기기(102)의 위치를 결정할 수 있다. 외부 센서들(216)의 예들은 광학 센서들, 카메라들, 깊이 센서들, 범위 센서들, 마이크로폰들, 초음파 트랜스듀서들, 또는 이들의 임의의 조합을 포함할 수 있다. 일부 예들에서, 주변기기(102)는 외부 센서들(216)로부터 센서 신호들을 수신하고, 센서 신호들에 기초하여 아웃사이드-인 추적 정보를 생성할 수 있다. 주변기기(102)는 또한 센서들(106)로부터의 센서 신호들에 기초하여 인사이드-아웃 추적 정보를 생성할 수 있다. 주변기기(102)는 이후 아웃사이드-인 추적 정보, 인사이드-아웃 추적 정보, 또는 둘 모두에 기초하여 실제 공간에서 주변기기(102)의 위치를 결정할 수 있다. 일부 예들에서, 아웃사이드-인 추적 정보 및 인사이드-아웃 추적 정보 모두를 사용하여 주변기기(102)의 위치를 결정하는 것은 이들 타입들 중 어느 하나의 정보를 단독으로 사용하는 것보다 더 강건하고 정확할 수 있다.
일부 예들에서, 주변기기(102)는 액세서리(222)와 같은 다양한 모듈러 컴포넌트들을 포함할 수 있다. 액세서리(222)의 예들은 스타일러스, 원드, 카드 또는 모듈을 포함할 수 있다. 액세서리(222)는 주변기기(102)의 베이스에 제거가능하게 커플링될 수 있다. 도 2가 단일 액세서리(222)를 도시하지만, 주변기기(102)는 임의의 개수 및 조합의 액세서리들(222)을 포함할 수 있다.
액세서리(222)의 예가 도 3에 도시된다. 도 3에서, 액세서리(222)는 주변기기(102)의 접촉 부분을 형성한다. 접촉 부분은 동작 동안 사용자의 손에 접촉되도록 성형되고 위치되는 주변기기(102)의 외부 표면이다. 액세서리(222)는 원하는 경우 주변기기(102)의 베이스(302)에 부착되거나 이로부터 제거될 수 있다. 예를 들어, 액세서리(222)는 베이스(302)로부터 형성되는 도크 또는 리셉터클 내에 삽입되거나, 이로부터 제거될 수 있다. 액세서리(222)가 베이스(302)에 부착될 때, 액세서리(222) 및 베이스(302)는 총체적으로 주변기기(102)를 형성할 수 있다.
액세서리(222)는 센서(230), 햅틱 출력 디바이스(224), 입력 디바이스(226), 프로세서, 메모리 디바이스, 버스, I/O 컴포넌트들, 네트워크 인터페이스 디바이스, 또는 이들의 임의의 조합을 포함할 수 있는데, 이는 위에서 논의된 컴포넌트들과 유사하게 구성될 수 있다. 일부 예들에서, 액세서리(222)는 3D 입력을 제공하도록 구성되고, 베이스(302)는 2D 입력을 제공하도록 구성된다. 예를 들어, 베이스(302) 내의 센서(106)는 컴퓨팅 디바이스에 2D 입력을 제공하기 위한 볼 또는 광학 센서일 수 있다. 그리고 액세서리(222) 내의 센서(230)는 컴퓨팅 디바이스에 3D 입력을 제공하기 위한 카메라일 수 있다. 하나의 이러한 예에서, 주변기기(102)는 액세서리(222)가 베이스(302)에 부착됨을 검출하고, 그 응답으로 센서(106)를 사용하여 컴퓨팅 디바이스에 2D 입력을 제공할 수 있다. 사용자가 베이스(302)로부터 액세서리(222)를 제거하는 경우, 주변기기(102)는 액세서리(222)가 베이스(302)로부터 분리됨을 검출하고, 그 응답으로 센서(230)를 사용하여 컴퓨팅 디바이스에 3D 입력을 제공할 수 있다. 예를 들어, 액세서리(222)는 3D 입력을 베이스(302)에 전송할 수 있고, 이는 차례로 3D 입력을 컴퓨팅 디바이스에 중계(relay)할 수 있다. 대안적으로, 액세서리(222)는 그것이 베이스(302)로부터 분리됨을 검출할 수 있고, 그 응답으로 베이스(302)를 통해 3D 입력을 중계하지 않고도 3D 입력을 컴퓨팅 디바이스에 제공할 수 있다.
특정 예로서, 사용자는 주변기기(102)에 부착된 액세서리(222)를 이용하여, 표면 상에서 (단일 유닛으로서) 주변기기(102)를 주위에서 움직임으로써 컴퓨팅 디바이스 상에서 비디오 게임을 플레이할 수 있다. 주변기기(102)는 액세서리(222)가 주변기기(102)에 부착됨을 검출하고 센서(106)를 통해 2D 입력을 제공할 수 있다. 주변기기(102)는 햅틱 출력 디바이스(108), 햅틱 출력 디바이스(224), 또는 둘 모두를 통해 햅틱 효과들을 제공할 수 있다. 사용자는 이후 3D 제어들을 사용하여 비디오 게임의 일부를 플레이하도록 결정하고, (예를 들어, 베이스(302)가 표면 상에 남아 있는 동안) 베이스(302)로부터 액세서리(222)를 들어올리고, 액세서리(222)를 조작하여 3D 입력을 컴퓨팅 디바이스에 제공할 수 있다. 주변기기(102)는 액세서리(222)가 주변기기(102)로부터 분리됨을 검출하고, 그 응답으로 3D 입력을 제공할 수 있다. 주변기기(102)는 또한 햅틱 출력 디바이스(224)를 통해 햅틱 효과들을 제공할 수 있다. 예를 들어, 컴퓨팅 디바이스 또는 베이스(302)는 햅틱 신호들을 액세서리(222)에 전송하여 액세서리(222)가 햅틱 출력 디바이스(224)를 통해 햅틱 효과들을 생성하도록 할 수 있다.
액세서리(222)는 임의의 개수 및 조합의 표면 상에 임의의 개수 및 조합의 입력 디바이스들을 포함하여, 사용자가 액세서리(222)를 조작하는 동안 입력을 제공할 수 있게 할 수 있다. 일부 예들에서, 입력 디바이스(226)는 액세서리(222)가 베이스에 부착될 때 정상적으로 숨겨지도록(예를 들어, 베이스(302) 내에 둘러싸이도록) 하기 위해 액세서리(222) 상에 위치될 수 있다. 입력 디바이스(226)는 이후 액세서리(222)가 베이스(302)로부터 제거될 때 가시적 및/또는 사용가능하게 될 수 있다. 특정 예로서, 액세서리(222)는 도 4에 도시된 위치에 버튼을 가질 수 있는데, 이는 베이스(302)에 의해 사용이 정상적으로는 차단된다. 그러나, 액세서리(222)가 베이스(302)로부터 제거되는 경우, 점선 화살표에 의해 표시되는 바와 같이, 입력 디바이스(226)가 사용 가능해진다.
일부 예들에서, 액세서리(222)는 베이스(302)로부터 분리되는 것 및/또는 베이스(302)에 접속되는 것에 응답하여 형상을 변경할 수 있다. 예를 들어, 액세서리(222)는 액세서리(222)가 베이스(302)에 부착될 때 제1 형상일 수 있다. 액세서리(222)가 베이스(302)로부터 제거되는 경우, 액세서리(222)는 제거를 검출하고, 그 응답으로 제2 형상으로, 예를 들어, 막대 형상 또는 스타일러스 형상으로 변경할 수 있는데, 이는 사용자에게 경제적으로 더 편안할 수 있다. 일부 예들에서, 액세서리(222)는 햅틱 출력 디바이스(224)를 동작시킴으로써 그것의 형상을 변경할 수 있는데, 이는 액세서리(222)의 하나 이상의 표면을 변형시켜 액세서리(222)의 형상을 조작할 수 있다. 액세서리(222)는 추가로 또는 대안적으로 (i) 그것이 베이스(302)에 접근하는 것, (ii) 그것이 베이스(302)에 부착되는 것, (iii) 입력 디바이스(226)가 조작된 것, 또는 (iv) 또다른 조건이 발생한 것을 검출할 수 있다. 그 응답으로, 액세서리(222)는 그것의 형상을 다시 제1 형상으로 조작할 수 있다.
특정 예로서, 액세서리(222)는 적어도 2개의 형상 사이에서 스위칭될 수 있다. 도 4에 도시된 바와 같이, 제1 형상은 곡선의 최상부-표면 및 평탄한 최하부-표면을 가질 수 있다. 제2 형상은 실질적으로 원통형일 수 있는데, 이는 실제 공간에서 잡거나 조작하기에 더 용이할 수 있다. 액세서리(222)는 액세서리(222)가 베이스(302)에 부착되는지를 검출하기 위해 부착 센서(304)를 포함할 수 있다. 부착 센서(304)의 예들은 전도성 경로, 버튼, 스위치, 광학 센서, 카메라, 또는 이들의 임의의 조합을 포함할 수 있다. 사용자가 베이스(302)로부터 액세서리(222)를 제거하는 경우, 액세서리(222)는 부착 센서(304)를 통해 제거를 검출하고, 그 응답으로 제2 형상으로 변형할 수 있다. 사용자는 이후 액세서리(222)를 조작하여 3D 입력을 컴퓨팅 디바이스에 제공할 수 있다. 사용자가 액세서리(222)를 사용하는 것을 종료할 때, 사용자는 베이스(302)에 액세서리(222)를 재부착하기를 원할 수 있다. 일 예에서, 사용자는 입력 디바이스(226)를 조작할 수 있는데, 이는 액세서리(222)가 제1 형상으로 다시 변경하도록 할 수 있다. 이는 액세서리(222)가 베이스(302)에 재부착되도록 할 수 있다. 또다른 예에서, 사용자가 액세서리(222)를 베이스(302) 쪽으로 움직임에 따라, 액세서리(222) 내의 센서는 액세서리(222)가 베이스(302)에 접근함을 검출할 수 있다. 센서의 예들은 카메라, 광학 센서, 깊이 센서, 거리 센서, 무선 신호 센서(예를 들어, 802.11, 블루투스, 또는 RFID), 또는 이들의 임의의 조합을 포함할 수 있다. 일부 예들에서, 센서는 센서(230)일 수 있다. 액세서리(222)는 액세서리(222)가 베이스(302)에 접근함을 검출하는 것에 응답하여 제1 형상으로 다시 변형할 수 있다. 이는 액세서리(222)가 베이스(302)에 재부착되도록 허용할 수 있다.
도 2로 돌아가면, 일부 예들에서, 주변기기(102)는 운송 디바이스(218)와 같은 하나 이상의 운송 디바이스를 포함할 수 있다. 운송 디바이스(218)의 예들은 손목 밴드, 스트랩, 코드, 강성 부재, 또는 사용자의 손목이나 팔과 같이, 손이 아닌 다른 신체 부위에 주변기기(102)를 커플링시킬 수 있는 또다른 디바이스를 포함할 수 있다. 운송 디바이스(218)는 주변기기(102)에 영구적으로 또는 제거가능하게 커플링될 수 있다. 운송 디바이스(218)를 가지는 주변기기(102)의 일 예가 도 4에 도시된다. 이 예에서, 운송 디바이스(218)는 플렉시블할 수 있다(예를 들어, 스트랩). 도 5에 도시된 예와 같은 다른 예들에서, 운송 디바이스(218)는 강성일 수 있는데, 이는 주변기기(102)가 사용자의 신체(예를 들어, 사용자의 손 또는 손가락들)에 대해 특정 위치를 유지하도록 할 수 있다. 이는, 예를 들어, 주변기기(102)가 표면(104)으로부터 들어올려질 때, 주변기기(102)를 사용하기에 더 용이하게 만들 수 있다. 도 5에 도시된 예에서, 강성 부재(502)가 주변기기(102)와 스트랩(504) 사이에 부착되는데, 이는 사용자의 신체를 둘러싼다(예를 들어, 사용자의 전완). 그러나 사용자의 신체에 운송 디바이스(218)를 커플링시키기 위한, 더 많은, 더 적은, 또는 상이한 배열의 강성 부재들을 가지는 다른 구성들이 또한 가능하다.
일부 예들에서, 운송 디바이스(218)는 햅틱 효과들을 사용자에게 제공할 수 있다. 예를 들어, 운송 디바이스(218)는 햅틱 출력 디바이스(220)와 같은 하나 이상의 햅틱 출력 디바이스를 포함할 수 있다. 주변기기(102)는 햅틱 출력 디바이스(220)를 액추에이트시켜서 예를 들어, 진동, 운동감각적 햅틱 효과, 변형 햅틱 효과, 또는 다른 햅틱 효과를 사용자에게 제공할 수 있다. 더 구체적으로, 햅틱 출력 디바이스(220)는 햅틱 신호들을 주변기기(102)으로부터 수신하고 그에 응답하여 진동하고; 크기가 팽창하고, 크기가 수축하고, 형상을 변경하고, 그렇지 않은 경우 형상을 변형하고; 전기 충격을 생성하고; 용량성 커플링을 생성하고; 또는 사용자에 의해 햅틱 효과로서 인지되는 또다른 감각 또는 감각들의 조합을 생성할 수 있다. 진동 또는 운동감각적 햅틱 효과들과 같은 일부 타입들의 햅틱 효과들은, 운송 디바이스(218)가 강성일 때 특히 명백할 수 있다. 그리고 일부 타입들의 햅틱 효과들은 주변기기(102)와의 접촉을 통해 간접적으로 인지가능할 수 있다. 예를 들어, 운송 디바이스(218)는 형상에서의 변형 또는 진동에 의해 햅틱 효과를 출력할 수 있다. 이는 운송 디바이스(218)의 강성 부재를 통해 주변기기(102)에 전파할 수 있고, 이에 의해 주변기기(102)가 움직이도록 할 수 있다. 사용자는 주변기기에 접촉하고 주변기기의 움직임을 햅틱 효과로서 인지할 수 있다.
일부 예들에서, 시스템(200)은 하기에 논의된 바와 같이 하나 이상의 프로세스를 구현할 수 있다.
햅틱방식
-
인에이블형
주변기기에 대한 예시적인 방법들
도 6은 본 개시내용의 일부 양태들을 구현하기 위한 프로세스의 예의 플로우차트이다. 다른 예들에서, 더 많은 단계들, 더 적은 단계들, 상이한 단계들, 또는 도 6에 도시된 단계들의 상이한 조합이 구현될 수 있다. 하기의 단계들은 도 2에 도시된 시스템(200)에 대해 논의된다.
단계(602)에서, 프로세서(202)는 주변기기(102)가 표면 상에 위치되는지를 결정한다. 프로세서(202)는 주변기기(102)가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정하기 위해 임의의 개수 및 조합의 기법들을 구현할 수 있다.
일부 예들에서, 프로세서(202)는 표면을 벗어나 반사되는 전송의 왕복 시간을 결정하고, 이후 왕복 시간을 사용하여 주변기기(102)가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정할 수 있다. 예를 들어, 센서(106)는 광원 및 센서를 포함하는 광학 센서일 수 있다. 광원의 예는 발광 다이오드(LED)일 수 있고, 센서의 예는 상보적 금속-산화물 반도체(CMOS)일 수 있다. 광원은 표면에 광을 전송할 수 있는데, 이는 센서에 의해 반사되고 검출될 수 있다. 프로세서(202)는 광이 광원에 의해 방출되었을 때와 센서에 의해 검출되었을 때 사이의 시간량을 결정할 수 있다. 이 시간량은 왕복 시간이라 지칭될 수 있다. 주변기기(102)가 표면을 벗어나 움직임에 따라, 왕복 시간이 증가할 수 있다. 프로세서(202)는 왕복 시간을 미리 정의된 임계와 비교할 수 있다. 왕복 시간이 미리 정의된 임계를 초과하는 경우, 프로세서(202)는 주변기기(102)가 표면을 벗어나 위치된다고 결정할 수 있다. 왕복 시간이 미리 정의된 임계 미만인 경우, 프로세서(202)는 주변기기(102)가 표면 상에 위치된다고 결정할 수 있다.
또다른 예로서, 센서(106)는 압원 및 센서를 포함할 수 있다. 압원의 예들은 초음파 트랜스듀서 또는 스피커일 수 있다. 센서의 예들은 초음파 트랜스듀서 또는 마이크로폰일 수 있다. 음원은 압력파(예를 들어, 사운드 또는 초음파 압력파)를 표면에 방출할 수 있는데, 이는 센서에 의해 반사되고 검출될 수 있다. 프로세서(202)는 압력파가 압원에 의해 방출되었을 때와 센서에 의해 검출되었을 때 사이의 왕복 시간을 결정할 수 있다. 프로세서(202)는 왕복 시간을 미리 정의된 임계와 비교할 수 있다. 왕복 시간이 미리 정의된 임계를 초과하는 경우, 프로세서(202)는 주변기기(102)가 표면을 벗어나 위치된다고 결정할 수 있다. 왕복 시간이 미리 정의된 임계 미만인 경우, 프로세서(202)는 주변기기(102)가 표면 상에 위치된다고 결정할 수 있다. 일부 예들에서, 압원 및 센서는 동일할 수 있다. 예를 들어, 단일의 초음파 트랜스듀서는 압력파를 전송할 수 있고 또한 압력파의 반사를 검출할 수 있다.
일부 예들에서, 프로세서(202)는 카메라에 의해 캡처된 이미지들의 하나 이상의 특성들에 기초하여 주변기기(102)가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정할 수 있다. 예를 들어, 센서(106)는 표면을 대향하는 카메라일 수 있다. 주변기기(102)가 표면으로부터 제거되는 경우, 카메라에 의해 캡처되는 이미지들은, 주변기기(102)가 표면 상에 위치되었을 때 찍힌 이미지들에 비해, 증가한 밝기, 시야, 색분포, 또는 이들의 임의의 조합을 가질 수 있다. 프로세서(202)는 이들 특정들 중 일부 또는 전부에서의 변경들을 검출할 수 있고, 그 응답으로 주변기기(102)가 표면을 벗어나 위치된다고 결정할 수 있다. 반면, 주변기기(102)가 표면 상에 위치되는 경우, 카메라에 의해 캡처되는 이미지들은 주변기기(102)가 표면을 벗어나 위치되었을 때 찍힌 이미지들에 비해, 감소한 밝기, 시야, 색분포, 또는 이들의 임의의 조합을 가질 수 있다. 프로세서(202)는 이들 특성들 중 일부 또는 전부에서의 일부 변경들을 검출하고, 그 응답으로 주변기기(102)가 표면 상에 위치된다고 결정할 수 있다.
일부 예들에서, 프로세서(202)는 자기 재료의 자기장에 기초하여 주변기기(102)가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정할 수 있다. 예를 들어, 센서(106)는 자속계를 포함할 수 있고, 표면은 자기 재료를 포함할 수 있다. 주변기기(102)가 표면을 벗어나 움직임에 따라, 자속계에 의해 검출되는 자기장의 강도는 감소할 수 있다. 프로세서(202)는 자속계에 의해 검출되는 자기장의 강도를 미리 정의된 임계와 비교할 수 있다. 자기장의 강도가 미리 정의된 임계 미만인 경우, 프로세서(202)는 주변기기(102)가 표면을 벗어나 위치된다고 결정할 수 있다. 자기장의 강도가 미리 정의된 임계를 초과하는 경우, 프로세서(202)는 주변기기(102)가 표면 상에 위치된다고 결정할 수 있다.
주변기기(102)가 액세서리(222)를 포함하는 예에서, 프로세서(202)는 액세서리(222)가 주변기기의 베이스(102)로부터 접속해제될 때 주변기기(102)가 표면을 벗어나 위치된다고 결정할 수 있다. 그리고 프로세서(202)는 액세서리(222)가 주변기기(102)의 베이스에 부착될 때 주변기기(102)가 표면 상에 위치한다고 결정할 수 있다. 프로세서(202)는 부착 센서(예를 들어, 도 3의 부착 센서(304))를 사용하여 액세서리(222)가 베이스에 부착되는지 또는 베이스로부터 분리되는지를 결정할 수 있다.
일부 예에서, 프로세서(202)는 주변기기(102)의 배향 또는 경사에 기초하여 주변기기(102)가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정할 수 있다. 예를 들어, 센서(106)는 자이로스코프 또는 관성 측정 유닛(IMU)일 수 있다. 주변기기(102)가 표면 상에 위치될 때, 주변기기(102)는 평평할 수 있다(level). 프로세서(202)는 주변기기(102)가 평평함을 검출하고, 그 응답으로 주변기기(102)가 표면 상에 위치된다고 결정할 수 있다. 주변기기(102)가 표면을 벗어나 움직이는 경우, 주변기기(102)는 기울어질 수 있다(tilt). 프로세서(202)는 기울어짐을 검출하고 그 응답으로 주변기기(102)가 표면을 벗어나 위치된다고 결정할 수 있다.
일부 예들에서, 프로세서(202)는 인사이드-아웃 추적 또는 아웃사이드-인 추적 기법들을 사용하여 주변기기(102)가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정할 수 있다. 예를 들어, 프로세서(202)는 SLAM 알고리즘을 사용하여 실제 공간에서(예를 들어, 표면에 대해) 주변기기(102)의 3D 위치를 결정할 수 있다. 프로세서(202)는 실제 공간에서 주변기기(102)의 3D 위치에 기초하여 주변기기(102)가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정할 수 있다.
일부 예들에서, 프로세서(202)는 주변기기(102)의 한 부분으로부터 주변기기(102)의 또다른 부분으로 가해지는 힘의 양에 기초하여 주변기기(102)가 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 결정할 수 있다. 예를 들어, 프로세서(202)는 주변기기(102)의 하부 쉘 상으로 주변기기(102)의 상부 쉘에 의해 가해지는 힘이 미리 정의된 임계를 초과하는 경우 주변기기(102)가 표면 상에 위치된다고 결정할 수 있다.
프로세서(202)가, 주변기기(102)가 표면 상에 위치된다고 결정하는 경우, 프로세스는 단계(604)로 진행할 수 있다. 그렇지 않은 경우, 프로세스는 단계(616)로 진행할 수 있다.
단계(604)에서, 프로세서(202)는 제1 추적 모드를 활성화시킨다. 일부 예들에서, 프로세서(202)는 메모리(예를 들어, 메모리 디바이스(204)) 내에 플래그를 설정함으로써 제1 추적 모드를 활성화시킨다. 추가로 또는 대안적으로, 프로세서(202)는 주변기기(102)가 제1 추적 모드에 있음을 나타내는 통신을 컴퓨팅 디바이스(214)에 전송함으로써 제1 추적 모드를 활성화시킬 수 있다.
일부 예들에서, 프로세서(202)는 제1 추적 모드가 활성화될 때 3D 추적에 비해 2D 추적을 우선순위화할 수 있다. 예를 들어, 프로세서(202)는 (예를 들어, 2D 센서로부터의 센서 값들을 특정 계수와 곱함으로써) 3D 센서로부터의 센서 값들보다 더 높은 2D 센서로부터의 센서 값들을 가중시킬 수 있다. 또다른 예로서, 프로세서(202)는 제1 추적 모드가 활성화될 때 3D 센서로부터의 센서 값들을 완전히 무시할 수 있다. 3D 추적에 비해 2D 추적을 우선순위화하는 것은 더-정확한 2D 센서가 컴퓨팅 디바이스(214)를 제어할 시에 더 큰 효과를 가질 수 있도록 할 수 있는데, 이는 컴퓨팅 디바이스(214)의 보다 정제된 제어를 초래할 수 있다.
단계(606)에서, 프로세서(202)는 제1 햅틱 출력 모드를 활성화시킬 수 있다. 일부 예들에서, 프로세서(202)는 메모리 내에 플래그를 설정함으로써 제1 햅틱 출력 모드를 활성화시킨다. 추가로 또는 대안적으로, 프로세서(202)는 주변기기(102)가 제1 햅틱 출력 모드에 있음을 나타내는 통신을 컴퓨팅 디바이스(214)에 전송함으로써 제1 햅틱 출력 모드를 활성화시킬 수 있다.
주변기기(102)가 제1 햅틱 출력 모드에 있을 때 주변기기(102)는 특정 햅틱 효과들만을 출력하고, 특정 이벤트들에 응답하는 햅틱 효과들만을 출력하거나, 또는 둘 모두를 출력할 수 있다. 일부 예들에서, 주변기기(102)는 제1 햅틱-효과 라이브러리 또는 제1 햅틱-효과 알고리즘을 사용하여 제1 햅틱 출력 모드에 있을 때 햅틱 효과들을 생성할 수 있다.
단계(608)에서, 프로세서(202)는 신체 부위가 주변기기(102)에 접촉하고 있는지를 결정한다. 사용자가 주변기기(102)에 접촉하고 있지 않을 때 햅틱 효과를 출력함으로써 낭비되는 배터리 전력을 감소시키기 위해 이 단계를 구현하는 것이 바람직할 수 있는데, 왜냐하면 사용자가 이러한 햅틱 효과들을 느끼지 못할 수 있기 때문이다. 프로세서(202)는 접촉 센서(예를 들어, 센서(106), 압력 센서, 용량성 센서, 스트레인 게이지, 또는 이들의 임의의 조합)로부터의 센서 신호들을 분석함으로써 신체 부위가 주변기기(102)에 접촉하고 있는지를 결정할 수 있다.
특정 예로서, 사용자는 주변기기(102) 상에 손바닥 또는 손가락들을 두어 주변기기(102)를 조작할 수 있다. 사용자가 주변기기(102)에 접촉하고 있는 동안, 프로세서(202)는 사용자가 주변기기(102)에 접촉하고 있음을 나타내는 센서 신호들을 접촉 센서로부터 수신할 수 있다. 센서 신호들에 기초하여, 프로세서(202)는 사용자가 주변기기(102)에 접촉하고 있음을 결정할 수 있다. 일 특정 예에서, 접촉 센서는 힘 센서일 수 있다. 힘 센서는 주변기기(102)의 일부분(예를 들어, 상부 표면)에 인가되는 힘의 양을 검출하고 대응하는 센서 신호들을 프로세서(202)에 전송할 수 있다. 프로세서(202)는 센서 신호들을 수신하고, 예를 들어, 주변기기(102)의 일부분에 인가되는 힘의 양이 미리 정의된 임계를 초과하는 경우 사용자가 주변기기(102)에 접촉하고 있다고 결정할 수 있다. 프로세서(202)는 사용자가 주변기기(102)에 접촉하고 있다고 결정하는 것에 응답하여 햅틱 효과들이 출력되도록 할 수 있다. 또다른 예로서, 사용자는 주변기기로부터 자신의 손을 제거하여, 예를 들어, 또다른 공간에 가거나 또는 키보드 상에서 타이핑할 수 있다. 프로세서(202)는 사용자가 주변기기(102)에 접촉하고 있지 않음을 나타내는 센서 신호들을 접촉 센서로부터 수신할 수 있다. 예를 들어, 프로세서(202)는 주변기기(102)의 일부분에 인가되는 힘이 미리 정의된 임계 미만임을 나타내는 센서 신호들을 수신할 수 있다. 센서 신호들에 기초하여, 프로세서(202)는 사용자가 주변기기(102)에 접촉하고 있지 않다고 결정하고, 예를 들어, 햅틱 효과들을 디스에이블시킬 수 있다(단계(612)에서).
프로세서(202)가 신체 부위가 주변기기(102)에 접촉하고 있다고 결정하는 경우, 프로세스는 단계(606)로 돌아가고 제1 햅틱 출력 모드를 통해 햅틱 효과들을 제공할 수 있다. 그렇지 않은 경우, 프로세스는 단계(610)로 진행할 수 있다.
단계(610)에서, 프로세서(202)는 주변기기(102)가 운송 디바이스(218)에 물리적으로 부착되는지를 결정한다. 사용자가 주변기기(102)에 직접 접촉하고 있지 않을 수 있더라도, 사용자가 운송 디바이스(218)를 통해 주변기기(102)에 커플링될 수 있고, 운송 디바이스(218)를 통해 햅틱 효과들을 수신할 수 있기 때문에, 이 단계를 구현하는 것이 바람직할 수 있다.
일부 예들에서, 주변기기(102)는 운송 디바이스(218)가 주변기기(102)에 부착되는지 또는 주변기기(102)로부터 분리되는지를 검출하기 위한 부착 센서를 포함할 수 있다. 프로세서(202)는 부착 센서로부터 센서 신호들을 수신하고, 운송 디바이스(218)가 센서 신호들에 기초하여 주변기기(102)에 부착되는지를 결정할 수 있다. 일 예로서, 주변기기(102)는 운송 디바이스(218)가 부착될 때 폐쇄되는 정상적으로는 개방되는 전도성 경로를 포함할 수 있다. 프로세서(202)는 전도성 경로가 개방되는지 또는 폐쇄되는지를 검출할 수 있고, 이 정보를 사용하여 운송 디바이스(218)가 부착되는지를 결정할 수 있다. 또다른 예로서, 주변기기(102)는 운송 디바이스(218)가 부착되지 않을 때 제1 구성인(예를 들어, 올라온) 버튼을 포함할 수 있다. 운송 디바이스(218)가 부착될 때, 버튼은 또다른 구성으로(예를 들어, 눌러진) 스위칭할 수 있다. 프로세서(202)는 버튼의 구성을 검출할 수 있고, 이 정보를 사용하여 운송 디바이스(218)가 부착되는지를 결정할 수 있다.
프로세서(202)가 주변기기(102)가 운송 디바이스(218)에 물리적으로 부착되지 않는다고 결정하는 경우, 프로세스는 단계(612)로 진행할 수 있는데, 여기서 프로세서(202)는 햅틱 효과들을 디스에이블시킨다. 프로세서(202)는 메모리 내에 플래그를 설정하는 것, 햅틱 효과들이 디스에이블되어야 함을 나타내는 통신을 컴퓨팅 디바이스(214)에 전송하는 것, 또는 둘 모두에 의해 햅틱 효과들을 디스에이블시킬 수 있다. 햅틱 효과들이 디스에이블될 때, 주변기기(102)는 임의의 햅틱 효과들을 출력하지 않을 수 있다.
프로세서(202)가 주변기기(102)가 운송 디바이스(218)에 물리적으로 부착된다고 결정하는 경우, 프로세스는 단계(614)로 진행할 수 있고, 여기서 프로세서(202)는 제3 햅틱 출력 모드를 활성화시킬 수 있다. 일부 예들에서, 제3 햅틱 출력 모드는 핸즈-프리 사용 동안 햅틱 효과들을 렌더링하기 위한 것이다. 예를 들어, 주변기기(102)는 제3 햅틱 출력 모드에 있을 때 운송 디바이스(218)를 통해 햅틱 효과들을 출력할 수 있다. 그리고 주변기기(102)는 또한 주변기기(102) 내에 위치되는 햅틱 출력 디바이스들(108 및 224)과 같은 햅틱 출력 디바이스들을 디스에이블시킬 수 있다. 이는 사용자가 주변기기(102)의 바디에 직접 접촉하고 있지 않더라도, 사용자가 운송 디바이스(218)를 통해 햅틱 효과들을 여전히 인지하도록 할 수 있다. 이는 사용자가 주변기기(102)에 접촉하고 있지 않는 경우 햅틱 출력 디바이스들(108 및 224)에 의해 소모되는 낭비 전력을 감소시킬 수 있다.
특정 예로서, 사용자는 도 5에 도시된 주변기기(102)를 사용하여 비디오 게임을 플레이하는 동안 2D 입력을 제공할 수 있다. 사용자는 이후 3D 입력을 제공하기를 원할 수 있고, 주변기기(102)를 표면(104)에서 벗어나 들어올릴 수 있다. 주변기기(102)는 운송 디바이스(218)를 통해 사용자의 손목에 매달릴 수 있다. 사용자가 자신의 팔을 주위로 움직임에 따라, 주변기기(102)는 운송 디바이스(218)의 강성으로 인해 또한 움직여서, 3D 입력을 제공할 수 있다. 그러나, 사용자는 실제로는 주변기기(102)의 바디와 직접 접촉하고 있지 않을 수도 있다. 일부 예들에서, 주변기기(102)는 사용자는 주변기기(102)의 바디에 접촉하고 있지 않음을 검출하고, 운송 디바이스(218)가 주변기기(102)에 접속됨을 검출하고, 그 응답으로 제3 햅틱 출력 모드를 활성화시킬 수 있다. 일단 제3 햅틱 출력 모드에 있으면, 주변기기(102)는 사용자가 인지할 수 있는 햅틱 효과들을 운송 디바이스(218)를 통해 제공할 수 있다.
다른 예들에서, 주변기기(102)는 웨어러블 디바이스가 제3 햅틱 출력 모드에 있을 때 햅틱 효과들을 출력하도록 할 수 있다. 웨어러블 디바이스의 예들은, 시계, 타이, 안경, 장갑, 신발, 셔츠, 스트랩, 모자, 패치, 또는 이들의 임의의 조합을 포함할 수 있다. 예를 들어, 주변기기(102)가 운송 디바이스(218)를 통해 사용자의 손목에 매달리고, 사용자가 3D 입력을 제공하는 위의 예에서, 사용자는 또한 스마트 워치를 착용할 수 있다. 주변기기(102)는 사용자가 주변기기(102)의 바디에 접촉하고 있지 않음을 검출하고, 운송 디바이스(218)가 주변기기(102)에 접속됨을 검출하고, 그 응답으로 제3 햅틱 출력 모드를 활성화시킬 수 있다. 제3 햅틱 출력 모드에 있을 때, 주변기기(102)는 햅틱 신호들을 스마트 워치에 전송할 수 있는데, 이는 햅틱 신호들을 수신하여 그 응답으로 햅틱 효과들을 생성할 수 있다. 이는 사용자가 사용자의 바디에 커플링되는 다른 햅틱 출력 디바이스들을 통해 햅틱 효과들을 수신하도록 할 수 있다.
단계(602)에 대해 위에서 언급된 바와 같이, 프로세서(202)는 주변기기(102)가 표면 상에 위치되는지를 결정할 수 있다. 그렇지 않은 경우, 프로세스는 단계(616)로 진행할 수 있고, 여기서 프로세서(202)는 제2 추적 모드를 활성화시킨다. 일부 예들에서, 프로세서(202)는 메모리에 플래그를 설정함으로써 제2 추적 모드를 활성화시킨다. 추가로 또는 대안적으로, 프로세서(202)는 주변기기(102)가 제2 추적 모드에 있음을 나타내는 통신을 컴퓨팅 디바이스(214)에 전송함으로써 제2 추적 모드를 활성화시킬 수 있다.
일부 예들에서, 프로세서(202)는 제2 추적 모드가 활성화될 때 2D 추적에 비해 3D 추적을 우선순위화할 수 있다. 예를 들어, 프로세서(202)는 (예를 들어, 3D 센서로부터의 센서 값들을 특정 계수와 곱함으로써) 2D 센서로부터의 센서 값들보다 더 높은 3D 센서로부터의 센서 값들을 가중시킬 수 있다. 또다른 예로서, 프로세서(202)는 제2 추적 모드가 활성화될 때 2D 센서로부터의 센서 값들을 완전히 무시할 수 있다. 2D 추적에 비해 3D 추적을 우선순위화시키는 것은 컴퓨팅 디바이스(214)를 제어하기 위해 3D 입력이 사용될 수 있도록 하는데, 이는 컴퓨팅 디바이스(214)에 더 큰 범위의 기능성을 제공할 수 있다.
단계(618)에서, 프로세서(202)는 제2 햅틱 출력 모드를 활성화시킨다. 일부 예들에서, 프로세서(202)는 메모리에 플래그를 설정함으로써 제2 햅틱 출력 모드를 활성화시킨다. 추가로 또는 대안적으로, 프로세서(202)는 주변기기(102)가 제2 햅틱 출력 모드에 있음을 나타내는 통신을 컴퓨팅 디바이스(214)에 전송함으로써 제2 햅틱 출력 모드를 활성화시킬 수 있다.
주변기기(102)는 주변기기(102)가 제2 햅틱 출력 모드에 있을 때 특정 햅틱 효과들만을 출력할 수 있고, 특정 이벤트들에 응답하는 햅틱 효과들만을 출력할 수 있거나, 또는 둘 모두를 출력할 수 있다. 예를 들어, 주변기기(102)는 제1 햅틱 출력 모드에서의 햅틱 효과 출력과는 상이한 제2 햅틱 출력 모드에서의 적어도 하나의 햅틱 효과를 출력할 수 있다. 추가로 또는 대안적으로, 주변기기(102)는 제1 햅틱 출력 모드에서 햅틱 효과들을 트리거링하는 이벤트들과는 상이한 제2 햅틱 출력 모드에서의 적어도 하나의 이벤트에 응답하여 햅틱 효과를 출력할 수 있다. 특정 예로서, 주변기기(102)는 주변기기(102)가 제2 햅틱 출력 모드에 있을 때 사용자가 주변기기(102)를 사용하여 실제 공간을 통해 3D 제스처를 만드는 것에 응답하여 햅틱 효과를 출력할 수 있다. 반면, 주변기기가 표면 상에(그리고 제1 추적 모드에) 위치될 때 사용자가 주변기기(102)를 사용하여 3D 제스처를 만들지 못할 수 있기 때문에, 주변기기(102)는 주변기기(102)가 제1 햅틱 출력 모드에 있을 때, 표면을 따르는 2D 움직임과 같은 다른 타입들의 이벤트들에 응답하여 햅틱 효과들을 출력할 수 있다.
일부 예들에서, 주변기기(102)는 제2 햅틱 출력 모드에 있을 때 제2 햅틱-효과 라이브러리 또는 제2 햅틱-효과 알고리즘을 사용하여 햅틱 효과들을 생성할 수 있다. 제2 햅틱-효과 라이브러리는 제1 햅틱-효과 라이브러리와 상이할 수 있고, 그리고/또는 제2 햅틱-효과 알고리즘은 제1 햅틱-효과 알고리즘과는 상이할 수 있다.
단계(620)에서, 프로세서(202)는 신체 부위가 주변기기(102)에 접촉하는지를 결정한다. 일부 예들에서, 이 단계는 단계(608)에 대해 위에서 논의된 방법들 중 임의의 것을 사용하여 구현될 수 있다. 프로세스의 나머지는 위에서 논의된 바와 같이 흐를 수 있다.
프로세서(202)는 주변기기(102)가 단계(602)에서 표면 상에 위치되는지 또는 표면을 벗어나 위치되는지를 검출하는 것에 응답하여, 다양한 다른 동작들을 수행할 수 있다. 예를 들어, 프로세서(202)가 주변기기(102)가 표면 상에 위치된다고 검출하는 경우, 프로세서(202)는 가상 오브젝트의 2D 버전이 디스플레이되게 하도록 구성되는 통신을 전송할 수 있다. 하나의 이러한 예에서, 프로세서(202)는 컴퓨팅 디바이스(214)가 컴퓨터 모니터 상에 가상 아바타의 2D 버전을 디스플레이하도록 하는 통신을 컴퓨팅 디바이스(214)에 전송할 수 있다. 추가로 또는 대안적으로, 프로세서(202)가 주변기기(102)가 표면을 벗어나 위치됨을 검출하는 경우, 프로세서(202)는 가상 오브젝트의 3D 버전이 디스플레이되게 하도록 구성되는 통신을 전송할 수 있다. 예를 들어, 프로세서(202)는 헤드셋(228)이 가상 아바타의 3D 버전을 디스플레이하도록 하는 통신을 헤드셋(228)에 전송할 수 있다. 일부 예들에서, 가상 오브젝트의 2D 버전으로부터 가상 오브젝트의 3D 버전으로의 전술된 트랜지션은 2D 가상 오브젝트와의 사용자 상호작용에 의해 적어도 부분적으로 실행될 수 있다. 예를 들어, 사용자는 주변기기(102)를 사용하여 2D 오브젝트를(예를 들어, 버튼을 아래로 유지함으로써) 선택하고, 이후 주변기기(102)를 표면에서 벗어나 올릴 수 있다. 프로세서(202) 및/또는 컴퓨팅 디바이스(214)는 2D 가상 오브젝트의 선택, 및 주변기기(102)가 표면을 벗어나는 것을 검출할 수 있고, 그 응답으로 가상 오브젝트의 3D 버전이 디스플레이되도록 할 수 있다.
일부 예들에서, 프로세서(202)는 주변기기(102)가 평평한 또는 기울어진(예를 들어, 구부러진, 비스듬한, 경사진, 또는 그렇지 않은 경우 평평하지 않은) 표면 상에 위치된다고 결정할 수 있다. 예를 들어, 프로세서(202)는 단계(602)에 논의된 방법들 중 임의의 것을 사용하여 주변기기(102)가 표면 상에 위치된다고 결정할 수 있다. 프로세서(202)는 또한 센서(106)를 사용하여 주변기기(102)의 배향을 검출할 수 있다. 프로세서(202)가 주변기기(102)가 표면 상에 위치되면서 기울어진다고 결정하는 경우, 프로세서(202)는 주변기기(102)가 기울어진 표면 상에 위치된다고 결정할 수 있다. 일부 예들에서, 프로세서(202)는 주변기기(102)가 기울어진 표면 상에 위치된다고 결정하는 것에 응답하여 제3 추적 모드를 활성화시킨다. 제3 추적 모드는 제1 추적 모드 및 제2 추적 모드의 특징들을 조합할 수 있다. 예를 들어, 주변기기(102)는 2D 센서 및 3D 센서 모두를 사용하여 제3 추적 모드에 있을 때 컴퓨팅 디바이스(214)에 입력을 제공할 수 있다. 하나의 이러한 예에서, 주변기기(102)는 2D 센서를 사용하여 제1 좌표면 내의 하나 이상의 좌표(예를 들어, X 및 Y 좌표들)를 결정한다. 그리고 주변기기(102)는 3D 센서를 사용하여 제1 좌표면에 대해 직교하는 제2 좌표면 내의 하나 이상의 좌표(예를 들어, Z 좌표)를 결정한다. 주변기기(102)는 이후 그 좌표들 중 일부 또는 전부를 컴퓨팅 디바이스(214)에 전송할 수 있는데, 이는 좌표들을 사용하여 실제 공간에서 주변기기(102)의 물리적 위치를 결정할 수 있다.
프로세서(202)는 주변기기(102)가 기울어진 표면 상에 위치된다고 결정하는 것에 응답하여 제4 햅틱 출력 모드를 추가로 또는 대안적으로 활성화시킬 수 있다. 프로세서(202)는 예를 들어, 위에서 논의된 방법들 중 임의의 것을 사용하여 제4 햅틱 출력 모드를 활성화시킬 수 있다. 주변기기(102)가 제4 햅틱 출력 모드에 있을 때, 주변기기(102)는 특정 햅틱 효과들만 출력하고, 특정 이벤트들에 응답하는 햅틱 효과들만 출력하거나, 또는 둘 모두를 출력할 수 있다. 일부 예들에서, 주변기기(102)는 제4 햅틱 출력 모드에 있을 때 제4 햅틱-효과 라이브러리 또는 제4 햅틱-효과 알고리즘을 사용하여 햅틱 효과들을 생성할 수 있다.
특정 예로서, 사용자는 신체 부위(예를 들어, 그의 다리) 상에 주변기기(102)를 위치시키고 주변기기(102)를 그 주위로 움직일 수 있다. 사용자가 주변기기(102)를 신체 부위의 평평한 부분 위에서 움직임에 따라, 주변기기(102)는 그것이 평평한 표면 상에 위치된다고 검출하고, 그 응답으로 제1 추적 모드 및/또는 제1 햅틱 출력 모드를 활성화시킬 수 있다. 사용자가 주변기기(102)를 신체 부위의 경사진 또는 구부러진 부분 쪽으로 움직이는 경우, 주변기기(102)는 그것이 기울어진 표면 상에 위치된다고 검출하고, 그 응답으로 제3 추적 모드 및/또는 제3 햅틱 출력 모드를 활성화시킬 수 있다. 제3 추적 모드에서, 주변기기(102)는 센서들의 조합을 사용하여 3D 입력을 컴퓨팅 디바이스(214)에 제공할 수 있다. 이는 컴퓨팅 디바이스(214)가 주변기기(102)가 고르지 않은, 변형된, 또는 기울어진 표면들을 따라 움직임에 따라 그것의 물리적 위치를 정확하게 추적하도록 하여, 예를 들어, 컴퓨팅 디바이스(214) 상의 커서의 위치를 업데이트할 수 있다.
일부 예들에서, 제3 추적 모드는 컴퓨팅 디바이스(214) 상의 커서의 움직임이 기울어진 표면들을 따르는 주변기기(102)의 움직임에 따르도록(예를 들어, 일 대 일) 할 수 있는데, 이는 새로운 타입들의 사용자 인터페이스들을 인에이블시킬 수 있다. 예를 들어, 물리적 표면들은 가상 환경에서의 가상 오브젝트들과 유사하게 성형되거나 또는 그렇지 않은 경우 구성될 수 있고, 이러한 표면들을 따르는 주변기기(102)의 움직임은 추적되어 가상 환경에서의 커서 움직임 또는 다른 상호작용들로 변환될 수 있다. 특정 예로서, 가상 환경은 둥근 표면을 가지는 가상 볼을 포함할 수 있다. 사용자는 실제 공간에서 물리적 볼의 둥근 표면을 따라 주변기기(102)를 움직일 수 있는데, 이는 추적되어 가상 환경에서 가상 볼의 둥근 표면을 따르는 커서 움직임으로 변환될 수 있다. 또다른 예로서, 가상 환경은 가상 높이에서 가상 공간 내에 떠 있는 아이콘을 포함할 수 있다. 아이콘에 액세스하기 위해, 사용자는, 실제 공간에서의 주변기기(102)의 물리적 높이가 가상 환경에서의 아이콘의 가상 높이에 대응할 때까지 주변기기(102)를 (예를 들어, 사용자의 책상 위에서) 경사진 면을 타고 위로 슬라이딩할 수 있다. 사용자는 이후 주변기기(102)를 사용하여 아이콘을 선택하거나 또는 그렇지 않은 경우 아이콘과 상호작용할 수 있다.
추적 모드들이 설명의 용이함을 위해 "제1", "제2", 및 "제3"으로서 전술되었지만, 이들 라벨들은 추적 모드들에 대한 특정 순서를 규정하거나 또는 그렇지 않은 경우 주변기기(102)에 의해 구현되는 추적 모드들의 순서, 개수, 또는 조합을 제한하도록 의도되지 않는다. 마찬가지로, 햅틱 출력 모드들이 설명의 용이함을 위해 "제1", "제2", "제3", 및 "제4"로서 전술되었지만, 이들 라벨들은 햅틱 출력 모드들에 대한 특정 순서를 규정하거나 또는 그렇지 않은 경우 주변기기(102)에 의해 구현되는 햅틱 출력 모드들의 순서, 개수, 또는 조합을 제한하도록 의도되지 않는다.
햅틱방식
-
인에이블형
주변기기에 대한 추가적인 시스템들 및 방법들
도 7은 본 개시내용의 일부 양태들에 따른 제스처를 검출하는 주변기기(102)의 예이다. 이 예에서, 센서(106)는 카메라 또는 제스처를 검출하기에 적합한 또다른 센서일 수 있다. 사용자는 주변기기(102)를 한손으로 표면에서 벗어나 들어올리고, 주변기기(102)의 센서(106)를 또다른 손쪽으로 배향시키고, 도시된 바와 같이 다른 손을 사용하여 집어내기 제스처를 수행할 수 있다. 주변기기(102)는 제스처를 검출하고 그 응답으로 하나 이상의 동작을 수행할 수 있다. 동작들의 예들은 특정 추적 모드를 활성화시키는 것, 특정 햅틱 출력 모드를 활성화시키는 것, 햅틱 효과를 출력하는 것, 제스처에 기초하여 컴퓨팅 디바이스에 코맨드를 전송하는 것, 컴퓨팅 디바이스에 제스처를 나타내는 신호를 전송하는 것, 또는 이들의 임의의 조합을 포함할 수 있다. 주변기기(102)가 제스처 인식을 수행할 수 있도록 하는 것은 양손 모두가 사용되어 컴퓨팅 디바이스에 입력을, 그리고/또는 추가적인 종류들의 입력(예를 들어, 제스처, 2D 움직임, 3D 움직임 등)을 제공할 수 있도록 할 수 있다. 이 예가 사용자의 손으로 수행되는 제스처를 검출하는 것에 대해 논의되지만, 사용자는 대안적으로 또다른 오브젝트(예를 들어, 다리, 원드, 폰, 또는 스타일러스)를 사용하여 제스처를 수행할 수 있다. 주변기기(102)는 임의의 개수 및 조합의 오브젝트들에 의해 수행되는 임의의 개수 및 조합의 제스처들을 검출할 수 있다.
도 8은 본 개시내용의 일부 양태들에 따라 주변기기(102)가 오브젝트(804)(예를 들어, 물리적 오브젝트)를 검출하는 것의 예이다. 이 예에서, 주변기기(102) 내의 센서(106)는 카메라, 레이저 스캐너, 또는 오브젝트를 검출하기에 적합한 또다른 센서일 수 있다. 사용자는 주변기기(102)를 표면을 벗어나 들어올려서 주변기기(102)의 센서(106)의 시야(802)를 오브젝트(804)쪽으로 배향시킬 수 있다. 주변기기(102)는 이후 오브젝트를 "스캔"하거나 또는 다른 방식으로 검출하고, 그 응답으로 위에서 논의된 동작들과 같은, 하나 이상의 동작을 수행할 수 있다.
하나의 특정 예에서, 사용자는, 도 8의 예에서 항아리인 오브젝트(804)를 향하는 주변기기(102)의 센서(106)를 배향시킬 수 있다. 주변기기(102)는 센서(106)를 사용하여 오브젝트(804)의 다양한 물리적 특징들을 결정할 수 있다. 물리적 특징들의 예들은 오브젝트(804)의 높이, 폭, 형상, 크기, 색, 텍스처, 타입, 및/또는 (실제 공간에서의) 포지셔닝을 포함할 수 있다. 일부 예들에서, 주변기기(102)는 이후 오브젝트(804)의 물리적 특징들을 컴퓨팅 디바이스에 전송하여 컴퓨팅 디바이스가 오브젝트(804)의 3D 가상 표현(예를 들어, 3D 모델)을 렌더링하도록 할 수 있다. 컴퓨팅 디바이스는 가상 현실 환경 또는 증강 현실 환경 내에서 오브젝트(804)의 3D 모델을 렌더링할 수 있다.
위의 예들 중 일부는 도 9에 도시된 프로세스에 따라 구현될 수 있다. 다른 예들에서, 더 많은 단계들, 더 적은 단계들, 상이한 단계들, 또는 도 9에 도시된 단계들의 상이한 조합이 구현될 수 있다. 하기의 단계들은 도 2에 도시된 시스템(200)에 대해 논의된다.
단계(902)에서, 프로세서(202)는 주변기기(102)가 표면 상에 위치되는지를 결정한다. 일부 예들에서, 이 단계는 도 6의 단계(602)에 대해 논의되는 방법들 중 임의의 개수 및 조합을 사용하여 구현될 수 있다. 프로세서(202)가 주변기기(102)가 표면 상에 위치된다고 결정하는 경우, 프로세스는 종료할 수 있다. 그렇지 않은 경우, 프로세스는 단계(704)로 계속될 수 있다.
단계(904)에서, 프로세서(202)는 제스처가 검출되는지를 결정한다. 예를 들어, 프로세서(202)는 센서(106)로부터의 이미지들 또는 다른 센서 데이터를 분석하여 제스처가 수행되었는지를 결정할 수 있다. 만약 그렇다면, 프로세스는 단계(906)로 계속될 수 있다. 그렇지 않은 경우, 프로세스는 단계(908)로 계속될 수 있다.
단계(906)에서, 프로세서(202)는 제스처에 기초하여 코맨드를 전송한다. 예를 들어, 프로세서(202)는 제스처를 나타내는, 제스처에 기초하여 결정된, 또는 그렇지 않은 경우 제스처와 연관되는 코맨드를 전송할 수 있다. 프로세서(202)는 유선 또는 무선 인터페이스를 통해 코맨드를 컴퓨팅 디바이스(214)에 전송할 수 있다. 코맨드는 컴퓨팅 디바이스(214)가 하나 이상의 동작을 수행하도록 할 수 있다.
단계(908)에서, 프로세서(202)는 물리적 오브젝트가 검출되었는지를 결정한다. 예를 들어, 프로세서(202)는 센서(106)로부터의 이미지들 또는 다른 센서 데이터를 분석하여 물리적 오브젝트가 검출되었는지를 결정할 수 있다. 만약 그렇다면, 프로세스는 단계(910)로 계속될 수 있다. 그렇지 않은 경우, 프로세스는 종료할 수 있다.
단계(910)에서, 프로세서(202)는 물리적 오브젝트의 물리적 특징들을 결정한다. 프로세서(202)는 센서(106)로부터의 센서 신호들에 기초하여 물리적 오브젝트의 물리적 특징들을 결정할 수 있다. 예를 들어, 프로세서(202)는 센서(106)로부터의 이미지들을 분석하여 물리적 오브젝트의 크기, 형상, 색, 및 텍스처를 결정할 수 있다. 프로세서(202)는 하나 이상의 이미지 프로세싱 알고리즘을 실행하여 이미지들을 통해 물리적 오브젝트의 물리적 특징들을 식별할 수 있다.
단계(912)에서, 프로세서(202)는 물리적 오브젝트의 3D 표현이 생성되도록 한다. 예를 들어, 프로세서(202)는 물리적 오브젝트의 물리적 특징들을 컴퓨팅 디바이스(214)에 전송하는데, 이는 차례로 물리적 오브젝트의 3D 모델을 렌더링할 수 있다. 대안적으로, 프로세서(202)는 물리적 오브젝트의 물리적 특징들을 사용하여 그 스스로가 물리적 오브젝트의 3D 표현을 렌더링할 수 있다. 프로세서(202) 및/또는 컴퓨팅 디바이스(214)는 물리적 오브젝트의 3D 표현을 생성하기 위한 그래픽 렌더링 소프트웨어를 포함할 수 있다.
예들의 예시적인 조합
본 개시내용의 다른 예들은 위에서 논의된 예들 중 일부 또는 전부를 조합할 수 있다. 일 예시적인 예는 사용자가 책상에 앉아서 표면 상에서 주변기기를 슬라이딩함으로써 주변기기와 상호작용하는 것을 수반할 수 있다. 사용자는 마우스를 주위에 움직여서 컴퓨터 모니터 상에 디스플레이되는 다양한 그래픽 오브젝트들과 상호작용하고 다양한 동작들(예를 들어, 드래그-및-드롭 동작들)을 수행할 수 있다. 사용자가 3D 상호작용을 지원하는 애플리케이션을 여는 경우, 컴퓨팅 디바이스는 주변기기가 진동하도록 하는 또는 그렇지 않은 경우 3D 상호작용이 이용가능함을 나타내도록 하는 햅틱 신호를 주변기기에 전송할수 있다. 애플리케이션의 일 예는 3D 모델링 애플리케이션일 수 있다. 진동을 느낄 시에, 사용자는 증강 현실 헤드셋을 착용하고 자신의 손을 위로 올려서 3D 입력을 제공할 수 있다.
사용자가 자신의 손을 들어올림에 따라, (주변기기를 자신의 손목에 커플링시키는) 운송 디바이스가 또한 주변기기를 표면으로부터 들어올려서, 사용자가 주변기기를 떨어뜨리지 않고도 자신이 주변기기를 쥐는 것(grip)을 놓을 수 있게 할 것이다. 주변기기가 표면을 벗어나 들어올려지는 것에 기초하여, 주변기기는 주변기기가 하나의 폼 팩터로부터 또다른 폼 팩터로 형상을 변경하는 제2 햅틱 출력 모드를 활성화시킬 수 있다. 예를 들어, 주변기기는 그것이 표면으로부터 들어올려졌음을 검출하고, 그 응답으로 사용자의 손바닥이 주변기기의 최상부 상에 높이도록 성형되는 제1 폼 팩터로부터 사용자의 손바닥이 60도 경사로 놓이도록 성형되는 제2 폼 팩터로 변경할 수 있다. 사용자는 이후 주변기기를 사용하여 증강 현실 헤드셋에 의해 출력되는 다양한 홀로그램들 및 가상 오브젝트들과 상호작용할 수 있다.
추가적인 타입들의 입력을 제공하기 위해, 사용자는 주변기기로부터 액세서리(예를 들어, 모듈 또는 스타일러스)를 제거할 수 있다. 한 손에 액세서리를 그리고 다른 손에 주변기기의 나머지를 가지고, 사용자는 이후 두 디바이스들을 사용하여 동시에(또는 순차적으로) 입력을 제공할 수 있다. 예를 들어, 사용자는 두 디바이스들 모두를 사용하여, 멀티-오브젝트 상호작용들, 스케일링 제스처들, 집어내기 제스처들, 또는 이들의 임의의 조합을 수행할 수 있다. 이러한 예에서, 주변기기의 베이스 및 액세서리 둘 모두가 3D 센서들을 포함할 수 있다. 액세서리를 이용하여 종료할 때, 사용자는 액세서리를 주변기기에 재부착할 수 있다.
액세서리를 주변기기에 재부착한 이후, 사용자는 주변기기의 센서를 자유로운 손 쪽으로 배향하고, 자유로운 손으로 제스처를 수행할 수 있다. 주변기기는 제스처를 검출하고 연관된 동작들을 수행할 수 있다. 예를 들어, 주변기기는 제스처를 검출하고 그 응답으로 특정 코맨드가 애플리케이션에서 수행되도록 할 수 있다. 코맨드들의 예들은 메뉴 열기, 파일 열기, 파일 저장하기, 새 파일 만들기, 또는 이들의 임의의 조합을 포함할 수 있다.
사용자는 추가로 또는 대안적으로 주변기기를 사용하여, 조각상과 같은, 공간 내의 물리적 오브젝트를, 주변기기 내의 센서를 물리적 오브젝트 쪽으로 배향시킴으로써, 스캐닝할 수 있다. 이는 오브젝트의 3D 표현이 (예를 들어, 홀로그램 또는 가상 오브젝트로서) 렌더링되거나 디스플레이되도록 할 수 있다. 예를 들어, 이는 오브젝트의 3D 표현이 애플리케이션 내에 디스플레이되도록 할 수 있다. 사용자는 이후 주변기기를 사용하여 다양한 3D 움직임들을 수행함으로써 오브젝트의 3D 표현을 조작할 수 있다. 사용자는 주변기기를 사용하여 다양한 다른 가상 오브젝트들과 추가로 또는 대안적으로 상호작용할 수 있다. 예를 들어, 애플리케이션은 다양한 가상 버튼들을 포함할 수 있다. 사용자는 주변기기를 이용하여 애플리케이션을 나가기 위한 가상 나가기 버튼과 같은 가상 버튼 쪽으로 손뻗을 수 있다. 주변기기가 가상 버튼에 접촉할 때, 주변기기는 진동하여(그리고 가상 버튼이 크기가 커져서) 가상 버튼이 접촉되었음을 사용자에게 통지할 수 있다. 사용자는 이후 주변기기 상의 입력 디바이스를 조작하여 가상 버튼을 가상으로 "누를" 수 있는데, 이는 일 예에서 애플리케이션이 닫기도록 한다.
일단 사용자가 애플리케이션을 사용하는 것 및/또는 3D 입력을 제공하는 것을 완료하면, 사용자는 뒤로 기대 앉아서 주변기기를 표면 상에 다시 놓을 수 있다. 주변기기가 표면 상에 다시 배치되는 것에 기초하여, 주변기기는 주변기기가 제1 폼 팩터로 다시 형상을 변경하는 제1 햅틱 출력 모드를 활성화시킬 수 있다. 사용자는 이후 계속 주변기기를 사용하여 2D 입력을 컴퓨팅 디바이스에 제공할 수 있다.
일반적인 고려사항들
위에서 논의된 방법들, 시스템들, 및 디바이스들은 예들이다. 다양한 구성들이 적절한 경우 다양한 절차들 또는 컴포넌트들을 생략하고, 치환하거나, 또는 추가할 수 있다. 예를 들어, 대안적인 구성들에서, 방법들은 기술된 것과 상이한 순서로 수행될 수 있고, 그리고/또는 다양한 스테이지들이 추가되고, 생략되고, 그리고/또는 조합될 수 있다. 또한, 특정 구성들에 대해 기술된 특징들은 다양한 다른 구성들로 조합될 수 있다. 구성들의 상이한 양태들 및 엘리먼트들은 유사한 방식으로 조합될 수 있다. 또한, 기술이 진보하고, 따라서 엘리먼트들 중 다수는 예이며 개시내용 또는 청구항들의 범위를 제한하지 않는다.
특정 상세항목들이 (구현예들을 포함하는) 예시적인 구성들의 철저한 이해를 제공하기 위해 기재에 주어진다. 그러나, 구성들은 이들 특정 상세항목들 없이도 구현될 수 있다. 예를 들어, 널리-알려진 회로, 프로세스, 알고리즘, 구조 및 기법들은 구성들을 모호하게 하는 것을 회피하기 위해 불필요한 상세항목 없이 보여졌다. 이 기재는 단지 예시적인 구성들만을 제공하며, 청구항들의 범위, 응용가능성, 또는 구성들을 제한하지 않는다. 오히려, 구성들의 이전 기재들은 본 기술분야의 통상의 기술자에게 기재된 기법들을 구현하기 위한 가능한 기재를 제공할 것이다. 개시내용의 사상 또는 범위로부터 벗어나지 않고 엘리먼트들의 기능 및 배열에서 다양한 변경들이 이루어질 수 있다.
또한, 구성들은 흐름도 또는 블록도로서 도시된 프로세스로서 기술될 수 있다. 각각이 순차적 프로세스로서의 동작들을 기술할 수 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 추가로, 동작들의 순서는 재배열될 수 있다. 프로세스는 도면 내에 포함되지 않은 추가 단계들을 가질 수 있다. 또한, 방법들의 예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 이들의 임의의 조합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드에서 구현될 때, 필요한 작업들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 저장 매체와 같은 비-일시적 컴퓨터-판독가능한 매체 내에 저장될 수 있다. 프로세서들은 기술된 작업들을 수행할 수 있다.
몇몇 예시적인 구성들을 기술했지만, 개시내용의 사상으로부터 벗어나지 않고 다양한 수정들, 대안적인 구성들, 및 등가물들이 사용될 수 있다. 예를 들어, 위의 엘리먼트들은 더 큰 시스템의 컴포넌트들일 수 있는데, 여기서 다른 규칙들이 발명의 응용예보다 우선순위를 취하거나 또는 그렇지 않은 경우 발명의 응용예를 수정할 수 있다. 또한, 다수의 단계들이 위의 엘리먼트들이 고려되기 이전에, 고려되는 동안, 고려된 이후에 착수될 수 있다. 따라서, 위 기재는 청구항들의 범위를 제한하지 않는다.
본원에서 "~하도록 적응되는" 또는 "~하도록 구성되는"의 사용은 추가적인 작업들 또는 단계들을 수행하도록 적응되는 또는 구성되는 디바이스들을 배제시키지 않는 개방적이고 내포적인 언어로서 의도된다. 추가로, "~에 기초하는"의 사용은 하나 이상의 인용되는 조건 또는 값에 기초하는 프로세스, 단계, 계산, 또는 다른 액션이 실제로는 인용된 것을 초과하는 추가적인 조건들 또는 값들에 기초할 수 있다는 점에서, 개방적이고 내포적인 것으로 의도된다. 본원에 포함되는 소제목들, 목록들 및 넘버링은 단지 설명의 용이함을 위한 것이며, 제한적인 것으로 의도되지 않는다.
본 발명 대상의 양태들에 따른 예들은 디지털 전자 회로에서, 컴퓨터 하드웨어, 펌웨어, 소프트웨어에서 또는 앞 항목들의 조합들에서 구현될 수 있다. 일 예에서, 컴퓨터는 프로세서 또는 프로세서들을 포함할 수 있다. 프로세서는 프로세서에 커플링되는 랜덤 액세스 메모리(RAM)와 같은, 컴퓨터-판독가능한 매체를 포함하거나 이에 대한 액세스를 가진다. 프로세서는 메모리에 저장되는 컴퓨터-실행가능한 프로그램 명령들을 실행하는데, 예컨대, 센서 샘플링 루틴, 선택 루틴들, 및 전술된 방법들을 수행하기 위한 다른 루틴들을 포함하는 하나 이상의 컴퓨터 프로그램을 실행한다.
이러한 프로세서들은 마이크로프로세서, 디지털 신호 프로세서(DSP), 응용-특정적 집적 회로(ASIC), 필드 프로그래밍가능 게이트 어레이(FPGA), 및 상태 머신을 포함할 수 있다. 이러한 프로세서들은 PLC, 프로그래밍가능 인터럽트 제어기(PIC), 프로그래밍가능 논리 디바이스(PLD), 프로그래밍가능 판독-전용 메모리(PROM), 전기적 프로그래밍가능 판독-전용 메모리(EPROM 또는 EEPROM)와 같은 프로그래밍가능한 전자 디바이스들 또는 다른 유사한 디바이스들을 더 포함할 수 있다.
이러한 프로세서들은, 프로세서에 의해 실행될 때, 프로세서가 프로세서에 의해 실행되거나 보조되는 것으로서 본원에 기술된 단계들을 수행하도록 할 수 있는 명령들을 저장할 수 있는 매체, 예를 들어, 유형적 컴퓨터-판독가능한 매체를 포함할 수 있거나, 또는 이와 통신할 수 있다. 컴퓨터-판독가능한 매체의 예들은, 웹 서버 내의 프로세서와 같은 프로세서에 컴퓨터-판독가능한 명령들을 제공할 수 있는 모든 전자, 광학, 자기, 또는 다른 저장 디바이스들을 포함할 수 있지만, 이에 제한되지 않는다. 매체의 다른 예들은 플로피 디스크, CD-ROM, 자기 디스크, 메모리 칩, ROM, RAM, ASIC, 구성 프로세서, 모든 광학 매체, 모든 자기 테이프 또는 다른 자기 매체, 또는 컴퓨터 프로세서가 판독할 수 있는 임의의 다른 매체를 포함하지만, 이에 제한되지 않는다. 또한, 다양한 다른 디바이스들은 라우터, 개인 또는 공용 네트워크, 또는 다른 전송 디바이스와 같은, 컴퓨터-판독가능한 매체를 포함할 수 있다. 기술된 프로세서, 및 프로세싱은 하나 이상의 구조 내에 있을 수 있으며, 하나 이상의 구조들을 통해 분산될 수 있다. 프로세서는 본원에 기술된 방법들(또는 방법들의 일부들) 중 하나 이상을 실행하기 위한 코드를 포함할 수 있다.
본 발명 대상이 그것의 특정 예들에 대해 상세히 기술되었지만, 본 기술분야의 통상의 기술자가, 이전 내용의 이해에 도달할 시에, 이러한 예들에 대한 변경들, 변형들, 및 등가물들을 용이하게 산출할 수 있다는 것이 인지될 것이다. 따라서, 본 개시내용이 제한보다는 예시의 목적으로 제시되며, 본 기술분야의 통상의 기술자에게 자명할 바와 같이 이러한 수정들, 변형들 및/또는 추가들의 본 발명 대상으로의 포함을 배제하지 않는다는 것이 이해되어야 한다.
Claims (22)
- 주변기기로서,
프로세서; 및
프로그램 코드를 포함하는 메모리 디바이스
를 포함하고, 상기 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
실제 공간에서 상기 주변기기의 물리적 위치를 검출하기 위해 사용가능한 하나 이상의 센서로부터 하나 이상의 센서 신호를 수신하게 하고;
상기 하나 이상의 센서 신호에 기초하여 상기 주변기기가 실제 공간에서 표면 상에 위치되는지 또는 상기 표면을 벗어나 위치되는지를 결정하게 하고;
상기 주변기기가 상기 표면 상에 위치된다고 결정하는 것에 응답하여, 상기 표면을 따르는 상기 주변기기의 2-차원 움직임에 기초하여 햅틱 효과들의 제1 세트를 제공하도록 구성되는 제1 햅틱 출력 모드를 활성화시키게 하고;
상기 주변기기가 상기 표면을 벗어나 위치된다고 결정하는 것에 응답하여, 실제 공간에서 상기 주변기기의 3-차원 움직임에 기초하여 햅틱 효과들의 제2 세트를 제공하도록 구성되는 제2 햅틱 출력 모드를 활성화시키게 하는, 주변기기. - 제1항에 있어서,
상기 메모리 디바이스는 프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 주변기기가 상기 표면에서 물리적으로 벗어나 위치된다고 결정하는 것에 응답하여, 상기 하나 이상의 센서 신호에 기초하여 인사이드-아웃(inside-out) 추적 기법을 적용함으로써 실제 공간에서 상기 주변기기의 3-차원 위치를 결정하게 하고;
(i) 상기 제2 햅틱 출력 모드가 활성화되는 것 및 (ii) 실제 공간에서 상기 주변기기의 3-차원 위치에 기초하여 햅틱 효과를 결정하게 하고;
햅틱 출력 디바이스가 상기 햅틱 효과를 출력하게 하는, 주변기기. - 제2항에 있어서,
상기 메모리 디바이스는 프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 주변기기에 대해 외부에 있는 광학 센서로부터 센서 신호를 수신하게 하고;
(i) 상기 하나 이상의 센서로부터 상기 하나 이상의 센서 신호를 사용하여 인사이드-아웃 추적 기법을 적용하고, 그리고 (ii) 상기 주변기기에 대해 외부에 있는 상기 광학 센서로부터의 상기 센서 신호를 사용함으로써 실제 공간 내의 상기 주변기기의 3-차원 위치를 결정하게 하는, 주변기기. - 제1항에 있어서,
상기 메모리 디바이스는 프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 주변기기가 상기 표면 상에 물리적으로 위치된다고 결정하는 것에 응답하여, 상기 하나 이상의 센서 신호에 기초하여 상기 표면 상의 상기 주변기기의 2-차원 위치를 결정하게 하고;
(i) 상기 제1 햅틱 출력 모드가 활성화되는 것 및 (ii) 상기 표면 상의 상기 주변기기의 2-차원 위치에 기초하여 햅틱 효과를 결정하게 하고;
햅틱 출력 디바이스가 상기 햅틱 효과를 출력하게 하는, 주변기기. - 제1항에 있어서,
하나 이상의 센서는 제1 광학 센서 및 상기 제1 광학 센서와는 별개인 제2 광학 센서를 포함하고, 상기 메모리 디바이스는 프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 주변기기가 상기 표면 상에 위치된다고 결정하는 것에 응답하여, 상기 제2 광학 센서를 사용하여 생성되는 3-차원 입력보다는 상기 제1 광학 센서를 사용하여 생성되는 2-차원 입력이 원격 컴퓨팅 디바이스에 제공되는 제1 추적 모드를 활성화시키게 하고;
상기 주변기기가 상기 표면을 벗어나 위치된다고 결정하는 것에 응답하여, 상기 제1 광학 센서를 사용하여 생성되는 2-차원 입력보다는 상기 제2 광학 센서를 사용하여 생성되는 3-차원 입력이 상기 원격 컴퓨팅 디바이스에 제공되는 제2 추적 모드를 활성화시키게 하는, 주변기기. - 제1항에 있어서,
상기 메모리 디바이스는 프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
손이 아닌 신체 부위에 상기 주변기기를 물리적으로 커플링시키도록 구성되는 운송(carrying) 디바이스에 상기 주변기기가 물리적으로 부착되는지를 결정하게 하고;
상기 주변기기가 상기 운송 디바이스에 물리적으로 커플링된다고 결정하는 것에 응답하여, 핸즈-프리 사용 동안 햅틱 효과들을 렌더링하도록 구성되는 제3 햅틱 출력 모드를 활성화시키게 하는, 주변기기. - 제1항에 있어서,
상기 메모리 디바이스는 프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
접촉 센서로부터의 센서 신호에 기초하여 신체 부위가 상기 주변기기에 접촉하고 있는지를 결정하게 하고;
상기 신체 부위가 상기 주변기기에 접촉하고 있지 않다고 결정하는 것에 응답하여, 햅틱 효과들을 디스에이블시키게 하는, 주변기기. - 제1항에 있어서,
상기 주변기기로부터 원격인 오브젝트에 의해 수행되는 실제 공간을 통한 제스처를 검출하기 위해 사용가능한 센서를 더 포함하고,
상기 메모리 디바이스는 프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 센서를 사용하여 상기 실제 공간을 통한 제스처를 결정하게 하고;
상기 제스처에 기초하여, 상기 제스처와 연관된 코맨드를 원격 컴퓨팅 디바이스에 전송하게 하는, 주변기기. - 제1항에 있어서,
실제 공간 내의 물리적 오브젝트의 물리적 특징들을 결정하기 위해 사용가능한 센서를 더 포함하고,
상기 메모리 디바이스는 프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 센서를 사용하여 상기 물리적 오브젝트의 물리적 특징들을 결정하게 하고;
상기 물리적 오브젝트의 3-차원 가상 표현이 상기 물리적 오브젝트의 물리적 특징들을 사용하여 가상 환경에서 생성되게 하는, 주변기기. - 제1항에 있어서,
상기 메모리 디바이스는 프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 주변기기가 상기 표면 상에 위치될 때 가상 오브젝트의 2-차원 버전이 디스플레이되게 하고;
상기 주변기기가 상기 표면을 벗어나 위치될 때 상기 가상 오브젝트의 3-차원 버전이 디스플레이되게 하는, 주변기기. - 비-일시적 컴퓨터-판독가능한 매체로서,
프로그램 코드를 포함하고, 상기 프로그램 코드는 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
실제 공간에서 주변기기의 물리적 위치를 검출하기 위해 사용가능한 하나 이상의 센서로부터 하나 이상의 센서 신호를 수신하게 하고;
상기 하나 이상의 센서 신호에 기초하여 상기 주변기기가 실제 공간에서 표면 상에 위치되는지 또는 상기 표면을 벗어나 물리적으로 위치되는지를 결정하게 하고;
상기 주변기기가 상기 표면 상에 물리적으로 위치된다고 결정하는 것에 응답하여, 상기 표면을 따르는 상기 주변기기의 2-차원 움직임에 기초하여 햅틱 효과들의 제1 세트를 제공하도록 구성되는 제1 햅틱 출력 모드를 활성화시키게 하고;
상기 주변기기가 상기 표면을 벗어나 위치된다고 결정하는 것에 응답하여, 실제 공간에서 상기 주변기기의 3-차원 움직임에 기초하여 햅틱 효과들의 제2 세트를 제공하도록 구성되는 제2 햅틱 출력 모드를 활성화시키게 하는, 비-일시적 컴퓨터-판독가능한 매체. - 제11항에 있어서,
프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 주변기기가 실제 공간에서 상기 표면에서 물리적으로 벗어나 위치된다고 결정하는 것에 응답하여, 상기 하나 이상의 센서 신호에 기초하여 인사이드-아웃 추적 기법을 적용함으로써 실제 공간에서 상기 주변기기의 3-차원 위치를 결정하게 하고;
(i) 상기 제2 햅틱 출력 모드가 활성화되는 것 및 (ii) 실제 공간에서 상기 주변기기의 3-차원 위치에 기초하여 햅틱 효과를 결정하게 하고;
햅틱 출력 디바이스가 상기 햅틱 효과를 출력하게 하는, 비-일시적 컴퓨터-판독가능한 매체. - 제11항에 있어서,
프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 주변기기가 상기 표면 상에 물리적으로 위치된다고 결정하는 것에 응답하여, 상기 하나 이상의 센서 신호에 기초하여 상기 표면 상의 상기 주변기기의 2-차원 위치를 결정하게 하고;
(i) 상기 제1 햅틱 출력 모드가 활성화되는 것 및 (ii) 상기 표면 상의 상기 주변기기의 2-차원 위치에 기초하여 햅틱 효과를 결정하게 하고;
햅틱 출력 디바이스가 상기 햅틱 효과를 출력하게 하는, 비-일시적 컴퓨터-판독가능한 매체. - 제11항에 있어서,
하나 이상의 센서는 제1 광학 센서 및 상기 제1 광학 센서와는 별개인 제2 광학 센서를 포함하고,
프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
상기 주변기기가 상기 표면 상에 물리적으로 위치된다고 결정하는 것에 응답하여, 상기 제2 광학 센서를 사용하여 생성되는 3-차원 입력보다는 상기 제1 광학 센서를 사용하여 생성되는 2-차원 입력이 컴퓨팅 디바이스에 제공되는 제1 추적 모드를 활성화시키게 하고;
상기 주변기기가 실제 공간에서 상기 표면을 벗어나 물리적으로 위치된다고 결정하는 것에 응답하여, 상기 제1 광학 센서를 사용하여 결정되는 2-차원 입력보다는 상기 제2 광학 센서를 사용하여 생성되는 3-차원 입력이 상기 컴퓨팅 디바이스에 제공되는 제2 추적 모드를 활성화시키게 하는, 비-일시적 컴퓨터-판독가능한 매체. - 제11항에 있어서,
프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
손이 아닌 신체 부위에 상기 주변기기를 물리적으로 커플링시키도록 구성되는 운송 디바이스에 상기 주변기기가 물리적으로 부착되는지를 결정하게 하고;
상기 주변기기가 상기 운송 디바이스에 물리적으로 커플링된다고 결정하는 것에 응답하여, 핸즈-프리 사용 동안 햅틱 효과들을 렌더링하도록 구성되는 제3 햅틱 출력 모드를 활성화시키게 하는, 비-일시적 컴퓨터-판독가능한 매체. - 제11항에 있어서,
프로그램 코드를 추가로 포함하고, 이 프로그램 코드는 상기 프로세서에 의해 실행가능하여 상기 프로세서로 하여금:
접촉 센서로부터의 센서 신호에 기초하여 신체 부위가 상기 주변기기에 접촉하고 있는지를 결정하게 하고;
상기 신체 부위가 상기 주변기기에 접촉하고 있지 않다고 결정하는 것에 응답하여, 햅틱 효과들을 디스에이블시키게 하는, 비-일시적 컴퓨터-판독가능한 매체. - 방법으로서,
주변기기의 프로세서에 의해, 실제 공간에서 상기 주변기기의 물리적 위치를 검출하기 위해 사용가능한 하나 이상의 센서로부터 센서 신호들의 제1 세트를 수신하는 단계;
상기 프로세서에 의해, 상기 센서 신호들의 제1 세트에 기초하여 상기 주변기기가 표면 상에 물리적으로 위치된다고 결정하는 단계;
상기 주변기기가 상기 표면 상에 물리적으로 위치된다고 결정하는 것에 응답하여, 상기 프로세서에 의해, 상기 표면을 따르는 상기 주변기기의 2-차원 움직임에 기초하여 햅틱 효과들의 제1 세트를 제공하도록 구성되는 제1 햅틱 출력 모드를 활성화시키는 단계;
상기 프로세서에 의해, 상기 하나 이상의 센서로부터 센서 신호들의 제2 세트를 수신하는 단계;
상기 프로세서에 의해, 상기 센서 신호들의 제2 세트에 기초하여 실제 공간에서 상기 주변기기가 물리적으로 상기 표면을 벗어나 위치된다고 결정하는 단계; 및
상기 주변기기가 상기 표면을 벗어나 위치된다고 결정하는 것에 응답하여, 상기 프로세서에 의해, 실제 공간에서 상기 주변기기의 3-차원 움직임에 기초하여 햅틱 효과들의 제2 세트를 제공하도록 구성되는 제2 햅틱 출력 모드를 활성화시키는 단계
를 포함하는 방법. - 제17항에 있어서,
상기 센서 신호들의 제2 세트에 기초하여 인사이드-아웃 추적 기법을 적용함으로써 실제 공간에서 상기 주변기기의 3-차원 위치를 결정하는 단계;
(i) 상기 제2 햅틱 출력 모드가 활성화되는 것 및 (ii) 실제 공간에서의 상기 주변기기의 3-차원 위치에 기초하여 햅틱 효과를 결정하는 단계; 및
햅틱 출력 디바이스가 상기 햅틱 효과를 출력하게 하는 단계
를 더 포함하는 방법. - 제17항에 있어서,
상기 하나 이상의 센서는 제1 광학 센서 및 상기 제1 광학 센서와는 별개인 제2 광학 센서를 포함하고,
상기 주변기기가 물리적으로 상기 표면 상에 위치된다고 결정하는 것에 응답하여, 상기 제2 광학 센서를 사용하여 생성되는 3-차원 입력보다는 상기 제1 광학 센서를 사용하여 생성되는 2-차원 입력이 컴퓨팅 디바이스에 제공되는 제1 추적 모드를 활성화시키는 단계; 및
상기 주변기기가 실제 공간에서 물리적으로 상기 표면을 벗어나 위치된다고 결정하는 것에 응답하여, 상기 제1 광학 센서를 사용하여 결정되는 2-차원 입력보다는 상기 제2 광학 센서를 사용하여 생성되는 3-차원 입력이 상기 컴퓨팅 디바이스에 제공되는 제2 추적 모드를 활성화시키는 단계
를 더 포함하는 방법. - 제17항에 있어서,
손이 아닌 신체 부위에 상기 주변기기를 물리적으로 커플링시키도록 구성되는 운송 디바이스에 상기 주변기기가 물리적으로 부착되는지를 결정하는 단계; 및
상기 주변기기가 상기 운송 디바이스에 물리적으로 커플링된다고 결정하는 것에 응답하여, 핸즈-프리 사용 동안 햅틱 효과들을 렌더링하도록 구성되는 제3 햅틱 출력 모드를 활성화시키는 단계
를 더 포함하는 방법. - 제17항에 있어서,
접촉 센서로부터의 센서 신호에 기초하여 신체 부위가 상기 주변기기에 접촉하고 있는지를 결정하는 단계; 및
상기 신체 부위가 상기 주변기기에 접촉하고 있지 않다고 결정하는 것에 응답하여, 햅틱 효과들이 디스에이블되는 제3 햅틱 출력 모드를 활성화시키는 단계
를 더 포함하는 방법. - 제17항에 있어서,
상기 주변기기가 물리적으로 상기 표면 상에 위치된다고 결정하는 것에 응답하여 가상 오브젝트의 2-차원 버전을 디스플레이하는 단계; 및
상기 주변기기가 물리적으로 상기 표면을 벗어나 위치된다고 결정하는 것에 응답하여 상기 가상 오브젝트의 3-차원 버전을 디스플레이하는 단계
를 더 포함하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/845,845 US20190187819A1 (en) | 2017-12-18 | 2017-12-18 | Haptically-Enabled Peripheral Usable for Two-Dimensional and Three-Dimensional Tracking |
US15/845,845 | 2017-12-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190073281A true KR20190073281A (ko) | 2019-06-26 |
Family
ID=64744518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180160670A KR20190073281A (ko) | 2017-12-18 | 2018-12-13 | 2-차원 및 3-차원 추적을 위해 사용가능한 햅틱방식-인에이블형 주변기기 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20190187819A1 (ko) |
EP (1) | EP3499344A1 (ko) |
JP (1) | JP2019109889A (ko) |
KR (1) | KR20190073281A (ko) |
CN (1) | CN110045813A (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10751141B2 (en) * | 2018-01-08 | 2020-08-25 | Stockdale Medical, Llc | Medical device tray tracking system and method of use |
WO2020209864A1 (en) * | 2019-04-12 | 2020-10-15 | Google Llc | Electromagnetically tracked three-dimensional air mouse |
CN111459317B (zh) * | 2020-04-24 | 2024-02-27 | 维沃移动通信有限公司 | 输入设备和电子设备输入*** |
CN114730223A (zh) * | 2020-09-29 | 2022-07-08 | 微软技术许可有限责任公司 | 计算机鼠标模块 |
IL308982A (en) * | 2021-05-31 | 2024-01-01 | Univ Kansas | Magnetic sensors and methods to create and use them |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352643B2 (en) * | 2010-09-30 | 2013-01-08 | Immersion Corporation | Haptically enhanced interactivity with interactive content |
US10410180B2 (en) * | 2012-11-19 | 2019-09-10 | Oath Inc. | System and method for touch-based communications |
KR20160044260A (ko) * | 2014-10-15 | 2016-04-25 | 삼성전자주식회사 | 원격 제어 장치 및 그 제어 방법 |
KR102316327B1 (ko) * | 2017-04-04 | 2021-10-22 | 엘지전자 주식회사 | 가상 공간의 캡쳐 방법 및 그 전자장치 |
US10841486B2 (en) * | 2017-07-20 | 2020-11-17 | Eclo, Inc. | Augmented reality for three-dimensional model reconstruction |
US10514780B2 (en) * | 2017-12-01 | 2019-12-24 | Logitech Europe S.A. | Input device |
-
2017
- 2017-12-18 US US15/845,845 patent/US20190187819A1/en not_active Abandoned
-
2018
- 2018-12-13 KR KR1020180160670A patent/KR20190073281A/ko unknown
- 2018-12-14 JP JP2018233985A patent/JP2019109889A/ja active Pending
- 2018-12-17 EP EP18213209.2A patent/EP3499344A1/en not_active Withdrawn
- 2018-12-17 CN CN201811544047.9A patent/CN110045813A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN110045813A (zh) | 2019-07-23 |
US20190187819A1 (en) | 2019-06-20 |
JP2019109889A (ja) | 2019-07-04 |
EP3499344A1 (en) | 2019-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN210573659U (zh) | 计算机***、头戴式设备、手指设备和电子设备 | |
JP6906580B2 (ja) | ビューポートベースの拡張現実触覚効果のシステム、方法及び非一時的コンピュータ可読媒体 | |
US10248210B2 (en) | Systems and methods for haptically-enabled conformed and multifaceted displays | |
KR20190073281A (ko) | 2-차원 및 3-차원 추적을 위해 사용가능한 햅틱방식-인에이블형 주변기기 | |
US10564730B2 (en) | Non-collocated haptic cues in immersive environments | |
CN107533373B (zh) | 虚拟现实中经由手与对象的场境敏感碰撞的输入 | |
US20200023272A1 (en) | Haptic surround functionality | |
KR20170069936A (ko) | 위치 기반 햅틱 효과를 위한 시스템 및 방법 | |
EP3489803A1 (en) | Systems and methods for providing haptic feedback according to tilt-based inputs | |
KR20200000803A (ko) | 가상 현실 사용자를 위한 실세계 햅틱 상호작용 | |
KR20160004198A (ko) | 정전 햅틱 효과를 제공하는 표면 요소를 위한 시스템 및 방법 | |
WO2017177006A1 (en) | Head mounted display linked to a touch sensitive input device | |
KR20180098166A (ko) | 가상 감성 터치를 위한 시스템들 및 방법들 | |
EP3096206A1 (en) | Haptic effects based on predicted contact | |
KR20180066865A (ko) | 햅틱들을 가지는 컴플라이언스 착시들을 위한 시스템들 및 방법 | |
CN110389659A (zh) | 针对增强或虚拟现实环境提供动态触觉回放的***和方法 | |
US20180011538A1 (en) | Multimodal haptic effects | |
CN110609615A (zh) | 用于在增强现实中集成触觉覆盖的***和方法 | |
US20200286298A1 (en) | Systems and methods for a user interaction proxy |