KR20200052389A - 인공지능 이동 로봇의 제어 방법 - Google Patents

인공지능 이동 로봇의 제어 방법 Download PDF

Info

Publication number
KR20200052389A
KR20200052389A KR1020180125761A KR20180125761A KR20200052389A KR 20200052389 A KR20200052389 A KR 20200052389A KR 1020180125761 A KR1020180125761 A KR 1020180125761A KR 20180125761 A KR20180125761 A KR 20180125761A KR 20200052389 A KR20200052389 A KR 20200052389A
Authority
KR
South Korea
Prior art keywords
node
map
learning
current
mobile robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
KR1020180125761A
Other languages
English (en)
Other versions
KR102147211B1 (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 엘지전자 주식회사
Priority to KR1020180125761A priority Critical patent/KR102147211B1/ko
Priority to US16/660,010 priority patent/US11709499B2/en
Publication of KR20200052389A publication Critical patent/KR20200052389A/ko
Application granted granted Critical
Publication of KR102147211B1 publication Critical patent/KR102147211B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1656Program controls characterised by programming, planning systems for manipulators
    • B25J9/1664Program 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, 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
    • 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
    • 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
    • B25J9/00Program-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/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1628Program controls characterised by the control loop
    • B25J9/163Program controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1656Program controls characterised by programming, planning systems for manipulators
    • B25J9/1661Program controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1674Program controls characterised by safety, monitoring, diagnostic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1694Program controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/04Automatic control of the travelling movement; Automatic obstacle detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Electromagnetism (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 발명의 일 측면에 따른 인공지능 이동 로봇의 제어 방법은, 현재 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인하는 단계, 상기 기준 거리 이내의 노드와 현재 위치에 대응하는 노드 사이의 상관관계 존재 여부를 판별하는 단계, 상기 상관관계가 존재하지 않는 경우에, 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드인지 판별하는 단계, 및, 상기 기준 거리 이내의 노드가 상기 이전에 학습된 맵의 노드로 판별되면, 상기 현재 위치에 대응하는 노드를 상기 맵에 등록하는 단계를 포함함으로써, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵을 생성할 수 있다.

Description

인공지능 이동 로봇의 제어 방법{Controlling method for Artificial intelligence Moving robot}
본 발명은 이동 로봇 및 그 제어 방법에 관한 것으로서, 더욱 상세하게는 이동 로봇이 맵(map)을 생성, 학습하거나 맵 상에서 위치를 인식하는 기술에 관한 것이다.
로봇은 산업용으로 개발되어 공장 자동화의 일 부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것을 이동 로봇이라고 한다.
가정에서 사용되는 이동 로봇의 대표적인 예는 로봇 청소기로, 로봇 청소기는 일정 영역을 스스로 주행하면서, 주변의 먼지 또는 이물질을 흡입함으로써, 해당 영역을 청소하는 기기이다.
이동 로봇은, 스스로 이동이 가능하여 이동이 자유롭고, 주행중 장애물 등을 피하기 위한 다수의 센서가 구비되어 장애물을 피해 주행할 수 있다.
청소 등 설정된 작업을 수행하기 위해서는 주행 구역의 맵을 정확하게 생성하고, 주행 구역 내의 어느 위치로 이동하기 위해서 맵 상에서 이동 로봇의 현재 위치를 정확하게 파악할 수 있어야 한다.
이를 위해, 종래에, 이동 로봇의 연속적인 이동 중 자신의 직전 위치에서의 주행 정보(이동 방향 및 이동 속도에 대한 정보 또는 연속적으로 촬영되는 바닥사진 등의 비교 등)를 바탕으로 현재 위치를 지속적으로 파악하는 다양한 방법이 연구되어 왔다. 또한, 이동 로봇이 스스로 맵(Map)을 생성하고 학습하는 다양한 방법에 대한 연구들이 진행되고 있다.
선행 문헌 1(한국 공개특허공보 제10-2010-0104581호 공개일자 2010. 9. 29.)은, 주행 구역 내에서 촬영된 영상으로부터 추출된 특징점들로부터 3차원 지도를 생성하고 현재 위치에서 카메라를 통해 촬영된 영상에 기초한 특징점을 이용하여 미지의 현재 위치를 인식하는 기술을 개시한다.
상기 선행 문헌 1에서는, 주행 구역 내에서 촬영된 영상으로부터 추출된 특징점 들로부터 3차원 지도를 생성하고, 미지의 현재 위치에서 촬영된 영상 내의 특징점들 중 3차원 지도 내의 특징점들과 매칭되는 3쌍 이상의 특징점 쌍을 검출한다. 그 후, 현재 위치에서 촬영된 영상 내의 매칭된 3개 이상의 특징점의 2차원 좌표, 3차원 지도 상의 매칭된 3개 이상의 특징점의 3차원 좌표, 및 현재 위치에서 카메라의 초점거리 정보를 이용하여, 상기 매칭된 3개 이상의 특징점으로부터 거리를 산출하고, 이로 부터 현재 위치를 인식하는 기술이, 상기 선행 문헌에 개시되어 있다.
또한, 상기 선행 문헌 1에는, 현재 위치에서 촬영된 영상에서 3차원 지도상의 특징점과 매칭되는 3개 이상의 특징점이 검출되지 않는 경우, 현재 위치에서 카메라를 수평방향으로 회전시키며 다시 영상을 획득하는 기술이 개시되어 있다.
상기 선행 문헌 1과 같이, 주행 구역 상의 같은 부분을 촬영한 어느 한 영상과 인식 영상을 비교하여 특정 포인트(point)의 특징점으로 위치를 인식하는 방식은, 주행 구역 내의 조명 온/오프(On/Off) 여부나 태양광의 입사각이나 양에 따른 조도 변화 등 환경 변화에 의해 현재 위치의 추정 정확도가 달라질 수 있는 문제가 있다.
선행 문헌 2(한국 공개특허공보 제10-2017-0087387호 공개일자 2017. 7. 28.)은, 다수의 맵 관리 및 위치 재인식을 통한 청소 방법에 관하여 개시하고 있다.
상기 선행 문헌 2는 센서로부터 획득된 정보를 저장된 복수개의 형태의 맵 중 적어도 하나의 맵과 기 설정된 알고리즘에 따라 비교하여 유사도를 판단하여 적어도 하나의 맵을 선택하고, 선택된 맵에 따라청소로봇의 위치를 인식하여 청소를 진행하고 있다.
상기 선행 문헌 2는 단순히 여러 개의 맵을 저장하여 현재 환경과 기하학적으로 비교하여 맵을 선택하고 있다.
선행 문헌 1과 같이, 주행 구역 상의 같은 부분을 촬영한 어느 한 영상과 인식 영상을 비교하여 특정 포인트(point)의 특징점으로 위치를 인식하는 방식은, 주행 구역 내의 조명 온/오프(On/Off) 여부나 태양광의 입사각이나 양에 따른 조도 변화, 물품 위치 변경 등 환경 변화에 의해 현재 위치의 추정 정확도가 달라질 수 있는 문제가 있다. 본 발명의 목적은 이러한 환경 변화에 강인한 맵 생성 기술을 제공함에 있다.
선행 문헌 2와 같이, 복수의 맵 중 어느 하나를 선택하는 방식은 선택되지 않은 나머지 맵 내에 유용한 정보가 있다 하더라도 사용할 수 없는 문제가 있다. 또한, 작성된 복수의 맵 중에 하나만을 선택하기 ?문에 환경 내 일부 변화에는 대응할 수 없었다. 본 발명의 목적은 조명, 조도, 시간대, 사물 위치 변화 등의 다양한 환경 변화에 대응할 수 있는 하나의 맵 생성 기술을 제공함에 있다.
본 발명의 목적은 환경 변화를 감지하고 소정 기준에 따라 맵을 업데이트하여 최적화할 수 있는 맵 생성 기술을 제공함에 있다.
본 발명의 목적은 이동 로봇의 현재 위치 인식의 성공률을 높이고 더 높은 신뢰도로 현재 위치를 추정하게 하여, 효율적이고 정확한 주행 구역 내 위치 인식 기술을 제공함에 있다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 조명, 조도, 시간대, 사물 위치 변화 등의 다양한 환경 변화에 대해 반복적으로 학습하여 환경 변화에 강인한 맵을 생성할 수 있다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 환경 변화를 감지하고 소정 기준에 따라 맵을 업데이트하여 최적화할 수 있다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 다양한 환경 변화에 대응할 수 있는 하나의 맵에 기초하여 효율적인 학습 청소를 수행할 수 있다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 현재 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인하는 단계, 상기 기준 거리 이내의 노드와 현재 위치에 대응하는 노드 사이의 상관관계 존재 여부를 판별하는 단계, 상기 상관관계가 존재하지 않는 경우에, 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드인지 판별하는 단계, 및, 상기 기준 거리 이내의 노드가 상기 이전에 학습된 맵의 노드로 판별되면, 상기 현재 위치에 대응하는 노드를 상기 맵에 등록하는 단계를 포함함으로써, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵을 생성할 수 있다.
또한, 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 상기 상관관계가 존재하는 경우 또는 상기 기준 거리 이내의 노드가 상기 이전에 학습된 맵의 노드로 판별되지 않는 경우에, 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하는 지 판별하는 단계, 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하지 않으면, 상기 노드를 상기 맵에 등록하는 단계를 더 포함하여 유의미한 환경 변화를 반영한 맵을 생성할 수 있다.
또한, 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하면, 상기 노드의 상기 상관관계가 일치하는 지 판별하는 단계, 상기 현재 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하지 않으면, 상기 노드를 상기 맵에 등록하는 단계를 포함하고, 상기 현재 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하면, 상기 현재 위치에 대응하는 노드를 상기 맵에 등록하지 않음으로써 미비한 환경 변화로 인한 맵 업데이트를 방지할 수 있다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 최초 청소 주행에 기초하여 학습맵을 생성하는 단계, 상기 학습맵에 기초하여 주행하며 학습 청소를 수행하는 단계, 상기 학습 청소 수행 과정에서 획득된 정보와 상기 학습맵에 기저장된 정보가 동일하면, 상기 학습맵에 기초하여 위치 추정을 수행하는 단계, 및, 상기 학습 청소 수행 과정에서 획득된 정보와 상기 학습맵에 기저장된 정보가 동일하지 않으면, 상기 학습 청소 수행 과정에서 획득된 정보에 기초하는 노드를 상기 학습맵에 추가로 등록하여 상기 학습맵을 업데이트하는 단계를 포함함으로써, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵을 생성할 수 있다.
등록 대상 노드의 개수가 소정 기준 개수 이상인 경우에는 상기 학습맵에 등록하고, 그렇지 않은 경우에는 상기 등록 대상 노드를 상기 학습맵에 등록하지 않음으로써, 환경 변화가 일정 수준 이상인 경우에만 맵을 업데이트할 수 있다.
또한, 상기 업데이트된 학습맵에 기초하여 위치 추정을 수행하여, 위치 추정 정확도를 향상할 수 있다.
학습맵을 업데이트하는 단계는, 주행 중 소정 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인하는 단계, 상기 기준 거리 이내의 노드와 소정 위치에 대응하는 노드 사이의 상관관계 존재 여부를 판별하는 단계, 상기 상관관계가 존재하지 않는 경우에, 상기 기준 거리 이내의 노드가 이전에 학습된 학습맵의 노드인지 판별하는 단계, 및, 상기 기준 거리 이내의 노드가 상기 학습맵의 노드로 판별되면, 상기 소정 위치에 대응하는 노드를 상기 학습맵에 등록하는 단계를 포함할 수 있다.
또한, 상기 상관관계가 존재하는 경우 또는 상기 기준 거리 이내의 노드가 상기 맵의 노드로 판별되지 않는 경우에, 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하는 지 판별하는 단계, 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하지 않으면, 상기 노드를 상기 맵에 등록하는 단계를 더 포함함으로써, 유의미한 환경 변화를 반영하여 맵을 업데이트할 수 있다.
또한, 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하면, 상기 노드의 상기 상관관계가 일치하는 지 판별하는 단계, 상기 소정 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하면, 상기 현재 위치에 대응하는 노드를 상기 맵에 등록하지 않고, 상기 소정 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하지 않으면, 상기 노드를 상기 맵에 등록하는 단계를 더 포함함으로써, 미비한 환경 변화로 인한 맵 업데이트를 방지할 수 있다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 현재 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인하는 단계, 상기 현재 위치에 대응하는 노드가 환경이 변경된 기존 영역에 대응하면, 상기 현재 위치에 대응하는 노드를 맵에 등록하는 단계, 및, 상기 현재 위치에 대응하는 노드가 새로운 영역에 대응하면, 추가 기준을 만족할 때 상기 현재 위치에 대응하는 노드를 맵에 등록하는 단계를 포함함으로써, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵의 생성, 업데이트가 가능하다.
여기서, 상기 현재 위치에 대응하는 노드가 기준 거리 이내의 노드와 존재하지 않고, 상관관계가 존재하지 않으며, 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드가 아닌 경우에, 상기 새로운 영역으로 판별할 수 있다. 또한, 상기 현재 위치에 대응하는 노드가 기준 거리 이내의 노드와 존재하지 않으며, 상기 상관관계가 존재하지 않고, 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드인 경우에, 상기 환경이 변경된 기존 영역으로 판별할 수 있다.
한편, 상기 추가 기준은, 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드 존재 여부를 포함할 수 있다.
한편, 상기 추가 기준은, 상기 추가 기준은 상기 현재 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계 일치 여부를 포함할 수 있다.
본 발명의 실시예들 중 적어도 하나에 의하면, 조명, 조도, 시간대, 사물 위치 변화 등의 다양한 환경 변화에 대해 반복적으로 학습하여 환경 변화에 강인한 맵을 생성할 수 있다.
또한, 본 발명의 실시예들 중 적어도 하나에 의하면, 환경 변화를 감지하고 소정 기준에 따라 맵을 업데이트하여 최적화할 수 있다.
또한, 본 발명의 실시예들 중 적어도 하나에 의하면, 다양한 환경 변화에 대응할 수 있는 하나의 맵에 기초하여 효율적인 학습 청소를 수행할 수 있다.
또한, 본 발명의 실시예들 중 적어도 하나에 의하면, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵의 생성, 업데이트가 가능하다.
한편, 그 외의 다양한 효과는 후술될 본 발명의 실시예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 것이다.
도 1은 본 발명의 일 실시예에 따른 이동 로봇을 도시하는 사시도이다.
도 2는 도 1의 이동 로봇의 평면도이다.
도 3은 도 1의 이동 로봇의 측면도이다.
도 4는 본 발명의 일 실시예에 따른 이동 로봇의 주요 구성들 간의 제어관계를 도시한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도이다.
도 6 내지 도 9는 도 5의 제어 방법에 관한 설명에 참조되는 도면이다.
도 10은 노드 등록 조건에 관한 설명에 참조되는 도면이다.
도 11은 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도이다.
도 12 내지 도 17은 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도이다.
도 18은 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도이다.
도 19는 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도이다.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. 그러나 본 발명이 이러한 실시예에 한정되는 것은 아니며 다양한 형태로 변형될 수 있음은 물론이다.
도면에서는 본 발명을 명확하고 간략하게 설명하기 위하여 설명과 관계없는 부분의 도시를 생략하였으며, 명세서 전체를 통하여 동일 또는 극히 유사한 부분에 대해서는 동일한 도면 참조부호를 사용한다.
한편, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
본 발명의 일 실시예에 따른 이동 로봇(100)은 바퀴 등을 이용하여 스스로 이동이 가능한 로봇을 의미하고, 가정 도우미 로봇 및 로봇 청소기 등이 될 수 있다. 이하에서는, 도면들을 참조하여, 이동 로봇 중 청소 기능을 가지는 로봇 청소기를 예로 들어 설명하나, 본 발명은 이에 한정되지 않는다.
도 1은 본 발명의 일 실시예에 따른 이동 로봇을 도시하는 사시도이고, 도 2는 도 1의 이동 로봇의 평면도이며, 도 3은 도 1의 이동 로봇의 측면도이다.
도 1 내지 도 3을 참고하여, 이동 로봇(100)은 일정 영역을 스스로 주행할 수 있다. 이동 로봇(100)은 바닥을 청소하는 기능을 수행할 수 있다. 여기서 말하는 바닥의 청소에는, 바닥의 먼지(이물질을 포함한다)를 흡입하거나 바닥을 걸레질하는 것이 포함된다.
이동 로봇(100)은 본체(110)를 포함한다. 본체(110)는 외관을 형성하는 케비닛을 포함한다. 이동 로봇(100)은, 본체(110)에 구비된 흡입 유닛(130) 및 먼지통(140)을 포함할 수 있다. 이동 로봇(100)은 이동 로봇 주변의 환경과 관련된 정보를 감지하는 영상획득부(120)를 포함한다. 이동 로봇(100)은 상기 본체를 이동시키는 주행부(160)를 포함한다. 이동 로봇(100)은 이동 로봇(100)의 제어를 위한 제어부(181)를 포함한다. 제어부(181)는 본체(110)에 구비된다.
주행부(160)는 이동 로봇(100)의 주행을 위한 휠 유닛(111)을 포함한다. 휠 유닛(111)은 본체(110)에 구비된다. 휠 유닛(111)에 의해 이동 로봇(100)은 전후좌우로 이동되거나 회전될 수 있다. 제어부가 휠 유닛(111)의 구동을 제어함으로써, 이동 로봇(100)은 바닥을 자율 주행할 수 있다. 휠 유닛(111)은 메인 휠(111a) 및 서브 휠(111b)을 포함한다.
메인 휠(111a)은 본체(110)의 양측에 각각 구비되어, 제어부의 제어 신호에 따라 일 방향 또는 타 방향으로 회전 가능하게 구성된다. 각각의 메인 휠(111a)은 서로 독립적으로 구동 가능하게 구성될 수 있다. 예를 들어, 각각의 메인 휠(111a)은 서로 다른 모터에 의해서 구동될 수 있다.
서브 휠(111b)은 메인 휠(111a)과 함께 본체(110)를 지지하며, 메인 휠(111a)에 의한 이동 로봇(100)의 주행을 보조하도록 이루어진다. 이러한 서브 휠(111b)은 후술하는 흡입 유닛(130)에도 구비될 수 있다.
흡입 유닛(130)은 본체(110)의 전방(F)으로부터 돌출된 형태로 배치될 수 있다. 흡입 유닛(130)은 먼지가 포함된 공기를 흡입하도록 구비된다.
흡입 유닛(130)이 본체(110)의 전방에서 좌우 양측방으로 돌출된 형태를 가질 수 있다. 흡입 유닛(130)의 전단부는 본체(110)의 일측으로부터 전방으로 이격된 위치에 배치될 수 있다. 흡입 유닛(130)의 좌우 양단부는 본체(110)로부터 좌우 양측으로 각각 이격된 위치에 배치될 수 있다.
본체(110)는 원형으로 형성되고, 흡입 유닛(130)의 후단부 양측이 본체(110)로부터 좌우 양측으로 각각 돌출 형성됨에 따라, 본체(110)와 흡입 유닛(130) 사이에는 빈 공간, 즉 틈이 형성될 수 있다. 상기 빈 공간은 본체(110)의 좌우 양단부와 흡입 유닛(130)의 좌우 양단부 사이의 공간으로서, 이동 로봇(100)의 내측으로 함몰된 형태를 가진다.
흡입 유닛(130)은 본체(110)에 착탈 가능하게 결합될 수 있다. 흡입 유닛(130)이 본체(110)로부터 분리되면, 분리된 흡입 유닛(130)을 대체하여 걸레 모듈(미도시)이 본체(110)에 착탈 가능하게 결합될 수 있다.
영상획득부(120)는 본체(110)에 배치될 수 있다. 영상획득부(120)는 본체(110)의 전방(F)에 배치될 수 있다. 영상획득부(120)는 본체(110)의 상하 방향으로 흡입 유닛(130)과 오버랩(overlap)되도록 배치될 수 있다. 영상획득부(120)는 흡입 유닛(130)의 상부에 배치될 수 있다.
영상획득부(120)는 이동 로봇(100) 주변의 장애물을 감지할 수 있다. 영상획득부(120)는 이동 로봇(100)의 가장 앞쪽에 위치하는 흡입 유닛(130)이 장애물과 부딪히지 않도록 전방의 장애물이나 지형지물 등을 감지할 수 있다. 영상획득부(120)는 이러한 감지 기능 외의 후술할 다른 센싱 기능을 추가로 수행할 수 있다.
본체(110)에는 먼지통 수용부(미도시)가 구비될 수 있다. 먼지통 수용부에는 흡입된 공기 중의 먼지를 분리하여 집진하는 먼지통(140)이 착탈 가능하게 결합된다. 먼지통 수용부는 본체(110)의 후방(R)에 형성될 수 있다. 먼지통(140)의 일부는 먼지통 수용부에 수용되되, 먼지통(140)의 다른 일부는 본체(110)의 후방(R)을 향하여 돌출되게 형성될 수 있다.
먼지통(140)에는 먼지가 포함된 공기가 유입되는 입구(미도시)와 먼지가 분리된 공기가 배출되는 출구(미도시)가 형성된다. 먼지통 수용부에 먼지통(140)이 장착시 먼지통(140)의 상기 입구와 상기 출구는 먼지통 수용부의 내측벽에 형성된 제1 개구(미도시) 및 제2 개구(미도시)와 각각 연통되도록 구성된다.
흡입 유닛(130)의 흡입구부터 상기 제1 개구까지 공기를 안내하는 흡입 유로(미도시)가 구비된다. 상기 제2 개구부터 외부를 향해 열린 배기구(미도시)까지 공기를 안내하는 배기 유로(미도시)가 구비된다.
흡입 유닛(130)을 통하여 유입된 먼지가 포함된 공기는 본체(110) 내부의 상기 흡기유로를 거쳐, 먼지통(140)으로 유입되고, 먼지통(140)의 필터 내지는 사이클론을 거치면서 공기와 먼지가 상호 분리된다. 먼지는 먼지통(140)에 집진되며, 공기는 먼지통(140)에서 배출된 후 본체(110) 내부의 상기 배기유로를 거쳐 최종적으로 상기 배기구를 통하여 외부로 배출된다.
도 4는 본 발명의 일 실시예에 따른 이동 로봇의 주요 구성들 간의 제어관계를 도시한 블록도이다.
도 1 내지 도 4를 참조하면, 이동 로봇(100)은, 본체(110)와, 본체(110) 주변의 영상을 획득하는 영상획득부(120)를 포함한다.
이동 로봇(100)은 본체(110)를 이동시키는 주행부(160)를 포함한다. 주행부(160)는 본체(110)를 이동시키는 적어도 하나의 휠 유닛(111)을 포함한다. 주행부(160)는 휠 유닛(111)에 연결되어 휠 유닛(111)을 회전시키는 구동 모터(미도시)를 포함한다.
영상획득부(120)는 주행 구역을 촬영하는 것으로, 카메라 모듈을 포함할 수 있다. 상기 카메라 모듈은 디지털 카메라를 포함할 수 있다. 디지털 카메라는 적어도 하나의 광학렌즈와, 광학렌즈를 통과한 광에 의해 상이 맺히는 다수개의 광다이오드(photodiode, 예를 들어, pixel)를 포함하여 구성된 이미지센서(예를 들어, CMOS image sensor)와, 광다이오드들로부터 출력된 신호를 바탕으로 영상을 구성하는 디지털 신호 처리기(DSP: Digital Signal Processor)를 포함할 수 있다. 디지털 신호 처리기는 정지영상은 물론이고, 정지영상으로 구성된 프레임들로 이루어진 동영상을 생성하는 것도 가능하다.
이러한 카메라는 촬영 효율을 위해 각 부위별로 여러 개가 설치될 수도 있다. 카메라에 의해 촬상된 영상은 해당 공간에 존재하는 먼지, 머리카락, 바닥 등과 같은 물질의 종류 인식, 청소 여부, 또는 청소 시점을 확인하는데 사용할 수 있다.
카메라는 이동 로봇(100)의 주행 방향 전면에 존재하는 장애물 또는 청소 영역의 상황을 촬영할 수 있다.
본 발명의 일 실시예에 따르면, 상기 영상획득부(120)는 본체(110) 주변을 연속적으로 촬영하여 복수의 영상을 획득할 수 있고, 획득된 복수의 영상은 저장부(105)에 저장될 수 있다.
이동 로봇(100)은 복수의 영상을 이용하여 공간 인식, 위치 인식, 장애물 인식의 정확성을 높이거나, 복수의 영상 중 하나 이상의 영상을 선택하여 효과적인 데이터를 사용함으로써 공간 인식, 위치 인식, 장애물 인식의 정확성을 높일 수 있다.
또한, 이동 로봇(100)은 이동 로봇의 동작, 상태와 관련된 각종 데이터를 센싱하는 센서들을 포함하는 센서부(170)를 포함할 수 있다.
예를 들어, 상기 센서부(170)는 전방의 장애물을 감지하는 장애물 감지 센서를 포함할 수 있다. 또한, 상기 센서부(170)는 주행 구역 내 바닥에 낭떠러지의 존재 여부를 감지하는 낭떠러지 감지센서와, 바닥의 영상을 획득하는 하부 카메라 센서를 더 포함할 수 있다.
상기 장애물 감지 센서는, 적외선 센서, 초음파 센서, RF 센서, 지자기 센서, PSD(Position Sensitive Device) 센서 등을 포함할 수 있다.
한편, 상기 장애물 감지 센서에 포함되는 센서의 위치와 종류는 이동 로봇의 기종에 따라 달라질 수 있고, 상기 장애물 감지 센서는 더 다양한 센서를 포함할 수 있다.
한편, 상기 센서부(170)는 본체(110)의 구동에 따른 이동 로봇(100)의 동작을 감지하고 동작 정보를 출력하는 동작 감지 센서를 더 포함할 수 있다. 예를 들어, 동작 감지 센서로는, 자이로 센서(Gyro Sensor), 휠 센서(Wheel Sensor), 가속도 센서(Acceleration Sensor) 등을 사용할 수 있다.
자이로 센서는, 이동 로봇(100)이 운전 모드에 따라 움직일 때 회전 방향을 감지하고 회전각을 검출한다. 자이로 센서는, 이동 로봇(100)의 각속도를 검출하여 각속도에 비례하는 전압 값을 출력한다. 제어부(150)는 자이로 센서로부터 출력되는 전압 값을 이용하여 회전 방향 및 회전각을 산출한다.
휠 센서는, 휠 유닛(111)에 연결되어 바퀴의 회전수를 감지한다. 여기서, 휠 센서는 로터리 엔코더(Rotary Encoder)일 수 있다.
가속도 센서는, 이동 로봇(100)의 속도 변화, 예를 들어, 출발, 정지, 방향 전환, 물체와의 충돌 등에 따른 이동 로봇(100)의 변화를 감지한다.
또한, 가속도 센서는 제어부(150)에 내장되어 이동 로봇(100)의 속도 변화를 감지할 수 있다.
제어부(150)는 동작 감지 센서로부터 출력된 동작 정보에 기초하여 이동 로봇(100)의 위치 변화를 산출할 수 있다. 이러한 위치는 영상 정보를 이용한 절대 위치에 대응하여 상대 위치가 된다. 이동 로봇은 이러한 상대 위치 인식을 통해 영상 정보와 장애물 정보를 이용한 위치 인식의 성능을 향상시킬 수 있다.
한편, 이동 로봇(100)은 충전 가능한 배터리를 구비하여 이동 로봇 내로 전원을 공급하는 전원 공급부(미도시)를 포함할 수 있다.
상기 전원 공급부는 이동 로봇(100)의 각 구성 요소들에 구동 전원과, 동작 전원을 공급하며, 전원 잔량이 부족하면 충전대(미도시)에서 전원을 공급받아 충전될 수 있다.
이동 로봇(100)은 배터리의 충전 상태를 감지하고, 감지 결과를 제어부(150)에 전송하는 배터리 감지부(미도시)를 더 포함할 수 있다. 배터리는 배터리 감지부와 연결되어 배터리 잔량 및 충전 상태가 제어부(150)에 전달된다. 배터리 잔량은 출력부(180)의 디스플레이(182)에 표시될 수 있다.
또한, 이동 로봇(100)은 온/오프(On/Off) 또는 각종 명령을 입력할 수 있는 입력부(125)를 포함한다. 입력부(125)는 버튼이나 다이얼, 터치 스크린 등을 포함할 수 있다. 입력부(125)는 사용자의 음성 지시를 입력 받기 위한 마이크를 포함할 수 있다. 입력부(125)를 통해 이동 로봇(100)의 작동 전반에 필요한 각종 제어명령을 입력받을 수 있다.
또한, 이동 로봇(100)은 출력부(180)를 포함하여, 예약 정보, 배터리 상태, 동작모드, 동작상태, 에러상태 등을 이미지로 표시하거나 음향으로 출력할 수 있다.
출력부(180)는 오디오 신호를 출력하는 음향 출력부(181)를 포함할 수 있다. 음향 출력부(181)는 제어부(150)의 제어에 따라 경고음, 동작모드, 동작상태, 에러상태 등의 알림 메시지 등을 음향으로 출력할 수 있다. 음향 출력부(181)는, 제어부(150)로부터의 전기 신호를 오디오 신호로 변환하여 출력할 수 있다. 이를 위해, 스피커 등을 구비할 수 있다.
또한, 출력부(180)는 예약 정보, 배터리 상태, 동작모드, 동작상태, 에러상태 등을 이미지로 표시하는 디스플레이(182)를 더 포함할 수 있다.
도 4를 참조하면, 이동 로봇(100)은 현재 위치를 인식하는 등 각종 정보를 처리하고 판단하는 제어부(150), 및 각종 데이터를 저장하는 저장부(105)를 포함한다. 또한, 이동 로봇(100)은 외부 단말기와 데이터를 송수신하는 통신부(190)를 더 포함할 수 있다.
외부 단말기는 이동 로봇(100)을 제어하기 위한 애플리케이션을 구비하고, 애플리케이션의 실행을 통해 이동 로봇(100)이 청소할 주행 구역에 대한 맵을 표시하고, 맵 상에 특정 영역을 청소하도록 영역을 지정할 수 있다. 외부 단말기는 맵 설정을 위한 애플리케이션(application)이 탑재된 리모콘, PDA, 랩탑(laptop), 스마트 폰, 태블릿 등을 예로 들 수 있다.
외부 단말기는 이동 로봇(100)과 통신하여, 맵과 함께 이동 로봇의 현재 위치를 표시할 수 있으며, 복수의 영역에 대한 정보가 표시될 수 있다. 또한, 외부 단말기는 이동 로봇의 주행에 따라 그 위치를 갱신하여 표시한다.
제어부(150)는 이동 로봇(100)를 구성하는 영상획득부(120), 입력부(125), 주행부(160), 흡입 유닛(130) 등을 제어하여, 이동 로봇(100)의 동작 전반을 제어한다.
제어부(150)는 입력부(125)의 마이크를 통해 수신되는 사용자의 음성 입력 신호를 처리하고 음성 인식 과정을 수행할 수 있다. 실시예에 따라서, 이동 로봇(100)은 제어부(150) 내부 또는 외부에 음성 인식을 수행하는 음성 인식 모듈을 구비할 수 있다.
실시예에 따라서, 간단한 음성 인식은 이동 로봇(100)이 자체적으로 수행하고, 자연어 처리 등 고차원의 음성 인식은 서버(70)에서 수행될 수 있다.
저장부(105)는 이동 로봇(100)의 제어에 필요한 각종 정보들을 기록하는 것으로, 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 기록 매체는 마이크로 프로세서(micro processor)에 의해 읽힐 수 있는 데이터를 저장한 것으로, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등을 포함할 수 있다.
또한, 저장부(105)에는 주행 구역에 대한 맵(Map)이 저장될 수 있다. 맵은 이동 로봇(100)과 유선 또는 무선 통신을 통해 정보를 교환할 수 있는 외부 단말기, 서버 등에 의해 입력된 것일 수도 있고, 이동 로봇(100)이 스스로 학습을 하여 생성한 것일 수도 있다.
맵에는 주행 구역 내의 방들의 위치가 표시될 수 있다. 또한, 이동 로봇(100)의 현재 위치가 맵 상에 표시될 수 있으며, 맵 상에서의 이동 로봇(100)의 현재의 위치는 주행 과정에서 갱신될 수 있다. 외부 단말기는 저장부(105)에 저장된 맵과 동일한 맵을 저장한다.
상기저장부(105)는 청소 이력 정보를 저장할 수 있다. 이러한 청소 이력 정보는 청소를 수행할 때마다 생성될 수 있다.
상기저장부(105)에 저장되는 주행 구역에 대한 맵(Map)은, 주행 구역의 소정 정보 들을 소정 형식으로 저장한 데이터로서, 청소 중 주행에 사용되는 내비게이션 맵(Navigation map), 위치 인식에 사용되는 SLAM(Simultaneous localization and mapping) 맵, 장애물 등에 부딪히면 해당 정보를 저장하여 학습 청소시 사용하는 학습 맵, 전역 위치 인식에 사용되는 전역 위치 맵, 인식된 장애물에 관한 정보가 기록되는 장애물 인식 맵 등일 수 있다.
상기 맵(Map)은 복수의 노드를 포함하는 노드맵을 의미할 수 있다. 여기서, 노드(Node)란, 주행 구역 내의 어느 한 위치인 지점(Point)에 대응하는 맵 상의 어느 한 위치를 나타내는 데이터를 의미한다.
상기 노드맵은, 각 노드에 대응하는 각종 데이터인 노드 정보를 포함할 수 있다. 예를 들어, 노드 정보는 위치 정보, 노드에 대응하는 지점에서 획득한 영상 정보 등을 포함할 수 있다. 위치 정보(X, Y, θ)는, 대응하는 노드에서의 로봇의 X 좌표(X), 로봇의 Y 좌표(Y), 방향(Direction) 정보(θ)를 포함할 수 있다. 방향 정보(θ)는 각도 정보 등으로도 명명될 수 있다.
한편, 상술한 바와 같이 용도별로 상기저장부(105)에 맵들을 구분하여 저장, 관리할 수 있지만, 맵이 용도별로 명확히 구분되지 않을 수도 있다. 예를 들어, 적어도 2 이상의 용도로 사용할 수 있도록 하나의 맵에 복수의 정보를 저장할 수도 있다.
제어부(150)는 주행제어모듈(151), 지도생성모듈(152), 위치인식모듈(153) 및 장애물인식모듈(154)을 포함할 수 있다.
도 1 내지 도 4를 참조하면, 주행제어모듈(151)은 이동 로봇(100)의 주행을 제어하는 것으로, 주행 설정에 따라 주행부(160)의 구동을 제어한다. 또한, 주행제어모듈(151)은 주행부(160)의 동작을 바탕으로 이동 로봇(100)의 주행경로를 파악할 수 있다. 예를 들어, 주행제어모듈(151)은 휠 유닛(111)의 회전속도를 바탕으로 이동 로봇(100)의 현재 또는 과거의 이동속도, 주행한 거리 등을 파악할 수 있으며, 이렇게 파악된 이동 로봇(100)의 주행 정보를 바탕으로, 맵 상에서 이동 로봇(100)의 위치가 갱신될 수 있다.
지도생성모듈(152)은 주행 구역의 맵을 생성할 수 있다. 지도생성모듈(152)은 영상획득부(120)를 통해 획득한 영상을 처리하여 맵을 작성할 수 있다. 즉, 청소 영역과 대응되는 청소 맵을 작성할 수 있다.
또한, 지도생성모듈(152)은 각 위치에서 영상획득부(120)를 통해 획득한 영상을 처리하여 맵과 연계시켜 전역위치를 인식할 수 있다.
위치인식모듈(153)은 현재 위치를 추정하여 인식한다. 위치인식모듈(153)은 영상획득부(120)의 영상 정보를 이용하여 지도생성모듈(152)과 연계하여 위치를 파악함으로써, 이동 로봇(100)의 위치가 갑자기 변경되는 경우에도 현재 위치를 추정하여 인식할 수 있다.
또한, 위치인식모듈(153)은 현재 위치하는 영역의 속성을 인식할 수 있다, 즉, 위치인식모듈(153)는 공간을 인식할 수 있다.
이동 로봇(100)은 위치인식모듈(153)을 통해 연속적인 주행 중에 위치 인식이 가능하고 또한, 위치인식모듈(153) 없이 지도생성모듈(152) 및 장애물인식모듈(154)을 통해, 맵을 학습하고 현재 위치 등을 추정할 수 있다.
이동 로봇(100)이 주행하는 중에, 영상획득부(120)는 이동 로봇(100) 주변의 영상들을 획득한다. 이하, 영상획득부(120)에 의해 획득된 영상을 '획득영상'이라고 정의한다.
획득영상에는 천장에 위치하는 조명들, 경계(edge), 코너(corner), 얼룩(blob), 굴곡(ridge) 등의 여러가지 특징(feature)들이 포함된다.
지도생성모듈(152)은 획득영상들 각각으로부터 특징을 검출하고, 각 특징점을 근거로 디스크립터(descriptor)를 산출한다. 디스크립터(descriptor)는, 특징점을 나타내기 위한 소정 형식의 데이터를 의미하며 디스크립터들 간의 거리 또는 유사도가 산출 가능한 형식의 수학적 데이터를 의미한다. 예를 들어, 디스크립터는 n차원 벡터(n은 자연수) 또는 행렬 형식의 데이터일 수 있다.
지도생성모듈(152)은 각 위치의 획득영상을 통해 얻은 디스크립터 정보를 바탕으로, 획득영상마다 적어도 하나의 디스크립터를 소정 하위 분류규칙에 따라 복수의 군으로 분류하고, 소정 하위 대표규칙에 따라 같은 군에 포함된 디스크립터들을 각각 하위 대표 디스크립터로 변환할 수 있다.
다른 예로, 실(room)과 같이 소정 구역내의 획득영상들로부터 모인 모든 디스크립터를 소정 하위 분류규칙에 따라 복수의 군으로 분류하여 상기 소정 하위 대표규칙에 따라 같은 군에 포함된 디스크립터들을 각각 하위 대표 디스크립터로 변환할 수도 있다.
지도생성모듈(152)은 이 같은 과정을 거쳐, 각 위치의 특징분포를 구할 수 있다. 각 위치 특징분포는 히스토그램 또는 n차원 벡터로 표현될 수 있다. 또 다른 예로, 지도생성모듈(152)은 소정 하위 분류규칙 및 소정 하위 대표규칙을 거치지 않고, 각 특징점으로부터 산출된 디스크립터를 바탕으로 미지의 현재위치를 추정할 수 있다.
또한, 위치 도약 등의 이유로 이동 로봇(100)의 현재 위치가 미지의 상태가 된 경우에, 기저장된 디스크립터 또는 하위 대표 디스크립터 등의 데이터를 근거로 현재 위치를 추정할 수 있다.
이동 로봇(100)은, 미지의 현재 위치에서 영상획득부(120)를 통해 획득영상을 획득한다. 영상을 통해 천장에 위치하는 조명들, 경계(edge), 코너(corner), 얼룩(blob), 굴곡(ridge) 등의 여러가지 특징(feature)들이 확인된다.
위치인식모듈(153)은 획득영상으로부터 특징들을 검출하고, 디스크립터를 산출한다.
위치인식모듈(153)은 미지의 현재 위치의 획득영상을 통해 얻은 적어도 하나의 디스크립터 정보를 근거로, 소정 하위 변환규칙에 따라 비교대상이 되는 위치 정보(예를 들면, 각 위치의 특징분포)와 비교 가능한 정보(하위 인식 특징분포)로 변환한다.
소정 하위 비교규칙에 따라, 각각의 위치 특징분포를 각각의 인식 특징분포와 비교하여 각각의 유사도를 산출할 수 있다. 각각의 위치에 해당하는 상기 위치 별로 유사도(확률)를 산출하고, 그 중 가장 큰 확률이 산출되는 위치를 현재위치로 결정할 수 있다.
이와 같이, 제어부(150)는 주행 구역을 구분하고 복수의 영역으로 구성된 맵을 생성하거나, 기저장된 맵을 바탕으로 본체(110)의 현재 위치를 인식할 수 있다.
제어부(150)는 맵이 생성되면, 생성된 맵을 통신부(190)를 통해 외부 단말기, 서버 등으로 전송할 수 있다. 또한, 제어부(150)는 앞서 설명한 바와 같이, 외부 단말기, 서버 등으로부터 맵이 수신되면, 저장부(105)에 저장할 수 있다.
이때, 맵은 청소 영역을 복수의 영역으로 구분되고, 복수의 영역을 연결하는 연결통로가 포함하며, 영역 내의 장애물에 대한 정보를 포함할 수 있다.
제어부(150)는 청소명령이 입력되면, 맵 상의 위치와 이동 로봇의 현재위치가 일치하는지 여부를 판단한다. 청소명령은 리모컨, 입력부 또는 외부 단말기로부터 입력될 수 있다.
제어부(150)는 현재 위치가 맵 상의 위치와 일치하지 않는 경우, 또는 현재 위치를 확인할 수 없는 경우, 현재 위치를 인식하여 이동 로봇(100)의 현재 위치를 복구한 한 후, 현재 위치를 바탕으로 지정영역으로 이동하도록 주행부(160)를 제어할 수 있다.
현재 위치가 맵 상의 위치와 일치하지 않는 경우 또는 현재 위치를 확인 할 수 없는 경우, 위치인식모듈(153)은 영상획득부(120)로부터 입력되는 획득영상을 분석하여 맵을 바탕으로 현재 위치를 추정할 수 있다. 또한, 장애물인식모듈(154) 또는 지도생성모듈(152) 또한, 같은 방식으로 현재 위치를 인식할 수 있다.
위치를 인식하여 이동 로봇(100)의 현재 위치를 복구한 후, 주행제어모듈(151)은 현재 위치로부터 지정영역으로 주행경로를 산출하고 주행부(160)를 제어하여 지정영역으로 이동한다.
서버로부터 청소 패턴 정보를 수신하는 경우, 주행제어모듈(151)은 수신한 청소 패턴 정보에 따라, 전체 주행 구역을 복수의 영역으로 나누고, 하나 이상의 영역을 지정영역으로 설정할 수 있다.
또한, 주행제어모듈(151)은 수신한 청소 패턴 정보에 따라 주행경로를 산출하고, 주행경로를 따라 주행하며, 청소를 수행할 수 있다.
제어부(150)는 설정된 지정영역에 대한 청소가 완료되면, 청소기록을 저장부(105)에 저장할 수 있다.
또한, 제어부(150)는 통신부(190)를 통해 이동 로봇(100)의 동작상태 또는 청소상태를 소정 주기로 외부 단말기, 서버로 전송할 수 있다.
그에 따라 외부 단말기는 수신되는 데이터를 바탕으로, 실행중인 애플리케이션의 화면상에 맵과 함께 이동 로봇의 위치를 표시하고, 또한 청소 상태에 대한 정보를 출력한다.
본 발명의 실시예에 따른 이동 로봇(100)은 일방향으로 장애물이나 벽면이 감지될 때까지 이동하다가, 장애물인식모듈(154)이 장애물을 인식하면, 인식된 장애물의 속성에 따라 직진, 회전 등 주행 패턴을 결정할 수 있다.
한편, 제어부(150)는 인식된 장애물의 속성에 기초하여 다른 패턴으로 회피주행을 수행하도록 제어할 수 있다. 제어부(150)는 비위험 장애물(일반 장애물), 위험 장애물, 이동 가능한 장애물 등 장애물의 속성에 따라 다른 패턴으로 회피 주행하도록 제어할 수 있다.
예를 들어, 제어부(150)는 위험 장애물은 더 긴 거리의 안전 거리를 확보한 상태에서 우회하여 회피하도록 제어할 수 있다.
또한, 제어부(150)는 이동 가능한 장애물의 경우에 소정 대기 시간 후에도 장애물이 이동하지 않으면, 일반 장애물에 대응하는 회피 주행 또는 위험 장애물에 대응하는 회피 주행을 수행하도록 제어할 수 있다. 또는, 제어부(150)는 이동 가능한 장애물에 대응하는 회피 주행 패턴이 별도로 설정된 경우에는 이에 따라 주행하도록 제어할 수 있다.
본 발명의 실시예에 따른 이동 로봇(100)은, 머신 러닝(machine learning) 기반의 장애물 인식 및 회피를 수행할 수 있다.
상기 제어부(150)는, 입력 영상에서 머신 러닝(machine learning)으로 기학습된 장애물을 인식하는 장애물인식모듈(154)과 상기 인식된 장애물의 속성에 기초하여, 상기 주행부(160)의 구동을 제어하는 주행제어모듈(151)을 포함할 수 있다.
한편, 도 4에서는 복수의 모듈(151, 152, 153, 154)이 제어부(160) 내에 별도로 구비되는 예를 도시하였으나, 본 발명은 이에 한정되지 않는다.
예를 들어, 위치인식모듈(153)과 장애물인식모듈(154)은 하나의 인식기로써 통합되어 하나의 인식모듈(155)로 구성될 수 있다. 이 경우에, 머신 러닝 등의 학습 기법을 이용하여 인식기를 학습시키고, 학습된 인식기는 이후에 입력되는 데이터를 분류하여 영역, 사물 등의 속성을 인식할 수 있다.
실시예에 따라서, 지도생성모듈(152), 위치인식모듈(153), 및, 장애물인식모듈(154)이 하나의 통합모듈로 구성될 수도 있다.
이하에서는, 위치인식모듈(153)과 장애물인식모듈(154)은 하나의 인식기로써 통합되어 하나의 인식모듈(155)로 구성되는 실시예를 중심으로 설명하지만, 위치인식모듈(153)과 장애물인식모듈(154)이 각각 구비되는 경우에도 동일한 방식으로 동작할 수 있다.
본 발명의 실시예에 따른 이동 로봇(100)은, 머신 러닝으로 사물, 공간의 속성이 학습된 인식모듈(155)을 포함할 수 있다.
머신 러닝은 컴퓨터에게 사람이 직접 로직(Logic)을 지시하지 않아도 데이터를 통해 컴퓨터가 학습을 하고 이를 통해 컴퓨터가 알아서 문제를 해결하게 하는 것을 의미한다.
딥러닝(Deep Learning)은. 인공지능(artificial intelligence)을 구성하기 위한 인공신경망(Artificial Neural Networks: ANN)에 기반으로 해 컴퓨터에게 사람의 사고방식을 가르치는 방법으로 사람이 가르치지 않아도 컴퓨터가 스스로 사람처럼 학습할 수 있는 인공지능 기술이다.
상기 인공신경망(ANN)은 소프트웨어 형태로 구현되거나 칩(chip) 등 하드웨어 형태로 구현될 수 있다.
인식모듈(155)은 공간의 속성, 장애물 등 사물의 속성이 학습된 소프트웨어 또는 하드웨어 형태의 인공신경망(ANN)을 포함할 수 있다.
예를 들어, 인식모듈(155)은 딥러닝(Deep Learning)으로 학습된 CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), DBN(Deep Belief Network) 등 심층신경망(Deep Neural Network: DNN)을 포함할 수 있다.
인식모듈(155)은 상기 심층신경망(DNN)에 포함된 노드들 사이의 가중치(weight)들에 기초하여 입력되는 영상 데이터에 포함되는 공간, 사물의 속성을 판별할 수 있다.
한편, 상기 주행제어모듈(151)은 상기 인식된 공간, 장애물의 속성에 기초하여 상기 주행부(160)의 구동을 제어할 수 있다.
한편, 인식모듈(155)은, 머신 러닝(machine learning)으로 기학습된 데이터에 기초하여 상기 선택된 특정 시점 영상에 포함되는 공간, 장애물의 속성을 인식할 수 있다.
한편, 저장부(105)에는 공간, 사물 속성 판별을 위한 입력 데이터, 상기 심층신경망(DNN)을 학습하기 위한 데이터가 저장될 수 있다.
저장부(105)에는 영상획득부(120)가 획득한 원본 영상과 소정 영역이 추출된 추출 영상들이 저장될 수 있다.
또한, 실시예에 따라서는, 저장부(105)에는 상기 심층신경망(DNN) 구조를 이루는 웨이트(weight), 바이어스(bias)들이 저장될 수 있다.
또는, 실시예에 따라서는, 상기 심층신경망 구조를 이루는 웨이트(weight), 바이어스(bias)들은 인식모듈(155)의 임베디드 메모리(embedded memory)에 저장될 수 있다.
한편, 상기 인식모듈(155)은 상기 영상획득부(120)가 영상을 획득하거나 영상의 일부 영역을 추출할 때마다 소정 영상을 트레이닝(training) 데이터로 사용하여 학습 과정을 수행하거나, 소정 개수 이상의 영상이 획득된 후 학습 과정을 수행할 수 있다.
또는, 이동 로봇(100)은 통신부(190)를 통하여 상기 소정 서버로부터 머신 러닝과 관련된 데이터를 수신할 수 있다.
이 경우에, 이동 로봇(100)은, 상기 소정 서버로부터 수신된 머신 러닝과 관련된 데이터에 기초하여 인식모듈(155)을 업데이트(update)할 수 있다.
도 5는 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도로, 맵 생성 과정을 도시한 순서도이고, 도 6 내지 도 9는 도 5의 제어 방법에 관한 설명에 참조되는 도면이다.
도 6과 도 7은, 도 5의 주행 및 정보 획득 과정(S501), 노드 생성 과정(S502), 노드 맵 생성 과정(S503), 경계 생성 과정(S504), 경계맵 생성 과정(S505) 및 디스크립터 생성 과정(S506)을 예시적으로 도시한 개념도이다.
도 6에는, 상기 과정(S501)에서 획득한 영상과 영상 내의 복수의 특징점(f1, f2, f3, f4, f5, f6, f7)이 도시되고, 상기 과정(S506)에서 복수의 특징점(f1, f2, f3, ..., f7)에 각각 대응하는 n차원 벡터인 디스크립터(
Figure pat00001
)를 생성시키는 도식이 도시된다.
도 6과 도 7을 참고하여, 정보 획득 과정(S501)에서, 이동 로봇(100)이 주행하는 중에 영상획득부(120)는 각 지점에서 영상을 획득한다. 예를 들어, 영상획득부(120)는 이동 로봇(100)의 상측을 향해 촬영하여 천장 등의 영상을 획득할할 수 있다.
또한. 정보 획득 과정(S501)에서, 이동 로봇(100)이 주행하는 중에 센서부(170), 영상획득부(120), 그 밖에 공지된 수단을 이용하여 주행 장애 요소를 감지할 수 있다.
이동 로봇(100)은 각 지점에서 주행 장애 요소를 감지할 수 있다. 예를 들어, 이동 로봇은 특정 지점에서 주행 장애 요소 중 하나인 벽체의 외측면을 감지할 수 있다.
도 6과 도 7을 참고하여, 노드 생성 과정(S502)에서, 이동 로봇(100)은 각 지점에 대응하는 노드를 생성한다. 노드(Na18, Na19, Na20)에 대응하는 좌표 정보는 이동 로봇(100)이 측정한 주행 변위를 근거로 생성될 수 있다.
주행 변위는, 이동 로봇의 이동 방향과 이동 거리를 포함하는 개념이다. 주행구역의 바닥면을 X축 및 Y축이 직교하는 평면 상에 있다고 가정할 때, 주행 변위는 (
Figure pat00002
)로 표현할 수 있다.
Figure pat00003
는 각각 X축 및 Y축 방향으로의 변위를 의미하고,
Figure pat00004
는 회전 각도를 의미한다.
제어부(150)는, 주행부(160)의 동작을 근거로 이동 로봇(100)의 주행 변위를 측정할 수 있다. 예를 들어, 주행제어모듈(151)은 휠 유닛(111)의 회전속도를 근거로 이동 로봇(100)의 현재 또는 과거의 이동속도, 주행한 거리 등을 측정할 수 있으며, 휠 유닛(111)의 회전 방향에 따라 현재 또는 과거의 방향 전환 과정 또한 측정할 수 있다.
또한, 제어부(150)는 센서부(170)에서 센싱되는 데이터를 이용하여 상기 주행 변위를 측정하는 것도 가능하다.
도 6과 도 7을 참고하여, 경계 정보 생성 과정(S504)에서, 이동 로봇(100)은 주행 장애 요소에 대응하는 경계 정보(b20)를 생성한다. 경계 정보 생성 과정(S504)에서, 이동 로봇(100)은 각 주행 장애 요소에 각각 대응하는 각 경계 정보를 생성한다. 복수의 주행 장애 요소에 복수의 경계 정보가 일대일대응 한다. 경계 정보(b20)는 대응하는 노드의 좌표 정보와 센서부(170)가 측정한 거리값을 근거로 생성될 수 있다.
도 6과 도 7을 참고하여, 노드맵 생성 과정(S503) 및 경계맵 생성 과정(S505)은 동시에 진행된다. 노드맵 생성 과정(S503)에서 복수의 노드(Na18, Na19, Na20 등)를 포함하는 노드맵이 생성된다. 경계맵 생성 과정(S505)에서 복수의 경계 정보(b20 등)를 포함하는 경계맵(Ba)이 생성된다. 노드맵 생성 과정(S503) 및 경계맵 생성 과정(S505)에서 노드맵 및 경계맵(Ba)을 포함하는 맵(Ma)이 생성된다. 도 6에는, 노드맵 생성 과정(S503) 및 경계맵 생성 과정(S505)을 통해 생성 중인 맵(Ma)을 도시한다.
도 6에 도시된 영상에는, 천장에 위치하는 조명들, 경계(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 검출기 등이 있다.
도 6을 참고하여, 디스크립터 생성 과정(S506)에서, 획득된 영상에서 추출된 복수의 특징점(f1, f2, f3, ..., f7)을 근거로 디스크립터(
Figure pat00005
)를 생성한다. 상기 디스크립터 생성 과정(S506)에서, 획득된 복수의 영상에서 추출된 복수의 특징점(f1, f2, f3, ..., fm)을 근거로 디스크립터(
Figure pat00006
)를 생성한다. (여기서, m은 자연수) 복수의 특징점(f1, f2, f3, ..., fm)에 복수의 디스크립터(
Figure pat00007
)는 일대일대응 한다.
Figure pat00008
은 n차원 벡터를 의미한다.
Figure pat00009
의 중괄호 { } 안의 f1(1), f1(2), f1(3), ..., f1(n)은
Figure pat00010
을 이루는 각 차원의 수치를 의미한다. 나머지
Figure pat00011
에 대한 표기도 이와 같은 방식이므로 설명을 생략한다.
특징 검출을 위해 SIFT(Scale Invariant Feature Transform) 기법을 이용하여, 복수의 특징점(f1, f2, f3, ..., fm)에 대응하는 복수의 디스크립터(
Figure pat00012
)를 생성할 수 있다.
예를 들면, 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)들이 적용하는 것도 가능하다.
도 8은, 이동 로봇이 이동하면서 생성하는 복수의 노드(N) 및 노드들 간의 변위(C)를 도시한 개념도이다.
도 8을 참고하여, 원점 노드(O)가 설정된 상태에서 주행 변위(C1)가 측정되어 노드(N1)의 정보가 생성된다. 이후 측정된 주행 변위(C2)의 시점이 되는 노드(N1)의 좌표 정보에 상기 주행 변위(C2)를 더하여, 상기 주행 변위(C2)의 종점이 되는 노드(N2)의 좌표 정보를 생성할 수 있다. 노드(N2)의 정보가 생성된 상태에서 주행 변위(C3)가 측정되어 노드(N3)의 정보가 생성된다. 이와 같이 순차적으로 측정되는 주행 변위들(C1, C2, C3, …, C16)을 근거로 순차적으로 노드들(N1, N2, N3, …, N16)의 정보가 생성된다.
어느 하나의 주행 변위(C15)의 시점이 되는 노드(C15)를 해당 주행 변위(C15)의 종점이 되는 노드(16)의 '기초 노드'라고 정의할 때, 루프 변위(Loop Constraint, LC)는 어느 한 노드(N15) 및 상기 어느 한 노드(N15)의 상기 '기초 노드(N14)가 아닌' 다른 인접한 노드(N5) 사이의 변위가 측정된 값을 의미한다.
일 예로, 어느 한 노드(N15)에 대응하는 획득영상 정보와 다른 인접한 노드(N5)에 대응하는 획득영상 정보가 서로 비교되어 두 노드(N15, N5) 사이의 루프 변위(LC)가 측정될 수 있다. 다른 예로, 어느 한 노드(N15)의 주변 환경과의 거리 정보와 다른 인접한 노드(N5)의 주변 환경과의 거리 정보가 서로 비교되어 두 노드(N15, N5) 사이의 루프 변위(LC)가 측정될 수 있다. 도 8에는, 노드 N5와 노드 N15 사이에서 측정된 루프 변위(LC1), 및 노드 N4와 노드 N16 사이에서 측정된 루프 변위(LC2)가 예시적으로 도시되어 있다.
상기 주행 변위를 근거로 생성된 어느 한 노드(N5)의 정보는 노드 좌표 정보 및 해당 노드에 대응하는 영상 정보를 포함할 수 있다. 노드(N5)에 인접하는 다른 노드(N15)가 있을 때, 노드(N15)에 대응하는 영상 정보를 노드(N5)에 대응하는 영상 정보와 비교하면 두 노드(N5, N15) 사이의 루프 변위(LC1)가 측정된다. '루프 변위(LC1)'와 '기저장된 두 노드(N5, N15)의 좌표 정보에 따라 산출되는 변위'가 서로 다를 경우, 노드 좌표 정보에 오차가 있는 것으로 보고, 두 노드(N5, N15)의 좌표 정보를 갱신할 수 있다. 이 경우, 두 노드(N5, N15)와 연결된 다른 노드 들(N6, N7, N8, N9, N10, N11, N12, N13, N14)의 좌표 정보도 갱신될 수 있다. 또한, 한번 갱신된 노드 좌표 정보도 계속해서 상기 과정을 거쳐 거듭 갱신될 수 있다.
보다 구체적으로 설명하면 다음과 같다. 루프 변위(LC)가 측정된 두 노드(N)를 각각 제1 루프 노드 및 제2 루프 노드라고 정의한다. 기저장된 제1 루프 노드의 노드 좌표 정보 및 제2 루프 노드의 노드 좌표 정보에 의해 산출되는 '산출 변위(
Figure pat00013
)'(좌표값의 차에 의해 산출됨)가 루프 변위(LC)(
Figure pat00014
)와 차이(
Figure pat00015
1-
Figure pat00016
)가 발생할 수 있다. 상기 차이가 발생하면, 상기 차이를 오차로 보고 노드 좌표 정보를 갱신할 수 있는데, 루프 변위(LC)가 상기 산출 변위보다 더 정확한 값이라는 가정하에 노드 좌표 정보를 갱신한다.
노드 좌표 정보를 갱신하는 경우, 상기 제1 루프 노드 및 제2 루프 노드의 노드 좌표 정보만 갱신할 수도 있으나, 상기 오차의 발생은 주행 변위들의 오차가 누적되어 발생된 것이므로 상기 오차를 분산시켜 다른 노드들의 노드 좌표 정보도 갱신하도록 설정할 수 있다. 예를 들어, 상기 제1 루프 노드와 제2 루프 노드 사이에 상기 주행 변위에 의해 생성된 모든 노드들에, 상기 오차 값을 분산시켜 노드 좌표 정보를 갱신할 수 있다. 도 8을 참고하여, 루프 변위(LC1)가 측정되고 상기 오차가 산출된 경우, 제1 루프 노드(N15)와 제2 루프 노드(N5)와 사이의 노드 들(N6 내지 N14)에 상기 오차를 분산시켜, 노드들(N5 내지 N15)의 노드 좌표 정보가 모두 조금씩 갱신될 수 있다. 물론, 이러한 오차 분산을 확대시켜, 이외의 노드 들(N1 내지 N4)의 노드 좌표 정보를 같이 갱신할 수도 있음은 물론이다.
도 9는 제1 맵(Ma)의 일 예를 도시한 개념도로서, 생성된 노드맵을 포함하고 있는 그림이다. 도 9에는, 도 5에 따른 맵 생성 과정을 거쳐 생성된 어느 한 맵(Ma)의 일 예가 도시된다. 상기 맵(Ma)은 노드맵 및 경계맵(Ba)을 포함한다. 상기 노드맵은 복수의 제1 노드(Na1 내지 Na99)를 포함한다.
도 9를 참고하여, 어느 한 맵(Ma)은 노드맵(Na1, Na2, …, Na99) 및 경계맵(Ba)을 포함할 수 있다. 노드맵은 하나의 맵 상의 여러 가지 정보 중 복수의 노드로 이루어진 정보를 지칭하는 것이고, 경계맵은 하나의 맵 상의 여러 가지 정보 중 복수의 경계 정보로 이루어진 정보를 지칭하는 것이다. 노드맵과 경계맵은 상기 맵의 구성요소로서, 노드맵의 생성 과정(S502, S503)과 경계맵의 생성 과정(S504, S505)은 동시에 진행된다. 예를 들어, 경계 정보는, 특정 지점에서 떨어진 주행 장애 요소의 거리를 측정한 후, 상기 특정 지점에 대응하는 기저장된 노드의 좌표 정보를 기준으로 생성될 수 있다. 예를 들어, 노드의 노드 좌표 정보는 특정 주행 장애 요소에서 떨어진 특정 지점의 거리를 측정한 후, 상기 특정 장애 요소에 대응하는 기저장된 경계 정보를 기준으로 생성할 수 있다. 노드 및 경계 정보는, 기저장된 어느 하나에 대한 다른 하나의 상대적 좌표를 근거로, 다른 하나가 맵 상에 생성될 수 있다.
또한, 상기 맵은 상기 과정(S506)에서 생성된 영상 정보를 포함할 수 있다. 복수의 영상 정보는 복수의 노드에 일대일대응 한다. 특정 영상 정보는 특정 노드에 대응한다.
이와 같이 맵의 생성, 갱신 및 위치 인식은 노드 및 노드 정보에 기초하여 수행된다. 따라서, 노드를 신규로 생성하거나 기존 맵에 노드를 추가할 때 설정되는 노드 등록 조건을 최적화하는 것이 맵의 정확도 및 성능 향상에 요구된다.
도 10은 노드 등록 조건에 관한 설명에 참조되는 도면으로, 맵에 노드를 등록할 지 여부를 확인하는 과정을 상세히 예시한 것이다.
도 10을 참조하면, 제어부(150)는 노드맵에서 이동 로봇(100)의 현재 위치를 기준으로 30cm 이내의 노드를 취합할 수 있다(S1010).
제어부(150)는 특정 지점에서 노드 생성 과정(S502)에 따라 노드를 생성할 수 있다. 또한, 제어부(150)는 이동 로봇(100)의 현재 위치를 기준으로 노드를 생성할 수 있다.
또한, 제어부(150)는 이동 로봇(100)의 현재 위치에 대응하는 노드를 기준으로 30cm 이내의 노드를 취합할 수 있다(S1010).
이후, 제어부(150)는 취합된 노드 중에서 현재의 로봇 주행 방향과 45도 이내의 차이가 나는 노드가 존재하는지 확인할 수 있다(S1020).
제어부(150)는 취합된 노드를 생성할 때의 각도(pose)와 현재의 각도(pose)를 비교하여 현재의 로봇 방향(θ)과 45도 이내의 차이가 나는 노드를 판별할 수 있다.
취합된 노드 중에서 현재의 로봇 방향과 45도 이내의 차이가 나는 노드가 없으면, 제어부(150)는 현재 위치에 대응하는 노드를 맵에 등록할 수 있다(S1050).
만약 취합된 노드 중에서 현재의 로봇 방향과 45도 이내의 차이가 나는 노드가 있으면, 제어부(150)는 현재 위치에 대응하는 노드에 연결된 에지(edge) 모두가 일치(consistent)하는지 판별하게 된다(S1030).
제어부(150)는 기존 맵의 노드 정보를 확인하여 현재 위치에 대응하는 노드에 연결된 에지(edge) 모두가 일치(consistent)하면, 맵에 노드를 등록하지 않고 맵에 노드를 등록할 지 여부를 확인하는 과정을 종료할 수 있다(S1040).
만약 제어부(150)는 기존 맵의 노드 정보를 확인하여 현재 위치에 대응하는 노드에 연결된 에지(edge) 모두가 일치(consistent)하지 않으면, 맵에 노드를 등록하고 특정 지점에서의 노드를 맵에 등록할 지 여부를 확인하는 과정을 종료할 수 있다(S1040).
방향의 차이는 이동 로봇(100)의 뷰 포인트(view point)와 관련된 인자로 노드 등록 기준으로 활용할 수 있다.
따라서, 도 10을 참조하여 설명한 예는 현재 위치를 기준으로 소정 거리 이내에서 취합된 노드가 현재의 로봇 방향과 차이가 일정 수준 이상인지 여부를 가장 주요한 노드 등록 기준으로 사용하였다.
이 경우에, 슬램 맵 등의 노드맵에서 일부 노드가 변경되었더라도 소정 각도 이내에 기존의 노드가 있으면 등록하지 않게 된다. 즉, 조도, 조명, 사물의 위치 등이 조금 달라져도 노드를 등록하지 않는다. 만약 위치 인식에 실패한 경우에는 노드를 전부 다시 생성하여 맵을 작성하는 리셋 동작 등을 수행할 수 있다.
즉, 맵은 1회의 주행으로 거의 결정되고, 이후에는 위치 인식에 실패한 경우 등 제한된 상황에서 맵이 리셋될 뿐이다. 따라서, 고정된 맵을 하나 이용해서는 조도, 조명, 사물의 위치 등이 조금씩 바뀌는 환경에 적응할 수 없다.
또한, 복수의 맵을 생성한 후에, 상황에 따라 하나의 맵을 선택하여 이용하는 경우에도 주행 구역 환경 내 일부 변화에는 대응할 수 없었다.
효율적인 학습 청소를 위해서는 기존에 저장해두었던 맵 내에서의 로봇의 현재 위치를 정확하게 찾는 과정이 필요하다.
하지만, 기존에 맵을 저장했던 시점과 현재 시점의 환경 변화로 인해 로봇의 현재 위치를 찾는 것이 어렵고, 따라서 학습 청소의 성능 저하가 발생할 수 있다.
또한, 로봇에 사용되는 센서에 따라 성능이 저하되는 환경 변화의 종류도 차이가 있다. 예를 들어, 카메라는 조명, 조도 변화에 영향을 많이 받고, 라이다(LiDAR)는 사물의 위치, 모양 변화에 영향을 많이 받는다.
이러한 환경 변화의 종류가 매우 다양하므로, 특정 환경을 선별적으로 학습하는 것은 거의 불가능하다.
따라서, 환경 변화의 종류와 상관없이 기존에 로봇이 갖고 있던 맵과 현재 환경과의 비교를 통해 동일한 부분은 기존 맵 정보를 활용하고, 서로 다른 부분은 추가적인 학습을 통해 기존 맵을 업데이트하는 과정이 필요하다.
본 발명은 청소 시마다 발생하는 다양한 환경 변화에 대해 기존맵과 다른 부분에 대해 추가 학습을 수행함으로써 환경 변화에 강인한 맵을 생성하할 수 있다.
또한, 청소 완료 시마다 청소 시점의 다양한 환경에 대한 맵 정보를 추가적으로 업데이트하여 효율적인 학습 청소를 수행할 수 있다.
또한, 반복적인 학습을 통해 환경 변화에 대응되는 누적 데이터가 많아지고, 다음번 학습 청소 시에 성능 향상을 기대할 수 있다.
이하에서는 도면들을 참조하여 본 발명에 따른 노드 등록 기준 및 맵 생성, 업데이트 방법에 대해 상세히 설명한다.
도 11은 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도로, 맵에 노드를 등록할 지 여부를 확인하는 과정을 상세히 예시한 것이다.
도 11을 참조하면, 이동 로봇(100)은, 현재 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인할 수 있다(S1110). 예를 들어, 제어부(150)는 노드맵에서 이동 로봇(100)의 현재 위치를 기준으로 30cm 이내의 노드를 확인하고 존재하는 노드들을 취합할 수 있다(S1110).
한편, 제어부(150)는 노드맵에서 현재 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인할 수 있다(S1110). 여기서, 노드맵은 센싱 정보를 이용해 계산된 로봇의 위치를 나타내는 노드(node)를 복수개 포함하는 맵으로서 슬램(SLAM) 맵일 수 있다.
기준 거리가 30cm로 설정된 경우에, 제어부(150)는 현재 위치 기준으로 30cm 이내의 노드를 확인하고, 현재 로봇의 위치에서 30cm 근방에 존재하는 모든 노드를 후보 노드(candidate node)로 설정할 수 있다. 리소스 관리 측면에서 필요없는 노드를 등록하는 것은 낭비이므로, 노드 등록 여부를 결정하기 위해서는 기준 거리 이내에 존재하는 근방 노드를 확인하여 맵 상에 의미있는 추가 정보가 필요한 경우에만 등록할 수 있도록 구성할 수 있다.
한편, 제어부(150)는, 상기 기준 거리 이내의 노드와 현재 위치에 대응하는 노드 사이의 상관관계 존재 여부를 판별할 수 있다(S1120).
예를 들어, 제어부(150)는, 현재 위치 기준 30cm 이내의 모든 노드와 현재 노드 사이의 에지(edge, constraint)가 존재하는 지 여부를 판별할 수 있다. 이것은 현재 노드가 주변 30cm 범위 내 노드와 특징점 매칭(feature matching)되는 것이 없는지 확인하는 것일 수 있다. 예를 들어, 특징점으로 코너 지점이 있으면 이전의 코너 지점과 비교 후, 로봇의 상대적인 좌표가 있는지 판단함으로써 상관관계 존재 여부를 판단할 수 있다.
한편, 그래프(graph) 기반의 슬램에서 노드를 이어주는 에지(edge)는 로봇의 위치 사이의 주행 변위 정보로 constraint라고도 할 수 있다.
즉, 에지(edge, constraint)는 노드와 로봇과의 상대적인 좌표로 노드 사이의 관계성을 나타낼 수 있다. 즉, 에지(edge, constraint)가 존재한다는 것은 노드 사이에 일정 부분 겹쳐지는 센싱 정보가 있음을 의미할 수 있다,
제어부(150)는, 현재 로봇 위치에 대응하는 현재 노드를 기준으로 30cm 이내의 후보 노드와 현재 노드를 비교하여 에지(edge=constraint)가 존재하는 여부를 체크(check)할 수 있다.
만약 에지가 존재한다면, 30cm 이내의 노드와 현재 노드 사이에서 공통적으로 보이는 특징(feature)이 있고, 특징점 매칭(feature matching)까지 된다는 것을 의미할 수 있다. .
상기 상관관계가 존재하지 않는 경우에(S1120), 제어부(150)는 새로운 영역인지 기존과 동일 영역에서 환경 변화만 있었는 지 여부를 판별할 수 있다.
상관관계가 존재하지 않는 경우에(S1120), 제어부(150)는 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드인지 판별할 수 있다(S1130).
예를 들어, 제어부(150)는 상기 기준 거리 이내의 노드가 n(n>=2)회 학습 시 이전 (n-1)회 학습까지 누적되어 생성된 맵에서 존재하는 노드인지 여부를 확인할 수 있다.
만약, n회의 학습 주행에서 현재 위치에 대응하는 노드와 상관관계가 있는 기준 거리 이내의 노드가, 이전 (n-1)회 학습까지 반영된 (n-1)회 학습맵의 노드로 판별된다면, (n-1)회 학습까지 특징점 매칭이 안된 노드이므로 노드 등록이 필요하다.
따라서, 상기 기준 거리 이내의 노드가 상기 이전에 학습된 맵의 노드로 판별되면, 제어부(150)는 현재 노드를 상기 맵에 등록할 수 있다(S1160).
즉, 상기 기준 거리 이내의 노드가 상기 이전에 학습된 맵의 노드로 판별되면, 제어부(150)는 기존 환경에서 조명, 조도, 물체의 위치 등 환경 변화가 있었던 것으로 판단하여 현재 노드를 상기 맵에 등록할 수 있다(S1160).
이에 따라, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵을 생성할 수 있다.
이 경우에, 기존 맵과의 얼라인먼트(alignment) 확보를 위해, 기존 맵의 노드와의 비교하여 현재 위치에 대응하는 노드를 추가할 수 있다.
종래에는 슬램 맵의 일부 노드가 변경되었더라도 기존의 노드가 있으면 등록하지 않게 된다. 즉, 조도, 조명, 사물의 위치 등이 조금 달라져도 노드를 등록하지 않는다.
하지만, 본 발명에 따르면 현재 노드와 근방의 다른 노드 사이의 상관관계가 있고, 근방의 다른 노드가 기존의 노드인 경우에, 환경 변화로 인한 것으로 보고 현재 노드를 추가 등록하게 된다. 따라서 조금씩 바뀌는 환경에 적응할 수 있다.
실시예에 따라서, 현재 노드의 추가 등록으로 기존의 노드 정보도 변경될 수 있다. 예를 들어, 현재 노드와 상관관계가 있는 주변 노드들의 노드 좌표 정보 등이 오차를 최소화할 수 있도록 갱신될 수 있다. 또한, 현재 노드와 소정 거리 이내에 존재하는 노드들 또는 맵 상의 전체 노드를 오차의 합이 최소가 되도록 노드 정보를 갱신하여 최적화할 수 있다.
한편, 제어부(150)는 상기 상관관계가 존재하는 경우에(S1120), 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하는 지 판별할 수 있다(S1140).
또한, 제어부(150)는 상기 기준 거리 이내의 노드가 상기 이전에 학습된 맵의 노드로 판별되지 않는 경우에(S1130), 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하는 지 판별할 수 있다(S1140).
즉, 상기 상관관계가 존재하는 경우(S1120) 또는 상기 기준 거리 이내의 노드가 상기 이전에 학습된 맵의 노드로 판별되지 않는 경우에(S1130), 제어부(150)는 새로운 영역에 진입한 것으로 보고 새로운 영역에 따른 기준으로 노드 등록 여부 판단 과정을 진행할 수 있다.
제어부(150)는 상기 기준 거리 이내의 노드 중 현재 로봇의 주행 방향과의 차이가 기준 각도 이하인 노드가 존재하는 지 판별할 수 있다(S1140). 예를 들어, 제어부(150)는 현재 로봇의 주행 방향과 45도 이내의 차이가 나는 지 판별할 수 있다. 기준 각도는 주행 방향 기준으로 45도를 설정할 수 있다. 실시예에 따라서 기준 각도는 주행 방향을 기준으로 좌우로 45도로 합 90도의 각도를 설정할 수도 있다.
상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하지 않으면(S1140), 상기 노드를 상기 맵에 등록하여(S1160), 유의미한 환경 변화를 반영한 맵을 생성할 수 있다.
제어부(150)는 취합된 노드를 생성할 때의 각도(pose)와 현재의 각도(pose)를 비교하여 현재의 로봇 방향(θ)과 45도 이내의 차이가 나는 노드를 판별할 수 있다(S1140).
취합된 노드 중에서 현재의 로봇 방향과 45도 이내의 차이가 나는 노드가 없으면, 제어부(150)는 현재 위치에 대응하는 노드를 맵에 등록할 수 있다(S1160).
만약 취합된 노드 중에서 현재의 로봇 방향과 45도 이내의 차이가 나는 노드가 있으면, 제어부(150)는 현재 위치에 대응하는 노드에 연결된 에지(edge) 모두가 일치(consistent)하는지 판별하게 된다(S1150).
즉, 45도 등 기준 각도는 로봇의 뷰 포인트(viewpoint)와 관련된 것으로, 기준 각도 이내로 뷰 포인트(viewpoint)가 기존의 노드와 같다면, 현재 노드를 등록할 필요없다. 또한, 기준 각도보다 차이가 큰 나는 뷰 포인트(viewpoint)라면 에지(edge)의 일치(consistency) 여부에 따라 노드 등록 여부 결정할 수 있다.
상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하면(S1140), 제어부(150)는 상기 현재 위치에 대응하는 노드의 상기 상관관계가 일치하는 지 판별할 수 있다(S1150).
제어부(150)는 기존 학습맵의 노드 정보를 확인하여 현재 위치에 대응하는 노드에 연결된 에지(edge) 모두가 일치(consistent)하면, 맵에 노드를 등록하지 않고 맵에 노드를 등록할 지 여부를 확인하는 과정을 종료할 수 있다(S1170).
제어부(150)는 상기 현재 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하면, 상기 현재 위치에 대응하는 노드를 상기 맵에 등록하지 않음으로써 미비한 환경 변화로 인한 맵 업데이트를 방지할 수 있다.
제어부(150)는 상기 현재 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하지 않으면(S1150), 맵에 상기 현재 위치에 대응하는 노드를 등록할 수 있다(S1160).
즉, 제어부(150)는 기존 맵의 노드 정보를 확인하여 현재 위치에 대응하는 노드에 연결된 에지(edge) 모두가 일치(consistent)하지 않으면, 맵에 노드를 등록하고 특정 지점에서의 노드를 맵에 등록할 지 여부를 확인하는 과정을 종료할 수 있다(S1160).
전체 슬램 맵의 최적화 관점에서 현재 위치의 노드를 등록해도 최적화 관점에서 도움이 되는 경우에만(Not consistency) 노드를 등록할 수 있다.
본 발명의 일 실시예에 따르면, 소정 주행 구역을 반복적으로 주행하면서 주행 구역의 환경을 학습하면서 도 11에 개시된 방법에 따라 맵을 업데이트할 수 있다. 따라서, N회차의 학습 주행 시 생성된 맵을 N회차의 학습맵으로 명명할 수 있다.
청소를 수행하는 이동 로봇(100)을 예로 들면, 최초의 1회 청소 완료 후 1회차 학습맵을 생성할 수 있다. 다음번 2회차 청소 시, 이동 로봇(100)은 기존 1회차 학습맵을 로딩하여 학습 청소를 수행할 수 있다.
제어부(150)는 2회차 주행에서 센서부(170), 영상획득부(120)로부터 들어온 정보와 기존 1회차 학습맵 내의 정보를 비교할 수 있다.
비교 결과, 서로 같은 경우, 제어부(150)는 기존 1회차 학습맵을 보존하고 1회차 학습맵에 기초한 현재 위치 추정만 수행할 수 있다.
비교 결과, 서로 다른 경우 제어부(150)는 기존 1회차 학습맵에 현재 정보를 추가적으로 업데이트할 수 있다.
도 12 내지 도 17은 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도이다.
도 12는 특정 주행 구역에서의 1회차 학습 시 생성 노드(1200)를 예시하고, 도 13은 도 12와 동일한 주행 구역에서의 1회차 학습 시 생성 노드(1200) 및 2회차 학습 시 추가된 노드(1300)를 예시한다.
이러한 반복 학습은 조명, 조도, 사물 위치 등 환경이 변화된 상태에서 수행될 수도 있다.
도 14 내지 도 17은 동일 주행 구역에서 다른 시간대의 학습 주행 환경들을 예시한다.
도 14는 제1 시간대 환경(10:05 ~ 12:00)을 예시하고, 도 15는 제2 시간대 환경(13:20 ~ 15:30)을 예시하며, 도 16은 제3 시간대 환경(16:00 ~ 18:00)을 예시하고, 도 17은 제4 시간대 환경(19:13 ~ 21:00)을 예시한다.
이와 같이, 시간대, 조명 조건을 달리하여 동일 공간이라도 추출되는 특징점이 다른 상태에서 반복 학습을 수행할 수 있다.
본 발명에 따르면, N회차까지 반복적으로 학습 청소를 수행하면서 학습맵을 고도화, 최적화할 수 있다. 또한, 동일 주행구역에 대한 학습맵 업데이트를 반복 수행함으로써 동일 주행구역에서의 환경 변화를 계속 점진적으로 반영함으로써 환경 변화에 강인한 맵을 생성할 수 있다.
본 발명의 일 실시예에 따르면, 맵 업데이트가 무한 수행되지 않도록, 충분히 학습되어 청소 완료 시 일정 노드 개수 이상의 변화가 없다면 더 이상 학습맵 업데이트를 하지 않도록 설정될 수 있다.
본 발명의 일 실시예에 따르면, 동일 장소에 대해 명, 조도, 날씨, 사물 위치 변화 등 환경의 변화가 있더라도 활용 가능한 학습맵을 생성할 수 있다.
또한, 환경 변화에 강인한 학습맵을 이용하여 학습 청소를 수행함으로써 학습 청소의 성능을 향상할 수 있고, 고객 만족도를 높일 수 있다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 조명, 조도, 시간대, 사물 위치 변화 등의 다양한 환경 변화에 대해 반복적으로 학습하여 환경 변화에 강인한 맵을 생성할 수 있다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 환경 변화를 감지하고 소정 기준에 따라 맵을 업데이트하여 최적화할 수 있다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따른 이동 로봇의 제어 방법은, 다양한 환경 변화에 대응할 수 있는 하나의 맵에 기초하여 효율적인 학습 청소를 수행할 수 있다.
도 18은 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도이다.
도 18을 참조하면, 청소 작업을 수행하는 이동 로봇(100)은 최초 청소 주행을 수행하고(S1810), 최초 청소 주행에 기초하여 학습맵을 생성할 수 있다(S1820).
최초 청소 주행에 기초하여 생성된 1회차 학습맵은 도 12에서 예시된 노드(1200)를 포함할 수 있다.
이동 로봇(100)은 다음 2회차 주행에서는 상기 1회차 학습맵에 기초하여 주행하며 학습 청소를 수행할 수 있다(S1830).
제어부(150)는 상기 2회차 학습 청소 수행 과정(S1830)에서 센서부(170), 영상획득부(120) 등을 통하여 획득된 정보와 상기 1회차 학습맵에 기저장된 정보가 동일하면, 상기 1회차 학습맵에 기초하여 위치 추정을 수행할 수 있다.
제어부(150)는 상기 2회차 학습 청소 수행 과정에서 획득된 정보와 상기 1회차 학습맵에 기저장된 정보가 동일하지 않으면, 상기 2회차 학습 청소 수행 과정(S1830)에서 획득된 정보에 기초하는 노드를 상기 1회차 학습맵에 추가로 등록하여 상기 1회차 학습맵을 업데이트하여 2회차 학습맵을 생성할 수 있다(S1850).
2회차 학습맵은 도 13에서 예시된 1회차 학습 시 생성 노드(1200) 및 2회차 학습 시 추가된 노드(1300)를 포함할 수 있다. 이에 따라, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵을 생성할 수 있다.
제어부(150)는 학습 청소를 N회차 반복 수행할 수 있다. 이동 로봇(100)은 N회차 주행에서는 N-1회차 학습맵에 기초하여 주행하며 학습 청소를 수행할 수 있다(S1830).
제어부(150)는 상기 N회차 학습 청소 수행 과정(S1830)에서 센서부(170), 영상획득부(120) 등을 통하여 획득된 정보와 상기 N-1회차 학습맵에 기저장된 정보가 동일하면, 상기 N-1회차 학습맵에 기초하여 위치 추정을 수행할 수 있다.
본 발명에 따르면, 복수의 학습으로 업데이트된 학습맵에 기초하여 위치 추정을 수행하여, 위치 추정 정확도를 향상할 수 있다.
제어부(150)는 상기 N회차 학습 청소 수행 과정(S1830)에서 획득된 정보와 상기 N-1회차 학습맵에 기저장된 정보가 동일하지 않으면, 상기 N회차 학습 청소 수행 과정(S1830)에서 획득된 정보에 기초하는 노드를 상기 N-1회차 학습맵에 추가로 등록하여 상기 N-1회차 학습맵을 업데이트하여 N회차 학습맵을 생성할 수 있다(S1850).
실시예에 따라서, 제어부(150)는, 등록 대상 노드의 개수가 소정 기준 개수 이상인 지 판별할 수 있다(S1840). 여기서, 등록 대상 노드는 상기 N회차 학습 청소 수행 과정에서 획득된 정보 중 상기 N-1회차 학습맵에 기저장된 정보와 동일하지 않은 정보에 대응하는 노드일 수 있다.
제어부(150)는, 등록 대상 노드의 개수가 소정 기준 개수 이상인 경우에는 상기 학습맵에 등록하고, 그렇지 않은 경우에는 상기 등록 대상 노드를 상기 학습맵에 등록하지 않음으로써, 환경 변화가 일정 수준 이상인 경우에만 맵을 업데이트할 수 있다.
도 11 내지 도 17을 참조하여 설명한 것과 유사하게, 본 실시예에서도 학습맵을 업데이트하는 단계(S1850)는, 주행 중 소정 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인하는 단계, 상기 기준 거리 이내의 노드와 소정 위치에 대응하는 노드 사이의 상관관계 존재 여부를 판별하는 단계, 상기 상관관계가 존재하지 않는 경우에, 상기 기준 거리 이내의 노드가 이전에 학습된 학습맵의 노드인지 판별하는 단계, 및, 상기 기준 거리 이내의 노드가 상기 학습맵의 노드로 판별되면, 상기 소정 위치에 대응하는 노드를 상기 학습맵에 등록하는 단계를 포함할 수 있다.
또한, 상기 상관관계가 존재하는 경우 또는 상기 기준 거리 이내의 노드가 상기 맵의 노드로 판별되지 않는 경우에, 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하는 지 판별하는 단계, 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하지 않으면, 상기 노드를 상기 맵에 등록하는 단계를 더 포함함으로써, 유의미한 환경 변화를 반영하여 맵을 업데이트할 수 있다.
또한, 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하면, 상기 노드의 상기 상관관계가 일치하는 지 판별하는 단계, 상기 소정 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하면, 상기 현재 위치에 대응하는 노드를 상기 맵에 등록하지 않고, 상기 소정 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하지 않으면, 상기 노드를 상기 맵에 등록하는 단계를 더 포함함으로써, 미비한 환경 변화로 인한 맵 업데이트를 방지할 수 있다.
도 19는 본 발명의 일 실시예에 따른 이동 로봇의 제어 방법을 도시한 순서도이다.
도 19를 참조하면, 이동 로봇(100)의 제어부(150)는, 현재 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인할 수 있다(S1910). 예를 들어, 제어부(150)는 현재 위치에 대응하는 노드를 기준으로 30cm, 50cm, 1m 등 기설정된 기준 거리 이내의 노드를 확인하고 취합할 수 있다.
상기 현재 위치에 대응하는 노드가 환경이 변경된 기존 영역에 대응하면(S1920), 제어부(150)는, 상기 현재 위치에 대응하는 노드를 맵에 등록할 수 있다(S1930).
여기서, 제어부(150)는 상기 현재 위치에 대응하는 노드가 기준 거리 이내의 노드와 존재하지 않으며, 상기 상관관계가 존재하지 않고, 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드인 경우에, 상기 환경이 변경된 기존 영역으로 판별할 수 있다.
이러한 조건들을 만족하면(S1920), 제어부(150)는 기존 환경에서 조명, 조도, 물체의 위치 등 환경 변화가 있었던 것으로 판단하여 현재 노드를 상기 맵에 등록할 수 있다(S1930).
이에 따라, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵을 생성할 수 있다.
이에 따라, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵의 생성, 업데이트가 가능하다.
상기 현재 위치에 대응하는 노드가 새로운 영역에 대응하면(S1940), 제어부(150)는, 추가 기준의 만족 여부를 판별할 수 있다(S1950).
여기서, 제어부(150)는 상기 현재 위치에 대응하는 노드가 기준 거리 이내의 노드와 존재하지 않고, 상관관계가 존재하지 않으며, 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드가 아닌 경우에, 상기 새로운 영역으로 판별할 수 있다.
이러한 조건들을 만족하면(S1940), 제어부(150)는 새로운 영역에 진입한 것으로 보고 새로운 영역에 따른 추가 기준으로 노드 등록 여부 판단 과정을 진행할 수 있다.
제어부(150)는, 추가 기준을 만족할 때 상기 현재 위치에 대응하는 노드를 맵에 등록할 수 있다(S1930). 이에 따라, 주행 구역의 환경 및 환경 변화를 적절하게 반영한 맵의 생성, 업데이트가 가능하다.
한편, 상기 추가 기준은, 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드 존재 여부를 포함할 수 있다.
한편, 상기 추가 기준은, 상기 추가 기준은 상기 현재 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계 일치 여부를 포함할 수 있다.
이에 따라. 불필요한 업데이트를 방지할 수 있다. 또한, 기존 학습맵과의 얼라인먼트(alignment)를 확보하면서, 현재 위치에 대응하는 노드를 추가할 수 있다.
본 발명에 따른 이동 로봇은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
한편, 본 발명의 실시예에 따른 이동 로봇의 제어 방법은, 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
이동 로봇: 100
저장부: 105
본체: 110
영상획득부: 120
입력부: 125
제어부: 150
주행부: 160
센서부: 170
출력부: 180
통신부: 190

