KR20180043753A - 이동 로봇 및 이동 로봇의 제어방법 - Google Patents

이동 로봇 및 이동 로봇의 제어방법 Download PDF

Info

Publication number
KR20180043753A
KR20180043753A KR1020170136411A KR20170136411A KR20180043753A KR 20180043753 A KR20180043753 A KR 20180043753A KR 1020170136411 A KR1020170136411 A KR 1020170136411A KR 20170136411 A KR20170136411 A KR 20170136411A KR 20180043753 A KR20180043753 A KR 20180043753A
Authority
KR
South Korea
Prior art keywords
descriptors
label
recognition
descriptor
node
Prior art date
Application number
KR1020170136411A
Other languages
English (en)
Other versions
KR101982780B1 (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 KR20180043753A publication Critical patent/KR20180043753A/ko
Application granted granted Critical
Publication of KR101982780B1 publication Critical patent/KR101982780B1/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
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • 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
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/02Nozzles
    • A47L9/04Nozzles with driven brushes or agitators
    • A47L9/0405Driving means for the brushes or agitators
    • A47L9/0411Driving means for the brushes or agitators driven by electric motor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/02Nozzles
    • A47L9/04Nozzles with driven brushes or agitators
    • A47L9/0461Dust-loosening tools, e.g. agitators, brushes
    • A47L9/0466Rotating tools
    • A47L9/0477Rolls
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/02Nozzles
    • A47L9/04Nozzles with driven brushes or agitators
    • A47L9/0461Dust-loosening tools, e.g. agitators, brushes
    • A47L9/0488Combinations or arrangements of several tools, e.g. edge cleaning tools
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • A47L9/2852Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • B25J11/0085Cleaning
    • 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
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • B25J13/089Determining the position of the robot with reference to its environment
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • 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/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • 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/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • 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/0251Control 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 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/231Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • G06V10/7625Hierarchical techniques, i.e. dividing or merging patterns to obtain a tree-like representation; Dendograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/70Labelling scene content, e.g. deriving syntactic or semantic representations
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/02Docking stations; Docking operations
    • A47L2201/022Recharging of batteries
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic control of the travelling movement; Automatic obstacle detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Abstract

본 발명에 따른 이동 로봇의 제어방법은, 각 지점 별로 영상을 획득하고, 상기 영상에서 추출된 복수의 특징점에 대응하는 각각의 디스크립터를 생성하고, 상기 각 지점에서 획득된 각 영상에 대응하는 각각의 노드를 생성하는 학습초기단계; 복수의 상기 디스크립터를 근거로 라벨 디스크립터를 생성하는 라벨생성단계; 위치 점핑 상황 발생시 인식 영상을 획득하고, 상기 인식 영상에서 추출된 복수의 인식 특징점에 대응하는 각각의 인식 디스크립터를 생성하는 인식초기단계; 상기 인식 디스크립터 들에 각각 라벨 디스크립터를 매칭시키고, 상기 매칭된 라벨 디스크립터에 대응하는 하나 이상의 비교대상 노드를 선택하는 비교대상선택단계; 및 상기 하나 이상의 비교대상 노드 중에 상기 현재 위치로 추정되는 노드를 선택하는 최종노드선택단계를 포함한다.

Description

이동 로봇 및 이동 로봇의 제어방법 {A MOVING-ROBOT AND CONTROL METHOD THEREOF}
본 발명은, 이동 로봇 및 이동 로봇의 제어방법에 관한 것으로, 보다 자세하게는 이동 로봇이 맵(map)을 학습하거나 맵 상에서 위치를 인식하는 기술에 관한 것이다.
로봇은 산업용으로 개발되어 공장 자동화의 일 부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것을 이동 로봇이라고 한다. 가정에서 사용되는 이동 로봇의 대표적인 예는 로봇 청소기이다.
이동 로봇이 원하는 목적지로 정확하게 이동하기 위해서, 충전대 등의 목적지에서 송출된 적외선(IR: InfraRed)신호 등을 감지하는 방법이 있으나, 이는 적외선 신호 등을 송출하는 제한된 목적지로의 이동을 가능하게 할 뿐 어느 목적지로나 이동은 불가하며, 거리 또는 장애물 등의 이유로 송출된 적외선을 이동 로봇이 감지하지 못 할 경우 목적지를 찾아 배회할 수 있는 문제가 있다.
따라서, 주행 구역 내의 어느 위치로나 이동 하기 위해서는, 맵 상에서 이동 로봇의 현재 위치를 파악할 수 있어야 한다.
이를 위해, 종래에, 이동 로봇의 연속적인 이동 중 자신의 직전 위치에서의 주행 정보(이동 방향 및 이동 속도에 대한 정보 또는 연속적으로 촬영되는 바닥사진 등의 비교 등)를 바탕으로 현재 위치를 지속적으로 파악하는 다양한 방법이 알려져 있다. 또한, 이동 로봇이 스스로 맵(Map)을 학습하는 다양한 방법이 알려져 있다.
그런데, 외부적인 요인에 의해 주행 중인 이동 로봇의 위치가 강제로 변경된 경우, 이동 로봇은 직전 위치에서의 주행 정보를 근거로 미지의 현재 위치를 인식할 수 없게 된다. 일 예로, 사용자가 주행 중인 이동 로봇을 들어서 옮긴 납치(Kidnapping) 상황이 발생한 경우가 그러하다.
상기 납치 상황을 비롯한 '위치 점핑(Jumping) 상황'에서도 이동 로봇이 맵 상에서 현재 위치를 인식(localization)하기 위하여, 특정 지점에서 송출되는 상기 적외선 신호를 이용할 수 있으나 상기한 문제점이 있다. 또한, 위치 점핑 상황에서 현재 위치를 인식하기 위하여 레이져 센서나 초음파 센서를 이용하는 방법이 있으나, 비용이 크게 증가하고 주변 환경에 대해 보다 구체적인 정보를 얻을 수 없다는 한계가 있다.
이에 따라, 종래 기술(한국공개특허공보 10-2010-0104581)은 현재 위치에서 카메라를 통해 촬영된 영상을 이용하여 미지의 현재 위치를 인식하는 기술을 개시한다.
상기 종래 기술에서는, 주행구역 내에서 촬영된 영상으로부터 추출된 특징점 들로부터 3차원 지도를 생성하고, 미지의 현재 위치에서 촬영된 영상 내의 특징점들 중 3차원 지도 내의 특징점들과 매칭되는 3 쌍 이상의 특징점 쌍을 검출한다. 그 후, 현재 위치에서 촬영된 영상내의 매칭된 3개 이상의 특징점의 2차원 좌표, 3차원 지도 상의 매칭된 3개 이상의 특징점의 3차원 좌표, 및 현재 위치에서 카메라의 초점거리 정보를 이용하여, 상기 매칭된 3개 이상의 특징점으로부터 거리를 산출하고, 이로 부터 현재 위치를 인식하는 기술이, 상기 종래기술에 개시되어 있다.
또한, 상기 종래 기술에는, 현재 위치에서 촬영된 영상에서 3차원 지도상의 특징점과 매칭되는 3개 이상의 특징점이 검출되지 않는 경우, 현재 위치에서 카메라를 수평방향으로 회전시키며 다시 영상을 획득하는 기술이 개시되어 있다.
한국공개특허공보 공개번호 10-2010-0104581 (공개일자 2010. 9. 29.)
제 1과제는 효율적이고 정확한 전역 내 위치 인식 기술을 제시하는 것이다.
상기 종래기술은, 미지의 현재 위치에서 획득한 3개 이상의 특징점을 기 저장된 3차원 지도 상의 3개 이상의 특징점과 매칭시키는 과정에 상당한 시간이 소요될 수 있는데, 특히 전역이 넓어 3차원 지도 상의 특징점 정보가 많은 경우 특징점 쌍을 매칭하기 위해 과도한 시간이 소요되는 문제가 있다. 제 2과제는 이러한 문제를 해결하여, 현재 영상에서 획득한 특징점을 맵 상의 데이터와 비교하는 데 소요되는 시간을 최소화하는 것이다.
상기 종래 기술에서는, 미지의 현재 위치에서 획득한 특징점을 3차원 지도 상의 특징점 클러스터(밀집되어 군을 이루는 특징점 들) 내의 특징점과 매칭시키는데, 이 경우 획득한 특징점이 실제로는 상기 특징점 클러스터 외에 존재하는 특징점과 매칭되어야 함에도 불구하고 이를 간과할 수 있음으로써, 위치 추정의 정확도가 떨어지는 문제가 있다. 제 3과제는 이러한 문제를 해결하여, 맵 상의 모든 특징점 데이터(디스크립터)들을 이용하면서도 시간 소요를 최소화하는 기술을 제시하는 것이다.
상기 종래 기술에서는, 현재 영상에서 획득된 3개이상의 특징점과 카메라 사이의 거리가 각각 산출되어야 하고, 상기 특징점과의 거리는 카메라의 초점거리 및 상기 현재 영상 내 특징점의 2차원 좌표값을 근거로 해서 산출된다. 그런데, 주변 밝기 등의 이유로 카메라 초점 거리 정보가 부정확해질 수 있으며, 영상 내의 3개 이상의 특징점이 카메라의 촬영방향에 수직한 평면 상에 배치되지 않고 경사나 돌출면 등의 이유로 비스듬한 평면 등에 배치된 경우에는 상기 2차원 좌표값에 의해 산출되는 특징점과 카메라 사이의 거리가 실제와 큰 차이가 날 수 있어, 결과적으로 위치 추정의 정확도가 떨어지는 문제가 있다. 제 4과제는 이러한 문제를 해결하여, 카메라의 초점거리 정보 및 영상 내의 특징점의 2차원 좌표값 없이도 현재 위치를 인식할 수 있는 기술을 제시하는 것이다.
종래 기술에서는, 지도를 3차원으로 생성해야 되므로 지도를 저장하는데 있어 용량이 큰 저장소가 필요하다는 문제가 있다. 제 5과제는 이러한 문제를 해결하여, 2차원의 맵으로도 현재 위치를 인식할 수 있는 기술을 제시하는 것이다.
특징점에 대응하여 생성된 디스크립터(descriptor) 들 중에서는, 서로 유사한 디스크립터가 상대적으로 많은 희소성이 약한 것들과 유사한 것이 상대적으로 적은 희소성 강한 것들이 있다. 그런데, 상기 종래기술에서는 이러한 디스크립터 들간의 희소성을 고려하지 않아, 위치 추정의 정확도가 낮아지는 문제가 있다. 제 6과제는 이러한 문제를 해결하여, 특징점들의 희소성 정도를 고려하여 위치를 인식하는 기술을 제시하는 것이다.
제 7과제는 상기 제 1 내지 6과제를 달성하기 위하여 주행구역을 복수의 구역으로 나누어, 나누어진 지역에 대한 지역 라벨 디스크립터를 먼저 생성시킬 수 있어, 학습과정의 효율성을 더욱 상승시키는 것이다. 나아가, 복수의 지역 중 현재 위치가 속한 어느 한 지역을 먼저 결정하는 기술에 있어서, 현재 위치가 속한 지역을 추정하는 정확도를 더욱 상승시키는 것이다.
본 발명의 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 제 1 내지 7과제를 달성하기 위하여, 본 발명은, 주행구역 내의 특징점들을 근거로 디스크립터를 생성하고, 디스크립터 들을 근거로 라벨 디스크립터를 생성하여, 많은 학습 데이터가 저장된 상태에서도 효율적이고 빠르게 현재 위치를 인식할 수 있는 기술을 제공한다.
또한, 상기 제 1 내지 7과제를 달성하기 위하여, 맵 상의 노드 들 중 비교대상 노드 들을 선택하고 비교대상 노드 들과 비교 과정을 거쳐 최종 노드를 선택하는 기술을 제공한다.
상기 제 1 내지 6과제를 달성하기 위하여, 본 발명에 따른 이동 로봇의 제어방법은, 각 지점 별로 영상을 획득하고, 상기 영상에서 추출된 복수의 특징점에 대응하는 각각의 디스크립터를 생성하고, 상기 각 지점에서 획득된 각 영상에 대응하는 각각의 노드를 생성하는 학습초기단계를 포함한다. 상기 제어방법은, 복수의 상기 디스크립터를 근거로 라벨 디스크립터를 생성하는 라벨생성단계를 포함한다. 상기 제어방법은, 위치 점핑 상황 발생시 인식 영상을 획득하고, 상기 인식 영상에서 추출된 복수의 인식 특징점에 대응하는 각각의 인식 디스크립터를 생성하는 인식초기단계를 포함한다. 상기 제어방법은, 상기 인식 디스크립터 들에 상기 라벨 디스크립터를 매칭시키고, 상기 매칭된 라벨 디스크립터에 대응하는 하나 이상의 비교대상 노드를 선택하는 비교대상선택단계를 포함한다. 상기 제어방법은, 상기 하나 이상의 비교대상 노드 중에 상기 현재 위치로 추정되는 노드를 선택하는 최종노드선택단계를 포함한다.
상기 라벨생성단계는, 상기 학습초기단계를 수행하는 동안 소정 기준이 만족되면 수행될 수 있다.
비교대상인지 여부를 효율적이고 공정하게 판단할 수 있는 제어방법을 제공하기 위하여, 소정 분류규칙, 소정 라벨규칙 및 매칭 과정에 대한 기술을 제공한다.
상기 제 7과제를 달성하기 위하여, 상기 제어방법은, 상기 라벨생성단계 이전에, 소정 기준에 따라 상기 복수의 노드를 지역으로 구분하는 지역구분단계를 포함할 수 있다. 또한, 상기 라벨생성단계는, 상기 각 지역별로, 지역 내 복수의 디스크립터를 복수의 그룹으로 분류하고, 같은 그룹으로 분류된 디스크립터 들을 대표하는 지역 라벨 디스크립터를 생성하는 제 1라벨생성단계를 포함할 수 있다. 상기 라벨생성단계는, 상기 복수의 지역에서 각각 생성된 지역 라벨 디스크립터 들을 복수의 그룹으로 분류하고, 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 대표하는 대지역 라벨 디스크립터 또는 전역 라벨 디스크립터를 생성하는 제 2라벨생성단계를 포함할 수 있다.
상기 학습초기단계를 수행하는 동안, 상기 지역구분단계에서 적어도 하나의 지역이 구분되면 구분된 지역의 상기 지역 라벨 디스크립터를 생성하는 상기 제 1라벨생성단계가 수행될 수 있다.
소정 기준에 따라 상기 복수의 노드를 지역으로 구분하는 지역구분단계를 포함할 수 있다. 상기 라벨생성단계는, 상기 각 지역별로, 제 1소정 분류규칙에 따라 지역 내 복수의 디스크립터를 복수의 그룹으로 분류하고, 제 1소정 라벨규칙에 따라 같은 그룹으로 분류된 디스크립터 들을 근거로 지역 라벨 디스크립터를 생성하는 지역라벨생성단계; 및 제 2소정 분류규칙에 따라 전역 내 복수의 지역 라벨 디스크립터 들을 복수의 그룹으로 분류하고, 제 2소정 라벨규칙에 따라 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 근거로 전역 라벨 디스크립터를 생성하는 전역라벨생성단계;를 포함할 수 있다.
또한, 인식 과정의 신뢰성을 더욱 높이기 위하여, 많은 인식 영상을 근거로 현재 위치로 추정되는 노드를 선택하는 기술을 제공한다. 이를 위하여, 상기 인식초기단계에서, 상기 이동 로봇이 지점 또는 촬영 각도를 변경하면서 제 1 내지 p차 인식 영상을 획득하고, 상기 제 1 내지 p차 인식 영상을 근거로 각각 제 1 내지 p차 인식 디스크립터 들을 생성할 수 있다. 또한, 상기 최종노드선택단계에서, 비교대상 노드 별 제 p차 누적 유사도를 산출하여, 상기 현재 위치로 추정되는 노드를 선택할 수 있다.
상기 제어방법을 실행시키기 위한 프로그램이 구현될 수 있고, 상기 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 구현될 수 있다.
또한, 각종 규칙들 이나 연산을 실행하기 위한 프로그램이 구현될 수 있고, 상기 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 구현될 수 있다.
상기 과제들을 해결하기 위하여, 본 발명의 해결 수단에 따른 이동 로봇은, 본체를 이동시키는 주행부; 상기 본체 주변의 영상을 획득하는 영상획득부; 주행을 하면서 각 지점 별로 영상을 획득하게 제어하고, 상기 영상에서 추출된 복수의 특징점에 대응하는 각각의 디스크립터를 생성하고, 상기 각 지점에서 획득된 각 영상에 대응하는 각각의 노드를 생성하고, 소정 기준에 따라 상기 복수의 노드를 지역으로 구분하도록 기설정되고, 상기 각 지역별로 지역 내 복수의 디스크립터를 복수의 그룹으로 분류하고 같은 그룹으로 분류된 디스크립터 들을 대표하는 지역 라벨 디스크립터를 생성하도록 기설정되고, 상기 복수의 지역에서 각각 생성된 지역 라벨 디스크립터 들을 복수의 그룹으로 분류하고 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 대표하는 전역 라벨 디스크립터를 생성하도록 기설정되는 제어부;를 포함한다.
상기 제어부는, ⅰ 상기 전역 내 모든 노드를 생성할 때까지 위치 점핑 상황이 발생하지 않으면, 상기 전역내 모든 노드를 생성한 후 상기 전역 라벨 디스크립터의 생성을 시작하도록 기설정되고, ⅱ 상기 전역 내 모든 노드를 생성하기 전에 위치 점핑 상황이 발생하면, 상기 위치 점핑 상황이 발생한 시점까지 생성된 복수의 노드를 근거로 하여 위치 점핑 상황 발생 후 상기 전역 라벨 디스크립터의 생성을 시작하도록 기설정될 수 있다. 상기 제어부는, ⅲ 위치 점핑 상황 발생시, 획득된 인식 영상과 상기 전역 라벨 디스크립터를 근거로 하여 현재 위치로 추정되는 노드를 선택하도록 기설정될 수 있다.
상기 해결수단들을 통하여, 이동 로봇의 위치 점핑 상황에서도 맵 상에서 현재 위치를 인식할 수 있는 효과가 있다. 구체적으로, 상기 납치 상황 발생시에도 이를 극복하여, 전역 내 납치 회복(Global Kidnapping Recovery)이 가능하다.
또한, 위치 점핑 상황이 아닌 주행 과정에서 이동 로봇이 기 저장된 맵 상의 위치에 있는 경우, 새로 획득한 영상 정보를 이용하여 기 저장된 영상 정보와 비교하여 맵을 보다 정확하게 갱신할 수 있는 효과가 있다.
또한, 원하는 목적지에 송신 신호가 없더라도 맵을 이용하여 정확히 해당 목적지로 이동 로봇을 이동하게 할 수 있는 효과가 있다.
또한, 전역 내 다수의 노드 들 중 소수의 비교대상 노드 들을 먼저 선택하고, 상기 비교대상 노드 들 중에서 현재 위치를 추정함으로써, 현재 위치의 영상 정보를 기 저장된 특징점 데이터와 비교하는 시간을 현저히 줄어들게 할 수 있다. 이와 동시에, 맵 상의 모든 특징점 데이터를 누락 없이 이용함으로써 정확한 위치 추정이 가능하다는 효과가 있다.
또한, 디스크립터 들을 분류 및 라벨링하여 라벨 디스크립터를 생성시킴으로써, 저장될 데이터 양을 소정 수준 이하로 줄이고, 위치 인식을 위한 비교 과정에 소요되는 시간을 줄이는 효과가 있다.
또한, 전역을 복수의 지역으로 구분하여 지역 내의 특징점 데이터(디스크립터)를 근거로 지역 라벨 디스크립터를 생성함으로써, 디스크립터 들의 분류 과정 및 라벨링 과정에 소요되는 시간을 현저히 줄이는 효과가 있다.
또한, 어느 한 특정 지역 내의 디스크립터가 모두 획득되면 주행 중에도 상기 특정 지역의 지역 라벨 디스크립터를 생성할 수 있어, 디스크립터 들의 분류 과정 및 라벨링 과정을 포함한 맵 학습의 종료 시점을 앞당길 수 있는 효과가 있다.
또한, 학습(맵핑) 과정 중 전역을 모두 학습하기 전에 위치 점핑 상황이 발생하라도 상기 특정 지역의 지역 라벨 디스크립터가 생성된 이후라면, 위치 인식 과정에서 생성된 지역 라벨 디스크립터를 이용할 수 있는 효과가 있다.
한편, 상기 지역 라벨 디스크립터를 생성하여 이를 기반으로 미지의 현재 위치를 추정할 경우, 서로 다른 지역에 속하는 2개의 비교대상 노드(Nx, Ny)에 대한 유사도를 판단함에 있어서, 불공평(unfair)해지는 문제가 있다. 예를 들어, 2개의 디스크립터(a, b)가 특정 거리만큼 떨어진 경우에도, 어느 지역(Ax)에서는 같이 분류되어 하나의 지역 라벨 디스크립터를 생성시키고 다른 지역(Ay)에서는 달리 분류되어 서로 다른 지역 라벨 디스크립터가 될 수 있다. 이러한 상황에서, 현재 위치에서 획득한 영상으로 부터 상기 디스크립터(a)에 보다 가깝고 상기 디스크립터(b)에 보다 덜 가까운 디스크립터(c)를 획득한 경우, 상기 지역(Ax) 내의 비교대상 노드(Nx)에 대해서는 상기 디스크립터(c)와 유사한 디스크립터(a,b)가 보다 많은 것으로 판단하게 될 수 있고, 상기 지역(Ay) 내의 비교대상 노드(Ny)에 대해서는 상기 디스크립터(c)와 유사한 디스크립터(a)가 보다 적은 것으로 판단하게 될 수 있어, 불공평한 문제가 있다. 복수의 지역 별로 생성된 지역 라벨 디스크립터 들을 분류 및 라벨링하여 전역 라벨 디스크립터를 생성함으로써, 상기 지역 라벨 디스크립터를 이용함으로써 얻을 수 있는 효과를 얻으면서도 상기 불공평 문제를 해결할 수 있다. 나아가, 학습(맵핑) 과정 중 전역을 모두 학습하기 전에 위치 점핑 상황이 발생하라도, 위치 점핑 발생 시점까지 생성된 노드를 근거로 하여 전역 라벨 디스크립터를 생성하게 함으로써, 여전히 상기 불공평 문제를 해결할 수 있다.
또한, 천장 영상 만으로도 본 기술을 구현할 수 있어 장치 구현이 비교적 단순해지는 효과가 있다.
또한, 카메라의 초점거리 정보 및 영상 내의 특징점 2차원 좌표 없이도 현재위치를 인식할 수 있어, 간편하게 기술을 구현할 수 있으면서도, 현재 위치 추정의 정확성을 상승시키는 효과가 있다.
또한, 2차원 맵으로도 본 기술을 구현할 수 있어 메모리의 효율적인 사용이 가능하다는 효과가 있다.
또한, 특징점들의 희소성을 고려함으로써, 위치 추정에 있어 특징점마다 가중치를 달리하게 되는 효과가 발현되어, 더욱 정확한 위치 추정이 가능하다.
또한, 위치 점핑 상황에서 복수의 획득 영상을 이용함으로써, 위치 인식의 오류 가능성을 줄이고 소정 신뢰수준 이상의 위치 추정이 가능하다는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 이동 로봇 및 이동 로봇을 충전시키는 충전대를 도시한 사시도이다.
도 2는 도 1에 도시된 이동 로봇의 상면부를 도시한 것이다.
도 3은 도 1에 도시된 이동 로봇의 정면부를 도시한 것이다.
도 4는 도 1에 도시된 이동 로봇의 저면부를 도시한 것이다.
도 5는 도 1의 이동 로봇의 주요 구성들 간의 제어관계를 도시한 블록도이다.
도 6은 도 1의 이동 로봇이 맵 상 위치 인식(S200, S200', S200'')을 수행하게 되는 일 상황의 시나리오를 도시한 순서도이다.
도 7은 도 1의 이동 로봇이 맵 상 위치 인식(S200, S200', S200'')을 수행하게 되는 다른 상황의 시나리오를 도시한 순서도이다.
도 8 및 9는, 도 1의 이동 로봇의 제 1실시예에 따른 학습 과정(S100) 및 위치 인식 과정(S200)을 도시한 순서도이다. 도 8은 학습 과정(S100)을 도시하고, 도 9는 학습 과정(S100)에 따라 학습된 맵 상에서 위치 인식 과정(S200)을 도시한다.
도 10 및 11은, 도 1의 이동 로봇의 제 2실시예에 따른 학습 과정(S100') 및 위치 인식 과정(S200')을 도시한 순서도이다. 도 10은 학습 과정(S100')을 도시하고, 도 11은 학습 과정(S100')에 따라 학습된 맵 상에서 위치 인식 과정(S200')을 도시한다.
도 12 및 13는, 도 1의 이동 로봇의 제 3실시예에 따른 학습 과정(S100'') 및 위치 인식 과정(S200'')을 도시한 순서도이다. 도 12는 학습 과정(S100'')을 도시하고, 도 13은 학습 과정(S100'')에 따라 학습된 맵 상에서 위치 인식 과정(S200'')을 도시한다.
도 14는, 도 8, 10 및 12의 주행 및 영상 획득 과정(S110)과 디스크립터 생성 과정(S120)을 예시적으로 도시한 개념도이다. 도 14에는, 상기 과정(S110)에서 획득한 영상과 영상 내의 복수의 특징점(f1,f2,f3,f4,f5,f6,f7)이 도시되고, 상기 과정(S120)에서 복수의 특징점(f1,f2,f3,..,fm)에 각각 대응하는 n차원 벡터인 디스크립터(
Figure pat00001
)를 생성시키는 도식이 도시된다.
도 15는, 도 8, 10 및 12의 노드 생성 과정(S130)을 구체적으로 도시한 순서도 이다.
도 16은, 도 15에 따라 생성된 노드(N)의 구성 정보들 및 노드(N)의 정보에 영향을 주는 정보를 나타낸 블록도이다.
도 17는, 도 15에 따라 이동 로봇이 이동하면서 생성하는 복수의 노드(N) 및 노드 들 간의 변위(C)를 도시한 개념도이다.
도 18은, 도 8, 10 및 12의 지역 구분 과정(S140)의 일 실시예에 따라 구분된 복수의 지역(A1,A2,A3,A4)을 도시한 개념도이다.
도 19는, 도 8, 10 및 12의 지역 구분 과정(S140')의 다른 실시예에 따라 구분된 복수의 지역(A1',A2',A3',A4',A5')을 도시한 개념도이다.
도 20은, 도 8, 10 및 12의 지역 구분 과정(S140, S140')에 따라 구분된 복수의 지역(A1,A2)을 예시적으로 도시하고, 도시한 각각의 지역(A1,A2) 내의 복수의 노드(N1,N2,N3,N4,…,N31,N32,N33,N34,…)에 각각 대응하는 획득 영상을 보여주는 개념도이다. 도 20에는, 맵 상에서 전역(X), 전역에 포함된 복수의 지역(A1,A2,A3,A4,A5) 및 각 지역에 포함된 복수의 노드(N1,N2,N3,…)의 관계를 나타낸다.
도 21은 도 8, 10 및 12의 지역 라벨 디스크립터 생성 과정(S150)을 구체적으로 나타낸 개념도이다. 도 21은, 제 1소정 분류규칙에 따라 어느 하나의 지역(A1)에 속하는 노드 들(N1,N2,…,N30)에 대응하는 영상 들로부터 생성된 생성된 복수의 디스크립터(
Figure pat00002
,…)를 복수의 그룹(A1G1, A1G2, A1G3,..,A1Gl)으로 분류하는 도식을 나타낸다. 도 21은, 제 1소정 라벨규칙에 따라 같은 그룹으로 분류된 디스크립터 들로부터 지역 라벨 디스크립터(
Figure pat00003
)를 생성하는 도식을 나타낸다.
도 22은 도 12의 전역 라벨 디스크립터 생성 과정(S160)을 구체적으로 나타낸 개념도이다. 도 22는, 제 2소정 분류규칙에 따라 상기 복수의 지역(A1,A2,A3,A4,A5)에서 각각 복수로 생성된 지역 라벨 디스크립터 들(
Figure pat00004
)을 복수의 그룹(XG1, XG2, XG3,..,XGk)으로 분류하는 도식들 나타낸다. 도 22는, 제 2소정 라벨규칙에 따라 같은 그룹으로 분류된 지역 라벨 디스크립터 들로부터 전역 라벨 디스크립터(
Figure pat00005
)를 생성하는 도식을 나타낸다.
도 23은, 도 21의 제 1소정 분류규칙의 일 실시예 및 도 22의 제 2소정 분류규칙의 일 실시예를 나타낸 개념도이다.
도 24는, 도 21의 제 1소정 라벨규칙의 일 실시예 및 도 22의 제 2소정 라벨규칙의 일 실시예를 나타낸 개념도이다.
도 25는, 도 9, 11 및 13의 인식 영상의 획득 과정(S210)과 인식 디스크립터의 생성 과정(S220)을 예시적으로 도시한 개념도이다. 도 25에는, 상기 과정(S210)에서 획득한 영상과 영상 내의 복수의 인식 특징점(h1,h2,h3,h4,h5,h6,h7)이 도시되고, 상기 과정(S220)에서 복수의 인식 특징점(h1,h2,h3,h4,h5,h6,h7)에 각각 대응하는 n차원 벡터인 인식 디스크립터 들(
Figure pat00006
)을 생성시키는 도식이 도시된다.
도 26은, 도 13의 매칭 과정(S231)을 예시적으로 도시한 개념도이다. 도 26에는, 상기 인식 디스크립터 들(
Figure pat00007
)에 각각 전역 라벨 디스크립터(
Figure pat00008
)를 매칭시키는 도식이 도시되고, 복수의 전역 라벨 디스크립터 중 매칭된 전역 라벨 디스크립터 들(
Figure pat00009
)이 속한 그룹(XG1, XG2, XG5, XG32)이 표시된다.
도 27은, 도 13의 비교대상 노드의 선택 과정(S236)을 예시적으로 도시한 개념도이다. 도 27에는, 매칭된 전역 라벨 디스크립터 들(
Figure pat00010
)의 생성 근거가 된 영상 들에 각각 대응하는 비교대상 노드(N1,N14,N15,N38,N45,N62,N63,N64)를 선택하는 도식이 도시되고, 복수의 노드 중 선택된 비교대상 노드(N1,N14,N15,N38,N45,N62,N63,N64)가 표시된다.
도 28은, 도 13의 비교 과정(S266)을 예시적으로 도시한 개념도이다. 도 28에는, 인식 영상 특징 분포 및 각 비교대상 노드에 대응하는 영상 특징 분포를 표현한 히스토그램이 도시된다. 도 28의 인식 영상 특징 분포의 히스토그램은, 인식 영상 내 복수의 인식 디스크립터를 각 인식 디스크립터에 대응하는 전역 라벨 디스크립터(
Figure pat00011
)로 치환하여 표현한 것이다. 도 28의 각 비교대상 노드에 대응하는 영상 특징 분포의 히스토그램은, 영상 내 디스크립터를 각 디스크립터에 대응하는 전역 라벨 디스크립터(
Figure pat00012
)로 치환하여 표현한 것이다.
도 29는, 도 1의 이동 로봇의 제 4실시예에 따른 위치 인식 과정(S300)을 도시한 순서도이다.
도 30은, 도 29의 제 m차 영상의 획득 과정(S310)과 제 m차 인식 디스크립터의 생성 과정(S320)을 예시적으로 도시한 개념도이다. 도 30에는, 상기 과정(S310)에서 tm시점에 획득한 제 m차 영상과 제 m차 영상 내의 복수의 제 m차 인식 특징점(h1tm, h2tm, h3tm, h4tm, h5tm, h6tm, h7tm)이 도시되고, 상기 과정(S320)에서 복수의 제 m차 인식 특징점(h1tm, h2tm, h3tm, h4tm, h5tm, h6tm, h7tm)에 각각 대응하는 n차원 벡터인 제 m차 인식 디스크립터 들(
Figure pat00013
)을 생성시키는 도식이 도시된다.
도 31은, 도 29의 제 m차 누적 유사도 산출 과정(S385)을 예시적으로 도시한 개념도이다. 도 31은, 각 비교대상 노드(Na,Nb,Nc,…,Nx) 별로 누적 유사도(SI)의 크기를 도수로 나타낸 히스토그램을 이용하여, 비교대상 노드(Na,Nb,Nc,…,Nx) 별 누적 유사도(SI)가 차수가 증가함에 따라 변화하는 일 실시예를 보여준다.
도 32 및 도 33은, 도 13 및 도 14의 학습 과정(S100'') 및 위치 인식 과정(S200'')의 다른 실시예를 도시한 순서도 및 개념도이다. 도 32는 위치 점핑 발생 시점에 따른 전역 라벨 디스크립터의 생성 과정(S161, S162)의 시작 시점에 대한 알고리즘을 도시한다. 도 33은, 학습 과정(S100'') 중 위치 점핑 발생(S50)시 지역 라벨 디스크립터가 생성되는 과정(S150, S172) 및 전역 라벨 디스크립터가 생성되는 과정(S162)의 일 예를 나타낸 개념도이다.
본 발명의 일 실시예와 다른 실시예를 구분하기 위하여, 다른 실시예에 따른 과정으로서 일 실시예와 차이가 있는 부분의 도면 참조부호의 뒤에는 콤마(') 또는 더블 콤마('')를 표시한다. 또한, 명세서 전체를 통하여 동일 또는 극히 유사한 부분에 대해서는 동일한 도면 참조부호를 사용한다.
본 설명 전체에 걸쳐 사용되는 주요 용어를 설명하면 다음과 같다.
'생성'한다는 것은, 기존에 저장되어 있지 않은 데이터를 새롭게 만드는 것을 의미한다. '대상A를 근거로 대상B를 생성시킨다'는 것은 대상A를 입력값으로 한 정보처리 결과 대상B가 생성되는 것을 의미한다.
'대표'한다는 것은 그룹의 성질을 어느 하나의 값으로 나타내는 것을 의미한다.
'대상A와 대상B를 비교한다'는 것은, 이미 공지된 기술 또는 본 발명의 설명에 개시된 실시예에 따른 기술을 통해 대상A와 대상B의 유사 정도를 판단하는 것을 의미한다.
‘산출’한다는 것은 수학적 데이터를 계산하여 결과값인 데이터를 생성시키는 것을 의미한다.
'선택'한다는 것은 복수의 대상 중 어느 하나를 정하는 것을 의미한다.
대상A에 대하여 대상B가 정해질 때, '대상A에 대상B가 대응한다'고 한다. (예를 들어, 각각의 노드에 각각의 영상이 대응한다) 대상A에 대상B가 대응하고 대상B에 대상C가 대응할 때, '대상A에 대상C가 대응한다'고 할 수 있다.
그룹A의 각각의 원소에 대하여 그룹B의 원소가 적어도 한 개 정해질 때, '그룹A에 그룹B가 대응한다'고 한다. (예를 들어, 디스크립터 그룹에 라벨 디스크립터 그룹이 대응한다.)
'대응'이란 일의대응, 일대다대응(One-to-many correspondence) 및 일대일대응(one-to-one correspondence) 중 적어도 어느 하나를 의미한다. 대상A에 하나의 대상B가 대응할 때, '대상A에 대상B가 일의대응 한다'고 한다. 그룹A의 각각의 원소에 고작 그룹B의 원소가 하나 대응할 때, '그룹A에 그룹B가 일의대응 한다'고 한다. 대상A에 복수의 대상B가 대응할 때, '대상A에 대상B가 일대다대응 한다'고 한다. 그룹 A의 적어도 하나의 원소에 그룹B의 원소가 복수 개 대응할 때, '그룹A에 그룹B가 일대다대응 한다'고 한다. 하나의 대상A에 하나의 대상B가 대응할 때, '대상A에 대상B가 일대일대응 한다'고 한다. 그룹A와 그룹B의 원소의 개수가 서로 같고 그룹A의 각각의 원소에 그룹B의 각각 상이한 원소가 대응할 때, '그룹A에 그룹B가 일대일대응한다'고 한다. 예를 들어, 어느 하나의 획득 영상A으로부터 특징점B가 추출되고 특징점B를 근거로 디스크립터C가 생성되는 경우, 디스크립터C에 영상A는 일의대응 한다. 예를 들어, 소정 분류규칙에 따른 같은 그룹으로 분류된 복수의 디스크립터A,B를 근거로 하나의 라벨 디스크립터C가 생성되는 경우, 라벨 디스크립터C에 복수의 디스크립터A,B가 일대다대응 한다. 예를 들어, 복수의 노드와 복수의 영상의 개수가 서로 같고 각각의 노드에 각각 상이한 영상이 대응하면, 복수의 노드에 복수의 영상이 일대일대응한고 한다.
대상A에 대상B가 대응하는 관계를 생성시키는 것을 '대상A에 대상B를 매칭시킨다'고 한다. 예를 들어, 인식 디스크립터에 전역 라벨 디스크립터를 매칭시킨다.
'맵(Map)'이란, 이동 로봇의 주행 구역 내의 소정 정보 들을 소정 형식으로 저장한 데이터를 의미한다.
'위치 점핑(Jumping) 상황'이란, 맵 상의 이동 경로의 추적이 불가한 상태에서 이동 로봇이 이동된 상황을 의미한다. 구체적으로, 위치 점핑 상황은, 후술할 주행 변위 측정부(165)에 의한 주행 변위를 측정할 수 없는 상태에서 이동 로봇이 이동된 경우에 발생할 수 있다. 위치 점핑 상황의 일 예로, 주행 중인 이동 로봇을 사용자가 강제로 들어서 옮긴 납치(Kidnapping) 상황이나, 이동 로봇의 전원이 오프(off)된 상태에서 이동 로봇의 위치를 강제로 옮긴 상황이 있다.
'학습 과정'이란, 주행 구역 내에서 획득한 정보 들을 이용하여 맵을 생성하거나 갱신하는 과정을 의미한다.
'인식 과정'이란, 넓은 의미에서는 맵 상의 이동 로봇의 현재 위치를 알아내는 과정을 의미하고, 좁은 의미에서는 상기 위치 점핑 상황 발생시 맵 상의 이동 로봇의 현재 위치를 알아내는 과정을 의미한다.
상기 학습 과정 및 상기 인식 과정은 이동 로봇의 주행 중에 동시에 진행될 수 있고, 이를 Simultaneous Localization And Mapping (SLAM)이라 지칭할 수 있다.
'전역(Global Zone)(X)'이란 이동 로봇의 맵 상의 전체 주행 구역을 의미하고, 용어 앞에 '전역(Global)'이 붙으면 해당 용어는 맵 상의 전체 주행 구역과 관련됨을 의미한다. 전역(X)은 이동 로봇이 추가적인 주행 경험 또는 데이터의 추가적인 입력에 의해 변경(예를 들어, 확장)될 수 있다.
'지역(Lacal Zone)'이란 소정 기준에 따른 상기 전역(Global Zone) 중 일부 구역을 의미하고, 용어 앞에 '지역(Local)'이 붙으면 해당 용어는 상기 전역(Global Zone) 중 일부 구역과 관련됨을 의미한다.
'대지역(Great-Local Zone)'이란 복수의 상기 지역이 그룹핑(grouping)된 구역을 의미하고, 용어 앞에 '대지역(Great-Local)'이 붙으면 해당 용어는 상기 복수의 지역이 그룹핑 된 구역과 관련됨을 의미한다.
'지점(Point)'이란, 맵이 아닌 실제 주행 구역에서의 어느 한 위치를 의미한다.
'노드(Node)'란, 상기 지점에 대응하는 맵 상의 어느 한 위치를 나타내는 데이터를 의미한다.
'노드 정보'란 상기 노드에 대응하는 각종 데이터 들을 의미한다. 상기 맵은 복수의 노드 및 이에 대응하는 노드 정보를 포함할 수 있다.
'영상'이란, 이동 로봇(100)에 의해 촬영되어 획득된 이미지를 의미한다. '인식 영상'이란, 맵 상에서 현재의 위치를 인식하기 위하여 현재의 위치에서 획득된 영상을 의미한다.
'노드에 대응하는 영상'이란, 노드에 대응하는 지점에서 획득한 영상을 의미한다.
'특징점'이란 영상의 여러 특징 들 중 어느 하나로서 영상 내의 일부의 이미지를 의미한다. '인식 특징점'이란 인식 영상의 여러 특징 들 중 어느 하나로서 인식 영상 내의 일부의 이미지를 의미한다.
'디스크립터(descriptor)'는, 상기 특징점을 나타내기 위한 소정 형식의 데이터를 의미하며, 디스크립터 들 간의 거리 또는 유사도가 산출 가능한 형식의 수학적 데이터를 의미한다. 예를 들어, 디스크립터는 n차원 벡터(n은 자연수) 또는 행렬 형식의 데이터일 수 있다.
디스크립터가 n차원 벡터로 표현될 수 있는 경우, 2개의 디스크립터(
Figure pat00014
) 사이의 '거리'는 n차원 벡터 간의 거리(d)를 의미하고, 다음의 수학식 1에 의해서 산출될 수 있다. (여기서, n은 자연수)
Figure pat00015
디스크립터가 n차원 벡터로 표현될 수 있는 경우, x개(여기서, x는 자연수)의 디스크립터가
Figure pat00016
의 '평균값'(
Figure pat00017
)(n차원 벡터)은 다음의 수학식 2에 의해서 산출될 수 있다. (여기서, x 및 n은 자연수)
Figure pat00018
'인식 디스크립터'는 상기 인식 특징점을 나타내기 위한 소정 형식의 데이터를 의미하며, 상기 디스크립터와 같은 형식의 데이터를 의미한다.
'라벨 디스크립터(label descriptor)'는 소정 규칙에 의해 분류된 적어도 하나의 디스크립터를 대표하는 데이터를 의미하며, 상기 디스크립터와 같은 형식의 데이터를 의미한다. 라벨 디스크립터는, 후술하는 지역 라벨 디스크립터, 대지역 라벨 디스크립터 및 전역 라벨 디스크립터를 포괄하는 개념이다.
'지역 내 복수의 디스크립터'는, 어느 한 지역 내 포함되는 복수의 노드에 각각 대응하는 복수의 영상으로부터 추출된 모든 특징점을 각각 나타내기 위한 복수의 디스크립터를 의미한다.
'지역 라벨 디스크립터(local label descriptor)'는, 상기 지역 내 복수의 디스크립터 중 소정 규칙에 의해 분류된 적어도 하나의 디스크립터를 대표하는 데이터를 의미하며, 상기 디스크립터와 같은 형식의 데이터를 의미한다.
'지역 내 복수의 라벨 디스크립터'는, 어느 한 지역 내 복수의 디스크립터를 근거로 생성된 복수의 라벨 디스크립터를 의미한다. '지역 내 복수의 지역 라벨 디스크립터'는, 어느 한 지역 내 복수의 디스크립터를 근거로 생성된 복수의 지역 라벨 디스크립터를 의미한다.
'대지역 내 복수의 라벨 디스크립터'는, 어느 한 대지역에 포함되는 복수의 지역 내 복수의 디스크립터를 근거로 생성된 복수의 라벨 디스크립터를 의미한다. '대지역 내 복수의 지역 라벨 디스크립터'는, 어느 한 대지역에 포함되는 복수의 지역 내 복수의 디스크립터를 근거로 생성된 복수의 지역 라벨 디스크립터를 의미한다.
'대지역 라벨 디스크립터(great-local label descriptor)'는, 상기 대지역 내 복수의 지역 라벨 디스크립터 중 소정 규칙에 의해 분류된 적어도 하나의 지역 라벨 디스크립터를 대표하는 데이터를 의미하며, 상기 디스크립터와 같은 형식의 데이터를 의미한다. '대지역 내 복수의 대지역 라벨 디스크립터'는, 어느 한 대지역 내 복수의 지역 라벨 디스크립터를 근거로 생성된 복수의 대지역 라벨 디스크립터를 의미한다.
'전역 내 복수의 라벨 디스크립터'는, 전역에 포함되는 복수의 지역 내 복수의 디스크립터를 근거로 생성된 복수의 라벨 디스크립터를 의미한다. '전역 내 복수의 지역 라벨 디스크립터'는, 전역에 포함되는 복수의 지역 내 복수의 디스크립터를 근거로 생성된 복수의 지역 라벨 디스크립터를 의미한다. '전역 내 복수의 전역 라벨 디스크립터'는, 전역 내 복수의 지역 라벨 디스크립터를 근거로 생성된 복수의 전역 라벨 디스크립터를 의미한다.
'전역 라벨 디스크립터(global label descriptor)'는, 상기 전역 내 복수의 지역 라벨 디스크립터 중 소정 규칙에 의해 분류된 적어도 하나의 지역 라벨 디스크립터를 대표하는 데이터를 의미하며, 상기 디스크립터와 같은 형식의 데이터를 의미한다.
'영상 내 복수의 디스크립터'는, 어느 한 영상에서 추출된 복수의 특징점을 각각 나타내기 위한 복수의 디스크립터를 의미한다. '영상 내 복수의 라벨 디스크립터'는, 영상 내 복수의 디스크립터를 각 디스크립터에 대응하는 라벨 디스크립터로 치환한 것을 의미한다. '인식 영상 내 복수의 인식 디스크립터'는, 어느 한 인식 영상에서 추출된 복수의 인식 특징점을 각각 나타내기 위한 복수의 인식 디스크립터를 의미한다. '인식 영상 내 복수의 라벨 디스크립터'는, 인식 영상 내 복수의 인식 디스크립터를 각 인식 디스크립터에 대응하는 라벨 디스크립터로 치환한 것을 의미한다.
'영상 특징 분포'란 어느 한 영상 내 복수의 라벨 디스크립터의 종류와 각 종류의 개수(웨이트(w))를 근거로 특정되는 데이터를 의미한다. '인식 영상 특징 분포'란 인식 영상 내 복수의 라벨 디스크립터의 종류와 각 종류의 개수(인식 웨이트(w))를 근거로 특정되는 데이터를 의미한다. '지역 특징 분포'란 어느 한 지역 내 복수의 라벨 디스크립터의 종류와 각 종류의 개수(웨이트(w))를 근거로 특정되는 데이터를 의미한다. '대지역 특징 분포'란 어느 한 대지역 내 복수의 라벨 디스크립터의 종류와 각 종류의 개수(웨이트(w))를 근거로 특정되는 데이터를 의미한다.
여기서, '웨이트(w)'란 어느 한 종류의 라벨 디스크립터가 대표하는 하나 이상인 디스크립터의 개수를 의미한다. 또한, '인식 웨이트(wh)'는 어느 한 종류의 라벨 디스크립터로 치환된 하나 이상인 인식 디스크립터의 개수를 의미한다. 예를 들어, 소정 라벨규칙에 따라 5개의 디스크립터를 대표하는 라벨 디스크립터A가 생성된 경우, 상기 라벨 디스크립터A의 웨이트(w)는 5이다. 예를 들어, 제 1소정 라벨규칙에 따라 7개의 디스크립터를 대표하는 지역 라벨 디스크립터A가 생성된 경우, 상기 지역 라벨 디스크립터A의 웨이트(w)는 7이다. 예를 들어, 제 1소정 라벨규칙에 따라 5개의 디스크립터를 대표하는 지역 라벨 디스크립터A 및 7개의 디스크립터를 대표하는 지역 라벨 디스크립터B가 생성되고, 제 2소정 라벨규칙에 따라 상기 지역 라벨 디스크립터A 및 지역 라벨 디스크립터B를 대표하는 전역 라벨 디스크립터C(또는 대지역 라벨 디스크립터C)가 생성된 경우, 상기 전역 라벨 디스크립터C(또는 대지역 라벨 디스크립터C)의 웨이트(w)는 12이다. 예를 들어, 인식 영상 내 복수의 인식 디스크립터 중 9개의 인식 디스크립터가 라벨 디스크립터A로 치환된 경우, 상기 라벨 디스크립터A의 인식 웨이트(wh)는 9이다. 본 설명에서는 상기 특징 분포를 표현하기 위해 히스토그램을 이용하나, 이에 제한될 필요는 없다.
'영상 정보'란 어느 한 영상에 대한 데이터로서, 영상 자체의 이미지, 영상에서 추출된 복수의 특징점, 영상 내 복수의 디스크립터, 영상 내 복수의 라벨 디스크립터 및 영상 특징 분포를 포괄하는 개념이다. '인식 영상 정보'란 어느 한 인식 영상에 대한 데이터로서, 인식 영상 자체의 이미지, 인식 영상에서 추출된 복수의 인식 특징점, 인식 영상 내 복수의 인식 디스크립터, 인식 영상 내 복수의 라벨 디스크립터 및 인식 영상 특징 분포를 포괄하는 개념이다.
본 발명인 이동 로봇(100)은 바퀴 등을 이용하여 스스로 이동이 가능한 로봇을 의미하고, 가정 도우미 로봇 및 로봇 청소기 등이 될 수 있다. 이하 도 1 내지 도 4를 참조하여, 이동 로봇 중 로봇 청소기(100)를 예로 들어 설명하나, 반드시 이에 한정될 필요는 없다.
도 1 내지 5를 참고하여, 이동 로봇(100)은 본체(110)와, 본체(110) 주변의 영상을 획득하는 영상획득부(120)를 포함한다. 이하, 본체(110)의 각 부분을 정의함에 있어서, 주행 구역의 천장을 향하는 부분을 상면부(도 2 참고)로 정의하고, 주행 구역의 바닥을 향하는 부분을 저면부(도 4 참고)로 정의하고, 상기 상면부와 저면부 사이에서 본체(110)의 둘레를 이루는 부분 중 주된 주행 방향 부분을 정면부(도 3 참고)라고 정의한다.
이동 로봇(100)는 본체(110)를 이동시키는 주행부(160)를 포함한다. 주행부(160)는 본체(110)를 이동시키는 적어도 하나의 구동 바퀴(136)를 포함한다. 주행부(160)는 구동 모터를 포함할 수 있다. 구동 바퀴(136)는 본체(110)의 좌, 우 측에 각각 구비될 수 있으며, 이하, 각각 좌륜(136(L))과 우륜(136(R))이라고 한다.
좌륜(136(L))과 우륜(136(R))은 하나의 구동 모터에 의해 구동될 수도 있으나, 필요에 따라 좌륜(136(L))을 구동시키는 좌륜 구동 모터와 우륜(136(R))을 구동시키는 우륜 구동 모터가 각각 구비될 수도 있다. 좌륜(136(L))과 우륜(136(R))의 회전 속도에 차이를 두어 좌측 또는 우측으로 본체(110)의 주행방향을 전환할 수 있다.
본체(110)의 저면부에는 공기의 흡입이 이루어지는 흡입구(110h)가 형성될 수 있으며, 본체(110) 내에는 흡입구(110h)를 통해 공기가 흡입될 수 있도록 흡입력을 제공하는 흡입장치(미도시)와, 흡입구(110h)를 통해 공기와 함께 흡입된 먼지를 집진하는 먼지통(미도시)이 구비될 수 있다.
본체(110)는 이동 로봇(100)를 구성하는 각종 부품들이 수용되는 공간을 형성하는 케이스(111)를 포함할 수 있다. 케이스(111)에는 상기 먼지통의 삽입과 탈거를 위한 개구부가 형성될 수 있고, 상기 개구부를 여닫는 먼지통 커버(112)가 케이스(111)에 대해 회전 가능하게 구비될 수 있다.
흡입구(110h)를 통해 노출되는 솔들을 갖는 롤형의 메인 브러시(134)와, 본체(110)의 저면부 전방측에 위치하며, 방사상으로 연장된 다수개의 날개로 이루어진 솔을 갖는 보조 브러시(135)가 구비될 수 있다. 이들 브러시(134, 135)들의 회전에 의해 청소 구역 내 바닥으로부터 먼지들이 제거되며, 이렇게 바닥으로부터 분리된 먼지들은 흡입구(110h)를 통해 흡입되어 먼지통에 모인다.
배터리(138)는 상기 구동 모터뿐만 아니라, 이동 로봇(100)의 작동 전반에 필요한 전원을 공급하는 것이다. 배터리(138)가 방전될 시, 이동 로봇(100)는 충전을 위해 충전대(200)로 복귀하는 주행을 실시할 수 있으며, 이러한 복귀 주행 중, 이동 로봇(100)는 스스로 충전대(200)의 위치를 탐지할 수 있다.
충전대(200)는 소정의 복귀 신호를 송출하는 신호 송출부(미도시)를 포함할 수 있다. 상기 복귀 신호는 초음파 신호 또는 적외선 신호일 수 있으나, 반드시 이에 한정되어야 하는 것은 아니다.
이동 로봇(100)는 상기 복귀 신호를 수신하는 신호 감지부(미도시)를 포함할 수 있다. 충전대(200)는 신호 송출부를 통해 적외선 신호를 송출하고, 상기 신호 감지부는 상기 적외선 신호를 감지하는 적외선 센서를 포함할 수 있다. 이동 로봇(100)는 충전대(200)로부터 송출된 적외선 신호에 따라 충전대(200)의 위치로 이동하여 충전대(200)와 도킹(docking)한다. 이러한 도킹에 의해 이동 로봇(100)의 충전 단자(133)와 충전대(200)의 충전 단자(210) 간에 충전에 이루어진다.
영상획득부(120)는 청소 구역을 촬영하는 것으로, 디지털 카메라를 포함할 수 있다. 상기 디지털 카메라는 적어도 하나의 광학렌즈와, 상기 광학렌즈를 통과한 광에 의해 상이 맺히는 다수개의 광다이오드(photodiode, 예를 들어, pixel)를 포함하여 구성된 이미지센서(예를 들어, CMOS image sensor)와, 상기 광다이오드들로부터 출력된 신호를 바탕으로 영상을 구성하는 디지털 신호 처리기(DSP: Digital Signal Processor)를 포함할 수 있다. 상기 디지털 신호 처리기는 정지영상은 물론이고, 정지영상으로 구성된 프레임들로 이루어진 동영상을 생성하는 것도 가능하다.
바람직하게, 영상획득부(120)는 본체(110)의 상면부에 구비되어, 청지역 내의 천장에 대한 영상을 획득하나, 영상획득부(120)의 위치와 촬영범위가 반드시 이에 한정되어야 하는 것은 아니다. 예를 들어, 영상획득부(120)는 본체(110) 전방의 영상을 획득하도록 구비될 수도 있다.
또한, 이동 로봇(100)는 전방의 장애물을 감지하는 장애물 감지센서(131)를 더 포함할 수 있다. 이동 로봇(100)는 청소 구역 내 바닥에 낭떠러지의 존재 여부를 감지하는 낭떠러지 감지센서(132)와, 바닥의 영상을 획득하는 하부 카메라 센서(139)를 더 포함할 수 있다.
또한, 이동 로봇(100)는 On/Off 또는 각종 명령을 입력할 수 있는 조작부(137)를 포함한다.
도 5를 참고하여, 이동 로봇(100)는 각종 데이터를 저장하는 저장부(150)를 포함한다. 저장부(150)에는 이동 로봇(100)의 제어에 필요한 각종 데이터 들이 기록될 수 있다. 저장부(150)는 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 상기 기록 매체는 마이크로 프로세서(micro processor)에 의해 읽힐 수 있는 데이터를 저장한 것으로, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등을 포함할 수 있다.
저장부(150)에는 주행 구역의 맵이 저장될 수 있다. 상기 맵은 이동 로봇(100)와 유선 또는 무선 통신을 통해 정보를 교환할 수 있는 외부 단말기에 의해 입력된 것일 수도 있고, 이동 로봇(100)가 스스로 학습을 하여 생성한 것일 수도 있다. 전자의 경우, 외부 단말기로는 맵 설정을 위한 어플리케이션(application)이 탑재된 리모컨, PDA, 랩탑(laptop), 스마트 폰, 태블렛 등을 예로 들 수 있다.
상기 맵에는 주행 구역 내의 복수의 지점에 대응(일대일대응)하는 복수의 노드의 위치가 표시될 수 있다. 상기 맵에는 주행 구역 내의 각 지역이 표시될 수 있다. 또한, 이동 로봇(100)의 현재 위치가 상기 맵 상에 표시될 수 있다. 상기 맵 상에서의 이동 로봇(100)의 현재 위치는 주행 과정에서 갱신될 수 있다.
주행 변위는, 이동 로봇의 이동 방향과 이동 거리를 포함하는 개념이다. 주행구역의 바닥면을 X축 및 Y축이 직교하는 평면 상에 있다고 가정할 때, 주행 변위는 (
Figure pat00019
)로 표현할 수 있다.
Figure pat00020
는 각각 X축 및 Y축 방향으로의 변위를 의미하고,
Figure pat00021
는 회전 각도를 의미한다.
주행 변위 측정부(165)는 상기 하부 카메라 센서(139)에서 획득된 영상을 근거로 주행 변위를 측정할 수 있다. 예를 들어, 주행 변위 측정부(165)는 이동 로봇(100)의 연속적인 이동에 따라 달라지는 바닥 영상의 연속적인 픽셀(pixel) 비교를 통해서 주행 변위를 측정할 수 있다.
주행 변위 측정부(165)는 주행부(160)의 동작을 근거로 이동 로봇(100)의 주행 변위를 측정할 수 있다. 예를 들어, 주행제어모듈(141)은 구동 바퀴(136)의 회전속도를 근거로 이동 로봇(100)의 현재 또는 과거의 이동속도, 주행한 거리 등을 측정할 수 있으며, 각 구동 바퀴(136(L), 136(R))의 회전 방향에 따라 현재 또는 과거의 방향 전환 과정 또한 측정할 수 있다.
주행 변위 측정부(165)는 장애물 감지센서(131) 및 영상획득부(120) 중 적어도 어느 하나를 이용하여 상기 주행 변위를 측정하는 것도 가능하다.
제어부(14)는 이렇게 측정된 주행 변위를 바탕으로, 맵 상에서 이동 로봇(100)의 위치를 인식할 수 있다.
송신부(170)는 이동 로봇의 정보를 다른 이동 로봇이나 중앙 서버에 송신해줄 수 있다. 수신부(190)는 다른 이동 로봇이나 중앙 서버로부터 정보를 수신할 수 있다. 송신부(170)가 송신하는 정보 또는 수신부(190)가 수신하는 정보는 후술할 이동 로봇의 노드(N)의 구성 정보를 포함할 수 있다.
이동 로봇(100)는 각종 정보를 처리하고 판단하는 제어부(140)를 포함한다. 제어부(140)는 주행 구역을 학습하는 정보 처리를 수행할 수 있다. 제어부(140)는 맵 상의 현재 위치를 인식하는 정보 처리를 수행할 수 있다. 제어부(140)는 이동 로봇(100)를 구성하는 각종 구성들(예를 들어, 주행 변위 측정부(165), 장애물 감지 센서(131), 영상획득부(120), 조작부(137), 주행부(160), 송신부(170), 수신부(190) 등)의 제어를 통해, 이동 로봇(100)의 동작 전반을 제어할 수 있다. 제어부(140)는, 주행제어모듈(141), 학습모듈(143) 및 인식모듈(144)을 포함할 수 있다.
본 실시예에 따른 제어방법은 제어부(140)에 의해 수행될 수 있다. 본 발명은, 이동 로봇(100)의 제어방법이 될 수 있고, 상기 제어방법을 수행하는 제어부(140)를 포함하는 이동 로봇(100)가 될 수도 있다. 본 발명은, 상기 제어방법의 각 단계를 포함하는 컴퓨터 프로그램이 될 수도 있고, 상기 제어방법을 컴퓨터로 구현하기 위한 프로그램이 기록된 기록매체가 될 수도 있다. 상기 ‘기록매체’는 컴퓨터로 판독 가능한 기록매체를 의미한다. 본 발명은, 하드웨어와 소프트웨어를 모두 포함하는 이동 로봇 제어 시스템이 될 수도 있다.
주행제어모듈(141)은 이동 로봇(100)의 주행을 제어한다. 주행제어모듈(141)은 주행 설정에 따라 주행부(160)의 구동을 제어한다.
학습모듈(143)은 주행 구역의 맵을 생성시킨다. 전역 내 위치 인식을 위해서, 학습모듈(143)은 각 지점에서 획득한 영상을 상기 맵 상의 각 노드(node, N)와 매칭시킨다. 획득 영상 들은 노드 들에 일대일대응할 수 있다.
학습모듈(143)은, 상기 주행 변위 정보를 바탕으로 맵 상의 노드를 생성시킨다. 예를 들어, 후술할 원점 노드(O)를 기준으로 측정한 주행 변위를 근거로 하여, 노드 좌표 정보를 생성할 수 있다. 생성된 노드(N)의 노드 좌표 정보(D186)는 원점 노드(O)에 대한 상대적 좌표값이다. 노드 정보는 노드에 대응하는 영상 정보(D183)를 포함할 수 있다.
학습모듈(143)은 노드(N)와 노드간의 주행 변위를 근거로 하여 맵을 생성할 수 있다.
학습모듈(143)은 기 생성된 맵을 갱신할 수 있다. 예를 들어, 학습모듈(143)은 후술하는 루프 변위(LC)를 근거로 하여 기 저장된 노드 좌표 정보(D186)를 갱신할 수 있다.
학습모듈(143)은 소정 기준에 따라 전역(X)을 복수의 지역으로 구분할 수 있다. 학습모듈(143)은 소정 기준에 따라 전역(X)을 복수의 대지역으로 구분할 수 있다. 학습모듈(143)은 소정 기준에 따라 대지역을 복수의 지역으로 구분할 수 있다. 소정 기준에 따라 복수의 지역을 그룹핑하여 대지역으로 할 수 있다.
인식모듈(144)은 장애물 감지센서(131) 및 영상획득부(120) 중 적어도 어느 하나를 이용하여, 현재 위치를 인식할 수 있다. 인식모듈(144)은 위치 점핑 상황에서 미지의 현재 위치를 인식할 수 있다. 인식모듈(144)은 맵 상에서 현재 위치를 인식할 수 있다. 인식모듈(144)은 맵 상의 복수의 노드 중 현재 위치에 대응(일의대응)하는 노드를 선택할 수 있다. 이하, 영상획득부(120)를 이용하여 미지의 현재 위치를 인식하는 과정을 예로 들어 설명하나, 반드시 이에 한정될 필요는 없다.
본 발명의 실시예에 따른 이동 로봇의 제어방법은 학습 과정(S100, S100', S100'', S190)을 포함한다. 상기 이동 로봇의 제어방법은 인식 과정(S200, S200', S200'')을 포함한다.
도 6 및 7을 참고하여, 학습 과정(S100, S100', S100'', S190) 또는 인식 과정(S200, S200', S200'')을 시작하게 되는 시나리오를 예시적으로 설명한다.
도 6을 참고한 일 시나리오에서는, 이동 로봇(100)이 주행을 시작하면 기 저장된 맵의 존재 여부를 판단(S10)한다. 기 저장된 맵의 존재 여부란 이동 로봇()의 저장부()에 맵이 저장되어 있는지 판단하는 과정이 될 수 있다. 상기 과정(S10) 결과 기 저장된 맵이 존재하지 않으면, 이동 로봇(100)은 새로운 맵을 생성하는 학습 과정(S100, S100', S100'')을 시작한다. 상기 과정(S10) 결과 기 저장된 맵이 존재하면, 기 저장된 맵 상에서 이동 로봇(100)의 현재 위치를 인식하는 과정(S200, S200', S200'')이 시작된다. 상기 과정(S200, S200', S200'') 이후 기 저장된 맵을 갱신하는 학습 과정(S190)을 시작한다. 상기 과정(S190)에서는, 이동 로봇(100)이 새로 획득한 영상 정보를 근거로 기 저장된 맵을 갱신할 수 있다. 상기 과정(S190)은, 새롭게 주행한 구역에서 얻은 정보를 근거로 기 저장된 맵 상에서 새로운 노드를 생성하는 과정을 포함할 수 있다. 또한, 상기 과정(S190)은, 주행 구역에서 얻은 환경 정보를 근거로 기 저장된 병합맵 상의 노드의 정보 중 일부를 갱신하는 과정을 포함할 수 있다. 이러한 방식으로 위치 인식 과정(S200, S200', S200'')과 학습 과정(S190)이 지속적으로 동시에 진행될 수 있다.(SLAM) 이하, 예시적으로 상기 맵을 생성하는 학습 과정(S100, S100’, S100’’)을 기준으로 설명하나, 반드시 이에 제한될 필요는 없고 맵을 갱신하는 학습 과정(S150)에 이하의 설명 내용이 적용될 수 있다.
도 7을 참고한 다른 시나리오에서는, 위치 점핑 상황이 발생(S50)한다. 상기 위치 점핑 상황 발생(S50) 이후, 이동 로봇(100)은 기 저장된 맵 상에서 현재 위치를 인식하는 과정(S200, S200’, S200’’)을 시작한다.
상기 이동 로봇의 제어방법은, 학습초기단계(S110, S120, S130), 복수의 디스크립터를 근거로 라벨 디스크립터를 생성하는 라벨생성단계(S150, S156, S160), 인식초기단계(S210, S220) 및 현재 위치로 추정되는 노드를 선택하는 최종노드선택단계(S270)를 포함한다.
라벨생성단계(S150, S156, S160)는, 후술할 지역 라벨 디스크립터 생성 과정(S150), 대지역 라벨 디스크립터 생성 과정(S156) 및 전역 라벨 대스크립터 생성과정(S160) 중 적어도 하나를 포함한다. 라벨생성단계(S150, S156, S160)에서, 복수의 상기 디스크립터를 상기 디스크립터 들간의 거리를 근거로 하여 복수의 그룹으로 분류한다. 라벨생성단계(S150, S156, S160)에서, 후술할 소정 분류규칙에 따라 복수의 상기 디스크립터를 복수의 그룹으로 분류한다. 라벨생성단계(S150, S156, S160)에서, 같은 그룹으로 분류된 디스크립터 들을 대표하는 라벨 디스크립터를 생성한다. 라벨생성단계(S150, S156, S160)에서, 소정 라벨규칙에 따라 같은 그룹으로 분류된 디스크립터 들로부터 라벨 디스크립터를 생성한다.
라벨생성단계(S150, S156, S160)는, 학습초기단계(S110, S120, S130) 이후에 시작될 수 있으나, 상기 학습초기단계를 수행하는 동안 소정 기준이 만족되면 수행되는 것이 바람직하다.
예를 들어, 학습초기단계(S110, S120, S130) 수행하는 동안, 현재까지 생성된 노드들 중 적어도 일부가 그룹핑되어 지역으로 구분되면, 구분된 지역의 지역 라벨 디스크립터가 생성될 수 있다. 즉, 지역 라벨 디스크립터가 주행 중 생성될 수 있다.
또한, 학습초기단계(S110, S120, S130) 수행하는 동안, 현재까지 생성된 노드들 중 적어도 일부가 그룹핑되어 대지역으로 구분되면, 구분된 대지역의 대지역 라벨 디스크립터가 생성될 수 있다. 즉, 대지역 라벨 디스크립터가 주행 중 생성될 수 있다.
도 8을 참고하여, 제 1실시예에 따른 학습 과정(S100)은 학습초기단계를 포함한다. 상기 학습초기단계는 주행 및 영상 획득 과정(S110), 디스크립터를 생성하는 과정(S120) 및 노드를 생성하는 과정(S130)을 포함한다.
학습 과정(S100)은 주행 및 영상 획득 과정(S110)을 포함한다. 상기 과정(S110)에서, 이동 로봇(100)이 주행하면서 이격된 각 지점 별로 영상을 획득한다. 각 지점에 각 획득 영상이 대응한다. 복수의 지점에 복수의 획득 영상이 일대일대응할 수 있다.
학습 과정(S100)은, 획득된 영상에서 추출된 복수의 특징점에 대응하는 각각의 디스크립터를 생성하는 과정(S120)을 포함한다. 복수의 특징점에 복수의 디스크립터가 일대일대응 한다. 상기 과정(S120)은 어느 한 지점에서 영상을 획득한 후 다음 지점으로 이동하는 과정 중에 진행될 수 있다. 상기 과정(S120)은 상기 과정(S110)이 진행되는 중에 진행될 수 있다.
학습 과정(S100)은 노드를 생성하는 과정(S130)을 포함한다. 상기 과정(S130)에서 복수의 노드를 생성한다. 각각의 노드는 상기 각 지점의 좌표 정보에 대응한다. 각각의 노드는 각 지점에서 획득된 각 영상에 대응한다. 각각의 노드에 각각의 영상 정보가 대응한다. 복수의 노드에 복수의 획득 영상이 일대일대응 할 수 있다. 상기 과정(S130)은 어느 한 지점에서 다음 지점으로 이동하는 과정 중에 진행될 수 있다. 상기 과정(S130)은 상기 과정(S110) 및/또는 상기 과정(S120)이 진행되는 중에 진행될 수 있다.
학습 과정(S100)은 소정 기준에 따라 상기 복수의 노드를 지역으로 구분하는 과정(S140, S140')을 포함한다. 상기 과정(S140, S140’)을 지역구분단계(S140, S140’)라 지칭할 수 있다. 상기 어느 한 지역A를 구분하는 과정(S140, S140')은 상기 어느 한 지역A의 지역 라벨 디스크립터를 생성하는 과정(S150) 이전에 진행된다. 상기 과정(S140, S140’)은 노드 생성 과정(S130)이 진행되는 중에 진행될 수 있다. 상기 복수의 노드 중 일부의 노드 들이 그룹핑되어 하나의 지역으로 구분될 수 있다. 상기 과정(S140, S140’)은 상기 학습초기단계를 수행하는 동안 신규의 노드가 생성되어 소정의 지역 구분 조건이 만족되면 수행될 수 있다.
학습 과정(S100)은 복수의 상기 디스크립터를 근거로 지역 라벨 디스크립터를 생성하는 과정(S150)을 포함한다. 상기 과정(S150)은 제 1라벨생성단계(S150) 또는 지역라벨생성단계(S150)로 지칭할 수 있다. 상기 과정(S150)에서, 상기 각 지역별로, 지역 내 복수의 디스크립터를 복수의 그룹으로 분류한다. 상기 과정(S150)에서, 상기 각 지역별로, 후술할 제 1소정 분류규칙에 따라 지역 내 복수의 디스크립터를 복수의 그룹으로 분류한다. 상기 과정(S150)에서, 같은 그룹으로 분류된 디스크립터 들을 대표하는 지역 라벨 디스크립터를 생성한다. 상기 과정(S150)에서, 후술할 제 1소정 라벨규칙에 따라 같은 그룹으로 분류된 디스크립터 들을 근거로 지역 라벨 디스크립터를 생성한다.
도 9를 참고하여, 제 1실시예에 따른 인식 과정(S200)은 인식초기단계를 포함한다. 상기 인식초기단계는, 인식 영상 획득 과정(S210) 및 인식 디스크립터 그룹을 생성하는 과정(S220)을 포함한다.
인식 과정(S200)은 인식 영상 획득 과정(S210)을 포함한다. 상기 과정(S210)에서, 이동 로봇(100)이 미지의 현재 위치에서 인식 영상을 획득한다. 상기 과정(S210)은 위치 점핑 상황 발생시 진행될 수 있다. 상기 과정(S210)은 이동 로봇(100)에 기 저장된 맵이 존재하는 경우 진행될 수 있다.
인식 과정(S200)은 획득된 상기 인식 영상에서 추출된 복수의 인식 특징점에 대응하는 각각의 인식 디스크립터를 생성하는 과정(S220)을 포함한다. 복수의 인식 특징점에 복수의 인식 디스크립터가 일대일대응 한다. 상기 과정(S220)은 미지의 현재 위치에서 적어도 하나의 인식 영상을 획득한 후 진행될 수 있다.
인식 과정(S200)은, 상기 과정(S220) 이후, 지역 내 복수의 지역 라벨 디스크립터(지역 라벨 디스크립터 그룹)와 상기 복수의 인식 디스크립터(인식 디스크립터 그룹)를 비교하는 과정(S240)을 포함한다.
인식 과정(S200)은, 상기 비교 과정(S240) 이후, 복수의 지역 중 미지의 현재 위치가 속한 어느 한 지역을 선택하는 과정(S250)을 포함한다.
상기 비교 과정(S240)에서, 지역 내 복수의 지역 라벨 디스크립터의 종류 및 각 종류의 웨이트(w)를 근거로, 지역 특징 분포를 생성한다.
상기 비교 과정(S240)에서 인식 영상 특징 분포를 각 지역 별 지역 특징 분포와 비교하여, 가장 유사도가 높은 지역을 선택(S250)한다. 상기 비교 과정(S240)에서, 인식 영상 특징 분포는 각각의 지역 특징 분포 별로 비교 가능한 데이터 형식으로 생성되어, 어느 한 지역A의 특징 분포와 비교하는 인식 영상 특징 분포는 다른 한 지역B의 특징 분포와 비교하는 인식 영상 특징 분포와 서로 다르다. '비교 가능'하다는 것은, 두 대상이 서로 비교하여 유사도를 산출할 수 있는 상태를 의미한다. 비유적인 예를 들어, 다양한 색채의 물건으로 구성된 두 집합을 서로 색깔 별로 그 개수를 비교하기 위하여, 두 집합 중 어느 하나의 색채 분류기준에 따라 다른 하나의 집합을 이루는 각 대상들의 색채를 분류해준 경우, 두 집합은 '비교 가능'하다고 표현될 수 있다.
제 1실시예에서, 어느 한 지역A의 특징 분포와 인식 영상 특징 분포를 비교하여 유사도를 산출하기 위하여, 인식 영상 내 복수의 인식 디스크립터를 각 인식 디스크립터에 대응하는 '상기 지역A 내 지역 라벨 디스크립터'로 치환하여 인식 영상 특징 분포를 생성한다. 또한, 다른 한 지역B의 특징 분포와 인식 영상 특징 분포를 비교하여 유사도를 산출하기 위하여, 인식 영상 내 복수의 인식 디스크립터를 각 인식 디스크립터에 대응하는 '상기 지역B 내 지역 라벨 디스크립터'로 치환하여 인식 영상 특징 분포를 생성한다. 이 경우, '상기 지역A 내 지역 라벨 디스크립터'의 종류와 '상기 지역B 내 지역 라벨 디스크립터'의 종류는 서로 다르므로, 상기 '지역A의 특징 분포와 비교 가능한 인식 영상 특징 분포'와 '지역B의 특징 분포와 비교 가능한 인식 영상 특징 분포'는 서로 다르게 생성된다.
한 지역(A1)의 지역 특징 분포에 비교 가능한 인식 영상 특징 분포를 생성하기 위하여, 인식 영상 내 복수의 인식 디스크립터를 각각 지역(A1) 내 복수의 지역 라벨 디스크립터 중 거리가 가장 가까운 것으로 치환할 수 있다. 예를 들어, 인식 디스크립터
Figure pat00022
Figure pat00023
Figure pat00024
를 지역(A1) 내 복수의 지역 라벨 디스크립터들(
Figure pat00025
) 중 가장 거리가 가까운
Figure pat00026
로 각각 치환할 수 있다. 이 경우, 인식 디스크립터(
Figure pat00027
Figure pat00028
)에 지역 라벨 디스크립터(
Figure pat00029
)가 대응(일의대응)한다. 나아가, 인식 디스크립터 및 인식 디스크립터에 가장 가까운 지역 라벨 디스크립터 사이의 거리가 소정 값을 초과하는 경우에는, 해당 인식 디스크립터는 제외시키고 나머지 인식 디스크립터 들 만을 근거로 인식 영상 특징 분포를 생성하는 것도 가능하다.
어느 한 지역(A1)의 지역 특징 분포는, 각 지역 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 웨이트(w)를 근거로 산출된 스코어(s1)를 도수(세로 축의 값)로 보는 지역 특징 분포 히스토그램으로 표현될 수 있다.
어느 한 지역(A1)의 지역 특징 분포는, 각 지역 라벨 디스크립터의 종류를 각 차원으로 보고, 각 종류 당 웨이트(w)를 근거로 산출된 스코어(s1)를 각 차원의 수치로 보는 지역 특징 분포 벡터로 표현될 수 있다. 맵 상의 복수의 지역(A1,A2,…Ai)에 대응(일대일대응)하는 복수의 지역 특징 분포 벡터가 생성될 수 있다. (여기서, i는 자연수)
어느 한 지역(A1)의 지역 특징 분포에서, 어느 한 지역 라벨 디스크립터(
Figure pat00030
)의 스코어(s1)는 아래의 수학식 3를 통해 산출될 수 있다.
Figure pat00031
여기서, s1은 해당 지역 특징 분포에서 어느 한 지역 라벨 디스크립터(
Figure pat00032
)의 스코어,
w1은 해당 지역(A1) 내 상기 지역 라벨 디스크립터(
Figure pat00033
)의 웨이트,
Figure pat00034
은 해당 지역(A1) 내 모든 지역 라벨 디스크립터의 웨이트의 총합,
Figure pat00035
는 해당 지역(A1) 내 '총 영상의 개수'를 '상기 지역 라벨 디스크립터(
Figure pat00036
)가 생성된 영상의 개수'로 나눈 값임.
어느 한 비교 대상 지역(A1)에 비교 가능한 인식 영상 특징 분포는, 인식 영상 내 복수의 지역 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 인식 웨이트(wh)를 근거로 산출된 인식 스코어(sh)를 도수(세로 축의 값)로 보는 인식 영상 특징 분포 히스토그램으로 표현될 수 있다.
어느 한 비교 대상 지역(A1)에 비교 가능한 인식 영상 특징 분포는, 인식 영상 내 복수의 지역 라벨 디스크립터의 종류를 각 차원으로 보고, 각 종류 당 인식 스코어(sh1)를 각 차원의 수치로 보는 인식 영상 특징 분포 벡터로 표현될 수 있다. 복수의 비교 대상 지역(A1,A2,…Ai) 별 각각의 지역 특징 분포에 비교 가능한 각각의 인식 영상 특징 분포 벡터가 생성될 수 있다. (여기서, i는 자연수)
예를 들어, 비교대상 지역(A1)에 대한 인식 영상 특징 분포에서, 어느 한 지역 라벨 디스크립터(
Figure pat00037
)의 인식 스코어(sh1)는 아래의 수학식 4을 통해 산출될 수 있다.
Figure pat00038
여기서, sh1은 해당 인식 영상 내 어느 한 지역 라벨 디스크립터(
Figure pat00039
)의 인식 스코어,
wh1은 해당 인식 영상 내 상기 지역 라벨 디스크립터(
Figure pat00040
)의 인식 웨이트,
Figure pat00041
은 해당 인식 영상 내 모든 지역 라벨 디스크립터의 인식 웨이트의 총합,
Figure pat00042
는 해당 지역(A1) 내 '총 영상의 개수'를 '상기 지역 라벨 디스크립터(
Figure pat00043
)가 생성된 영상의 개수'로 나눈 값임. (상기 수학식 3에서의 정의와 같음)
상기 비교 과정(S240)에서, 각각의 지역 별로 지역 특징 분포와 인식 특징 분포를 서로 비교하여, 각각의 유사도를 산출한다. 예를 들어, 상기 유사도는 cosine similarity 를 이용한 다음의 수학식 5에 의해 산출될 수 있다.
Figure pat00044
여기서,
Figure pat00045
는 유사도인 확률이고,
Figure pat00046
는 어느 한 비교 대상 지역의 지역 특징 분포 벡터이고,
Figure pat00047
Figure pat00048
에 비교 가능한 인식 영상 특징 분포 벡터이고,
Figure pat00049
는 두 벡터의 절대값의 곱을 의미하고,
Figure pat00050
는 두 벡터의 내적을 의미함.
상기 지역 선택 과정(S250)에서, 각 지역 별로 산출된 유사도 중 가장 큰 값이 산출된 지역을 현재 위치가 속한 지역으로 선택할 수 있다.
인식 과정(S200)은, 비교 대상 노드 별로 노드에 대응하는 영상 정보를 인식 영상 정보와 비교하는 과정(S261)을 포함한다. 상기 비교 과정(S261)에서 비교 대상 노드는, 상기 지역 선택 과정(S250)에서 선택된 지역 내 복수의 노드이다. 일례로, 상기 비교 과정(S261)에서, 각 노드에 대응하는 영상 내 복수의 라벨 디스크립터와 상기 인식 영상 내 복수의 라벨 디스크립터를 서로 비교하여, 비교 대상 노드 별 유사도를 산출할 수 있다.
인식 과정(S200)은, 하나 이상의 비교대상 노드 중에 현재 위치로 추정되는 노드를 선택하는 과정(S270)을 포함한다. 상기 과정(S261) 및 상기 과정(S270)을 최종노드선택단계(S261, S270)라 지칭할 수 있다. 최종노드선택단계(S261, S270)에서, 각 비교대상 노드 별로 노드 정보와 상기 현재 위치에서 획득된 인식 영상 정보를 비교하여, 상기 현재 위치로 추정되는 노드를 선택한다.
상기 노드 선택 과정(S270)에서는, 각 비교 대상 노드 별로 산출한 유사도 중 가장 큰 값이 산출된 노드를 선택할 수 있다. 이동 로봇(100)은 상기 과정(S270)에서 선택한 노드를 현재 위치로 인식하여, 이를 기초로 이 후의 주행을 계속할 수 있다.
도 10을 참고하여, 제 2실시예에 따른 학습 과정(S100') 중 상기 제 1실시예에 따른 학습 과정(S100)과 중복되는 과정은 동일 도면 부호로 표기하고, 중복되는 내용의 설명은 생략한다.
학습 과정(S100')은, 소정 기준에 따라 상기 복수의 지역을 대지역으로 구분하는 과정(S146)을 포함한다. 상기 과정(S146)을 지역구분단계(S140, S140', S146)라 지칭할 수 있다. 상기 어느 한 대지역A를 구분하는 과정(S146)은 상기 어느 한 대지역A의 대지역 라벨 디스크립터를 생성하는 과정(S156) 이전에 진행된다. 상기 과정(S146)은 지역 구분 과정(S130)의 진행이 시작된 후에 진행될 수 있다. 상기 복수의 지역 중 일부의 지역 들이 그룹핑되어 하나의 대지역으로 구분될 수 있다. 상기 과정(S146)은 상기 지역 구분 과정(S140, S140')을 수행하는 동안 신규의 지역이 구분되어 소정의 대지역 구분 조건이 만족되면 수행될 수 있다.
학습 과정(S100')은 복수의 상기 지역 라벨 디스크립터를 근거로 대지역 라벨 디스크립터를 생성하는 과정(S156)을 포함한다. 상기 과정(S156)은 제 2라벨생성단계(S156)라 지칭할 수 있다. 상기 과정(S156)에서, 상기 각 대지역 별로, 대지역 내 복수의 지역 라벨 디스크립터를 복수의 그룹으로 분류한다. 상기 과정(S156)에서, 대지역 내 복수의 지역에서 각각 생성된 지역 라벨 디스크립터 들을 복수의 그룹으로 분류한다. 상기 과정(S156)에서, 상기 각 지역별로, 후술할 제 2소정 분류규칙에 따라 대지역 내 복수의 지역 라벨 디스크립터를 복수의 그룹으로 분류할 수 있다. 상기 과정(S156)에서, 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 대표하는 대지역 라벨 디스크립터를 생성한다. 상기 과정(S156)에서, 후술할 제 2소정 라벨규칙에 따라 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 근거로 대지역 라벨 디스크립터를 생성할 수 있다.
상기 과정(S156)은, 상기 과정(S150)이 시작된 이후 신규의 대지역이 구분되면 진행될 수 있다. 상기 과정(S156)은 이동 로봇(100)이 모든 주행을 마친 후 최종적으로 진행될 수 있다.
도 11을 참고하여, 제 2실시예에 따른 인식 과정(S200') 중 상기 제 1실시예에 따른 인식 과정(S200)과 중복되는 과정은 동일 도면 부호로 표기하고, 중복되는 내용의 설명은 생략한다.
인식 과정(S200')은, 상기 과정(S220) 이후, 대지역 내 복수의 대지역 라벨 디스크립터(대지역 라벨 디스크립터 그룹)과 상기 복수의 인식 디스크립터(인식 디스크립터 그룹)를 비교하는 과정(S241)을 포함한다.
인식 과정(S200')은, 상기 비교 과정(S241) 이후, 복수의 대지역 중 미지의 현재 위치가 속한 어느 한 대지역을 선택하는 과정(S251)을 포함한다.
상기 비교 과정(S241)에서, 대지역 내 복수의 대지역 라벨 디스크립터의 종류 및 각 종류의 웨이트(w)를 근거로, 대지역 특징 분포를 생성한다.
상기 비교 과정(S241)에서 인식 영상 특징 분포를 각 대지역 별 대지역 특징 분포와 비교하여, 가장 유사도가 높은 대지역을 선택(S251)한다. 상기 비교 과정(S241)에서, 인식 영상 특징 분포는 각각의 대지역 특징 분포 별로 비교 가능한 데이터 형식으로 생성되어, 어느 한 대지역A의 특징 분포와 비교하는 인식 영상 특징 분포는 다른 한 대지역B의 특징 분포와 비교하는 인식 영상 특징 분포와 서로 다르다.
제 2실시예에서, 어느 한 대지역A의 특징 분포와 인식 영상 특징 분포를 비교하여 유사도를 산출하기 위하여, 인식 영상 내 복수의 인식 디스크립터를 각 인식 디스크립터에 대응하는 '상기 대지역A 내 대지역 라벨 디스크립터'로 치환하여 인식 영상 특징 분포를 생성한다. 또한, 다른 한 대지역B의 특징 분포와 인식 영상 특징 분포를 비교하여 유사도를 산출하기 위하여, 인식 영상 내 복수의 인식 디스크립터를 각 인식 디스크립터에 대응하는 '상기 대지역B 내 대지역 라벨 디스크립터'로 치환하여 인식 영상 특징 분포를 생성한다. 이 경우, '상기 대지역A 내 대지역 라벨 디스크립터'의 종류와 '상기 대지역B 내 대지역 라벨 디스크립터'의 종류는 서로 다르므로, 상기 '대지역A의 특징 분포와 비교 가능한 인식 영상 특징 분포'와 '대지역B의 특징 분포와 비교 가능한 인식 영상 특징 분포'는 서로 다르게 생성된다.
한 대지역(X1)의 대지역 특징 분포에 비교 가능한 인식 영상 특징 분포를 생성하기 위하여, 인식 영상 내 복수의 인식 디스크립터를 각각 대지역(X1) 내 복수의 대지역 라벨 디스크립터 중 거리가 가장 가까운 것으로 치환할 수 있다. 예를 들어, 인식 디스크립터
Figure pat00051
Figure pat00052
Figure pat00053
를 대지역(X1) 내 복수의 대지역 라벨 디스크립터들(
Figure pat00054
) 중 가장 거리가 가까운
Figure pat00055
로 각각 치환할 수 있다. 이 경우, 인식 디스크립터(
Figure pat00056
Figure pat00057
)에 대지역 라벨 디스크립터(
Figure pat00058
)가 대응(일의대응)한다. 나아가, 인식 디스크립터 및 인식 디스크립터에 가장 가까운 대지역 라벨 디스크립터 사이의 거리가 소정 값을 초과하는 경우에는, 해당 인식 디스크립터는 제외시키고 나머지 인식 디스크립터 들 만을 근거로 인식 영상 특징 분포를 생성하는 것도 가능하다.
어느 한 대지역(X1)의 대지역 특징 분포는, 각 대지역 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 웨이트(w)를 근거로 산출된 스코어(s2)를 도수(세로 축의 값)로 보는 대지역 특징 분포 히스토그램으로 표현될 수 있다.
어느 한 대지역(X1)의 대지역 특징 분포는, 각 대지역 라벨 디스크립터의 종류를 각 차원으로 보고, 각 종류 당 웨이트(w)를 근거로 산출된 스코어(s2)를 각 차원의 수치로 보는 대지역 특징 분포 벡터로 표현될 수 있다. 맵 상의 복수의 대지역(X1,X2,…Xj)에 대응(일대일대응)하는 복수의 대지역 특징 분포 벡터가 생성될 수 있다. (여기서, j는 자연수)
어느 한 대지역(X1)의 대지역 특징 분포에서, 어느 한 대지역 라벨 디스크립터(
Figure pat00059
)의 스코어(s2)는 아래의 수학식 6를 통해 산출될 수 있다.
Figure pat00060
여기서, s2은 해당 대지역 특징 분포에서 어느 한 대지역 라벨 디스크립터(
Figure pat00061
)의 스코어,
w2은 해당 대지역(X1) 내 상기 대지역 라벨 디스크립터(
Figure pat00062
)의 웨이트,
Figure pat00063
은 해당 대지역(X1) 내 모든 대지역 라벨 디스크립터의 웨이트의 총합,
Figure pat00064
는 해당 대지역(X1) 내 '총 영상의 개수'를 '상기 대지역 라벨 디스크립터(
Figure pat00065
)가 생성된 영상의 개수'로 나눈 값임.
어느 한 비교 대상 대지역(X1)에 비교 가능한 인식 영상 특징 분포는, 인식 영상 내 복수의 대지역 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 인식 웨이트(wh)를 근거로 산출된 인식 스코어(sh)를 도수(세로 축의 값)로 보는 인식 영상 특징 분포 히스토그램으로 표현될 수 있다.
어느 한 비교 대상 대지역(X1)에 비교 가능한 인식 영상 특징 분포는, 인식 영상 내 복수의 대지역 라벨 디스크립터의 종류를 각 차원으로 보고, 각 종류 당 인식 스코어(sh2)를 각 차원의 수치로 보는 인식 영상 특징 분포 벡터로 표현될 수 있다. 복수의 비교 대상 대지역(X1,X2,…Xj) 별 각각의 대지역 특징 분포에 비교 가능한 각각의 인식 영상 특징 분포 벡터가 생성될 수 있다. (여기서, j는 자연수)
예를 들어, 비교대상 대지역(X1)에 대한 인식 영상 특징 분포에서, 어느 한 대지역 라벨 디스크립터(
Figure pat00066
)의 인식 스코어(sh2)는 아래의 수학식 7을 통해 산출될 수 있다.
Figure pat00067
여기서, sh2은 해당 인식 영상 내 어느 한 대지역 라벨 디스크립터(
Figure pat00068
)의 인식 스코어,
wh2은 해당 인식 영상 내 상기 대지역 라벨 디스크립터(
Figure pat00069
)의 인식 웨이트,
Figure pat00070
은 해당 인식 영상 내 모든 대지역 라벨 디스크립터의 인식 웨이트의 총합,
Figure pat00071
는 해당 대지역(X1) 내 '총 영상의 개수'를 '상기 대지역 라벨 디스크립터(
Figure pat00072
)가 생성된 영상의 개수'로 나눈 값임. (상기 수학식 6에서의 정의와 같음)
상기 비교 과정(S241)에서, 각각의 대지역 별로 대지역 특징 분포와 인식 특징 분포를 서로 비교하여, 각각의 유사도를 산출한다. 예를 들어, 상기 유사도는 cosine similarity 를 이용한 다음의 수학식 8에 의해 산출될 수 있다.
Figure pat00073
여기서,
Figure pat00074
는 유사도인 확률이고,
Figure pat00075
는 어느 한 비교 대상 대지역의 대지역 특징 분포 벡터이고,
Figure pat00076
Figure pat00077
에 비교 가능한 인식 영상 특징 분포 벡터이고,
Figure pat00078
는 두 벡터의 절대값의 곱을 의미하고,
Figure pat00079
는 두 벡터의 내적을 의미함.
상기 지역 선택 과정(S251)에서, 각 대지역 별로 산출된 유사도 중 가장 큰 값이 산출된 대지역을 현재 위치가 속한 대지역으로 선택할 수 있다.
인식 과정(S200')은, 상기 과정(S251) 이후, 비교 대상 지역 별로 지역 내 복수의 지역 라벨 디스크립터(지역 라벨 디스크립터 그룹)와 상기 복수의 인식 디스크립터(인식 디스크립터 그룹)를 비교하는 과정(S246)을 포함한다. 상기 비교 과정(S246)에서 비교 대상 지역은, 상기 대지역 선택 과정(S251)에서 선택된 대지역 내 복수의 지역이다. 제 2실시예에서는 선택된 대지역 내 복수의 지역이 비교 대상이라는 점 및 상기 과정(S251) 이후에 진행되는 점을 제외하고, 제 2실시예의 상기 비교 과정(S246)은 제 1실시예의 상기 비교 과정(S240)과 동일하다.
인식 과정(S200')은, 상기 비교 과정(S246) 이후, 복수의 지역 중 미지의 현재 위치가 속한 어느 한 지역을 선택하는 과정(S256)을 포함한다. 상기 과정(S246) 이후에 진행되는 점을 제외하고, 제 2실시예의 상기 지역 선택 과정(S256)은 제 1실시예의 상기 지역 선택 과정(S250)과 동일하다.
도 12를 참고하여, 제 3실시예에 따른 학습 과정(S100'') 상기 제 1실시예에 따른 학습 과정(S100)과 중복되는 과정은 동일 도면 부호로 표기하고, 중복되는 내용의 설명은 생략한다.
학습 과정(S100'')은, 복수의 상기 지역 라벨 디스크립터를 근거로 전역 라벨 디스크립터를 생성하는 과정(S160)을 포함한다. 상기 과정(S160)은 제 2라벨생성단계(S160) 또는 전역라벨생성단계(S160)라 지칭할 수 있다. 상기 과정(S160)에서, 전역 내 복수의 지역 라벨 디스크립터를 복수의 그룹으로 분류한다. 상기 과정(S160)에서, 생성된 모든 지역 라벨 디스크립터 들을 복수의 그룹으로 분류한다. 상기 과정(S160)에서 복수의 지역에서 각각 생성된 지역 라벨 디스크립터 들을 복수의 그룹으로 분류한다. 상기 과정(S160)에서, 후술할 제 2소정 분류규칙에 따라 전역 내 복수의 지역 라벨 디스크립터 들을 복수의 그룹으로 분류한다. 상기 과정(S160)에서, 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 대표하는 전역 라벨 디스크립터를 생성한다. 상기 과정(S160)에서, 후술할 제 2소정 라벨규칙에 따라 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 근거로 전역 라벨 디스크립터를 생성한다.
상기 과정(S160)은, 상기 과정(S150) 이후 진행될 수 있다. 상기 과정(S160)은 이동 로봇(100)이 모든 주행을 마친 후 최종적으로 진행될 수 있다. 이동 로봇(100)이 모든 주행을 마친 상태에서는, 그 전까지의 주행 및 영상 획득(S110)에 따라 현재의 전역이 확정된다. 전역은 매 번의 주행마다 갱신될 수 있으므로, 상기 과정(S160)은 이동 로봇(100)이 모든 주행을 마친 상태에서 진행되는 것이 바람직하다.
도 13을 참고하여, 제 3실시예에 따른 인식 과정(S200'') 중 상기 제 1실시예에 따른 인식 과정(S200)과 중복되는 과정은 동일 도면 부호로 표기하고, 중복되는 내용의 설명은 생략한다.
인식 과정(S200'')은 비교대상선택단계(S231, S236)를 포함한다. 비교대상선택단계(S231, S236)는, 인식 디스크립터에 라벨 디스크립터를 매칭시키는 과정(S231) 및 비교 대상 노드의 선택 과정(S236)을 포함한다.
인식 과정(S200'')은, 상기 과정(S220) 이후, 상기 과정(S220)에서 생성된 인식 디스크립터 들에 각각 라벨 디스크립터를 매칭시키는 과정(S231)을 포함한다. 상기 과정(S231)에서, 상기 인식 디스크립터와 상기 라벨 디스크립터 간의 거리를 근거로 하여 인식 디스크립터 들에 각각 라벨 디스크립터를 매칭시킨다. 구체적으로, 상기 과정(S231)에서, 상기 인식 디스크립터 들에 각각 상기 인식 디스크립터로 부터 가장 가까운 거리의 라벨 디스크립터를 매칭시킨다.
상기 과정(S231)에서 상기 라벨 디스크립터는 전역 라벨 디스크립터인 것이 바람직하다. 상기 과정(S231)에서, 생성된 인식 디스크립터 들에 각각 전역 라벨 디스크립터를 매칭시킨다. 상기 과정(S231)에서, 상기 인식 디스크립터와 상기 전역 라벨 디스크립터 간의 거리를 근거로 하여 인식 디스크립터 들에 각각 전역 라벨 디스크립터를 매칭시킨다. 구체적으로, 상기 과정(S231)에서, 상기 인식 디스크립터 들에 각각 상기 인식 디스크립터로 부터 가장 가까운 거리의 전역 라벨 디스크립터를 매칭시킨다.
상기 과정(S231)에서, 상기 인식 디스크립터 들에 상기 라벨 디스크립터 들(전역 라벨 디스크립터 들)이 일의대응 하도록 상기 라벨 디스크립터(전역 라벨 디스크립터)를 매칭시킨다. 모든 인식 디스크립터의 각각에 오직 하나씩의 전역 라벨 디스크립터가 대응한다.
인식 과정(S200'')은, 상기 매칭 과정(S231) 이후, 상기 매칭된 라벨 디스크립터에 대응하는 하나 이상의 비교대상 노드를 선택하는 과정(S236)을 포함한다. 상기 매칭 과정(S231)에서 인식 디스크립터 들에 각각 전역 라벨 디스크립터를 매칭시킨 경우, 상기 과정(S236)에서 상기 매칭된 전역 라벨 디스크립터에 대응하는 하나 이상의 비교대상 노드를 선택한다.
상기 매칭 과정(S231)에서 매칭된 라벨 디스크립터 들(전역 라벨 디스크립터 들)에 디스크립터 들이 대응한다. 이러한 디스크립터 들(라벨 디스크립터에 대응하는 디스크립터 들)이 하나 이상의 영상에 대응한다. 상기 과정(S236)에서는, 이러한 영상(라벨 디스크립터에 대응하는 디스크립터 들에 대응하는 하나 이상의 영상)에 대응하는 하나 이상의 비교대상 노드를 선택한다.
구체적으로, 상기 매칭 과정(S231)에서 매칭된 라벨 디스크립터 들(전역 라벨 디스크립터 들)에 디스크립터 들이 일대다대응 한다. 이러한 디스크립터 들(라벨 디스크립터에 일대다대응 하는 디스크립터 들)이 하나 이상의 영상에 일의대응 한다. 상기 과정(S236)에서는, 이러한 영상(라벨 디스크립터에 일대다대응 하는 디스크립터 들에 일의대응 하는 하나 이상의 영상)에 일대일대응 하는 하나 이상의 비교대상 노드를 선택한다.
상기 비교대상 노드 선택 과정(S236)에서 선택되는 비교 대상 노드의 개수는 전역 내 노드의 총 개수 보다 적어지므로, 이 후의 비교 과정(S266)에 소요되는 시간이 짧아지는 효과가 있다.
인식 과정(S200'')은, 상기 비교대상 노드 선택 과정(S236) 이후, 비교 대상 노드 별로 복수의 전역 라벨 디스크립터(전역 라벨 디스크립터 그룹)과 상기 복수의 인식 디스크립터(인식 디스크립터 그룹)를 비교하는 과정(S266)을 포함한다. 상기 비교 과정(S266)에서, 비교 대상 노드 별로 비교 대상 노드에 대응하는 영상에 대하여, 영상 내 복수의 전역 라벨 디스크립터(전역 라벨 디스크립터 그룹)와 상기 복수의 인식 디스크립터(인식 디스크립터 그룹)을 비교한다. 인식 과정(S200'')은, 상기 비교 과정(S266) 이후, 비교대상 노드 들 중에 현재 위치로 추정되는 노드를 선택하는 과정(S270)을 포함한다.
상기 비교 과정(S266)에서, 비교 대상 노드에 대응하는 영상 내 복수의 전역 라벨 디스크립터의 종류 및 각 종류의 웨이트(w)를 근거로, 비교 대상 노드에 대응하는 영상 특징 분포를 생성한다. 이 경우, 비교 대상 노드에 대응하는 영상 내 복수의 전역 라벨 디스크립터는, 상기 매칭 과정(S231)에 따라 복수의 인식 디스크립터에 대응하는 전역 라벨 디스크립터 들 중 적어도 하나를 포함한다. 그렇지 않다면, 해당 영상에 대응하는 노드가 비교대상으로 선택될 수 없기 때문이다.
상기 비교 과정(S266)에서 인식 영상 특징 분포를 각 비교 대상 노드 별 영상 특징 분포와 비교하여, 가장 유사도가 높은 노드를 선택(S270)한다. 상기 비교 과정(S266)에서, 복수의 비교 대상 노드에 각각 대응(일대일대응)하는 복수의 영상 특징 분포는 모두 같은 종류의 라벨 디스크립터를 근거로 생성되므로, 인식 영상 특징 분포는 한 가지 형식으로 생성되어도 각각의 영상 특징 분포와 비교 가능하다. 예를 들어, 어느 한 영상A의 특징 분포와 비교하는 인식 영상 특징 분포는 다른 한 영상B의 특징 분포와 비교하는 인식 영상 특징 분포와 서로 다를 필요가 없다. 이를 통해, 다수의 인식 영상 특징 분포를 생성할 필요가 없어, 인식 영상 특징 분포를 생성하는데 소요되는 시간이 단축되는 효과가 있다.
제 3실시예에서, 인식 영상 내 복수의 인식 디스크립터를 각 인식 디스크립터에 대응하는 전역 라벨 디스크립터'로 치환하여 인식 영상 특징 분포를 생성한다. 또한, 어느 한 영상A의 특징 분포는 영상A 내 전역 라벨 디스크립터를 근거로 생성되고, 다른 한 영상B의 특징 분포는 영상B 내 전역 라벨 디스크립터를 근거로 생성된다. 인식 영상 특징 분포, 영상A의 특징 분포, 및 영상B의 특징 분포는 모두 전역 라벨 디스크립터를 근거로 생성되므로, 인식 영상 특징 분포와 각 영상 특징 분포를 비교하여 각 비교대상 노드 별로 유사도를 산출할 수 있다.
도 28을 참고하여, 인식 영상 내 복수의 인식 디스크립터를 각각 복수의 전역 라벨 디스크립터 중 거리가 가장 가까운 것으로 치환할 수 있다. 예를 들어, 인식 디스크립터
Figure pat00080
Figure pat00081
Figure pat00082
를 전역(X) 내 복수의 전역 라벨 디스크립터들(
Figure pat00083
) 중 가장 거리가 가까운
Figure pat00084
로 각각 치환할 수 있다. 이 경우, 인식 디스크립터(
Figure pat00085
Figure pat00086
)에 전역 라벨 디스크립터(
Figure pat00087
)가 대응(일의대응)한다. 나아가, 인식 디스크립터 및 인식 디스크립터에 가장 가까운 전역 라벨 디스크립터 사이의 거리가 소정 값을 초과하는 경우에는, 해당 인식 디스크립터는 제외시키고 나머지 인식 디스크립터 들 만을 근거로 인식 영상 특징 분포를 생성하는 것도 가능하다.
도 28을 참고하여, 어느 한 비교 대상 노드의 영상 특징 분포는, 각 전역 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 웨이트(w)를 근거로 산출된 스코어(s3)를 도수(세로 축의 값)로 보는 영상 특징 분포 히스토그램으로 표현될 수 있다.
어느 한 비교 대상 노드의 영상 특징 분포는, 각 전역 라벨 디스크립터의 종류를 각 차원으로 보고, 각 종류 당 웨이트(w)를 근거로 산출된 스코어(s3)를 각 차원의 수치로 보는 영상 특징 분포 벡터로 표현될 수 있다. 복수의 비교대상 노드(예를 들어, N1,N14,N15,N38,N45,N62,N63,N64)에 대응(일대일대응)하는 복수의 영상 특징 분포 벡터가 생성될 수 있다.
어느 한 영상(I1)에 대응하는 비교대상 노드의 영상 특징 분포에서, 어느 한 전역 라벨 디스크립터(
Figure pat00088
)의 스코어(s3)는 아래의 수학식 9를 통해 산출될 수 있다.
Figure pat00089
여기서, s3은 해당 영상 특징 분포에서 어느 한 전역 라벨 디스크립터(
Figure pat00090
)의 스코어,
w3은 해당 영상(I1) 내 상기 전역 라벨 디스크립터(
Figure pat00091
)의 웨이트,
Figure pat00092
은 해당 영상(I1) 내 모든 전역 라벨 디스크립터의 웨이트의 총합,
Figure pat00093
는 전역(X) 내 '총 영상의 개수'를 '상기 전역 라벨 디스크립터(
Figure pat00094
)가 생성된 영상의 개수'로 나눈 값임.
도 28을 참고하여, 영상 특징 분포에 비교 가능한 인식 영상 특징 분포는, 인식 영상 내 복수의 전역 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 인식 웨이트(wh)를 근거로 산출된 인식 스코어(sh)를 도수(세로 축의 값)로 보는 인식 영상 특징 분포 히스토그램으로 표현될 수 있다.
영상 특징 분포에 비교 가능한 인식 영상 특징 분포는, 인식 영상 내 복수의 전역 라벨 디스크립터의 종류를 각 차원으로 보고, 각 종류 당 인식 스코어(sh2)를 각 차원의 수치로 보는 인식 영상 특징 분포 벡터로 표현될 수 있다. 영상 특징 분포에 비교 가능한 인식 영상 특징 분포 벡터가 생성될 수 있다.
예를 들어, 인식 영상 특징 분포에서, 어느 한 전역 라벨 디스크립터(
Figure pat00095
)의 인식 스코어(sh3)는 아래의 수학식 10을 통해 산출될 수 있다.
Figure pat00096
여기서, sh3은 해당 인식 영상 내 어느 한 전역 라벨 디스크립터(
Figure pat00097
)의 인식 스코어,
wh2은 해당 인식 영상 내 상기 전역 라벨 디스크립터(
Figure pat00098
)의 인식 웨이트,
Figure pat00099
은 해당 인식 영상 내 모든 전역 라벨 디스크립터의 인식 웨이트의 총합,
Figure pat00100
는 전역(X) 내 '총 영상의 개수'를 '상기 전역 라벨 디스크립터(
Figure pat00101
)가 생성된 영상의 개수'로 나눈 값임. (상기 수학식 9에서의 정의와 같음)
도 28을 참고하여, 상기 비교 과정(S266)에서, 각각의 비교 대상 노드 별로 영상 특징 분포와 인식 특징 분포를 서로 비교하여, 각각의 유사도를 산출한다. 예를 들어, 상기 유사도는 cosine similarity 를 이용한 다음의 수학식 11에 의해 산출될 수 있다.
Figure pat00102
여기서,
Figure pat00103
는 유사도인 확률이고,
Figure pat00104
는 어느 한 비교 대상 노드의 영상 특징 분포 벡터이고,
Figure pat00105
Figure pat00106
에 비교 가능한 인식 영상 특징 분포 벡터이고,
Figure pat00107
는 두 벡터의 절대값의 곱을 의미하고,
Figure pat00108
는 두 벡터의 내적을 의미함.
인식 과정(S200)은, 하나 이상의 비교대상 노드 중에 현재 위치로 추정되는 노드를 선택하는 과정(S270)을 포함한다. 상기 과정(S266) 및 상기 과정(S270)을 최종노드선택단계(S266, S270)라 지칭할 수 있다. 최종노드선택단계(S266, S270)에서, 각 비교대상 노드 별로 노드 정보와 상기 현재 위치에서 획득된 영상 정보를 비교하여, 상기 현재 위치로 추정되는 노드를 선택한다.
상기 노드 선택 과정(S270)에서, 각 비교 대상 노드 별로 산출된 유사도 중 가장 큰 값이 산출된 노드를 현재 위치에 대응(일의대응)하는 노드로 선택할 수 있다.
상기 수학식 3, 수학식 4, 수학식 6, 수학식 7, 수학식 9 및 수학식 10에서, 상기 IDF1, IDF2 또는 IDF3의 값에 의해 희소성이 있는 특징점을 근거로 생성된 라벨 디스크립터에 더 큰 스코어(s)를 부여하여, 더 높은 신뢰도를 가지고 지역, 대지역 또는 노드를 선택(S250, S251, S256, S270)할 수 있다.
상기 수학식 3, 수학식 6 및 수학식 9에서, 비교 대상인 특징 분포(지역 특징 분포, 대지역 특징 분포 또는 영상 특징 분포) 내 어느 하나의 라벨 디스크립터의 웨이트(w1,w2,w3)가 클수록 더 큰 스코어(s1,s2,s3)가 산출되게 하여, 비교 대상인 특징 분포 내 웨이트가 큰 라벨 디스크립터가 위치 인식의 주요 단서가 되게 한다.
상기 수학식 4, 수학식 7 및 수학식 10에서, 인식 영상 특징 분포 내 어느 하나의 라벨 디스크립터의 인식 웨이트(wh1,wh2,wh3)가 클수록 더 큰 인식 스코어(sh1,sh2,sh3)가 산출되게 하여, 인식 영상 특징 분포 내 웨이트가 큰 라벨 디스크립터가 위치 인식의 주요 단서가 되게 한다.
한편, 지역의 구분 없이 이동 로봇(100)이 맵을 학습하고 현재 위치를 인식하는 실시예도 가능하다. 도 12 및 13을 참고하여, 제 3실시예의 변형 예로서, 지역의 구분 과정(S140, S140') 없는 이동 로봇(100)의 학습 과정 및 인식 과정을 설명하면 다음과 같다.
상기 제 3실시예의 변형 예에 따른 학습 과정은, 도 12의 순서도에서 상기 과정(S140, S140') 및 상기 과정(S150)을 제외시킨 과정 들로 진행된다. 제 3실시예의 변형 예에 따른 학습 과정은, 지역 라벨 디스크립터의 생성 없이 복수의 디스크립터를 근거로 전역 라벨 디스크립터를 생성하는 과정(S160)을 포함한다. 상기 과정(S160)은 라벨생성단계(S160)라 지칭할 수 있다. 상기 과정(S160)에서, 모든 디스크립터를 복수의 그룹으로 분류한다. 상기 과정(S160)에서, 전역 내 디스크립터 들을 복수의 그룹으로 분류한다. 상기 과정(S160)에서, 후술할 소정 분류규칙에 따라 전역 내 복수의 지역 라벨 디스크립터 들을 복수의 그룹으로 분류한다. 상기 과정(S160)에서, 같은 그룹으로 분류된 디스크립터 들을 대표하는 전역 라벨 디스크립터를 생성한다. 상기 과정(S160)에서, 후술할 소정 라벨규칙에 따라 같은 그룹으로 분류된 디스크립터 들을 근거로 전역 라벨 디스크립터를 생성한다. 상기 과정(S160)은, 상기 디스크립터 생성 과정(S120) 이후 진행될 수 있다. 상기 과정(S160)은 이동 로봇(100)이 모든 주행을 마친 후 최종적으로 진행될 수 있다. 이동 로봇(100)이 모든 주행을 마친 상태에서는, 그 전까지의 주행 및 영상 획득(S110)에 따라 현재의 전역이 확정된다. 전역은 매 번의 주행마다 갱신될 수 있으므로, 상기 과정(S160)은 이동 로봇(100)이 모든 주행을 마친 상태에서 진행되는 것이 바람직하다.
상기 제 3실시예의 변형 예에 따른 인식 과정은 도 13은 순서도와 같은 과정 들로 진행되고, 상기 제 3실시예에 따른 인식 과정(S200'')과 동일하다.
도 14를 참고하여, 상기 주행 및 영상 획득 과정(S110) 및 상기 디스크립터 생성 과정(S120)을 보다 자세히 설명하면 다음과 같다.
상기 주행 및 영상 획득 과정(S110)에서, 이동 로봇(100)이 주행하는 중에 영상획득부(120)는 각 지점(P1,P2,P3)에서 영상을 획득한다. 영상은 이동 로봇(100)의 상측을 향해 촬영될 수 있다. 영상은 천장을 촬영한 것일 수 있다. 도 14에 도시된 영상은 지점(P3)에 대응하는 영상이다. 이동 로봇(100)은 지점(P3)에 대응하는 노드(N3)을 생성할 수 있고, 노드(N3)에 대응하는 좌표 정보(D186)는 이동 로봇(100)이 측정한 주행 변위를 근거로 생성될 수 있다. 도 14에 도시된 영상은 생성된 노드(N3)에 대응하는 영상이다.
도 14에 도시된 영상에는, 천장에 위치하는 조명들, 경계(edge), 코너(corner), 얼룩(blob), 굴곡(ridge) 등에 의한 여러 가지 특징점 들이 확인된다. 이동 로봇(100)은 영상으로부터 특징점을 추출한다. 컴퓨터 비전(Computer Vision) 기술 분야에서 영상으로부터 특징점을 추출하는 다양한 방법(Feature Detection)이 잘 알려져 있다. 이들 특징점의 추출에 적합한 여러 특징검출기(feature detector)들이 알려져 있다. 예를 들어, Canny, Sobel, Harris&Stephens/Plessey, SUSAN, Shi&Tomasi, Level curve curvature, FAST, Laplacian of Gaussian, Difference of Gaussians, Determinant of Hessian, MSER, PCBR, Grey-level blobs 검출기 등이 있다.
도 14를 참고하여, 디스크립터 생성 과정(S120)에서, 획득된 복수의 영상에서 추출된 복수의 특징점(f1,f2,f3,..,fm)을 근거로 디스크립터(
Figure pat00109
)를 생성한다.(여기서, m은 자연수) 복수의 특징점(f1,f2,f3,..,fm)에 복수의 디스크립터(
Figure pat00110
)는 일대일대응 한다.
도 14에서,
Figure pat00111
은 n차원 벡터를 의미한다.
Figure pat00112
의 중괄호 { } 안의 f1(1), f1(2), f1(3),..,f1(n)은
Figure pat00113
을 이루는 각 차원의 수치를 의미한다. 나머지
Figure pat00114
에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
특징 검출을 위해 SIFT(Scale Invariant Feature Transform) 기법을 이용하여, 복수의 특징점(f1,f2,f3,..,fm)에 대응하는 복수의 디스크립터(
Figure pat00115
)를 생성할 수 있다.
예를 들면, SIFT기법을 적용하여, 영상에서 식별이 용이한 특징점(f1,f2,f3,f4,f5,f6,f7)을 선택한 후, 각 특징점(f1,f2,f3,f4,f5,f6,f7) 주변의 일정한 구역에 속한 픽셀들의 밝기 구배(gradient)의 분포 특성(밝기 변화의 방향 및 변화의 급격한 정도)을 근거로 n차원 벡터인 디스크립터를 생성할 수 있다. 여기서, 특징점의 각 밝기 변화의 방향을 각 차원으로 보고, 각 밝기 변화의 방향에 대한 변화의 급격한 정도를 각 차원에 대한 수치로 하는 n차원 벡터(디스크립터)를 생성할 수 있다. SIFT 기법은 촬영 대상의 스케일(scale), 회전, 밝기변화에 대해서 불변하는 특징을 검출할 수 있어, 같은 영역을 이동 로봇(100)의 자세를 달리하며 촬영하더라도 불변하는(즉, 회전 불변한(Rotation-invariant)) 특징을 검출할 수 있다. 물론, 이에 한정되지 않고 다른 다양한 다른 기법(예를 들어, HOG: Histogram of Oriented Gradient, Haar feature, Fems, LBP:Local Binary Pattern, MCT:Modified Census Transform)들이 적용하는 것도 가능하다.
도 15 내지 17을 참고하여, 상기 노드 생성 과정(S130)을 보다 자세히 설명하면 다음과 같다. 이동 로봇(100)의 맵은 노드 정보(D180)를 근거로 생성된다. 노드 정보(D180)는 이동 로봇(100)에 데이터로 저장될 수 있다.
도 15를 참고하여, 상기 학습 과정은 원점 노드(O)를 설정하는 과정(S131)을 포함한다. 원점 노드(O)는 맵 상의 기준 점이다. 노드 좌표 정보(D186)는 원점 노드(O)에 주행 변위를 더하여 생성될 수 있다. 노드 좌표 정보(D186)가 갱신되는 경우에도 원점 노드(O)는 변경되지 않는다.
상기 학습 과정은, 원점 노드(O)를 설정하는 과정(S131) 이후, 이동 로봇(100)의 주행 중 노드(N)를 생성하는 과정(S133)를 포함한다. 상기 과정(S133)에서, 이동 로봇(100)은 노드 정보(D180)를 생성한다.
상기 학습 과정은, 노드(N) 사이의 루프 변위(LC) 측정 여부를 판단하는 과정(S135)를 포함한다. 상기 판단 과정(S135)에서, 루프 변위(LC)가 측정되면 노드(N)의 좌표 정보(D186)를 갱신하는 과정(S137)를 진행하고, 루프 변위(LC)가 측정되지 않으면 이동 로봇(100)의 맵 학습 종료여부를 판단하는 과정(S139)를 진행한다. 맵 학습 종료여부 판단과정(S139)에서, 맵 학습이 종료되지 않으면 다시 주행 중 노드 정보를 생성하는 과정(S133)을 진행할 수 있다. 도 15의 순서도는 일 실시예를 제시한 것이고, 주행 중 노드 정보 생성 과정(S133) 및 노드 간 루프 변위(LC) 측정여부 판단 과정(S135)의 선후 관계는 서로 바뀔 수 있고, 동시에 진행될 수도 있다.
도 16을 참고하여, 노드 정보(D180)는, 복수의 노드 정보(D180)들 중에 어느 노드에 대응하는 노드 정보(D180)인지 식별이 가능케 해주는 노드 고유 인덱스(D181)를 포함할 수 있다.
또한, 노드 정보(D180)는 해당 노드(N)에 대응하는 영상 정보(D183)를 포함한다. 대응하는 영상 정보(D183)는, 해당 노드(N)에 대응하는 주행 구역 내 지점에서 영상획득부(120)를 통해 획득한 영상이다.
또한, 노드 정보(D180)는 해당 노드(N)에서 주변 환경과의 거리 정보(D184)를 포함할 수 있다. 주변 환경과의 거리 정보(D184)는, 해당 노드(N)에 대응하는 지점에서 장애물 감지센서(131) 등이 측정한 거리 데이터일 수 있다.
또한, 노드 정보(D180)는 노드 좌표 정보(D186)를 포함한다. 노드(N) 좌표 정보(D186)는 원점 노드(O) 및 주행 변위를 근거로 생성될 수 있다.
또한, 노드 정보(D180)는 노드 갱신 시각 정보(D188)를 포함할 수 있다. 노드 갱신 시각 정보(D188)는 노드 정보(D180)가 생성 또는 갱신되는 시점에 대한 데이터이다. 예를 들어, 이동 로봇(100)이 기존의 노드 정보(D180)와 노드 고유 인덱스(D181)가 같은 노드 정보(D180)를 외부로부터 수신 받은 경우, 노드 갱신 시각 정보(D188)를 근거로 노드 정보(D180)의 갱신 진행 여부를 판단할 수도 있다. 노드 갱신 시각 정보(D188)는 최신의 노드 정보(D180)로의 갱신 진행 여부를 판단할 수 있게 해준다.
노드 정보(D180)가 생성되는 시점을 기준으로 노드 갱신 시각 정보(D188)가 생성된다. 이때, 생성되는 노드(N2)의 노드 고유 인덱스(D181)가 생성된다. 또한, 생성되는 노드(N2)에 대응하는 영상 정보(D183)가 해당 노드(N2)에 매칭된다. 또한, 생성되는 노드(N2)의 주변 환경과의 거리 정보(D184)가 해당 노드(N2)에 매칭될 수 있다.
한편, 노드 정보(D180)은 인접 노드와의 측정 변위 정보(D165)를 근거로 갱신될 수 있다. 인접 노드와의 측정 변위 정보(D165)는 상기 주행 변위에 대한 데이터를 포함할 수 있다. 인접 노드와의 측정 변위 정보(D165)는 후술할 루프 변위(LC)에 대한 데이터를 포함할 수 있다. 인접 노드와의 측정 변위 정보(D165)가 제어부(140)에 입력되면, 기 저장된 노드 정보(D180)가 생성 또는 갱신될 수 있다.
노드 정보(D180)의 갱신은 노드 좌표 정보 및 노드 갱신 시각 정보(D188)의 갱신일 수 있다. 노드 정보(D180)의 갱신은 대응하는 영상 정보(D183)의 갱신일 수 있다.
도 17을 참고하여, 원점 노드(O)가 설정된 상태에서 주행 변위(C1)가 측정되어 노드(N1)의 정보(D180)가 생성된다. 이후 측정된 주행 변위(C2)의 시점이 되는 노드(N1)의 좌표 정보(D186)에 상기 주행 변위(C2)를 더하여, 상기 주행 변위(C2)의 종점이 되는 노드(N2)의 좌표 정보(D186)를 생성할 수 있다. 노드(N2)의 정보(D180)가 생성된 상태에서 주행 변위(C3)가 측정되어 노드(N3)의 정보(D180)가 생성된다. 이와 같이 순차적으로 측정되는 주행 변위 들(C1,C2,C3,…,C16)을 근거로 순차적으로 노드 들(N1,N2,N3,…,N16)의 정보(D180)가 생성된다.
어느 하나의 주행 변위(C15)의 시점이 되는 노드(C15)를 해당 주행 변위(C15)의 종점이 되는 노드(16)의 '기초 노드'라고 정의할 때, 루프 변위(Loop Constraint, LC)는 어느 한 노드(N15) 및 상기 어느 한 노드(N15)의 상기 '기초 노드(N14)가 아닌' 다른 인접한 노드(N5) 사이의 변위가 측정된 값을 의미한다.
일 예로, 어느 한 노드(N15)에 대응하는 획득영상 정보(D183)와 다른 인접한 노드(N5)에 대응하는 획득영상 정보(D183)가 서로 비교되어 두 노드(N15,N5) 사이의 루프 변위(LC)가 측정될 수 있다. 다른 예로, 어느 한 노드(N15)의 주변 환경과의 거리 정보(D184)와 다른 인접한 노드(N5)의 주변 환경과의 거리 정보(D184)가 서로 비교되어 두 노드(N15,N5) 사이의 루프 변위(LC)가 측정될 수 있다. 도 19에는, 노드 N5와 노드 N15 사이에서 측정된 루프 변위(LC1), 및 노드 N4와 노드 N16 사이에서 측정된 루프 변위(LC2)가 예시적으로 도시되어 있다.
상기 주행 변위를 근거로 생성된 어느 한 노드(N5)의 정보(D180)는 노드 좌표 정보(D186) 및 해당 노드(N5)에 대응하는 영상 정보(D183)를 포함한다. 노드(N5)에 인접하는 다른 노드(N15)가 있을 때, 노드(N15)에 대응하는 영상 정보(D183)를 노드(N5)에 대응하는 영상 정보(D183)와 비교하면 두 노드(N5,N15) 사이의 루프 변위(LC1)가 측정된다. '루프 변위(LC1)'와 '기 저장된 두 노드(N5,N15)의 좌표 정보(D186)에 따라 산출되는 변위'가 서로 다를 경우, 노드 좌표 정보(D186)에 오차가 있는 것으로 보고, 두 노드(N5,N15)의 좌표 정보(D186)를 갱신할 수 있다. 이 경우, 두 노드(N5,N15)와 연결된 다른 노드 들(N6,N7,N8,N9,N10,N11,N12,N13,N14)의 좌표 정보(D186)도 갱신될 수 있다. 또한, 한번 갱신된 노드 좌표 정보(D186)도 계속해서 상기 과정을 거쳐 거듭 갱신될 수 있다.
보다 구체적으로 설명하면 다음과 같다. 루프 변위(LC)가 측정된 두 노드(N)를 각각 제 1루프 노드 및 제 2루프 노드라고 정의한다. 기 저장된 제 1루프 노드의 노드 좌표 정보(D186) 및 제 2루프 노드의 노드 좌표 정보(D186)에 의해 산출되는 '산출 변위(
Figure pat00116
)'(좌표값의 차에 의해 산출됨)가 루프 변위(LC)(
Figure pat00117
)와 차이(
Figure pat00118
1-
Figure pat00119
)가 발생할 수 있다. 상기 차이가 발생하면, 상기 차이를 오차로 보고 노드 좌표 정보(D186)를 갱신할 수 있는데, 루프 변위(LC)가 상기 산출 변위보다 더 정확한 값이라는 가정하에 노드 좌표 정보(D186)를 갱신한다.
노드 좌표 정보(D186)를 갱신하는 경우, 상기 제 1루프 노드 및 제 2루프 노드의 노드 좌표 정보(D186)만 갱신할 수도 있으나, 상기 오차의 발생은 주행 변위들의 오차가 누적되어 발생된 것이므로 상기 오차를 분산시켜 다른 노드들의 노드 좌표 정보(D186)도 갱신하도록 설정할 수 있다. 예를 들어, 상기 제 1루프 노드와 제 2루프 노드 사이에 상기 주행 변위에 의해 생성된 모든 노드들에, 상기 오차 값을 분산시켜 노드 좌표 정보(D186)를 갱신할 수 있다. 도 17를 참고하여, 루프 변위(LC1)가 측정되고 상기 오차가 산출된 경우, 제 1루프 노드(N15)와 제 2루프 노드(N5)와 사이의 노드 들(N6 내지 N14)에 상기 오차를 분산시켜, 노드 들(N5 내지 N15)의 노드 좌표 정보(D186)가 모두 조금씩 갱신될 수 있다. 물론, 이러한 오차 분산을 확대시켜, 이외의 노드 들(N1 내지 N4)의 노드 좌표 정보(D186)를 같이 갱신할 수도 있음은 물론이다.
도 18 및 19를 참고하여, 지역 구분 과정(S140, S140')에서 소정의 지역 구분 조건 또는 소정의 대지역 구분 조건을 자세히 설명하면 다음과 같다.
도 18을 참고하여, 일 실시예에 따른 지역 구분 과정(S140)에서, 소정의 지역 구분 조건은 노드의 개수를 근거로 설정된다. 상기 일 실시예에 따른 지역 구분 조건은, '연속적으로 생성된 신규 노드의 개수가 a개에 도달 하는 조건'(제 1조건)을 포함한다. 일 실시예에 따른 지역 구분 조건이 만족되면, 추가로 생성된 신규 노드 a개가 하나의 지역으로 그룹핑되어 구분된다. 여기서, a는 고정된 자연수 값으로 기 설정 될 수도 있고, 소정 기준에 따라 변경되는 자연수 값으로 기 설정될 수도 있다.
예를 들어, 상기 제 1조건에서 a=30으로 기 설정 될 수 있다. 연속적으로 생성된 신규 노드의 개수가 30개에 도달하면 지역 구분 조건이 만족된다. 지역 구분 조건이 만족되면, 추가로 생성된 신규 노드 30개가 하나의 지역으로 그룹핑되어 구분된다. 구체적으로, 노드 들(N1 내지 N30)이 하나의 지역(A1)으로 그룹핑되어 구분되고, 노드 들(N31 내지 N60)이 하나의 지역(A2)으로 그룹핑되어 구분되며, 노드 들(N61 내지 N90)이 하나의 지역(A1)으로 그룹핑되어 구분된다.
상기 일 실시예에 따른 지역 구분 조건은, '주행 종료 시에 제 1조건에 따라 지역으로 그룹핑되지 않는 신규로 생성된 노드가 존재하는 조건'(제 2조건)을 더 포함할 수 있다. 상기 제 1조건 또는 상기 제 2조건이 만족하면, 상기 일 실시예에 따른 지역 구분 조건이 만족된다.
예를 들어, 이동 로봇(100)이 순차적으로 노드(N1)부터 노드(N90)까지 생성하면 3개의 지역(A1,A2,A3)을 구분할 수 있는 상기 제 1조건이 만족된다. 이후, 이동 로봇(100)이 순차적으로 노드(N91)부터 노드(N99)까지 생성하고 추가적으로 상기 제 1조건이 만족되지 않은 상태에서 주행을 종료하면, 상기 제 2조건이 만족하여 신규로 생성된 노드 들(N91 내지 N99)이 하나의 지역(A4)으로 그룹핑되어 구분된다.
도면에 도시되진 않으나, 만약 이동 로봇(100)의 주행시 신규의 노드를 생성하다가 이미 맵핑된 구역을 관통하기 시작하면 추가로 노드를 생성하지 않게 되고, 이동 로봇(100)이 이미 맵핑된 구역의 관통을 종료하면 추가로 노드를 생성하게 된다. 이 경우, 이미 맵핑된 구역을 관통하기 전에 신규로 생성된 노드 들(제 1노드 그룹)과 이미 맵핑된 구역을 관통한 후에 신규로 생성된 노드 들(제 2노드 그룹) 사이에는, 맵 상의 연속성이 없어지게 된다. 상기 일 실시예에 따른 지역 구분 조건은, 상기 제 1조건 또는 제 2조건에 따라 '상기 제 1노드 그룹 중 적어도 하나의 노드'와 '상기 제 2노드 그룹 중 적어도 하나의 노드'가 같은 지역으로 그룹핑되어 구분될 수 있더라도, 상기 제 1노드 그룹과 상기 제 2노드 그룹이 서로 다른 지역으로 그룹핑되게 하는 예외 조건을 포함할 수 있다.
도 19를 참고하여, 다른 실시예에 따른 지역 구분 과정(S140')에서, 소정의 지역 구분 조건은 주행 구역의 구획 형상을 근거로 설정된다. 상기 다른 실시예에 따른 지역 구분 조건은, 각 실 등이 구획하는 실제 구역에 대응하는 맵 상의 영역을 지역으로 구분하는 조건이다. 이동 로봇(100)은 주행 구역 내 각 실의 벽(20)과 개폐 가능한 문(21) 들을 인식하여, 상기 다른 실시예에 따른 지역 구분 과정(S140')이 진행할 수 있다. 상기 다른 실시예에 따른 지역 구분 과정(S140’)은, 전역(X) 내의 각 실을 근거로 노드 들을 그룹핑하여 지역으로 구분할 수 있다. 도 19에서는, 맵 상의 각 지역 들(A1',A2',A3',A4',A5')의 구분 근거인 실제 주행 구역의 구획 형상의 일례를 도시한다.
도시되지는 않았으나, 또 다른 실시예1에 따른 지역 구분 과정에서, 소정의 지역 구분 조건은 구획 영역의 넓이를 기준으로 설정될 수 있다. 또 다른 실시예1에서, 이동 로봇(100)은 주행 구역을 각각 소정 기준에 따른 넓이를 가진 구획 영역들로 구분하고, 각 구획 영역에 속한 노드들을 그룹핑하여 지역으로 구분할 수 있다. 예를 들어, 거의 동일한 크기의 사각 영역들로 주행 구역을 구분하고, 사각 영역이 아닌 나머지 영역들도 다른 영역과 거의 동일한 크기의 영역들로 구분할 수 있다.
도시되지는 않았으나, 또 다른 실시예2에 따른 지역 구분 과정에서, 소정의 지역 구분 조건은 각 노드에 대응하는 영상 내 디스크립터를 근거로 설정될 수 있다. 또 다른 실시예2에서, 각 노드들에 대응하는 영상들 간의 소정 기준에 따른 유사도를 근거로, 지역이 구분될 수 있다. 예를 들어, 제 1노드에 대응하는 제 1영상 내 디스크립터들 및 제 2노드에 대응하는 제 2영상 내 디스크립터들을 근거로, 소정치 이상의 유사도가 있으면 제 1노드와 제 2노드를 같은 지역으로 그룹핑할 수 있다.
도 20에는, 전역(X)과, 상기 소정의 지역 구분 조건에 따라 구분된 복수의 지역(A1 내지 A5)과, 복수의 노드(N1 내지 N30)의 관계가 예시적으로 도시된다. 도 20에는, 복수의 노드에 일대일대응 하는 복수의 영상이 도시된다. 복수의 노드(예를 들어, N1 내지 N30)이 그룹핑되어 지역(예들 들어, A1)으로 구분된다. 맵 상의 모든 지역(예를 들어, A1 내지 A5)을 합하여 전역(X)이라 지칭할 수 있다. 맵 상의 모든 노드 들을 합하여 전역(X)이라 지칭할 수 있다.
한편, 도면에 도시되진 않으나, 소정의 대지역 구분 조건을 설명하면 다음과 같다. 일 실시예에 따른 대지역 구분 조건은 지역의 개수를 근거로 설정된다. 상기 일 실시예에 따른 대지역 구분 조건은, '구분된 신규 지역의 개수가 b개에 도달 하는 조건'(제 1대지역 조건)을 포함한다. 일 실시예에 따른 대지역 구분 조건이 만족되면, 추가로 구분된 신규 지역 b개가 하나의 대지역으로 그룹핑되어 구분된다. 여기서, b는 고정된 자연수 값으로 기 설정 될 수도 있고, 소정 기준에 따라 변경되는 자연수 값으로 기 설정될 수도 있다.
예를 들어, 상기 제 1대지역 조건에서 b=5으로 기 설정 될 수 있다. 새롭게 구분된 신규 지역의 개수가 5개에 도달하면 대지역 구분 조건이 만족된다. 대지역 구분 조건이 만족되면, 추가로 구분된 신규 지역 5개가 하나의 지역으로 구분된다. 구체적으로, 지역 들(A1 내지 A5)가 하나의 대지역(X1)으로 그룹핑되어 구분된다.
상기 일 실시예에 따른 대지역 구분 조건은, '주행 종료 시에 제 1대지역 조건에 따라 대지역으로 그룹핑되지 않는 신규로 구분된 지역이 존재하는 조건'(제 2대지역 조건)을 더 포함할 수 있다. 상기 제 1대지역 조건 또는 상기 제 2대지역 조건이 만족하면, 상기 일 실시예에 따른 대지역 구분 조건이 만족된다.
예를 들어, 이동 로봇(100)이 지역 들(A1 내지 A15)까지 생성하면 3개의 대지역(X1,X2,X3)을 구분할 수 있는 상기 제 1대지역 조건이 만족된다. 이후, 이동 로봇(100)이 추가로 지역 들(A16,A17)을 구분하고 추가적으로 상기 제 1대지역 조건이 만족되지 않은 상태에서 주행을 종료하면, 상기 제 2대지역 조건이 만족하여 신규로 구분된 지역 들(A16,A17)이 하나의 대지역(X4)으로 그룹핑되어 구분된다.
또한, 이동 로봇(100)이 맵 상의 연속성이 없는 '지역 들'(제 1지역 그룹)과 '다른 지역 들'(제 2지역 그룹)을 신규로 구분하는 상황이 발생할 수 있다. 상기 일 실시예에 따른 대지역 구분 조건은, 상기 제 1대지역 조건 또는 제 2대지역 조건에 따라 '상기 제 1지역 그룹 중 적어도 하나의 지역'과 '상기 제 2지역 그룹 중 적어도 하나의 지역'이 같은 대지역으로 그룹핑되어 구분될 수 있더라도, 상기 제 1지역 그룹과 상기 제 2지역 그룹이 서로 다른 대지역으로 그룹핑되게 하는 대지역 예외 조건을 포함할 수 있다.
다른 실시예에 따른 대지역 구분 조건은, 이동 로봇의 주행 능력상 서로 분리되는지 여부를 근거로 설정될 수 있다. 이동 로봇(100)의 주행 능력상 분리된 구역이란, 어느 한 구역에서 다른 구역으로 이동 로봇(100)이 스스로 이동할 수 없는 정도의 분리됨을 의미한다. 예를 들면, 서로 동선상 완전히 분리된 두 개의 실내공간은 각각 두 개의 대지역으로 구분될 수 있다. 예를 들어, 같은 실내 공간이라 하더라도, 상기 대지역은 전역(X) 내의 각 층을 근거로 구분될 수 있다.
복수의 지역(예를 들어, A1 내지 A5)이 그룹핑되어 대지역(X1)으로 구분될 수 있다. 맵 상의 모든 대지역 들을 합하여 전역(X)이라 지칭할 수 있다.
상기 예시에 제한될 필요없이, 그 밖에도 알려진 다양한 방식에 의해서 지역 또는 대지역이 구분될 수 있다.
도 21 내지 24를 참고하여, 상기 라벨 디스크립터 생성 과정(S150,S156,S160)을 보다 자세히 설명한다. 구체적으로, 제 3실시예에 따른 지역 라벨 디스크립터 생성 과정(S150)과 전역 라벨 디스크립터 생성 과정(S160)을 기준으로 설명하나, 이는 제 2실시예에 따른 대지역 라벨 디스크립터 생성 과정(S156)에도 자명한 범위에서 변형 적용 가능하다.
라벨 디스크립터 생성 과정(S150,S156,S160)에서, 상기 소정 분류규칙은, 복수의 디스크립터를 디스크립터 들간의 거리를 기준으로 나누어 상대적으로 근접한 거리의 디스크립터 들 끼지 동일 그룹이 되게 하는 규칙을 포함할 수 있다. 여기서, 상대적으로 근접한 거리란, 상기 분류규칙에 따라 나누어진 어느 한 그룹G1 내의 디스크립터 들 사이의 사이의 평균적인 거리가 서로 다른 그룹G1,G2 내에 각각 속한 디스크립터 들 사이의 평균적인 거리보다 작은 것을 의미한다. 상기 분류규칙은 후술하는 제 1소정 분류규칙 및/또는 제 2소정 분류규칙을 포함할 수 있다.
라벨 디스크립터 생성 과정(S150,S156,S160)에서, 상기 소정 라벨규칙은, 상기 분류규칙에 따라 같은 그룹으로 분류된 디스크립터 들을 근거로 산출된 대표값을 라벨 디스크립터로 하는 규칙을 포함할 수 있다. 일 실시예에서, 상기 대표값은 같은 그룹으로 분류된 디스크립터 들의 평균값이다. 다른 실시예에서, 상기 대표값은 같은 그룹으로 분류된 디스크립터 들의 중간값일 수 있다. 또 다른 실시예에서, 상기 대표값은, '상기 평균값 또는 상기 중간값'에 소정 기준에 따라 '보정값'을 가감한 값일 수 있다. 상기 라벨규칙은 후술하는 제 1소정 라벨규칙 및/또는 제 2소정 라벨규칙을 포함할 수 있다.
도 21을 참고하여, 상기 제 1소정 분류규칙은, 지역(A1) 내 복수의 디스크립터를 디스크립터 들간의 거리를 기준으로 나누어 상대적으로 근접한 거리의 디스크립터 들 끼지 동일 그룹(A1G1,A1G2,A1G3,…,A1Gl)이 되게 하는 규칙을 포함할 수 있다.(여기서, l은 자연수)
도 21을 참고하여, 상기 제 1소정 라벨규칙은, 상기 제 1소정 분류규칙에 따라 같은 그룹(A1G1)으로 분류된 디스크립터 들(
Figure pat00120
)을 근거로 산출된 대표값을 지역 라벨 디스크립터(
Figure pat00121
)로 하는 규칙을 포함할 수 있다.
도 22를 참고하여, 상기 제 2소정 분류규칙은, 전역(X) 내 복수의 지역 라벨 디스크립터를 지역 라벨 디스크립터 들간의 거리를 기준으로 나누어 상대적으로 근접한 거리의 지역 라벨 디스크립터 들 끼지 동일 그룹(XG1,XG2,XG3,…,XGk)이 되게 하는 규칙을 포함할 수 있다.(여기서, k는 자연수)
도 22를 참고하여, 상기 제 2소정 라벨규칙은, 상기 제 2소정 분류규칙에 따라 같은 그룹(XG1)으로 분류된 지역 라벨 디스크립터 들(웨이트 3의
Figure pat00122
, 웨이트 10의
Figure pat00123
, 웨이트 2의
Figure pat00124
)을 근거로 산출된 대표값을 전역 라벨 디스크립터(
Figure pat00125
)로 하는 규칙을 포함한다.
도 21에서, A1G1, A1G2, A1G3, …, A1Gl은 지역 A1 내 복수의 디스크립터를 제 1소정 분류규칙에 따라 나눈 각 그룹을 도시한 것이다. 대괄호 [ ] 안에는 같은 그룹으로 분류된 적어도 하나의 디스크립터를 도시한 것이다. 예를 들어, 어느 하나의 그룹 A1G1으로 분류된 디스크립터들은
Figure pat00126
이다. 나머지 A1G2, A1G3, …, A1Gl에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
도 23에는, 일 실시예에 따른 제 1소정 분류규칙에 따라 지역 내 복수의 디스크립터를 복수의 그룹으로 나누는 과정(S150)이 도시된다. 도 23에서, 어느 하나의 점(dot)에서 아래로 두 갈래로 뻗어나가는 라인(line)을 도시하고, 각 라인의 하단에 각각 점(dot)을 도시하는 방식으로, 하측으로 뻗어나가는 트리 구조(tree structure)가 도시된다. 상기 과정(S150)의 트리 구조에서 어느 한 점이 하측으로 두 개의 점으로 나누어지는 도식은, '복수의 디스크립터가 2개의 그룹으로 나누어지는 과정'(디바이딩 과정, dividing process)을 표현한 것이다. 상기 과정(S150)의 트리 구조에서 하측 종단을 이루는 점 들(A1G1 내지 A1G14, A2G1 내지 A2G17, A3G1 내지 A3G24)은, 복수의 디스크립터가 제 1소정 분류규칙에 따라 최종적으로 나누어진 그룹 들을 표현한 것이다.
일 실시예에 따른 제 1소정 분류규칙에 따라 지역 내 복수의 디스크립터를 복수의 그룹으로 나누는 과정은, 상기 디바이딩 과정을 포함한다. 상기 디바이딩 과정에서, 나누어질 대상이 되는 복수의 디스크립터를 '헤드 그룹'(head group)이라 정의하고, 두 갈래로 나누어진 2개의 그룹을 각각 '가지 그룹'(branch group)이라 정의한다. 어느 하나의 디바이딩 과정에서 생성된 2개의 상기 가지 그룹은, 다음의 디바이딩 과정에서 각각 상기 헤드 그룹이 될 수 있다. 본 실시예에서는 1회의 상기 디바이딩 과정을 거쳐 하나의 헤드 그룹이 2개의 가지 그룹으로 나누어지는 것으로 설명하나, 1회의 상기 디바이딩 과정을 거쳐 3개 이상의 가지 그룹으로 나누어지는 것도 가능하다.
상기 디바이딩 과정은, 헤드 그룹 내의 복수의 디스크립터 사이의 거리에 근거하여, 헤드 그룹을 k1개의 가지 그룹으로 나누어 준다.(여기서, k1는 2이상의 자연수) 이하 1회의 디바이딩 과정을 구체적으로 설명한다. 상기 디바이딩 과정은, 헤드 그룹 내의 복수의 디스크립터 중 임의로 k1개의 디스크립터를 선택하고, 헤드 그룹 내의 선택되지 않은 나머지 디스크립터 들은 선택된 k1개의 디스크립터 중 거리 상 가장 가까운 디스크립터와 같이 그룹핑되어, k1개의 '제 1차 임시 그룹'을 생성하는 제 1차 임시 과정을 포함한다. 상기 디바이딩 과정은, 상기 제 1차 임시 과정 이후, 각각의 제 1차 임시 그룹 내 디스크립터 들의 제 1차 평균값을 산출하고, 헤드 그룹 내 모든 디스크립터 들이 k1개의 제 1차 평균값 중 거리상 가장 가까운 값에 매칭된다고 가정할 때, 같은 제 1차 평균값에 매칭된 디스크립터 들 끼리 그룹핑되어 k1개의 '제 2차 임시 그룹'을 생성하는 제 2차 임시 과정을 포함할 수 있다. 상기 디바이딩 과정은, 제 1 내지 m차 임시 과정을 포함할 수 있다.(여기서, m은 2이상의 자연수) 상기 디바이딩 과정은, 상기 제 m-1차 임시 과정 이후, 각각의 제 m-1차 임시 그룹 내 디스크립터 들의 제 m-1차 평균값을 산출하고, 헤드 그룹 내 모든 디스크립터 들이 산출된 k1개의 제 m-1차 평균값 중 거리상 가장 가까운 값에 매칭된다고 가정할 때, 같은 제 m-1차 평균값에 매칭된 디스크립터 들 끼리 그룹핑되어 k1개의 '제 2차 임시 그룹'을 생성하는 제 m차 임시 과정을 포함할 수 있다. 상기 임시 과정이 제 1차부터 제 m차까지 반복될수록, 디스크립터 들의 그룹핑이 한 가지 형태로 수렴하게 되고, 제 m차 임시 과정 이후 생성된 k1개의 제 m차 임시 그룹이 k1개의 가지 그룹이 된다.
상기 일 실시예에 따른 제 1소정 분류규칙은, 어느 한 지역 내 복수의 디스크립터에 대해서 상기 디바이딩 과정을 총 k2회 반복시키는 '기본 규칙'과, 어느 하나의 가지 그룹 내의 디스크립터의 개수가 k3개 이하일 경우 그 가지 그룹을 헤드 그룹으로 하는 디바이딩 과정을 더 이상 진행하지 않게 하는 '예외 규칙'을 포함한다.(여기서, k2 및 k3은 자연수) 일 예로, 제 1소정 분류규칙은 n=9인 기본 규칙과 m=1로 하는 예외 규칙을 포함할 수 있다. 기본 규칙에 따라, 어느 하나의 헤드 그룹에 대해 디바이딩 과정을 거쳐 2개의 가지 그룹을 생성하고, 생성된 가지 그룹을 헤드 그룹으로 하여 디바이딩 과정을 반복적으로 진행할 수 있다. 가지 그룹 내의 디스크립터의 개수가 m개 이하인 경우, 기본 규칙과 무관하게 예외 규칙에 따라 그 가지 그룹을 헤드 그룹으로 하는 디바이딩 과정을 더 이상 진행하지 않는다.
도 23에서는, 상기 일 실시예에 따른 제 1소정 분류규칙에 따라, 지역 A1 내 복수의 디스크립터는 복수의 그룹 A1G1 내지 A1G14로 나누어지고, 지역 A2 내 복수의 디스크립터는 복수의 그룹 A2G1 내지 A2G17로 나누어지고, 지역 A3 내 복수의 디스크립터는 복수의 그룹 A3G1 내지 A3G24로 나누어진다.
도면에 도시되진 않으나, 다른 실시예에 따른 제 1소정 분류규칙은, 두 디스크립터 사이의 거리가 소정 값(ST1) 이하인 디스크립터끼리 같은 그룹으로 분류하는 규칙을 포함한다.
도 21에서,
Figure pat00127
은 제 1소정 라벨규칙에 따라 생성된 지역 라벨 디스크립터를 도시한 것이다. 제 1소정 분류규칙에 따라 같은 그룹으로 분류된 복수의 디스크립터를 근거로, 제 1소정 라벨규칙에 따라 지역 라벨 디스크립터를 생성한다. 예를 들어, 어느 하나의 그룹 A1G1 내의 복수의 디스크립터
Figure pat00128
을 근거로, 제 1소정 라벨규칙에 따라 웨이트 3의 지역 라벨 디스크립터
Figure pat00129
을 생성한다. 다른 측면에서 보면, 상기 복수의 디스크립터
Figure pat00130
이 제 1소정 라벨규칙에 따라 각각 지역 라벨 디스크립터
Figure pat00131
로 변환된 것으로 볼 수도 있다. 나머지 A1G2, A1G3, …, A1Gl 그룹 내의 디스크립터 들을 근거로, 제 1소정 라벨규칙에 따라 각각의 웨이트를 가진 각각의 지역 라벨 디스크립터가 생성된다.
도 24에는, 일 실시예에 따른 제 1소정 라벨규칙에 따라 복수의 디스크립터를 근거로 웨이트 M1의 지역 라벨 디스크립터(
Figure pat00132
)를 생성하는 과정(S150)이 도시된다.(여기서, M1은 자연수) 상기 제 1소정 라벨규칙은, 같은 그룹으로 분류된 적어도 하나의 디스크립터의 평균값을 지역 라벨 디스크립터로 하는 규칙을 포함할 수 있다.
도 22에서, XG1, XG2, XG3, …, XGk은 전역(X) 내의 모든 지역 라벨 디스크립터를 제 2소정 분류규칙에 따라 나눈 각 그룹을 도시한 것이다. 대괄호 '[ ]' 안에는 같은 그룹으로 분류된 적어도 하나의 지역 라벨 디스크립터를 도시한 것이다. 또한, 각 지역 라벨 디스크립터의 우측 소괄호 '( )' 안에는 각 지역 라벨 디스크립터의 웨이트(w)를 도시한 것이다. 예를 들어, 어느 하나의 그룹 XG1으로 분류된 지역 라벨 디스크립터들은 웨이트 3의
Figure pat00133
, 웨이트 10의
Figure pat00134
, 웨이트 2의
Figure pat00135
이다.
Figure pat00136
은 지역 A1의 지역 라벨 디스크립터 중 어느 하나를 나타내고,
Figure pat00137
은 지역 A2의 지역 라벨 디스크립터 중 어느 하나를 나타내고,
Figure pat00138
은 지역 A5의 지역 라벨 디스크립터 중 어느 하나를 나타낸다. 나머지 XG2, XG3, …, XGk에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
도 23에는, 일 실시예에 따른 제 2소정 분류규칙에 따라 전역(X) 내 모든 지역 라벨 디스크립터를 복수의 그룹으로 나누는 과정(S160)이 도시된다. 도 23에서, 점(dot)과 두 갈래로 뻗어나가는 라인(line)으로 도시된 트리 구조(tree structure)에 대한 설명은 상술한 바와 같다. 상기 과정(S160)의 트리 구조에서 어느 한 점이 하측으로 두 개의 점으로 나누어지는 도식은, '복수의 지역 라벨 디스크립터가 2개의 그룹으로 나누어지는 과정'(전역 디바이딩 과정, global dividing process)을 표현한 것이다. 상기 과정(S160)의 트리 구조에서 하측 종단을 이루는 점 들(XG1 내지 XG53)은, 복수의 지역 라벨 디스크립터가 제 2소정 분류규칙에 따라 최종적으로 나누어진 그룹 들을 표현한 것이다.
일 실시예에 따른 제 2소정 분류규칙에 따라 전역 내 복수의 지역 라벨 디스크립터를 복수의 그룹으로 나누는 과정은, 상기 전역 디바이딩 과정을 포함한다. 상기 전역 디바이딩 과정에서, 나누어질 대상이 되는 복수의 지역 라벨 디스크립터를 '전역 헤드 그룹'(global head group)이라 정의하고, 두 갈래로 나누어진 2개의 그룹을 각각 '전역 가지 그룹'(global branch group)이라 정의한다. 어느 하나의 전역 디바이딩 과정에서 생성된 2개의 상기 전역 가지 그룹은, 다음의 전역 디바이딩 과정에서 각각 상기 전역 헤드 그룹이 될 수 있다. 본 실시예에서는 1회의 상기 전역 디바이딩 과정을 거쳐 하나의 전역 헤드 그룹이 2개의 전역 가지 그룹으로 나누어지는 것으로 설명하나, 1회의 상기 전역 디바이딩 과정을 거쳐 3개 이상의 전역 가지 그룹으로 나누어지는 것도 가능하다.
상기 전역 디바이딩 과정은, 전역 헤드 그룹 내의 복수의 지역 라벨 디스크립터 사이의 거리에 근거하여, 전역 헤드 그룹을 g1개의 전역 가지 그룹으로 나누어 준다.(여기서, g1는 2이상의 자연수) 이하 1회의 전역 디바이딩 과정을 구체적으로 설명한다. 상기 전역 디바이딩 과정은, 전역 헤드 그룹 내의 복수의 지역 라벨 디스크립터 중 임의로 g1개의 지역 라벨 디스크립터를 선택하고, 전역 헤드 그룹 내의 선택되지 않은 나머지 지역 라벨 디스크립터 들은 선택된 g1개의 지역 라벨 디스크립터 중 거리 상 가장 가까운 지역 라벨 디스크립터와 같이 그룹핑되어, g1개의 '제 1차 전역 임시 그룹'이 생성되는 제 1차 전역 임시 과정을 포함한다. 상기 전역 디바이딩 과정은, 상기 제 1차 전역 임시 과정 이후, 각각의 제 1차 전역 임시 그룹 내 지역 라벨 디스크립터 들의 제 1차 평균값을 산출하고, 전역 헤드 그룹 내 모든 지역 라벨 디스크립터 들이 g1개의 제 1차 평균값 중 거리상 가장 가까운 값에 매칭된다고 가정할 때, 같은 제 1차 평균값에 매칭된 지역 라벨 디스크립터 들 끼리 그룹핑되어 g1개의 '제 2차 전역 임시 그룹'을 생성하는 제 2차 전역 임시 과정을 포함할 수 있다. 상기 전역 디바이딩 과정은, 제 1 내지 m차 전역 임시 과정을 포함할 수 있다.(여기서, m은 2이상의 자연수) 상기 전역 디바이딩 과정은, 상기 제 m-1차 전역 임시 과정 이후, 각각의 제 m-1차 전역 임시 그룹 내 지역 라벨 디스크립터 들의 제 m-1차 평균값을 산출하고, 전역 헤드 그룹 내 모든 지역 라벨 디스크립터 들이 산출된 g1개의 제 m-1차 평균값 중 거리상 가장 가까운 값에 매칭된다고 가정할 때, 같은 제 m-1차 평균값에 매칭된 디스크립터 들 끼리 그룹핑되어 g1개의 '제 2차 전역 임시 그룹'을 생성하는 제 m차 전역 임시 과정을 포함할 수 있다. 상기 전역 임시 과정이 제 1차부터 제 m차까지 반복될수록, 지역 라벨 디스크립터 들의 그룹핑이 한 가지 형태로 수렴하게 되고, 제 m차 전역 임시 과정 이후 생성된 g1개의 제 m차 전역 임시 그룹이 g1개의 전역 가지 그룹이 된다.
상기 일 실시예에 따른 제 2소정 분류규칙은, 어느 한 지역 내 복수의 지역 라벨 디스크립터에 대해서 상기 전역 디바이딩 과정을 총 g2회 반복시키는 '기본 규칙'과, 어느 하나의 전역 가지 그룹 내의 지역 라벨 디스크립터의 개수가 g3개 이하일 경우 그 전역 가지 그룹을 전역 헤드 그룹으로 하는 전역 디바이딩 과정을 더 이상 진행하지 않게 하는 '예외 규칙'을 포함한다.(여기서, g2 및 g3은 자연수) 일 예로, 제 2소정 분류규칙은 n=14인 기본 규칙과 m=1로 하는 예외 규칙을 포함할 수 있다. 기본 규칙에 따라, 어느 하나의 전역 헤드 그룹에 대해 전역 디바이딩 과정을 거쳐 2개의 전역 가지 그룹을 생성하고, 생성된 전역 가지 그룹을 전역 헤드 그룹으로 하여 전역 디바이딩 과정을 반복적으로 진행할 수 있다. 전역 가지 그룹 내의 지역 라벨 디스크립터의 개수가 m개 이하인 경우, 기본 규칙과 무관하게 예외 규칙에 따라 그 전역 가지 그룹을 전역 헤드 그룹으로 하는 전역 디바이딩 과정을 더 이상 진행하지 않는다.
도 23에서는, 상기 일 실시예에 따른 제 2소정 분류규칙에 따라, 전역 X 내 복수의 지역 라벨 디스크립터는 복수의 그룹 XG1 내지 XG53로 나누어진다.
도면에 도시되진 않으나, 다른 실시예에 따른 제 2소정 분류규칙은, 두 지역 라벨 디스크립터 사이의 거리가 소정 값(ST2) 이하인 지역 라벨 디스크립터끼리 같은 그룹으로 분류하는 규칙을 포함한다.
도 22에서,
Figure pat00139
은 제 2소정 라벨규칙에 따라 생성된 전역 라벨 디스크립터를 도시한 것이다.(여기서, k는 자연수) 제 2소정 분류규칙에 따라 같은 그룹으로 분류된 복수의 지역 라벨 디스크립터를 근거로, 제 2소정 라벨규칙에 따라 전역 라벨 디스크립터를 생성한다. 예를 들어, 어느 하나의 그룹 XG1 내의 복수의 지역 라벨 디스크립터(웨이트 3의
Figure pat00140
, 웨이트 10의
Figure pat00141
및 웨이트 2의
Figure pat00142
)를 근거로, 제 2소정 라벨규칙에 따라 웨이트 15의 전역 라벨 디스크립터
Figure pat00143
을 생성한다. 다른 측면에서 보면, 상기 복수의 지역 라벨 디스크립터(웨이트 3의
Figure pat00144
, 웨이트 10의
Figure pat00145
및 웨이트 2의
Figure pat00146
)가 제 2소정 라벨규칙에 따라 각각 전역 라벨 디스크립터
Figure pat00147
로 변환된 것으로 볼 수도 있다. 나머지 XG2, XG3, …, XGk그룹에 속해있는 디스크립터들의 변환도 이와 같은 방식이므로 설명을 생략한다.
도 24에는, 일 실시예에 따른 제 2소정 라벨규칙에 따라 복수의 지역 라벨 디스크립터(웨이트 M1의
Figure pat00148
, 웨이트 M2의
Figure pat00149
)를 근거로 웨이트 M1+M2의 전역 라벨 디스크립터(
Figure pat00150
)를 생성하는 과정(S160)이 도시된다.(여기서, M1 및 M2는 자연수) 상기 제 2소정 라벨규칙은, 같은 그룹으로 분류된 적어도 하나의 지역 라벨 디스크립터의 평균값을 지역 라벨 디스크립터로 하는 규칙을 포함할 수 있다. 이 경우, 평균값은 각 지역 라벨 디스크립터의 웨이트를 고려한 값으로서 다음의 수학식 12에 의해 산출될 수 있다.
Figure pat00151
여기서,
Figure pat00152
는 전역 라벨 디스크립터이고,
Figure pat00153
는 각각의 지역 라벨 디스크립터이고,
M1,M2,M3,…,Mx는
Figure pat00154
의 각각의 웨이트이고,
Figure pat00155
의 웨이트는
Figure pat00156
임.
또한, 학습초기단계(S110, S120, S130)의 수행 중 제 1라벨생성단계(S150, S151)가 시작될 수 있다. 구체적으로, 학습초기단계(S110, S120, S130)를 수행하는 동안, 상기 지역구분단계에서 적어도 하나의 지역(A1)이 구분되면 구분된 지역(A1)의 상기 지역 라벨 디스크립터를 생성하는 상기 제 1라벨생성단계(S150, S151)가 수행될 수 있다. 이를 통해, 주행을 모두 마친후 대지역 라벨 디스크립터 또는 전역 라벨 디스크립터까지 생성 완료되는 기간이 짧아져, 효율적으로 학습 과정(S100', S100'')을 수행할 수 있는 장점이 있다.
도 25를 참고하여, 인식 영상의 획득 과정(S210) 및 인식 디스크립터의 생성 과정(S220)을 보다 자세히 설명하면 다음과 같다.
위치 점핑 상황의 발생으로 인해서, 이동 로봇(100)의 현재 지점(Pu)이 미지(Unknown)의 상태가 된 경우에, 인식 영상의 획득 과정(S210)이 시작된다. 영상획득부(120)는 미지의 현재 지점(Pu)에서 인식 영상을 획득한다. 인식 영상은 이동 로봇(100)의 상측을 향해 촬영될 수 있다. 인식 영상은 천장을 촬영한 것일 수 있다. 도 25에 도시된 영상은 현재 지점(Pu)에 대응하는 인식 영상이다.
도 25를 참고하여, 인식 디스크립터 생성 과정(S220)에서, 인식 영상에서 추출된 복수의 인식 특징점(h1,h2,h3,..,h7)을 근거로 복수의 인식 디스크립터(
Figure pat00157
)를 생성한다. 인식 특징점(h1,h2,h3,..,h7)에 복수의 인식 디스크립터(
Figure pat00158
)는 일대일대응 한다.
도 25에서,
Figure pat00159
은 n차원 벡터를 의미한다.
Figure pat00160
의 중괄호 { } 안의 h1(1), h1(2), h1(3),..,h1(n)은
Figure pat00161
을 이루는 각 차원의 수치를 의미한다. 나머지
Figure pat00162
에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
특징 검출을 위해 상기 SIFT 기법을 이용하여, 복수의 인식 특징점(h1,h2,h3,..,h7)에 대응하는 복수의 인식 디스크립터(
Figure pat00163
)를 생성할 수 있다. 컴퓨터 비전 기술 분야에서 영상으로부터 특징을 검출하는 다양한 방법 및 이들 특징의 검출에 적합한 여러 특징검출기들에 대한 설명은 상기한 바와 같다.
도 26을 참고하여, 상기 매칭 과정(S231)을 보다 자세히 설명하면 다음과 같다. 상기 매칭 과정(S231)에서, 인식 영상 내 복수의 인식 디스크립터(
Figure pat00164
)에 각각 거리 상 가장 가까운 전역 라벨 디스크립터를 매칭시킨다. 도 25에서, 인식 디스크립터와 전역 라벨 디스크립터의 대응관계를 매칭 선으로 도시한다. 매칭 과정(S231)을 진행하면, 복수의 인식 디스크립터(
Figure pat00165
)에 복수의 전역 라벨 디스크립터(
Figure pat00166
)는 일의대응 한다.
예를 들어, 인식 디스크립터(
Figure pat00167
)에 거리상 가장 가까운 전역 라벨 디스크립터는
Figure pat00168
이고, 인식 디스크립터(
Figure pat00169
)에 전역 라벨 디스크립터(
Figure pat00170
)가 대응한다. 인식 디스크립터(
Figure pat00171
)에 거리상 가장 가까운 전역 라벨 디스크립터는
Figure pat00172
이고, 인식 디스크립터(
Figure pat00173
)에 전역 라벨 디스크립터(
Figure pat00174
)가 대응한다. 인식 디스크립터(
Figure pat00175
)에 거리상 가장 가까운 전역 라벨 디스크립터는
Figure pat00176
이고, 인식 디스크립터(
Figure pat00177
)에 전역 라벨 디스크립터(
Figure pat00178
)가 대응한다. 인식 디스크립터(
Figure pat00179
)에 거리상 가장 가까운 전역 라벨 디스크립터는
Figure pat00180
이고, 인식 디스크립터(
Figure pat00181
)에 전역 라벨 디스크립터(
Figure pat00182
)가 대응한다. 이 경우, 전역(X) 내 모든 전역 라벨 디스크립터(
Figure pat00183
) 중 복수의 인식 디스크립터(
Figure pat00184
)에 매칭된 전역 라벨 디스크립터는
Figure pat00185
이다. 도 26에는, 매칭된 전역 라벨 디스크립터(
Figure pat00186
)의 생성 근거가 된 그룹(XG1, XG3, XG5, XG32)에 표시가 되어 있다.
도 27을 참고하여, 비교대상 노드의 선택 과정(S236)을 보다 자세히 설명하면 다음과 같다. 상기 선택 과정(S236)에서, 매칭된 전역 라벨 디스크립터(
Figure pat00187
)에 대응하는 비교 대상 노드를 선택한다. 매칭된 복수의 전역 라벨 디스크립터(
Figure pat00188
)에 복수의 노드는 일대다대응 한다.
예를 들어, 매칭된 복수의 전역 라벨 디스크립터(
Figure pat00189
)에 대응하는 비교 대상 노드 들은 N1, N14, N15, N38, N62, N63, N64 이다. 선택되는 각각의 비교 대상 노드(N1, N14, N15, N38, N62, N63, N64) 내 복수의 전역 라벨 디스크립터는, 상기 매칭된 전역 라벨 디스크립터(
Figure pat00190
) 중 적어도 하나를 포함한다. 선택되지 않은 나머지 노드 내 복수의 전역 라벨 디스크립터는, 상기 매칭된 전역 라벨 디스크립터(
Figure pat00191
) 모두를 포함하지 않는다.
구체적으로, 매칭된 전역 라벨 디스크립터(
Figure pat00192
)의 생성 근거가 된 디스크립터 들을 선택하고, 선택된 디스크립터 들의 생성 근거가 된 영상 들을 선택하고, 선택된 영상 들에 대응하는 노드 들을 비교대상 노드로 한다.
예를 들어, 어느 한 디스크립터A가 소정 분류규칙(제 1소정 분류규칙)에 따라 그룹 A1G1으로 분류되고, 그룹 A1G1 내 디스크립터 들을 근거로 소정 라벨규칙(제 1소정 라벨규칙)에 따라 지역 라벨 디스크립터B가 생성되고, 그 후 지역 라벨 디스크립터B가 소정 분류규칙(제 2소정 분류규칙)에 따라 그룹 XG5로 분류되고, 그룹 XG5 내 지역 라벨 디스크립터 들을 근거로 소정 라벨규칙(제 2소정 라벨규칙)에 따라 전역 라벨 디스크립터C가 생성된다면, '디스크립터A는 전역 라벨 디스크립터 C의 생성 근거가 된다'고 표현한다. 또한, 영상D 내 복수의 디스크립터 중 디스크립터A가 있다면, '영상D는 디스크립터A의 생성 근거가 된다'고 표현한다. 나아가, '영상D는 전역 라벨 디스크립터C의 생성 근거가 된다'고 표현한다.
상기 선택 과정(S236)에서, 복수의 영상 들 중 상기 매칭된 전역 라벨 디스크립터(
Figure pat00193
)의 생성 근거가 된 영상 들을 선택하고, 모든 노드 들 중 상기 선택된 영상 들에 일대일대응 하는 비교대상 노드 들을 선택한다. 도 27에는, 선택된 비교 대상 노드 들 (N1, N14, N15, N38, N62, N63, N64)을 까만 점으로 표시한다.
도 28을 참고하여, 비교대상 노드 별 비교 과정(S266)의 일례를 설명하면 다음과 같다. 상기 비교 과정(S266)에서는, 상기 선택 과정(S236)에서 선택된 비교대상 노드 들(N1, N14, N15, N38, N62, N63, N64)에 대응하는 영상 들만 인식 영상과 비교를 한다. 비교 결과 가장 유사도가 높게 산출되는 영상에 대응하는 비교대상 노드를 최종 노드로 선택한다.
상기 비교 과정(S266)에서는, 상기 선택 과정(S236)에서 선택된 비교대상 노드 들(N1, N14, N15, N38, N62, N63, N64)에 대해서만 각 노드(N1, N14, N15, N38, N62, N63, N64)에 대응하는 영상 특징 분포(예들 들어, 영상 특징 분포 벡터)를 생성한다. 또한, 상기 비교 과정(S266)에서는, 상기 비교 대상 노드 들(N1, N14, N15, N38, N62, N63, N64)의 영상 특징 분포와 비교 가능한 인식 영상 특징 분포(예를 들어, 인식 영상 특징 분포 벡터)를 생성한다. 상기 비교 과정(S266)에서는, 비교 대상 노드(N1, N14, N15, N38, N62, N63, N64) 별로 영상 특징 분포와 인식 영상 특징 분포를 비교하여, 가장 높은 유사도를 가지는 하나의 노드를 최종 노드(현재 지점으로 추정되는 노드)로 선택한다. 이에 대한 구체적인 방법은, 상기한 수학식 9 내지 11에 대한 설명과 같다.
도 28에서, 좌측의 히스토그램은 상기 인식 영상 특징 분포 히스토그램의 일 예를 도시한 것이다. 인식 영상 특징 분포는 상기 매칭된 전역 라벨 디스크립터(
Figure pat00194
)를 근거로 생성된다. 매칭된 전역 라벨 디스크립터(
Figure pat00195
)의 인식 스코어(Sh)는 상기 수학식 10을 통해 산출할 수 있다.
도 28에서, 우측의 히스토그램 들은 비교 대상 노드 별 영상 특징 분포 히스토그램의 일례를 도시한 것이다. 상기 매칭된 전역 라벨 디스크립터(
Figure pat00196
)를 근거로 영상 특징 분포가 생성된다. 매칭된 전역 라벨 디스크립터(
Figure pat00197
)의 인식 스코어(Sh)는 상기 수학식 9를 통해 산출할 수 있다.
한편, 영상 내 복수의 전역 라벨 디스크립터에는, 상기 매칭된 전역 라벨 디스크립터 들(
Figure pat00198
) 외에도 다른 전역 라벨 디스크립터(예를 들어,
Figure pat00199
)가 있을 수 있다. 이러한 다른 전역 라벨 디스크립터(
Figure pat00200
)는 영상 특징 분포 히스토그램의 대표값이 될 필요가 없다. 다만, 이러한 다른 전역 라벨 디스크립터(
Figure pat00201
)의 웨이트는, 매칭된 전역 라벨 디스크립터(
Figure pat00202
))의 스코어(S)에 영향을 줄 수는 있다. (왜냐하면, 다른 전역 라벨 디스크립터(
Figure pat00203
)의 웨이트는 상기 수학식 9에서
Figure pat00204
의 값에 영향을 미치기 때문이다.)
도 29 내지 31을 참고하여, 제 4실시예에 따른 인식 과정(S300)을 설명하면 다음과 같다. 제 4실시예에 따른 인식 과정(S300)은, 상기 제 3실시예에 따른 인식 과정(S200'')에 보충적으로 진행되는 과정이다. 제 4실시예에 따른 인식 과정(S300)은 비교대상 만 달리하여, 상기 제 1실시예, 제 2실시예 및 제 3실시예의 변형 예에 적용할 수도 있다. 이하, p는 2이상의 자연수이고, m은 1 이상 p이하의 임의의 자연수이다.
인식 과정(S300)은, 인식초기단계를 포함한다. 상기 인식초기단계는, 제 m차인식 영상 획득 과정(S310) 및 제 m차 인식 디스크립터 그룹을 생성하는 과정(S20)을 포함한다.
도 29를 참고하여, 인식 과정(S300)은, 이동 로봇(100)이 지점 또는 촬영 각도를 변경하면서 제 1 내지 p차 인식 영상을 획득하는 과정(S310)을 포함한다. 인식 영상 획득 과정(S310)에서, 이동 로봇(100)은 소정 시간 간격을 두고 상기 제 1 내지 p차 인식 영상을 획득할 수 있다. 이 경우 인식 영상을 획득한 시간 순서대로 제 1차 영상, 제 2차 영상, 제 3차 영상, …, 제 p차 영상이라고 정의한다. 각 인식 영상들을 획득한 시점은 시간 순서대로 t1, t2, t3, …, tp로 정의한다. 즉, 제 1차 인식 영상은 시점 t1에 획득되고, 제 2차 인식 영상은 시점 t2에 획득되고, 제 p차 인식 영상은 시점 tp에 획득된 것을 의미한다. tm은 제 m차 인식 영상이 획득된 시점을 의미한다.
도 30에서, 이동 로봇(100)이 미지의 현재 구역에서 영상획득부(120)를 통해 tm시점에 획득된 제 m차 인식 영상을 도시한다. 상기 미지의 현재 구역에서 획득된 제 m차 영상으로부터 복수의 제 m차 인식 특징점(h1tm, h2tm, h3tm, h4tm, h5tm, h6tm, h7tm)을 추출한다. 제 1차 인식 특징점은 제 1차 영상에서 추출된 것이고, 제 2차 인식 특징점은 제 2차 영상에서 추출된 것이고, 제 p차 인식 특징점은 제 p차 인식 특징점에서 추출된 것을 의미한다. 같은 구역이라도 매 영상에서 확인되는 인식 특징점은 개수와 종류가 달라질 수 있고, 이를 구별하기 위해 제 m차 인식 특징점의 기호에 시점 tm을 추가로 표기한다.
도 30을 참고하여, 일 예로, 상기 인식 영상 획득 과정(S310)에서, 이동 로봇(100)이 이동하여 복수의 지점에서 각각 인식 영상을 획득할 수 있다. 인식 영상 획득 과정(S310)에서, 이동 로봇(100)이 위치하는 현재 지점(Put1, Put2, Put3,…,Putm)을 바꾸어가며 각 지점에서 각각 상기 제 1 내지 p차 인식 영상을 획득할 수 있다. 제 m차 인식 영상이 획득된 지점은, 제 m-1차 인식 영상이 획득된 지점과 다르고 제 m+1차 인식 영상이 획득될 지점과 다르도록 제어될 수 있다.
다른 예로, 상기 인식 영상 획득 과정(S310)에서, 이동 로봇(100)이 영상획득부(120)의 촬영 각도를 변경하면서 복수의 인식 영상을 획득할 수 있다.
이를 통해, 제 m차 영상은 m-1차 영상 및 m+1차 영상과 차이가 생기고, 제 m차 영상과 다른 더 다양한 영상으로부터 데이터를 추출하여 현재 구역을 추정하게 됨으로써, 추정의 신뢰도를 높일 수 있다.
어느 하나의 지점(Putm)에서 제 m차 인식 영상을 획득하는 과정(S310)은, 상술한 인식 영상 획득 과정(S210)과 실질적으로 동일하다.
도 29를 참고하여, 인식 과정(S300)은, 상기 제 1 내지 p차 인식 영상을 근거로 각각 제 1 내지 p차 인식 디스크립터 들(제 1 내지 p차 인식 디스크립터 그룹)을 생성하는 과정(S320)을 포함한다. 구체적으로, 상기 제 1 내지 p차 인식 영상으로부터 각각 제 1 내지 p차 인식 특징점 들을 추출하고, 제 1 내지 p차 인식 특징점 들에 대응하는 각각의 제 1 내지 p차 인식 디스크립터를 생성한다. 어느 하나의 제 m차 인식 영상을 근거로 제 m차 인식 디스크립터 들(제 m차 인식 디스크립터 그룹)을 생성하는 과정(S320)은, 상술한 인식 디스크립터 생성 과정(S220)과 동일하다.
제 1차 인식 디스크립터는 제 1차 영상을 근거로 생성된 것이고, 제 2차 인식 디스크립터는 제 2차 영상을 근거로 생성된 것이고, 제 p차 인식 디스크립터는 제 p차 영상을 근거로 산출된 것이다. 영상획득 과정(S310)에서 획득된 제 m차 영상을 근거로 제 m차 인식 디스크립터를 생성하는 과정을 제 m차 인식 디스크립터 생성 과정(S320)으로 정의할 수 있다.
도 30을 참고하여, 상기 과정(S320)에서, 제 m차 인식 특징점(h1tm, h2tm, h3tm, h4tm, h5tm, h6tm, h7tm)에 각각 대응하는 제 m차 인식 디스크립터(
Figure pat00205
)를 생성한다.
Figure pat00206
의 중괄호 { } 안의 h1tm(1), h1tm(2), h1tm(3),..,h1tm(n)은
Figure pat00207
을 이루는 각 차원의 수치를 의미한다.
Figure pat00208
에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
도 30에는, 제 1 내지 p차 인식 디스크립터의 생성 과정 중 어느 하나인 제 m차 인식 디스크립터의 생성 과정(S320)를 설명한 것이나, 이는 다른 차수의 인식 디스크립터 산출 과정에서도 적용될 수 있다.
도 29를 참고하여, 인식 과정(S300)은, 상기 제 1 내지 p차 인식 디스크립터 들에 각각 라벨 디스크립터(전역 라벨 디스크립터)를 매칭시키고, 상기 매칭된 라벨 디스크립터(전역 라벨 디스크립터)에 대응하는 하나 이상의 비교대상 노드를 선택하는 비교대상선택단계(미도시)를 포함한다. 제 4실시예의 비교대상선택단계에서 어느 하나의 제 m차 인식 디스크립터 들에 각각 전역 라벨 디스크립터를 매칭시키는 과정은, 상술한 매칭 과정(S231)과 실질적으로 동일하다. 제 4실시예의 비교대상선택단계에서 매칭된 전역 라벨 디스크립터에 대응하는 비교대상 노드를 선택하는 과정은, 상술한 비교대상 노드 선택 과정(S236)과 동일하다.
도 29를 참고하여, 인식 과정(S300)은 비교대상 노드 별 제 m차 유사도를 산출하는 과정(S381)을 포함한다. 인식 과정(S300)은 비교대상 노드 별 제 p차 유사도를 산출하는 과정(S381)을 포함한다. 인식 과정(S300)은 비교 대상 노드 별 제 1 내지 p차 유사도를 산출한다.
상기 과정(S381)에서, 제 m차 인식 영상 내 매칭된 전역 라벨 디스크립터를 근거로, 제 m차 인식 영상 특징 분포를 생성한다. 상기 과정(S381)에서, 비교대상 노드 별 제 m차 유사도를 산출한다. 비교대상 노드에 대응하는 영상 특징 분포와 이에 비교 가능한 인식 영상 특징 분포를 비교하여, 비교대상 노드 별 제 1 내지 p차 유사도를 산출한다. 여기서, 제 m차 유사도는, 제 m차 인식 영상 특징 분포와 영상 특징 분포의 비교를 근거로 하여 산출된 유사도를 의미한다.
어느 하나의 비교대상 노드와 비교하는 경우에 있어서, 상기 매칭된 전역 라벨 디스크립터의 종류, 스코어 및 인식 스코어를 근거로, 비교대상 노드에 대한 영상 특징 분포 및 제 m차 인식 영상 특징 분포를 생성할 수 있다. 이에 대해서는, 상기 제 3실시예의 과정(S266)에 대한 설명으로 이해 가능하다.
제 m차 유사도 산출 과정(S381)에서, 각각의 비교대상 노드에 대응하는 영상 특징 분포를 제 m차 인식 영상 특징 분포와 비교하여, 비교대상 노드 별 제 m차 유사도를 산출한다. 예를 들어, 어느 하나의 비교대상 노드의 영상 특징 분포 벡터와 제 m차 인식 영상 특징 분포 벡터의 유사도는, 아래의 수학식 13에의해 산출될 수 있다. (cosine similarity)
Figure pat00209
여기서,
Figure pat00210
는 비교대상 노드 Nj에 대한 제 m차 유사도이고,
Figure pat00211
는 비교대상 노드 Nj의 영상 특징 분포 벡터이고,
Figure pat00212
Figure pat00213
에 비교 가능한 제 m차 인식 영상 특징 분포 벡터이고,
Figure pat00214
는 두 벡터의 절대값의 곱을 의미하고,
Figure pat00215
는 두 벡터의 내적을 의미하고,
m 및 j는 임의의 자연수임.
아래의 표 1은, 상기 수학식 13을 통해 산출된 각 차수 별(T1,T2,…,Tm,…,Tp) 및 각 비교대상 노드 별(N1,N2,…,Nj,…,Nk) 유사도를 정리한 것이다. (여기서, p 및 k는 이상의 자연수)
구분 노드 N1 노드 N2 노드 Nj 노드 Nk
제 1차
Figure pat00216
Figure pat00217
...
Figure pat00218
...
Figure pat00219
제 2차
Figure pat00220
Figure pat00221
...
Figure pat00222
...
Figure pat00223
... ... ... ... ... ...
제 m차
Figure pat00224
Figure pat00225
...
Figure pat00226
...
Figure pat00227
... ... ... ... ... ...
제 p차
Figure pat00228
Figure pat00229
...
Figure pat00230
...
Figure pat00231
상기 표 1에서, 차수 별로 같은 차수의 유사도 들을 같은 행에 도시한 것이고, 비교대상 노드 별로 같은 노드의 유사도 들을 같은 열에 도시한 것이다. 여기서, p 및 k는 2이상의 자연수를 의미하고, m은 1이상 p이하의 임의의 자연수를 의미하고, j는 1이상 k이하의 임의의 자연수를 의미한다. 상기 표 1의 '…'은 생략된 부분을 의미한다. 비교대상 노드의 개수가 총 k개이고 제 p차 구역별 유사도 산출 과정까지 진행될 경우, 총 p*k 개의 유사도가 산출된다. 예를 들어, 제 m차 구역별 유사도는, 상기 표 1의 '제 m차'라고 표기된 행의 유사도 들을 의미한다.
도 29를 참고하여, 인식 과정(S300)은 비교대상 노드 별 제 m차 누적 유사도를 산출하는 과정(S385)을 포함한다. 인식 과정(S300)은 비교대상 노드 별 제 p차 누적 유사도를 산출하는 과정(S385)을 포함한다. 인식 과정(S300)은 비교 대상 노드 별 제 1 내지 p차 누적 유사도를 산출한다.
상기 과정(S385)에서, 소정 누적규칙에 따라 상기 비교대상 노드 별 유사도를 근거로 비교대상 노드 별 누적 유사도를 산출한다. 비교대상 노드 별 제 p차 유사도 까지 산출된 경우에, 누적 유사도 산출 과정(S385)에서 소정 누적규칙에 따라 비교대상 노드 별 제 1 내지 p차 누적 유사도를 산출한다. 제 m차 비교대상 노드 별 유사도 까지 산출된 경우에, 제 m차 누적 유사도 산출 과정(S385)에서 소정 누적규칙에 따라 비교대상 노드 별 제 m-1 누적 유사도와 비교대상 노드 별 상기 제 m차 유사도를 근거로, 비교대상 노드 별 제 m차 누적 유사도를 산출한다.
도 31을 참고하여, 상기 소정 누적규칙은, 비교대상 노드 별 제 1 내지 p차 유사도를 각각 같은 노드에 대한 유사도 들 끼리 모두 곱하는 연산 규칙을 포함할 수 있다. 비교대상 노드 별 누적 유사도는, 상기 소정 누적규칙에 따라 누적 유사도 산출 과정(S385)이 진행될 때까지 산출된 모든 차수의 유사도가 누적된 값이다.
비교대상 노드 별 제 m차 누적 유사도는, 비교대상 노드 별 제 1 내지 m차 유사도가 모두 곱해져 산출될 수 있다. 비교대상 노드 별 제 m차 누적 유사도는, 비교대상 노드 별 제 m-1차 누적 유사도와 제 m차 유사도가 각 비교대상 노드 별로 곱해져 산출될 수 있다.
상기 비교대상 노드 별 누적 유사도는 정규화(normalizing) 과정을 거쳐 산출될 수 있다. 예를 들어, 상기 정규화는, 비교대상 노드 별 제 m차 누적 유사도의 모든 합(각 비교대상 노드에 대한 각각의 제 m차 누적 유사도 들을 모두 합한 값을 의미함)이 1이 되도록 하는 과정이다.
예를 들어, 비교대상 노드 Nj에 대한 제 m차 누적 유사도를 구하기 위한 상기 소정 누적규칙은 아래의 수학식 14 및 15로 표현될 수 있다. 비교대상 노드로 N1, N2, N3,…, Nk 이 선택된 것으로 가정하고, j는 1이상 k이하의 임의의 자연수를 의미한다. m은 2이상의 자연수를 의미한다.
Figure pat00232
Figure pat00233
여기서,
Figure pat00234
는 비교대상 구역 Nj에 대한 정규화되지 않은 제 m차 누적 유사도이고,
Figure pat00235
는 비교대상 구역 Nj에 대한 제 m차 유사도로서, 상기 수학식 13를 통해 산출된 것이고,
m 및 j는 임의의 자연수임.
상기 수학식 14를 참고하여, 비교대상 노드 Nj에 대한 정규화되지 않은 제 m차 누적 유사도(
Figure pat00236
)는, 비교대상 노드 Nj에 대한 제 1 내지 m차 유사도를 모두 곱(
Figure pat00237
)해서 구할 수도 있고, 비교대상 노드 Nj에 대한 정규화되지 않은 제 m-1차 누적 유사도(
Figure pat00238
)에 비교대상 노드 Nj에 대한 제 m차 유사도(
Figure pat00239
)를 곱하여 구할 수도 있다.
Figure pat00240
여기서,
Figure pat00241
는 비교대상 노드 Nj에 대한 정규화된 제 m차 누적 유사도이고,
Figure pat00242
는 비교대상 노드 Nj에 대한 정규화되지 않은 제 m차 누적 유사도이고,
Figure pat00243
는 모든 비교대상 노드(N1 내지 Nk)의 정규화되지 않은 제 m차 누적 유사도를 합한 값이고,
Figure pat00244
는 비교대상 구역 Nj에 대한 제 m차 유사도로서, 상기 수학식 13를 통해 산출된 것이고,
m 및 j는 임의의 자연수임.
상기 수학식 15를 참고하여, 비교대상 노드 Nj에 대한 정규화된 제 m차 누적 유사도(
Figure pat00245
)는, 비교대상 노드 Nj에 대한 정규화되지 않은 제 m차 누적 유사도(
Figure pat00246
)를 모든 비교대상 노드(N1 내지 Nk)의 정규화되지 않은 제 m차 누적 유사도를 합한 값(
Figure pat00247
)으로 나누어주어 구할 수도 있다. 또한, 비교대상 노드 Nj에 대한 정규화된 제 m-1차 누적 유사도(
Figure pat00248
)에 비교대상 노드 Nj에 대한 제 m차 유사도(
Figure pat00249
)를 곱한 값을, 정규화된 제 m-1차 누적 유사도와 제 m차 유사도를 각 비교대상 노드 별로 곱한 뒤 모두 합한 값(
Figure pat00250
)으로 나누어주어 구할 수도 있다.
이하 '누적 유사도'는 정규화된 누적 유사도를 의미하는 것으로 하여 설명하나, 반드시 이에 한정될 필요는 없다.
제 1차 누적 유사도는 누적시켜 서로 곱할 복수의 유사도가 없으므로, 제 1차 유사도와 같은 의미로 쓰일 수 있다. 또는, 제 1차 누적 유사도는, 제 1차 유사도를 정규화(normalizing) 과정을 거쳐 산출시킨 값으로 정의할 수 있다.
도 31은, 비교대상 노드 별 누적 유사도가 차수가 증가함에 따라 변화하는 일 실시예를 보여주는 개념도이다. 도 31에는, 각 비교대상 노드(N1,N2,N3,…,Nx) 별로 유사도의 크기를 도수로 나타낸 히스토그램이 도시된다. 상기 소정 누적규칙에 따라, 비교대상 노드 별 제 1 내지 p차 누적 유사도가 순차적으로 산출될 수 있다.
상기 p값은, 상기 비교대상 노드 별 누적 유사도의 소정 조건 만족 여부에 근거하여 결정될 수 있다.(S387) 즉, 상기 소정 누적규칙을 적용하여 비교대상 노드 별 누적 유사도를 구하는 최종 차수(p)는 소정 조건의 만족여부에 따라 결정될 수 있다.
상기 인식 과정(S300)은, 제 m차 누적 유사도 산출 과정(S385) 이후, 상기 소정 조건 만족여부를 판단하는 과정(S387)를 포함한다. 비교대상 노드 별 제 m차 누적 유사도에 근거하여 상기 소정 조건이 만족된 경우, 이동 로봇(100)이 위치하는 것으로 추정되는 노드를 선택(S370)한다. 상기 소정 조건이 만족되지 않은 경우, 비교대상 노드 별 제 m+1차 누적 유사도를 산출하고, 그 후 상기 소정 조건의 만족여부를 다시 판단한다.
상기 인식 과정에서, 최신의 상기 비교대상 노드 별 누적 유사도에 근거하여 상기 소정 조건이 만족된 경우 이동 로봇(100)의 위치로 추정되는 노드를 선택하고, 상기 소정 조건이 만족되지 않는 경우 추가로 획득된 영상을 근거로 상기 유사도 산출 과정(S381) 및 누적 유사도 산출 과정(S385)를 추가로 진행한다. 상기 소정 조건이 만족되지 않은 경우, 인식 영상 획득 과정(S310) 및 인식 디스크립터 생성 과정(S320)이 다시 진행될 수 도 있고, 미리 획득하여 기 저장한 인식 영상으로부터 인식 디스크립터 들을 생성하는 과정이 다시 전행될 수도 있다. 그 후, 추가로 누적 유사도 생성 과정(S385)이 진행될 수 있다.
도 31를 참고하여, 상기 소정 조건은, 어느 한 구역의 누적 유사도가 소정 신뢰값(k1)을 초과하는 신뢰 조건을 포함할 수 있다.(여기서, k1은 상수) 상기 신뢰 조건은, 어느 한 비교대상 노드의 누적 유사도만 상기 신뢰값(k1)을 초과하고 나머지 비교대상 노드 들의 누적 유사도 들은 각각 상기 신뢰값(k1)을 넘지 못하는 조건으로 볼 수 있다. 도 31의 예시에서, 비교대상 노드 별 제 1 내지 p-1차 누적 유사도 히스토그램 중에서는 어느 한 구역의 누적 유사도만 신뢰값(k1)을 초과하지 못하다가, 비교대상 노드 별 제 p차 누적 유사도 히스토그램에서 노드 Nc의 제 p차 누적 유사도만 신뢰값(k1)을 넘은 것을 볼 수 있고, 이 경우 더 이상의 누적 유사도 산출을 할 필요 없이 노드 Nc를 현재 위치에 대응하는 노드로 선택할 수 있다.
도 31를 참고하여, 상기 소정 조건은, 상기 신뢰값(k1)을 초과하는 누적 유사도에 대응되는 노드 외의 나머지 노드들의 누적 유사도들이 소정 탈락값(k2) 미만이 되는 탈락 조건을 포함할 수 있다. 상기 탈락 조건은 상기 신뢰 조건과 동시에 달성되는 조건으로 설정하면, 보다 달성하기 어렵지만 더욱 신뢰도를 상승시킬 수 있는 상기 소정 조건이 설정될 수 있다. 상기 탈락값(k2)은 상기 신뢰값(k1)보다 작게 설정된다. 도 31의 예시에서, 제 1 내지 p-1차 비교대상 노드 별 누적 유사도 히스토그램 중에서는 상기 신뢰 조건 및 탈락 조건 중 적어도 어느 하나를 만족시키지 못하다가, 비교대상 노드 별 제 p차 누적 유사도 히스토그램에서 구역 Nc의 제 p차 누적 유사도만 신뢰값(k1)을 넘어 상기 신뢰 조건을 만족시키는 동시에, 나머지 노드들(Na,Nb,Nd내지Nx)의 제 p차 누적 유사도는 상기 탈락값(k2) 보다 작아 상기 탈락 조건도 만족되는 것을 볼 수 있다. 이 경우 더 이상의 누적 유사도 산출을 할 필요 없이 노드 Nc를 현재 위치에 대응하는 노드로 선택할 수 있다.
상기 소정 조건은, 이동 로봇(100)이 소정 거리(k3) 이상 이동하는 거리 조건을 포함할 수 있다. 예를 들어, 이동 로봇(100)은 이동을 하며 제 1 내지 m차 인식 영상을 획득할 수 있는데, 제 1차 인식 영상을 얻은 위치에서 제 m차 인식 영상을 얻은 위치까지 이동한 이동거리가 상기 거리(k3) 이상이 되면 상기 소정 조건이 만족된 것으로 보고, 비교대상 노드 별 제 m차 누적 유사도를 근거로 가장 높은 제 m차 누적 유사도가 산출된 비교대상 노드를, 현재 위치로 추정되는 노드로 선택할 수 있다. 상기 거리 조건은 상기 신뢰 조건 및 탈락 조건과 병렬적 조건('OR' 조건)으로 설정될 수 있다. 즉, 상기 거리 조건이 만족되면, 상기 신뢰 조건이나 상기 탈락 조건이 만족되지 않더라도, 상기 소정 조건이 만족된 것으로 볼 수 있다. 이동 거리가 지나치게 길어지면, 이동 로봇(100)이 현재구역을 벗어날 수 있어 추정의 신뢰도가 오히려 떨어질 수 있고, 현재 위치 추정을 위해 지나치게 많은 동작이 이루어지는 것을 막기 위한 것이다.
상기 소정 조건은, 제 m차 비교대상 노드 별 누적 유사도 까지 산출된 상태에서 상기 m값이 소정 횟수(k4)를 초과하는 횟수 조건을 포함할 수 있다. 즉, m값의 상한값을 설정하여, m값이 상기 소정 횟수(k4)를 초과하면 상기 소정 조건이 만족된 것으로 보고, 비교대상 노드 별 제 m차 누적 유사도를 근거로 가장 높은 제 m차 누적 유사도가 산출된 비교대상 노드를, 현재 위치로 추정되는 노드로 결정할 수 있다. 상기 횟수 조건은 상기 신뢰 조건 및 탈락 조건과 병렬적 조건('OR' 조건)으로 설정될 수 있다. 즉, 상기 횟수 조건이 만족되면, 상기 신뢰 조건이나 상기 탈락 조건이 만족되지 않더라도, 상기 소정 조건이 만족된 것으로 볼 수 있다. 누적 유사도의 산출 차수가 지나치게 많아지면, 이동 로봇(100)이 현재 위치 추정을 위해 지나치게 많은 시간이 소요될 수 있는 것을 막기 위한 것이다.
일 실시예로, 상기 소정 조건은, ⅰ상기 신뢰 조건 또는 ⅱ상기 거리 조건 또는 ⅲ상기 횟수 조건이 만족될 조건으로 설정될 수 있다. 다른 실시예로, 상기 소정 조건은, ⅰ상기 신뢰 조건 및 탈락 조건 또는 ⅱ상기 거리 조건 또는 ⅲ상기 횟수 조건이 만족될 조건으로 설정될 수 있다.
한편, 도 32 및 도 33을 참고하여, 상기 제 3실시예에 따른 학습 과정(S100'') 및 위치 인식 과정(S200'')의 다른 실시예를 설명하면 다음과 같다.도 12를 참고하여, 상기 제어부(140)는, 주행을 하면서 각 지점 별로 영상을 획득하게 제어한다.(S110), 상기 제어부(140)는, 상기 영상에서 추출된 복수의 특징점에 대응하는 각각의 디스크립터를 생성한다.(S120) 상기 제어부(140)는, 상기 각 지점에서 획득된 각 영상에 대응하는 각각의 노드를 생성한다.(S130) 상기 제어부(140)는, 소정 기준에 따라 상기 복수의 노드를 지역으로 구분하도록 기설정된다.(S140, S140') 상기 제어부(140)는, 상기 각 지역별로 지역 내 복수의 디스크립터를 복수의 그룹으로 분류하고 같은 그룹으로 분류된 디스크립터 들을 대표하는 지역 라벨 디스크립터를 생성하도록 기설정된다.(S150) 상기 제어부(140)는, 상기 복수의 지역에서 각각 생성된 지역 라벨 디스크립터 들을 복수의 그룹으로 분류하고 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 대표하는 전역 라벨 디스크립터를 생성하도록 기설정된다.(S160)
도 13을 참고하여, 상기 제어부(140)는, 위치 점핑 상황 발생(S50)시, 인식 영상을 획득하게 제어한다.(S210) 상기 제어부(140)는, 상기 인식 영상에서 추출된 복수의 인식 특징점에 대응하는 각각의 인식 디스크립터를 생성한다.(S220) 상기 제어부(140)는, 상기 인식 디스크립터 들에 상기 전역 라벨 디스크립터를 매칭시킨다.(S231) 상기 제어부(140)는, 상기 매칭된 전역 라벨 디스크립터에 대응하는 하나 이상의 비교대상 노드를 선택한다.(S236) 상기 제어부(140)는, 상기 하나 이상의 비교대상 노드 중에 상기 현재 위치로 추정되는 노드를 선택하도록 기설정된다.(S266, S270)
도 32 및 도 33을 참고하여, 상기 제어부(140)는, 주행 중 적어도 하나의 지역이 구분되면 구분된, 지역의 상기 지역 라벨 디스크립터를 주행 중 생성하도록 기설정될 수 있다. 구체적으로, 학습초기단계(S110, S120, S130)이 시작(S101)된 이후, 전체 주행 구역을 주행 하기 전에 상기 지역 라벨 디스크립터를 생성할 수 있다.(S150) 즉, 전역 내 모든 노드가 생성되기 전에, 기생성된 노드 들 중 일부가 지역으로 구분되면, 구분된 지역의 상기 지역 라벨 디스크립터가 생성될 수 있다.(S150)
도 32 및 도 33은, 위치 점핑 상황의 발생 시점에 따라 달리 제어되는 알고리즘의 예시를 보여준다. 위치 점핑 상황이 학습과정(S100'') 중 발생한 상황에서의, 전역 라벨 디스크립터 생성의 시점은 달라질 수 있다.도 32 및 도 23을 참고하여, 제어부(140)는, 상기 전역 내 모든 노드를 생성할 때까지 위치 점핑 상황이 발생하지 않으면, 상기 전역내 모든 노드를 생성한 후 상기 전역 라벨 디스크립터의 생성을 시작하도록 기설정된다.(S161) 학습 과정(S100'') 중 위치 점핑 상황이 발생하지 않으면, 학습초기단계(S110, S120, S130)가 모두 종료된 후, 상기 전역 라벨 디스크립터의 생성을 시작한다.(S161) 학습 과정(S100'') 중 위치 점핑 상황이 발생하지 않으면, 이동 로봇(100)이 전체 주행 구역을 주행한 후, 전역 라벨 디스크립터를 생성한다.(S161)
학습 과정(S100'') 중 위치 점핑 상황이 발생하지 않으면, 도 23을 참고하여, 주행 중 지역 라벨 디스크립터를 생성하고(S150), 전역 내 모든 노드 생성 후 지역 라벨 디스크립터를 근거로 하여 전역 라벨 디스크립터를 생성한다.(S160)
도 32 및 도 33을 참고하여, 제어부(140)는, 상기 전역 내 모든 노드를 생성하기 전에 위치 점핑 상황이 발생(S50)하면, 위치 점핑 상황 발생 후 상기 전역 라벨 디스크립터의 생성을 시작하도록 기설정된다.(S162) 이 경우, 제어부(140)는, 상기 위치 점핑 상황이 발생한 시점까지 생성된 복수의 노드를 근거로 하여 전역 라벨 디스크립터를 생성할 수 있다.(S162) 학습 과정(S100'') 중 위치 점핑 상황이 발생하면, 학습초기단계(S110, S120, S130)를 곧바로 종료하고, 상기 전역 라벨 디스크립터의 생성을 시작할 수 있다.(S161) 학습 과정(S100'') 중 위치 점핑 상황이 발생하면, 전역 라벨 디스크립터를 생성하고(S161), 생성된 전역 라벨 디스크립터를 이용하여 위치 인식을 시도한다.(S201)
만약, 학습 과정(S100'') 중 이미 주행 완료한 영역 내로 이동 로봇(100)이 위치 점핑하면, 위치 점핑 상황 발생 시점 이전까지 생성된 노드들만을 근거로 생성된 전역 라벨 디스크립터를 이용하여, 현재 위치를 인식할 수 있다.
만약, 제 1학습 과정(S100'') 중 아직 주행하지 않은 영역 내로 이동 로봇(100)이 위치 점핑하여 전역 위치 인식에 실패하면, 우선 새로운 맵을 생성하는 제 2학습 과정(S100'')을 새롭게 시작할 수 있다. 여기서, 제 2학습 과정(S100'') 중 그 이전에 진행했었던 제 1학습 과정(S100'')의 미완성 맵과 중첩되는 영역을 이동하는 상황 발생시, 제 1학습 과정(S100'')의 미완성 맵 내의 위치를 인식할 수 있고, 다시 상기 제 1학습 과정(S100'')을 연속하여 진행할 수 있다.
위치 점핑 상황이 학습 과정(S100'') 중 발생하든 학습 과정(S100'')이 종료된 후 발생하든, 전역 라벨 디스크립터가 생성된다.(S161, S162) 상기 제어부(140)는, 위치 점핑 상황 발생시, 획득된 인식 영상과 상기 전역 라벨 디스크립터를 근거로 하여 현재 위치로 추정되는 노드를 선택하도록 기설정된다. 획득된 인식 영상과 상기 전역 라벨 디스크립터를 근거로 한 제어에 대한 내용은 상술한 바와 같다.
한편, 학습 과정(S100'') 중 위치 점핑 상황이 발생할 때, 위치 점핑 상황 발생 시점 이전에 생성된 노드 들 중 지역으로 구분되지 않은 노드(들)이 있을 수 있다. 즉, 아직 상기 소정 지역 구분 조건을 만족하지 않아, 지역으로 그룹핑되지 않은 노드(들)이 있는 상태에서, 위치 점핑 상황이 발생한 경우의 알고리즘의 예시를 설명하면 다음과 같다.
도 33 및 도 34를 참고하여, 상기 제어부(140)는, 생성된 적어도 하나의 노드 중 지역으로 구분되지 않은 적어도 하나의 노드(Nx)가 있는 상태에서 상기 위치 점핑 상황 발생시, 상기 적어도 하나의 노드(Nx)를 지역(Ax)으로 구분하여 상기 지역(Ax) 내 복수의 디스크립터를 근거로 상기 지역 라벨 디스크립터를 생성한다.(S172) 제어부(140)는, 그 후 상기 전역 라벨 디스크립터의 생성을 시작하도록 기설정된다.(S162)
도 33의 시나리오를 참고하여, 학습 과정(S100'')이 시작(S101)된 후, 주행 구역 중 일부 영역의 노드들이 생성된다. 학습 과정(S100'')이 계속되면서 생성된 노드들이 상기 소정의 지역 구분 기준에 따라 지역(A1)으로 구분되면, 학습초기단계(S110, S120, S130) 수행 중 지역(A1)의 지역 라벨 디스크립터가 생성된다(S150). 이 후, 추가적인 노드가 생성되나 아직 추가적인 지역(A2)이 구분되지 않은 상태에서, 위치 점핑 상황이 발생(S50)하면, 지역으로 구분되지 않은 노드들을 지역(A2)으로 구분하여 지역(A2)의 지역 라벨 디스크립터를 생성한다.(S172) 이후, 생성된 지역(A1, A2)의 지역 라벨 디스크립터를 근거로 하여 전역 라벨 디스크립터를 생성한다.(S162) 생성된 전역 라벨 디스크립터를 이용하여, 제어부(140)는 위치 인식을 시도한다.(S201)
도 32 및 도 33을 참고하여, 알고리즘 측면에서 제어방법을 설명하면 다음과 같다. 상기 제어방법은, 학습 과정(S100'')을 시작하는 단계(S101)를 포함한다. 상기 제어방법은, 학습 과정(S100'') 중 위치 점핑 상황이 발생했는지 여부를 판단하는 과정(S51)을 포함한다. 상기 과정(S51)에서 학습 과정(S100'') 중 위치 점핑 상황이 발생하지 않은 것으로 판단되면, 이동 로봇(100)이 전체 주행 구역을 주행한 후 전역 라벨 디스크립터를 생성하는 과정(S161)이 진행된다. 한편, 상기 과정(S51)에서 학습 과정(S100'') 중 위치 점핑 상황이 발생한 것으로 판단되면, 위치 점핑 상황 발생 전 생성된 노드(들) 중 지역으로 구분되지 않은 적어도 하나의 노드가 존재하는 여부를 판단하는 과정(S171)이 진행된다. 상기 과정(S171)에서 지역으로 구분되지 않은 적어도 하나의 노드가 존재하는 것으로 판단되면, 지역으로 구분되지 않은 노드(들)을 그룹핑하여 지역으로 구분하고, 구분된 지역의 지역 라벨 디스크립터를 생성하는 과정(S172)이 진행된다. 상기 과정(S172) 진행 후, 현 시점을 기준으로 생성된 지역 라벨 디스크립터 들을 근거로 하여 전역 라벨 디스크립터를 생성하는 과정(S162)이 진행된다. 한편, 상기 과정(S171)에서 지역으로 구분되지 않은 노드가 없다고 판단되면, 상기 과정(S172)를 거치지 않고 곧바로 상기 과정(S162)가 진행된다. 상기 과정(S162) 이후, 생성된 전역 라벨 디스크립터와 인식 영상 내 인식 디스크립터를 근거로 하여, 위치 인식을 시도하는 과정(S201)이 진행된다. 상기 과정(S201) 이후, 학습 과정(S100'')이 계속 진행될 수 있다. 상술한 바와 같이, 상기 과정(S201)에서 맵 상 위치 인식을 성공한 경우에는, 곧바로 학습 중이었던 맵을 계속해서 학습할 수 있다.

Claims (24)

  1. 각 지점 별로 영상을 획득하고, 상기 영상에서 추출된 복수의 특징점에 대응하는 각각의 디스크립터를 생성하고, 상기 각 지점에서 획득된 각 영상에 대응하는 각각의 노드를 생성하는 학습초기단계;
    복수의 상기 디스크립터를 근거로 라벨 디스크립터를 생성하는 라벨생성단계;
    위치 점핑 상황 발생시 인식 영상을 획득하고, 상기 인식 영상에서 추출된 복수의 인식 특징점에 대응하는 각각의 인식 디스크립터를 생성하는 인식초기단계;
    상기 인식 디스크립터 들에 각각 상기 라벨 디스크립터를 매칭시키고, 상기 매칭된 라벨 디스크립터에 대응하는 하나 이상의 비교대상 노드를 선택하는 비교대상선택단계; 및
    상기 하나 이상의 비교대상 노드 중에 상기 현재 위치로 추정되는 노드를 선택하는 최종노드선택단계를 포함하는 이동 로봇의 제어방법.
  2. 제 1항에 있어서,
    상기 라벨생성단계에서,
    복수의 상기 디스크립터를 상기 디스크립터 들간의 거리를 근거로 하여 복수의 그룹으로 분류하고, 같은 그룹으로 분류된 디스크립터 들을 대표하는 라벨 디스크립터를 생성하는 이동 로봇의 제어방법.
  3. 제 1항에 있어서,
    상기 라벨생성단계에서,
    소정 분류규칙에 따라 복수의 상기 디스크립터를 복수의 그룹으로 분류하고, 소정 라벨규칙에 따라 같은 그룹으로 분류된 디스크립터 들로부터 라벨 디스크립터를 생성하는 이동 로봇의 제어방법.
  4. 제 3항에 있어서,
    상기 소정 분류규칙은,
    상기 복수의 디스크립터를 상기 디스크립터 들간의 거리를 기준으로 나누어 상대적으로 근접한 거리의 디스크립터 들 끼지 동일 그룹이 되게 하는 규칙을 포함하는 이동 로봇의 제어방법.
  5. 제 3항에 있어서,
    상기 소정 라벨규칙은,
    같은 그룹으로 분류된 디스크립터 들을 근거로 산출된 대표값을 상기 라벨 디스크립터로 하는 규칙을 포함하는 이동 로봇의 제어방법.
  6. 제 3항에 있어서,
    상기 라벨생성단계는, 상기 학습초기단계를 수행하는 동안 소정 기준이 만족되면 수행되는 이동 로봇의 제어방법.
  7. 제 1항에 있어서,
    소정 기준에 따라 상기 복수의 노드를 지역으로 구분하는 지역구분단계를 포함하고,
    상기 라벨생성단계는,
    상기 각 지역별로, 지역 내 복수의 디스크립터를 복수의 그룹으로 분류하고, 같은 그룹으로 분류된 디스크립터 들을 대표하는 지역 라벨 디스크립터를 생성하는 제 1라벨생성단계; 및
    상기 복수의 지역에서 각각 생성된 지역 라벨 디스크립터 들을 복수의 그룹으로 분류하고, 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 대표하는 대지역 라벨 디스크립터 또는 전역 라벨 디스크립터를 생성하는 제 2라벨생성단계를 포함하는 이동 로봇의 제어방법.
  8. 제 7항에 있어서,
    상기 지역구분단계는, 상기 학습초기단계를 수행하는 동안 신규의 노드가 생성되어 상기 소정 기준이 만족되면 수행되는 이동 로봇의 제어방법.
  9. 제 8항에 있어서,
    상기 학습초기단계를 수행하는 동안, 상기 지역구분단계에서 적어도 하나의 지역이 구분되면 구분된 지역의 상기 지역 라벨 디스크립터를 생성하는 상기 제 1라벨생성단계가 수행되는, 이동 로봇의 제어방법.
  10. 제 1항에 있어서,
    소정 기준에 따라 상기 복수의 노드를 지역으로 구분하는 지역구분단계를 포함하고,
    상기 라벨생성단계는,
    상기 각 지역별로, 제 1소정 분류규칙에 따라 지역 내 복수의 디스크립터를 복수의 그룹으로 분류하고, 제 1소정 라벨규칙에 따라 같은 그룹으로 분류된 디스크립터 들을 근거로 지역 라벨 디스크립터를 생성하는 지역라벨생성단계; 및
    제 2소정 분류규칙에 따라 전역 내 복수의 지역 라벨 디스크립터 들을 복수의 그룹으로 분류하고, 제 2소정 라벨규칙에 따라 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 근거로 전역 라벨 디스크립터를 생성하는 전역라벨생성단계를 포함하는 이동 로봇의 제어방법.
  11. 제 10항에 있어서,
    상기 비교대상선택단계에서, 상기 라벨 디스크립터는 전역 라벨 디스크립터인 이동 로봇의 제어방법.
  12. 제 10항에 있어서,
    상기 제 1소정 분류규칙은, 상기 복수의 디스크립터를 상기 디스크립터 들간의 거리를 기준으로 나누어 상대적으로 근접한 거리의 디스크립터 들 끼지 동일 그룹이 되게 하는 규칙을 포함하고,
    상기 제 2소정 분류규칙은, 상기 복수의 지역 라벨 디스크립터를 상기 지역 라벨 디스크립터 들간의 거리를 기준으로 나누어 상대적으로 근접한 거리의 지역 라벨 디스크립터 들 끼지 동일 그룹이 되게 하는 규칙을 포함하는 이동 로봇의 제어방법.
  13. 제 10항에 있어서,
    상기 제 1소정 라벨규칙은, 같은 그룹으로 분류된 디스크립터 들을 근거로 산출된 대표값을 상기 지역 라벨 디스크립터로 하는 규칙을 포함하고,
    상기 제 2소정 라벨규칙은, 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 근거로 산출된 대표값을 상기 전역 라벨 디스크립터로 하는 규칙을 포함하는 이동 로봇의 제어방법.
  14. 제 1항에 있어서,
    상기 비교대상선택단계에서,
    상기 인식 디스크립터와 상기 라벨 디스크립터 간의 거리를 근거로 하여 상기 인식 디스크립터 들에 각각 상기 인식 디스크립터로 부터 가장 가까운 거리의 라벨 디스크립터를 매칭시키는 이동 로봇의 제어방법.
  15. 제 1항에 있어서,
    상기 비교대상선택단계에서,
    상기 인식 디스크립터 들 중 적어도 일부에 상기 라벨 디스크립터 들이 일의대응 하도록 상기 라벨 디스크립터를 매칭시키는 이동 로봇의 제어방법.
  16. 제 1항에 있어서,
    상기 비교대상선택단계에서,
    상기 매칭된 라벨 디스크립터 들에 일대다대응 하는 디스크립터 들에 일의대응 하는 하나 이상의 영상에 대응하는 하나 이상의 비교대상 노드를 선택하는 이동 로봇의 제어방법.
  17. 제 1항에 있어서,
    상기 최종노드선택단계에서, 각 비교대상 노드 별로 노드 정보와 상기 현재 위치에서 획득된 영상 정보를 비교하여, 상기 현재 위치로 추정되는 노드를 선택하는 이동 로봇의 제어방법.
  18. 제 1항에 있어서,
    상기 인식초기단계에서,
    상기 이동 로봇이 지점 또는 촬영 각도를 변경하면서 제 1 내지 p차 인식 영상을 획득하고, 상기 제 1 내지 p차 인식 영상을 근거로 각각 제 1 내지 p차 인식 디스크립터 들을 생성하고,
    상기 최종노드선택단계에서,
    비교대상 노드 별 제 p차 누적 유사도를 산출하여, 상기 현재 위치로 추정되는 노드를 선택하는 이동 로봇의 제어방법.
    여기서, p는 2이상의 자연수 임.
  19. 제 18항에 있어서,
    상기 비교대상선택단계에서, 상기 인식 디스크립터 들은 상기 제 1 내지 p차 인식 디스크립터 들을 포함하는 이동 로봇의 제어방법.
  20. 본체를 이동시키는 주행부;
    상기 본체 주변의 영상을 획득하는 영상획득부;
    주행을 하면서 각 지점 별로 영상을 획득하게 제어하고, 상기 영상에서 추출된 복수의 특징점에 대응하는 각각의 디스크립터를 생성하고, 상기 각 지점에서 획득된 각 영상에 대응하는 각각의 노드를 생성하고, 소정 기준에 따라 상기 복수의 노드를 지역으로 구분하도록 기설정되고, 상기 각 지역별로 지역 내 복수의 디스크립터를 복수의 그룹으로 분류하고 같은 그룹으로 분류된 디스크립터 들을 대표하는 지역 라벨 디스크립터를 생성하도록 기설정되고, 상기 복수의 지역에서 각각 생성된 지역 라벨 디스크립터 들을 복수의 그룹으로 분류하고 같은 그룹으로 분류된 지역 라벨 디스크립터 들을 대표하는 전역 라벨 디스크립터를 생성하도록 기설정되는 제어부;를 포함하는 이동 로봇.
  21. 제 20항에 있어서,
    상기 제어부는,
    위치 점핑 상황 발생시, 인식 영상을 획득하게 제어하고, 상기 인식 영상에서 추출된 복수의 인식 특징점에 대응하는 각각의 인식 디스크립터를 생성하고, 상기 인식 디스크립터 들에 각각 상기 전역 라벨 디스크립터를 매칭시키고, 상기 매칭된 전역 라벨 디스크립터에 대응하는 하나 이상의 비교대상 노드를 선택하고, 상기 하나 이상의 비교대상 노드 중에 상기 현재 위치로 추정되는 노드를 선택하도록 기설정되는, 이동 로봇.
  22. 제 20항에 있어서,
    상기 제어부는,
    주행 중 적어도 하나의 지역이 구분되면 구분된 지역의 상기 지역 라벨 디스크립터를 주행 중 생성하도록 기설정되는, 이동 로봇.
  23. 제 20항에 있어서,
    상기 제어부는,
    ⅰ 상기 전역 내 모든 노드를 생성할 때까지 위치 점핑 상황이 발생하지 않으면, 상기 전역내 모든 노드를 생성한 후 상기 전역 라벨 디스크립터의 생성을 시작하도록 기설정되고,
    ⅱ 상기 전역 내 모든 노드를 생성하기 전에 위치 점핑 상황이 발생하면, 상기 위치 점핑 상황이 발생한 시점까지 생성된 복수의 노드를 근거로 하여 위치 점핑 상황 발생 후 상기 전역 라벨 디스크립터의 생성을 시작하도록 기설정되고,
    ⅲ 위치 점핑 상황 발생시, 획득된 인식 영상과 상기 전역 라벨 디스크립터를 근거로 하여 현재 위치로 추정되는 노드를 선택하도록 기설정되는, 이동 로봇.
  24. 제 23항에 있어서,
    상기 제어부는,
    생성된 적어도 하나의 노드 중 지역으로 구분되지 않은 적어도 하나의 노드(Nx)가 있는 상태에서 상기 위치 점핑 상황 발생시, 상기 적어도 하나의 노드(Nx)를 지역(Ax)으로 구분하여 상기 지역(Ax) 내 복수의 디스크립터를 근거로 상기 지역 라벨 디스크립터를 생성한 후, 상기 전역 라벨 디스크립터의 생성을 시작하도록 기설정되는, 이동 로봇.
KR1020170136411A 2016-10-20 2017-10-20 이동 로봇 및 이동 로봇의 제어방법 KR101982780B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160136521 2016-10-20
KR20160136521 2016-10-20

Publications (2)

Publication Number Publication Date
KR20180043753A true KR20180043753A (ko) 2018-04-30
KR101982780B1 KR101982780B1 (ko) 2019-05-27

Family

ID=62019493

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170136411A KR101982780B1 (ko) 2016-10-20 2017-10-20 이동 로봇 및 이동 로봇의 제어방법

Country Status (4)

Country Link
US (1) US11175676B2 (ko)
EP (1) EP3530417B1 (ko)
KR (1) KR101982780B1 (ko)
WO (1) WO2018074904A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200052389A (ko) * 2018-10-22 2020-05-15 엘지전자 주식회사 인공지능 이동 로봇의 제어 방법
KR102143349B1 (ko) * 2019-03-27 2020-08-11 엘지전자 주식회사 이동 로봇의 제어 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11348269B1 (en) * 2017-07-27 2022-05-31 AI Incorporated Method and apparatus for combining data to construct a floor plan
WO2019090417A1 (en) * 2017-11-10 2019-05-16 Clearpath Robotics Inc. Systems and methods for updating an electronic map
CN112215887B (zh) * 2019-07-09 2023-09-08 深圳市优必选科技股份有限公司 一种位姿确定方法、装置、存储介质及移动机器人
TWI735022B (zh) * 2019-08-08 2021-08-01 和碩聯合科技股份有限公司 語意地圖定向裝置、方法及機器人
CN111739092A (zh) * 2020-06-12 2020-10-02 广东博智林机器人有限公司 一种吊篮、检测机器人、检测控制系统及检测方法
CN112911151B (zh) * 2021-01-29 2023-04-07 京东科技信息技术有限公司 目标跟随方法、装置、设备、系统及存储介质
KR102572832B1 (ko) * 2022-08-12 2023-08-30 주식회사 클로봇 무인 이동체, 인공 지능 기반의 무인 이동체의 공간 내 위치를 찾는 방법 및 프로그램

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100104581A (ko) 2009-03-18 2010-09-29 연세대학교 산학협력단 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치
KR20110011424A (ko) * 2009-07-28 2011-02-08 주식회사 유진로봇 이동 로봇의 위치 인식 및 주행 제어 방법과 이를 이용한 이동 로봇
KR20120021064A (ko) * 2010-08-31 2012-03-08 엘지전자 주식회사 이동 로봇 및 이의 제어 방법
KR20160038437A (ko) * 2014-09-30 2016-04-07 엘지전자 주식회사 로봇 청소기 및 로봇 청소기의 제어방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100926783B1 (ko) * 2008-02-15 2009-11-13 한국과학기술연구원 물체인식 및 인식된 물체를 포함하는 주변 환경 정보를바탕으로 한 로봇의 자기 위치 추정 방법
KR101038702B1 (ko) * 2008-10-24 2011-06-03 전자부품연구원 로봇의 위치 검출방법
CN102596517B (zh) * 2009-07-28 2015-06-17 悠进机器人股份公司 移动机器人定位和导航控制方法及使用该方法的移动机器人
KR101460313B1 (ko) * 2013-05-24 2014-11-14 중앙대학교 산학협력단 시각 특징과 기하 정보를 이용한 로봇의 위치 추정 장치 및 방법
US9704043B2 (en) * 2014-12-16 2017-07-11 Irobot Corporation Systems and methods for capturing images and annotating the captured images with information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100104581A (ko) 2009-03-18 2010-09-29 연세대학교 산학협력단 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치
KR20110011424A (ko) * 2009-07-28 2011-02-08 주식회사 유진로봇 이동 로봇의 위치 인식 및 주행 제어 방법과 이를 이용한 이동 로봇
KR20120021064A (ko) * 2010-08-31 2012-03-08 엘지전자 주식회사 이동 로봇 및 이의 제어 방법
KR20160038437A (ko) * 2014-09-30 2016-04-07 엘지전자 주식회사 로봇 청소기 및 로봇 청소기의 제어방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200052389A (ko) * 2018-10-22 2020-05-15 엘지전자 주식회사 인공지능 이동 로봇의 제어 방법
US11709499B2 (en) 2018-10-22 2023-07-25 Lg Electronics Inc. Controlling method for artificial intelligence moving robot
KR102143349B1 (ko) * 2019-03-27 2020-08-11 엘지전자 주식회사 이동 로봇의 제어 방법
WO2020197303A1 (en) * 2019-03-27 2020-10-01 Lg Electronics Inc. Mobile robot control method
US11348276B2 (en) 2019-03-27 2022-05-31 Lg Electronics Inc. Mobile robot control method
AU2020244635B2 (en) * 2019-03-27 2023-08-03 Lg Electronics Inc. Mobile robot control method

Also Published As

Publication number Publication date
EP3530417A1 (en) 2019-08-28
WO2018074904A1 (ko) 2018-04-26
US20200050213A1 (en) 2020-02-13
US11175676B2 (en) 2021-11-16
EP3530417B1 (en) 2021-06-30
KR101982780B1 (ko) 2019-05-27
EP3530417A4 (en) 2020-06-24

Similar Documents

Publication Publication Date Title
KR101982780B1 (ko) 이동 로봇 및 이동 로봇의 제어방법
KR101868374B1 (ko) 이동 로봇의 제어방법
KR102192791B1 (ko) 이동 로봇 및 이동 로봇의 제어방법
US9798957B2 (en) Robot cleaner and control method thereof
US11547261B2 (en) Moving robot and control method thereof
US11348276B2 (en) Mobile robot control method
KR102159971B1 (ko) 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법
EP3502822B1 (en) Moving-robot and control method for the same
KR101922953B1 (ko) 이동 로봇 및 그 제어방법
US11709499B2 (en) Controlling method for artificial intelligence moving robot
KR101836847B1 (ko) 이동 로봇 및 이동 로봇의 제어방법

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