KR20160135314A - 전방향식 로코모션 시스템에서 입력을 생성하는 방법 - Google Patents

전방향식 로코모션 시스템에서 입력을 생성하는 방법 Download PDF

Info

Publication number
KR20160135314A
KR20160135314A KR1020167028982A KR20167028982A KR20160135314A KR 20160135314 A KR20160135314 A KR 20160135314A KR 1020167028982 A KR1020167028982 A KR 1020167028982A KR 20167028982 A KR20167028982 A KR 20167028982A KR 20160135314 A KR20160135314 A KR 20160135314A
Authority
KR
South Korea
Prior art keywords
user
sensor
velocity
sensors
processor
Prior art date
Application number
KR1020167028982A
Other languages
English (en)
Other versions
KR102376564B1 (ko
Inventor
잔 지오트겔룩
리카르도 소자
듀안 베스터
제임스 더글라스 셔필드
Original Assignee
버툭스 홀딩스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 버툭스 홀딩스 인코포레이티드 filed Critical 버툭스 홀딩스 인코포레이티드
Publication of KR20160135314A publication Critical patent/KR20160135314A/ko
Application granted granted Critical
Publication of KR102376564B1 publication Critical patent/KR102376564B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/24Constructional details thereof, e.g. game controllers with detachable joystick handles
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/98Accessories, i.e. detachable arrangements optional for the use of the video game device, e.g. grip supports of game controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/34Smoothing or thinning of the pattern; Morphological operations; Skeletonisation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality

Abstract

가상환경은 절대 방향설정 프레임워크를 사용할 수 있다. 가상환경에서의 절대 방향설정 프레임워크는 전방향 로코모션 플랫폼을 사용하여 작동될 수 있다. 절대 방향설정 프레임워크는 사용자의 아바타가 카메라 위치의 현재의 시점(視點)으로부터 독립적으로 움직이는 것을 가능하게 한다. 사용자의 아바타는 가상환경 지도에 대하여 절대적 방식으로 움직일 수 있다.

Description

전방향식 로코모션 시스템에서 입력을 생성하는 방법{METHOD OF GENERATING AN INPUT IN AN OMNIDIRECTIONAL LOCOMOTION SYSTEM}
본 출원은 발명의 명칭 "Method and System of Decoupling a Locomotion and Virtual Reality System"으로 2014년 3월 19일에 출원된 미국 가출원 제61/955,767호의 우선권을 청구하며, 이 문헌의 전체 내용은 참조에 의해 본 명세서에 병합된다. 본 출원은 발명의 명칭 "Omnidirectional Locomotion System for Military Application"로 2014년 4월 17일에 출원된 미국 가출원 제61/981,149호의 우선권을 청구하며, 이 문헌의 전체 내용은 참조에 의해 본 명세서에 병합된다. 본 출원은 발명의 명칭 "Support Tube System for Vertical Movement of an Omnidirectional Locomotion Device"로 2014년 5월 29일에 출원된 미국 가출원 제62/004,550호의 우선권을 청구하며, 이 문헌의 전체 내용은 참조에 의해 본 명세서에 병합된다. 본 출원은 발명의 명칭 "An Omnidirectional Locomotion System and Apparatus"로 2015년 1월 2일에 출원된 미국 가출원 제62/099,426호의 우선권을 청구하며, 이 문헌의 전체 내용은 참조에 의해 본 명세서에 병합된다. 본 출원은 발명의 명칭 "An Omnidirectional Locomotion System and Apparatus"로 2015년 3월 2일에 출원된 미국 가출원 제62/127,261호의 우선권을 청구하며, 이 문헌의 전체 내용은 참조에 의해 본 명세서에 병합된다.
본 개시는 가상현실 시스템들과 함께 사용될 수 있는 전방향식 로코모션 시스템 및 장치에 관한 것이며, 더 구체적으로는 전방향식 로코모션 시스템 및 관련된 구성요소들의 하드웨어 레이아웃 및 소프트웨어 방법에 관한 것이다.
본 개시는 대체로 가상현실 시스템들과 함께 사용될 수 있는 로코모션 장치에 관한 것이다.
가상현실 환경에서, 일반적으로 사용자는 자유롭게 걸을 수 있는 능력을 원한다. 특히, 현실 환경에서 물리적으로 걷거나 달리고 그 동작을 가상 환경에서 변형(translation)시키는 능력은 가상 환경에서의 사용자의 몰입 레벨을 현저히 증가시킨다. 그러나 현실 세계에서의 움직임은 물리적 공간 경계(예를 들어, 사용자가 위치하는 내부 공간의 크기)에 의해 종종 제한된다. 따라서, 로코모션 장치들(locomotion devices)은 사용자를 특정 위치에 구속하면서, 사용자에게 자유롭게 걷는 느낌을 제공하도록 설계된다. 예를 들어, 다수의 로코모션 장치들은 사용자가 한정된 크기를 갖는 플랫폼상에서 플랫폼을 벗어나지 않으면서 360°자유롭게 걸을 수 있도록 한다. 종래의 로코모션 장치들은 전동식 또는 비 전동식 디자인을 포함하며, 이것들은 가상현실 환경과 함께 사용될 수 있다.
전동식 로코모션 장치들은, 사용자의 움직임을 검출하고 사용자가 위에서 움직이는 벨트 또는 롤러를 구동하는 모터들에 피드백을 보내는 센서들을 일반적으로 사용한다. 벨트 또는 롤러들은 사용자의 움직임에 대응하여 각각의 걸음 이후에 사용자를 플랫폼의 중심부로 다시 이끌도록 작동된다. 이러한 전동식 로코모션 장치에는 많은 단점이 있다. 예를 들어, 전동식 로코모션 장치들은 롤링 및 전동식 구성요소, 센서, 처리 유닛 및 피드백 루프 때문에 일반적으로 복잡하고 비싸다. 또한, 사용자의 움직임에 적절하게 대응하기 위해 롤링 및 전동식 구성요소를 위해 복잡한 알고리즘들이 요구된다. 모터로의 부정확한 피드백은 벨트 또는 롤러의 잘못된 움직임을 초래할 수 있으며, 이것에 의해 사용자가 균형을 잃거나 또는 플랫폼의 중심에서 떨어져 표류할 수 있다. 또한, 사용자가 가속할 때, 피드백 및 반응의 지연과 관련된 문제가 있을 수 있는데, 이것은 너무 느린 부정확한 움직임 또는 반응을 일으켜서, 사용자가 플랫폼을 벗어나게 할 가능성이 있다. 또한, 벨트 또는 롤러들의 반응 움직임은 사용자의 움직임에 반대로 작용하기 때문에, 사용자가 균형을 잃어 넘어질 수 있다.
전동식 로코모션 장치들의 작동과 관련된 문제들 외에, 그러한 장치들은 통상 대형이고 부피가 커서 평균 크기의 주거 공간(예를 들어, 게임 룸, 거실 또는 침실)에 맞지 않으며, 또한 운송 및 저장을 위해 모듈형 조각으로 분해하기가 어려울 수 있다. 이러한 장치들은, 정확한 시스템 반응이 처리되기 전에 사용자가 플랫폼에서 벗어나는 것을 방지하기 위해 필연적으로 대형으로 되며, 따라서 이러한 장치들을 소비자의 댁내 사용을 부적합하게 한다.
비전동식 로코모션 장치들은 전동식 구성요소들이 부족하므로, 각 걸음 후에 사용자가 플랫폼의 중심으로 다시 되돌아가도록 하기 위해 사용자의 움직임 및/또는 중력에 의존한다. 예를 들어, 전방향식(omni-directional) 볼 베어링 플랫폼들은 수백 개의 볼 베어링을 가지며, 이것들은, 사용자가 자신의 허리에 두른 안전벨트로 정해진 위치를 유지하면서 정해진 위치에서 걸을 수 있도록 한다. 전방향식 볼 베어링 플랫폼들이 갖는 주된 문제는, 사용자가 힐-토우 충격 움직임(heel-toe strike movement)으로 자연스러운 걸음걸이를 체험하지 못하며, 오히려 얼음 위에서 걷는 것과 같은 불안정을 체험하는 것이다. 이러한 불안정으로 인해 힐과 토우 어느 것도 장치에서 들어올리지 않고 발을 끌며 걸게 되며, 그 결과 부자연스러운 걸음걸이를 초래하여 가상환경에서의 사용자의 몰입을 감소시킨다. 더욱이, 이러한 장치들은 복수의 롤링 구성요소들로 인해 통상적으로 무겁고 비싸다.
따라서, 사용자가 더 자연스러운 보행 감각을 제공하면서 가상환경에 안전하게 액세스할 수 있도록 하는 로코모션 장치들에 대한 요구가 남아 있다.
본 명세서에 설명된 실시예들은 일반적으로 가상환경 기술에서 사용하기 위한 로코모션 시스템에 대한 것으로, 상기 로코모션 시스템은 사용자를 지지하도록 구성된 플랫폼, 상기 플랫폼에 진입하는 동안 상기 플랫폼과 사용자를 지지하도록 구성된 하위 플랫폼, 상기 플랫폼에 결합하고 상기 플랫폼으로부터 가변 높이에 위로 연장되는 조정 가능한 스트럿(strut), 그리고 사용자가 착용하도록 구성된 하네스를 포함하며, 하네스 지지 조립체는 플랫폼 위에 위치되어 수직 중심축에 대해 연장되는 지지 헤일로(halo)를 포함한다. 하네스는 지지 헤일로에 움직일 수 있게 결합된 하나 이상의 슬레드(sled)를 포함한다.
일 실시예에서, 가상환경 기술에서 사용하기 위한 로코모션 시스템은, 사용자를 지지하도록 구성된 플랫폼; 상기 플랫폼에 결합되고 상기 플랫폼으로부터 위로 연장되고, 상기 플랫폼 위에 위치되어 수직 중심축에 대해 연장되는 지지 헤일로를 포함하는 스트럿, 그리고 사용자가 착용하도록 구성된 벨트, 상기 벨트에 결합된 하나 이상의 슬레드, 및 상기 벨트에 결합된 수직 부재를 포함하는 하네스를 포함한다. 상기 슬레드는 상기 지지 헤일로의 상부면과 하부면을 슬라이딩 가능하게 맞물리며, 상기 수직 부재는 상기 지지 헤일로 내에 배치되고, 상기 지지 헤일로에 대한 상기 인터페이스 구조체의 방사상 움직임을 제한하도록 구성된다.
일 실시예에서, 전방향식 로코모션 시스템에서 사용되는 하네스는, 지지 프레임에 결합된 하부 하네스, 연결막대에 의해 지지 프레임에 제거 가능하게 결합되고 헤일로 위에 위치된 2개의 상부 슬레드, 수직 부재에 의해 상기 지지 프레임에 제거 가능하게 결합되고 상기 헤일로 아래에 위치된 2개의 하부 슬레드를 포함한다.
일 실시예에서, 가상현실 시스템은 로코모션 시스템을 포함하며, 이 로코모션 시스템은, 사용자를 지지하도록 구성된 플랫폼, 상기 플랫폼에 결합된 스트럿을 포함한다. 상기 스트럿은, 상기 플랫폼 위에 위치되고 수직 중심축에 대해 연장하는 지지 헤일로를 포함하며, 여기서 상기 하네스는 상기 지지 헤일로에 대해서 움직이도록 구성된다. 상기 가상현실 시스템은, 하나 이상의 센서, 예를 들면 사용자의 동작을 검출, 추적하여 인쇄회로기판에 전송하는 관성 측정 유닛(IMU: inertial measurement unit)과, 상태 정보를 사용자에게 표시하는 발광다이오드(LED)와, 의도하지 않은 제거를 방지하기 위한 배선 시스템 및 패널과, 상기 처리유닛과 통신하는 시각적 표시장치와, 사용자에 의해 취급되거나 사용될 하나 이상의 액세서리를 추가로 포함할 수 있다.
전방향식 로코모션 시스템에서 사용자의 움직임은 상기 하나 이상의 센서, 예컨대 IMUs로부터 수집된 데이터에 의해 결정될 수 있다. 하나 이상의 센서는 사용자의 신발, 하네스, 액세서리, 머리, 팔, 또는 사용자 또는 사용자 액세서리 상의 어떤 다른 위치에 제거 가능하게 부착될 수 있다. 사용자가 임의의 방향으로 움직임을 시작할 때 센서들은 원시 자이로(gyro) 데이터를 수집기 보드(aggregator board)로 예컨대 100Hz로 스트리밍 전송할 수 있다. 상기 수집기 보드는 그 데이터를 수집 및 분석하여 상기 동작 방향에 수직인, 상기 자이로로부터 오는 각속도(초당 회전속도)를 결정할 수 있다. 다른 실시예들에서, 상기 센서는 커패시턴스 센서, 관성 센서(IMU), 주변광 센서, 자성 추적 센서(magnetic tracking sensor), 음향 센서, 압력 센서, 광 추적 센서, 홀 효과(hall effect) 센서, 및 적외선 센서를 포함할 수 있으며, 이에 한정하지 않는다.
용어 "결합된(coupled)"은 사용자가 바라보는 방향 또는 카메라가 가상 환경에서 지향하는 방향과 관련하여 가상 환경 내 움직임의 제한을 지칭한다.
용어 "분리된(decoupled)"은 사용자가 바라보는 방향 또는 카메라가 가상 환경에서 지향하는 방향에 독립하여 가상 환경에서 움직일 수 있는 능력을 지칭한다. 일 실시예에서, 이것은, 사용자가 자신이 가상 환경에서 바라보는 방향에 독립하여 가상현실 플랫폼상의 임의의 방향으로 걸어갈 수 있는 능력을 지칭한다(보행 동작은 게임패드 입력을 받아들이는 컴퓨터 애플리케이션을 위한 게임패드 입력으로 변형됨). 그러므로 분리된 경우의 움직임은 사용자가 움직이고 있을 때 카메라 또는 디스플레이의 방향에 의해 구속되지 않으며, 따라서 사용자는, 자신의 의도된 발 또는 신체 움직임, 동작 또는 방향에 관계없이, 임의의 각도로 디스플레이를 위치시키거나 볼 수 있다.
용어 "POD"는 특수한 타입의 센서 시스템, 즉 단거리 무선 기능을 가진 멀티-컨트롤러 유닛과 결합된 센서를 일반적으로 지칭한다. 본 개시에서, 용어 "POD"는 용어 센서와 상호 교환적으로 사용될 수 있다. 본 개시는 일반적으로 POD를 기술하지만, 다른 센서들, 예컨대 커패시턴스 센서, 관성 센서(IMU), 주변광 센서, 자성 추적 센서, 음향 센서, 압력 센서, 광 추적 센서, 홀 효과 센서, 및 적외선 센서가 구현될 수도 있다.
용어 "게이밍(gaming)"은 가상 환경, 즉 비디오 게이밍, 훈련(전투, 스포츠, 고용), 시뮬레이션, 엑서-게이밍(exer-gaming), 물리 치료, 시리어스-게이밍(serious gaming), 오락, 교육, 가상 여행, 가상 작업환경, 가상 회의실, 스포츠 시뮬레이션 및 훈련, 가상 관광업, 가상 콘서트, 가상 이벤트, 또는 설계 목적을 일반적으로 지칭한다.
현재의 비디오 게임들은 상대적 방향설정 프레임워크(orientation framework)를 사용한다. 조이스틱을 우측으로 밀거나 키보드에서 "D"를 누르면 사용자의 아바타를 현재의 시점(視點) 또는 카메라 위치로부터 우측으로 90도 움직일 수 있다. 현재의 카메라 위치는 머리에 쓰는 디스플레이, 예컨대 가상현실 헤드셋의 방향을 측정함으로써 얻어질 수 있다. 따라서 상대적 방향설정 프레임워크에서, 움직임은 현재의 카메라 위치에 상대적일 수 있다. 더 설명하면, 키보드 상의 "W"를 누르거나 조이스틱을 위로 밀면, 사용자의 아바타를 현재의 카메라 위치에서 앞으로 움직일 수 있다.
일 실시예에서, 게임은 절대적 방향설정 프레임워크(분리된 구조)를 사용할 수 있다. 전방향식 로코모션 플랫폼을 사용하여 게임이 이루어질 때, 사용자의 아바타는 현재의 시점(視點) 또는 카메라 위치에 독립적으로 움직일 수 있다. 사용자의 아바타는 게임 내 지도에 대하여 절대적 방식으로 움직일 수 있다. 예를 들어, 만일 사용자가 전방향식 로코모션 플랫폼에서 북쪽 방향으로 걸어가면, 사용자의 아바타는 현재의 카메라 위치에 관계없이 게임내 지도에서 북쪽으로 움직일 수 있다. 일 실시예에서, 머리에 쓴 디스플레이는 센서, 예를 들면 자력계를 포함할 수 있다. 센서는 전방향식 로코모션 플랫폼과 유사한 절대적 방향설정 프레임워크를 사용할 수 있으며, 이때 현재의 게임 카메라 위치는 사용자가 게임 밖에서 신체적으로 바라보고 있는 방향일 수 있다.
일 실시예에서, "북쪽" 방향은 자북이거나 진북일 수 있다. 또 다른 실시예에서, "북쪽" 방향은 게임의 시작 시에 설정되거나 조정된 지정 방향일 수 있다. 예를 들면, 머리에 쓰는 디스플레이(가상현실 헤드셋)를 착용하고 있는 사용자는 조정 동안 자신의 몸체가 앞을 향하도록 할 수 있으며, 이것에 의해 현재의 카메라 위치와 자신의 몸체 위치를 분리하기 전에 전진 보행 지향(orientation)과 현재의 전방 주시 방향을 조정할 수 있다. 또 다른 실시예에서, 전방향식 로코모션 시스템의 헤일로 또는 하네스는, 현재의 카메라의 위치와 사용자의 몸체 위치를 분리하기에 앞서 게임 내 전방 지향과 사용자의 전방 위치를 조정하기 위해, 센서들을 포함할 수 있다. 또 다른 실시예에서, 게임의 시작 후, 전방향식 로코모션 플랫폼, 하네스, 또는 헤드셋의 센서들에 의해 결정된, 게임 밖의 사용자의 현재 위치가, 게임의 시작 위치로 조정될 수 있다. 예를 들어, 만일 게임 내 사용자가 동쪽을 향해서 개시하면, 게임이 개시될 때 외부 사용자가 향하는 방향은 동쪽으로 조정될 수 있다.
일 실시예에서, 분리는 기존 게임들에서 구현될 수 있다. 기존 게임들은 분리를 위해 구성되어 있지 않지만, 그래도 사용자의 현재 카메라 위치를 기초로 하나 이상의 키누름을 생성함으로써 분리 효과가 달성될 수 있다. 예를 들어, 만일 사용자가 90도 좌측을 보면서 전방향식 로코모션 플랫폼상에서 앞으로 보행하면, "D" 키 또는 좌 이동 키를 생성함으로써 분리가 달성될 수 있다. 절대적 방향설정 프레임워크는 현재의 카메라 위치를 고려함으로써 상대적 방향설정 프레임워크로 변형될 수 있다. 또 다른 실시예에서, 만일 사용자가 45도 우측을 보면서 전방향식 로코모션 플랫폼상에서 앞으로 보행하면, "W" 및 "A" 키를 동시에 또는 교대로 생성함으로써 분리 효과가 달성될 수 있다. 또 다른 실시예에서, 만일 사용자가 15도 우측을 보면서 전방향식 로코모션 플랫폼상에서 앞으로 보행하면, "A" 키보다 "W" 키를 더 많이 생성함으로써 분리 효과가 달성될 수 있다.
일 실시예에서, 전방향식 로코모션 플랫폼상에서 급정지를 검출하는 방법은, 미리 정의된 간격으로 각속도를 수신하는 단계, 상기 각속도를 기초로 사용자 움직임을 판정하는 단계, 상기 각속도에 평활 필터를 적용하는 단계, 상기 각속도가 미리 정의된 문턱 이하일 때를 판정하는 단계, 상기 각속도의 기울기를 계산하는 단계, 미리 정의된 간격 동안 상기 기울기가 0에 접근하는 때를 판정하는 단계, 상기 각속도가 상기 미리 정의된 문턱 이내에 있고 상기 기울기가 미리 정의된 간격 동안 0에 접근할 때 상기 급정지를 판정하는 단계를 포함한다.
일 실시예에서, 로코모션 시스템 플랫폼은 센서들을 포함하며, 상기 센서들은 로코모션 시스템을 동작하는 사용자의 특성을 판정하기 위해 사용될 수 있다. 센서들은 플랫폼상에 또는 내부에, 또는 플랫폼의 사용자에게 위치될 수 있다. 또 다른 실시예는 절대적 방향설정 프레임워크에 관한 것이며, 이 경우 캐릭터는 (사용자의 시점(視點)인) 카메라 위치에 독립적으로 움직일 수 있다. 사용자가 주시하는 방향이 무시되고 사용자는 절대적 방향으로 이동할 수 있다. 만일 사용자가 로코모션 시스템상에서 "북쪽"으로 보행하면, 게임 내의 사용자는 카메라 위치에 관계없이 게임에서 북쪽으로 이동할 것이다.
일 실시예에서, 로코모션 시스템 플랫폼은 기하학적 패턴으로 분리된 하나 이상의 센서, 전자적으로 결합된 하나 이상의 인쇄회로기판들, 상기 하나 이상의 인쇄회로기판 및 컴퓨터 시스템에 전자적으로 결합된 하나 이상의 마이크로-컨트롤러 유닛을 포함할 수 있다. 상기 마이크로-컨트롤러 유닛은 단거리 무선, 예를 들면 블루투스(Bluetooth), 와이파이(WI-FI), 또는 NFS에 의해 상기 인쇄회로기판 및 컴퓨터 시스템에 전자적으로 결합될 수 있다. 컴퓨터 시스템은 서버, 비디오 게임 콘솔, 또는 모바일 장치, 예컨대 XBOX, PlayStation, Nintendo, 모바일 폰, 태블릿, 랩탑, 스마트폰 또는 PDA일 수 있다. 센서들은 커패시턴스 센서, 관성 센서(IMU), 주변광 센서, 자성 추적 센서, 음향 센서, 압력 센서, 광 추적 센서, 홀 효과 센서, 및 적외선 센서를 포함할 수 있으며, 이에 한정하지 않는다. 또 다른 실시예에서, 상기 기하학적 패턴은 동심원들일 수 있다.
일 실시예에서, 전진 걸음은 헤일로 상의 하나 이상의 센서가 작동될 때 생성될 수 있다. 예를 들면, 헤일로 또는 플랫폼 상의 하나 이상의 센서는 커패시턴스 판독에 의해 작동될 수 있다. 상기 작동된 센서로부터의 커패시턴스 및 시간 데이터는 컴퓨터 시스템 내에 저장될 수 있다. 만일 하나 이상의 인접한 센서가 작동되면 판정이 이루어질 수 있다. 또 다른 실시예에서, 사용자에 설치된 하나 이상의 센서는 관성 측정 또는 광학 측정에 의해 작동될 수 있다. 전진 걸음이 생성될 수 있다.
일 실시예에서, 헤일로 상의 하나 이상의 센서가 작동될 때 속도 벡터가 생성될 수 있다. 예를 들면, 헤일로 또는 플랫폼의 하나 이상의 센서는 커패시턴스 판독에 의해 작동될 수 있다. 상기 작동된 센서로부터의 커패시턴스 및 시간 데이터는 컴퓨터 시스템에 저장될 수 있다. 하나 이상의 센서가 작동되면 판정이 이루어질 수 있다. 또 다른 실시예에서, 사용자에게 설치된 하나 이상의 센서는 관성 측정 또는 광학 측정에 의해 작동될 수 있다. 속도 벡터가 생성될 수 있다.
일 실시예에서, 걸음 방향(step direction)이 계산될 수 있다. 하나 이상의 센서가 위치 데이터 및 커패시턴스 값을 컴퓨터 시스템에 전송할 수 있다. 또 다른 실시예에서, 하나 이상의 센서는 관성 측정값 또는 광학 측정값을 전송할 수 있다. 컴퓨터 시스템은 상기 하나 이상의 센서들의 위치 데이터를 정규화할 수 있다. 컴퓨터 시스템은 상기 정규화된 위치 벡터들에 추가로 가중치를 부여할 수 있다. 컴퓨터 시스템은 상기 가중치가 부여된 정규화 위치 벡터들을 추가로 축적할 수 있다. 컴퓨터 시스템은 상기 축적된 벡터들을 추가로 정규화할 수 있다.
일 실시예에서, 하나 이상의 센서들의 속도가 계산될 수 있다. 컴퓨터 시스템은 센서들을 제로의 눈금에 맞출 수 있다(예를 들면 중심 구역에서). 하나 이상의 센서들이 위치 데이터 및 커패시턴스 값을 컴퓨터 시스템에 전송할 수 있다. 또 다른 실시예에서, 하나 이상의 센서들이 관성 측정 값 또는 광학 측정 값을 전송할 수 있다. 컴퓨터 시스템은 상기 하나 이상의 센서들의 위치 데이터를 정규화할 수 있다. 컴퓨터 시스템은 상기 정규화된 위치 벡터들에 추가로 가중치를 부여할 수 있다. 컴퓨터 시스템은 상기 가중치가 부여된 정규화 위치 벡터들을 추가로 축적할 수 있다. 컴퓨터 시스템은 상기 축적된 벡터들을 추가로 정규화할 수 있다. 컴퓨터 시스템은 상기 축적된 벡터의 길이를 결정할 수 있다. 컴퓨터 시스템은 상기 축적된 벡터의 속도를 계산할 수 있다.
일 실시예에서, 로코모션 시스템 플랫폼은 자연스런 수직 움직임을 제공할 수 있다. 수직 움직임은 사용자가 로코모션 시스템을 동작시키면서 움츠리거나 점프할 수 있게 한다. 수직 움직임은 볼 베어링 시스템, 스프링 평형추(spring counterweight), 공중 스프링 현가장치(overhead spring suspension), 피봇 아암(pivot arm), 자기부상장치, 유압작동장치, 및/또는 압축가스시스템을 포함할 수 있다.
일 실시예에서, 로코모션 시스템은 특히 사용자가 넘어지는 것을 방지하기 위해 제동 메커니즘을 포함할 수 있다. 사용자가 로코모션 시스템을 동작시키고 있을 때, 수평력이 작용된다. 로코모션 시스템의 오목한 베이스는, 수평력의 적용에 의한 사용자의 전진 이동을 가능하게 하는 동시에, 사용자가 넘어지거나 균형을 잃게 할 수 있다. 제동 메커니즘은 상기 수평력에 대응함으로써 사용자가 넘어지거나 균형을 잃는 것을 막을 수 있다. 제동 메커니즘은 평형추, 마찰력, 및 케이블 제동기를 포함할 수 있다.
일 실시예에서, 로코모션 시스템은 산업계 사용자를 수용할 수 있다. 로코모션 시스템은 무기 예를 들면 M4 카빈 총을 사용하는 사용자를 수용할 수 있다. 로코모션 시스템은 또한 표준 산업용 기어 및 복장, 예를 들면 모듈형 전술 조끼, 패트롤 팩(patrol pack), 개량형 하중지지 장비(ILBE: improved load bearing equipment), 및 모듈형 경량 하중운반 장비(MOLLE: modular lightweight load-carrying equipment)을 착용한 사용자를 추가로 수용할 수 있다.
일 실시예에서, 표준 산업용 기어는 로코모션 시스템과 통합될 수 있으며, 특히 하중지지/하중운반 장비는 로코모션 시스템 하네스에 부착될 수 있다. 이러한 부착은 파우치 부착 사다리 시스템(PALS: Pouch Attachment Ladder System)을 사용하여 실행될 수 있다.
일 실시예에서, 게이밍 입력을 생성하는 방법은, 속도를 계산하는 단계, 헤딩(heading)을 계산하는 단계, 상기 속도 및 헤딩을 2차원 직교좌표로 변형하는 단계, 상기 2차원 직교좌표를 최소 최대 스케일 범위(minimum to maximum scale range)로 정규화하는 단계를 포함한다. 일 실시예에서, 상기 속도는 사용자의 발이 보행한 거리를 그 거리를 보행하기 위해 사용된 시간으로 나누어 계산될 수 있다. 또 다른 실시예에서, 상기 속도는 보행 속도(pedometry rate)에 의해 계산될 수 있으며, 이때 보행 속도는 미리 정의된 간격 동안 걸음 빈도(frequency of steps)를 모니터링하여 결정될 수 있다. 또 다른 실시예에서, 상기 속도는 사용자 발의 하나 이상의 가속을 모니터링하여 계산될 수 있다. 또 다른 실시예에서, 상기 속도는 각속도를 정규화하여 계산되며, 이때 각속도는 사용자 발의 하나 이상의 회전의 변화이다. 또 다른 실시예에서, 상기 헤딩은 실축(real world axis)에 대하여 변형될 수 있으며 상기 실축은 자북(magnetic north)일 수 있다. 또 다른 실시예에서, 상기 헤딩은 오프셋에 의해 사용자의 최초 방향설정에 대한 자북으로 조정될 수 있다. 또 다른 실시예에서, 상기 헤딩은 사용자 몸통의 방향설정에 대해 변형될 수 있다. 또 다른 실시예에서, 상기 헤딩은 사용자 머리의 방향설정에 대해서 변형될 수 있다. 또 다른 실시예에서, 상기 최소 최대 스케일 범위는 게이밍 입력 디스크립터(descriptor)에 의해 정의된다. 또 다른 실시예에서, Y 2차원 직교좌표는 전진 또는 후진 움직임에 대한 것이다. 또 다른 실시예에서, X 2차원 직교좌표는 측면으로의 움직임에 대한 것이다.
또 다른 실시예에서, 정지 게이밍 입력을 생성하는 방법은, 사용자 발의 하나 이상의 회전 변화인 속도를 계산하는 단계, 상기 속도를 정규화하는 단계, 상기 정규화 속도가 미리 정의된 문턱 아래로 떨어질 때를 판정하는 단계, 상기 정규화 속도의 기울기가 미리 정의된 간격 동안 0에 접근하는 때를 판정하는 단계를 포함한다.
또 다른 실시예에서, 하나 이상의 센서 출력을 수신하는 단계, 상기 하나 이상의 센서 출력으로부터 속도를 계산하는 단계, 상기 하나 이상의 센서 출력으로부터 헤딩을 계산하는 단계, 상기 속도 및 헤딩을 2차원 직교좌표로 변형하는 단계, 상기 2차원 직교좌표를 최소 최대 스케일 범위로 정규화하는 단계를 포함하는 방법이 제공된다.
본 개시의 특징들이 얻어질 수 있는 방식을 설명하기 위해, 위에서 간략히 설명된 원리들의 더 구체적인 설명이 특정 실시예들을 참조하여 제공될 것이며, 그 실시예들은 첨부된 도면에 예시되어 있다. 이 도면들은 본 개시의 실시예들을 단지 예시로서 도시할 뿐이며, 따라서 본 발명의 범위를 한정하는 것은 아님을 이해해야 할 것이다. 첨부한 아래의 도면을 사용하여 본 발명의 원리들이 더 구체적으로 상세하게 설명된다.
도 1은 본 발명의 일 실시예에 따른 예시적인 하네스 시스템을 도시한다.
도 2a 및 도 2b는 본 발명의 일 실시예에 따른 예시적인 하네스 시스템의 예시적인 슬레드 연결을 도시한다.
도 3은 본 발명의 일 실시예에 따른 예시적인 하네스 시스템의 예시적인 슬레드 연결을 도시한다.
도 4는 본 발명의 일 실시예에 따른 예시적인 핸들 및 래칭 시스템(latching system)을 도시한다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른 예시적인 래칭 시스템을 도시한다.
도 6은 본 발명의 일 실시예에 따른 예시적인 폐쇄 및 개방 상태의 지지 헤일로를 도시한다.
도 7은 본 발명의 일 실시예에 따른 예시적인 지지 헤일로를 도시하는 평면도이다.
도 8은 본 발명의 일 실시예에 따른 예시적인 지지 헤일로의 예시적인 부착 메커니즘을 도시한다.
도 9는 본 발명의 일 실시예에 따른 예시적인 지지 헤일로의 예시적인 부착 메커니즘을 도시한다.
도 10은 본 발명의 일 실시예에 따른 예시적인 전방향식 로코모션 플랫폼 시스템의 예시적인 스트럿 시스템을 도시한다.
도 11은 본 발명의 일 실시예에 따른 예시적인 스트럿 지지 및 릴리스 시스템(release system)을 도시한다.
도 12a 및 도 12b는 본 발명의 일 실시예에 따른 예시적인 스트럿 지지를 높은 수직 레벨과 낮은 수직 레벨 각각에서 도시한다.
도 13은 본 발명의 일 실시예에 따른 예시적인 스트럿 및 스트럿 베이스를 도시하는 단면도이다.
도 14는 본 발명의 일 실시예에 따른 예시적인 스트럿 지지 및 릴리스 시스템을 도시하는 단면도이다.
도 15는 본 발명의 일 실시예에 따른 예시적인 스트럿 릴리스 시스템을 도시하는 단면도이다.
도 16은 본 발명의 일 실시예에 따른 예시적인 스트럿 및 스트럿 베이스를 도시하는 단면도이다.
도 17은 본 발명의 일 실시예에 따른 예시적인 자동-잠금 시스템의 예시적인 자동-잠금 패널을 도시한다.
도 18은 본 발명의 일 실시예에 따른 예시적인 자동-잠금 시스템을 도시하는 내부 도면이다.
도 19는 본 발명의 일 실시예에 따른 예시적인 자동-잠금 시스템을 도시하는 내부 도면이다.
도 20은 본 발명의 일 실시예에 따른 예시적인 자동-잠금 시스템을 도시하는 내부 도면이다.
도 21은 본 발명의 일 실시예에 따른 예시적인 전방향식 로코모션 시스템의 예시적인 플랫폼, 하부 플랫폼 및 케이블 관리 시스템을 도시한다.
도 22는 본 발명의 일 실시예에 따른 예시적인 플랫폼 및 하부 플랫폼의 예시적인 지지 구조체의 횡단면도이다.
도 23은 본 발명의 일 실시예에 따른 예시적인 배선 시스템을 도시한다.
도 24는 본 발명의 일 실시예에 따른 예시적인 배선 시스템을 도시한다.
도 25는 본 발명의 일 실시예에 따른 예시적인 POD 시스템을 도시하는 구성도이다.
도 26은 본 발명의 일 실시예에 따른 예시적인 POD 시스템을 도시하는 구성도이다.
도 27은 본 발명의 일 실시예에 따른 예시적인 POD 시스템을 도시하는 구성도이다.
도 28은 본 발명의 일 실시예에 따른 POD 통신 시스템의 예시적인 수집기 보드를 도시하는 구성도이다.
도 29는 본 발명의 일 실시예에 따른 POD 통신 시스템의 예시적인 계층 모델을 도시하는 구성도이다.
도 30은 본 발명의 일 실시예에 따른 예시적인 센서 레이아웃을 도시하는 모식도이다.
도 31은 본 발명의 일 실시예에 따른 예시적인 수집기 보드를 도시하는 모식도이다.
도 32는 본 발명의 일 실시예에 따른 예시적인 POD 통신 시스템을 도시하는 구성도이다.
도 33은 본 발명의 일 실시예에 따른 분리된 움직임의 예시적인 방법을 도시하는 흐름도이다.
도 34는 본 발명의 일 실시예에 따른 결합된 움직임의 예시적인 방법을 도시하는 흐름도이다.
도 35는 본 발명의 일 실시예에 따른 급정지의 예시적인 방법을 도시하는 흐름도이다.
도 36은 본 발명의 일 실시예에 따른 예시적인 센서 시스템으로부터의 출력을 도시하는 그래프이다.
도 37은 본 발명의 일 실시예에 따른 예시적인 전방향식 로코모션 시스템의 예시적인 센서 레이아웃을 도시하는 평면도이다.
도 38은 본 발명의 일 실시예에 따른 예시적인 전방향식 로코모션 시스템의 예시적인 제1 및 제2 슬라이스(slice)를 도시하는 평면도이다.
도 39 및 도 40은 본 발명의 일 실시예에 따른 전진 움직임을 생성하는 예시적인 방법을 도시하는 흐름도이다.
도 41 및 도 42는 본 발명의 일 실시예에 따른 속도 벡터를 생성하는 예시적인 방법을 도시하는 흐름도이다.
도 43은 본 발명의 일 실시예에 따른 제3자와 속도 벡터 통합을 수행하는 예시적인 방법을 도시하는 흐름도이다.
도 44는 본 발명의 일 실시예에 따른 속도 벡터를 계산하는 예시적인 방법을 도시하는 흐름도이다.
도 45는 본 발명의 일 실시예에 따른 속도를 계산하는 예시적인 방법을 도시하는 흐름도이다.
도 46a 내지 46c는 본 발명의 일 실시예에 따른 산업적 응용을 위해 구성된 예시적인 로코모션 시스템을 도시한다.
도 47은 본 발명의 일 실시예에 따른 예시적인 로코모션 시스템의 예시적인 풀리(pulley) 시스템을 도시하는 단면도이다.
도 48은 본 발명의 일 실시예에 따른 예시적인 로코모션 시스템의 예시적인 평형추 시스템을 도시하는 단면도이다.
도 49는 본 발명의 일 실시예에 따른 예시적인 로코모션 시스템의 예시적인 제동 시스템을 도시하는 평면도이다.
도 50은 본 발명의 일 실시예에 따른 예시적인 로코모션 시스템의 예시적인 제동 시스템을 도시하는 평면도이다.
도 51은 본 발명의 일 실시예에 따른 예시적인 로코모션 시스템의 예시적인 제동 시스템을 도시하는 측면도이다.
도 52는 본 발명의 일 실시예에 따른 예시적인 MOLLE 및 PALS 하네스 연결을 도시한다.
본 발명의 다양한 실시예가 아래에서 설명된다. 특정 실시예들이 설명되지만, 이것은 단지 설명을 위한 것임을 이해해야 한다. 관련 분야의 숙련자는 본 발명의 범위를 벗어나지 않으면서 다른 구성요소 및 구성이 사용될 수 있음을 인식할 것이다. 다른 경우에서는, 실시예의 측면들을 불필요하게 불명료하게 하지 않도록 하기 위해, 공지된 방법들, 절차들, 구성요소들, 회로들, 및 네트워크들이 자세히 설명되지 않았다.
또한, 다양한 요소들을 설명하기 위해 제1 및 제2 등의 용어가 본 명세서에서 사용될 수 있지만, 이 요소들은 이 용어들에 제한될 필요는 없다. 이 용어들은 단지 한 요소를 다른 요소와 구별하기 위해 사용된 것이다. 예를 들어, 본 발명의 범위를 벗어나지 않으면서, 제1 센서는 제2 센서로 지칭될 수 있고, 마찬가지로, 제2 센서는 제1 센서로 지칭될 수 있다.
본 발명의 설명에서 사용된 용어는 특정한 실시예를 설명하기 위한 목적일 뿐이며, 본 발명을 한정하려는 의도는 아니다. 본 발명의 설명과 첨부된 청구범위에서, 단수형은 문맥에서 명확히 달리 표시하지 않으면 복수형을 포함하는 것을 의도한다. 또한, 본 명세서에서 사용된 용어 "및/또는"은 나열된 관련 항목들의 하나 이상의 임의의 그리고 모든 가능한 조합들을 지칭하고 포함한다는 것을 이해해야 한다. 또한, 본 명세서에서 사용된 용어 "포함하다"는 기술된 특징(features), 완전체(integers), 걸음(steps), 동작(operations), 요소(elements), 및/또는 구성요소의 존재를 명확히 하지만, 하나 이상의 다른 특징, 완전체, 걸음, 동작, 요소, 구성요소, 및/또는 이것들의 그룹의 존재 또는 추가를 배제하지 않는다는 것으로 이해해야 한다.
본 명세서에서, 용어 "만일"은 문맥에 따라서 "하는 경우" 또는 "할 때" 또는 "판정에 응답하여" 또는 "검출에 응답하여"를 의미하는 것으로 해석될 수 있다. 마찬가지로, "판정되면" 또는 "[기술된 조건 또는 이벤트]가 검출되면"은, 문맥에 따라서, "판정할 때" 또는 "판정에 응답하여" 또는 "[기술된 조건 또는 이벤트]를 검출할 때" 또는 "[기술된 조건 또는 이벤트]의 검출에 응답하여"를 의미하는 것으로 해석될 수 있다.
도 1은 예시적인 전신 하네스 시스템(100)이다. 상부 하네스(11)는, 직립 자세를 유지하는 안정성, 균형, 및 능력을 강화하기 위해 커넥터들(115)에 의해, 하부 하네스(120)와 함께 사용하도록 구성된다. 일 실시예에서, 하부 하네스(120)는 상부 하네스(110) 없이도 사용될 수 있다. 상부 하네스(110)는 어깨끈(113)과, Y-커넥터(112)에 의해 연결된 등끈(114)을 포함할 수 있다. 어깨끈(113)은 어깨패드(111)를 포함할 수 있고, 조절자(116)에 의해 길이가 연장되거나 단축될 수 있다. 하부 하네스(120)는, 조절 가능한 허리띠 버클(123)과, 지지 강화를 위한 후면 패드(121A)와, 조절 가능한 다리 루프(124)를 구비한 허리띠(122)를 포함할 수 있다. 하부 하네스(120)는 추가로 지지 프레임(127)을 포함할 수 있다. 지지 프레임(127)은 단단한 플라스틱, 금속, 폴리머, 탄소섬유, 이것들의 임의의 조합, 또는 사용자의 체중을 지지하는 어떤 다른 재료로 만들어질 수 있다. 슬레드(125) 및 수직부재(126)는 지지 프레임(127)에 제거 가능하게 부착될 수 있다.
도 2a 및 도 2b는 하부 하네스 시스템(120)의 예시적인 슬레드 연결을 도시한다. 브라켓(129)은 후면 패드(121B), 측면 패드(121B), 허리띠(122) 또는 이것들의 조합에 의해 하부 하네스(120)에 부착될 수 있다. 연결막대(128)는 지지 프레임(127)을 통과하여 브라켓(129)에 부착된다. 연결막대(128)는 지지 프레임(127)에 의해 지지될 수 있다. 연결막대(128)는, 몸이 가벼운 사용자가 하부 하네스(120)를 사용할 경우 길이 연장을 가능하게 하고, 몸이 무거운 사용자가 하부 하네스(120)를 사용할 경우 길이 단축을 가능하게 하는 신축형 막대(telescoping pole)로서 구성될 수 있다. 연결막대(128)의 신축은 대부분의 임의의 크기의 사용자에 있어서 슬레드(125)와의 연결을 가능하게 한다. 또 다른 실시예에서, 연결막대(128)와 브라켓(129)은, 몸이 가볍거나 무거운 사용자가 하부 하네스(120)를 조이거나 느슨하게 하는 것을 가능하게 하고, 연결막대(128)가 사용자의 몸통에 대해 수직인 자세를 유지하는 것을 가능하게 하기 위해, 하부 하네스(120)의 허리띠(122)를 따라서 전후 방향으로 미끄러지도록 구성되는 것도 가능하다. 또 다른 실시예에서, 연결막대(128)는 브라켓(129)을 따라서 미끄러질 수 있다. 지지 프레임(127)은 연결막대(128)를 지지할 수 있으며, 연결막대(128)는, 예를 들어 사용자가 넘어지는 것을 방지하기 위해, 하부 하네스(120)를 지지 프레임(127)에 연결한다. 연결막대(128)와 브라켓(129)의 조합은 지지 프레임(127)에 의해 지지될 수 있다. 측면 패드(121B)는 브라켓(129) 부착지점에서 사용자를 위해 추가적인 지지와 편안함을 제공할 수 있다.
도 2a, 도 2b, 및 도 3은 헤일로(134)를 가진 하부 하네스 시스템(120)의 예시적인 슬레드 연결을 도시한다. 슬레드(125)와 수직부재(126)는 연결막대(128)에 의해 지지 프레임(127)에 제거 가능하게 부착될 수 있다. 슬레드(125)와 수직부재(126)는 헤일로(134) 위에서, 안에서, 그리고 아래에서 활공하는 마찰 저감 재료로 만들어질 수 있다. 슬레드(125)는 상부 슬레드(125A)와 하부 슬레드(125B)를 포함할 수 있다. 일 실시예에서는 상부 슬레드(125A)만이 사용될 수 있다. 또 다른 실시예에서는 상부 슬레드(125A)와 하부 슬레드(125B) 모두가 사용될 수 있다. 상부 슬레드(125A)는 연결막대(128)에 제거 가능하게 부착될 수 있다. 하부 슬레드(125B)는 수직부재(126)에 제거 가능하게 부착될 수 있다. 일 실시예에서, 하부 슬레드(125B)는 수직부재(126)의 더 위에 또는 더 아래에 부착되어, 하부 슬레드(125B)와 헤일로(134) 사이의 상호작용을 각각 증가시키거나 감소시킬 수 있다. 슬레드(125)는 사용자 움직임과 함께 회전하도록 동적 독립적으로 구성되거나, 사용자 움직임과 함께 움직이지 않도록 정적 독립적으로 구성될 수 있다. 슬레드(125)의 표면은 슬레드(125)와 헤일로(134) 사이의 접촉 면적을 최소화시키기 위해 둥근 형상으로 만들어질 수 있다. 둥근 형상의 슬레드(125)는 헤일로(134)와의 충격 동안 매끈한 활공을 가능하게 한다. 헤일로(134)는 슬레드(125)와의 충격 면적을 더욱 최소화하기 위해 실질적으로 몸통 형상을 가질 수 있다.
상부 슬레드(125A)는 헤일로(134)의 위에 위치하도록 구성되고, 하부 슬레드(125B)는 헤일로(134) 아래에 위치하도록 구성될 수 있다. 상부 슬레드(125A)와 하부 슬레드(125B)는 추가의 안정성을 제공하여 (임의의 방향으로) 사용자가 넘어지는 것을 방지하면서 사용자가 360도 움직이는 것을 가능하게 할 수 있다. 일 실시예에서, 상부 슬레드(125A)는 사용되고, 하부 슬레드(125B)는 사용되지 않을 수 있으며, 사용자에게 점프할 능력을 제공할 수 있다. 또 다른 실시예에서, 상부 슬레드(125A)와 하부 슬레드(125B) 모두가 사용될 때, 하부 슬레드(125B)는 사용자의 점프 움직임을 검출하기 위한 센서(예컨대, 홀 효과 센서, 압력 센서 또는 IMU)를 포함할 수 있고, 상부 슬레드(125A)는 사용자의 움츠림 움직임을 검출하기 위한 센서(예컨대, 홀 효과 센서, 압력 센서 또는 IMU)를 포함할 수 있다. 또 다른 실시예에서, 수직부재(126), 상부 슬레드(125A), 하부 슬레드(125B) 또는 하부 하네스(120) 상의 임의의 다른 곳이 하부 하네스(120)의 지향 (및 사용자 몸통의 지향)를 판정하도록 구성된 센서(예컨대, 홀 효과 센서, 압력 센서 또는 IMU)를 포함할 수 있다. 또 다른 실시예에서, 헤일로(134) 내부 또는 주위에 하나 이상의 홀 효과 센서가 배열될 수 있다. 또 다른 실시예에서, 수직부재(126), 상부 슬레드(125A), 하부 슬레드(125B) 또는 하부 하네스(120)의 내부 또는 주위에 하나 이상의 홀 효과 센서가 배열될 수 있다. 헤일로(134) 또는 하부 하네스(120)의 홀 효과 센서과 통신하기 위해, 수직부재(126), 상부 슬레드(125A), 하부 슬레드(125B) 또는 하부 하네스(120)의 내부 또는 주위에 하나 이상의 자석이 배열될 수 있다.
도 3은 헤일로(134)와 하부 하네스 시스템(120)의 예시적인 슬레드 연결을 도시한다. 상부 슬레드(125A)는 연결막대(128)에 제거 가능하게 부착하기 위한 연결부(1252)를 포함할 수 있다. 일 실시예에서, 상부 슬레드(125A)는 헤일로(134)와의 충돌을 증가시키거나 감소시키기 위해 연결막대(128)를 따라서 상이한 위치에, 예를 들면 연결막대(128)의 베이스에 더 가까이 또는 더 멀리 구성될 수 있다. 또 다른 실시예에서, 상부 슬레드(125A)는 연결막대(128) 주위로 회전을 방지하기 위해 제자리에 고정될 수 있다. 상부 슬레드(125A)는 전단부(1251)와 후단부(1253)를 추가로 포함할 수 있으며, 사용자에게 추가의 안정성을 제공하기 위해, 전단부(1251)는 후단부(1253)보다 길이가 더 짧다. 예를 들면, 후단부(1253)의 연장된 길이는 사용자에게 추가의 균형을 제공하여 뒤로 넘어지는 것을 방지할 수 있다. 일 실시예에서, 상부 슬레드(125A)는, 헤일로의 상부와 접촉 표면을 최소화시키기 위해, 둥근 볼록면, 오목면, 평탄면 또는 임의의 다른 형상일 수 있다. 일 실시예에서, 과도한 잡음을 피하기 위해, 상부 슬레드(125A)는 상부 슬레드(125A)의 잡음 및 충돌을 완화할 수 있는 고무 입힌 층(1254)을 포함할 수 있다. 또 다른 실시예에서, 상기 고무 입힌 층(1254)은 금속 스프링이거나 충돌 잡음을 감소시킬 수 있는 어떤 다른 재료일 수 있다. 또 다른 실시예에서, 과도한 잡음을 방지하기 위해, 헤일로(134)와 상부 슬레드(125A)의 충돌 부분이 고무 입힌 표면, 금속 스프링 또는 충돌 잡음을 감소시킬 수 있는 어떤 다른 재료로 구성될 수 있다. 또 다른 실시예에서, 슬레드는 사용자에게 용이한 전진 및 후진 움직임을 제공하기 위해 풀-롤러(full-roller)를 포함할 수 있다.
하부 슬레드(125B)는 수직부재(126)에 제거 가능하게 부착하기 위한 연결부(1255)를 포함할 수 있다. 일 실시예에서, 하부 슬레드(125B)는 상부 슬레드(125A)와 실질적으로 길이가 같을 수 있다. 또 다른 실시예에서, 하부 슬레드(125B)는 상부 슬레드(125A)보다 크기가 더 작거나 클 수 있다. 하부 슬레드(125B)의 폭은 지지 스트럿와 간섭하지 않도록 좁을 수 있다. 헤일로(134)와 접촉할 수 있는 하부 슬레드(125B)의 충돌 부분은 사용자의 움직임을 지원하고 헤일로(134)와의 접촉을 최소화하기 위해 둥글게 형성될 수 있다. 또 다른 실시예에서, 하부 슬레드(125B)의 충돌 부분은, 경사를 방지하는 바람직한 기능을 최대화하는 동시에 바람직하지 않은 헤일로(134)의 하부면과의 접촉 표면을 최소화하기 위해 둥근 볼록면, 오목면, 평탄면 또는 임의의 다른 형상일 수 있다. 동작 중에, 하부 슬레드(125B)는 사용자가 과도하게 기울어지는 것을 방지하고 사용자에게 추가적인 안정성 및 안전을 제공한다. 예를 들면, 사용자가 앞으로 및 뒤로 각각 기울어질 때, 하부 슬레드(125B)의 전부 또는 후부가 헤일로(134)의 하부면과 각각 충돌하여 추가적인 기울어짐을 방지하고 사용자를 더욱 안정하고 안전하게 한다. 헤일로(134)와 하부 슬레드(125B) 사이의 공간은 사용자를 위한 경사의 양을 결정할 수 있다. 헤일로(134)와 하부 슬레드(125B) 사이의 공간은 수직부재(126)를 따라 하부 슬레드(125B)를 조절함으로써 변경될 수 있다. 일 실시예에서, 하부 슬레드(125B)는 헤일로(134) 아래 0.25 인치로 설정되어, 사용자가 전 범위의 동작을 여전히 할 수 있도록 하면서 추가의 안정성을 제공한다. 하부 슬레드(125B)의 길이는 사용자의 전방 및 후방 기울기의 양을 결정할 수 있다. 예를 들면, 하부 슬레드(125B)의 길이가 짧을수록 사용자는 전방 및 후방으로 더 많이 기울어질 수 있는 반면, 하부 슬레드(125B)의 길이가 길수록 사용자는 전방 및 후방으로 더 적게 기울어질 수 있다. 과도한 잡음을 방지하기 위해서, 하부 슬레드(125B)는 하부 슬레드(125B)의 잡음 및 충돌을 완화할 수 있는 고무 입힌 층(미도시)을 포함할 수 있다. 또 다른 실시예에서, 상기 고무 입힌 층은 금속 스프링이거나 충돌 잡음을 감소시킬 수 있는 어떤 다른 재료일 수 있다. 또 다른 실시예에서, 과도한 잡음을 방지하기 위해, 헤일로(134)와 하부 슬레드(125B)의 충돌 부분이 고무 입힌 표면, 금속 스프링 또는 충돌 잡음을 감소시킬 수 있는 어떤 다른 재료로 구성될 수 있다. 또 다른 실시예에서, 슬레드는 사용자에게 용이한 전진 및 후진 움직임을 제공하기 위해 풀-롤러를 포함할 수 있다.
도 4는 전방향식 로코모션 시스템(130)을 도시한다. 전방향식 로코모션 시스템(130)의 헤일로(134)는 하나 이상의 핸들(131)을 포함할 수 있다. 핸들(131)은 스트럿(150)의 길이를 연장하거나 단축함으로써 헤일로(134)의 높이를 조절하는 것을 돕는다. 헤일로(134)는 또한 전방향식 로코모션 시스템(130)에 들어가기 위한 개방 또는 폐쇄 문(133)을 위한 레버(132)를 포함할 수 있다. 일 실시예에서, 레버(132)는 추가적인 안정성을 위해 폐쇄되지 않은 경우 직립 자세로 유지될 수 있다. 문(133)과 레버(132)는 우연한 개방에 대응해서 추가적인 안정성을 위해 안전핀(미도시)을 추가로 포함할 수 있다. 도 5a 및 도 5b는 래칭 메커니즘(137)을 가진 레버(132)와 힌지(136)를 가진 문(133)을 도시한다. 도 6의 (a) 내지 (c)는 다른 상태의 문(133)을 각각 도시한다: 폐쇄되고 잠기지 않은 상태, 부분 개방 상태, 및 완전 개방 상태.
도 7은 예시적인 헤일로(134)와, 핸들(131), 레버(132), 문(133), 힌지(136), 및 스트럿(150)의 상대적인 위치관계를 도시하는 평면도이다. 일 실시예에서, 스트럿(150)은 중심이 어긋날 수 있다. 일 실시예에서, 스트럿(150)은 다른 축에 위치될 수 있다. 예를 들면, 한 스트럿(150)은 축(148)상에 위치하고 다른 스트럿(150)은 축(149)상에 위치할 수 있다.
도 8은 예시적인 헤일로(134) 부착 메커니즘을 도시한다. 헤일로(134)는 U자형 플랜지(139)를 포함할 수 있다. U자형 플랜지(139)는 핸들(140)과 퀵 릴리스 래치(141)를 포함하는 퀵 릴리스 설비에 의해 스트럿(150)에 부착할 수 있다. 일 실시예에서, 임의의 다른 유형의 연결 및 릴리스 메커니즘이 사용될 수 있다. 또 다른 실시예에서, 헤일로(134)는 스트럿(150)에 영구적으로 부착된다. 도 9는 다양한 연결 상태에서의 퀵 릴리스 설비를 도시한다. 도 9(a)는 스트럿(150)과 맞물린 핸들(140) 및 퀵 릴리스 래치(141)를 도시한다. 도 9(b)는 스트럿(150)으로부터 해제된 핸들(140)을 도시한다. 도 9(c)은 스트럿(150)으로부터 해제된 핸들(140)과 스트럿으로부터 부분적으로 해제된 래치(141)를 도시한다. 도 9(d)는 스트럿(150)으로부터 완전히 해제된 핸들(140) 및 퀵 릴리스 래치(141)를 도시한다.
일 실시예에서, 헤일로(134)는 제거된 후 다른 형상 또는 크기의 사용자를 수용하기 위해 다른 형상 또는 크기를 가진 헤일로로 대체될 수 있다. 일 실시예에서, 헤일로(134)는, 슬레드(125)와 최소 접촉이 가능하도록, 실질적으로 몸통 형상일 수 있다. 또 다른 실시예에서, 헤일로(134)는 또한 몸통에 유사한 형상을 가질 수 있으며, 이때 몸통의 작은 원은 타원이거나 슬레드(125)와 최소 접촉을 가능하게 하는 임의의 다른 형상일 수 있다. 또 다른 실시예에서, 헤일로(134)는 모든 크기의 사용자를 수용하기 위해 다양한 원주를 가진 다양한 헤일로와 상호교환될 수 있다. 또 다른 실시예에서, 스트럿(150)은 모든 크기의 아용자를 수용할 수 있는 다양한 헤일로 설계를 수반하기 위해 추가로 제거 가능하게 될 수 있다. 또 다른 실시예에서, 제거 가능한 헤일로(134) 및 제거 가능한 스트럿(150)은 전방향식 로코모션 시스템을 이동하는데 도움을 줄 수 있다.
도 10은 헤일로(134)의 수직 움직임을 위한 예시적인 스트럿 시스템(190)을 도시한다. 헤일로(134)는 하나 이상의 릴리스 부재(191)를 포함하고 하나 이상의 스트럿(150)에 결합될 수 있다. 하나 이상의 스트럿(150)은 하나 이상의 케이블(192)에 의해 하나 이상의 릴리스 부재(191)에 결합된 하나 이상의 포지셔닝 부재(194)와 하나 이상의 잠금 메커니즘(195)을 포함할 수 있다. 포지셔닝 부재(194)는 접이식 잠금 핀(retractable locking pin)(193)을 포함할 수 있으며, 접이식 잠금 핀(193)은 릴리스 부재(191)가 맞물릴 때 해제되어, 헤일로(134)가 수직으로 움직일 수 있게 한다. 일 실시예에서, 스트럿(150)은 포지셔닝 부재(194)에 포함된 접이식 잠금 핀(193) 또는 포지셔닝 핀에 의해 제자리에 유지될 수 있으며, 포지셔닝 부재(194)는 스트럿(150)의 수직 위치를 고정시킬 수 있다. 스트럿(150)은 포지셔닝 핀이 접혀질 때 상하 수직으로 움직일 수 있다. 사용자는 릴리스 부재(191)를 작동함으로써 수직 이동을 가능하게 할 수 있다. 릴리스 부재(191)를 작동함으로써, 케이블(192)이 위로 당겨져 잠금 메커니즘(195)을 작동시키며, 잠금 메커니즘(195)은 대응하여 포지셔닝 메커니즘(194) 내 핀을 접고 스트럿(150)의 잠금을 해제하여 수직 움직임을 가능하게 한다.
도 11은 수직으로 조정 가능한 스트럿(150)을 구비한 예시적인 전방향식 로코모션 시스템(130)을 도시한다. 풋 레버(153)는 스트럿 래치(152)를 해제하여 스트럿 베이스(151)로부터 스트럿(150)의 조정 및 제거가 가능하도록 구성될 수 있다. 풋 레버(153)는 래치(152)에 부착될 수 있다. 또 다른 실시예에서, 풋 레버(153)는 도 14에 도시된 것처럼 스트럿 래치(152)로부터 분리될 수 있다. 분리된 풋 레버는 스트럿 래치(152)를 해제하기 위해 내부의 스프링 해제 메커니즘을 이용할 수 있다. 스트럿(150)은 높이 조정을 돕기 위해 인쇄된 높이 마킹(154)을 포함할 수 있다. 스트럿(150)은 도 18 내지 도 20에 도시된 자동-잠금 메커니즘을 사용하여 스트럿 베이스(151)로부터 완전히 제거될 수 있다. 도 12a 및 도 12b는 스트럿(150)의 높은 높이 상태와 낮은 높이 상태를 도시한다.
도 13은 예시적인 스트럿 베이스(151)와 스트럿(150)의 내부 도면으로서 스트럿 연결 메커니즘을 도시한다. 원형 부분(151A)은 스프링(미도시)을 지지하며, 이 스프링은 스트럿(150)의 내측 부분에 대항력을 제공할 수 있다. 상기 스프링의 대항력은 스트럿 베이스(151)로부터 스트럿 래치(152)에 의해 걸쇠가 풀릴 때 스트럿(150)이 넘어지는 것을 방지한다. 도 14는 예시적인 스트럿 베이스(151)의 내부 도면으로서 내부 스프링 메커니즘(151B)을 도시한다. 풋 레버(153)가 아래로 눌려서 스트럿(150)이 해제되는 경우, 내부 스프링 메커니즘(151B)이 작동되어 스트럿(150) 및 헤일로(134)의 무게에 대항하는 상방향 힘을 제공한다. 내부 스프링 메커니즘(151B)은 사용자가 스트럿(150) 및 헤일로(134)의 전체 무게를 견딜 필요 없이 헤일로(134)의 높이를 용이하게 조정하는 것을 가능하게 한다.
도 15는 예시적인 스트럿 래치(152)의 단면도이다. 스트럿 래치(152)는 핀(155A), 스프링(155B) 및 브라켓(155C)에 결합될 수 있다. 핀(155A)은 브라켓(155C)을 통과하여 위치되고, 스프링(155B)은 핀(155A)의 둘레에 브라켓(155C)의 각 측면에 인접하여 위치할 수 있다. 스트럿 래치(152)가 해제될 때 스프링(155B)의 긴장은 최소이므로 스트럿(150)이 수직으로 조정될 수 있게 한다. 스트럿 래치(152)가 맞물릴 때, 스프링에 긴장이 존재하므로 스트럿(150)이 수직으로 조정되는 것을 불가능하게 하거나 잠근다. 고정 핀(158)은 탑재판(160)에 의해 스트럿 래치(152)에 연결될 수 있다. 고정 핀(158)은, 스트럿 래치(152)가 맞물릴 때(스트럿 베이스(151)와 같은 평면에 있음) 맞물리고, 스트럿 래치(152)가 분리될 때(스트럿 베이스(151)로부터 떨어져) 분리된다. 고정핀(158)은 스트럿 구멍들(도 11 참조)과 정렬되어 스트럿 베이스(151)에 스트럿(150)의 고정을 가능하게 한다. 고정핀(158)은 레벨 높이들에서 스트럿(150)의 맞물림을 도울 수 있다. 고무패드(159)는 탑재판에 의해 스트럿 래치(152)에 연결될 수 있다. 고무패드(159)는, 스트럿 래치(152)가 맞물릴 때(스트럿 베이스(151)와 같은 평면에 있음) 맞물리고, 스트럿 래치(152)가 분리될 때(스트럿 베이스(151)로부터 떨어져) 분리된다. 고무패드(159)는 스트럿 베이스(151)와 스트럿(150) 사이에 마찰을 생성하여 스트럿(150)이 움직이는 것을 방지할 수 있다.
도 16은 예시적인 스트럿(150)의 단면도로서, 쐐기(peg) 조정 메커니즘을 도시한다. 스트럿 베이스(151)는 스트럿(150)과 상호작용할 수 있는 하나 이상의 쐐기(156)를 포함할 수 있다. 스트럿(150)은 하나 이상의 쐐기(156)와 결합하기 위한 하나 이상의 쐐기 구멍(157)을 포함할 수 있다. 쐐기(156)와 쐐기 구멍(157)은 헤일로(134)의 높이를 조정하는 동안 사용자에게 촉지할 수 있는 피드백을 제공할 수 있다. 예를 들어, 사용자가 핸들(131)을 당기거나 밀어서 헤일로(134)의 높이를 조정하고 있는 경우, 쐐기(156)와 쐐기 구멍(157)은 스트럿(150)이 정확히 정렬된 것을 사용자에게 알리기 위해 들을 수 있는 클릭 음과 물리적인 클릭 진동을 제공할 수 있다.
도 17은 스트럿 베이스(151)의 자동-잠금 메커니즘인 제거 가능한 패널(161)을 예시한다. 도 18, 도 19 및 도 20은 예시적인 스트럿 베이스(151)의 내부 구조를 도시하며, 다양한 맞물림 단계들에서 자동-잠금 메커니즘을 도시한다. 도 18은 스트럿 베이스(151)에 완전한 삽입 전의 스트럿(150)을 도시한다. 자동-잠금 핀(164)은 스프링 메커니즘(163) 및 핸들(162)에 결합될 수 있다. 핸들(162)을 맞물면(당기면) 스프링 메커니즘(163)을 눌러서 핀(164)을 부분적으로 제거할 수 있다. 스트럿(150)은 기울어진 누름 버튼(165)을 포함할 수 있다. 기울어진 누름 버튼(165)은 스트럿(150)이 스트럿 베이스(151) 안으로 삽입되게 하여 자동-잠금 메커니즘의 맞물림 없이 스트럿(150)의 제거를 방지할 수 있다. 도 19는 스트럿 베이스 및 활성화된 자동-잠금 메커니즘에 삽입된 스트럿(150)을 도시한다. 이 단계의 맞물림 동안, 스트럿(150)은 스트럿 베이스(151)로부터 제거될 수 없다. 도 20은 핸들(162) 맞물림, 스프링 메커니즘(163) 압축, 핀(164)의 부분적 제거, 및 스트럿(150)의 제거 실행을 도시한다.
도 21은 예시적인 전방향식 로코모션 시스템, 구체적으로는 플랫폼(170), 및 하부 플랫폼(171)을 도시한다. 플랫폼(170)은 고밀도 폴리에틸렌, 저밀도 폴리에틸렌, 폴리염화비닐, 폴리프로필렌, 또는 낮은 마찰계수를 가진 임의의 적당한 재료와 같은 낮은 마찰계수를 가진 재료로 만들어질 수 있다. 동작 동안에 사용자는 가변 마찰 구두 또는 발/구두 덮개를 착용할 수 있다. 하부 플랫폼(171)은 전방향식 로코모션 시스템에 추가의 안정성을 제공할 수 있다. 도 7에서와 같이, 전방향식 로코모션 시스템은 2개의 오프셋(중심이 어긋난) 스트럿(150)을 포함할 수 있다. 하부 플랫폼(171)은 사용자가 마찰이 적은 신발을 신고 있는 동안 미끄러지거나/넘어지는 것을 방지하기 위해 거친 미끄럼-방지 고무패드(174)를 포함할 수 있다. 하부 플랫폼(171)은 전방향식 로코모션 시스템에서 동작할 때 사고를 방지하기 위해 사용자에게 신발을 제거하도록 알려주는 면책조항을 포함할 수도 있다. 플랫폼(170)과 하부 플랫폼(171)은 전방향식 로코모션 시스템의 다양한 상태를 사용자에게 알려주기 위한 발광다이오드(LED)를 포함할 수도 있다. 예를 들면, 녹색은 완전 가동상태, 작동 중 또는 센서들이 연결된 것을 나타내고, 황색은 대기 요청 또는 센서들이 연결되지 않은 상태를 나타내고, 적색은 정지, 시스템이 준비되지 않은 상태 또는 센서들이 연결되지 않은 상태를 나타낼 수 있다. 다양한 깜박이는 LED 및 그것들의 조합이 다른 상태 표시를 위해 구성될 수 있다. 전방향식 로코모션 시스템은 온/오프 버튼(175)을 포함할 수도 있다. 온/오프 버튼(175)을 누르면 PCB, LED에 전력을 공급 또는 중단할 수 있고, 하나 이상의 센서 및 컴퓨팅 시스템과 접속을 실현하거나 연결을 해제할 수 있다.
도 22는 전방향식 로코모션 시스템의 플랫폼(170) 및 하부 플랫폼(171)의 예시적인 내부 구조를 도시한다. 플랫폼(170)은 2개의 오프셋 스트럿을 포함하는 전방향식 로코모션 시스템의 안정한 사용을 가능하게 한다. 플랫폼(170)은 안정성을 실현하는 2개의 크로스바(340)와 외측 프레임(172A)을 포함할 수 있다. 플랫폼(170)은 플랫폼(170)의 각 코너에 지지판(341)를 추가로 포함할 수 있다. 일 실시예에서, 크로스바(340)와 지지판(341)은 플랫폼(170)에 용접될 수 있다. 크로스바(340)와 지지판(341)은 금속들, 금속-합금들, 예를 들면 강철 또는 전방향식 로코모션 시스템의 사용을 안정화시킬 수 있는 임의의 따른 재료로 만들어질 수 있다. 플랫폼(170)은 복수의 형상, 예를 들면 6각형, 8각형, 정사각형 또는 원형일 수 있다. 하부 플랫폼(171)은 외측 프레임(172B)과 내측 프레임(173)을 포함할 수 있다. 내측 프레임(173)은 사용자의 하중과 스트럿들의 오프셋을 지지하기 위해 무거운 재료, 예를 들면, 강철로 만들어질 수 있다.
도 23은 전방향식 로코모션 시스템의 예시적인 케이블/PCB 패널을 도시한다. 패널(176)은 외부 요소들로부터 케이블 및 PCB를 보호한다. 절개부(180A, 180B, 180C)는 PCB로부터의 케이블들이 패널의 양 측면으로부터 그리고 하부 플랫폼으로부터 나올 수 있도록 할 수 있다. 절개부(180A, 180B, 180C)는 전방향식 로코모션 시스템의 양 측면으로부터의 케이블 접속을 실현할 수 있으므로 잠재적인 배선 문제를 방지한다. 예를 들면, 느슨한 케이블이 발에 걸리거나, 트립 해저드(trip hazard), 의도하지 않은 플러그 분리, 또는 불안전한 배선 레이아웃을 방지한다. 도 24는 전방향식 로코모션 시스템의 예시적인 내부 배선/PCB 패널을 도시한다. 컴퓨터 시스템의 케이블을 삽입하여 PCB, 전원 케이블, 네트워크 케이블, 또는 임의의 다른 유형의 접속 케이블과 연결을 위한 하나 이상의 케이블 플러그(178)가 포함될 수 있다. 클립(179)은 케이블이 패널(176) 뒤에서 움직이는 것을 방지하여 케이블 관리를 도울 수 있다. 대안으로, 클립(179)은 케이블 플러그일 수 있다. 또 다른 실시예에서, 플랫폼(170)과 하부 플랫폼(171)은 케이블이 반대 측면에 용이하게 숨겨질 수 있도록 케이블 런(cable run)과 통합될 수 있다. PCB는 케이블 플러그(1789) 및 클립(179) 뒤에 위치할 수 있다. PCB는 새로운 하드웨어를 설치하거나 업그레이드를 위해 제거할 수 있다.
도 25는 예시적인 POD 시스템(400)을 도시하는 블록도이다. 일 실시예에서, POD 시스템(400)은 사용자 움직임에 관련된 데이터가 컴퓨팅 시스템(예컨대, 수집기 보드)에 전송될 수 있도록 사용자의 신체, 액세서리 또는 전방향식 로코모션 시스템(예컨대, 다리, 발, 팔, 머리, 몸통, 총, 칼, 패들, 라켓, 헤일로 또는 하네스)에 연결될 수 있다. 일 실시예에서, 센서(401)는 가속도계(401A), 자이로스코프(401B), 및 자력계(401C)를 포함할 수 있다. 일 실시예에서, 센서(401)는 하나 이상의 관성 측정 유닛(IMU)을 포함할 수 있다. 하나 이상의 센서(401)는 다축-나침반, 가속도계 및 자이로스코프를 위해 아날로그 신호를 디지털화할 수 있다. 하나 이상의 센서(401)는 멀티-컨트롤러 유닛(MCU)(402)에 연결될 수 있다. 일 실시예에서, 센서(401)와 MCU(402) 사이의 연결은 I2C 버스에 의한다. 일 실시예에서, 센서(401)와 MCU(402) 사이의 연결은 USB에 의한다. MCU(402)는 하나 이상의 IMU(401)로부터 수신된 데이터를, 방향, 위치, 지향 및 움직임을 나타내는 다축 솔루션(multi-axis solution)으로 조작한 다음, 그 데이터를 무선 송신기(404)에 의해 또 다른 컴퓨팅 시스템에 전송할 수 있다. 일 실시예에서, 무선 송신기(404)는 단파 무선 송신기(예컨대 블루투스)일 수 있다. 일 실시예에서, 2.4 GHz 무선 송신기이다. MCU(402)는 전원관리부(405)(πL에 의해), EEPROM(I2C에 의해), 디버깅용 UART(403)(TTL에 의해)에 대한 연결을 가질 수도 있다.
도 26 및 도 27은 예시적인 POD 시스템(410, 430)의 블록도이다. POD(410)는 다축 가속도계/자이로스코프(411), 다축 자기장을 측정하는 자기-임피던스 센서(412), 및 프로세서/무선 송수신기(414)에 연결된 EEPROM 메모리(413)을 포함할 수 있다. 일 실시예에서, 상기 프로세서/무선 송수신기는 분리될 수 있다. 프로세서(414)는 무선 인터페이스(415), TTL 인터페이스(416), 및 전송, 상태 및 오류의 표시를 위한 하나 이상의 LED(417)에 연결될 수 있다. 프로세서(414)는 전원관리 칩(418)에 연결될 수 있다. 전원관리 칩(418)은 USB 인터페이스(419), 하나 이상의 배터리 인터페이스(420), 및 전원관리, 전송, 상태, 및 오류를 표시하기 위한 하나 이상의 LED(417)에 연결될 수 있다. POD 시스템(410)의 다양한 구성요소들은 I2C 버스, RF, UART, GPO, USB 파워, 배터리 파워, PMIC, 또는 GPI에 의해 연결될 수 있다. 예를 들면, 가속도계/자이로스코프(411)는 I2C에 의해 프로세서(414)에 연결될 수 있고, 프로세서(414)는 RF에 의해 무선 인터페이스(415)에 연결될 수 있고, 전원관리 칩(418)은 GPI에 의해 배터리 인터페이스에 연결될 수 있다. 도 27에 도시된 POD 시스템(430)은 POD 시스템(410)의 대안적인 실시예를 나타낼 수 있다.
POD는 사용을 위해 미리-구성될 수 있으며, 예를 들면, 제1 POD는 왼발 용도로 지정될 수 있고, 제2 POD는 오른발 용도로 지정될 수 있고, 제3 POD는 몸통 용도로 지정될 수 있고, 제4 POD는 머리 용도로 지정될 수 있고, 제5 및 제6 POD는 각각 좌우 팔/손 용도로 지정될 수 있고, 제7 POD는 머리 용도로 지정될 수 있고, 제8 POD는 액세서리(예컨대, 총 또는 칼) 용도로 지정될 수 있다. 또한, 사용자 컴퓨팅 시스템의 특별한 필요에 기초하여 더 많은 POD가 지정되거나 더 적은 POD가 지정될 수 있다. 대안으로, POD는 사용 전에 설정될 수 있다. 예를 들면, 컴퓨터 시스템은 사용자의 왼발에 맞게 POD를 구성하기 위해 사용자에게 자신의 왼발을 움직이도록 요청할 수 있다. 컴퓨팅 시스템은 사용자의 오른발에 맞게 POD를 구성하기 위해 사용자에게 자신의 오른발을 움직이도록 요청할 수 있다. 컴퓨팅 시스템은 각각의 존재하는 POD를 위해 사용자에게 요청할 수 있다.
도 28은 예시적인 수집기 보드(440)의 블록도를 도시한다. 수집기 보드는 스트럿 베이스의 배선/PCB 보드 뒤에 설치될 수 있다. 수집기 보드는 PCB 보드와 결합되거나 분리될 수 있다. 수집기 보드는 하나 이상의 센서(예컨대, 하나 이상의 POD)로부터 데이터를 수신, 컴파일, 처리하고, 처리된 데이터를 전송하도록 구성될 수 있다. 일 실시예에서, 상기 처리된 데이터는 처리된 데이터의 변형을 위해 API를 실행하도록 구성된 컴퓨팅 장치(예컨대, 서버, 모바일 장치, 비디오 게임 콘솔)에 전송될 수 있다. 상기 전송은 USB 연결, 단거리 무선, 블루투스, 또는 임의의 다른 전송매체에 의할 수 있다.
도 29는 POD 통신 시스템(450)에 대한 예시적인 계층 모델을 도시한다. 계층1(455)은 하나 이상의 POD(455A)를 포함할 수 있다. 일 실시예에서, POD(455A)는 센서일 수 있다. POD(455)는 계층2(460)에 출력 값들을 전송할 수 있다. 일 실시예에서, 계층1(455)은 무선으로, 예컨대 블루투스 또는 2.4GHz 무선 전송으로 계층2(460)에 데이터를 전송할 수 있다.
계층2(460)는 POD(455A) 값 출력을 수신하기 위한 콘솔 박스를 포함할 수 있다. 일 실시예에서, 콘솔 박스는 수집기 보드일 수 있다. 계층2(460)는 POD(455A)로부터 수신된 데이터를 변형하기 위한 API(460A)를 포함할 수 있다. 계층2(460)는 다양한 라이브러리(460B), 예를 들면, 필터링 라이브러리, 처리 라이브러리, 및 API(460A)로부터 수신된 데이터의 변형을 실현케 하는 모션 라이브러리를 포함할 수 있다. 일 실시예에서, API(460A)는 수신된 POD 데이터의 변형을 실현하기 위한 라이브러리 함수들을 부를 수 있다. 계층2(460)는 송신 및 수신 구성요소(460C), 예를 들면, USB, 블루투스, 단거리 무선, 2.4GHz 무선, 와이파이 및/또는 이더넷을 추가로 포함할 수 있다.
계층3(465)은 컴퓨팅 시스템(465B), 예를 들면 PC, 태블릿, 전화, 비디오 게임 콘솔, 또는 임의의 다른 컴퓨팅 장치를 포함할 수 있다. 컴퓨팅 장치는 API(465A)와 함께 게임 또는 애플리케이션(465B)을 실행할 수 있다. 게임 또는 애플리케이션(465B)은 컴퓨터 게임, PlayStation, XBOX 게임, 가상환경을 가진 게임 또는 애플리케이션, 시뮬레이션, 또는 임의의 다른 게임 또는 애플리케이션일 수 있다. API(465A)는 계층2(460)로부터 데이터를 수신하고 수신된 데이터를 게임 또는 애플리케이션(465B)이 이해할 수 있는 형식으로 변형할 수 있다. 일단 API(465A)에 의해 변형되면, 전방향식 로코모션 시스템의 POD(455A)에 의해 추적된 사용자의 움직임은 게임 또는 애플리케이션의 움직임으로 변형될 수 있다. 또 다른 실시예에서, POD(455A)에 의해 추적된 사용자의 움직임은 전방향식 로코모션 시스템의 범위 밖일 수 있다.
도 30은 예시적인 IMU 레이아웃(470)의 회로도를 도시하며, 프로세서, 다축 가속도계/자이로스코프, 자력계, 및 USB 커넥터를 포함한다. 자력계는 자북에 대한 헤딩을 측정할 수 있다. 가속도계는 X, Y, Z 평면에서 가속도 및 속도를 측정할 수 있다. 자이로스코프는 피치(pitch), 롤(roll) 및 요(yaw)의 지향을 측정할 수 있다.
도 31은 수집기 보드 레이아웃(480)의 일 실시예의 회로도를 도시하며, 프로세서, 블루투스 송수신기, POD 무선부, POD 충전부, USB, 및 전원관리 유닛을 포함한다.
도 32는 예시적인 POD 통신시스템(490)의 블록도이다. POD 통신시스템(490)은 단거리 무선, 예컨대 블루투스에 의해 수집기 보드(493)에 연결된 가상현실 헤드셋(491)을 포함할 수 있다. POD 통신시스템은 컴퓨터 시스템(494)에 의해 USB 또는 HDMI에 의해 수집기 보드(493)에 연결된 가상현실 헤드셋(492)을 포함할 수 있다. 또 다른 실시예에서 가상현실 헤드셋(492)은 컴퓨터 시스템(494)에 먼저 연결되지 않고 수집기 보드에 연결된다. POD 통신시스템(490)은 수집기 보드(493)에 연결된 하나 이상의 POD(495)를 추가로 포함할 수 있다. 일 실시예에서, POD(495)와 수집기 보드(493) 사이의 연결은 무선, 예를 들면 블루투스 또는 2.4GHz 무선일 수 있다. 수집기 보드(493)는 데이터를 수신, 컴파일, 처리하고, 처리된 데이터를 컴퓨팅 시스템에 송신할 수 있다. 다른 실시예들에서, 수집기 보드는 하나 이상의 MCU일 수 있다. 다른 실시예들에서, POD 통신시스템(490)은 HDMI, USB, 블루투스, 단거리 무선, 와이파이, Gazell 프로토콜, 또는 임의의 다른 통신매체를 사용하여 송신 및 수신될 수 있다.
도 33은 완전 분리된 속도 및 헤딩의 예시적인 방법의 흐름도이다. 도 33에 도시된 방법(510)은 예시로서 제공되며, 상기 방법을 수행하는 다수의 방법이 있을 수 있다. 또한, 상기 예시적인 방법은 특정한 순서의 단계들을 가지고 도시되어 있지만, 당해 기술분야의 숙련된 기술자는, 도 33에 도시된 단계들이 본 개시의 기술적 이점을 달성하는 임의의 순서로 실행될 수 있다는 것과 도시된 것보다 더 적거나 더 많은 단계를 포함할 수 있음을 이해할 수 있을 것이다.
도 33에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법, 또는 서브루틴을 나타낸다. 도 33에 도시된 단계들은 적어도 전방향식 로코모션 시스템(130), POD 시스템(400), 및/또는 POD 통신시스템(490)을 포함하는 시스템에서 구현될 수 있다. 상기 예시적인 방법을 달성하기 위해 추가의 단계들 또는 더 적은 단계들이 가능하다. 도 33에 도시된 각각의 블록은 적어도 전방향식 로코모션 시스템(130), POD 시스템(400), 및/또는 POD 통신시스템(490)을 포함하는 시스템에 의해 수행될 수 있다. 대안으로, 또 다른 실시예에서, 도 33에 도시된 각각의 블록은 전방향식 로코모션 시스템(130)을 사용하지 않고 수행될 수 있다.
방법(510)은 블록(511)에서 시작할 수 있다. 블록(511)에서, 사용자의 보행 속도는 하나 이상의 POD로부터 수집기 보드에서 수신된 가속도 데이터에 의해 결정된다. 또 다른 실시예에서, 자이로 데이터(각속도)는 수집기 보드에서 수신된다. 보행 속도는 미리 정의된 간격 동안 사용자 걸음의 빈도일 수 있다. 일 실시예에서, 상기 보행 속도는 미리 정의된 간격 동안 사용자 발의 가속도를 모니터링하여 결정될 수 있다. 또 다른 실시예에서, 가속도 데이터는 수집기로부터 분리된 PCB에서 수신된다. 또 다른 실시예에서, 가속도 데이터는 보행 속도를 결정하기 위해 수집기 또는 PCB를 우회하여 컴퓨팅 장치에서 수신된다. 또 다른 실시예에서, 시간 간격 동안 사용자 발의 회전 각도 변화(각속도)가 보행 속도 대신에 결정된다. 보행 속도가 블록(511)에서 결정되면, 상기 방법은 블록(512)으로 이동할 수 있다.
블록(512)에서, 사용자의 결정된 보행 속도는 속도를 계산하기 위해 사용된다. 가속도에서 피크를 검출함으로써 속도가 계산된 후 발 충격을 나타내기 위해 고주파 잡음이 계산된다. 상기 가속도의 기간 및 피크에 의해 측정된, 각각의 발걸음에서 상대적인 에너지의 크기 및 비율(rate)은, 보행 속도를 계산하기 위해 사용된다. 일 실시예에서, 상기 속도는 평균 속도일 수 있다. 또 다른 실시예에서, 속도는 중간(median) 속도일 수 있다. 또 다른 실시예에서, 수신된 자이로 데이터(시간 간격 동안 사용자 발의 회전 각도의 변화, 예컨대 각속도)에 의해 계산될 수 있다. 속도는 각속도(블록 511에서 수신됨)의 피크(진폭)을 검출하여 계산된다. 상기 피크에 환산계수가 곱해질 수 있고, 실제 속도를 계산하기 위해 오프셋이 더해질 수 있다. 속도는 상기 시간 간격 동안 후속적인 피크(진폭)가 결정되는 경우 다시 계산될 수 있다. 블록(512)에서 속도가 계산되는 경우, 상기 방법은 블록(513)으로 이동할 수 있다.
블록(513)에서, 하나 이상의 IMU에 대해 헤딩이 계산된다. 하나 이상의 POD의 방향을 제공하기 위해 보정된 지향이 물리적인 실제 축으로 변형된다. 일 실시예에서, 종합적인 합친 헤딩을 제공하기 위해 상기 하나 이상의 POD의 지향들을 평균한다. 일 실시예에서, 하나 이상의 POD는 사용자의 머리, 몸통, 발, 다리, 팔, 액세러리, 헤일로, 또는 하네스에 위치될 수 있다. 블록(513)에서 헤딩이 결정되는 경우, 방법은 블록(514)으로 이동할 수 있다.
블록(514)에서, 헤딩 및 속도는 2차원 직교좌표 (X,Y)로 변형될 수 있다. 상기 변형된 좌표는 게임 패드 및/또는 조이스틱 값을 나타낼 수 있다. 예를 들면, 속도는 X 및 Y 값의 크기 또는 진폭일 수 있으며, 헤딩은 지구의 상대적인 자북으로부터의 각도로 변형될 수 있다. 상기 헤딩 및 속도가 블록(514)에서 좌표로 변형되는 경우, 상기 방법은 블록(515)으로 이동할 수 있다.
블록(515)에서, 상기 좌표들은, USB HID 조이스틱/게임 패드 디스크립터에 의해 정의된 것과 같이, 최소 최대 스케일 범위로 정규화된다. 카메라 뷰(view)로부터 분리된 제어에 의해, 후진 보행, 좌우 공격과 같은 추가의 움직임이 실현될 수 있다. 상기 좌표들이 정규화되는 경우 방법(510)은 종료할 수 있다.
방법(510)은 분리된 전진 움직임에 대해 사용될 수 있다. 전진 움직임은 하나 이상의 POD의 중심에 대해서 Y 방향으로의 상대적인 움직임일 수 있으며, Y 게임 패드/조이스틱 방향에서 움직임을 생성한다. 사용자 발이 공중에 있을 때의 가속도는 발의 헤딩의 방향에서 측정될 수 있다. 그 다음 전진 속도 측정치가 지구의 자북에 대한 "실제의" 좌표로 변형될 수 있다. POD 바디에 대한 POD의 후진 Y축 방향이 아닌 모든 다른 모션들은 하나 거른(alternate) 방향에서 위장된(spurious) 또는 허위의(false) 움직임을 허용하지 않기 위해 무시되며 모션 식별 프로세스를 전방 모션들에 제한한다.
방법(510)은 분리된 후진 움직임에 대해 사용될 수 있다. 후진 움직임은 하나 이상의 POD의 중심에 대해서 X 향으로의 상대적인 움직임일 수 있으며, Y 게임 패드/조이스틱 방향에서 움직임을 생성한다. 사용자 발이 공중에 있을 때의 가속도는 발의 헤딩의 반대 방향에서 측정될 수 있다. 그 다음 후진 속도 측정치가 지구의 자북에 대한 "실제의" 좌표로 변형될 수 있다. POD 바디에 대한 POD의 후진 Y축 방향이 아닌 모든 다른 모션들은 하나 거른 방향에서 위장된 또는 허위의 움직임을 허용하지 않기 위해 무시되며, 모션 식별 프로세스를 전진 모션들에 제한한다.
방법(510)은 분리된 측면 움직임에 대해 사용될 수 있다. 측면 움직임은 하나 이상의 POD의 중심에 대해서 X 향으로의 상대적인 움직임일 수 있으며, X 게임 패드/조이스틱 방향에서 움직임을 생성한다. 사용자 발이 공중에 있을 때의 가속도는 발의 헤딩의 수직 방향에서 측정될 수 있다. 그 다음 측면 속도 측정치가 지구의 자북에 대한 "실제의" 좌표로 변형될 수 있다. POD 바디에 대한 POD의 X축 방향이 아닌 모든 다른 모션들은 하나 거른 방향에서 위장된 또는 허위의 움직임을 허용하지 않기 위해 무시되며, 모션 식별 프로세스를 전진 모션들에 제한한다.
도 34는 결합된 전진, 후진, 및 좌우 측면 움직임의 예시적인 방법의 흐름도이다. 도 34에 도시된 방법(520)은 예로서 제공된 것이며, 상기 방법을 수행하는 다양한 방법들이 존재한다. 또한, 상기 예시적인 방법이 특정한 순서의 단계들로 도시되어 있지만, 당해 기술분야의 숙련자는, 도 34에 도시된 단계들이 본 발명의 기술적 이점을 달성하는 임의의 순서로 실행될 수 있고, 도시된 것보다 더 적거나 더 많은 단계를 포함할 수 있음을, 이해할 것이다.
도 34에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스들, 방법들, 또는 서브루틴을 나타낸다. 도 34에 도시된 단계들은 적어도 전방향식 로코모션 시스템(130), POD 시스템(400), 및/또는 POD 통신시스템(490)을 포함하는 시스템에서 구현될 수 있다. 상기 예시적인 방법을 달성하기 위해 추가의 단계들 또는 더 적은 단계들이 가능하다. 도 34에 도시된 각각의 블록은 적어도 전방향식 로코모션 시스템(130), POD 시스템(400), 및/또는 POD 통신시스템(490)을 포함하는 시스템에 의해 수행될 수 있다. 대안으로, 또 다른 실시예에서, 도 34에 도시된 각각의 블록은 전방향식 로코모션 시스템(130)을 사용하지 않고 수행될 수 있다.
방법(520)은 블록(521)에서 시작할 수 있다. 블록(521)에서, 사용자의 보행 속도는 하나 이상의 POD로부터 수집기 보드에서 수신된 가속도 데이터에 의해 결정된다. 또 다른 실시예에서, 자이로 데이터(각속도)는 수집기 보드에서 수신된다. 보행 속도는 미리 정의된 간격 동안 사용자 걸음의 빈도일 수 있다. 일 실시예에서, 상기 보행 속도는 미리 정의된 간격 동안 사용자 발의 가속도를 모니터링하여 결정될 수 있다. 또 다른 실시예에서, 가속도 데이터는 수집기로부터 분리된 PCB에서 수신된다. 또 다른 실시예에서, 가속도 데이터는 보행 속도를 결정하기 위해 수집기 또는 PCB를 우회하여 컴퓨팅 장치에서 수신된다. 또 다른 실시예에서, 시간 간격 동안 사용자 발의 회전 각도 변화(각속도)가 보행 속도 대신에 결정된다. 보행 속도가 블록(521)에서 결정되는 경우, 상기 방법은 블록(522)으로 이동할 수 있다.
블록(522)에서, 사용자의 결정된 보행 속도는 속도를 계산하기 위해 사용된다. 가속도에서 피크를 검출함으로써 속도가 계산된 후 발 충격을 나타내기 위해 고주파 잡음이 계산된다. 상기 가속도의 기간 및 피크에 의해 측정된, 각각의 발걸음에서 상대적인 에너지의 크기 및 비율(rate)은, 보행 속도를 계산하기 위해 사용된다. 일 실시예에서, 상기 속도는 평균 속도일 수 있다. 또 다른 실시예에서, 속도는 중간(median) 속도일 수 있다. 또 다른 실시예에서, 수신된 자이로 데이터(시간 간격 동안 사용자 발의 회전 각도의 변화, 예컨대 각속도)에 의해 계산될 수 있다. 속도는 각속도(블록 511에서 수신됨)의 피크(진폭)을 검출하여 계산된다. 상기 피크에 환산계수가 곱해질 수 있고, 실제 속도를 계산하기 위해 오프셋이 더해질 수 있다. 속도는 상기 시간 간격 동안 후속적인 피크(진폭)가 결정되는 경우 다시 계산될 수 있다. 블록(522)에서 속도가 계산되는 경우, 상기 방법은 블록(523)으로 이동할 수 있다.
블록(523)에서, 하나 이상의 POD에 대해 헤딩이 계산된다. 모션의 의도된 방향을 결정하기 위해 상기 하나 이상의 POD의 지향이 상기 하나 이상의 POD의 상대적인 바디 축으로 변형된다. 일 실시예에서, 종합적인 합친 헤딩을 제공하기 위해 상기 하나 이상의 POD의 지향들을 평균한다. 일 실시예에서, 하나 이상의 POD는 사용자의 머리, 몸통, 발, 다리, 팔, 액세러리, 헤일로, 또는 하네스에 위치될 수 있다. 이 실시예에서, 실제의 좌표는 계산되지 않고 헤딩을 제공하기 위해 사용되지 않는다. 그 다음에 헤딩을 제공하기 위해 상기 하나 이상의 POD의 상대적인 자체-지향들을 평균한다. 블록(523)에서 헤딩이 계산되는 경우, 방법은 블록(524)으로 이동할 수 있다.
블록(524)에서, 헤딩 및 속도는 2차원 직교좌표 (X축,Y축)로 변형될 수 있다. 상기 변형된 좌표는 게임 패드 및 조이스틱 값을 나타낼 수 있다. 예를 들면, 속도는 X 및 Y 값의 크기일 수 있으며, 헤딩(지향)은 전방(POD들의 Y-축에 대해서)으로부터 90도 각도 증분으로 변형될 수 있다. 상기 헤딩 및 속도가 블록(524)에서 좌표로 변형되는 경우, 상기 방법은 블록(525)으로 이동할 수 있다.
블록(525)에서, 상기 좌표들은, USB HID 조이스틱/게임 패드 디스크립터에 의해 정의된 것과 같이, 최소 최대 스케일 범위로 정규화된다. 상기 좌표들이 정규화되는 경우 방법(520)은 종료할 수 있다.
방법(520)은 전진 및 후진 결합된 움직임에 대해 사용될 수 있다. 전진 및 후진 움직임은 POD들의 중심에 대한 Y 방향에서의 상대적인 움직임일 수 있으며, Y 게임 패드/조이스틱 방향에서 움직임을 생성한다. 사용자 발이 공중에 있을 때의 가속도는 전진 움직임에 대해 카메라 위치의 방향에서 그리고 후진 움직임에 대해 카메라 위치의 반대 방향에서 측정될 수 있다. POD들에 대한 모든 다른 축들은, 하나 거른 방향에서 위장된 또는 허위의 움직임을 허용하지 않기 위해 무시될 수 있으며, 따라서 모션 식별 프로세스를 전진 및 후진 모션들에 제한한다.
방법(520)은 측면 결합된 움직임 또는 공격 결합된 움직임에 대해 사용될 수 있다. 측면 움직임은 POD들의 중심에 대한 X 향에서의 상대적인 움직임일 수 있으며, X 게임 패드/조이스틱 방향에서의 움직임을 생성한다. 사용자 발이 공중에 있을 때의 가속도는 카메라 위치의 수직 방향에서 측정될 수 있다. POD들에 대한 모든 다른 축들은, 하나 거른 방향에서 위장된 또는 허위의 움직임을 허용하지 않기 위해 무시되며, 따라서 모션 식별 프로세스를 측면 모션들에 제한한다.
전방향식 로코모션 시스템의 사용자 움직임의 결정에서, 전방향식 로코모션 플랫폼에서 개시된 보행을 검출하기 위한 시간을 단축하는 것이 바람직하다. 검출지연은 플랫폼상의 사용자의 움직임과 가상변형 내 사용자 아바타 사이의 지연으로 느껴질 수 있다. 최초 걸음에 대한 개선된 걸음 검출 성능을 위한 추가의 층이 일 실시예에서 지정되며, 이 실시예에서, (POD 좌표들에 대해) 전방 Y-방향에서 최소 레벨(문턱) 이상의 가속도를 트리거하면(triggering off), (지구의 실제의 북에 대해서) 게임패드/조이스틱 좌표들에 사용자의 움직임을 생성한다. 이러한 트리거는 모션 라이브러리가 가속도 및 속도 세기의 계산을 아직 완료하지 않은 시간 동안 준비될 수 있다. 상기 가속도 에너지의 상대적인 강도는, "제1 걸음" 트리거 동작으로부터, 전체 모션 라이브러리, 예컨대, 전진 보행, 후진 보행, 달리기, 움츠리기, 공격, 기어가기, 점프 또는 전방향식 로코모션 시스템상에서 검출 가능한 임의의 추가 모션 제스처로의 변형이 용이하게 하기 위해, 사용될 수 있다. 상기 트리거는 측정된 가속도계 데이터에서 잡음에 의해 생성된 사용자 모션의 지터(jitteriness)의 출현을 경감하기 위한 속도 독립적인 히스테리시스를 갖는다.
움직임의 정지와 그 검출 사이에 지연을 감소시키는 것은 일 실시예서 상술되어 있는데, 그 실시예에서는 모든 상대적인 방향에서(POD 좌표들에 대해서) 최대 레벨 아래의 가속을 트리거하면 사용자 움직임을 강제로 정지한다. 이 트리거는 모션 라이브러리들이 의도된 사용자 모션들을 식별하는 시간 동안 준비된다. 상기 트리거는 측정된 가속도계 데이터에서 잡음에 의해 생성된 사용자 모션의 지터의 출현을 경감하기 위한 속도 독립적인 히스테리시스를 갖는다.
도 35는 사용자 움직임의 급정지를 검출하는 예시적인 방법의 흐름도이다. 방법(530)의 블록들은 또한 방법(510, 520)에서 사용하기 위한 속도의 계산에서 사용될 수도 있다. 도 35에 도시된 방법(530)은 예로서 제공된 것이며, 이 방법을 수행하기 위한 다수의 방법이 존재한다. 또한, 상기 예시의 방법은 특정한 순서의 단계들을 가지고 도시되어 있지만, 당해 기술분야의 숙련된 기술자는, 도 35에 도시된 단계들이 본 개시의 기술적 이점을 달성하는 임의의 순서로 실행될 수 있다는 것과, 도시된 것보다 더 적거나 더 많은 단계를 포함할 수 있음을 이해할 수 있을 것이다.
도 35에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법, 또는 서브루틴을 나타낸다. 도 35에 도시된 단계들은 적어도 전방향식 로코모션 시스템(130), POD 시스템(400), 및 POD 통신시스템(490)을 포함하는 시스템에서 구현될 수 있다. 상기 예시적인 방법을 달성하기 위해 추가의 단계들 또는 더 적은 단계들이 가능하다. 도 35에 도시된 각각의 블록은 적어도 전방향식 로코모션 시스템(130), POD 시스템(400), 및 POD 통신시스템(490)을 포함하는 시스템에 의해 수행될 수 있다. 대안으로, 또 다른 실시예에서, 도 35에 도시된 각각의 블록은 전방향식 로코모션 시스템(130)을 사용하지 않고 수행될 수 있다.
방법(530)은 블록(531)에서 시작할 수 있다. 블록(531)에서, 상기 방법은 하나 이상의 POD로부터 원시 자이로 데이터를 수신할 수 있다. 일 실시예에서, 상기 원시 자이로 데이터는 각속도일 수 있다. 상기 각속도는 사용자가 앞으로 또는 뒤로 움직이고 있는지를, 예를 들면, 앞으로/뒤로 걷거나 앞으로/뒤로 달리는지를, 사용자 발의 회전의 변화에 의해 판정하기 위해 사용될 수 있다. 일 실시예에서 만일 각속도가 0이 아니면 사용자는 움직이고 있을 수 있다. 각속도의 피크(진폭)는 사용자의 속도이다. 또 다른 실시예에서, 각속도는 미리 정의된 간격 동안 하나 이상의 POD 데이터를 수신하여 결정될 수 있다. 또 다른 실시예에서, 상기 수신된 데이터는 속도 계산을 위한 가속 데이터일 수 있다. 만일 블록(531)에서 사용자가 움직이고 있는 것으로 판정되면, 상기 방법은 블록(532)으로 이동할 수 있다.
블록(532)에서, 상기 방법은 필터를 적용함으로써 상기 원시 데이터를 정규화하거나 평활할 수 있다. 일 실시예에서, 상기 원시 자이로 데이터는 고속 정지 필터를 통해 통과될 수 있다. 상기 고속 정지 필터와 관련하여, 상기 수신된 원시 자이로 데이터는 지수 이동 평균(EMA) 필터를 통해 통과된 다음, 평활된 자이로 데이터 그래프를 생성하는 평활 델타(smooth delta)를 결정하기 위해, 상기 평활된(필터링된) 값들이 이전의 평활된 값들에 비교될 수 있다. 또 다른 실시예에서, 상기 원시 자이로 데이터는 아날로그 고속 필터를 통해 통과될 수 있다. 각도 고속 필터와 관련하여, 양발 POD에 대한 원시 자이로 x축 값들은 각각의 자이로의 절대값을 계산하기 위해 EMA 필터를 통해 통과될 수 있다. 필터링된 값들은 서로 합산되고, 조정되며(scaling), 그 다음 오프셋이 가산될 수 있다. 일 실시예에서, 상기 오프셋 값은 그 다음에 EMA 필터를 통해 통과될 수 있다. EMA 필터는 새로운 EMA 필터이거나 이전에 언급한 EMA 필터일 수 있다. 그 결과는 속도(예컨대, 보행 속도)에 대략 등가인 평활 출력이다. 도 36에는 예시적인 평활된 자이로 데이터 그래프가 도시되어 있다. 필터가 적용된 경우 상기 방법은 블록(533)으로 이동할 수 있다.
블록(533)에서, 상기 방법은 블록(532)에서의 평활된 자이로 데이터가 미리 정의된 문턱 이내로 떨어진 것을 판정할 수 있다. 일 실시예에서, 상기 평활된 자이로 데이터가 모션 방향에서의 각속도(초당 회전속도)일 수 있다. 예를 들면, 상기 각속도는 상기 모션 방향에 수직인 자이로 축으로부터 결정될 수 있다. 상기 미리 정의된 문턱은 사용자가 언제 느려지고 있는지 판정하기 위해 사용될 수 있다. 일 실시예에서, 미리 정해진 문턱은 초당 0.33도일 수 있다. 각속도는 미리 결정된 간격으로, 예컨대, 1ms, 5ms, 10ms, 15ms, 및 20ms에 모니터링 될 수 있다. 도 36에서와 같이, POD(501, 502)의 각속도가 미리 정의된 문턱 이내로 떨어질 때, 사용자의 움직임은 느려지는 중일 수 있다. 도 36에 도시된 각각의 피크(진폭)는 그 시점에서 사용자의 속도일 수 있다. 사용자의 속도는 후속 피크들 동안에 변할 수 있다. 일 실시예에서, 허위의 정지 검출을 방지하기 위해, 상기 미리 정의된 문턱은 사용자 움직임의 속도를 기초로 동적으로 결정될 수 있다. 예를 들면, 속도가 느린 속도로 계산되는 경우(걷거나 기어감), 미리 정의된 문턱은 상기 트리거 포인트를 더 작게 만드는 더 엄격한 윈도우일 수 있다. 상기 전진 속도가 높은 속도(달리기)로 계산되는 경우, 상기 미리 정의된 문턱은 상기 트리거 포인트를 더 크게 만드는 더 큰 윈도우일 수 있다. 또 다른 실시예에서 허위의 정지를 방지하기 위해, 각속도가 미리 정의된 문턱 이내로 떨어질 때 쇠락(decay)이 더해질 수 있다. 더해진 쇠락은 어떤 떨리는 효과(stuttering effect)를 완화시킬 수 있다. 상기 쇠락은 점차 0을 향해 전이하는 수학적으로 계산된 지수적 쇠락이다. 상기 평활된 자이로 데이터가 미리 정의된 문턱 아래로 떨어졌을 때, 상기 방법은 블록(534)으로 이동할 수 있다.
블록(534)에서, 상기 방법은 상기 평활된 자이로 데이터의 기울기가 언제 미리 정의된 간격 동안 0에 접근했는지 판정할 수 있다(예를 들면, 1ms, 5ms, 10ms, 15ms, 20ms의 미리 정의된 간격 동안). 각속도의 기울기가 계속해서 0에 접근하는 경우, 정지가 검출될 수 있다. 일 실시예에서, 기울기가 0.01도/sec2 미만인 경우, 정지가 검출될 수 있다. 또는, 만일 이 동일한 간격 동안 기울기가 계속해서 0에 접근하지 않으면, 정지는 검출될 수 없다. 일 실시예에서, 기울기 증분(delta)(미리 정의된 간격 동안)은 피크를 찾기 위해 분석될 수 있다. 속도는 다음 피크가 발견될 때까지 각각의 피크의 최대로 설정될 수 있으며, 상기 다음 피크가 그 다음에 속도로 설정될 수 있다. 또 다른 실시예에서, 각속도 기울기가 최소 미리 정의된 윈도우 이내인 경우, 카운터가 증가된다. 만일 상기 카운터가 7에 도달하면, 속도는 0으로 설정된다. 상기 미리 정의된 간격이 종료한 경우, 상기 방법은, 상기 기울기가 미리 정의된 간격 동안 0에 접근했으면 블록(535)으로 이동하거나, 기울기가 미리 정의된 간격 동안 0에 접근하지 않았으면 블록(531)으로 복귀할 수 있다.
블록(535)에서, 상기 방법은 급정지를 검출할 수 있다. 예를 들어, 상기 평활 자이로 데이터가 문턱 이내인 경우 그리고 상기 평활 자이로 데이터의 기울기가 미리 정의된 간격 동안 0에 접근한 경우, 급정지가 검출된다. 급정지가 검출되는 경우, 방법(530)은 종료될 수 있다.
도 37은 플랫폼 센서 레이아웃(600)을 도시한다. 플랫폼(170)은 하나 이상의 발의 움직임을 추적하기 위해 하나 이상의 센서(615)가 구비될 수 있다. 일 실시예에서, 센서(615)는 근접 센서일 수 있다(예를 들면, 사용자 발의 각각의 신체 커패시턴스를 입력으로 사용하는 용량성 센서). 상기 용량성 센서는 하나 이상의 발이 센서에 대해서 움직일 때 작동될 수 있다. 또 다른 실시예에서, 센서(615)는 자기 센서, 광학 센서, 나선형 센서(spiral sensor), IMU 센서, PODs, 또는 고정밀도 판독이 가능한 임의의 센서일 수 있다. 플랫폼(170)은 도 3 및 도 4에 도시된 것과 같이 사용자를 지지하기 위한 하네스(미도시) 및 헤일로(미도시)를 포함할 수 있다. 하네스는 사용자의 지향, 예컨대 사용자 몸통의 지향을 판정하기 위한 하나 이상의 센서를 포함할 수 있다. 헤일로는 사용자의 지향, 예컨대 사용자 몸통의 지향을 판정하기 위한 하나 이상의 센서를 포함할 수 있다. 또 다른 실시예에서, 사용자의 신발은 예를 들면, 왼발과 오른발, 발의 앞단과 뒷단, 또는 발가락과 뒷꿈치 사이을 식별하기 위해, 하나 이상의 센서를 포함할 수 있다.
플랫폼(170)은 2개 이상의 동심원으로 분할될 수 있다. 예를 들면, 도 37에 도시된 것과 같이, 플랫폼(170)은 4개의 동심원(609, 610, 611, 612)으로 분할될 수 있다. 센서(615)는 플랫폼(170) 위의 동심원(609, 610, 611, 612) 내에 분포될 수 있다. 또 다른 실시예에서, 플랫폼(170)은 2개 이상의 규치적인 다각형으로 분할될 수 있다. 또 다른 실시예에서, 플랫폼(170)은 중심 구역과 사다리꼴 구역들로 분할될 수 있다. 또 다른 실시예에서, 플랫폼(170)은 사각형 대칭 XY 그리드로 분할될 수 있다. 플랫폼(170)은 2개 이상의 슬라이스로 더 분할될 수 있다. 예를 들면, 도 37에 도시된 것과 같이, 플랫폼(170)은 8개의 슬라이스(601, 602, 603, 604, 605, 606, 607, 608)로 분할될 수 있다. 각각의 동심원과 각각의 슬라이스의 단면 내에 하나 이상의 센서들(615)이 위치될 수 있다. 예를 들면, 센서(615A)는 가장 안쪽 동심원(609)과 슬라이스(601)의 단면 내에 위치될 수 있다. 센서(615B)는 동심원(611)과 슬라이스(601)의 단면 내에 위치될 수 있다. 또 다른 실시예에서, 가장 안쪽 동심원(609)과 슬라이스(601)는 2개 이상의 센서를 포함할 수 있다. 또 다른 실시예에서, 동심원과 슬라이스의 각각의 단면은 2개 이상의 센서를 포함할 수 있다.
센서들(615)은 같은 크기이거나 다른 크기일 수 있다. 예를 들면, 센서(615)는 플랫폼(170)의 중심 근처에 위치될 때는 더 작은 크기를 갖고 센서(615)가 플랫폼(170)의 중심으로부터 더 멀리 위치될 수록 점점 더 커질 수 있다. 또 다른 실시예에서, 센서들은 같은 크기일 수 있다. 예를 들면, 지름이 1.5, 2.5, 3.5, 4.5, 또는 5.5 인치이거나 임의의 다른 크기일 수 있다.
도 38은 전방향식 로코모션 시스템과 통신하는 2개의 슬라이스의 예를 도시한다. 센서들(615)은 하나 이상의 인쇄회로기판(PCB)(620)에 연결될 수 있다. 예를 들면, 각각의 플랫폼 슬라이스에 위치된 센서들(615)은 각각의 슬라이스에 위치된 PCB(620)에 전자적으로 연결될 수 있다. 또 다른 실시예에서, 모든 슬라이스의 센서들은 통합 PCB에 연결될 수 있다. 센서들(615)은 동축 케이블에 의해 PCB(620)에 전자적으로 결합될 수 있다. 또 다른 실시예에서, 센서들(615)은 단거리 무선 통신(예컨대, 블루투스)에 의해 PCB(620)에 전자적으로 연결될 수 있다. 각각의 슬라이스 내의 PCB는 인접한 슬라이스들의 PCB에, 예를 들면 데이지 체인(daisy chain) 또는 링 구조로, 디지털 통신 링크에 의해 전자적으로 결합될 수 있다. 슬라이스(610) 내에 위치된 PCB(620)는 슬라이스(602) 내에 위치된 PCB(620)에 전자적으로 결합될 수 있으며, 후자는 슬라이스(603) 내에 위치된 PCB(620)에 전자적으로 결합될 수 있다. 일 실시예에서, 슬라이스(601)는 USB(Universal Serial Bus) 기능(625)을 가진 MCU(Micro-Controller Unit)를 포함할 수 있다. 또 다른 실시예에서, 슬라이스(601)는 USB 기능을 가진 CPU(Central Proceswsing Unit)를 포함할 수 있다. MCU(625)는 연결(621)에 의해 슬라이스(601, 602) 내의 PCB(620, 620)에 전력을 공급할 수 있다. 슬라이스(601) 내 PCB(620)는 연결(624)에 의해 슬라이스(603) 내 PCB(620)에 전력을 공급할 수 있으며, 연결(624)은 최종 PCB에 전력이 공급될 때까지 인접한 슬라이스 내 PCB에 데이지 체인 구성으로 전력을 공급할 수 있다. MCU(625)는 연결(622)에 의해 슬라이스(602) 내 PCB(620)에 시리얼 버스, 예를 들면, I2C(Inter-integrated Circuit) 버스, UART(Universal Asynchronous Receiver/Transmitter), SPI(Serial Peripheral Interface) 버스, LIN(Local Interconnect Network) 버스, CAN(Controller Area Network) 버스, 또는 임의의 다른 유형의 시리얼 버스를 제공할 수 있다. 또 다른 실시예에서, 시리얼 버스 통신은 MCU에 통합되거나 독립적인, 각각의 슬라이스에 위치된 로컬 무선 통신장치를 통해 달성될 수 있다. 슬라이스(602) 내의 PCB(620)는 슬라이스(603) 내의 PCB(620)에 시리얼 버스를 연결(623)에 의해 제공할 수 있으며, 이것은 최종 PCB에 제공될 때까지 데이지 체인 구성으로 인접한 슬라이스 내의 PCB에 제공할 수 있다. 또 다른 실시예에서, 슬라이스(601~608) 내 PCB(620)는 예를 들면 스타(star) 구성으로 통합 PCB에 전자적으로 결합될 수 있다. 또 다른 실시예에서, 상기 전자적 결합은 단거리 무선 통신일 수 있다. MCU(625)는 컴퓨터 시스템(635)(예를 들면, 서버, 비디오 게임 콘솔, 모바일 장치, 또는 상당하는 컴퓨터 시스템)과 데이터를 송수신할 수 있다. 또 다른 실시예에서, MCU(625)는, 전자적으로 결합된 또는 무선으로 결합된 버스에 의해, 슬라이스(601~608) 내 PCB(620)를 계속해서 폴링함으로써, 센서 동작을 모니터링할 수 있다. 또 다른 실시예에서, 슬라이스(601~608) 내 PCB(620)는, 하드웨어 인터럽트(예를 들면, 긴급한 주의를 필요로하는 사건을 표시하는 전자 경보 신호)에 의해, MCU(625)에 센서 동작을 경고할 수 있다. 슬라이스(601)는 컴퓨터 시스템(635)과 관련하여 디버그 키트(Debug Kit)(630)를 포함할 수도 있다.
슬라이스(602)는 하나 이상의 센서(615)와 PCB(620)를 포함할 수 있다. 슬라이스(603~608)는 슬라이스(602)와 실질적으로 유사할 수 있다. 슬라이스(602)는 슬라이스(601, 603)와 데이지 체인으로 연결될 수 있다. 슬라이스(602)는 슬라이스(601)로부터 전력 및 시리얼 버스를 수신할 수 있다. 슬라이스(602)는 슬라이스(603)에 전력 및 시리얼 버스를 송신할 수 있다. 이 과정은 슬라이스(608)가 슬라이스(607)로부터 전력과 시리얼 버스를 수신할 때까지 반복될 수 있다. 이 과정은 플랫폼(170) 내의 슬라이스의 개수에 따라 다소의 슬라이스들에 대해서 반복될 수 있다. 슬라이스(602~608)는 여분의 MCU(625)와 프로그램 및 디버그 키트(630)를 포함할 수 있다.
도 39 및 도 40은 사용자의 전진 움직임을 감지하는 예시적인 방법(700, 750)을 각각 도시하는 흐름도이다. 사용자의 전진 움직임은 가변적이다. 방법(700, 750)은 예시적인 것이며, 상기 방법을 수행하는 다양한 방식이 존재한다. 또한, 상기 예시적인 방법은 특정한 순서의 단계들을 가지고 도시되어 있지만, 당해 기술분야의 숙련된 기술자는, 도 39 및 도 40에 도시된 단계들이 본 개시의 기술적 이점을 달성하는 임의의 순서로 실행될 수 있다는 것과, 도시된 것보다 더 적거나 많은 단계들을 포함할 수 있음을 이해할 수 있을 것이다.
도 39 및 도 40에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법, 또는 서브루틴을 나타낸다. 도 39 및 도 44에 도시된 단계들은 적어도 플랫폼(170)을 포함하는 시스템에서 구현될 수 있다. 도 39 및 도 40에 도시된 각각의 블록은 적어도 플랫폼(170)에 의해 수행될 수 있다. 도 39 및 도 40에 설명된 링(Ring)은 플랫폼(17) 내 센서 레이아웃에 대한 3개의 동심원의 예시적인 표현이다. 지정된 센서 레이아웃에 따라서 다소의 링들이 존재할 수 있으므로, 방법(700, 750)은 플랫폼(170) 내 링의 개수와 일치하는 다소의 가지들을 포함할 수 있다. 또 다른 실시예에서, 센서들은 사용자 또는 액세서리에 위치할 수 있다.
방법(700)은 블록(701)에서 시작할 수 있다. 블록(701)에서, 하나 이상의 센서는, 센서가 문턱보다 높은 값을 가질 때, 오프에서 온으로 그리고 온에서 오프로 변할 수 있다. 일 실시예에서, 상기 값은 커패시턴스이거나 광학 값일 수 있다. 상기 문턱은 센서 커패시턴스에 대해 바이패스 필터로서 기능을 할 수 있다. 각각의 센서는 독립적인 문턱 값을 가질 수 있다. 상기 문턱 값은 조정 가능하다. 문턱 값들은, 다수의 변수들, 예를 들면, 플랫폼(170) 내 센서들의 위치, 플랫폼(170) 내 센서들의 개수, 플랫폼(170) 내 센서들의 크기, 및 센서를 활성화 및 비활성화시키는 작동 구성요소(예를 들어 사용자의 발)의 크기에 기초하여, 조정될 수 있다. 일 실시예에서, 상기 문턱 값은 센서의 온 또는 오프를 판정하여 약 22도의 방향 벡터를 제공할 수 있다. 또 다른 실시예에서, 문턱 값은 바이패스 필터이며, 이 경우 문턱보다 높은 커패시턴스만이 약 2 내지 3도의 속도 벡터 및 방향 벡터를 계산하는데 사용된다.
블록 702에서, 센서 값 또는 데이터가 저장될 수 있다. 상기 센서 값은 모든 센서 데이터의 특정 시점(point-in-time)의 스캔 값일 수 있다. 센서 데이터는 커패시턴스 값, 동작 상태(온 또는 오프), 역사적 시간 값(예를 들면, 지난 ON 이벤트의 시간기록(time stamp), 지난 OFF 이벤트의 시간기록)을 포함할 수 있지만, 이에 한정되지 않는다. 상기 저장된 센서 값들은 사용자 발의 각각에 의한 움직임을 계산하기 위해 컴퓨터 시스템(635)에 의해 사용될 수 있다. 또한, 상기 저장된 값들은 사용자의 행위(예를 들면 달리기, 보행, 후진 보행, 점프, 전진 점프, 공격, 및 움츠리기)를 판정하는 것을 돕기 위해 사용자의 이전 움직임을 역사적으로 계산하기 위해 사용될 수 있다.
블록(711, 712)에서, 외측 링에 위치된 하나 이상의 센서는 오프에서 온으로 또는 온에서 오프로 변할 수 있다. 외측 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써(예를 들면, 사용자의 한발 또는 양발이 외측 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 외측 링의 센서는 문턱 값 미만의 센서 값을 판독함으로써(예를 들면, 사용자의 한발 또는 양발이 외측 링에 위치된 센서로부터 멀리 이동함) "오프" 위치로 비활성화될 수 있다. 블록(713)에서, 방법(700)은 "W"또는 전진하는 게임 내 움직임를 생성하고 방법(700)은 종료할 수 있다.
블록(721, 722)에서, 중간 링의 하나 이상의 센서는 오프에서 온으로 또는 온에서 오프로 변할 수 있다. 중간 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써(예를 들면, 사용자의 한발 또는 양발이 중간 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 중간 링의 센서는 문턱 값 미만의 센서 값을 판독함으로써(예를 들면, 사용자의 한발 또는 양발이 중간 링에 위치된 센서로부터 멀리 이동함) "오프" 위치로 비활성화될 수 있다.
블록(723)에서, 컴퓨터 시스템은 플랫폼(170)의 하나 이상의 인접한 내측 링에 위치된 모든 센서들의 특정 시점의 센서 스캔을 체크할 수 있다. 블록(724)에서, 만일 중간 링의 센서와 같은 섹션의 하나 이상의 인접한 내측 링에서, 하나 이상의 센서가 "온" 작동되면, 방법(700)은 "W" 또는 전진하는 게임 내 움직임을 생성하고 방법(700)은 종료될 수 있다.
블록(731, 732)에서, 내측 링의 하나 이상의 센서는 오프에서 온으로 또는 온에서 오프로 변할 수 있다. 내측 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써(예를 들면, 사용자의 한발 또는 양발이 내측 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 내측 링의 센서는 문턱 값 미만의 센서 값을 판독함으로써(예를 들면, 사용자의 한발 또는 양발이 내측 링에 위치된 센서로부터 멀리 이동함) "오프" 위치로 비활성화될 수 있다.
블록(733)에서, 컴퓨터 시스템은 플랫폼(170)의 하나 이상의 인접한 중간 링에 위치된 모든 센서들의 특정 시점의 센서 스캔을 체크할 수 있다. 블록(734)에서, 만일 내측 링의 센서와 같은 섹션의 하나 이상의 인접한 중간 링에서 하나 이상의 센서가 "온" 작동되면, 방법(700)은 "W" 또는 전진하는 게임 내 움직임을 생성하고 방법(700)은 종료될 수 있다.
방법(750)은 블록(751)에서 시작할 수 있다. 블록(751)에서, 하나 이상의 센서는 센서가 문턱보다 큰 값을 갖는 경우 오프에서 온으로 변할 수 있다. 일 실시예에서, 상기 값은 커패시턴스 또는 광학 값일 수 있다. 각각의 센서는 독립적인 문턱 값을 가진다. 상기 문턱 값은 조정 가능하다. 문턱 값들은, 다수의 변수들, 예를 들면, 플랫폼(170) 내 센서들의 위치, 플랫폼(170) 내 센서들의 개수, 플랫폼(170) 내 센서들의 크기, 및 센서를 활성화 및 비활성화시키는 작동 구성요소(예를 들어 사용자의 발)의 크기에 기초하여, 조정될 수 있다. 일 실시예에서, 상기 문턱 값은 센서의 온 또는 오프를 판정하여 약 22도의 방향 벡터를 제공할 수 있다. 또 다른 실시예에서, 문턱 값은 바이패스 필터이며, 이 경우 문턱보다 높은 커패시턴스만이 약 2 내지 3도의 속도 벡터 및 방향 벡터를 계산하는데 사용된다.
블록(761)에서, 외측 링의 하나 이상의 센서는 오프에서 온으로 변할 수 있다. 외측 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써(예를 들면, 사용자의 한발 또는 양발이 외측 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 블록(762)에서, 방법(750)은 "W" 또는 전진하는 게임 내 움직임을 생성하고 방법(700)은 종료될 수 있다.
블록(771)에서, 중간 링의 하나 이상의 센서는 오프에서 온으로 변할 수 있다. 중간 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써(예를 들면, 사용자의 한발 또는 양발이 중간 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 블록(772)에서, 방법(750)은 센서 데이터를 저장할 수 있다. 상기 센서 값은 하나 이상의 센서 데이터의 특정 시점의 스캔 값일 수 있다. 센서 데이터는 커패시턴스 값, 동작 상태(온 또는 오프), 역사적 시간 값(예를 들면, 지난 ON 이벤트의 시간기록, 지난 OFF 이벤트의 시간기록)을 포함할 수 있지만, 이에 한정되지 않는다. 상기 저장된 센서 값들은 사용자 발의 각각에 의한 움직임을 계산하기 위해 컴퓨터 시스템(735)에 의해 사용될 수 있다. 또한, 상기 저장된 값들은 사용자의 행위(예를 들면 달리기, 보행, 후진 보행, 점프, 전진 점프, 공격, 및 움츠리기)를 판정하는 것을 돕기 위해 사용자의 이전 움직임을 역사적으로 계산하기 위해 사용될 수 있다.
블록(781)에서, 내측 링의 하나 이상의 센서는 오프에서 온으로 변할 수 있다. 내측 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써(예를 들면, 사용자의 한발 또는 양발이 내측 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 블록(782)에서, 컴퓨터 시스템은 플랫폼(170)의 하나 이상의 인접한 중간 링에 위치된 모든 센서들의 특정 시점의 센서 스캔을 체크할 수 있다. 블록(783)에서, 만일 내측 링의 센서와 같은 섹션의 하나 이상의 인접한 중간 링에서 하나 이상의 센서가 "온" 작동되면, 방법(750)은 "W" 또는 전진하는 게임 내 움직임을 생성하고 방법(750)은 종료될 수 있다.
도 41 및 도 42는 사용자 걸음의 방향 및 속도를 나타내는 속도 벡터를 생성하는 예시적인 방법(800, 850)을 각각 도시하는 흐름도이다. 도 41 및 도 42의 방법(800, 850)은 예시로서 제공되며, 상기 방법을 수행하는 다양한 방식이 존재한다. 또한, 상기 예시의 방법은 특정한 순서의 단계들을 가지고 도시되어 있지만, 당해 기술분야의 숙련된 기술자는, 도 41 및 도 42에 도시된 단계들이 본 개시의 기술적 이점을 달성하는 임의의 순서로 실행될 수 있다는 것과, 도시된 것보다 더 적거나 더 많은 단계를 포함할 수 있음을 이해할 수 있을 것이다.
도 41 및 도 42에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법, 또는 서브루틴을 나타낸다. 도 41 및 도 42에 도시된 단계들은 적어도 플랫폼(170)을 포함하는 시스템에서 구현될 수 있다. 도 41 및 도 42에 도시된 각각의 블록은 적어도 플랫폼(170)에 의해 수행될 수 있다. 도 41 및 도 42에 설명된 링들은 플랫폼(17) 내 센서 레이아웃에 대한 3개의 동심원의 예시적인 표현이다. 지정된 센서 레이아웃에 따라서 다소의 링들이 존재할 수 있으므로, 방법(800, 850)은 플랫폼(170) 내 링의 개수와 일치하는 다소의 가지들을 포함할 수 있다. 또 다른 실시예에서, 센서들은 사용자 또는 액세서리에 위치할 수 있다.
방법(800)은 블록(802)에서 시작할 수 있다. 블록(802)에서, 하나 이상의 센서 변화가 검출될 수 있으며, 예를 들면, 센서가 문턱 값보다 높은 값을 가질 때, 센서는 오프에서 온으로 그리고 온에서 오프로 변할 수 있다. 일 실시예에서, 상기 값은 커패시턴스이거나 광학 값일 수 있다. 상기 문턱 값은 센서 커패시턴스에 대해 바이패스 필터로서 기능을 할 수도 있다. 각각의 센서는 독립적인 문턱 값을 가질 수 있다. 상기 문턱 값은 조정 가능하다. 문턱 값들은, 다수의 변수들, 예를 들면, 플랫폼(170) 내 센서들의 위치, 플랫폼(170) 내 센서들의 개수, 플랫폼(170) 내 센서들의 크기, 및 센서를 활성화 및 비활성화시키는 작동 구성요소(예를 들어 사용자의 발)의 크기에 기초하여, 조정될 수 있다. 일 실시예에서, 센서(615)는 디폴트 커패시턴스를 기록하는 하나 이상의 용량성 센서를 포함할 수 있다. 또 다른 실시예에서, 문턱 초과 시 발생하는 기록된 용량 변화는 각각의 센서가 상태, 예를 들면 "오프" 상태에서 "온" 상태로 변했음을 표시할 수 있으며, 로코모션 시스템 플랫폼(170)상의 관련된 위치에 참여(engagement)를 표시하고 약 22도의 방향 벡터를 제공한다. 또 다른 실시예에서, 문턱 값은 바이패스 필터이며, 이 경우 문턱보다 높은 커패시턴스만이 약 2 내지 3도의 속도 벡터 및 방향 벡터를 계산하는데 사용된다.
블록(804)에서, 하나 이상 또는 모든 센서 스캔 데이터에 대해 시간 데이터가 저장되는 저장 센서 스캔 동작이 수행된다. 센서 값들은 하나 이상의 센서 데이터의 특정 시간의 스캔 값들일 수 있다. 센서 데이터는 커패시턴스 값, 동작 상태(온 또는 오프), 역사적 시간 값(예를 들면, 지난 ON 이벤트의 시간기록, 지난 OFF 이벤트의 시간기록)을 포함할 수 있지만, 이에 한정되지 않는다. 상기 저장된 센서 값들은 사용자 발의 각각에 의한 움직임을 계산하기 위해 컴퓨터 시스템(635)에 의해 사용될 수 있다. 또한, 상기 저장된 값들은 사용자의 행위(예를 들면 달리기, 보행, 후진 보행, 점프, 전진 점프, 공격, 및 움츠리기)를 판정하는 것을 돕기 위해 사용자의 이전 움직임을 역사적으로 계산하기 위해 사용될 수 있다.
블록(806, 808)에서, 외측 링에 위치된 하나 이상의 센서는 오프에서 온으로 또는 온에서 오프로 변할 수 있다. 외측 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써 또는 걸음 방향 벡터 방법에 의해(예를 들면, 사용자의 한발 또는 양발이 외측 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 외측 링의 센서는 문턱 값 미만의 센서 값을 판독함으로써 또는 걸음 방향 벡터 방법에 의해(예를 들면, 사용자의 한발 또는 양발이 외측 링에 위치된 센서로부터 멀리 이동함) "오프" 위치로 비활성화될 수 있다. 블록(810)에서, 방법(800)은 외측 링 센서의 속도 벡터를 생성하고 방법(800)은 종료할 수 있다.
블록(812, 814)에서, 중간 링의 하나 이상의 센서는 오프에서 온으로 또는 온에서 오프로 변할 수 있다. 중간 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써 또는 걸음 방향 벡터 방법에 의해(예를 들면, 사용자의 한발 또는 양발이 중간 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 중간 링의 센서는 문턱 값 미만의 센서 값을 판독함으로써 또는 걸음 방향 벡터 방법에 의해(예를 들면, 사용자의 한발 또는 양발이 중간 링에 위치된 센서로부터 멀리 이동함) "오프" 위치로 비활성화될 수 있다.
블록(816)에서, 컴퓨터 시스템은 플랫폼(170)의 하나 이상의 인접한 내측 링에 위치된 모든 센서들의 특정 시점의 센서 스캔(804)을 체크할 수 있다. 블록(818)에서, 만일 중간 링의 하나 이상의 센서와 같은 섹션의 하나 이상의 인접한 내측 링에서 하나 이상의 센서가 "온" 작동되면, 방법(800)은 상기 하나 이상의 작동된 중간 링 센서의 속도 벡터를 생성하고 방법(800)은 종료될 수 있다.
블록(820, 822)에서, 내측 링의 하나 이상의 센서는 오프에서 온으로 또는 온에서 오프로 변할 수 있다. 내측 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써 또는 걸음 방향 벡터 방법에 의해(예를 들면, 사용자의 한발 또는 양발이 내측 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 내측 링의 센서는 문턱 값 미만의 센서 값을 판독함으로써 또는 걸음 방향 벡터 방법에 의해(예를 들면, 사용자의 한발 또는 양발이 내측 링에 위치된 센서로부터 멀리 이동함) "오프" 위치로 비활성화될 수 있다.
블록(824)에서, 컴퓨터 시스템은 플랫폼(170)의 하나 이상의 인접한 중간 링에 위치된 모든 센서들의 특정 시점의 센서 스캔을 체크할 수 있다. 블록(826)에서, 만일 내측 링의 하나 이상의 센서와 같은 섹션의 하나 이상의 인접한 중간 링에서 하나 이상의 센서가 "온" 작동되면, 방법(800)은 상기 하나 이상의 작동된 중간 링 센서의 속도 벡터를 생성하고 방법(800)은 종료될 수 있다.
방법(850)은 블록(852)에서 시작할 수 있다. 블록(852)에서, 센서가 문턱 값보다 큰 값을 가질 때, 센서는 오프에서 온으로 변할 수 있다. 각각의 센서는 독립적인 문턱 값을 가질 수 있다. 상기 문턱 값은 조정 가능하다. 문턱 값들은, 다수의 변수들, 예를 들면, 플랫폼(170) 내 센서들의 위치, 플랫폼(170) 내 센서들의 개수, 플랫폼(170) 내 센서들의 크기, 센서를 활성화 및 비활성화시키는 작동 구성요소(예를 들어 사용자의 발)의 크기에 기초하여, 조정될 수 있다. 일 실시예에서, 센서(615)는 디폴트 커패시턴스를 기록하는 하나 이상의 용량성 센서를 포함할 수 있다. 또 다른 실시예에서, 문턱 초과 시 발생하는 기록된 용량 변화는 각각의 센서가 상태, 예를 들면 "오프" 상태에서 "온" 상태로 변화했음을 표시할 수 있으며, 로코모션 시스템 플랫폼(170)상의 관련된 위치에 참여(engagement)를 표시하고 약 22도의 방향 벡터를 제공한다. 또 다른 실시예에서, 문턱 값은 바이패스 필터이며, 이 경우 문턱보다 높은 커패시턴스만이 약 2 내지 3도의 속도 벡터 및 방향 벡터를 계산하는데 사용된다.
블록(854)에서, 외측 링에 위치된 하나 이상의 센서는 오프에서 온으로 변할 수 있다. 외측 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써 또는 걸음 방향 벡터 방법에 의해(예를 들면, 사용자의 한발 또는 양발이 외측 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 또 다른 실시예에서, 하나 이상의 외측 링 센서가 작동되고 오직 같은 섹션의 하나 이상의 인접한 중간 링 센서의 작동이 뒤따른다. 블록(856)에서, 방법(850)은 하나 이상의 외측 링 센서의 속도 벡터를 생성하고 방법(850)은 종료될 수 있다.
블록(858)에서, 중간 링의 하나 이상의 센서는 오프에서 온으로 변할 수 있다. 중간 링의 센서는 문턱 값 이상의 센서 값을 판독함으로써 또는 걸음 방향 벡터 방법에 의해(예를 들면, 사용자의 한발 또는 양발이 중간 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 블록(860)에서, 방법(850)이 센서 데이터를 저장한 다음, 방법(850)이 종료될 수 있다. 상기 센서 값은 하나 이상의 센서 데이터의 특정 시점의 스캔 값일 수 있다. 센서 데이터는 커패시턴스 값, 동작 상태(온 또는 오프), 역사적 시간 값(예를 들면, 지난 ON 이벤트의 시간기록, 지난 OFF 이벤트의 시간기록)을 포함할 수 있지만, 이에 한정되지 않는다. 상기 저장된 센서 값들은 사용자 발의 각각에 의한 움직임을 계산하기 위해 컴퓨터 시스템(635)에 의해 사용될 수 있다. 또한, 상기 저장된 값들은 사용자의 행위(예를 들면 달리기, 보행, 후진 보행, 점프, 전진 점프, 공격, 및 움츠리기)를 판정하는 것을 돕기 위해 사용자의 이전 움직임을 역사적으로 계산하기 위해 사용될 수 있다.
블록(862)에서, 내측 링의 하나 이상의 센서는 오프에서 온으로 변할 수 있다. 내측 링의 센서는 문턱 값보다 큰 센서 값을 판독함으로써 또는 걸음 방향 벡터 방법에 의해(예를 들면, 사용자의 한발 또는 양발이 내측 링에 위치된 센서 위에서 움직임) "온" 위치로 작동될 수 있다. 블록(864)에서, 컴퓨터 시스템은 플랫폼(170)의 같은 섹션 내 하나 이상의 인접한 중간 링에 위치한 센서들 중 하나 이상의 특정 시점 센서 스캔을 체크할 수 있다. 블록(866)에서, 만일 내측 링 센서의 현재 작동 시간과 상기 하나 이상의 인접한 중간 센서의 지난 "오프" 시간기록 사이의 시간 차이가 가변 시간기록 문턱보다 작으면(예컨대, 1ms), 방법(800)은 블록(868)에서 하나 이상의 중간 링 센서의 속도 벡터를 생성하고 방법(850)은 종료될 수 있다.
도 41 및 도 42에서 생성된 속도 벡터는 다양한 게이밍 측정기준, 예컨대 속도, 방향, 보행, 달리기, 점프를 계산하기 위해 사용될 수 있다. 상기 속도벡터 출력은 사용자 발의 방향 및 크기(빠르기)를 지시하는 (X,Y) 좌표일 수 있다.
속도 벡터들은, 도 41 및 도 42에서와 같이 변화가 기록되는, 하나 이상의 센서의 (X,Y) 위치 좌표를 사용하여 생성될 수 있다. 예를 들면, 로코모션 시스템 플랫폼(170)의 XY 센서 평면은 2차원 평면의 각각의 사분면 내에서 지정된 -1부터 1까지 거리 단위에 미칠 수 있다. 상기 좌표는 향후 벡터 계산이 용이하도록 예를 들면, X 및 Y 좌표 둘 다를 정규화 인자[일 실시예에서, (X2+Y2)1/ 2]로 나누어서 정규화될 수 있다. 속도벡터가 컴퓨터 시스템(635)에 전송되기 전에, MCU(625)는 좌표를 (-1,1) 범위로부터 (0,255) 범위로 변형할 수 있다.
정규화된 좌표와 속도 값, 예를 들면 0과 1 사이의 값을 곱하여 벡터 속도 표현이 계산될 수 있다. 결과적인 벡터 "길이"는 속도를 표현할 수 있다. 또 다른 실시예에서, 벡터 속도 계산은 사용자 걸음의 빈도에 기초하여 수행될 수 있다. 또 다른 실시예에서, 상기 벡터 속도를 결정하기 위해 연속된 또는 인접한 센서들의 작동 사이의 시간 간격이 사용될 수 있다. 예를 들면, 상기 저장된 센서 시간기록 데이터를 사용한다.
일 실시예에서, 사용자 점프를 계산하기 위해 속도 벡터 계산이 사용될 수 있다. 예를 들면, 각각의 발의 활성 및 비활성을 계산하기 위해 중심 센서들의 시간기록 데이터와 내측 링 센서들을 사용한다. 또 다른 실시예에서, 전진, 측면, 및 후진 점프를 계산하기 위해 내측, 중간, 및 외측 센서들이 사용될 수 있다.
도 43은 제3자 시스템, 예컨대 제3자 비디오 게임 콘솔에 의해 속도 벡터 통합을 수행하기 위한 예시적인 방법(900)의 흐름도를 도시한다. 도 43에 도시된 방법(900)은 예시적인 것이며, 이 방법을 수행하는 다양한 방식이 존재한다. 또한, 상기 예시적인 방법은 특정한 순서의 단계들을 가지고 도시되어 있지만, 당해 기술분야의 숙련된 기술자는, 도 43에 도시된 단계들이 본 개시의 기술적 이점을 달성하는 임의의 순서로 실행될 수 있다는 것과, 도시된 것보다 더 적거나 많은 단계를 포함할 수 있음을 이해할 수 있을 것이다.
도 43에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법, 또는 서브루틴을 나타낸다. 도 43에 도시된 단계들은 적어도 플랫폼(170)을 포함하는 시스템에서 구현될 수 있다. 도 43에 도시된 각각의 블록은 적어도 플랫폼(170)에 의해 수행될 수 있다. 또 다른 실시예에서, 센서들은 사용자 또는 액세서리에 위치할 수 있다.
방법(900)은 블록(902)에서 시작한다. 블록(902)에서 상대속도벡터 입력이 수신될 수 있다. 이어서, 상기 벡터 입력의 각도가 계산된다. 계산된 각도는 속도벡터 방향과 절대 북, 플랫폼(170)의 정면 사이의 각도 측정일 수 있다. 블록(904)에서, 만일 상기 속도벡터입력의 각도가 0이면, 이전의 벡터 양(905)이 사용된다. 일 실시예에서, 만일 1/10초 동안 0 벡터를 수신한 후이면, 벡터가 0으로 재설정된다. 블록(906)에서, 만일 속도벡터입력의 각도가 30도 미만이면, 블록(907)에서 전진 모션 방향이 사용된다. 블록(908)에서, 만일 속도벡터입력의 각도가 30도와 80도 사이이면, 블록(909)에서 45도 모션 선택이 예를 들면 좌측 방향 또는 우측 방향으로 이루어진다. 블록(910)에서, 만일 속도벡터입력이 80도와 90도 사이이면, 블록(911)에서 90도 모션 선택이 예를 들면 좌측 방향 또는 우측 방향을 이루어진다. 블록(912)에서, 만일 속도벡터입력의 각도가 90도를 초과하면, 블록(913)에서 후진 보행 모션이 이루어지고 벡터는 0으로 재설정된다.
현재의 비디오 게임들은 상대적 방향설정 프레임워크를 사용한다. 조이스틱을 우측으로 밀거나 키보드상의 "D"를 누르면 사용자의 아바타를 현재의 시선 또는 카메라 위치로부터 우측으로 90도 움직일 수 있다. 일 실시예에서, 현재의 카메라 위치는 머리에 착용된 디스플레이(예컨대, 가상현실 헤드셋)의 방향을 측정함으로써 얻어질 수 있다. 따라서 상기 상대적 방향설정 프레임워크에서, 움직임은 현재의 카메라 위치에 대한 것일 수 있다. 추가로 설명하면, 조이스틱을 위로 밀거나 키보드상의 "W"를 누르면, 사용자의 아바타를 현재의 카메라 위치에서 전방으로 움직일 수 있다.
일 실시예에서, 게임은 절대적 방향설정 프레임워크(분리된 프레임워크)를 사용할 수 있다. 게임이 플랫폼(170)을 사용하여 진행될 때, 사용자의 아바타는 현재의 시선 또는 카메라 위치로부터 독립적으로 움직일 수 있다. 사용자의 아바타는 게임내 지도에 대해서 절대적 방식으로 움직일 수 있다. 예를 들면, 만일 사용자가 플랫폼(170)상에서 북쪽 방향으로 걸으면, 사용자의 아바타는 현재의 카메라 위치에 관계 없이 게임내 지도상의 북쪽으로 이동할 수 있다. 관련된 측면에서, 머리에 착용된 디스플레는 자력계를 포함할 수 있다. 자력계는 플랫폼(170)에 유사한 절대적 방향설정 프레임워크를 사용할 수 있으며, 이 경우 현재의 게임내 카메라 위치는 사용자가 게임 외부에서 물리적으로 바라보고 있는 방향일 수 있다.
일 실시예에서, 방향 "북쪽"은 자북이거나 진북일 수 있다. 또 다른 실시예에서, 방향 "북쪽"은 게임의 시작 시 설정 또는 조정된 지정 방향일 수 있다. 예를 들면, 가상현실 헤드셋과 같은 머리 쓰는 디스플레이를 착용하고 있는 사용자는 조정 동안 사용자의 신체에 대해서 전방을 볼 수 있으며, 이것은 현재의 카메라 위치와 사용자의 신체 위치를 분리하기 전에 전진 보행 지향에 대해 현재의 전방 주시 방향을 조정할 수 있다. 또 다른 실시예에서, 플랫폼(170)에 부착된 하네스 또는 헤일로는, 현재의 카메라 위치와 사용자의 신체 위치를 분리하기 전에, 게임 내 전진 지향에 대해 사용자의 전진 위치를 조정하기 위해 센서를 포함할 수 있다. 또 다른 실시예에서, 게임의 시작 후, 플랫폼(170) 내 센서들에 의해 결정된 게임 외부의 사용자의 현재 위치, 하네스, 또는 헤드셋은 게임의 시작 위치에 대해서 조정될 수 있다. 예를 들어, 만일 아바타가 동쪽으로 향한 상태에서 개시되면, 게임이 시작될 때 사용자가 향하고 있는 방향이 동쪽으로 조정될 수 있다.
일 실시예에서, 분리(decoupling)는 기존 게임에서 구현될 수 있다. 기존 게임들은 분리를 위해 설정되지 않지만, 사용자의 현재 카메라 위치에 기초하여 하나 이상의 키누름을 생성함으로써 상기 분리 효과가 여전히 달성될 수 있다. 예를 들면, 만일 사용자가 90도 좌측을 보면서 플랫폼(170) 상에서 전진 보행한다면, "D"키 또는 좌측 움직임 키를 생성함으로써 분리가 달성될 수 있다. 상기 절대적 방향설정 프레임워크는 현재의 카메라 위치를 고려함으로써 상대적 방향설정 프레임워크로 변형될 수 있다. 또 다른 실시예에서, 만일 사용자가 45도 우측을 보면서 플랫폼(170) 상에서 전진 보행한다면, "W"키와 "A"키를 동시에 또는 교대로 생성함으로써 상기 분리 효과가 달성될 수 있다. 또 다른 실시예에서, 만일 사용자가 15도 우측을 보면서 플랫폼(170) 상에서 전진 보행한다면, "W"키와 "A"키를 생성함으로써 상기 분리 효과가 달성될 수 있다.
또 다른 실시예에서, 센서들은 사용자의 의도된 움직임 방향을 결정하기 위해 사용자의 왼발 및 오른발의 방향을 모니털링할 수 있다. 도 44는 걸음 방향을 결정하기 위한 예시적인 알고리즘을 도시한다. 일 실시예에서, 플랫폼(170)의 하나 이상의 슬라이스 상에 4개의 액티브 센서들이 물리적으로 위치될 수 있다. 예를 들면, 상기 센서들은 슬라이스(601) 및 링(611, 612) 내에 위치된다. 4개의 액티브 센서들은 2개의 외측 센서 링 내의 모든 0이 아닌 센서를 나타낼 수 있다. 4개의 센서들 각각은 위치벡터 값과 커패시턴스 값을 가질 수 있다. 미리 정의된 문턱 값 아래의 센서 커패시턴스 판독(reading)을 필터링 해내기 위해 문턱이 사용될 수 있다. 이것은 한 걸음의 완성을 판정하는데 있어서의 잡음을 감소시킬 수 있다. 예를 들어, 만일 상기 문턱 값이 0.50의 커패시턴스 값으로 특정되면, 0.50보다 큰 판독을 가진 센서들만이 걸음 방향을 판정하는데 사용될 수 있다. 또 다른 실시예에서, 상기 액티브 센서들은 사용자의 발, 손, 몸통, 머리, 또는 액세서리(예를 들면, 총, 칼, 패들, 또는 배트)에 물리적으로 위치될 수 있다.
도 44는 사용자의 의도된 움직임 방향을 판정하기 위한 예시적인 방법(1000)의 흐름도이다. 도 44에 도시된 방법(1000)은 예시적인 것이며, 이 방법을 수행하는 다양한 방식이 존재한다. 또한, 상기 예시적인 방법은 특정한 순서의 단계들을 가지고 도시되어 있지만, 당해 기술분야의 숙련된 기술자는, 도 44에 도시된 단계들이 본 개시의 기술적 이점을 달성하는 임의의 순서로 실행될 수 있다는 것과, 도시된 것보다 더 적거나 많은 단계를 포함할 수 있음을 이해할 수 있을 것이다.
도 44에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법, 또는 서브루틴을 나타낸다. 도 44에 도시된 단계들은 적어도 플랫폼(170)을 포함하는 시스템에서 구현될 수 있다. 도 44에 도시된 각각의 블록은 적어도 플랫폼(170)에 의해 수행될 수 있다. 또 다른 실시예에서, 센서들은 사용자 또는 액세서리에 위치할 수 있다.
방법(1000)은 블록(1001)에서 시작한다. 블록(1001)에서, 측정을 기록함으로써 하나 이상의 센서가 작동될 수 있다. 일 실시예에서, 플랫폼(170) 상의 센서들은 커패시턴스 측정을 기록함으로써 작동될 수 있다. 예를 들어, 만일 사용자가 슬라이스(601)의 외측 2개 링을 향해 앞으로 걸으면, 링(611, 612) 내의 4개 센서들은 커패시턴스 판독을 가질 수 있다. 만일 상기 센서들의 커패시턴스 판독이 미리 정의된 문턱보다 크면, 상기 커패시턴스 판독은 상기 걸음 방향을 계산하기 위해 사용될 수 있다. 일 실시예에서, 0보다 큰 모든 센서 판독은 상기 걸음 방향을 계산하기 위해 사용될 수 있다. 또 다른 실시예에서, 센서들은 관성 측정 또는 광학 측정을 기록함으로써 작동될 수 있다. 센서 값이 하나 이상의 센서에서 기록된 경우, 상기 방법은 블록(1002)으로 진행할 수 있다.
블록(1002)에서, 문턱 이상의 기록된 값을 가진 액티브 센서들이 정규화될 수 있다. 정규화 과정 동안, 하나 이상의 센서의 위치는 하나 이상의 방향 벡터로 변형될 수 있다. 예를 들어, 만일 상기 액티브 센서들이 슬라이스(601) 내에 있으면, 상기 정규화된 방향 벡터들은 슬라이스(601)의 방향에 있을 수 있다. 상기 센서 위치들의 정규화가 완료된 경우, 상기 방법은 블록(1003)으로 진행할 수 있다.
블록(1003)에서, 상기 정규화된 위치에 대해 가중치 부여된 벡터가 계산될 수 있다. 일 실시예에서, 커패시턴스에 의해 가중치 부여된 벡터들이 계산될 수 있다. 예를 들면, 더 큰 커패시턴스 판독을 가진 센서들에 더 높은 가중치가 부여될 수 있다. 일 실시예에서, 각각의 액티브 센서들의 가중치는 정규화된 위치 벡터에 센서 커패시턴스 값을 곱하여 계산될 수 있다. 벡터들에 가중치가 부여된 경우 상기 방법은 블록(1004)으로 이동할 수 있다.
블록(1004)에서, 가중치 부여된 벡터들이 누적되어 누적된 벡터가 계산될 수 있다. 예를 들면, 누적된 벡터를 계산하기 위해 상기 지향성으로 가중치 부여된 벡터들이 서로 더해질 수 있다. 누적된 벡터가 계산된 경우 상기 방법은 블록(1005)으로 이동할 수 있다.
블록(1005)에서, 상기 누적된 벡터는 정규화될 수 있다. 예를 들면, 상기 누적된 벡터를 정규화하는 것에 의해 걸음 방향 벡터를 결정할 수 있다. 상기 누적된 벡터가 정규화되고 상기 걸음 방향 벡터가 생성된 경우 방법(1000)은 종료될 수 있다.
도 45는 사용자의 의도된 움직임 방향을 판정하기 위한 예시적인 방법(1050)의 흐름도이다. 또 다른 실시예에서, 상기 방법은 2-걸음 방향 벡터를 추적하고 상기 두 벡터의 평균으로서 속도 방향을 계산할 수 있다. 상기 방법은 짝수 및 홀수 걸음 방향 벡터 및 걸음 시간기록에 기초하여, 예컨대 방향 벡터들을 평균하고 걸음 속도를 모니터링하여 사용자의 캐릭터 움직임에 대한 속도를 결정할 수 있다. 상기 방법은 한 세트의 내부 및 전체 데이터 구조를 저장할 수 있다(예컨대: Vector3, Float, Int, Bool, vStep[2], timeStep[2], nSteps, 및 isStep).
도 45에 도시된 방법(1050)은 예시적인 것이며, 이 방법을 수행하는 다양한 방식이 존재한다. 또한, 상기 예시적인 방법은 특정한 순서의 단계들을 가지고 도시되어 있지만, 당해 기술분야의 숙련된 기술자는, 도 45에 도시된 단계들이 본 개시의 기술적 이점을 달성하는 임의의 순서로 실행될 수 있다는 것과, 도시된 것보다 더 적거나 많은 단계를 포함할 수 있음을 이해할 수 있을 것이다.
도 45에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법, 또는 서브루틴을 나타낸다. 도 45에 도시된 단계들은 적어도 플랫폼(170)을 포함하는 시스템에서 구현될 수 있다. 도 45에 도시된 각각의 블록은 적어도 플랫폼(170)에 의해 수행될 수 있다. 또 다른 실시예에서, 센서들은 사용자 또는 액세서리에 위치할 수 있다.
방법(1050)은 블록(1052)에서 시작할 수 있다. 블록(1052)에서, 이벤트, 예를 들면, 현재 시간, 위치, 하나 이상의 센서의 관성, 광학, 커패시턴스 측정이 발생할 수 있다. 이벤트가 발생한 경우, 상기 방법은 블록(1054)으로 진행할 수 있다. 블록(1054)에서, 센서들이 제로 눈금에 맞춰질 수 있다. 일 실시예에서, 플랫폼(170)의 중심 구역 내 센서들이 제로 눈금에 맞춰질 수 있다. 일 실시예에서, 상기 중심 구역은 플랫폼(170)의 내측 2개 링일 수 있다. 또 다른 실시예에서, 중심 구역은 기하학적 형상, 원, 6각형, 8각형일 수 있다. 상기 센서들이 0으로 설정된 경우, 방법(1050)은 블록(1056)으로 진행할 수 있다.
블록(1056)에서, 액티브 센서들을 필터링하기 위해 문턱이 사용될 수 있다. 일 실시예에서, 커패시턴스 측정, 광학 측정, 또는 관성 측정에 기초하여 액티브 센서들을 필터링하기 위해 문턱이 사용될 수 있다. 예를 들어, 만일 액티브 센서들의 커패시턴스 판독이 미리 정의된 문턱보다 크다면, 상기 액티브 센서들은 속도 계산에 포함될 수 있다. 일 실시예에서, 상기 문턱은 0으로 설정될 수 있다. 문턱 값 이상의 커패시턴스 판독을 가진 액티브 센서들이 결정되는 경우, 상기 방법은 블록(1058)으로 진행할 수 있다. 블록(1058)에서, 절음 방향 벡터가 계산된다. 예를 들면, 걸음 방향 벡터는 방법(1000)을 사용하여 계산될 수 있다. 상기 걸음 방향 벡터가 계산되는 경우 방법(1050)은 블록(1060)으로 진행할 수 있다.
블록(1060)에서, 방향 벡터의 길이가 결정된다. 만일 방향 벡터의 길이가 0보다 크면, 방법(1050)은 블록(1062)으로 진행할 수 있다. 블록(1062)에서, 사용자가 걸음을 걸었는지 판정된다. 예를 들면, 중심 구역 외부에서의 액티브 센서 판독은 걸음의 확인일 수 있다. 만일 걸음을 걸은 것이 판정되면, 방법(1050)은 블록(1080)으로 진행할 수 있다. 블록(1080)에서, 속도가 계산될 수 있다. 일 실시예에서, 속도는 보행속도를 곱한 2걸음 방향 벡터들의 평균인 벡터일 수 있다. 같은 실시예에서, 상기 속도 벡터의 크기는 사용자 속도이다. 길이가 0인 벡터는 사용자가 정지한 것을 의미한다. 0과 1 사이의 벡터 길이는 사용자가 걷거나 달리고 있는 것을 의미한다. 벡터 길이가 1인 것은 사용자가 달리고 있는 것을 의미할 수 있다. 일 실시예에서, 속도는 다음 식 (1) 내지 (3)을 사용하여 계산될 수 있다.
time = clamp(abs(timeStep[0]-timeStep[1]), minTime, maxTime) (1)
speed = 1.0f-(time-speedRunning)/(speedSlow-speedrunning) (2)
vVelocity = normalize(vStep[0] + vStep[1])*speed (3)
일단 속도가 블록(1080)에서 계산되면, 방법은 블록(1082)으로 진행하여 종료될 수 있다.
만일 블록(1062)에서 걸음을 걷지 않았다면, 방법은 블록(1064)으로 진행할 수 있다. 블록(1064)에서, 걸음이 기록된다. 예를 들면, 상기 방향 벡터가 0보다 큰 길이를 갖고(블록 1064) 중심 구역 내의 센서들이 0으로 설정되었으며(블록 1054), 따라서 발이 외측 센서들로 이동했다. 걸음이 기록되는 경우, 방법(1050)은 블록(1080)으로 이동하여 속도를 계산할 수 있다. 블록 1080에서 속도가 계산될 수 있다.
만일 블록 1060에서, 방향 벡터의 길이가 0 이하이면, 방법(1050)은 블록(1070)으로 진행할 수 있다. 블록(1070)에서, 사용자가 걸음을 걸었는지 판정된다. 예를 들면, 중심 구역 외부에서의 액티브 센서 판독은 걸음의 확인일 수 있다. 만일 걸음을 걸은 것이 판정되면, 방법(1050)은 블록(1072)으로 진행할 수 있다. 블록(1072)에서, 걸음 수가 증가되고 걸음 변수는 허위(false)로 설정된다. 예를 들면, 걸음(외측 센서들 내의 발)이 있었고 이제는 외측 센서들에서 걸음이 없으며, 따라서 걸음이 완료된다. 걸음이 완료된 후, 방법(1050)은 블록(1080)으로 진행할 수 있다.
만일 블록(1070)에서, 걸음이 없었다면, 방법은 블록(1074)으로 진행할 수 있다. 블록(1074)에서, 걸음이 너무 느렸는지 판정될 수 있다. 일 실시예에서, 만일 플랫폼(170)의 외측 구역에 발이 머물렀는지 판정될 수 있다. 일 실시예에서, 이전 걸음 시간으로부터 현재 시간을 뺀 다음 계산된 값이 걸음 문턱 값보다 큰지 작은지를 판정하면, 걸음이 너무 느린지가 판정될 수 있다. 만일 걸음이 너무 느리다면 방법(1050)은 블록(1076)으로 진행할 수 있다. 블록(1076)에서, 걸음 값들이 재설정된다. 예를 들면, 걸음 수, 걸음 벡터 및 걸음 시간이 0으로 설정될 수 있다. 걸음 값들이 0으로 설정되는 경우, 방법(1050)은 블록(1080)으로 진행할 수 있다. 만일 블록(1070)에서 걸음이 너무 느리지 않았다면, 방법(1050)은 블록(1080)으로 진행할 수 있다.
도 46a 내지 도 46c는 예시적인 산업용 전방향식 로코모션 시스템을 도시한다. 산업용 전방향식 로코모션 시스템(1100)은 수직 지지체(1101), 수평 스트럿(1102), 헤일로(134), 지지부재(1103, 1104), 플랫폼(170), 수직 봉(1105), 스프링(1106), 지면 지지대(1107), 및 선형 볼 베어링 시스템(미도시)을 포함할 수 있다.
수직 지지체(1101)는 헤일로(134)의 수직 움직임을 가능하게 한다. 일 실시에에서, 수직 지지체(1101)는 수평 스트럿(1102)의 삽입과, 선형 볼 베어링 시스템에 의한 수직 봉(1105)에의 결합이 가능하도록 속이 비어있을 수 있다. 수직 지지체(1101)는 가변 길이를 가질 수 있다. 수직 지지체(1101)는 또한 보호용 피복을 포함할 수 있다. 상기 보호용 피복은 외부 물질이 수직 지지체(1101)의 빈 부분으로 들어가는 것을 방지하여 외부 물질이 선형 볼 베어링 시스템, 수직 봉(1105) 및 스프링(1106)을 방해하는 것을 방지한다. 예를 들면, 보호용 피복은 겹치는 뻣뻣한 털(overlapping bristles)일 수 있다. 일 실시예에서, 수직 지지체(1101)는, 사용자와 임의의 산업용 기어, 예컨대, 총, 칼, 바톤(batton), 패들, 라켓 등과 간섭하는 것을 방지하기 위해, 중심 지지대로부터 충분히 멀리 떨어질 수 있다. 수직 지지체(1101)는 일정한 수직 움직임이 가능하도록 수직 봉(1105)을 사용자로부터 수직, 예컨대 90도 각도로 유지할 수 있다. 수평 스트럿(1102)는 헤일로(134)로부터 연장하고 볼 베어링 시스템에 의해 수직 봉(1105)에 부착된다. 볼 베어링 시스템은 헤일로(134)의 수직 움직임을 가능하게 할 수 있다. 또 다른 실시예에서, 수평 스트럿(1102)은 도 46c에 도시된 것과 같이 비스듬한 각도로, 예컨대 75도, 45도, 또는 90도 미만의 어떤 다른 각도로 연장할 수도 있다. 더욱 비스듬한 각도는 산업계 사용자가 산업용 액세서리를 방해받지 않고 사용할 수 있도록 한다(예를 들면, 총열이 지면을 향하도록 함). 일 실시예에서, 상기 볼 베어링 시스템은 상기 수직 봉들과 5인치를 초과하여 접촉할 수 있다. 선형 볼 베어링 시스템은 선형 볼 베어링 블록을 포함할 수 있다. 선형 볼 베어링 시스템은 수평 스트럿(1102)이 수직 봉들을 따라서 더 부드럽게 움직일 수 있도록 할 수 있다. 수평 스트럿(1102)은 동일한 평면 내에서 헤일로(134)로부터 연장할 수 있다. 지지부재(1103, 1104)는 수직 지지체(1101)에 안정성을 부가할 수 있다. 지면 지지대(1107)는 산업용 전방향식 로코모션 시스템(1100)을 지지하고 안정시킬 수 있다.
스프링(1106)은 사용자가 선 자세에 있을 때 헤일로(134) 및 스트럿(150)을 상승시킬 수 있다. 스프링(1106)은 사용자의 전진 움직임 동안 지지를 제공할 수 있다. 스프링(1106)은 사용자가 움츠릴 수 있도록 더 압축하고, 사용자가 서있거나, 움츠렸다 일어서거나, 압축을 풀어서 점프를 도울 수 있다. 상기 스프링 상수는 일 실시예에서 후크의 법칙(Hook's Law)을 사용하여 계산될 수 있다. 전체 힘은 사용자에게 안정성을 제공하기 위해 필요한 밀어올리는 힘에 헤일로의 무게를 더한 것일 수 있다. 상기 안정성은 사용자의 키에 따라 다를 수 있다. 전체 힘은 수직 지지체의 개수에 의해 나누어질 수 있다. 일 실시예에서, 스프링 상수는 0.2lb/in와 4.0lb/in 사이일 수 있다. 또 다른 실시예에서, 스프링 상수는 0.4lb/in과 2.0lb/in 사이일 수 있다.
일 실시예에서, 수직 지지체들은 신축형 막대를 포함할 수 있다. 또 다른 실시예에서, 수직 지지체들은 신축형 막대일 수 있다. 예를 들면, 상기 수직 지지체/신축형 막대의 높이는 헤일로와 같은 높이일 것이다. 상기 신축형 막대는 사용자의 움직임에 반응하여 압축하거나 연장함으로써 사용자가 수직으로 움직이는 것을 가능하게 할 수 있다.
일 실시예에서, 상기 수직 지지체는 신축성 있는 고무 끈이나 가공 스프링 시스템일 수 있다. 이 실시예에서, 사용자가 움츠린 자세에 있는 경우 최소의 저항이 헤일로에 적용될 수 있을 것이다. 사용자가 움츠린 자세에서 일어선 자세로 움직일 때, 헤일로에의 저항은 사라질 것이다. 또 다른 실시예에서, 수직 움직임은 피봇 아암 시스템에 의해 달성될 수 있다. 피봇은 수직 지지체 또는 헤일로 위의 스트럿에 부착될 수 있다. 사용자가 움츠린 자세 또는 일어선 자세로 움직일 때, 상기 피봇들은 사용자의 수직 움직임이 가능하도록 작동할 수 있다. 또 다른 실시예에서, 수직 움직임은 자기부상 시스템에 의해 달성될 수 있다. 상기 스트럿은 자석에 의해 수직 지지체에 부착될 수 있다. 자기 분극에 의해 생성된 자기장은 수직 움직임을 가능하게 할 수 있다. 또 다른 실시예에서, 수직 움직임은 유압작용에 의해 달성될 수 있다. 상기 수평 스트럿들은 유압방식에 의해 상기 수직 지지체에 부착될 수 있다. 또 다른 실시예에서, 수직 움직임은 압축 가스에 의해 달성될 수 있다. 수직 움직임은 레귤레이터를 작동하여 압축된 가스의 흐름을 허용 및 제한함으로써 달성될 수 있다.
도 47은 산업용 전방향식 로코모션 시스템의 풀리 제동 시스템을 도시하는 단면도이다. 풀리 시스템(1120)은 케이블(1121)에 의해 매스(1122)를 선형 베어링 시스템(미도시)에 연결할 수 있다. 중량물(mass)(1122)은 선형 베어링 시스템을 수직 봉(1105)을 따라 수직으로 이동시킬 수 있다. 상기 중량물은 수평 스트럿(1102) 및 헤일로(미도시)에 일정한 상향 수평력을 제공할 수 있다. 상기 일정한 상향 수평력은 사용자가 전방으로 움직이고 있을 때, 예컨대 걷거나 달리고 있을 때 생성된 일정한 아래 방향 힘에 대항할 수 있다. 앞에 설명한 실시예들과 이후의 실시예들에서, 상기 전진방향 힘은 후진방향 힘일 수도 있으며, 예를 들면, 뒤로 달리기 위해 걷는 사용자.
도 48은 산업용 전방향 로코모션 시스템의 평형추 제동 시스템을 도시하는 단면도이다. 평형추 시스템은 사용자가 넘어지는 것을 방지하는데 도움을 줄 수 있다. 일 실시예에서, 상기 평형추 시스템은 수직 지지체(1101), 수직 봉(1105), 및 사용자에 의해 제공된 수평력에 견디는 회복력을 생성하기 위해 사용되는 하나 이상의 스프링(1106)을 포함할 수 있다. 스프링(1106)은 선형 베어링 시스템(미도시) 아래에 배치될 수 있다. 스프링(1106)은, 사용자의 전방향 움직임에 의해 생성되고 또한 예를 들어 사용자가 걷거나 달리고 있는 경우에 균형을 유지하는 상향 힘을 생성할 수 있는, 아래 방향 수평력에 의해 압축될 수 있다.
도 49는 산업용 전방향 로코모션 시스템의 마찰력 제동 시스템을 도시하는 평면도이다. 사용자의 전방향 움직임에 의해 생성된 힘들은 넘어지는 사용자의 수직 힘에 저항할 수 있는 마찰력으로 변형될 수 있다. 이 마찰력은 사용자의 전방향 움직임(예컨대, 달리기)에 의해 생성된 일정한 아래 방향 힘에 대항할 수 있다. 일 실시예에서, 마찰력은 수직 지지체(1101) 및 베어링 시스템(미도시)에 내재하는 마찰재료(1123)에 의해 생성된다. 사용자가 앞으로 움직일 때 베어링 시스템의 외부의 마찰재료는 상기 속이 빈 지지체에 내재하는 마찰재료와 접촉하여 마찰력을 생성한다.
도 50은 산업용 전방향 로코모션 시스템의 원주형 스프링 제동시스템을 도시하는 평면도이다. 상기 선형 베어링 시스템은 하나 이상의 스프링(1124)에 의해 상기 수직 봉(1105)에 부착될 수 있다. 일 실시예에서, 4개 스프링(1124)이 등 간격으로 설치되어 수직 봉(1105)과 90도를 이룬다. 사용자에 의해 수평 스트럿(1102)에 전방향 움직임이 가해지는 경우, 수평력은 사용자로부터 수평 스트럿(1102)을 통해 스프링(1124)으로 전달된다. 스프링이 압축할 때, 선형 볼 베어링 시스템의 외부의 마찰재료와 상기 속이 빈 지지체에 내재하는 마찰재료는 접촉하여 마찰력을 생성한다. 이 마찰력은 사용자의 전방향 움직임에 의해 생성된 아래 방향 힘에 저항할 수 있어, 사용자가 넘어지는 것을 방지할 수 있다. 또 다른 실시예에서, 상기 마찰력은 상기 스트럿과 상기 선형 베어링 시스템의 접촉으로부터 초래될 수 있다.
도 51은 산업용 전방향 로코모션 시스템의 케이블 제동 시스템을 도시한다. 사용자가 넘어지는 것을 방지하기 위해 케이블 제동 시스템이 사용될 수 있다. 케이블 제동 시스템은 브레이크(1127), 수평 스트럿(1102)를 따라 연장하는 브레이크 케이블(1125), 및 베어링 시스템을 수용하는 볼 베어링 슬리브(1126)를 포함할 수 있다. 사용자의 전방향 움직임은 수평력을 생성할 수 있다. 이 수평력은 브레이크 케이블(1125)상의 긴장을 유발하고 증가시켜 브레이크(1127)를 작동할 수 있다. 예를 들면, 케이블 브레이크 시스템상의 증가된 긴장은 수직 봉을 따라 마찰력을 제공하고, 사용자의 전방향 움직임, 예를 들면 걷기 또는 달리기에 의해 생성된 아래 방향 힘에 저항할 수 있다.
도 52는 파우치 부착 사다리 시스템(PALS)과 모듈형 경량 하중운반 장비(MOLLE)의 하네스 접속을 도시한다. 표준 산업용 하중 지지설비가 하네스(120)에 통합될 수 있다. 일 실시예에서, MOLLE 개인 보호용 장비가 도 52에 도시된 것과 같이 PALS(1130)에 통합될 수 있다. 또 다른 실시예에서, MOLLE 패트롤 팩이 PALS와 통합될 수 있다. PALS 시스템은 PALS 호환 장비를 연결하기 위한 웨빙 그리드(webbing grid)(1129)로 구성된다. 개선된 하중 지지 장비(ILBE)와 같은 임의의 다른 산업용 기어 또는 복장이 로코모션 시스템 하네스에 통합될 수 있다. 하네스(120)는 산업용 장비, 예를 들면 MOLLE 또는 ILBE와 통합을 위한 하나 이상의 PALS 호환형 스트랩(1128)을 가질 수 있다. 호환형 스트랩(1128)은 PALS 시스템에 의해 MOLLE 개인용 보호장비(1130), MOLLE 패트롤 팩, ILBE 장비에 부착될 수 있다.
본 명세서에서 설명된 실시예들은 어떤 종래의 장치들, 시스템들, 및 방법들과 관련된 다양한 단점을 해결하기 위한 특징들 및 이점들의 조합을 포함한다. 상세한 설명을 더욱 잘 이해할 수 있도록 하기 위해 본 발명의 특징들 및 기술적인 이점들이 앞부분에서 다소 광범위하게 설명되었다. 해당 기술분야의 숙련된 기술자는 상세한 설명을 통해 그리고 첨부한 도면을 참조함으로써 전술한 다양한 특성과 다른 특징들을 용이하게 이해할 수 있을 것이다. 해당 기술분야의 숙련된 기술자는, 본 명세서에서 개시된 개념과 특정한 실시예들이 본 발명의 동일한 목적을 수행하는 다른 구조물을 설계하거나 수정하기 위한 기초로서 용이하게 이용될 수 있음을 이해할 것이다. 또한, 해당 기술분야의 숙련된 기술자는, 그러한 균등한 구조가 첨부된 청구범위에 제시된 발명의 범위 및 사상을 벗어나지 않음을 인식해야 할 것이다.
본 개시의 범위 내의 실시예들은 컴퓨터로 실행할 수 있는 명령 또는 데이터를 갖거나 저장한, 유형의 및/또는 비일시적인 컴퓨터-판독 가능한 저장매체를 또한 포함할 수 있다. 그러한 비일시적인 컴퓨터-판독 가능한 저장매체는 범용 또는 전용 컴퓨터에 의해 액세스될 수 있는 임의의 입수 가능한 매체일 수 있으며, 전술한 것과 같은 임의의 전용 프로세서의 기능적 설계를 포함한다. 예를 들어, 그러한 비일적인 컴퓨터-판독 가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장장치, 자기디스크 저장장치 또는 다른 자기 저장장치, 또는 컴퓨터로 실행될 수 있는 명령, 데이터 구조체, 또는 프로세서 칩 설계의 형태를 가진 원하는 프로그램 코드 수단을 운반 또는 저장하기 위해 이용될 수 있는 임의의 다른 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 정보가 네트워크 또는 다른 통신 연결(유선, 무선, 또는 이것들의 조합)을 통해 컴퓨터에 전달되거나 제공되는 경우, 컴퓨터는 상기 연결을 컴퓨터-판독 가능한 매체로서 적절히 간주한다. 상기 조합들 역시 컴퓨터-판독 가능한 매체의 범위 내에 포함되어야 한다.
컴퓨터-실행 가능한 명령은 예를 들면 범용 컴퓨터, 전용 컴퓨터, 또는 전용 처리장치에 특정 기능 또는 특정 그룹의 기능들을 수행시키는 명령 및 데이터를 포함한다. 또한 컴퓨터-실행 가능한 명령은 독립 환경에서 또는 네트워크 환경에서 컴퓨터에 의해 실행되는 프로그램 모듈을 포함한다. 일반적으로, 프로그램 모듈은 루틴, 프로그램, 컴포넌트, 데이터 구조체, 오브젝트, 및 특정한 추상적인 데이터 타입을 구현하거나 특정한 과제를 수행하는 전용 프로세서의 설계에 내재적인 기능 등을 포함한다. 컴퓨터-실행 가능한 명령, 관련된 데이터 구조체, 및 프로그램 모듈은 본 명세서에서 개시된 방법들의 단계들을 실행하는 프로그램 코드 수단의 실시예를 나타낸다. 그러한 실행 가능한 명령 또는 관련된 데이터 구조체의 특정 시퀀스는 그러한 단계들에서 설명된 기능들을 구현하는 대응한 행동의 실시예를 나타낸다.
당해 기술분야의 숙련자는 본 개시의 다른 실시예들이 다양한 유형의 컴퓨터 시스템 구성(개인용 컴퓨터, 휴대형 장치, 멀티-프로세서 시스템, 마이크로프로세서 기반 또는 프로그래머블 소비자 가전기기, 네트워크 PC, 마이크로컴퓨터, 메인프레임 컴퓨터 등을 포함)을 가진 네트워크 컴퓨팅 환경에서 실행될 수 있음을 인식할 것이다. 실시예들은 또한, 통신 네트워크를 통해 (유선 링크, 무선 링크, 또는 이것들의 조합에 의해) 연결되는 로컬 및 원격 처리장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 메모리 저장장치와 원격 메모리 저장장치 모두에 위치될 수 있다.
전술한 다양한 실시예들은 단지 설명을 위해 제시된 것이며 본 발명의 범위를 제한하는 것을 의도하지 않는다. 예를 들면, 본 명세서의 원리들은 스마트폰 장치뿐만 아니라 랩탑 컴퓨터아 같이 통신을 검출할 수 있는 다른 장치들에 적용된다. 당해 기술분야의 숙련자는, 본 발명의 범위를 벗어나지 않고, 또한 본 명세서에 기재되고 예시된 응용들 및 실시예들을 추종하지 않으면서, 본 명세서에 기재된 원리들에 대한 다양한 수정 및 변경을 용이하게 인식할 수 있을 것이다.

Claims (17)

  1. 게이밍 입력을 생성하는 방법에 있어서,
    프로세서에서 속도를 계산하는 단계;
    상기 프로세서에서 헤딩(heading)을 계산하는 단계;
    상기 프로세서에서, 상기 속도 및 상기 헤딩을 2차원 직교좌표로 변형(translating)하는 단계;
    상기 프로세서에서, 상기 2차원 직교좌표를 최소 최대 스케일 범위로 정규화하는 단계;를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 속도는 사용자의 발 중 하나 이상이 진행한 거리를 그 거리를 진행하기 위해 걸린 시간으로 나누어 계산되는, 방법.
  3. 제 1 항에 있어서,
    상기 속도는 보행속도(pedometry rate)로 계산되는, 방법.
  4. 제 3 항에 있어서,
    상기 보행속도는 미리 정의된 간격 동안 걸음의 빈도(frequency)를 모니터링하여 결정되는, 방법.
  5. 제 1 항에 있어서,
    상기 속도는 사용자의 발 중 하나 이상의 가속도를 모니터링하여 계산되는, 방법.
  6. 제 1 항에 있어서,
    상기 속도는 각속도를 정규화하여 계산되는, 방법.
  7. 제 6 항에 있어서,
    상기 각속도는 사용자의 발 중 하나 이상의 회전의 변화인, 방법.
  8. 제 1 항에 있어서,
    상기 프로세서에서, 상기 헤딩을 실축에 대하여 변형하는 단계를 추가로 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 실축은 자북(magnetic north)인, 방법.
  10. 제 9 항에 있어서,
    상기 프로세서에서, 상기 자북을 오프셋에 의해 사용자의 최초 지향으로 조정하는 단계를 추가로 포함하는, 방법.
  11. 제 1 항에 있어서,
    상기 프로세서에서, 상기 헤딩을 사용자의 몸통의 지향(orientation)에 대하여 변형하는 단계를 추가로 포함하는, 방법.
  12. 제 1 항에 있어서,
    상기 프로세서에서, 상기 헤딩을 사용자의 머리의 지향에 대하여 변형하는 단계를 추가로 포함하는, 방법.
  13. 제 1 항에 있어서,
    상기 최소 최대 스케일 범위는 게이밍 입력 디스크립터에 의해 정의되는, 방법.
  14. 제 1 항에 있어서,
    Y 2차원 직교좌표는 전진 또는 후진 움직임에 대한 것인, 방법.
  15. 제 1 항에 있어서,
    X 2차원 직교좌표는 측면 움직임에 대한 것인, 방법.
  16. 정지 게이밍 입력을 생성하는 방법에 있어서,
    프로세서에서, 사용자의 발 중 하나 이상의 회전의 변화인 속도를 계산하는 단계;
    상기 프로세서에서, 상기 속도를 정규화하는 단계;
    상기 프로세서에서, 상기 정규화된 속도가 미리 정의된 문턱 아래로 떨어질 때를 판정하는 단계;
    상기 프로세서에서, 상기 정규화된 속도의 기울기가 미리 정의된 간격 동안 0에 접근하는 때를 판정하는 단계; 및
    상기 프로세서에서, 2차원 직교좌표를 위해 0을 전송하는 단계;를 포함하는, 방법.
  17. 프로세서에서, 하나 이상의 센서 출력을 수신하는 단계;
    상기 프로세서에서, 상기 하나 이상의 센서 출력으로부터 속도를 계산하는 단계;
    상기 프로세서에서, 상기 하나 이상의 센서 출력으로부터 헤딩을 계산하는 단계;
    상기 프로세서에서, 상기 속도 및 상기 헤딩을 2차원 직교좌표로 변형하는 단계; 및
    상기 프로세서에서, 상기 2차원 직교좌표를 최소 최대 스케일 범위로 정규화하는 단계;를 포함하는, 방법.
KR1020167028982A 2014-03-19 2015-03-19 전방향식 로코모션 시스템에서 입력을 생성하는 방법 KR102376564B1 (ko)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201461955767P 2014-03-19 2014-03-19
US61/955,767 2014-03-19
US201461981149P 2014-04-17 2014-04-17
US61/981,149 2014-04-17
US201462004550P 2014-05-29 2014-05-29
US62/004,550 2014-05-29
US201562099426P 2015-01-02 2015-01-02
US62/099,426 2015-01-02
US201562127261P 2015-03-02 2015-03-02
US62/127,261 2015-03-02
PCT/US2015/021614 WO2015143251A1 (en) 2014-03-19 2015-03-19 Method of generating an input in an omnidirectional locomotion system

Publications (2)

Publication Number Publication Date
KR20160135314A true KR20160135314A (ko) 2016-11-25
KR102376564B1 KR102376564B1 (ko) 2022-03-18

Family

ID=54145359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167028982A KR102376564B1 (ko) 2014-03-19 2015-03-19 전방향식 로코모션 시스템에서 입력을 생성하는 방법

Country Status (7)

Country Link
EP (2) EP3119487A4 (ko)
KR (1) KR102376564B1 (ko)
CN (2) CN106413827A (ko)
AU (1) AU2015231135A1 (ko)
BR (1) BR112016021384A2 (ko)
RU (1) RU2687714C2 (ko)
WO (1) WO2015143251A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048038A (ko) * 2017-10-30 2019-05-09 쟈이게이트웨이(주) 가상현실용 전방향 트레드밀
KR20230082878A (ko) 2021-12-02 2023-06-09 조홍석 각변화측정장치를 통해 이동정보를 보정하는 시스템 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111185009B (zh) 2020-01-02 2021-03-26 腾讯科技(深圳)有限公司 地图生成方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130324890A1 (en) * 2010-12-01 2013-12-05 Movea Method and system for determining the values of parameters representative of a movement of at least two limbs of an entity represented in the form of an articulated line
US20140044309A1 (en) * 2009-10-07 2014-02-13 Microsoft Corporation Human tracking system
US20140046586A1 (en) * 2010-09-22 2014-02-13 Invensense Inc. Deduced reckoning navigation without a constraint relationship between orientation of a sensor platform and a direction of travel of an object

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10142916A1 (de) * 2001-01-23 2002-08-29 Peter Wiedenhoeft Reality Simulations System (RSS)
US8651964B2 (en) * 2005-04-29 2014-02-18 The United States Of America As Represented By The Secretary Of The Army Advanced video controller system
CN101711364A (zh) * 2007-04-13 2010-05-19 领航网络有限公司 确定移动物体的旋转半径的力传感设备和方法
CN101244337A (zh) * 2007-10-29 2008-08-20 李刚 行走式场地计算机游戏操作装置
US9067097B2 (en) * 2009-04-10 2015-06-30 Sovoz, Inc. Virtual locomotion controller apparatus and methods
RU109979U1 (ru) * 2011-08-16 2011-11-10 Ульяна Владимировна Осипова Многофункциональный спортивный тренажер
US10330491B2 (en) * 2011-10-10 2019-06-25 Texas Instruments Incorporated Robust step detection using low cost MEMS accelerometer in mobile applications, and processing methods, apparatus and systems
US20130231889A1 (en) * 2012-03-01 2013-09-05 Lockheed Martin Corporation Method and apparatus for an inertial navigation system
US9056240B2 (en) * 2012-03-09 2015-06-16 Matthew Carrell Apparatus for simulating motion in a virtual environment
US9022870B2 (en) * 2012-05-02 2015-05-05 Aquimo, Llc Web-based game platform with mobile device motion sensor input

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140044309A1 (en) * 2009-10-07 2014-02-13 Microsoft Corporation Human tracking system
US20140046586A1 (en) * 2010-09-22 2014-02-13 Invensense Inc. Deduced reckoning navigation without a constraint relationship between orientation of a sensor platform and a direction of travel of an object
US20130324890A1 (en) * 2010-12-01 2013-12-05 Movea Method and system for determining the values of parameters representative of a movement of at least two limbs of an entity represented in the form of an articulated line

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048038A (ko) * 2017-10-30 2019-05-09 쟈이게이트웨이(주) 가상현실용 전방향 트레드밀
KR20230082878A (ko) 2021-12-02 2023-06-09 조홍석 각변화측정장치를 통해 이동정보를 보정하는 시스템 및 방법

Also Published As

Publication number Publication date
CN114522418A (zh) 2022-05-24
EP3119487A1 (en) 2017-01-25
AU2015231135A1 (en) 2016-10-06
BR112016021384A2 (pt) 2017-08-15
EP3119487A4 (en) 2017-10-18
KR102376564B1 (ko) 2022-03-18
RU2016140373A3 (ko) 2018-09-10
RU2016140373A (ru) 2018-04-19
RU2687714C2 (ru) 2019-05-15
WO2015143251A1 (en) 2015-09-24
CN106413827A (zh) 2017-02-15
EP4015054A1 (en) 2022-06-22

Similar Documents

Publication Publication Date Title
US10286313B2 (en) Method of generating an input in an omnidirectional locomotion system
US11247126B2 (en) System and method of soft decoupling an input
USRE49772E1 (en) Method generating an input in an omnidirectional locomotion system
KR100948095B1 (ko) 컴퓨팅 단말용 동작 입력 장치 및 그 작동방법
US9785230B2 (en) Locomotion system and apparatus
US11673022B2 (en) Apparatus for natural torso and limbs tracking and feedback for electronic interaction
US11123604B2 (en) Apparatus for natural torso and limbs tracking and feedback for electronic interaction
US11130052B2 (en) Information processing system, non-transitory storage medium having stored therein information processing program, information processing apparatus, and information processing method
US11583759B2 (en) Information processing system, storage medium storing information processing program, information processing apparatus, and information processing method
US11654352B2 (en) Information processing system, storage medium storing information processing program, information processing apparatus, and information processing method
KR102376564B1 (ko) 전방향식 로코모션 시스템에서 입력을 생성하는 방법
WO2020159567A1 (en) Virtual reality simulation system
JP7300162B2 (ja) 重心計測機能付き操作装置及び操作システム
WO2022066950A1 (en) Apparatus for natural torso and limbs tracking and feedback for electronic interaction

Legal Events

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