KR20220013704A - 확장현실 서비스를 위한 축 정렬 검증 장치의 동작 방법 - Google Patents

확장현실 서비스를 위한 축 정렬 검증 장치의 동작 방법 Download PDF

Info

Publication number
KR20220013704A
KR20220013704A KR1020200092958A KR20200092958A KR20220013704A KR 20220013704 A KR20220013704 A KR 20220013704A KR 1020200092958 A KR1020200092958 A KR 1020200092958A KR 20200092958 A KR20200092958 A KR 20200092958A KR 20220013704 A KR20220013704 A KR 20220013704A
Authority
KR
South Korea
Prior art keywords
terminal
rotation
tracker
axis alignment
rotation angle
Prior art date
Application number
KR1020200092958A
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 주식회사 리얼위드
Priority to KR1020200092958A priority Critical patent/KR20220013704A/ko
Publication of KR20220013704A publication Critical patent/KR20220013704A/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B7/00Measuring arrangements characterised by the use of electric or magnetic techniques
    • G01B7/30Measuring arrangements characterised by the use of electric or magnetic techniques for measuring angles or tapers; for testing the alignment of axes
    • G01B7/31Measuring arrangements characterised by the use of electric or magnetic techniques for measuring angles or tapers; for testing the alignment of axes for testing the alignment of axes
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B21/00Alarms responsive to a single specified undesired or abnormal condition and not otherwise provided for
    • G08B21/18Status alarms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Emergency Management (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

확장현실 시스템에서 단말기 내부의 센서와 단말기 외부의 센서의 축 정렬 상태를 자동으로 검증하도록 하는 축 정렬 검증 기능을 포함한 확장현실 서비스 장치의 축 정렬 검증 방법을 제시한다. 제시된 방법은, 단말기의 내부센서와 단말기 외부 트래커의 센서로부터 각각의 회전 정보를 입력받아, 트래커의 회전축과 단말기의 회전축 사이의 오프셋 값에 의햐 결정되는 정적 회전값과, 단말기 및 트래커의 이전 프레임 회전각 대비 현재 프레임 회전각과, 각각의 회전각도 차이를 검출하는 회전 연산단계와; 상기 회전 연산단계에서 검출된 단말기와 트래커의 회전각 및 정적 회전값에 기초하여 트래커의 회전각을 기반으로 검출되는 단말기의 예상 회전각과, 단말기에서 검출되는 회전각의 차이와 미리 설정된 임계값을 비교하여 축 정렬 오류여부를 검증하는 축 정렬 검증단계와; 상기 축정렬 검증 단계에서 축 정렬 검증에 오류가 없다고 판단된 경우, 트래커와 단말기의 각 회전각에 따른 좌표 정보를 최종 상태값으로 생성하여 제공하는 것을 포함한다.

Description

확장현실 서비스를 위한 축 정렬 검증 장치의 동작 방법{Method for operation of axis alignment verification device for extended reality service}
본 발명은 확장 현실 서비스 장치의 축 정렬 검증 장치의 동작방법에 관한 것으로, 보다 상세하게는 확장현실 시스템의 단말기 내부의 센서의 축과 단말기 외부의 센서의 축의 정렬 상태를 검증하는 확장현실 서비스를 위한 축 정렬 검증 장치의 동작방법을 제공하기 위한 것이다.
컴퓨팅 파워가 극적으로 성장하고, 그래픽 처리 기술과 네트워크 기술이 고도화하면서 가상현실, 증강현실, 혼합현실이 우리 생활 곳곳에 구현되고 있다.
가상현실(VR)은 실제로 존재하지는 않지만 실제로 존재하는 것 같은 현실을 말한다. 가상현실은 현실세계의 객체 또는 배경 등을 컴퓨터를 사용해서 인공적으로 구현해 놓은 인공 세계 또는 그러한 기술을 의미한다.
증강현실(AR)은 현실세계에 가상 세계를 반영하거나 확장시키는 기술이다. 증강현실은 실세계의 객체에 가상 객체로 구현된 관련 정보를 합성하여 증강된 정보 서비스를 부가하는 개념이다.
혼합현실(MR)은 가상현실(VR)과 증강현실(AR)을 통합하고 사용자와의 인터랙션(상호작용)을 더욱 강화한 방식이다. 혼합현실(MR)은 현실세계에 가상 객체들을 섞고 결합시켜서 보여주는 면에서 증강현실과 유사한 점이 있다. 그러나, 증강현실에서는 현실 객체와 가상 객체의 구별이 뚜렷하고 현실 객체를 보완하는 형태로 가상 객체를 사용하는 것에 비해, 혼합현실에서는 가상 객체가 현실 객체와 동등한 성격으로 등장하고, 독립적인 형태로 운영되며 마치 가상현실과 같이 몰입감있게 보여진다는 점에서 증강현실과 확연히 구별된다.
이와 같이 컴퓨팅 파워와 그래픽 처리 기술 등에 힘입어 현실의 경험을 확장하는 기술들이 등장하였는데, 이러한 기술들을 확장현실(eXtended Reality, XR)이라 한다.
확장현실(XR)은 가상현실(VR)과 증강현실(AR)을 아우르는 혼합현실(MR) 기술을 망라하는 초실감형 기술 및 서비스를 의미한다. 이때, X는 변수를 의미하며, VR, AR, MR뿐만 아니라 미래에 등장할 또 다른 형태의 현실도 다 포괄할 수 있는 용어이다.
이러한 확장현실을 기반으로 하는 컨텐츠를 체험하는 사용자는 트래커(tracker) 등이 부착된 특정 단말(예컨대, HMD, 총, 칼, 소화기 등의 단말)을 사용하는 경우가 많다. 또한, 특정 단말을 넘어 여러 개의 축공간을 갖는 단말들끼리 붙는 경우가 많아지고 있다.
그런데, 상술한 특정 단말은 대부분 설계단계에서부터 회전축과 가상공간에서 사용할 회전축이 서로 일치되어 있다. 또한, 같은 공간에 같은 축 시스템을 사용하기 위해 구성되어 있다.
한편, 축 공간이 다른 단말기의 경우 미리 지정된 축 만큼의 단말기간의 회전각이 존재하며, 이를 연산하여 최종 축의 모습을 만들어낸다.
그런데, 종래의 방식의 경우, 물리적 또는 구조적 문제에 의해 두 축공간(즉, 트래커와 특정 단말의 각각의 축공간, 서로 결합된 단말들 각각의 축공간)에 이상이 생겼을 때 문제가 발생한다. 대체적으로 3DOF 공간의 경우 그 문제가 두드러지게 나타난다. 3DOF 축 공간의 경우 실행할 때마다 다른 결과값이 나오는 경우가 많다. 또는 주변의 전파 자기장의 변화로 인해 달라지는 경우도 존재한다. 이렇게 발생한 문제들은 사용자가 오류 발생을 인지하여 개발사 또는 운영사에 보고하기 전까지는 검증되지 않는다.
선행기술 1 : 대한민국 등록특허 제10-0953931호(혼합현실 구현 시스템 및 그 방법) 선행기술 2 : 대한민국 공개특허 제10-2019-0118373호(가상현실 체험 시스템 및 방법) 선행기술 3 : 대한민국 등록특허 제10-0900806호(컨텍스트 인식 증강 현실을 제공하기 위한 시스템 및 방법)
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 확장현실 시스템에서 단말기 내부의 센서와 단말기 외부의 센서의 축 정렬 상태를 자동으로 검증하도록 하는 확장현실 서비스 장치의 축 정렬 검증 장치 및 그 동작방법을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 축 정렬 검증 장치는, 단말기 및 트래커를 포함하는 클라이언트에게 확장현실 기반의 컨텐츠를 제공하는 확장현실 서비스 장치에 있어서, 상기 단말기에 설치된 제 1 센서의 축과 상기 트래커에 설치된 제 2 센서의 축의 정렬을 검증하는 축 정렬 검증부를 포함하되, 상기 축 정렬 검증부는, 상기 단말기 및 상기 트래커로부터 각각의 회전 정보를 수신하는 회전정보 수신부; 상기 단말기의 회전 정보 및 상기 트래커의 회전 정보 중에서 어느 하나의 회전 정보를 근거로 회전각 검사를 하여 오류 검출 동작이 필요한지를 파악하는 회전각 검사부; 상기 오류 검출 동작이 필요한 것으로 파악됨에 따라, 상기 단말기 및 상기 트래커의 각각의 회전 정보를 근거로 상기 제 1 센서와 상기 제 2 센서의 축 정렬 오류를 검출하는 오류 검출부; 및 상기 오류 검출부로부터의 축 정렬 오류 검출 신호에 근거하여 알람을 출력하는 알람부;를 포함한다.
상기 회전각 검사부는, 현재 검증시점에서의 트래커 회전각과 이전상태의 트래커 회전각 간의 회전차를 계산하고, 계산된 회전차를 근거로 오류 검출 동작이 필요한지를 파악할 수 있다.
상기 회전각 검사부는, 상기 계산된 회전차가 기설정된 제 1 임계치 이상이면 상기 오류 검출 동작이 필요한 것으로 파악할 수 있다.
상기 오류 검출부는, 상기 트래커로 예상한 이전상태에서 현재상태로의 단말기 회전차 및 상기 단말기의 이전상태에서 현재상태로의 회전차를 구하고, 상기 두 회전차를 근거로 상기 내부 센서와 상기 외부 센서의 축 정렬 오류를 검출할 수 있다.
상기 트래커로 예상한 이전상태에서 현재상태로의 단말기 회전차는, 현재 검증시점에서 트래커로 예상한 단말기의 회전각과 이전상태에서 트래커로 예상한 단말기의 회전각 간의 차이일 수 있다.
상기 현재 검증시점에서 트래커로 예상한 단말기의 회전각은 현재 검증시점에서의 트래커의 회전각, 및 미리 입력된 단말기와 트래커 사이의 회전 차이각을 근거로 구할 수 있고, 상기 이전상태에서 트래커로 예상한 단말기의 회전각은 이전상태에서의 트래커의 회전각, 및 미리 입력된 단말기와 트래커 사이의 회전 차이각을 근거로 구할 수 있다.
상기 단말기의 이전상태에서 현재상태로의 회전차는, 현재 검증시점에서의 단말기 회전각과 이전상태의 단말기 회전각 간의 차이일 수 있다.
상기 오류 검출부는, 상기 트래커로 예상한 이전상태에서 현재상태로의 단말기 회전차 및 상기 단말기의 이전상태에서 현재상태로의 회전차 간의 차이가 기설정된 제 2 임계치보다 크면 축 정렬 오류 검출 신호를 출력할 수 있다.
한편, 본 발명의 바람직한 실시양태에 따른 축 정렬 검증 기능을 포함한 확장현실 서비스 장치의 축 정렬 검증 방법은,
한편, 본 발명의 바람직한 실시양태에 따른 축 정렬 검증 기능을 포함한 확장현실 서비스 장치의 동작방법은, 단말기 및 트래커를 포함하는 클라이언트에게 확장현실 기반의 컨텐츠를 제공하는 확장현실 서비스 장치가 상기 단말기내의 제 1 센서와 상기 트래커내의 제 2 센서의 축 정렬을 검증하는 방법으로서, 상기 단말기 및 상기 트래커로부터 각각의 회전 정보를 수신하는 단계; 상기 단말기의 회전 정보 및 상기 트래커의 회전 정보 중에서 어느 하나의 회전 정보를 근거로 회전각 검사를 하여 오류 검출 동작이 필요한지를 파악하는 단계; 상기 오류 검출 동작이 필요한 것으로 파악됨에 따라, 상기 단말기 및 상기 트래커의 각각의 회전 정보를 근거로 상기 제 1 센서와 상기 제 2 센서의 축 정렬 오류를 검출하는 단계; 및 상기 축 정렬 오류를 검출하는 단계로부터의 축 정렬 오류 검출 신호에 근거하여 알람을 출력하는 단계;를 포함한다.
상술한 본 발명의 축 동기화 기능을 포함한 확장현실 서비스 장치의 축 동기화 방법은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 또한 상기한 축 동기화 방법은 컴퓨터에서 실행시키기 위한 프로그램으로 구현될 수 있고, 그 프로그램이 기록된 기록매체로 구현될 수 있다.
이러한 구성의 본 발명에 따르면, 확장현실 시스템에서 단말기 내부의 센서와 단말기 외부의 센서의 축 정렬 상태를 자동으로 검증하여 그 결과를 알려줄 수 있다. 즉, 사용자들이 불편함을 느끼기 전에 이상징후를 감지하여 알려줄 수 있다.
사용자들은 MR 환경에 익숙하지 않기 때문에 기술의 문제인지 다른 문제인지를 파악하지 못하는 경우가 많은데, 본 발명에 따르면 사용자의 피드백이 없더라도 축 정렬에 오류가 발생하였음을 손쉽게 감지할 수 있다.
오류 상황을 정확히 감지할 수 있으므로 사용자 행동패턴 정보와 함께 사용할 경우 UX 및 제품개선 및 흐름의 발전에 기여할 수 있다.
도 1은 본 발명의 실시예에 따른 축 정렬 검증 기능을 포함한 확장현실 서비스 장치가 적용된 확장현실 시스템의 구성도이다.
도 2는 본 발명에 의한 축 정렬 검증 기능을 포함한 확장현실 서비스 장치 개요도.
도 3은 도 1에 도시된 축 정렬 검증부의 내부 구성도이다.
도 4은 본 발명의 실시예에 따른 축 정렬 검증 기능을 포함한 확장현실 서비스 장치의 축 정렬 검증 방법을 개략적으로 설명하기 위한 플로우차트이다.
도 5는 도 4에 도시된 회전각 검사 수행 단계에서 오류 검출 수행 단계까지의 단계를 보다 구체적으로 설명하기 위한 플로우차트이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 축 정렬 검증 기능을 포함한 확장현실 서비스 장치가 적용된 확장현실 시스템의 구성도이다.
도 1의 확장현실 시스템은, 서버(50), 클라이언트(100), 및 네트워크(200)를 포함할 수 있다.
서버(50)에서 확장현실 기반의 컨텐츠(예컨대, 게임, 교육, 관광 등에 관련된 컨텐츠)를 네트워크(200)를 통해 클라이언트(100)에게로 보내면, 클라이언트(100)의 단말기의 디스플레이부를 통해 확장현실 기반의 영상이 디스플레이된다. 이에 사용자는 손에 쥐고 있는 컨트롤러를 조작하여 확장현실 기반의 컨텐츠(예컨대, 게임)를 즐기게 된다.
클라이언트(100)는 사용자가 사용하는 것으로서, 소정의 게임 룸에 비치될 수 있다.
도 1에는 클라이언트(100)를 하나만 도시하였는데, 이는 도면의 이해를 돕기 위해 간소화시킨 것일 뿐, 실제로는 다수의 클라이언트가 존재할 것이다. 예를 들어, 게임 룸마다 하나 이상의 클라이언트(100)가 존재할 수 있다.
클라이언트(100)는 컨트롤러(10), 단말기(30)가 장착된 HMD(20), 및 트래커(40)를 포함할 수 있다.
컨트롤러(10)는 사용자의 행동을 반영하고, 사용자의 의지를 전달할 수 있다.
예를 들어, 컨트롤러(10)로는 동작인식 기반의 컨트롤러, 물리 컨트롤러, 부착형 동작인식 기반의 컨트롤러, 뇌파인식 기반의 컨트롤러 등이 있을 수 있다.
동작인식 기반의 컨트롤러는 사용자들의 위치가 정확히 식별되었을 경우에 사용됨이 바람직하다. 먼저, 적외선 또는 이미지 인식방법을 통해서 여러 대상들의 동작을 측정한다. 그리고, 동작이 일어난 대상들의 위치를 앞서 구해낸 위치와 비교하여 동작정보를 서버(50)에 대입하는 방식으로 사용자의 의지를 반영할 수 있다.
3DOF, 6DOF 물리 컨트롤러는 물리 버튼이 있고, 손에 쥘 수 있는 컨트롤러를 가리킨다. 내장된 여러 가지 칩(자이로, 가속도, 컴퍼스, 이미지센서 등)의 정보를 사용자 또는 서버(50)에 전달함으로서 사용자의 의지를 반영할 수 있다.
부착형 동작인식 기반의 컨트롤러는 사용자의 손목, 허리, 무릎, 발 등에 부착하여 측위되는 시스템으로서 외부에 관측장비가 존재한다는 것은 동작인식 기반의 컨트롤러와 유사하지만, 그 대상이 동작이 아닌 컨트롤러에 해당한다.
뇌파인식 기반의 컨트롤러는 단말기(30)에 뇌파를 감지하는 모듈이 결합되거나 추가부착되는 형태로서 사용자의 행동을 외적으로 판단하지 않고, 뇌파의 결과와 신체상태로만 판단하여 사용자의 의지를 반영할 수 있다.
HMD(Head Mounted Display)(20)는 사용자의 머리에 착용되며, 사용자 주위의 영상을 촬영하여 실제 영상정보를 획득할 수 있는 단말기(30)가 장착된다. 도 1에서는 HMD라고 하였으나, FMD(Face Mounted Display)이어도 무방하다.
단말기(30)는 센서(30a)를 포함하여 사용자의 움직임을 감지하고, 디스플레이되는 실제영상정보 상에 3차원 가상객체를 표시할 수 있다.
여기서, 센서(30a)는 해당 단말기(30)의 이동 위치 및 방향, 이동 속도 등을 감지할 수 있다. 단말기(30)가 장착된 HMD(20)는 사용자의 머리에 착용되므로, 한편으로 센서(30a)는 사용자의 움직임에 따라 해당 사용자의 이동 위치 및 방향, 이동 속도 등을 감지한다고 볼 수 있다. 즉, 사용자의 움직임과 단말기(30)의 움직임을 동일한 것으로 간주할 수 있다. 센서(30a)는 내부 센서라고 할 수 있다.
예를 들어, 센서(30a)는 6-DOF 센싱으로서, 9-AXIS(Gyroscope, Accelerometer, Compass)의 센서 퓨전(Sensor Fusion)된 값을 사용할 수 있다.
6-DOF(Degree of freedom)는 6점 자유도라는 뜻으로, XYZ로 이루어진 3차원 좌표를 3DOF 라고 한다. 일반적으로 3DOF는 단말기(30)의 회전값을 사용할 수 있다는 의미이며, 6DOF는 회전값과 위치값을 사용할 수 있다는 의미이다.
9-AXIS는 9개의 축을 가리키며, X, Y, Z, W 등의 한 개의 축을 1AXIS로 부른다. 일반적으로 각각 Gyroscope의 xyz, Accelerometer의 xyz, Compass의 xyz를 합쳐서 9AXIS라 칭한다.
단말기(30)는 서버(50)에 접속하여 서버(50)에서 제공하는 컨텐츠, 사용자 등의 정보를 확장현실(XR)로 표현할 수 있다.
단말기(30)는 서버(50)와 쌍방향 통신이 가능하며, 현실정보의 투영 및 함께 플레이하는 사용자들의 정보가 투영가능하다.
예를 들어, 단말기(30)는 스마트폰 등과 같은 모바일 기기일 수 있다.
상술한 설명에서는 단말기(30)가 HMD(20)에 장착되는 것으로 하여 HMD(20)와 단말기(30)를 각각 도시하였으나, 단말기(30)가 장착된 HMD(20)를 단말기로 통칭할 수도 있다. 만약, 단말기(30)가 장착된 HMD(20)를 단말기로 통칭하였을 경우, 단말기(30)는 모바일 기기로 지칭할 수 있다.
도 1에는 도시하지 않았지만, 단말기(30)는 센서(30a) 이외로, 서버(50)와 통신 기능을 수행하는 통신부, 사용자 주변을 촬영하는 카메라, 3차원으로 랜더링된 가상 객체 또는 단말기(30)의 움직임 좌표에 대응되는 3차원 가상 객체 이미지가 저장되어 있는 가상 객체 DB, 확장현실 영상을 사용자의 시야에 제공하기 위한 디스플레이부, 및 3차원 가상 객체를 실제 영상정보상에 중첩하여 디스플레이부에 표시되게 하는 프로세서 등을 포함할 수 있다.
트래커(tracker)(40)는 HMD(20)에 설치될 수 있다.
트래커(40)는 게임 공간 내부에 설치된 송신부(도시 생략)로부터의 소정의 전파를 수신할 수 있다. 송신부는 게임 공간 내부에 다수개 설치됨이 바람직하다.
예를 들어, 송신부는 적외선 레이저를 방사할 수 있다. 이 경우, 송신부는 세로로 회전하는 모터와 가로로 회전하는 모터를 구비한다. 세로 회전 모터에는 가로방사형 적외선 레이저가 부착되고, 가로 회전 모터는 세로 방사형 적외선 레이저가 부착되어 있다. 적외선 레이저는 일정 주기로 가로와 세로를 방사하는데, 방사가 끝나면 전체 적외선을 방사하여 한 종류의 방사가 끝났음을 알린다.
이와 같이 송신부에서 송신되는 전파(적외선 레이저)는 트래커(40)에서 수신된다. 트래커(40)에는 대략 15개 ~ 100개 정도의 센서(40a)가 방사형으로 위치할 수 있다. 이 센서(40a)들은 적외선 레이저들을 수신하는 시간의 차이를 계산하여 해당 트래커(40)의 위치를 특정할 수 있다. 적외선을 발사한 대상이 같기 때문에 트래커(40)들은 모든 정보를 적외선 송신기를 타겟으로 계산할 수 있어 같은 시간에 공간상의 위치를 도출해낼 수 있다. 여기서, 센서(40a)는 외부 센서라고 할 수 있다.
이와 같이 트래커(40)는 송신부로부터의 전파를 수신하여 시간에 따른 단말기(30)의 움직임(위치값, 회전값) 좌표를 측정하고, 측정된 단말기(30)의 움직임 좌표를 서버(50)에게로 전송할 수 있다.
즉, 단말기(즉, 사용자)의 움직임 좌표를 보다 정확히 산출하기 위해, 본 발명의 실시예에서는 내부 센서(즉, 단말기(30)의 센서(30a))를 통해 단말기(30)의 움직임 좌표를 측정하고, 또한 외부 센서(즉, 트래커(40)의 센서(40a))를 통해 단말기(30)의 움직임 좌표를 측정한다.
서버(50)는 단말기별 식별코드를 분배할 수 있다.
서버(50)는 클라이언트(100)에게로의 확장현실 기반의 컨텐츠의 제공 및 실행을 제어하고, 컨트롤러(10)와 단말기(30)간의 연결을 제어하고, 단말기(30)의 상태를 제어할 수 있다.
서버(50)는 단말기 화면의 스트리밍, 및 단말기의 카메라를 제어할 수 있다.
서버(50)는 단말기(30)로부터의 해당 단말기(즉, 사용자)의 움직임 좌표 및 트래커(40)로부터의 단말기(즉, 사용자) 움직임 좌표를 근거로 단말기(30)의 현재 움직임 좌표를 산출하여 단말기(30)에게로 전송할 수 있다.
물론, 서버(50)는 사용자간을 연결시켜 주는 것을 근간으로 하며, 게임 실행, 중단 및 팀 배정, 게임 종류 선택, 컨트롤러 지정 등의 전체적인 시스템 설정을 진행할 수 있다.
특히, 서버(50)는 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(즉, 트래커의 센서(40a))간의 축 정렬 상태를 검증할 수 있는 축 정렬 검증부(60)를 포함한다.
즉, 확장현실 서비스를 이용하다 보면 물리적 또는 구조적인 문제로 인해 단말기(30)의 센서(30a)의 축과 트래커(40)의 센서(40a)의 축이 어긋나서 두 축간의 정렬에 오류가 발생하게 된다. 이와 같이 단말기(30)의 센서(30a)의 축과 트래커(40)의 센서(40a)의 축의 정렬에 오류가 발생하면 두 센서(30a, 40a)는 서로 다른 결과값(회전 정보)을 출력하게 될 것이다. 이와 같이 두 센서(30a, 40a)가 서로 다른 결과값을 출력하게 되면 서버(50)는 사용자의 움직임 좌표를 부정확하게 산출하여 단말기에게로 전송할 것이다. 그리하면, 사용자는 이질적인 공간감에서 오는 부딛힘과 거북함 등을 느낄 수 있다.
따라서, 이러한 문제를 해결하기 위해, 단말기(30)의 센서(30a)의 축과 트래커(40)의 센서(40a)의 축의 정렬을 검증하는 축 정렬 검증부(60)가 필요하다.
축 정렬 검증부(60)를 이용하게 되면, 확장현실 시스템에서 단말기 내부의 센서와 단말기 외부의 센서의 축 정렬 상태를 자동으로 검증하여 그 결과를 후단의 오류수정 로직(도시 생략)에게 알려줄 수 있으므로, 사용자의 피드백이 없더라도 오류 상황에 대한 대처를 신속하게 행할 수 있을 것이다.
축 정렬 검증부(60)의 내부 구성에 대해서는 후술하기로 한다.
상술한 서버(50)는 본 발명의 청구범위에 기재된 확장현실 서비스 장치의 일 예가 될 수 있다.
도 1에서, 네트워크(200)는 3가지 체계를 포함할 수 있다.
예를 들어, 네트워크(200)는 일반 네트워크(일반적인 반응), 고속 네트워크(빠른 반응), 대용량 네트워크(빠른 속도, 느린 반응)의 3가지 체계를 포함할 수 있다. 3가지 네트워크 체계는 독립된 네트워크 TCP/IP 소켓을 가지고 있다.
여기서, 일반 네트워크는 일반적으로 구성하는 온라인 서버의 네트워크 구성을 말하며, 서버(50)와 클라이언트(100)가 이질적이지 않은 범위에서 버퍼링을 실시할 수 있는 네트워크를 의미한다. 버퍼링이란 너무 잦은 데이터를 전송하거나 소량의 데이터를 전송할 때, 네트워크(200)의 부하를 줄이기 위해 한 개의 데이터로 저장하여 보내는 방식을 말한다.
본 발명의 실시예는 일반 네트워크에서 최대패킷량(MTU)을 기준으로 구성될 수 있으며, 이때의 데이터는 최대 0.05초만큼 데이터 전송을 대기한 뒤 전송될 수 있다. 1초에 최소 20번의 데이터 전송이 이루어지며, 이는 게임 데이터(예컨대, "3D객체 A가 좌표(0,1,0)에 생성된다", "상대편 B로부터 당신 A가 공격당했다", "당신의 HP가 50%가 되었다" 등)를 전송하는데 무리가 없는 수준일 것이다.
고속 네트워크는 일반 네트워크와는 다르게 데이터 버퍼링을 실시하지 않으며, 입력된 데이터를 최대한 빨리 전달하는 것이 핵심이다. 고속 네트워크는 일반 네트워크와 동일하게 TCP/IP 프로토콜을 사용한다. 그렇기에 소규모 패킷의 다량의 전송으로 네트워크(200)에 부하가 발생할 수 있기 때문에 잘 사용되지 않는다.
고속 네트워크는 일반 네트워크처럼 필요한 시점에 언제든 전송하게 되면 네트워크 부하가 증가하게 되므로, 필요한 스케줄에 따라 주기적으로 전송하는 시스템으로 전송 로직을 구현하는 것이 바람직하다. 예를 들어, 고속 네트워크는 센서 데이터, 식별 번호 등과 같이 일정 종류만 한정하여 전송하는 것이 좋을 것이다.
광범위 네트워크를 이용할 시에는 큰 의미가 없지만, 고속 네트워크는 서버(50)와 클라이언트(100)가 직접 연결(공유기, WIFI 내부망)을 하고 있는 상황에서는 유의미한 속도가 발현될 수 있다.
고속 네트워크는 전송/수신 까지 유선망인 경우에는 대략 0~1ms 정도의 데이터 전송 속도를 보일 수 있고, WIFI망에서는 대략 1ms~30ms 정도까지의 데이터 전송 속도를 보일 수 있다. WIFI망에서 평균 4ms 정도의 전송속도를 유지할 것이다.
상술한 고속 네트워크라 명명한 개념은 원시적인 네트워크의 개념이기에 필요에 의해서는 사용이 되지 않을 수 있지만, VR이라는 특이성과 내부망이라는 특이성이 더해져 필수 요소로 적용된다고 이해하면 된다.
대용량 네트워크는 고속 네트워크와 상반되는 개념으로서, 일반적인 웹파일 대용량 전송 프로토콜을 따르고 있다. 대용량 네트워크는 서버(50) 또는 클라이언트(100)에서 생성되거나 보유중인 데이터를 전송하는 수단으로서, 실행파일 버전 관리부터 내부 컨텐츠 데이터까지 다양하게 데이터를 송수신할 수 있게 한다.
대용량 네트워크는 일반 네트워크보다 더 큰 버퍼를 가지고 전송을 시도하며, 전송버퍼가 커진 만큼 전송속도가 빠르다.
일반적인 온라인 PC게임, 모바일 게임의 경우 하나의 네트워크로만 구성되는 경우가 많으며, 그렇지 않다면 일반 네트워크와 대용량 네트워크의 결합으로 구성됨이 바람직하다.
도 2는 본 발명에 의한 축 정렬 검증 기능을 포함한 확장현실 서비스 장치 개요도이다.
도 2에 도시된 바와 같이, 설계 단계부터 단말기(30)의 회전축과 가상공간(컨텐츠)에서 사용할 회전축이 일치해 있는 상태로 가정하고, 트래커를 기준으로 오류를 검증하는 것을 예시한 것이다.
단말기의 회전축(A)과, 단말기 외부센서인 트래커(40)의 회전축(B)의 정렬상태를 컨텐츠 데이터의 매 프레임당 검증하여 오차 발생시 이를 알려 오류 수정이 가능하도록 하기 위한 것이다.
단말기의 내부센서와 단말기 외부 트래커의 센서로부터 각각의 회전 정보를 입력받아, 트래커의 회전축과 단말기의 회전축 사이의 오프셋 값에 의햐 결정되는 정적 회전값과, 단말기 및 트래커의 이전 프레임 회전각 대비 현재 프레임 회전각과, 각각의 회전각도 차이를 검출하는 회전 연산부(70)와;
상기 회전 연산부(70)에 의해 검출된 단말기와 트래커의 회전각 및 정적 회전값에 기초하여 트래커의 회전각을 기반으로 검출되는 단말기의 예상 회전각과, 단말기에서 검출되는 회전각의 차이와 미리 설정된 임계값을 비교하여 축 정렬 오류여부를 검증하는 축 정렬 검증부(60)와;
상기 축 정렬 검증부(60)에서 축 정렬 오류로 판단된 경우, 축 정렬 오류를 수정하여 수정값을 상기 정적 회전값에 반영하는 오류 수정부(80)와,
상기 축정렬 검증부(60)에서 축 정렬 검증에 오류가 없다고 판단된 경우, 트래커와 단말기의 각 회전각에 따른 좌표 정보를 최종 상태값으로 생성하여 제공하는 최종 상태값 생성부(90)를 포함한다.
상기 축 정렬 검증부(60)는,
단말기의 이전 프레임 회전각 대비 현재 프레임 회전각을 검출하는 단계;
상기 단말기의 이전 프레임의 회전각과 현재 회전각의 차이가 미리 설정된 오류 검증 실행 여부를 판단하기 위한 설정값 이상인지를 판단하는 단계;
상기 회전각 차이가 오류 검증 설정값 이상인 경우, 상기 트래커의 이전 프레임 회전각 대비 현재 프레임 회전각을 검출하는 단계;
상기 트래커의 이전프레임 회전각 및 현재프레임 회전각에 상기 트래커와 단말기 축의 오프셋 값인 정적 회전값을 반영하여 단말기의 이전프레임 예상 회전각과, 현재프레임 예상 회전각을 계산하는 단계;
상기 단말기의 예상회전각 차이와 상기 단말기의 검출 회전각 차이를 비교하는 단계;
예상 회전각 차이와 검출 회전각 차이가 미리 설정된 임계치 이상의 차이가 나는 경우 축 정렬 오류 수정을 하도록 알림을 출력하는 단계; 를 포함한다.
도 3은 도 1에 도시된 축 정렬 검증부(60)의 내부 구성도이다.
축 정렬 검증부(60)는 회전정보 수신부(61), 회전각 검사부(62), 오류 검출부(63), 알람부(64), 및 제어부(65)를 포함할 수 있다.
회전정보 수신부(61)는 단말기(30)의 회전 정보(회전각) 및 트래커(40)의 회전 정보(회전각)를 실시간 또는 주기적으로 수신할 수 있다.
회전각 검사부(62)는 트래커(40)의 회전 정보를 근거로 회전각 검사를 하여 오류 검출이 필요한지를 파악한다.
즉, 회전각 검사부(62)는 회전정보 수신부(61)에 수신된 트래커(40)의 회전 정보(회전각)를 근거로 트래커(40)의 회전차(daA)를 계산하고, 계산된 트래커(40)의 회전차(daA)가 기설정된 제 1 임계치(recordAngle)보다 큰지를 검사한다. 그리고, 회전각 검사부(62)는 검사 결과를 제어부(65)에게로 보낸다.
여기서, 회전각 검사부(62)는 트래커(40)의 회전차(daA)를 계산하기 위해, 현재 검증시점에서의 트래커 회전각(rA)과 이전상태의 트래커 회전각(brA) 간의 회전차를 구한다. 구해진 회전차(즉, 현재 검증시점에서의 트래커 회전각(rA)과 이전상태의 트래커 회전각(brA) 간의 회전차)를 트래커(40)의 회전차(daA)라고 한다. 이를 프로그램적으로 표현하면 예를 들어, 트래커(40)의 회전차(daA)는 "float diff_angle_A = Quaternion.Angle(before_rA, rA)"와 같이 표현할 수 있다.
그리고, 제 1 임계치는 대략 20 ~ 30 사이에서 설정될 수 있는데, 본 발명의 실시예에서는 제 1 임계치가 "20"으로 기설정되어 있을 수 있다.
상기에서 제 1 임계치를 "20"으로 설정한 것으로 예시하였으므로, 이 경우에는 사용자가 머리를 21도 ~ 30도 이상 회전할 때마다 축 정렬 검증을 위한 오류 검출이 1번 수행된다는 것을 의미할 수 있다. 즉, 사용자가 머리를 21도 이상 회전하였을 경우에는 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(40a)의 현재의 축 정렬이 올바른지를 검증하기 위한 오류 검출을 수행한다고 볼 수 있다.
물론, 사용자가 머리를 20도 이상 회전할 때마다 오류 검출 동작이 수행되도록 하기 위해, 회전각 검사부(62)는 계산된 트래커(40)의 회전차(daA)가 기설정된 제 1 임계치(recordAngle) 이상인지를 검사하는 것으로 하여도 된다.
따라서, 회전각 검사부(62)는 트래커(40)의 회전차(daA)가 제 1 임계치 이상이면 그에 상응하는 신호를 제어부(65)에게로 보낸다. 그에 따라, 제어부(65)는 오류 검출부(63)에서의 오류 검출 동작이 필요한 것으로 판단하여 오류 검출이 수행되도록 제어한다. 필요에 따라서, 회전각 검사부(62)는 트래커(40)의 회전차(daA)가 제 1 임계치 이상임을 의미하는 신호를 제어부(65)를 거치지 않고 오류 검출부(63)에게로 직접 전송할 수도 있다.
물론, 회전각 검사부(62)는 트래커(40)의 회전차(daA)가 제 1 임계치 미만이면 그에 상응하는 신호를 제어부(65)에게로 보낼 것이다. 그러면, 제어부(65)는 오류 검출부(63)에서의 오류 검출 동작이 필요없는 것으로 판단하여 오류 검출을 수행시키지 않는다.
상술한 설명에서는 회전각 검사부(62)가 트래커(40)의 회전 정보를 근거로 회전각 검사를 하여 오류 검출 동작이 필요한지를 파악하는 것으로 하였으나, 필요에 따라서는 단말기(30)의 회전 정보를 근거로 회전각 검사를 하여 오류 검출 동작이 필요한지를 파악하는 것으로 할 수도 있다. 그에 따라, 제 1 임계치에 비교될 단말기(30)의 회전차(daB)는 이전상태의 단말기(30)의 회전각(brB)와 현재 검증시점의 단말기(30)의 회전각(rB)를 근거로 구할 수 있을 것이다.
오류 검출부(63)는 오류 검출 동작을 수행하는 경우 트래커(40)로 예상한 이전상태에서 현재상태로의 단말기 회전차(drD) 및 단말기(30)의 이전상태에서 현재상태로의 회전차(drB)를 각각 구하고, 두 회전차(drD, drB)의 차이(daD; 최종 회전차라고 함)가 제 2 임계치(limitAngle)보다 큰 지를 판단한다.
여기서, 트래커(40)로 예상한 이전상태에서 현재상태로의 단말기 회전차(drD)는 현재 검증시점에서 트래커(40)로 예상한 단말기(30)의 회전각(rD)과 이전상태에서 트래커(40)로 예상한 단말기(30)의 회전각(brD) 간의 차이를 구함에 의해 얻을 수 있다. 이를 프로그램적으로 표현하면 예를 들어, "Quaternion diff_rD = before_rD.Inverse() * rD"와 같이 표현할 수 있다.
그리고, 현재 검증시점에서 트래커(40)로 예상한 단말기(30)의 회전각(rD)은 현재 검증시점에서의 트래커(40)의 회전각(rA), 및 미리 입력된 단말기(30)와 트래커(40) 사이의 회전 차이각(rC)을 이용하여 구할 수 있다. 이를 프로그램적으로 표현하면 예를 들어, "Quaternion rD = rA * rC"와 같이 표현할 수 있다.
이전상태에서 트래커(40)로 예상한 단말기(30)의 회전각(brD)은 이전상태에서의 트래커(40)의 회전각(brA), 및 미리 입력된 단말기(30)와 트래커(40) 사이의 회전 차이각(rC)을 이용하여 구할 수 있다. 이를 프로그램적으로 표현하면 예를 들어, "Quaternion before_rD = before_rA * rC"와 같이 표현할 수 있다.
한편, 단말기(30)의 이전상태에서 현재상태로의 회전차(drB)는 현재 검증시점에서의 단말기 회전각(rB)과 이전상태의 단말기 회전각(brB) 간의 차이를 구함에 의해 얻을 수 있다. 이를 프로그램적으로 표현하면 예를 들어, "Quaternion diff_rB = before_rB.Inverse() * rB"와 같이 표현할 수 있다.
오류 검출부(63)는 두 회전차(drD, drB)의 차이(daD; 최종 회전차)가 제 2 임계치(limitAngle)보다 크면 그에 상응하는 신호를 제어부(65)에게로 보낸다. 그에 따라, 제어부(65)는 현재의 축 정렬(즉, 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(40a)의 현재의 축 정렬)이 불량한 것으로 판단하여 알람부(64)를 구동시켜 알람 신호를 출력시킨다. 이를 프로그램적으로 표현하면 예를 들어, 최종 회전차(daD)는 "float diff_angle_D = Quaternion.Angle(diff_rD, diff_rB)"와 같이 표현할 수 있다.
물론, 오류 검출부(63)는 두 회전차(drD, drB)(즉, diff_rD, diff_rB)의 차이(daD)가 제 2 임계치 이하이면 그에 상응하는 신호를 제어부(65)에게로 보낼 것이다. 이 경우에는 제어부(65)는 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(40a)의 현재의 축 정렬이 올바른 것으로 판단하여 알람 동작을 수행시키지 않는다.
즉, "drD = drB"인 상태가 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(40a)의 축 정렬이 완벽하게 일치하는 상태일 것이다. 만약, 단말기(30) 및 트래커(40)에서의 정보 전송속도 및 적용속도가 1밀리초 단위로 다르더라도 두 회전차(drD, drB)의 값은 완벽하게 일치하기 힘들 것이다. 그에 따라, 본 발명의 실시예에서는 제 2 임계치를 "1"로 설정한다.
상술한 오류 검출부(63)는 컨텐츠를 이용할 경우 대략 1초에 1 ~ 5회 정도 호출되어 동작될 수 있다. 오류 검출부(63)는 기기(예컨대, 단말기(30))를 휴면상태에 두거나 사용자가 가만히 있게 되면 호출되지 않을 것이다.
알람부(64)는 제어부(65)로부터의 제어신호에 근거하여 알람 신호를 출력한다. 알람부(64)의 알람 신호는 오류수정 로직(도시 생략)에게로 전송될 것이다.
그에 따라, 오류수정 로직에서는 현재의 축 정렬에 대한 수정값을 생성하여 적용할 것이다.
물론, 알람부(64)가 알람 신호를 출력할 때 두 회전차(drD, drB)의 차이(daD)를 함께 출력할 수 있다. 이와 같이 하면 오류수정 로직은 두 회전차(drD, drB)의 차이(daD)를 근거로 축 정렬을 바로 수행할 수 있을 것이다.
제어부(65)는 축 동기화부(60)의 전체적인 동작을 제어한다.
상술한 설명에서는 축 정렬 검증부(60)가 서버(50)에 포함되는 것으로 설명하였으나, 필요에 따라서 축 정렬 검증부(60)는 클라이언트(100)에 포함될 수도 있다.
도 4은 본 발명의 실시예에 따른 축 정렬 검증 기능을 포함한 확장현실 서비스 장치의 축 정렬 검증 방법을 개략적으로 설명하기 위한 플로우차트이다. 이하에서 설명되는 축 정렬 검증 기능을 포함한 확장현실 서비스 장치의 축 정렬 검증 방법은 서버(50)내의 축 정렬 검증부(60)에서 행해지는 것으로 이해하면 된다.
먼저, 축 정렬 검증부(60)의 회전정보 수신부(61)는 단말기(30)의 회전 정보(회전각 포함) 및 트래커(40)의 회전 정보(회전각 포함)를 실시간 또는 주기적으로 수신한다(S10).
이어, 축 정렬 검증부(60)의 회전각 검사부(62)는 트래커(40)의 회전 정보를 근거로 회전각 검사를 하여 오류 검출이 필요한지를 파악한다(S20, S30).
즉, 회전각 검사부(62)는 회전정보 수신부(61)에 수신된 트래커(40)의 회전 정보를 근거로 트래커(40)의 회전차(daA)를 계산하고, 계산된 트래커(40)의 회전차(daA)가 기설정된 제 1 임계치(recordAngle) 이상인지를 검사한다.
검사 결과, 트래커(40)의 회전차(daA)가 제 1 임계치 이상이면 회전각 검사부(62)는 그에 상응하는 신호를 제어부(65)에게로 보낸다. 이 경우, 제어부(65)는 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(40a)의 현재의 축 정렬이 올바른지를 검증하기 위한 오류 검출 동작이 필요한 것으로 판단한다.
상술한 설명에서는 회전각 검사부(62)가 트래커(40)의 회전 정보를 근거로 회전각 검사를 하여 오류 검출 동작이 필요한지를 파악하는 것으로 하였으나, 필요에 따라서는 단말기(30)의 회전 정보를 근거로 회전각 검사를 하여 오류 검출 동작이 필요한지를 파악하는 것으로 할 수도 있다.
이와 같이 오류 검출 동작이 필요하면(S30에서 "Yes") 오류 검출부(63)는 오류 검출 동작을 수행하게 된다.
즉, 오류 검출부(63)는 실질적으로 축 정렬에 오류가 발생하였는지를 파악하기 위해, 트래커(40)로 예상한 이전상태에서 현재상태로의 회전차(drD) 및 단말기(30)의 이전상태에서 현재상태로의 회전차(drB)를 각각 구하고, 두 회전차(drD, drB)의 차이(daD)가 제 2 임계치(limitAngle)보다 큰지를 판단한다(S40).
오류 검출부(63)는 두 회전차(drD, drB)의 차이(daD)가 제 2 임계치보다 크면 그에 상응하는 신호를 제어부(65)에게로 보낸다. 그에 따라, 제어부(65)는 현재의 축 정렬(즉, 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(40a)의 현재의 축 정렬)이 불량한 것으로 판단하여 알람부(64)를 구동시켜 알람 신호를 출력시킨다. 필요에 따라서, 오류 검출부(63)는 두 회전차(drD, drB)의 차이(daD)가 제 2 임계치보다 큼을 의미하는 신호를 제어부(65)를 거치지 않고 알람부(64)에게로 직접 전송하여도 무방하다.
그에 따라, 알람부(64)는 알람 신호를 출력하게 되는데, 알람 신호는 오류수정 로직(도시 생략)에게로 전송된다(S50).
그에 따라, 오류수정 로직에서는 현재의 축 정렬에 대한 수정값을 생성하여 적용할 것이다.
도 5는 도 4에 도시된 회전각 검사 수행 단계(S20)에서 오류 검출 수행 단계까지의 단계(S40)를 보다 구체적으로 설명하기 위한 플로우차트이다.
회전정보 수신부(61)가 단말기(30)의 회전 정보(회전각 포함) 및 트래커(40)의 회전 정보(회전각 포함)를 수신하게 되면, 회전각 검사부(62)는 먼저 초기화 작업을 수행한다. 즉, 최초의 검증시점의 회전각을 이후의 회전각 검사로직에 사용하기 위해 최초의 검증시점의 트래커(40)의 회전각(rA) 및 단말기(30)의 회전각(rB)을 각각의 변수(예컨대, before_rA, before_rB)에 기록해 둔다. 예를 들어, 최초의 검증시점의 트래커 회전각(rA)을 이전상태의 트래커 회전각(brA)로 하고, 최초의 검증시점의 단말기 회전각(rB)을 이전상태의 단말기 회전각(brB)로 한다.
이후, 후속하는 검증시점(즉, 현재의 검증시점이 될 수 있음)이 되면 회전각 검사부(62)는 현재 검증시점에 회전정보 수신부(61)에 수신된 트래커(40)의 회전 정보를 근거로 트래커(40)의 회전차(daA)를 계산한다. 즉, 회전각 검사부(62)는 트래커(40)의 회전차(daA)를 계산하기 위해, 현재 검증시점에서의 트래커 회전각(rA)과 이전상태의 트래커 회전각(brA) 간의 회전차(daA)를 구한다(S100).
이어, 회전각 검사부(62)는 계산된 트래커(40)의 회전차(daA)가 기설정된 제 1 임계치(recordAngle)보다 큰지를 검사한다(S110). 여기서, 제 1 임계치는 대략 20 ~ 30 사이에서 설정될 수 있는데, 본 발명의 실시예에서는 제 1 임계치가 "20"으로 기설정되어 있을 수 있다. 다시 말해서, 사용자가 머리를 21도 ~ 30도 이상 회전할 때마다 축 정렬 검증을 위한 오류 검출 동작을 수행하도록 하기 위함이다. 즉, 사용자가 머리를 21도 ~ 30도 이상 회전하였을 경우에는 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(40a)의 현재의 축 정렬이 올바른지를 검증하기 위한 오류 검출 동작을 수행하는 것으로 볼 수 있다. 물론, 사용자가 머리를 20도 이상 회전할 때마다 오류 검출 동작이 수행되도록 하기 위해, 회전각 검사부(62)는 계산된 트래커(40)의 회전차(daA)가 기설정된 제 1 임계치(recordAngle) 이상인지를 검사하는 것으로 하여도 된다.
만약, 계산된 트래커(40)의 회전차(daA)가 기설정된 제 1 임계치(recordAngle) 미만이면 회전각 검사부(62)는 그에 상응하는 신호를 제어부(65)에게로 보내고, 이에 의해 제어부(65)는 현재의 검증시점에서의 더 이상의 검증을 수행하지 않고 후속의 검증시점(S120)으로 이동하게 된다. 상술한 트래커(40)의 회전차(daA)가 제 1 임계치 미만인 것은 오류 검출부(63)에서의 오류 검출이 필요없음을 의미한다.
이에 반해, 계산된 트래커(40)의 회전차(daA)가 기설정된 제 1 임계치(recordAngle) 이상이면 회전각 검사부(62)는 그에 상응하는 신호를 제어부(65)에게로 보낸다. 그에 따라, 제어부(65)는 오류 검출부(63)에게로 오류 검출 동작을 명령한다.
이에, 오류 검출부(63)는 오류 검출 동작을 수행함에 있어서, 먼저 트래커(40)로 예상한 이전상태에서 현재상태로의 단말기 회전차(drD) 및 단말기(30)의 이전상태에서 현재상태로의 회전차(drB)를 각각 구한다(S130).
여기서, 트래커(40)로 예상한 이전상태에서 현재상태로의 단말기 회전차(drD)는 현재 검증시점에서 트래커(40)로 예상한 단말기(30)의 회전각(rD)과 이전상태에서 트래커(40)로 예상한 단말기(30)의 회전각(brD) 간의 차이를 구함에 의해 얻을 수 있다. 현재 검증시점에서 트래커(40)로 예상한 단말기(30)의 회전각(rD)은 현재 검증시점에서의 트래커(40)의 회전각(rA), 및 미리 입력된 단말기(30)와 트래커(40) 사이의 회전 차이각(rC)을 이용하여 구할 수 있다. 이전상태에서 트래커(40)로 예상한 단말기(30)의 회전각(brD)은 이전상태에서의 트래커(40)의 회전각(brA), 및 미리 입력된 단말기(30)와 트래커(40) 사이의 회전 차이각(rC)을 이용하여 구할 수 있다.
한편, 단말기(30)의 이전상태에서 현재상태로의 회전차(drB)는 현재 검증시점에서의 단말기 회전각(rB)과 이전상태의 단말기 회전각(brB) 간의 차이를 구함에 의해 얻을 수 있다.
이어, 오류 검출부(63)는 두 회전차(drD, drB)의 차이 즉, 최종 회전차(daD)를 구한다.
그리고 나서, 오류 검출부(63)는 최종 회전차(daD)와 기설정된 제 2 임계치를 서로 비교한다(S140).
만약, 최종 회전차(daD)가 제 2 임계치 이하이면 오류 검출부(63)는 그에 상응하는 신호를 제어부(65)에게로 보내고, 이에 의해 제어부(65)는 현재의 검증시점에서의 더 이상의 검증을 수행하지 않고 후속의 검증시점(S120)으로 이동하게 된다.
반대로, 최종 회전차(daD)가 제 2 임계치보다 크면 오류 검출부(63)는 그에 상응하는 신호를 제어부(65)에게로 보낸다. 그에 따라, 제어부(65)는 현재의 축 정렬(즉, 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(40a)의 현재의 축 정렬)이 불량한 것으로 판단한다(S150). 여기서, 현재의 축 정렬이 불량한 것으로 판단된다는 것은 단말기(30) 내부의 센서(30a)와 단말기 외부의 센서(40a)의 현재의 축 정렬을 바르게 수정할 필요가 있음을 의미한다.
이후, 제어부(65)는 알람부(64)를 구동시켜 알람 신호를 출력시킨다.
또한, 상술한 본 발명의 축 정렬 검증 기능을 포함한 확장현실 서비스 장치의 축 정렬 검증 방법은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 컨트롤러 20 : HMD
30 : 단말기 40 : 트래커
50 : 서버 60 : 축 정렬 검증부
61 : 회전정보 수신부 62 : 회전각 검사부
63 : 오류 검출부 64 : 알람부
65 : 제어부 100 : 클라이언트
200 : 네트워크 30a : 센서(내부 센서)
40a : 센서(외부 센서)

Claims (4)

  1. 단말기 및 트래커를 포함하는 클라이언트에게 확장현실 기반의 컨텐츠를 제공하는 확장현실 서비스를 위하여 상기 단말기내의 제 1 센서와 상기 트래커내의 제 2 센서의 축 정렬을 검증하는 축정렬 검증장치의 동작방법으로서,
    상기 단말기 및 상기 트래커로부터 각각의 회전 정보를 수신하는 단계;
    상기 단말기 및 상기 트래커의 각각의 회전 정보를 근거로 상기 제 1 센서와 상기 제 2 센서의 축 정렬 오류를 검출하는 단계; 및
    상기 축 정렬 오류를 검출하는 단계로부터의 축 정렬 오류 검출 신호에 근거하여 알람을 출력하는 단계;를 포함하는,
    확장현실 서비스를 위한 축 정렬 검증장치의 동작방법.
  2. 제 1항에 있어서,
    상기 단말기의 회전 정보 및 상기 트래커의 회전 정보 중에서 어느 하나의 회전 정보를 근거로 현재 검증시점에서의 회전각과 이전상태의 회전각 간의 회전차를 계산하고, 계산된 회전차가 기설정된 제 1 임계치 이상이면 상기 오류 검출 동작이 필요한 것으로 판단하여 상기 제1,제2 센서 축 오류를 검출하는 단계를 수행하는 오류 검출 동작이 필요한지를 파악하는 단계를 더 포함하는
    확장현실 서비스를 위한 축 정렬 검증장치의 동작방법.
  3. 제 1항에 있어서,
    상기 축 정렬 오류를 검출하는 단계는,
    현재 검증시점에서 트래커로 예상한 단말기의 회전각과 이전상태에서 트래커로 예상한 단말기의 회전각 간의 차이에 의해 상기 트래커로 예상한 이전상태에서 현재상태로의 단말기 회전차 및 상기 단로 상기 내부 센서와 상기 외부 센서의 축 정렬 오류를 검출하는
    확장현실 서비스를 위한 축 정렬 검증장치의 동작방법.
  4. 제 1항에 있어서,
    상기 축 정렬 오류를 검출하는 단계는,
    상기 트래커로 예상한 이전상태에서 현재상태로의 단말기 회전차 및 상기 단말기의 이전상태에서 현재상태로의 회전차 간의 차이가 기설정된 제 2 임계치보다 크면 축 정렬 오류 검출 신호를 출력하는,
    확장현실 서비스를 위한 축 정렬 검증장치의 동작방법.
KR1020200092958A 2020-07-27 2020-07-27 확장현실 서비스를 위한 축 정렬 검증 장치의 동작 방법 KR20220013704A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200092958A KR20220013704A (ko) 2020-07-27 2020-07-27 확장현실 서비스를 위한 축 정렬 검증 장치의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200092958A KR20220013704A (ko) 2020-07-27 2020-07-27 확장현실 서비스를 위한 축 정렬 검증 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220013704A true KR20220013704A (ko) 2022-02-04

Family

ID=80268325

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200092958A KR20220013704A (ko) 2020-07-27 2020-07-27 확장현실 서비스를 위한 축 정렬 검증 장치의 동작 방법

Country Status (1)

Country Link
KR (1) KR20220013704A (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100900806B1 (ko) 2007-11-01 2009-06-04 광주과학기술원 컨텍스트 인식 증강 현실을 제공하기 위한 시스템 및 방법
KR100953931B1 (ko) 2008-05-09 2010-04-22 고려대학교 산학협력단 혼합현실 구현 시스템 및 그 방법
KR20190118373A (ko) 2018-04-10 2019-10-18 주식회사 엠에스게임 가상현실 체험 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100900806B1 (ko) 2007-11-01 2009-06-04 광주과학기술원 컨텍스트 인식 증강 현실을 제공하기 위한 시스템 및 방법
KR100953931B1 (ko) 2008-05-09 2010-04-22 고려대학교 산학협력단 혼합현실 구현 시스템 및 그 방법
KR20190118373A (ko) 2018-04-10 2019-10-18 주식회사 엠에스게임 가상현실 체험 시스템 및 방법

Similar Documents

Publication Publication Date Title
US11768537B2 (en) Wireless head mounted display with differential rendering
US11474599B2 (en) Dynamic graphics rendering based on predicted saccade landing point
US10747306B2 (en) Wireless communication system for head mounted display
CN112470483B (zh) 多服务器云虚拟现实(vr)流式传输
US11262839B2 (en) Eye tracking with prediction and late update to GPU for fast foveated rendering in an HMD environment
JP7242850B2 (ja) サーバシステムとビデオゲームコントローラとの間の直接的な通信を確立するためのシステム及び方法
JP2020102239A (ja) ヘッドマウントディスプレイ追跡
US20170007926A1 (en) System, program, and method for operating screen by linking display and plurality of controllers connected via network
WO2018064627A1 (en) Wireless head mounted display with differential rendering and sound localization
US10410395B2 (en) Method for communicating via virtual space and system for executing the method
US20180348987A1 (en) Method executed on computer for providing virtual space, program and information processing apparatus therefor
US10888771B2 (en) Method and device for object pointing in virtual reality (VR) scene, and VR apparatus
KR102250870B1 (ko) 가상현실 플랫폼에서의 다중 사용자 충돌 및 이탈 방지를 위한 운용 시스템 및 방법
KR20220013704A (ko) 확장현실 서비스를 위한 축 정렬 검증 장치의 동작 방법
KR20220013709A (ko) 축 정렬 검증 프로그램 기록매체
KR20220013687A (ko) 축 정렬 검증 기능을 포함하는 확장현실 서비스 장치 및 그 축 정렬 검증 방법
KR20220013707A (ko) 확장현실 서비스를 위한 축 정렬 검증 프로그램
KR20220013688A (ko) 축 정렬 검증 기능을 포함한 확장현실 서비스 장치
KR20220013702A (ko) 확장현실 서비스 장치의 축 정렬 검증 프로그램 기록매체
KR20220013695A (ko) 확장현실 서비스 장치의 축 정렬 검증 프로그램
KR20220013691A (ko) 확장현실 서비스 장치의 축 정렬 검증 방법
US20180247612A1 (en) Method executed on computer for communicating via virtual space, program for executing the method on computer, and computer apparatus therefor
US20220377313A1 (en) Information processing apparatus, information processing method, and program
KR20220013645A (ko) 축 동기화 기능을 포함한 확장현실 서비스 장치
KR20220013657A (ko) 축 동기화 프로그램 기록매체