KR20190069216A - 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법 - Google Patents

인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법 Download PDF

Info

Publication number
KR20190069216A
KR20190069216A KR1020170169710A KR20170169710A KR20190069216A KR 20190069216 A KR20190069216 A KR 20190069216A KR 1020170169710 A KR1020170169710 A KR 1020170169710A KR 20170169710 A KR20170169710 A KR 20170169710A KR 20190069216 A KR20190069216 A KR 20190069216A
Authority
KR
South Korea
Prior art keywords
information
behavior
state
mobile robot
docking
Prior art date
Application number
KR1020170169710A
Other languages
English (en)
Other versions
KR102048365B1 (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 KR1020170169710A priority Critical patent/KR102048365B1/ko
Priority to PCT/KR2018/015652 priority patent/WO2019117576A1/ko
Priority to US16/957,888 priority patent/US20220032450A1/en
Publication of KR20190069216A publication Critical patent/KR20190069216A/ko
Application granted granted Critical
Publication of KR102048365B1 publication Critical patent/KR102048365B1/ko

Links

Images

Classifications

    • 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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0225Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving docking at a fixed facility, e.g. base station or loading bay
    • 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
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • A47L9/2852Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • 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
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme 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/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • 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
    • 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)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Electromagnetism (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 발명에 따른 이동 로봇의 제어방법은, 주행 중 감지를 통해 현재의 상태 정보를 획득하고, 도킹을 위한 소정의 행동 제어 알고리즘에 상기 현재의 상태 정보를 입력하여 선택되는 행동 정보에 따라 행동을 제어한 결과에 근거하여, 상기 상태 정보 및 상기 행동 정보를 포함하는 하나의 경험 정보를 생성하는 경험 정보 생성 단계를 포함한다. 상기 제어방법은, 상기 경험 정보 생성 단계를 반복 수행하여 복수의 경험 정보가 저장되는 경험 정보 수집 단계; 및 상기 복수의 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 학습 단계를 더 포함한다.

Description

이동 로봇 및 이동 로봇의 제어방법 {a Moving robot and Controlling method for the moving robot}
본 발명은 이동 로봇의 행동 제어 알고리즘의 머신 러닝(Machine Learning)에 관한 것이다.
일반적으로 로봇은 산업용으로 개발되어 공장 자동화의 일 부분을 담당하여 왔다. 최근에는 로봇을 응용한 분야가 더욱 확대되어, 의료용 로봇, 우주 항공 로봇 등이 개발되고, 일반 가정에서 사용할 수 있는 가정용 로봇도 만들어지고 있다. 이러한 로봇 중에서 자력으로 주행이 가능한 것을 이동 로봇이라고 한다. 가정에서 사용되는 이동 로봇의 대표적인 예는 로봇 청소기이다.
이러한 이동 로봇은 일반적으로 충전 가능한 배터리를 구비하고, 주행 중 장애물을 피할 수 있는 장애물 센서를 구비하여 스스로 주행할 수 있다.
최근에는, 이동 로봇이 단순히 자율적으로 주행하여 청소를 수행하는 것에서 벗어나 헬스 케어, 스마트홈, 원격제어 등 다양한 분야에 활용하기 위한 연구가 활발하게 이루어지고 있다.
또한, 이동 로봇은 다양한 정보를 수집할 수 있으며, 네트워크를 이용하여 수집한 정보를 다양한 방식으로 처리할 수 있다.
또한, 이동 로봇이 충전을 수행하기 위한 충전대 등의 도킹 기기가 알려져 있다. 이동 로봇은 주행 중 청소 등의 작업을 완료하거나 배터리의 충전량이 소정치 이하인 경우, 도킹 기기로 복귀하는 이동을 수행한다.
종래 기술(한국공개특허 10-2010-0136904)에서는, 도킹 기기(도킹 스테이션)가 주변의 영역이 구분되도록 몇가지 종류의 도킹유도신호를 서로 다른 범위로 방출하고, 로봇 청소기가 상기 도킹유도신호를 감지하여 도킹을 수행하는 행동 알고리즘이 개시된다.
한국공개특허 10-2010-0136904 (공개일: 2010년 12월 29일)
종래 기술에서, 도킹 유도 신호 기반의 도킹 기기 탐색은 사각이 존재하여 잦은 도킹 실패 현상이 발생하는 문제가 있으며, 도킹 성공까지 도킹 시도 횟수가 늘어나거나 도킹 성공까지 소요시간이 길어질 수 있는 문제가 있다. 본 발명의 제 1과제는 이러한 문제를 해결하여, 이동 로봇의 도킹을 위한 행동의 효율성을 상승시키는 것이다.
종래 기술에서, 이동 로봇이 도킹 기기 주변의 장애물에 쉽게 충돌할 수 있는 문제가 있다. 본 발명의 제 2과제는 이동 로봇의 장애물 회피 가능성을 현저히 상승시키는 것이다.
도킹 기기가 설치된 환경의 편차나 도킹 기기 및 이동 로봇 제품의 편차 등에 따라, 개별적인 사용자 환경은 서로 달라질 수 있다. 예를 들어, 도킹 기기가 배치된 곳의 기울기나 장애물, 단차 등의 편차 요인 등에 의해서, 각각의 사용자 환경은 특수성을 지닐 수 있다. 그런데, 이러한 각각의 특수성을 지닌 사용자 환경에서 모든 제품에 대해 일괄적으로 기 저장된 행동 제어 알고리즘으로만 이동 로봇의 행동이 제어될 시, 잦은 도킹 실패가 발생하더라도, 이를 개선시킬 여지가 없다는 문제가 있다. 이는 잘못된 이동 로봇의 행동이 지속적으로 사용자에게 불편을 초래하게 되므로, 매우 큰 문제이다. 본 발명의 제 3과제는 이러한 문제를 해결하는 것이다.
종래 기술과 같이 고정된 행동 제어 알고리즘으로만 이동 로봇을 제어할 경우, 도킹 기기 주변에 새로운 유형의 장애물이 출현하는 등 사용자 환경이 변화하는 경우에 대응하여, 이동 로봇의 도킹 동작이 적응할 수 없는 문제가 있다. 본 발명의 제 4과제는 이러한 문제를 해결하는 것이다.
본 발명의 제 5과제는, 학습에 필요한 이동 로봇의 위치한 환경에 대한 데이터를 효율적으로 수집하면서도, 수집된 데이터를 이용하여 보다 효율적으로 각 환경에 적합한 행동 제어 알고리즘의 학습을 가능하게 하는 것이다.
상기 과제들을 해결하기 위하여, 본 발명은 이동 로봇의 최초 기설정된 행동 제어 알고리즘에 제한되지 않고, 머신 러닝(Machine Learning) 기능을 구현하여 상기 행동 제어 알고리즘을 학습하기 위한 해결 수단을 제시한다.
상기 과제들을 해결하기 위하여, 본 발명의 해결 수단에 따른 이동 로봇은, 본체; 상기 본체를 이동시키는 주행부; 현재의 상태 정보를 획득하기 위해 주행 중 감지를 수행하는 센싱부; 도킹을 위한 소정의 행동 제어 알고리즘에 상기 현재의 상태 정보를 입력하여 선택되는 행동 정보에 따라 행동을 제어한 결과에 근거하여, 상기 상태 정보 및 상기 행동 정보를 포함하는 하나의 경험 정보를 생성하고, 상기 경험 정보의 생성을 반복 수행하여 복수의 경험 정보가 저장되고, 상기 복수의 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 제어부를 포함한다.
상기 과제들을 해결하기 위하여, 본 발명의 해결 수단에 따른 이동 로봇의 제어방법은, 주행 중 감지를 통해 현재의 상태 정보를 획득하고, 도킹을 위한 소정의 행동 제어 알고리즘에 상기 현재의 상태 정보를 입력하여 선택되는 행동 정보에 따라 행동을 제어한 결과에 근거하여, 상기 상태 정보 및 상기 행동 정보를 포함하는 하나의 경험 정보를 생성하는 경험 정보 생성 단계를 포함한다. 상기 제어방법은, 상기 경험 정보 생성 단계를 반복 수행하여 복수의 경험 정보가 저장되는 경험 정보 수집 단계; 및 상기 복수의 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 학습 단계를 더 포함한다.
각각의 상기 경험 정보는, 각 경험 정보에 속한 행동 정보에 따라 행동을 제어한 결과에 근거하여 설정되는 보상 스코어를 더 포함할 수 있다.
상기 보상 스코어는, 상기 행동 정보에 따라 행동을 제어한 결과, 도킹을 성공한 경우 상대적으로 높게 설정되고 도킹을 실패한 경우 상대적으로 낮게 설정될 수 있다.
상기 보상 스코어는, 상기 행동 정보에 따라 행동을 제어한 결과에 따른 ⅰ도킹의 성공 여부, ⅱ도킹까지 소요되는 시간, ⅲ도킹 성공까지 도킹을 시도한 횟수 및 ⅳ장애물의 회피 성공 여부 중 적어도 어느 하나와 관련되어 설정될 수 있다.
상기 행동 제어 알고리즘은, 어느 한 상태 정보를 상기 행동 제어 알고리즘에 입력할 때, ⅰ상기 어느 한 상태 정보가 속한 상기 경험 정보 내의 행동 정보 중 최고의 보상 스코어가 얻어지는 활용 행동 정보 및 ⅱ상기 어느 한 상태 정보가 속한 상기 경험 정보 내의 행동 정보가 아닌 탐험 행동 정보 중, 어느 하나가 선택되도록 설정될 수 있다.
상기 행동 제어 알고리즘은, 상기 학습 단계 전에 기설정되되, 상기 학습 단계를 통해 변경되도록 구비될 수 있다.
상기 상태 정보는, 도킹 기기와 이동 로봇의 상대적 위치 정보를 포함할 수 있다.
상기 상태 정보는, 도킹 기기 및 도킹 기기 주변의 환경 중 적어도 하나에 대한 영상 정보를 포함할 수 있다.
이동 로봇은 소정의 네트워크를 통해 서버로 상기 경험 정보를 송신할 수 있다. 상기 서버가 상기 학습 단계를 수행할 수 있다.
상기 과제들을 해결하기 위하여, 본 발명의 해결 수단에 따른 이동 로봇의 제어방법은, 주행 중 제 n시점의 상태에서 감지를 통해 제 n상태 정보를 획득하고, 도킹을 위한 소정의 행동 제어 알고리즘에 상기 제 n상태 정보를 입력하여 선택되는 제 n행동 정보에 따라 행동을 제어한 결과에 근거하여, 상기 제 n상태 정보 및 상기 제 n행동 정보를 포함하는 제 n경험 정보를 생성하는 경험 정보 생성 단계를 포함한다. 상기 제어방법은, 상기 경험 정보 생성 단계를 상기 n이 1인 경우부터 상기 n이 p인 경우까지 순차적으로 반복 수행하여 제 1 내지 p 경험 정보가 저장되는 경험 정보 수집 단계; 및 상기 제 1 내지 p 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 학습 단계를 더 포함한다. 여기서, p는 2이상의 자연수로서 p+1시점의 상태는 도킹 완료 상태이다.
상기 제 n경험 정보는, 상기 제 n행동 정보에 따라 행동을 제어한 결과에 근거하여 설정되는 제 n+1보상 스코어를 더 포함할 수 있다.
상기 경험 정보 생성 단계는, 상기 제 n+1보상 스코어는 제 n+1 시점의 상태에서 감지를 통해 획득된 제 n+1상태 정보에 대응하여 설정될 수 있다.
상기 제 n+1보상 스코어는, 상기 제 n+1시점의 상태가, 도킹 완료 상태인 경우 상대적으로 높게 설정되고 도킹 미완료 상태인 경우 상대적으로 낮게 설정될 수 있다.
상기 제 n+1상태 정보가 속한 기 저장된 복수의 경험 정보에 근거하여, ⅰ상기 제 n+1상태 이후 도킹 성공의 확률이 클수록. ⅱ상기 제 n+1상태 이후 도킹 성공까지 확률적 예상 소요시간이 작을수록, 또는 ⅲ상기 제 n+1상태 이후 도킹 성공까지 확률적 예상 도킹 시도 횟수가 작을수록, 상기 제 n+1보상 스코어가 크게 설정될 수 있다.
상기 제 n+1상태 정보가 속한 기 저장된 복수의 경험 정보에 근거하여, 상기 제 n+1상태 이후 외부의 장애물에 대한 충돌 확률이 작을수록, 상기 제 n+1보상 스코어가 크게 설정될 수 있다.
상기 과제들을 해결하기 위하여, 본 발명의 해결 수단에 따른 이동 로봇의 제어방법은, 주행 중 제 n시점의 상태에서 감지를 통해 제 n상태 정보를 획득하고, 도킹을 위한 소정의 행동 제어 알고리즘에 상기 제 n상태 정보를 입력하여 선택되는 제 n행동 정보에 따라 행동을 제어한 결과에 근거하여 제 n+1보상 스코어를 획득하고, 상기 제 n상태 정보, 상기 제 n행동 정보 및 상기 제 n+1보상 스코어를 포함하는 제 n경험 정보를 생성하는 경험 정보 생성 단계를 포함한다. 상기 제어방법은, 상기 경험 정보 생성 단계를 상기 n이 1인 경우부터 상기 n이 p인 경우까지 순차적으로 반복 수행하여 제 1 내지 p 경험 정보가 저장되는 경험 정보 수집 단계; 및 상기 제 1 내지 p 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 학습 단계를 더 포함한다. 여기서, p는 2이상의 자연수로서 p+1시점의 상태는 도킹 완료 상태이다.
상기 해결 수단을 통해서, 상기 이동 로봇은 효율적으로 도킹을 위한 행동을 수행하게 하고, 장애물을 효율적으로 회피하는 행동을 수행하게 해주는 효과가 있다.
상기 해결 수단을 통해서, 이동 로봇의 도킹 성공률을 높이거나, 도킹 성공까지 도킹 시도 횟수를 줄이거나, 도킹 성공까지 소요시간을 줄이는 효과가 있다.
상기 이동 로봇이 복수의 경험 정보를 생성하고 상기 복수의 경험 정보를 근거로 행동 제어 알고리즘을 학습함으로써, 사용자 환경에 최적화된 행동 제어 알고리즘을 구현할 수 있다. 또한, 사용자 환경의 변화에 효과적으로 대응하며 변화 적응하는 행동 제어 알고리즘을 구현할 수 있다.
상기 각각의 경험 정보는 상기 보상 스코어를 더 포함하게 함으로써, 강화 학습을 수행할 수 있다. 또한, 상기 보상 스코어를 도킹이나 장애물 회피와 관련시킴으로써, 목적 기반의 효율적인 이동 로봇의 행동 제어가 수행될 수 있다.
상기 행동 제어 알고리즘이 상기 활용 행동 정보 및 상기 탐험 행동 정보 중 어느 하나가 선택되도록 설정됨으로써, 보다 다양한 경험 정보를 생성시키면서도, 최적화된 행동을 수행할 수 있게 해준다. 구체적으로, 행동 제어 알고리즘은, 기 저장된 경험 정보가 상대적으로 적어 학습이 상대적으로 덜 진행된 초기 시기에는, 어느 한 상태에서 보다 다양하게 상기 탐험 행동 정보를 선택하며, 많은 경우의 수의 경험 정보들을 생성시킬 수 있다. 또한, 많은 수의 경험 정보가 소정치 이상 충분히 누적되어 충분히 학습이 진행된 후에는, 행동 제어 알고리즘이 어느 한 상태에서 매우 높은 확률로 상기 활용 행동 정보를 선택하게 된다. 따라서, 시간이 흘러 점점 많은 경험 정보가 누적될수록, 이동 로봇은 점점 최적의 행동으로 도킹을 성공시키거나, 장애물을 회피할 수 있게 된다.
상기 행동 제어 알고리즘은 상기 학습 단계 전에 기설정됨으로써, 사용자가 최초로 이동 로봇을 이용하는 상황에서도, 어느 정도 수준 이상의 도킹 성능을 발휘할 수 있게 해준다.
상기 상태 정보는 상기 상대적 위치 정보를 포함함으로써, 상기 행동 정보에 따른 행동 결과 보다 정밀한 수준의 피드백을 받을 수 있는 효과가 있다.
상기 서버가 상기 학습 단계를 수행함으로써, 이동 로봇이 위치한 환경에 대한 정보를 기반으로 행동 제어 알고리즘의 학습이 진행되면서도, 서버 기반 학습을 통해 보다 효과적인 학습을 수행할 있다. 또한, 이동 로봇의 메모리(저장부) 부담이 줄어드는 효과가 있다. 또한, 머신 러닝에 있어서, 어느 한 이동 로봇 생성시킨 경험 정보 중 다른 이동 로봇의 행동 제어 알고리즘의 학습에 이용될 수 있는 것은, 서버를 통해 공통적으로 학습할 수 있다는 효과가 있다. 이에 따라, 복수의 이동 로봇이 각각 별도의 경험 정보를 생성시키는 노력 량을 줄일 수 있다.
도 1은 본 발명의 일 실시예에 따른 이동 로봇(100) 및 이동 로봇이 도킹(docking)되는 도킹 기기(200)를 도시한 사시도이다.
도 2는 도 1의 이동 로봇(100)을 상측에서 바라본 입면도이다.
도 3은 도 1의 이동 로봇(100)을 정면에서 바라본 입면도이다.
도 4는 도 1의 이동 로봇(100)을 하측에서 바라본 입면도이다.
도 5는 도 1의 이동 로봇(100)의 주요 구성들 간의 제어관계를 도시한 블록도이다.
도 6은 도 1의 이동 로봇(100)과 서버(500)의 네트워크를 도시한 개념도이다.
도 7은, 도 6의 네트워크의 일 예를 도시한 개념도이다.
도 8은, 일 실시예에 따른 이동 로봇(100)의 제어방법을 보여주는 순서도이다.
도 9는 도 8의 제어방법을 구체화한 일 예를 도시한 순서도이다.
도 10는 일 실시예에 따라 수집된 경험 정보로 학습을 하는 과정을 보여주는 순서도이다.
도 11은 다른 실시예에 따라 수집된 경험 정보로 학습을 하는 과정을 보여주는 순서도이다.
도 12는, 이동 로봇이 어느 한 행동 정보와 대응되는 행동을 수행한 결과 어느 한 상태 정보에 대응되는 상태에서 다른 한 상태 정보와 대응되는 상태로 변경되는 것을 보여주는 개념도이다. 도 12에는, 각각의 상태에서 감지를 통해 획득 가능한 각각의 상태 정보(ST1, ST2, ST3, ST4, ST5, ST6, STf1, STs, …)가 원(circle)으로 도시되고, 각 상태 정보와 대응되는 상태에서 선택 가능한 행동 정보(A1, A2, A31, A32, A33, A34, A35, A4, A5, A6, A71, A72, A73, A74, A81, A82, A83, A84, …)가 화살표로 도시되며, 어느 한 행동 정보와 대응되는 행동을 수행한 결과 변경된 상태에 따른 보상 스코어(R1, R2, R3, R4, R5, R6, Rf1, Rs, …)가 각 상태 정보와 대응되게 도시된다.
도 13 내지 도 20은, 도 12의 각 상태 정보에 대응하는 이동 로봇(100)의 상태와, 각 행동 정보에 대응하는 이동 로봇(100)의 선택 가능한 행동을 예시를 보여주는 평면도이며, 상태 정보를 획득하기 위한 하나의 예시로서 영상을 감지하는 것을 도시한다.
도 13은, 이동 로봇(100)이 상태(P(ST1))에서 행동(P(A1))을 수행한 결과, 감지를 통해 획득한 상태 정보(ST2)에 대응되는 상태(P(ST2))를 도시한다. 또한, 도 13은, 이동 로봇(100)이 상태(P(ST2))에서 행동(P(A2))을 수행한 결과, 영상(P3)의 감지를 통해 획득한 상태 정보(ST3)에 대응되는 상태(P(ST3))를 도시한다. 또한, 도 13은, 이동 로봇(100)이 현재의 상태(P(ST3))에서 선택 가능한 몇가지 행동(P(A31), P(A32), P(A33))을 예시적으로 도시한다.
도 14는, 도 13의 이동 로봇(100)이 상태(P(ST3))에서 행동(P(A32))을 수행한 결과, 영상(P4)의 감지를 통해 획득한 상태 정보(ST4)에 대응되는 상태(P(ST4))를 도시하고, 이동 로봇(100)의 현재의 상태(P(ST4))에서 선택 가능한 행동(P(A4))을 예시적으로 도시한다.
도 15는, 도 13의 이동 로봇(100)이 상태(P(ST3))에서 행동(P(A33))을 수행한 결과, 감지를 통해 획득한 상태 정보(ST5)에 대응되는 상태(P(ST5))를 도시하고, 이동 로봇(100)의 현재의 상태(P(ST5))에서 선택 가능한 행동(P(A5))을 예시적으로 도시한다.
도 16은, 도 15의 이동 로봇(100)이 상태(P(ST5))에서 행동(P(A5))을 수행한 결과, 영상(P6)의 감지를 통해 획득한 상태 정보(ST6)에 대응되는 상태(P(ST6))를 도시하고, 이동 로봇(100)의 현재의 상태(P(ST6))에서 선택 가능한 행동(P(A6))을 예시적으로 도시한다.
도 17은, 도 13의 이동 로봇(100)이 상태(P(ST3))에서 행동(P(A31))을 수행한 결과, 영상(P7)의 감지를 통해 획득한 상태 정보(ST7)에 대응되는 상태(P(ST7))를 도시하고, 이동 로봇(100)의 현재의 상태(P(ST4))에서 선택 가능한 행동(P(A71), P(A72), P(A73))을 예시적으로 도시한다.
도 18은, 도 17의 이동 로봇(100)이 상태(P(ST4))에서 행동(P(A71))을 수행한 결과, 감지를 통해 획득한 상태 정보(STf1)에 대응되는 도킹 실패 상태(P(STf1))를 도시하고, 이동 로봇(100)의 현재의 상태(P(STf1))에서 선택 가능한 행동(P(A81), P(A82), P(A83))을 예시적으로 도시한다.
도 19는, 감지를 통해 획득한 상태 정보(STf2)에 대응되는 다른 경우의 도킹 실패 상태(P(STf2))를 도시하고, 이동 로봇(100)의 현재의 상태(P(STf2))에서 선택 가능한 행동(P(A91), P(A92), P(A93))을 예시적으로 도시한다.
도 20은, 감지를 통해 획득한 상태 정보(STs)에 대응되는 도킹 성공 상태(P(STs))를 도시한다. 예를 들어, 도 14의 이동 로봇(100)이 상태(P(ST4))에서 행동(P(A4))를 수행한 결과 상기 도킹 성공 상태(P(STs))가 되며, 도 16의 이동 로봇(100)이 상태(P(ST6))에서 행동(P(A6))을 수행한 결과 상기 도킹 성공 상태(P(STs))가 된다.
본 발명인 이동 로봇(100)은 바퀴 등을 이용하여 스스로 이동이 가능한 로봇을 의미하고, 가정 도우미 로봇 및 로봇 청소기 등이 될 수 있다.
이하 도 1 내지 도 5를 참조하여, 이동 로봇 중 로봇 청소기(100)를 예로 들어 설명하나, 반드시 이에 한정될 필요는 없다.
이동 로봇(100)은 본체(110)를 포함한다. 이하, 본체(110)의 각부분을 정의함에 있어서, 주행구역 내의 천장을 향하는 부분을 상면부(도 2 참조)로 정의하고, 주행구역 내의 바닥을 향하는 부분을 저면부(도 4 참조)로 정의하고, 상기 상면부와 저면부 사이에서 본체(110)의 둘레를 이루는 부분 중 주행방향을 향하는 부분을 정면부(도 3 참조)라고 정의한다. 또한, 본체(110)의 정면부와 반대 방향을 향하는 부분을 후면부로 정의할 수 있다.
본체(110)는 이동 로봇(100)를 구성하는 각종 부품들이 수용되는 공간을 형성하는 케이스(111)를 포함할 수 있다. 이동 로봇(100)은 현재의 상태 정보를 획득하기 위해 감지를 수행하는 센싱부(130)를 포함한다. 이동 로봇(100)은 본체(110)를 이동시키는 주행부(160)를 포함한다. 이동 로봇(100)은 주행 중 소정의 작업을 수행하는 작업부(180)를 포함한다. 이동 로봇(100)은 이동 로봇(100)의 제어를 위한 제어부(140)를 포함한다.
센싱부(130)는 주행 중 감지를 수행할 수 있다. 센싱부(130)의 감지에 의해 상태 정보가 생성된다. 센싱부(130)는 이동 로봇(100)의 주변의 상황을 감지할 수 있다. 센싱부(130)는 이동 로봇(100)의 상태를 감지할 수 있다.
센싱부(130)는 주행 구역에 대한 정보를 감지할 수 있다. 센싱부(130)는 주행면 상의 벽체, 가구, 및 낭떠러지 등의 장애물을 감지할 수 있다. 센싱부(130)는 도킹 기기(200)를 감지할 수 있다. 센싱부(130)는 천장에 대한 정보를 감지할 수 있다. 센싱부(130)가 감지한 정보를 통해, 이동 로봇(100)은 주행 구역을 맵핑(Mapping)할 수 있다.
상태 정보는 이동 로봇(100)이 감지하여 획득한 정보를 의미한다. 상기 상태 정보는, 센싱부(130)의 감지에 의해 곧바로 획득될 수도 있고, 제어부(140)에 의해 처리되어 획득될 수도 있다. 예를 들어, 초음파 센서를 통해 거리 정보를 곧바로 획득할 수도 있고, 초음파 센서를 통해 감지된 정보를 제어부가 변환하여 거리 정보를 획득할 수도 있다.
상기 상태 정보는, 이동 로봇(100)의 주변의 상황에 대한 정보를 포함할 수 있다. 상기 상태 정보는, 이동 로봇(100)의 상태에 대한 정보를 포함할 수 있다. 상기 상태 정보는, 도킹 기기(200)에 대한 정보를 포함할 수 있다.
센싱부(130)는, 거리 감지부(131), 낭떠러지 감지부(132), 외부 신호 감지부(미도시), 충격 감지부(미도시), 영상 감지부(138), 3D 센서(138a, 139a, 139b) 및 도킹 여부 감지부 중 적어도 하나를 포함할 수 있다.
센싱부(130)는 주변 물체까지의 거리를 감지하는 거리 감지부(131)를 포함할 수 있다. 거리 감지부(131)는 본체(110)의 정면부에 배치될 수 있고, 측방부에 배치될 수도 있다. 거리 감지부(131)는 주변의 장애물을 감지할 수 있다. 복수의 거리 감지부(131)가 구비될 수 있다.
예를 들어, 거리 감지부(131)는, 발광부와 수광부를 구비한 적외선 센서, 초음파 센서, RF 센서, 지자기 센서 등일 수 있다. 초음파 또는 적외선 등을 이용하여 거리 감지부(131)가 구현될 수 있다. 카메라를 이용하여 거리 감지부(131)가 구현될 수 있다. 거리 감지부(131)는 두 가지 종류 이상의 센서로 구현될 수도 있다.
상기 상태 정보는 특정의 장애물과의 거리 정보를 포함할 수 있다. 상기 거리 정보는, 도킹 기기(200)와 이동 로봇(100) 사이의 거리 정보를 포함할 수 있다. 상기 거리 정보는, 도킹 기기(200) 주변의 특정 장애물과 이동 로봇(100) 사이의 거리 정보를 포함할 수 있다.
일 예로, 상기 거리 정보는 거리 감지부(131)의 감지를 통해 획득될 수 있다. 이동 로봇(100)은, 적외선 또는 초음파의 반사를 통해 이동 로봇(100)과 도킹 기기(200) 사이의 거리 정보를 획득할 수 있다.
다른 예로, 상기 거리 정보는 맵 상에서 어느 두 지점 사이의 거리로 측정될 수 있다. 이동 로봇(100)은, 맵 상에서 도킹 기기(200)의 위치와 이동 로봇(100)의 위치를 인식할 수 있고, 맵 상의 좌표 차이를 이용하여 도킹 기기(200)와 이동 로봇(100) 사이의 거리 정보를 획득할 수 있다.
센싱부(130)는 주행구역 내 바닥의 장애물을 감지하는 낭떠러지 감지부(132)를 포함할 수 있다. 낭떠러지 감지부(132)는 바닥에 낭떠러지의 존재 여부를 감지할 수 있다.
낭떠러지 감지부(132)는 이동 로봇(100)의 저면부에 배치될 수 있다. 복수의 낭떠러지 감지부(132)가 구비될 수 있다. 이동 로봇(100)의 저면부의 전방에 배치된 낭떠러지 감지부(132)가 구비될 수 있다. 이동 로봇(100)의 저면부의 후방에 배치된 낭떠러지 감지부(132)가 구비될 수 있다.
낭떠러지 감지부(132)는 발광부와 수광부를 구비한 적외선 센서, 초음파 센서, RF 센서, PSD(Position Sensitive Detector) 센서 등일 수 있다. 예를 들어, 낭떠러지 감지 센서는 PSD 센서일 수 있으나, 복수의 서로 다른 종류의 센서로 구성될 수도 있다. PSD 센서는 장애물에 적외선을 발광하는 발광부와, 장애물로부터 반사되어 돌아오는 적외선을 수광하는 수광부를 포함한다.
낭떠러지 감지부(132)는 낭떠러지의 존재 여부 및 낭떠러지의 깊이를 감지하고, 이에 따라 이동 로봇(100) 낭떠러지와의 위치 관계에 대한 상태 정보를 획득할 수 있다.
센싱부(130)는 이동 로봇(100)이 외부의 물건과 접촉에 의한 충격을 감지하는 상기 충격 감지부를 포함할 수 있다.
센싱부(130)는 이동 로봇(100)의 외부로부터 발송된 신호를 감지하는 상기 외부 신호 감지부를 포함할 수 있다. 상기 외부 신호 감지부는, 외부로부터의 적외선 신호를 감지하는 적외선 센서(Infrared Ray Sensor), 외부로부터의 초음파 신호를 감지하는 초음파 센서(Ultra Sonic Sensor), 외부로부터의 RF신호를 감지하는 RF 센서(Radio Frequency Sensor) 중 적어도 어느 하나를 포함할 수 있다.
이동 로봇(100)은 외부 신호 감지부를 이용하여 도킹 기기(200)가 발생하는 안내 신호를 수신할 수 있다. 상기 외부 신호 감지부가 도킹 기기(200)의 안내 신호(예를 들어, 적외선 신호, 초음파 신호, RF 신호)를 감지하여, 이동 로봇(100)과 도킹 기기(200)의 상대적 위치에 대한 상태 정보가 생성될 수 있다. 이동 로봇(100)과 도킹 기기(200)의 상대적 위치에 대한 상태 정보는, 이동 로봇(100)에 대한 도킹 기기(200)의 거리 및 방향에 대한 정보를 포함할 수 있다. 도킹 기기(200)는 도킹 기기(200)의 방향 및 거리를 지시하는 안내 신호를 발신할 수 있다. 이동 로봇(100)은 도킹 기기(200)로부터 발신되는 신호를 수신하여 현재의 위치에 대한 상태 정보를 획득하고, 행동 정보를 선택하여 도킹 기기(200)로 도킹을 시도하도록 이동할 수 있다.
센싱부(130)는 이동 로봇(100) 외부의 영상을 감지하는 영상 감지부(138)를 포함할 수 있다.
영상 감지부(138)는 디지털 카메라를 포함할 수 있다. 상기 디지털 카메라는 적어도 하나의 광학렌즈와, 상기 광학렌즈를 통과한 광에 의해 상이 맺히는 다수개의 광다이오드(photodiode, 예를 들어, pixel)를 포함하여 구성된 이미지센서(예를 들어, CMOS image sensor)와, 상기 광다이오드들로부터 출력된 신호를 바탕으로 영상을 구성하는 디지털 신호 처리기(DSP: Digital Signal Processor)를 포함할 수 있다. 상기 디지털 신호 처리기는 정지영상은 물론이고, 정지영상으로 구성된 프레임들로 이루어진 동영상을 생성하는 것도 가능하다.
영상 감지부(138)는 이동 로봇(100)의 전방으로의 영상을 감지하는 전방 영상 센서(138a)를 포함할 수 있다. 전방 영상 센서(138a)는 장애물이나 도킹 기기(200) 등 주변 물건의 영상을 감지할 수 있다.
영상 감지부(138)는 이동 로봇(100)의 상측 방향으로의 영상을 감지하는 상방 영상 센서(138b)를 포함할 수 있다. 상방 영상 센서(138b)는 천장 또는 이동 로봇(100)의 상측에 배치된 가구의 하측면 등의 영상을 감지할 수 있다.
영상 감지부(138)는 이동 로봇(100)의 하측 방향으로의 영상을 감지하는 하방 영상 센서(138c)를 포함할 수 있다. 하방 영상 센서(138c)는 바닥의 영상을 감지할 수 있다.
그 밖에도, 영상 감지부(138)는 측방 또는 후방으로 영상을 감지하는 센서를 포함할 수 있다.
상기 상태 정보는, 영상 감지부(138)에 의해 획득된 영상 정보를 포함할 수 있다.
센싱부(130)는 외부 환경의 3차원 정보를 감지하는 3D 센서(138a, 139a, 139b)를 포함할 수 있다.
3D 센서(138a, 139a, 139b)는 이동 로봇(100)과 피촬영 대상체의 원근거리를 산출하는 3차원 뎁스 카메라(3D Depth Camera)(138a)를 포함할 수 있다.
본 실시예에서, 3D 센서(138a, 139a, 139b)는, 본체(110)의 전방을 향해 소정 패턴의 광을 조사하는 패턴 조사부(139), 및 본체(110)의 전방의 영상을 획득하는 전방 영상 센서(138a)를 포함한다. 상기 패턴 조사부(139)는, 본체(110)의 전방 하측으로 제 1패턴의 광을 조사하는 제 1패턴 조사부(139a)와, 본체(110)의 전방 상측으로 제 2패턴의 광을 조사하는 제 2패턴 조사부(139b)를 포함할 수 있다. 전방 영상 센서(138a)는 상기 제 1패턴의 광과 상기 제 2패턴의 광이 입사된 영역의 영상을 획득할 수 있다.
상기 패턴 조사부(139)는 적외선 패턴을 조사하게 구비될 수 있다. 이 경우, 전방 영상 센서(138a)는 상기 적외선 패턴이 피촬영 대상체에 투영된 모양을 캡쳐함으로써, 상기 3D 센서와 피촬영 대상체 사이의 거리를 측정할 수 있다.
상기 제 1패턴의 광 및 상기 제 2패턴의 광은 서로 교차하는 직선 형태로 조사될 수 있다. 상기 제 1패턴의 광 및 상기 제 2패턴의 광은 상하로 이격된 수평의 직선 형태로 조사될 수 있다.
제2 레이저는 단일의 직선 형태의 레이저를 조사할 수 있다. 이에 따르면, 최하단 레이저는 바닥 부분의 장애물을 감지하는 데에 이용되고, 최상단 레이저는 상부의 장애물을 감지하는 데에 이용되며, 최하단 레이저와 최상단 레이저 사이의 중간 레이저는 중간 부분의 장애물을 감지하는 데에 이용된다.
도시되지는 않았으나, 다른 실시예에서, 상기 3D 센서는 2차원 영상을 획득하는 카메라를 2개 이상 구비하여, 상기 2개 이상의 카메라에서 획득되는 2개 이상의 영상을 조합하여, 3차원 정보를 생성하는 스테레오 비전 방식으로 형성될 수 있다.
도시되지는 않았으나, 또 다른 실시예에서, 상기 3D 센서는, 레이져를 방출하는 발광부와 상기 발광부에서 방출되는 레이저 중 피촬영 대상체로부터 반사되는 일부를 수신하는 수광부를 포함할 수 있다. 이 경우, 수신된 레이저를 분석함으로써, 상기 3D 센서와 피촬영 대상체 사이의 거리를 측정할 수 있다. 이러한 3D 센서는 TOF(Time of Flight) 방식으로 구현될 수 있다.
센싱부(130)는 이동 로봇(100)의 도킹 기기(200)에 대한 도킹 성공 여부를 감지하는 도킹 감지부(미도시)를 포함할 수 있다. 상기 도킹 감지부는, 대응 단자(190)와 충전 단자(210)의 접촉에 의해 감지되게 구현될 수도 있고, 대응 단자(190)와는 별도로 배치된 감지 센서로 구현될 수도 있으며, 배터리(177)의 충전 중 상태를 감지함으로써 구현될 수도 있다. 도킹 감지부에 의해, 도킹 성공 상태 및 도킹 실패 상태를 감지할 수 있다.
주행부(160)는 바닥에 대해 본체(110)를 이동시킨다. 주행부(160)는 본체(110)를 이동시키는 적어도 하나의 구동 바퀴(166)를 포함할 수 있다. 주행부(160)는 구동 모터를 포함할 수 있다. 구동 바퀴(166)는 본체(110)의 좌, 우 측에 각각 구비되는 좌륜(166(L)) 및 우륜(166(R))을 포함할 수 있다.
좌륜(166(L))과 우륜(166(R))은 하나의 구동 모터에 의해 구동될 수도 있으나, 필요에 따라 좌륜(166(L))을 구동시키는 좌륜 구동 모터와 우륜(166(R))을 구동시키는 우륜 구동 모터가 각각 구비될 수도 있다. 좌륜(166(L))과 우륜(166(R))의 회전 속도에 차이를 두어 좌측 또는 우측으로 본체(110)의 주행방향을 전환할 수 있다.
주행부(160)는 별도의 구동력을 제공하지 않되, 보조적으로 바닥에 대해 본체를 지지하는 보조 바퀴(168)를 포함할 수 있다.
이동 로봇(100)은 이동 로봇(100)의 행동을 감지하는 주행 감지 모듈(150)을 포함할 수 있다. 주행 감지 모듈(150)은 주행부(160)에 의한 이동 로봇(100)의 행동을 감지할 수 있다.
주행 감지 모듈(150)은, 이동 로봇(100)의 이동 거리를 감지하는 엔코더(미도시)를 포함할 수 있다. 주행 감지 모듈(150)은, 이동 로봇(100)의 가속도를 감지하는 가속도 센서(미도시)를 포함할 수 있다. 주행 감지 모듈(150)은 이동 로봇(100)의 회전을 감지하는 자이로 센서(미도시)를 포함할 수 있다.
주행 감지 모듈(150)의 감지를 통해, 제어부(140)는 이동 로봇(100)의 이동 경로에 대한 정보를 획득할 수 있다. 예를 들어, 상기 엔코더가 감지한 구동 바퀴(166)의 회전속도를 바탕으로 이동 로봇(100)의 현재 또는 과거의 이동속도, 주행한 거리 등에 대한 정보를 획득할 수 있다. 예를 들어, 각 구동 바퀴(166(L), 166(R))의 회전 방향에 따라 현재 또는 과거의 방향 전환 과정에 대한 정보를 획득할 수 있다.
일 예로, 제어부(140)는, 행동 제어 알고리즘에 따른 이동 로봇(100)의 행동을 제어할 때, 주행 감지 모듈(150)의 피드백을 통해 이동 로봇(100)의 행동을 정확하게 제어할 수 있다.
다른 예로, 제어부(140)는, 행동 제어 알고리즘에 따른 이동 로봇(100)의 행동을 제어할 때, 맵 상의 이동 로봇(100)의 위치를 파악하여 이동 로봇(100)의 행동을 정확하게 제어할 수 있다.
이동 로봇(100)은 소정의 작업을 수행하는 작업부(180)를 포함한다.
일 예로, 작업부(180)는 청소(비질, 흡입청소, 걸레질 등), 설거지, 요리, 빨래, 쓰레기 처리 등의 가사 작업을 수행하도록 구비될 수 있다. 다른 예로, 작업부(180)는 기구의 제조나 수리 등의 작업을 수행하도록 구비될 수도 있다. 또 다른 예로, 작업부(180)는 물건 찾기나 벌레 퇴치 등의 작업을 수행할 수도 있다. 본 실시예에서는 작업부(180)가 청소 작업을 수행하는 것으로 설명하나, 작업부(180)의 작업의 종류는 여러가지 예시가 있을 수 있으며, 본 설명의 예시로 제한될 필요가 없다.
이동 로봇(100)은 주행 구역을 이동하며 작업부(180)에 의해 바닥을 청소할 수 있다. 작업부(180)는, 이물질을 흡입하는 흡입 장치, 비질을 수행하는 브러시(184, 185), 흡입장치나 브러시에 의해 수거된 이물질을 저장하는 먼지통(미도시) 및/또는 걸레질을 수행하는 걸레부(미도시) 등을 포함할 수 있다.
본체(110)의 저면부에는 공기의 흡입이 이루어지는 흡입구(180h)가 형성될 수 있다. 본체(110) 내에는 흡입구(180h)를 통해 공기가 흡입될 수 있도록 흡입력을 제공하는 흡입장치(미도시)와, 흡입구(180h)를 통해 공기와 함께 흡입된 먼지를 집진하는 먼지통(미도시)이 구비될 수 있다.
케이스(111)에는 상기 먼지통의 삽입과 탈거를 위한 개구부가 형성될 수 있고, 상기 개구부를 여닫는 먼지통 커버(112)가 케이스(111)에 대해 회전 가능하게 구비될 수 있다.
작업부(180)는, 흡입구(180h)를 통해 노출되는 솔들을 갖는 롤형의 메인 브러시(184)와, 본체(110)의 저면부 전방측에 위치하며, 방사상으로 연장된 다수개의 날개로 이루어진 솔을 갖는 보조 브러시(185)를 포함할 수 있다. 이들 브러시(184, 185)들의 회전에 의해 주행구역내 바닥으로부터 먼지들이 제거되며, 이렇게 바닥으로부터 분리된 먼지들은 흡입구(180h)를 통해 흡입되어 먼지통에 모인다.
이동 로봇(100)은 도킹 기기(200)에 도킹시 배터리(177)의 충전을 위한 대응 단자(190)를 포함한다. 대응 단자(190)는 이동 로봇(100)의 도킹 성공 상태에서 도킹 기기(200)의 충전 단자(210)에 접속 가능한 위치에 배치된다. 본 실시예에서, 본체(110)의 저면부에 한 쌍의 대응 단자(190)가 배치된다.
이동 로봇(100)은 정보를 입력하는 입력부(171)를 포함할 수 있다. 입력부(171)는 On/Off 또는 각종 명령을 입력 받을 수 있다. 입력부(171)는 버튼, 키 또는 터치형 디스플레이 등을 포함할 수 있다. 입력부(171)는 음성 인식을 위한 마이크를 포함할 수 있다.
이동 로봇(100)은 정보를 출력하는 출력부(173)를 포함할 수 있다. 출력부(173)는 각종 정보를 사용자에게 알릴 수 있다. 출력부(173)는 스피커 및/또는 디스플레이를 포함할 수 있다.
이동 로봇(100)은 외부의 다른 기기와 정보를 송수신하는 통신부(175)를 포함할 수 있다. 통신부(175)는 단말 장치 및/또는 특정 영역 내 위치한 타 기기와 유선, 무선, 위성 통신 방식들 중 하나의 통신 방식으로 연결되어 데이터를 송수신할 수 있다.
통신부(175)는, 단말기(300a) 등의 다른 기기, 무선 공유기(400) 및/또는 서버(500) 등과 통신하게 구비될 수 있다. 통신부(175)는 특정 영역 내에 위치한 타 기기와 통신할 수 있다. 통신부(175)는 무선 공유기(400)와 통신할 수 있다. 통신부(175)는 이동 단말기(300a)와 통신할 수 있다. 통신부(175)는 서버(500)와 통신할 수 있다.
통신부(175)는 단말기(300a) 등의 외부 기기로부터 각종 명령 신호를 수신할 수 있다. 통신부(175)는 단말기(300a) 등의 외부 기기로 출력될 정보를 송신할 수 있다. 단말기(300a)는 통신부(175)로부터 받은 정보를 출력할 수 있다.
도 7의 Ta를 참고하여, 통신부(175)는 무선 공유기(400)와 무선 통신할 수 있다. 도 7의 Tc를 참고하여, 통신부(175)는 이동 단말기(300a)와 무선 통신할 수도 있다. 도시되지는 않았으나, 통신부(175)는 서버(500)와 직접 무선 통신할 수도 있다. 예를 들어, 통신부(175)는 IEEE 802.11 WLAN, IEEE 802.15 WPAN, UWB, Wi-Fi, Zigbee, Z-wave, Blue-Tooth 등과 같은 무선 통신 기술로 무선 통신하게 구현될 수 있다. 통신부(175)는 통신하고자 하는 다른 장치 또는 서버의 통신 방식이 무엇인지에 따라 달라질 수 있다.
통신부(175)를 통해 센싱부(130)의 감지를 통해 획득된 상태 정보를 네트워크 상으로 전송할 수 있다. 통신부(175)를 통해 후술할 경험 정보를 네트워크 상으로 전송할 수 있다.
통신부(175)를 통해 네트워크 상에서 이동 로봇(100)으로 정보를 수신할 수 있고, 이러한 수신된 정보를 근거로 이동 로봇(100)이 제어될 수 있다. 통신부(175)를 통해 네트워크 상에서 이동 로봇(100)으로 수신된 정보(예를 들어, 업데이트 정보)를 근거로, 이동 로봇(100)이 주행 제어를 위한 알고리즘(예를 들어, 행동 제어 알고리즘)을 업데이트할 수 있다.
이동 로봇(100)은 각 구성들에 구동 전원을 공급하기 위한 배터리(177)를 포함한다. 배터리(177)는 이동 로봇(100)이 선택된 행동 정보에 따른 행동을 수행하기 위한 전원을 공급한다. 배터리(177)는 본체(110)에 장착된다. 배터리(177)는 본체(110)에 착탈 가능하게 구비될 수 있다.
배터리(177)는 충전 가능하게 구비된다. 이동 로봇(100)이 도킹 기기(200)에 도킹되어 충전 단자(210)와 대응 단자(190)의 접속을 통해, 배터리(177)가 충전될 수 있다. 배터리(177)의 충전량이 소정치 이하가 되면, 이동 로봇(100)은 충전을 위해 도킹 모드를 시작할 수 있다. 상기 도킹 모드에서, 이동 로봇(100)은 도킹 기기(200)로 복귀하는 주행을 실시하며, 이동 로봇(100)의 복귀 주행 중 이동 로봇(100)은 도킹 기기(200)의 위치를 감지할 수 있다.
다시 도 1 내지 도 5를 참고하여, 이동 로봇(100)은 각종 정보를 저장하는 저장부(179)를 포함한다. 저장부(179)는 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다.
저장부(179)에는 상태 정보 및 행동 정보가 저장될 수 있다. 저장부(179)에는 후술할 보정 정보가 저장될 수 있다. 저장부(179)에는 후술할 경험 정보가 저장될 수 있다.
저장부(179)에는 주행구역에 대한 맵이 저장될 수 있다. 상기 맵은 이동 로봇(100)과 통신부(175)을 통해 정보를 교환할 수 있는 외부 단말기에 의해 입력된 것일 수도 있고, 이동 로봇(100)이 스스로 학습을 하여 생성한 것일 수도 있다. 전자의 경우, 외부 단말기(300a)로는 맵 설정을 위한 어플리케이션(application)이 탑재된 리모콘, PDA, 랩탑(laptop), 스마트 폰, 태블릿 등을 예로 들 수 있다.
이동 로봇(100)은 맵핑 및/또는 현재 위치를 인식하는 등 각종 정보를 처리하고 판단하는 제어부(140)를 포함한다. 제어부(140)는 이동 로봇(100)의 각종 구성들의 제어를 통해, 이동 로봇(100)의 동작 전반을 제어할 수 있다. 제어부(140)는, 상기 영상을 통해 주행 구역을 맵핑하고 현재 위치를 맵 상에서 인식 가능하게 구비될 수 있다. 즉, 제어부(140)는 슬램(SLAM: Simultaneous Localization and Mapping) 기능을 수행할 수 있다.
제어부(140)는 입력부(171)로부터 정보를 입력 받아 처리할 수 있다. 제어부(140)는 통신부(175)로부터 정보를 받아 처리할 수 있다. 제어부(140)는 센싱부(130)로부터 정보를 입력 받아 처리할 수 있다.
제어부(140)는 획득된 상태 정보를 근거로 소정의 행동 제어 알고리즘을 통해 행동을 제어할 수 있다. 여기서, '상태 정보를 획득'한다는 것은, 기 저장된 상태 정보들 중 매칭되는 것이 없는 신규의 상태 정보를 생성하는 것, 및 기 저장된 상태 정보들 중 매칭되는 상태 정보를 선택하는 것을 포괄하는 의미이다.
여기서, 현재의 상태 정보(STp)가 기 저장된 상태 정보(STq)와 동일한 경우, 상기 현재의 상태 정보(STp)가 기 저장된 상태 정보(STq)에 매칭(matching)된다. 또한, 현재의 상태 정보(STp)가 기 저장된 상태 정보(STq)와 소정치 이상의 유사도를 가진 경우까지, 상기 현재의 상태 정보(STp)가 기 저장된 상태 정보(STq)에 매칭(matching)되도록 기설정될 수 있다.
소정의 유사도를 기준으로 판단되게 구비될 수 있다. 예를 들어, 센싱부(130)의 감지에 따른 현재의 상태 정보가 기 저장된 상태 정보와 소정치 이상의 유사도를 가진 경우, 상기 소정치 이상의 유사도를 가진 기 저장된 상태 정보를 현재의 상태 정보로 선택할 수 있다.
제어부(140)는 통신부(175)가 정보를 송신하도록 제어할 수 있다. 제어부(140)는 출력부(173)의 출력을 제어할 수 있다. 제어부(140)는 주행부(160)의 구동을 제어할 수 있다. 제어부(140)는 작업부(180)의 동작을 제어할 수 있다.
한편, 도킹 기기(200)는 이동 로봇(100)의 도킹 성공 상태에서 대응 단자(190)와 접속되게 구비되는 충전 단자(210)를 포함한다. 도킹 기기(200)는 상기 안내 신호를 송출하는 신호 송출부(미도시)를 포함할 수 있다. 도킹 기기(200)는 바닥에 놓여지도록 구비될 수 있다.
도 6을 참고하여, 이동 로봇(100)은 소정의 네트워크를 통해 서버(500)와 통신할 수 있다. 통신부(175)는 소정의 네트워크를 통해 서버(500)와 통신한다. 소정의 네트워크란, 유선 및/또는 무선으로 직접 또는 간접으로 연결된 통신망을 의미한다. 즉, '통신부(175)는 소정의 네트워크를 통해 서버(500)와 통신한다'는 의미는, 통신부(175)와 서버(500)가 직접적으로 통신하는 경우는 물론, 통신부(175)와 서버(500)가 무선 공유기(400) 등을 매개로 간접적으로 통신하는 경우까지 포괄하는 의미이다.
상기 네트워크는 와이파이(wi-fi), 이더넷(ethernet), 직비(zigbee), 지-웨이브(z-wave), 블루투스(bluetooth) 등의 기술을 기반으로 하여 구축될 수 있다.
통신부(175)는 소정의 네트워크를 통해 서버(500)로 후술할 경험 정보를 송신할 있다. 서버(500)는 소정의 네트워크를 통해 통신부(175)로 후술할 업데이트 정보를 송신할 수 있다.
도 7은, 상기 소정의 네트워크의 일 예를 도시한 개념도이다. 이동 로봇(100), 무선 공유기(400), 서버(500) 및 이동 단말기들(300a, 300b)은 상기 네트워크에 의해 연결되어, 서로 정보를 송수신할 수 있다. 이 중, 이동 로봇(100), 무선 공유기(400), 이동 단말기(300a) 등은 집과 같은 건물(10) 내에 배치될 수 있다. 서버(500)는 상기 건물(10) 내에 구현될 수도 있으나, 보다 광범위한 네트워크로서 상기 건물(10) 외에 구현될 수도 있다.
무선 공유기(400) 및 서버(500)는 정해진 통신규약(protocol)에 따라 상기 네트워크와 접속 가능한 통신 모듈을 구비할 수 있다. 이동 로봇(100)의 통신부(175)는 정해진 통신규약(protocol)에 따라 상기 네트워크와 접속 가능하게 구비된다.
이동 로봇(100)은 상기 네트워크를 통해 서버(500)와 데이터를 교환할 수 있다. 통신부(175)는, 무선 공유기(400)와 유, 무선으로 데이터 교환을 수행하여, 결과적으로 서버(500)와 데이터 교환을 수행할 수 있다. 본 실시예는 무선 공유기(400)를 통해서 이동 로봇(100) 및 서버(500)가 서로 통신하는 경우(도 7의 Ta, Tb 참고)이나, 반드시 이에 제한될 필요는 없다.
도 7의 Ta를 참고하여, 무선 공유기(400)는 이동 로봇(100)과 무선 연결될 수 있다. 도 7의 Tb를 참고하여, 무선 공유기(400)는 유선 또는 무선 통신을 통해 서버(8)와 연결될 수 있다. 도 7의 Td를 통해, 무선 공유기(400)는 이동 단말기(300a)와 무선 연결될 수 있다.
한편, 무선 공유기(400)는, 소정 영역 내의 전자 기기들에, 소정 통신 방식에 의한 무선 채널을 할당하고, 해당 채널을 통해, 무선 데이터 통신을 수행할 수 있다. 여기서, 소정 통신 방식은, WiFi 통신 방식일 수 있다.
무선 공유기(400)는, 소정의 영역 범위 내에 위치한 이동 로봇(100)과 통신할 수 있다. 무선 공유기(400)는, 상기 소정의 영역 범위 내에 위치한 이동 단말기(300a)와 통신할 수 있다. 무선 공유기(400)는 서버(500)와 통신할 수 있다.
서버(500)는 인터넷을 통해 접속이 가능하게 구비될 수 있다. 인터넷에 접속된 각종 단말기(200b)로 서버(500)와 통신할 수 있다. 단말기(200b)는 PC(personal computer), 스마트 폰(smart phone) 등의 이동 단말기(mobile terminal)를 예로 들 수 있다.
도 7의 Tb를 참고하여, 서버(500)는 무선 공유기(400)와 유무선으로 연결될 수 있다. 도 7의 Tf를 참고하여, 서버(500)는 이동 단말기(300b)와 직접 무선 연결될 수도 있다. 도시되지는 않았으나, 서버(500)는 이동 로봇(100)과 직접 통신할 수도 있다.
서버(500)는 프로그램의 처리가 가능한 프로세서를 포함한다. 서버(500)의 기능은 중앙컴퓨터(클라우드)가 수행할 수도 있으나, 사용자의 컴퓨터 또는 이동 단말기가 수행할 수도 있다.
일 예, 서버(500)는, 이동 로봇(100) 제조자가 운영하는 서버일 수 있다. 다른 예로, 서버(500)는, 공개된 애플리케이션 스토어 운영자가 운영하는 서버일 수도 있다. 또 다른 예로, 서버(500)는 댁 내에 구비되며, 댁 내 가전 기기들에 대한 상태 정보를 저장하거나, 댁 내 가전 기기에서 공유되는 컨텐츠를 저장하는 홈 서버일 수도 있다.
서버(500)는, 이동 로봇(100)에 대한 펌웨어 정보, 운전 정보(코스 정보 등)를 저장하고, 이동 로봇(100)에 대한 제품 정보를 등록할 수 있다.
일 예로, 서버(500)는 머신 러닝(maching learning) 및/또는 데이터 마이닝(data mining)을 수행할 수 있다. 서버(500)는 수집된 경험 정보를 이용하여 학습을 수행할 수 있다. 서버(500)는 경험 정보를 근거로 하여 후술할 업데이트 정보를 생성할 수 있다.
다른 예로, 이동 로봇(100)이 직접 머신 러닝(maching learning) 및/또는 데이터 마이닝(data mining)을 수행할 수도 있다. 이동 로봇(100)은 수집된 경험 정보를 이용하여 학습을 수행할 수 있다. 이동 로봇(100)은 경험 정보를 근거로 하여 행동 제어 알고리즘을 업데이트시킬 수 있다.
도 7의 Td를 참고하여, 이동 단말기(300a)는 wi-fi 등을 통해 무선 공유기(400)와 무선 연결될 수 있다. 도 7의 Tc를 참고하여, 이동 단말기(300a)는 블루투스 등을 통해 이동 로봇(100)과 직접 무선 연결될 수도 있다. 도 7의 Tf를 참고하여, 이동 단말기(300b)는 이동 통신 서비스를 통해 서버(500)에 직접 무선 연결될 수도 있다.
상기 네트워크는 추가로 게이트웨이(gateway)(미도시)를 더 포함할 수 있다. 상기 게이트웨이는 이동 로봇(100)과 무선 공유기(400) 간의 통신을 매개할 수 있다. 상기 게이트웨이는 무선으로 이동 로봇(100)과 통신할 수 있다. 상기 게이트웨이는 무선 공유기(400)와 통신할 수 있다. 예를 들어, 상기 게이트웨이와 무선 공유기(400) 간의 통신은 이더넷(Ethernet) 또는 와이파이(wi-fi)를 기반으로 할 수 있다.
본 설명에서 언급되는 '학습'은 딥러닝(deep learning) 방식으로 구현될 수 있다. 일 예로, 강화 학습(reinforcement learning) 방식으로 상기 학습이 수행될 수 있다. 이동 로봇(100)이 센싱부(130)의 감지를 통해 현재의 상태 정보를 획득하고, 상기 현재의 상태 정보에 따른 행동을 수행하며, 상기 상태 정보 및 상기 행동에 따른 보상을 획득하여, 상기 강화 학습이 수행될 수 있다. 상태 정보, 행동 정보 및 보상 정보는 하나의 경험 정보를 형성시키고, 이러한 '상태, 행동 및 보상'을 반복하여 복수의 경험 정보(상태 정보 - 행동 정보 - 보상 정보)를 누적하여 저장할 수 있다. 누적되어 저장된 경험 정보를 근거로 하여, 어느 한 상태에서 이동 로봇(100)이 수행할 행동을 선택할 수 있다.
이동 로봇(100)은 어느 한 상태에서, 누적된 상기 경험 정보 내의 행동 정보 중 최상의 보상을 얻을 수 있는 최적의 행동 정보(활용 행동 정보; exploitation-action data)를 선택하거나, 누적된 상기 경험 정보 내의 행동 정보가 아닌 새로운 행동 정보(탐험 행동 정보; exploration-action data)를 선택할 수 있다. 상기 탐험 행동 정보의 선택을 통해 상기 활용 행동 정보의 선택에 비해 더 큰 보상을 얻을 수도 있는 가능성이 있고 더 다양한 경험 정보를 축적시킬 수 있는 반면, 상기 탐험 행동 정보의 선택을 통해 상기 활용 행동 정보의 선택에 비해 더 작은 보상을 얻을 수도 있는 기회 비용이 발생한다.
행동 제어 알고리즘은 어느 한 상태에서 감지 결과에 따라 수행할 행동을 선택하는 소정의 알고리즘이다. 상기 행동 제어 알고리즘을 이용하여, 이동 로봇(100)이 도킹 기기(200)로 접근 시 현재 청소모드에 따른 대응 모션 수행이 달라질 수 있다.
일 예로, 행동 제어 알고리즘은 장애물을 회피하기 위한 소정의 알고리즘을 포함할 수 있다. 이동 로봇(100)은 상기 행동 제어 알고리즘을 이용하여, 장애물을 감지시 이동 로봇(100)이 장애물을 회피하여 이동하는 행동을 제어할 수 있다. 이동 로봇(100)은, 장애물의 위치와 방향을 감지하고, 상기 행동 제어 알고리즘을 이용하여 소정의 경로 이동하도록 이동 로봇(100)의 행동을 제어할 수 있다.
다른 예로, 행동 제어 알고리즘을 도킹을 위한 소정의 알고리즘을 포함할 수 있다. 이동 로봇(100)은, 도킹 모드에서 상기 행동 제어 알고리즘을 이용하여 도킹을 위해 도킹 기기(200)로 이동하는 행동을 제어할 수 있다. 이동 로봇(100)은 도킹 모드에서, 도킹 기기(200)의 위치와 방향을 감지하고, 상기 행동 제어 알고리즘을 이용하여 소정의 경로로 이동하도록 이동 로봇(100)의 행동을 제어할 수 있다.
이동 로봇(100)의 어느 한 상태에서 행동의 선택은 상기 상태 정보를 행동 제어 알고리즘에 입력함으로써 수행된다. 이동 로봇(100)은, 행동 제어 알고리즘에 상기 현재의 상태 정보를 입력하여 선택되는 행동 정보에 따라 행동을 제어한다. 상기 상태 정보는 행동 제어 알고리즘의 입력값이 되고, 상기 행동 정보는 행동 제어 알고리즘에 상기 상태 정보를 입력하여 얻어낸 결과값이 된다.
상기 행동 제어 알고리즘은 후술할 학습 단계 전에 기설정되되, 상기 학습 단계를 통해 변경(업데이트)되도록 구비된다. 행동 제어 알고리즘은 학습 전에도 제품 출시 상태에서 기본적으로 기설정된다. 이후, 이동 로봇(100)은 복수의 경험 정보를 생성시키고, 누적적으로 저장된 복수의 경험 정보를 근거로 하여 학습을 통해 상기 행동 제어 알고리즘이 업데이트된다.
경험 정보는, 선택된 행동 정보에 따라 행동을 제어한 결과에 근거하여 생성된다. 어느 한 상태(P(STn))에서 행동 제어 알고리즘에 의해 어느 한 행동(P(An))을 수행한 결과 다른 한 상태(P(STn +1))에 도달하고, 상기 다른 한 상태(P(STx))에 대응하는 보상 정보(Rn + 1)를 획득하여, 하나의 경험 정보를 생성시킬 수 있다. 여기서, 생성된 상기 하나의 경험 정보는, 상기 상태(P(STn))에 대응하는 상태 정보(STn), 상기 행동(P(An))에 대응하는 행동 정보(An), 및 상기 보상 정보(Rn + 1)로 구성된다.
상기 경험 정보는 상태 정보(STx)를 포함한다. 도 12 내지 도 20을 참고하여, 데이터로서 어느 한 상태 정보는 STx로 도시하고, STx에 대응되는 이동 로봇(100)이 처한 실제 상태를 P(STx)로 도시할 수 있다. 예를 들어, 이동 로봇은 어느 한 상태(P(STx))에서 센싱부(130)의 감지를 통해 상태 정보(STx)를 획득한다. 센싱부(130)의 감지를 통해, 이동 로봇(100)은 간헐적으로 최신의 상태 정보를 획득할 수 있다. 주기적인 간격으로 상태 정보를 획득할 수도 있다. 이러한 간헐적 상태 정보의 획득을 위하여, 이동 로봇(100)은 영상 감지부 등의 센싱부(130)를 통한 간헐적으로 감지를 수행할 수 있다.
감지 방식에 따라 상기 상태 정보는 다양한 형식의 정보를 포함할 수 있다. 상기 상태 정보는 거리 정보를 포함할 수 있다. 상기 상태 정보는 장애물 정보를 포함할 수 있다. 상기 상태 정보는 낭떠러지 정보를 포함할 수 있다. 상기 상태 정보는 영상 정보를 포함할 수 있다. 상기 상태 정보는 외부 신호 정보를 포함할 수 있다. 상기 외부 신호 정보는, 도킹 기기(200)의 상기 신호 송출부에서 발신된 IR 신호나 RF 신호 등의 안내 신호에 대한 감지 정보를 포함할 수 있다.
상기 상태 정보는, 도킹 기기 및 도킹 기기 주변의 환경 중 적어도 하나에 대한 영상 정보를 포함할 수 있다. 이동 로봇(100)은 상기 영상 정보를 통해 도킹 기기(200)의 형상, 방향, 크기를 인식할 수 있다. 이동 로봇(100)은 상기 영상 정보를 통해 도킹 기기(200) 주변의 환경을 인식할 수 있다. 도킹 기기(200)는 외표면에 배치되어 반사도 등의 차이에 의해 두드러지게 식별 가능한 마커를 포함할 수 있고, 상기 영상 정보를 통해 상기 마커의 방향 및 거리를 인식할 수 있다.
상기 상태 정보는, 도킹 기기(200)와 이동 로봇(100)의 상대적 위치 정보 를 포함할 수 있다. 상기 상대적 위치 정보는, 도킹 기기(200)와 이동 로봇(100)의 거리 정보를 포함할 수 있다. 상기 상대적 위치 정보는, 이동 로봇(100)에 대한 도킹 기기(200)의 방향 정보를 포함할 수 있다.
상기 상대적 위치 정보는, 도킹 기기(200) 주변의 환경 정보를 통해 획득될 수도 있다. 예를 들어, 이동 로봇(100)은 영상 정보를 통해 도킹 기기(200) 주변 환경에서 추출된 특징점을 추출하여, 이동 로봇(100)과 도킹 기기(200)의 상대적 위치를 인식할 수 있다.
상기 상태 정보는 도킹 기기(200) 주변의 장애물에 대한 정보를 포함할 수 있다. 예를 들어, 이러한 장애물 정보에 기초하여, 이동 로봇(100)이 도킹 기기(200)로 이동하는 경로 상의 장애물을 회피하도록 이동 로봇(100)의 행동이 제어될 수 있다.
상기 경험 정보는 상기 행동 제어 알고리즘에 상태 정보(STx)를 입력하여 선택된 행동 정보(Ax)를 포함한다. 도 12 내지 도 20을 참고하여, 데이터로서 어느 한 행동 정보는 Ax로 도시하고, Ax 대응되는 이동 로봇(100)이 수행한 실제 행동은 P(Ax)로 도시할 수 있다. 예를 들어, 이동 로봇이 어느 한 상태(P(STx))에서 어느 한 행동(P(Ax))를 수행함으로써, 상기 상태 정보(STx)와 행동 정보(Ax)는 함께 하나의 경험 정보를 생성시킨다. 하나의 경험 정보는, 하나의 상태 정보(STx) 및 하나의 행동 정보(Ax)를 포함한다.
한편, 어느 특정의 상태 정보(STx)에 대해서 선택 가능한 많은 수의 행동 정보(Ax1, Ax2, …)가 존재하는바, 같은 상태(P(STx))에서도 경우에 따라 선택되는 행동 정보가 달라질 수 있다. 다만, 어느 한 상태(P(STx))에서 한번의 행동(P(Ax))을 수행할 때, 하나의 경험 정보(상태 정보 STx 및 행동 정보 Ax를 포함)만을 생성시킬 수 있다.
상기 경험 정보는 보상 정보(Rx)를 더 포함한다. 상기 보상 정보(Rx)는, 어느 한 상태 정보(STy)에 대응하는 상태(P(STy))에서 어느 한 행동 정보(Ay)에 대응하는 행동(P(Ay))을 수행한 경우의 보상에 대한 정보이다.
보상 정보(Rn + 1)는 어느 한 상태(P(STn))에서 다른 한 상태(P(STn +1))로 이동하는 어느 한 행동(P(An))을 수행한 결과, 피드백 받는 값이다. 보상 정보(Rn + 1)는 행동(P(An))에 따라 도달한 상태(P(STn +1))에 대응되게 설정된 값이다. 보상 정보(Rn+1)는 상기 행동(P(An))의 결과이므로, 상기 보상 정보(Rn + 1)는 그 이전의 상태 정보(STn) 및 행동 정보(An)와 함께 하나의 경험 정보를 구성한다. 즉, 상기 보상 정보(Rn+1)는 상기 상태 정보(STn + 1)에 대응되게 설정되되, 상기 상태 정보(STn) 및 상기 행동 정보(An)와 함께 하나의 경험정보를 생성시킨다. 각각의 상기 경험 정보는, 각 경험 정보에 속한 행동 정보에 따라 행동을 제어한 결과에 근거하여 설정되는 보상 정보를 포함한다.
보상 정보(Rx)는 보상 스코어(Rx)일 수 있다. 보상 스코어(Rx)는 스칼라 실수값일 수 있다. 이하, 보상 정보는 보상 스코어인 것으로 한정하여 설명한다.
어느 한 상태(P(STn))에서 어느 한 행동(P(An))를 수행한 결과 피드백 받는 보상 스코어(Rn + 1)가 높을수록, 상기 상태(P(STn))에서 행동 정보(An)가 상기 활용 행동 정보가 될 가능성이 높아진다. 즉, 어느 한 상태 정보에 대한 각각의 선택 가능한 행동 정보 중 어느 것이 최적의 행동 정보인지 여부를, 보상 스코어의 대소를 통해 판단할 수 있다. 여기서, 보상 스코어의 대소 판단은 기 저장된 복수의 경험 정보에 근거하여 수행될 수 있다. 예를 들어, 어느 한 상태(P(STy))에서 어느 한 행동(P(Ay1))를 수행한 결과 피드백 받는 보상 스코어(Rx1)가 같은 상태(P(STy))에서 다른 한 행동(P(Ay2))을 수행한 결과 피드백 받는 보상 스코어(Rx2)보다 높은 경우, 상기 상태(P(STy))에서 상기 행동 정보(Ay1)의 선택이 상기 행동 정보(Ay2)의 선택보다 도킹의 성공과 관련하여 보다 유리한 것으로 판단될 수 있다.
어느 한 상태 정보(P(STx))에 대응하는 보상 스코어(Rx)는, 현재의 상태(P(STx))의 가치 및 그 다음 단계의 상태의 확률적 평균 가치의 합으로 설정될 수 있다. 예를 들어, 어느 한 상태(P(STx))가 도킹 성공 상태(P(STs))일 경우 상기 보상 스코어(Rx)는 현재 상태(P(STs))의 가치만으로 이루어지나, 어느 한 상태(P(STx))가 도킹 성공 상태(P(STs))가 아닐 경우 상기 보상 스코어(Rx)는 현재 상태(P(STs))의 가치와 현재 상태(P(STs))에서 확률적으로 선택될 행동(들)에 의해서 도달할 다음 단계(들)의 확률적 가치(들)이 합산되어 이루어질 수 있다. 알려진 마코프 디시즌 프로세스(MDF; Markov Decision Process) 등을 통해, 이에 대한 구체적인 사항을 기술적으로 구현할 수 있다. 구체적으로, 알려진 가치 반복법(VI; Value lteration), 정책 반복법(PI; Policy lteration), 몬테카를로 방법(Monte Carlo method), 큐러닝(Q-Learning) 및 SARSA(State Action Reward State Action) 등이 이용될 수 있다.
상기 보상 스코어(Rn + 1)는, 상기 행동 정보(An)에 따라 행동을 제어한 결과, 도킹을 성공한 경우 상대적으로 높게 설정되고 도킹을 실패한 경우 상대적으로 낮게 설정될 수 있다. 도킹 성공 상태에 대응하는 보상 스코어(Rs)가 보상 스코어들 중 가장 높게 설정될 수 있다.
예를 들어, 상기 상태(P(STn +1))가 추후 행동(들)에 의해 도킹 성공이 이루어질 확률이 높은 상태일수록, 상기 상태(P(STn +1))에 대응하는 보상 스코어(Rn + 1)는 상대적으로 높아지도록 설정된다.
이에 따라, 후술할 제 n+1시점의 상태가 도킹 완료 상태인 경우 후술할 제 n+1보상 스코어는 상대적으로 높게 설정되고, 상기 제 n+1시점의 상태가 도킹 미완료 상태인 경우 상기 제 n+1보상 스코어는 상대적으로 낮게 설정될 수 있다.
상기 보상 스코어(Rn + 1)는, 상기 행동 정보(An)에 따라 행동을 제어한 결과에 따른 ⅰ도킹의 성공 여부, ⅱ도킹까지 소요되는 시간, ⅲ도킹 성공까지 도킹을 시도한 횟수 및 ⅳ장애물의 회피 성공 여부 중 적어도 어느 하나와 관련되어 설정될 수 있다.
예를 들어, 상기 상태(P(STn +1))가 추후 행동(들)에 의해 상대적으로 빠른 시간내로 도킹 성공이 이루어질 확률이 높은 상태일수록, 상기 상태(P(STn +1))에 대응하는 보상 스코어(Rn+1)는 상대적으로 높아지도록 설정된다.
예를 들어, 상기 상태(P(STn +1))가 추후 행동(들)에 의해 상대적으로 짧은 소요 시간내 도킹 성공이 이루어질 확률이 높은 상태일수록, 상기 상태(P(STn +1))에 대응하는 보상 스코어(Rn+1)는 상대적으로 높아지도록 설정된다.
예를 들어, 상기 상태(P(STn +1))가 추후 행동(들)에 의해 상대적으로 적은 도킹 시도 횟수로 도킹 성공이 이루어질 확률이 높은 상태일수록, 상기 상태(P(STn+1))에 대응하는 보상 스코어(Rn+1)는 상대적으로 높아지도록 설정된다.
예를 들어, 상기 상태(P(STn +1))가 추후 행동(들)에 의해 도킹 시도시의 에러 발생 확률이 높은 상태일수록, 상기 상태(P(STn +1))에 대응하는 보상 스코어(Rn + 1)는 상대적으로 낮아지도록 설정된다.
예를 들어, 상기 상태(P(STn +1))가 추후 행동(들)에 의해 장애물 회피 성공이 이루어질 확률이 높은 상태일수록, 상기 상태(P(STn +1))에 대응하는 보상 스코어(Rn+1)는 상대적으로 높아지도록 설정된다. 또한, 상기 상태(P(STn +1))가 추후 행동(들)에 의해 도킹 시도시의 도킹 기기(200) 및/또는 다른 장애물에 대한 충돌 확률이 높은 상태일수록, 상기 상태(P(STn +1))에 대응하는 보상 스코어(Rn + 1)는 상대적으로 낮아지도록 설정된다.
이에 따라, 상기 제 n+1상태 정보가 속한 기 저장된 복수의 경험 정보에 근거하여, 상기 제 n+1상태 이후 도킹 성공의 확률이 클수록, 상기 제 n+1보상 스코어가 크게 설정될 수 있다. 또한, 상기 제 n+1상태 정보가 속한 기 저장된 복수의 경험 정보에 근거하여, 상기 제 n+1상태 이후 도킹 성공까지 확률적 예상 소요시간이 작을수록, 상기 제 n+1보상 스코어가 크게 설정될 수 있다. 또한, 상기 제 n+1상태 정보가 속한 기 저장된 복수의 경험 정보에 근거하여, 상기 제 n+1상태 이후 도킹 성공까지 확률적 예상 도킹 시도 횟수가 작을수록, 상기 제 n+1보상 스코어가 크게 설정될 수 있다. 또한, 상기 제 n+1상태 정보가 속한 기 저장된 복수의 경험 정보에 근거하여, 상기 제 n+1상태 이후 외부의 장애물에 대한 충돌 확률이 작을수록, 상기 제 n+1보상 스코어가 크게 설정될 수 있다.
보상 스코어의 설정에 대한 하나의 예시를 설명하면 다음과 같다. 도 12 내지 도 20을 참고하여, 도킹 성공 상태 정보(STs)에 대응하는 보상 스코어(Rs)는 10점으로 설정되고, 어느 한 도킹 실패 상태 정보(STf1)에 대응하는 보상 스코어(Rf1)은 -10점으로 설정될 수 있다. 예를 들어, 이후의 행동 수행시 도킹 성공 확률이 상대적으로 높은 상태(P(ST7))에 대응하는 보상 스코어(R7)는 8.74점으로 설정될 수 있다. 예를 들어, 이후의 행동 수행시 도킹 성공시까지 상대적으로 긴 시간이 소요될 확률이 높은 상태(P(ST3))에 대응하는 보상 스코어(R3)는 3.23점으로 설정될 수 있다.
상기 보상 스코어는 누적된 경험 정보를 통해 변경 설정될 수 있다. 보상 스코어의 변경은 학습을 통해 수행될 수 있다. 상기 변경된 스코어는 업데이트된 행동 제어 알고리즘에 반영된다.
예를 들어, 어느 한 상태(P(STn +1))에서 선택 가능한 행동이 추가되거나 어느 한 상태(P(STn +1))에서 어느 한 행동을 수행한 결과로 얻어진 보상 스코어가 달라질 수 있고, 이에 따라 상기 상태(P(STn +1))에 대응하는 보상 스코어(Rn + 1)가 변경될 수 있다. (다음 단계 상태의 확률적 평균 가치가 달라지기 때문에, 현 단계 상태의 평균 가치도 달라진다.) 상기 상태(P(STn +1))에 대응하는 보상 스코어(Rn + 1)가 변경되면, 상기 상태(P(STn +1))로 도달하기 전의 상태(P(STn))에 대응하는 보상 스코어(Rn)도 변경된다.
상기 행동 제어 알고리즘은, 어느 한 상태 정보(STr)를 상기 행동 제어 알고리즘에 입력할 때, ⅰ활용 행동 정보 및 ⅱ탐험 행동 정보 중, 어느 하나가 선택되도록 설정된다.
여기서, 상기 활용 행동 정보는, 상기 어느 한 상태 정보(STr)가 속한 상기 경험 정보 내의 행동 정보 중 최고의 보상 스코어가 얻어지는 행동 정보이다. 각각의 경험 정보는 하나의 상태 정보, 하나의 행동 정보 및 하나의 보상 스코어를 가지는데, 상기 상태 정보(STr)를 가진 경험 정보(들) 중 가장 높은 보상 스코어를 가지는 경험 정보의 행동 정보(활용 행동 정보)를 선택할 수 있다. 활용 행동 정보가 선택되는 경우에 있어서, 상기 상태 정보(STr)의 획득은 기 저장된 상태 정보와의 매칭을 통해서 수행된다.
여기서, 상기 탐험 행동 정보는, 상기 어느 한 상태 정보(STr)가 속한 상기 경험 정보 내의 행동 정보가 아닌 행동 정보이다. 일 예로, 신규의 상태 정보(STr)가 생성되어 상기 상태 정보(STr)를 가진 경험 정보가 없을 때, 상기 탐험 행동 정보가 선택될 수 있다. 다른 예로, 기 저장된 상태 정보와의 매칭을 통해 상기 상태 정보(STr)가 획득되더라도, 상기 상태 정보(STr)를 가진 경험 정보(들) 내의 행동 정보 대신 새로운 탐험 행동 정보가 선택될 수 있다.
상기 행동 제어 알고리즘은, 경우에 따라 상기 활용 행동 정보 및 상기 탐험 행동 정보 중 어느 하나가 선택되도록 설정된다.
일 예로, 상기 행동 제어 알고리즘은 확률적인 선택 방식에 의해 상기 활용 행동 정보 및 탐험 행동 정보 중 어느 하나가 선택되게 설정할 수 있다. 구체적으로, 어느 한 상태 정보(STr)를 상기 행동 제어 알고리즘에 입력할 때, 상기 활용 행동 정보가 선택될 확률은 C1%이고 상기 탐험 행동 정보가 선택될 확률은 (100-C1)%이 되도록 설정될 수 있다. (여기서, C1은 0 초과 100 미만의 실수값임.)
여기서, 상기 C1값은 학습에 따라 변경 설정될 수 있다. 일 예로, 상기 경험 정보의 누적량이 많아질수록, 상기 행동 제어 알고리즘은 상기 활용 행동 및 탐험 행동 중 상기 활용 행동을 선택할 확률이 높아지게 변경 설정될 수 있다. 다른 예로, 어느 한 상태 정보를 가진 경험 정보들의 행동 정보가 다양해질수록, 상기 행동 제어 알고리즘은 상기 활용 행동 및 탐험 행동 중 상기 활용 행동을 선택할 확률이 높아지게 변경 설정될 수 있다.
이하, 도 8 내지 도 11을 참고하여, 본 발명의 실시예들에 따른 이동 로봇의 제어방법 및 이동 로봇의 제어 시스템을 설명하면 다음과 같다. 상기 제어방법은, 실시예에 따라 제어부(140)에 의해서만 수행될 수도 있고, 제어부(140) 및 서버(500)에 의해 수행될 수 있다. 본 발명은, 상기 제어방법의 각 단계를 구현하는 컴퓨터 프로그램이 될 수도 있고, 상기 제어방법을 구현하기 위한 프로그램이 기록된 기록매체가 될 수도 있다. 상기 ‘기록매체’는 컴퓨터로 판독 가능한 기록매체를 의미한다. 본 발명은, 하드웨어와 소프트웨어를 모두 포함하는 시스템이 될 수도 있다.
몇 가지 실시예들에서는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능하다. 예컨대, 잇달아 도시되어 있는 두 개의 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 8을 참고하여, 본 발명의 일 실시예에 따른 이동 로봇의 제어방법을 설명하면 다음과 같다.
이동 로봇(100)은 작업부(180)의 소정의 작업을 수행하며 주행 구역을 주행할 수 있다. 작업 완료 또는 배터리(177)의 충전량이 소정치 이하인 경우, 이동 로봇(100)의 주행 중 도킹 모드가 시작될 수 있다(S10).
상기 제어 방법은 경험 정보를 생성하는 경험 정보 생성 단계(S100)를 포함한다. 상기 경험 정보 생성 단계(S100)에서 하나의 경험 정보를 생성한다. 상기 경험 정보 생성 단계(S100)를 반복 수행하여 복수의 경험 정보를 생성할 수 있다. 상기 경험 정보의 생성을 반복 수행하여 복수의 경험 정보가 저장될 수 있다. 본 실시예에서, 경험 정보 생성 단계(S100)는 상기 도킹 모드 시작(S10) 후 수행된다. 도시되지는 않았으나, 경험 정보 생성 단계(S100)는 상기 도킹 모드의 시작과 무관하게 수행하는 것도 가능하다.
상기 제어방법은, 도킹 완료 여부를 판단하는 과정(S90)을 포함한다. 상기 과정(S90)에서, 현재의 상태 정보(STx)가 도킹 성공 상태 정보(STs)인지 여부를 판단할 수 있다. 도킹이 완료되지 않으면, 계속해서 경험 정보 생성 단계(S100)가 진행될 수 있다. 도킹이 완료될 때까지 상기 경험 정보 생성 단계(S100)가 진행될 수 있다.
이하 설명에서 언급되는 p는 2 이상의 자연수로서, 제 p+1시점의 상태는 도킹 완료 상태이다. 또한, 제 n+1시점은 제 n시점 후의 시점이다. 제 n+1시점은 제 n시점에서 선택한 행동 정보에 따라 이동 로봇(100)이 행동을 수행한 결과 도달된 시점이다.
도 9를 참고하여, 상기 경험 정보 생성 단계에서, 주행 중 감지를 통해 현재의 상태 정보를 획득한다(S110, S150). 상기 경험 정보 생성 단계에서, 주행 중 제 n시점의 상태에서 감지를 통해 제 n상태 정보를 획득한다(S110, S150). 여기서, n은 1 이상 p+1 이하의 임의의 자연수이다.
상기 과정(S110, S150)을 통해, 제 1시점부터 순차적으로 제 p+1시점까지의 각각의 상태 정보가 획득된다. 즉, 상기 과정(S110, S150)을 통해, 제 1 내지 p+1 상태 정보가 획득된다.
상기 과정(S110)을 통해, 제 1시점의 상태에서 감지를 통해 제 1상태 정보를 획득한다. 즉, 도킹 모드 시작(S10) 후, 최초의 상태 정보를 획득한다(S110).
상기 과정(S150)을 통해, 제 2 내지 p+1 시점의 상태에서 각각의 감지를 통해 제 2 내지 p+1 상태 정보를 획득한다. 즉, 도킹 완료 상태가 될 때까지, 반복적으로 과정들(S102 S130, S150, S170)을 반복함으로써, 최초의 상태 후의 상태(들)에서 감지를 통해 상태 정보(들)을 획득할 수 있다.
획득된 제 1 내지 p+1 상태 정보 중 제 1 내지 p 상태 정보는 각각 제 1 내지 p 경험 정보의 일부가 된다. 또한, 획득된 제 1 내지 p+1 상태 정보 중 제 p+1상태 정보는, 상기 과정(S90)에서 도킹 완료 여부를 판단하는 근거가 된다.
도 9를 참고하여, 상기 경험 정보 생성 단계에서, 상기 소정의 행동 제어 알고리즘에 현재의 상태 정보를 입력하여 선택되는 행동 정보에 따라 행동을 제어한다(S130). 상기 경험 정보 생성 단계에서, 상기 행동 제어 알고리즘에 제 n상태 정보를 입력하여 선택되는 제 n행동 정보에 따라 행동을 제어한다(S130). 여기서, n은 1 이상 p 이하의 임의의 자연수이다.
상기 과정(S130)을 통해, 제 1 내지 p 상태 정보를 각각 행동 제어 알고리즘에 입력하여 각각 제 1 내지 p 행동 정보를 선택한다. 상기 과정(S130)을 통해, 순차적으로 제 1 내지 p 행동 정보를 선택한다. 획득된 제 1 내지 p 행동 정보는 각각 제 1 내지 p 경험 정보의 일부가 된다.
도 9를 참고하여, 상기 경험 정보 생성 단계에서, 행동 정보에 따라 행동을 제어한 결과에 근거하여 보상 스코어를 획득한다(S150). 상기 경험 정보 생성 단계에서, 상기 제 n행동 정보에 따라 행동을 제어한 결과에 근거하여 제 n+1보상 스코어를 획득한다(S150). 여기서, n은 1 이상 p 이하의 임의의 자연수이다.
상기 제 n+1보상 스코어는 제 n+1 시점의 상태에서 감지를 통해 획득된 제 n+1상태 정보에 대응하여 설정된다. 구체적으로, 상기 과정(S150)을 통해, 제 n행동 정보에 따라 이동 로봇(100)의 행동을 제어한 결과 도달되는 제 n+1상태 정보를 획득하고, 상기 제 n+1상태 정보에 대응하는 제 n+1보상 스코어를 획득한다.
상기 과정(S150)을 통해, 제 1 내지 p 행동 정보에 따라 이동 로봇(100)의 행동을 제어한 결과 각각 도달되는 제 2 내지 p+1 상태 정보를 획득하고, 상기 제 2 내지 p+1 상태 정보에 각각 대응하는 제 2 내지 p+1 보상 스코어를 획득한다. 상기 과정(S150)을 통해, 순차적으로 제 2 내지 p+1 보상 스코어를 획득한다. 획득된 제 2 내지 p+1 보상 스코어는 각각 제 1 내지 p 경험 정보의 일부가 된다.
도 9를 참고하여, 상기 경험 정보 생성 단계에서, 각각의 경험 정보를 생성한다(S170). 상기 경험 정보 생성 단계에서, 제 n경험 정보를 생성한다(S170). 여기서, n은 1 이상 p 이하의 임의의 자연수이다.
각각의 경험 정보 생성 과정(S170)에서, 상기 상태 정보 및 상기 행동 정보를 포함하는 하나의 경험 정보를 생성한다. 상기 하나의 경험 정보는, 각 경험 정보에 속한 행동 정보에 따라 행동을 제어한 결과에 근거하여 설정되는 보상 스코어를 더 포함한다.
각각의 제 n경험 정보 생성 과정(S170)에서, 상기 제 n상태 정보 및 상기 제 n행동 정보를 포함하는 제 n경험 정보를 생성한다. 상기 제 n경험 정보는, 상기 제 n행동 정보에 따라 행동을 제어한 결과에 근거하여 설정되는 제 n+1보상 스코어를 더 포함한다. 즉, 상기 제 n경험 정보는 상기 제 n상태 정보와 상기 제 n경험 정보와 상기 제 n+1보상 스코어로 구성될 수 있다.
도 9를 참고하여, 전체적인 경험 정보 생성 과정을 시간적 순서에 따라 설명하면 다음과 같다. 여기서, n은 최초에 1로 설정되고(S101), n이 p가 될 때까지 순차적으로 1씩 증가 설정된다(S102). 먼저, 이동 로봇(100)의 주행 중 도킹 모드가 시작된다(S10). 이 때, n은 1로 설정된다(S101). 이후, 감지를 통해 제 1상태 정보를 획득하는 과정(S110)이 진행된다. 그 후, 상기 제 1상태 정보를 상기 행동 제어 알고리즘에 입력하여 제 1행동 정보를 선택하고 그에 따라 이동 로봇(100)의 행동을 제어한다(S130). 그 후, 감지를 통해 제 2상태 정보를 획득하고, 상기 제 2상태 정보에 대응하는 제 2보상 스코어를 획득한다(S150). 이에 따라, 제 1상태 정보, 제 1행동 정보 및 제 2보상 스코어로 구성된 제 1경험 정보가 생성된다(S170). 이 때, 상기 제 2상태 정보가 도킹 완료 상태인지 여부를 판단(S90)하여, 상기 제 2상태 정보가 도킹 완료 상태이면 경험 정보 생성 과정이 종료되고, 상기 제 2상태 정보가 도킹 완료 상태가 아니면 n이 1증가 설정(S102)되면서 상기 과정(S130)부터 다시 진행된다. 이 때, n은 2가 된다.
도 9를 참고하여, n으로 일반화 하여 재진행되는 과정(S130)부터 설명하면 다음과 같다. 여기서, 상기 과정(S102)에 따라 n이 1증가한 이후의 시점을 기준으로 설명한다. 상기 과정(S102) 후, 상기 과정(S102) 전의 과정(S150)에서 획득되었던 제 n상태 정보를 상기 행동 제어 알고리즘에 입력하여 제 n행동 정보를 선택한다(S130). (여기서, 상기 행동 제어 알고리즘에 입력하는 상기 제 n상태 정보는 획득 당시에는 제 n+1상태 정보이나, 상기 과정(S102)를 통해 n이 1증가된 이후의 시점을 기준으로 지칭된 것이다.) 상기 제 n행동 정보에 따른 이동 로봇(100)의 행동(S130) 후, 감지를 통해 제 n+1상태 정보를 획득하고, 상기 제 n+1상태 정보에 대응하는 제 n+1보상 스코어를 획득한다(S150). 이에 따라, 제 n상태 정보, 제 n행동 정보 및 제 n+1보상 스코어로 구성된 제 1경험 정보가 생성된다(S170). 이 때, 상기 제 n+1상태 정보가 도킹 완료 상태인지 여부를 판단(S90)하여, 상기 제 n+1상태 정보가 도킹 완료 상태이면 경험 정보 생성 과정이 종료되고, 상기 제 n+1상태 정보가 도킹 완료 상태가 아니면 n이 1증가 설정(S102)되면서 상기 과정(S130)부터 다시 진행된다.
도 10 및 도 11을 참고하여, 상기 제어방법은, 생성된 경험 정보를 수집하는 경험 정보 수집 단계(S200)를 포함한다. 상기 경험 정보 생성 단계를 반복 수행하여 복수의 경험 정보가 저장된다(S200). 상기 경험 정보 생성 단계를 상기 n이 1인 경우부터 상기 n이 p인 경우까지 순차적으로 반복 수행하여 제 1 내지 p 경험 정보가 저장된다(S200).
도 10 및 도 11을 참고하여, 상기 제어방법은, 저장된 상기 복수의 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 학습 단계(S300)를 포함한다. 학습 단계(S300)에서, 상기 제 1 내지 p 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습한다. 학습 단계(S300)에서 상술한 강화 학습 방식으로 상기 행동 제어 알고리즘을 학습할 수 있다. 학습 단계(S300)에서, 행동 제어 알고리즘의 변경 요소를 찾을 수 있다. 학습 단계(S300)에서, 행동 제어 알고리즘을 곧바로 업데이트시키거나, 행동 제어 알고리즘을 업데이트시키기 위한 업데이트 정보를 생성할 수 있다.
학습 단계(S300)에서, 각 상태 정보에서 선택된 행동 정보에 따라 도달된 상태를 분석하여, 각 상태 정보와 대응되는 보상 스코어를 변경 설정할 수 있다. 예를 들어, 어느 한 상태 정보(STx)가 속한 많은 수의 경험 정보를 근거로 하여, 해당 상태 정보(ST)에서 선택 가능한 행동 정보(들)을 통해 ⅰ도킹 성공이 이루어질 통계적 확률, ⅱ도킹 성공까지 소요되는 통계적 시간, ⅲ도킹 성공까지 통계적 도킹 시도 횟수, 및/또는 ⅳ 장애물 회피 성공이 이루어질 통계적 확률 등을 판단할 수 있고, 이에 따라 해당 상태 정보(STx)에 대응하는 보상 스코어를 재설정할 수 있다. 보상 스코어의 고저 수준에 대한 구체적 설명은 상술한 바와 같다.
일 실시예에서, 상기 경험 정보 수집 단계(S200) 및 학습 단계(S300)는 이동 로봇(100)의 제어부(140)에서 수행된다. 이 경우, 생성된 복수의 경험 정보는 저장부(179)에 저장될 수 있다. 제어부(140)는 저장부(179)에 저장된 복수의 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습할 수 있다.
도 11을 참고하여, 다른 실시예에서, 이동 로봇(100)은 상기 경험 정보 생성 단계(S100)를 수행한다. 그 후, 이동 로봇(100)은 소정의 네트워크를 통해 서버(500)로 생성된 상기 경험 정보를 송신한다(S51). 경험 정보의 송신 과정(S51)은, 각각의 경험 정보가 각각 생성된 즉시 진행될 수도 있고, 소정치 이상의 복수의 경험 정보가 이동 로봇(100)의 저장부(179)에 임시 저장된 후 진행될 수도 있다. 경험 정보의 송신 과정(S51)은, 이동 로봇(100)의 도킹 완료 상태 이후 진행될 수도 있다. 서버(500)가 상기 경험 정보를 수신받아 경험 정보 수집 단계(S200)를 수행한다. 이 후, 서버(500)는 상기 학습 단계(S300)를 수행한다. 서버(500)는 수집된 복수의 경험 정보를 근거로 하여 행동 제어 알고리즘을 학습한다(S310). 상기 과정(S310)에서, 서버(500)는 행동 제어 알고리즘을 업데이트 시키기 위한 업데이트 정보를 생성한다. 그 후, 서버(500)는 상기 네트워크를 통해 이동 로봇(100)으로 상기 업데이트 정보를 송신한다(S53). 그 후, 이동 로봇(100)은 수신한 상기 업데이트 정보를 근거로 하여 기 저장된 행동 제어 알고리즘을 업데이트한다(S350).
일 예로, 상기 업데이트 정보는 업데이트된 행동 제어 알고리즘을 포함할 수 있다. 상기 업데이트 정보는 업데이트된 행동 제어 알고리즘 자체(프로그램)일 수도 있다. 상기 서버(500)의 학습 과정(S310)에서, 서버(500)는 수집된 경험 정보를 이용하여, 서버(500)에 기저장되어 있는 행동 제어 알고리즘을 업데이트 시키며, 이 때의 서버(500)에서 업데이트된 행동 제어 알고리즘이 상기 업데이트 정보가 될 수 있다. 이 경우, 이동 로봇(100)은 서버(500)로부터 수신한 상기 업데이트된 행동 제어 알고리즘을 이동 로봇(100)의 기 저장된 행동 제어 알고리즘과 대체함으로써 업데이트를 수행(S350)할 수 있다.
다른 예로, 상기 업데이트 정보는 행동 제어 알고리즘 자체는 아니지만 기존의 행동 제어 알고리즘에 업데이트를 발생시키는 정보일 수 있다. 상기 서버(500)의 학습 과정(S310)에서, 서버(500)는 수집된 경험 정보를 이용하여 학습 엔진을 구동시키고, 이에 따라 상기 업데이트 정보를 생성할 수 있다. 이 경우, 이동 로봇(100)은 서버(500)로부터 수신한 상기 업데이트 정보에 의해 이동 로봇(100)의 기 저장된 행동 제어 알고리즘을 변경시킴으로써 업데이트를 수행(S350)할 수 있다.
또 다른 실시예에서, 복수의 이동 로봇(100)이 각각 생성한 경험 정보들이 서버(500)로 송신될 수 있다. 서버(500)는 복수의 이동 로봇(100)으로부터 수신한 복수의 경험 정보를 근거로 하여, 행동 제어 알고리즘을 학습(S310)할 수 있다.
일 예로, 복수의 이동 로봇(100)으로부터 수집된 경험 정보를 근거로 모든 복수의 이동 로봇(100)에 일괄적으로 적용될 행동 제어 알고리즘을 학습할 수 있다.
다른 예로, 복수의 이동 로봇(100)으로부터 수집된 경험 정보를 근거로 각각의 이동 로봇(100)별로 각각의 행동 제어 알고리즘을 학습할 수도 있다. 제 1예시로, 서버(500)는 각각의 이동 로봇(100)으로부터 수신한 경험 정보를 분류하여, 특정 이동 로봇(100)으로부터 수신한 경험 정보만 상기 특정 이동 로봇(100)의 행동 제어 알고리즘의 학습을 위한 근거로 이용하도록 설정될 수 있다. 제 2예시로, 복수의 이동 로봇(100)으로부터 수집된 경험 정보들을 소정의 기준에 따라 공통 학습 기반 그룹과 개별 학습 기반 그룹으로 분류할 수 있다. 상기 제 2예시에서, 상기 공통 학습 기반 그룹 내의 경험 정보들은 모든 이동 로봇(100)의 행동 제어 알고리즘 학습에 이용하고, 상기 개별 학습 기반 그룹 내의 경험 정보들은 각각의 해당 경험 정보를 생성한 각각의 해당 이동 로봇(100)의 행동 제어 알고리즘 학습에 이용되게 설정될 수 있다.
이하, 도 12 내지 도 20을 참고하여, 상기 제어방법의 일 시나리오에 경험 정보의 생성 과정을 설명하면 다음과 같다. 도 12 내지 도 20에서, 이동 로봇(100)은 도킹 모드가 시작된 후, 행동 제어 알고리즘을 이용하여 도킹 기기(200)로 이동하는 과정에서 발생할 수 있는 상황들이 예시적으로 도시된다.
도 12 및 도 13을 참고하여, 이동 로봇(100)은 도킹 모드 시작 후 얼마간의 행동 후 상태(P(ST1))에 도달한다. 상기 상태(P(ST1))에서, 이동 로봇(100)은 감지를 통해 상태 정보(ST1)를 획득한다. 또한, 이동 로봇(100)은 상기 상태 정보(ST1)에 대응하는 보상 스코어(R1)를 획득한다. 상기 보상 스코어(R1)는, 상기 상태(ST1) 이전의 상태 및 행동에 대응하는 상태 정보 및 행동 정보와 함께 하나의 경험 정보를 생성시킨다.
본 시나리오에서, 이동 로봇(100)은, 상기 행동 제어 알고리즘에 의해 상기 상태(P(ST1))에서 선택할 수 있는 여러 행동 정보(A1, …) 중 행동 정보(A1)를 선택한다. 도 13을 참고하여, 행동 정보(A1)에 따른 행동(P(A1))은 상태(P(ST2))의 위치까지 직진 이동하는 것이다.
상기 행동(P(A1))에 따른 결과, 이동 로봇(100)은 상기 행동(P(A1)) 후 상태(P(ST2))에 도달한다. 상기 상태(P(ST2))에서, 이동 로봇(100)은 감지를 통해 상태 정보(ST2)를 획득한다. 또한, 이동 로봇(100)은 상기 상태 정보(ST2)에 대응하는 보상 스코어(R2)를 획득한다. 상기 보상 스코어(R2)는, 이전의 상태 정보(ST1) 및 행동 정보(A1)과 함께 하나의 경험 정보를 생성시킨다.
본 시나리오에서, 이동 로봇(100)은, 상기 행동 제어 알고리즘에 의해 상기 상태(P(ST2))에서 선택할 수 있는 여러 행동 정보(A2, …) 중 행동 정보(A2)를 선택한다. 도 13을 참고하여, 행동 정보(A2)에 따른 행동(P(A2))은, 우측 방향으로 도킹 기기(200)가 마주볼 때까지 회전한 후 일정 거리 직진 이동하는 것이다.
상기 행동(P(A2))에 따른 결과, 이동 로봇(100)은 상기 행동(P(A2)) 후 상태(P(ST3))에 도달한다. 도 13을 참고하여, 상기 상태(P(ST3))에서, 이동 로봇(100)은 영상 정보(P3)의 감지를 통해 상태 정보(ST3)를 획득한다. 영상 정보(P3)에서, 도킹 기기(200)의 이미지의 가상의 중심 수직선(lv)이 영상 프레임의 가상의 중심 수직선(lv)으로부터 우측으로 값(e)만큼 치우쳐진 것을 볼 수 있다. 상기 상태 정보(ST3)는, 도킹 기기(200)가 이동 로봇(100)의 정면에서 우측으로 치우친 수준(e)이 반영된 정보를 포함한다.
이동 로봇(100)은 상기 상태 정보(ST3)에 대응하는 보상 스코어(R3)를 획득한다. 상기 보상 스코어(R3)는, 이전의 상태 정보(ST2) 및 행동 정보(A2)와 함께 하나의 경험 정보를 생성시킨다.
도 12 및 도 13을 참고하여, 이동 로봇(100)은, 상기 행동 제어 알고리즘에 의해 상기 상태(P(ST3))에서 선택할 수 있는 여러 행동 정보(A31, A32, A33, A34, …) 중 어느 하나를 선택한다. 예를 들어, 행동 정보(A31)에 따른 행동(P(A31))은 소정 거리 직진 이동하는 것이다. 예를 들어, 행동 정보(A32)에 따른 행동(P(A32))은, 도킹 기기(200)가 이동 로봇(100)의 정면에서 우측으로 치우친 수준(e)을 고려하여 우측으로 소정의 예각만큼 회전하는 것이다. 예를 들어, 행동 정보(A33)에 따른 행동(P(A33))은, 우측으로 90도 회전 후 이동 로봇(100)의 정면에서 우측으로 치우친 수준(e)을 고려하여 소정 거리 직진 이동하는 것이다.
도 12 및 도 14를 참고하여, 만약 이동 로봇(100)이 상기 상태(P(ST3))에서 상기 행동(P(A32))를 수행한다고 가정하면 다음과 같다. 상기 행동(P(A32))에 따른 결과, 이동 로봇(100)은 상기 행동(P(A32)) 후 상태(P(ST4))에 도달한다. 상기 상태(P(ST4))에서, 이동 로봇(100)은 영상 정보(P4)의 감지를 통해 상태 정보(ST4)를 획득한다. 영상 정보(P4)에서, 도킹 기기(200)의 이미지의 가상의 중심 수직선(lv)과 영상 프레임의 가상의 중심 수직선(lv)이 일치하되, 도킹 기기(200)의 좌측면(sp4)의 이미지가 일부 보이는 것을 볼 수 있다. 이동 로봇(100)이 도킹 기기(200)의 정면에 대해 약간 좌측으로 떨어진 위치에서, 도킹 기기(200)를 정면으로 바라보고 있기 때문에, 위와 같은 영상 정보(P4)가 감지된다. 상기 상태 정보(ST4)는, 이동 로봇(100)이 도킹 기기(200)의 정면에 대해 특정 값만큼 좌측으로 떨어진 위치에서 도킹 기기(200)를 정면으로 바라보는 것이 반영된 정보를 포함한다.
이동 로봇(100)은 상기 상태 정보(ST4)에 대응하는 보상 스코어(R4)를 획득한다. 상기 보상 스코어(R4)는, 이전의 상태 정보(ST3) 및 행동 정보(A32)와 함께 하나의 경험 정보를 생성시킨다.
본 시나리오에서, 이동 로봇(100)은, 상기 행동 제어 알고리즘에 의해 상기 상태(P(ST4))에서 선택할 수 있는 여러 행동 정보(A4, …) 중 행동 정보(A4)를 선택한다. 도 14을 참고하여, 행동 정보(A4)에 따른 행동(P(A4))은 도킹 기기(200) 방향으로 직진 이동하는 것이다.
본 시나리오에서, 도 12 및 도 20을 참고하여, 상기 행동(P(A4))에 따른 결과, 이동 로봇(100)은 상기 행동(P(A4)) 후 도킹 성공 상태(P(STs))에 도달한다. 예를 들어, 상기 도킹 성공 상태(P(STs))에서, 이동 로봇(100)은 상기 도킹 감지부를 통해 도킹 성공 상태 정보(STs)를 획득한다. 이 때, 이동 로봇(100)은 상기 상태 정보(STs)에 대응하는 보상 스코어(Rs)를 획득한다. 상기 보상 스코어(Rs)는, 이전의 상태 정보(ST4) 및 행동 정보(A4)와 함께 하나의 경험 정보를 생성시킨다.
한편, 도 12 및 도 15를 참고하여, 만약 이동 로봇(100)이 상기 상태(P(ST3))에서 상기 행동(P(A33))를 수행한다고 가정하면 다음과 같다. 상기 행동(P(A33))에 따른 결과, 이동 로봇(100)은 상기 행동(P(A33)) 후 상태(P(ST5))에 도달한다. 상기 상태(P(ST5))에서, 이동 로봇(100)은 감지를 통해 상태 정보(ST5)를 획득한다.
이동 로봇(100)은 상기 상태 정보(ST5)에 대응하는 보상 스코어(R5)를 획득한다. 상기 보상 스코어(R5)는, 이전의 상태 정보(ST3) 및 행동 정보(A33)과 함께 하나의 경험 정보를 생성시킨다.
본 시나리오에서, 이동 로봇(100)은, 상기 행동 제어 알고리즘에 의해 상기 상태(P(ST5))에서 선택할 수 있는 여러 행동 정보(A5, …) 중 행동 정보(A5)를 선택한다. 도 15를 참고하여, 행동 정보(A5)에 따른 행동(P(A5))은 좌측 방향으로 90도 회전하는 것이다.
도 12 및 도 16을 참고하여, 상기 행동(P(A5))에 따른 결과, 이동 로봇(100)은 상기 행동(P(A5)) 후 상태(P(ST6))에 도달한다. 상기 상태(P(ST6))에서, 이동 로봇(100)은 영상 정보(P6)의 감지를 통해 상태 정보(ST6)를 획득한다. 영상 정보(P6)에서, 도킹 기기(200)의 이미지의 가상의 중심 수직선(lv)과 영상 프레임의 가상의 중심 수직선(lv)이 일치하는 것을 볼 수 있다. 상기 상태 정보(ST6)는, 도킹 기기(200)가 이동 로봇(100)의 정면에 정확히 배치된 것이 반영된 정보를 포함한다.
이동 로봇(100)은 상기 상태 정보(ST6)에 대응하는 보상 스코어(R6)를 획득한다. 상기 보상 스코어(R6)는, 이전의 상태 정보(ST5) 및 행동 정보(A5)와 함께 하나의 경험 정보를 생성시킨다.
본 시나리오에서, 이동 로봇(100)은, 상기 행동 제어 알고리즘에 의해 상기 상태(P(ST6))에서 선택할 수 있는 여러 행동 정보(A6, …) 중 행동 정보(A6)를 선택한다. 도 14을 참고하여, 행동 정보(A6)에 따른 행동(P(A6))은 도킹 기기(200) 방향으로 직진 이동하는 것이다.
본 시나리오에서, 도 12 및 도 20을 참고하여, 상기 행동(P(A6))에 따른 결과, 이동 로봇(100)은 상기 행동(P(A6)) 후 도킹 성공 상태(P(STs))에 도달한다. 예를 들어, 상기 도킹 성공 상태(P(STs))에서, 이동 로봇(100)은 상기 도킹 감지부를 통해 도킹 성공 상태 정보(STs)를 획득한다. 이 때, 이동 로봇(100)은 상기 상태 정보(STs)에 대응하는 보상 스코어(Rs)를 획득한다. 상기 보상 스코어(Rs)는, 이전의 상태 정보(ST6) 및 행동 정보(A6)와 함께 하나의 경험 정보를 생성시킨다.
한편, 도 12 및 도 17을 참고하여, 만약 이동 로봇(100)이 상기 상태(P(ST3))에서 상기 행동(P(A31))을 수행한다고 가정하면 다음과 같다. 상기 행동(P(A31))에 따른 결과, 이동 로봇(100)은 상기 행동(P(A31)) 후 상태(P(ST7))에 도달한다. 상기 상태(P(ST7))에서, 이동 로봇(100)은 영상 정보(P7)의 감지를 통해 상태 정보(ST7)를 획득한다. 영상 정보(P7)에서, 도킹 기기(200)의 이미지의 가상의 중심 수직선(lv)이 영상 프레임의 가상의 중심 수직선(lv)으로부터 우측으로 값(e)만큼 치우치고, 도킹 기기(200)의 이미지가 상대적으로 확대된 것을 확인할 수 있다. 이동 로봇(100)이 상태(P(ST3))에 비해 상태(P(ST7))에서 도킹 기기(200)에 보다 근접한 위치이기 때문에, 위와 같은 영상 정보(P7)가 감지된다. 상기 상태 정보(ST7)는, 이동 로봇(100)이 도킹 기기(200)의 정면에 대해 특정 값만큼 좌측으로 떨어진 위치에서 도킹 기기(200)를 정면으로 바라보는 것이 반영된 정보, 및 이동 로봇(100)이 도킹 기기(200)에 소정치 이상 근접하다는 것이 반영된 정보를 포함한다.
이동 로봇(100)은 상기 상태 정보(ST7)에 대응하는 보상 스코어(R7)를 획득한다. 상기 보상 스코어(R7)는, 이전의 상태 정보(ST3) 및 행동 정보(A31)와 함께 하나의 경험 정보를 생성시킨다.
본 시나리오에서, 이동 로봇(100)은, 상기 행동 제어 알고리즘에 의해 상기 상태(P(ST7))에서 선택할 수 있는 여러 행동 정보(A71, A72, A73, A74, …) 중 행동 정보(A71)을 선택한다. 도 17을 참고하여, 예를 들어, 행동 정보(A71)에 따른 행동(P(A71))은 도킹 기기(200) 방향으로 직진 이동하는 것이다. 예를 들어, 행동 정보(A72)에 따른 행동(P(A72))은, 도킹 기기(200)가 이동 로봇(100)의 정면에서 우측으로 치우친 수준(e)을 고려하여 우측으로 소정의 예각만큼 회전하는 것이다. 예를 들어, 행동 정보(A73)에 따른 행동(P(A73))은, 우측으로 90도 회전하는 것이다. 예를 들어, 행동 정보(A74)에 따른 행동(P(A74))은, 후진하여 이동하는 것이다.
본 시나리오에서, 도 12 및 도 18을 참고하여, 상기 행동(P(A71))에 따른 결과, 이동 로봇(100)은 상기 행동(P(A71)) 후 도킹 실패 상태(P(STf1))에 도달한다. 예를 들어, 상기 도킹 실패 상태(P(STf1))에서, 이동 로봇(100)은 상기 도킹 감지부, 상기 충격 감지부 및/또는 자이로 센서 등의 감지를 통해 도킹 실패 상태 정보(STf1)를 획득한다. 이 때, 이동 로봇(100)은 상기 상태 정보(STf1)에 대응하는 보상 스코어(Rf1)를 획득한다. 상기 보상 스코어(Rf1)는, 이전의 상태 정보(ST7) 및 행동 정보(A71)와 함께 하나의 경험 정보를 생성시킨다.
한편, 다른 경우에 따른 행동에 따라 발생할 수 있는 다양한 도킹 실패 상태(P(STf1), P(STf2), …)가 존재한다. 각각의 도킹 실패 상태(P(STf1), P(STf2), …)에서 감지를 통해 각각의 도킹 실패 상태 정보(STf1, STf2, …)를 획득할 수 있다. 각각의 도킹 실패 상태 정보(STf1, STf2, …)에 대응하는 각각의 보상 스코어(Rf1, Rf1, …)가 획득된다. 각각의 보상 스코어(Rf1, Rf1, …)는 서로 다르게 설정될 수 있다.
도 18에서는 어느 한 경우의 도킹 실패 상태(P(STf1))를 도시하고, 도 19에서는 다른 한 경우의 도킹 실패 상태(P(STf2))를 도시한다.
도 19를 참고하여, 이동 로봇(100)은 어느 한 상태에서 어느 한 행동을 수행한 결과, 도킹 실패 상태(P(STf2))에 도달한다. 예를 들어, 상기 도킹 실패 상태(P(STf2))에서, 이동 로봇(100)은 상기 도킹 감지부, 상기 충격 감지부 및/또는 자이로 센서 등의 감지를 통해 도킹 실패 상태 정보(STf2)를 획득한다. 이 때, 이동 로봇(100)은 상기 상태 정보(STf2)에 대응하는 보상 스코어(Rf2)를 획득한다. 상기 보상 스코어(Rf2)는, 이전의 상태 정보 및 행동 정보와 함께 하나의 경험 정보를 생성시킨다.
위의 시나리오에 따른 행동 정보들은 예시들일 뿐, 그 밖에도 다양한 행동 정보가 있을 수 있다. 예를 들어, 같은 직진 이동이나 후진 이동에 대한 행동 정보들이라도, 이동하는 거리의 차이에 따라, 매우 다양한 행동 정보들이 존재할 수 있다. 다른 예를 들어, 같은 회전 이동에 대한 행동 정보들이라도, 회전각의 차이나 회전 반경의 차이 등에 따라, 매우 다양한 행동 정보들이 존재할 수 있다.
위의 시나리오에서 도킹 기기의 이미지를 가진 영상 정보를 통해 상태 정보를 획득하는 것을 예시적으로 도시하였으나, 도킹 기기의 주변 환경의 이미지를 가진 영상 정보를 통해 상태 정보를 획득할 수도 있다. 또한, 영상 감지부(138)가 아닌 다양한 다른 센서의 감지 정보를 통해 상기 상태 정보가 획득될 수도 있으며, 2가지 이상의 센서의 2가지 이상의 감지 정보의 조합을 통해 상기 상태 정보가 획득될 수도 있다.
100: 이동 로봇 110: 본체
111: 케이스 112: 먼저통 커버
130: 센싱부 131: 거리 감지부
132: 낭떠러지 감지부 138: 영상 감지부
138a: 전방 영상 센서 138b: 상방 영상 센서
138c: 하방 영상 센서 139: 패턴 조사부
139a: 제 1패턴 조사부 139b: 제 2패턴 조사부
138a, 139a, 139b: 3D 센서 140: 제어부
160: 주행부 166: 구동 바퀴
168: 보조 바퀴 171: 입력부
173: 출력부 175: 통신부
177: 배터리 179: 저장부
180: 작업부 180h: 흡입구
184: 메인 브러시 185: 보조 브러시
190: 대응 단자 200: 도킹 기기
210: 충전 단자 300a, 300b: 단말기
400: 무선 공유기 500: 서버
STx: 상태 정보 P(STx): 상태
Ax: 행동 정보 P(Ax): 행동
Rx: 보상 정보, 보상 스코어

Claims (17)

  1. 본체;
    상기 본체를 이동시키는 주행부;
    현재의 상태 정보를 획득하기 위해 주행 중 감지를 수행하는 센싱부;
    도킹을 위한 소정의 행동 제어 알고리즘에 상기 현재의 상태 정보를 입력하여 선택되는 행동 정보에 따라 행동을 제어한 결과에 근거하여, 상기 상태 정보 및 상기 행동 정보를 포함하는 하나의 경험 정보를 생성하고, 상기 경험 정보의 생성을 반복 수행하여 복수의 경험 정보가 저장되고, 상기 복수의 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 제어부를 포함하는, 이동 로봇.
  2. 주행 중 감지를 통해 현재의 상태 정보를 획득하고, 도킹을 위한 소정의 행동 제어 알고리즘에 상기 현재의 상태 정보를 입력하여 선택되는 행동 정보에 따라 행동을 제어한 결과에 근거하여, 상기 상태 정보 및 상기 행동 정보를 포함하는 하나의 경험 정보를 생성하는 경험 정보 생성 단계를 포함하고,
    상기 경험 정보 생성 단계를 반복 수행하여 복수의 경험 정보가 저장되는 경험 정보 수집 단계; 및
    상기 복수의 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 학습 단계를 더 포함하는, 이동 로봇의 제어방법.
  3. 제 2항에 있어서,
    각각의 상기 경험 정보는,
    각 경험 정보에 속한 행동 정보에 따라 행동을 제어한 결과에 근거하여 설정되는 보상 스코어를 더 포함하는, 이동 로봇의 제어방법.
  4. 제 3항에 있어서,
    상기 보상 스코어는,
    상기 행동 정보에 따라 행동을 제어한 결과, 도킹을 성공한 경우 상대적으로 높게 설정되고 도킹을 실패한 경우 상대적으로 낮게 설정되는, 이동 로봇의 제어방법.
  5. 제 3항에 있어서,
    상기 보상 스코어는,
    상기 행동 정보에 따라 행동을 제어한 결과에 따른 ⅰ도킹의 성공 여부, ⅱ도킹까지 소요되는 시간, ⅲ도킹 성공까지 도킹을 시도한 횟수 및 ⅳ장애물의 회피 성공 여부 중 적어도 어느 하나와 관련되어 설정되는, 이동 로봇의 제어방법.
  6. 제 3항에 있어서,
    상기 행동 제어 알고리즘은,
    어느 한 상태 정보를 상기 행동 제어 알고리즘에 입력할 때, ⅰ상기 어느 한 상태 정보가 속한 상기 경험 정보 내의 행동 정보 중 최고의 보상 스코어가 얻어지는 활용 행동 정보 및 ⅱ상기 어느 한 상태 정보가 속한 상기 경험 정보 내의 행동 정보가 아닌 탐험 행동 정보 중, 어느 하나가 선택되도록 설정되는, 이동 로봇의 제어방법.
  7. 제 2항에 있어서,
    상기 행동 제어 알고리즘은,
    상기 학습 단계 전에 기설정되되, 상기 학습 단계를 통해 변경되도록 구비되는, 이동 로봇의 제어방법.
  8. 제 2항에 있어서,
    상기 상태 정보는,
    도킹 기기와 이동 로봇의 상대적 위치 정보를 포함하는, 이동 로봇의 제어방법.
  9. 제 8항에 있어서,
    상기 상태 정보는,
    도킹 기기 및 도킹 기기 주변의 환경 중 적어도 하나에 대한 영상 정보를 포함하는, 이동 로봇의 제어방법.
  10. 제 2항에 있어서,
    이동 로봇은 소정의 네트워크를 통해 서버로 상기 경험 정보를 송신하고,
    상기 서버가 상기 학습 단계를 수행하는, 이동 로봇의 제어방법.
  11. 주행 중 제 n시점의 상태에서 감지를 통해 제 n상태 정보를 획득하고, 도킹을 위한 소정의 행동 제어 알고리즘에 상기 제 n상태 정보를 입력하여 선택되는 제 n행동 정보에 따라 행동을 제어한 결과에 근거하여, 상기 제 n상태 정보 및 상기 제 n행동 정보를 포함하는 제 n경험 정보를 생성하는 경험 정보 생성 단계를 포함하고,
    상기 경험 정보 생성 단계를 상기 n이 1인 경우부터 상기 n이 p인 경우까지 순차적으로 반복 수행하여 제 1 내지 p 경험 정보가 저장되는 경험 정보 수집 단계; 및
    상기 제 1 내지 p 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 학습 단계를 더 포함하고,
    p는 2이상의 자연수로서 p+1시점의 상태는 도킹 완료 상태인, 이동 로봇의 제어방법.
  12. 제 11항에 있어서,
    상기 제 n경험 정보는,
    상기 제 n행동 정보에 따라 행동을 제어한 결과에 근거하여 설정되는 제 n+1보상 스코어를 더 포함하는, 이동 로봇의 제어방법.
  13. 제 12항에 있어서,
    상기 경험 정보 생성 단계는,
    상기 제 n+1보상 스코어는 제 n+1 시점의 상태에서 감지를 통해 획득된 제 n+1상태 정보에 대응하여 설정되는, 이동 로봇의 제어방법.
  14. 제 13항에 있어서,
    상기 제 n+1보상 스코어는,
    상기 제 n+1시점의 상태가, 도킹 완료 상태인 경우 상대적으로 높게 설정되고 도킹 미완료 상태인 경우 상대적으로 낮게 설정되는, 이동 로봇의 제어방법.
  15. 제 13항에 있어서,
    상기 제 n+1상태 정보가 속한 기 저장된 복수의 경험 정보에 근거하여, ⅰ상기 제 n+1상태 이후 도킹 성공의 확률이 클수록. ⅱ상기 제 n+1상태 이후 도킹 성공까지 확률적 예상 소요시간이 작을수록, 또는 ⅲ상기 제 n+1상태 이후 도킹 성공까지 확률적 예상 도킹 시도 횟수가 작을수록,
    상기 제 n+1보상 스코어가 크게 설정되는, 이동 로봇의 제어방법.
  16. 제 13항에 있어서,
    상기 제 n+1상태 정보가 속한 기 저장된 복수의 경험 정보에 근거하여, 상기 제 n+1상태 이후 외부의 장애물에 대한 충돌 확률이 작을수록,
    상기 제 n+1보상 스코어가 크게 설정되는, 이동 로봇의 제어방법.
  17. 주행 중 제 n시점의 상태에서 감지를 통해 제 n상태 정보를 획득하고, 도킹을 위한 소정의 행동 제어 알고리즘에 상기 제 n상태 정보를 입력하여 선택되는 제 n행동 정보에 따라 행동을 제어한 결과에 근거하여 제 n+1보상 스코어를 획득하고, 상기 제 n상태 정보, 상기 제 n행동 정보 및 상기 제 n+1보상 스코어를 포함하는 제 n경험 정보를 생성하는 경험 정보 생성 단계를 포함하고,
    상기 경험 정보 생성 단계를 상기 n이 1인 경우부터 상기 n이 p인 경우까지 순차적으로 반복 수행하여 제 1 내지 p 경험 정보가 저장되는 경험 정보 수집 단계; 및
    상기 제 1 내지 p 경험 정보를 근거로 하여 상기 행동 제어 알고리즘을 학습하는 학습 단계를 더 포함하고,
    p는 2이상의 자연수로서 p+1시점의 상태는 도킹 완료 상태인, 이동 로봇의 제어방법.
KR1020170169710A 2017-12-11 2017-12-11 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법 KR102048365B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170169710A KR102048365B1 (ko) 2017-12-11 2017-12-11 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
PCT/KR2018/015652 WO2019117576A1 (ko) 2017-12-11 2018-12-11 이동 로봇 및 이동 로봇의 제어방법
US16/957,888 US20220032450A1 (en) 2017-12-11 2018-12-11 Mobile robot, and control method of mobile robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170169710A KR102048365B1 (ko) 2017-12-11 2017-12-11 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법

Publications (2)

Publication Number Publication Date
KR20190069216A true KR20190069216A (ko) 2019-06-19
KR102048365B1 KR102048365B1 (ko) 2019-11-25

Family

ID=66820748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170169710A KR102048365B1 (ko) 2017-12-11 2017-12-11 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법

Country Status (3)

Country Link
US (1) US20220032450A1 (ko)
KR (1) KR102048365B1 (ko)
WO (1) WO2019117576A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022045425A1 (ko) * 2020-08-26 2022-03-03 주식회사 우아한형제들 역강화학습 기반 배달 수단 탐지 장치 및 방법
WO2022055280A1 (ko) * 2020-09-09 2022-03-17 주식회사 뱅크엑스 결제를 지원하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
WO2023219362A1 (ko) * 2022-05-13 2023-11-16 삼성전자 주식회사 무선 청소기가 거치되는 스테이션 장치 및 스테이션 장치의 통신 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210015123A (ko) * 2019-07-31 2021-02-10 엘지전자 주식회사 인공지능 로봇청소기 및 그를 포함하는 로봇 시스템
JP7368135B2 (ja) * 2019-07-31 2023-10-24 ファナック株式会社 複数の可動部を有する物品搬送システム
JP7354425B2 (ja) * 2019-09-13 2023-10-02 ディープマインド テクノロジーズ リミテッド データ駆動型ロボット制御

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010053481A (ko) * 1999-05-10 2001-06-25 이데이 노부유끼 로봇 장치 및 그 제어 방법
US20060080802A1 (en) * 2004-10-18 2006-04-20 Funai Electric Co., Ltd. Self-propelled cleaner charging-type travel system and charging-type travel system
KR20100136904A (ko) 2009-06-19 2010-12-29 삼성전자주식회사 로봇청소기와 도킹스테이션 및 이를 가지는 로봇청소기 시스템 및 그 제어방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697707B2 (en) * 2001-04-06 2004-02-24 Vanderbilt University Architecture for robot intelligence
US8972052B2 (en) * 2004-07-07 2015-03-03 Irobot Corporation Celestial navigation system for an autonomous vehicle
US8706297B2 (en) * 2009-06-18 2014-04-22 Michael Todd Letsky Method for establishing a desired area of confinement for an autonomous robot and autonomous robot implementing a control system for executing the same
JP5764795B2 (ja) * 2011-01-05 2015-08-19 株式会社国際電気通信基礎技術研究所 移動ロボット、移動ロボット用の学習システムおよび移動ロボットの行動学習方法
US9233472B2 (en) * 2013-01-18 2016-01-12 Irobot Corporation Mobile robot providing environmental mapping for household environmental control
US9630318B2 (en) * 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US10207408B1 (en) * 2015-12-07 2019-02-19 AI Incorporated Method to minimize collisions of mobile robotic devices
EP3214510B1 (en) * 2016-03-03 2021-06-30 Magazino GmbH Controlling process of robots having a behavior tree architecture
WO2019088989A1 (en) * 2017-10-31 2019-05-09 Nissan North America, Inc. Reinforcement and model learning for vehicle operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010053481A (ko) * 1999-05-10 2001-06-25 이데이 노부유끼 로봇 장치 및 그 제어 방법
US20060080802A1 (en) * 2004-10-18 2006-04-20 Funai Electric Co., Ltd. Self-propelled cleaner charging-type travel system and charging-type travel system
KR20100136904A (ko) 2009-06-19 2010-12-29 삼성전자주식회사 로봇청소기와 도킹스테이션 및 이를 가지는 로봇청소기 시스템 및 그 제어방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022045425A1 (ko) * 2020-08-26 2022-03-03 주식회사 우아한형제들 역강화학습 기반 배달 수단 탐지 장치 및 방법
KR20220026804A (ko) * 2020-08-26 2022-03-07 주식회사 우아한형제들 역강화학습 기반 배달 수단 탐지 장치 및 방법
WO2022055280A1 (ko) * 2020-09-09 2022-03-17 주식회사 뱅크엑스 결제를 지원하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
WO2023219362A1 (ko) * 2022-05-13 2023-11-16 삼성전자 주식회사 무선 청소기가 거치되는 스테이션 장치 및 스테이션 장치의 통신 방법

Also Published As

Publication number Publication date
WO2019117576A1 (ko) 2019-06-20
KR102048365B1 (ko) 2019-11-25
US20220032450A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
KR102048365B1 (ko) 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
EP3727122B1 (en) Robot cleaners and controlling method thereof
KR102470532B1 (ko) 복수의 자율주행 이동 로봇
EP3432107B1 (en) Cleaning robot and controlling method thereof
EP3787458B1 (en) A plurality of robot cleaners
US11537135B2 (en) Moving robot and controlling method for the moving robot
EP3911480B1 (en) Mobile robot and method of controlling plurality of mobile robots
US20190339711A1 (en) Plurality of robot cleaner and a controlling method for the same
KR102423573B1 (ko) 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
US20220257074A1 (en) Mobile robot using artificial intelligence and controlling method thereof
EP3493013B1 (en) Moving robot and associated control method
US20210259498A1 (en) Plurality of autonomous cleaner and controlling method for the same
KR20190090757A (ko) 복수의 로봇 청소기 및 그 제어방법
TWI759760B (zh) 清掃機器人及其控制方法
US20230042764A1 (en) Robot cleaner and method for controlling the same
KR102360875B1 (ko) 복수의 로봇 청소기 및 그 제어방법
AU2019464601B2 (en) Robot cleaner and control method therefor
CN111225592B (zh) 自主行走吸尘器和扩展区域识别方法
KR20210089461A (ko) 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
KR102431982B1 (ko) 복수의 로봇 청소기 및 그 제어 방법
EP4116044A1 (en) Mobile robot and control method therefor
KR20210089463A (ko) 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
KR20240040180A (ko) 이동 로봇
KR20210089464A (ko) 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant