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

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

Info

Publication number
KR102192791B1
KR102192791B1 KR1020187031609A KR20187031609A KR102192791B1 KR 102192791 B1 KR102192791 B1 KR 102192791B1 KR 1020187031609 A KR1020187031609 A KR 1020187031609A KR 20187031609 A KR20187031609 A KR 20187031609A KR 102192791 B1 KR102192791 B1 KR 102192791B1
Authority
KR
South Korea
Prior art keywords
recognition
predetermined
rule
descriptor
region
Prior art date
Application number
KR1020187031609A
Other languages
English (en)
Other versions
KR20180125010A (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 KR20180125010A publication Critical patent/KR20180125010A/ko
Application granted granted Critical
Publication of KR102192791B1 publication Critical patent/KR102192791B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • 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
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L5/00Structural features of suction cleaners
    • A47L5/12Structural features of suction cleaners with power-driven air-pumps or air-compressors, e.g. driven by motor vehicle engine vacuum
    • 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/2805Parameters or conditions being sensed
    • A47L9/2826Parameters or conditions being sensed the condition of the floor
    • 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/2894Details related to signal transmission in suction cleaners
    • 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
    • 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
    • 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
    • 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
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45098Vacuum cleaning robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 발명은 맵(map) 상에서 위치를 파악하는 이동 로봇 및 이동 로봇의 제어방법에 관한 것으로, 본 발명에 따른 이동 로봇은, 본체를 이동시키는 주행부, 주변의 영상을 획득하는 영상획득부, 및 현재 위치를 인식하는 제어부를 포함한다. 상기 제어부는, 소정 기준에 따라 주행구역을 복수의 대구역으로 구분하고, 미지의 현재 위치에서 획득된 영상으로부터 적어도 하나의 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 인식 디스크립터를 생성하고, 소정 상위 추정규칙에 따라 각각의 대구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 대구역을 선택하게 제어한다.
본 발명에 따른 제어방법은, 주행구역을 학습하여 맵을 생성하고, 소정 기준에 따라 주행구역을 복수의 대구역으로 구분하는 학습단계, 및 상기 맵 상에서 현재 위치를 선택하는 인식단계를 포함한다. 상기 인식단계는, 상기 현재 위치의 영상을 획득하고, 획득된 영상에서 적어도 하나의 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 인식 디스크립터를 생성하는 인식 디스크립터 생성단계를 포함한다. 상기 인식단계는, 소정 상위 추정규칙에 따라 각각의 대구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 대구역을 선택하는 대구역 선택단계를 포함한다.

Description

이동 로봇 및 이동 로봇의 제어방법
본 발명은, 이동 로봇 및 이동 로봇의 제어방법에 관한 것으로, 보다 자세하게는 이동 로봇이 맵(map) 상에서 위치를 파악하는 기술에 관한 것이다.
로봇은 산업용으로 개발되어 공장 자동화의 일 부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것을 이동 로봇이라고 한다. 가정에서 사용되는 이동 로봇의 대표적인 예는 로봇 청소기이다.
이동 로봇이 원하는 목적지나 특정 구역으로 정확하게 이동하기 위해서, 충전대 등의 목적지에서 송출된 적외선(IR: InfraRed)신호 등을 감지하는 방법이 있으나, 이는 적외선 신호 등을 송출하는 제한된 목적지로의 이동을 가능하게 할 뿐 어느 목적지로나 이동은 불가하며, 거리 또는 장애물 등의 이유로 송출된 적외선을 이동 로봇이 감지하지 못 할 경우 목적지를 찾아 배회할 수 있는 문제가 있다.
따라서, 주행 구역 내의 어느 위치로나 이동 하기 위해서는, 주행 구역의 맵이 저장되어야 하며 상기 맵 상에서 이동 로봇의 현재 위치를 파악할 수 있어야 한다.
이를 위해, 종래에, 이동 로봇의 연속적인 이동 중 자신의 직전 위치에서의 주행 정보(이동 방향 및 이동 속도에 대한 정보 또는 연속적으로 촬영되는 바닥사진 등의 비교 등)를 바탕으로 현재 위치를 지속적으로 파악하는 다양한 방법이 알려져 있고, 스스로 청소구역의 맵(map)을 생성하는 다양한 방법이 알려져 있다.
그런데, 외부적인 요인에 의해 주행 중인 이동 로봇의 위치가 강제로 변경된 경우(예를들어, 사용자가 주행 중인 이동 로봇을 다른 실로 옮겨버린 경우), 이동 로봇은 직전 위치에서의 주행 정보를 가지고 미지의 현재 위치를 인식할 수 없게 된다.
이러한 위치 도약(Jumping) 상태에서도 이동 로봇이 현재 위치를 인식할 수 있도록 레이져 센서나 초음파 센서와 같은 레이지 센서가 제안되고 있으나, 비용이 크게 증가하고 주변 환경에 대해 보다 구체적인 정보를 얻을 수 없다는 한계가 있다.
이에 따라, 종래 기술(한국공개특허공보 10-2010-0104581)은 현재 위치에서 카메라를 통해 촬영된 영상을 이용하여 미지의 현재 위치를 인식하는 기술을 개시한다.
상기 종래 기술에서는, 주행구역 내에서 촬영된 영상으로부터 추출된 특징점 들로부터 3차원 지도를 생성하고, 미지의 현재 위치에서 촬영된 영상 내의 특징점들 중 3차원 지도 내의 특징점들과 매칭되는 3 쌍 이상의 특징점 쌍을 검출한다. 그 후, 현재 위치에서 촬영된 영상내의 매칭된 3개 이상의 특징점의 2차원 좌표, 3차원 지도 상의 매칭된 3개 이상의 특징점의 3차원 좌표, 및 현재 위치에서 카메라의 초점거리 정보를 이용하여, 상기 매칭된 3개 이상의 특징점으로부터 거리를 산출하고, 이로 부터 현재 위치를 인식하는 기술이, 상기 종래기술에 개시되어 있다.
공개특허공보 공개번호 10-2010-0104581 (공개일자 2010. 9. 29.)
제 1과제는 이동 로봇이 위치 도약을 비롯한 어떠한 상황에서도 주행구역의 맵 상에서 현재 위치를 인식하는 효율적인 전역위치인식(Global Localization) 기술을 제시하는 것이다.
상기 종래기술은, 미지의 현재 위치에서 획득한 3개 이상의 특징점을 기 저장된 3차원 지도 상의 3개 이상의 특징점과 매칭시키는 과정에 상당한 시간이 소요될 수 있는데, 특히 주행구역이 넓어 3차원 지도 상의 특징점 정보가 많은 경우 특징점 쌍을 매칭하기 위해 과도한 시간이 소요되는 문제가 있다. 제 2과제는 이러한 문제를 해결하여, 현재 영상에서 획득한 특징점을 맵상의 데이터와 비교하는 데 소요되는 시간을 최소화 하는 것이다.
상기 종래 기술에서는, 미지의 현재 위치에서 획득한 특징점을 3차원 지도 상의 특징점 클러스터(밀집되어 군을 이루는 특징점 들) 내의 특징점과 매칭시키는데, 이 경우 획득한 특징점이 실제로는 상기 특징점 클러스터 외에 존재하는 특징점과 매칭되어야 함에도 불구하고 이를 간과할 수 있음으로써, 위치 추정의 정확도가 떨어지는 문제가 있다. 제 3과제는 이러한 문제를 해결하여, 맵 상의 모든 특징점 데이터들을 이용하면서도 시간 소요를 최소화하는 기술을 제시하는 것이다.
상기 종래 기술에서는, 현재 영상에서 획득된 3개이상의 특징점과 카메라 사이의 거리가 각각 산출되어야 하고, 상기 특징점과의 거리는 카메라의 초점거리 및 상기 현재 영상내 특징점의 2차원 좌표값을 근거로 해서 산출된다. 그런데, 주변 밝기 등의 이유로 카메라 초점 거리 정보가 부정확해질 수 있으며, 영상 내의 3개 이상의 특징점이 카메라의 촬영방향에 수직한 평면 상에 배치되지 않고 경사나 돌출면 등의 이유로 비스듬한 평면 등에 배치된 경우에는 상기 2차원 좌표값에 의해 산출되는 특징점과 카메라 사이의 거리가 실제와 큰 차이가 날 수 있어, 결과적으로 위치 추정의 정확도가 떨어지는 문제가 있다. 제 4과제는 이러한 문제를 해결하여, 카메라의 초점거리 정보 및 영상 내의 특징점의 2차원 좌표값 없이도 현재 위치를 인식할 수 있는 기술을 제시하는 것이다.
종래 기술에서는, 지도를 3차원으로 생성해야 되므로 지도를 저장하는데 있어 용량이 큰 저장소가 필요하다는 문제가 있다. 제 5과제는 이러한 문제를 해결하여, 2차원의 맵으로도 현재 위치를 인식할 수 있는 기술을 제시하는 것이다.
특징점은 디스크립터(descriptor)의 형식으로 저장될 수 있고, 복수의 디스크립터 중에서는 서로 유사한 디스크립터가 상대적으로 많은 희소성이 약한 것들과 유사한 것이 상대적으로 적은 희소성 강한 것들이 있다. 그런데, 상기 종래기술에서는 이러한 디스크립터 들간의 희소성을 고려하지 않아, 위치 추정의 정확도가 낮아지는 문제가 있다. 제 6과제는 이러한 문제를 해결하여, 특징점들의 희소성 정도를 고려하여 위치를 인식하는 기술을 제시하는 것이다.
이동 로봇은 주행 능력상 분리된 실내 공간으로 이동될 수 있는데, 이 경우 기존에 저장된 맵 상에서만 현재위치를 추정하게 되면 오류가 발생할 수 있다. 제 7과제는 이러한 문제를 해결하여, 주행 능력상 분리된 공간에 이동 로봇이 위치하는 경우에도 해당 공간의 맵을 학습하거나 정확하고 효율적으로 현재 위치를 인식하는 기술을 제시하는 것이다.
본 발명의 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 제 1 내지 5과제를 해결하기 위하여, 주행구역 내의 특징점들을 근거로소구역 별 특징분포를 도출하고, 현재 위치가 속하는 소구역을 먼저 선택하여, 선택되지 않은 소구역 내의 각 위치에 대응하는 영상들은 비교대상에서 제외시킬 수 있는 해결수단을 제시한다.
이를 위하여, 본 발명에 따른 이동 로봇은, 본체를 이동시키는 주행부, 주변의 영상을 획득하는 영상획득부, 및 현재 위치를 인식하는 제어부를 포함한다. 상기 제어부는, 소정 기준에 따라 주행구역을 복수의 소구역으로 구분하고, 미지의 현재 위치에서 획득된 영상으로부터 적어도 하나의 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 인식 디스크립터를 생성하고, 소정 추정규칙에 따라 각각의 소구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 소구역을 선택하게 제어한다.
상기 제 1 내지 3과제를 달성하기 위하여 주행 구역의 맵을 학습할시 상기 소구역 특징분포를 생성하는 기술을 구현한다. 이를 위하여, 상기 제어부는, 복수의 위치에서 획득된 각각의 영상으로부터 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하고, 소정 학습규칙에 따라 각각의 상기 소구역 별로 상기 소구역 특징분포를 생성하게 제어할 수 있다.
상기 소구역 특징분포를 생성하는 구체적인 기술을 구현하고, 상기 제 6과제를 달성하기 위하여 라벨 디스크립터의 개수로 특징점의 희소성을 고려하는 기술을 구현한다. 이를 위하여, 상기 소정 학습규칙은, 복수의 상기 디스크립터를 복수의 군으로 분류하는 소정 분류규칙, 및 같은 군에 포함된 상기 디스크립터를 각각 라벨 디스크립터로 변환하는 소정 라벨규칙을 포함할 수 있고, 상기 소구역 특징분포는 각각의 상기 소구역 별로 상기 라벨 디스크립터의 종류 및 각 종류당 개수를 근거로 생성될 수 있다.
상기 소정 분류규칙은 예시적으로 후술할 수학식 1에 의해 정의 될 수 있고, 상기 소정 라벨(label)규칙은 예시적으로 후술할 수학식 2에 의해 정의될 수 있다. 또한, 소구역 특징분포 생성에 있어서 상기 라벨 디스크립터의 종류당 개수의 반영은 예시적으로 후술할 수학식 3을 통해 구현될 수 있다.
상기 현재 위치가 속한 소구역을 선택하는 구체적인 기술을 구현하고, 상기 제 6과제를 달성하기 위하여 인식 특징분포(미지의 현재 위치에서 획득한 영상에서 검출된 특징점들을 바탕으로 생성되는 인식 특징분포)에 대해서도 라벨 디스크립터의 개수로 특징점의 희소성을 고려하는 기술을 구현한다. 이를 위하여, 상기 소정 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 소구역 특징분포와 비교 가능한 인식 특징분포를 생성하는 소정 변환규칙, 및 각각의 상기 소구역 특징분포를 상기 인식 특징분포와 비교하여 각각의 유사도를 산출하는 소정 비교규칙을 포함할 수 있다.
상기 소정 변환규칙은 복수의 소구역 특징분포에 대해 각각 비교가능한 복수의 인식 특징분포를 생성하는 데 의의가 있다. 어느 하나의 비교대상 소구역과 비교 가능한 인식 특징분포는, 변환된 라벨 디스크립터의 종류 및 각 종류당 개수를 근거로 생성될 수 있고, 종류당 개수의 반영은 예시적으로 후술할 수학식 4를 통해 구현될 수 있다.
상기 소정 비교규칙은 복수의 소구역 특징분포에 대해 각각 비교하는데 의의가 있고, 예시적으로 후술할 수학식 5에 의해 각 소구역 별 유사도(확률)를 산출할 수 있다.
구역 구분을 피라미드 구조화하여 위치 인식과정의 효율을 더욱 상승시키기 위하여, 상기 제어부는, 소정 기준에 따라 상기 주행구역을 상기 복수의 소구역이 그룹화된 복수의 대구역으로 구분할 수 있다. 상기 제어부는, 소정 상위 추정규칙에 따라 각각의 대구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 대구역을 선택하고, 선택된 상기 대구역에 속하는 복수의 소구역 중에서 상기 소정 추정규칙에 따라 각각의 상기 소구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 소구역을 선택할 수 있다.
상기 제 1 내지 3과제를 달성하기 위하여, 상기 제어부는 선택된 상기 소구역에 속하는 복수의 위치 중에서 상기 현재 위치를 선택할 수 있다.
상기 제 1 내지 3과제를 달성하기 위하여 주행 구역의 맵을 학습할시 상기 대구역 특징분포를 생성하는 기술을 구현한다. 이를 위하여, 상기 제어부는, 복수의 위치에서 획득된 각각의 영상으로부터 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하고, 소정 학습규칙에 따라 각각의 상기 소구역 별로 상기 소구역 특징분포를 생성하고, 소정 상위 학습규칙에 따라 각각의 대구역 별로 상기 대구역 특징분포를 생성하게 제어할 수 있다.
상기 대구역 특징분포를 생성하는 구체적인 기술을 구현하고, 상기 제 6과제를 달성하기 위하여 대구역 라벨 디스크립터의 개수로 특징점의 희소성을 고려하는 기술을 구현한다. 이를 위하여, 상기 소정 상위 학습규칙은, 복수의 상기 라벨 디스크립터를 복수의 군으로 분류하는 소정 상위 분류규칙, 및 같은 군에 포함된 상기 라벨 디스크립터를 각각 대구역 라벨 디스크립터로 변환하는 소정 상위 라벨규칙을 포함할 수 있고, 상기 대구역 특징분포는 각각의 상기 대구역 별로 상기 대구역 라벨 디스크립터의 종류 및 각 종류당 개수를 근거로 생성될 수 있다.
상기 소정 상위 분류규칙은 예시적으로 후술할 수학식 6에 의해 정의 될 수 있고, 상기 소정 상위 라벨규칙은 예시적으로 후술할 수학식 7에 의해 정의될 수 있다. 또한, 대구역 특징분포 생성에 있어서 상기 대구역 라벨 디스크립터의 종류당 개수의 반영은 예시적으로 후술할 수학식 8을 통해 구현될 수 있다.
상기 현재 위치가 속한 대구역을 선택하는 구체적인 기술을 구현하고, 상기 제 6과제를 달성하기 위하여 상위 인식 특징분포(미지의 현재 위치에서 획득한 영상에서 검출된 특징점들을 바탕으로 생성되는 상위 인식 특징분포)에 대해서도, 대구역 라벨 디스크립터의 개수로 특징점의 희소성을 고려하는 기술을 구현한다. 이를 위하여, 상기 소정 상위 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 대구역 특징분포와 비교 가능한 상위 인식 특징분포를 생성하는 소정 상위 변환규칙, 및 각각의 상기 대구역 특징분포를 상기 상위 인식 특징분포와 비교하여 유사도를 산출하는 소정 상위 비교규칙을 포함할 수 있다.
상기 소정 상위 변환규칙은 복수의 대구역 특징분포에 대해 각각 비교가능한 복수의 상위 인식 특징분포를 생성하는 데 의의가 있다. 어느 하나의 비교대상 대구역과 비교 가능한 상위 인식 특징분포는, 변환된 대구역 라벨 디스크립터의 종류 및 각 종류당 개수를 근거로 생성될 수 있고, 종류당 개수의 반영은 예시적으로 후술할 수학식 9를 통해 구현될 수 있다.
상기 소정 상위 비교규칙은 복수의 대구역 특징분포에 대해 각각 비교하는데 의의가 있고, 예식적으로 후술할 수학식 10에 의해 각 대구역 별 유사도(확률)를 산출할 수 있다.
상기 제 7과제를 추가적으로 달성하기 위하여, 상기 제어부는, 소정 기준에 따라 주행구역을 주행 능력상 분리된 복수의 대구역으로 구분할 수 있다.
상기 제 1 내지 3과제를 달성하기 위하여, 상기 제어부는, 선택된 상기 대구역에 속하는 복수의 소구역 중에서 어느 하나를 선택하고, 선택된 상기 어느 하나의 소구역에 속하는 복수의 위치 중에서 상기 현재 위치를 선택할 수 있다.
본 발명은 하나의 이동 로봇 내에 구성된 상술된 각 구성요소에 의해 실시될 수 있으나, 각 처리단계가 서로 다른 이동로봇이나 중앙서버나 컴퓨터상에서 이루어질 수 도 있다. 상기 제 1 내지 5과제를 해결하기 위하여, 본 발명에 따른 이동 로봇의 제어방법은, 소정 기준에 따라 주행구역을 복수의 소구역으로 구분하는 구역 구분단계, 주행구역을 학습하여 맵을 생성하는 학습단계, 및 상기 맵 상에서 현재 위치를 선택하는 인식단계를 포함한다. 상기 인식단계는, 상기 현재 위치의 영상을 획득하고, 획득된 영상에서 적어도 하나의 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 인식 디스크립터를 생성하는 인식 디스크립터 생성단계를 포함한다. 상기 인식단계는, 소정 추정규칙에 따라 각각의 소구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 소구역을 선택하는 소구역 선택단계를 포함한다.
상기 제 1 내지 5과제를 해결하기 위한 효율적인 방법으로, 상기 소구역은 상기 주행구역 내의 각 실을 근거로 구분될 수 있다.
상기 제 1 내지 3과제를 달성하기 위하여, 상기 학습단계는, 복수의 위치에서 각각 영상을 획득하고, 각각의 상기 영상에서 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하는 디스크립터 생성단계를 포함할 수 있다. 상기 학습단계는, 복수의 상기 디스크립터를 근거로 하여 소정 학습규칙에 따라 각각의 상기 소구역 별로 생성된 소구역 특징분포를 저장하는 소구역 특징분포 생성단계를 포함할 수 있다.
구역 구분을 피라미드 구조화하여 위치 인식과정의 효율을 더욱 상승시키기 위하여, 상기 구역 구분단계는, 소정 기준에 따라 상기 주행구역을 상기 복수의 소구역이 그룹화된 복수의 대구역으로 구분할 수 있다. 상기 인식단계는, 상기 소구역 선택단계 이전에, 소정 상위 추정규칙에 따라 각각의 대구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 대구역을 선택하는 대구역 선택단계를 더 포함할 수 있다. 상기 소구역 선택단계에서는, 상기 대구역 선택단계에서 선택된 상기 대구역에 속하는 복수의 소구역 중 상기 어느 한 소구역을 선택할 수 있다.
상기 제 1 내지 3과제를 달성하기 위하여 주행 구역의 맵을 학습할시 상기 대구역 특징분포를 생성하는 기술을 구현한다. 이를 위하여, 상기 학습단계는, 복수의 위치에서 각각 영상을 획득하고, 각각의 상기 영상에서 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하는 디스크립터 생성단계를 포함할 수 있다. 상기 학습단계는, 복수의 상기 디스크립터를 근거로 하여 소정 학습규칙에 따라 각각의 상기 소구역 별로 생성된 소구역 특징분포를 저장하는 소구역 특징분포 생성단계, 및 복수의 상기 소구역 특징분포를 근거로 하여 소정 상위 학습규칙에 따라 각각의 대구역 별로 생성된 대구역 특징분포를 저장하는 대구역 특징분포 생성단계를 더 포함할 수 있다.
상기 제 1 내지 5과제를 해결하기 위한 효율적인 방법으로, 상기 대구역은 상기 주행구역 내의 각 층을 근거로 구분될 수 있다.
학습과정을 구체화한 본 발명에 따른 이동 로봇의 제어방법은, 복수의 위치에서 각각 영상을 획득하고, 각각의 상기 영상에서 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하고, 소정 기준에 따라, 상기 주행구역을 복수의 대구역 및 상기 대구역에 포함된 복수의 소구역으로 구분하는 (a1)단계, 및 복수의 상기 디스크립터를 근거로 하여, 소정 학습규칙에 따라 각각의 상기 소구역 별로 생성된 소구역 특징분포를 저장하고 소정 상위 학습규칙에 따라 각각의 대구역 별로 생성된 대구역 특징분포를 저장하는 (a2)단계를 포함할 수 있다.
인식과정을 구체화한 본 발명에 따른 이동 로봇의 제어방법은, 상기 현재 위치의 영상을 획득하고, 획득된 영상에서 적어도 하나의 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 인식 디스크립터를 생성하는 (b1)단계, 소정 상위 추정규칙에 따라 각각의 대구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 대구역을 선택하는 (b2)단계, 및 선택된 상기 대구역에 속하는 복수의 소구역 중에서, 소정 추정규칙에 따라 각각의 소구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 소구역을 선택하는 (b3)단계를 포함할 수 있다.
상기 디스크립터, 상기 라벨 디스크립터, 상기 대구역 라벨 디스크립터 및 상기 인식 디스크립터는 n차원의 벡터일 수 있다.
상기 소정 분류규칙 및 소정 상위 분류규칙은 상기 벡터 사이의 거리를 근거로 하고, 상기 소정 라벨규칙 및 소정 상위 라벨규칙은 상기 벡터의 평균값을 근거로 할 수 있다.
상기 소정 변환규칙은, 상기 적어도 하나의 인식 디스크립터를 비교대상인 소구역 특징분포의 라벨 디스크립터들 중 최근접한 라벨 디스크립터로 각각 변환하여, 상기 비교대상 별로 상기 인식 특징분포를 생성하도록 기설정될 수 있다.
상기 소정 상위 변환규칙은, 상기 적어도 하나의 인식 디스크립터를 비교대상인 대구역 특징분포의 대구역 라벨 디스크립터들 중 최근접한 대구역 라벨 디스크립터로 각각 변환하여, 상기 비교대상 별로 상기 상위 인식 특징분포를 생성하도록 기설정될 수 있다.
상기 소구역 특징분포는, 상기 소구역 별로 상기 라벨 디스크립터의 종류에 대해서 상기 종류당 개수가 적을수록 커지는 스코어를 근거로 생성되고, 상기 비교대상 소구역에 대한 인식 특징분포는, 상기 소정 변환규칙에 따라 변환된 라벨 디스크립터의 종류에 대해서 종류당 개수가 많을수록 커지는 인식스코어를 근거로 생성될 수 있다. 상기 소정 비교규칙은, 상기 비교대상 소구역 별로 상기 소구역 특징분포와 상기 인식 특징분포를 근거로 유사도를 산출하도록 기설정될 수 있다.
상기 대구역 특징분포는, 상기 대구역 별로 상기 대구역 라벨 디스크립터의 종류에 대해서 상기 종류당 개수가 적을수록 커지는 스코어를 근거로 생성되고, 상기 비교대상 대구역에 대한 상위 인식 특징분포는, 상기 소정 상위 변환규칙에 따라 변환된 대구역 라벨 디스크립터의 종류에 대해서 종류당 개수가 많을수록 커지는 인식스코어를 근거로 생성될 수 있다. 상기 소정 상위 비교규칙은, 상기 비교대상 대구역 별로 상기 대구역 특징분포와 상기 상위 인식 특징분포를 근거로 유사도를 산출하도록 기설정될 수 있다.
상기 제어방법을 실행시키기 위한 프로그램이 구현될 수 있고, 상기 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 구현될 수 있다.
또한, 상기 각종 규칙들(학습규칙, 상위 학습규칙, 추정규칙, 상위 추정규칙, 분류규칙, 상위 분류규칙, 라벨규칙, 상위 라벨규칙, 변환규칙, 상위 변환규칙, 비교규칙, 상위 비교규칙) 중 적어도 어느 하나를 실행하기 위한 프로그램이 구현될 수 있고, 상기 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 구현될 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
상기 해결수단들을 통하여, 이동 로봇의 위치가 도약된 상황에서도 맵상에서 효율적이고 정확하게 현재 위치를 추정할 수 있는 효과가 있고, 원하는 목적지에 송신 신호가 없더라도 맵을 이용하여 정확히 해당 목적지로 이동 로봇을 이동하게 할 수 있는 효과가 있다.
또한, 현재 위치가 속하는 소구역을 먼저 선택하고 소구역 내에서 현재 위치를 추정함으로써, 현재 영상을 저장된 특징점 데이터와 비교하는 시간을 현저히 줄어들게 할 수 있으면서도, 맵 상의 모든 특징점 데이터를 누락없이 추정에 이용함으로써 정확한 위치 추정이 가능하다는 효과가 있다.
또한, 천정 영상 만으로도 본 기술을 구현할 수 있어 장치 구현이 비교적 단순해지는 효과가 있다.
또한, 카메라의 초점거리 정보 및 영상 내의 특징점 2차원 좌표없이도 현재위치를 인식할 수 있어, 간편하게 기술을 구현할 수 있으면서도, 현재 위치 추정의 정확성을 상승시키는 효과가 있다.
또한, 2차원 맵으로도 본 기술을 구현할 수 있어 메모리의 효율적인 사용이 가능하다는 효과가 있다.
또한, 상기 스코어 및 인식스코어를 이용하여 특징점들의 희소성을 고려함으로써, 위치 추정에 있어 특징점마다 가중치를 달리하게 되는 효과가 발현되어, 더욱 정확한 위치 추정이 가능하다.
또한, 구역을 피라미드화 하여 구분 및 그룹화함으로써, 위치 인식에 소요되는 시간을 더욱 현격하게 줄이는 효과가 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 이동 로봇 및 이동 로봇을 충전시키는 충전대를 도시한 사시도이다.
도 2는 도 1에 도시된 이동 로봇의 상면부를 도시한 것이다.
도 3은 도 1에 도시된 이동 로봇의 정면부를 도시한 것이다.
도 4는 도 1에 도시된 이동 로봇의 저면부를 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇의 주요 구성들 간의 제어관계를 도시한 블록도이다.
도 6은 도 1의 이동 로봇이 기저장 맵의 존재 유무에 따라 맵을 생성(S100, S100’)하거나 갱신(S30)하는 일 상황의 시나리오를 도시한 순서도이다.
도 7은 도 1의 이동 로봇의 위치 점핑 상황 발생시(S20) 맵 상 위치 인식(S200, S200’)을 수행하게 되는 다른 상황의 시나리오의 순서도와, 위치 점핑 상황 발생(S20)의 일 예를 도시한다.
도 8은 기저장 맵(M1)이 존재하는 상태에서 이동 로봇의 위치 점핑 상황 발생시(S20), 일 실시예에 따른 이동 로봇의 맵(M1) 상 위치 인식 여부에 따른 제어 방법을 도시한 순서도이다.
도 9 내지 도 12는, 각기 다른 조건하 이동 로봇의 위치 점핑 상황 발생시(S20), 도 8의 제어방법에 따른 각기 다른 시나리오의 순서도를 도시한다.
도 9에서, 현실의 두 영역(Area1, Area2)은 평면상 서로 연결되고 상기 두 영역(Area1, Area2)에 대한 기저장 맵(M1)이 있는 상태에서, 이동 로봇(100)이 영역(Area1) 내의 위치에서 영역(Area2) 내의 위치로 점핑된 경우의 제 1시나리오를 도시한다.
도 10에서, 현실의 두 영역(Area1, Area2)은 평면상 서로 연결되고 상기 두 영역(Area1, Area2) 중 영역(Area1)에 대한 기저장 맵(M1)만 있는 상태에서, 이동 로봇(100)이 영역(Area1) 내의 위치에서 영역(Area2) 내의 위치로 점핑된 경우의 제 2시나리오를 도시한다.
도 11에서, 현실의 두 층(Floor1, Floor2)은 평면상 서로 분리되고 상기 두 층(Floor1, Floor2)에 대한 각각의 기저장 맵(M1, M2)이 있는 상태에서, 이동 로봇(100)이 층(Floor1) 내의 위치에서 층(Floor2) 내의 위치로 점핑된 경우의 제 3시나리오를 도시한다.
도 12에서, 현실의 두 층(Floor1, Floor2)은 평면상 서로 분리되고 상기 두 층(Floor1, Floor2) 중 층(Floor1)에 대한 기저장 맵(M1)만 있는 상태에서, 이동 로봇(100)이 층(Floor1) 내의 위치에서 층(Floor2) 내의 위치로 점핑된 경우의 제 4시나리오를 도시한다.
도 13은 본 발명의 제 1실시예에 따른 이동 로봇의 제어방법을 도시한 순서도이다.
도 14a 및 도 14b는, 도 13의 제 1실시예에 따른 학습 과정(S100) 및 위치 인식 과정(S200)을 도시한 순서도이다. 도 14a는 학습 과정(S100)을 도시하고, 도 14b는 학습 과정(S100)에 따라 학습된 맵 상에서 위치 인식 과정(S200)을 도시한다.
도 15는 본 발명의 제 2실시예에 따른 이동 로봇의 제어방법을 도시한 순서도이다.
도 16a 및 도 16b는, 도 15의 제 2실시예에 따른 학습 과정(S100’) 및 위치 인식 과정(S200’)을 도시한 순서도이다. 도 16a는 학습 과정(S100’)을 도시하고, 도 16b는 학습 과정(S100’)에 따라 학습된 맵 상에서 위치 인식 과정(S200’)을 도시한다.
도 17a는 일 실시예에 따른 복수의 소구역(A1,A2,A3,A4) 및 복수의 소구역(A1,A2,A3,A4)으로 이루어진 어느 하나의 대구역(X1)을 도시한 평면 개념도이다.
도 17b는 다른 실시예에 따른 복수의 소구역(A1,A2,A3,A4,A5) 및 복수의 소구역(A1,A2,A3,A4,A5)으로 이루어진 어느 하나의 대구역(X1)을 도시한 평면 개념도이다.
도 18a는 일 실시예에 따른 복수의 대구역(X1,X2,X3)을 도시한 입면 개념도이다.
도 18b는 다른 실시예에 따른 복수의 대구역(X1,X2,X3)을 도시한 입면 개념도이다.
도 19는 일 실시예에 따른 주행구역(X), 주행구역을 이루는 복수의 대구역(X1,X2,X3), 각 대구역을 이루는 각 복수의 소구역(A1-A5, B1-B5, C1-C6), 및 어느 하나의 소구역(A1)을 이루는 복수의 위치(노드 N1-Nn)의 상하위 관계를 나타낸 개념도이다.
도 20은 일 실시예에 따른 대구역(X1) 내의 복수의 소구역(A1,A2)을 예시적으로 도시하고, 도시한 각각의 소구역(A1,A2) 내의 복수의 노드(N1, N2, N3, N4, …, Nn+1, Nn+2, Nn+3, Nn+4, …)에서 각각 획득한 영상을 보여주는 그림이다.
도 21은 어느 하나의 위치(P3)에서 획득환 영상에서 특징점(f1,f2,f3,f4,f5,f6,f7)을 도시하고, 어느 하나의 소구역(A1) 내의 모든 특징점(f1,f2,f3,..,fm)에 각각 대응하는 n차원 벡터인 디스크립터
Figure 112018107771613-pct00001
를 생성하는 도식을 나타낸 개념도이다.
도 22는, 소정 분류규칙의 일 실시예 및 소정 상위 분류규칙의 일 실시예를 나타낸 개념도이다.
도 23은, 소정 라벨규칙의 일 실시예 및 소정 상위 라벨규칙의 일 실시예를 나타낸 개념도이다.
도 24는 어느 하나의 소구역(A1) 내에서 소정의 과정을 거쳐 생성된 복수의 디스크립터
Figure 112018107771613-pct00002
를 소정 분류규칙에 따라 복수의 군(A1G1, A1G2, A1G3,..,A1Gl)으로 분류하는 도식을 나타내고, 같은 군에 포함된 복수의 디스크립터를 소정 라벨규칙에 따라 각각 라벨 디스크립터
Figure 112018107771613-pct00003
로 변환하는 도식을 나타낸 개념도이다.
도 25는 도 24의 각각의 라벨 디스크립터
Figure 112018107771613-pct00004
의 개수(w)가 많을수록 작아지는 스코어(s)를 도수로 하는 어느 하나의 소구역(A1) 히스토그램을 나타내고, 어느 하나의 소구역(A1) 특징분포를 시각적으로 나타내기 위한 그림이다. 도 25에는, 이러한 소정의 과정을 거쳐 생성된 각각의 소구역(A1, A2, …, Ak) 특징분포가 도시된다.
도 26은 어느 하나의 대구역(X1) 내에서 소정의 과정을 거쳐 생성된 복수의 라벨 디스크립터
Figure 112018107771613-pct00005
를 소정 상위 분류규칙에 따라 복수의 군(X1G1, X1G2, X1G3,..,X1Gk)으로 분류하는 도식을 나타내고, 같은 군에 포함된 복수의 라벨 디스크립터를 소정 상위 라벨규칙에 따라 각각 대구역 라벨 디스크립터
Figure 112018107771613-pct00006
로 변환하는 도식을 나타낸 개념도이다.
도 27은 도 26의 각각의 대구역 라벨 디스크립터
Figure 112018107771613-pct00007
의 개수(w)가 많을수록 작아지는 스코어(s)를 도수로 하는 어느 하나의 대구역(X1) 히스토그램을 나타내고, 어느 하나의 대구역(X1) 특징분포를 시각적으로 나타내기 위한 그림이다. 도 27에는, 이러한 소정의 과정을 거쳐 생성된 각각의 대구역(X1, X2, …, Xj) 특징분포가 도시된다.
도 28은 미지의 현재 위치에서 획득환 영상에서 인식 특징점(h1,h2,h3,h4,h5,h6,h7)을 도시하고, 획득한 영상 내의 모든 인식 특징점(h1,h2,h3,h4,h5,h6,h7)에 각각 대응하는 n차원 벡터인 인식 디스크립터
Figure 112018107771613-pct00008
를 생성하는 도식을 나타낸 개념도이다.
도 29는, 도 28에서 생성한 복수의 인식 디스크립터를 소정 상위 변환규칙에 따라 비교대상인 대구역(X1)의 대구역 라벨 디스크립터
Figure 112018107771613-pct00009
로 변환하여 비교대상 대구역(X1)에 대한 상위 인식 특징분포를 생성하는 도식을 나타낸 개념도이다. 상위 인식 특징분포를 시각적으로 나타내기 위해, 각각의 대구역 라벨 디스크립터의 개수(wh)가 많을수록 커지는 인식 스코아(Sh)를 도수로 하는 히스토그램이 도시된다.
도 30은, 각각의 대구역에 대해 도 29의 과정을 거쳐 생성된 각각의 상위 인식 특징분포와, 각각의 대구역 특징분포를 소정 상위 비교규칙에 따라 각각 비교하여, 각각의 확률을 산출하고, 어느 하나의 대구역을 선택하는 도식을 나타낸 개념도이다.
도 31는, 도 28에서 생성한 복수의 인식 디스크립터를 소정 변환규칙에 따라 비교대상인 소구역(A1)의 라벨 디스크립터
Figure 112018107771613-pct00010
로 변환하여 비교대상 소구역(A1)에 대한 인식 특징분포를 생성하는 도식을 나타낸 개념도이다. 인식 특징분포를 시각적으로 나타내기 위해, 각각의 라벨 디스크립터의 개수(wh)가 많을수록 커지는 인식 스코아(Sh)를 도수로 하는 히스토그램이 도시된다.
도 32는, 각각의 소구역에 대해 도 31의 과정을 거쳐 생성된 각각의 인식 특징분포와, 각각의 소구역 특징분포를 소정 비교규칙에 따라 각각 비교하여, 각각의 확률을 산출하고, 어느 하나의 소구역을 선택하는 도식을 나타낸 개념도이다.
도 33은, 기저장 맵(M1)이 생성된 하나의 평면 내에서 위치 점핑 상황이 발생되고 맵(M1) 상 위치를 인식하는 시나리오가 도시된 순서도 및 그림이다. 도 33에는, 위치 인식시 소구역을 선택한 후 노드를 선택하는 상기 제 1실시예에 따른 과정(Q)과, 위치 인식시 소구역 선택 없이 바로 노드를 선택하는 과정(O)을 같이 도시하여, 상기 과정(Q)과 상기 과정(O)의 시간 차이(Ta < To)를 보여준다.
도 34는, 기저장된 맵(M1, M2, M3)이 생성된 복수의 층에 있어서 층간 위치 점핑 상황이 발생될 때, 맵(M1, M2, M3) 상 위치를 인식하는 시나리오가 도시된 순서도 및 그림이다. 도 34에는, 위치 인식시 대구역 및 소구역을 순차적으로 선택한 후 노드를 선택하는 상기 제 2실시예에 따른 과정을 도시하여, 도 33의 상기 과정(O)과의 시간 차이(Tb < To)를 보여준다.
본 발명인 이동 로봇(100)은 바퀴 등을 이용하여 스스로 이동이 가능한 로봇을 의미하고, 가정 도우미 로봇 및 로봇 청소기 등이 될 수 있다. 이하 도 1 내지 도 4를 참조하여, 이동 로봇 중 로봇 청소기(100)를 예로들어 설명하나, 반드시 이에 한정될 필요는 없다.
도 1은 로봇 청소기(100) 및 이동 로봇을 충전시키는 충전대(200)를 도시한 사시도이다. 도 2는 도 1에 도시된 로봇 청소기(100)의 상면부를 도시한 것이다. 도 3은 도 1에 도시된 로봇 청소기(100)의 정면부를 도시한 것이다. 도 4는 도 1에 도시된 로봇 청소기(100)의 저면부를 도시한 것이다.
로봇 청소기(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)는 현재 위치를 인식하는 등 각종 정보를 처리하고 판단하는 제어부(140), 및 각종 데이터를 저장하는 저장부(150)를 포함한다. 제어부(140)는 로봇 청소기(100)를 구성하는 각종 구성들(예를들어, 영상획득부(120), 조작부(137), 주행부(160) 등)의 제어를 통해, 로봇 청소기(100)의 동작 전반을 제어하며, 주행제어모듈(141), 구역구분모듈(142), 학습모듈(143) 및 인식모듈(144)을 포함할 수 있다. 학습모듈(143)은 구역구분모듈(142)을 포괄하는 것으로 이해될 수도 있다.
저장부(150)는 로봇 청소기(100)의 제어에 필요한 각종 정보들을 기록하는 것으로, 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 상기 기록 매체는 마이크로 프로세서(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축이 직교하는 평면 상에 있다고 가정할 때, 주행 변위는 (Δx,Δy,θ)로 표현할 수 있다. Δx,Δy는 각각 X축 및 Y축 방향으로의 변위를 의미하고, θ 는 회전 각도를 의미한다.
이동 로봇(100)은 주행 변위 측정부(165)를 포함한다. 주행 변위 측정부(165)는 상기 하부 카메라 센서(139)에서 획득된 영상을 근거로 주행 변위를 측정할 수 있다. 예를 들어, 주행 변위 측정부(165)는 이동 로봇(100)의 연속적인 이동에 따라 달라지는 바닥 영상의 연속적인 픽셀(pixel) 비교를 통해서 주행 변위를 측정할 수 있다.
주행 변위 측정부(165)는 주행부(160)의 동작을 근거로 이동 로봇(100)의 주행 변위를 측정할 수 있다. 예를 들어, 주행제어모듈(141)은 구동 바퀴(136)의 회전속도를 근거로 이동 로봇(100)의 현재 또는 과거의 이동속도, 주행한 거리 등을 측정할 수 있으며, 각 구동 바퀴(136(L), 136(R))의 회전 방향에 따라 현재 또는 과거의 방향 전환 과정 또한 측정할 수 있다.
주행 변위 측정부(165)는 장애물 감지센서(131) 및 영상획득부(120) 중 적어도 어느 하나를 이용하여 상기 주행 변위를 측정하는 것도 가능하다.
제어부(14)는 이렇게 측정된 주행 변위를 바탕으로, 위치 점핑 상황이 발생하지 않은 상태에서 맵 상 이동 로봇(100)의 위치를 인식할 수 있다.
주행제어모듈(141)은 로봇 청소기(100)의 주행을 제어하는 것으로, 주행 설정에 따라 주행부(160)의 구동을 제어한다.
도 5, 도 13 및 도 15를 참고하여, 제어부(140)는 소정 기준에 따라 주행구역(X)을 복수의 구역으로 구분하는 구역구분모듈(142)을 포함한다. 주행구역(X)은 이동 로봇(100)이 주행 경험이 있는 모든 평면상의 구역 및 현재 주행하고 있는 평면상의 구역을 모두 합한 범위로 정의될 수 있다.
구역구분모듈(142)은 주행구역(X)을 복수의 소구역으로 구분할 수 있다.
구역구분모듈(142)은 주행구역(X)을 주행능력상 서로 분리된 복수의 대구역으로 구분할 수 있다. 도 18a 및 도 18b를 참고하여, 서로 동선상 완전히 분리된 두개의 실내공간은 각각 두개의 대구역으로 구분될 수 있다. 일 예로, 도 18a를 참고하여, 같은 실내 공간이라 하더라도 상기 대구역은 주행구역(X) 내의 각 층을 근거로 구분될 수 있다. 다른 예로, 도 18b를 참고하여, 같은 평면이라 하더라도 상기 대구역은 주행구역(X) 내 동선상 분리된 실내 공간을 근거로 구분될 수 있다.
제어부(140)는 주행구역(X)의 맵을 생성하는 학습모듈(143)을 포함할 수 있다. 전역위치 인식을 위해서, 학습모듈(143)은 각 위치에서 획득한 영상을 처리하여 상기 맵과 연계시킬 수 있다. 현실의 각 위치는 맵 상에서 각 노드(node, N)로 저장될 수 있다.
학습모듈(143)은 각 지점에서 획득한 영상을 상기 맵 상의 각 노드와 매칭시킨다. 획득 영상 들은 노드 들에 각각 대응할 수 있다.
학습모듈(143)은, 상기 주행 변위 정보를 바탕으로 맵 상의 노드의 정보를 생성시킨다. 예를 들어, 원점을 기준으로 측정한 주행 변위를 근거로 하여, 노드 좌표 정보를 생성할 수 있다. 노드 정보는 상기 노드 좌표 정보를 포함할 수 있다. 노드 정보는 노드에 대응하는 상기 획득 영상의 정보를 포함할 수 있다.
학습모듈(143)은 노드(N)와 노드간의 주행 변위를 근거로 하여 맵을 생성할 수 있다.
학습모듈(143)은 기 생성된 맵을 갱신할 수 있다. 학습모듈(143)은 재차의 주행을 통해 기 저장된 노드 좌표 정보를 갱신할 수 있다. 학습모듈(143)은 재차의 주행을 통해 기 저장된 노드에 대응하는 획득 영상의 정보를 갱신할 수 있다.
상술한 주행 정보를 바탕으로 현재 위치를 인식하는 방법은 로봇 청소기(100)의 연속적인 주행이 전제되어야 가능한 것이고, 위치 점핑(Jumping) 상황이 발생된 경우에는 상기 주행 정보를 바탕으로 현재 위치를 파악할 수 없다.
‘위치 점핑(Jumping) 상황’이란, 맵 상의 이동 경로의 추적이 불가한 상태에서 이동 로봇이 이동된 상황을 의미한다. 구체적으로, 위치 점핑 상황은, 주행 변위 측정부(165)에 의한 주행 변위를 측정할 수 없는 상태에서 이동 로봇이 이동된 경우에 발생할 수 있다. 위치 점핑 상황의 일 예로, 주행 중인 이동 로봇을 사용자가 강제로 들어서 옮긴 납치(Kidnapping) 상황(도 7 참고)이나, 이동 로봇의 전원이 오프(off)된 상태에서 이동 로봇의 위치를 강제로 옮긴 상황이 있다.
영상 정보를 이용하여 위치를 파악하는 방법은 이러한 위치 점핑 상황에서도 현재 위치를 인식하는 기술이다. 제어부(140)는 위치 점핑 상황에서도 현재 위치를 추정하여 인식하는 인식모듈(144)을 포함할 수 있다.
본 발명의 실시예에 따른 이동 로봇의 제어방법은 학습 과정(S100, S100’, S30)을 포함한다. 상기 이동 로봇의 제어방법은 인식 과정(S200, S200’)을 포함한다. 도 6 및 7을 참고하여, 학습 과정(S100, S100’, S30) 또는 인식 과정(S200, S200’)을 시작하게 되는 시나리오를 예시적으로 설명한다.
도 6을 참고한 일 시나리오에서는, 이동 로봇(100)이 주행을 시작하면 기 저장된 맵의 존재 여부를 판단(S10)한다. 기 저장된 맵의 존재 여부란 이동 로봇(100)의 저장부150()에 맵이 저장되어 있는지 판단하는 과정이 될 수 있다. 상기 과정(S10) 결과 기 저장된 맵이 존재하지 않으면, 이동 로봇(100)은 새로운 맵을 생성하는 학습 과정(S100, S100’)을 시작한다. 상기 과정(S10) 결과 기 저장된 맵이 존재하면, 기 저장된 맵 상에서 이동 로봇(100)의 현재 위치를 인식하는 과정(S6)이 시작된다. 상기 과정(S6) 이후 기 저장된 맵을 갱신하는 학습 과정(S30)을 시작한다. 상기 과정(S30)에서는, 이동 로봇(100)이 새로 획득한 영상 정보를 근거로 기 저장된 맵을 갱신할 수 있다. 상기 과정(S30)은, 새롭게 주행한 구역에서 얻은 정보를 근거로 기 저장된 맵 상에서 새로운 노드를 생성하는 과정을 포함할 수 있다. 또한, 상기 과정(S30)은, 주행 구역에서 얻은 환경 정보를 근거로 기 저장된 맵 상의 노드의 정보 중 일부를 갱신하는 과정을 포함할 수 있다. 이러한 방식으로 위치 인식 과정(S6)과 학습 과정(S30)이 지속적으로 동시에 진행될 수 있다.(SLAM) 이하, 주로 상기 맵을 생성하는 학습 과정(S100, S100’)을 기준으로 설명하나, 반드시 이에 제한될 필요는 없고 맵을 갱신하는 학습 과정(S30)에 이하의 설명 내용이 적용될 수 있다.
도 7을 참고한 다른 시나리오에서는, 위치 점핑 상황이 발생(S20)한다. 상기 위치 점핑 상황 발생(S20) 이후, 이동 로봇(100)은 기 저장된 맵 상에서 현재 위치를 인식하는 과정(S200, S200’)을 시작한다.
도 8을 참고하여, 기저장 맵(M1)이 존재하는 상태에서 이동 로봇의 위치 점핑 상황 발생시(S20), 일 실시예에 따른 이동 로봇(100)의 제어방법은 다음과 같다.
위치 점핑 상황이 발생(S20)된 후, 상기 제어방법은 기저장 맵(M1) 상의 위치 인식을 시도한다. (S200a) 그 후, 기저장 맵(M1) 상의 위치 인식 여부를 판단하는 과정(S200b)이 진행된다.
상기 과정(S200b)에서 위치 인식을 성공하면, 주행 및 맵(M1)을 갱신하는 과정(S31)이 진행된다. 상기 과정(S31)에서, 노드 정보가 갱신될 수 있다. 예를 들어, 기존 노드의 대응하는 영상 정보가 변경될 수 있고, 새로운 노드가 맵(M1) 상에 추가 될 수 있다. 이에 따라, 맵(M1)의 특징점들에 대응하는 디스크립터들이 갱신(변경/삭제/추가)될 수 있다. 또한, 맵(M1)의 구역 구분이 갱신(변경/삭제/추가) 상기 과정(S31)에서 갱신된 디스크립터들 및/또는 갱신된 구역을 바탕으로, 맵(M1)의 구역 라벨 디스크립터를 갱신하는 과정(S50)이 진행된다.
상기 과정(S200b)에서 위치 인식을 실패하면, 주행 및 신규 맵(M2)을 생성하는 과정(S40)이 시작된다. 상기 과정(S40) 중 기저장 맵(M1) 상의 위치 인식 여부를 판단하는 과정(S200c)이 진행될 수 있다. 신규 맵(M2)을 생성하는 과정(S40) 진행 중, 기저장 맵(M1) 상의 위치 인식이 가능할 수도 있는데, 예를 들면, 연결된 평면 상의 일부 영역만 맵핑이 된 상태에서 맵핑이 아직 되지 않은 다른 영역으로 위치 점핑이 된 경우, 이동 로봇(100)이 주행을 하면서 기존에 맵핑이 된 상기 일부 영역으로 진입할 수 있고, 이 때 이동 로봇(100)은 기존 맵상의 위치를 인식할 수 있다.
상기 과정(200c)을 통해 기저장 맵(M1) 상의 위치 인식이 성공하면, 기저장 맵(M1)에 생성된 신규 맵(M2)을 통합하여, 맵(M1)을 갱신하는 과정(S41)이 진행된다. 이에 따라, 이에 따라, 맵(M1) 상의 새로운 노드들이 추가되고, 맵(M1)의 특징점들에 대응하는 디스크립터들이 추가될 수 있다. 또한, 맵(M1)의 구역이 추가될 수 있다. 상기 과정(S41)에서 갱신된 디스크립터들 및/또는 갱신된 구역을 바탕으로, 맵(M1)의 구역 라벨 디스크립터를 갱신하는 과정(S50)이 진행된다.
상기 과정(200c)을 통해 기저장 맵(M1) 상의 위치 인식이 실패하면, 생성된 신규 맵(M2)을 기저장 맵(M1)과 별도로 저장하는 과정(S42)이 진행된다. 이에 따라, 맵(M1)과 맵(M2)는 서로 다른 구역의 맵으로 저장될 수 있다. 구체적으로, 맵(M1)과 맵(M2)는 서로 다른 대구역(X1, X2)의 맵으로 저장될 수 있다. 또한, 신규 맵(M2)의 디스크립터들을 근거로 맵(M2)의 구역 라벨 디스크립터를 생성하는 과정(S150, S156)이 진행될 수 있다.
도 9 내지 도 12를 참고하여, 서로 다른 조건하의 위치 점핑 상황 발생에 따른 시나리오를 설명하면 다음과 같다.
도 9에서, 이동 로봇(100)이 영역(Area1)에서 주행(S5)하는 중 영역(Area2)으로 강제로 이동되어 위치 점핑 상황이 발생(S20)된 제 1시나리오를 도시한다. 상기 제 1시나리오의 조건은, ⅰ현실의 두 영역(Area1, Area2)은 이동 로봇의 동선상 서로 연결되고, ⅱ상기 두 영역(Area1, Area2)은 이미 학습되어 상기 두 영역(Area1, Area2)에 대한 기저장 맵(M1)이 이미 있다는 것이다.
상기 제 1시나리오에서, 위치 점핑 상황 발생(S20) 후, 이동 로봇(100)은 본 실시예에 따른 제어방법을 통해 기저장 맵(M1) 상의 현재 위치를 인식한다. (S200) 그 후, 이동 로봇(100)은 주행을 계속하며 새롭게 얻은 정보를 바탕하여, 기저장 맵(M1)을 갱신한다. (S31) 또한, 기저장 맵(M1)의 갱싱된 디스크립터들 및/또는 소구역들을 근거로 맵(M1)의 소구역 라벨 디스크립터를 갱신한다. (S50)
도 10에서, 이동 로봇(100)이 영역(Area1)에서 주행(S5)하는 중 영역(Area2)으로 강제로 이동되어 위치 점핑 상황이 발생(S20)된 제 2시나리오를 도시한다. 상기 제 2시나리오의 조건은, ⅰ현실의 두 영역(Area1, Area2)은 이동 로봇의 동선상 서로 연결되고, ⅱ상기 두 영역(Area1, Area2) 중 영역(Area1)은 이미 학습되어 영역(Area1)에 대한 기저장 맵(M1)이 이미 있으나, 위치 점핑 상황 발생 전에 영역(Area2)에 대한 학습은 수행되지 않았다는 것이다.
상기 제 2시나리오에서, 위치 점핑 상황 발생(S20) 후, 이동 로봇(100)은 본 실시예에 따른 제어방법을 통해 기저장 맵(M1) 상의 현재 위치를 인식을 실패한다. 이에 따라, 이동 로봇(100)은 영역(Area2)를 주행하며 학습하고, 신규 맵(M2)을 생성하는 과정이 시작된다. (S40) 상기 과정(S40) 후, 이동 로봇(100)은 영역(Area1)에 진입하게 되고, 맵핑된 맵(M2)의 일부 구역이 기저장 맵(M1)에 중첩되는 것으로 판단하게된다. 이에 따라, 기저장 맵(M1)에 신규 맵(M2)을 통합하여, 기저장 맵(M1)을 갱신하는 과정이 진행된다. (S41) 이러한 과정(S41)에서, 영역(Area2)는 맵(M1) 상의 새로운 소구역으로 추가될 수 있다. 맵(M1)의 추가된 소구역 및 추가된 디스크립터들을 근거로 맵(M1)의 소구역 라벨 디스크립터를 생성하는 과정이 진행된다. (S150)
도 11에서, 이동 로봇(100)이 층(Floor1)에서 주행(S5)하는 중 층(Floor2)으로 강제로 이동되어 위치 점핑 상황이 발생(S20)된 제 3시나리오를 도시한다. 상기 제 3시나리오의 조건은, ⅰ현실의 두 층(Floor1, Floor2)은 이동 로봇의 동선상 서로 연결 불가하고, ⅱ상기 두 층(Floor1, Floor2)은 이미 학습되어 상기 두 층(Floor1, Floor2)에 대한 기저장 맵(M1, M2)이 이미 있다는 것이다. 여기서, 층(Floor1, Floor2)은 맵(M1, M2) 상에서 서로 구분된 대구역(X1, X2)이 된다.
상기 제 3시나리오에서, 위치 점핑 상황 발생(S20) 후, 이동 로봇(100)은 본 실시예에 따른 제어방법을 통해 맵(M2) 상의 현재 위치를 인식한다. (S200) 그 후, 이동 로봇(100)은 층(Floor2)에서 주행을 계속하며 새롭게 얻은 정보를 바탕하여, 기저장 맵(M2)를 갱신한다. (S31) 또한, 기저장 맵(M2)의 갱싱된 디스크립터들 및/또는 소구역들을 근거로 맵(M2)의 소구역 라벨 디스크립터를 갱신한다. (S50) 그 후, 갱신된 소구역 라벨 디스크립터를 근거로 맵(M2)의 대구역 라벨 디스크립터를 갱신한다. (S56)
도 12에서, 이동 로봇(100)이 층(Floor1)에서 주행(S5)하는 중 층(Floor2)으로 강제로 이동되어 위치 점핑 상황이 발생(S20)된 제 4시나리오를 도시한다. 상기 제 4시나리오의 조건은, ⅰ현실의 두 층(Floor1, Floor2)은 이동 로봇의 동선상 서로 연결 불가하고, ⅱ상기 두 층(Floor1, Floor2) 중 층(Floor1)은 이미 학습되어 층(Floor1)에 대한 기저장 맵(M1)이 이미 있으나, 위치 점핑 상황 발생 전에 층(Floor2)에 대한 학습은 수행되지 않았다는 것이다.
상기 제 4시나리오에서, 위치 점핑 상황 발생(S20) 후, 이동 로봇(100)은 본 실시예에 따른 제어방법을 통해 맵(M1) 상의 현재 위치를 인식을 실패한다. 이에 따라, 이동 로봇(100)은 층(Floor2)를 주행하며 학습하고, 신규 맵(M2)을 생성하는 과정이 시작된다. (S40) 상기 과정(S40) 후, 이동 로봇(100)은 맵핑된 맵(M2)은 기저장 맵(M1)에 중첩되지 않은 것으로 판단하게된다. 이에 따라, 어느 하나의 대구역(X1)에 대응하는 기저장 맵(M1)과 다른 하나의 대구역(X2)에 대응하는 신규 맵(M2)을 같이 저장하게 된다. 또한, 신규 맵(M2)의 생성된 디스크립터들 및/또는 소구역들을 근거로 맵(M2)의 소구역 라벨 디스크립터를 생성한다. (S150) 그 후, 생성된 소구역 라벨 디스크립터를 근거로 맵(M2)의 대구역 라벨 디스크립터를 생성한다. (S156)
구역구분모듈(142) 없이 학습모듈(143) 및 인식모듈(144)을 통해, 이동 로봇(100)이 맵을 학습하고 현재 위치를 추정하는 실시예는 다음과 같다.
먼저, 맵을 학습하고 각 위치에서 획득한 영상으로부터 얻은 데이터(특징점 데이터)와 연계시키는 과정을 설명하면, 다음과 같다.
이동 로봇(100)이 주행하는 중에, 영상획득부(120)는 이동 로봇(100) 주변의 영상들을 획득한다. 획득되는 영상은 이동 로봇(100)의 상측을 향해 촬영된 영상일 수 있고, 나아가 천정의 영상 만으로도 본 발명의 기술이 구현될 수 있다. 이하, 영상획득부(120)에 의해 획득된 영상을 '획득영상'이라고 정의한다.
영상획득부(120)는 맵 상의 각 위치들에서 획득영상을 획득한다. 도 21의 그림은 주행구역 내의 어떤 위치에서 촬영된 획득영상을 도시한 것으로, 영상을 통해 천장에 위치하는 조명들, 경계(edge), 코너(corner), 얼룩(blob), 굴곡(ridge) 등의 여러가지 특징(feature)들이 확인된다.
학습모듈(143)은 획득영상들 각각으로부터 특징을 검출한다. 컴퓨터 비전(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 검출기 등이 있다.
도 21은 각 특징점(f1,f2,f3,..,fm)을 근거로 디스크립터 생성단계(S120)를 거쳐 디스크립터를 생성하는 것을 보여주는 도식도이다.(m은 자연수)
‘디스크립터(descriptor)’는, 상기 특징점을 나타내기 위한 소정 형식의 데이터를 의미하며, 디스크립터 들 간의 거리 또는 유사도가 산출 가능한 형식의 수학적 데이터를 의미한다. 예를 들어, 디스크립터는 n차원 벡터(n은 자연수) 또는 행렬 형식의 데이터일 수 있다.
본 설명 전체에 걸쳐 ‘생성’한다는 것은, 기존에 저장되어 있지 않은 데이터를 새롭게 만드는 것을 의미한다. ‘대상A를 근거로 대상B를 생성시킨다’는 것은 대상A를 입력값으로 한 정보처리 결과 대상B가 생성되는 것을 의미한다.
또한, ‘산출’한다는 것은 수학적 데이터를 계산하여 결과값인 데이터를 생성시키는 것을 의미한다.
‘대상A와 대상B를 비교한다’는 것은, 이미 공지된 기술 또는 본 발명의 설명에 개시된 실시예에 따른 기술을 통해 대상A와 대상B의 유사 정도를 판단하는 것을 의미한다.
특징 검출을 위해 SIFT(Scale Invariant Feature Transform) 기법을 이용하여 특징점(f1,f2,f3,..,fm)을 디스크립터(descriptor)로 변환할 수 있다. 상기 디스크립터는 n차원 벡터(vector)로 표기될 수 있다.(n은 자연수) 도 21에서,
Figure 112018107771613-pct00011
은 n차원 벡터를 의미한다.
Figure 112018107771613-pct00012
의 중괄호 { } 안의 f1(1), f1(2), f1(3),..,f1(n)은
Figure 112018107771613-pct00013
을 이루는 각 차원의 수치를 의미한다. 나머지
Figure 112018107771613-pct00014
에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
예를들면, SIFT는 도 21의 획득영상에서 코너점 등 식별이 용이한 특징점(f1,f2,f3,f4,f5,f6,f7)을 선택한 후, 각 특징점(f1,f2,f3,f4,f5,f6,f7) 주변의 일정한 구역에 속한 픽셀들의 밝기 구배(gradient)의 분포 특성(밝기 변화의 방향 및 변화의 급격한 정도)에 대해, 각 방향에 대한 변화의 급격한 정도를 각 차원에 대한 수치로 하는 n차원 벡터(vector)를 구하는 영상인식기법이다.
SIFT는 촬영 대상의 스케일(scale), 회전, 밝기변화에 대해서 불변하는 특징을 검출할 수 있어, 같은 영역을 로봇 청소기(100)의 자세를 달리하며 촬영하더라도 불변하는(즉, 회전 불변한(Rotation-invariant)) 특징을 검출할 수 있다. 물론, 이에 한정되지 않고 다른 다양한 기법(예를들어, HOG: Histogram of Oriented Gradient, Haar feature, Fems, LBP:Local Binary Pattern, MCT:Modified Census Transform)들이 적용될 수도 있다.
학습모듈(143)은 각 위치의 획득영상을 통해 얻은 디스크립터 정보를 바탕으로, 획득영상마다 적어도 하나의 디스크립터를 소정 하위 분류규칙에 따라 복수의 군으로 분류하고, 소정 하위 라벨규칙에 따라 같은 군에 포함된 디스크립터들을 각각 하위 라벨 디스크립터로 변환할 수 있다.(이 경우, 같은 군에 포함된 디스크립터가 오직 하나인 경우에는 디스크립터와 하위 라벨 디스크립터가 결과적으로 같을 수 있다.)
본 설명 전체에 걸쳐 ‘변환’한다는 것은, 어느 하나의 데이터를 다른 데이터로 바꾸는 것을 의미한다.
상기 소정 하위 분류규칙 및 상기 소정 하위 라벨규칙에 대한 내용은, 후술할 소정 분류규칙 및 소정 라벨규칙에 대한 설명을 통해 이해할 수 있다. 이 같은 과정을 거쳐, 각 위치의 특징분포를 구할 수 있다. 각 위치 특징분포는 히스토그램 또는 n차원 벡터로 표현될 수 있다.
다른 예로, 상기 소정 하위 분류규칙 및 소정 하위 라벨규칙을 거치지 않고, 각 특징점으로부터 생성된 디스크립터를 바탕으로 미지의 현재위치를 직접적으로 추정할 수도 있다.
다음으로, 위치 점핑 등의 이유로 이동 로봇(100)의 현재 위치가 미지의 상태가 된 경우에, 기 저장된 상기 디스크립터 또는 하위 라벨 디스크립터 등의 데이터를 근거로 현재 위치를 추정하는 과정을 설명하면, 아래와 같다.
이동 로봇(100)이 미지의 현재 위치에서 영상획득부(120)를 통해 획득영상을 획득한다. 도 28의 그림은 미지의 현재 위치에서 촬영된 영상을 도시한 것으로, 영상을 통해 천장에 위치하는 조명들, 경계(edge), 코너(corner), 얼룩(blob), 굴곡(ridge) 등의 여러가지 특징(feature)들이 확인된다.
인식모듈(144)은 획득영상으로부터 특징들을 검출한다. 컴퓨터 비전 기술 분야에서 영상으로부터 특징을 검출하는 다양한 방법 및 이들 특징의 검출에 적합한 여러 특징검출기들에 대한 설명은 상기한 바와 같다.
도 28에는, 각 인식 특징점(h1,h2,h3,..)을 근거로 인식 디스크립터 생성단계(S220)를 거쳐 인식 디스크립터를 생성하는 도식도를 보여준다.
상기 ‘인식 특징점’은 인식모듈(144)에서 수행하는 과정을 설명하는 용어로서, 학습모듈(143)에서 수행하는 과정을 설명하는 용어인 ‘특징점’과 구별하여 정의하나, 이동 로봇(100)의 외부 세계의 특징이 각각 다른 용어로 정의되는 것에 불과하다.
본 특징 검출을 위해 SIFT(Scale Invariant Feature Transform) 기법을 이용하여 인식 특징점(h1,h2,h3,..,hn)을 인식 디스크립터로 변환할 수 있다. 상기 인식 디스크립터는 n차원 벡터(vector)로 표기될 수 있다. 도 28에서,
Figure 112018107771613-pct00015
은 n차원 벡터를 의미한다.
Figure 112018107771613-pct00016
의 중괄호 { } 안의 h1(1), h1(2), h1(3),..,h1(n)은
Figure 112018107771613-pct00017
을 이루는 각 차원의 수치를 의미한다. 나머지
Figure 112018107771613-pct00018
에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
상술한 바, SIFT는 도 28의 획득영상에서 코너점 등 식별이 용이한 특징점(h1,h2,h3,h4,h5,h6,h7)을 선택한 후, 각 특징점(h1,h2,h3,h4,h5,h6,h7) 주변의 일정한 구역에 속한 픽셀들의 밝기 구배(gradient)의 분포 특성(밝기 변화의 방향 및 변화의 급격한 정도)에 대해, 각 방향에 대한 변화의 급격한 정도를 각 차원에 대한 수치로 하는 n차원 벡터(vector)를 구하는 영상인식기법이다.
인식모듈(144)은 미지의 현재 위치의 획득영상을 통해 얻은 적어도 하나의 인식 디스크립터 정보를 근거로, 소정 하위 변환규칙에 따라 비교대상이 되는 위치 정보(예를 들면, 각 위치의 특징분포)와 비교 가능한 정보(하위 인식 특징분포)로 변환한다.
소정 하위 비교규칙에 따라, 각각의 위치 특징분포를 각각의 인식 특징분포와 비교하여 각각의 유사도를 산출할 수 있다. 각각의 위치에 해당하는 상기 위치 별로 유사도(확률)를 산출하고, 그 중 가장 큰 확률이 산출되는 위치를 현재위치로 선택할 수 있다.
상기 소정 하위 변환규칙 및 상기 소정 하위 비교규칙에 대한 내용은, 후술할 소정 변환규칙 및 소정 비교규칙에 대한 설명을 통해 이해할 수 있다.
도 13 내지 도 17b, 도 21 내지 도 25, 도 28, 도 31 및 도 32를 참고하여, 주행구역(X)을 복수의 상기 소구역(A1, A2, …)으로 구분하여 맵을 학습 또는 현재위치를 인식하는 제 1실시예를 설명하면 다음과 같다.
구역구분모듈(142)은, 소정 기준에 따라 주행구역(X)을 복수의 상기 소구역으로 구분할 수 있다.
도 17a를 참고하여, 일 실시예에 따른 소구역 구분 과정(S140)에서, 소정의 소구역 구분 조건은 노드의 개수를 근거로 설정된다. 상기 일 실시예에 따른 소구역 구분 조건은, ‘연속적으로 생성된 신규 노드의 개수가 a개에 도달 하는 조건’(제 1조건)을 포함한다. 일 실시예에 따른 소구역 구분 조건이 만족되면, 추가로 생성된 신규 노드 a개가 하나의 소구역으로 그룹핑되어 구분된다. 여기서, a는 고정된 자연수 값으로 기 설정 될 수도 있고, 소정 기준에 따라 변경되는 자연수 값으로 기 설정될 수도 있다.
예를 들어, 상기 제 1조건에서 a=30으로 기 설정 될 수 있다. 연속적으로 생성된 신규 노드의 개수가 30개에 도달하면 소구역 구분 조건이 만족된다. 소구역 구분 조건이 만족되면, 추가로 생성된 신규 노드 30개가 하나의 소구역으로 그룹핑되어 구분된다. 구체적으로, 노드 들(N1 내지 N30)이 하나의 소구역(A1)으로 그룹핑되어 구분되고, 노드 들(N31 내지 N60)이 하나의 소구역(A2)으로 그룹핑되어 구분되며, 노드 들(N61 내지 N90)이 하나의 소구역(A3)으로 그룹핑되어 구분된다.
상기 일 실시예에 따른 소구역 구분 조건은, ‘주행 종료 시에 제 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노드 그룹이 서로 다른 구역으로 그룹핑되게 하는 예외 조건을 포함할 수 있다.
도 17b를 참고하여, 다른 실시예에 따른 소구역 구분 과정(S140’)에서, 소정의 소구역 구분 조건은 주행 구역의 구획 형상을 근거로 설정된다. 상기 다른 실시예에 따른 소구역 구분 조건은, 각 실 등이 구획하는 실제 구역에 대응하는 맵 상의 영역을 구역으로 구분하는 조건이다. 이동 로봇(100)은 주행 구역 내 각 실의 벽(20)과 개폐 가능한 문(21) 들을 인식하여, 상기 다른 실시예에 따른 소구역 구분 과정(S140’)이 진행할 수 있다. 상기 다른 실시예에 따른 소구역 구분 과정(S140’)은, 주행 구역(X) 내의 각 실을 근거로 노드 들을 그룹핑하여 구역으로 구분할 수 있다. 도 17b에서는, 맵 상의 각 소구역 들(A1,A2,A3,A4,A5)의 구분 근거인 실제 주행 구역의 구획 형상의 일례를 도시한다.
도 19를 참고하여, 각 소구역(A1 내지 A5, B1 내지 B5, C1 내지 C6)은 해당 소구역을 이루는 복수의 위치(노드)로 이루어진다. 예를 들어, 어느 하나의 소구역 A1은 복수의 노드 N1, N2, N3, …, Nn (n은 자연수)로 이루어질 수 있다.
또한, 각 위치에서 획득한 획득영상으로부터 얻은 데이터를 처리하는 과정은 다음과 같다.
도 20을 참고하여, 각각의 위치(예를 들어, 노드 N1, N2, N3, …, Nn)는 각각의 위치에서 획득된 획득영상과 대응한다.
본 설명 전체에 걸쳐 ‘대응’한다는 것은 1 쌍의 대상(예를들면, 1 쌍의 데이터)이 서로 매칭(mathing)되어, 둘 중 어느 하나에 대하여 다른 하나가 정해지는 관계가 형성됨을 의미한다. 예를 들면, 상기 어느 하나의 위치에 대하여 상기 어느 하나의 위치에서 획득된 획득영상이 정해지거나, 상기 어느 하나의 획득영상에 대하여 상기 어느 하나의 획득영상이 획득된 어느 하나의 위치가 정해진다고 할 때, 상기 어느 하나의 획득영상과 상기 어느 하나의 위치는 ‘대응’한다고 표현될 수 있다.
각각의 위치와 이에 대응하는 획득영상으로부터 얻은 데이터는 저장부(150)에 저장될 수 있다.
영상획득부(120)는 이동 로봇(100)의 각 위치들에서 획득영상을 획득한다. 예를 들어, 도 21의 그림은 주행구역(X) 중 소구역 A1 내의 어느 한 현실의 위치 P3에서 촬영된 획득영상을 도시한 것이다.
학습모듈(143)은 복수의 위치에서 획득된 각각의 영상으로부터 특징점(예를들어, 도12의 f1,f2,f3,f4,f5,f6,f7)을 추출한다. 각각의 획득영상으로부터 특징을 검출하는 다양한 방법 및 여러 특징검출기들은 상기한 바와 같다.
도 21을 참고하여, 학습모듈(143)은 각각의 특징점(f1,f2,f3,..,fm)에 대응하는 디스크립터를 생성한다. 각 특징점(f1,f2,f3,..,fm)을 근거로 디스크립터 생성단계(S120)를 거쳐 디스크립터를 생성하는 것을 보여주는 도식도이다. 특징 검출을 위해 SIFT 기법을 이용하는 방법은 상기한 바와 같다. 상기 디스크립터는 n차원 벡터(vector)로 표기될 수 있다.(n은 자연수) 도 21에서,
Figure 112018107771613-pct00019
은 n차원 벡터를 의미한다.
Figure 112018107771613-pct00020
의 중괄호 { } 안의 f1(1), f1(2), f1(3),..,f1(n)은
Figure 112018107771613-pct00021
을 이루는 각 차원의 수치를 의미한다.
학습모듈(143)은, 소정 학습규칙에 따라 각각의 상기 소구역 별로 소구역 특징분포를 생성한다.
상기 소정 학습규칙은, 복수의 상기 디스크립터를 복수의 군으로 분류하는 소정 분류규칙, 및 같은 군에 포함된 상기 디스크립터를 각각 라벨 디스크립터로 변환하는 소정 라벨규칙을 포함한다.
학습모듈(143)은, 각 소구역내의 모든 획득영상들로부터 얻은 복수의 디스크립터를 소정 분류규칙에 따라 복수의 군으로 분류한다.
도 22에는, 일 실시예에 따른 소정 분류규칙에 따라 소구역(A1, A2, A3) 내 복수의 디스크립터를 복수의 그룹으로 나누는 과정(S150)이 도시된다. 도 22에서, 어느 하나의 점(dot)에서 아래로 두 갈래로 뻗어나가는 라인(line)을 도시하고, 각 라인의 하단에 각각 점(dot)을 도시하는 방식으로, 하측으로 뻗어나가는 트리 구조(tree structure)가 도시된다. 상기 과정(S150)의 트리 구조에서 어느 한 점이 하측으로 두 개의 점으로 나누어지는 도식은, ‘복수의 디스크립터가 2개의 그룹으로 나누어지는 과정’(디바이딩 과정, dividing process)을 표현한 것이다. 상기 과정(S150)의 트리 구조에서 하측 종단을 이루는 점 들(A1G1 내지 A1G14, A2G1 내지 A2G17, A3G1 내지 A3G24)은, 복수의 디스크립터가 소정 분류규칙에 따라 최종적으로 나누어진 그룹 들을 표현한 것이다.
일 실시예에 따른 소정 분류규칙에 따라 소구역(A1, A2, A3) 내 복수의 디스크립터를 복수의 그룹으로 나누는 과정은, 상기 디바이딩 과정을 포함한다. 상기 디바이딩 과정에서, 나누어질 대상이 되는 복수의 디스크립터를 ‘헤드 그룹’(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개의 ‘제 m차 임시 그룹’을 생성하는 제 m차 임시 과정을 포함할 수 있다. 상기 임시 과정이 제 1차부터 제 m차까지 반복될수록, 디스크립터 들의 그룹핑이 한 가지 형태로 수렴하게 되고, 제 m차 임시 과정 이후 생성된 k1개의 제 m차 임시 그룹이 k1개의 가지 그룹이 된다. 여기서, k1은 2일 수 있다.
상기 일 실시예에 따른 소정 분류규칙은, 어느 한 구역 내 복수의 디스크립터에 대해서 상기 디바이딩 과정을 총 k2회 반복시키는 ‘기본 규칙’과, 어느 하나의 가지 그룹 내의 디스크립터의 개수가 k3개 이하일 경우 그 가지 그룹을 헤드 그룹으로 하는 디바이딩 과정을 더 이상 진행하지 않게 하는 ‘예외 규칙’을 포함한다.(여기서, k2 및 k3은 자연수) 일 예로, 소정 분류규칙은 k2=9인 기본 규칙과 k3=1로 하는 예외 규칙을 포함할 수 있다. 기본 규칙에 따라, 어느 하나의 헤드 그룹에 대해 디바이딩 과정을 거쳐 2개의 가지 그룹을 생성하고, 생성된 가지 그룹을 헤드 그룹으로 하여 디바이딩 과정을 반복적으로 진행할 수 있다. 가지 그룹 내의 디스크립터의 개수가 k3개 이하인 경우, 기본 규칙과 무관하게 예외 규칙에 따라 그 가지 그룹을 헤드 그룹으로 하는 디바이딩 과정을 더 이상 진행하지 않는다.
도 22에서는, 상기 일 실시예에 따른 소정 분류규칙에 따라, 구역 A1 내 복수의 디스크립터는 복수의 그룹 A1G1 내지 A1G14로 나누어지고, 구역 A2 내 복수의 디스크립터는 복수의 그룹 A2G1 내지 A2G17로 나누어지고, 구역 A3 내 복수의 디스크립터는 복수의 그룹 A3G1 내지 A3G24로 나누어진다.
도면에 도시되진 않으나, 다른 실시예에 따른 소정 분류규칙은, 두 디스크립터 사이의 거리가 소정 값(ST1) 이하인 디스크립터끼리 같은 그룹으로 분류하는 규칙을 포함한다. 두 디스크립터(n차원 벡터
Figure 112018107771613-pct00022
)가 같은 군으로 분류되기 위한 수학식 1은 다음과 같이 정의될 수 있다.
Figure 112018107771613-pct00023
여기서,
Figure 112018107771613-pct00024
는 두 n차원 벡터,
d는 두 n차원 벡터간의 거리,
ST1는 소정 값 임.
도 24에서, A1G1, A1G2, A1G3, …, A1Gl은 소구역 A1 내의 모든 디스크립터를 소정 분류규칙에 따라 나눌 각 군을 도시한 것이다. 대괄호 [ ] 안에는 같은 군으로 분류된 적어도 하나의 디스크립터를 도시한 것이다. 예를 들어, 어떤 하나의 군 A1G1으로 분류된 디스크립터들은
Figure 112018107771613-pct00025
이다. 나머지 A1G2, A1G3, …, A1Gl에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
도 24를 참고하여, 학습모듈(143)은 상기 소정 라벨규칙에 따라 같은 군에 포함된 디스크립터들을 각각 라벨 디스크립터로 변환한다. 도 24에서,
Figure 112018107771613-pct00026
은 소정 라벨규칙에 따라 변환된 라벨 디스크립터를 도시한 것이다. 같은 군에 속해 있는 복수의 디스크립터는 모두 같은 라벨 디스크립터로 변환된다. 예를 들어, 어떤 하나의 군 A1G1에 속해 있는 디스크립터인
Figure 112018107771613-pct00027
은 소정 라벨규칙에 따라 모두
Figure 112018107771613-pct00028
으로 변환된다. 즉, A1G1에 속해 있는 서로 다른 디스크립터 3개
Figure 112018107771613-pct00029
가 같은 라벨 디스크립터 3개
Figure 112018107771613-pct00030
로 변환된다. 나머지 A1G2, A1G3, …, A1Gl군에 속해있는 디스크립터들의 변환도 이와 같은 방식이므로 설명을 생략한다.
도 23에는, 일 실시예에 따른 소정 라벨규칙에 따라 복수의 디스크립터를 근거로 웨이트 wa의 소구역 라벨 디스크립터
Figure 112018107771613-pct00031
를 생성하는 과정(S150)이 도시된다.(여기서, wa은 자연수)
상기 소정 라벨규칙은 같은 군으로 분류된 적어도 하나의 디스크립터(n차원 벡터)의 평균값을 근거로 할 수 있다. 예를 들어, 어느 하나의 군으로 분류된 디스크립터(n차원 벡터)가
Figure 112018107771613-pct00032
라고 가정하고, x는 어느 하나의 군으로 분류된 디스크립터의 개수라고 가정할 때, 라벨 디스크립터(n차원 벡터)
Figure 112018107771613-pct00033
는 다음의 수학식 2와 같이 정의 될 수 있다.
Figure 112018107771613-pct00034
도 25를 참고하여, 상기 소정 분류규칙 및 소정 라벨규칙에 따라 변환된 라벨 디스크립터의 종류 및 각 라벨 디스크립터의 개수(웨이트, w)는 각 소구역 단위로 데이터화 된다. 예를들어, 각각의 상기 소구역(예를들어, A1) 별로 상기 라벨 디스크립터의 종류 및 각 종류당 개수(w)를 근거로 상기 소구역 특징분포가 생성될 수 있다. 어느 하나의 소구역 내에서 획득한 모든 획득영상을 통해 상기 어느 하나의 소구역 내의 모든 라벨 디스크립터의 종류 및 각 종류당 개수(w)를 산출할 수 있다. 어느 하나의 소구역 특징분포는, 각 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 개수(웨이트,w)를 근거로 산출된 스코어(s)를 도수(세로축의 값)로 보는 소구역 특징 분포 히스토그램으로 표현될 수 있다.
스코어(s)는 각 종류당 웨이트(w)가 클수록 커질 수 있다. 예를들면, 어느 한 라벨 디스크립터
Figure 112018107771613-pct00035
의 스코어(s1)는, 상기 어느 한 라벨 디스크립터
Figure 112018107771613-pct00036
의 웨이트(w1)를 해당 소구역(A1)으로부터 산출된 모든 라벨 디스크립터의 개수(해당 소구역의 총 웨이트(w))로 나눈 값에 비례하게 정의될 수 있고, 이는 아래의 수학식 3으로 표현될 수 있다.
Figure 112018107771613-pct00037
여기서, s1은 해당 소구역 특징분포에서 어느 한 라벨 디스크립터
Figure 112018107771613-pct00038
의 스코어,
w1은 상기 어느 한 라벨 디스크립터
Figure 112018107771613-pct00039
의 웨이트,
Figure 112018107771613-pct00040
은 해당 소구역(A1)에서 생성된 모든 라벨 디스크립터의 웨이트 들의 총합임.
IDF1 는 해당 소구역(A1) 내 ‘총 영상의 개수’를 ‘상기 라벨 디스크립터
Figure 112018107771613-pct00041
가 생성된 영상의 개수’로 나눈 값임.
어느 하나의 소구역 히스토그램은, 각 대표값(라벨 디스크립터)를 각 차원으로 보고, 각 대표값의 도수(스코어,s)를 각 차원의 수치로 보는 소구역 특징분포 벡터로 표현될 수 있다. 도 25를 참고하여, 맵 상의 복수의 소구역(A1,A2,…,Ak)과 각각 대응되는 소구역 특징분포 벡터가 생성될 수 있다.(k는 자연수)
맵 상의 각 소구역의 특징분포 벡터는, 상기한 바 학습모듈(143)에 의해서 학습될 수도 있으나, 이동 로봇(100)에 외부 데이터가 입력되는 방법으로 저장될 수도 있다.
제 1실시예에서, 위치 점핑 상황 발생으로 이동 로봇(100)의 현재 위치가 미지의 상태가 된 경우에, 기 저장된 각 소구역 특징분포 벡터 등의 데이터를 근거로 현재 위치가 속한 소구역을 추정하는 과정을 설명하면, 아래와 같다.
도 28을 참고하여, 이동 로봇(100)이 미지의 현재 위치(Pu)(현실의 위치)에서 영상획득부(120)를 통해 획득영상을 획득한다. 인식모듈(144)은 미지의 현재 위치(Pu)에서 획득된 영상으로부터 적어도 하나의 상기 인식 특징점을 추출한다. 도 28의 그림은 미지의 현재 위치에서 촬영된 영상을 도시한 것으로, 영상을 통해 천장에 위치하는 복수의 인식 특징점(h1,h2,h3,h4,h5,h6,h7)이 확인된다.
도 28을 참고하여, 인식모듈(144)은 상기 인식 특징점(h1,h2,h3,h4,h5,h6,h7)에 각각 대응하는 인식 디스크립터를 생성한다. 상기 인식 디스크립터는 n차원 벡터(vector)로 표기될 수 있다. 도 28에서,
Figure 112018107771613-pct00042
은 n차원 벡터를 의미한다.
Figure 112018107771613-pct00043
의 중괄호 { } 안의 h1(1), h1(2), h1(3),..,h1(n)은
Figure 112018107771613-pct00044
을 이루는 각 차원의 수치를 의미한다.
인식모듈(144)은, 소정 추정규칙에 따라 각각의 상기 소구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 소구역을 선택한다.
본 설명 전체에 걸쳐 ‘연산’한다는 것는 입력값(하나 또는 복수개의 입력값)을 일정한 규칙에 따라 계산한다는 의미이다. 예를 들어, 상기 소구역 특징분포 및/또는 상기 인식 디스크립터를 2개의 입력값으로 보아 상기 소정 츄정규칙에 따라 계산하는 경우, 소구역 특징분포 및/또는 인식 디스크립터를 ‘연산’한다고 표현할 수 있다.
상기 소정 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 소구역 특징분포와 비교 가능한 인식 특징분포를 생성하는 소정 변환규칙을 포함한다.
본 설명 전체에 걸쳐 ‘비교 가능’하다는 것은, 어느 하나의 대상과 비교를 위한 소정 규칙을 적용할 수 있는 상태인 것을 의미한다. 예를 들면, 다양한 색채의 물건으로 구성된 두 집합을 서로 색깔별로 그 개수를 비교하기 위하여, 두 집합 중 어느 하나의 색채 분류기준에 따라 다른 하나의 집합을 이루는 각 대상들의 색채를 분류해준 경우, 두 집합은 ‘비교 가능’하다고 표현될 수 있다. 다른 예를 들면, 각 종류당 개수를 달리하는 n차원 벡터들로 구성된 어느 한 집합과 다른 집합을 상기 n차원 벡터별로 그 개수를 비교하기 위하여, 두 집합 중 어느 하나의 n차원 벡터들로 다른 집합의 n차원 벡터들을 변환해준 경우, 두 집합은 ‘비교 가능’하다고 표현될 수 있다.
도 31를 참고하여, 인식모듈(144)은 미지의 현재 위치(Pu)의 획득영상을 통해 얻은 적어도 하나의 인식 디스크립터 정보를 근거로, 소정 변환규칙에 따라 비교대상이 되는 소구역 정보(예를 들면, 각 소구역 특징분포)와 비교 가능한 정보(인식 특징분포)로 변환한다. 예를 들면, 소정 변환규칙에 따라 상기 적어도 하나의 인식 디스크립터를 근거로, 상기 각 소구역 특징분포 벡터와 비교 가능한 인식 특징분포 벡터를 생성할 수 있다. 인식 디스크립터 들은 비교대상 소구역 별로 상기 소정 변환규칙을 거쳐 근접한 소구역 라벨 디스크립터로 각각 변환된다.
일 실시예로, 비교대상이 되는 어느 한 소구역(A1)의 상기 소구역 특징분포 벡터의 각 차원(각 소구역 라벨 디스크립터)을 기준으로, 소정 변환규칙에 따라 적어도 하나의 인식 디스크립터를 각각 벡터간 거리가 가장 가까운 소구역 라벨 디스크립터로 변환시킬 수 있다. 예를 들어, 인식 디스크립터
Figure 112018107771613-pct00045
Figure 112018107771613-pct00046
Figure 112018107771613-pct00047
는 어느 한 소구역(A1) 특징분포를 이루는 소구역 라벨 디스크립터들
Figure 112018107771613-pct00048
중 가장 거리가 가까운
Figure 112018107771613-pct00049
로 각각 변환될 수 있다.(도 31 참고)
나아가, 상기 소정 변환규칙에서 인식 디스크립터 및 인식 디스크립터에 가장 가까운 라벨 디스크립터 사이의 거리가 소정 값을 초과하는 경우에는, 해당 인식 디스크립터는 제외시키고 나머지 인식 디스크립터 들에 대한 정보만을 가지고 변환을 진행할 수도 있다.
어느 하나의 비교대상 소구역(A1)과 비교하는 경우에 있어서, 상기 변환된 라벨 디스크립터의 종류 및 각 종류당 개수(인식웨이트, wh)를 근거로, 상기 비교대상 소구역에 대한 인식 특징분포를 정의할 수 있다. 상기 비교대상 소구역에 대한 인식 특징분포는, 각 변환된 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 개수(인식웨이트,wh)를 근거로 산출된 인식스코어(sh)를 도수(세로 축의 값)로 보는 인식 히스토그램으로 표현될 수 있다.(도 31 참조)
인식스코어(sh)는 각 종류당 개수(인식웨이트,wh)가 클수록 커질 수 있다. 예를들면, 어느 한 변환된 라벨 디스크립터의 스코어(sh1)는, 인식 디스크립터 들이 변환된 모든 라벨 디스크립터의 개수(총 인식웨이트(wh))로 상기 어느 한 변환된 라벨 디스크립터의 웨이트(wh1)를 나눈 값에 비례하게 정의될 수 있고, 이는 아래의 수학식 4로 표현될 수 있다.
Figure 112018107771613-pct00050
여기서, sh1은 미지의 현재 위치의 획득영상을 근거로 생성되고 변환된 어느 한 라벨 디스크립터
Figure 112018107771613-pct00051
의 인식스코어,
wh1은 상기 어느 한 변환된 라벨 디스크립터
Figure 112018107771613-pct00052
의 인식웨이트,
Figure 112018107771613-pct00053
은 미지의 현재위치의 획득영상에서 생성되고 변환된 라벨 디스크립터들의 인식웨이트 들의 총합임.
IDF1 는 비교대상 소구역(A1) 내 ‘총 영상의 개수’를 ‘상기 라벨 디스크립터
Figure 112018107771613-pct00054
가 생성된 영상의 개수’로 나눈 값임.
상기 수학식 3 및 수학식 4는, 미지의 현재 위치의 인식특징점들에 의해 생성되고 변환된 라벨 디스크립터의 개수가 많을수록 더 큰 인식스코어(sh)를 부여하고, 비교대상 구역 내의 특징점들에 의해 생성된 라벨 디스크립터의 개수가 많을 수록 더 큰 스코어(s)를 부여하며, 비교대상 구역 내 희소성이 있는 영상에 의해 산출된 라벨 디스크립터에 더 큰 스코어(s) 및/또는 인식 스코어(sh)를 부여하여, 현재 위치를 더 정확하게 추정할 수 있도록 한 것이다.
미지의 현재위치의 비교대상 위치에 대한 인식 히스토그램은, 각 대표값(변환된 라벨 디스크립터)을 각 차원으로 보고, 각 대표값의 도수(인식스코어,sh)를 각 차원의 수치로 보는 인식 특징분포 벡터로 표현될 수 있다. 이를 통해, 각 비교대상 소구역 별로 각각 비교 가능한 인식 특징분포 벡터를 생성할 수 있다.
다음으로, 각각의 소구역 특징분포와 각각의 비교대상 소구역에 대한 인식 특징분포를 서로 비교하여 각각의 유사도를 산출하여, 미지의 현재위치가 속한 소구역을 선택한다. (S250)
본 설명 전체에 걸쳐 ‘선택’한다는 것은, 사람이 판단한다는 것이 아니라, 본 발명의 제어부 또는 본 발명의 제어방법이 구현되는 프로그램 등이 일정한 규칙을 이용하여 어느 하나를 선택한다는 의미이다. ‘선택’한다는 의미는, 복수의 대상 중 어느 하나를 선택하는 경우 뿐만아니라, 대상이 하나밖에 없어 그 하나를 선택하는 경우까지 포함하는 개념이다.
상기 소정 추정규칙은, 각각의 상기 소구역 특징분포를 상기 인식 특징분포와 비교하여 각각의 유사도를 산출하는 소정 비교규칙을 포함한다. 도 32를 참고하여, 소정 비교규칙에 따라 각각의 소구역 특징분포를 각각의 인식 특징분포와 비교하여 각각의 유사도를 산출할 수 있다. 예를 들어, 어느 하나의 상기 소구역 특징분포 벡터와 이에 대한 각각의 인식 특징분포 벡터(비교대상 소구역에 따라 소정 변환규칙에 따라 비교가능하게 변환된 인식 특징분포 벡터를 의미함)의 유사도는 아래의 수학식 5로 정의될 수 있다. (cosine similarity)
Figure 112018107771613-pct00055
여기서, cosθ는 유사도인 확률이고,
Figure 112018107771613-pct00056
는 어느 하나의 상기 소구역 특징분포 벡터이고,
Figure 112018107771613-pct00057
Figure 112018107771613-pct00058
에 비교가능한 인식 특징분포 벡터이고,
Figure 112018107771613-pct00059
는 두 벡터의 절대값의 곱을 의미하고,
Figure 112018107771613-pct00060
는 두 벡터의 내적을 의미함.
각각의 비교대상 소구역 별로 유사도(확률)를 산출하고, 그 중 가장 큰 확률이 산출되는 소구역을 현재위치가 속한 소구역으로 선택할 수 있다.
인식모듈(144)은, 선택된 상기 소구역에 속하는 복수의 위치 중에서 상기 현재 위치를 선택할 수 있다.
도 15 내지 도 18b 및 도 21 내지 도 32를 참고하여, 주행구역(X)을 복수의 대구역(X1, X2, …)으로 구분하여 맵을 학습 또는 현재위치를 인식하는 제 2실시예를 설명하면 다음과 같다.
구역구분모듈(142)은, 소정 기준에 따라 주행구역(X)을 복수의 상기 소구역으로 구분할 수 있다. 이에 대한 설명은 상기 제 1실시예에 대한 설명으로 갈음한다.
구역구분모듈(142)은, 소정 기준에 따라 주행구역(X)을 주행능력상 서로 분리된 복수의 대구역으로 구분할 수 있다. 구역구분모듈(142)은 소정 기준에 따라 상기 복수의 소구역을 그룹화하여, 주행구역(X)을 복수의 대구역으로 구분할 수 있다.
서로 동선상 완전히 분리된 두개의 실내공간은 각각 두개의 대구역으로 구분될 수 있다.
도 18a를 참고한 일 예로, 같은 실내 공간이라 하더라도, 상기 대구역은 주행구역(X) 내의 각 층을 근거로 구분될 수 있다. 복수의 대구역(X1,X2,X3)은 주행구역(X) 내의 각 층을 근거로 구분될 수 있다.
도 18b를 참고한 다른 예로, 같은 평면이라 하더라도 상기 대구역은 주행구역(X) 내 동선상 분리된 실내 공간을 근거로 구분될 수 있다. 복수의 대구역(X1,X2,X3)은 주행구역(X) 내의 각 건물을 근거로 구분될 수 있다.
도 19를 참고하여, 주행구역(X)은 복수의 대구역(X1,X2,X3)으로 이루어지고, 각 대구역(X1,X2,X3)은 해당 대구역을 이루는 복수의 소구역으로 이루어진다. 각 소구역(A1 내지 A5, B1 내지 B5, C1 내지 C6)은 해당 소구역을 이루는 복수의 위치(노드)로 이루어진다.
도 20 내지 25를 참고하여, 현실의 위치에서 획득영상을 획득하고, 디스크립터를 생성하며, 소정 학습규칙(소정 분류규칙 및 소정 라벨규칙)에 따라 소구역 별로 소구역 특징분포를 생성하는 과정은, 상기 제 1실시예에 대한 설명으로 갈음한다.
또한, 각 소구역 별로 분류된 정보를 처리하는 과정은 다음과 같다.
도 22, 도 23, 도 26 및 도 27을 참고하여, 학습모듈(143)은 소정 상위 학습규칙에 따라 각각의 대구역 별로 상기 대구역 특징분포를 생성한다. 대구역 특징분포는 소구역 라벨 디스크립터를 근거로 생성될 수 있다.
상기 소정 상위 학습규칙은, 복수의 상기 소구역 라벨 디스크립터를 복수의 군으로 분류하는 소정 상위 분류규칙, 및 같은 군에 포함된 상기 소구역 라벨 디스크립터를 각각 대구역 라벨 디스크립터로 변환하는 소정 상위 라벨규칙을 포함한다.
학습모듈(143)은, 각 대구역 내의 모든 소구역 라벨 디스크립터들을 소정 상위 분류규칙에 따라 복수의 군으로 분류한다.
도 23에는, 일 실시예에 따른 소정 상위 분류규칙에 따라 어느 한 대구역(X11) 내 모든 소구역 라벨 디스크립터를 복수의 그룹으로 나누는 과정(S156)이 도시된다. 도 23에서, 점(dot)과 두 갈래로 뻗어나가는 라인(line)으로 도시된 트리 구조(tree structure)에 대한 설명은 상술한 바와 같다. 상기 과정(S156)의 트리 구조에서 어느 한 점이 하측으로 두 개의 점으로 나누어지는 도식은, ‘복수의 소구역 라벨 디스크립터가 2개의 그룹으로 나누어지는 과정’(대구역 디바이딩 과정)을 표현한 것이다. 상기 과정(S156)의 트리 구조에서 하측 종단을 이루는 점 들(X1G1 내지 X1G53)은, 복수의 소구역 라벨 디스크립터가 소정 상위 분류규칙에 따라 최종적으로 나누어진 그룹 들을 표현한 것이다.
일 실시예에 따른 소정 상위 분류규칙에 따라 대구역 내 복수의 소구역 라벨 디스크립터를 복수의 그룹으로 나누는 과정은, 상기 대구역 디바이딩 과정을 포함한다. 상기 대구역 디바이딩 과정에서, 나누어질 대상이 되는 복수의 소구역 라벨 디스크립터를 ‘대구역 헤드 그룹’이라 정의하고, 두 갈래로 나누어진 2개의 그룹을 각각 ‘대구역 가지 그룹’ 이라 정의한다. 어느 하나의 대구역 디바이딩 과정에서 생성된 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개의 대구역 가지 그룹이 된다.
상기 일 실시예에 따른 소정 상위 분류규칙은, 어느 한 대구역 내 복수의 소구역 라벨 디스크립터에 대해서 상기 대구역 디바이딩 과정을 총 g2회 반복시키는 ‘기본 규칙’과, 어느 하나의 대구역 가지 그룹 내의 소구역 라벨 디스크립터의 종류가 g3개 이하일 경우 그 대구역 가지 그룹을 대구역 헤드 그룹으로 하는 대구역 디바이딩 과정을 더 이상 진행하지 않게 하는 ‘예외 규칙’을 포함한다.(여기서, g2 및 g3은 자연수) 일 예로, 소정 상위 분류규칙은 g2=14인 기본 규칙과 g3=1로 하는 예외 규칙을 포함할 수 있다. 기본 규칙에 따라, 어느 하나의 대구역 헤드 그룹에 대해 대구역 디바이딩 과정을 거쳐 2개의 대구역 가지 그룹을 생성하고, 생성된 대구역 가지 그룹을 대구역 헤드 그룹으로 하여 대구역 디바이딩 과정을 반복적으로 진행할 수 있다. 대구역 가지 그룹 내의 소구역 라벨 디스크립터의 종류가 g3개 이하인 경우, 기본 규칙과 무관하게 예외 규칙에 따라 그 대구역 가지 그룹을 대구역 헤드 그룹으로 하는 대구역 디바이딩 과정을 더 이상 진행하지 않는다.
도 23에서는, 상기 일 실시예에 따른 소정 상위 분류규칙에 따라, 대구역 X1 내 복수의 소구역 라벨 디스크립터는 복수의 그룹 X1G1 내지 X1G53로 나누어진다.
도면에 도시되진 않으나, 다른 실시예에 따른 소정 상위 분류규칙은, 두 소구역 라벨 디스크립터 사이의 거리가 소정 값(ST2) 이하인 소구역 라벨 디스크립터끼리 같은 그룹으로 분류하는 규칙을 포함한다. 두 소구역 라벨 디스크립터(n차원 벡터
Figure 112018107771613-pct00061
가 같은 군으로 분류되기 위한 수학식 6은 다음과 같이 정의될 수 있다.
Figure 112018107771613-pct00062
여기서,
Figure 112018107771613-pct00063
는 두 n차원 벡터,
d는 두 n차원 벡터간의 거리,
ST2는 소정 값 임.
도 26에서, X1G1, X1G2, X1G3, …, X1Gk은 대구역 X1 내의 모든 소구역 라벨 디스크립터를 소정 상위 분류규칙에 따라 나눌 각 군을 도시한 것이다. 대괄호 [ ] 안에는 같은 군으로 분류된 적어도 하나의 소구역 라벨 디스크립터를 도시하고, 각 소구역 라벨 디스크립터의 우측 소괄호 ( ) 안에는 각 소구역 라벨 디스크립터의 개수(웨이트,w)를 도시한 것이다. 예를 들어, 어떤 하나의 군 X1G1으로 분류된 소구역 라벨 디스크립터들은 3개(w:3)의
Figure 112018107771613-pct00064
, 10개(w:10)의
Figure 112018107771613-pct00065
, 2개(w:2)의
Figure 112018107771613-pct00066
이고,
Figure 112018107771613-pct00067
은 소구역 A1의 소구역 라벨 디스크립터들 중 어느 하나를 나타내고,
Figure 112018107771613-pct00068
은 소구역 A2의 소구역 라벨 디스크립터들 중 어느 하나를 나타내고,
Figure 112018107771613-pct00069
은 소구역 A5의 소구역 라벨 디스크립터들 중 어느 하나를 나타낸다. 나머지 X1G2, X1G3, …, X1Gk에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
도 26를 참고하여, 학습모듈(143)은 상기 소정 상위 라벨규칙에 따라 같은 군에 포함된 라벨 디스크립터들을 각각 대구역 라벨 디스크립터로 변환한다. 도 26에서,
Figure 112018107771613-pct00070
은 소정 상위 라벨규칙에 따라 변환된 대구역 라벨 디스크립터를 도시한 것이다. 같은 군에 속해 있는 복수의 라벨 디스크립터는 모두 같은 대구역 라벨 디스크립터로 변환된다. 예를 들어, 어떤 하나의 군 X1G1에 속해 있는 라벨 디스크립터인 3개(w:3)의
Figure 112018107771613-pct00071
, 10개(w:10)의
Figure 112018107771613-pct00072
및 2개(w:2)의
Figure 112018107771613-pct00073
은 소정 상위 라벨규칙에 따라 대구역 라벨 디스크립터인 15개(w:15)의
Figure 112018107771613-pct00074
으로 변환된다. 나머지 X1G2, X1G3, …, X1Gk군에 속해있는 디스크립터들의 변환도 이와 같은 방식이므로 설명을 생략한다.
도 23에는, 일 실시예에 따른 소정 상위 라벨규칙에 따라 복수의 소구역 라벨 디스크립터(웨이트 wa의
Figure 112018107771613-pct00075
, 웨이트 wb의
Figure 112018107771613-pct00076
를 근거로 웨이트 wa+wb의 대구역 라벨 디스크립터
Figure 112018107771613-pct00077
를 생성하는 과정(S156)이 도시된다.(여기서, wa 및 wb는 자연수)
상기 소정 상위 라벨규칙은 같은 군으로 분류된 적어도 하나의 소구역 라벨 디스크립터(n차원 벡터)의 평균값을 근거로 할 수 있다. 예를 들어, 어느 하나의 군으로 분류된 소구역 라벨 디스크립터(n차원 벡터)가
Figure 112018107771613-pct00078
라고 가정하고, x는 어느 하나의 군으로 분류된 소구역 라벨 디스크립터의 개수(웨이트의 총합)라고 가정할 때, 대구역 라벨 디스크립터(n차원 벡터)
Figure 112018107771613-pct00079
는 다음의 수학식 7과 같이 정의 될 수 있다.
Figure 112018107771613-pct00080
상기 소정 상위 분류규칙 및 소정 상위 라벨규칙에 따라 변환된 대구역 라벨 디스크립터의 종류 및 각 대구역 라벨 디스크립터의 개수(웨이트, w)는 각 대구역 단위로 데이터화 된다. 예를들어, 각각의 상기 대구역(예를들어, X1) 별로 상기 대구역 라벨 디스크립터의 종류 및 각 종류당 개수(w)를 근거로 상기 대구역 특징분포가 생성될 수 있다. 어느 하나의 대구역에 속한 소구역 특징분포 데이터를 통해, 상기 어느 하나의 대구역 내의 모든 대구역 라벨 디스크립터의 종류 및 각 종류당 개수(w)를 산출할 수 있다. 어느 하나의 대구역 특징분포는, 각 대구역 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 개수(웨이트,w)를 근거로 산출된 스코어(s)를 도수(세로 축의 값)로 보는 히스토그램으로 표현될 수 있다.(도 27 참조)
스코어(s)는 각 종류당 개수(웨이트,w)가 적을수록 커진다. 예를들면, 어느 한 대구역 라벨 디스크립터의 스코어(s2)는, 상기 어느 한 대구역 라벨 디스크립터
Figure 112018107771613-pct00081
의 웨이트(w2)를 해당 대구역(X1)으로부터 산출된 모든 대구역 라벨 디스크립터의 개수(해당 대구역의 총 웨이트(w))로 나눈 값에 비례하게 정의될 수 있고, 이는 아래의 수학식 8으로 표현될 수 있다.
Figure 112018107771613-pct00082
여기서, s2은 해당 대구역 특징 분포에서 어느 한 대구역 라벨 디스크립터
Figure 112018107771613-pct00083
의 스코어,
w2은 상기 어느 한 대구역 라벨 디스크립터
Figure 112018107771613-pct00084
의 웨이트,
Figure 112018107771613-pct00085
은 해당 대구역(X1)에서 생성된 모든 대구역 라벨 디스크립터의 웨이트 들의 총합임.
IDF2 는 해당 대구역(X1) 내 ‘총 영상의 개수’를 ‘상기 대구역 라벨 디스크립터
Figure 112018107771613-pct00086
가 생성된 영상의 개수’로 나눈 값임.
어느 하나의 대구역 히스토그램은, 각 대표값(대구역 라벨 디스크립터)를 각 차원으로 보고, 각 대표값의 도수(스코어,s)를 각 차원의 수치로 보는 대구역 특징분포 벡터로 표현될 수 있다. 도 27를 참고하여, 맵 상의 복수의 대구역(X1,X2,…,Xj)과 각각 대응되는 대구역 특징분포 벡터가 생성될 수 있다.(j는 자연수)
맵 상의 각 대구역 특징분포 벡터는, 상기한 바 학습모듈(143)에 의해서 학습될 수도 있으나, 이동 로봇(100)에 외부 데이터가 입력되는 방법으로 저장될 수도 있다.
제 2실시예에서, 위치 점핑 상황 발생으로 이동 로봇(100)의 현재 위치가 미지의 상태가 된 경우에, 기 저장된 각 대구역 특징분포 벡터 등의 데이터를 근거로 현재 위치가 속한 대구역을 추정하는 과정을 설명하면, 아래와 같다.
도 28을 참고하여, 이동 로봇(100)이 미지의 현재 위치에서 획득영상을 획득하고, 인식 특징점(h1,h2,h3,h4,h5,h6,h7)에 각각 대응하는 인식 디스크립터를 생성하는 과정은, 상기 제 1실시예에 대한 설명으로 갈음한다.
인식모듈(144)은, 소정 상위 추정규칙에 따라 각각의 상기 대구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 대구역을 선택한다. 인식모듈(144)은, 선택된 상기 대구역에 속하는 복수의 소구역 중에서 상기 소정 추정규칙에 따라 각각의 상기 소구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 소구역을 선택할 수 있다. 다른 예로, 인식모듈(144)은, 선택된 상기 대구역에 속하는 복수의 위치 중에서 상기 현재 위치가 속한 어느 한 위치를 바로 선택할 수도 있다.
상기 소정 상위 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 대구역 특징분포와 비교 가능한 상위 인식 특징분포를 생성하는 소정 상위 변환규칙을 포함한다.
도 29를 참고하여, 인식모듈(144)은 미지의 현재 위치(Pu)의 획득영상을 통해 얻은 적어도 하나의 인식 디스크립터 정보를 근거로, 소정 상위 변환규칙에 따라 비교대상이 되는 대구역 정보(예를 들면, 각 대구역 특징분포)와 비교 가능한 정보(상위 인식 특징분포)로 변환한다. 예를 들면, 소정 상위 변환규칙에 따라 상기 적어도 하나의 인식 디스크립터를 근거로, 상기 각 대구역 특징분포 벡터와 비교 가능한 상위 인식 특징분포 벡터를 생성할 수 있다. 인식 디스크립터 들은 비교대상 대구역 별로 상기 소정 상위 변환규칙을 거쳐 근접한 대구역 라벨 디스크립터로 각각 변환된다.
일 실시예로, 비교대상이 되는 어느 한 대구역(X1)의 상기 대구역 특징분포 벡터의 각 차원(각 대구역 라벨 디스크립터)을 기준으로, 소정 상위 변환규칙에 따라 적어도 하나의 인식 디스크립터를 각각 벡터간 거리가 가장 가까운 대구역 라벨 디스크립터로 변환시킬 수 있다. 예를 들어, 인식 디스크립터
Figure 112018107771613-pct00087
Figure 112018107771613-pct00088
Figure 112018107771613-pct00089
는 어느 한 대구역 특징분포를 이루는 대구역 라벨 디스크립터들 중 가장 거리가 가까운 어느 하나로 각각 변환될 수 있다.
나아가, 상기 소정 상위 변환규칙에서 인식 디스크립터 및 인식 디스크립터에 가장 가까운 대구역 라벨 디스크립터 사이의 거리가 소정 값을 초과하는 경우에는, 해당 인식 디스크립터는 제외시키고 나머지 인식 디스크립터 들에 대한 정보만을 가지고 변환을 진행할 수도 있다.
어느 하나의 비교대상 대구역(X1)과 비교하는 경우에 있어서, 상기 변환된 대구역 라벨 디스크립터의 종류 및 각 종류당 개수(인식웨이트, wh)를 근거로, 상기 비교대상 대구역에 대한 상위 인식 특징분포를 정의할 수 있다. 상기 비교대상 대구역에 대한 상위 인식 특징분포는, 각 변환된 대구역 라벨 디스크립터의 종류를 대표값(가로 축의 값)으로 보고, 각 종류당 개수(인식웨이트,wh)를 근거로 산출된 인식스코어(sh)를 도수(세로 축의 값)로 보는 상위 인식 히스토그램으로 표현될 수 있다.(도 29 참조)
인식스코어(sh)는 각 종류당 개수(인식웨이트,wh)가 클수록 커질 수 있다. 예를들면, 어느 한 변환된 대구역 라벨 디스크립터의 스코어(sh2)는, 인식 디스크립터 들이 변환된 모든 대구역 라벨 디스크립터의 개수(총 인식웨이트(wh))로 상기 어느 한 변환된 대구역 라벨 디스크립터의 웨이트(wh2) 나눈 값에 비례하게 정의될 수 있고, 이는 아래의 수학식 9로 표현될 수 있다.
Figure 112018107771613-pct00090
여기서, sh2은 미지의 현재 위치의 획득영상을 근거로 생성되고 변환된 어느 한 대구역 라벨 디스크립터
Figure 112018107771613-pct00091
의 인식스코어,
wh2은 상기 어느 한 변환된 대구역 라벨 디스크립터
Figure 112018107771613-pct00092
의 인식웨이트,
Figure 112018107771613-pct00093
은 미지의 현재위치의 획득영상에서 생성되고 변환된 대구역 라벨 디스크립터들의 인식웨이트 들의 총합임.
IDF2 는 비교대상 대구역(X1) 내 ‘총 영상의 개수’를 ‘상기 대구역 라벨 디스크립터
Figure 112018107771613-pct00094
가 생성된 영상의 개수’로 나눈 값임.
상기 수학식 8 및 수학식 9는, 미지의 현재 위치의 인식특징점들에 의해 생성되고 변환된 대구역 라벨 디스크립터의 개수가 많을수록 더 큰 인식스코어(sh)를 부여하고, 비교대상 대구역 내의 특징점들에 의해 생성된 대구역 라벨 디스크립터의 개수가 많을 수록 더 큰 스코어(s)를 부여하며, 비교대상 대구역 내 희소성이 있는 영상에 의해 산출된 대구역 라벨 디스크립터에 더 큰 스코어(s) 및/또는 인식 스코어(sh)를 부여하여, 현재 위치를 더 정확하게 추정할 수 있도록 한 것이다.
미지의 현재위치의 비교대상 위치에 대한 인식 히스토그램은, 각 대표값(변환된 대구역 라벨 디스크립터)을 각 차원으로 보고, 각 대표값의 도수(인식스코어,sh)를 각 차원의 수치로 보는 상위 인식 특징분포 벡터로 표현될 수 있다. 이를 통해, 각 비교대상 대구역 별로 각각 비교 가능한 상위 인식 특징분포 벡터를 생성할 수 있다.
다음으로, 각각의 대구역 특징분포와 각각의 비교대상 대구역에 대한 상위 인식 특징분포를 서로 비교하여 각각의 유사도를 산출하여, 미지의 현재위치가 속한 대구역을 선택한다. (S256)
상기 소정 상위 추정규칙은, 각각의 상기 대구역 특징분포를 상기 상위 인식 특징분포와 비교하여 각각의 유사도를 산출하는 소정 상위 비교규칙을 포함한다. 도 30을 참고하여, 소정 상위 비교규칙에 따라 각각의 대구역 특징분포를 각각의 상위 인식 특징분포와 비교하여 각각의 유사도를 산출할 수 있다. 예를 들어, 어느 하나의 상기 대구역 특징분포 벡터와 이에 대한 각각의 상위 인식 특징분포 벡터(비교대상 대구역에 따라 소정 상위 변환규칙에 따라 비교가능하게 변환된 상위 인식 특징분포 벡터를 의미함)의 유사도는 아래의 수학식 10으로 정의될 수 있다. (cosine similarity)
Figure 112018107771613-pct00095
여기서, cosθ는 유사도인 확률이고,
Figure 112018107771613-pct00096
는 어느 하나의 상기 대구역 특징분포 벡터이고,
Figure 112018107771613-pct00097
Figure 112018107771613-pct00098
에 비교가능한 상위 인식 특징분포 벡터이고,
Figure 112018107771613-pct00099
는 두 벡터의 절대값의 곱을 의미하고,
Figure 112018107771613-pct00100
는 두 벡터의 내적을 의미함.
각각의 비교대상 대구역 별로 유사도(확률)를 산출하고, 그 중 가장 큰 확률이 산출되는 대구역을 현재위치가 속한 대구역으로 선택할 수 있다.
인식모듈(144)은 선택된 상기 대구역에 속하는 복수의 소구역 중에서 어느 하나를 선택하고, 선택된 상기 어느 하나의 소구역에 속하는 복수의 위치 중에서 상기 현재 위치를 선택할 수 있다. 이 경우, 선택된 상기 대구역에 속하는 복수의 소구역 중에 어느 하나의 소구역을 선택하는 과정은, 상기 소정 추정규칙을 이용하는 상기 제 1실시예에 대한 설명으로 갈음한다.
다른 예로, 인식모듈(144)은 선택된 상기 대구역에 속하는 복수의 위치 중에서 상기 현재 위치를 선택할 수도 있다.
도 13을 참고하여, 상기 제 1실시예에 따른 제어방법은, 주행구역을 학습하여 맵을 생성하는 학습단계(S100), 및 상기 맵 상에서 현재 위치를 선택하는 인식단계(S200)를 포함한다.
학습단계(S100)는, 소정 기준에 따라 주행구역(X)을 복수의 소구역으로 구분하는 소구역 구분단계(S140, S140’)를 포함할 수 있다.
상기 학습단계(S100)는, 각각의 상기 소구역 내의 복수의 위치에서 각각 영상을 획득하고, 각각의 상기 영상에서 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하는 디스크립터 생성단계(S120)를 포함한다. 디스크립터 생성단계(S120)는 소구역 구분단계(S140, S140’)와 동시에 진행될 수도 있다.
학습단계(S100)는, 소구역 구분단계(S140, S140’) 및 디스크립터 생성단계(S120) 이후, 복수의 상기 디스크립터를 근거로 하여 상기 소정 학습규칙에 따라 각각의 상기 소구역 별로 생성된 소구역 특징분포를 생성하는 소구역 특징분포 생성단계(S152)를 포함한다.
상기 인식단계(S200)는, 상기 현재 위치의 영상을 획득하고, 획득된 영상에서 적어도 하나의 상기 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 상기 인식 디스크립터를 생성하는 인식 디스크립터 생성단계(S220)를 포함한다.
상기 인식단계(S200)는, 인식 디스크립터 생성단계(S220) 이후, 상기 소정 추정규칙에 따라 각각의 상기 소구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 소구역을 선택하는 소구역 선택단계(S250)를 포함한다.
소구역 선택단계(S250) 이후, 상기 인식단계는, 상기 선택된 어느 한 소구역 내의 복수의 위치 중 상기 현재위치를 선택하는 위치 선택단계(S270)를 포함한다. 위치 선택단계(S270)에서 맵 상의 복수의 노드 중 어느 한 노드를 선택할 수 있다.
도 14a를 참고하여, 상기 제 1실시예에 따른 학습 과정(S100)은 학습초기단계를 포함한다. 상기 학습초기단계는 주행 및 영상 획득 과정(S110), 디스크립터를 생성하는 과정(S120) 및 노드를 생성하는 과정(S130)을 포함한다.
학습 과정(S100)은 주행 및 영상 획득 과정(S110)을 포함한다. 상기 과정(S110)에서, 이동 로봇(100)이 주행하면서 이격된 각 지점(현실의 위치) 별로 영상을 획득한다. 각 지점에 각 획득 영상이 대응한다.
학습 과정(S100)은, 획득된 영상에서 추출된 복수의 특징점에 대응하는 각각의 디스크립터를 생성하는 과정(S120)을 포함한다. 복수의 특징점에 복수의 디스크립터가 일대일대응 한다. 상기 과정(S120)은 어느 한 지점에서 영상을 획득한 후 다음 지점으로 이동하는 과정 중에 진행될 수 있다. 상기 과정(S120)은 상기 과정(S110)이 진행되는 중에 진행될 수 있다.
학습 과정(S100)은 맵 상의 노드를 생성하는 과정(S130)을 포함한다. 상기 과정(S130)에서 복수의 노드를 생성한다. 각각의 노드는 상기 각 지점의 좌표 정보에 대응한다. 각각의 노드는 각 지점에서 획득된 각 영상에 대응한다. 각각의 노드에 각각의 영상 정보가 대응한다. 복수의 노드에 복수의 획득 영상이 일대일대응 할 수 있다. 상기 과정(S130)은 어느 한 지점에서 다음 지점으로 이동하는 과정 중에 진행될 수 있다. 상기 과정(S130)은 상기 과정(S110) 및/또는 상기 과정(S120)이 진행되는 중에 진행될 수 있다.
학습 과정(S100)은 소정 기준에 따라 주행 구역(X)을 소구역으로 구분하는 과정(S140, S140’)을 포함한다. 상기 과정(S140, S140’)을 소구역 구분단계(S140, S140’)라 지칭할 수 있다. 상기 어느 한 소구역(A1)를 구분하는 과정(S140, S140’)은 상기 어느 한 소구역(A1)의 소구역 라벨 디스크립터를 생성하는 과정(S150) 이전에 진행된다. 상기 과정(S140, S140’)은 노드 생성 과정(S130)이 진행되는 중에 진행될 수 있다. 상기 복수의 노드 중 일부의 노드 들이 그룹핑되어 하나의 소구역으로 구분될 수 있다. 상기 과정(S140, S140’)은 상기 학습초기단계를 수행하는 동안 신규의 노드가 생성되어 상기 소구역 구분 조건이 만족되면 수행될 수 있다.
학습 과정(S100)은 복수의 상기 디스크립터를 근거로 소구역 라벨 디스크립터를 생성하는 과정(S150)을 포함한다. 상기 과정(S150)에서, 상기 각 소구역별로, 소구역 내 복수의 디스크립터를 복수의 그룹으로 분류한다. 상기 과정(S150)에서, 상기 각 소구역별로, 상기 소정 분류규칙에 따라 소구역 내 복수의 디스크립터를 복수의 그룹으로 분류한다. 상기 과정(S150)에서, 같은 그룹으로 분류된 디스크립터 들을 대표하는 소구역 라벨 디스크립터를 생성한다. 상기 과정(S150)에서, 상기 소정 라벨규칙에 따라 같은 그룹으로 분류된 디스크립터 들을 근거로 소구역 라벨 디스크립터를 생성한다.
학습 과정(S100)은, 상기 과정(S150) 후, 복수의 소구역 라벨 디스크립터를 근거로 상기 소구역 특징분포를 생성하는 과정(S152)을 더 포함할 수 있다. 상기 과정(S152)은, 비교 대상 소구역 별 소구역 특징분포와 인식 특징분포를 비교하는 과정(S240) 이전에 수행되면 충분하다.
도 14b를 참고하여, 제 1실시예에 따른 인식 과정(S200)은 이동 로봇(100)이 미지의 현재 위치에서 인식 영상을 획득하는 인식 영상 획득 과정(S210)을 포함한다. 여기서, ‘인식 영상’이란 미지의 현재 위치에서 획득된 영상을 의미한다.
인식 과정(S200)은, 인식 영상에서 추출된 복수의 인식 특징점에 대응하는 각각의 인식 디스크립터를 생성하는 과정(S220)을 포함한다. 복수의 인식 특징점에 복수의 인식 디스크립터가 일대일대응 한다. 상기 과정(S220)은 미지의 현재 위치에서 적어도 하나의 인식 영상을 획득한 후 진행될 수 있다.
인식 과정(S200)은, 상기 과정(S220) 이후, 비교 대상 소구역 별로, 소구역 내 복수의 소구역 라벨 디스크립터들와 상기 복수의 인식 디스크립터들을 비교하는 과정(S240)을 포함한다. 상기 과정(S240)에서, 비교 대상 소구역 별, 소구역 특징분포와 인식 특징분포를 비교할 수 있다.
인식 과정(S200)은, 복수의 소구역 중 미지의 현재 위치가 속한 것으로 추정되는 어느 한 소구역을 선택하는 과정(S250)을 포함한다. 상기 비교 과정(S240)을 통해서, 가장 유사도가 높은 소구역을 선택(S250)한다.
인식 과정(S200)은, 비교 대상 노드 별로 노드에 대응하는 영상의 디스크립터 정보를 인식 영상에 대응하는 인식 디스크립터 정보와 비교하는 과정(S261)을 포함한다. 상기 비교 과정(S261)에서 비교 대상 노드는, 상기 구역 선택 과정(S250)에서 선택된 구역 내 복수의 노드이다. 일 예로, 상기 비교 과정(S261)에서, 각 노드에 대응하는 복수의 라벨 디스크립터와 상기 인식 영상을 근거로 생성되고 변환된 복수의 라벨 디스크립터를 서로 비교하여, 비교 대상 노드 별 유사도를 산출할 수 있다.
인식 과정(S200)은, 하나 이상의 비교대상 노드 중에 현재 위치로 추정되는 노드를 선택하는 과정(S270)을 포함한다. 상기 과정(S270)에서, 현재 위치로 추정되는 노드를 선택한다. 상기 노드 선택 과정(S270)에서는, 각 비교 대상 노드 별로 산출한 유사도 중 가장 큰 값이 산출된 노드를 선택할 수 있다.
도 15를 참고하여, 상기 제 2실시예에 따른 제어방법은, 주행구역을 학습하여 맵을 생성하는 학습단계(S100’), 및 상기 맵 상에서 현재 위치를 선택하는 인식단계(S200’)를 포함한다.
학습단계(S100’)는, 소정 기준에 따라 주행구역(X)을 복수의 소구역으로 구분하는 소구역 구분단계(S140, S140’), 및 소정 기준에 따라 주행구역(X)을 상기 복수의 소구역이 그룹화된 복수의 대구역으로 구분하는 대구역 구분단계(S146, S146’)를 포함한다.
여기서, 소구역 구분단계(S140, S140’) 및 대구역 구분단계(S146, S146’) 중 적어도 어느 하나를 포함하는 단계를 ‘구역 구분단계’로 지칭할 수 있다. 소구역 구분단계(S140, S140’) 및 대구역 구분단계(S146, S146’)는 동시에 진행되거나 어느 하나가 먼저 진행될 수 있다.
학습단계(S100’)는, 각각의 상기 대구역 내의 복수의 위치에서 각각 영상을 획득하고, 각각의 상기 영상에서 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하는 디스크립터 생성단계(S120)를 포함한다. 디스크립터 생성단계(S120)는 구역 구분단계(S140, S140’, S146, S146’)와 동시에 진행될 수도 있다.
학습단계(S100’)는, 구역 구분단계(S140, S140’, S146, S146’) 및 디스크립터 생성단계(S120) 이후, 상기 학습단계는, 복수의 상기 디스크립터를 근거로 하여 상기 소정 학습규칙에 따라 각각의 상기 소구역 별로 생성된 소구역 특징분포를 생성하는 소구역 특징분포 생성단계(S152)를 포함한다.
학습단계(S100’)는, 소구역 특징분포 생성단계(S152) 이후, 상기 학습단계는, 복수의 상기 소구역 특징분포를 근거로 하여 상기 소정 상위 학습규칙에 따라 각각의 대구역 별로 생성된 상기 대구역 특징분포를 저장하는 대구역 특징분포 생성단계(S157)를 더 포함한다.
상기 인식단계(S200’)는, 상기 현재 위치의 영상을 획득하고, 획득된 영상에서 적어도 하나의 상기 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 상기 인식 디스크립터를 생성하는 인식 디스크립터 생성단계(S220)를 포함한다.
인식단계(S200’)는, 인식 디스크립터 생성단계(S220) 이후, 소구역 선택단계(S250) 이전에, 상기 소정 상위 추정규칙에 따라 각각의 상기 대구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 대구역을 선택하는 대구역 선택단계(S256)를 포함한다.
인식단계(S200’)는, 인식 디스크립터 생성단계(S220) 이후, 상기 소정 추정규칙에 따라 각각의 상기 소구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 대구역 선택단계에서 선택된 상기 대구역에 속하는 복수의 소구역 중 상기 어느 한 소구역을 선택하는 소구역 선택단계(S250)를 포함한다.
인식단계(S200’)는, 소구역 선택단계(S250) 이후, 상기 선택된 어느 한 소구역 내의 복수의 위치 중 상기 현재위치를 선택하는 위치 선택단계(S270)를 포함한다. 위치 선택단계(S270)에서 맵 상의 복수의 노드 중 어느 한 노드를 선택할 수 있다.
도 16a를 참고하여, 제 2실시예에 따른 학습 과정(S100’) 중 상기 제 1실시예에 따른 학습 과정(S100)과 중복되는 과정은 동일 도면 부호로 표기하고, 중복되는 내용의 설명은 생략한다.
학습 과정(S100’)은, 소정 기준에 따라 주행 구역(X)을 대구역으로 구분하는 과정(S146, S146’)을 포함한다. 상기 과정(S146, S146’)을 대구역 구분단계(S140’, S146)라 지칭할 수 있다. 상기 어느 한 대구역(X1)를 구분하는 과정(S146, S146’)은 상기 어느 한 대구역(X1)의 대구역 라벨 디스크립터를 생성하는 과정(S156) 이전에 진행된다. 상기 과정(S146, S146’)은 노드 생성과정(S130)의 진행이 시작된 후에 진행될 수 있다. 상기 과정(S146, S146’)은 소구역 구분과정(S140, S140’)의 진행이 시작된 후에 진행될 수도 있으나, 상기 과정(S140, S140’)의 전에 진행되는 것도 가능하다. 상기 복수의 소구역 중 일부의 소구역 들이 그룹핑되어 하나의 대구역으로 구분될 수도 있다.
학습 과정(S100’)은 복수의 상기 소구역 라벨 디스크립터를 근거로 대구역 라벨 디스크립터를 생성하는 과정(S156)을 포함한다. 상기 과정(S156)에서, 상기 각 대구역 별로, 대구역 내 복수의 소구역 라벨 디스크립터를 복수의 그룹으로 분류한다. 상기 과정(S156)에서, 대구역 내 생성된 소구역 라벨 디스크립터 들을 복수의 그룹으로 분류한다. 상기 과정(S156)에서, 상기 각 대구역별로, 상기 소정 상위 분류규칙에 따라 대구역 내 복수의 소구역 라벨 디스크립터를 복수의 그룹으로 분류할 수 있다. 상기 과정(S156)에서, 같은 그룹으로 분류된 소구역 라벨 디스크립터 들을 대표하는 대구역 라벨 디스크립터를 생성한다. 상기 과정(S156)에서, 상기 소정 상위 라벨규칙에 따라 같은 그룹으로 분류된 소구역 라벨 디스크립터 들을 근거로 대구역 라벨 디스크립터를 생성한다. 상기 과정(S156)은 이동 로봇(100)이 모든 주행을 마친 후 최종적으로 진행될 수 있다.
학습 과정(S100’)은, 상기 과정(S156) 후, 복수의 대구역 라벨 디스크립터를 근거로 상기 대구역 특징분포를 생성하는 과정(S157)을 더 포함할 수 있다. 상기 과정(S157)은, 비교 대상 대구역 별 대구역 특징분포와 상위 인식 특징분포를 비교하는 과정(S246) 이전에 수행되면 충분하다.
도 16b를 참고하여, 제 2실시예에 따른 인식 과정(S200’) 중 상기 제 1실시예에 따른 인식 과정(S200)과 중복되는 과정은 동일 도면 부호로 표기하고, 중복되는 내용의 설명은 생략한다.
인식 과정(S200’)은, 상기 과정(S220) 이후, 비교 대상 대구역 별로, 대구역 내 복수의 대구역 라벨 디스크립터와 상기 복수의 인식 디스크립터들을 비교하는 과정(S246)을 포함한다. 상기 과정(S246)에서, 비교 대상 대구역 별, 대구역 특징분포와 상위 인식 특징분포를 비교할 수 있다.
인식 과정(S200’)은, 복수의 대구역 중 미지의 현재 위치가 속한 것으로 추정되는 어느 한 대구역을 선택하는 과정(S256)을 포함한다. 상기 비교 과정(S246)을 통해서, 가장 유사도가 높은 대구역을 선택(S256)한다.
인식 과정(S200’)은, 상기 과정(S256) 이후 진행되는 상기 과정(S240)을 포함한다. 상기 비교 과정(S240)에서 비교 대상 소구역은, 상기 대구역 선택 과정(S256)에서 선택된 대구역에 속하는 복수의 소구역으로 한정될 수 있다. 제 2실시예에서는 선택된 대구역에 속하는 복수의 소구역이 비교 대상이라는 점 및 상기 과정(S256) 이후에 진행되는 점을 제외하고, 제 2실시예의 상기 비교 과정(S240)은 제 1실시예의 상기 비교 과정(S240)과 동일하다.
인식 과정(S200’)은, 상기 비교 과정(S240) 이후 진행되는 상기 과정 들(S250, S261, S270)을 포함한다. 상기 과정 들(S250, S261, S270) 상기 제 1실시예에 대한 설명으로 갈음한다.
도 33을 참고하여, 상기 제 1실시예에 따른 일 시나리오를 설명하면 다음과 같다. 이동 로봇(100)은 어느 한 주거 공간의 바닥을 따라 주행을 한다. (S5) 이동 로봇(100)은 상기 주거 공간에 대한 학습을 마쳐, 상기 주거 공간에 대한 기저장 맵(M1)이 있는 상태이다. 이동 로봇(100)의 현실의 위치는, 도 33에 도시된 주거 공간의 어느 한 방 안의 어느 한 지점이다. 이동 로봇(100)은, 위치 점핑 상황 발생(S20) 이전에 주행 정보를 통해서 맵(M1) 상의 현재 위치(색칠된 점에 대응하는 노드)를 인식하고 있다. (S6) 맵(M1) 상에서 현실의 위치가 속한 방은 소구역(A3)에 대응된다.
이 때, 위치 점핑 상황이 발생된다. (S20) 예를 들어, 사용자는 주행 중인 이동 로봇(100)을 다른 방으로 들어서 옮겨 놓는다. 이 경우, 이동 로봇(100)은 일시적으로 위치 미지 상태(맵 상의 위치를 알 수 없는 상태)가 된다. (S25)
이 때, 이동 로봇(100)은 미지의 현재 위치에서 인식 영상을 획득하고, 인식 영상을 근거로 복수의 인식 디스크립터를 생성한다.
비교 예(O)에 따르면, 인식 영상 획득 후 주행 구역 내 각 노드별로, 노드 정보와 인식 디스크립터 정보를 비교하여(O1), 가장 유사도가 높게 산출되는 어느 한 노드를 선택한다(O2). 그러나, 이 경우 매우 많은 복수의 노드를 각각 인식 디스크립터 정보와 비교해야 함에 따라, 상대적으로 긴 시간(To)이 소요된다.
상기 제 1실시예(Q)에 따르면, 인식 영상 획득 후 주행 구역 내 각 소구역 별로 소구역 정보(예를 들어, 소구역 특징분포)와 인식 디스크립터 정보(예를 들어, 인식 특징분포)를 비교하여(S240), 현재 위치가 속할 것으로 추정되는 맵(M1) 상의 소구역(A1)이 선택된다(S250). 그 후, 선택된 소구역(A1) 내 각 노드 별로 노드의 정보와 인식 디스크립터의 정보를 비교하여(S261), 현재 위치로 추정되는 소구역(A1) 내의 어느 한 노드가 선택된다(S270). 이 경우, 상기 소구역 정보는 위치 점핑 상황 발생 전에 생성될 수 있고, 인식 영상을 비교하는 노드의 수가 현격히 줄어들어, 현재 위치를 추정하는 데 소요되는 시간(Ta)이 상대적으로 매우 짧게 된다. 본 시나리오의 경우, 5개의 소구역 정보 및 어느 한 소구역 내 노드 정보들만 인식 디스크립터 정보와 비교하면 되므로, 상기 비교예(O)에 비해 ‘(소구역 A1의 면적)/(주행 구역의 전체 면적)’배에 가까운 수준으로 비교 대상이 줄어들게 된다. (이는 약 1/5배 정도가 됨)
도 34를 참고하여, 상기 제 2실시예에 따른 일 시나리오를 설명하면 다음과 같다. 이동 로봇(100)은 어느 한 3층 건물의 1층 바닥을 따라 주행을 한다. (S5) 이동 로봇(100)은 상기 3층 건물의 모든 층에 대한 학습을 마쳐, 각 층에 대한 기저장 맵(M1, M2, M3)이 있는 상태이다. 이동 로봇(100)은 3개의 층을 각각 3개의 대구역(X1, X2, X3)으로 인식하게 된다. 이동 로봇(100)은 3개의 대구역(X1, X2, X3)에 대한 각각의 맵(M1, M2, M3)을 저장하고 있다. 이동 로봇(100)의 현실의 위치는, 도 34에 도시된 1층의 어느 한 방 안의 어느 한 지점이다. 이동 로봇(100)은, 위치 점핑 상황 발생(S20) 이전에 주행 정보를 통해서 대구역(X1)에 대한 맵(M1) 상의 현재 위치(색칠된 점에 대응하는 노드)를 인식하고 있다. (S6) 맵(M1, M2, M2) 상에서 현실의 위치가 속한 1층은 대구역(X1)의 맵(M1)에 대응되고, 현실의 위치가 속한 방은 대구역(X1) 내의 소구역(A3)에 대응된다.
이 때, 위치 점핑 상황이 발생된다. (S20) 예를 들어, 사용자는 주행 중인 이동 로봇(100)을 2층의 다른 방으로 들어서 옮겨 놓는다. 이 경우, 이동 로봇(100)은 일시적으로 위치 미지 상태(맵 상의 위치를 알 수 없는 상태)가 된다. (S25)
이 때, 이동 로봇(100)은 미지의 현재 위치에서 인식 영상을 획득하고, 인식 영상을 근거로 복수의 인식 디스크립터를 생성한다.
도시되지는 않았으나 비교 예(O)에 따르면, 인식 영상 획득 후 주행 구역(X1, X2, X3) 내 각 노드별로, 노드 정보와 인식 디스크립터 정보를 비교하여, 가장 유사도가 높게 산출되는 어느 한 노드를 선택한다. 그러나, 이 경우 매우 많은 복수의 노드를 각각 인식 디스크립터 정보와 비교해야 함에 따라, 상대적으로 긴 시간(To)이 소요된다.
상기 제 2실시예(Q)에 따르면, 인식 영상 획득 후 주행 구역(X) 내 각 대구역(X1, X2, X3) 별로 대구역 정보(예를 들어, 대구역 특징분포)와 인식 디스크립터 정보(예를 들어, 상위 인식 특징분포)를 비교하여(S246), 현재 위치가 속할 것으로 추정되는 맵(M1, M2, M3) 상의 대구역(X2)이 선택된다(S256). 그 후, 선택된 대구역(X2) 내 각 소구역(B1, B2, B3, B4, B5, B6) 별로 소구역 정보(예를 들어, 소구역 특징분포)와 인식 디스크립터 정보(예를 들어, 인식 특징분포)를 비교하여(S240), 현재 위치가 속할 것으로 추정되는 대구역(X2)의 맵(M2) 상의 소구역(B3)이 선택된다(S250). 그 후, 선택된 소구역(B3) 내 각 노드 별로 노드의 정보와 인식 디스크립터의 정보를 비교하여(S261), 현재 위치로 추정되는 소구역(A1) 내의 어느 한 노드가 선택된다(S270). 이 경우, 상기 대구역 정보와 상기 소구역 정보는 위치 점핑 상황 발생 전에 생성될 수 있고, 인식 영상을 비교하는 노드의 수가 현격히 줄어들어, 현재 위치를 추정하는 데 소요되는 시간(Tb)이 상대적으로 매우 짧게 된다. 본 시나리오의 경우, 3개의 대구역 정보와 6개의 소구역 정보 및 어느 한 소구역(B3) 내 노드 정보들만 인식 디스크립터 정보와 비교하면 되므로, 상기 비교예(O)에 비해 거의 ‘(소구역 B3의 면적)/(대구역 X1, X2, X3의 전체 면적)’배에 가까운 수준으로 비교 대상이 줄어들게 된다. (이는 약 1/15배 정도가 됨)

Claims (22)

  1. 본체를 이동시키는 주행부;
    주변의 영상을 획득하는 영상획득부; 및
    현재 위치를 인식하는 제어부를 포함하고,
    상기 제어부는,
    소정 기준에 따라 주행구역을 복수의 소구역으로 구분하고, 미지의 현재 위치에서 획득된 영상으로부터 적어도 하나의 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 인식 디스크립터를 생성하고, 소정 추정규칙에 따라 각각의 소구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 소구역을 선택하게 제어하며,
    상기 제어부는,
    복수의 위치에서 획득된 각각의 영상으로부터 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하고, 소정 학습규칙에 따라 각각의 상기 소구역 별로 상기 소구역 특징분포를 생성하게 제어하고,
    상기 소정 학습규칙은, 복수의 상기 디스크립터를 복수의 군으로 분류하는 소정 분류규칙, 및 같은 군에 포함된 상기 디스크립터를 각각 라벨 디스크립터로 변환하는 소정 라벨규칙을 포함하고,
    상기 소구역 특징분포는, 각각의 상기 소구역 별로 상기 라벨 디스크립터의 종류 및 각 종류당 개수를 근거로 생성되며,
    상기 소정 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 소구역 특징분포와 비교 가능한 인식 특징분포를 생성하는 소정 변환규칙, 및 각각의 상기 소구역 특징분포를 상기 인식 특징분포와 비교하여 각각의 유사도를 산출하는 소정 비교규칙을 포함하는 이동 로봇.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1항에 있어서,
    상기 제어부는, 소정 기준에 따라 상기 주행구역을 상기 복수의 소구역이 그룹화된 복수의 대구역으로 구분하고,
    상기 제어부는,
    소정 상위 추정규칙에 따라 각각의 대구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 대구역을 선택하고, 선택된 상기 대구역에 속하는 복수의 소구역 중에서 상기 소정 추정규칙에 따라 각각의 상기 소구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 소구역을 선택하는 이동 로봇.
  6. 제 1항 또는 제 5항에 있어서,
    상기 제어부는,
    선택된 상기 소구역에 속하는 복수의 위치 중에서 상기 현재 위치를 선택하는 이동 로봇.
  7. 제 5항에 있어서,
    상기 제어부는,
    소정 상위 학습규칙에 따라 각각의 대구역 별로 상기 대구역 특징분포를 생성하게 제어하는 이동 로봇.
  8. 제 5항에 있어서,
    상기 소정 상위 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 대구역 특징분포와 비교 가능한 상위 인식 특징분포를 생성하는 소정 상위 변환규칙, 및 각각의 상기 대구역 특징분포를 상기 상위 인식 특징분포와 비교하여 유사도를 산출하는 소정 상위 비교규칙을 포함하고,
    상기 소정 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 소구역 특징분포와 비교 가능한 인식 특징분포를 생성하는 소정 변환규칙, 및 각각의 상기 소구역 특징분포를 상기 인식 특징분포와 비교하여 각각의 유사도를 산출하는 소정 비교규칙을 포함하는 이동 로봇.
  9. 본체를 이동시키는 주행부;
    주변의 영상을 획득하는 영상획득부; 및
    현재 위치를 인식하는 제어부를 포함하고,
    상기 제어부는,
    소정 기준에 따라 주행구역을 복수의 대구역으로 구분하고, 미지의 현재 위치에서 획득된 영상으로부터 적어도 하나의 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 인식 디스크립터를 생성하고, 소정 상위 추정규칙에 따라 각각의 대구역 특징분포와 상기 인식 디스크립터를 연산하여 상기 현재 위치가 속한 어느 한 대구역을 선택하게 제어하며,
    상기 제어부는,
    복수의 위치에서 획득된 각각의 영상으로부터 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하고, 소정 학습규칙에 따라 각각의 상기 대구역 별로 상기 대구역 특징분포를 생성하게 제어하고,
    상기 소정 상위 학습규칙은, 라벨 디스크립터를 복수의 군으로 분류하는 소정 상위 분류규칙, 및 같은 군에 포함된 상기 라벨 디스크립터를 각각 상위 대표 디스크립터로 변환하는 소정 상위 라벨규칙을 포함하고,
    상기 대구역 특징분포는 각각의 상기 대구역 별로 상기 라벨 디스크립터의 종류 및 각 종류당 개수를 근거로 생성되며,
    상기 소정 상위 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 대구역 특징분포와 비교 가능한 상위 인식 특징분포를 생성하는 소정 상위 변환규칙, 및 각각의 상기 대구역 특징분포를 상기 상위 인식 특징분포와 비교하여 유사도를 산출하는 소정 상위 비교규칙을 포함하는 이동 로봇.
  10. 제 9항에 있어서,
    상기 제어부는,
    선택된 상기 대구역에 속하는 복수의 소구역 중에서 어느 하나를 선택하고, 선택된 상기 어느 하나의 소구역에 속하는 복수의 위치 중에서 상기 현재 위치를 선택하는 이동 로봇.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 주행구역을 학습하여 맵을 생성하고, 소정 기준에 따라 주행구역을 복수의 소구역으로 구분하는 학습단계; 및
    상기 맵 상에서 현재 위치를 선택하는 인식단계를 포함하고,
    상기 인식단계는,
    상기 현재 위치의 영상을 획득하고, 획득된 영상에서 적어도 하나의 인식 특징점을 추출하고, 상기 인식 특징점에 각각 대응하는 인식 디스크립터를 생성하는 인식 디스크립터 생성단계; 및
    소정 추정규칙에 따라 각각의 소구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 소구역을 선택하는 소구역 선택단계를 포함하며,
    상기 학습단계는,
    복수의 위치에서 각각 영상을 획득하고, 각각의 상기 영상에서 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하는 디스크립터 생성단계; 및
    복수의 상기 디스크립터를 근거로 하여 소정 학습규칙에 따라 각각의 상기 소구역 별로 생성된 소구역 특징분포를 저장하는 소구역 특징분포 생성단계를 포함하고,
    상기 소정 학습규칙은, 복수의 상기 디스크립터를 복수의 군으로 분류하는 소정 분류규칙, 및 같은 군에 포함된 상기 디스크립터를 각각 라벨 디스크립터로 변환하는 소정 라벨규칙을 포함하고,
    상기 소구역 특징분포는, 각각의 상기 소구역 별로 상기 라벨 디스크립터의 종류 및 각 종류당 개수를 근거로 생성되며,
    상기 소정 추정규칙은, 상기 적어도 하나의 인식 디스크립터를 근거로 하여 상기 소구역 특징분포와 비교 가능한 인식 특징분포를 생성하는 소정 변환규칙, 및 각각의 상기 소구역 특징분포를 상기 인식 특징분포와 비교하여 각각의 유사도를 산출하는 소정 비교규칙을 포함하는 이동 로봇의 제어방법.
  15. 제 14항에 있어서,
    상기 소구역은 상기 주행구역 내의 각 실을 근거로 구분되는 이동 로봇의 제어방법.
  16. 삭제
  17. 제 14항에 있어서,
    상기 학습단계는,
    소정 기준에 따라 상기 주행구역을 상기 복수의 소구역이 그룹화된 복수의 대구역으로 구분하고,
    상기 인식단계는,
    상기 소구역 선택단계 이전에, 소정 상위 추정규칙에 따라 각각의 대구역 특징분포와 상기 인식 디스크립터를 연산하여, 상기 현재 위치가 속한 어느 한 대구역을 선택하는 대구역 선택단계를 더 포함하고,
    상기 소구역 선택단계에서는,
    상기 대구역 선택단계에서 선택된 상기 대구역에 속하는 복수의 소구역 중 상기 어느 한 소구역을 선택하는 이동 로봇의 제어방법.
  18. 제 17항에 있어서,
    상기 학습단계는,
    복수의 위치에서 각각 영상을 획득하고, 각각의 상기 영상에서 특징점을 추출하고, 각각의 상기 특징점에 대응하는 디스크립터를 생성하는 디스크립터 생성단계;
    복수의 상기 디스크립터를 근거로 하여 소정 학습규칙에 따라 각각의 상기 소구역 별로 생성된 소구역 특징분포를 저장하는 소구역 특징분포 생성단계; 및
    복수의 상기 소구역 특징분포를 근거로 하여 소정 상위 학습규칙에 따라 각각의 대구역 별로 생성된 대구역 특징분포를 저장하는 대구역 특징분포 생성단계를 더 포함하는 이동 로봇의 제어방법.


  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
KR1020187031609A 2016-04-25 2017-04-25 이동 로봇 및 이동 로봇의 제어방법 KR102192791B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020160050210 2016-04-25
KR20160050210 2016-04-25
PCT/KR2017/004388 WO2017188706A1 (ko) 2016-04-25 2017-04-25 이동 로봇 및 이동 로봇의 제어방법

Publications (2)

Publication Number Publication Date
KR20180125010A KR20180125010A (ko) 2018-11-21
KR102192791B1 true KR102192791B1 (ko) 2020-12-18

Family

ID=60160948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187031609A KR102192791B1 (ko) 2016-04-25 2017-04-25 이동 로봇 및 이동 로봇의 제어방법

Country Status (5)

Country Link
US (1) US10939791B2 (ko)
KR (1) KR102192791B1 (ko)
AU (1) AU2017255209B2 (ko)
DE (1) DE112017002154B4 (ko)
WO (1) WO2017188706A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD907084S1 (en) * 2017-12-14 2021-01-05 The Hi-Tech Robotic Systemz Ltd Mobile robot
USD906390S1 (en) * 2017-12-14 2020-12-29 The Hi-Tech Robotic Systemz Ltd Mobile robot
USD896858S1 (en) * 2017-12-14 2020-09-22 The Hi-Tech Robotic Systemz Ltd Mobile robot
USD879851S1 (en) * 2017-12-29 2020-03-31 Beijing Geekplus Technology Co., Ltd. Robot
JP6859484B2 (ja) * 2018-02-28 2021-04-14 本田技研工業株式会社 管理装置、管理システム、移動体及びプログラム
USD879852S1 (en) * 2018-03-15 2020-03-31 Beijing Geekplus Technology Co., Ltd. Mobile robot
USD929478S1 (en) * 2018-06-15 2021-08-31 Mobile Industrial Robots A/S Mobile robot having an illuminated region
USD911406S1 (en) * 2018-08-17 2021-02-23 Grey Orange Pte. Ltd Robot for moving articles within a facility
US10835096B2 (en) * 2018-08-30 2020-11-17 Irobot Corporation Map based training and interface for mobile robots
USD918281S1 (en) * 2019-03-13 2021-05-04 Shenzhen Hairou Innovation Technology Co., Ltd. Warehouse robot
CN111720913A (zh) 2019-03-19 2020-09-29 Lg电子株式会社 空气净化器
CN111720911A (zh) 2019-03-19 2020-09-29 Lg电子株式会社 空气净化***
US11497372B2 (en) 2019-03-19 2022-11-15 Lg Electronics Inc. Air purifying system and control method for the air purifying system
JP1654843S (ko) * 2019-04-11 2020-03-16
CN110200549A (zh) * 2019-04-22 2019-09-06 深圳飞科机器人有限公司 清洁机器人控制方法及相关产品
DE102020213337A1 (de) 2020-10-22 2022-04-28 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zu einer autonomen Navigation einer bewegbaren Robotereinheit und Robotersystem mit der Robotereinheit
USD967883S1 (en) * 2021-01-06 2022-10-25 Grey Orange International Inc. Robot for handling goods in a facility
CN113787516A (zh) * 2021-08-16 2021-12-14 深圳优地科技有限公司 定位方法、装置和机器人
USD1015396S1 (en) * 2021-10-19 2024-02-20 Hai Robotics Co., Ltd. Warehouse robot

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316799A (ja) 2006-05-24 2007-12-06 Tottori Univ 学習機能をもつ自律移動ロボット

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100593503B1 (ko) 2004-08-13 2006-06-30 주식회사 넥스트아이 이동로봇의 위치인식 장치 및 방법
KR100776215B1 (ko) * 2005-01-25 2007-11-16 삼성전자주식회사 상향 영상을 이용한 이동체의 위치 추정 및 지도 생성장치 및 방법과 그 장치를 제어하는 컴퓨터 프로그램을저장하는 컴퓨터로 읽을 수 있는 기록 매체
KR100785784B1 (ko) * 2006-07-27 2007-12-13 한국전자통신연구원 인공표식과 오도메트리를 결합한 실시간 위치산출 시스템및 방법
KR101538775B1 (ko) * 2008-09-12 2015-07-30 삼성전자 주식회사 전방 영상을 이용한 위치 인식 장치 및 방법
KR101072876B1 (ko) 2009-03-18 2011-10-17 연세대학교 산학협력단 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치
KR101492662B1 (ko) * 2010-06-25 2015-02-12 주식회사 엘지화학 알칼리 가용성 바인더 수지 및 이를 포함하는 감광성 수지 조성물
KR101677634B1 (ko) * 2010-07-12 2016-11-18 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
KR101951414B1 (ko) 2011-06-22 2019-02-22 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
KR102096398B1 (ko) * 2013-07-03 2020-04-03 삼성전자주식회사 자율 이동 로봇의 위치 인식 방법
KR101629649B1 (ko) * 2014-09-30 2016-06-13 엘지전자 주식회사 로봇 청소기 및 로봇 청소기의 제어방법
KR102203434B1 (ko) * 2016-04-22 2021-01-14 엘지전자 주식회사 로봇 청소기 및 로봇 청소기의 제어방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316799A (ja) 2006-05-24 2007-12-06 Tottori Univ 学習機能をもつ自律移動ロボット

Also Published As

Publication number Publication date
US10939791B2 (en) 2021-03-09
DE112017002154B4 (de) 2020-02-06
DE112017002154T5 (de) 2019-01-10
AU2017255209B2 (en) 2020-01-02
AU2017255209A1 (en) 2018-12-13
US20190133396A1 (en) 2019-05-09
KR20180125010A (ko) 2018-11-21
WO2017188706A1 (ko) 2017-11-02

Similar Documents

Publication Publication Date Title
KR102192791B1 (ko) 이동 로봇 및 이동 로봇의 제어방법
US10852729B2 (en) Moving robot and control method thereof
US10717193B2 (en) Artificial intelligence moving robot and control method thereof
US11561549B2 (en) Method of controlling mobile robot
EP3002656B1 (en) Robot cleaner and control method thereof
KR102319489B1 (ko) 이동 로봇 및 그 제어방법
KR101982780B1 (ko) 이동 로봇 및 이동 로봇의 제어방법
CN110703747A (zh) 一种基于简化广义Voronoi图的机器人自主探索方法
CN110874100A (zh) 用于使用视觉稀疏地图进行自主导航的***和方法
US11348276B2 (en) Mobile robot control method
Maier et al. Vision-based humanoid navigation using self-supervised obstacle detection
Maier et al. Self-supervised obstacle detection for humanoid navigation using monocular vision and sparse laser data
KR102159971B1 (ko) 이동 로봇, 복수의 이동 로봇 시스템 및 이동 로봇의 맵 학습방법
JP4449410B2 (ja) ロボット装置及びその物体学習方法
Matsuo et al. Outdoor visual localization with a hand-drawn line drawing map using fastslam with pso-based mapping
An et al. Ceiling vision-based active SLAM framework for dynamic and wide-open environments
KR102147211B1 (ko) 인공지능 이동 로봇의 제어 방법
KR101836847B1 (ko) 이동 로봇 및 이동 로봇의 제어방법
Sharma Mobile Robot Path Finding Using Invariant Landmarks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant