KR20150114892A - 센서 융합을 이용한 환경 내에서의 로컬라이제이션 - Google Patents

센서 융합을 이용한 환경 내에서의 로컬라이제이션 Download PDF

Info

Publication number
KR20150114892A
KR20150114892A KR1020150037245A KR20150037245A KR20150114892A KR 20150114892 A KR20150114892 A KR 20150114892A KR 1020150037245 A KR1020150037245 A KR 1020150037245A KR 20150037245 A KR20150037245 A KR 20150037245A KR 20150114892 A KR20150114892 A KR 20150114892A
Authority
KR
South Korea
Prior art keywords
data streams
environment
mobile platform
data
type data
Prior art date
Application number
KR1020150037245A
Other languages
English (en)
Other versions
KR102359186B1 (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 KR20150114892A publication Critical patent/KR20150114892A/ko
Application granted granted Critical
Publication of KR102359186B1 publication Critical patent/KR102359186B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • G05D1/0236Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons in combination with a laser
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/02Manipulators mounted on wheels or on carriages travelling along a guideway
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1652Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with ranging devices, e.g. LIDAR or RADAR
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1656Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • 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/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0248Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means in combination with a laser
    • 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/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0253Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
    • 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/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
    • 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/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Electromagnetism (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Optics & Photonics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)

Abstract

환경 내에서 이동 플랫폼을 가이딩하기 위한 방법 및 장치가 제공될 수 있다. 다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들은 복수의 데이터 시스템들을 이용해서 생성될 수 있다. 다수의 수정된 데이터 스트림들을 형성하기 위하여 확률 분포가 다수의 제2 타입 데이터 스트림들 각각에 적용될 수 있다. 이동 플랫폼 주변의 환경에 대해서 원하는 레벨의 정확도를 가지고 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들이 융합될 수 있다.

Description

센서 융합을 이용한 환경 내에서의 로컬라이제이션{LOCALIZATION WITHIN AN ENVIRONMENT USING SENSOR FUSION}
본 발명은 일반적으로 환경 내의 이동 플랫폼의 포즈를 식별하는 것에 관한 것이다. 더욱 구체적으로는, 본 발명은 환경 내에서의 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 불확실성의 척도(a measure of uncertainty)를 포함하는 데이터 스트림들을 형성하고 융합하기(fusing) 위한 방법 및 장치에 관한 것이다.
몇몇 상황들에서, 인간이 이동하는 방식으로 환경 내에서 자유롭게 이동할 수 있는 이동 로봇을 가지는 것이 바람직할 수 있다. 환경 내에서 전형적으로 이동 로봇이 이동하는 데에 도움이 될 수 있는 페인트, 테이프, 또는 자석들과 같은 물리적인 랜드마크들은 이동 로봇이 미리 정의된 루트들만을 따라가게 하도록 제한할 수 있다. 나아가, 이러한 타입의 물리적인 랜드마크들을 설치하는 것은 원하던 것보다 더 시간 소모적이고 비용이 많이 들 수 있다. 환경 내에서 더욱 자유롭게 이동하기 위해서, 이동 로봇은, 환경 내에서 이동 로봇의 포즈를 식별하는 것을 포함하는 로컬라이제이션을 수행할 필요가 있을 수 있다. 본 명세서에서 사용될 때, "포즈(pose)"는 레퍼런스 좌표계에 대한 포지션(position), 지향(orientation), 또는 양쪽 모두를 포함한다.
이동 로봇은 로컬라이제이션을 수행하기 위하여 외부 센서 시스템을 이용할 수 있다. 하지만, 몇몇 경우들에 있어서, 이동 로봇과 외부 센서 시스템 간의 가시선(line of sight)은 제조 환경 내의 다른 오브젝트들, 로봇들, 및/또는 사람들에 의해 방해를 받을 수 있다. 하나의 예로서, 항공기 제조 환경에서, 이동 로봇이 항공기의 날개 아래에서, 날개 내부에서, 크레인(crane)들 또는 기둥(column)들과 같은 공장 오브젝트들의 근처에서, 및/또는 제한된 영역들에서 작동할 때 가시선이 상실될 수 있다. 일단 가시선이 상실되면, 이동 로봇은 포즈 업데이트(pose update)들을 수신하는 것을 멈출 수 있고, 가시선이 회복될 때까지 오퍼레이션들을 중단할 필요가 있을 수 있다. 로컬라이제이션 없이, 이동 로봇은 원하는 만큼 정확하게 환경을 통과해서 내비게이팅할(navigate) 필요가 없을 수 있다.
나아가, 동적인 환경(dynamic environment)에서, 카트(cart)들, 플레인(plane)들, 워크 스테이션(work station)들, 비히클(vehicle)들, 장비 플랫폼(equipment platform)들, 다른 타입의 디바이스들, 인간 조작자(human operator)들, 또는 이들의 몇몇 조합이 이동할 수 있다. 그 결과, 이동 로봇은 이러한 타입의 환경, 또는 클러터(clutter)를 가지고 채워진 환경, 또는 효율적으로 세그먼트되거나 구성되지 않은 환경을 통과해서 이동하기 위하여 주변사물들(surroundings)에만 의존할 수 없을 수 있다. 현재 이용가능한 이동 로봇들은 이러한 상이한 타입의 환경들에서 원하는 만큼 안전한 방식으로 인간 조작자들 주변에서 머누버(maneuver)하지 못하거나 또는 원하는 성능 및 효율의 레벨을 가지고 작동하지 못할 수 있다.
게다가, 몇몇 경우들에 있어서, 로컬라이제이션을 위해 이용되는 장비 또는 디바이스들은 원하는 것보다 더 비싸거나, 더 크거나, 더 무거울 수 있다. 몇몇 상황들에 있어서, 원하는 레벨(level)의 정확도(accuracy)를 가지고 로컬라이제이션을 수행하기 위하여 요구되는 프로세싱은 원하는 것보다 더 시간 소모적이거나 더 많은 프로세싱 자원들을 필요로 할 수 있다. 그러므로, 상술한 문제점들 및 다른 가능한 문제점들 중의 적어도 일부를 고려하는 방법 및 장치를 가지는 것이 바람직할 것이다.
본 발명은 상술한 문제점을 해결하는 방법 및 장치를 제공하는 것을 목적으로 한다.
하나의 예시적인 실시예에 있어서, 장치는 복수의 데이터 시스템들, 수정기, 및 포즈 추정기를 포함할 수 있다. 복수의 데이터 시스템들은 복수의 데이터 스트림들을 생성하도록 구성될 수 있다. 복수의 데이터 스트림들은 다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들을 포함할 수 있다. 수정기는 다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포를 적용하도록 구성될 수 있다. 포즈 추정기는 이동 플랫폼에 대해 온보드로 위치해 있을 수 있고, 이동 플랫폼 주변의 환경에 대해서 원하는 레벨의 정확도를 가지고 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 수신하고 융합하도록 구성될 수 있다.
다른 예시적인 실시예에 있어서, 이동 플랫폼은 베이스, 베이스와 연계되어 있는 제어기, 및 베이스와 연계되어 있는 이동 시스템을 포함할 수 있다. 제어기는 다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들을 포함할 수 있는 데이터 스트림들을 복수의 데이터 시스템들로부터 수신하도록 더 구성될 수 있다. 제어기는 수정기 및 포즈 추정기를 포함할 수 있다. 수정기는 다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포를 적용하도록 구성될 수 있다. 포즈 추정기는 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 수신하도록 구성될 수 있다. 포즈 추정기는 이동 플랫폼 주변의 환경에 대해서 원하는 레벨의 정확도를 가지고 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 복수의 데이터 스트림들을 함께 융합하도록 추가로 구성될 수 있다. 이동 시스템은 환경 내에서 이동 플랫폼을 이동시키기 위해서 포즈 추정을 기초로 하여 제어기에 의해 제어되도록 구성될 수 있다.
또 다른 예시적인 실시예에 있어서, 환경 내에서 이동 플랫폼을 가이딩하기 위한 방법이 제공될 수 있다. 다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들은 복수의 데이터 시스템들을 이용해서 생성될 수 있다. 다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포가 적용될 수 있다. 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들은 이동 플랫폼 주변의 환경에 대해서 원하는 레벨의 정확도를 가지고 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 융합될 수 있다.
특징들 및 기능들은 본 발명의 다양한 실시예들에서 독립적으로 달성되거나, 또 다른 실시예들에서 조합될 수 있고, 추가적인 세부사항들은 이하의 설명 및 도면들을 참조하여 알 수 있다.
도 1은 예시적인 실시예에 따른, 블록도 형태의 환경의 도면이다;
도 2는 예시적인 실시예에 따른, 블록도 형태의 복수의 데이터 시스템들의 도면이다;
도 3은 예시적인 실시예에 따른, 온보드로(onboard) 위치해 있는 복수의 데이터 시스템들의 구성요소들 및 오프보드로(off-board) 위치해 있는 복수의 데이터 시스템들의 구성요소들의 도면이다;
도 4는 예시적인 실시예에 따른, 제조 환경의 도면이다;
도 5는 예시적인 실시예에 따른, 이동 로봇의 도면이다;
도 6은 예시적인 실시예에 따른, 흐름도 형태의 환경에서의 이동 플랫폼에 대한 포즈 추정을 생성하기 위한 프로세스의 도면이다;
도 7은 예시적인 실시예에 따른, 흐름도 형태의 제조 환경 내에서의 이동 로봇을 가이딩(guiding)하기 위한 프로세스의 도면이다;
도 8은 예시적인 실시예에 따른, 블록도 형태의 데이터 처리 시스템의 도면이다;
도 9는 예시적인 실시예에 따른, 블록도 형태의 항공기 제조 및 서비스 방법의 도면이다;
도 10은 예시적인 실시예에 따른, 블록도 형태의 항공기의 도면이다.
예시적인 실시예들의 특성이라고 여겨지는 신규한 특징들이 첨부된 청구항들에서 제시된다. 하지만, 예시적인 실시예들뿐만 아니라 바람직한 사용 모드, 추가적인 목적들, 및 그 특징들은 본 발명의 예시적인 실시예의 이하의 상세한 설명을 참조하여 첨부 도면들과 함께 읽을 때 가장 잘 이해될 것이다.
예시적인 실시예들은 상이한 고려사항들을 인식하고 고려한다. 예를 들어, 예시적인 실시예들은 제조 환경 내의 다수의 이동 플랫폼들에 대한 로컬라이제이션을 더욱 정확하고 빠르게 수행할 수 있는 방법 및 장치를 가지는 것이 바람직할 수 있다는 점을 인식하고 고려한다. 나아가, 예시적인 실시예들은 이동 로봇에 대해 온보드로 환경 내의 이동 로봇에 대한 포즈 추정(pose estimate)을 생성하기 위한 방법 및 장치를 가지는 것이 바람직할 수 있다는 점을 인식하고 고려한다.
그래서, 예시적인 실시예들은 센서 융합을 이용하여 이동 로봇에 대해 온보드로 이동 로봇에 대한 포즈 추정을 생성하기 위한 방법 및 장치를 제공한다. 예시적인 실시예들에 의해 제공되는 방법 및 장치는 추정의 정확도를 증가시키면서 포즈 추정을 생성하기 위해 필요한 시간을 감소시킬 수 있다. 나아가, 예시적인 실시예들에 의해 제공되는 해결책은 몇몇 현재 이용가능한 해결책들보다 더 간단하고 비용-효율이 더 높을 수 있다.
이제, 도면들 특히 도 1을 참조하면, 환경(environment)의 도면이 예시적인 실시예에 따라서 도시된다. 이러한 예시적인 예에 있어서, 환경(100)은 다수의 이동 플랫폼들(102)이 이용될 수 있는 임의의 환경일 수 있다. 본 명세서에서 사용될 때, "다수의(number of)" 아이템(item)들은 하나 이상의 아이템들일 수 있다. 이러한 방식으로, 다수의 이동 플랫폼들(102)은 하나 이상의 이동 플랫폼들을 포함할 수 있다.
하나의 예시적인 예에 있어서, 환경(100)은 오브젝트(object)(103)가 제조되고 있는 제조 환경(manufacturing environment)(101)의 형태를 취할 수 있다. 오브젝트(103)는 다수의 상이한 형태들을 취할 수 있다. 예를 들어, 제한 없이, 오브젝트(103)는 도어(door), 스킨 패널(skin panel), 항공기를 위한 날개, 항공기를 위한 동체(fuselage), 건물을 위한 구조적 구성요소(structural component), 구성요소들의 조립체, 또는 몇몇 다른 타입의 오브젝트의 형태를 취할 수 있다.
도시된 바와 같이, 이동 플랫폼(mobile platform)(104)은 다수의 이동 플랫폼들(number of mobile platforms)(102)에서의 이동 플랫폼을 위한 하나의 구현의 예일 수 있다. 이러한 예시적인 예에 있어서, 이동 플랫폼(104)은 이동 로봇(mobile robot)(106)의 형태를 취할 수 있다. 물론, 구현에 따라서, 이동 플랫폼(104)은 환경(100) 내에서 적어도 부분적으로는 자율적으로(autonomously) 이동할 수 있는 임의의 타입의 플랫폼, 구조물, 디바이스, 또는 오브젝트의 형태를 취할 수 있다.
도시된 바와 같이, 이동 로봇(106)은 베이스(base)(108), 이동 시스템(movement system)(110), 다수의 툴들(number of tools)(112), 및 제어기(controller)(114)를 포함할 수 있다. 이동 시스템(110), 다수의 툴들(112), 및 제어기(114)는 베이스(108)와 연계되어 있을 수 있다. 본 명세서에서 사용될 때, 하나의 구성요소가 다른 구성요소와 "연계된(associated)" 경우에, 도시된 예들에서 연계는 물리적인 연계(physical association)이다.
예를 들어, 이동 시스템(110)과 같은 제1 구성요소는, 제2 구성요소에 체결됨(secured)으로써, 제2 구성요소에 접착됨(bonded)으로써, 제2 구성요소에 설치됨(mounted)으로써, 제2 구성요소에 용접됨(welded)으로써, 제2 구성요소에 고정됨(fastened)으로써, 및/또는 몇몇 다른 적절한 방식으로 제2 구성요소에 연결됨(connected)으로써 베이스(108)와 같은 제2 구성요소와 연계된 것으로 고려될 수 있다. 제1 구성요소는 또한 제3 구성요소를 이용해서 제2 구성요소에 연결될 수 있다. 게다가, 제1 구성요소는 또한 제2 구성요소의 일부(part)로서 및/또는 제2 구성요소의 연장(extension)으로서 형성됨으로써 제2 구성요소와 연계된 것으로 고려될 수 있다.
이동 시스템(110)은 환경(100) 내에서 이동 로봇(106)을 이동시키는 데에 이용될 수 있다. 예를 들어, 제한 없이, 이동 시스템(110)은 환경(101) 내에서 이동 로봇(106)을 이동시키는 데에 이용될 수 있다. 구현에 따라서, 이동 시스템(110)은 다수의 휠(wheel)들, 다수의 롤러(roller)들, 다수의 레그(leg)들, 다수의 홀로노믹(holonomic) 휠들, 또는 이동을 제공할 수 있는 다른 타입의 디바이스들 중의 적어도 하나를 포함할 수 있다.
본 명세서에서 사용될 때, "~중의 적어도 하나(at least one of)"라는 문구는 아이템(item)들의 목록과 함께 사용되는 경우에, 열거된 아이템들 중의 하나 이상의 상이한 조합들이 이용될 수 있다는 것과 목록에서 각각의 아이템 중의 하나만이 필요할 수 있다는 것을 의미한다. 아이템은 특정 오브젝트, 사물(thing), 또는 카테고리(category)일 수 있다. 다시 말해, "~중의 적어도 하나(at least one of)"는 아이템들의 임의의 조합 또는 아이템들의 임의의 수가 목록으로부터 이용될 수 있다는 것을 의미하지만, 목록에서의 아이템들 모두가 필요하다는 것을 의미하는 것은 아니다.
예를 들어, "아이템 A, 아이템 B, 및 아이템 C 중의 적어도 하나"는 아이템 A; 아이템 A 및 아이템 B; 아이템 B; 아이템 A, 아이템 B, 및 아이템 C; 또는 아이템 B 및 아이템 C를 의미할 수 있다. 몇몇 경우들에 있어서, "아이템 A, 아이템 B, 및 아이템 C 중의 적어도 하나"는, 예를 들어, 제한 없이, 두 개의 아이템 A, 한 개의 아이템 B, 및 열 개의 아이템 C; 네 개의 아이템 B 및 일곱 개의 아이템 C; 또는 몇몇 다른 적절한 조합을 의미할 수 있다.
이러한 예시적인 예에 있어서, 다수의 툴들(112)은 환경(100) 내에서 다수의 오퍼레이션들(number of operations)(116)을 수행하는 데에 이용될 수 있다. 다수의 오퍼레이션들(116) 중의 적어도 하나는 오브젝트(103) 상에서 수행될 수 있다. 다수의 오퍼레이션들(116)은, 예를 들어, 제한 없이, 드릴링(drilling) 오퍼레이션, 패스닝(fastening) 오퍼레이션, 샌딩(sanding) 오퍼레이션, 페인팅(painting) 오퍼레이션, 머시닝(machining) 오퍼레이션, 테스팅(testing) 오퍼레이션, 이미징(imaging) 오퍼레이션, 또는 몇몇 다른 타입의 오퍼레이션 중의 적어도 하나를 포함할 수 있다. 이러한 방식으로, 다수의 툴들(112)은, 예를 들어, 제한 없이, 드릴링(drilling) 디바이스, 패스닝(fastening) 디바이스, 샌딩 툴(sanding tool), 페인팅 툴(painting tool), 유체 디스펜싱(fluid dispensing) 시스템, 실란트 적용(sealant application) 디바이스, 머시닝(machining) 디바이스, 밀링(milling) 디바이스, 테스팅(testing) 시스템, 이미징(imaging) 디바이스, 스캐너(scanner), 마커(marker), 펜(pen), 레이블 애플리케이터(label applicator), 또는 몇몇 다른 타입의 툴 중의 적어도 하나를 포함할 수 있다.
이러한 예시적인 예에 있어서, 제어기(114)는 다수의 툴들(112) 중의 적어도 하나의 오퍼레이션을 제어하도록 구성될 수 있다. 나아가, 제어기(114)는 이동 시스템(110)을 제어하도록 구성될 수 있다. 특히, 제어기(114)는 환경(100) 내에서 경로(path)(117)를 따라서 이동 로봇(106)을 이동시키도록 이동 시스템(110)을 제어할 수 있다. 경로(117)는 적어도 부분적으로 환경(100)의 플로어(floor)(115)를 따라서 존재할 수 있다. 본 명세서에서 사용될 때, 플로어(115)는 플로어 표면(surface), 브리지(bridge) 상의 표면, 하나 이상의 팔레트(pallet)들에 의해 형성된 표면, 플랫폼 표면, 엘리베이터의 플로어, 컨베이어 벨트의 플로어, 몇몇 다른 타입의 표면, 또는 이들의 몇몇 조합을 포함할 수 있다.
이동 로봇(106)이 환경(100)을 통과해서 이동할 때 제어기(114)가 경로(117)를 갱신할 수 있다는 점에서, 경로(117)는 동적으로 갱신된 경로일 수 있다. 이동 로봇(106)이, 예를 들어, 제한 없이, 장애물들을 피하는 것, 환경(100) 내에 새롭게 배치되거나 이동된 오브젝트들 주변에서 움직이는 것, 이동 로봇(106)에 의해 수행될 다수의 오퍼레이션들(116)의 변경에 응답하는 것, 환경 내에서 돌아다니거나 위치해 있는 인간 조작자들 주변에서 머누버(maneuver)하는 것, 또는 환경(100) 내에서 몇몇 다른 타입의 새로운 또는 변환된 상황에 반응하는 것 중의 적어도 하나를 하는 것을 돕기 위하여 이동 로봇(106)이 환경(100)을 통과하여 이동할 때 제어기(114)가 경로(117)를 갱신할 수 있다. 제어기(114)는 이동 로봇(106)을 내비게이팅하는(navigate) 것을 돕기 위하여 로컬라이제이션을 이용할 수 있다.
도시된 바와 같이, 제어기(114)는, 예를 들어, 제한 없이, 포즈 추정기(pose estimator)(118) 및 수정기(modifier)(120)를 포함할 수 있다. 포즈 추정기(118)는 이동 로봇(106)에 대한 포즈 추정(pose estimate)(122)을 생성할 수 있다. 포즈 추정(122)은 환경(100) 내의 이동 로봇(106)의 포즈의 추정일 수 있다. 본 명세서에서 사용될 때, 이동 로봇(106)의 포즈는 환경(100)을 위한 레퍼런스 좌표계(reference coordinate system)(124)에 대한 이동 로봇(106)의 포지션 또는 이동 로봇(106)의 지향 중의 적어도 하나로 이루어질 수 있다. 그래서, 포즈 추정(122)은 환경(100)을 위한 레퍼런스 좌표계(124)에 대한 이동 로봇(106)의 포지션 추정(position estimate)(121) 및 지향 추정(orientation estimate)(123) 중의 적어도 하나로 이루어질 수 있다.
이동 로봇(106)은 환경(100)에서 6자유도(six degrees of freedom)를 가지고 이동하도록 구성될 수 있다. 그래서, 포즈 추정(122)은 이동 로봇(106)에 대한 6자유도(6DoF) 포즈의 추정일 수 있다. 몇몇 경우들에 있어서, 포즈 추정(122)은 이동 로봇(106)의 6자유도 공간에서의 이동 로봇(106)의 포즈의 추정이라고 지칭될 수 있다.
이러한 예시적인 예에 있어서, 포즈 추정기(118)는 포즈 추정(122)을 생성하기 위하여 복수의 데이터 스트림들(plurality of data streams)(126)을 융합할 수 있다. 복수의 데이터 스트림들(126)의 적어도 일부는 복수의 데이터 시스템들(plurality of data systems)(128)로부터 수신될 수 있다. 본 명세서에서 사용될 때, 복수의 데이터 시스템들(128)에서의 데이터 시스템은 다수의 센서 시스템들, 다수의 프로세서 유닛들, 또는 이들의 몇몇 조합을 포함할 수 있다. 본 명세서에서 사용될 때, "센서 시스템(sensor system)"은 임의의 다수의 센서 디바이스들, 액티브(active) 디바이스들, 패시브(passive) 디바이스들, 또는 이들의 조합으로 이루어질 수 있다.
본 명세서에서 사용될 때, 복수의 데이터 스트림들(126)을 "융합하는 것(fusing)"은 단일한 포즈 추정(122)을 생성하기 위하여 복수의 데이터 스트림들(126)에서의 상이한 데이터 스트림들을 조합하고 처리하는 것을 의미할 수 있다. 복수의 데이터 스트림들(126) 각각은 시간의 경과에 따라서(over time) 생성된 추정(estimate)들로 이루어질 수 있다.
데이터 스트림(data stream)(125)은 복수의 데이터 스트림들(126) 중의 하나의 예이다. 데이터 스트림(125)은 복수의 데이터 시스템들(128) 중의 하나에 의해서 생성될 수 있다. 이러한 예시적인 예에 있어서, 데이터 스트림(125)은 시간의 경과에 따라서 생성된 추정들로 이루어질 수 있다.
본 명세서에서 사용될 때, "추정(estimate)"은 이동 로봇(106)의 6자유도 포즈의 추정일 수 있다. 이러한 추정은 시간의 기간에 대해서 또는 하나의 시점에서 생성된 메저먼트(measurement)들을 기초로 하여 생성될 수 있다. 몇몇 경우들에 있어서, 추정은 또한 메타데이터(metadata)를 포함할 수 있다. 몇몇 예시적인 예들에서, 추정이 출력 데이터 포인트라고 지칭될 수 있어서, 데이터 스트림(125)이 복수의 출력 데이터 포인트들로 이루어질 수 있다.
포즈 추정기(118)는 포즈 추정(122)을 생성하기 위하여 복수의 데이터 스트림들(126) 및 베이지안 추정 알고리즘(Bayesian estimation algorithm)을 이용할 수 있다. 특히, 포즈 추정기(118)는 이하의 베이지안 추정 방정식들을 이용할 수 있다:
Figure pat00001
Figure pat00002
여기서,
Figure pat00003
는 시간이고,
Figure pat00004
는 시간
Figure pat00005
에서의 이동 로봇(106)의 포즈이고,
Figure pat00006
는 시간
Figure pat00007
에 걸친 복수의 데이터 스트림들(126)에서의 모든 추정들의 컬렉션(collection)이고,
Figure pat00008
Figure pat00009
를 고려한(given)
Figure pat00010
의 확률이고,
Figure pat00011
는 시간
Figure pat00012
에서 이동 로봇(106)의 포즈이고,
Figure pat00013
은 복수의 데이터 시스템들(128)에서의 데이터 시스템들의 총 수이고,
Figure pat00014
는 시간
Figure pat00015
에서 복수의 데이터 시스템들(128)에서의 제1 데이터 시스템에 의해 생성된 추정이고,
Figure pat00016
는 시간
Figure pat00017
에서 복수의 데이터 시스템들(128)에서의
Figure pat00018
번째 데이터 시스템에 의해 생성된 추정이다. 임의의 주어진 시간
Figure pat00019
에 대해서,
Figure pat00020
는 시간
Figure pat00021
에서 추정들을 제공한 데이터 시스템들만을 포함한다.
포즈 추정기(118)에서의 에러(error)는 포즈 추정(122)을 생성하기 위하여 이용된 복수의 데이터 스트림들(126)에서의 데이터 스트림들의 수 및 복수의 데이터 시스템들(128)에서의 데이터 시스템들의 수를 증가시킴으로써 더 감소될 수 있다. 다시 말해, 복수의 데이터 스트림들(126)에서의 데이터 스트림들의 수가 증가함에 따라서 포즈 추정기(118)에 의해 생성되는 포즈 추정(122)에서의 에러가 감소된다.
포즈 추정(122)을 생성하기 위하여 베이지안 추정 기법들을 이용하는 것은 포즈 추정(122)을 생성하는 데에 이용되는 데이터 모두가 확률론적(probabilistic)일 것을 요할 수 있다. 다시 말해, 모든 데이터는 무작위성(randomness) 또는 불확실성(uncertainty)을 포함할 필요가 있을 수 있다.
하지만, 복수의 데이터 시스템들(128)에 의해 생성된 데이터 스트림들(data streams)(127)은 다수의 제1 타입 데이터 스트림들(number of first type of data streams)(132) 및 다수의 제2 타입 데이터 스트림들(number of second type of data streams)(130)을 포함할 수 있다. 다수의 제1 타입 데이터 스트림들(132) 중의 하나와 같은 "제1 타입 데이터 스트림(first type of data stream)"은 데이터 포인트들을 포함할 수 있고, 각각의 데이터 포인트는 모종의 확률 분포(probability distribution)를 기초로 하여 불확실성의 메저먼트를 포함하거나 불확실성의 메저먼트와 결합된다. 특히, 제1 타입 데이터 스트림은 확률론적 시스템(probabilistic system), 모델, 또는 알고리즘에 의해서 생성될 수 있고, 주어진 입력에 대해 생성되는 출력은 무작위성 또는 불확실성의 정도를 고려한다. 이러한 방식에 있어서, 다수의 제1 타입 데이터 스트림들(132) 각각은 몇몇 예시적인 예들에서 확률론적 데이터 스트림(probabilistic data stream)이라고 지칭될 수 있다.
본 명세서에서 사용될 때, 다수의 제2 타입 데이터 스트림들(130) 중의 하나와 같은 "제2 타입 데이터 스트림(second type of data stream)"은 데이터 포인트들을 포함할 수 있고, 각각의 데이터 포인트는 불확실성의 메저먼트를 포함하지 않거나 불확실성의 메저먼트와 결합되지 않는다. 예를 들어, 제한 없이, 데이터 포인트는 단일한 데이터 값만을 포함할 수 있다. 몇몇 예시적인 예들에서, 이러한 제2 타입 데이터 스트림은 의사-결정론적 데이터 스트림(pseudo-deterministic data stream)이라고 지칭될 수 있다.
데이터 스트림들(127)에서의 다수의 제2 타입 데이터 스트림들(130)은 포즈 추정기(118)에서의 수정기(120)에 의해 수신될 수 있다. 수정기(120)는 데이터 스트림이 포즈 추정기(118)에 의해 이용가능하게 되도록 하기 위하여 제2 타입 데이터 스트림을 수정하도록 구성될 수 있다. 특히, 수정기(120)는 다수의 제2 타입 데이터 스트림들(130)을 다수의 처리된(processed) 제1 타입 데이터 스트림들로 변환할 수 있다. 이후, 제1 타입 데이터 스트림들 모두는 포즈 추정(122)을 생성하도록 포즈 추정기(118)에 의해 처리될 수 있다.
하나의 예시적인 예로서, 제2 타입 데이터 스트림(second type of data stream)(133)은 복수의 데이터 시스템들(128) 중의 하나에 의해서 생성될 수 있다. 이 예에서, 제2 타입 데이터 스트림(133)은 하나 이상의 오도메트리(odometry) 기법들을 이용해서 생성되었을 수 있다. 수정기(120)는 포즈 추정기(118)에 의해 이용가능한 수정된 데이터 스트림(modified data stream)(135)을 형성하기 위하여 제2 타입 데이터 스트림(133)을 수정하도록 구성될 수 있다. 수정기(120)는 임의의 수의 기법들을 이용해서 제2 타입 데이터 스트림(133)을 수정된 데이터 스트림(135)으로 변환할 수 있다. 하나의 예시적인 예로서, 수정기(120)는 수정된 데이터 스트림(135)을 형성하기 위하여 확률 분포(137)를 제2 타입 데이터 스트림(133)에 적용할 수 있다.
구현에 따라서, 확률 분포(137)는 가우시안 분포(Gaussian distribution) 또는 몇몇 다른 타입의 확률 분포일 수 있다. 확률 분포(137)는 미리 결정된 확률 분포일 수 있다. 예를 들어, 제한 없이, 이동 로봇(106)이 환경(100)에서의 다수의 오퍼레이션들(116)을 수행하는 데에 이용되기 전에, 수학적 모델을 이용하거나 몇몇 다른 방식으로 확률 분포(137)가 경험적으로(empirically) 결정되었을 수 있다.
제2 타입 데이터 스트림(133)을 수정된 데이터 스트림(135)으로 변환함으로써, 이동 로봇(106)의 물리학 기반 모델(physics-based model)을 이용해서 생성되는 확률론적 데이터에 대한 필요성이 제거될 수 있다. 상술한 수학식 1에서의 항
Figure pat00022
은 물리학 기반 모델 대신 복수의 데이터 시스템들(128)로부터의 데이터 스트림들(127) 중의 적어도 하나를 이용해서 제공될 수 있다. 예를 들어, 제한 없이, 포즈 추정기(118)는 상술한 수학식 1에서의 항
Figure pat00023
을 제공하기 위하여 복수의 데이터 시스템들(128)에서의 오도메트리 시스템으로부터의 데이터 스트림을 이용할 수 있다. 항
Figure pat00024
은 시간
Figure pat00025
에서의 이동 로봇(106)의 포즈를 고려한(given) 시간
Figure pat00026
에서의 이동 로봇(106)의 포즈의 확률이다.
이러한 방식에 있어서, 확률 분포는 다수의 수정된 데이터 스트림들(number of modified data streams)(129)을 형성하기 위하여 수정기(120)에 의해서 다수의 제2 타입 데이터 스트림들(130) 각각에 적용될 수 있다. 다수의 수정된 데이터 스트림들(129) 각각은 다수의 제1 타입 데이터 스트림들(132) 각각과 동일하게 이루어질 수 있다. 다수의 수정된 데이터 스트림들(129) 및 다수의 제1 타입 데이터 스트림들(132)은 함께 포즈 추정(122)을 형성하기 위하여 포즈 추정기(118)에 의해 이용되는 복수의 데이터 스트림들(126)을 형성할 수 있다.
이러한 예시적인 예들에서, 복수의 데이터 시스템들(128)은 다수의 온보드 데이터 시스템들(number of onboard data systems)(134) 및 다수의 오프보드 데이터 시스템들(136)을 포함할 수 있다. 본 명세서에서 사용될 때, 다수의 온보드 데이터 시스템들(134) 중의 하나와 같은 "온보드 데이터 시스템(onboard data system)"은 이동 로봇(106)에 대해 온보드인 데이터 스트림을 생성하도록 구성될 수 있다. 몇몇 경우들에 있어서, 온보드 데이터 시스템은 제어기(114)와는 완전히 별개일 수 있다. 다른 예시적인 예들에서, 온보드 데이터 시스템의 적어도 일부는 제어기(114) 내에서 구현되거나 제어기(114)와 통합될 수 있다. 온보드 데이터 시스템에 의해 생성된 데이터 스트림은, 데이터 스트림이 제2 타입 데이터 스트림인지 또는 제1 타입 데이터 스트림인지에 따라서 포즈 추정기(118) 또는 수정기(120)에 의해 수신될 수 있다.
온보드 데이터 시스템(onboard data system)(144)은 다수의 온보드 데이터 시스템들(134) 중의 하나의 예일 수 있다. 온보드 데이터 시스템(144)은 수동 소자(passive element), 능동 소자(active element), 프로세서 유닛, 집적 회로(integrated circuit), 마이크로프로세서(microprocessor), 센서 시스템, 타겟(target), 또는 몇몇 다른 타입의 디바이스 또는 소자 중의 적어도 하나를 포함할 수 있다. 데이터 스트림을 생성하는 온보드 데이터 시스템(144)의 적어도 일부는 이동 로봇(106)에 대해 온보드로(onboard) 위치해 있다. 이러한 방식에 있어서, 온보드 데이터 시스템(144) 모두가 이동 로봇(106)에 대해 온보드로 위치해 있을 수 있고, 또는 온보드 데이터 시스템(144)의 한 부분이 온보드로 위치해 있으면서 다른 부분이 오프보드로 위치해 있을 수 있다.
본 명세서에서 사용될 때, 다수의 오프보드 데이터 시스템들(136) 중의 하나와 같은 "오프보드 데이터 시스템(off-board data system)"은 이동 로봇(106)에 대해 원격으로 데이터 스트림을 생성하도록 구성된 데이터 시스템일 수 있다. 이후, 오프보드 데이터 시스템에 의해 생성된 데이터 스트림은, 예를 들어, 제한 없이, 무선 통신 링크(wireless communications link)를 이용해서 제어기(114)로 보내질 수 있다.
오프보드 데이터 시스템(off-board data system)(145)은 다수의 오프보드 데이터 시스템들(136) 중의 하나의 예일 수 있다. 오프보드 데이터 시스템(145)은 수동 소자, 능동 소자, 프로세서 유닛, 집적 회로, 마이크로프로세서, 센서 시스템, 타겟, 또는 몇몇 다른 타입의 디바이스 또는 소자 중의 적어도 하나를 포함할 수 있다. 데이터 스트림을 생성하는 오프보드 데이터 시스템(145)의 적어도 일부는 이동 로봇(106)에 대해 오프보드로(off-board) 위치해 있다. 이러한 방식에 있어서, 오프보드 데이터 시스템(145) 모두가 오프보드로 위치해 있을 수 있고, 또는 오프보드 데이터 시스템(145)의 한 부분이 오프보드로 위치해 있으면서 다른 부분이 온보드로 위치해 있을 수 있다.
게다가, 제어기(114)는 경로(117)를 따라 이동 로봇(106)을 이동시키는 데 있어서의 에러를 감소시키도록 구성될 수 있다. 특히, 제어기(114)는 선택된 허용오차(tolerances) 내에서 경로(path)(117)를 따라 존재하는 최초 위치(initial location)(138)에서부터 경로(117)를 따라 존재하는 원하는 위치(desired location)(140)까지 이동 로봇(106)을 이동시키는 데 있어서의 랜덤 에러(random error)를 감소시킬 수 있다. 하나의 예시적인 예에 있어서, 제어기(114)는 이러한 랜덤 에러를 감소시키기 위하여 다수의 온보드 데이터 시스템들(134) 중의 하나 이상을 이용할 수 있다.
특히, 제어기(114)는 경로(117)를 따라 존재하는 최초 위치(138)에서부터 경로(117)를 따라 존재하는 원하는 위치(140)까지 이동 로봇(106)을 이동시키는 데 있어서의 랜덤 에러를 감소시키기 위하여 환경(100) 내의 다수의 랜드마크들(number of landmarks)(142)을 관측하도록(observe) 구성된 다수의 온보드 데이터 시스템들(134) 중의 하나 이상을 이용할 수 있다. 다수의 랜드마크들(142)에서의 랜드마크는 환경(100)에서의 임의의 인식할 수 있는 특징(recognizable feature)일 수 있다. 예를 들어, 제한 없이, 랜드마크는 필러(pillar), 플랫폼(platform), 구조적 특징(structural feature), 장비의 부품(a piece of equipment), 인공 구조물(manmade structure), 타겟(target), 레이블(label), 또는 몇몇 다른 타입의 랜드마크의 형태를 취할 수 있다.
이러한 예시적인 예에 있어서, 온보드 데이터 시스템(144)은, 이동 로봇(106)이 환경(100) 내에서 최초 위치(138)에 있는 동안, 환경(100)에서의 다수의 랜드마크들(142) 중의 적어도 하나를 관측할 수 있는 센서 시스템을 포함할 수 있다. 예를 들어, 제한 없이, 온보드 데이터 시스템(144)은 최초 위치(138)에 있으면서 다수의 랜드마크들(142)의 랜드마크(landmark)(146)를 관측할 수 있다. 랜드마크(146)의 관측은 선택된 횟수로 이루어질 수 있다. 예를 들어, 랜드마크(146)의 N회 관측이 이루어질 수 있다.
랜드마크(146)는 구현에 따라서 자연적인(natural) 또는 인공적인(manmade) 랜드마크일 수 있다. 이러한 예시적인 예에 있어서, 랜드마크(146)는 정지된(stationary) 랜드마크일 수 있다. 하지만, 다른 예시적인 예에 있어서, 랜드마크(146)는 필요에 따라서 환경(100) 내에서 이동가능할(mobile) 수 있고, 이동할 수 있다.
온보드 데이터 시스템(144)은 이동 로봇(106)의 최초 위치(138)와 랜드마크(146) 간의 최초 상대 거리(relative distance)를 식별하는 데에 이용될 수 있다. 랜드마크(146)의 관측의 횟수가 증가함에 따라서, 이동 로봇(106)의 최초 위치와 랜드마크(146) 간의 최초 상대 거리에서의 에러가 감소한다. 에러의 감소는 중심 극한 정리(central limit theorem)를 기초로 한다.
특히, 중심 극한 정리는 에러가 n의 제곱근의 인자에 의해서 감소될 수 있도록 이용될 수 있고, 여기서 n은 관측이 이루어진 총 횟수이다. 중심 극한 정리에 따르면, 특정 조건 하에서 적절하게 스케일링된(scaled) 경우에 n개의 독립적인(independent) 동일하게 분포된(identically-distributed) 확률 변수들의 합이 분포에 있어서 표준 정규 분포(standard normal distribution)로 수렴할 수 있다. 그래서, 하나의 예시적인 예에 있어서, n을 증가시킴으로써, 경험적 공분산(empirical covariance)은 다음과 같이 주어진 비율로 감소될 것이다:
Figure pat00027
여기서,
Figure pat00028
는 평균(mean)에 대한 표준 편차이다.
이후, 이동 로봇(106)은 온보드 데이터 시스템(144)의 센서 시스템의 시야(field of view) 내에서 랜드마크(146)를 잃지 않으면서 원하는 위치(140)의 방향을 향해 가능한 한 새로운 위치로 이동될 수 있다. 온보드 데이터 시스템(144)은 이동 로봇(106)의 새로운 위치와 랜드마크(146) 간의 새로운 상대 거리를 식별할 수 있다. 이후, 최초 상대 거리와 새로운 상대 거리 간의 차이는 최소 에러를 가지고 계산될 수 있고, 이동 로봇(106)의 새로운 위치를 결정하는 데에 이용될 수 있다.
만일 새로운 위치가 선택된 허용오차 내에서의 원하는 위치(140)가 아니라면, 이동 로봇(106)은 새로운 랜드마크(new landmark)(147)를 이용해서 원하는 위치(140)로 더욱 가깝게 이동될 수 있다. 특히, 온보드 데이터 시스템(144)은 새로운 위치에 있는 동안 다수의 랜드마크들(142)에서의 새로운 랜드마크(147)를 검색할 수 있다. 새로운 위치에 있는 동안, 이후 온보드 데이터 시스템(144)은 선택된 횟수 N으로 새로운 랜드마크(147)를 관측할 수 있다. 이러한 방식에 있어서, 새로운 랜드마크(147)는 새로운 위치에서의 랜드마크(146)와 "상관관계가 있는(correlated)" 것으로 고려될 수 있다.
상술한 바와 같은, 원하는 위치(140)에 가능한 한 가까운 다른 위치로 이동하는 프로세스 및 다른 위치에 있는 동안에 수행되는 오퍼레이션들은 이후에 반복될 수 있다. 이러한 타입의 이동 및 프로세싱은 이동 로봇(106)이 선택된 허용오차 내에서 원하는 위치(140)에 도달할 때까지 반복될 수 있다. 이러한 타입의 프로세스는, 다수의 랜드마크들(142)을 이용하지 않고 다수의 랜드마크들(142)로부터의 각각의 랜드마크를 선택된 횟수 N만큼 관측하지 않으면서 이동 로봇(106)을 이동시키는 것과 비교하여, 선택된 허용오차 내에서 최초 위치(138)로부터 원하는 위치(140)로 이동 로봇(106)을 이동시키는 것과 연관된 전체 에러를 감소시킬 수 있다.
이제, 도 2를 참조하면, 도 1로부터의 복수의 데이터 시스템들(128)의 도면이 예시적인 실시예에 따라서 블록도의 형태로 도시된다. 도시된 바와 같이, 복수의 데이터 시스템들(128)은 다수의 온보드 데이터 시스템들(134) 및 다수의 오프보드 데이터 시스템들(136)을 포함할 수 있다.
이러한 예시적인 예에 있어서, 복수의 데이터 시스템들(128)은 관성 측정 유닛(inertial measurement unit)(202), 컬러 및 깊이 오도메트리 시스템(color and depth odometry system)(204), 휠 오도메트리 시스템(wheel odometry system)(206), 비주얼 오도메트리 시스템(visual odometry system)(208), 광 탐지 및 거리측정 시스템(light detection and ranging system)(210), 인도어 글로벌 포지셔닝 시스템(indoor global positioning system)(212), 모션 캡쳐 시스템(motion capture system)(214), 및 레이저 시스템(laser system)(216)을 포함할 수 있다. 관성 측정 유닛(202), 컬러 및 깊이 오도메트리 시스템(204), 휠 오도메트리 시스템(206), 비주얼 오도메트리 시스템(208), 및 광 탐지 및 거리측정 시스템(210)은 다수의 온보드 데이터 시스템들(134)의 일부일 수 있다. 인도어 글로벌 포지셔닝 시스템(212), 모션 캡쳐 시스템(214), 및 레이저 시스템(216)은 다수의 오프보드 데이터 시스템들(136)의 일부일 수 있다.
이러한 예시적인 예에 있어서, 관성 측정 유닛(202)은 속도(velocity), 지향(orientation), 및 가속도(acceleration)를 센싱(sensing)함으로써 환경(100) 내에서 이동 로봇(106)의 상대 변위(relative displacement)를 측정할 수 있다. 관성 측정 유닛(202)은 데이터 스트림들(127) 중의 하나로서 제어기(114)에 보내질 수 있는 데이터 스트림(203)을 생성할 수 있다. 관성 측정 유닛(202)이 구현되는 방식에 따라서, 데이터 스트림(203)은 다수의 제1 타입 데이터 스트림들(132) 중의 하나 또는 다수의 제2 타입 데이터 스트림들(130) 중의 하나로서 고려될 수 있다.
컬러 및 깊이 오도메트리 시스템(204)은 환경(100)을 위한 컬러 데이터 및 깊이 데이터를 제공하는 데에 이용될 수 있다. 도 1의 이동 시스템(110)이 휠들을 포함하는 경우에, 휠 오도메트리 시스템(206)은 환경(100) 내에서 이동 로봇(106)의 상대 변위를 측정하는 데에 이용될 수 있다. 비주얼 오도메트리 시스템(208)은 환경(100) 내에서 이동 로봇(106)의 상대 변위를 추정하기 위해서 카메라들을 이용할 수 있다. 광 탐지 및 거리측정 시스템(210)은 환경(100)의 레이저 스캔(laser scan)들을 생성할 수 있다.
컬러 및 깊이 오도메트리 시스템(204), 휠 오도메트리 시스템(206), 비주얼 오도메트리 시스템(208), 및 광 탐지 및 거리측정 시스템(210) 각각은 이동 로봇(106)에 대해 전적으로 온보드로 위치해 있을 수 있다. 하나의 예시적인 예에 있어서, 컬러 및 깊이 오도메트리 시스템(204), 휠 오도메트리 시스템(206), 비주얼 오도메트리 시스템(208), 및 광 탐지 및 거리측정 시스템(210)은 각각 데이터 스트림들(127)의 일부로서 제어기(114)로 보내질 수 있는 데이터 스트림(205), 데이터 스트림(207), 데이터 스트림(209), 및 데이터 스트림(211)을 생성할 수 있다. 이러한 예시적인 예에 있어서, 데이터 스트림(205), 데이터 스트림(207), 데이터 스트림(209), 및 데이터 스트림(211) 각각은 구현에 따라서 다수의 제1 타입 데이터 스트림들(132) 또는 다수의 제2 타입 데이터 스트림들(130)에 포함될 수 있다. 이러한 예시적인 예에 있어서, 데이터 스트림(205), 데이터 스트림(207), 데이터 스트림(209), 및 데이터 스트림(211) 각각은 다수의 제2 타입 데이터 스트림들(130)에 포함될 수 있다.
다른 예시적인 예들에서, 컬러 및 깊이 오도메트리 시스템(204), 휠 오도메트리 시스템(206), 비주얼 오도메트리 시스템(208), 및 광 탐지 및 거리측정 시스템(210)에 의해 각각 생성된 데이터 스트림(205), 데이터 스트림(207), 데이터 스트림(209), 및 데이터 스트림(211)의 하나 이상은 로컬라이저 및 맵퍼(localizer and mapper)(218)에 보내질 수 있다. 로컬라이저 및 맵퍼(218)는 구현에 따라서 도 1의 제어기(114) 내에서 구현되거나 제어기(114)와는 별개로 구현될 수 있다.
나아가, 로컬라이저 및 맵퍼(218)는 구현에 따라서 2차원 로컬라이저 및 맵퍼(two-dimensional localizer and mapper)(220) 또는 3차원 로컬라이저 및 맵퍼(three-dimensional localizer and mapper)(222)의 형태를 취할 수 있다. 몇몇 경우들에 있어서, 컬러 및 깊이 오도메트리 시스템(204), 휠 오도메트리 시스템(206), 비주얼 오도메트리 시스템(208), 광 탐지 및 거리측정 시스템(210), 및 로컬라이저 및 맵퍼(218)는 함께 로컬라이제이션 및 맵핑 시스템(localization and mapping system)(224)를 형성할 수 있다. 로컬라이제이션 및 맵핑 시스템(224)은 다수의 온보드 데이터 시스템들(134)에서의 온보드 데이터 시스템으로 고려될 수 있다.
로컬라이저 및 맵퍼(218)는 로컬라이저 및 맵퍼(218)에서 수신된 모든 데이터 스트림들을 기초로 하여 환경(100)의 메트릭 지도(metric map)의 추정 및 이 메트릭 지도 내의 이동 로봇(106)의 포즈의 추정을 동시에 수행하도록 구성될 수 있다. 메트릭 지도는 구현에 따라서 2차원 또는 3차원일 수 있다. 하나의 예시적인 예에 있어서, 로컬라이저 및 맵퍼(218)는 동시적인 로컬라이제이션 및 맵핑(simultaneous localization and mapping: SLAM) 시스템이라고 지칭될 수 있다. 이 예들에 있어서, 환경(100)의 메트릭 지도의 추정 및 이 메트릭 지도 내의 이동 로봇(106)의 포즈의 추정은 데이터 스트림들(127) 중의 하나로서 데이터 스트림(213)의 형태로 도 1에서의 제어기(114)에 보내질 수 있다. 데이터 스트림(213)은 다수의 제1 타입 데이터 스트림들(132) 중의 하나 또는 다수의 제2 타입 데이터 스트림들(130) 중의 하나일 수 있다.
이러한 예시적인 예에 있어서, 인도어 글로벌 포지셔닝 시스템(212)은 다수의 센서 디바이스들(number of sensor devices)(226), 다수의 트랜스미터들(number of transmitters)(228), 및 서버(server)(230)를 포함한다. 다수의 트랜스미터들(228)은 오프보드로 위치해 있을 수 있는 반면에, 다수의 센서 디바이스들(226)은 이동 로봇(106)에 대해 온보드로 위치해 있을 수 있다.
다수의 트랜스미터들(228)은 다수의 광 신호들(number of light signals)(229)을 생성하도록 구성될 수 있다. 다수의 광 신호들(229)은 레이저 신호(laser signal), 적외선 신호(infrared signal), 또는 몇몇 다른 타입의 광 신호(light signal) 중의 적어도 하나를 포함할 수 있다. 다수의 센서 디바이스들(226)은 패시브(passive)일 수 있고, 다수의 트랜스미터들(228)로부터 전송된 다수의 광 신호들(229)을 센싱하는 데에 이용될 수 있다. 다수의 센서 디바이스들(226)은 센싱된 다수의 광 신호들(229)에 대한 광 데이터(light data)(231)를 서버(230)에 보낼 수 있다.
서버(230)는 시간의 경과에 따라서 환경(100) 내에서 이동 로봇(106)의 포즈를 추정하는 데에 이 데이터를 이용하도록 구성될 수 있다. 시간의 경과에 따라서 생성된 추정들은 데이터 스트림들(127) 중의 하나로서 제어기(114)에 보내질 수 있는 데이터 스트림(233)을 형성할 수 있다. 데이터 스트림(233)은 구현에 따라서 다수의 제1 타입 데이터 스트림들(132) 중의 하나 또는 다수의 제2 타입 데이터 스트림들(130) 중의 하나일 수 있다. 서버(230)는 오프보드로 위치해 있을 수 있다. 이러한 방식에 있어서, 서버(230)는 인도어 글로벌 포지셔닝 시스템(212)을 다수의 오프보드 데이터 시스템들(136) 중의 하나로 만드는 오프보드 데이터 소스(off-board data source)일 수 있다.
모션 캡쳐 시스템(214)은 모션 캡쳐 타겟(motion capture target)(232), 이미징 시스템(imaging system)(234), 및 모션 캡쳐 서버(motion capture server)(236)를 포함할 수 있다. 모션 캡쳐 타겟(232)은 패시브일 수 있고, 이동 로봇(106)에 대해 온보드로 위치해 있을 수 있다. 이미징 시스템(234)은 도 1의 환경(100) 내에 오프보드로 위치해 있을 수 있고, 모션 캡쳐 타겟(232)에 대한 모션 캡쳐 데이터(motion capture data)(235)를 생성하는 데에 이용될 수 있고, 모션 캡쳐 타겟(232)을 트래킹하는(track) 데에 이용될 수 있다. 모션 캡쳐 시스템(214)에 의해 생성된 모션 캡쳐 데이터(235)는 추가적인 처리를 위해 모션 캡쳐 서버(236)로 보내질 수 있다.
이후, 모션 캡쳐 서버(236)는 데이터 스트림들(127) 중의 하나로서 데이터 스트림(237)의 형태로 모션 캡쳐 데이터(235)를 제어기(114)에 보낼 수 있다. 몇몇 경우들에 있어서, 모션 캡쳐 서버(236)는 데이터 스트림(237)을 형성하기 위해 모션 캡쳐 데이터(235)를 처리할 수 있다. 데이터 스트림(237)은 구현에 따라서 다수의 제1 타입 데이터 스트림들(132) 중의 하나 또는 다수의 제2 타입 데이터 스트림들(130) 중의 하나일 수 있다. 모션 캡쳐 서버(236)는 환경(100) 내에서 오프보드로 위치해 있을 수 있다. 이러한 방식에 있어서, 모션 캡쳐 서버(236)는 모션 캡쳐 시스템(214)을 다수의 오프보드 데이터 시스템들(136) 중의 하나로 만드는 오프보드 데이터 소스로서 고려될 수 있다.
도시된 바와 같이, 레이저 시스템(216)은 레이저 타겟(laser target)(238) 및 레이저 센서(laser sensor)(240)를 포함할 수 있다. 레이저 타겟(238)은 패시브일 수 있고, 이동 로봇(106)에 대해 온보드로 위치해 있을 수 있다. 레이저 센서(240)는 환경(100) 내에서 오프보드로 위치해 있을 수 있고, 레이저 타겟(238)의 이동을 트래킹하는 데에 이용될 수 있다. 레이저 센서(240)는 레이저 타겟(238)의 포지션을 측정할 수 있고, 이 데이터를 처리해서 이동 로봇(106)의 포즈의 추정을 생성할 수 있고, 이것은 시간의 경과에 따른 데이터 스트림(241)을 형성할 수 있다. 데이터 스트림(241)은 구현에 따라서 다수의 제1 타입 데이터 스트림들(132) 중의 하나 또는 다수의 제2 타입 데이터 스트림들(130) 중의 하나일 수 있다. 레이저 센서(240)는 데이터 스트림들(127) 중의 하나로서 데이터 스트림(241)을 제어기(114)에 보낼 수 있다.
이러한 방식에 있어서, 다양한 타입의 센서 시스템들 및 디바이스들이 데이터 스트림들(127)을 생성하는 데에 이용될 수 있다. 데이터 스트림들(127)에서의 다수의 제2 타입 데이터 스트림들(130)은 다수의 수정된 데이터 스트림들(129)을 형성하기 위하여 도 1의 수정기(120)에 의해 처리될 수 있다. 이와 함께, 도 1의 다수의 수정된 데이터 스트림들(129) 및 다수의 제1 타입 데이터 스트림들(132)은 포즈 추정(122)을 생성하기 위하여 포즈 추정기(118)에 의해 이용되는 도 1의 복수의 데이터 스트림들(126)을 형성할 수 있다.
이제, 도 3을 참조하면, 도 2에서 설명된 바와 같이, 온보드로 위치해 있는 복수의 데이터 시스템들(128)의 구성요소들 및 오프보드로 위치해 있는 복수의 데이터 시스템들(128)의 구성요소들의 도면이 예시적인 실시예에 따라서 도시된다. 도시된 바와 같이, 도 2의 복수의 데이터 시스템들(128)의 구성요소들 중의 몇몇은 온보드(onboard)(300)에 위치해 있는 반면에, 도 2의 복수의 데이터 시스템들(128)의 다른 구성요소들은 오프보드(off-board)(302)로 위치해 있다. 도 3에서, 온보드(300)는 도 1의 이동 로봇(106)에 탑재되어 있는 것을 의미하고 오프보드(302)는 도 1의 이동 로봇(106)에 대해 탑재되어 있지 않은 것을 의미한다.
특히, 도 2의 관성 측정 유닛(202), 컬러 및 깊이 오도메트리 시스템(204), 휠 오도메트리 시스템(206), 비주얼 오도메트리 시스템(208), 광 탐지 및 거리측정 시스템(210), 및 로컬라이저 및 맵퍼(218)는 온보드(300)로 위치해 있다. 나아가, 도 2의 다수의 센서 디바이스들(226), 모션 캡쳐 타겟(232), 및 레이저 타겟(238) 또한 온보드(300)로 위치해 있다. 다수의 트랜스미터들(228), 서버(230), 이미징 시스템(234), 모션 캡쳐 서버(236), 및 레이저 센서(240)는 오프보드로 위치해 있을 수 있다.
하나의 예시적인 예에 있어서, 컬러 및 깊이 오도메트리 시스템(204), 휠 오도메트리 시스템(206), 비주얼 오도메트리 시스템(208), 및 광 탐지 및 거리측정 시스템(210)은 각각 데이터 스트림(205), 데이터 스트림(207), 데이터 스트림(209), 및 데이터 스트림(211)을 로컬라이저 및 맵퍼(218)에 보낸다. 이후, 로컬라이저 및 맵퍼(218)는 데이터 스트림(213)을 형성하기 위해 이러한 데이터 스트림들을 이용할 수 있고, 온보드(300)로 위치해 있는 도 1의 제어기(114)에 데이터 스트림(213)을 보낼 수 있다. 관성 측정 유닛(202)은 데이터 스트림(203)을 직접 제어기(114)에 보낼 수 있다. 이러한 예시적인 예에 있어서, 이 데이터 스트림들은 임의의 수의 유선 또는 무선 통신 링크를 이용해서 제어기(114)에 보내질 수 있다.
나아가, 서버(230), 모션 캡쳐 서버(236), 및 레이저 센서(240)는 데이터 스트림(233), 데이터 스트림(237), 및 데이터 스트림(241)을 제어기(114)에 보낼 수 있다. 이러한 예시적인 예에 있어서, 이 데이터 스트림들은 무선으로 제어기(114)에 보내질 수 있다.
제어기(114)에 보내지는 데이터 스트림은, 데이터 스트림이 도 1의 다수의 제1 타입 데이터 스트림들(132)에서의 제1 타입 데이터 스트림이라면 포즈 추정기(118)에 의해서 수신될 수 있고, 데이터 스트림이 도 1의 다수의 제2 타입 데이터 스트림들(130)에서의 제2 타입 데이터 스트림이라면 수정기(120)에 의해서 수신될 수 있다.
도 1의 환경(100), 도 2의 복수의 데이터 시스템들(128), 및 도 3의 온보드(300) 및 오프보드(302)로 위치해 있는 구성요소들의 도면들은 예시적인 실시예들이 구현될 수 있는 방식에 대한 물리적 또는 구조적 제한들을 암시하기 위해 의도된 것이 아니다. 도시된 것들에 추가하거나 대신하여 다른 구성요소들이 이용될 수 있다. 몇몇 구성요소들은 선택적일 수 있다. 또한, 몇몇 기능적인 구성요소들을 도시하기 위해서 블록들이 제시된다. 이러한 블록들 중의 하나 이상은 예시적인 실시예에서 구현될 때 상이한 블록들로 결합되거나, 분리되거나, 결합 및 분리될 수 있다.
이제, 도 4를 참조하면, 제조 환경의 도면이 예시적인 실시예에 따라서 도시된다. 이러한 예시적인 예에 있어서, 제조 환경(400)은 도 1의 제조 환경(101)에 대한 하나의 구현의 예일 수 있다. 도시된 바와 같이, 항공기 날개(402)는 제조 환경(400) 내에서 제조될 수 있다. 항공기 날개(402)는 도 1의 오브젝트(103)에 대한 하나의 구현의 예일 수 있다.
이동 로봇들(404)은 항공기 날개(402)를 제조하기 위해 필요한 오퍼레이션들을 수행하는 데에 이용될 수 있다. 이동 로봇들(404)은 도 1의 다수의 이동 플랫폼들(102)에 대한 하나의 구현의 예일 수 있다. 이러한 예시적인 예에 있어서, 이동 로봇들(404)은 제조 환경(400)의 플로어(406) 상에서 이동하도록 구성될 수 있다. 이동 로봇들(404) 각각은 제조 환경(400) 내에서 자신의 포지션을 식별할 수 있고, 제조 환경(400)을 통과하여 내비게이팅할 수 있다.
이제, 도 5를 참조하면, 이동 로봇의 도면이 예시적인 실시예에 따라서 도시된다. 이러한 예시적인 예에 있어서, 이동 로봇(500)은 도 1의 이동 로봇(106)에 대한 하나의 구현의 예일 수 있다. 나아가, 이동 로봇(500)은 도 4의 이동 로봇들(404) 각각이 구현될 수 있는 하나의 방식의 예일 수 있다.
도시된 바와 같이, 이동 로봇(500)은 베이스(base)(502), 이동 시스템(movement system)(504), 및 복수의 디바이스들(plurality of devices)(506)을 포함할 수 있다. 이러한 예시적인 예에 있어서, 복수의 디바이스들(506)은 광 탐지 및 거리측정 시스템(508), 컬러 및 깊이 오도메트리 시스템(510), 및 타겟들(512)을 포함할 수 있다. 광 탐지 및 거리측정 시스템(508)은 도 2의 광 탐지 및 거리측정 시스템(210)에 대한 하나의 구현의 예일 수 있다. 컬러 및 깊이 오도메트리 시스템(510)은 도 2의 컬러 및 깊이 오도메트리 시스템(204)에 대한 하나의 구현의 예일 수 있다. 타겟(512)은 도 2의 모션 캡쳐 타겟(232) 및 레이저 타겟(238)에 대한 하나의 구현의 예일 수 있다.
도 4-5의 도면들은 예시적인 실시예가 구현될 수 있는 방식에 대한 물리적 또는 구조적 제한들을 암시하려고 의도된 것이 아니다. 도시된 것들에 추가하거나 대신하여 다른 구성요소들이 이용될 수 있다. 몇몇 구성요소들은 선택적일 수 있다.
도 4-5에서 도시된 상이한 구성요소들은 도 1-3에서 블록도 형태로 도시된 구성요소들이 물리적 구조물들로서 어떻게 구현될 수 있는지에 대한 예시적인 예들이다. 게다가, 도 4-5에서의 구성요소들 중의 몇몇은 도 1-3에서의 구성요소들과 결합되거나, 도 1-3에서의 구성요소들과 함께 이용되거나, 결합 및 이용의 조합일 수 있다.
이제, 도 6을 참조하면, 환경에서 이동 플랫폼에 대한 포즈 추정을 생성하기 위한 프로세스의 도면이 예시적인 실시예에 따라서 흐름도의 형태로 도시된다. 도 6에서 도시된 프로세스는 도 1의 다수의 이동 플랫폼들(102)의 이동을 관리하도록 구현될 수 있다.
본 프로세스는 복수의 데이터 스트림들(126)을 생성함으로써 시작될 수 있고, 복수의 데이터 스트림들(126)은 다수의 제1 타입 데이터 스트림들(132) 및 다수의 제2 타입 데이터 스트림들(130)을 포함한다(오퍼레이션 600). 다음으로, 확률 분포(137)는 다수의 수정된 데이터 스트림들(129)을 형성하기 위하여 다수의 제2 타입 데이터 스트림들(130) 각각에 적용될 수 있다(오퍼레이션 602).
그 이후에, 다수의 제1 타입 데이터 스트림들(132) 및 다수의 수정된 데이터 스트림들(129)은 원하는 레벨의 정확도를 가지고 이동 플랫폼(104) 주변의 환경(100)에 대해서 이동 플랫폼(104)을 위한 포즈 추정(122)을 생성하기 위하여 융합될 수 있고(오퍼레이션 604), 그 이후에 본 프로세스는 종료된다. 오퍼레이션 604에서, 융합(fusing)은 포즈 추정(122)을 생성하기 위하여 베이지안 추정 기법들을 이용하는 것을 의미할 수 있다.
이제, 도 7을 참조하면, 제조 환경 내에서의 이동 로봇을 가이딩하기 위한 프로세스의 도면이 예시적인 실시예에 따라서 흐름도의 형태로 도시된다. 도 7에 도시된 프로세스는 도 1의 제조 환경(101) 내에서의 이동 로봇(106)의 이동을 관리하도록 구현될 수 있다. 특히, 도 7의 프로세스는 환경(100)에서 경로(117)를 따라 이동 로봇(106)을 이동시키는 데 있어서의 에러를 감소시키기 위해서 이용될 수 있다.
본 프로세스는 이동 로봇(106)이 이동될 원하는 위치(140)를 식별함으로서 시작될 수 있다(오퍼레이션 700). 다음으로, 이동 로봇(106)이 현재 위치에 있는 동안, 이동 로봇(106)에 대한 온보드 데이터 시스템(144)의 센서 시스템이 환경(100)에서 랜드마크(146)를 검색하기 위해서 이용된다(오퍼레이션 702). 다음으로, 현재 위치에서의 이동 로봇(106)을 가지고 온보드 데이터 시스템(144)의 센서 시스템을 이용해서 환경(100)에서의 현재 랜드마크가 선택된 횟수만큼 관측된다(오퍼레이션 704). 다음으로, 온보드 데이터 시스템(144)은 이동 로봇(106)의 현재 위치와 현재 랜드마크 간의 최초 상대 거리를 식별한다(오퍼레이션 706). 오퍼레이션 706에서, 이 식별(identification)은 추정일 수 있다.
그 이후에, 이동 로봇(106)은 온보드 데이터 시스템(144)의 센서 시스템의 시야에서 현재 랜드마크를 잃지 않으면서 이동 로봇(106)에 대한 원하는 위치(140)의 방향을 향해 가능한 한 새로운 위치로 이동된다(오퍼레이션 708). 이동 로봇(106)이 새로운 위치에 있는 동안, 온보드 데이터 시스템(144)의 센서 시스템을 이용해서 현재 랜드마크가 선택된 횟수만큼 재관측된다(오퍼레이션 710). 온보드 데이터 시스템(144)은 이동 로봇(106)의 새로운 위치와 현재 랜드마크 간의 새로운 상대 거리를 식별한다(오퍼레이션 712). 오퍼레이션 712에서, 이 식별은 추정일 수 있다.
온보드 데이터 시스템(144)은 최초 상대 거리와 새로운 상대 거리 간의 차이를 계산한다(오퍼레이션 714). 이후, 이동 로봇(106)의 새로운 위치의 추정은 이 차이를 이용해서 식별된다(오퍼레이션 716). 이후, 새로운 위치가 선택된 허용오차 내에서 원하는 위치(140)에 존재하는지 여부에 대한 결정이 이루어진다(오퍼레이션 718). 만일, 새로운 위치가 선택된 허용오차 내에서 원하는 위치(140)에 존재한다면, 본 프로세스는 종료된다.
그렇지 않다면, 새로운 위치에 있는 동안, 온보드 데이터 시스템(144)은 새로운 랜드마크(147)를 검색한다(오퍼레이션 720). 이후, 새로운 위치에 있는 동안, 온보드 데이터 시스템(144)은 온보드 데이터 시스템(144)의 센서 시스템을 이용해서 선택된 횟수만큼 새로운 랜드마크(147)를 관측한다(오퍼레이션 722). 이후, 온보드 데이터 시스템(144)은 이동 로봇(106)의 새로운 위치와 새로운 랜드마크(147) 간의 상대 거리를 식별한다(오퍼레이션 724). 오퍼레이션 724에서, 이 식별은 추정일 수 있다. 이러한 방식에 있어서, 새로운 랜드마크(147)는 새로운 위치에서의 랜드마크(146)와 "상관관계가 있는(correlated)" 것으로 고려될 수 있다. 이후, 본 프로세스는 새로운 랜드마크(147)를 현재 랜드마크로서 재식별하고(re-identify), 새로운 위치를 현재 위치로서 재식별하고, 상대 거리를 최초 상대 거리로서 재식별하고(오퍼레이션 724), 이후 본 프로세스는 상술한 바와 같이 오퍼레이션 708로 돌아간다.
이제, 도 8을 참조하면, 블록도의 형태의 데이터 처리 시스템의 도면이 예시적인 실시예에 따라서 도시된다. 데이터 처리 시스템(800)은 도 1의 제어기(111)를 구현하는 데에 이용될 수 있다. 도시된 바와 같이, 데이터 처리 시스템(800)은 통신 프레임워크(communications framework)(802)를 포함하는데, 이것은 프로세서 유닛(processor unit)(804), 저장 장치(storage devices)(806), 통신 유닛(communications unit)(808), 입력/출력 유닛(input/output unit)(810), 및 디스플레이(812)간의 통신을 제공한다. 몇몇 경우들에 있어서, 통신 프레임워크(802)는 버스(bus) 시스템으로서 구현될 수 있다.
프로세서 유닛(804)은 다수의 오퍼레이션들을 수행하기 위하여 소프트웨어를 위한 명령어들을 실행하도록 구성된다. 프로세서 유닛(804)은 구현에 따라서 다수의 프로세서들, 멀티-프로세서 코어(multi-processor core), 및/또는 몇몇 다른 타입의 프로세서를 포함할 수 있다. 몇몇 경우들에 있어서, 프로세서 유닛(804)은 회로 시스템과 같은 하드웨어 유닛, ASIC(application specific integrated circuit), 프로그램가능 논리 장치(programmable logic device), 또는 몇몇 다른 적절한 타입의 하드웨어 유닛의 형태를 취할 수 있다.
프로세서 유닛(804)에 의해 실행되는 오퍼레이팅 시스템(operating system), 애플리케이션(application)들, 및/또는 프로그램(program)들을 위한 명령어들은 저장 장치(806)에 위치해 있을 수 있다. 저장 장치(806)는 통신 프레임워크(802)를 통하여 프로세서 유닛(804)과 통신할 수 있다. 본 명세서에서 사용될 때, 저장 장치는 컴퓨터 판독가능 저장 장치로 언급될 수 있으며, 임시로(temporary basis) 및/또는 영구적으로(permanent basis) 정보를 저장할 수 있는 임의의 하드웨어 부품(piece)이다. 이러한 정보는 데이터, 프로그램 코드, 및/또는 다른 정보를 포함할 수 있지만, 이에 한정되지는 않는다.
메모리(memory)(814) 및 영구 저장소(persistent storage)(816)는 저장 장치(806)의 예들이다. 메모리(814)는 예를 들어 RAM(random access memory), 또는 몇몇 타입의 휘발성 또는 비휘발성 저장 장치의 형태를 취할 수 있다. 영구 저장소(816)는 임의의 수의 구성요소들 또는 디바이스들을 포함할 수 있다. 예를 들어, 영구 저장소(816)는 하드 드라이브, 플래시 메모리, 재기록가능(rewritable) 광학적 디스크, 재기록가능 자기 테이프, 또는 이들의 몇몇 조합을 포함할 수 있다. 영구 저장소(816)에 의해서 이용되는 매체는 착탈가능하거나(removable) 착탈가능하지 않을 수 있다.
통신 유닛(808)은 데이터 처리 시스템(800)이 다른 데이터 처리 시스템들 및/또는 디바이스들과 통신하는 것을 가능하게 한다. 통신 유닛(808)은 물리적 및/또는 무선 통신 링크들을 이용해서 통신을 제공할 수 있다.
입력/출력 유닛(810)은 데이터 처리 시스템(800)에 연결된 다른 장치들로부터 입력을 수신하는 것 및 데이터 처리 시스템(800)에 연결된 다른 장치들에 출력을 송신하는 것을 가능하게 한다. 예를 들어, 입력/출력 유닛(810)은 키보드, 마우스, 및/또는 몇몇 다른 타입의 입력 장치를 통해서 사용자 입력이 수신되는 것을 가능하게 할 수 있다. 다른 예로서, 입력/출력 유닛(810)은 출력이 데이터 처리 시스템(800)에 연결된 프린터에 송신되는 것을 가능하게 할 수 있다.
디스플레이(812)는 사용자에게 정보를 디스플레이하도록 구성된다. 디스플레이(812)는, 예를 들어, 제한 없이, 모니터, 터치 스크린, 레이저 디스플레이, 홀로그램 디스플레이(holographic display), 버추얼 디스플레이 디바이스(virtual display device), 및/또는 몇몇 다른 타입의 디스플레이 디바이스를 포함할 수 있다.
이러한 예시적인 예에 있어서, 상이한 예시적인 실시예들의 프로세스들은 컴퓨터로 구현되는 명령어들(computer-implemented instruction)을 이용해서 프로세서 유닛(804)에 의해 수행될 수 있다. 이 명령어들은 프로그램 코드, 컴퓨터 이용가능(computer usable) 프로그램 코드, 또는 컴퓨터 판독가능(computer readable) 프로그램 코드로 지칭될 수 있고, 프로세서 유닛(804)에서의 하나 이상의 프로세서들에 의해서 판독되고 실행될 수 있다.
이 예들에서, 프로그램 코드(program code)(818)는 선택적으로 착탈가능한 컴퓨터 판독가능 매체(computer readable media)(820) 상에 함수 형태로 위치하고, 프로세서 유닛(804)에 의한 실행을 위해 데이터 처리 시스템(800) 상으로 로딩되거나 데이터 처리 시스템(800)에 전송될 수 있다. 프로그램 코드(818) 및 컴퓨터 판독가능 매체(820)는 함께 컴퓨터 프로그램 제품(computer program product)(822)을 형성한다. 이러한 예시적인 예에 있어서, 컴퓨터 판독가능 매체(820)는 컴퓨터 판독가능 저장 매체(computer readable storage media)(824) 또는 컴퓨터 판독가능 신호 매체(computer readable signal media)(826)일 수 있다.
컴퓨터 판독가능 저장 매체(824)는, 프로그램 코드(818)를 전파 또는 전송하는 매체라기보다는 차라리, 프로그램 코드(818)를 저장하기 위해서 이용되는 물리적 또는 유형의(tangible) 저장 장치이다. 컴퓨터 판독가능 저장 매체(824)는, 예를 들어, 제한 없이, 데이터 처리 시스템(800)에 연결된 광학적 또는 자기 디스크, 또는 영구 저장 장치이다.
이와 달리, 프로그램 코드(818)는 컴퓨터 판독가능 신호 매체(826)를 이용해서 데이터 처리 시스템(800)에 전송될 수 있다. 컴퓨터 판독가능 신호 매체(826)는, 예를 들어, 프로그램 코드(818)를 포함하는 전파되는(propagated) 데이터 신호일 수 있다. 이러한 데이터 신호는 전자기 신호, 광학적 신호, 및/또는 물리적 및/또는 무선 통신 링크를 통하여 전송될 수 있는 몇몇 다른 타입의 신호일 수 있다.
도 8의 데이터 처리 시스템(800)의 도면은 예시적인 실시예들이 구현될 수 있는 방식에 대한 구조적 제한들을 제공하기 위해 의도된 것이 아니다. 데이터 처리 시스템(800)을 위해 도시된 것들에 추가하거나 대신하여 구성요소들을 포함하는 데이터 처리 시스템에서 상이한 예시적인 실시예들이 구현될 수 있다. 나아가, 도 8에 도시된 구성요소들은 도시된 예시적인 예들과는 달라질 수 있다.
상이한 도시된 실시예들에서의 흐름도들 및 블록도들은 예시적인 실시예에서의 장치들 및 방법들의 몇몇 가능한 구현들의 아키텍처(architecture), 기능, 및 오퍼레이션을 도시한다. 이와 관련하여, 흐름도들 또는 블록도들에서의 각각의 블록은 오퍼레이션 또는 단계의 모듈(module), 세그먼트(segment), 기능(function), 및/또는 일부분(portion)을 나타낼 수 있다.
예시적인 실시예의 몇몇 대안적인 구현예들에 있어서, 블록들에서 언급된 기능 또는 기능들은 도면들에서 언급된 순서와는 다르게 수행될 수 있다. 예를 들어, 몇몇 경우들에 있어서, 포함된 기능에 따라서, 연속해서 도시된 두 개의 블록들은 실질적으로 동시에 실행될 수 있고, 또는 블록들은 때때로 역순으로 수행될 수 있다. 또한, 흐름도 또는 블록도에서 도시된 블록들에 부가하여 다른 블록들이 추가될 수 있다.
본 발명의 예시적인 실시예들은 도 9에 도시된 바와 같은 항공기 제조 및 서비스 방법(900) 및 도 10에 도시된 바와 같은 항공기(1000)의 맥락에서 설명될 수 있다. 우선 도 9를 참조하면, 항공기 제조 및 서비스 방법의 도면이 예시적인 실시예에 따라서 블록도의 형태로 도시된다. 생산 전(pre-production) 동안, 항공기 제조 및 서비스 방법(900)은 도 10에서의 항공기(1000)의 사양 및 설계(specification and design)(902)와 자재 조달(material procurement)(904)을 포함할 수 있다.
생산(production) 동안, 도 10에서의 항공기(1000)의 구성요소 및 서브어셈블리 제조(component and subassembly manufacturing)(906)와 시스템 통합(system integration)(908)이 일어난다. 그 이후에, 도 10에서의 항공기(1000)는 인증 및 인도(certification and delivery)(910)를 거쳐서 서비스 중(in service)(912)에 놓일 수 있다. 고객에 의해 서비스 중(912)에 있는 동안, 도 10에서의 항공기(1000)는 일상적인 유지보수 및 점검(maintenance and service)(914)을 위한 스케줄이 잡히고, 이것은 변형(modification), 재구성(reconfiguration), 재단장(refurbishment), 및 다른 유지보수 및 점검을 포함할 수 있다.
항공기 제조 및 서비스 방법(900)의 프로세스들 각각은 시스템 통합자(system integrator), 써드 파티(third party), 및/또는 오퍼레이터(operator)에 의해서 실시되거나 수행될 수 있다. 이 예들에서, 오퍼레이터는 고객일 수 있다. 이 설명의 목적을 위해서, 시스템 통합자는 제한 없이 임의의 수의 항공기 제조자들 및 메이저-시스템(major-system) 하청업자들을 포함할 수 있고; 써드 파티는 제한 없이 임의의 수의 판매자(vendor)들, 하청업자(subcontractor)들, 및 공급자(supplier)들을 포함할 수 있고; 오퍼레이터는 항공사(airline), 리스회사(leasing company), 군사 단체(military entity), 서비스 기구(service organization) 등일 수 있다.
이제 도 10을 참조하면, 예시적인 실시예가 구현될 수 있는 항공기의 도면이 블록도의 형태로 도시된다. 이 예에서, 항공기(1000)는 도 9에서의 항공기 제조 및 서비스 방법(900)에 의해 생산되고, 복수의 시스템(1004)과 함께 기체(airframe)(1002) 및 내부(interior)(1006)를 포함할 수 있다. 시스템(1004)의 예들은 추진 시스템(propulsion system)(1008), 전기 시스템(electrical system)(1010), 유압 시스템(hydraulic system)(1012), 및 환경 시스템(environmental system)(1014) 중의 하나 이상을 포함한다. 임의의 수의 다른 시스템들이 포함될 수 있다. 항공우주적인 예가 도시되었지만, 상이한 예시적인 실시예들은 자동차 산업(automotive industry)과 같은 다른 산업에 적용될 수 있다.
본 명세서에서 구체화된 장치들 및 방법들은 도 9의 항공기 제조 및 서비스 방법(900)의 단계들 중의 적어도 하나 동안에 채용될 수 있다. 특히, 다수의 이동 플랫폼들(102)은 항공기 제조 및 서비스 방법(900)의 단계들 중의 임의의 하나의 단계 동안 이용될 수 있다. 예를 들어, 제한 없이, 다수의 이동 플랫폼들(102)은 구성요소 및 서브어셈블리 제조(906), 시스템 통합(908), 일상적인 유지보수 및 점검(routine maintenance and service)(914), 또는 항공기 제조 및 서비스 방법(900)의 몇몇 다른 단계들의 적어도 하나 동안 오퍼레이션들을 수행하는 데에 이용될 수 있다.
하나의 예시적인 예에 있어서, 도 9의 구성요소 및 서브어셈블리 제조(906)에서 생산된 구성요소들 또는 서브어셈블리들은 항공기(1000)가 도 9의 서비스 중(912)인 동안 생성된 구성요소들 또는 서브어셈블리들과 유사한 방식으로 제작되거나 제조될 수 있다. 또 다른 예로서, 하나 이상의 장치 실시예들, 방법 실시예들, 또는 이들의 조합은 도 9의 구성요소 및 서브어셈블리 제조(906) 및 시스템 통합(908)과 같은 생산 단계들 동안 이용될 수 있다. 하나 이상의 장치 실시예들, 방법 실시예들, 또는 이들의 조합은 항공기(1000)가 도 9의 서비스 중(912)인 동안 및/또는 도 9의 일상적인 유지보수 및 점검(914)에 있는 동안 이용될 수 있다. 다수의 상이한 예시적인 실시예들의 이용은 항공기(1000)의 조립을 실질적으로 가속화시키고 및/또는 항공기(1000)의 비용을 실질적으로 감소시킬 수 있다.
상이한 예시적인 실시예들의 설명이 도시 및 설명의 목적을 위해서 제시되었으며, 공개된 형태의 실시예들로 한정 또는 제한하려는 의도는 아니다. 여러 가지 변경들 및 변형들이 당해 기술분야의 통상의 기술자들에게 명백할 것이다. 나아가, 상이한 예시적인 실시예들은 다른 바람직한 실시예들과 비교하여 상이한 특징들을 제공할 수 있다. 선택된 실시예 또는 실시예들은 실시예들의 원리와 실용적인 애플리케이션을 가장 잘 설명하기 위하여 선택 및 설명되었고, 당해 기술분야의 통상의 기술자들이 심사숙고된 특정 사용에 적합한 다양한 변경들을 가진 다양한 실시예들을 위해서 본 공개를 이해하는 것을 가능하게 한다.
그래서, 요컨대, 본 발명의 제1 관점에 따라서 이하의 실시예들이 제공된다:
A1. 다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들을 포함하는 복수의 데이터 스트림들을 생성하도록 구성된 복수의 데이터 시스템들;
다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포를 적용하도록 구성된 수정기(modifier); 및
이동 플랫폼(mobile platform)에 대해 온보드로(onboard) 위치해 있는 포즈 추정기(pose estimator)로서, 이동 플랫폼 주변의 환경에 대해서 원하는 레벨의 정확도를 가지고 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 수신하고 융합하도록 구성된 포즈 추정기;를 포함하는 장치가 제공된다.
A2. 문단 A1에 있어서, 다수의 제2 타입 데이터 스트림들 중의 적어도 하나는 복수의 데이터 시스템들에서의 오도메트리(odometry) 시스템으로부터 수신되는 것을 특징으로 하는 장치가 또한 제공된다.
A3. 문단 A1에 있어서, 복수의 데이터 시스템들에서의 온보드 데이터 시스템은 상기 환경 내에서 이동 플랫폼을 원하는 위치로 이동시키는 데에 이용하기 위하여 상기 환경 내의 랜드마크(landmark)를 선택된 횟수만큼 관측하기 위해 이용되는 것을 특징으로 하는 장치가 또한 제공된다.
A4. 문단 A3에 있어서, 랜드마크가 관측되는 것을 선택된 횟수만큼 증가시키는 것은 상기 환경 내에서 이동 플랫폼을 원하는 위치로 이동시키는 데 있어서의 전체 에러를 감소시키는 것을 특징으로 하는 장치가 또한 제공된다.
A5. 문단 A1에 있어서, 복수의 데이터 시스템들은 다수의 온보드(onboard) 데이터 시스템들 및 다수의 오프보드(off-board) 데이터 시스템들을 포함하는 것을 특징으로 하는 장치가 또한 제공된다.
A6. 문단 A5에 있어서, 다수의 온보드 데이터 시스템들은 관성 측정 유닛, 광 탐지 및 거리측정 시스템, 컬러 및 깊이 오도메트리 시스템, 휠 오도메트리 시스템, 비주얼 오도메트리 시스템, 또는 로컬라이제이션 및 맵핑 시스템 중의 적어도 하나를 포함하는 것을 특징으로 하는 장치가 또한 제공된다.
A7. 문단 A5에 있어서, 다수의 오프보드 데이터 시스템들은 인도어 글로벌 포지셔닝 시스템, 모션 캡쳐 시스템, 또는 레이저 시스템 중의 적어도 하나를 포함하는 것을 특징으로 하는 장치가 또한 제공된다.
A8. 문단 A1에 있어서, 포즈 추정은 상기 환경에 대한 이동 플랫폼의 포지션(position) 및 지향(orientation)을 포함하는 것을 특징으로 하는 장치가 또한 제공된다.
A9. 문단 A1에 있어서, 이동 플랫폼은 이동 로봇(mobile robot)이고, 상기 환경은 제조 환경인 것을 특징으로 하는 장치가 또한 제공된다.
A10. 문단 A1에 있어서, 포즈 추정기는 포즈 추정(pose estimate)을 생성하기 위하여 베이지안 추정 알고리즘(Bayesian estimation algorithm)을 이용해서 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 융합하도록 구성된 것을 특징으로 하는 장치가 또한 제공된다.
A11. 문단 A1에 있어서, 상기 환경 내에서 경로(path)를 따라서 이동 플랫폼을 가이딩하기(guide) 위하여 포즈 추정을 이용하도록 구성된 제어기(controller)를 더 포함하는 것을 특징으로 하는 장치가 또한 제공된다.
A12. 문단 A11에 있어서, 이동 플랫폼은: 포즈 추정을 기초로 하여 제어기에 의해 제어되도록 구성된 이동 시스템을 포함하는 것을 특징으로 하는 장치가 또한 제공된다.
B2. 이동 플랫폼으로서, 이동 플랫폼은:
베이스(base);
다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들을 포함하는 데이터 스트림들을 복수의 데이터 시스템들로부터 수신하도록 구성된, 베이스와 연계되어 있는 제어기(controller); 및
상기 환경 내에서 이동 플랫폼을 이동시키기 위하여 포즈 추정을 기초로 해서 제어기에 의해 제어되도록 구성된, 베이스와 연계되어 있는 이동 시스템(movement system);을 포함하고,
제어기는:
다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포를 적용하도록 구성된 수정기; 및
다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 복수의 데이터 스트림들로서 수신하고, 이동 플랫폼 주변의 환경에 대해서 원하는 레벨의 정확도를 가지고 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 상기 복수의 데이터 스트림들을 함께 융합하도록 구성된 포즈 추정기;를 포함하는 것을 특징으로 하는 이동 플랫폼.
C1. 환경 내에서 이동 플랫폼을 가이딩하기 위한 방법으로서, 상기 방법은:
복수의 데이터 시스템들을 이용해서 다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들을 생성하는 단계;
다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포를 적용하는 단계; 및
이동 플랫폼 주변의 환경에 대해서 원하는 레벨의 정확도를 가지고 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 융합하는 단계;를 포함하는 것을 특징으로 하는 방법.
C2. 문단 C1에 있어서, 이동 플랫폼에 대해 생성된 포즈 추정을 이용하여 상기 환경 내에서 경로를 따라서 이동 플랫폼을 가이딩하는 단계를 더 포함하는 것을 특징으로 하는 방법이 또한 제공된다.
C3. 문단 C1에 있어서, 다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포를 적용하는 단계는:
다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에서의 각각의 데이터 포인트에 경험적 공분산(empirical covariance)을 적용하는 것을 포함하는 것을 특징으로 하는 방법이 또한 제공된다.
C4. 문단 C1에 있어서, 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 융합하는 단계는:
원하는 레벨의 정확도를 가지고 포즈 추정을 생성하기 위하여 베이지안 추정 알고리즘을 이용해서 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 융합하는 것을 포함하는 것을 특징으로 하는 방법이 또한 제공된다.
C5. 문단 C1에 있어서, 다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들을 생성하는 단계는:
컬러 및 깊이 오도메트리 시스템(color and depth odometry system), 휠 오도메트리 시스템(wheel odometry system), 비주얼 오도메트리 시스템(visual odometry system), 광 탐지 및 거리측정 시스템(light detection and ranging system), 또는 로컬라이저 및 맵퍼(localizer and mapper) 중의 적어도 하나를 이용해서 다수의 제2 타입 데이터 스트림들을 생성하는 것을 포함하는 것을 특징으로 하는 방법이 또한 제공된다.
C6. 문단 C1에 있어서, 이동 플랫폼이 현재 위치에 있는 동안, 온보드 데이터 시스템을 이용해서 상기 환경 내의 현재 랜드마크를 선택된 횟수만큼 관측하는 단계;
이동 플랫폼의 현재 위치와 현재 랜드마크 간의 최초 상대 거리(relative distance)를 식별하는 단계; 및
온보드 데이터 시스템의 센서 시스템의 시야(field of view) 내에서 현재 랜드마크를 잃지 않으면서 원하는 위치를 향해 가능한 한 이동 플랫폼을 현재 위치로부터 새로운 위치로 이동시키는 단계;를 더 포함하는 것을 특징으로 하는 방법이 또한 제공된다.
C7. 문단 C6에 있어서, 온보드 데이터 시스템을 이용해서 현재 랜드마크를 선택된 횟수만큼 재관측하는 단계;
이동 플랫폼의 새로운 위치와 현재 랜드마크 간의 새로운 상대 거리를 식별하는 단계;
최초 상대 거리와 새로운 상대 거리 간의 차이를 계산하는 단계; 및
상기 차이를 이용하여 상기 환경 내에서 이동 플랫폼의 새로운 위치를 식별하는 단계;를 더 포함하는 것을 특징으로 하는 방법이 또한 제공된다.
C8. 문단 C7에 있어서,
새로운 위치가 선택된 허용오차 내에서 원하는 위치에 존재하는지 여부를 결정하는 단계; 및
새로운 위치가 선택된 허용오차 내에서 원하는 위치에 존재하지 않는다는 결정에 응답하여 새로운 랜드마크를 이용해서 이동 플랫폼을 원하는 위치에 더욱 가깝게 이동시키는 단계;를 더 포함하는 것을 특징으로 하는 방법이 또한 제공된다.
C9. 문단 C8에 있어서, 새로운 랜드마크를 이용해서 이동 플랫폼을 원하는 위치에 더욱 가깝게 이동시키는 단계는:
온보드 데이터 시스템을 이용해서 새로운 랜드마크를 검색하는 것;
이동 플랫폼이 새로운 위치에 있는 동안, 온보드 데이터 시스템을 이용해서 새로운 랜드마크를 선택된 횟수만큼 관측하는 것; 및
이동 플랫폼의 새로운 위치와 새로운 랜드마크 간의 상대 거리를 식별하는 것;을 포함하는 것을 특징으로 하는 방법이 또한 제공된다.
C10. 문단 C8에 있어서, 새로운 랜드마크를 이용해서 이동 플랫폼을 원하는 위치에 더욱 가깝게 이동시키는 단계는:
새로운 랜드마크를 현재 랜드마크로서 재식별하고, 새로운 위치를 현재 위치로서 재식별하고, 상대 거리를 최초 상대 거리로서 재식별하는 것; 및
이동 플랫폼을 현재 위치로부터 새로운 위치로 이동시키는 단계, 이동 플랫폼의 새로운 위치와 현재 랜드마크 간의 새로운 상대 거리를 식별하는 단계, 최초 상대 거리와 새로운 상대 거리 간의 차이를 계산하는 단계, 상기 차이를 이용하여 상기 환경 내에서 이동 플랫폼의 새로운 위치를 식별하는 단계, 및 새로운 위치가 선택된 허용오차 내에서 원하는 위치에 있는지 여부를 결정하는 단계를 반복하는 것;을 더 포함하는 것을 특징으로 하는 방법이 또한 제공된다.
C11. 문단 C10에 있어서, 이동 플랫폼이 선택된 허용오차 내에서 원하는 위치에 도달할 때까지 새로운 위치가 선택된 허용오차 내에서 원하는 위치에 존재하지 않는다는 결정에 응답하여 새로운 랜드마크를 이용해서 이동 플랫폼을 원하는 위치에 더욱 가깝게 이동시키는 단계를 반복하는 것을 더 포함하는 것을 특징으로 하는 방법이 또한 제공된다.

Claims (15)

  1. 다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들을 포함하는 복수의 데이터 스트림들을 생성하도록 구성된 복수의 데이터 시스템들;
    다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포를 적용하도록 구성된 수정기(modifier); 및
    이동 플랫폼(mobile platform)에 대해 온보드로(onboard) 위치해 있는 포즈 추정기(pose estimator)로서, 이동 플랫폼 주변의 환경에 대해서 원하는 레벨의 정확도를 가지고 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 수신하고 융합하도록 구성된 포즈 추정기;를 포함하는 장치.
  2. 청구항 1에 있어서,
    다수의 제2 타입 데이터 스트림들 중의 적어도 하나는 복수의 데이터 시스템들에서의 오도메트리(odometry) 시스템으로부터 수신되는 것을 특징으로 하는 장치.
  3. 청구항 1에 있어서,
    복수의 데이터 시스템들에서의 온보드 데이터 시스템은 상기 환경 내에서 이동 플랫폼을 원하는 위치로 이동시키는 데에 이용하기 위하여 상기 환경 내의 랜드마크(landmark)를 선택된 횟수만큼 관측하기 위해 이용되는 것을 특징으로 하는 장치.
  4. 청구항 1에 있어서,
    복수의 데이터 시스템들은 다수의 온보드(onboard) 데이터 시스템들 및 다수의 오프보드(off-board) 데이터 시스템들을 포함하는 것을 특징으로 하는 장치.
  5. 청구항 1에 있어서,
    포즈 추정은 상기 환경에 대한 이동 플랫폼의 포지션(position) 및 지향(orientation)을 포함하는 것을 특징으로 하는 장치.
  6. 청구항 1에 있어서,
    이동 플랫폼은 이동 로봇(mobile robot)이고, 상기 환경은 제조 환경인 것을 특징으로 하는 장치.
  7. 청구항 1에 있어서,
    포즈 추정기는 포즈 추정(pose estimate)을 생성하기 위하여 베이지안 추정 알고리즘(Bayesian estimation algorithm)을 이용해서 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 융합하도록 구성된 것을 특징으로 하는 장치.
  8. 청구항 1에 있어서,
    상기 환경 내에서 경로(path)를 따라서 이동 플랫폼을 가이딩하기(guide) 위하여 포즈 추정을 이용하도록 구성된 제어기(controller)를 더 포함하는 것을 특징으로 하는 장치.
  9. 환경 내에서 이동 플랫폼을 가이딩하기 위한 방법으로서, 상기 방법은:
    복수의 데이터 시스템들을 이용해서 다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들을 생성하는 단계;
    다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포를 적용하는 단계; 및
    이동 플랫폼 주변의 환경에 대해서 원하는 레벨의 정확도를 가지고 이동 플랫폼에 대한 포즈 추정을 생성하기 위하여 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 융합하는 단계;를 포함하는 것을 특징으로 하는 방법.
  10. 청구항 9에 있어서,
    이동 플랫폼에 대해 생성된 포즈 추정을 이용하여 상기 환경 내에서 경로를 따라서 이동 플랫폼을 가이딩하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 청구항 9에 있어서,
    다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에 확률 분포를 적용하는 단계는:
    다수의 수정된 데이터 스트림들을 형성하기 위하여 다수의 제2 타입 데이터 스트림들 각각에서의 각각의 데이터 포인트에 경험적 공분산(empirical covariance)을 적용하는 것을 포함하는 것을 특징으로 하는 방법.
  12. 청구항 9에 있어서,
    다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 융합하는 단계는:
    원하는 레벨의 정확도를 가지고 포즈 추정을 생성하기 위하여 베이지안 추정 알고리즘을 이용해서 다수의 제1 타입 데이터 스트림들 및 다수의 수정된 데이터 스트림들을 융합하는 것을 포함하는 것을 특징으로 하는 방법.
  13. 청구항 9에 있어서,
    다수의 제1 타입 데이터 스트림들 및 다수의 제2 타입 데이터 스트림들을 생성하는 단계는:
    컬러 및 깊이 오도메트리 시스템(color and depth odometry system), 휠 오도메트리 시스템(wheel odometry system), 비주얼 오도메트리 시스템(visual odometry system), 광 탐지 및 거리측정 시스템(light detection and ranging system), 또는 로컬라이저 및 맵퍼(localizer and mapper) 중의 적어도 하나를 이용해서 다수의 제2 타입 데이터 스트림들을 생성하는 것을 포함하는 것을 특징으로 하는 방법.
  14. 청구항 9에 있어서,
    이동 플랫폼이 현재 위치에 있는 동안, 온보드 데이터 시스템을 이용해서 상기 환경 내의 현재 랜드마크를 선택된 횟수만큼 관측하는 단계;
    이동 플랫폼의 현재 위치와 현재 랜드마크 간의 최초 상대 거리(relative distance)를 식별하는 단계; 및
    온보드 데이터 시스템의 센서 시스템의 시야(field of view) 내에서 현재 랜드마크를 잃지 않으면서 원하는 위치를 향해 가능한 한 이동 플랫폼을 현재 위치로부터 새로운 위치로 이동시키는 단계;를 더 포함하는 것을 특징으로 하는 방법.

  15. 청구항 14에 있어서,
    온보드 데이터 시스템을 이용해서 현재 랜드마크를 선택된 횟수만큼 재관측하는 단계;
    이동 플랫폼의 새로운 위치와 현재 랜드마크 간의 새로운 상대 거리를 식별하는 단계;
    최초 상대 거리와 새로운 상대 거리 간의 차이를 계산하는 단계; 및
    상기 차이를 이용하여 상기 환경 내에서 이동 플랫폼의 새로운 위치를 식별하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
KR1020150037245A 2014-04-02 2015-03-18 센서 융합을 이용한 환경 내에서의 로컬라이제이션 KR102359186B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/243,419 2014-04-02
US14/243,419 US9427867B2 (en) 2014-04-02 2014-04-02 Localization within an environment using sensor fusion

Publications (2)

Publication Number Publication Date
KR20150114892A true KR20150114892A (ko) 2015-10-13
KR102359186B1 KR102359186B1 (ko) 2022-02-04

Family

ID=53682434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150037245A KR102359186B1 (ko) 2014-04-02 2015-03-18 센서 융합을 이용한 환경 내에서의 로컬라이제이션

Country Status (9)

Country Link
US (1) US9427867B2 (ko)
EP (1) EP2927769B1 (ko)
JP (1) JP6804825B2 (ko)
KR (1) KR102359186B1 (ko)
CN (1) CN104977941B (ko)
BR (1) BR102015007157B1 (ko)
CA (1) CA2883622C (ko)
ES (1) ES2770730T3 (ko)
PT (1) PT2927769T (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102259247B1 (ko) * 2019-12-06 2021-06-01 한국로봇융합연구원 공분산 행렬 기반의 다중 위치인식 결과 융합을 통한 강화 위치인식 방법과 시스템

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9947138B2 (en) 2014-04-15 2018-04-17 Huntington Ingalls Incorporated System and method for augmented reality display of dynamic environment information
US9734403B2 (en) * 2014-04-25 2017-08-15 Huntington Ingalls Incorporated Augmented reality display of dynamic target object information
US9864909B2 (en) 2014-04-25 2018-01-09 Huntington Ingalls Incorporated System and method for using augmented reality display in surface treatment procedures
WO2015191346A1 (en) 2014-06-09 2015-12-17 Huntington Ingalls Incorporated System and method for augmented reality display of electrical system information
US10504294B2 (en) 2014-06-09 2019-12-10 Huntington Ingalls Incorporated System and method for augmented reality discrepancy determination and reporting
US10915754B2 (en) 2014-06-09 2021-02-09 Huntington Ingalls Incorporated System and method for use of augmented reality in outfitting a dynamic structural space
WO2016011149A1 (en) 2014-07-16 2016-01-21 Huntington Ingalls Incorporated System and method for augmented reality display of hoisting and rigging information
CN105180955A (zh) * 2015-10-21 2015-12-23 福州华鹰重工机械有限公司 机动车实时精准定位方法及装置
EP3869538A1 (en) 2016-03-09 2021-08-25 Applied Materials, Inc. Correction of fabricated shapes in additive manufacturing
CN105938619A (zh) * 2016-04-11 2016-09-14 中国矿业大学 一种融合RGB和Depth信息的视觉里程计实现方法
US10353400B2 (en) 2016-05-23 2019-07-16 Asustek Computer Inc. Navigation system and navigation method
CN106227220A (zh) * 2016-09-28 2016-12-14 关健生 基于分布式框架的自主导航巡检机器人
CN107160419A (zh) * 2017-06-09 2017-09-15 东华大学 一种肌电信号控制的机械手运动机构
CN109866217B (zh) * 2017-12-01 2021-09-17 深圳市优必选科技有限公司 机器人里程定位方法、装置、终端设备及计算机存储介质
JP7167982B2 (ja) * 2018-05-31 2022-11-09 日本電気株式会社 出力装置、出力方法及び出力プログラム
DE102018121365A1 (de) * 2018-08-31 2020-04-23 RobArt GmbH Exploration eines robotereinsatzgebietes durch einen autonomen mobilen roboter
US11314254B2 (en) * 2019-03-26 2022-04-26 Intel Corporation Methods and apparatus for dynamically routing robots based on exploratory on-board mapping
CN110286682A (zh) * 2019-07-08 2019-09-27 国网山东省电力公司枣庄供电公司 一种电力仓储多功能安防探测机器人、方法及系统
JP2023540304A (ja) * 2020-09-01 2023-09-22 シーバ・テクノロジーズ・インコーポレイテッド オプティカルフロー、ホイールエンコーダおよび慣性計測装置での平面ロボットのデッドレコニング
FR3119142A1 (fr) * 2021-01-25 2022-07-29 Transdev Group Innovation Procédé de circulation d’un véhicule sur des voies de circulation, programme d’ordinateur, support d’informations et système de transport associés
CN113955136B (zh) * 2021-09-02 2024-04-05 浙江图盛输变电工程有限公司温州科技分公司 一种电网自动巡检无人机目标挂点校准中转站

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040167667A1 (en) * 2002-12-17 2004-08-26 Goncalves Luis Filipe Domingues Systems and methods for filtering potentially unreliable visual data for visual simultaneous localization and mapping
KR100877071B1 (ko) * 2007-07-18 2009-01-07 삼성전자주식회사 파티클 필터 기반의 이동 로봇의 자세 추정 방법 및 장치
KR20110047797A (ko) * 2009-10-30 2011-05-09 주식회사 유진로봇 이동 로봇의 위치 인식을 위한 지도 생성 및 갱신 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0570581B1 (en) * 1991-11-01 2001-12-05 Motorola, Inc. An improved accuracy sensory system for vehicle navigation
JP2004133882A (ja) * 2002-05-10 2004-04-30 Royal Appliance Mfg Co 自律性マルチプラットフォーム・ロボットシステム
KR100506097B1 (ko) * 2004-02-04 2005-08-03 삼성전자주식회사 자기장 지도 생성 방법 및 장치와 이를 활용한 이동체의포즈 확인 방법 및 장치
US7689321B2 (en) 2004-02-13 2010-03-30 Evolution Robotics, Inc. Robust sensor fusion for mapping and localization in a simultaneous localization and mapping (SLAM) system
US7831094B2 (en) * 2004-04-27 2010-11-09 Honda Motor Co., Ltd. Simultaneous localization and mapping using multiple view feature descriptors
JP4686595B2 (ja) * 2005-03-17 2011-05-25 本田技研工業株式会社 クリティカルポイント解析に基づくポーズ推定
WO2008013568A2 (en) * 2005-12-30 2008-01-31 Irobot Corporation Autonomous mobile robot
KR100809352B1 (ko) * 2006-11-16 2008-03-05 삼성전자주식회사 파티클 필터 기반의 이동 로봇의 자세 추정 방법 및 장치
US8351646B2 (en) * 2006-12-21 2013-01-08 Honda Motor Co., Ltd. Human pose estimation and tracking using label assignment
CN101576384B (zh) * 2009-06-18 2011-01-05 北京航空航天大学 一种基于视觉信息校正的室内移动机器人实时导航方法
CN101712381B (zh) * 2009-11-13 2013-01-02 北京航空航天大学 一种基于多敏感器的定姿系统
US8401225B2 (en) 2011-01-31 2013-03-19 Microsoft Corporation Moving object segmentation using depth images
US8401242B2 (en) * 2011-01-31 2013-03-19 Microsoft Corporation Real-time camera tracking using depth maps

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040167667A1 (en) * 2002-12-17 2004-08-26 Goncalves Luis Filipe Domingues Systems and methods for filtering potentially unreliable visual data for visual simultaneous localization and mapping
KR100877071B1 (ko) * 2007-07-18 2009-01-07 삼성전자주식회사 파티클 필터 기반의 이동 로봇의 자세 추정 방법 및 장치
KR20110047797A (ko) * 2009-10-30 2011-05-09 주식회사 유진로봇 이동 로봇의 위치 인식을 위한 지도 생성 및 갱신 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102259247B1 (ko) * 2019-12-06 2021-06-01 한국로봇융합연구원 공분산 행렬 기반의 다중 위치인식 결과 융합을 통한 강화 위치인식 방법과 시스템

Also Published As

Publication number Publication date
KR102359186B1 (ko) 2022-02-04
CN104977941B (zh) 2019-04-30
EP2927769A2 (en) 2015-10-07
BR102015007157A2 (pt) 2016-03-29
US20150283700A1 (en) 2015-10-08
PT2927769T (pt) 2020-02-14
EP2927769B1 (en) 2019-12-04
JP6804825B2 (ja) 2020-12-23
CA2883622C (en) 2017-07-11
US9427867B2 (en) 2016-08-30
CA2883622A1 (en) 2015-10-02
CN104977941A (zh) 2015-10-14
EP2927769A3 (en) 2016-07-20
ES2770730T3 (es) 2020-07-02
BR102015007157B1 (pt) 2021-07-27
JP2015197925A (ja) 2015-11-09

Similar Documents

Publication Publication Date Title
KR102359186B1 (ko) 센서 융합을 이용한 환경 내에서의 로컬라이제이션
EP2752725B1 (en) Augmented mobile platform localization
Leishman et al. Relative navigation approach for vision-based aerial GPS-denied navigation
EP3048416B1 (en) Method and system for determining shim dimensions using an aerial drone
US10725478B2 (en) Robotic-mounted monument system for metrology systems
Nahangi et al. Automated localization of UAVs in GPS-denied indoor construction environments using fiducial markers
KR20170078543A (ko) 셀프 로케이팅 로봇들
Mai et al. Local positioning system using UWB range measurements for an unmanned blimp
Eudes et al. Autonomous and safe inspection of an industrial warehouse by a multi-rotor MAV
Aman et al. A sensor fusion methodology for obstacle avoidance robot
Zali et al. Localization of an indoor mobile robot using decentralized data fusion
de-Dios et al. GRVC-CATEC: Aerial robot co-worker in plant servicing (ARCOW)
Bharathiraman et al. An Empirical Approach for Tuning an Autonomous Mobile Robot in Gazebo
Lee et al. Analysis on the performance of VIO according to Trajectory Planning of UAV
Pop et al. Localization and Path Planning for an Autonomous Mobile Robot Equipped with Sonar Sensor
d’Apolito et al. System architecture of a demonstrator for indoor aerial navigation
Lee et al. Multi-floor localization method for mobile robots using elevator
Yanyong et al. Sensor Fusion of Light Detection and Ranging and iBeacon to Enhance Accuracy of Autonomous Mobile Robot in Hard Disk Drive Clean Room Production Line.
Mitka et al. Autonomous mobile platform with simultaneous localisation and mapping system for patrolling purposes
Fallon Perception and estimation challenges for humanoid robotics: DARPA Robotics Challenge and NASA Valkyrie
Joshi et al. Simultaneous Navigator for Autonomous Identification and Localization Robot
Sondermann et al. Improved Mobile Robot Localization Using Semantic World Models
Andersson et al. Positioning and docking of an AGV in a clinical environment
Chang et al. SCHRIFTENREIHE DER FAKULTÄT FÜR TECHNIK DER DUALEN HOCHSCHULE BADEN-WÜRTTEMBERG RAVENSBURG
Sallum Development and implementation of a high-level command system and compact user interface for non-holonomic robots

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