Claims (18)

  1. 현재 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인하는 단계;
    상기 기준 거리 이내의 노드와 현재 위치에 대응하는 노드 사이의 상관관계 존재 여부를 판별하는 단계;
    상기 상관관계가 존재하지 않는 경우에, 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드인지 판별하는 단계; 및,
    상기 기준 거리 이내의 노드가 상기 이전에 학습된 맵의 노드로 판별되면, 상기 현재 위치에 대응하는 노드를 상기 맵에 등록하는 단계;를 포함하는 이동 로봇의 제어방법.
  2. 제1항에 있어서,
    상기 상관관계가 존재하는 경우 또는 상기 기준 거리 이내의 노드가 상기 맵의 노드로 판별되지 않는 경우에, 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하는 지 판별하는 단계;를 더 포함하는 이동 로봇의 제어방법.
  3. 제2항에 있어서,
    상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하지 않으면, 상기 노드를 상기 맵에 등록하는 단계;를 더 포함하는 이동 로봇의 제어방법.
  4. 제2항에 있어서,
    상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하면, 상기 노드의 상기 상관관계가 일치하는 지 판별하는 단계;를 더 포함하는 이동 로봇의 제어방법.
  5. 제4항에 있어서,
    상기 현재 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하지 않으면, 상기 노드를 상기 맵에 등록하는 단계;를 더 포함하는 이동 로봇의 제어방법.
  6. 제4항에 있어서,
    상기 현재 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하면, 상기 현재 위치에 대응하는 노드를 상기 맵에 등록하지 않는 것을 특징으로 하는 이동 로봇의 제어방법.
  7. 최초 청소 주행에 기초하여 학습맵을 생성하는 단계;
    상기 학습맵에 기초하여 주행하며 학습 청소를 수행하는 단계;
    상기 학습 청소 수행 과정에서 획득된 정보와 상기 학습맵에 기저장된 정보가 동일하면, 상기 학습맵에 기초하여 위치 추정을 수행하는 단계; 및,
    상기 학습 청소 수행 과정에서 획득된 정보와 상기 학습맵에 기저장된 정보가 동일하지 않으면, 상기 학습 청소 수행 과정에서 획득된 정보에 기초하는 노드를 상기 학습맵에 추가로 등록하여 상기 학습맵을 업데이트하는 단계;를 포함하는 이동 로봇의 제어방법.
  8. 제7항에 있어서,
    상기 학습맵을 업데이트하는 단계는,
    등록 대상 노드의 개수가 소정 기준 개수 이상인 경우에는 상기 학습맵에 등록하고, 그렇지 않은 경우에는 상기 등록 대상 노드를 상기 학습맵에 등록하지 않는 것을 특징으로 하는 이동 로봇의 제어방법.
  9. 제7항에 있어서,
    상기 업데이트된 학습맵에 기초하여 위치 추정을 수행하는 단계;를 더 포함하는 이동 로봇의 제어방법.
  10. 제7항에 있어서,
    상기 학습맵을 업데이트하는 단계는,
    주행 중 소정 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인하는 단계;
    상기 기준 거리 이내의 노드와 소정 위치에 대응하는 노드 사이의 상관관계 존재 여부를 판별하는 단계;
    상기 상관관계가 존재하지 않는 경우에, 상기 기준 거리 이내의 노드가 이전에 학습된 학습맵의 노드인지 판별하는 단계; 및,
    상기 기준 거리 이내의 노드가 상기 학습맵의 노드로 판별되면, 상기 소정 위치에 대응하는 노드를 상기 학습맵에 등록하는 단계;를 포함하는 것을 특징으로 하는 이동 로봇의 제어방법.
  11. 제10항에 있어서,
    상기 상관관계가 존재하는 경우 또는 상기 기준 거리 이내의 노드가 상기 맵의 노드로 판별되지 않는 경우에, 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하는 지 판별하는 단계;를 더 포함하는 것을 특징으로 하는 이동 로봇의 제어방법.
  12. 제11항에 있어서,
    상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하지 않으면, 상기 노드를 상기 맵에 등록하는 단계;를 더 포함하는 이동 로봇의 제어방법.
  13. 제11항에 있어서,
    상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드가 존재하면, 상기 노드의 상기 상관관계가 일치하는 지 판별하는 단계;를 더 포함하는 이동 로봇의 제어방법.
  14. 제13항에 있어서,
    상기 소정 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하면, 상기 현재 위치에 대응하는 노드를 상기 맵에 등록하지 않고,
    상기 소정 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계가 일치하지 않으면, 상기 노드를 상기 맵에 등록하는 단계;를 더 포함하는 이동 로봇의 제어방법.
  15. 현재 위치에 대응하는 노드를 기준으로 기설정된 기준 거리 이내의 노드를 확인하는 단계;
    상기 현재 위치에 대응하는 노드가 환경이 변경된 기존 영역에 대응하면, 상기 현재 위치에 대응하는 노드를 맵에 등록하는 단계; 및,
    상기 현재 위치에 대응하는 노드가 새로운 영역에 대응하면, 추가 기준을 만족할 때 상기 현재 위치에 대응하는 노드를 맵에 등록하는 단계;를 포함하는 이동 로봇의 제어방법.
  16. 제15항에 있어서,
    상기 현재 위치에 대응하는 노드가 기준 거리 이내의 노드와 존재하지 않고, 상관관계가 존재하지 않으며, 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드가 아닌 경우에, 상기 새로운 영역으로 판별하고,
    상기 현재 위치에 대응하는 노드가 기준 거리 이내의 노드와 존재하지 않으며, 상기 상관관계가 존재하지 않고, 상기 기준 거리 이내의 노드가 이전에 학습된 맵(map)의 노드인 경우에, 상기 환경이 변경된 기존 영역으로 판별하는 것을 특징으로 하는 이동 로봇의 제어 방법.
  17. 제15항에 있어서,
    상기 추가 기준은, 상기 기준 거리 이내의 노드 중 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드 존재 여부를 포함하는 것을 특징으로 하는 이동 로봇의 제어 방법.
  18. 제15항에 있어서,
    상기 추가 기준은 상기 현재 위치에 대응하는 노드와 상기 현재 로봇의 방향과의 차이가 기준 각도 이하인 노드의 상관관계 일치 여부를 포함하는 것을 특징으로 하는 이동 로봇의 제어 방법.


