KR20200035461A - 광학적으로 지원되는 객체 내비게이션 - Google Patents

광학적으로 지원되는 객체 내비게이션 Download PDF

Info

Publication number
KR20200035461A
KR20200035461A KR1020207007503A KR20207007503A KR20200035461A KR 20200035461 A KR20200035461 A KR 20200035461A KR 1020207007503 A KR1020207007503 A KR 1020207007503A KR 20207007503 A KR20207007503 A KR 20207007503A KR 20200035461 A KR20200035461 A KR 20200035461A
Authority
KR
South Korea
Prior art keywords
physical
uav
location
image
virtual
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
KR1020207007503A
Other languages
English (en)
Inventor
이고르 카라타예브
정 쾅
Original Assignee
에스지 디제이아이 테크놀러지 코., 엘티디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스지 디제이아이 테크놀러지 코., 엘티디 filed Critical 에스지 디제이아이 테크놀러지 코., 엘티디
Publication of KR20200035461A publication Critical patent/KR20200035461A/ko
Abandoned legal-status Critical Current

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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. 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/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/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • 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/25Output arrangements for video game devices
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64CAEROPLANES; HELICOPTERS
    • B64C39/00Aircraft not otherwise provided for
    • B64C39/02Aircraft not otherwise provided for characterised by special use
    • B64C39/024Aircraft not otherwise provided for characterised by special use of the remote controlled vehicle type, i.e. RPV
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0044Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0094Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots involving pointing a payload, e.g. camera, weapon, sensor, towards a fixed or moving target
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/244Arrangements for determining position or orientation using passive navigation aids external to the vehicle, e.g. markers, reflectors or magnetic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating three-dimensional [3D] models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating three-dimensional [3D] models or images for computer graphics
    • G06T19/20Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U10/00Type of UAV
    • B64U10/10Rotorcrafts
    • B64U10/13Flying platforms
    • B64U10/14Flying platforms with four distinct rotor axes, e.g. quadcopters
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2101/00UAVs specially adapted for particular uses or applications
    • B64U2101/30UAVs specially adapted for particular uses or applications for imaging, photography or videography
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2201/00UAVs characterised by their flight controls
    • B64U2201/10UAVs characterised by their flight controls autonomous, i.e. by navigating independently from ground or air stations, e.g. by using inertial navigation systems [INS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10032Satellite or aerial image; Remote sensing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/16Using real world measurements to influence rendering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Automation & Control Theory (AREA)
  • Architecture (AREA)
  • Health & Medical Sciences (AREA)
  • Optics & Photonics (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)
  • Business, Economics & Management (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Image Analysis (AREA)
  • Artificial Intelligence (AREA)

Abstract

가상 세계에 표시된 객체의 위치는 물리 환경에서의 대응하는 물리 객체의 사용자 제어 위치로부터 결정된다. 상기 물리 객체의 위치는 마커를 충분히 이용할 수 있을 때 물리 환경에서 마커를 사용하여 고정되지만, 그렇지 않으면 보조 내비게이션 시스템을 사용하거나 둘 다 사용한다. 상대적 및 절대적 위치 수정(position fixing)은 또한 임의의 대응하는 가상 세계와 무관하게 광학적으로 수행될 수 있다.

Description

광학적으로 지원되는 객체 내비게이션
본 발명은 이미지 해석(image interpretation)에 의해, 이동 객체(moving object)의 위치를 결정하는 시스템 및 방법에 관한 것이다.
점점 더 많은 사람이 이벤트 또는 사물을 원격 또는 "가상"으로 일정한 형태의 디스플레이로 보고 있다. 순수하게 "가상현실"(virtual reality, VR)의 경우, 뷰어가 보는 장면이 어떤 물리 세계와 반드시 대응하지 않고 물리 규칙이 반드시 적용되는 것은 아니기 때문에, 표시된 객체의 위치는 완전히 소프트웨어 제어하에 있다. 예를 들어, 순수하게 소프트웨어로 생성된 가상 세계(software-generated virtual world)에서, 가상의 말이 날개가 돋아 우주로 날아가거나, 단단한 벽을 걷는 사람을 막을 수 있는 것은 없다.
다른 상황에서, 설계 또는 필요에 의해, 표시된 "세계"는 물리 현실에 의해 적어도 부분적으로 제약을 받는다. 예를 들어, 표시된 장면이 물리 세계에서 발생하는 무언가에 대응하는 경우, 중력과 같은 일반적인 물리 법칙을 따를 수 있거나 따라야 한다. 이러한 일부 상황에서, 표시된 세계는 표시된 세계에서의 위치(소재지)가 물리 객체의 실제 위치에 대응해야 하는 하나의 이상의 표시된 객체를 포함한다. 그러면 이는 물리 객체의 위치를 결정하는 일정한 방법을 필요로 한다. 경우에 따라서는, 물리 객체에 장착된 고정밀, 고가의 위치확인 시스템(location system)을 사용하는 것은 실용적이지 않거나, 비용이 너무 많이 들거나, 너무 복잡하거나 실현 불가능할 수도 있다. 그렇다면 문제는 물리 환경에서의 위치 오차(location error)가 종종 축적되어, 물리-가상 대응관계(physical-to-virtual correspondence)가 수용 가능하거나 바람직한 수준을 넘어 저하될 수 있다는 것이다.
표시되는 VR 세계가 존재하지 않는 경우에도, 이미징 기술(imaging technique)을 사용하여 이동 물리 객체의 위치를 결정하게 되는 경우에 항상 개선이 필요하다.
도 1a 및 1b는 객체까지의 거리를 광학적으로 측정할 수 있는 방법을 나타낸다.
도 2는 하나의 이상의 사용자 제어형 객체(user-controlled object, UCO)가 조종되는 물리 환경에 대응하는 가상의 표시된 환경의 일례를 도시한다.
도 3은 UCO 및 그 제어기의 주요 하드웨어 및 소프트웨어 구성요소를 나타낸다.
도 4는 가능한 경우에 UCO의 위치를 광학적으로 고정할 수 있지만, 그렇지 않은 경우에 보조 내비게이션 시스템(secondary navigation system)을 사용하는 방법을 요약한 흐름도이다.
도 5는 광학 거리 결정(optical distance determination)을 사용한 무인 항공기(Unmanned Aerial Vehicle, UAV)의 위치 결정을 나타낸다.
도 6은 상대 위치 유지를 위해 광학 거리 결정을 사용하는 2개의 UAV의 편대 비행을 나타낸다.
도 1a는 렌즈(20)에 의해 센서 표면, 즉 "화면"(30) 상에 이미지화되는 객체(10)를 단순화된 형태로 나타낸다. 여기서, "객체"는 물리 아이템 자체이거나 물리 아이템 상에 만들어진 일정한 마킹 또는 이미지일 수 있다.
도시된 바와 같이, z 방향에서의 객체의 높이(즉, "폭" 또는 "대각선"일 수 있는 알려진 방향으로의 직선 연장)는 h object 로 주어지는데, 이는 렌즈로부터 거리(x 방향으로) d object 에 있다. 렌즈로부터 이미지의 거리와 그 이미지화된 높이는 각각 d image h image 이다. 한편으로 h object d object 사이의 관계, 그리고 다른 한편으로 h image d image 사이의 관계는 렌즈(20)의 유형(예를 들어, 얇음과 볼록도), 그 초점 거리 및 그 배율에 따라 달라질 수 있으며, 잘 알려진 렌즈와 배율 방정식을 사용하여 결정될 수 있다. 그러나 중요한 점은 렌즈 특성, h object , h image d image 를 고려할 때, 알려진 공식을 사용하여 d object 를 계산할 수 있다는 것이다.
디지털 카메라에서, 화면(30)은 보통 알려진 화소 패턴으로 배열된 전하 결합 소자(charge-coupled device, CCD), 상보형 금속 산화물 반도체(complementary metal oxide semiconductor, CMOS) 소자 등이다. 단위 거리당 화소의 수는 어느 특정 방향에서 알려져 있다. 일반적으로, 화소 밀도는 서로 다른 직교 방향에서 동일하지만 반드시 그럴 필요는 없다. 이 논의와 관련한 것은 단순히 센서 표면에 감지된 이미지의 경우, 임의의 방향에서의 그 크기는 화소 단위로 계산될 수 있다. 따라서, 화소 단위의 이미지 높이 h pixel 는 어떤 단위 h image 로 표현되어 있더라도 이미지 높이의 알려진 함수이다. 간단히 말하면, h pixel =f(h image )이며, f는 선험적으로 알려질 것이다. 또한, 렌즈 특성 및 d image 뿐만 아니라 h object 가 알려진 경우, h pixel =g(d object )이며, 여기서 함수 g는 미리 결정될 수 있다. 반대로, d object =g -1(h pixel )이며, 함수 g -1 또한 미리 결정될 수 있다.
h object h image 사이에는 함수 관계가 있기 때문에, 방향에 관계없이, 객체(10)와 같은 객체의 구역과 그 이미지화된 구역 사이에는 유사한 함수 관계가 있고, 다른 요소들은 동일하게 남아있다. 따라서, 객체(10)의 주어진 구역에 대해, 그 대응하는 이미지가 포함하는 화소의 수도 또한 결정될 수 있다: 배율의 변화없이, 객체(10)가 렌즈(20)로부터 멀어질수록, 객체의 각 부분은 더 작아지고, 그 구역은 화면(30)상에 있는 것처럼 보일 것이다.
수직(z 방향)으로 연장되는 경우, 객체, 및 렌즈의 움직임이 xy 평면에 대해 제약을 받는다고 가정할 때, 거리 d object 는 렌즈가 위치하는 반경(그 객체가 얼마나 얇고 규칙적인지에 따라 달라짐)을 나타낼 것이다. 이제 각각 높이(또는 폭, 또는 각도 차원, 등)가 알려진 두 개의 객체가 같은 위치에 함께 있지 않다고 가정한다. 위의 기술을 사용하여, 렌즈가 2개의 대응하는 원의 2개의 교차점 중 하나에 놓이도록, 각각의 객체까지의 거리(즉, 각각의 객체로부터의 반경)가 결정될 수 있다. 제3의 함께 있지 않은 객체까지의 거리가 결정되면, 교차점의 모호성이 해결되고, "수정(fix)", 즉 렌즈가 위치해야 하는 단일 지점을 가질 것이다. 물론, 실제로, 측정 오차가 있을 수 있는데, "수정"이 가능한 위치의 영역이 되도록, 더 많은 객체까지의 거리를 측정하고 측정 정밀도를 증가시킴으로써 이를 점점 더 작게 만들 수 있다.
렌즈(즉, 렌즈를 포함하는 모든 것)가 x-y 평면과 같은, 평면에서 이동에 제약을 받지 않으면, 거리는 적어도 4개의 객체까지의 거리 측정으로부터 수정이 획득될 수 있다.
도 1b를 참조한다. 이미지화 방향 D가 객체의 법선 N(직선 또는 2-D)에서 벗어날수록, 객체가 N-D 평면(도시된 바와 같이, x-y 평면)으로 연장되면, 더 작게 보일 것이다. 길이가 L o 인 객체에 대해, 거리 d object 가 일정하게 유지된다고 가정하면, 길이가 L apparent =L o cos(α)인 것처럼 보일 것이며, 여기서 α는 D와 N 사이의 각도이다. 물론 L apparent 도 또한, 렌즈(20)의 관점에서, 이는 다른 것과 마찬가지로 단순히 직선 거리이기 때문에, 화면(30)상의 대응하는 이미지의 화소 h pixel 단위로 나타낼 수 있다.
L o , d object , 렌즈 특성(lens characteristics), d image , 및 L apparent (h image 히마로부터 결정될 수 있음)를 알고 있다고 가정하자. 그러면 시스템은 각도 α를 계산할 수 있다. 렌즈의 움직임이 xy 평면에 대해 제약을 받는다고 가정하면, 렌즈가 놓일 수 있는 α 및 (180-α)도에는, 두 개의 방향(방위(bearing))만 있을 수 있다. h object 가 알려져 있으면, 두 개의 가능한 방위 중 어느 것이 정확한지가 적절한 수정을 위해 결정되어야 하지만, 단일 객체에 대한 방위 및 거리 모두가 결정될 수 있도록, 도 1a의 기법이 거리 d object 을 결정하는 데 사용될 수 있으며; 이것은 하나의 이상의 추가 객체에 대한 거리 및/또는 방위를 측정하거나, 가장 최근의 수정으로부터 추론될 수 있다.
따라서, 사용자 제어형 객체(UCO)는 마커(marker)까지의 거리를 결정하기 위해 위의 메커니즘을 사용할 수 있다. 또한, UCO가 충분한 간격(separation)을 갖는 둘 이상의 이미징 센서(imaging sensor)를 구비하면, 마커까지의 거리를 결정하기 위한 또 다른 옵션은 알려진 원리와 에피폴라 지오메트리(epipolar geometry)의 관계, 즉 스테레오 이미징(stereo imaging)의 지오메트리를 적용하는 것이다.
또한 UCO(500)에 마커에 대한 방위를 직접 결정하기 위한 임의의 기기를 포함시키는 것도 가능할 것이다. 예를 들어, UCO는 플럭스 게이트 나침반(flux-gate compass)과 같은 나침반(521)(도 3)을 구비할 수 있다. 마커가 카메라(520)의 시야 내에, 특히 그 시야의 중심 근처에 있을 때, 그 마커에 대한 방위는 나침반으로부터 입력될 수 있다. 그 마커까지의 거리 추정과 더불어, UCO의 위치는 x-y 평면에 고정될 수 있다.
도 2는 사용자(100)가 제어기(400)에 의해 사용자 제어형 객체(UCO)(500)를 조종하는 물리 환경(200)을 나타낸다. 도 2에서, UCO(500)는 장난감 무선 제어형 탱크이지만, 이것은 물론 예일 뿐이다. 도 2에 도시된 예에서, 2개의 다른 장난감 탱크(501, 502)는 또한 물리 환경에서, 자율적으로 또는 가능하면 다른 사용자(미도시)의 제어하에 조정되고 있으며, 따라서 다른 UCO를 구성한다. 요컨대, 도 2는 여러 사용자가 시뮬레이션 장난감 탱크 전투에서 시합하는 실제 게이밍 환경을 나타낼 수 있다. 적어도 사용자의 100개의 UCO(500)는 카메라(520) 또는 다른 이미징 기기를 구비하고; 도 2의 예에서, 다른 UCO(501, 502)는 또한 각각의 카메라(503, 504)를 구비하지만, 이것은 설계상의 선택이다.
복수의 마커(220, 222, 224, 226, 228)는 또한 물리 환경(200) 내의 알려진 위치에 배치되거나 그렇지 않으면 제작된다(예: 다른 특징부(features) 상에 선 및/또는 형상을 그리거나, 또는 특징부 자체). z 방향(도시된 바와 같이)에서, 이들은 각각 z220, z222, z224, z226, 및 z228로 연장되고, 이차원 마커(220)는 또한 y 방향으로 폭 w220의 폭을 연장한다.
물리 환경(200)에서 UCO(500)를 조종하는 동안, 사용자는 예를 들어 "가상현실" VR 구글에 의해 생성된 디스플레이와 같은, 디스플레이(600)를 봄으로써 대응하는 가상 환경(300)을 볼 수 있다. 다시 말해, 사용자는 물리 환경에서 물리 객체를 조종하고 있지만, 사용자는 UCO(500)의 움직임이 대응하는 가상 객체(350)의 움직임(이 예에서는 탱크의 이미지)으로서 표현되는 대응하는 가상의 "세계"를 본다. 사용자에게 제시된 뷰는 바람직하게는 물리 객체(500)의 카메라(520)에 의해 캡처된 이미지에 대응한다. 이 예에서, 사용자는 또한 물리 환경(200)에서의 장난감 탱크(501, 502)에 대응하고, 예를 들어 모의 탱크 전투와 같은 시합에서, 다른 사용자(미도시)의 제어하에 움직일 수 있는 가상 탱크(351, 352)를 본다. 그러면 다른 사용자는 그들 각자의 장난감 탱크(501, 502)의 카메라(503, 504)의 관점에서 가상 환경(300)을 볼 수 있다.
가상 환경 디스플레이를 생성하는 시스템은 전형적으로 x v - y v - z v 와 같은 좌표계를 참조하여 그렇게 할 것이다. 가상 환경과 물리 환경 사이의 적어도 대략적인 대응관계를 확립하기 위해, 시스템은 가상 좌표계와 물리 좌표계 x-y-z 사이의 함수 관계를 유지할 수 있다. 이 관계는 물론 완전히 또는 부분적으로 가능하지만, 반드시 엄격한 매핑 또는 선형 변환일 필요는 없다. 예를 들어, 물리 환경(200)에서 이동하는 장난감 탱크(500)는 x-y 평면(예를 들어 평평한 바닥일 수 있음)에서만 이동하도록 제약을 받을지도 모르는 반면, 가상 탱크(350)가 언덕 위로 이동하는 것처럼, 가상의 움직임은 z v 방향으로도 움직일 수 있다. 이러한 경우, 단 하나의 설계상 선택은 x-y 움직임을 xv - yv 움직임에 매핑하는 것일지 모르지만, 그러면 가상 환경에서 컴퓨터로 생성된(computer-generated) 수직 움직임을 허용한다.
다른 컴퓨터로 생성된 정적 및/또는 이동 객체, 배경, 시각 효과 등은 또한 일반적으로, 설계자가 프로그램한 모든 기능 및 행위(action)를 수행하기 위해 VR 디스플레이에 포함될 수 있다. 예시된 예에서, 예를 들어, VR 디스플레이는 나무, 언덕(320), 라디오 타워(322), 장벽(324), 헬리콥터(325), 포병(326), 구름, 호수(327) 등을 포함한다. 언덕(320), 타워(322) 및 장벽(324)은 가상 탱크(350)에 대해 가상 환경에서 적어도 대략 동일한 위치에 있는 것으로 보이고, 물리 마커(220, 222, 224)는 물리 객체(500)에 관련이 있으며 탱크(500)가 안으로 또는 위로 지나가지 않아야 하는 객체를 나타낸다. 이것은 설계상 선택이지만, 물리-가상 대응관계를 증가시키는 이점이 있다. 물리 마커(220)가 높이 및 폭 모두에서 측정 가능하게 연장되는 것처럼, 표시된 언덕(320)은 또한 설계상 선택이지만, 마찬가지로 그렇게 하도록 표시될 수 있다. 본질적으로 무제한의 수의 시나리오 중 하나로서, 하나 이상의 마커(222-228)는 대전차 총을 가진 대전차 벙커로서 가상 환경에서 표현될 수 있다. 따라서, 탱크(즉, UCO 500) 및 이에 대응하는 가상 객체(350)는 대전차 포탄(anti-tank shell)을 회피할 필요가 있으며; 이 회피 행동(evasive maneuver)은 UCO(500)가 마커의 카메라 시야를 잃는 방식으로 이동하고 회전시킬 수 있다.
물리 환경에서의 UCO(500)의 위치의 수정을 결정하기 위해, 충분한 수의 마커(220-228)가 명확하게 보이도록 그것이 제자리에 있고 카메라가 향하고 있는 경우, 도 1a 및 도 1b에 나타내고 위에서 설명한 기술이 각각의 화소 높이 h pixel 의 함수로서 각각의 마커로부터의 거리를 결정하는 데 사용될 수 있다. UCO(500)가 물리 환경에서 이동할 때, 그 수정은 가상 객체(350)의 매끄러운 대응하는 움직임을 제공하기에 충분할 정도로 자주 갱신되는 것이 바람직하다.
일부 실시예에서, 마커(220-228)의 전부 또는 일부는 동일할 수 있다. 이 경우, 물리 환경에서의 마커의 위치(좌표)는 바람직하게는 제어기 또는 UCO 자체에 저장된다. 마커를 구별하기 위해, UCO가 이동하기 시작할 때에 알려진 마커 중 하나가 보일 수 있도록 UCO는 물리 환경에서 알려진 위치 및 방향에서부터 시작될 수 있다. 다른 실시예에서, 마커는 상이한 높이 및/또는 폭을 가질 수 있고, 이들의 치수(dimension)는 또한 마커의 위치와 함께 저장될 수 있다. 각각의 치수는 각각의 마커까지의 거리를 계산할 때 사용될 수 있다.
또 다른 실시예에서, 마커는 일정한 형태의 인코딩을 가질 수 있다. 예를 들어, 도 2에 나타낸 바와 같이, 마커는 이진수에 대응할 수 있는 흑백 밴드의 패턴을 가지고 있다. 도면에서 각각의 마커는 5개의 밴드를 가지고 있으며, 각각의 밴드는 관찰 가능한 높이의 1/5을 차지하지만, 물론 이것은 설계상의 선택이며 카메라의 해상도 및 광학 특성(예: 조명 수준)과 물리 환경에 따라 달라질 것이다. 단지 예로서, 각각의 마커의 최상위 밴드는 최상위 비트(most significant bit, MSB)를 나타낸다고 가정하자. 따라서 마커(222, 224, 226. 228)는 각각 이진수 10010, 11011, 10110 및 10001에 대응하도록 표시된다. 각각의 인코딩은, 예를 들어, 가상 환경에서 객체가 대응하는 유형과 관련하여, 각각의 마커의 식별자를 나타낼 수 있다. 예를 들어, 11110은 포병에 대응할 수 있고 11011은 탱크 트랩일 수 있는 등이다. UCO 또는 제어기에서 각각의 마커의 위치 정보를 실시간으로 갱신하는 어떤 방법이 포함되어 있는 한, 물리 환경의 레이아웃을 동적으로 쉽게 변경할 수 있다.
마커에 사용되는 인코딩의 유형은, UCO가 각각의 마커까지의 거리를 측정할 필요가 있는 최대 거리에서 개별 인코딩 요소(컬러 밴드와 같은)를 분석하는 UCO 카메라의 능력에 따라 선택될 수 있다. ECC 레벨이 있는 비교적 분석하기 쉬운 QR 코드 버전 1도 17바이트의 정보를 인코딩할 수 있으며, 예를 들어, 심지어 더 간단한 2D 코드를 사용하여, 마커에 "태그"로서 첨부될 수 있다.
하나의 다른 옵션은 물리 환경의 x-y 평면에 미리 정의된 그리드를 갖는 것이며, 각각의 교차점은 마커에 대한 가능한 배치 지점을 나타내며, 그에 의해 표시되는 가상 객체의 유형을 나타낸다. UOC 카메라의 충분한 해상도와 마커당 충분한 밴드를 가정하면, 마커의 그리드 위치도 인코딩될 수 있다. 이는 물리 환경에서 특성을 훨씬 더 쉽게, 심지어 동적으로 변경할 수 있게 한다.
마커의 인코딩 및 변경을 용이하게 하는 한가지 방법은 단순히 각각의 마커 위를 슬라이딩하여 그 위에 포개지는 서로 다른 색상의 슬리브를 가지는 것이다. 대안적으로, 각각의 객체 유형에 대한 마커는 미리 제작되고 미리 인코딩될 수 있다.
대부분의 경우, 카메라(520)는 그레이스케일이 가능할지라도 단순히 그레이스케일이 아니라 색상을 구별할 수 있을 것이다. 컬러 해상도가 가능한 구현예에서, 마커의 인코딩도 색상에 의한 것일 수 있으며, 이는 각각의 마커 상에 인코딩될 수 있는 정보의 양을 증가시킬 것이다. 알려진 방법을 사용하여 각각의 마커 상의 각각의 인코딩 밴드의 색상을 구별할 수 있고, 각각의 인코딩을 해석하는 데 필요한 정보는 UOC 또는 제어기에 저장될 수 있다.
UCO(500)가 마찬가지로 수직으로 이동할 수 있는 구현예(예를 들어 무인 항공기(Unaved Aerial Vehicle, UAV)), 즉 "드론(drone)")에서, 마커는 x-y 표면 상에 배치(또는 페인팅)되고 z-방향으로의 거리를 결정하는 데 마찬가지로 사용될 수 있지만, 수정을 확립하기 위해 더 많은 마커가 요구될 수 있다. 마커는 도 1b에서와 같이 "수직이 아닌 것(off-perpendicular)"으로 보일 수 있고 각각의 마커까지 동일한 거리의 선 대신에 동일한 거리의 표면이 있을 것이 때문에, x-y 평면에서도 위치를 확립하기 위해 더 많은 마커가 필요할 수 있다.
그러나, UCO가 도 2에서 대략 위치 A(원으로 둘러싸여 있음)로 이동하여, 카메라 방향이 d 방향이라고 가정하자. 예시한 바와 같이, 카메라(520)의 시야에 광학적으로 수정을 얻을 수 있을 정도로 충분한 마커가 없다. 따라서 UCO(500)는 보조 내비게이션 시스템(2nd NAV)(530)(도 3)을 구비할 수 있다. 보조 내비게이션 시스템은, 예를 들어, 관성 측정 유닛(Inertial Measurement Unit, IMU)과 같은 상업적으로 이용 가능한 관성 센서 및 관련 신호 처리 구성요소 및 소프트웨어에 기초하고, 물리 환경 근처에 배치될 수 있는 송신기로부터의 무선 주파수 신호의 삼각 측량(triangulation) 또는 삼변 측량(trilateration), 또는 예를 들어, UCO 상의 휠의 절대 회전 및 상대 회전에 기초한 단순한 추측 항법(dead-reckoning, DR)에 기초할 수 있다.
장난감 또는 소비자 제품과 같은 애플리케이션에서, 크기 또는 비용의 이유로 보조 내비게이션 시스템으로서 고정밀 센서를 사용하는 것이 불가능할 수 있다. 그러나, 다른 구현예에서도, 가속도 측정에서의 모든 오차가 위치를 결정하기 위해 두 번 통합되기 때문에, 관성 시스템은 오차를 누적한다. RF 기반 위치 수정(RF-based position fixing)은 일반적으로 광학적 수정(optical fixing) 보다 본질적으로 정밀도가 낮고, DR 내비게이션을 위한 휠 회전 측정은 일반적으로 부정확하며 누적 오차로 이어진다.
UCO가 마커(220-228)에 대한 거리 측정을 통해 자신의 위치를 광학적으로 수정하는 능력을 상실한 경우, 당시의, 즉, 가장 최근의 광학적 수정이 IMU 또는 DR 기반 내비게이션과 같은 것을 필요로 하는 방법에 대한 초기 위치로서 사용될 수 있다. 가상 환경에서의 가상 UCO(350) 위치는 이것이 필요한 한 보조 내비게이션 신호로부터 도출될 수 있다. UCO(500)가 마커를 이미지화하여 보다 정확한 광학적 수정을 할 수 있도록 하는 위치 및 카메라 방향으로 복귀하는 경우, 물리 위치와, 변환을 통해, 대응하는 가상 위치가 모두 마커까지의 거리 측정(distance-to-marker)으로부터 도출되는 것으로 복귀할 수 있다.
UCO가 광학 내비게이션으로 복귀하는 경우, 그것이 획득한 첫 번째 수정(또는 하나 이상의 수정의 일부 기능)은 가장 최근의 정밀하지 않은 수정과 비교되어 비정밀 내비게이션이 사용되었던 시간 동안에 누적된 오차의 양을 결정할 수 있다. 이 차이는 나중에 비정밀 내비게이션이 필요한 경우에 후속 기간에 보정 인자(correction factor)로서 사용될 수 있다. 대안으로서, 그러한 보정이 전혀 구현되지 않는다면, 또한 시스템을 전환할 필요가 있기 전에도 오차 측정 및 비정밀 시스템에 대한 보정 인자를 컴파일하기 위해 주 광학 내비게이션 시스템 및 보조 내비게이션 시스템 모두를 동시에 사용할 수 있다.
요컨대, 실시예는 가능할 때 UCO 카메라에서 가시적 마커까지의 거리의 광학적 추정에 기초하여 (오차를 축적하지 않는다는 점에서) 정밀 내비게이션을 사용하지만, 잠재적으로 오차를 누적하지만, 필요한 경우 덜 정밀한 내비게이션 시스템으로 전환한다.
도 3은 사용자가 VR 디스플레이(600)를 봄으로써 제어기(400)를 통해 UCO(500)를 조종하는 실시예의 주 시스템 구성요소를 도시한다. 제어기(400)는 하나 이상의 프로세서(410)를 포함할 것인데, 이는 다양한 소프트웨어 정의형 기능(software-defined function)을 구현하기 위한 코드뿐만 아니라, 사용자 입력에 따라 UCO를 제어하고, 다양한 신호를 처리하고, UCO와 통신하고, 가상 환경의 디스플레이를 생성하는 데 사용되는 임의의 고정 코드(fixed code) 또는 펌웨어(firmware)를 실행한다. 제어기는 실행 가능한 코드, 운영 데이터(operational data) 등을 저장하는 데 사용될 수 있는 하나 이상의 휘발성 및/또는 비휘발성 메모리 및 저장 구성요소(415)를 포함한다.
하나의 이상의 가상 환경의 그래픽 표현을 정의하는 코드 및 데이터는 "세계(world)"(416)로서 메모리/저장장치에 저장될 수 있다. 각각의 세계는 예를 들어 상이한 게이밍 시나리오를 정의할 수 있다. UCO 자체와 관련된 운영 데이터는 또한 영역(417)에 저장될 수 있다. 하드웨어 및 임의의 필요한 코드를 포함하는 표준 I/O 모듈(420)은, 사용자가 UC0(500)를 제어하기 위해 구비할 수 있는 하나 이상의 조이스틱, 버튼, 트랙패드, 터치스크린 디스플레이 등과 같은 제어 기기의 움직임을 해석하기 위해 포함된다. UCO가 무선 주파수로 제어되는 구현예에서, 종래의 송수신기(440)는 UCO 내의 유사한 송수신기(540)와 통신하기 위해 포함될 수 있다.
이미지 기반 위치결정 모듈(422)은 실행 가능한 코드와, 다른 곳에 포함되지 않은 경우, 하드웨어를 포함하는데, 이 하드웨어는 카메라(520) 이미지와 관련된 데이터를 입력하고, 이미지 내의 마커를 식별하고, 각각의 가시적 마커의 화소 높이(및/또는 폭, 반경, 인코딩 등)를 추출하고, 위에서 요약한 각각의 마커까지의 거리를 결정하기 위해 위에서 요약한 계산을 수행하고(적절하게 구성된 2-D 마커인 경우, 도 1b에 도시된 바와 같이, 방위), 나중에 광학적 수정이 되는, 각각의 마커로부터 일정한 거리의 다양한 선의 교차점을 계산하기 위해 필요하다. 이미지 기반 위치 결정 모듈(422)은 또한 광학적 수정에 대한 정보가 충분하지 않은지(예를 들어, 이미지화되는 마커가 충분하지 않은지)를 판정할 수 있고, 그렇지 않으면, 보조 내비게이션 시스템(530)의 활성화하거나, 또는 충분한 광학 데이터가 다시 획득될 때까지 적어도 보조 내비게이션 신호가 가상 UCO 위치를 결정하는 데 사용될 수 있다.
보조 내비게이션 모듈(432)은 UCO에 있는 보조 내비게이션 시스템(예컨대, IMU와 같은 것)으로부터 데이터를 수신하고, 그 데이터로부터 시작 위치에서부터 알려진 알고리즘을 사용하여 수정을 추정한다. 보조 내비게이션 모듈은 또한 천이가 있는 경우에 주 시스템(422)과의 비교로부터 도출된 임의의 보정 데이터를 수신할 수 있다.
시나리오 처리 모듈(450)은 사용자 입력에 기초하여, 현재 세계 데이터(416) 및 시스템(422, 432) 중 하나로부터의 위치결정 데이터를 가상 환경에 표시될 것으로 결정한다. 이것은 또한 영역(416)에 저장된 세계 데이터, 경우에 따라서는, UCO의 절대 위치 또는 다른 UCO 또는 객체에 대한 그 위치에 따라 트리거될 수 있는 "이벤트"를 포함할 수 있다. 예를 들어, 사용자의 UCO(500)가 물리 환경(200)의 특정 구역에 진입하고, 다른 미리 프로그램된 조건(예컨대, 시간, 다른 사용자의 UCO의 상대적 위치, 무작위로, 등)이 충족되는 경우, 마커(226)에 대응할 수 있는 포병 부분(326)은 발포한 것으로 표시될 수 있으며, 이는 가상 환경 또는 심지어 UCO(500)에 영향을 미치는 것으로 도시될 수 있다. 또한 UCO(500)의 계산된 물리 수정 좌표를 위치, 즉, 가상 환경의 디스플레이에서의 대응하는 가상 객체(350)의 좌표로 변환하는 모듈로서 사용될 수 있다. 요컨대, 시나리오 처리 모듈(450)은, 주어진 시나리오 및 세계에 대한 저장된 코드 및 데이터에 따라, 현재 이미지 프레임(또는 프레임 시리즈)를 해석하고 그에 따라 표시된 가상 환경의 "행위"를 제어할 수 있다.
일단 가상 디스플레이의 현재 프레임을 정의하는 데이터가 계산되고 컴파일되면, 그것은 VR 디스플레이(600)와 연관된 그래픽 처리 모듈(460)에 전달되고, 이는 그 후 임의의 종래 방식으로 데이터를 표시할 수 있다.
상이한 소프트웨어 및 하드웨어 구성요소가 도 3에는 분리되어 있는 것으로 도시되어 있지만, 이는 예시를 위한 것이다. 시스템 설계자에 의해 선호되는 바와 같이, 하드웨어 구성요소 중 적절한 것일 수 있는 바와 같이, 이들 중 일부 또는 전부는 결합될 수 있다.
구현예에 따라, 제어기(400)가 주로 I/O 기기로서 기능하도록, 제어기(400)의 많은 기능이 일부 우수한 관리 시스템에 포함될 수 있다. 예를 들어, 단일 서버(미도시)는 일반적인 게이밍 환경에서 모든 사용자를 위한 제어기 및 계산 시스템으로서 기능할 수 있다. 다른 "방향"에서, VR 헤드셋(또는 다른 디스플레이 기기) 자체에 제어기 기능 중 일부를 포함시킬 수도 있다.
UCO(500)는 하나의 이상의 프로세서(510) 및 일정한 형태의 메모리/저장장치(515)를 포함할 것이며, 이는 늘 그렇듯, UCO에 소프트웨어 구성요소를 정의하는 실행 코드 및 데이터를 저장하는 데 사용될 수 있다. 프로세서(510)는 범용 구성요소일 수 있지만 반드시 그럴 필요는 없다. 오히려, UCO에서의 처리는 하나 이상의 ASIC을 사용하여 수행될 수 있다. 이미지 처리 모듈(522)은 카메라(520)로부터 데이터를 수신하고 추가 처리를 위해 제어기에 송신하기 위해 임의의 종래 방식으로 데이터를 컨디셔닝한다. 유사하게, 내비게이션 데이터 컨디셔닝 모듈(NAV COND)(532)은 IMU 출력, 휠 회전 센서 등과 같은 보조 내비게이션에 사용되는 센서(들) 중 어느 유형으로부터의 데이터를 수신하고, 이 데이터를 제어기에의 송신을 위해 또한 컨디셔닝한다.
UCO에 대한 사용자 및 제어기가 생성한 커맨드(user and controller-generated command)은 RF 송수신기(540)를 통해 수신되고 커맨드 모듈(560)에 의해 해석된다. 이러한 커맨드의 예는 탱크 포탑의 회전, 발포, 경적 울림 등과 같은, 전체로서 UCO의 움직임과는 대조적으로 UCO의 일부를 가속 또는 감속, 회전, 조종하기 위한 커맨드일 수 있다. 이러한 커맨드는 그 후에, 임의의 모터(564) 또는 다른 형태의 액추에이터(actuator)를 커맨드따라 작동시키는 모터 제어기(562)에 의해 실행에 적합한 형태로 처리된다.
도 2를 참조하여 전술한 구성요소에서만 다양한 계산 또는 데이터 저장을 수행할 필요는 없으며; 오히려 UCO 및 제어기의 선택된 설계에 따라, UCO에서 일어나는 것으로 나타낸 일부 계산 및 저장 태스크는 대신에 제어기의 구성요소 내에서 수행될 수 있으며, 그 반대도 마찬가지이다. 일부 구현예에서, 예를 들어, UCO의 구성요소의 전력 소비 및/또는 계산 부하를 감소시키는 것이 중요할 수 있으며, 이 경우 필수 처리 태스크를 제외한 모든 것을 제어기(400)에 넘기는 것이 바람직할 수 있다. 다른 구현예에서, 전력 소비 및/또는 계산 부하는 그다지 중요하지 않을 수 있으며, 설계자는 UCO가 보다 자율적인 처리 능력을 갖기를 원할 수 있다. 이러한 경우, 설계자는 마커에 대한 위치 데이터를 UCO 자체로 다운로드하고, 제어기 모듈(422)의 수정 계산 태스크(fix-computing task)을 수행하도록 이미징 모듈(522)을 프로그래밍하는 것을 선택할 수 있다. 따라서 이러한 처리 및 저장 태스크가 수행되는 유닛은 설계상의 선택이다.
도 4는 주요 방법으로서 광학적 내비게이션을 사용하지만 보조적으로, 아마도 비광학적 백업 내비게이션 방법을 사용하여 UOC에 대한 수정을 결정하는 데 사용되는 주요 동작(operation)을 흐름도로 요약한 것이다.
700: 잘 알려진 바와 같이, 비디오는 일련의 프레임이다. 임의의 알려진 방법을 사용하여, 비디오 프레임은 카메라(520)로부터의 비디오 스트림에서 획득된다. 프레임 레이트는 일반적으로 UOC보다 빠르기 때문에, 비디오 스트림의 모든 프레임을 캡처하고 분석할 필요는 없다. 오히려, 프레임은 예를 들어 n번째 프레임마다, 또는 매시간 간격 t마다 주기적으로 캡처될 수 있으며, 이는 관련된 UOC의 유형 및 임의의 다른 표준 설계 고려사항에 따라 선택될 수 있다.
710: 패턴 매칭과 같은 임의의 알려진 이미지 분석 방법을 사용하여, 캡처 된 프레임 내에서 보이는 임의의 마커를 검출한다.
720: 수정을 계산할 수 있으려면, 적절한 유형의 마커가 충분해야 한다. 예를 들어, 수정을 위해서는 일차원으로 정의된 크기를 갖는 2개 이상의 마커가 필요할 수 있으며, 2개의 마커만 사용하는데서 발생할 수 있는 가능한 이중 수정(double fixes)에서 모호성을 해결하기 위해 3개의 마커가 필요할 수 있다. 유사하게, 방위 센서(bearing sensor)가 UOC에 포함되어 있으면, 단일 마커 및 그것에 대한 방위만이 수정을 획득하기 위해 필요할 수 있거나, 또는 마커(220)와 같은 이차원으로 정의된 단일 마커로 충분할 수 있다.
730: 일부 실시예에서, 모든 마커는 유형, 형상 및 크기와 관련하여 동일할 수 있지만, 어느 마커가 어느 마커인지를 식별하는 것이 여전히 필요할 것이다. 이것은 컬러 코딩된 패턴과 같은 광학적 인코딩 없이도 이루어질 수 있다. 예를 들어, UOC의 초기 위치와 방향이 확립되고 물리 환경에서 각각의 마커의 위치가 미리 정의되어 UOC 또는 제어기에 저장되어있는 한 마커를 식별할 수 있다. 다른 실시예에서, 마커는 식별을 위해 인코딩될 수 있고, 인코딩은 전술한 바와 같이, 위치 정보를 포함할 수도 있다. 실시예에 관계없이, 각각의 마커는 적절한 방법을 사용하여 식별된다.
740: 각각의 마커에 적절한 방법을 사용하여, 마커까지의 거리를 결정한다. 이를 위한 다양한 방법이 위에서 설명되었다.
750: 마커에 대한 거리 측정값이 주어지면, 물리 환경에서의 UOC의 위치(소재지)를 확립하기 위해 수정을 계산한다.
760 : 이전 단계에서 계산된 물리적 수정의 좌표는 가상 환경(300)에서 가상 객체(350)의 겉보기 위치(apparent position)를 결정하는 모듈에 전달된다. 1:1 물리 2-가상 스케일링(1:1 physical-two-virtual scaling)을 가질 필요는 없음에 유의한다. 오히려, 물리 환경에서 각각의 거리 단위는 가상 환경에서 일부 다른 단위에 대응하도록 임의의 선택된 인자에 의해 스케일링될 수 있다. 예를 들어 물리 환경에서의 1cm는 가상 환경에서의 1m에 대응하도록 스케일링될 수 있다. 물리 환경과 다른 종횡비를 갖는 가상 디스플레이를 생성하기 위해 상이한 마커에 대해 상이한 스케일링 인자를 갖는 것도 또한 가능하다. 예를 들어, 물리 환경에서 횡방향 마커의 스케일링 인자를 변경함으로써(예를 들어 원형이 아닌 측면이 있다고 가정) 물리 환경은 실질적으로 정사각형이지만 가상 환경은 직사각형으로 보이도록 할 수 있다. 가상 객체의 위치가 갱신되었으면, 시스템은 다음 비디오 프레임을 획득하는 것으로 복귀할 수 있다.
770: 현재 비디오 프레임에서 적절한 유형의 마커가 충분히 획득되지 않으면, 시스템은 IMU와 같은 보조 내비게이션 시스템이 포함된 것으로 전환할 수 있다. 물리 환경에서 UOC의 마지막으로 알려진 수정은 보조 내비게이션 시스템의 초기 위치로 사용될 수 있다.
780: 보조 시스템을 사용하여 UOC에 대해 수정을 계산하며, 이 수정은 가상 객체의 위치를 갱신하는 데 사용된다. 그 후 시스템은 비디오 스트림의 프레임을 다시 취득하여 현재 충분한 광학 마커가 있는지를 확인할 수 있다.
790: 선택적인 단계로서, 보조 내비게이션 시스템은 시스템이 광학적으로 따라서 더 높은 정밀도의 위치 수정으로 복귀한 때, 또는 연속적으로, 즉 광학 내비게이션이 사용되는 경우에도 교정될 수 있다. 따라서 교정된 보조 내비게이션 시스템은 필요한 경우에 비광학 수정을 계산하기 위한 정밀도를 향상시킬 수 있다.
도 5에서, 사용자는, 다른 제어기와 같이, 예를 들어, 디스플레이(600)상의 커서(246)의 위치를 제어하기 위해 사용될 수 있는 2개의 조이스틱(241, 242), 2개의 버튼(243, 244) 및 트랙 패드(245)를 구비한 디스플레이(600)(이 경우, VR 헤드셋 내가 아니라 오히려 표준 디스플레이)를 포함할 수 있는 제어기(400)를 사용하여 물리 환경(2000)에서 UAV(1000)를 조종하고 있다. 이 시나리오에서, 디스플레이는 그것이 카메라(1020)에 의해 이미지화된 물리 환경의 그래픽으로 생성된 표현이라는 의미에서 "가상" 환경을 보여준다.
RF 송수신기(440)는, UAV가 늘 그렇듯, 대응하는 송수신기(1040)를 갖는 UAV(1000)로부터 데이터를 수신하고 커맨드를 송신한다. 본 실시예에서, UAV는 2 개의 카메라(1010, 1020)를 가지며, 전자는 주로 아래쪽을 향하고 후자는 수평 방향의 시야를 갖는다. 이 중 하나 또는 둘 모두는 표준 짐 볼링(gimballing) 및 액추에이터를 사용하여 조종할 수 있어, 하나의 카메라가 사용자 제어 하에서 수평 방향 및 수직 방향으로 이미화를 위해 스스로 방향을 잡을 수 있도록 한다.
예시된 바와 같이, UAV는 물리 환경, 예를 들어 호수(1050), 2개의 빌딩(1051, 1052) 및 타워(1053)에서 특정 특징부(features)를 이미지화하고 있다. UAV와 카메라의 방향에 따라, 나무 및 동물과 같은 다른 특징부도 이미지화될 수 있다. 본 실시예는 도 3에 도시된 제어기 및 UCO 구성요소를 사용하여 선택되고 수행될 수 있는 다음의 동작 중 하나 이상을 제공한다.
첫 번째 동작은 스테이션 유지(station-holding)이다: 사용자가 이미지화된 객체 중 둘 이상의 위에 커서(246)를 순차적으로 두어, 이들을 선택하면, 이미지 위치 모듈(422)은 다음 UAV 이미지를 해석하고 커맨드를 시나리오 프로세서(450)에 전달하여 UAV가 선택된 객체의 이미지 크기가 동일하게 유지되는 위치를 유지하도록 한다. 다시 말해, 객체를 이미지화하는 것으로부터 진행하여 물리 객체(마커로서 역할을 함)의 알려진 높이에 기초하여 거리를 결정하는 대신에, 본 실시예는 대응할 수 있는 객체와의 직선 거리에 관계없이, 선택된 화소 높이(또는 폭, 또는 면적)를 참조로 사용하여 "역"으로 동작한다. 예를 들어, 하나 이상의 이미지 크기가 감소하기 시작하면, UAV는 자율적으로(이미지 위치 모듈(422)의 제어하에), 이미지 크기가 감소한 임의의 객체(들)을 향해 UAV가 비행하게 하는 커맨드를 생성할 수 있다.
스테이션 유지는 스테이션 검색(station-finding)과 결합될 수도 있다. 본 실시예에서, 선택된 객체의 높이 및 각각으로부터의 원하는 거리는, 예를 들어 디스플레이(600)도 또한 접촉식(touch-sensitive)인 구현예에서, 표시된 숫자 패드 또는 영숫자 입력을 통한 것과 같은, 임의의 종래의 방법 및 제어기 동작을 사용하여 입력될 수 있다. 역으로 되기는 하지만, 위의 도 1a 및 도 1b에 대해 설명된 식을 사용하여, 이미지 위치 처리 모듈은 입력 데이터를 원하는 스테이션 위치에서 화소 높이로 변환한 다음, 그 위치로 자율적으로 조종할 수 있다. 이렇게 하는 한 가지 방법은, UAV가 선택한 객체 중 하나를 향해 올바른 거리에 도달할 때까지 먼저 비행한 다음, 원호로 비행하여, 두 번째 객체의 화소 높이가 획득될 때까지 그 객체의 화소 높이를 유지하는 것이다. 이 프로시저는 각각은 "스테이션"을 나타내는 복수의 지점에 대해 반복될 수 있으므로, 궤적(trajectory), 즉 경로(route)가 UAV 내에 프로그래밍될 수 있도록 하여, 위에서 설명한 바와 같이 광학적 거리 추정을 사용하여 이를 추적할 수 있다. 비행 제어 시스템을 포함할 수 있는 일반화 된 UCO를 위한 도 3에 도시된 커맨드 모듈(560) 및 모터 제어기(562)와 같은 임의의 종래의 구성요소를 사용하여 비행 제어가 제공될 수 있다.
마커 선택은 디스플레이상의 커서와 같은 제어기를 통한 사용자 입력에 따른 것일 수 있거나, 예를 들어 이미지 처리 모듈(522)의 제어 하에서, 자율적일 수 있다. 예를 들어, 사용자가 단순히 "유지(hold)"를 지시하면, UAV의 이미지 처리 모듈(522)은, 알려진 방법을 사용하여, 정의 가능하고 적어도 일차원으로 화소 측정 가능한 크기를 갖는 임의의 2개 이상의 이미지 특징부 추출하고, 대응하는 상대 거리를 유지하도록 조종할 수 있다. 나침반이 UAV 회로에 포함되어 있으면, 단일 마커와 그에 대한 방위가 대신 사용되거나, 추가로 사용될 수 있다.
경우에 따라서는, 하나의 적절한 객체만이 UAV 카메라의 시야 내에 있을 수 있다. 이러한 경우, 그 객체에 대한 상대 거리를 결정하는 것이 가능하지만, 그러면 하나의 이상의 다른 측정 가능한 객체가 획득될 때까지 요 조종(yaw maneuver)을 수행한다. UAV는 각각의 마커 이미지를 캡처하고, 필요에 따라 거리를 보정 다음, 다른 쪽으로 다시 요우잉하기 위해, 주기적으로 앞뒤로 요우잉하여 위치를 유지할 수 있다. 필요한 경우, 요 조정 중에 서로 다른 객체를 적절히 식별하는 것을 보정하기 위해 알려진 특성 인식 방법(패턴 매칭과 같은 것)이 사용될 수 있다.
또 다른 동작은 궤도(orbit)를 도는 것일 수 있다: 물리 객체가 (사용자에 의해 또는 자율적으로) 마커로서 선택되고 그것에 대한 거리가 광학적으로 추정된 후, 사용자는 제어기를 통해, UAV에 궤도에서 비행하도록, 즉 수평으로 움직이지만 객체와 일정한 거리를 유지하도록, 임의의 적절한 커맨드를 입력할 수 있다.
디스플레이(600)는 UAV 카메라(들)가 "보는" 것의 변환되지 않은 표현을 보여줄 수 있다. 다시 말해, UAV는 단순히 디스플레이가 사용자에게 보여주는 비디오 이미지를 획득하는 데 사용될 수 있다. 다른 구현예에서, 표시된 장면은 도 2에서와 같이 물리-가상 변환(physical-to-virtual transformation)일 수 있으며, 이에 의해 건물과 같은 물리 특징부가 마커로서 사용될 수 있다.
하이브리드 시나리오도 가능하다: UAV 카메라(1020)에 의해 획득된 실제 이미지의 적어도 일부가 표시될 수 있지만, 표시된 현실을 증강하는 컴퓨터 생성 오버레이(computer-generated overlay)를 함께한다. 예를 들어, 하나의 구현예에서, 사용자는 실제 도시를 통해 UAV를 조종할 수 있으며, 도시의 빌딩 중 적어도 일부및 다른 특징부가 광학 내비게이션의 목적으로 마커로서 기능하지만, 디스플레이의 적어도 일부는 오버레이되거나 가상 특징부, 배경, 등으로 대체될 수 있다.
도 5에서, 예를 들어, 디스플레이(가상 디스플레이 환경에 대응함)는 다수의 태양, 용(247) 및 보물 상자(248)를 포함하도록 증강되었다. 이러한 실시예는, 예를 들어, 플레이어가 물리 환경에서 그들 각자의 UAV를 조종하여 실제의 물리 객체 또는 시스템이 생성한 가상 객체(예: 보물 상자(248))일 수 있는 객체를 찾는 UAV 구현 "보물 사냥"을 가능하게 하는데 사용될 수 있다.
도 6은 한 쌍의 UAV(1000, 1500)가 고정된 거리를 두고 편대로 비행할 수 있도록 광학 거리 추정이 사용되는 또 다른 실시예를 나타낸다. 본 실시예에서, UAV 중 적어도 하나("추종자 UAV")는 비행 중에 다른 "지도자" UAV를 시야에 유지할 수 있는 카메라를 갖는다. 예시된 바와 같이, 실질적으로 수평을 지향하는 카메라(1520)는 지도자 UAV(1000)가 나타나는 시야(1521)를 갖는다. 지도자 UAV 본체의 일부분의 크기가 알려져 있거나 쉽게 획득되고 이미지화된 마커가 지도자 UAV에 포함되어 있으면, 추종자 UAV는 전술한 거리 조정 기술(distancing technique)을 사용하여, 일정한 대응 화소 높이를 유지할 수 있고 따라서 지도자 UAV까지의 거리를 유지할 수 있다. 대안적으로, 추종자 UAV의 제어기 디스플레이상에서 지도자 UAV를 볼 수 있는 사용자는, 도 5를 참조하여 전술한 기술을 사용하여, 그것이 적절한 거리에 있음을 볼 때 지도자 UAV의 추종자 UAV에 의한 측정을 측정을 트리거할 수 있으며, 그에 따라 추종자 UAV는 거리 및/또는 방향을 유지하기 위해 자율적으로 조종할 수 있다(도 1b의 기술이 적용되는 경우). 나침반이 적어도 추종자 UAV에 포함되면, 지도자 UAV에 대한 방위도 측정 및 유지될 수 있다.
도 6에 나타낸 실시예의 하나의 사용은 물리 구역(2000)의 입체 이미지화이다. UAV(1000, 1500)가 중첩되는 시야(1030, 1530)를 하향으로 하여, 전술한 바와 같이 편대 비행한다고 가정하자. 각각의 UAV는 그 이미지화 데이터를 각각의 제어기 또는 다른 시스템으로 다시 전송할 수 있다. 이미지 데이터는 실질적으로 동일한 구역이지만, 상대 오프셋을 갖는 이미지를 나타낼 것이기 때문에, 물리 환경의 3-D 이미지는 알려진 방법을 사용하여 생성될 수 있다.
일부 입체 이미징 시스템에서, 이미지 분리, 즉 시차(parallax)는 단일 카메라로부터 이미지를 촬영함으로써 제공되지만 UAV가 이동함에 따라 각각의 사이에 시간 갭이 있다. 많은 구현예에서 만족스럽지만, 균일한 프레임 분포는 일정한 속도를 유지하거나 그렇지 않으면, 예를 들어 관성 측정 장치(IMU) 사용하여, 정밀한 움직임 정보를 획득하는 능력에 의존한다. 그러나 거리 유지와 함께, 쌍둥이 UAV를 사용하면, 속도나 방향에 관계없이 일정한 분리를 보장한다.
편대 비행하는 둘 이상의 UAV로부터의 입체 이미징의 다른 하나의 용도는, 상이한 파장 또는 유형의 편광에서 작동하고, 상이한 색상 필터를 구비하는 등의 카메라를 서로 다른 UAV가 사용할 수 있다는 것이다. 고정된 광학 거리 분리(fixed optical distance separation)를 사용하는 편대 비행을 구현하는 또 다른 가능한 이유는 단순히 두 친구가 재미를 위해 각자의 드론을 편대로 비행하고 싶어하는 것만큼 단순할 수 있다.

Claims (71)

  1. 가상 환경에서의 이동하는 가상 객체에 대응하는, 물리 환경에서의 물리 객체를 네비게이팅하기 위한 방법으로서,
    A) 상기 물리 객체가, 하나의 이상의 물리 마커가 상기 물리 객체 상에 장착된 하나의 이상의 이미징 기기의 시야 내에 있는 제1 위치에 있는 경우,
    i) 상기 하나 이상의 물리 마커의 이미지를 획득하고;
    ii) 상기 하나의 이상의 물리 마커의 획득된 이미지의 평가에 기초하여 상기 물리 환경에서의 상기 물리 객체의 물리 위치를 결정하고;
    iii) 상기 가상 객체에 대해, 상기 물리 환경에서의 상기 물리 객체의 결정된 물리 위치에 대응하는 상기 가상 환경 내의 가상 위치를 결정하는 단계; 및
    B) 상기 물리 객체가, 미리 결정된 수 이하의 상기 물리 마커가 시야 내에 있는 제2 위치에 있는 경우,
    i) 상기 물리 객체의 보조 위치 시스템(secondary positional system)을 사용하여 상기 물리 객체의 물리 위치를 추정하고 - 상기 보조 위치 시스템은 상기 물리 마커에 대한 광학 기준(optical reference)과는 독립적으로 작동함 -;
    ii) 상기 가상 객체에 대해, 추정된 물리 위치에 대응하는 상기 가상 환경 내의 추정된 가상 위치를 결정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 이미징 기기의 특징에 대한 상기 물리 마커의 각각의 이미지화된 크기의 함수로서 상기 물리 객체에서 각각의 이미지화된 물리 마커까지의 물리 거리를 결정하는 단계; 및
    결정된 물리 거리의 함수로서 상기 물리 위치를 결정하는 단계를 더 포함하는 방법.
  3. 제2항에 있어서,
    각각의 물리 마커는 적어도 일차원에서 각각의 미리 결정된 크기를 갖는, 방법.
  4. 제2항에 있어서,
    상기 물리 마커 중 적어도 하나에, 적어도 일차원에서 미리 결정된 크기, 상기 물리 환경 내에서의 위치, 및 대응하는 디스플레이 특성의 유형을 포함하는 그룹에서 선택된 하나의 이상의 특징을 지시하는 광학적으로 해석 가능한 인코딩을 제공하는 단계를 더 포함하는 방법.
  5. 제3항에 있어서,
    각각의 이미지화된 물리 마커의 상기 획득된 이미지의 평가는 하나의 이상의 방향에서 각각의 획득된 이미지의 이미지화된 크기를 상기 이미징 기기 내의 기준과 비교하는 것을 포함하는, 방법.
  6. 제3항에 있어서,
    상기 물리 마커 중 적어도 하나는 적어도 이차원에서 미리 결정된 크기를 가지고;
    각각의 이미지화된 물리 마커의 상기 획득된 이미지의 평가는 2개 이상의 방향에서 각각의 획득된 이미지의 이미지화된 크기를 상기 이미징 기기 내의 하나의 이상의 각각의 기준과 비교하는 것을 포함하는, 방법.
  7. 제2항에 있어서,
    서로 다른 스케일링 인자를 상기 물리 마커 중 서로 다른 물리 마커에 연관시켜, 각각의 서로 다른 가상 객체의 서로에 대한 상기 추정된 가상 위치를 결정하는 것이 상기 각각의 스케일링 인자의 함수로서 조정 가능하도록 하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서,
    디스플레이상에, 상기 물리 환경에서의 상기 물리 객체의 결정된 물리 위치에 대응하는 상기 가상 환경 내의 결정된 가상 위치에 상기 가상 객체의 이미지를 생성하는 단계를 더 포함하는 방법.
  9. 제8항에 있어서,
    상기 물리 마커 중 적어도 하나를 상기 디스플레이상에 표시된 대응하는 가상 특성과 연관시키는 단계를 더 포함하는 방법.
  10. 제9항에 있어서,
    상기 물리 마커 중 적어도 하나에 대응하여 결정된 가상 위치를 참조하는 특성 위치를 갖는 상기 디스플레이 내에 표시된 하나의 이상의 이동 가상 특성의 이동 이미지를 생성하는 단계를 더 포함하는 방법.
  11. 제1항에 있어서,
    상기 디스플레이는 가상현실 헤드셋에 포함되는, 방법.
  12. 제1항에 있어서,
    상기 보조 위치 시스템은 누적 오차(accumulating error)를 갖는, 방법.
  13. 제12항에 있어서,
    상기 물리 객체가 상기 제2 위치에서 상기 제1 위치로 이동하는 경우에 상기 누적 오차로부터 누적된 오차의 양을 추정하는 단계를 더 포함하는 방법.
  14. 제13항에 있어서,
    상기 물리 객체가 상기 제2 위치로부터 상기 제1 위치로 천이할 때, 상기 물리 객체가 상기 제2 위치에 있었을 때의 상기 가상 환경의 추정 상태에서 상기 물리 객체가 상기 제1 위치에 있었을 때에 대응하는 가상 환경의 현재 상태로의 천이 가상 환경(transitioning virtual environment)을 표시하는 단계를 더 포함하는 방법.
  15. 제13항에 있어서,
    추정된 상기 누적된 오차의 양에 대응하여 상기 보조 위치 시스템에 보정을 적용하는 단계를 더 포함하는 방법.
  16. 제12항에 있어서,
    상기 물리 객체가 상기 제1 위치에서 상기 제2 위치로 천이할 때, 천이 위치에 대응하는 위치 파라미터로 상기 보조 위치 시스템을 초기화하는 단계를 더 포함하는 방법.
  17. 제1항에 있어서,
    상기 보조 위치 시스템은 관성 측정 유닛인, 방법.
  18. 제1항에 있어서,
    상기 물리 객체는 상기 가상 환경에서의 상기 가상 객체의 가상 위치에 따라 사용자에 의해 조종되는, 방법.
  19. 제1항에 있어서,
    상기 물리 환경에서의 상기 사용자 제어형 물리 객체의 물리 위치에 기초하여 상기 가상 환경에 표시하기 위한 이벤트를 생성하는 단계를 더 포함하는 방법.
  20. 제1항에 있어서,
    상기 물리 객체의 제1 위치 및 제2 위치는 상기 이미징 기기의 각도 방향에 의존하는, 방법.
  21. 무인 항공기(unmanned aerial vehicle, UAV) 조종 방법으로서,
    상기 UAV에 장착된 카메라를 통해, 하나의 이상의 물리 객체의 이미지를 획득하는 단계;
    각각의 획득된 이미지에 기초하여 상기 UAV에서 상기 하나의 이상의 물리 객체까지의 각각의 위치 파라미터를 측정하는 단계; 및
    결정된 위치 파라미터에 대응하여 상기 UAV의 위치를 결정하는 상기 획득된 이미지에 기초하여 비행 궤적(flight trajectory)을 자율적으로 추종하는 단계
    를 포함하는 무인 항공기(UAV) 조종 방법.
  22. 제21항에 있어서,
    상기 비행 궤적은 고정 위치인, 무인 항공기(UAV) 조종 방법.
  23. 제21항에 있어서,
    상기 비행 궤적은 궤도(orbit)인, 무인 항공기(UAV) 조종 방법.
  24. 제22항에 있어서,
    스테이션 유지 커맨드(station-holding command)를 감지하는 단계를 더 포함하는 무인 항공기(UAV) 조종 방법.
  25. 제24항에 있어서,
    상기 하나의 이상의 물리 객체에 대응하는 하나의 이상의 이미지화된 객체를 현재 이미지 뷰에서 식별하는 단계;
    상기 하나의 이상의 이미지화된 객체의 이미지 특징을 측정하는 단계; 및
    상기 UAV 내에서, 대응하는 상기 하나의 이상의 이미지화된 객체 각각의 이미지 특징을 실질적으로 일정하게 유지함으로써 상기 하나의 이상의 물리 객체에 대한 스테이션을 유지하도록 UAV 비행을 자율적으로 제어하는 단계를 더 포함하는 무인 항공기(UAV) 조종 방법.
  26. 제25항에 있어서,
    상기 UAV 내에서, 상기 하나 이상의 물리 객체를 자율적으로 선택하는 단계를 더 포함하는 무인 항공기(UAV) 조종 방법.
  27. 제26항에 있어서,
    정적 구조물의 특징적인 기하학적 특성을 식별함으로써 상기 하나의 이상의 이미지화된 객체를 식별하는 단계를 더 포함하는 무인 항공기(UAV) 조종 방법.
  28. 제25항에 있어서,
    상기 고정 위치는 이동 객체에 대해 결정되는, 무인 항공기(UAV) 조종 방법.
  29. 제24항에 있어서,
    상기 이동 객체는 제2 UAV인, 무인 항공기(UAV) 조종 방법.
  30. 제29항에 있어서,
    상기 UAV 및 상기 제2 UAV로부터 함께 영역의 제1 이미지 및 제2 이미지를 각각 획득하는 단계; 및
    상기 제1 이미지 및 상기 제2 이미지로부터 상기 영역의 입체 이미지화 데이터를 컴파일하는 단계를 더 포함하는, 무인 항공기(UAV) 조종 방법.
  31. 제25항에 있어서,
    사용자로부터 타깃 선택 데이터를 수신하는 단계 - 상기 타깃 선택 데이터는 상기 하나의 이상의 물리 객체를 식별할 수 있게 해줌 -를 더 포함하는 무인 항공기(UAV) 조종 방법.
  32. 제25항에 있어서,
    각각의 이미지 특징은 거리와 방위(bearing)의 그룹에서 선택되는, 무인 항공기(UAV) 조종 방법.
  33. 제21항에 있어서,
    상기 비행 궤적은 비정적인, 무인 항공기(UAV) 조종 방법.
  34. 제21항에 있어서,
    상기 위치 파라미터는 거리 추정치인, 무인 항공기(UAV) 조종 방법.
  35. 제21항에 있어서,
    상기 위치 파라미터는 방위인, 무인 항공기(UAV) 조종 방법.
  36. 제21항에 있어서,
    상기 UAV는 상기 위치 파라미터를 자율적으로 측정하는, 무인 항공기(UAV) 조종 방법.
  37. 물리 환경에서의 사용자 제어형 물리 객체에 대응하는, 가상 환경에서의 가상 객체를 조종하는 시스템으로서,
    사용자가 상기 물리 환경에서 상기 물리 객체를 조종할 수 있게 하는 제어기;
    상기 물리 객체에 포함되고, 상기 물리 객체가, 하나의 이상의 물리 마커가 시야 내에 있는 상기 물리 환경에서 제1 위치에 있는 경우, 상기 하나 이상의 물리 마커의 이미지를 획득하기 위해 제공된 이미징 기기;
    상기 하나의 이상의 물리 마커의 획득된 이미지의 평가에 기초하여 상기 물리 환경에서의 상기 물리 객체의 물리 위치를 결정하기 위해 제공된 이미지 기반 위치결정 모듈;
    상기 물리 객체가, 미리 결정된 수 이하의 상기 물리 마커가 상기 시야 내에 있는 제2 위치에 있는 경우, 상기 물리 객체의 물리 위치를 결정하기 위해 제공된 보조 위치 시스템 - 상기 보조 위치 시스템은 상기 물리 마커에 대한 광학 기준과는 독립적으로 작동함 -;
    상기 가상 객체에 대해, 상기 물리 환경에서의 상기 물리 객체의 결정된 물리 위치에 대응하는 상기 가상 환경 내의 가상 위치를 결정하기 위해 제공된 시나리오 처리 모듈; 및
    상기 결정된 물리 위치에 대응하는 디스플레이 위치에 상기 가상 객체를 표시하기 위한 디스플레이
    를 포함하는 시스템.
  38. 제27항에 있어서,
    상기 보조 위치 시스템은 추가로,
    상기 이미징 기기의 특성에 대한 상기 물리 마커의 각각의 이미지화된 크기의 함수로서 상기 물리 객체에서 각각의 이미지화된 물리 마커까지의 물리 거리를 결정하고;
    결정된 물리 거리의 함수로서 상기 물리 위치를 결정하기 위해 제공되는, 시스템.
  39. 제38항에 있어서,
    각각의 물리 마커는 하나의 이상의 치수에서 각각의 미리 결정된 크기를 갖는, 시스템.
  40. 제38항에 있어서,
    상기 물리 마커 중 적어도 하나는, 적어도 일차원에서 미리 결정된 크기, 상기 물리 환경 내에서의 위치, 및 대응하는 디스플레이 특성의 유형을 포함하는 그룹에서 선택된 하나의 이상의 특징을 지시하는 광학적으로 해석 가능한 인코딩을 구비하는, 시스템.
  41. 제39항에 있어서,
    상기 이미지 기반 위치결정 모듈은 추가로, 상기 하나의 이상의 방향에서 각각의 획득된 이미지의 이미지화된 크기를 상기 이미징 기기 내의 기준과 비교하기 위해 제공되는, 시스템.
  42. 제39항에 있어서,
    상기 물리 마커 중 적어도 하나는 적어도 이차원에서 미리 결정된 크기를 가지고;
    상기 이미지 기반 위치결정 모듈은 추가로, 2개 이상의 방향에서 각각의 획득된 이미지의 이미지화된 크기를 상기 이미징 기기 내의 하나의 이상의 각각의 기준과 비교하기 위해 제공되는, 시스템.
  43. 제38항에 있어서,
    상기 시나리오 처리 모듈은 상기 물리 마커 중 서로 다른 물리 마커에 서로 다른 스케일링 인자를 적용하기 위해 제공되며, 그에 따라 상기 디스플레이의 종횡비는 상기 물리 환경의 차원에 대해 조정 가능한, 시스템.
  44. 제37항에 있어서,
    상기 시나리오 처리 모듈은 추가로, 상기 물리 마커 중 적어도 하나를 상기 디스플레이상에 표시된 대응하는 가상 특성과 연관시키기 위해 제공되는, 시스템.
  45. 제44항에 있어서,
    상기 시나리오 처리 모듈은 추가로, 상기 물리 마커 중 적어도 하나에 대응하여 결정된 가상 위치를 참조하는 특성 위치를 갖는 상기 디스플레이 내에 표시된 하나의 이상의 이동 가상 특성의 이동 이미지를 생성하기 위해 제공되는, 시스템.
  46. 제37항에 있어서,
    상기 디스플레이는 가상현실 헤드셋에 포함되는, 시스템.
  47. 제37항에 있어서,
    상기 보조 위치 시스템은 누적 오차를 갖는, 시스템.
  48. 제47항에 있어서,
    상기 보조 위치 시스템은 추가로, 상기 물리 객체가 상기 제2 위치에서 상기 제1 위치로 이동하는 경우에 상기 누적 오차로부터 누적된 오차의 양을 추정하기 위해 제공되는, 시스템.
  49. 제48항에 있어서,
    상기 시나리오 처리 모듈은, 상기 물리 객체가 상기 제2 위치로부터 상기 제1 위치로 천이할 때, 상기 물리 객체가 상기 제2 위치에 있었을 때의 상기 가상 환경의 추정 상태에서 상기 물리 객체가 상기 제1 위치에 있었을 때에 대응하는 상기 가상 환경의 현재 상태로의 천이 가상 환경을 표시하기 위해 제공되는, 시스템.
  50. 제48항에 있어서,
    상기 보조 위치 시스템은 추정된 상기 누적된 오차의 양에 대응하여 상기 보조 위치 시스템에 보정을 적용하기 위해 제공되는, 시스템.
  51. 제47항에 있어서,
    상기 물리 객체가 상기 제1 위치에서 상기 제2 위치로 천이할 때, 상기 보조 위치 시스템은 천이 위치에 대응하는 위치 파라미터로 초기화되는, 시스템.
  52. 제37항에 있어서,
    상기 보조 위치 시스템은 관성 측정 유닛인, 시스템.
  53. 제37항에 있어서,
    상기 물리 객체는 상기 가상 환경에서의 상기 가상 객체의 가상 위치에 따라 사용자에 의해 조종되는, 시스템.
  54. 제37항에 있어서,
    상기 시나리오 처리 모듈은 추가로, 상기 물리 환경에서의 상기 사용자 제어형 물리 객체의 물리 위치에 기초하여 상기 가상 환경에서 이벤트를 생성하기 위해 제공되는, 시스템.
  55. 제37항에 있어서,
    상기 물리 객체의 제1 위치 및 제2 위치는 상기 이미징 기기의 각도 방향에 의존하는, 시스템.
  56. 무인 항공기(UAV) 조종 시스템으로서,
    하나의 이상의 물리 객체의 이미지를 획득하기 위해 제공된 상기 UAV에 장착된 카메라;
    각각의 획득된 이미지에 기초하여 상기 UAV에서 상기 하나의 이상의 물리 객체까지의 각각의 위치 파라미터를 측정하기 위한 이미지 처리 모듈; 및
    상기 획득된 이미지에 기초하여 비행 궤적을 자율적으로 추종하고, 결정된 위치 파라미터에 대응하는 상기 UAV의 위치를 결정하기 위해 제공된 비행 제어 시스템
    을 포함하는 무인 항공기(UAV) 조종 시스템.
  57. 제56항에 있어서,
    상기 비행 궤적은 고정 위치인, 무인 항공기(UAV) 조종 시스템.
  58. 제56항에 있어서,
    상기 비행 궤적은 궤도인, 무인 항공기(UAV) 조종 시스템.
  59. 제57항에 있어서,
    상기 비행 제어 시스템은 스테이션 유지 커맨드를 감지하기 위해 제공되는, 무인 항공기(UAV) 조종 시스템.
  60. 제59항에 있어서,
    상기 이미지 처리 모듈은 현재 이미지 뷰에서 상기 하나의 이상의 물리 객체에 대응하는 하나의 이상의 이미지화된 객체를 식별하고 상기 하나 이상의 이미지화된 객체의 이미지 특징을 측정하기 위해 제공되고,
    상기 비행 제어 시스템은, 상기 UAV 내에서, 상기 대응하는 하나의 이상의 이미지화된 객체 각각의 이미지 특징을 실질적으로 일정하게 유지함으로써 상기 하나의 이상의 물리 객체에 대한 스테이션을 유지하도록 UAV 비행을 자율적으로 제어하기 위해 제공되는, 무인 항공기(UAV) 조종 시스템.
  61. 제60항에 있어서,
    상기 이미지 처리 모듈은, 상기 UAV 내에서, 상기 하나 이상의 물리 객체를 자율적으로 선택하기 위해 제공되는, 무인 항공기(UAV) 조종 시스템.
  62. 제61항에 있어서,
    상기 이미지 처리 모듈은 정적 구조물의 특징적인 기하학적 특성을 식별함으로써 상기 하나의 이상의 이미지화된 객체를 식별하기 위해 제공되는, 무인 항공기(UAV) 조종 시스템.
  63. 제60항에 있어서,
    상기 고정 위치는 이동 객체에 대해 결정되는, 무인 항공기(UAV) 조종 시스템.
  64. 제59항에 있어서,
    상기 이동 객체는 제2 UAV인, 무인 항공기(UAV) 조종 시스템.
  65. 제64항에 있어서,
    상기 이미지 처리 모듈은,
    상기 UAV 및 상기 제2 UAV로부터 함께 영역의 제1 이미지 및 제2 이미지를 각각 획득하고;
    상기 제1 이미지 및 상기 제2 이미지로부터 상기 영역의 입체 이미지화 데이터를 컴파일하기 위해 제공되는, 무인 항공기(UAV) 조종 시스템.
  66. 제60항에 있어서,
    사용자로부터 타깃 선택 데이터를 수신하기 위해 제공된 I/O 모듈 - 상기 타깃 선택 데이터는 상기 하나의 이상의 물리 객체를 식별할 수 있게 해줌 -을 더 포함하는 무인 항공기(UAV) 조종 시스템.
  67. 제60항에 있어서,
    각각의 이미지 특징은 거리와 방위의 그룹에서 선택되는, 무인 항공기(UAV) 조종 시스템.
  68. 제56항에 있어서,
    상기 비행 궤적은 비정적인, 무인 항공기(UAV) 조종 시스템.
  69. 제56항에 있어서,
    상기 위치 파라미터는 거리 추정치인, 무인 항공기(UAV) 조종 시스템.
  70. 제56항에 있어서,
    방위 측정 기기를 더 포함하며, 상기 위치 파라미터가 방위인, 무인 항공기(UAV) 조종 시스템.
  71. 제56항에 있어서,
    상기 UAV는 상기 위치 파라미터를 자율적으로 측정하는, 무인 항공기(UAV) 조종 시스템.
KR1020207007503A 2018-05-02 2018-05-02 광학적으로 지원되는 객체 내비게이션 Abandoned KR20200035461A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/085341 WO2019210465A1 (en) 2018-05-02 2018-05-02 Optically supported object navigation

Publications (1)

Publication Number Publication Date
KR20200035461A true KR20200035461A (ko) 2020-04-03

Family

ID=68386212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207007503A Abandoned KR20200035461A (ko) 2018-05-02 2018-05-02 광학적으로 지원되는 객체 내비게이션

Country Status (6)

Country Link
US (1) US20210047037A1 (ko)
EP (1) EP3673462B1 (ko)
JP (1) JP2021518953A (ko)
KR (1) KR20200035461A (ko)
CN (1) CN111433814A (ko)
WO (1) WO2019210465A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117280696A (zh) * 2021-04-16 2023-12-22 松下知识产权经营株式会社 影像显示系统及影像显示方法
CN113559517B (zh) * 2021-07-30 2023-07-14 腾讯科技(深圳)有限公司 非玩家虚拟角色的控制方法和装置、存储介质及电子设备
CN113769405B (zh) * 2021-09-15 2024-07-16 网易(杭州)网络有限公司 对象控制方法及装置
WO2023076708A1 (en) * 2021-11-01 2023-05-04 Brookhurst Garage, Inc. Precision height estimation using sensor fusion
WO2023181568A1 (ja) * 2022-03-25 2023-09-28 株式会社ワコム コントローラ及びコンピュータ

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11309269A (ja) * 1998-04-27 1999-11-09 Sony Corp ゲーム装置、シミュレーション装置及びゲーム画像表示方法
GB2449694B (en) 2007-05-31 2010-05-26 Sony Comp Entertainment Europe Entertainment system and method
US9256282B2 (en) * 2009-03-20 2016-02-09 Microsoft Technology Licensing, Llc Virtual object manipulation
US9155961B2 (en) * 2009-05-28 2015-10-13 Anki, Inc. Mobile agents for manipulating, moving, and/or reorienting components
JP5423406B2 (ja) * 2010-01-08 2014-02-19 ソニー株式会社 情報処理装置、情報処理システム及び情報処理方法
CA2888943C (en) * 2013-10-03 2015-08-18 Sulon Technologies Inc. Augmented reality system and method for positioning and mapping
US10510189B2 (en) * 2014-04-16 2019-12-17 Sony Interactive Entertainment Inc. Information processing apparatus, information processing system, and information processing method
CN104298248B (zh) * 2014-10-08 2018-02-13 南京航空航天大学 旋翼无人机精确视觉定位定向方法
CN104279960B (zh) * 2014-10-14 2017-01-25 安徽大学 用移动设备进行物体尺寸测量的方法
US10725297B2 (en) * 2015-01-28 2020-07-28 CCP hf. Method and system for implementing a virtual representation of a physical environment using a virtual reality environment
WO2016196093A1 (en) * 2015-06-01 2016-12-08 Stoman Nicolaas Systems, methods, and apparatuses for managing aerial drone parcel transfers
US9989965B2 (en) * 2015-08-20 2018-06-05 Motionloft, Inc. Object detection and analysis via unmanned aerial vehicle
US9947140B2 (en) * 2015-09-15 2018-04-17 Sartorius Stedim Biotech Gmbh Connection method, visualization system and computer program product
WO2017057157A1 (ja) * 2015-09-30 2017-04-06 株式会社ニコン 飛行装置、移動装置、サーバおよびプログラム
JP2017092866A (ja) * 2015-11-16 2017-05-25 富士通株式会社 表示制御方法、表示制御プログラムおよび情報処理装置
US10071306B2 (en) * 2016-03-25 2018-09-11 Zero Latency PTY LTD System and method for determining orientation using tracking cameras and inertial measurements
US10249200B1 (en) * 2016-07-22 2019-04-02 Amazon Technologies, Inc. Deployable delivery guidance
FR3054334A1 (fr) * 2016-07-22 2018-01-26 Parrot Drones Systeme autonome de prise de vues animees comprenant un drone et une station au sol, et procede associe.
US10497129B1 (en) * 2016-08-31 2019-12-03 Amazon Technologies, Inc. Image-based weather condition detection
US11164149B1 (en) * 2016-08-31 2021-11-02 Corvus Robotics, Inc. Method and system for warehouse inventory management using drones
CN106681510B (zh) * 2016-12-30 2020-06-05 光速视觉(北京)科技有限公司 位姿识别装置、虚拟现实显示装置以及虚拟现实系统
CN107077739A (zh) * 2017-01-23 2017-08-18 香港应用科技研究院有限公司 使用单目相机的三维标记模型构建和实时跟踪
JP7106160B2 (ja) * 2018-03-27 2022-07-26 株式会社Acsl 無人航空機

Also Published As

Publication number Publication date
EP3673462A4 (en) 2020-09-09
EP3673462B1 (en) 2021-09-22
CN111433814A (zh) 2020-07-17
JP2021518953A (ja) 2021-08-05
EP3673462A1 (en) 2020-07-01
WO2019210465A1 (en) 2019-11-07
US20210047037A1 (en) 2021-02-18

Similar Documents

Publication Publication Date Title
US20210047037A1 (en) Optically supported object navigation
US12181879B2 (en) System and method for supporting smooth target following
US20210012520A1 (en) Distance measuring method and device
US11906983B2 (en) System and method for tracking targets
CN111338383B (zh) 基于gaas的自主飞行方法及系统、存储介质
JP6943988B2 (ja) 移動可能物体の制御方法、機器およびシステム
WO2017071143A1 (en) Systems and methods for uav path planning and control
US20090087029A1 (en) 4D GIS based virtual reality for moving target prediction
US10527423B1 (en) Fusion of vision and depth sensors for navigation in complex environments
US20200221056A1 (en) Systems and methods for processing and displaying image data based on attitude information
JP7603709B2 (ja) 視覚キュー型ランダムアクセスlidarシステム、並びに、所在特定及びナビゲーションのための方法
KR102555269B1 (ko) 전방향 영상센서 및 관성측정센서의 자세추정 융합 방법 및 시스템
CN113465600B (zh) 一种导航方法、装置及电子设备和存储介质
Celik et al. Mono-vision corner SLAM for indoor navigation
EP3926432B1 (en) Touch control of unmanned aerial vehicles
Gonzalez-Jimenez et al. Improving 2d reactive navigators with kinect
KR101319526B1 (ko) 이동 로봇을 이용하여 목표물의 위치 정보를 제공하기 위한 방법
Nyqvist et al. A high-performance tracking system based on camera and IMU
US20190383616A1 (en) Terrestrial observation device having location determination functionality
KR102181809B1 (ko) 시설물 점검 장치 및 방법
KR20230070890A (ko) 전자 장치의 관심 영역 시각화 방법
Stepanov et al. Methods of visual navigation of the UAV flying over the nonplanar district
CN108536289A (zh) 一种虚拟环境的场景切换方法及系统
Sumetheeprasit Flexible Configuration Stereo Vision using Aerial Robots
Huang et al. Infrared marker-based tracking in an indoor unknown environment for augmented reality applications

Legal Events

Date Code Title Description
A201 Request for examination
E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

NORF Unpaid initial registration fee
PC1904 Unpaid initial registration fee

St.27 status event code: A-2-2-U10-U14-oth-PC1904

St.27 status event code: N-2-6-B10-B12-nap-PC1904

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000