KR20190122559A - 증강 또는 가상 현실 환경들에 대한 동적 햅틱 재생을 제공하기 위한 시스템들 및 방법들 - Google Patents

증강 또는 가상 현실 환경들에 대한 동적 햅틱 재생을 제공하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20190122559A
KR20190122559A KR1020190042351A KR20190042351A KR20190122559A KR 20190122559 A KR20190122559 A KR 20190122559A KR 1020190042351 A KR1020190042351 A KR 1020190042351A KR 20190042351 A KR20190042351 A KR 20190042351A KR 20190122559 A KR20190122559 A KR 20190122559A
Authority
KR
South Korea
Prior art keywords
haptic effect
processor
haptic
static
dynamic
Prior art date
Application number
KR1020190042351A
Other languages
English (en)
Inventor
리원 우
대니 에이 그랜트
후안 마누엘 크루스-에르난데스
Original Assignee
임머숀 코퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 임머숀 코퍼레이션 filed Critical 임머숀 코퍼레이션
Publication of KR20190122559A publication Critical patent/KR20190122559A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus

Abstract

본 명세서에 개시된 하나의 예시적인 시스템은 메모리 및 메모리와 통신하는 프로세서를 포함하는 컴퓨팅 디바이스를 포함한다. 시스템은 또한 적어도 100khz의 샘플링 레이트들을 달성할 수 있고 컴퓨팅 디바이스와 통신하는 xPC 타겟 머신과, 센서 및 햅틱 출력 디바이스를 포함하는 사용자 디바이스를 포함한다. 프로세서는 모의 현실 환경을 생성하고, 모의 현실 환경 또는 센서로부터의 센서 신호에 기초하여 햅틱 효과를 결정한다. 프로세서는 센서 신호 또는 햅틱 효과의 파라미터에 관한 데이터를 xPC 타겟 머신에 전송하고, xPC 타겟 머신은 햅틱 효과의 파라미터를 결정하고, 실질적으로 실시간으로 햅틱 신호를 생성한다. xPC 타겟 머신은 햅틱 신호를 햅틱 출력 디바이스에 전송하고, 햅틱 출력 디바이스는 햅틱 신호를 수신하고 햅틱 효과를 출력하도록 구성된다.

Description