KR1020180125761A 2018-10-22 2018-10-22 인공지능 이동 로봇의 제어 방법 Expired - Fee Related KR102147211B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180125761A KR102147211B1 (ko) 2018-10-22 2018-10-22 인공지능 이동 로봇의 제어 방법
US16/660,010 US11709499B2 (en) 2018-10-22 2019-10-22 Controlling method for artificial intelligence moving robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180125761A KR102147211B1 (ko) 2018-10-22 2018-10-22 인공지능 이동 로봇의 제어 방법

Publications (2)

Publication Number Publication Date
KR20200052389A true KR20200052389A (ko) 2020-05-15
KR102147211B1 KR102147211B1 (ko) 2020-08-24

Family

ID=70280578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180125761A Expired - Fee Related KR102147211B1 (ko) 2018-10-22 2018-10-22 인공지능 이동 로봇의 제어 방법

Country Status (2)

Country Link
US (1) US11709499B2 (ko)
KR (1) KR102147211B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240110460A (ko) * 2023-01-06 2024-07-15 코가로보틱스 주식회사 Slam을 구현하는 장치 및 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9314924B1 (en) * 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
JP7512839B2 (ja) * 2020-10-26 2024-07-09 オムロン株式会社 制御装置、ロボット、制御方法、プログラム
DE102021206130A1 (de) * 2021-06-16 2022-12-22 BSH Hausgeräte GmbH Verfahren zur autonomen Bearbeitung von Bodenflächen
WO2023007761A1 (ja) * 2021-07-30 2023-02-02 パナソニックIpマネジメント株式会社 マップ作成装置、およびマップ作成システム
US12614388B2 (en) * 2021-09-20 2026-04-28 Arlo Technologies, Inc. Image convergence in a smart security camera system with a secondary processor
CN115500737B (zh) * 2022-09-28 2023-10-17 云鲸智能(深圳)有限公司 一种地面介质探测方法、装置及清洁设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07281748A (ja) * 1994-04-15 1995-10-27 Nippondenso Co Ltd 自走体の運行方法、及び自走体の運行システム
KR20170095840A (ko) * 2014-12-16 2017-08-23 악티에볼라겟 엘렉트로룩스 로봇 청소 장치를 위한 경험-기반의 로드맵
KR20180024325A (ko) * 2016-08-29 2018-03-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR20180043606A (ko) * 2016-10-20 2018-04-30 엘지전자 주식회사 이동 로봇의 제어방법
KR20180043753A (ko) * 2016-10-20 2018-04-30 엘지전자 주식회사 이동 로봇 및 이동 로봇의 제어방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100776215B1 (ko) * 2005-01-25 2007-11-16 삼성전자주식회사 상향 영상을 이용한 이동체의 위치 추정 및 지도 생성장치 및 방법과 그 장치를 제어하는 컴퓨터 프로그램을저장하는 컴퓨터로 읽을 수 있는 기록 매체
KR101072876B1 (ko) 2009-03-18 2011-10-17 연세대학교 산학협력단 이동 로봇에서 자신의 위치를 추정하기 위한 방법 및 장치
JP2012064131A (ja) * 2010-09-17 2012-03-29 Tokyo Institute Of Technology 地図生成装置、地図生成方法、移動体の移動方法、及びロボット装置
EP2999940A4 (en) * 2013-05-22 2017-11-15 Neurala Inc. Methods and apparatus for early sensory integration and robust acquisition of real world knowledge
US9626566B2 (en) * 2014-03-19 2017-04-18 Neurala, Inc. Methods and apparatus for autonomous robotic control
US10068373B2 (en) * 2014-07-01 2018-09-04 Samsung Electronics Co., Ltd. Electronic device for providing map information
KR101844744B1 (ko) 2016-01-20 2018-04-05 주식회사 유진로봇 이동로봇을 원격으로 제어하는 원격 제어 장치 및 시스템과 그의 수행방법
WO2017188800A1 (ko) * 2016-04-29 2017-11-02 엘지전자 주식회사 이동 로봇 및 그 제어방법
US10274325B2 (en) * 2016-11-01 2019-04-30 Brain Corporation Systems and methods for robotic mapping

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07281748A (ja) * 1994-04-15 1995-10-27 Nippondenso Co Ltd 自走体の運行方法、及び自走体の運行システム
KR20170095840A (ko) * 2014-12-16 2017-08-23 악티에볼라겟 엘렉트로룩스 로봇 청소 장치를 위한 경험-기반의 로드맵
JP2018500636A (ja) * 2014-12-16 2018-01-11 アクチエボラゲット エレクトロルックス ロボット掃除機のための経験ベースロードマップ
KR20180024325A (ko) * 2016-08-29 2018-03-08 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR20180043606A (ko) * 2016-10-20 2018-04-30 엘지전자 주식회사 이동 로봇의 제어방법
KR20180043753A (ko) * 2016-10-20 2018-04-30 엘지전자 주식회사 이동 로봇 및 이동 로봇의 제어방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240110460A (ko) * 2023-01-06 2024-07-15 코가로보틱스 주식회사 Slam을 구현하는 장치 및 방법

Also Published As

Publication number Publication date
US11709499B2 (en) 2023-07-25
KR102147211B1 (ko) 2020-08-24
US20200125113A1 (en) 2020-04-23

Similar Documents

Publication Publication Date Title
EP3946841B1 (en) MOBILE ROBOT AND ITS CONTROL METHOD
KR102147211B1 (ko) 인공지능 이동 로봇의 제어 방법
KR102275300B1 (ko) 이동 로봇 및 그 제어방법
AU2017316091B2 (en) Mobile robot and control method therefor
KR102314539B1 (ko) 인공지능 이동 로봇의 제어 방법
US11561549B2 (en) Method of controlling mobile robot
US10939791B2 (en) Mobile robot and mobile robot control method
KR102143349B1 (ko) 이동 로봇의 제어 방법
KR102024094B1 (ko) 인공지능을 이용한 이동 로봇 및 그 제어방법
KR102147210B1 (ko) 인공지능 이동 로봇의 제어 방법

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

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

PE0902 Notice of grounds for rejection

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

E13-X000 Pre-grant limitation requested

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

P11-X000 Amendment of application requested

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

P13-X000 Application amended

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

P22-X000 Classification modified

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

PG1501 Laying open of application

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

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

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

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20230819

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20230819