KR102255273B1 - 청소 공간의 지도 데이터를 생성하는 장치 및 방법 - Google Patents

청소 공간의 지도 데이터를 생성하는 장치 및 방법 Download PDF

Info

Publication number
KR102255273B1
KR102255273B1 KR1020190001302A KR20190001302A KR102255273B1 KR 102255273 B1 KR102255273 B1 KR 102255273B1 KR 1020190001302 A KR1020190001302 A KR 1020190001302A KR 20190001302 A KR20190001302 A KR 20190001302A KR 102255273 B1 KR102255273 B1 KR 102255273B1
Authority
KR
South Korea
Prior art keywords
data
cleaning apparatus
robot cleaning
map data
robot
Prior art date
Application number
KR1020190001302A
Other languages
English (en)
Other versions
KR20200085142A (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 KR1020190001302A priority Critical patent/KR102255273B1/ko
Priority to PCT/KR2020/000095 priority patent/WO2020141924A1/en
Priority to US16/734,639 priority patent/US11334084B2/en
Publication of KR20200085142A publication Critical patent/KR20200085142A/ko
Application granted granted Critical
Publication of KR102255273B1 publication Critical patent/KR102255273B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4011Regulation of the cleaning machine by electric means; Control systems and remote control systems therefor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4061Steering means; Means for avoiding obstacles; Details related to the place where the driver is accommodated
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2805Parameters or conditions being sensed
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2805Parameters or conditions being sensed
    • A47L9/2826Parameters or conditions being sensed the condition of the floor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/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
    • 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/2857User input or output elements for control, e.g. buttons, switches or displays
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C11/00Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
    • G01C11/04Interpretation of pictures
    • G01C11/30Interpretation of pictures by triangulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/383Indoor data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0011Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot associated with a remote control arrangement
    • G05D1/0016Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot associated with a remote control arrangement characterised by the operator's input device
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0011Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot associated with a remote control arrangement
    • G05D1/0044Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot associated with a remote control arrangement by providing the operator with a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0088Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0251Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic control of the travelling movement; Automatic obstacle detection
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo or light sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Abstract

본 개시는 딥러닝 등의 기계 학습 알고리즘을 활용하는 인공지능(AI) 시스템 및 그 응용에 관련된 것이다. 지도 데이터를 생성하는 로봇 청소 장치는, 하나 이상의 인터페이스를 저장하는 메모리; 및 상기 하나 이상의 인터페이스를 실행함으로써 상기 로봇 청소 장치를 제어하는 프로세서;를 포함하며, 상기 프로세서는, 상기 하나 이상의 인터페이스를 실행함으로써, 청소 공간에 관련된 기본 지도 데이터를 생성하고, 상기 청소 공간 내의 적어도 하나의 객체에 대한 객체 정보를 생성하며, 상기 객체 정보는, 상기 로봇 청소 장치가 상기 청소 공간 내의 서로 다른 복수의 위치에서 상기 객체에 대하여 획득한 정보에 기초하여 생성되며, 상기 객체의 종류 및 위치에 관한 정보를 포함한다.

Description

청소 공간의 지도 데이터를 생성하는 장치 및 방법{APPARATUS AND METHOD FOR GENERATING MAP DATA OF CLEANING SPACE}
본 개시는 청소 공간의 지도 데이터를 생성하는 장치 및 방법에 관한 것으로서, 보다 상세하게는 청소 공간 내의 객체를 식별하고 지도 데이터의 영역의 식별 값을 결정함으로써 청소 공간의 지도 데이터를 생성하는 장치 및 방법에 관한 것이다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 Rule 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 Rule 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다.
인공지능 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
한편, 로봇 청소 장치(robotic cleaning apparatus)는 청소 공간의 구분 영역들의 식별 값을 결정함으로써, 청소 공간의 정확한 지도 데이터를 생성하고, 생성된 지도 데이터를 바탕으로 로봇 청소 장치를 효과적으로 제어할 필요성이 있다.
일부 실시예는, 청소 공간의 영역을 구분하고 구분된 영역들의 식별 값을 결정할 수 있는, 청소 공간의 지도 데이터를 생성하는 장치 및 방법을 제공할 수 있다.
또한, 일부 실시예는, 청소 공간 내의 객체들을 정확히 인식함으로써 기본 지도 데이터를 이용하여 지도 데이터를 생성할 수 있는, 청소 공간의 지도 데이터를 생성하는 장치 및 방법을 제공할 수 있다.
또한, 일부 실시예는, 적어도 하나의 학습 모델을 이용하여, 청소 공간 내의 객체 및 구분 영역의 식별 값을 결정할 수 있는, 청소 공간의 지도 데이터를 생성하는 장치 및 방법을 제공할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은, 통신 인터페이스; 하나 이상의 인터페이스를 저장하는 메모리; 및 상기 하나 이상의 인터페이스를 실행함으로써 상기 로봇 청소 장치를 제어하는 프로세서;를 포함하며, 상기 프로세서는, 상기 하나 이상의 인터페이스를 실행함으로써, 청소 공간에 관련된 기본 지도 데이터를 생성하고, 상기 청소 공간 내의 적어도 하나의 객체에 대한 객체 정보를 생성하고, 상기 객체 정보에 기초하여, 상기 기본 지도 데이터 내의 영역을 복수의 영역으로 구분하고, 상기 객체 정보에 기초하여, 상기 구분된 복수의 영역의 식별 값을 결정하는 것인, 로봇 청소 장치를 제공할 수 있다.
또한, 본 개시의 제2 측면은, 청소 공간에 관련된 기본 지도 데이터를 생성하는 동작; 상기 청소 공간 내의 적어도 하나의 객체에 대한 객체 정보를 생성하는 동작; 상기 객체 정보에 기초하여, 상기 기본 지도 데이터 내의 영역을 복수의 영역으로 구분하는 동작; 및 상기 객체 정보에 기초하여, 상기 구분된 복수의 영역의 식별 값을 결정하는 동작;을 포함하는 것인, 로봇 청소 장치가 지도 데이터를 생성하는 방법을 제공할 수 있다.
또한, 본 개시의 제3 측면은, 제2 측면의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 포함하는 컴퓨터 프로그램 장치를 제공할 수 있다.
도 1은 일부 실시예에 따른 로봇 청소 장치(robotic cleaning apparatus)가 지도 데이터를 생성하도록 하는 시스템의 개요도이다.
도 2는 일부 실시예에 따른 로봇 청소 장치가 지도 데이터를 생성하는 방법의 흐름도이다.
도 3은 일부 실시예에 따른 로봇 청소 장치가 기본 지도 데이터 내의 객체의 종류 및 위치를 결정하는 방법의 흐름도이다.
도 4는 일부 실시예에 따른 로봇 청소 장치가 기본 지도 데이터를 생성하는 방법의 흐름도이다.
도 5는 일부 실시예에 따른 로봇 청소 장치가 참조 지도 데이터를 획득하는 방법의 흐름도이다.
도 6은 일부 실시예에 따른 로봇 청소 장치가 삼각 측량 기법을 이용하여 가구의 위치를 결정하는 예시를 나타내는 도면이다.
도 7은 일부 실시예에 따른 로봇 청소 장치에 의해 촬영된 객체 이미지의 예시를 나타내는 도면이다.
도 8은 일부 실시예에 따른 객체 이미지로부터 생성되는 객체 식별 데이터의 예시를 나타내는 도면이다.
도 9는 일부 실시예에 따른 로봇 청소 장치가 삼각 측량 기법을 활용하여 객체의 위치를 추정하는 예시를 나타내는 도면이다.
도 10 및 도 11은 일부 실시예에 따른 로봇 청소 장치가 적어도 하나의 학습 모델을 이용하여 객체의 위치를 결정하는 예시를 나타내는 도면이다.
도 12는 일부 실시예에 따른 기본 지도 데이터의 예시를 나타내는 도면이다.
도 13은 일부 실시예에 따른 청소 공간의 지도 데이터에서 복수의 영역이 구분되는 예시를 나타내는 도면이다.
도 14 및 도 15는 일부 실시예에 따른 로봇 청소 장치가 구분된 영역의 식별 값을 결정하는 예시를 나타내는 도면이다.
도 16 및 도 17은 일부 실시예에 따른 참조 지도 데이터를 획득하기 위한 GUI의 예시를 나타내는 도면이다.
도 18은 일부 실시예에 따른 지도 데이터가 확대됨에 따라 방의 이름 및 가구의 종류가 세부적으로 표시되는 예시를 나타내는 도면이다.
도 19는 일부 실시예에 따른 로봇 청소 장치가 음성 입력에 기초하여 청소를 수행하는 방법의 흐름도이다.
도 20 및 도 21은 일부 실시예에 따른 로봇 청소 장치가 음성 입력에 기초하여 청소를 수행하는 예시를 나타내는 도면이다.
도 22는 일부 실시예에 따른 로봇 청소 장치의 블록도이다.
도 23은 일부 실시예에 따른 외부 디바이스의 블록도이다.
도 24는 일부 실시예에 따른 서버의 블록도이다.
도 25는 일부 실시예에 따른 프로세서의 블록도이다.
도 26은 일부 실시예에 따른 데이터 학습부의 블록도이다.
도 27은 일부 실시예에 따른 데이터 인식부의 블록도이다.
도 28은 일부 실시예에 따른 로봇 청소 장치 및 서버가 서로 연동함으로써 데이터를 학습하고 인식하는 예시를 나타내는 도면이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 일부 실시예에 따른 로봇 청소 장치(robotic cleaning apparatus)가 지도 데이터를 생성하도록 하는 시스템의 개요도이다.
로봇 청소 장치(1000)는 청소 공간을 이동하면서 청소 공간을 청소할 수 있다. 청소 공간은, 예를 들어, 집, 사무실과 같이 청소가 필요한 공간일 수 있다. 로봇 청소 장치(1000)는 바퀴 등을 이용하여 스스로 이동이 가능한 로봇 장치로서, 청소 공간을 이동하면서 청소 기능을 실행할 수 있다.
도 1을 참조하면, 로봇 청소 장치(1000)는 청소 공간을 주행하면서, 청소 공간을 나타내는 지도 데이터를 생성할 수 있다. 로봇 청소 장치(1000)는 로봇 청소 장치(1000)의 여러 센서를 이용하여 청소 공간을 센싱할 수 있으며, 센싱된 데이터에 기초하여, 청소 공간의 구조 및 청소 공간 내의 객체를 식별할 수 있다. 로봇 청소 장치(1000)는 청소 공간 내의 객체의 종류 및 위치를 식별할 수 있으며, 식별된 객체를 바탕으로 청소 공간을 복수의 영역으로 구분할 수 있다. 또한, 로봇 청소 장치(1000)는 구분된 영역들의 명칭을 추정할 수 있다. 이 경우, 로봇 청소 장치(1000)는 적어도 하나의 학습 모델을 이용할 수 있다. 학습 모델은, 인공 지능 알고리즘으로서, 기계학습, 신경망, 유전자, 딥러닝, 분류 알고리즘 중 적어도 하나를 이용하여 학습된 학습 모델일 수 있다.
또한, 로봇 청소 장치(1000)는 생성된 지도 데이터를 로봇 청소 장치(1000)의 디스플레이에 디스플레이할 수 있다. 로봇 청소 장치(1000)는 지도 데이터를 외부 디바이스(2000)에게 제공하고, 외부 디바이스(2000)가 지도 데이터를 디스플레이할 수도 있다. 로봇 청소 장치(1000)에 의해 생성된 지도 데이터는, 청소 공간의 구조, 구분된 영역들, 영역들의 명칭, 가구의 종류 및 위치를 포함할 수 있다.
또한, 로봇 청소 장치(1000)는 생성된 지도 데이터 내의 구분 영역들의 명칭을 바탕으로, 사용자의 음성 명령을 해석할 수 있다. 로봇 청소 장치(1000)는, 사용자의 음성 명령이 불명확하더라도, 음성 명령의 사용자를 식별하여 사용자에 관련된 구분 영역을 결정할 수 있으며, 이를 통하여, 청소 대상 영역을 정확히 선택할 수 있다.
로봇 청소 장치(1000)는 네트워크를 통하여 외부 디바이스(2000) 또는 서버와 통신할 수 있다. 네트워크는, 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
도 2는 일부 실시예에 따른 로봇 청소 장치가 지도 데이터를 생성하는 방법의 흐름도이다.
동작 S200에서 로봇 청소 장치(1000)는 기본 지도 데이터를 생성할 수 있다. 로봇 청소 장치(1000)는 청소 공간을 주행하면서, 청소 공간에서 로봇 청소 장치(1000)가 주행할 수 있는 영역을 감지함으로써 청소 공간의 기본 지도 데이터를 생성할 수 있다. 기본 지도 데이터는 청소 공간에서 로봇 청소 장치(1000)가 주행할 수 있는 영역을 나타내는 지도를 포함할 수 있으나, 청소 공간 내의 객체를 식별하기 위한 정보는 포함하지 않을 수 있다. 청소 공간 내의 객체는, 예를 들어, 벽, 가구 및 가전 기기 등을 포함할 수 있으나, 이에 제한되지 않는다.
로봇 청소 장치(1000)는 청소 공간을 최초로 주행하는 경우에, 청소 공간의 기본 지도 데이터를 생성하기 위한 기능을 수행할 수 있다. 이 경우, 로봇 청소 장치(1000)는 기 설정된 조건을 만족할 때까지 기본 지도 데이터를 생성하기 위하여 청소 공간을 주행할 수 있다.
또한, 로봇 청소 장치(1000)는 기본 지도 데이터를 생성하기 위하여, 소정의 참조 지도를 이용할 수 있다. 예를 들어, 로봇 청소 장치(1000)는 소정의 평면도의 샘플을 저장할 수 있으며, 저장된 평면도 샘플을 기본 지도 데이터를 생성하는데 이용할 수 있다.
동작 S210에서 로봇 청소 장치(1000)는 청소 공간 내의 객체에 대한 객체 정보를 생성할 수 있다. 로봇 청소 장치(1000)는 청소 공간을 주행하는 도중에, 로봇 청소 장치(1000)의 카메라를 이용하여 청소 공간 내의 객체를 복수 회 촬영할 수 있다. 또한, 로봇 청소 장치(1000)는 객체를 촬영함으로써 생성되는 복수의 이미지를 이용하여, 객체 정보를 생성할 수 있다. 객체 정보는, 객체의 속성을 나타내는 정보로서, 예를 들어, 객체의 종류, 객체의 크기 및 객체의 위치를 포함할 수 있다. 또한, 객체는, 예를 들어, 청소 공간 내의 가구, 가전 기기 및 생활 도구 등의 물체를 포함할 수 있다.
로봇 청소 장치(1000)는 객체를 촬영한 때의 로봇 청소 장치(1000)의 위치 및 방위를 센싱할 수 있으며, 객체를 촬영한 때의 시각을 측정할 수 있다. 또한, 로봇 청소 장치(1000)는 로봇 청소 장치(1000)의 위치 및 방위, 객체를 촬영한 때의 시각에 관한 정보를 객체 정보를 생성하는데 이용할 수 있다. 로봇 청소 장치(1000)는 객체 정보를 생성하기 위하여, 적어도 하나의 학습 모델을 이용할 수도 있다.
동작 S220에서 로봇 청소 장치(1000)는 객체 정보에 기초하여, 기본 지도 내의 복수의 영역을 구분할 수 있다. 로봇 청소 장치(1000)는 청소 공간 내의 객체의 종류 및 위치에 기초하여 기본 지도 데이터를 수정하고, 수정된 기본 지도 데이터 내의 복수의 영역들을 구분할 수 있다. 로봇 청소 장치(1000)는 객체의 위치에 기초하여, 기본 지도 데이터에서 청소 공간의 외벽을 수정하고, 청소 공간 내에 객체의 위치를 표시할 수 있다. 또한, 로봇 청소 장치(1000)는 청소 공간 내의 어떤 객체가 위치하는 지를 식별하고, 청소 공간 내의 객체의 종류에 기초하여 청소 공간을 복수의 영역으로 구분할 수 있다.
동작 S230에서 로봇 청소 장치(1000)는 구분된 영역들의 식별 값을 결정할 수 있다. 로봇 청소 장치(1000)는 구분된 영역 내의 객체의 종류에 기초하여, 구분된 영역의 식별 값을 결정할 수 있다. 로봇 청소 장치(1000)는 구분된 영역에서 소정의 객체가 식별될 경우, 식별된 객체에 대응되는 식별 값을 구분된 영역의 식별 값으로 결정할 수 있다. 또한, 로봇 청소 장치(1000)는 구분된 영역에서 소정의 객체들의 조합이 식별될 경우, 객체들의 조합에 대응되는 식별 값을 구분된 영역의 식별 값으로 결정할 수 있다. 또한, 로봇 청소 장치(1000)는, 구분된 영역에서 식별된 객체의 종류에 따라, 구분된 영역이 어떤 영역일 확률이 높은지에 대한 데이터를 미리 저장할 수 있다.
예를 들어, 청소 공간의 구분된 영역 내에 TV 및 소파가 식별된 경우에, 로봇 청소 장치(1000)는 청소 공간의 구분된 영역의 식별 값을 ‘거실’이라고 결정할 수 있다. 또한, 로봇 청소 장치(1000)는 구분된 영역 내의 객체의 위치에 기초하여, 구분된 영역의 식별 값을 결정할 수도 있다.
도 3은 일부 실시예에 따른 로봇 청소 장치가 기본 지도 데이터 내의 객체의 종류 및 위치를 결정하는 방법의 흐름도이다.
동작 S300에서 로봇 청소 장치(1000)는 카메라를 이용하여 객체를 촬영할 수 있다. 로봇 청소 장치(1000)는 청소 공간을 주행하면서, 청소 공간 내의 복수의 위치에서 청소 공간 내의 특정 객체를 복수 회 촬영할 수 있다. 로봇 청소 장치(1000)의 주변을 향하여 적어도 하나의 카메라가 로봇 청소 장치(1000) 상에 배치될 수 있다.
로봇 청소 장치(1000)는 청소 공간을 주행하는 도중에, 카메라를 이용하여 로봇 청소 장치(1000)의 주변에 객체가 있는지를 모니터링할 수 있다. 또한, 로봇 청소 장치(1000) 주변에 객체가 발견되는 경우에, 로봇 청소 장치(1000)는 카메라를 통해 객체를 촬영할 수 있다. 로봇 청소 장치(1000)는 카메라를 통해 객체의 전체가 인식되는 경우에, 객체를 촬영할 수 있다.
로봇 청소 장치(1000)는 청소 공간을 주행하는 도중에, 적어도 하나의 센서를 이용하여 로봇 청소 장치(1000)의 주변에 객체가 있는지를 모니터링할 수 있다. 센서는, 예를 들어, 적외선 센서, 초음파 센서 및 라이더 센서를 포함할 수 있으나, 이에 제한되지 않는다. 로봇 청소 장치(1000)는 적어도 하나의 센서로부터 센싱 신호를 방출함으로써, 로봇 청소 장치(1000)의 주변의 객체를 감지할 수 있다. 또한, 로봇 청소 장치(1000)의 주변의 객체가 감지되면, 로봇 청소 장치(1000)는 카메라를 통해 객체를 촬영할 수 있다. 로봇 청소 장치(1000)는 감지된 객체의 전체가 촬영되도록 카메라를 제어할 수 있다.
동작 S310에서 로봇 청소 장치(1000)는 로봇 청소 장치(1000)의 방위를 식별할 수 있다. 로봇 청소 장치(1000)는, 객체를 촬영한 때의 로봇 청소 장치(1000)의 방위를 식별할 수 있다. 로봇 청소 장치(1000)는 로봇 청소 장치(1000)의 방위를 식별하기 위하여, 방위 센서를 이용할 수 있으며, 로봇 청소 장치(1000)의 방위 값은 촬영된 객체 이미지와 매칭되어 저장될 수 있다.
동작 S320에서 로봇 청소 장치(1000)는 로봇 청소 장치(1000)의 위치를 식별할 수 있다. 로봇 청소 장치(1000)는, 객체를 촬영한 때의 로봇 청소 장치(1000)의 위치를 식별할 수 있다. 로봇 청소 장치(1000)의 위치는, 청소 공간 내의 로봇 청소 장치(1000)의 위치일 수 있다. 또한, 로봇 청소 장치(1000)의 위치는, 객체에 대한 로봇 청소 장치(1000)의 상대적인 위치일 수 있다.
동작 S330에서 로봇 청소 장치(1000)는 청소 공간 내의 객체의 종류 및 위치를 결정할 수 있다. 로봇 청소 장치(1000)는 촬영된 객체 이미지, 로봇 청소 장치(1000)의 방위 값, 및 로봇 청소 장치(1000)의 위치 값을 이용하여, 청소 공간 내의 객체의 종류 및 위치를 결정할 수 있다. 이에 따라, 로봇 청소 장치(1000)는 청소 공간 내의 객체의 종류 및 위치를 포함하는 객체 정보를 생성할 수 있다. 로봇 청소 장치(1000)가 청소 공간 내의 객체에 관한 객체 정보를 생성하는 세부적인 방법에 대하여는 후술하기로 한다.
도 4는 일부 실시예에 따른 로봇 청소 장치가 기본 지도 데이터를 생성하는 방법의 흐름도이다.
동작 S400에서 로봇 청소 장치(1000)는 기본 지도 데이터를 생성하기 위한 참조 지도를 획득할 수 있다. 참조 지도는 소정의 청소 공간의 구조를 나타내는 평면도일 수 있다. 로봇 청소 장치(1000)는 소정의 참조 지도들을 저장할 수 있으며, 참조 지도들 중에서 청소 공간과 동일 또는 유사한 구조의 참조 지도를 기본 지도 데이터를 생성하는데 이용할 수 있다. 이 경우, 로봇 청소 장치(1000)는 참조 지도를 결정하기 위한 GUI를 디스플레이하고, GUI를 통한 사용자 입력에 기초하여, 소정의 참조 지도를 결정할 수 있다.
또는, 사용자는 로봇 청소 장치(1000)와 통신 연결된 외부 디바이스(2000)를 이용하여, 로봇 청소 장치(1000)가 이용할 참조 지도를 선택할 수 있다. 이 경우, 외부 디바이스(2000)는 로봇 청소 장치(1000)가 이용할 참조 지도를 결정하기 위한 GUI를 디스플레이할 수 있다. 외부 디바이스(2000)는 GUI를 통한 사용자 입력에 기초하여, 소정의 참조 지도를 선택할 수 있다. 또한, 선택된 참조 지도는 외부 디바이스(2000) 또는 서버로부터 로봇 청소 장치(1000)에게 제공될 수 있다.
동작 S410에서 로봇 청소 장치(1000)는 청소 대상 영역 내의 객체를 센싱할 수 있다. 로봇 청소 장치(1000)는 청소 공간을 주행하면서, 청소 공간에서 내의 객체들을 감지함으로써, 로봇 청소 장치(1000)가 주행할 수 있는 영역을 식별할 수 있다. 로봇 청소 장치(1000)는, 예를 들어, 추락 방지 센서, 적외선 센서, 초음파 센서, 라이다 센서 및 장애물 센서를 이용하여, 청소 대상 영역 내의 객체를 센싱할 수 있다. 또한, 로봇 청소 장치(1000)는, 예를 들어, 청소 공간 내의 벽, 가구, 및 가전 기기 등을 센싱할 수 있다.
동작 S420에서 로봇 청소 장치(1000)는 기본 지도 데이터를 생성할 수 있다. 로봇 청소 장치(1000)는 참조 지도 및 센싱된 데이터를 이용하여 기본 지도 데이터를 생성할 수 있다. 로봇 청소 장치(1000)는 청소 공간에서 로봇 청소 장치(1000)가 주행할 수 있는 영역을 식별함으로써 청소 공간의 기본 지도 데이터를 생성할 수 있다. 기본 지도 데이터는 청소 공간에서 로봇 청소 장치(1000)가 주행할 수 있는 영역을 나타내는 지도를 포함할 수 있으나, 청소 공간 내의 객체를 식별하기 위한 정보는 포함하지 않을 수 있다.
로봇 청소 장치(1000)는 기 설정된 조건을 만족할 때까지 기본 지도 데이터를 생성하기 위한 동작들을 반복할 수 있다.
도 5는 일부 실시예에 따른 로봇 청소 장치가 참조 지도 데이터를 획득하는 방법의 흐름도이다.
동작 S500에서, 로봇 청소 장치(1000)는 사용자의 주소를 획득할 수 있다. 로봇 청소 장치(1000)는 로봇 청소 장치(1000)의 디스플레이에 사용자의 주소를 입력하기 위한 GUI를 디스플레이할 수 있다. 또한, 로봇 청소 장치(1000)는 디스플레이된 GUI를 통한 사용자 입력에 기초하여, 사용자의 주소를 획득할 수 있다.
동작 S510에서 로봇 청소 장치(1000)는 사용자의 주소에 대응되는 참조 지도 데이터를 획득할 수 있다. 예를 들어, 로봇 청소 장치(1000)는 사용자의 주소에 대응되는 아파트의 평면도를 획득할 수 있다. 로봇 청소 장치(1000)는 사용자의 주소에 대응되는 참조 지도 데이터를 메모리로부터 추출하거나 서버로부터 수신할 수 있다.
상기에서는 로봇 청소 장치(1000)가 사용자의 주소를 입력하기 위한 GUI를 디스플레이하는 것으로 설명하였지만, 이에 제한되지 않는다. 로봇 청소 장치(1000)와 통신 연결되어 로봇 청소 장치(1000)를 제어하는 외부 디바이스(2000)가, 사용자의 주소를 입력하기 위한 GUI를 디스플레이할 수도 있다. 이 경우, 외부 디바이스(2000)는 디스플레이된 GUI를 통한 사용자 입력에 기초하여, 사용자의 주소를 획득할 수 있다. 또한, 외부 디바이스(2000)는 사용자의 주소에 대응되는 참조 지도를 로봇 청소 장치(1000)에게 제공할 수 있다. 외부 디바이스(2000)는 사용자의 주소에 대응되는 참조 지도를 로봇 청소 장치(1000)에게 직접 전송하거나, 참조 지도를 다운로드하기 위한 링크 정보를 로봇 청소 장치(1000)에게 전송할 수 있다. 또는, 외부 디바이스(2000)는, 서버(3000)가 참조 지도를 로봇 청소 장치(1000)에게 제공하도록 서버(3000)에게 요청할 수 있다.
동작 S520에서 로봇 청소 장치(1000)는 참조 지도의 추천 리스트를 디스플레이할 수 있으며, 동작 S530에서 로봇 청소 장치(1000)는 참조 지도의 추천 리스트에서 선택된 참조 지도 데이터를 획득할 수 있다. 로봇 청소 장치(1000)는 참조 지도의 추천 리스트 내의 참조 지도들 중에서 하나를 선택하는 사용자 입력을 수신할 수 있다.
상기에서는, 로봇 청소 장치(1000)가 참조 지도의 추천 리스트를 디스플레이하는 것으로 설명하였지만, 이에 제한되지 않는다. 로봇 청소 장치(1000)와 통신 연결되어 로봇 청소 장치(1000)를 제어하는 외부 디바이스(2000)가, 참조 지도의 추천 리스트를 디스플레이할 수도 있다. 이 경우, 외부 디바이스(2000)는 디스플레이된 참조 리스트에서 특정 참조 지도를 선택하는 사용자 입력에 기초하여, 참조 지도를 획득할 수 있다. 또한, 외부 디바이스(2000)는 선택된 참조 지도를 로봇 청소 장치(1000)에게 제공할 수 있다. 외부 디바이스(2000)는 선택된 참조 지도를 로봇 청소 장치(1000)에게 직접 전송하거나, 참조 지도를 다운로드하기 위한 링크 정보를 로봇 청소 장치(1000)에게 전송할 수 있다. 또는, 외부 디바이스(2000)는, 서버(3000)가 참조 지도를 로봇 청소 장치(1000)에게 제공하도록 서버(3000)에게 요청할 수 있다.
도 6은 일부 실시예에 따른 로봇 청소 장치가 삼각 측량 기법을 이용하여 가구의 위치를 결정하는 예시를 나타내는 도면이다.
도 6을 참조하면, 로봇 청소 장치(1000)는 촬영된 객체 이미지를 제1 학습 모델(60)에 입력함으로써, 객체 식별 데이터를 획득할 수 있다. 객체 식별 데이터는, 객체 이미지 상에서의 객체의 위치, 객체의 종류를 식별하기 위한 데이터일 수 있다. 객체 식별 데이터는, 예를 들어, 객체의 식별 값, 사진 내에서 객체가 표시된 부분을 나타내는 좌표 값, 객체가 촬영된 시각에 대한 정보를 포함할 수 있다.
제1 학습 모델(60)은, 촬영된 객체 이미지로부터 객체를 분석하기 위한 학습 모델일 수 있다. 제1 학습 모델(60)은 객체 이미지 내의 객체를 식별하기 위하여 로봇 청소 장치(1000)의 제조사에 의해 학습된 모델일 수 있으며, 로봇 청소 장치(1000) 내에 포함될 수 있다. 제1 학습 모델(60)은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 제1 학습 모델(60)로서 사용될 수 있으나, 이에 한정되지 않는다. 또한, 로봇 청소 장치(1000)는 객체 이미지와 함께 객체의 촬영 시각을 제1 학습 모델(60)에 입력할 수 있다.
로봇 청소 장치(1000)는 제1 학습 모델(60)로부터 출력된 객체 식별 데이터에 기초하여, 삼각 측량 기법을 이용하여 지도 내의 객체의 위치를 결정할 수 있다. 로봇 청소 장치(1000)는 지도 내의 객체의 위치를 결정하기 위하여 객체 식별 데이터 및 로봇 청소 장치의 방위, 로봇 청소 장치(1000)의 위치를 이용할 수 있다. 로봇 청소 장치(1000)는 객체 식별 데이터로부터 로봇 청소 장치(1000)와 객체의 상대적인 위치를 산출함으로써 객체의 위치를 결정할 수 있다. 이 경우, 로봇 청소 장치(1000)는 특정 객체를 촬영한 복수의 객체 식별 데이터를 이용하여 특정 객체의 위치를 산출할 수 있다.
도 7은 일부 실시예에 따른 로봇 청소 장치에 의해 촬영된 객체 이미지의 예시를 나타내는 도면이다.
도 7을 참조하면, 로봇 청소 장치(1000)는 주행 중에 청소 공간 내의 객체(70)를 촬영할 수 있다. 로봇 청소 장치(1000)는 촬영된 객체 이미지 내의 객체(70)가 TV임을 식별할 수 있다. 로봇 청소 장치(1000)는 촬영된 객체 이미지 내에서 객체(70)가 표시된 영역을 식별함으로써 객체(70)의 테두리 박스(72)를 결정하고, 테두리 박스(72)를 나타내는 좌표 값들을 생성할 수 있다. 객체(70)의 테두리 박스(72)는, 예를 들어, 직사각형의 형태를 가질 수 있다.
또한, 로봇 청소 장치(1000)는 객체(70)를 촬영한 때의 로봇 청소 장치(1000)의 위치로부터 테두리 박스(72)의 아랫쪽 변의 중앙 부분을 연결하는 가상의 가이드 선(74)을 생성할 수 있다. 이 경우, 로봇 청소 장치(1000)는 객체 이미지를 기본 지도 상에 배열하고, 객체를 촬영한 때의 로봇 청소 장치(1000)의 위치 및 테두리 박스(72)를 이용하여 가상의 가이드 선(74)를 생성할 수 있다.
도 8은 일부 실시예에 따른 객체 이미지로부터 생성되는 객체 식별 데이터의 예시를 나타내는 도면이다.
도 8을 참조하면, 객체 이미지로부터 생성되는 객체 식별 데이터는 객체 식별 테이블의 형태로 생성될 수 있다. 또한, 객체 식별 테이블은, 객체의 종류, 객체의 테두리 박스를 나타내는 좌표 값들, 좌표 값들의 신뢰도, 및 객체의 촬영 시각에 대한 정보를 저장할 수 있다. 청소 공간 내의 객체는 여러 방향으로부터 촬영될 수 있으며, 객체 이미지 내의 객체로부터 생성되는 테두리 박스는 실제 객체의 위치와는 소정의 오차 값을 가질 수 있다. 이에 따라, 로봇 청소 장치(1000)는 테두리 박스의 신뢰도를 소정 기준에 따라 부여할 수 있다.
예를 들어, 테두리 박스가 객체 이미지의 중앙 부분에 가깝게 위치하는 경우에, 로봇 청소 장치(1000)는 테두리 박스의 신뢰도를 높게 부여할 수 있다. 또한, 예를 들어, 테두리 박스의 한 변이 기본 지도의 테두리와 평행에 가까운 경우에, 로봇 청소 장치(1000)는 테두리 박스의 신뢰도를 높게 부여할 수 있다.
또한, 로봇 청소 장치(1000)는 특정 객체를 여러 방향에서 촬영함으로써 복수의 객체 이미지를 생성할 수 있으며, 복수의 객체 이미지 각각에 대하여 도 8에서와 같은 객체 식별 테이블을 생성할 수 있다. 이에 따라, 청소 공간의 객체 별로 복수의 객체 식별 데이터가 생성될 수 있다.
도 9는 일부 실시예에 따른 로봇 청소 장치가 삼각 측량 기법을 활용하여 객체의 위치를 추정하는 예시를 나타내는 도면이다.
도 9를 참조하면, 로봇 청소 장치(1000)는 위치 ‘1’, 위치 ‘2’, 위치 ‘3’, 위치 ‘4’, 및 위치 ‘5’에서 객체 A를 촬영할 수 있으며, 객체 A를 촬영한 복수의 객체 이미지 각각으로부터 5개의 가이드선(A-1, A-2, A-3, A-4, A-5)을 생성할 수 있다. 또한, 로봇 청소 장치(1000)는 위치 ‘3’, 위치 ‘4’, 위치 ‘5’, 및 위치 ‘6’에서 객체 B를 촬영할 수 있으며, 객체 B를 촬영한 복수의 객체 이미지 각각으로부터 4개의 가이드선(B-3, B-4, B-5, B-6)을 생성할 수 있다.
로봇 청소 장치(1000)는 9개의 가이드선(A-1, A-2, A-3, A-4, A-5, B-3, B-4, B-5, B-6)이 서로 교차하는 교차점들(90, 92, 94)을 식별할 수 있다. 또한, 로봇 청소 장치(1000)는 교차점들(90), 교차점들(92), 교차점들(94)를 구별할 수 있다. 로봇 청소 장치(1000)는 교차점들(90)에 기초하여 객체 A의 위치를 결정하고, 교차점들(92)에 기초하여 객체 B의 위치를 결정할 수 있다. 로봇 청소 장치(1000)는 교차점들(94)은 교차점들(90) 및 교차점들(92)보다 객체 A 또는 객체 B와의 거리 오차가 큰 점들이므로 무시할 수 있다.
도 10 및 도 11은 일부 실시예에 따른 로봇 청소 장치가 적어도 하나의 학습 모델을 이용하여 객체의 위치를 결정하는 예시를 나타내는 도면이다.
도 10을 참조하면, 로봇 청소 장치(1000)는 촬영된 객체 이미지를 제1 학습 모델(60)에 입력함으로써, 객체 식별 데이터를 획득할 수 있다. 로봇 청소 장치(1000)는 객체 이미지와 함께 객체의 촬영 시각을 제1 학습 모델(60)에 입력할 수 있다.
또한, 로봇 청소 장치(1000)는 제1 학습 모델(60)로부터 출력된 객체 식별 데이터 및 기본 지도 데이터를 제2 학습 모델에 입력함으로써, 지도 내의 객체의 위치를 결정할 수 있다. 제2 학습 모델(100)은, 객체 식별 데이터를 이용하여 지도 내의 객체의 위치를 판단하기 위한 학습 모델일 수 있다. 제2 학습 모델(100)은 객체 이미지 내의 객체를 식별하기 위하여 로봇 청소 장치(1000)의 제조사에 의해 학습된 모델일 수 있으며, 로봇 청소 장치(1000) 내에 포함될 수 있다. 제2 학습 모델(100)은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 제2 학습 모델(100)로서 사용될 수 있으나, 이에 한정되지 않는다. 또한, 로봇 청소 장치(1000)는 객체 식별 데이터, 기본 지도 데이터와 함께 로봇 청소 장치(1000)의 센싱 값, 방위 값, 및 위치 값을 제2 학습 모델(100)에 입력할 수 있다. 제2 학습 모델(100)에 입력되는 로봇 청소 장치(1000)의 센싱 값, 방위 값, 및 위치 값은, 객체 이미지가 생성될 때 로봇 청소 장치(1000)에서 생성된 값들일 수 있다.
도 11을 참조하면, 로봇 청소 장치(1000)는 제3 학습 모델(110)을 이용하여 객체의 종류 및 지도 상의 객체의 위치를 결정할 수 있다. 이 경우, 로봇 청소 장치(1000)는 객체 이미지, 기본 지도 데이터와 함께 로봇 청소 장치(1000)의 센싱 값, 방위 값, 및 위치 값을 제2 학습 모델(100)에 입력할 수 있다. 제3 학습 모델(110)에 입력되는 로봇 청소 장치(1000)의 센싱 값, 방위 값, 및 위치 값은, 객체 이미지가 생성될 때 로봇 청소 장치(1000)에서 생성된 값들일 수 있다.
제3 학습 모델(110)은, 복수의 객체 이미지를 이용하여 지도 내의 객체의 위치를 판단하기 위한 학습 모델일 수 있다. 제3 학습 모델(110)은 객체 이미지 내의 객체를 식별하기 위하여 로봇 청소 장치(1000)의 제조사에 의해 학습된 모델일 수 있으며, 로봇 청소 장치(1000) 내에 포함될 수 있다. 제3 학습 모델(110)은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 제3 학습 모델(110)로서 사용될 수 있으나, 이에 한정되지 않는다.
이하에서는, 도 12 내지 도 15를 바탕으로, 일부 실시예에 따른 기본 지도 데이터에 기초하여 지도 데이터가 생성되는 예시를 설명하기로 한다.
도 12는 일부 실시예에 따른 기본 지도 데이터의 예시를 나타내는 도면이다.
도 12를 참조하면, 로봇 청소 장치(1000)는 청소 공간에서 로봇 청소 장치(1000)가 주행할 수 있는 영역을 식별함으로써 청소 공간의 기본 지도 데이터를 생성할 수 있다. 기본 지도 데이터는 청소 공간에서 로봇 청소 장치(1000)가 주행할 수 있는 영역을 나타내는 지도를 포함할 수 있으나, 청소 공간 내의 객체를 식별하기 위한 정보는 포함하지 않을 수 있다. 로봇 청소 장치(1000)는 기 설정된 조건을 만족할 때까지 기본 지도 데이터를 생성하기 위한 동작들을 반복할 수 있다.
도 13은 일부 실시예에 따른 청소 공간의 지도 데이터에서 복수의 영역이 구분되는 예시를 나타내는 도면이다.
도 13을 참조하면, 로봇 청소 장치(1000)는 도 12의 기본 지도 데이터를 수정함으로써 지도 데이터를 생성할 수 있다. 로봇 청소 장치(1000)는 기본 지도 데이터 내의 청소 공간의 외벽을 수정하고, 청소 공간 내의 가구를 표시할 수 있다. 또한, 로봇 청소 장치(1000)는 표시된 가구의 식별 값을 표시할 수 있다. 또한, 로봇 청소 장치(1000)는 지도 데이터 내의 외벽의 형태, 지도 데이터 내의 가구의 종류 및 식별 값, 가구의 위치 등을 고려하여, 지도 내의 청소 공간을 복수의 영역으로 구분할 수 있다.
도 14 및 도 15는 일부 실시예에 따른 로봇 청소 장치(1000)가 구분된 영역의 식별 값을 결정하는 예시를 나타내는 도면이다.
도 14를 참조하면, 로봇 청소 장치(1000)는 구분된 영역 내의 가구의 종류를 고려하여, 구분된 영역의 방 이름을 추정할 수 있다.
로봇 청소 장치(1000)는 구분된 영역에서 소정의 객체가 식별될 경우, 식별된 객체에 대응되는 방 이름에 소정의 점수를 부여함으로써, 구분된 방 이름의 식별 값을 추정할 수 있다. 또한, 로봇 청소 장치(1000)는 구분된 영역에서 소정의 객체들의 조합이 식별될 경우, 객체들의 조합에 대응되는 방 이름에 소정의 점수를 부여함으로써, 구분된 방 이름의 식별 값으로 결정할 수 있다.
예를 들어, 특정 방에서 침대 및 화장대가 식별되면, 로봇 청소 장치(1000)는 안방에 대하여 50점을 부여하고, 특정 방에서 화장대 및 옷장이 식별되면 로봇 청소 장치(1000)는 옷방에 50점을 부여할 수 있다. 또한, 예를 들어, 특정 방에서 침대, 화장대 및 옷장이 식별되면, 로봇 청소 장치(1000)는 안방에 30점을 부여하고 옷방에 30점을 부여할 수 있다. 또한, 특정 방에서 이불 및 컴퓨터가 식별되면, 로봇 청소 장치(1000)는 침실에 40점을 부여하고 공부방에 10점을 차감할 수 있다.
예를 들어, 제1 구분 영역(140) 내에서 거실, 소파 및 책장이 식별됨에 따라, 로봇 청소 장치(1000)는 제1 구분 영역(140)의 식별 값으로서 ‘거실’에 100점을 부여할 수 있다. 또한, 예를 들어, 제2 구분 영역(142) 내에서 옷장, 화장대 및 침대가 식별됨에 따라, 로봇 청소 장치(1000)는 제2 구분 영역(142)의 식별 값으로서, ‘안방’에 80점을 부여하고, ‘옷방’에 20점을 부여할 수 있다. 또한, 예를 들어, 제3 구분 영역(144) 내에서 책상, 컴퓨터, 책장 및 침대가 식별됨에 따라, 로봇 청소 장치(1000)는 제3 구분 영역(142)의 식별 값으로서, ‘공부방’에 40점을 부여하고, ‘침실’에 40점을 부여할 수 있다.
로봇 청소 장치(1000)는 제1 구분 영역(140)에 대하여 높은 점수를 부여 받은 ‘거실’을 제1 구분 영역(140)의 식별 값으로 결정할 수 있다. 또한, 로봇 청소 장치(1000)는 제1 구분 영역(140) 상에 ‘거실’을 표시할 수 있다.
로봇 청소 장치(1000)는 ‘안방’ 및 ‘옷방’을 제2 구분 영역(142) 상에 함께 표시함으로써, 제2 구분 영역(142)의 식별 값으로서 ‘안방’ 및 ‘옷방’을 사용자에게 추천할 수 있다. 또한, 로봇 청소 장치(1000)는 상대적으로 점수가 높은 ‘안방’을 ‘옷방’보다 강조하여 표시할 수 있다. 또한, 로봇 청소 장치(1000)는 사용자의 선택 입력에 기초하여, ‘안방’ 및 ‘옷방’ 중 하나를 제2 구분 영역(142)의 방이름으로 결정할 수 있다.
로봇 청소 장치(1000)는 ‘공부방’ 및 ‘침실’을 제3 구분 영역(144) 상에 함께 표시함으로써, 제3 구분 영역(144)의 식별 값으로서 ‘공부방’ 및 ‘침실’을 사용자에게 추천할 수 있다. 또한, 로봇 청소 장치(1000)는 ‘공부방’ 및 ‘침실’의 점수가 동일하므로, ‘공부방’ 및 ‘침실’을 대응하게 표시할 수 있다. 또한, 로봇 청소 장치(1000)는 사용자의 선택 입력에 기초하여, ‘공부방’ 및 ‘침실’ 중 하나를 제3 구분 영역(144)의 방이름으로 결정할 수 있다. 한편, 로봇 청소 장치(1000)는 지도를 표시하면서 방이름을 추천하고, 방이름을 편집할 수 있는 GUI를 사용자에게 추가로 제공할 수 있다.
도 15를 참조하면, 로봇 청소 장치(1000)는 지도 상에, 도 14에서 결정된 제1 구분 영역(140)의 방 이름, 제2 구분 영역(142)의 방 이름, 및 제3 구분 영역(144)의 방 이름을 표시할 수 있다.
한편, 도 12 내지 도 15에서는 로봇 청소 장치(1000)가 지도 내의 영역을 구분하고, 구분된 영역의 방이름을 결정하는 것으로 설명하였지만, 이에 제한되지 않는다. 도 12 내지 도 15의 지도는 로봇 청소 장치(1000)와 통신 연결되어 로봇 청소 장치(1000)를 제어하는 외부 디바이스(2000)의 화면 상에 표시되고, 외부 디바이스(2000)가 지도 내의 영역을 구분하고, 구분된 영역의 방이름을 결정할 수도 있다.
도 16 및 도 17은 일부 실시예에 따른 참조 지도 데이터를 획득하기 위한 GUI의 예시를 나타내는 도면이다.
도 16을 참조하면, 참조 지도를 획득하기 위하여 사용자의 주소를 입력하기 위한 GUI가 제공될 수 있다. 사용자의 주소를 입력하기 위한 GUI는 로봇 청소 장치(1000)의 디스플레이 또는 외부 디바이스(2000)의 디스플레이 상에 표시될 수 있다. 도 16의 GUI를 통해 사용자 주소가 입력되면, 입력된 사용자 주소에 대응되는 참조 지도가 로봇 청소 장치(1000)에게 제공될 수 있다.
도 17을 참조하면, 참조 지도를 선택하기 위한 GUI가 제공될 수 있다. 참조 지도를 선택하기 위한 GUI는 로봇 청소 장치(1000)의 디스플레이 또는 외부 디바이스(2000)의 디스플레이 상에 표시될 수 있다. 참조 지도를 선택하기 위한 GUI는 소정의 참조 지도들의 목록을 포함할 수 있다. 또한, 목록에 포함되는 참조 지도들은 도 16에서 입력된 사용자 주소에 의해 결정될 것일 수 있다. 또한, 도 17의 GUI를 통해 특정 참조 지도가 선택되면, 선택된 참조 지도가 로봇 청소 장치(1000)에게 제공될 수 있다.
도 18은 일부 실시예에 따른 지도 데이터가 확대됨에 따라 방의 이름 및 가구의 종류가 세부적으로 표시되는 예시를 나타내는 도면이다.
도 18을 참조하면, 지도 데이터가 확대됨에 따라, 지도 내의 구분 영역의 식별 값 및 구분 영역 내의 객체의 명칭이 순차적으로 추가되어 표시될 수 있다.
도 19는 일부 실시예에 따른 로봇 청소 장치가 음성 입력에 기초하여 청소를 수행하는 방법의 흐름도이다.
동작 S1900에서 로봇 청소 장치(1000)는 사용자의 음성 입력을 수신할 수 있다. 로봇 청소 장치(1000)는 로봇 청소 장치(1000) 내의 마이크를 통하여, 사용자의 음성 명령을 수신할 수 있다.
동작 S1910에서 로봇 청소 장치(1000)는 사용자를 식별할 수 있다. 로봇 청소 장치(1000)는 사용자의 음성 입력을 특성을 분석함으로써, 사용자를 추정할 수 있다. 로봇 청소 장치(1000)는 음성 입력의 음색 및 어조 등을 분석함으로써, 사용자의 성별 및 나이 등을 추정할 수 있다. 또한, 사용자의 음성이 로봇 청소 장치(1000)에 등록되어 있는 경우에는, 로봇 청소 장치(1000)는 사용자가 누구인지를 식별할 수 있다. 예를 들어, 로봇 청소 장치(1000)는 사용자의 음성 입력의 특성에 기초하여, 사용자가 딸인지 아빠인지를 식별할 수 있다.
동작 S1920에서 로봇 청소 장치(1000)는 지도 데이터 내의 구분 영역의 식별 값을 추출할 수 있다. 로봇 청소 장치(1000)는 지도 데이터로부터 지도 내의 구분 영역들의 방 이름을 추출할 수 있다.
동작 S1930에서 로봇 청소 장치(1000)는 식별된 사용자 및 구분 영역의 식별값을 참조하여, 사용자의 음성 입력을 해석할 수 있다. 로봇 청소 장치(1000)는 사용자가 누구인지, 사용자의 나이 및 성별 등을 고려하여, 사용자의 음성 입력을 해석할 수 있다.
동작 S1940에서 로봇 청소 장치(1000)는 해석된 음성 입력에 기초하여, 구분 영역들 중에서 하나를 선택할 수 있다. 로봇 청소 장치(1000)는 음성 입력으로부터 음성 입력 내에 포함된 방 이름 또는 객체 이름을 식별하고, 식별된 방 이름 또는 객체 이름에 기초하여, 구분 영역들 중 하나를 선택할 수 있다.
또한, 로봇 청소 장치(1000)는 음성 입력에서 청소 대상 영역이 불분명한 경우에, 음성을 발화한 사용자의 식별 정보를 이용하여 청소 대상 영역을 결정할 수 있다. 예를 들어, 로봇 청소 장치(1000)는 사용자의 음성 입력에 어떤 방을 청소해야 하는지에 대한 정보가 없는 경우에, 로봇 청소 장치(1000)는 사용자가 아빠임을 식별하고, 안방을 청소 대상 영역으로 선택할 수 있다.
또한, 예를 들어, 로봇 청소 장치(1000)는 사용자의 음성 입력에 어떤 객체 주변을 청소해야 하는지가 불분명한 경우에, 로봇 청소 장치(1000)는 사용자의 식별 정보에 기초하여, 청소 대상 영역으로 추정할 수 있다.
동작 S1950에서 로봇 청소 장치(1000)는 선택된 구분 영역 내의 소정 객체 주변에 대하여 청소를 수행할 수 있다.
도 20 및 도 21은 일부 실시예에 따른 로봇 청소 장치가 음성 입력에 기초하여 청소를 수행하는 예시를 나타내는 도면이다.
도 20을 참조하면, 로봇 청소 장치(1000)는 아빠가 ‘안방 침대 주변을 청소해 줘.’라는 음성 입력을 수신하고, 음성 입력을 해석할 수 있다. 로봇 청소 장치(1000)는 청소를 수행하라는 음성 입력이 수신됨에 따라, 메모리로부터 지도 데이터를 추출하고, 추출된 지도 데이터를 이용하여 청소 대상 영역을 결정할 수 있다. 로봇 청소 장치(1000)는 음성 입력 내에 포함된 ‘안방’ 및 ‘침대’에 대응되는 구분 영역 및 객체가 지도 데이터 내에 포함되어 있음을 확인할 수 있다. 또한, 로봇 청소 장치(1000)는 지도 내의 안방에서 침대 주변을 청소 대상 영역으로 결정하고, 결정된 청소 대상 영역을 청소할 수 있다.
도 21을 참조하면, 로봇 청소 장치(1000)는 딸이 ‘ 침대 청소해 줘.’라는 음성 입력을 수신하고, 음성 입력을 해석할 수 있다. 로봇 청소 장치(1000)는 청소를 수행하라는 음성 입력이 수신됨에 따라, 메모리로부터 지도 데이터를 추출하고, 추출된 지도 데이터를 이용하여 청소 대상 영역을 결정할 수 있다. 로봇 청소 장치(1000)는 음성 입력 내에 구분 영역의 식별 값이 포함되지 않았음을 식별하고, 청소를 해야 할 구분 영역을 추정할 수 있다. 로봇 청소 장치(1000)는 음성 입력을 한 사용자가 딸임을 식별하고, 딸 아이가 이용하는 공부방을 청소를 해야 할 대상으로 결정할 수 있다. 또한, 로봇 청소 장치(1000)는 음성 입력 내에 포함된 ‘침대’에 대응되는 객체가 지도 데이터 내에 포함되어 있음을 확인할 수 있다. 이에 따라, 로봇 청소 장치(1000)는 지도 내의 공부방의 침대 주변을 청소 대상 영역으로 결정하고, 결정된 청소 대상 영역을 청소할 수 있다.
도 22는 일부 실시예에 따른 로봇 청소 장치(1000)의 블록도이다.
도 22를 참조하면, 일부 실시예에 따른 로봇 청소 장치(1000)는 사용자 입력부(1100), 통신부(1200), 메모리(1400), 카메라(1500), 주행부(1600), 출력부(1700), 센서부(1800) 및 프로세서(1300)를 포함할 수 있으며, 출력부(1700)는 스피커(1710) 및 디스플레이(1720)를 포함할 수 있다.
사용자 입력부(1100)는, 로봇 청소 장치(1000)의 동작을 제어하기 위한 사용자 입력을 수신할 수 있다. 예를 들어, 사용자 입력부(1100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
통신부(1200)는 외부 디바이스(2000) 및 서버(3000)와의 통신을 위한 하나 이상의 통신 모듈을 포함할 수 있다. 예를 들어, 통신부(1200)는, 근거리 통신부, 이동 통신부를 포함할 수 있다. 근거리 통신부(short-range wireless communication unit)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 이동 통신부는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
메모리(1400)는 로봇 청소 장치(1000)의 동작을 제어하기 위한 프로그램을 저장할 수 있다. 메모리(1400)는 로봇 청소 장치(1000)의 동작을 제어하기 위한 적어도 하나의 인스트럭션을 포함할 수 있다. 또한, 메모리(1400)는, 예를 들어, 기본 지도 데이터를 생성하기 위한 데이터, 생성된 기본 지도 데이터, 지도 내의 객체 및 구분 영역을 식별하기 위한 데이터 등을 저장할 수 있다. 메모리(1400)는, 지도 데이터를 생성하기 위한 학습 모델, 음성 입력을 해석하기 위한 학습 모델 등을 저장할 수 있다. 메모리(1400)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류될 수 있다.
메모리(1400)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
카메라(1500)는 로봇 청소 장치(1000)의 주변을 촬영할 수 있다. 카메라(1500)는 로봇 청소 장치(1000)가 청소를 하는 도중에, 로봇 청소 장치(1000)의 주변 또는 바닥을 실시간으로 촬영할 수 있다.
주행부(1600)는 로봇 청소 장치(1000)를 이동시키기 위한 적어도 하나의 구동 바퀴를 포함할 수 있다. 주행부(1600)는 구동 바퀴에 연결되어 구동 바퀴를 회전시키는 구동 모터를 포함할 수 있다. 구동 바퀴는 로봇 청소 장치의 본체의 좌, 우 측에 각각 구비된 좌륜 및 우륜을 포함할 수 있다. 좌륜과 우륜은 하나의 구동 모터에 의해 구동될 수도 있으나, 필요에 따라 좌륜을 구동시키는 좌륜 구동 모터와 우륜을 구동시키는 우륜 구동 모터가 각각 구비될 수도 있다. 이 경우, 좌륜과 우륜의 회전 속도에 차이를 두어 로봇 청소 장치(1000)의 주행 방향을 좌측 또는 우측으로 전환할 수 있다.
출력부(1700)는 오디오 신호 또는 비디오 신호를 출력할 수 있다. 출력부(1700)는 스피커(1710) 및 디스플레이(1720)를 포함할 수 있다. 스피커(1710)는 통신부(1200)로부터 수신되거나 메모리(1400)에 저장된 오디오 데이터를 출력할 수 있다. 스피커(1710)는 로봇 청소 장치(1000)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력할 수 있다.
디스플레이(1720)는 로봇 청소 장치(1000)에서 처리되는 정보를 표시 출력한다. 예를 들어, 디스플레이(1720)는, 로봇 청소 장치(1000)의 제어를 위한 사용자 인터페이스, 로봇 청소 장치(1000)의 상태 표시를 위한 사용자 인터페이스 등을 디스플레이할 수 있다.
한편, 디스플레이(1720)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이(1720)는 출력 장치 이외에 입력 장치로도 사용될 수 있다.
센서부(1800)는 로봇 청소 장치(1000)의 동작 및 상태와 관련된 데이터를 센싱하고, 청소 공간의 오염에 관한 데이터를 센싱하기 위한 적어도 하나의 센서를 포함할 수 있다. 센서부(1800)는, 예를 들어, 추락 방지 센서(1810), 적외선 센서(1820), 초음파 센서(1830), 라이다 센서(1840), 장애물 센서(1850), 방위 센서(미도시), 및 PSD(Position Sensitive Device) 센서를 포함할 수 있다.
또한, 센서부(1800)는 로봇 청소 장치(1000)의 동작을 감지하는 동작 감지 센서를 더 포함할 수 있다. 예를 들어, 센서부(1800)는 자이로 센서(Gyro Sensor), 휠 센서(Wheel Sensor), 가속도 센서(Acceleration Sensor) 등을 포함할 수 있다.
자이로 센서는, 로봇 청소 장치(1000)가 이동할 때 회전 방향을 감지하고 회전각을 검출할 수 있다. 휠 센서는, 좌륜과 우륜에 연결되어 바퀴의 회전수를 감지할 수 있다. 예를 들어, 휠 센서는 로터리 엔코더(Rotary Encoder)일 수 있으나 이에 제한되지 않는다.
프로세서(1300)는, 통상적으로 로봇 청소 장치(1000)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(1300)는, 메모리(1400)에 저장된 프로그램들을 실행함으로써, 사용자 입력부(1100), 통신부(1200), 메모리(1400), 카메라(1500), 주행부(1600), 출력부(1700), 및 센서부(1800)를 전반적으로 제어할 수 있다. 프로세서(1300)는 사용자 입력부(1100), 통신부(1200), 메모리(1400), 카메라(1500), 주행부(1600), 출력부(1700), 및 센서부(1800)를 제어함으로써, 도 1 내지 도 21에서의 로봇 청소 장치(1000)의 동작을 제어할 수 있다.
프로세서(1300)는 기본 지도 데이터를 생성할 수 있다. 로봇 청소 장치(1000)는 청소 공간을 주행하는 도중에, 프로세서(1300)는 청소 공간에서 로봇 청소 장치(1000)가 주행할 수 있는 영역을 감지함으로써 청소 공간의 기본 지도 데이터를 생성할 수 있다. 로봇 청소 장치(1000)는 청소 공간을 최초로 주행하는 경우에, 프로세서(1300)는 청소 공간의 기본 지도 데이터를 생성하기 위한 기능을 수행할 수 있다. 이 경우, 프로세서(1300)는 기 설정된 조건을 만족할 때까지 기본 지도 데이터를 생성하기 위하여 청소 공간을 주행할 수 있다.
또한, 프로세서(1300)는 기본 지도 데이터를 생성하기 위하여, 소정의 참조 지도를 이용할 수 있다. 예를 들어, 프로세서(1300)는 소정의 평면도의 샘플을 저장할 수 있으며, 저장된 평면도 샘플을 기본 지도 데이터를 생성하는데 이용할 수 있다.
프로세서(1300)는 청소 공간 내의 객체에 대한 객체 정보를 생성할 수 있다. 로봇 청소 장치(1000)가 청소 공간을 주행하는 도중에, 프로세서(1300)는 카메라를 이용하여 청소 공간 내의 객체를 복수 회 촬영할 수 있다. 또한, 프로세서(1300)는 객체를 촬영함으로써 생성되는 복수의 이미지를 이용하여, 객체 정보를 생성할 수 있다. 객체 정보는, 객체의 속성을 나타내는 정보로서, 예를 들어, 객체의 종류, 객체의 크기 및 객체의 위치를 포함할 수 있다. 또한, 객체는, 예를 들어, 청소 공간 내의 가구, 가전 기기 및 생활 도구 등의 물체를 포함할 수 있다.
프로세서(1300)는 객체를 촬영한 때의 로봇 청소 장치(1000)의 위치 및 방위를 센싱할 수 있으며, 객체를 촬영한 때의 시각을 측정할 수 있다. 또한, 프로세서(1300)는 로봇 청소 장치(1000)의 위치 및 방위, 객체를 촬영한 때의 시각에 관한 정보를 객체 정보를 생성하는데 이용할 수 있다. 프로세서(1300)는 객체 정보를 생성하기 위하여, 적어도 하나의 학습 모델을 이용할 수도 있다.
프로세서(1300)는 객체 정보에 기초하여, 기본 지도 내의 복수의 영역을 구분할 수 있다. 프로세서(1300)는 청소 공간 내의 객체의 종류 및 위치에 기초하여 기본 지도 데이터를 수정하고, 수정된 기본 지도 데이터 내의 복수의 영역들을 구분할 수 있다. 프로세서(1300)는 객체의 위치에 기초하여, 기본 지도 데이터에서 청소 공간의 외벽을 수정하고, 청소 공간 내에 객체의 위치를 표시할 수 있다. 또한, 프로세서(1300)는 청소 공간 내의 어떤 객체가 위치하는 지를 식별하고, 청소 공간 내의 객체의 종류에 기초하여 청소 공간을 복수의 영역으로 구분할 수 있다.
프로세서(1300)는 구분된 영역들의 식별 값을 결정할 수 있다. 프로세서(1300)는 구분된 영역 내의 객체의 종류에 기초하여, 구분된 영역의 식별 값을 결정할 수 있다. 프로세서(1300)는 구분된 영역에서 소정의 객체가 식별될 경우, 식별된 객체에 대응되는 식별 값을 구분된 영역의 식별 값으로 결정할 수 있다. 또한, 프로세서(1300)는 구분된 영역에서 소정의 객체들의 조합이 식별될 경우, 객체들의 조합에 대응되는 식별 값을 구분된 영역의 식별 값으로 결정할 수 있다. 또한, 프로세서(1300)는, 구분된 영역에서 식별된 객체의 종류에 따라, 구분된 영역이 어떤 영역일 확률이 높은지에 대한 데이터를 미리 저장할 수 있다.
한편, 프로세서(1300)는 카메라를 이용하여 객체를 촬영할 수 있다. 프로세서(1300)로봇 청소 장치(1000)가 청소 공간을 주행하는 도중에, 프로세서(1300)는 카메라를 이용하여 로봇 청소 장치(1000)의 주변에 객체가 있는지를 모니터링할 수 있다. 또한, 로봇 청소 장치(1000) 주변에 객체가 발견되는 경우에, 프로세서(1300)는 카메라를 통해 객체를 촬영할 수 있다. 프로세서(1300)는 카메라를 통해 객체의 전체가 인식되는 경우에, 객체를 촬영할 수 있다.
로봇 청소 장치(1000)가 청소 공간을 주행하는 도중에, 프로세서(1300)는 적어도 하나의 센서를 이용하여 로봇 청소 장치(1000)의 주변에 객체가 있는지를 모니터링할 수 있다.
프로세서(1300)는 로봇 청소 장치(1000)의 방위를 식별할 수 있다. 프로세서(1300)는, 객체를 촬영한 때의 로봇 청소 장치(1000)의 방위를 식별할 수 있다. 프로세서(1300)는 로봇 청소 장치(1000)의 방위를 식별하기 위하여, 방위 센서를 이용할 수 있으며, 로봇 청소 장치(1000)의 방위 값은 촬영된 객체 이미지와 매칭되어 저장될 수 있다.
프로세서(1300)는 로봇 청소 장치(1000)의 위치를 식별할 수 있다. 프로세서(1300)는, 객체를 촬영한 때의 로봇 청소 장치(1000)의 위치를 식별할 수 있다. 로봇 청소 장치(1000)의 위치는, 청소 공간 내의 로봇 청소 장치(1000)의 위치일 수 있다. 또한, 로봇 청소 장치(1000)의 위치는, 객체에 대한 로봇 청소 장치(1000)의 상대적인 위치일 수 있다.
프로세서(1300)는 청소 공간 내의 객체의 종류 및 위치를 결정할 수 있다. 프로세서(1300)는 촬영된 객체 이미지, 로봇 청소 장치(1000)의 방위 값, 및 로봇 청소 장치(1000)의 위치 값을 이용하여, 청소 공간 내의 객체의 종류 및 위치를 결정할 수 있다.
한편, 프로세서(1300) 는 기본 지도 데이터를 생성하기 위한 참조 지도를 획득할 수 있다. 참조 지도는 소정의 청소 공간의 구조를 나타내는 평면도일 수 있다. 프로세서(1300)는 사용자의 주소를 획득할 수 있다. 프로세서(1300)는 로봇 청소 장치(1000)의 디스플레이에 사용자의 주소를 입력하기 위한 GUI를 디스플레이할 수 있다. 또한, 프로세서(1300)는 디스플레이된 GUI를 통한 사용자 입력에 기초하여, 사용자의 주소를 획득할 수 있다.
프로세서(1300)는 사용자의 주소에 대응되는 참조 지도 데이터를 획득할 수 있다. 예를 들어, 프로세서(1300)는 사용자의 주소에 대응되는 아파트의 평면도를 획득할 수 있다. 프로세서(1300)는 사용자의 주소에 대응되는 참조 지도 데이터를 메모리로부터 추출하거나 서버로부터 수신할 수 있다. 프로세서(1300)는 참조 지도의 추천 리스트를 디스플레이할 수 있으며, 참조 지도의 추천 리스트에서 선택된 참조 지도 데이터를 획득할 수 있다.
한편, 프로세서(1300)는 사용자의 음성 입력을 수신할 수 있다. 프로세서(1300)는 로봇 청소 장치(1000) 내의 마이크를 통하여, 사용자의 음성 명령을 수신할 수 있다.
프로세서(1300)는 사용자를 식별할 수 있다. 프로세서(1300)는 사용자의 음성 입력을 특성을 분석함으로써, 사용자를 추정할 수 있다. 프로세서(1300)는 음성 입력의 음색 및 어조 등을 분석함으로써, 사용자의 성별 및 나이 등을 추정할 수 있다. 또한, 사용자의 음성이 로봇 청소 장치(1000)에 등록되어 있는 경우에는, 프로세서(1300)는 사용자가 누구인지를 식별할 수 있다.
프로세서(1300)는 지도 데이터 내의 구분 영역의 식별 값을 추출할 수 있다. 프로세서(1300)는 지도 데이터로부터 지도 내의 구분 영역들의 방 이름을 추출할 수 있다.
프로세서(1300)는 식별된 사용자 및 구분 영역의 식별값을 참조하여, 사용자의 음성 입력을 해석할 수 있다. 프로세서(1300)는 사용자가 누구인지, 사용자의 나이 및 성별 등을 고려하여, 사용자의 음성 입력을 해석할 수 있다.
프로세서(1300)는 해석된 음성 입력에 기초하여, 구분 영역들 중에서 하나를 선택할 수 있다. 프로세서(1300)는 음성 입력으로부터 음성 입력 내에 포함된 방 이름 또는 객체 이름을 식별하고, 식별된 방 이름 또는 객체 이름에 기초하여, 구분 영역들 중 하나를 선택할 수 있다. 프로세서(1300)는 선택된 구분 영역 내의 소정 객체 주변에 대하여 청소를 수행할 수 있다.
도 23은 일부 실시예에 따른 외부 디바이스(2000)의 블록도이다.
도 23에 도시된 바와 같이, 일부 실시예에 따른 외부 디바이스(2000)는, 입력부(2100), 출력부(2200), 프로세서(2300), 센싱부(2400), 통신부(2500), A/V 입력부(2600), 및 메모리(2700)를 포함할 수 있다.
사용자 입력부(2100)는, 사용자가 외부 디바이스(2000)를 제어하기 위한 데이터를 입력하는 수단일 수 있으며, 출력부(2200)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(2200)는 디스플레이부(2210), 음향 출력부(2220), 및 진동 모터(2230)를 포함할 수 있다.
디스플레이부(2210)는 외부 디바이스(2000)에서 처리되는 정보를 표시 출력한다. 예를 들어, 디스플레이부(2210)는, 로봇 청소 장치(1000)의 제어, 지도 데이터 생성 등을 위한 GUI를 디스플레이할 수 있다.
한편, 디스플레이부(2210)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(2210)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 외부 디바이스(2000)의 구현 형태에 따라 외부 디바이스(2000)는 디스플레이부(2210)를 2개 이상 포함할 수도 있다.
음향 출력부(2220)는 통신부(2500)로부터 수신되거나 메모리(2700)에 저장된 오디오 데이터를 출력한다.
프로세서(2300)는, 통상적으로 외부 디바이스(2000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(2300)는, 메모리(2700)에 저장된 프로그램들을 실행함으로써, 사용자 입력부(2100), 출력부(2200), 센싱부(2400), 통신부(2500), A/V 입력부(2600) 등을 전반적으로 제어할 수 있다. 프로세서(2300)는, 메모리(2700)에 저장된 프로그램들을 실행함으로써, 본 명세서에서의 외부 디바이스(2000)의 동작을 제어할 수 있다.
외부 디바이스(2000)의 프로세서(2300)는 로봇 청소 장치(1000)에 의해 촬영된 객체 이미지, 로봇 청소 장치(1000)로부터 센싱된 센싱 데이터를 이용하여, 청소 공간의 지도 데이터를 생성할 수 있다. 외부 디바이스(2000)의 프로세서(2300)는, 예를 들어, 기본 지도 데이터의 생성, 청소 공간 내의 객체 식별, 청소 공간의 식별 값을 결정 등을 위하여, 도 1 내지 도 22에서의 로봇 청소 장치(1000)의 동작 중 일부를 수행할 수 있다. 이 경우, 외부 디바이스(2000)는 로봇 청소 장치(1000)와 소정의 데이터를 송수신할 수 있다.
센싱부(2400)는, 외부 디바이스(2000)의 상태 또는 외부 디바이스(2000) 주변의 상태를 감지하고, 감지된 정보를 프로세서(2300)로 전달할 수 있다.
통신부(2500)는, 로봇 청소 장치(1000) 및 서버(3000) 와의 통신을 위한 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(2500)는, 근거리 통신부(2510), 이동 통신부(2520), 방송 수신부(2530)를 포함할 수 있다.
A/V(Audio/Video) 입력부(2600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(2610)와 마이크로폰(2620) 등이 포함될 수 있다.
마이크로폰(2620)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다.
메모리(2700)는, 프로세서(2300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 외부 디바이스(2000)로 입력되거나 외부 디바이스(2000)로부터 출력되는 데이터를 저장할 수도 있다.
메모리(2700)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(2700)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(2710), 터치 스크린 모듈(2720), 알림 모듈(2730) 등으로 분류될 수 있다.
도 24는 일부 실시예에 따른 서버(3000)의 블록도이다.
도 24를 참조하면, 일부 실시예에 따른 서버(3000)는, 통신부(3100), 저장부(3200) 및 프로세서(3300)를 포함할 수 있다.
통신부(3100)는 로봇 청소 장치(1000) 및 외부 디바이스(2000)와의 통신을 위한 하나 이상의 통신 모듈을 포함할 수 있다. 예를 들어, 통신부(3100)는, 근거리 통신부, 이동 통신부를 포함할 수 있다. 근거리 통신부(short-range wireless communication unit)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 이동 통신부는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
저장부(3200)는 서버(3000)의 동작을 제어하기 위한 프로그램을 저장할 수 있다. 저장부(3200)는 서버(3000)의 동작을 제어하기 위한 적어도 하나의 인스트럭션을 포함할 수 있다. 또한, 저장부(3200)는, 예를 들어, 지도 데이터를 생성하는데 필요한 데이터, 지도 데이터를 생성하기 위한 학습 모델, 음성 입력을 해석하기 위한 학습 모델 등을 저장할 수 있다. 저장부(3200)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류될 수 있다.
또한, 저장부(3200)는, 여러 사용자의 사용자 ID, 여러 로봇 청소 장치의 지도 데이터, 및 센싱 데이터 등을 통합하여 관리할 수 있도록, 복수의 DB를 포함할 수 있다.
프로세서(3300)는, 통상적으로 서버(3000)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(3300)는, 저장부(3200)에 저장된 프로그램들을 실행함으로써, 통신부(3100) 및 저장부(3200)를 제어할 수 있다. 프로세서(3300)는 통신부(3100) 및 저장부(3200)를 제어함으로써, 본 명세서에서 로봇 청소 장치(1000) 및/또는 외부 디바이스(2000)가 지도 데이터를 생성하는데 필요한 데이터를 로봇 청소 장치(1000) 및/또는 외부 디바이스(2000)에게 제공할 수 있다.
도 25는 일부 실시예에 따른 프로세서(1300)의 블록도이다.
도 25를 참조하면, 일부 실시예에 따른 프로세서(1300)는 데이터 학습부(1310) 및 데이터 인식부(1320)를 포함할 수 있다.
데이터 학습부(1310)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 기준을 학습할 수 있다. 데이터 학습부(1310)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위하여 어떤 데이터를 이용할 지, 데이터를 이용하여 객체 식별 데이터, 객체 정보 및 지도 데이터를 어떻게 생성할 지에 관한 기준을 학습할 수 있다. 데이터 학습부(1310)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 후술할 데이터 인식 모델에 적용함으로써, 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 기준을 학습할 수 있다.
데이터 인식부(1320)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 데이터 인식을 수행할 수 있다. 데이터 인식부(1320)는 학습된 데이터 인식 모델을 이용하여, 소정의 데이터로부터 객체 식별 데이터, 객체 정보 및 지도 데이터를 생성하기 위한 데이터 인식을 수행할 수 있다. 데이터 인식부(1320)는 학습에 의한 기 설정된 기준에 따라 소정의 데이터를 획득하고, 획득된 데이터를 입력 값으로 하여 데이터 인식 모델을 이용함으로써, 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 데이터 인식을 수행할 수 있다. 또한, 획득된 데이터를 입력 값으로 하여 데이터 인식 모델에 의해 출력된 결과 값은, 데이터 인식 모델을 갱신하는데 이용될 수 있다.
데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
이 경우, 데이터 학습부(1310) 및 데이터 인식부(1320)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 하나는 전자 장치에 포함되고, 나머지 하나는 서버에 포함될 수 있다. 또한, 데이터 학습부(1310) 및 데이터 인식부(1320)는 유선 또는 무선으로 통하여, 데이터 학습부(1310)가 구축한 모델 정보를 데이터 인식부(1320)로 제공할 수도 있고, 데이터 인식부(1320)로 입력된 데이터가 추가 학습 데이터로서 데이터 학습부(1310)로 제공될 수도 있다.
한편, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 26은 일부 실시예에 따른 데이터 학습부(1310)의 블록도이다.
도 26을 참조하면, 일부 실시예에 따른 데이터 학습부(1310)는 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5)를 포함할 수 있다.
데이터 획득부(1310-1)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성에 필요한 데이터를 획득할 수 있다. 데이터 획득부(1310-1)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 학습을 위하여 필요한 데이터를 획득할 수 있다.
전처리부(1310-2)는 학습을 위하여 획득된 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(1310-2)는 후술할 모델 학습부(1310-4)가 학습을 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기 설정된 포맷으로 가공할 수 있다.
학습 데이터 선택부(1310-3)는 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 모델 학습부(1310-4)에 제공될 수 있다. 학습 데이터 선택부(1310-3)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 기 설정된 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 또한, 학습 데이터 선택부(1310-3)는 후술할 모델 학습부(1310-4)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.
모델 학습부(1310-4)는 학습 데이터에 기초하여 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위하여 데이터를 어떻게 인식할 지에 관한 기준을 학습할 수 있다. 또한, 모델 학습부(1310-4)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위하여 어떤 학습 데이터를 이용해야 하는 지에 대한 기준을 학습할 수도 있다.
또한, 모델 학습부(1310-4)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성에 이용되는 데이터 인식 모델을 학습 데이터를 이용하여 학습시킬 수 있다. 이 경우, 데이터 인식 모델은 미리 구축된 모델일 수 있다. 예를 들어, 데이터 인식 모델은 기본 학습 데이터(예를 들어, 샘플 이미지 등)을 입력 받아 미리 구축된 모델일 수 있다. 데이터 인식 모델은, 제1 학습 모델, 제2 학습 모델 및 제3 학습 모델 중 적어도 하나를 포함할 수 있다.
데이터 인식 모델은, 인식 모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 데이터 인식 모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 데이터 인식 모델로서 사용될 수 있으나, 이에 한정되지 않는다.
다양한 실시예에 따르면, 모델 학습부(1310-4)는 미리 구축된 데이터 인식 모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 데이터 인식 모델을 학습할 데이터 인식 모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입 별로 기 분류되어 있을 수 있으며, 데이터 인식 모델은 데이터의 타입 별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 지역, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 장르, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기 분류되어 있을 수 있다.
또한, 모델 학습부(1310-4)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 데이터 인식 모델을 학습시킬 수 있다.
또한, 모델 학습부(1310-4)는, 예를 들어, 학습 데이터를 입력 값으로 하는 지도 학습(supervised learning) 을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또한, 모델 학습부(1310-4)는, 예를 들어, 별다른 지도없이 데이터 인식을 위해 필요한 데이터의 종류를 스스로 학습함으로써, 데이터 인식을 위한 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또한, 모델 학습부(1310-4)는, 예를 들어, 학습에 따른 데이터 인식의 결과가 올바른 지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다.
또한, 데이터 인식 모델이 학습되면, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 저장할 수 있다. 이 경우, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 데이터 인식부(1320)를 포함하는 전자 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 후술할 데이터 인식부(1320)를 포함하는 전자 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 전자 장치와 유선 또는 무선 네트워크로 연결되는 서버의 메모리에 저장할 수도 있다.
이 경우, 학습된 데이터 인식 모델이 저장되는 메모리는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 함께 저장할 수도 있다. 또한, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수도 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다.
모델 평가부(1310-5)는 데이터 인식 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 인식 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(1310-4)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 데이터 인식 모델을 평가하기 위한 기 설정된 데이터일 수 있다.
한편, 학습된 데이터 인식 모델이 복수 개가 존재하는 경우, 모델 평가부(1310-5)는 각각의 학습된 동영상 인식 모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 데이터 인식 모델로서 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(1310-5)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 데이터 인식 모델로서 결정할 수 있다.
한편, 데이터 학습부(1310) 내의 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 27은 일부 실시예에 따른 데이터 인식부(1320)의 블록도이다.
도 27을 참조하면, 일부 실시예에 따른 데이터 인식부(1320)는 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5)를 포함할 수 있다.
데이터 획득부(1320-1)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성에 필요한 데이터를 획득할 수 있으며, 전처리부(1320-2)는 획득된 데이터를 전처리할 수 있다. 전처리부(1320-2)는 후술할 인식 결과 제공부(1320-4)가 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기 설정된 포맷으로 가공할 수 있다.
인식 데이터 선택부(1320-3)는 전처리된 데이터 중에서 필요한 데이터를 선택할 수 있다. 선택된 데이터는 인식 결과 제공부(1320-4)에게 제공될 수 있다. 인식 데이터 선택부(1320-3)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 기 설정된 기준에 따라, 전처리된 데이터 중에서 일부 또는 전부를 선택할 수 있다. 또한, 인식 데이터 선택부(1320-3)는 후술할 모델 학습부(1310-4)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.
인식 결과 제공부(1320-4)는 선택된 데이터를 데이터 인식 모델에 적용하여 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 데이터 인식을 수행할 수 있다. 인식 결과 제공부(1320-4)는 데이터의 인식 목적에 따른 인식 결과를 제공할 수 있다. 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 입력 값으로 이용함으로써, 선택된 데이터를 데이터 인식 모델에 적용할 수 있다. 또한, 인식 결과는 데이터 인식 모델에 의해 결정될 수 있다.
모델 갱신부(1320-5)는 인식 결과 제공부(1320-4)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 데이터 인식 모델이 갱신되도록 할 수 있다. 예를 들어, 모델 갱신부(1320-5)는 인식 결과 제공부(1320-4)에 의해 제공되는 인식 결과를 모델 학습부(1310-4)에게 제공함으로써, 모델 학습부(1310-4)가 데이터 인식 모델을 갱신하도록 할 수 있다.
한편, 데이터 인식부(1320) 내의 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 28은 일부 실시예에 따른 로봇 청소 장치(1000) 및 서버(3000)가 서로 연동함으로써 데이터를 학습하고 인식하는 예시를 나타내는 도면이다.
도 28을 참조하면, 서버(3000)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 기준을 학습할 수 있으며, 로봇 청소 장치(1000)는 서버(3000)에 의한 학습 결과에 기초하여 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 수행할 수 있다.
이 경우, 서버(3000)의 모델 학습부(2340)는 도 25에 도시된 데이터 학습부(1310)의 기능을 수행할 수 있다. 서버(3000)의 모델 학습부(2340)는 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위하여 어떤 데이터를 이용할 지, 데이터를 이용하여 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위해 데이터를 어떻게 인식할 지에 관한 기준을 학습할 수 있다.
또한, 로봇 청소 장치(1000)의 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 서버(3000)에 의해 생성된 데이터 인식 모델에 적용함으로써, 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 위한 데이터 인식을 수행할 수 있다. 예를 들어, 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 서버(3000)에게 전송하고, 서버(3000)가 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 인식 모델에 적용할 것을 요청할 수 있다. 또한, 인식 결과 제공부(1320-4)는 서버(3000)에 의해 생성된 객체 식별 데이터, 객체 정보 및/또는 지도 데이터에 관한 정보를 서버(3000)로부터 수신할 수 있다.
또는, 로봇 청소 장치(1000)의 인식 결과 제공부(1320-4)는 서버(3000)에 의해 생성된 인식 모델을 서버(3000)로부터 수신하고, 수신된 인식 모델을 이용하여 객체 식별 데이터의 생성, 객체 정보의 생성 및 지도 데이터의 생성을 수행할 수 있다. 이 경우, 로봇 청소 장치(1000)의 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 서버(3000)로부터 수신된 데이터 인식 모델에 적용할 수 있다.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 지도 데이터를 생성하는 로봇 청소 장치에 있어서,
    통신 인터페이스;
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 하나 이상의 인스트럭션을 실행함으로써 상기 로봇 청소 장치를 제어하는 프로세서;
    를 포함하며,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 청소 공간에 관련된 기본 지도 데이터를 생성하고, 상기 청소 공간 내의 적어도 하나의 객체에 대한 객체 정보를 생성하고, 상기 객체 정보에 기초하여, 상기 기본 지도 데이터 내의 영역을 복수의 영역으로 구분하고, 상기 객체 정보에 기초하여, 상기 구분된 복수의 영역의 식별 값을 결정하며,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 로봇 청소 장치의 주행 중에 카메라를 이용하여 상기 객체를 촬영하고, 상기 객체를 촬영한 때의 상기 로봇 청소 장치의 방위를 나타내는 방위 정보를 생성하고, 상기 촬영된 객체 이미지 및 상기 방위 정보를 제1 학습 모델에 입력함으로써, 상기 객체의 종류 및 상기 객체의 상기 객체 이미지 상의 위치 값을 나타내는 객체 식별 데이터를 획득하는 것인, 로봇 청소 장치.
  2. 제1 항에 있어서,
    상기 객체 정보는, 상기 객체의 종류 및 위치에 관한 정보를 포함하는, 로봇 청소 장치.
  3. 삭제
  4. 제1 항에 있어서,
    상기 제1 학습 모델은, 인공 지능 알고리즘으로서, 기계학습, 신경망, 유전자, 딥러닝, 분류 알고리즘 중 적어도 하나를 이용하여 학습된 학습 모델인 것인, 로봇 청소 장치.
  5. 제1 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 객체를 청소 공간 내의 복수의 위치에서 촬영한 이미지에 기초하여, 상기 객체 식별 데이터를 복수 개 획득하며,
    상기 복수의 객체 식별 데이터에 기초하여, 소정의 삼각 측량 기법을 이용하여, 상기 기본 지도 데이터 내의 상기 객체의 위치를 결정하는, 로봇 청소 장치.
  6. 제1 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 객체를 청소 공간 내의 복수의 위치에서 촬영한 이미지에 기초하여, 상기 객체 식별 데이터를 복수 개 획득하며,
    상기 복수의 객체 식별 데이터를 제2 학습 모델에 입력함으로써, 상기 기본 지도 데이터 내의 상기 객체의 위치를 결정하는, 로봇 청소 장치.
  7. 제6 항에 있어서,
    상기 제2 학습 모델은, 인공 지능 알고리즘으로서, 기계학습, 신경망, 유전자, 딥러닝, 분류 알고리즘 중 적어도 하나를 이용하여 학습된 학습 모델인 것인, 로봇 청소 장치.
  8. 제1 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 구분된 복수의 영역 내에 위치한 객체의 종류 및 위치에 기초하여, 상기 구분된 복수의 영역의 식별 값을 추정하는, 로봇 청소 장치.
  9. 제8 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 추정된 복수의 식별 값의 목록을 디스플레이하고, 상기 디스플레이된 목록에서, 소정의 식별 값을 선택하는 사용자 입력에 기초하여, 상기 구분된 복수의 영역의 식별 값을 결정하는, 로봇 청소 장치.
  10. 제1 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 사용자의 음성 입력을 수신하고, 상기 수신된 음성 입력에 기초하여, 상기 사용자를 식별하고, 상기 사용자의 식별 값에 기초하여, 상기 수신된 음성을 해석하고, 상기 음성 해석에 기초하여 청소를 수행하는, 로봇 청소 장치.
  11. 제10 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 사용자 식별 값 및 상기 음성 입력에 기초하여, 상기 구분된 복수의 영역들 중 하나를 선택하며,
    상기 선택된 영역 내의 소정의 객체의 주변 영역에 대하여 청소를 수행하는, 로봇 청소 장치.
  12. 로봇 청소 장치가 지도 데이터를 생성하는 방법에 있어서,
    청소 공간에 관련된 기본 지도 데이터를 생성하는 동작;
    상기 청소 공간 내의 적어도 하나의 객체에 대한 객체 정보를 생성하는 동작;
    상기 객체 정보에 기초하여, 상기 기본 지도 데이터 내의 영역을 복수의 영역으로 구분하는 동작; 및
    상기 객체 정보에 기초하여, 상기 구분된 복수의 영역의 식별 값을 결정하는 동작;
    을 포함하며,
    상기 방법은,
    상기 로봇 청소 장치의 주행 중에 카메라를 이용하여 상기 객체를 촬영하는 동작;
    상기 객체를 촬영한 때의 상기 로봇 청소 장치의 방위를 나타내는 방위 정보를 생성하는 동작; 및
    상기 촬영된 객체 이미지 및 상기 방위 정보를 제1 학습 모델에 입력함으로써, 상기 객체의 종류 및 상기 객체의 상기 객체 이미지 상의 위치 값을 나타내는 객체 식별 데이터를 획득하는 동작;
    을 더 포함하는 것인, 방법.
  13. 제12 항에 있어서,
    상기 객체 정보는, 상기 객체의 종류 및 위치에 관한 정보를 포함하는 것인, 방법.
  14. 삭제
  15. 제12 항에 있어서,
    상기 제1 학습 모델은, 인공 지능 알고리즘으로서, 기계학습, 신경망, 유전자, 딥러닝, 분류 알고리즘 중 적어도 하나를 이용하여 학습된 학습 모델인 것인, 방법.
  16. 제12 항에 있어서,
    상기 객체 식별 데이터를 획득하는 동작은, 상기 객체를 청소 공간 내의 복수의 위치에서 촬영한 이미지에 기초하여, 상기 객체 식별 데이터를 복수 개 획득하며,
    상기 객체 정보를 생성하는 동작은, 상기 복수의 객체 식별 데이터에 기초하여, 소정의 삼각 측량 기법을 이용하여, 상기 기본 지도 데이터 내의 상기 객체의 위치를 결정하는 것인, 방법.
  17. 제12 항에 있어서,
    객체 식별 데이터를 획득하는 동작은, 상기 객체를 청소 공간 내의 복수의 위치에서 촬영한 이미지에 기초하여, 상기 객체 식별 데이터를 복수 개 획득하며,
    상기 객체 정보를 생성하는 동작은, 상기 복수의 객체 식별 데이터를 제2 학습 모델에 입력함으로써, 상기 기본 지도 데이터 내의 상기 객체의 위치를 결정하는 동작;
    을 더 포함하는, 방법.
  18. 제17 항에 있어서,
    상기 제2 학습 모델은, 인공 지능 알고리즘으로서, 기계학습, 신경망, 유전자, 딥러닝, 분류 알고리즘 중 적어도 하나를 이용하여 학습된 학습 모델인 것인, 방법.
  19. 제12 항에 있어서,
    상기 구분된 복수의 영역의 식별 값을 결정하는 동작은,
    상기 구분된 복수의 영역 내에 위치한 객체의 종류 및 위치에 기초하여, 상기 구분된 복수의 영역의 식별 값을 추정하는 것인, 방법.
  20. 제 12 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020190001302A 2019-01-04 2019-01-04 청소 공간의 지도 데이터를 생성하는 장치 및 방법 KR102255273B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190001302A KR102255273B1 (ko) 2019-01-04 2019-01-04 청소 공간의 지도 데이터를 생성하는 장치 및 방법
PCT/KR2020/000095 WO2020141924A1 (en) 2019-01-04 2020-01-03 Apparatus and method of generating map data of cleaning space
US16/734,639 US11334084B2 (en) 2019-01-04 2020-01-06 Apparatus and method of generating map data of cleaning space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190001302A KR102255273B1 (ko) 2019-01-04 2019-01-04 청소 공간의 지도 데이터를 생성하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200085142A KR20200085142A (ko) 2020-07-14
KR102255273B1 true KR102255273B1 (ko) 2021-05-24

Family

ID=71405018

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190001302A KR102255273B1 (ko) 2019-01-04 2019-01-04 청소 공간의 지도 데이터를 생성하는 장치 및 방법

Country Status (3)

Country Link
US (1) US11334084B2 (ko)
KR (1) KR102255273B1 (ko)
WO (1) WO2020141924A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230045440A (ko) 2021-09-28 2023-04-04 엘지전자 주식회사 다른 청소기들과 연동하여 동작하는 청소기 및 방법과 이를 위한 시스템

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11113993B2 (en) * 2015-08-17 2021-09-07 Medline Industries, Inc. Cleaning system, cleaning devices, instruction insert, and methods therefor
USD924324S1 (en) * 2015-08-17 2021-07-06 Medline Industries, Inc. Teaching aid
USD924326S1 (en) * 1976-11-08 2021-07-06 Medline Industries, Inc. Teaching aid
USD924325S1 (en) * 2015-08-17 2021-07-06 Medline Industries, Inc. Teaching aid
KR102298582B1 (ko) * 2019-07-12 2021-09-08 엘지전자 주식회사 센서 데이터를 이용하여 청소 동선을 결정하는 인공 지능 로봇 및 그 방법
KR20190099165A (ko) * 2019-08-06 2019-08-26 엘지전자 주식회사 가상 홈 서비스 장치 및 방법
KR102251076B1 (ko) * 2020-08-26 2021-05-13 아주대학교산학협력단 실내 이미지를 사용하여 설계도면을 추정하는 방법
US11885638B2 (en) 2020-12-28 2024-01-30 Bear Robotics, Inc. Method, system, and non-transitory computer-readable recording medium for generating a map for a robot
CN112634402A (zh) * 2020-12-30 2021-04-09 苏州三六零机器人科技有限公司 扫地机区域设置方法、装置、设备及计算机存储介质
WO2022186598A1 (ko) * 2021-03-05 2022-09-09 삼성전자주식회사 로봇 청소기 및 이의 제어 방법
CN113143114B (zh) * 2021-03-10 2023-03-31 深圳市杉川机器人有限公司 扫地机及其清扫区域的命名方法,计算机可读存储介质
CN115413959A (zh) * 2021-05-12 2022-12-02 美智纵横科技有限责任公司 基于清洁机器人的运行方法、装置、电子设备及介质
CN113485335A (zh) * 2021-07-02 2021-10-08 追觅创新科技(苏州)有限公司 语音指令的执行方法及装置、存储介质及电子装置
US20230021486A1 (en) * 2021-07-15 2023-01-26 University Of Tennessee Research Foundation Systems and methods for environment-adaptive robotic disinfection
CN113467482A (zh) * 2021-08-12 2021-10-01 深圳市伽利略机器人有限公司 一种自清洁的清洁机器人清扫路径规划方法及清洁机器人
CN113749564A (zh) * 2021-09-01 2021-12-07 深圳市云鼠科技开发有限公司 一种扫地机器人的地图数据绘制方法、模块、设备及介质
CN113842090A (zh) * 2021-09-03 2021-12-28 珠海格力电器股份有限公司 清洁机器人的控制方法及其装置、计算机可读存储介质
CN114637698B (zh) * 2022-05-18 2022-09-02 深圳市倍思科技有限公司 机器人的地图内存分配方法、装置、机器人及存储介质
KR102490011B1 (ko) * 2022-07-19 2023-01-19 주식회사 라이드플럭스 로드 유저 예측 기반 자율주행 차량의 주행 계획 결정방법, 장치 및 컴퓨터프로그램
KR102626763B1 (ko) * 2023-01-13 2024-01-17 안형준 청소 파견 관리 시스템 및 이를 운영하는 서버
CN116091607B (zh) * 2023-04-07 2023-09-26 科大讯飞股份有限公司 辅助用户寻找物体的方法、装置、设备及可读存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4233723B2 (ja) * 2000-02-28 2009-03-04 本田技研工業株式会社 障害物検出装置、障害物検出方法、及び障害物検出プログラムを記録した記録媒体
EP1441632B1 (en) * 2001-09-26 2013-05-01 F. Robotics Acquisitions Ltd. Robotic vacuum cleaner
KR101538775B1 (ko) * 2008-09-12 2015-07-30 삼성전자 주식회사 전방 영상을 이용한 위치 인식 장치 및 방법
KR101708301B1 (ko) 2010-05-11 2017-02-20 엘지전자 주식회사 로봇 청소기 및 원격 제어 시스템
KR20120044768A (ko) 2010-10-28 2012-05-08 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
KR101984214B1 (ko) 2012-02-09 2019-05-30 삼성전자주식회사 로봇 청소기의 청소 작업을 제어하기 위한 장치 및 방법
EP3084540B1 (en) * 2013-12-19 2021-04-14 Aktiebolaget Electrolux Robotic cleaning device and operating method
KR102158695B1 (ko) 2014-02-12 2020-10-23 엘지전자 주식회사 로봇 청소기 및 이의 제어방법
KR101629649B1 (ko) * 2014-09-30 2016-06-13 엘지전자 주식회사 로봇 청소기 및 로봇 청소기의 제어방법
CN105719183A (zh) * 2014-12-03 2016-06-29 阿里巴巴集团控股有限公司 定向转账方法及其装置
US9538702B2 (en) * 2014-12-22 2017-01-10 Irobot Corporation Robotic mowing of separated lawn areas
US10175688B2 (en) 2016-01-20 2019-01-08 Yujin Robot Co., Ltd. Apparatus and system for remotely controlling a moving robot and method thereof
KR101844744B1 (ko) * 2016-01-20 2018-04-05 주식회사 유진로봇 이동로봇을 원격으로 제어하는 원격 제어 장치 및 시스템과 그의 수행방법
EP3471924A4 (en) 2016-06-15 2020-07-29 iRobot Corporation SYSTEMS AND METHODS OF CONTROL OF AN AUTONOMOUS MOBILE ROBOT
EP3957447A1 (en) * 2016-09-14 2022-02-23 iRobot Corporation Systems and methods for configurable operation of a robot based on area classification
KR102656581B1 (ko) * 2016-11-24 2024-04-12 삼성전자주식회사 이동 로봇, 그를 포함하는 시스템 및 이동 로봇의 제어 방법
KR20180082264A (ko) * 2017-01-10 2018-07-18 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR101943359B1 (ko) 2018-02-06 2019-01-29 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
EP3915048A4 (en) * 2019-06-03 2022-03-30 Samsung Electronics Co., Ltd. ELECTRONIC OBJECT RECOGNITION APPARATUS AND METHOD FOR OPERATING IT

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230045440A (ko) 2021-09-28 2023-04-04 엘지전자 주식회사 다른 청소기들과 연동하여 동작하는 청소기 및 방법과 이를 위한 시스템

Also Published As

Publication number Publication date
WO2020141924A1 (en) 2020-07-09
US11334084B2 (en) 2022-05-17
KR20200085142A (ko) 2020-07-14
US20200218274A1 (en) 2020-07-09

Similar Documents

Publication Publication Date Title
KR102255273B1 (ko) 청소 공간의 지도 데이터를 생성하는 장치 및 방법
US11457788B2 (en) Method and apparatus for executing cleaning operation
KR102491546B1 (ko) 객체를 인식하는 방법 및 장치
US11126257B2 (en) System and method for detecting human gaze and gesture in unconstrained environments
US11556844B2 (en) Artificial intelligence robot for determining cleaning route using sensor data and method for the same
US20210064792A1 (en) Artificial intelligence device for guiding furniture placement and method of operating the same
CN112135553B (zh) 用于执行清洁操作的方法和设备
KR102577785B1 (ko) 청소 로봇 및 그의 태스크 수행 방법
KR102623574B1 (ko) 전자 장치 및 그 동작 방법
KR102579904B1 (ko) 비전 검사 관리 방법 및 비전 검사 시스템
KR102286137B1 (ko) 공기 청정기의 배치 위치를 가이드하는 인공 지능 장치 및 그의 동작 방법
US11126140B2 (en) Electronic device, external device capable of being combined with the electronic device, and a display method thereof
US11330951B2 (en) Robot cleaner and method of operating the same
US11471016B2 (en) Method and apparatus for executing cleaning operation
KR102420567B1 (ko) 음성 인식 장치 및 방법
KR102474246B1 (ko) 복수 개의 전자 디바이스를 이용하여 신경망 모델을 처리하는 방법 및 시스템
US11931906B2 (en) Mobile robot device and method for providing service to user
KR20200131664A (ko) 차량의 주행을 보조하는 전자 장치 및 방법
CN112016398A (zh) 手持物体识别方法及装置
US11468270B2 (en) Electronic device and feedback information acquisition method therefor
KR102464906B1 (ko) 패션 상품을 추천하는 전자 장치, 서버 및 그 동작 방법
KR20230134109A (ko) 청소 로봇 및 그의 태스크 수행 방법
US20230161356A1 (en) Method of updating map in fusion slam and robot implementing same
KR20190129673A (ko) 청소 동작을 수행하는 청소 장치 및 방법
KR20190096752A (ko) 컨텐츠에 대한 텍스트 코멘트를 생성하는 방법 및 전자 장치

Legal Events

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