증강 또는 가상 현실 환경들에 대한 동적 햅틱 재생을 제공하기 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR PROVIDING DYNAMIC HAPTIC PLAYBACK FOR AN AUGMENTED OR VIRTUAL REALITY ENVIRONMENTS}
본 개시내용은 일반적으로 사용자 인터페이스 디바이스들에 관한 것이다. 더욱 구체적으로, 그러나 제한이 아니라, 본 개시내용은 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하는 것에 관한 것이다.
증강 현실("AR") 디바이스들은 물리적 객체들 또는 "실세계" 객체들이 가상 공간에서 가상 객체들과 동시에 디스플레이되는 증강 현실 환경을 제공한다. 유사하게, 가상 현실("VR") 디바이스들은 VR 환경에서 사용자의 물리적 존재를 시뮬레이션할 수 있는 VR 환경을 생성하는 데 이용될 수 있다. AR 또는 VR 디바이스의 사용자는 AR 또는 VR 환경을 볼 수 있고, AR 또는 VR 환경 내의 가상 객체들을 보거나 그와 상호작용할 수 있다. 그러나, 일부 AR 또는 VR 디바이스들은 햅틱 피드백 능력이 없을 수 있다. 더욱이, 일부 AR 또는 VR 디바이스들은 정적 햅틱 피드백 또는 재생(예를 들어, AR 또는 VR 환경과의 사용자의 상호작용에 기초한 미리 결정된 햅틱 효과) 및 동적 햅틱 피드백 또는 재생(예를 들어, 사용자가 AR 또는 VR 환경과 상호작용할 때 시간이 지남에 따라 변화하는 하나 이상의 햅틱 효과)을 제공하지 않을 수 있다. 또한, 일부 AR 또는 VR 디바이스들은 실질적으로 실시간으로 햅틱 피드백 또는 재생(예를 들어, 사용자가 AR 또는 VR 환경과 상호작용할 때 실질적으로 실시간으로 인지되는 햅틱 효과)을 제공하지 않을 수 있다.
본 개시내용의 다양한 실시예들은 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위한 시스템들 및 방법들을 제공한다.
일 실시예에서, 시스템은 사용자의 상호작용을 표시하는 정보 또는 사용자에 관한 생물학적 또는 생체인식 정보 또는 사용자의 환경에 관한 임의의 정보를 캡처(capture)하도록 구성되는 센서를 포함하는 사용자 디바이스를 포함한다. 사용자 디바이스는 햅틱 출력 디바이스를 추가로 포함한다. 시스템은 제1 처리 디바이스, 및 제1 처리 디바이스에 통신 가능하게 결합된 비일시적 컴퓨터 판독가능 매체를 포함하는 컴퓨팅 디바이스를 추가로 포함한다. 제1 처리 디바이스는: 모의 현실 환경(simulated reality environment)을 생성하는 동작; 센서로부터, 사용자에 관한 정보를 표시하는 센서 신호를 수신하는 동작; 모의 현실 환경 또는 센서 신호에 기초하여 햅틱 효과를 결정하는 동작; 및 센서 신호 또는 햅틱 효과의 파라미터에 관한 데이터를 xPC 타겟 머신에 전송하는 동작을 포함하는 동작들을 수행하도록 구성된다. 시스템은 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100khz 이상의 샘플링 레이트들을 달성할 수 있는 xPC 타겟 머신을 추가로 포함하고, 햅틱 효과의 파라미터를 결정하도록 구성되는 제2 처리 디바이스를 포함한다. 제2 처리 디바이스는 xPC 타겟 머신이 센서 신호 또는 햅틱 효과의 파라미터에 관한 데이터를 수신할 때 실질적으로 실시간으로 햅틱 효과와 연관된 햅틱 신호를 생성하도록 또한 구성되고, 햅틱 신호는 대략 1Hz 내지 20kHz의 주파수를 갖는다. 제2 처리 디바이스는 햅틱 신호를 수신하여 햅틱 효과를 출력하도록 구성되는 햅틱 출력 디바이스에 햅틱 효과와 연관된 햅틱 신호를 전송하도록 또한 구성된다.
이러한 예시적인 실시예들은 본 발명 요지를 제한하거나 제한들을 정의하기 위한 것이 아니라, 그에 대한 이해를 돕기 위한 예들을 제공하기 위해 언급되어 있다. 예시적인 실시예들은 상세한 설명에서 논의되고, 추가적인 설명이 거기에서 제공된다. 다양한 실시예들에 의해 제공되는 이점들은 본 명세서를 검토함으로써 및/또는 청구된 발명 요지의 하나 이상의 실시예를 실시함으로써 더욱 이해될 수 있다.
완전하고 실시가능한 개시내용은 명세서의 나머지 부분에 더욱 구체적으로 기술되어 있다. 명세서에서는 이하의 첨부 도면을 참조한다.
도 1은 일 실시예에 따라 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위한 시스템을 도시하는 블록도이다.
도 2는 일 실시예에 따라 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위해 생성될 수 있는 상호작용 사용자 인터페이스(interactive user interface)의 예이다.
도 3은 다른 실시예에 따라 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위해 생성될 수 있는 상호작용 사용자 인터페이스의 예이다.
도 4는 일 실시예에 따라 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위한 방법을 수행하기 위한 단계들의 흐름도이다.
이제 다양한 그리고 대안의 예시적인 실시예들 및 첨부 도면들에 대해 상세하게 참조하기로 한다. 각각의 예는 제한이 아니라 설명으로 제공된다. 수정들 및 변형들이 이루어질 수 있다는 것이 이 기술분야의 통상의 기술자들에게 명백할 것이다. 예를 들어, 일 실시예의 일부로서 설명 또는 예시되는 특징들이 다른 실시예에서 사용되어 또 다른 실시예를 만들어 낼 수 있다. 따라서, 본 개시내용은 첨부된 청구항들 및 그 등가물들의 범위 내에 속하는 수정들 및 변형들을 포함한다는 것이 의도된다.
실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하는 예시적인 예들
본 개시내용의 하나의 예시적인 실시예는 메모리 및 메모리와 통신하는 프로세서를 포함하는 컴퓨팅 디바이스를 포함한다. 컴퓨팅 디바이스는 센서를 포함하는 웨어러블 디바이스와 같은 사용자 디바이스에 통신가능하게 결합된다. 이 예에서, 컴퓨팅 디바이스 및 사용자 디바이스는 xPC 타겟 모듈을 포함하는 메모리 및 메모리와 통신하는 프로세서를 포함하는 xPC 타겟 머신 또는 디바이스에 각각 통신가능하게 결합될 수 있다. 일부 예들에서, xPC 타겟 머신 또는 디바이스는 크로스-프로세스(cross-process) 또는 인터-프로세스(inter-process)통신(예를 들어, 하나 이상의 디바이스 사이)을 위해 구성될 수 있는 임의의 디바이스를 포함한다. 일부 경우에, xPC 타겟 머신은 컴퓨팅 디바이스 및 사용자 디바이스로부터 데이터를 획득하고, 실질적으로 실시간으로 데이터를 처리 또는 분석할 수 있다.
예시적인 실시예에서, 컴퓨팅 디바이스는 모의 현실 환경(예를 들어, 가상 또는 증강 현실 환경)을 생성 및 출력할 수 있고, 사용자 디바이스의 사용자는 사용자 디바이스를 사용하여 모의 현실 환경과 상호작용할 수 있다. 이 예에서, 컴퓨팅 디바이스는 모의 현실 환경 및/또는 모의 현실 환경과 사용자의 상호작용에 관한 데이터를 캡처할 수 있다. 예를 들어, 컴퓨팅 디바이스의 프로세서는 모의 현실 환경에 관한 데이터(예를 들어, 사용자가 모의 현실 환경에서 가상 객체를 누르거나 터치할 때)를 캡처할 수 있다. 사용자 디바이스의 센서는 모의 현실 환경과 사용자의 상호작용에 관한 정보(예를 들어, 사용자의 신체 일부의 모션, 사용자 입력, 또는 모의 현실 환경과의 임의의 다른 상호작용에 관한 데이터)를 캡처하고, 모의 현실 환경과 사용자의 상호작용에 관한 캡처된 정보를 표시하는 신호를 컴퓨팅 디바이스의 프로세서에 전송할 수 있다. 컴퓨팅 디바이스의 프로세서는 모의 현실 환경 또는 모의 현실 환경과 사용자의 상호작용에 관한 데이터에 적어도 부분적으로 기초하여 하나 이상의 햅틱 효과의 하나 이상의 파라미터를 결정할 수 있다.
이 예에서, xPC 타겟 모듈은 xPC 타겟 머신으로 하여금 하나 이상의 햅틱 효과의 하나 이상의 파라미터 및/또는 사용자 디바이스의 센서로부터 획득된 센서 데이터에 관한 데이터를 컴퓨팅 디바이스의 프로세서로부터 획득(예를 들어, 수신)하게 하는 명령어들을 포함할 수 있다. xPC 타겟 머신은 햅틱 효과의 파라미터에 기초하여 햅틱 신호를 생성하고 햅틱 신호를 사용자 디바이스와 연관된 햅틱 출력 디바이스에 전송할 수 있다. 햅틱 출력 디바이스는 햅틱 신호를 수신하고 햅틱 신호에 기초하여 하나 이상의 햅틱 효과를 출력하도록 구성된다.
예로서, 사용자가 모의 현실 환경과 상호작용하고 있을 때, 사용자는 (예를 들어, 가상 객체를 선택하기 위한 사용자 입력을 제공하기 위해) 모의 현실 환경에서 가상 객체를 탭핑(tap)할 수 있다. 이 예에서, 컴퓨팅 디바이스의 프로세서는 사용자가 가상 객체를 탭핑하고 있다는 것을 표시하는 데이터를 획득할 수 있다. 프로세서는 가상 객체를 탭핑하는 사용자와 연관된 햅틱 효과의 파라미터를 결정할 수 있다. 예를 들어, 프로세서는 정적 햅틱 효과가 가상 객체를 탭핑하는 사용자와 연관된다고 결정할 수 있다. 정적 햅틱 효과는 예를 들어 미리 결정된 특성(예를 들어, 미리 결정된 크기, 지속기간, 위치, 타입, 피치, 주파수 등)을 갖는 햅틱 효과와 같은 미리 결정된 햅틱 효과일 수 있다. 이 예를 계속하면, 프로세서는 정적 햅틱 효과 또는 정적 햅틱 효과의 파라미터에 관한 데이터를 xPC 타겟 머신에 전송할 수 있고, xPC 타겟 머신은 실질적으로 실시간으로 데이터를 처리하고, 정적 햅틱 효과와 연관된 햅틱 신호를 생성하고, 햅틱 신호를 햅틱 출력 디바이스에 전송하며, 햅틱 출력 디바이스는 햅틱 신호를 수신하는 것에 응답하여 정적 햅틱 효과를 출력할 수 있다.
이 예에서, 사용자는 모의 현실 환경과 계속 상호작용할 수 있고, 사용자 디바이스의 센서는 모의 현실 환경에서 가상 객체와 사용자의 접촉의 압력의 양 또는 사용자의 접촉의 압력의 양의 변화를 검출하는 압력 센서일 수 있다. 센서는 센서가 압력의 양 또는 압력의 양의 변화에 관한 정보를 캡처할 때 실질적으로 실시간으로 압력의 양 또는 압력의 변화를 표시하는 하나 이상의 신호를 프로세서에 전송한다. 프로세서는 이후 압력의 양 또는 압력의 변화와 연관된 햅틱 효과의 파라미터를 결정할 수 있다. 예를 들어, 프로세서는 하나 이상의 동적 햅틱 효과가 가상 객체와 사용자의 접촉의 압력의 양 또는 압력의 양의 변화와 연관된다는 것을 결정할 수 있다. 일부 예들에서, 동적 햅틱 효과는 센서에 의해 캡처된 데이터에 기초하여 변화할 수 있거나 달라질 수 있는(예를 들어, 사용자의 접촉의 압력의 양 또는 압력의 양의 변화를 표시하는 센서 데이터에 기초하여 변화할 수 있는) 하나 이상의 햅틱 효과를 포함할 수 있다. 이 예를 계속하면, 프로세서는 동적 햅틱 효과 또는 동적 햅틱 효과의 파라미터에 관한 데이터를 xPC 타겟 머신에 전송할 수 있고, xPC 타겟 머신은 데이터를 실질적으로 실시간으로 처리하고, 동적 햅틱 효과와 연관된 하나 이상의 햅틱 신호를 생성하고, 햅틱 신호를 햅틱 출력 디바이스에 전송할 수 있으며, 햅틱 출력 디바이스는 햅틱 신호를 수신하는 것에 응답하여 동적 햅틱 효과를 출력할 수 있다.
이러한 방식으로, xPC 타겟 머신은 컴퓨팅 디바이스 및 사용자 디바이스에 통신가능하게 결합되어 데이터를 획득하고 실질적으로 실시간으로 데이터를 처리 또는 분석하여 햅틱 신호들을 생성할 수 있고, 그에 따라 햅틱 출력 디바이스는 실질적으로 실시간으로 정적 또는 동적 햅틱 효과를 출력할 수 있게 한다. 일부 경우에, xPC 타겟 머신은 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100kHz의 샘플링 레이트들을 달성할 수 있는 컴퓨팅 디바이스, 서버, 디바이스 등일 수 있으며, 이는 xPC 타겟 머신이 컴퓨팅 디바이스 또는 사용자 디바이스로부터의 데이터를 실시간으로 처리하고 대략 1Hz 내지 20kHz의 범위의 주파수를 갖는 하나 이상의 햅틱 신호를 실질적으로 실시간으로 생성할 수 있게 할 수 있다. 예로서, xPC 타겟 머신은 컴퓨팅 디바이스 또는 사용자 디바이스로부터의 데이터를 실시간으로 처리하고, 대략 1kHz의 주파수를 갖는 햅틱 신호를 생성할 수 있다.
이 예에서, xPC 타겟 머신 및 사용자 디바이스는 별개의 시스템들로서 설명되지만, 본 개시내용은 그러한 구성들로 제한되지 않는다. 오히려, 다른 예들에서, 사용자 디바이스 및 xPC 타겟 머신은 단일 시스템의 일부이고, xPC 타겟 머신은 사용자 디바이스의 센서로부터 센서 신호들을 수신할 수 있다.
이러한 방식으로, 본 명세서에서 설명되는 시스템들 및 방법들은 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 고화질 동적 또는 정적 햅틱 재생(예를 들어, 효과들)을 생성 및 제공할 수 있다.
이러한 예시적인 예들은 본 명세서에서 논의되는 일반적 발명 요지를 독자에게 소개하기 위하여 주어지며, 개시된 개념들의 범위를 제한하려는 의도는 아니다. 이하의 섹션들은 도면들을 참조하여 다양한 추가적인 특징들 및 예들을 설명하며, 도면들에서 유사한 참조번호들은 유사한 요소들을 나타내고, 방향성 설명들은 예시적인 예들을 설명하기 위해 사용되지만, 예시적인 예들과 같이, 본 개시내용을 제한하기 위해 사용되어서는 안된다.
실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위한 시스템의 예시적인 예들
도 1은 일 실시예에 따라 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위한 시스템(100)을 도시하는 블록도이다. 도 1에 도시된 실시예에서, 시스템(100)은 버스(106)를 통해 다른 하드웨어와 통신하는 프로세서(102)를 갖는 컴퓨팅 디바이스(101)(예를 들어, 호스트 디바이스)를 포함한다. 컴퓨팅 디바이스(101)는, 예를 들어, 개인용 컴퓨터, 모바일 디바이스(예를 들어, 스마트폰), 태블릿 등을 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스(101)는 도 1에 도시된 컴포넌트들의 전부 또는 일부를 포함할 수 있다.
랜덤 액세스 메모리("RAM"), 판독 전용 메모리("ROM"), 소거 가능 및 프로그래밍 가능 판독 전용 메모리("EEPROM"), 또는 이와 유사한 것과 같은 임의의 적절한 유형의 (및 비일시적) 컴퓨터 판독가능 매체를 포함할 수 있는 메모리(104)가 컴퓨팅 디바이스(101)의 동작을 구성하는 프로그램 컴포넌트들을 구현한다. 도시된 실시예에서, 컴퓨팅 디바이스(101)는 하나 이상의 네트워크 인터페이스 디바이스(108), 입력/출력(I/O) 인터페이스 컴포넌트들(110), 및 스토리지(112)를 추가로 포함한다.
네트워크 인터페이스 디바이스(108)는 네트워크 접속을 용이하게 하는 임의의 컴포넌트들 중 하나 이상을 나타낼 수 있다. 그 예로는 이더넷, USB, IEEE 1394와 같은 유선 인터페이스들, 및/또는 IEEE 802.11, 블루투스, 또는 셀룰러 전화 네트워크에 액세스하기 위한 라디오 인터페이스들(예를 들어, CDMA, GSM, UMTS, 또는 다른 모바일 통신 네트워크에 액세스하기 위한 트랜시버/안테나)과 같은 무선 인터페이스들을 포함하고, 이에 제한되지 않는다.
I/O 컴포넌트들(110)은 하나 이상의 디스플레이(114), 게임 컨트롤러들, 키보드들, 마우스들, 조이스틱들, 카메라들, 버튼들, 스피커들, 마이크로폰들 및/또는 데이터를 입력하거나 출력하는 데 사용되는 다른 하드웨어와 같은 디바이스들에 대한 유선 또는 무선 접속들을 용이하게 하는 데 사용될 수 있다. 스토리지(112)는 컴퓨팅 디바이스(101)에 포함되거나 프로세서(102)에 결합되는 자기, 광학, 또는 다른 저장 매체와 같은 비휘발성 스토리지를 나타낸다.
시스템(100)은, 예를 들어, 모바일 디바이스(예를 들어, 스마트폰), 스마트워치, 머리 장착 디스플레이(head-mounted display), 웨어러블 디바이스, 핸드헬드 디바이스(예를 들어, 태블릿, 비디오 게임 컨트롤러), 또는 임의의 다른 타입의 사용자 인터페이스 디바이스일 수 있는 사용자 디바이스(120)(예를 들어, 로컬 디바이스)를 추가로 포함한다. 일부 예들에서, 사용자 디바이스(120)는 사용자가 모의 현실 환경(예를 들어, 증강 또는 가상 현실 환경)과 상호작용하기 위해 사용할 수 있는 임의의 타입의 사용자 인터페이스 디바이스일 수 있다.
사용자 디바이스(120)는 버스(124)를 통해 다른 하드웨어와 통신하는 프로세서(122)를 포함할 수 있다. 사용자 디바이스(120)는 또한 메모리(126), 네트워크 인터페이스 디바이스(128), I/O 컴포넌트들(130), 및 디스플레이(132)를 포함할 수 있고, 이들 각각은 메모리(104), 네트워크 인터페이스 디바이스(108), I/O 컴포넌트들(110), 및 디스플레이(114)와 실질적으로 동일한 방식으로 구성될 수 있고, 반드시 그러할 필요는 없다.
일부 실시예들에서, 사용자 디바이스(120)는 버스(124)에 통신가능하게 접속될 수 있고 사용자의 촉각 입력을 감지하도록 구성될 수 있는 터치 표면(134)(예를 들어, 터치패드 또는 터치 감지 표면)을 포함한다. 이 예에서, 사용자 디바이스(120)는 사용자의 촉각 입력을 감지하도록 구성되는 것으로서 설명되는 터치 표면(134)을 포함하지만, 본 개시내용은 이러한 구성들로 제한되지 않는다. 오히려, 다른 예들에서, 사용자 디바이스(120)는 터치 표면(134) 및/또는 촉각 입력을 감지하도록 구성되지 않을 수 있는 임의의 표면을 포함할 수 있다.
일부 예들에서, 사용자 디바이스(120)는 사용자 디바이스(120)의 디스플레이(132)와 터치 표면(134)을 결합하는 터치 가능형 디스플레이(touch-enabled display)를 포함한다. 터치 표면(134)은 디스플레이(132) 상에 오버레이될 수 있거나, 디스플레이(132) 외부일 수 있거나, 또는 디스플레이(132)의 컴포넌트들 위의 하나 이상의 재료 층일 수 있다. 다른 실시예들에서, 사용자 디바이스(120)는 터치 가능형 디스플레이 상에 하나 이상의 가상 사용자 인터페이스 컴포넌트(예를 들어, 버튼)를 포함하는 그래픽 사용자 인터페이스("GUI")를 디스플레이할 수 있고, 터치 표면(134)은 가상 사용자 인터페이스 컴포넌트들과의 상호작용을 허용할 수 있다.
일부 실시예들에서, 사용자 디바이스(120)는 하나 이상의 센서(136)를 포함한다. 일부 실시예들에서, 센서(136)는, 예를 들어, 자이로스코프, 가속도계, 이미징 센서, 카메라, 자력계, 마이크로폰, 온도 센서, 힘 센서, 압력 센서, 심박수 센서, 인슐린 센서, 펄스 센서, 관성 측정 유닛, 뇌전도(electroencephalogram), 및/또는 사용자 또는 사용자의 상호작용에 관한 임의의 정보를 검출, 모니터, 또는 다른 방식으로 캡처할 수 있는 다른 센서를 포함할 수 있다. 예를 들어, 센서(136)는 사용자가 모의 현실 환경과 상호작용할 때 사용자의 모션 또는 사용자 디바이스(120)의 사용자의 모션에 관한 정보 또는 사용자의 환경에 관한 정보를 캡처할 수 있는 임의의 센서일 수 있다. 다른 예로서, 센서(136)는 모의 현실 환경에서 가상 객체와 사용자의 접촉의 압력의 양 또는 사용자의 접촉의 압력의 양의 변화에 관한 정보를 캡처하는 압력 센서일 수 있다. 일부 예들에서, 센서(136)는 사용자의 상호작용을 표시하는 임의의 정보, 사용자에 관한 생물학적 또는 생체인식 정보, 사용자의 실제 또는 가상 환경에 관한 정보, 또는 사용자에 관한 임의의 다른 정보를 캡처하도록 구성될 수 있다.
사용자 디바이스(120)는 xPC 타겟 머신(142)의 프로세서(140) 또는 프로세서(122)와 통신하는 햅틱 출력 디바이스(138)를 추가로 포함한다. 햅틱 출력 디바이스(138)는 햅틱 신호에 응답하여 햅틱 효과를 출력하도록 구성된다. 예를 들어, 햅틱 출력 디바이스(138)는 xPC 타겟 머신(142)의 프로세서(140)로부터의 햅틱 신호에 응답하여 햅틱 효과를 출력할 수 있다. 다른 예로서, 사용자 디바이스(120)의 프로세서(122)는 xPC 타겟 머신(142)의 프로세서(140)로부터 햅틱 신호를 수신할 수 있고, 프로세서(122)는 햅틱 신호를 햅틱 출력 디바이스(138)에 전송할 수 있다. 일부 실시예들에서, 햅틱 출력 디바이스(118)는, 예를 들어, 진동, 스퀴즈(squeeze), 포크(poke), 인지된 마찰 계수의 변화, 시뮬레이션된 텍스처(simulated texture), 때리는 느낌, 전자 촉각 효과(electro-tactile effect), 표면 변형(예를 들어, 사용자 디바이스(120)와 연관된 표면의 변형), 및/또는 고체, 액체, 또는 기체의 퍼프(puff)를 포함하는 햅틱 효과를 출력하도록 구성된다. 또한, 일부 햅틱 효과들은 동일하거나 상이한 타입의 다수의 햅틱 출력 디바이스들(138)을 순차적으로 및/또는 일제히 이용할 수 있다.
도 1에는 단일 햅틱 출력 디바이스(138)가 도시되지만, 일부 실시예들은 동일하거나 상이한 타입의 다수의 햅틱 출력 디바이스들(138)을 이용하여 햅틱 효과들을 만들어낼 수 있다. 일부 실시예들에서, 햅틱 출력 디바이스(138)는 사용자 디바이스(120)의 내부에 있고 (예를 들어, 이더넷, USB, IEEE 1394와 같은 유선 인터페이스들, 및/또는 IEEE 802.11, 블루투스, 또는 라디오 인터페이스들과 같은 무선 인터페이스들을 통해) xPC 타겟 머신(142)과 통신한다. 예를 들어, 햅틱 출력 디바이스(138)는 사용자 디바이스(120)와 연관되고(예를 들어, 그에 결합되거나 내부에 있고), 프로세서(140) 또는 프로세서(122)로부터 햅틱 신호들을 수신하도록 구성될 수 있다.
햅틱 출력 디바이스(138)는, 예를 들어, 압전 액추에이터, 전기 활성 폴리머(electro-active polymer), 매크로 섬유 복합체(macro fiber composite)(MFC) 요소 등 중의 하나 이상을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, "MFC 요소"라는 용어는 액추에이터와 센서 둘다로서 작용하는 컴포넌트 또는 요소를 지칭하는 데 사용된다. 일부 예들에서, "MFC 요소"라는 용어는 에너지를 사용하여 햅틱 효과를 출력하거나 에너지를 입력으로서 수신하는 트랜스듀서를 지칭하는 데 사용될 수 있다. 예를 들어, MFC 요소는 MFC 요소가 눌려지거나, 터치되거나, 구부러지거나, 기타 등등일 때 센서로서 사용될 수 있다. 이 예에서, MFC 요소가 눌려지거나, 터치되거나, 구부러지거나, 기타 등등일 때, MFC 요소의 하나 이상의 액추에이터 리드 또는 단자는 마이크로컨트롤러에 의해 검출, 증폭, 분석 등이 행해질 수 있는 전압을 운반(carry)할 수 있다.
시스템(100)은 버스(144)를 통해 다른 하드웨어와 통신하는 프로세서(140)를 포함하는 xPC 타겟 머신(142)을 추가로 포함한다. xPC 타겟 머신(142)은, 예를 들어, 개인용 컴퓨터 또는 다른 디바이스를 포함할 수 있다. xPC 타겟 머신(142)은 또한 메모리(146), 네트워크 인터페이스 디바이스(148), I/O 컴포넌트들(150), 스토리지(152), 및 디스플레이(154)를 포함할 수 있고, 이들 각각은 메모리(104), 네트워크 인터페이스 디바이스(108), I/O 컴포넌트들(110), 스토리지(112), 및 디스플레이(114)와 실질적으로 동일한 방식으로 구성될 수 있고, 반드시 그러할 필요는 없다.
컴퓨팅 디바이스(101)의 메모리(104)를 참조하면, 모듈들(156, 158, 160, 및 162)은 디바이스가 일부 실시예들에서 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하도록 어떻게 구성될 수 있는지를 보여주도록 도시되어 있다. 일부 실시예들에서, 모듈들(156, 158, 160 및 162)은 하나 이상의 동작을 수행하도록 프로세서(102)를 구성할 수 있는 프로세서 실행가능 명령어들을 포함할 수 있다.
예를 들어, 콘텐츠 제공 모듈(156)은 콘텐츠(예를 들어, 텍스트, 이미지, 사운드, 비디오, 캐릭터, 가상 객체, 가상 애니메이션 등)를 사용자(예를 들어, 컴퓨팅 디바이스(101) 또는 사용자 디바이스(120)의 사용자)에게 제공하기 위해 프로세서(102)에 의해 실행될 수 있는 명령어들을 포함한다. 콘텐츠가 컴퓨터 생성 이미지들(computer-generated images)을 포함하는 경우, 콘텐츠 제공 모듈(156)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 디스플레이 디바이스(예를 들어, 컴퓨팅 디바이스(101)의 디스플레이(114) 또는 프로세서(102)에 통신가능하게 결합된 다른 디스플레이) 상의 디스플레이를 위한 이미지들을 생성하게 하는 명령어들을 포함한다. 콘텐츠가 비디오 및/또는 정지 이미지들을 포함하는 경우, 콘텐츠 제공 모듈(156)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 비디오 및/또는 정지 이미지들에 액세스하게 하고, 디스플레이(114) 상의 디스플레이를 위한 비디오 및/또는 정지 이미지들의 뷰들(views)을 생성하게 하는 명령어들을 포함한다. 콘텐츠가 오디오 콘텐츠를 포함하는 경우, 콘텐츠 제공 모듈(156)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 대응하는 사운드들을 출력하기 위해 디스플레이(114)의 일부일 수 있는 스피커를 구동할 전자 신호들을 생성하게 하는 명령어들을 포함한다. 일부 실시예들에서, 콘텐츠, 또는 콘텐츠가 도출되는 정보는, 도 1에 예시된 바와 같이 컴퓨팅 디바이스(101)의 일부일 수 있거나, 컴퓨팅 디바이스(101)와 분리되어 컴퓨팅 디바이스(101)에 통신가능하게 결합될 수 있는 스토리지(112)로부터 프로세서(102)에 의해 획득될 수 있다.
예로서, 콘텐츠 제공 모듈(156)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 디스플레이(114) 상의 디스플레이를 위한 모의 현실 환경을 생성하게 하는 명령어들을 포함할 수 있다. 모의 현실 환경은 부분적으로 또는 완전히 가상인 환경을 포함할 수 있다. 예를 들어, 모의 현실 환경은 증강 현실 환경, 가상 현실 환경, 비디오 게임 환경 등을 포함할 수 있다. 예시적인 예로서, 프로세서(102)는 디스플레이(114) 상에 비디오 게임과 연관된 가상 또는 증강 현실 환경을 생성할 수 있다. 모의 현실 환경은 사용자의 물리적 존재 및/또는 환경을 시뮬레이션할 수 있고, 컴퓨팅 디바이스(101)의 사용자가 사용자 디바이스(120)를 이용하여 상호작용할 수 있는 가상 객체들(예를 들어, 캐릭터들, 차량들, 버튼들, 슬라이더들, 노브들, 아이콘들, 또는 다른 사용자 인터페이스 컴포넌트들)을 포함할 수 있다. 예를 들어, 사용자 디바이스(120)는 사용자가 모의 현실 환경과 상호작용할 수 있는 게임 컨트롤러, 링, 키보드, 마우스, 조이스틱 등일 수 있고, 사용자 디바이스(120)는 네트워크 디바이스(108) 및 네트워크 디바이스(128)를 통해 컴퓨팅 디바이스(101)에 통신 가능하게 결합될 수 있다. 프로세서(102)는 네트워크 디바이스(108) 및 네트워크 디바이스(128)를 통해 사용자 디바이스(120)로부터 신호들을 수신하고, 신호들에 기초하여 모의 현실 환경 내의 가상 객체의 상호작용 및/또는 조작을 결정할 수 있다. 프로세서(102)는 모의 현실 환경 내에서 상호작용 및/또는 조작이 발생하게 할 수 있다. 따라서, 사용자는 사용자 디바이스(120)를 통해 모의 현실 환경에서 가상 객체들과 상호작용하거나 그것을 조작할 수 있다.
검출 모듈(158)은 센서(136)로부터 센서 신호들을 수신하도록 프로세서(102)를 구성할 수 있다. 예로서, 검출 모듈(158)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 센서(136)가 사용자 디바이스(120)의 사용자의 모션 또는 사용자 디바이스(120)의 모션을 검출하거나 감지할 때 센서(136)로부터 센서 신호를 수신하게 하는 명령어들을 포함할 수 있다. 예로서, 프로세서(102)는 센서(136)가 사용자 디바이스(120)를 사용하여 모의 현실 환경과 사용자의 상호작용을 검출할 때 센서(136)로부터 센서 신호를 수신할 수 있다. 예를 들어, 검출 모듈(158)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 사용자가 모의 현실 환경과 상호작용할 때 센서(136)가 사용자 디바이스(120)의 사용자의 모션에 관한 정보를 캡처할 때 센서(136)로부터 센서 신호를 수신하게 하는 명령어들을 포함할 수 있다. 다른 예로서, 검출 모듈(158)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 센서(136)가 모의 현실 환경 내의 가상 객체와 사용자의 접촉의 압력의 양 또는 사용자의 접촉의 압력의 양의 변화에 관한 정보를 캡처할 때 센서(136)로부터 센서 신호를 수신하게 하는 명령어들을 포함할 수 있다. 일부 예들에서, 센서(136)로부터의 센서 신호는, 사용자 디바이스(120)의 사용자의 모션 또는 사용자 디바이스(120)의 모션의 경로, 속도, 가속도, 힘 등을 포함하지만 이에 제한되지 않는 사용자 디바이스(120)의 사용자의 모션 또는 사용자 디바이스(120)의 모션에 관한 정보, 및/또는 사용자 또는 사용자 디바이스(120)에 관한 임의의 다른 정보를 포함할 수 있다. 일부 예들에서, 센서(136)로부터의 센서 신호는 사용자의 실제 또는 가상 환경의 온도, 습도, 위도 등을 포함하지만 이에 제한되지 않는 사용자의 실제 또는 모의 환경의 파라미터(예를 들어, 조건)에 관한 정보를 포함할 수 있다. 일부 예들에서, 프로세서(102)는 센서(136)로부터 하나 이상의 센서 신호를 수신하고, 센서 신호들에 기초하여 사용자, 사용자의 모션, 사용자 디바이스(120)의 사용자의 모션, 또는 사용자의 환경에 관한 정보를 결정할 수 있다.
일부 실시예들에서, 햅틱 효과 결정 모듈(160)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 생성할 햅틱 효과를 결정하게 하는 명령어들을 포함한다. 햅틱 효과 결정 모듈(160)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 하나 이상의 알고리즘 또는 룩업 테이블을 이용하여 출력할 하나 이상의 햅틱 효과를 선택하게 하는 명령어들을 포함할 수 있다. 일부 실시예들에서, 햅틱 효과 결정 모듈(160)은 다양한 햅틱 효과들에 대응하고 햅틱 효과를 결정하기 위해 프로세서(102)에 의해 사용가능한 데이터를 포함하는 하나 이상의 알고리즘 또는 룩업 테이블을 포함한다.
일부 예들에서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 정적 햅틱 효과 또는 동적 햅틱 효과를 결정하게 할 수 있다. 정적 햅틱 효과는 모의 현실 환경 또는 모의 현실 환경과 사용자의 상호작용에 기초하여 하나 이상의 미리 결정된 햅틱 효과를 포함할 수 있다. 일부 예들에서, 정적 햅틱 효과는 미리 결정된 특성(예를 들어, 미리 결정된 크기, 지속기간, 위치, 타입, 피치, 주파수 등)을 가질 수 있다.
일부 예들에서, 동적 햅틱 효과는 센서(136)로부터의 센서 신호에 기초하여 변화할 수 있거나 달라질 수 있는 하나 이상의 햅틱 효과를 포함할 수 있다. 예를 들어, 동적 햅틱 효과의 특성(예를 들어, 크기, 지속기간, 위치, 타입, 피치, 주파수 등)은 모의 현실 환경 또는 센서(136)로부터의 센서 신호들에 기초하여(예를 들어, 모의 현실 환경과 사용자의 상호작용에 기초하여) 달라질 수 있다.
특히, 일부 실시예들에서, 햅틱 효과 결정 모듈(160)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 모의 현실 환경(예를 들어, 콘텐츠 제공 모듈(156)에 포함된 명령어들을 실행하는 프로세서(102)에 의해 생성된 모의 현실 환경) 또는 모의 현실 환경과 사용자의 상호작용에 적어도 부분적으로 기초하여 정적 햅틱 효과를 결정하게 하는 명령어들을 포함할 수 있다. 예를 들어, 프로세서(102)는 디스플레이(114) 상의 가상 객체(예를 들어, 가상 가구, 자동차, 동물, 만화 캐릭터, 버튼, 레버, 로고, 사람 등)의 존재를 시뮬레이션하기 위해 모의 현실 환경에서의 터치의 위치에 기초하여 햅틱 효과를 결정 또는 선택할 수 있다. 다른 예로서, 사용자는 (예를 들어, 가상 객체를 선택하기 위한 사용자 입력을 제공하기 위해) 모의 현실 환경에서의 가상 객체를 탭핑함으로써 모의 현실 환경과 상호작용할 수 있다. 이 예에서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 가상 객체를 탭핑하는 사용자와 연관된 하나 이상의 정적 햅틱 효과를 선택하게 할 수 있다. 또 다른 예로서, 프로세서(102)는 모의 현실 환경에서의 정적 애니메이션에 기초하여(예를 들어, 미리 결정된 방식으로 한 상태에서 다른 상태로 애니메이션되는 가상 객체에 기초하여) 정적 햅틱 효과를 결정 또는 선택할 수 있다. 예를 들어, 가상 캐릭터의 제1 미리 결정된 액션에 기초하여 정적 햅틱 효과가 선택될 수 있고, 가상 캐릭터의 제2 미리 결정된 액션에 기초하여 다른 정적 햅틱 효과가 선택될 수 있다. 또한, 일부 실시예들에서, 햅틱 효과 결정 모듈(160)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 가상 객체의 크기, 컬러, 위치, 이동, 및/또는 다른 특성들에 기초하여, 출력할 정적 햅틱 효과, 및 효과를 시뮬레이션하기 위해 제공할 하나 이상의 정적 햅틱 효과를 선택하는 코드를 결정하게 하는 명령어들을 포함할 수 있다. 예를 들어, 가상 객체의 컬러에 기초하여 정적 햅틱 효과들이 선택될 수 있다(예를 들어, 가상 객체가 적색인 경우 강한 진동, 및 가상 객체가 녹색인 경우 약한 진동).
일부 예들에서, 햅틱 효과 결정 모듈(160)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 센서 신호들(예를 들어, 센서(136)로부터 프로세서(102)에 의해 수신된 센서 신호들)에 적어도 부분적으로 기초하여 동적 햅틱 효과를 결정하게 하는 명령어들을 포함할 수 있다. 예를 들어, 센서(136)는 사용자가 모의 현실 환경과 상호작용할 때 사용자의 모션(예를 들어, 사용자 디바이스(120)를 보유하고 있거나 착용하고 있는 사용자) 또는 사용자 디바이스(120)의 모션을 검출하고 센서 신호를 프로세서(102)에 전송할 수 있다. 프로세서(102)는 센서 신호를 수신하고, 사용자 또는 사용자 디바이스(120)의 모션 및/또는 사용자 또는 사용자 디바이스(120)의 모션의 특성을 결정할 수 있다. 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 결정된 사용자 모션, 사용자 디바이스(120)의 모션 및/또는 모션의 특성에 적어도 부분적으로 기초하여 동적 햅틱 효과를 결정하게 할 수 있다. 다른 예로서, 센서(136)는 모의 현실 환경 내의 가상 객체와 사용자의 접촉의 압력의 양 또는 사용자의 접촉의 압력의 양의 변화에 관한 정보를 캡처할 수 있다. 센서(136)는 센서(136)가 압력의 양 또는 압력의 양의 변화에 관한 정보를 캡처할 때 실질적으로 실시간으로 압력의 양 또는 압력의 변화를 표시하는 하나 이상의 신호를 프로세서(102)에 전송한다. 이 예에서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 압력의 양 또는 압력의 양의 변화와 연관된 하나 이상의 동적 햅틱 효과를 선택하게 할 수 있다. 예를 들어, 프로세서(102)는 사용자의 접촉의 압력의 양이 임계치를 초과한다는 결정에 응답하여 강한 진동인 동적 햅틱 효과를 선택할 수 있다. 다른 예로서, 프로세서(102)는 사용자의 접촉의 압력의 양이 일정 기간 동안 감소되고 있다는 결정에 응답하여 하나 이상의 진동의 크기를 점진적으로 감소시킬 수 있다.
일부 예들에서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 사용자의 모션(예를 들어, 신체 제스처 또는 사용자 디바이스(120)의 모션) 및/또는 모션의 특성을 결정하게 하고 모션 및/또는 모션의 특성에 기초하여 동적 햅틱 효과의 특성(예를 들어, 크기, 지속기간, 위치, 타입, 피치, 주파수 등)을 결정 또는 변경할 수 있다. 예를 들어, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 사용자의 모션(예를 들어, 신체 모션 또는 사용자 디바이스(120)의 모션) 및/또는 모션의 특성과 연관된 동적 햅틱 효과의 특성에 대응하는 데이터를 포함하는 하나 이상의 룩업 테이블 또는 데이터베이스에 액세스하게 할 수 있다. 이 실시예에서, 프로세서(102)는 하나 이상의 룩업 테이블 또는 데이터베이스에 액세스하고, 모션 및/또는 모션의 특성과 연관된 하나 이상의 동적 햅틱 효과의 특성을 결정 또는 변경할 수 있다. 예를 들어, 사용자가 모의 현실 환경과 상호작용하기 위해 높은 속도로 사용자 디바이스(120)를 이동시키는 경우, 프로세서(102)는 강한 진동 또는 일련의 강한 진동들을 포함하는 동적 햅틱 효과를 결정할 수 있다. 이 예를 계속하면, 사용자가 후속하여 낮은 속도 또는 더 낮은 속도로 사용자 디바이스(120)를 이동시키는 경우, 프로세서(102)는 햅틱 효과의 다른 특성을 결정할 수 있거나, 또는 예를 들어, 사용자가 사용자 디바이스(120)의 속도를 감소시킴에 따라 사용자가 더 약한 진동을 인지하도록 진동 또는 일련의 진동들의 크기를 감소시킴으로써와 같이 햅틱 효과의 특성을 변경할 수 있다.
일부 예들에서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 주기적 또는 비주기적 정적 또는 동적 햅틱 효과(또는 햅틱 트랙, 예를 들어, 일련의 햅틱 효과들)를 결정하게 할 수 있다. 주기적 정적 또는 동적 햅틱 효과가 주기적 파형에 기초하여 생성될 수 있고, 비주기적 정적 또는 동적 햅틱 효과가 비주기적 파형에 기초하여 생성될 수 있다. 일부 경우에, 주기적 정적 또는 동적 햅틱 효과는 일정 기간 동안 출력되고 그 기간 후에 반복될 수 있는 햅틱 효과일 수 있다. 예를 들어, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 제1 기간(예를 들어, 60초) 동안 출력되는 제1 정적 햅틱 효과를 포함하는 주기적 정적 햅틱 효과를 선택하게 할 수 있다. 이 예에서, 주기적 정적 햅틱 효과는 제1 기간 후에 출력되는 제2 정적 햅틱 효과를 포함할 수 있다. 다른 예로서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 제1 기간(예를 들어, 60초) 동안 출력되는 제1 동적 햅틱 효과를 포함하는 주기적 동적 햅틱 효과를 선택하게 할 수 있다.
또 다른 예에서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 일정 기간(예를 들어, 60초) 동안 출력되는 정적 햅틱 효과를 포함하는 비주기적 정적 햅틱 효과를 선택하게 할 수 있다. 이 예에서, 비주기적 정적 햅틱 효과는 반복 또는 되풀이되지 않을 수 있다(예를 들어, 다른 정적 햅틱 효과를 포함하지 않을 수 있다). 또 다른 예로서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 일정 기간(예를 들어, 60초) 동안 출력되는 동적 햅틱 효과를 포함하는 비주기적 동적 햅틱 효과를 선택하게 할 수 있다. 이 예에서, 비주기적 동적 햅틱 효과는 다른 동적 햅틱 효과를 포함하지 않을 수 있다.
일부 실시예들에서, 햅틱 효과 결정 모듈(160)은, 프로세서(102)에 의해 실행될 때, 프로세서(102)로 하여금, 이벤트에 기초하여 햅틱 효과를 결정하게 하는 명령어들을 포함할 수 있다. 본 명세서에 사용되는 바와 같은, 이벤트는, 연관된 햅틱 효과를 잠재적으로 포함할 수 있는 컴퓨팅 디바이스(101) 또는 사용자 디바이스(120)의 동작 동안 발생하는 임의의 상호작용, 액션, 충돌, 또는 다른 이벤트이다. 일부 실시예들에서, 이벤트는 사용자 입력(예를 들어, 버튼 누름, 조이스틱 조작, 모의 현실 환경과 상호작용, 사용자 디바이스(120)의 기울임 또는 배향), 시스템 상태(예를 들어, 배터리 부족, 메모리 부족, 또는 컴퓨팅 디바이스(101)가 메시지를 수신하거나, 데이터를 송신하거나, 데이터를 수신하는 것에 기초하여 생성되는 통지와 같은 시스템 통지), 또는 프로그램 이벤트(예를 들어, 프로그램이 게임 또는 모의 현실 환경인 경우, 프로그램 이벤트는 폭발, 사격, 충돌, 게임 또는 가상 캐릭터들 간의 상호작용, 새로운 레벨로의 전진, 울퉁불퉁한 지형에서의 운전 등을 포함할 수 있음)를 포함할 수 있다.
일부 예들에서, 프로세서(102)는 하나 이상의 상호작용 사용자 인터페이스를 생성 및 출력할 수 있으며, 이를 통해 프로세서(102)는 결정된 또는 선택된 햅틱 효과의 하나 이상의 파라미터 또는 햅틱 효과와 연관된 다른 정보를 표시하는 데이터를 출력할 수 있다.
예를 들어, 도 2는 일 실시예에 따라 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위해 (예를 들어, 도 1의 프로세서(102)에 의해) 생성될 수 있는 상호작용 사용자 인터페이스(200)의 예이다. 이 예에서, 도 1의 컴퓨팅 디바이스(101)의 프로세서(102)는 상호작용 사용자 인터페이스(200)를 생성하고 디스플레이(예를 들어, 디스플레이(114))를 통해 상호작용 사용자 인터페이스(200)를 디스플레이할 수 있다.
도 2에 도시된 예에서, 상호작용 사용자 인터페이스(200)의 부분(202)은 다양한 햅틱 효과(예를 들어, 프로세서(102)에 의해 결정되거나 선택된 정적 또는 동적 햅틱 효과)를 표시하는 메뉴, 리스트, 테이블 등을 포함한다. 이 예에서, 상호작용 사용자 인터페이스(200)의 부분(202)에 포함된 메뉴는 하나 이상의 상호작용 제어 요소(예를 들어, 드롭 다운 버튼 또는 임의의 다른 상호작용 요소)를 포함할 수 있고, 이를 통해 프로세서(102)는 (예를 들어, 사용자 입력을 통해) 특정 햅틱 효과의 선택을 표시하는 데이터를 수신할 수 있다. 일부 예들에서, 프로세서(102)는 (예를 들어, 햅틱 효과와 연관된 상호작용 제어 요소의 선택을 표시하는 사용자 입력을 통해) 특정 햅틱 효과의 선택을 표시하는 데이터를 수신할 수 있고, 프로세서(102)는 선택된 햅틱 효과와 연관된 추가 정보를 디스플레이할 수 있다.
예를 들어, 프로세서(102)는 정적 햅틱 효과의 선택을 표시하는 사용자 입력에 응답하여 선택된 정적 햅틱 효과와 연관된 추가 정보를 포함하는 상호작용 사용자 인터페이스(200)의 다른 부분(204)을 생성하고 디스플레이할 수 있다. 이 예에서, 부분(204)은 햅틱 효과가 정적 햅틱 효과임을 표시하는 데이터 및 정적 햅틱 효과와 연관된 하나 이상의 파형(예를 들어, 정적 햅틱 효과를 생성하는 데 사용될 수 있는 하나 이상의 파형)과 같은 정적 햅틱 효과와 연관된 추가 정보를 포함한다.
도 1로 돌아가면, 일부 실시예들에서, 프로세서(102)는 프로세서(102)가 (예를 들어, 사용자 입력을 통해) 데이터를 수신할 수 있는 하나 이상의 상호작용 사용자 인터페이스를 생성하고 출력할 수 있고, 이는 프로세서(102)로 하여금 결정된 또는 선택된 햅틱 효과의 파라미터를 수정하게 할 수 있다. 예를 들어, 프로세서(102)는 사용자가 특정 햅틱 효과가 정적 또는 동적 햅틱 효과인지를 표시하는 사용자 입력을 제공할 수 있는 상호작용 사용자 인터페이스를 생성할 수 있다. 다른 예로서, 프로세서(102)는 사용자가 특정 햅틱 효과가 주기적 또는 비주기적 정적 또는 동적 햅틱 효과인지를 표시하는 사용자 입력을 제공할 수 있는 상호작용 사용자 인터페이스를 생성할 수 있다. 또 다른 예에서, 프로세서(102)는 사용자가 정적 또는 동적 햅틱 효과를 생성하기 위한 파형에 관한 데이터(예를 들어, 파형이 주기적 파형, 비주기적 파형, 선형 파형, 사인 파형, 사각 파형, 삼각 파형, 톱니 파형 등인지를 표시하는 데이터)를 표시하는 사용자 입력을 제공할 수 있는 상호작용 사용자 인터페이스를 생성할 수 있다. 일부 경우에, 햅틱 효과가 주기적 햅틱 효과(예를 들어, 주기적 정적 또는 동적 햅틱 효과)를 포함하는 경우, 프로세서(102)는 사용자가 예를 들어, 주기적 햅틱 효과의 하나 이상의 햅틱 효과의 시작 시간 및 종료 시간과 같은 주기적 햅틱 효과의 하나 이상의 햅틱 효과의 지속기간을 표시하는 사용자 입력을 제공할 수 있는 상호작용 사용자 인터페이스를 생성할 수 있다. 또 다른 예로서, 프로세서(102)는 사용자가 햅틱 효과의 선택된 햅틱 효과의 특성(예를 들어, 크기, 지속기간, 위치, 타입, 주파수, 피치 등)을 나타내는 사용자 입력을 제공할 수 있는 상호작용 사용자 인터페이스를 생성할 수 있다.
예를 들어, 도 3은 일 실시예에 따라 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위해 (예를 들어, 도 1의 프로세서(102)에 의해) 생성될 수 있는 상호작용 사용자 인터페이스(300)의 예이다. 이 예에서, 도 1의 컴퓨팅 디바이스(101)의 프로세서(102)는 상호작용 사용자 인터페이스(300)를 생성하고 디스플레이(예를 들어, 디스플레이(114))를 통해 상호작용 사용자 인터페이스(300)를 디스플레이할 수 있다.
도 3에 도시된 예에서, 상호작용 사용자 인터페이스(300)의 부분(302)은 다양한 햅틱 효과(예를 들어, 프로세서(102)에 의해 결정되거나 선택된 정적 또는 동적 햅틱 효과)를 표시하는 메뉴, 리스트, 테이블 등을 포함한다. 이 예에서, 상호작용 사용자 인터페이스(300)의 부분(302)에 포함된 메뉴는 사용자가 특정한 햅틱 효과를 선택할 수 있는 하나 이상의 상호작용 제어 요소(예를 들어, 드롭 다운 버튼, 가상 버튼 또는 슬라이더, 또는 임의의 다른 상호작용 요소)를 포함할 수 있다. 이 예에서, 사용자가 햅틱 효과를 선택하면, 프로세서(102)는 햅틱 효과와 연관된 추가 정보를 출력하거나 제공할 수 있고, 사용자는 상호작용 사용자 인터페이스(300)를 통해 햅틱 효과의 하나 이상의 파라미터를 수정 또는 표시할 수 있다. 예를 들어, 도 3에 도시된 예에서, 사용자는 동적 햅틱 효과를 선택하는 사용자 입력을 제공할 수 있고, 프로세서(102)는 동적 햅틱 효과와 연관된 정보를 디스플레이할 수 있다. 이 예에서, 사용자는, 예를 들어 동적 햅틱 효과가 주기적 동적 햅틱 효과인지를 표시하는 사용자 입력, 동적 햅틱 효과의 제1(예를 들어, 시작) 동적 햅틱 효과, 동적 햅틱 효과의 제2(예를 들어, 종료) 동적 햅틱 효과, 동적 햅틱 효과의 시작 시간 또는 위치, 동적 햅틱 효과의 종료 시간 또는 위치, 및 동적 햅틱 효과를 렌더링하거나 생성하기 위한 모델의 타입(예를 들어, 선형 모델)을 제공하는 것을 포함하여, 동적 햅틱 효과의 파라미터들을 표시 또는 수정하기 위해 하나 이상의 상호작용 제어 요소들을 통해 추가적인 사용자 입력을 제공할 수 있다.
이 예에서, 상호작용 사용자 인터페이스(300)의 다른 부분(304)은 다양한 햅틱 효과들을 표시하고 사용자가 햅틱 효과들의 하나 이상의 추가적인 파라미터를 수정 또는 표시할 수 있는 다양한 상호작용 제어 요소들을 포함하는 다른 메뉴, 리스트, 테이블 등을 포함한다. 예를 들어, 부분(304)에서, 사용자는 동적 햅틱 효과가 주기적 햅틱 효과임을 표시하는 사용자 입력을 제공하였다. 이 예에서, 사용자는 크기, 주기, 지속기간, 시작 위치 또는 공간, 종료 위치 또는 공간, 또는 주기적 동적 햅틱 효과를 렌더링하거나 생성하기 위한 모델을 특정하는 사용자 입력을 제공할 수 있다.
도 2 및 도 3과 관련하여 전술한 예들에서, 상호작용 제어 요소들은 가상 슬라이더, 버튼, 또는 다른 상호작용 요소로서 도시되지만, 본 개시내용은 이러한 구성들로 제한되지 않는다. 오히려, 다른 예들에서, 상호작용 제어 요소는 사용자가 상호작용 사용자 인터페이스들(200 및 300)에 사용자 입력을 제공할 수 있는 임의의 요소일 수 있다.
도 1로 돌아가면, 일부 예들에서, 프로세서(102)는 (예를 들어, 프로세서(102)가 햅틱 효과를 선택 또는 결정할 때) 실질적으로 실시간으로 하나 이상의 사용자 인터페이스(예를 들어, 도 2의 상호작용 사용자 인터페이스들(200) 또는 도 3의 상호작용 사용자 인터페이스(300))를 생성할 수 있다. 이 예에서, 프로세서(102)는 전술한 바와 같이 햅틱 효과의 하나 이상의 파라미터를 표시하는 사용자 입력을 수신하고, 파라미터들을 표시하는 데이터를 xPC 타겟 머신(142)의 프로세서(140)에 전송할 수 있으며, 이는 이하에서 더 상세히 설명되는 바와 같이 실질적으로 실시간으로 햅틱 효과의 파라미터들에 기초하여 햅틱 신호를 생성하고 전송할 수 있다.
이러한 방식으로, 본 명세서에서 설명되는 시스템들 및 방법들은 사용자가 (예를 들어, 햅틱 효과가 사용자 또는 다른 사용자에게 출력될 때) 실질적으로 실시간으로 햅틱 효과의 다양한 파라미터들을 구성할 수 있게 함으로써 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 구성하고 제공하기 위한 시스템들 및 방법들을 제공한다.
일부 실시예들에서, xPC 제어 모듈(162)은 프로세서(102)로 하여금 결정된 햅틱 효과의 하나 이상의 파라미터에 관한 데이터를 (예를 들어, 네트워크 디바이스(108) 및 네트워크 디바이스(148)를 통해) xPC 타겟 머신(142)의 프로세서(140)에 송신하게 하는 프로그래밍을 나타낸다. 일부 실시예들에서, xPC 제어 모듈(162)은 프로세서(102)로 하여금 센서(136)로부터의 데이터를 xPC 타겟 머신(142)의 프로세서(140)에 송신하게 하는 프로그래밍을 나타낸다.
일부 예들에서, xPC 타겟 머신(142)은 컴퓨팅 디바이스(101)의 프로세서(102) 또는 사용자 디바이스(120)의 프로세서(122)에 통신가능하게 결합되어 컴퓨팅 디바이스(101) 또는 사용자 디바이스(120)로부터 실질적으로 실시간으로 데이터를 획득할 수 있다. 일부 예들에서, xPC 타겟 머신(142)은 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100khz의 샘플링 레이트들을 달성할 수 있는 컴퓨팅 디바이스, 서버, 디바이스 등일 수 있으며, 이는 xPC 타겟 머신(142)이 실질적으로 실시간으로 컴퓨팅 디바이스(101) 또는 사용자 디바이스(120)로부터의 데이터를 처리하고 실질적으로 실시간으로 대략 20kHz까지의 주파수를 갖는 하나 이상의 햅틱 신호를 생성할 수 있게 할 수 있다. 일부 예들에서, xPC 타겟 머신은 컴퓨팅 디바이스(101)로부터 분리되거나 원격인 디바이스 또는 머신일 수 있다.
xPC 타겟 머신(142)의 메모리(146)를 참조하면, 모듈들(164 및 166)은 디바이스가 일부 실시예들에서 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하도록 어떻게 구성될 수 있는지를 보여주도록 도시되어 있다. 일부 실시예들에서, 모듈들(164 및 166)은 하나 이상의 동작을 수행하도록 프로세서(140)를 구성할 수 있는 프로세서 실행가능 명령어들을 포함할 수 있다.
예를 들어, xPC 모듈(164)은, xPC 타겟 머신(142)의 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 컴퓨팅 디바이스(101) 또는 사용자 디바이스(120)로부터 데이터를 수신 또는 획득하게 하는 명령어들을 포함할 수 있다. 일부 예들에서, xPC 모듈(164)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 선택된 또는 결정된 햅틱 효과의 하나 이상의 파라미터에 관한 데이터 또는 센서 데이터(예를 들어, 센서(136)로부터의 데이터)를 표시하는 신호를 컴퓨팅 디바이스(101)의 프로세서(102)로부터 수신하게 하는 명령어들을 포함할 수 있다. 다른 예에서, xPC 모듈(164)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 사용자 디바이스(120)의 센서(136)로부터 센서 데이터를 수신하게 하는 명령어들을 포함할 수 있다.
일부 예들에서, xPC 모듈(164)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 햅틱 효과 결정 모듈(160)에 포함된 명령어들을 실행하는 프로세서(102)에 의해 결정되는 햅틱 효과의 하나 이상의 파라미터를 결정하게 하고 햅틱 효과에 기초하여 햅틱 신호를 생성하게 하는 명령어들을 포함할 수 있다. 예를 들어, xPC 모듈(164)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 컴퓨팅 디바이스(101)의 프로세서(102)로부터 수신된 햅틱 효과의 하나 이상의 파라미터에 관한 데이터에 기초하여, 선택된 또는 결정된 햅틱 효과가 정적 햅틱 효과, 동적 햅틱 효과, 주기적 정적 또는 동적 햅틱 효과, 비주기적 정적 또는 동적 햅틱 효과 등인지를 결정하게 하는 명령어들을 포함할 수 있다.
일부 예들에서, xPC 모듈(164)은, 프로세서(140)에 의해 실행될 때, 프로세서로 하여금, 햅틱 효과 생성 모듈(166) 상에서 명령어들을 실행하게 하는 명령어들을 포함할 수 있다.
일부 실시예들에서, 햅틱 효과 생성 모듈(166)은 프로세서(140)로 하여금 햅틱 신호들을 생성해서 햅틱 출력 디바이스(예를 들어, 사용자 디바이스(120)의 햅틱 출력 디바이스(138) 또는 다른 햅틱 출력 디바이스)에 전송하여 선택된 햅틱 효과를 생성하게 하는 프로그래밍을 나타낸다. 일부 실시예들에서, 프로세서(140)는 햅틱 신호들을 햅틱 출력 디바이스에 전송하여, 햅틱 출력 디바이스가 햅틱 효과 결정 모듈(160)에 포함된 명령어들을 실행하는 프로세서(102)에 의해 결정된 햅틱 효과를 생성하게 할 수 있다. 일부 예들에서, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 저장된 파형들 또는 커맨드들에 액세스하여 햅틱 출력 디바이스에 송신해서 선택된 햅틱 효과를 생성하게 하는 명령어들을 포함할 수 있다. 예를 들어, 햅틱 효과 생성 모듈(166)은 프로세서(140)로 하여금 하나 이상의 햅틱 효과와 연관된 하나 이상의 햅틱 신호를 표시하는 데이터를 포함하는 룩업 테이블에 액세스하고 파형(예를 들어, 주기적 또는 비주기적 파형)을 결정하여 햅틱 출력 디바이스에 전송해서 특정 햅틱 효과를 생성하게 할 수 있다. 일부 실시예들에서, 햅틱 효과 생성 모듈(166)은 햅틱 신호를 결정하기 위한 알고리즘들을 포함할 수 있다. 일부 실시예들에서, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 햅틱 효과에 대한 타겟 좌표들(예를 들어, 햅틱 효과를 출력할 위치에 대한 좌표들)을 결정하게 하는 명령어들을 포함할 수 있다. 예를 들어, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 사용자의 특정 신체 부분의 모션을 표시하는 센서 신호를 사용하여 햅틱 효과(예를 들어, 사용자의 특정 신체 부분)에 대한 타겟 좌표들을 결정하게 하는 명령어들을 포함할 수 있다. 일부 실시예들에서, 프로세서(140)는 햅틱 신호를 하나 이상의 햅틱 출력 디바이스를 포함하는 햅틱 출력 디바이스에 송신할 수 있다. 이러한 실시예들에서, 햅틱 효과 생성 모듈(166)은 프로세서(140)로 하여금 선택된 햅틱 효과를 생성하기 위해 햅틱 신호들을 하나 이상의 햅틱 출력 디바이스에 전송하게 할 수 있다.
일부 예들에서, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, (예를 들어, 프로세서(140)가 프로세서(102) 또는 프로세서(122)로부터 데이터를 수신할 때) 실질적으로 실시간으로 대략 1Hz 내지 20kHz 범위의 주파수를 갖는 하나 이상의 햅틱 신호를 생성하게 하는 명령어들을 포함할 수 있다. 예로서, 프로세서(140)는 대략 1kHz의 주파수를 갖는 하나 이상의 햅틱 신호를 생성할 수 있다.
이러한 방식으로, xPC 타겟 머신(142)은 프로세서(102) 또는 프로세서(122)로부터 실질적으로 실시간으로 데이터를 획득하고, 실질적으로 실시간으로 모의 현실 환경에 대한 고화질 동적 또는 정적 햅틱 효과들을 제공하기 위한 하나 이상의 햅틱 신호를 생성할 수 있다.
위에서 설명된 일부 예들에서, xPC 타겟 머신(142)의 프로세서(140)는 프로세서(102)를 통해(예를 들어, xPC 제어 모듈(162)에 포함된 명령어들을 실행 시에 프로세서(102)를 통해) 센서(136)로부터 데이터를 수신(예를 들어, 획득)하지만, 본 개시내용은 이러한 구성들로 제한되지 않는다. 오히려, 다른 예들에서, xPC 타겟 머신(142)은 센서(136)에 통신가능하게 결합되고, 센서(136)로부터 데이터를 수신한다. 다른 실시예에서, 사용자 디바이스(120)와 xPC 타겟 머신(142)은 단일 시스템의 일부이고, xPC 타겟 머신(142)은 센서(136)에 통신가능하게 결합되어 센서(136)로부터 센서 데이터를 수신할 수 있다. 일부 그러한 예들에서, xPC 타겟 머신(142)은 전술한 바와 실질적으로 동일한 방식으로 센서 신호들에 기초하여 동적 햅틱 효과의 하나 이상의 파라미터를 결정할 수 있다.
도 1의 예시적인 시스템(100)이 특정 수의 컴포넌트를 갖는 것으로서 도시되어 있지만, 다른 실시예들에서, 예시적인 시스템(100)은 임의의 수의 추가적인 또는 대안적인 컴포넌트들을 갖는다. 또한, 도 1은 컴퓨팅 디바이스(101), 사용자 디바이스(120), 및 xPC 타겟 머신(142)의 특정 배열을 예시하고 있지만, 다양한 추가적인 배열들이 가능하다. 예로서, 도 1은 사용자 디바이스(120)와 xPC 타겟 머신(142)을 분리된 것으로서 예시하지만, 일부 실시예들에서, 사용자 디바이스(120)와 xPC 타겟 머신은 단일 시스템의 일부이다. 예를 들어, 사용자 디바이스(120)는 xPC 타겟 머신(142) 또는 xPC 모듈(164)을 포함할 수 있고, 사용자 디바이스(120)의 프로세서(122)는 xPC 타겟 머신(142)의 메모리(146)에 포함된 명령어들을 실행(예를 들어, xPC 모듈(164) 또는 햅틱 효과 생성 모듈(166) 내의 명령어들을 실행)할 수 있다. 다른 예로서, 컴퓨팅 디바이스(101)는 xPC 타겟 머신(142)을 포함할 수 있고, 컴퓨팅 디바이스(101)의 프로세서(102)는 xPC 타겟 머신(142)의 메모리(146)에 포함된 명령어들을 실행(예를 들어, xPC 모듈(164) 또는 햅틱 효과 생성 모듈(166) 내의 명령어들을 실행)할 수 있다. 다른 예에서, 시스템(100)의 컴포넌트들은 서로 원격이고 분리될 수 있다. 예를 들어, 사용자 디바이스 및 xPC 타겟 머신(142)은 컴퓨팅 디바이스(101)로부터 원격이고 분리될 수 있다.
더욱이, 전술한 일부 예들에서, xPC 타겟 머신(142)(또는 xPC 타겟 머신(142)의 프로세서(140))은 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100khz 이상의 샘플링 레이트들을 달성할 수 있지만, 본 개시내용은 이러한 구성들로 제한되지 않는다. 오히려, 다른 예들에서, 사용자 디바이스(120)의 프로세서(122)는 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100khz 이상의 샘플링 레이트들을 달성하도록 구성될 수 있다. 예로서, 사용자 디바이스(120) 및 xPC 타겟 머신(142)은 도 1에 도시된 바와 같은 별개의 시스템들일 수 있고, 사용자 디바이스(120)의 프로세서(122)는 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100khz 이상의 샘플링 레이트들을 달성하도록 구성될 수 있다. 또한, 전술한 바와 같이, 일부 예들에서, 사용자 디바이스(120)와 xPC 타겟 머신(142)은 단일 시스템의 일부일 수 있다. 이 예에서, 프로세서(122)는 메모리(146)(예를 들어, xPC 모듈(164) 및/또는 햅틱 효과 생성 모듈(166))에 포함된 명령어들을 실행할 수 있다. 이 예에서, 프로세서(122)는 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100khz 이상의 샘플링 레이트들을 달성하도록 구성될 수 있다.
또한, 전술한 바와 같이, 도 1은 컴퓨팅 디바이스(101)와 xPC 타겟 머신(142)을 분리된 것으로서 도시하지만, 일부 실시예들에서, 컴퓨팅 디바이스(101)와 xPC 타겟 머신은 단일 시스템의 일부이다. 이 예에서, 컴퓨팅 디바이스(101)는 프로세서(102) 및 프로세서(140)를 포함할 수 있다. 프로세서(102)는 메모리(104)(예를 들어, 모듈들(156, 158, 160, 162))에 포함된 명령어들을 실행하도록 구성될 수 있고, 프로세서(140)는 메모리(146)(예를 들어, xPC 모듈(164) 및/또는 햅틱 효과 생성 모듈(166))에 포함된 명령어들을 실행하도록 구성될 수 있다. 이 예에서, 프로세서(140)는 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100khz 이상의 샘플링 레이트들을 달성하고, 전술한 바와 실질적으로 동일한 방식으로 실질적으로 실시간으로 대략 1Hz 내지 20kHz 범위의 주파수를 갖는 하나 이상의 햅틱 신호를 생성하도록 구성될 수 있다. 이 예를 계속하면, 프로세서(102)는 프로세서(140)에 비해 더 낮은 샘플링 레이트들을 달성하도록 구성될 수 있다.
다른 실시예에서, 컴퓨팅 디바이스(101)와 xPC 타겟 머신은 단일 시스템의 일부이다. 이 예에서, 프로세서(102)와 프로세서(140)는 단일 프로세서로 결합될 수 있다. 이 예에서, 프로세서는 메모리(104)(예를 들어, 모듈들(156, 158, 160, 162)) 및 메모리(142)(예를 들어, xPC 모듈(164) 및/또는 햅틱 효과 생성 모듈(166))에 포함된 명령어들을 실행하도록 구성될 수 있다. 이 예에서, 단일 프로세서는 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100khz 이상의 샘플링 레이트들을 달성하도록 구성될 수 있다.
더욱이, 일부 예들에서, 햅틱 효과가 낮은 샘플링 레이트로 (예를 들어, 햅틱 효과 생성 모듈(160)에 포함된 명령어들을 실행하는 프로세서에 의해) 생성될 수 있고, 햅틱 효과를 출력하는 햅틱 출력 디바이스(예를 들어, 햅틱 출력 디바이스(138))가 햅틱 효과를 높은 레이트로 출력할 수 있다. 예로서, 프로세서는 대략 1000Hz의 샘플링 레이트로 (예를 들어, 햅틱 효과 생성 모듈(160)에 포함된 명령어들을 실행함으로써) 햅틱 효과를 생성할 수 있다. 이 예에서, 햅틱 출력 디바이스는 예를 들어 30000Hz와 같은 더 높은 레이트로 햅틱 효과를 출력할 수 있다.
실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위한 예시적인 방법들
도 4는 일 실시예에 따라 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 동적 햅틱 재생 또는 효과들을 제공하기 위한 방법(400)을 수행하기 위한 단계들의 흐름도이다. 일부 실시예들에서, 도 4의 단계들은 프로세서, 예를 들어, 범용 컴퓨터, 모바일 디바이스, 또는 서버의 프로세서에 의해 실행가능한 프로그램 코드로 구현될 수 있다. 일부 실시예들에서, 이러한 단계들은 프로세서들의 그룹에 의해 구현될 수 있다. 일부 실시예들에서, 도 4에 도시된 하나 이상의 단계는 생략되거나 상이한 순서로 수행될 수 있다. 유사하게, 일부 실시예들에서, 도 4에 도시되지 않은 추가적인 단계들이 또한 수행될 수 있다. 예시적인 목적으로, 방법(400)의 단계들은 도 1에 도시된 시스템과 관련하여 전술한 컴포넌트들을 참조하여 아래에 설명되지만, 다른 구현들도 가능하다.
방법(400)은 햅틱 효과의 하나 이상의 파라미터를 표시하는 데이터가 획득(예를 들어, 수신)되는 단계(402)에서 시작한다. 예를 들어, xPC 타겟 머신(142)은 컴퓨팅 디바이스(101)로부터 햅틱 효과의 하나 이상의 파라미터를 표시하는 데이터를 획득할 수 있다.
일부 실시예들에서, 컴퓨팅 디바이스(101)의 햅틱 효과 결정 모듈(160)은 컴퓨팅 디바이스(101)의 프로세서(102)로 하여금 햅틱 효과 또는 햅틱 효과의 하나 이상의 파라미터를 결정하게 한다. 일부 실시예들에서, 햅틱 효과는 하나 이상의 햅틱 효과를 포함할 수 있다.
예를 들어, 프로세서(102)는 모의 현실 환경(예를 들어, 콘텐츠 제공 모듈(156)에 포함된 명령어들을 실행하는 프로세서(102)에 의해 생성된 모의 현실 환경) 또는 모의 현실 환경과 사용자의 상호작용에 적어도 부분적으로 기초하여 햅틱 효과(예를 들어, 하나 이상의 진동)를 결정할 수 있다. 예로서, 프로세서(102)는 디스플레이(114) 상의 가상 객체(예를 들어, 가상 가구, 자동차, 동물, 만화 캐릭터, 버튼, 레버, 로고, 또는 사람)의 존재를 시뮬레이션하기 위해 모의 현실 환경 내의 터치의 위치에 기초하여 햅틱 효과를 결정 또는 선택할 수 있다. 다른 예로서, 프로세서(102)는 모의 현실 환경에서의 정적 애니메이션에 기초하여(예를 들어, 미리 결정된 방식으로 한 상태에서 다른 상태로 애니메이션되는 가상 객체에 기초하여) 햅틱 효과를 결정 또는 선택할 수 있다. 예를 들어, 가상 객체의 제1 미리 결정된 액션에 기초하여 햅틱 효과가 선택될 수 있고, 가상 객체의 제2 미리 결정된 액션에 기초하여 다른 햅틱 효과가 선택될 수 있다. 다른 예로서, 프로세서(102)는 이벤트에 기초하여 햅틱 효과를 결정할 수 있다. 본 명세서에서 사용되는 바와 같이, 이벤트는, 예를 들어, 사용자 입력(예를 들어, 버튼 누름, 조이스틱 조작, 모의 현실 환경과 상호작용, 사용자 디바이스(120)의 기울임 또는 배향), 폭발, 사격, 충돌, 모의 현실 환경에서의 게임 또는 가상 캐릭터들 간의 상호작용 등과 같은 연관된 햅틱 효과를 잠재적으로 포함할 수 있는, 컴퓨팅 디바이스(101) 또는 사용자 디바이스(120)의 동작 동안 발생하는, 임의의 상호작용, 액션, 충돌, 또는 다른 이벤트이다.
일부 예들에서, 모의 현실 환경에 기초하여 프로세서(102)에 의해 결정되는 햅틱 효과 또는 모의 현실 환경과 사용자의 상호작용은 정적 햅틱 효과일 수 있다. 정적 햅틱 효과는 예를 들어 미리 결정된 특성(예를 들어, 미리 결정된 크기, 지속기간, 위치, 타입, 피치, 주파수 등)을 갖는 햅틱 효과와 같은 미리 결정된 햅틱 효과일 수 있다. 예를 들어, 사용자는 (예를 들어, 가상 객체를 선택하기 위한 사용자 입력을 제공하기 위해) 모의 현실 환경에서의 가상 객체를 탭핑함으로써 모의 현실 환경과 상호작용할 수 있다. 이 예에서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 가상 객체를 탭핑하는 사용자와 연관된 하나 이상의 정적 햅틱 효과를 선택하게 할 수 있다.
일부 실시예들에서, 프로세서(102)는 센서(136)로부터 수신된 신호에 적어도 부분적으로 기초하여 햅틱 효과를 결정할 수 있다. 일부 예들에서, 센서(136)로부터 수신된 신호에 기초하여 프로세서(102)에 의해 결정되는 햅틱 효과는 동적 햅틱 효과일 수 있다. 동적 햅틱 효과는 센서(136)로부터의 센서 신호들에 기초하여 변화할 수 있는 햅틱 효과일 수 있다. 예를 들어, 동적 햅틱 효과의 특성(예를 들어, 크기, 지속기간, 위치, 타입, 피치, 주파수 등)은 모의 현실 환경 또는 센서(136)로부터의 센서 신호들에 기초하여(예를 들어, 모의 현실 환경과 사용자의 상호작용에 기초하여) 달라질 수 있다.
예를 들어, 센서(136)는 착용가능 센서, 사용자 또는 사용자 디바이스(120)에 결합(예를 들어, 부착)될 수 있는 임의의 센서, 또는 사용자의 모션들(예를 들어, 사용자의 신체 부분의 모션 또는 제스처) 또는 사용자 디바이스(120)의 모션에 관한 정보를 캡처하기 위해 사용자 디바이스(120)와 다른 방식으로 연관된 임의의 센서일 수 있다. 일부 예들에서, 센서(136)는 모션의 경로, 속도, 가속도, 또는 힘, 및/또는 모션의 임의의 다른 특성을 포함하지만 이에 제한되지 않는 사용자의 모션 또는 사용자 디바이스(120)의 모션에 관한 정보를 캡처할 수 있다. 일부 예들에서, 센서(136)는 사용자의 모션 또는 사용자 디바이스(120)의 모션에 관한 정보를 표시하는 신호를 프로세서(102)에 송신할 수 있다. 일부 실시예들에서, 센서(136)는 (예를 들어, 센서(136)가 사용자의 모션 또는 사용자 디바이스(120)의 모션에 관한 정보를 캡처할 때) 실질적으로 실시간으로 프로세서(102)에 하나 이상의 신호를 전송할 수 있다. 이 예에서, 프로세서(102)는 센서 신호를 수신하고, 센서 신호에 적어도 부분적으로 기초하여 동적 햅틱 효과를 결정할 수 있다.
예로서, 센서(136)는 사용자가 모의 현실 환경과 상호작용할 때 사용자 디바이스(120)의 속도 또는 사용자 디바이스(120)의 속도의 변화에 관한 정보를 캡처할 수 있다. 센서(136)는 센서(136)가 속도 또는 속도의 양의 변화에 관한 정보를 캡처할 때 실질적으로 실시간으로 프로세서(102)에 속도 또는 속도의 변화를 표시하는 하나 이상의 신호를 전송한다. 이 예에서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 속도 또는 속도의 양의 변화와 연관된 하나 이상의 동적 햅틱 효과를 선택하게 할 수 있다. 예를 들어, 프로세서(102)는 사용자 디바이스(120)의 속도가 임계치를 초과한다는 결정에 응답하여 강한 진동인 동적 햅틱 효과를 선택할 수 있다. 다른 예로서, 프로세서(102)는 사용자 디바이스(120)의 속도가 일정 기간에 걸쳐 감소하고 있다는 결정에 응답하여 하나 이상의 진동의 크기를 점진적으로 감소시킬 수 있다.
일부 예들에서, 햅틱 효과 결정 모듈(160)은 프로세서(102)로 하여금 주기적 또는 비주기적 정적 또는 동적 햅틱 효과 또는 햅틱 트랙을 결정하게 할 수 있다. 주기적 정적 또는 동적 햅틱 효과가 주기적 파형에 기초하여 생성될 수 있고, 비주기적 정적 또는 동적 햅틱 효과가 비주기적 파형에 기초하여 생성될 수 있다.
일부 예들에서, xPC 타겟 머신(142)의 xPC 모듈(164)은, xPC 타겟 머신(142)의 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 햅틱 효과 결정 모듈(160)에 포함된 명령어들을 실행하는 컴퓨팅 디바이스(101)의 프로세서(102)에 의해 선택 또는 결정된 햅틱 효과의 하나 이상의 파라미터를 표시하는 데이터를 수신하게 하는 명령어들을 포함할 수 있다.
방법은 xPC 타겟 머신(142)의 프로세서(140)가 햅틱 효과가 정적 햅틱 효과인지를 결정하는 단계(404)에서 계속된다. 예를 들어, 프로세서(140)는 프로세서(102)에 의해 선택 또는 결정된 햅틱 효과의 하나 이상의 파라미터(예를 들어, 단계(402)에서 획득된 하나 이상의 파라미터)를 표시하는 데이터를 프로세서(102)로부터 획득한다.
일부 예들에서, xPC 타겟 머신(142)의 xPC 모듈(164)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 프로세서(102)에 의해 선택된 햅틱 효과가 정적 햅틱 효과인지 또는 동적 햅틱 효과인지를 결정하게 하는 명령어들을 포함할 수 있다. 예를 들어, 프로세서(140)는 (예를 들어, 단계(402)에서) 프로세서(102)로부터 획득된 데이터를 분석하고, 데이터에 기초하여 햅틱 효과가 정적 햅틱 효과 또는 동적 햅틱 효과인지 및/또는 햅틱 또는 정적 효과의 하나 이상의 특성을 결정할 수 있다.
xPC 타겟 머신(142)의 프로세서(140)가 단계(404)에서 햅틱 효과가 정적 햅틱 효과가 아니라고 결정하면, 방법(400)은 단계(406)로 진행하고, 이는 이하에서 더 상세히 설명된다.
프로세서(140)가 단계(404)에서 햅틱 효과가 정적 햅틱 효과라고 결정하면, 방법(400)은 단계(408)로 진행하고, 프로세서(140)는 정적 햅틱 효과가 주기적 햅틱 효과인지를 결정한다. 일부 예들에서, xPC 타겟 머신(142)의 xPC 모듈(164)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 프로세서(102)에 의해 선택된 햅틱 효과가 주기적 햅틱 효과(예를 들어, 주기적 파형에 기초하여 생성될 수 있는 햅틱 효과) 또는 비주기적 햅틱 효과(예를 들어, 주기적 파형에 기초하여 생성될 수 있는 햅틱 효과)인지를 결정하게 하는 명령어들을 포함할 수 있다. 예를 들어, 프로세서(140)는 (예를 들어, 단계(402)에서) 프로세서(102)로부터 획득된 데이터를 분석하고, 정적 햅틱 효과가 주기적 정적 햅틱 효과 또는 비주기적 정적 햅틱 효과인지 및/또는 주기적 또는 비주기적 정적 햅틱 효과의 하나 이상의 특성(예를 들어, 주기적 정적 햅틱 효과의 하나 이상의 햅틱 효과의 크기, 주기, 지속기간, 시작 시간, 종료 시간 등)을 결정할 수 있다.
프로세서(140)가 단계(408)에서 정적 햅틱 효과가 주기적 정적 햅틱 효과라고 결정하면, 방법(400)은 단계(410)로 진행하고, 주기적 정적 햅틱 효과는 주기적 파형의 파라미터에 적어도 부분적으로 기초하여 출력된다. 일부 예들에서, xPC 타겟 머신(142)은 햅틱 출력 디바이스(138)가 주기적 정적 햅틱 효과를 출력하게 하기 위해 햅틱 신호를 생성하고 전송할 수 있다.
예를 들어, xPC 모듈(164)은, 프로세서(140)에 의해 실행될 때, 프로세서로 하여금, 햅틱 효과 생성 모듈(166) 상의 명령어들을 실행하게 하는 명령어들을 포함할 수 있다.
일부 실시예들에서, 햅틱 효과 생성 모듈(166)은 프로세서(140)로 하여금 햅틱 신호들을 생성하여 햅틱 출력 디바이스(138)에 송신하게 하는 프로그래밍을 나타낸다. 일부 예들에서, 프로세서(140)는 햅틱 신호를 생성해서 햅틱 출력 디바이스(138)에 전송하여, 햅틱 출력 디바이스(138)가 햅틱 효과 결정 모듈(160)에 포함된 명령어들을 실행하는 프로세서(102)에 의해 결정된 햅틱 효과를 생성하게 한다.
일부 예들에서, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 저장된 파형들 또는 커맨드들에 액세스하여 햅틱 출력 디바이스(138)에 송신해서 선택된 주기적 정적 햅틱 효과를 생성하게 하는 명령어들을 포함할 수 있다. 예를 들어, 햅틱 효과 생성 모듈(166)은 프로세서(140)로 하여금 하나 이상의 햅틱 효과와 연관된 하나 이상의 햅틱 신호를 표시하는 데이터를 포함하는 룩업 테이블에 액세스하고 주기적 정적 햅틱 효과 파형 또는 주기적 정적 햅틱 효과 파형의 파라미터들(예를 들어, 주기적 정적 햅틱 효과 파형의 크기, 주기, 지속기간, 시작 시간, 종료 시간 등)을 결정하여 햅틱 출력 디바이스(138)에 전송해서 선택된 주기적 정적 햅틱 효과를 생성하게 할 수 있다.
예를 들어, 단계(410)에서, 프로세서(140)는 햅틱 신호를 햅틱 출력 디바이스(138)에 송신하여, 햅틱 출력 디바이스(138)가 햅틱 신호에 기초하여 주기적 정적 햅틱 효과를 출력하게 한다. 예를 들어, 햅틱 출력 디바이스(138)는 사용자 디바이스(120)와 연관된 사용자(예를 들어, 사용자 디바이스(120)를 보유하거나, 착용하거나, 사용하거나, 또는 다른 방식으로 사용자 디바이스(120)와 연관된 사용자)에게 하나 이상의 주기적 정적 햅틱 효과를 출력할 수 있다. 일부 실시예들에서, 햅틱 출력 디바이스(138)는 (예를 들어, xPC 타겟 머신(142)이 프로세서(102)로부터 햅틱 효과의 하나 이상의 파라미터에 관한 데이터를 획득할 때) 실질적으로 실시간으로 햅틱 신호를 수신할 수 있어서, 햅틱 출력 디바이스(138)가 실질적으로 실시간으로 주기적 정적 햅틱 효과를 출력할 수 있게 한다.
단계(408)로 돌아가면, 프로세서(140)가 정적 햅틱 효과가 주기적 정적 햅틱 효과가 아니라고 결정하면, 방법(400)은 단계(412)로 진행하고, 비주기적 파형 정적 햅틱 효과가 비주기적 파형에 적어도 부분적으로 기초하여 출력된다.
일부 예들에서, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 저장된 파형들 또는 커맨드들에 액세스하여 햅틱 출력 디바이스(138)에 전송해서 선택된 비주기적 정적 햅틱 효과를 생성하게 하는 명령어들을 포함할 수 있다. 예를 들어, 햅틱 효과 생성 모듈(166)은 프로세서(140)로 하여금 하나 이상의 햅틱 효과와 연관된 하나 이상의 햅틱 신호를 표시하는 데이터를 포함하는 룩업 테이블에 액세스하고 비주기적 정적 햅틱 효과 파형 또는 비주기적 정적 햅틱 효과 파형의 파라미터들을 결정하여 햅틱 출력 디바이스(138)에 전송해서 선택된 비주기적 정적 햅틱 효과를 생성하게 할 수 있다.
예를 들어, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 햅틱 신호를 햅틱 출력 디바이스(138)에 전송하여, 햅틱 출력 디바이스(138)가 햅틱 신호에 기초하여 비주기적 파형 정적 햅틱 효과를 출력하게 하는 명령어들을 포함할 수 있다. 예를 들어, 햅틱 출력 디바이스(138)는 비주기적 파형 정적 햅틱 효과를 사용자 디바이스(120)와 연관된 사용자(예를 들어, 사용자 디바이스(120)를 보유하거나, 착용하거나, 사용하거나, 또는 다른 방식으로 사용자 디바이스(120)와 연관된 사용자)에게 출력할 수 있다. 일부 실시예들에서, 햅틱 출력 디바이스(138)는 (예를 들어, xPC 타겟 머신(142)이 프로세서(102)로부터 햅틱 효과의 하나 이상의 파라미터에 관한 데이터를 획득할 때) 실질적으로 실시간으로 햅틱 신호를 수신할 수 있어서, 햅틱 출력 디바이스(138)가 실질적으로 실시간으로 비주기적 파형 정적 햅틱 효과를 출력할 수 있게 한다.
단계(404)로 돌아가면, xPC 타겟 머신(142)의 프로세서(140)가 단계(404)에서 햅틱 효과가 정적 햅틱 효과가 아니라고(예를 들어, 햅틱 효과가 동적 햅틱 효과라고) 결정하면, 방법(400)은 단계(406)로 진행한다.
단계(406)에서, 프로세서(140)는 동적 햅틱 효과가 주기적 햅틱 효과인지를 결정한다. 일부 예들에서, xPC 타겟 머신(142)의 xPC 모듈(164)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 프로세서(102)에 의해 선택된 햅틱 효과가 주기적 햅틱 효과인지 또는 비주기적 햅틱 효과인지를 결정하게 하는 명령어들을 포함할 수 있다. 예를 들어, 프로세서(140)는 (예를 들어, 단계(402)에서) 프로세서(102)로부터 획득된 데이터를 분석하고, 동적 햅틱 효과가 주기적 정적 햅틱 효과 또는 비주기적 정적 햅틱 효과인지 및/또는 주기적 또는 비주기적 동적 햅틱 효과의 하나 이상의 특성(예를 들어, 주기적 동적 햅틱 효과의 하나 이상의 햅틱 효과의 시작 시간 또는 종료 시간)을 결정할 수 있다.
프로세서(140)가 단계(406)에서 동적 햅틱 효과가 주기적 동적 햅틱 효과라고 결정하면, 방법(400)은 단계(414)로 진행하고, 센서 신호(예를 들어, 센서(136)로부터의 센서 신호) 및 주기적 파형의 파라미터에 적어도 부분적으로 기초하여 주기적 동적 햅틱 효과가 생성된다.
예를 들어, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 저장된 파형들 또는 커맨드들에 액세스하여 햅틱 출력 디바이스(138)에 송신해서 선택된 주기적 동적 햅틱 효과를 생성하게 하는 명령어들을 포함할 수 있다. 예를 들어, 햅틱 효과 생성 모듈(166)은 프로세서(140)로 하여금 하나 이상의 햅틱 효과와 연관된 하나 이상의 햅틱 신호를 표시하는 데이터를 포함하는 룩업 테이블에 액세스하고, 주기적 동적 햅틱 효과 파형 또는 주기적 동적 햅틱 효과 파형의 파라미터들(예를 들어, 주기적 동적 햅틱 효과 파형의 크기, 주기, 지속기간, 시작 시간, 종료 시간 등)을 결정하여 햅틱 출력 디바이스(138)에 전송해서 선택된 주기적 동적 햅틱 효과를 생성하게 할 수 있다.
일부 예들에서, 전술한 바와 같이, 동적 햅틱 효과는 센서(136)로부터의 센서 데이터에 기초하여 변할 수 있다. 이 예에서, 프로세서(102)는 센서(136)로부터 센서 신호들을 수신하고, 사용자의 모션(예를 들어, 신체 제스처 또는 사용자 디바이스(120)의 모션) 및/또는 모션의 특성을 결정하고, 모션 및/또는 모션의 특성에 기초하여 동적 햅틱 효과의 특성(예를 들어, 크기, 지속기간, 위치, 타입, 피치, 주파수 등)을 결정하거나 변경할 수 있다. 예를 들어, 프로세서(102)는 사용자의 모션(예를 들어, 신체 모션 또는 사용자 디바이스(120)의 모션) 및/또는 모션의 특성과 연관된 동적 햅틱 효과의 특성에 대응하는 데이터를 포함하는 하나 이상의 룩업 테이블 또는 데이터베이스에 액세스할 수 있다. 이 실시예에서, 프로세서(102)는 하나 이상의 룩업 테이블 또는 데이터베이스에 액세스하고, 모션 및/또는 모션의 특성과 연관된 하나 이상의 동적 햅틱 효과의 특성을 결정 또는 변경할 수 있다. 예를 들어, 사용자가 높은 양의 압력으로 모의 현실 환경에서 가상 객체와 접촉하고 있는 경우, 프로세서(102)는 강한 진동 또는 일련의 강한 진동을 포함하는 동적 햅틱 효과를 결정할 수 있다. 이 예를 계속하면, 사용자가 후속하여 가상 객체와 사용자의 접촉의 압력의 양을 감소시키는 경우, 프로세서(102)는 햅틱 효과의 다른 특성을 결정할 수 있거나, 또는 예를 들어, 사용자가 가상 객체와 사용자의 접촉의 압력의 양을 감소시킴에 따라 사용자가 더 약한 진동을 인지하도록 진동 또는 일련의 진동들의 크기를 감소시킴으로써와 같이 햅틱 효과의 특성을 변경할 수 있다.
일부 실시예들에서, 프로세서(102)는 (예를 들어, 센서(136)가 사용자의 모션 또는 사용자 디바이스(120)의 모션에 관한 정보를 캡처할 때) 실질적으로 실시간으로 센서(136)로부터 신호를 수신하고, 실질적으로 실시간으로 (예를 들어, 단계(402)에서) 햅틱 효과의 하나 이상의 파라미터를 표시하는 데이터를 xPC 타겟 머신에 전송할 수 있다. 이 예에서, 단계(414)에서, xPC 타겟 머신(142)의 프로세서(140)는 프로세서(102)로부터의 데이터 및/또는 센서(136)로부터의 센서 데이터를 수신하고, 전술한 바와 실질적으로 동일한 방식으로 프로세서(102) 및/또는 센서(136)로부터 획득 또는 수신된 데이터에 기초하여 동적 햅틱 신호를 생성할 수 있다.
단계(416)에서, 주기적 동적 햅틱 효과가 출력된다. 예를 들어, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 햅틱 신호를 햅틱 출력 디바이스(138)에 전송하여 햅틱 출력 디바이스(138)가 햅틱 신호에 기초하여 주기적 동적 햅틱 효과를 출력하게 하는 명령어들을 포함할 수 있다. 예를 들어, 햅틱 출력 디바이스(138)는 사용자 디바이스(120)와 연관된 사용자(예를 들어, 사용자 디바이스(120)를 보유하거나, 착용하거나, 사용하거나, 또는 다른 방식으로 사용자 디바이스(120)와 연관된 사용자)에게 주기적 동적 햅틱 효과를 출력할 수 있다. 일부 실시예들에서, 햅틱 출력 디바이스(138)는 (예를 들어, xPC 타겟 머신(142)이 프로세서(102)로부터 햅틱 효과의 하나 이상의 파라미터에 관한 데이터를 획득할 때) 실질적으로 실시간으로 햅틱 신호를 수신할 수 있어서, 햅틱 출력 디바이스(138)가 실질적으로 실시간으로 주기적 동적 햅틱 효과를 출력할 수 있게 한다.
단계(406)로 돌아가면, 프로세서(140)가 동적 햅틱 효과가 주기적 동적 햅틱 효과가 아니라고 결정하면, 방법(400)은 단계(418)로 진행하고 비주기적 동적 햅틱 효과 파형을 표시하는 데이터가 획득된다. 예를 들어, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 저장된 파형들 또는 커맨드들에 액세스하여 햅틱 출력 디바이스(138)에 송신해서 선택된 비주기적 동적 햅틱 효과를 생성하게 하는 명령어들을 포함할 수 있다. 예를 들어, 햅틱 효과 생성 모듈(166)은 프로세서(140)로 하여금 하나 이상의 햅틱 효과와 연관된 하나 이상의 햅틱 신호를 표시하는 데이터를 포함하는 룩업 테이블에 액세스하고 비주기적 동적 햅틱 효과 파형 또는 비주기적 동적 햅틱 효과 파형의 파라미터들을 결정하여 햅틱 출력 디바이스(138)에 전송해서 선택된 비주기적 동적 햅틱 효과를 생성하게 할 수 있다.
일부 예들에서, 전술한 바와 같이, 동적 햅틱 효과는 센서(136)로부터의 센서 데이터에 기초하여 변할 수 있다. 이 예에서, 프로세서(102)는 (예를 들어, 센서(136)가 사용자의 모션 또는 사용자 디바이스(120)의 모션에 관한 정보를 캡처할 때) 실질적으로 실시간으로 센서(136)로부터 신호를 수신하고, 실질적으로 실시간으로 (예를 들어, 단계(402)에서) 햅틱 효과의 하나 이상의 파라미터를 표시하는 데이터를 xPC 타겟 머신에 전송할 수 있다. 이 예에서, 단계(418)에서, xPC 타겟 머신(142)의 프로세서(140)는 프로세서(102)로부터의 데이터 및/또는 센서(136)로부터의 센서 데이터를 수신하고, 전술한 바와 실질적으로 동일한 방식으로 프로세서(102) 및/또는 센서(136)로부터 획득 또는 수신된 데이터에 기초하여 동적 햅틱 신호를 생성할 수 있다.
단계(420)에서, 비주기적 동적 햅틱 효과는 센서 신호 및 비주기적 동적 햅틱 효과 파형(예를 들어, 단계(418)에서 획득된 비주기적 동적 햅틱 효과 파형)에 적어도 부분적으로 기초하여 출력된다.
예를 들어, 햅틱 효과 생성 모듈(166)은, 프로세서(140)에 의해 실행될 때, 프로세서(140)로 하여금, 햅틱 신호를 햅틱 출력 디바이스(138)에 전송하여 햅틱 출력 디바이스(138)가 햅틱 신호에 기초하여 비주기적 동적 햅틱 효과를 출력하게 하는 명령어들을 포함할 수 있다. 예를 들어, 햅틱 출력 디바이스(138)는 비주기적 동적 햅틱 효과를 사용자 디바이스(120)와 연관된 사용자(예를 들어, 사용자 디바이스(120)를 보유하거나, 착용하거나, 사용하거나, 또는 다른 방식으로 사용자 디바이스(120)와 연관된 사용자)에게 출력할 수 있다. 일부 실시예들에서, 햅틱 출력 디바이스(138)는 (예를 들어, xPC 타겟 머신(142)이 프로세서(102)로부터 햅틱 효과의 하나 이상의 파라미터에 관한 데이터를 획득할 때) 실질적으로 실시간으로 햅틱 신호를 수신할 수 있어서, 햅틱 출력 디바이스(138)가 실질적으로 실시간으로 비주기적 동적 햅틱 효과를 출력할 수 있게 한다.
일부 예들에서, xPC 타겟 머신(142)은 적어도 20kHz까지의 샘플링 레이트들 또는 적어도 100khz 이상의 샘플링 레이트들을 달성할 수 있는 컴퓨팅 디바이스, 서버, 디바이스 등일 수 있고, 이는 xPC 타겟 머신(142)이 실질적으로 실시간으로 컴퓨팅 디바이스(101)(예를 들어, 프로세서(102)로부터) 또는 사용자 디바이스(120)(예를 들어, 센서(136))로부터의 데이터를 처리하고 실질적으로 실시간으로 대략 1kHz 내지 20kHz 범위의 주파수를 갖는 하나 이상의 햅틱 신호를 생성할 수 있게 할 수 있다. 예로서, xPC 타겟 머신(142)은 대략 1kHz의 주파수를 갖는 하나 이상의 햅틱 신호를 생성할 수 있다.
위에서 설명된 일부 예들에서, xPC 타겟 머신(142)의 프로세서(140)는 프로세서(102)를 통해(예를 들어, xPC 제어 모듈(162)에 포함된 명령어들을 실행 시에 프로세서(102)를 통해) 센서(136)로부터 데이터를 수신(예를 들어, 획득)하지만, 본 개시내용은 이러한 구성들로 제한되지 않는다. 오히려, 다른 예들에서, 사용자 디바이스(120)와 xPC 타겟 머신(142)은 단일 시스템의 일부이고, xPC 타겟 머신은 센서(136)에 통신가능하게 결합되어 센서(136)로부터 센서 데이터를 수신할 수 있다.
이러한 방식으로, 본 명세서에서 설명되는 시스템들 및 방법들은 실질적으로 실시간으로 증강 또는 가상 현실 환경에 대한 고화질 동적 또는 정적 햅틱 재생(예를 들어, 효과들)을 생성 및 제공할 수 있다.
일반적인 고려사항들
위에서 논의된 방법들, 시스템들, 및 디바이스들은 예들이다. 다양한 구성들은 다양한 절차들 또는 컴포넌트들을 적절하게 생략하거나, 대체하거나, 추가할 수 있다. 예를 들어, 대안적인 구성들에서, 방법들은 설명된 것과는 상이한 순서로 수행될 수 있고/있거나, 다양한 스테이지들이 추가, 생략 및/또는 결합될 수 있다. 또한, 특정 구성들과 관련하여 설명된 특징들은 다양한 다른 구성들에서 결합될 수 있다. 구성들의 상이한 양태들 및 요소들은 유사한 방식으로 결합될 수 있다. 또한, 기술이 발전하고, 따라서 많은 요소들이 예들이며, 본 개시내용 또는 청구항들의 범위를 제한하지 않는다.
예시적인 구성들(구현들을 포함함)의 철저한 이해를 제공하기 위해 특정 상세사항들이 설명에서 주어진다. 그러나, 구성들은 이들 특정 상세사항 없이 실시될 수 있다. 예를 들어, 구성들을 불명확하게 하지 않기 위해 공지된 회로들, 프로세스들, 알고리즘들, 구조들, 및 기법들은 불필요한 상세사항 없이 제시되었다. 이 설명은 예시적인 구성들만을 제공하고, 청구항들의 범위, 적용가능성, 또는 구성들을 제한하지 않는다. 오히려, 구성들에 대한 선행하는 설명은 이 기술분야의 통상의 기술자에게 설명된 기법들을 구현하는 것을 가능하게 하는 설명을 제공할 것이다. 본 개시내용의 사상 또는 범위로부터 벗어나지 않고 요소들의 기능 및 배열에 대해 다양한 변화가 이루어질 수 있다.
또한, 구성들은 흐름도 또는 블록도로서 도시되는 프로세스로서 설명될 수 있다. 각각이 동작들을 순차적인 프로세스로서 설명할 수 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서가 재배열될 수 있다. 프로세스는 도면에 포함되지 않은 추가 단계들을 가질 수 있다. 더구나, 방법들의 예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 이들의 임의의 조합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드로 구현될 때, 필요한 작업들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 저장 매체와 같은 비일시적 컴퓨터 판독가능 매체에 저장될 수 있다. 프로세서들은 설명된 작업들을 수행할 수 있다.
여러 예시적인 구성들을 설명하였지만, 본 개시내용의 사상으로부터 벗어나지 않고 다양한 수정들, 대안적인 구성들, 및 등가물들이 사용될 수 있다. 예를 들어, 위의 요소들은 더 큰 시스템의 컴포넌트들일 수 있고, 다른 규칙들은 본 발명의 애플리케이션보다 우선하거나 또는 다른 방식으로 그것을 수정할 수 있다. 또한, 위의 요소들이 고려되기 이전에, 동안에, 또는 이후에 다수의 단계들이 수행될 수 있다. 따라서, 위의 설명은 청구항들의 범위를 한정하지 않는다.
본 명세서에서 "~하도록 적응되는" 또는 "~하도록 구성되는"의 사용은 추가적인 작업들 또는 단계들을 수행하도록 적응되거나 구성되는 디바이스들을 배제하지 않는 개방적이고 포함적인 언어를 의미한다. 또한, "~에 기초하여"의 사용은, 하나 이상의 인용된 조건들 또는 값들에 "기초하는" 프로세스, 단계, 계산, 또는 다른 액션이, 실제로, 인용된 것들을 넘어서 추가적인 조건들 또는 값들에 기초할 수 있다는 점에서 개방적이고 포함적인 것으로 의도된다. 본 명세서에 포함되는 제목, 리스트 및 넘버링은 설명의 편의를 위한 것일 뿐이고 제한적인 것을 의미하는 것은 아니다.
본 발명 요지의 양태들에 따른 실시예들은 디지털 전자 회로에, 컴퓨터 하드웨어, 펌웨어, 소프트웨어에, 또는 이들의 조합들에 구현될 수 있다. 일 실시예에서, 컴퓨터는 하나의 프로세서 또는 프로세서들을 포함할 수 있다. 프로세서는 프로세서에 결합되는 랜덤 액세스 메모리(RAM)와 같은 컴퓨터 판독가능 매체를 포함하거나 그에 액세스한다. 프로세서는 센서 샘플링 루틴, 선택 루틴들, 및 전술한 방법들을 수행하기 위한 다른 루틴들을 포함하는 하나 이상의 컴퓨터 프로그램을 실행하는 것과 같이, 메모리에 저장된 컴퓨터 실행가능 프로그램 명령어들을 실행한다.
이러한 프로세서들은 마이크로프로세서, 디지털 신호 프로세서(DSP), ASIC(application-specific integrated circuit), FPGA들(field-programmable gate arrays), 및 상태 머신들을 포함할 수 있다. 이러한 프로세서들은 PLC들, 프로그래밍 가능 인터럽트 제어기들(programmable interrupt controllers)(PIC들), 프로그래밍 가능 로직 디바이스들(programmable logic devices)(PLD들), 프로그래밍 가능 리드 온리 메모리들(programmable read-only memories)(PROM들), 전자적으로 프로그래밍 가능 리드 온리 메모리들(EPROM들 또는 EEPROM들), 또는 다른 유사한 디바이스들과 같은 프로그래밍 가능 전자 디바이스들을 추가로 포함할 수 있다.
이러한 프로세서들은, 프로세서에 의해 실행될 때, 프로세서로 하여금, 프로세서에 의해 수행되거나 도움을 받아 본 명세서에 설명된 단계들을 수행하게 할 수 있는 명령어들을 저장할 수 있는 매체, 예를 들어, 유형의(tangible) 컴퓨터 판독가능 매체를 포함할 수 있거나 또는 이와 통신할 수 있다. 컴퓨터 판독가능 매체의 실시예들은 웹 서버 내의 프로세서와 같은 프로세서에 컴퓨터 판독가능 명령어들을 제공할 수 있는 모든 전자, 광학, 자기, 또는 다른 저장 디바이스들을 포함할 수 있고, 이에 제한되지 않는다. 매체의 다른 예들은, 플로피 디스크, CD-ROM, 자기 디스크, 메모리 칩, ROM, RAM, ASIC, 구성된 프로세서, 모든 광학 매체, 모든 자기 테이프 또는 다른 자기 매체, 또는 컴퓨터 프로세서가 판독할 수 있는 임의의 다른 매체를 포함하고, 이에 제한되지 않는다. 또한, 라우터, 사설 또는 공공 네트워크, 또는 다른 송신 디바이스와 같은 다양한 다른 디바이스들이 컴퓨터 판독가능 매체를 포함할 수 있다. 설명된 프로세서 및 처리는 하나 이상의 구조로 될 수 있으며, 하나 이상의 구조를 통해 분산될 수 있다. 프로세서는 본 명세서에 설명된 방법들(또는 방법들의 부분들) 중 하나 이상을 실행하기 위한 코드를 포함할 수 있다.
본 발명 요지는 그의 특정 실시예들과 관련하여 상세히 설명되었지만, 이 기술분야의 통상의 기술자들은, 전술한 내용을 이해하게 되면, 이러한 실시예들의 변경들, 변형들, 및 등가물들을 쉽게 만들어 낼 수 있다는 것을 알 것이다. 따라서, 본 개시내용은 제한보다는 오히려 예시의 목적으로 제시되는 것이며, 이 기술분야의 통상의 기술자에게 쉽게 명백한 바와 같은 본 발명 요지에 대한 이러한 수정들, 변형들 및/또는 추가들의 포함을 배제하지 않는다는 것을 이해해야 한다.

Claims (19)

  1. 컴퓨팅 디바이스로서,
    프로세서 및 상기 프로세서에 통신가능하게 결합된 비일시적 컴퓨터 판독가능 매체를 포함하고, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 명령어들을 실행하여:
    모의 현실 환경(simulated reality environment)을 생성하고;
    상기 모의 현실 환경과 연관된 햅틱 효과의 파라미터를 표시하는 데이터를 획득하고;
    상기 햅틱 효과의 파라미터에 기초하여, 상기 햅틱 효과가 정적 햅틱 효과인지 또는 동적 햅틱 효과인지를 결정하고;
    상기 햅틱 효과의 파라미터에 기초하여, 상기 햅틱 효과가 주기적 햅틱 효과인지 또는 비주기적 햅틱 효과인지를 결정하고;
    상기 프로세서가 상기 햅틱 효과의 파라미터에 관한 데이터를 수신할 때 실질적으로 실시간으로 상기 햅틱 효과와 연관된 햅틱 신호를 생성하고 - 상기 프로세서는 적어도 20kHz의 샘플링 레이트들에서 상기 햅틱 효과의 파라미터에 관한 데이터를 처리할 수 있고 실질적으로 1Hz 내지 20kHz의 주파수를 갖는 햅틱 신호를 생성할 수 있음 - ; 그리고
    상기 햅틱 효과와 연관된 햅틱 신호를 햅틱 출력 디바이스에 전송하도록
    구성되는 컴퓨팅 디바이스.
  2. 제1항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 명령어들을 실행하여:
    사용자에 관한 정보를 캡처하도록 구성되는 센서로부터, 상기 사용자에 관한 정보를 표시하는 센서 신호를 수신하고; 그리고
    상기 센서 신호에 적어도 부분적으로 기초하여 상기 햅틱 효과가 동적 햅틱 효과라고 결정하도록
    추가로 구성되고, 상기 햅틱 신호는 상기 동적 햅틱 효과에 기초하는 컴퓨팅 디바이스.
  3. 제2항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 명령어들을 실행하여, 상기 햅틱 효과의 파라미터에 기초하여 상기 동적 햅틱 효과가 주기적 동적 햅틱 효과라고 결정하도록 추가로 구성되고, 상기 주기적 동적 햅틱 효과는 주기적 파형에 기초하고, 상기 햅틱 신호는 상기 주기적 파형에 기초하는 컴퓨팅 디바이스.
  4. 제2항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 명령어들을 실행하여, 상기 햅틱 효과의 파라미터에 기초하여 상기 동적 햅틱 효과가 비주기적 동적 햅틱 효과라고 결정하도록 추가로 구성되고, 상기 비주기적 동적 햅틱 효과는 비주기적 파형에 기초하고, 상기 햅틱 신호는 상기 비주기적 파형에 기초하는 컴퓨팅 디바이스.
  5. 제1항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 명령어들을 실행하여, 상기 햅틱 효과의 파라미터에 기초하여 상기 햅틱 효과가 정적 햅틱 효과라고 결정하도록 추가로 구성되고, 상기 정적 햅틱 효과는 미리 결정된 햅틱 효과이고, 상기 햅틱 신호는 상기 정적 햅틱 효과와 연관되는 컴퓨팅 디바이스.
  6. 제5항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 명령어들을 실행하여, 상기 햅틱 효과의 파라미터에 기초하여 상기 정적 햅틱 효과가 주기적 정적 햅틱 효과라고 결정하도록 추가로 구성되고, 상기 주기적 정적 햅틱 효과는 주기적 파형에 기초하고, 상기 햅틱 신호는 상기 주기적 파형에 기초하는 컴퓨팅 디바이스.
  7. 제5항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 명령어들을 실행하여, 상기 햅틱 효과의 파라미터에 기초하여 상기 정적 햅틱 효과가 비주기적 정적 햅틱 효과라고 결정하도록 추가로 구성되고, 상기 비주기적 정적 햅틱 효과는 비주기적 파형에 기초하고, 상기 햅틱 신호는 상기 비주기적 파형에 기초하는 컴퓨팅 디바이스.
  8. 방법으로서,
    프로세서에 의해, 모의 현실 환경을 생성하는 단계;
    상기 프로세서에 의해, 상기 모의 현실 환경과 연관된 햅틱 효과의 파라미터를 표시하는 데이터를 획득하는 단계;
    상기 프로세서에 의해, 상기 햅틱 효과의 파라미터에 기초하여 상기 햅틱 효과가 정적 햅틱 효과인지 또는 동적 햅틱 효과인지를 결정하는 단계;
    상기 프로세서에 의해, 상기 햅틱 효과의 파라미터에 기초하여 상기 햅틱 효과가 주기적 햅틱 효과인지 또는 비주기적 햅틱 효과인지를 결정하는 단계;
    상기 프로세서에 의해, 상기 프로세서가 상기 햅틱 효과의 파라미터에 관한 데이터를 수신할 때 실질적으로 실시간으로 상기 햅틱 효과와 연관된 햅틱 신호를 생성하는 단계 - 상기 프로세서는 적어도 20kHz의 샘플링 레이트들에서 상기 햅틱 효과의 파라미터에 관한 데이터를 처리할 수 있고 실질적으로 1Hz 내지 20kHz의 주파수를 갖는 햅틱 신호를 생성할 수 있음 - ; 및
    상기 프로세서에 의해, 상기 햅틱 효과와 연관된 햅틱 신호를 햅틱 출력 디바이스에 전송하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서,
    상기 프로세서에 의해, 사용자에 관한 정보를 표시하는 센서 신호를 수신하는 단계; 및
    상기 프로세서에 의해, 상기 센서 신호에 적어도 부분적으로 기초하여 상기 햅틱 효과가 동적 햅틱 효과라고 결정하는 단계 - 상기 햅틱 신호는 상기 동적 햅틱 효과에 기초함 -
    를 추가로 포함하는 방법.
  10. 제9항에 있어서,
    상기 프로세서에 의해, 상기 햅틱 효과의 파라미터에 기초하여 상기 동적 햅틱 효과가 주기적 동적 햅틱 효과라고 결정하는 단계를 추가로 포함하고, 상기 주기적 동적 햅틱 효과는 주기적 파형에 기초하고, 상기 햅틱 신호는 상기 주기적 파형에 기초하는 방법.
  11. 제9항에 있어서,
    상기 프로세서에 의해, 상기 햅틱 효과의 파라미터에 기초하여 상기 동적 햅틱 효과가 비주기적 동적 햅틱 효과라고 결정하는 단계를 추가로 포함하고, 상기 비주기적 동적 햅틱 효과는 비주기적 파형에 기초하고, 상기 햅틱 신호는 상기 비주기적 파형에 기초하는 방법.
  12. 제8항에 있어서,
    상기 프로세서에 의해, 상기 햅틱 효과의 파라미터에 기초하여 상기 햅틱 효과가 정적 햅틱 효과라고 결정하는 단계를 추가로 포함하고, 상기 정적 햅틱 효과는 미리 결정된 햅틱 효과이고, 상기 햅틱 신호는 상기 정적 햅틱 효과에 기초하는 방법.
  13. 제12항에 있어서,
    상기 프로세서에 의해, 상기 햅틱 효과의 파라미터에 기초하여 상기 정적 햅틱 효과가 주기적 정적 햅틱 효과라고 결정하는 단계를 추가로 포함하고, 상기 주기적 정적 햅틱 효과는 주기적 파형에 기초하고, 상기 햅틱 신호는 상기 주기적 파형에 기초하는 방법.
  14. 제12항에 있어서,
    상기 프로세서에 의해, 상기 햅틱 효과의 파라미터에 기초하여 상기 정적 햅틱 효과가 비주기적 정적 햅틱 효과라고 결정하는 단계를 추가로 포함하고, 상기 비주기적 정적 햅틱 효과는 비주기적 파형에 기초하고, 상기 햅틱 신호는 상기 비주기적 파형에 기초하는 방법.
  15. 프로세서 실행가능 프로그램 코드를 포함하는 비일시적 컴퓨터 판독가능 매체로서, 상기 프로세서 실행가능 프로그램 코드는 프로세서로 하여금:
    모의 현실 환경을 생성하게 하고;
    상기 모의 현실 환경과 연관된 햅틱 효과의 파라미터를 표시하는 데이터를 획득하게 하고;
    상기 햅틱 효과의 파라미터에 기초하여, 상기 햅틱 효과가 정적 햅틱 효과인지 또는 동적 햅틱 효과인지를 결정하게 하고;
    상기 햅틱 효과의 파라미터에 기초하여, 상기 햅틱 효과가 주기적 햅틱 효과인지 또는 비주기적 햅틱 효과인지를 결정하게 하고;
    상기 프로세서가 상기 햅틱 효과의 파라미터에 관한 데이터를 수신할 때 실질적으로 실시간으로 상기 햅틱 효과와 연관된 햅틱 신호를 생성하게 하고 - 상기 프로세서는 적어도 20kHz의 샘플링 레이트들에서 상기 햅틱 효과의 파라미터에 관한 데이터를 처리할 수 있고 실질적으로 1Hz 내지 20kHz의 주파수를 갖는 햅틱 신호를 생성할 수 있음 - ; 그리고
    상기 햅틱 효과와 연관된 햅틱 신호를 햅틱 출력 디바이스에 전송하게 하도록
    구성되는 비일시적 컴퓨터 판독가능 매체.
  16. 제15항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 프로그램 코드를 실행하여:
    사용자에 관한 정보를 표시하는 센서 신호를 수신하고; 그리고
    상기 센서 신호에 적어도 부분적으로 기초하여 상기 햅틱 효과가 동적 햅틱 효과라고 결정하도록
    추가로 구성되고, 상기 햅틱 신호는 상기 동적 햅틱 효과에 기초하는 비일시적 컴퓨터 판독가능 매체.
  17. 제16항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 프로그램 코드를 실행하여, 상기 햅틱 효과의 파라미터에 기초하여 상기 동적 햅틱 효과가 주기적 동적 햅틱 효과라고 또는 비주기적 동적 햅틱 효과라고 결정하도록 추가로 구성되고, 상기 주기적 동적 햅틱 효과는 주기적 파형에 기초하고, 상기 비주기적 동적 햅틱 효과는 비주기적 파형에 기초하고, 상기 햅틱 신호는 상기 주기적 파형 또는 상기 비주기적 파형에 기초하는 비일시적 컴퓨터 판독가능 매체.
  18. 제15항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 프로그램 코드를 실행하여, 상기 햅틱 효과의 파라미터에 기초하여 상기 햅틱 효과가 정적 햅틱 효과라고 결정하도록 추가로 구성되고, 상기 정적 햅틱 효과는 미리 결정된 햅틱 효과이고, 상기 햅틱 신호는 상기 정적 햅틱 효과와 연관되는 비일시적 컴퓨터 판독가능 매체.
  19. 제18항에 있어서, 상기 프로세서는 상기 비일시적 컴퓨터 판독가능 매체에 저장된 프로세서 실행가능 프로그램 코드를 실행하여, 상기 햅틱 효과의 파라미터에 기초하여 상기 정적 햅틱 효과가 주기적 정적 햅틱 효과라고 또는 비주기적 정적 햅틱 효과라고 결정하도록 추가로 구성되고, 상기 주기적 정적 햅틱 효과는 주기적 파형에 기초하고, 상기 비주기적 정적 햅틱 효과는 비주기적 파형에 기초하고, 상기 햅틱 신호는 상기 주기적 파형 또는 상기 비주기적 파형에 기초하는 비일시적 컴퓨터 판독가능 매체.
KR1020190042351A 2018-04-20 2019-04-11 증강 또는 가상 현실 환경들에 대한 동적 햅틱 재생을 제공하기 위한 시스템들 및 방법들 KR20190122559A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/958,987 2018-04-20
US15/958,987 US10572017B2 (en) 2018-04-20 2018-04-20 Systems and methods for providing dynamic haptic playback for an augmented or virtual reality environments

Publications (1)

Publication Number Publication Date
KR20190122559A true KR20190122559A (ko) 2019-10-30

Family

ID=66239894

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190042351A KR20190122559A (ko) 2018-04-20 2019-04-11 증강 또는 가상 현실 환경들에 대한 동적 햅틱 재생을 제공하기 위한 시스템들 및 방법들

Country Status (5)

Country Link
US (2) US10572017B2 (ko)
EP (1) EP3557384A1 (ko)
JP (1) JP2019192237A (ko)
KR (1) KR20190122559A (ko)
CN (1) CN110389659A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220053945A (ko) * 2020-10-23 2022-05-02 주식회사 비트센싱 가상 촉각 서비스를 제공하는 서버, 사용자 단말 및 방법
KR20230000403A (ko) * 2021-06-23 2023-01-02 센스타임 인터내셔널 피티이. 리미티드. 게임 이미지 처리 방법, 장치, 전자 기기, 컴퓨터 저장 매체 및 컴퓨터 프로그램
KR20230000925A (ko) * 2021-06-24 2023-01-03 센스타임 인터내셔널 피티이. 리미티드. 테이블톱 게임들의 상태들을 전환하는 방법들, 장치들, 디바이스들 및 저장 매체들

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10102659B1 (en) 2017-09-18 2018-10-16 Nicholas T. Hariton Systems and methods for utilizing a device as a marker for augmented reality content
US10105601B1 (en) 2017-10-27 2018-10-23 Nicholas T. Hariton Systems and methods for rendering a virtual content object in an augmented reality environment
US10636188B2 (en) 2018-02-09 2020-04-28 Nicholas T. Hariton Systems and methods for utilizing a living entity as a marker for augmented reality content
US10198871B1 (en) 2018-04-27 2019-02-05 Nicholas T. Hariton Systems and methods for generating and facilitating access to a personalized augmented rendering of a user
US20200192480A1 (en) * 2018-12-18 2020-06-18 Immersion Corporation Systems and methods for providing haptic effects based on a user's motion or environment
US10586396B1 (en) 2019-04-30 2020-03-10 Nicholas T. Hariton Systems, methods, and storage media for conveying virtual content in an augmented reality environment

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100538351B1 (ko) * 2004-04-20 2005-12-21 광주과학기술원 햅틱 인터페이스의 안정화 방법 및 이를 적용한 햅틱시스템
US20060274906A1 (en) 2005-06-06 2006-12-07 Ying Jia Acoustic sensor with combined frequency ranges
US11325029B2 (en) * 2007-09-14 2022-05-10 National Institute Of Advanced Industrial Science And Technology Virtual reality environment generating apparatus and controller apparatus
US20120065784A1 (en) * 2010-09-13 2012-03-15 Philip Feldman Providing kinetic feedback for computer-human interaction in virtual or remote operation environments
FR2991791B1 (fr) 2012-06-06 2014-08-08 Commissariat Energie Atomique Interface de stimulation tactile par retournement temporel
US8860563B2 (en) 2012-06-14 2014-10-14 Immersion Corporation Haptic effect conversion system using granular synthesis
US8947216B2 (en) 2012-11-02 2015-02-03 Immersion Corporation Encoding dynamic haptic effects
US9788714B2 (en) * 2014-07-08 2017-10-17 Iarmourholdings, Inc. Systems and methods using virtual reality or augmented reality environments for the measurement and/or improvement of human vestibulo-ocular performance
US9690370B2 (en) * 2014-05-05 2017-06-27 Immersion Corporation Systems and methods for viewport-based augmented reality haptic effects
US20160189427A1 (en) * 2014-12-31 2016-06-30 Immersion Corporation Systems and methods for generating haptically enhanced objects for augmented and virtual reality applications
US10031580B2 (en) * 2016-01-13 2018-07-24 Immersion Corporation Systems and methods for haptically-enabled neural interfaces
US20170249785A1 (en) * 2016-02-29 2017-08-31 Vreal Inc Virtual reality session capture and replay systems and methods
EP3455704A4 (en) * 2016-07-08 2019-11-13 Immersion Corporation MULTIMODAL HAPTIC EFFECTS
KR20180019270A (ko) * 2016-08-16 2018-02-26 (주)알비케이이엠디 증강현실 또는 가상현실 구현 기기와 연동되는 햅틱 디바이스
US10698488B2 (en) * 2017-03-31 2020-06-30 VRgluv LLC Haptic interface devices
US10386928B2 (en) * 2017-04-12 2019-08-20 Disney Enterprises, Inc. Dynamic haptic effects generator

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220053945A (ko) * 2020-10-23 2022-05-02 주식회사 비트센싱 가상 촉각 서비스를 제공하는 서버, 사용자 단말 및 방법
KR20230000403A (ko) * 2021-06-23 2023-01-02 센스타임 인터내셔널 피티이. 리미티드. 게임 이미지 처리 방법, 장치, 전자 기기, 컴퓨터 저장 매체 및 컴퓨터 프로그램
US11836726B2 (en) 2021-06-23 2023-12-05 Sensetime International Pte. Ltd. Game image processing method, electronic device, and computer storage medium
KR20230000925A (ko) * 2021-06-24 2023-01-03 센스타임 인터내셔널 피티이. 리미티드. 테이블톱 게임들의 상태들을 전환하는 방법들, 장치들, 디바이스들 및 저장 매체들

Also Published As

Publication number Publication date
US20200218356A1 (en) 2020-07-09
JP2019192237A (ja) 2019-10-31
CN110389659A (zh) 2019-10-29
US10572017B2 (en) 2020-02-25
EP3557384A1 (en) 2019-10-23
US20190324539A1 (en) 2019-10-24

Similar Documents

Publication Publication Date Title
US10572017B2 (en) Systems and methods for providing dynamic haptic playback for an augmented or virtual reality environments
US10564729B2 (en) Haptic feedback using a field of view
US10488931B2 (en) Systems and methods for pressure-based haptic effects
CN106997241B (zh) 虚拟现实环境中与真实世界互动的方法与虚拟现实系统
KR20180044877A (ko) 압력-기반 햅틱들
US10474238B2 (en) Systems and methods for virtual affective touch
CN111045511B (zh) 基于手势的操控方法及终端设备
US20200341551A1 (en) Systems and methods for providing customizable haptic playback
KR20150085801A (ko) 사용자에 의해 생성되는 콘텐츠 저작을 위한 시스템 및 방법
US20180232051A1 (en) Automatic localized haptics generation system
KR20180066865A (ko) 햅틱들을 가지는 컴플라이언스 착시들을 위한 시스템들 및 방법
KR102201678B1 (ko) 증강 현실에서 햅틱 오버레이를 통합하는 시스템들 및 방법들
KR20200075773A (ko) 사용자의 모션 또는 환경에 기초하여 햅틱 효과들을 제공하는 시스템들 및 방법들
TWI729323B (zh) 互動式遊戲系統
EP3367216A1 (en) Systems and methods for virtual affective touch
US20240066399A1 (en) Smooth switchover of computer game control
CN117666769A (zh) 虚拟场景的交互方法、装置、存储介质及设备