KR20220046210A - 이동 로봇 및 그 제어방법 - Google Patents

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

Info

Publication number
KR20220046210A
KR20220046210A KR1020200129362A KR20200129362A KR20220046210A KR 20220046210 A KR20220046210 A KR 20220046210A KR 1020200129362 A KR1020200129362 A KR 1020200129362A KR 20200129362 A KR20200129362 A KR 20200129362A KR 20220046210 A KR20220046210 A KR 20220046210A
Authority
KR
South Korea
Prior art keywords
information
work
learning
area
zone
Prior art date
Application number
KR1020200129362A
Other languages
English (en)
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 KR1020200129362A priority Critical patent/KR20220046210A/ko
Publication of KR20220046210A publication Critical patent/KR20220046210A/ko

Links

Images

Classifications

    • 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
    • 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/005Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators using batteries, e.g. as a back-up power source
    • 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
    • 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • 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

Abstract

본 명세서의 실시 예에 따른 이동 로봇은 외관을 형성하는 바디; 상기 바디를 이동 시키는 주행부; 및 작업 영역에 대한 맵(map) 정보를 획득하고, 상기 작업 맵 정보 및 상기 맵에 대한 작업 정보를 기반으로 학습을 통한 주행 경로를 결정하고, 상기 주행 경로로 상기 작업 영역에서 작업을 수행하도록 상기 주행부를 제어하는 제어부;를 포함하고, 상기 작업 정보는 특정 주행 경로에 대응하는 작업 시간 정보를 포함하고, 상기 제어부는 상기 작업 시간 정보를 기반으로 작업 시간이 줄어드는 것에 대응하여 보상을 주는 강화 학습을 통한 주행 경로를 결정하는 것을 특징으로 한다.

Description

이동 로봇 및 그 제어방법 {Mobile robot and control method thereof}
본 명세서의 실시 예는 이동 로봇 및 그 제어 방법에 관한 것이다. 보다 구체적으로 본 명세서의 실시 예는 작업을 수행하는 로봇이 강화 학습을 통해 작업 경로를 개선하고, 이에 따라 확정되는 작업 구역에 대한 정보를 사용자에게 제공하는 방법 및 이를 이용한 이동 로봇에 관한 것이다.
로봇 기술이 발전함에 따라 로봇은 다양한 분야에 이용되기 시작하였다. 이와 같은 로봇의 이용 분야가 다양해짐에 따라 기존의 산업 생산용 로봇, 우주 항공 분야의 로봇 및 의료용 로봇 이외에도 일반 사용자가 가정에서 사용하는 로봇의 사용도 증가하게 되었다. 이와 같은 로봇 사용의 증가는 센서 기술의 발전으로 로봇이 스스로 상황을 판단하여 사용자가 설정한 명령을 보다 효과적이고 정밀하게 수행하게 되었으며, AI 기술의 발전에 따라 로봇이 센서를 통해 획득한 정보를 적응적으로 판단하고, 이에 대응한 동작을 수행한 뒤 그 결과를 기반으로 추가적인 학습을 하여 차후의 동작 패턴을 수정함으로써 보다 사용자 만족도가 높아진 로봇의 동작을 제공하는 것이 가능해졌다.
이와 같은 로봇 중 청소기 로봇의 경우 작업 영역을 식별하고, 이를 기반으로 작업 영역에 대한 맵빌딩을 수행하고, 획득된 맵 정보를 기반으로 작업 방식을 결정할 수 있다. 이와 같은 작업 영역에서의 주행 방법에 따라 작업의 효율성과 작업 시간이 결정되는 바, 이와 같은 주행 방법을 결정하는 알고리즘이 이동 로봇에 사용될 수 있다. 또한 주변의 장애물을 인식하고 특정 공간 내에서 작업 가능한 영역을 구별해 낼 필요성이 있는 바, 이와 같은 상황을 인식하기 위한 센서도 이동 로봇에 장착되게 된다.
이와 같은 이동 로봇과 관련해서 아래와 같은 선행 문헌이 있다.
선행문헌: 대한민국 등록특허공보 10-1952414호
선행문헌은 자율주행을 수행하는 청소기 및 이 제어 방법에 관한 것으로 시야각에 따라 3차원 좌표 정보를 검출하고, 이에 따라 맵을 생성하며, 맴 내에서 주행 경로 상에 위치하는 물체의 형태를 검출하여 주행 경로를 변경하는 기술적 특징을 개시하고 있다.
그러나 선행문헌은 로봇이 맵을 생성하고, 맴 내에서 장애물을 인식하여 이에 대응한 경로 변경을 수행하는 기술적 특징에 대해서만 개시하고 있고, 생성된 맵 내에서 작업의 효율성을 높일 수 있는 경로를 학습하는 방법에 대한 개시가 없다. 이와 같이 이동 로봇이 작업을 수행할 때 작업의 효율을 높일 수 있는 경로를 획득하고 이에 대한 정보를 사용자에게 제공할 수 잇는 제어 방법 및 이를 이용한 이동 로봇이 요구된다.
본 명세서의 실시 예는 상술한 문제점을 해결하기 위하여 제안된 것으로 이동 로봇이 작업을 수행하기 위해 작업 영역에 대한 맵빌딩을 수행하고, 강화 학습을 통해 보다 효율성이 높은 작업 경로를 결정하며, 이에 따라 획득된 작업 영역에 대한 구역 정보를 사용자에게 제공하는 제어 방법 및 이를 이용한 이동 로봇을 제공하는 것을 목적으로 한다.
본 명세서의 다른 실시 예는 이동 로봇이 작업 영역 내에서 작업 시간을 줄일 수 있는 경로 정보를 획득하고, 이에 대한 정보를 사용자에게 제공할 수 있는 제어 방법 및 이를 이용한 이동 로봇을 제공하는 것을 목적으로 한다.
본 명세서의 다른 실시 예는 이동 로봇이 작업 가능 영역을 확인하고, 이에 대응하여 적응적인 작업 경로를 확인하고, 작업 가능 영역 내의 구역 정보를 사용자에게 제공할 수 있는 제어 방법 및 이를 이용한 이동 로봇을 제공하는 것을 목적으로 한다.
상술한 과제를 달성하기 위하여, 본 명세서의 실시 예에 따른 이동 로봇은 외관을 형성하는 바디; 상기 바디를 이동 시키는 주행부; 및 작업 영역에 대한 맵(map) 정보를 획득하고, 상기 작업 맵 정보 및 상기 맵에 대한 작업 정보를 기반으로 학습을 통한 주행 경로를 결정하고, 상기 주행 경로로 상기 작업 영역에서 작업을 수행하도록 상기 주행부를 제어하는 제어부;를 포함하고, 상기 작업 정보는 특정 주행 경로에 대응하는 작업 시간 정보를 포함하고, 상기 제어부는 상기 작업 시간 정보를 기반으로 작업 시간이 줄어드는 것에 대응하여 보상을 주는 강화 학습을 통한 주행 경로를 결정하는 것을 특징으로 한다.
본 명세서의 다른 실시 예에 따른 이동 로봇의 제어 방법은 작업 영역에 대한 맵(map) 정보를 획득하는 단계; 상기 작업 맵 정보 및 상기 맵에 대한 작업 정보를 기반으로 학습을 통한 주행 경로를 결정하는 단계; 및 상기 주행 경로로 상기 작업 영역에서 작업을 수행하는 단계;를 포함하고, 상기 작업 정보는 특정 주행 경로에 대응하는 작업 시간 정보를 포함하고, 상기 주행 경로는 상기 작업 시간 정보를 기반으로 작업 시간이 줄어드는 것에 대응하여 보상을 주는 강화 학습을 통해 결정되는 것을 특징으로 한다.
본 명세서의 실시 예에 따르면 이동 로봇이 작업 영역 내에서 적응적으로 경로를 결정함으로써 작업 효율이 향상될 수 있다. 또한 사용자에게 작업 영역 내의 구역에 대한 정보를 제공함으로써 사용자 편의성이 향상될 수 있다.
또한 본 명세서의 실시 예에 따르면, 작업 영역 내에서 작업 구역을 나누고 작업 구역별로 작업 순서를 적응적으로 결정함으로써 작업 속도가 빨라지고 효율이 향상될 수 있다.
또한 본 명세서의 실시 예에 따르면 작업 영역 내의 작업 가능 구역이 제한적인 경우, 이에 대응하여 작업 순서를 적응적으로 변경함으로써 작업 환경이 변화되는 경우에도 작업 효율성을 유지할 수 있다.
도 1은 본 명세서의 일 실시 예에 따른 AI 장치를 설명하기 위한 도면이다.
도 2는 본 명세서의 일 실시 예에 따른 AI 서버를 설명하기 위한 도면이다.
도 3은 본 명세서의 일 실시 예에 따른 AI 시스템을 설명하기 위한 도면이다.
도 4는 본 명세서의 일 실시 예에 따른 로봇 청소기를 설명하기 위한 도면이다.
도 5는 본 명세서의 일 실시 예에 따른 로봇 청소기의 사시도이다.
도 6은 본 명세서의 일 실시 예에 따른 로봇 청소기의 저면도이다.
도 7은 본 명세서의 일 실시 예에 따른 인공 지능 시스템의 일 예를 나타낸 도면이다.
도 8은 본 명세서의 일 실시 예에 따른 로봇 청소기의 동작을 설명하기 위한 순서도이다.
도 9는 본 명세서의 실시 예에 따른 주행 정책 모델을 업데이트 하기 위한 방법을 설명하기 위한 도면이다.
도 10은 본 명세서의 실시 예에 따른 분할된 구역 정보를 제공하고 이에 따른 작업을 수행하는 로봇 청소기의 동작을 설명하기 위한 순서도이다.
도 11은 본 명세서의 실시 예에 따른 로봇이 구역 별 작업 가능 여부를 기반으로 작업을 수행하는 방법을 설명하기 위한 순서도이다.
도 12는 본 명세서의 실시 예에 따른 로봇 청소기의 학습 방법을 통한 주행 패턴의 변화를 설명하기 위한 도면이다.
도 13은 본 명세서의 실시 예에 따라 로봇이 사용자에게 제공한 정보를 기반으로 사용자에게 표시되는 작업 영역에 대한 이미지 정보를 설명하기 위한 도면이다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
<인공 지능(AI: Artificial Intelligence)>
인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 머신 러닝(머신러닝, Machine Learning)은 인공 지능 분야에서 다루는 다양한 문제를 정의하고 그것을 해결하는 방법론을 연구하는 분야를 의미한다. 머신 러닝은 어떠한 작업에 대하여 꾸준한 경험을 통해 그 작업에 대한 성능을 높이는 알고리즘으로 정의하기도 한다.
인공 신경망(ANN: Artificial Neural Network)은 머신 러닝에서 사용되는 모델로써, 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)들로 구성되는, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 인공 신경망은 다른 레이어의 뉴런들 사이의 연결 패턴, 모델 파라미터를 갱신하는 학습 과정, 출력값을 생성하는 활성화 함수(Activation Function)에 의해 정의될 수 있다.
인공 신경망은 입력층(Input Layer), 출력층(Output Layer), 그리고 선택적으로 하나 이상의 은닉층(Hidden Layer)를 포함할 수 있다. 각 층은 하나 이상의 뉴런을 포함하고, 인공 신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다. 인공 신경망에서 각 뉴런은 시냅스를 통해 입력되는 입력 신호들, 가중치, 편향에 대한 활성 함수의 함숫값을 출력할 수 있다.
모델 파라미터는 학습을 통해 결정되는 파라미터를 의미하며, 시냅스 연결의 가중치와 뉴런의 편향 등이 포함된다. 그리고, 하이퍼파라미터는 머신 러닝 알고리즘에서 학습 전에 설정되어야 하는 파라미터를 의미하며, 학습률(Learning Rate), 반복 횟수, 미니 배치 크기, 초기화 함수 등이 포함된다.
인공 신경망의 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다. 손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표로 이용될 수 있다.
머신 러닝은 학습 방식에 따라 지도 학습(Supervised Learning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning)으로 분류할 수 있다.
지도 학습은 학습 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시키는 방법을 의미하며, 레이블이란 학습 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다. 비지도 학습은 학습 데이터에 대한 레이블이 주어지지 않는 상태에서 인공 신경망을 학습시키는 방법을 의미할 수 있다. 강화 학습은 어떤 환경 안에서 정의된 에이전트가 각 상태에서 누적 보상을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 학습 방법을 의미할 수 있다.
인공 신경망 중에서 복수의 은닉층을 포함하는 심층 신경망(DNN: Deep Neural Network)으로 구현되는 머신 러닝을 딥 러닝(심층 학습, Deep Learning)이라 부르기도 하며, 딥 러닝은 머신 러닝의 일부이다. 이하에서, 머신 러닝은 딥 러닝을 포함하는 의미로 사용된다.
<로봇(Robot)>
로봇은 스스로 보유한 능력에 의해 주어진 일을 자동으로 처리하거나 작동하는 기계를 의미할 수 있다. 특히, 환경을 인식하고 스스로 판단하여 동작을 수행하는 기능을 갖는 로봇을 지능형 로봇이라 칭할 수 있다.
로봇은 사용 목적이나 분야에 따라 산업용, 의료용, 가정용, 군사용 등으로 분류할 수 있다.
로봇은 액츄에이터 또는 모터를 포함하는 구동부를 구비하여 로봇 관절을 움직이는 등의 다양한 물리적 동작을 수행할 수 있다. 또한, 이동 가능한 로봇은 구동부에 휠, 브레이크, 프로펠러 등이 포함되어, 구동부를 통해 지상에서 주행하거나 공중에서 비행할 수 있다.
도 1은 본 명세서의 일 실시 예에 따른 AI 장치를 설명하기 위한 도면이다.
AI 장치(100)는 TV, 프로젝터, 휴대폰, 스마트폰, 데스크탑 컴퓨터, 노트북, 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 태블릿 PC, 웨어러블 장치, 셋톱박스(STB), DMB 수신기, 라디오, 세탁기, 냉장고, 데스크탑 컴퓨터, 디지털 사이니지, 로봇, 차량 등과 같은, 고정형 기기 또는 이동 가능한 기기 등으로 구현될 수 있다.
도 1을 참조하면, 단말기(100)는 통신부(110), 입력부(120), 러닝 프로세서(130), 센싱부(140), 출력부(150), 메모리(170) 및 프로세서(180) 등을 포함할 수 있다.
통신부(110)는 유무선 통신 기술을 이용하여 다른 AI 장치(100a 내지 100e)나 AI 서버(200) 등의 외부 장치들과 데이터를 송수신할 수 있다. 예컨대, 통신부(110)는 외부 장치들과 센서 정보, 사용자 입력, 학습 모델, 제어 신호 등을 송수신할 수 있다.
이때, 통신부(110)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth™), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있다.
입력부(120)는 다양한 종류의 데이터를 획득할 수 있다.
이때, 입력부(120)는 영상 신호 입력을 위한 카메라, 오디오 신호를 수신하기 위한 마이크로폰, 사용자로부터 정보를 입력 받기 위한 사용자 입력부 등을 포함할 수 있다. 여기서, 카메라나 마이크로폰을 센서로 취급하여, 카메라나 마이크로폰으로부터 획득한 신호를 센싱 데이터 또는 센서 정보라고 할 수도 있다.
입력부(120)는 모델 학습을 위한 학습 데이터 및 학습 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다. 입력부(120)는 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 프로세서(180) 또는 러닝 프로세서(130)는 입력 데이터에 대하여 전처리로써 입력 특징점(input feature)을 추출할 수 있다.
러닝 프로세서(130)는 학습 데이터를 이용하여 인공 신경망으로 구성된 모델을 학습시킬 수 있다. 여기서, 학습된 인공 신경망을 학습 모델이라 칭할 수 있다. 학습 모델은 학습 데이터가 아닌 새로운 입력 데이터에 대하여 결과 값을 추론해 내는데 사용될 수 있고, 추론된 값은 어떠한 동작을 수행하기 위한 판단의 기초로 이용될 수 있다.
이때, 러닝 프로세서(130)는 AI 서버(200)의 러닝 프로세서(240)과 함께 AI 프로세싱을 수행할 수 있다.
이때, 러닝 프로세서(130)는 AI 장치(100)에 통합되거나 구현된 메모리를 포함할 수 있다. 또는, 러닝 프로세서(130)는 메모리(170), AI 장치(100)에 직접 결합된 외부 메모리 또는 외부 장치에서 유지되는 메모리를 사용하여 구현될 수도 있다.
센싱부(140)는 다양한 센서들을 이용하여 AI 장치(100) 내부 정보, AI 장치(100)의 주변 환경 정보 및 사용자 정보 중 적어도 하나를 획득할 수 있다.
이때, 센싱부(140)에 포함되는 센서에는 근접 센서, 조도 센서, 가속도 센서, 자기 센서, 자이로 센서, 관성 센서, RGB 센서, IR 센서, 지문 인식 센서, 초음파 센서, 광 센서, 마이크로폰, 라이다, 레이더 등이 있다.
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시킬 수 있다.
이때, 출력부(150)에는 시각 정보를 출력하는 디스플레이부, 청각 정보를 출력하는 스피커, 촉각 정보를 출력하는 햅틱 모듈 등이 포함될 수 있다.
메모리(170)는 AI 장치(100)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 예컨대, 메모리(170)는 입력부(120)에서 획득한 입력 데이터, 학습 데이터, 학습 모델, 학습 히스토리 등을 저장할 수 있다.
프로세서(180)는 데이터 분석 알고리즘 또는 머신 러닝 알고리즘을 사용하여 결정되거나 생성된 정보에 기초하여, AI 장치(100)의 적어도 하나의 실행 가능한 동작을 결정할 수 있다. 그리고, 프로세서(180)는 AI 장치(100)의 구성 요소들을 제어하여 결정된 동작을 수행할 수 있다.
이를 위해, 프로세서(180)는 러닝 프로세서(130) 또는 메모리(170)의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 상기 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 AI 장치(100)의 구성 요소들을 제어할 수 있다.
이때, 프로세서(180)는 결정된 동작을 수행하기 위하여 외부 장치의 연계가 필요한 경우, 해당 외부 장치를 제어하기 위한 제어 신호를 생성하고, 생성한 제어 신호를 해당 외부 장치에 전송할 수 있다.
프로세서(180)는 사용자 입력에 대하여 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 사용자의 요구 사항을 결정할 수 있다.
프로세서(180)는 AI 장치(100)의 동작 내용이나 동작에 대한 사용자의 피드백 등을 포함하는 이력 정보를 수집하여 메모리(170) 또는 러닝 프로세서(130)에 저장하거나, AI 서버(200) 등의 외부 장치에 전송할 수 있다. 수집된 이력 정보는 학습 모델을 갱신하는데 이용될 수 있다.
프로세서(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, AI 장치(100)의 구성 요소들 중 적어도 일부를 제어할 수 있다. 나아가, 프로세서(180)는 상기 응용 프로그램의 구동을 위하여, AI 장치(100)에 포함된 구성 요소들 중 둘 이상을 서로 조합하여 동작시킬 수 있다.
도 2는 본 명세서의 일 실시 예에 따른 AI 서버를 설명하기 위한 도면이다.
도 2를 참조하면, AI 서버(200)는 머신 러닝 알고리즘을 이용하여 인공 신경망을 학습시키거나 학습된 인공 신경망을 이용하는 장치를 의미할 수 있다. 여기서, AI 서버(200)는 복수의 서버들로 구성되어 분산 처리를 수행할 수도 있고, 5G를 포함하는 별도의 네트워크로 정의될 수 있다. 이때, AI 서버(200)는 AI 장치(100)의 일부의 구성으로 포함되어, AI 프로세싱 중 적어도 일부를 함께 수행할 수도 있다.
AI 서버(200)는 통신부(210), 메모리(230), 러닝 프로세서(240) 및 프로세서(260) 등을 포함할 수 있다.
통신부(210)는 AI 장치(100) 등의 외부 장치와 데이터를 송수신할 수 있다.
메모리(230)는 모델 저장부(231)를 포함할 수 있다. 모델 저장부(231)는 러닝 프로세서(240)을 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 231a)을 저장할 수 있다.
러닝 프로세서(240)는 학습 데이터를 이용하여 인공 신경망(231a)을 학습시킬 수 있다. 학습 모델은 인공 신경망의 AI 서버(200)에 탑재된 상태에서 이용되거나, AI 장치(100) 등의 외부 장치에 탑재되어 이용될 수도 있다.
한편 본 명세서의 실시 예에서 모델 저장부(231)는 로봇 청소기가 확인한 맵에서 적업을 위한 주행 경로 정보 및 구역 정보를 포함하는 정보를 저장할 수 있다.
학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어(instruction)는 메모리(230)에 저장될 수 있다.
프로세서(260)는 학습 모델을 이용하여 새로운 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수 있다.
도 3은 본 명세서의 일 실시 예에 따른 AI 시스템을 설명하기 위한 도면이다.
도 3을 참조하면, AI 시스템(1)은 AI 서버(200), 로봇(100a), 자율 주행 차량(100b), XR 장치(100c), 스마트폰(100d) 또는 가전(100e) 중에서 적어도 하나 이상이 클라우드 네트워크(10)와 연결된다. 여기서, AI 기술이 적용된 로봇(100a), 자율 주행 차량(100b), XR 장치(100c), 스마트폰(100d) 또는 가전(100e) 등을 AI 장치(100a 내지 100e)라 칭할 수 있다.
클라우드 네트워크(10)는 클라우드 컴퓨팅 인프라의 일부를 구성하거나 클라우드 컴퓨팅 인프라 안에 존재하는 네트워크를 의미할 수 있다. 여기서, 클라우드 네트워크(10)는 3G 네트워크, 4G 또는 LTE(Long Term Evolution) 네트워크 또는 5G 네트워크 등을 이용하여 구성될 수 있다.
즉, AI 시스템(1)을 구성하는 각 장치들(100a 내지 100e, 200)은 클라우드 네트워크(10)를 통해 서로 연결될 수 있다. 특히, 각 장치들(100a 내지 100e, 200)은 기지국을 통해서 서로 통신할 수도 있지만, 기지국을 통하지 않고 직접 서로 통신할 수도 있다.
AI 서버(200)는 AI 프로세싱을 수행하는 서버와 빅 데이터에 대한 연산을 수행하는 서버를 포함할 수 있다.
AI 서버(200)는 AI 시스템(1)을 구성하는 AI 장치들인 로봇(100a), 자율 주행 차량(100b), XR 장치(100c), 스마트폰(100d) 또는 가전(100e) 중에서 적어도 하나 이상과 클라우드 네트워크(10)을 통하여 연결되고, 연결된 AI 장치들(100a 내지 100e)의 AI 프로세싱을 적어도 일부를 도울 수 있다.
이때, AI 서버(200)는 AI 장치(100a 내지 100e)를 대신하여 머신 러닝 알고리즘에 따라 인공 신경망을 학습시킬 수 있고, 학습 모델을 직접 저장하거나 AI 장치(100a 내지 100e)에 전송할 수 있다.
이때, AI 서버(200)는 AI 장치(100a 내지 100e)로부터 입력 데이터를 수신하고, 학습 모델을 이용하여 수신한 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성하여 AI 장치(100a 내지 100e)로 전송할 수 있다.
또는, AI 장치(100a 내지 100e)는 직접 학습 모델을 이용하여 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수도 있다.
이하에서는, 상술한 기술이 적용되는 AI 장치(100a 내지 100e)의 다양한 실시 예들을 설명한다. 여기서, 도 3에 도시된 AI 장치(100a 내지 100e)는 도 1에 도시된 AI 장치(100)의 구체적인 실시 예로 볼 수 있다.
<AI+로봇>
로봇(100a)은 AI 기술이 적용되어, 안내 로봇, 운반 로봇, 청소 로봇, 웨어러블 로봇, 엔터테인먼트 로봇, 펫 로봇, 무인 비행 로봇 등으로 구현될 수 있다.
로봇(100a)은 동작을 제어하기 위한 로봇 제어 모듈을 포함할 수 있고, 로봇 제어 모듈은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩을 의미할 수 있다.
로봇(100a)은 다양한 종류의 센서들로부터 획득한 센서 정보를 이용하여 로봇(100a)의 상태 정보를 획득하거나, 주변 환경 및 객체를 검출(인식)하거나, 맵 데이터를 생성하거나, 이동 경로 및 주행 계획을 결정하거나, 사용자 상호작용에 대한 응답을 결정하거나, 동작을 결정할 수 있다.
여기서, 로봇(100a)은 이동 경로 및 주행 계획을 결정하기 위하여, 라이다, 레이더, 카메라 중에서 적어도 하나 이상의 센서에서 획득한 센서 정보를 이용할 수 있다.
로봇(100a)은 적어도 하나 이상의 인공 신경망으로 구성된 학습 모델을 이용하여 상기한 동작들을 수행할 수 있다. 예컨대, 로봇(100a)은 학습 모델을 이용하여 주변 환경 및 객체를 인식할 수 있고, 인식된 주변 환경 정보 또는 객체 정보를 이용하여 동작을 결정할 수 있다. 여기서, 학습 모델은 로봇(100a)에서 직접 학습되거나, AI 서버(200) 등의 외부 장치에서 학습된 것일 수 있다.
이때, 로봇(100a)은 직접 학습 모델을 이용하여 결과를 생성하여 동작을 수행할 수도 있지만, AI 서버(200) 등의 외부 장치에 센서 정보를 전송하고 그에 따라 생성된 결과를 수신하여 동작을 수행할 수도 있다.
로봇(100a)은 맵 데이터, 센서 정보로부터 검출한 객체 정보 또는 외부 장치로부터 획득한 객체 정보 중에서 적어도 하나 이상을 이용하여 이동 경로와 주행 계획을 결정하고, 구동부를 제어하여 결정된 이동 경로와 주행 계획에 따라 로봇(100a)을 주행시킬 수 있다.
맵 데이터에는 로봇(100a)이 이동하는 공간에 배치된 다양한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 예컨대, 맵 데이터에는 벽, 문 등의 고정 객체들과 화분, 책상 등의 이동 가능한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 그리고, 객체 식별 정보에는 명칭, 종류, 거리, 위치 등이 포함될 수 있다.
또한, 로봇(100a)은 사용자의 제어/상호작용에 기초하여 구동부를 제어함으로써, 동작을 수행하거나 주행할 수 있다. 이때, 로봇(100a)은 사용자의 동작이나 음성 발화에 따른 상호작용의 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 응답을 결정하여 동작을 수행할 수 있다.
한편 명세서 전반에서 논의되는 인공지능에 대하여 간단히 설명한다.
인공 지능(artificial intelligence, AI)은 인간의 지능으로 할 수 있는 사고, 학습, 자기계발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보기술의 한 분야로, 컴퓨터가 인간의 지능적인 행동을 모방할 수 있도록 하는 것을 의미한다.
머신 러닝(machine learning)은 인공지능의 한 분야로, 컴퓨터에 명시적인 프로그램 없이 배울 수 있는 능력을 부여하는 연구 분야이다.
구체적으로 머신 러닝은, 경험적 데이터를 기반으로 학습을 하고 예측을 수행하고 스스로의 성능을 향상시키는 시스템과 이를 위한 알고리즘을 연구하고 구축하는 기술이라 할 수 있다. 머신 러닝의 알고리즘들은 엄격하게 정해진 정적인 프로그램 명령들을 수행하는 것이라기보다, 입력 데이터를 기반으로 예측이나 결정을 이끌어내기 위해 특정한 모델을 구축하는 방식을 취한다.
머신러닝에서 데이터를 어떻게 분류할 것인가를 놓고, 많은 머신러닝 알고리즘이 개발되었다. 의사결정나무(Decision Tree)나 베이지안 망(Bayesian network), 서포트벡터머신(SVM: support vector machine), 그리고 인공 신경망(ANN: Artificial Neural Network) 등이 대표적이다.
의사결정나무는 의사결정규칙(Decision Rule)을 나무구조로 도표화하여 분류와 예측을 수행하는 분석방법이다.
베이지안 망은 다수의 변수들 사이의 확률적 관계(조건부독립성: conditional independence)를 그래프 구조로 표현하는 모델이다. 베이지안 망은 비지도 학습(unsupervised learning)을 통한 데이터마이닝(data mining)에 적합하다.
서포트벡터머신은 패턴인식과 자료분석을 위한 지도 학습(supervised learning)의 모델이며, 주로 분류와 회귀분석을 위해 사용한다.
인공신경망은 생물학적 뉴런의 동작원리와 뉴런간의 연결 관계를 모델링한 것으로 노드(node) 또는 처리 요소(processing element)라고 하는 다수의 뉴런들이 레이어(layer) 구조의 형태로 연결된 정보처리 시스템이다.
인공 신경망은 머신러닝에서 사용되는 모델로써, 머신러닝과 인지과학에서 생물학의 신경망(동물의 중추신경계 중 특히 뇌)에서 영감을 얻은 통계학적 학습 알고리즘이다.
구체적으로 인공신경망은 시냅스(synapse)의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.
인공신경망은 뉴럴 네트워크(Neural Network)와 혼용되어 사용될 수 있다.
인공신경망은 복수의 레이어(layer)를 포함할 수 있고, 레이어들 각각은 복수의 뉴런(neuron)을 포함할 수 있다. 또한 인공신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다.
인공 신경망은 일반적으로 다음의 세가지 인자, 즉 (1) 다른 레이어의 뉴런들 사이의 연결 패턴 (2) 연결의 가중치를 갱신하는 학습 과정 (3) 이전 레이어로부터 수신되는 입력에 대한 가중 합으로부터 출력값을 생성하는 활성화 함수에 의해 정의될 수 있다.
인공 신경망은, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network), MLP(Multilayer Perceptron), CNN(Convolutional Neural Network)와 같은 방식의 네트워크 모델들을 포함할 수 있으나, 이에 한정되지 않는다.
인공신경망은 레이어 수에 따라 단층 신경망(Single-Layer Neural Networks)과 다층 신경망(Multi-Layer Neural Networks)으로 구분된다.
일반적인 단층 신경망은, 입력층과 출력층을 포함할 수 있다.
또한 일반적인 다층 신경망은 입력층(Input Layer)과 하나 이상의 은닉층(Hidden Layer), 출력층(Output Layer)을 포함할 수 있다.
입력층은 외부의 자료들을 받아들이는 층으로서, 입력층의 뉴런 수는 입력되는 변수의 수와 동일하며, 은닉층은 입력층과 출력층 사이에 위치하며 입력층으로부터 신호를 받아 특성을 추출하여 출력층으로 전달한다. 출력층은 은닉층으로부터 신호를 받고, 수신한 신호에 기반한 출력 값을 출력한다. 뉴런간의 입력신호는 각각의 연결강도(가중치)와 곱해진 후 합산되며 이 합이 뉴런의 임계치보다 크면 뉴런이 활성화되어 활성화 함수를 통하여 획득한 출력값을 출력한다.
한편 입력층과 출력 층 사이에 복수의 은닉층을 포함하는 심층 신경망은, 머신러닝 기술의 한 종류인 딥 러닝을 구현하는 대표적인 인공 신경망일 수 있다.
인공 신경망은 훈련 데이터(training data)를 이용하여 학습(training)될 수 있다. 여기서 학습이란, 입력 데이터를 분류(classification)하거나 회귀분석(regression)하거나 군집화(clustering)하는 등의 목적을 달성하기 위하여, 학습 데이터를 이용하여 인공 신경망의 파라미터(parameter)를 결정하는 과정을 의미할 수 있다. 인공 신경망의 파라미터의 대표적인 예시로써, 시냅스에 부여되는 가중치(weight)나 뉴런에 적용되는 편향(bias)을 들 수 있다.
훈련 데이터에 의하여 학습된 인공 신경망은, 입력 데이터를 입력 데이터가 가지는 패턴에 따라 분류하거나 군집화 할 수 있다.
한편 훈련 데이터를 이용하여 학습된 인공 신경망을, 본 명세서에서는 학습 모델(a trained model)이라 명칭 할 수 있다.
다음은 인공 신경망의 학습 방식에 대하여 설명한다.
인공 신경망의 학습 방식은 크게, 지도 학습, 비 지도 학습, 준 지도 학습(Semi-Supervised Learning), 강화 학습(Reinforcement Learning)으로 분류될 수 있다.
지도 학습은 훈련 데이터로부터 하나의 함수를 유추해내기 위한 머신러닝의 한 방법이다.
그리고 이렇게 유추되는 함수 중, 연속 적인 값을 출력하는 것을 회귀분석(Regression)이라 하고, 입력 벡터의 클래스(class)를 예측하여 출력하는 것을 분류(Classification)라고 할 수 있다.
지도 학습에서는, 훈련 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시킨다.
여기서 레이블이란, 훈련 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다.
본 명세서에서는 훈련 데이터가 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과값)을 레이블 또는 레이블링 데이터(labeling data)이라 명칭 한다.
또한 본 명세서에서는, 인공 신경망의 학습을 위하여 훈련 데이터에 레이블을 설정하는 것을, 훈련 데이터에 레이블링 데이터를 레이블링(labeling) 한다고 명칭 한다.
이 경우 훈련 데이터와 훈련 데이터에 대응하는 레이블)은 하나의 트레이닝 셋(training set)을 구성하고, 인공 신경망에는 트레이닝 셋의 형태로 입력될 수 있다.
한편 훈련 데이터는 복수의 특징(feature)을 나타내고, 훈련 데이터에 레이블이 레이블링 된다는 것은 훈련 데이터가 나타내는 특징에 레이블이 달린다는 것을 의미할 수 있다. 이 경우 훈련 데이터는 입력 객체의 특징을 벡터 형태로 나타낼 수 있다.
인공 신경망은 훈련 데이터와 레이블링 데이터를 이용하여, 훈련 데이터와 레이블링 데이터의 연관 관계에 대한 함수를 유추할 수 있다. 그리고, 인공 신경망에서 유추된 함수에 대한 평가를 통해 인공 신경망의 파라미터가 결정(최적화)될 수 있다.
비 지도 학습은 머신러닝의 일종으로, 훈련 데이터에 대한 레이블이 주어지지 않는다.
구체적으로, 비 지도 학습은, 훈련 데이터 및 훈련 데이터에 대응하는 레이블의 연관 관계 보다는, 훈련 데이터 자체에서 패턴을 찾아 분류하도록 인공 신경망을 학습시키는 학습 방법일 수 있다.
비 지도 학습의 예로는, 클러스터링 또는 독립 성분 분석(Independent Component Analysis)을 들 수 있다.
비지도 학습을 이용하는 인공 신경망의 일례로 생성적 적대 신경망(GAN: Generative Adversarial Network), 오토 인코더(AE: Autoencoder)를 들 수 있다.
생성적 적대 신경망이란, 생성기(generator)와 판별기(discriminator), 두 개의 서로 다른 인공지능이 경쟁하며 성능을 개선하는 머신 러닝 방법이다.
이 경우 생성기는 새로운 데이터를 창조하는 모형으로, 원본 데이터를 기반으로 새로운 데이터를 생성할 수 있다.
또한 판별기는 데이터의 패턴을 인식하는 모형으로, 입력된 데이터가 원본 데이터인지 또는 생성기에서 생성한 새로운 데이터인지 여부를 감별하는 역할을 수행할 수 있다.
그리고 생성기는 판별기를 속이지 못한 데이터를 입력 받아 학습하며, 판별기는 생성기로부터 속은 데이터를 입력 받아 학습할 수 있다. 이에 따라 생성기는 판별기를 최대한 잘 속이도록 진화할 수 있고, 판별기는 원본 데이터와 생성기에 의해 생성된 데이터를 잘 구분하도록 진화할 수 있다.
오토 인코더는 입력 자체를 출력으로 재현하는 것을 목표로 하는 신경망이다.
오토 인코더는 입력층, 적어도 하나의 은닉층 및 출력층을 포함한다.
이 경우 은닉 레이어의 노드 수가 입력 레이어의 노드 수보다 적으므로 데이터의 차원이 줄어들게 되며, 이에 따라 압축 또는 인코딩이 수행되게 된다.
또한 은닉 레이어에서 출력한 데이터는 출력 레이어로 들어간다. 이 경우 출력 레이어의 노드 수는 은닉 레이어의 노드 수보다 많으므로, 데이터의 차원이 늘어나게 되며, 이에 따라 압축 해제 또는 디코딩이 수행되게 된다.
한편 오토 인코더는 학습을 통해 뉴런의 연결 강도를 조절함으로써 입력 데이터가 은닉층 데이터로 표현된다. 은닉층에서는 입력층보다 적은 수의 뉴런으로 정보를 표현하는데 입력 데이터를 출력으로 재현할 수 있다는 것은, 은닉층이 입력 데이터로부터 숨은 패턴을 발견하여 표현했다는 것을 의미할 수 있다.
준 지도 학습은 머신러닝의 일종으로, 레이블이 주어진 훈련 데이터와 레이블이 주어지지 않은 훈련 데이터를 모두 사용하는 학습 방법을 의미할 수 있다.
준 지도 학습의 기법 중 하나로, 레이블이 주어지지 않은 훈련 데이터의 레이블을 추론한 후 추론된 라벨을 이용하여 학습을 수행하는 기법이 있으며, 이러한 기법은 레이블링에 소요되는 비용이 큰 경우에 유용하게 사용될 수 있다.
강화 학습은, 에이전트(Agent)가 매 순간 어떤 행동을 해야 좋을지 판단할 수 있는 환경이 주어진다면, 데이터 없이 경험으로 주어진 환경에서 최적의 해를 찾을 수 있다는 이론이다. 강화 학습은 주로 마르코프 결정 과정(MDP: Markov Decision Process)에 의하여 수행될 수 있다.
마르코프 결정 과정을 설명하면, 첫 번째로 에이전트가 다음 행동을 하기 위해 필요한 정보들이 구성된 환경이 주어지며, 두 번째로 그 환경에서 에이전트가 어떻게 행동할지 정의하고, 세 번째로 에이전트가 무엇을 잘하면 보상(reward)를 주고 무엇을 못하면 벌점(penalty)을 줄지 정의하며, 네 번째로 미래의 보상이 최고점에 이를 때까지 반복 경험하여 최적의 정책(policy)을 도출하게 된다. 실시 예에서 로봇의 동작과 관련해서 작업 영역에 대한 작업의 수행 시간을 기반으로 수행 시간이 줄어드는 경우 보상을 주고 시간이 늘어나는 경우 벌점을 주는 과정을 통해 강화 학습을 수행할 수 있다. 이와 같은 강화 학습은 실제 작업을 수행하면서 진행될 수도 있으며, 로봇 청소기가 작업 영역에 대한 맵 정보를 가지고 있고 가상의 동작 시뮬레이션을 수행하여 이에 따른 정책을 도출할 수 있다.
인공 신경망은 모델의 구성, 활성 함수(Activation Function), 손실 함수(Loss Function) 또는 비용 함수(Cost Function), 학습 알고리즘, 최적화 알고리즘 등에 의해 그 구조가 특정되며, 학습 전에 하이퍼파라미터(Hyperparameter)가 미리 설정되고, 이후에 학습을 통해 모델 파라미터(Model Parameter)가 설정되어 내용이 특정될 수 있다.
예컨대, 인공 신경망의 구조를 결정하는 요소에는 은닉층의 개수, 각 은닉층에 포함된 은닉 노드의 개수, 입력 특징 벡터(Input Feature Vector), 대상 특징 벡터(Target Feature Vector) 등이 포함될 수 있다.
하이퍼파라미터는 모델 파라미터의 초기값 등과 같이 학습을 위하여 초기에 설정하여야 하는 여러 파라미터들을 포함한다. 그리고, 모델 파라미터는 학습을 통하여 결정하고자 하는 여러 파라미터들을 포함한다.
예컨대, 하이퍼파라미터에는 노드 간 가중치 초기값, 노드 간 편향 초기값, 미니 배치(Mini-batch) 크기, 학습 반복 횟수, 학습률(Learning Rate) 등이 포함될 수 있다. 그리고, 모델 파라미터에는 노드 간 가중치, 노드 간 편향 등이 포함될 수 있다.
손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표(기준)로 이용될 수 있다. 인공 신경망에서 학습은 손실 함수를 줄이기 위하여 모델 파라미터들을 조작하는 과정을 의미하며, 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다.
손실 함수는 주로 평균 제곱 오차(MSE: Mean Squared Error) 또는 교차 엔트로피 오차(CEE, Cross Entropy Error)를 사용할 수 있으며, 본 발명이 이에 한정되지는 않는다.
교차 엔트로피 오차는 정답 레이블이 원 핫 인코딩(one-hot encoding)된 경우에 사용될 수 있다. 원 핫 인코딩은 정답에 해당하는 뉴런에 대하여만 정답 레이블 값을 1로, 정답이 아닌 뉴런은 정답 레이블 값이 0으로 설정하는 인코딩 방법이다.
머신 러닝 또는 딥 러닝에서는 손실 함수를 최소화하기 위하여 학습 최적화 알고리즘을 이용할 수 있으며, 학습 최적화 알고리즘에는 경사 하강법(GD: Gradient Descent), 확률적 경사 하강법(SGD: Stochastic Gradient Descent), 모멘텀(Momentum), NAG(Nesterov Accelerate Gradient), Adagrad, AdaDelta, RMSProp, Adam, Nadam 등이 있다.
경사 하강법은 현재 상태에서 손실 함수의 기울기를 고려하여 손실 함수값을 줄이는 방향으로 모델 파라미터를 조정하는 기법이다.
모델 파라미터를 조정하는 방향은 스텝(step) 방향, 조정하는 크기는 스텝 사이즈(size)라고 칭한다.
이때, 스텝 사이즈는 학습률을 의미할 수 있다.
경사 하강법은 손실 함수를 각 모델 파라미터들로 편미분하여 기울기를 획득하고, 모델 파라미터들을 획득한 기울기 방향으로 학습률만큼 변경하여 갱신할 수 있다.
확률적 경사 하강법은 학습 데이터를 미니 배치로 나누고, 각 미니 배치마다 경사 하강법을 수행하여 경사 하강의 빈도를 높인 기법이다.
Adagrad, AdaDelta 및 RMSProp는 SGD에서 스텝 사이즈를 조절하여 최적화 정확도를 높이는 기법이다. SGD에서 모멘텀 및 NAG는 스텝 방향을 조절하여 최적화 정확도를 높이는 기법이다. Adam은 모멘텀과 RMSProp를 조합하여 스텝 사이즈와 스텝 방향을 조절하여 최적화 정확도를 높이는 기법이다. Nadam은 NAG와 RMSProp를 조합하여 스텝 사이즈와 스텝 방향을 조절하여 최적화 정확도를 높이는 기법이다.
인공 신경망의 학습 속도와 정확도는 인공 신경망의 구조와 학습 최적화 알고리즘의 종류뿐만 아니라, 하이퍼파라미터에 크게 좌우되는 특징이 있다. 따라서, 좋은 학습 모델을 획득하기 위하여는 적당한 인공 신경망의 구조와 학습 알고리즘을 결정하는 것뿐만 아니라, 적당한 하이퍼파라미터를 설정하는 것이 중요하다.
통상적으로 하이퍼파라미터는 실험적으로 다양한 값으로 설정해가며 인공 신경망을 학습시켜보고, 학습 결과 안정적인 학습 속도와 정확도를 제공하는 최적의 값으로 설정한다.
도 4는 본 명세서의 일 실시 예에 따른 로봇 청소기를 설명하기 위한 도면이다.
도 4를 참조하면, 로봇 청소기(500)은 도 1에서 설명한 구성과 함께 주행 구동부(160), 청소부(190) 및 맵생성부(193)를 더 포함할 수 있다.
입력부(120)는 영상 신호 입력을 위한 카메라(Camera, 121), 오디오 신호를 수신하기 위한 마이크로폰(Microphone, 122), 사용자로부터 정보를 입력 받기 위한 사용자 입력부(User Input Unit, 123)를 포함할 수 있다.
입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어 명령으로 처리될 수 있다.
입력부(120)는 영상 정보(또는 신호), 오디오 정보(또는 신호), 데이터, 또는 사용자로부터 입력되는 정보의 입력을 위한 것으로서, 영상 정보의 입력을 위하여, 로봇 청소기(500)은 하나 또는 복수의 카메라(121)들을 구비할 수 있다.
카메라(121)는 화상 통화모드 또는 촬영 모드에서 이미지 센서에 의해 얻어지는 정지영상 또는 동영상 등의 화상 프레임을 처리한다. 처리된 화상 프레임은 디스플레이부(Display Unit, 151)에 표시되거나 메모리(170)에 저장될 수 있다.
마이크로폰(122)은 외부의 음향 신호를 전기적인 음성 데이터로 처리한다. 처리된 음성 데이터는 로봇 청소기(500)에서 수행 중인 기능(또는 실행 중인 응용 프로그램)에 따라 다양하게 활용될 수 있다. 한편, 마이크로폰(122)에는 외부의 음향 신호를 입력 받는 과정에서 발생되는 잡음(noise)을 제거하기 위한 다양한 잡음 제거 알고리즘이 적용될 수 있다.
사용자 입력부(123)는 사용자로부터 정보를 입력 받기 위한 것으로서, 사용자 입력부(123)를 통해 정보가 입력되면, 프로세서(180)는 입력된 정보에 대응되도록 로봇 청소기(500)의 동작을 제어할 수 있다.
사용자 입력부(123)는 기계식 (mechanical) 입력수단(또는, 메커니컬 키, 예컨대, 로봇 청소기(500)의 전/후면 또는 측면에 위치하는 버튼, 돔 스위치 (dome switch), 조그 휠, 조그 스위치 등) 및 터치식 입력수단을 포함할 수 있다. 일 예로서, 터치식 입력수단은, 소프트웨어적인 처리를 통해 터치스크린에 표시되는 가상 키(virtual key), 소프트 키(soft key) 또는 비주얼 키(visual key)로 이루어지거나, 상기 터치스크린 이외의 부분에 배치되는 터치 키(touch key)로 이루어질 수 있다.
센싱부(140)는 센서부라고 칭할 수 있다.
센싱부(140)는 깊이 센서(미도시), RGB 센서(미도시), 충돌 감지 센서(미도시), 낭떠러지 센서(미도시) 중 하나 이상을 포함하여, 로봇 청소기(500)의 주변에 대한 영상 데이터를 획득할 수 있다.
깊이 센서는 발광부(미도시)로부터 조사된 빛이 사물에 반사되어 돌아옴을 감지할 수 있다. 깊이 센서는 돌아온 빛을 감지한 시간 차이, 돌아온 빛의 양 등에 기초하여, 사물과의 거리를 측정할 수 있다.
깊이 센서는 측정된 사물 간의 거리에 기초하여, 로봇 청소기(500) 주위에 대한 2차원 영상 정보 또는 3차원 영상 정보를 획득할 수 있다.
RGB 센서는 로봇 청소기(500) 주위의 사물 또는 사용자에 대한 컬러 영상 정보를 획득할 수 있다. 컬러 영상 정보는 사물의 촬영 영상일 수 있다. RGB 센서는 RGB 카메라로 명명될 수 있다.
이때, 카메라(121)가 RGB 센서를 의미할 수도 있다.
충돌 감지 센서는 범퍼 센서(bumper sensor)라 칭할 수 있으며, 충격량을 측정할 수 있다.
낭떠러지 센서는 클리프 센서(cliff sensor)라 칭할 수 있으며, 인공 지능 장치(100)의 바닥 면까지의 거리를 측정할 수 있다.
이때, 낭떠러지 센서는 광 센서 또는 깊이 센서로 구현될 수 있다.
센싱부(140)에서 획득한 센서 정보는 물체나 장애물을 검출하는데 이용될 수 있다.
출력부(150)는 디스플레이부(Display Unit, 151), 음향 출력부(Sound Output Unit, 152), 햅틱 모듈(Haptic Module, 153), 광 출력부(Optical Output Unit, 154) 중 적어도 하나를 포함할 수 있다.
디스플레이부(151)는 로봇 청소기(500)에서 처리되는 정보를 표시(출력)한다. 예컨대, 디스플레이부(151)는 로봇 청소기(500)에서 구동되는 응용 프로그램의 실행화면 정보, 또는 이러한 실행화면 정보에 따른 UI(User Interface), GUI(Graphic User Interface) 정보를 표시할 수 있다.
디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 로봇 청소기(500)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 로봇 청소기(500)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
음향 출력부(152)는 호신호 수신, 통화모드 또는 녹음 모드, 음성인식 모드, 방송수신 모드 등에서 통신부(110)로부터 수신되거나 메모리(170)에 저장된 오디오 데이터를 출력할 수 있다.
음향 출력부(152)는 리시버(receiver), 스피커(speaker), 버저(buzzer) 중 적어도 하나 이상을 포함할 수 있다.
햅틱 모듈(haptic module)(153)은 사용자가 느낄 수 있는 다양한 촉각 효과를 발생시킨다. 햅틱 모듈(153)이 발생시키는 촉각 효과의 대표적인 예로는 진동이 될 수 있다.
광출력부(154)는 로봇 청소기(500)의 광원의 빛을 이용하여 이벤트 발생을 알리기 위한 신호를 출력한다. 로봇 청소기(500)에서 발생되는 이벤트의 예로는 메시지 수신, 호 신호 수신, 부재중 전화, 알람, 일정 알림, 이메일 수신, 애플리케이션을 통한 정보 수신 등이 될 수 있다.
주행 구동부(160)는 로봇 청소기(500)를 특정 방향으로 또는 특정 거리만큼 이동시킬 수 있다.
주행 구동부(160)는 로봇 청소기(500)의 좌륜을 구동시키는 좌륜 구동부(161) 및 우륜을 구동시키는 우륜 구동부(162)를 포함할 수 있다.
좌륜 구동부(161)는 좌륜을 구동시키기 위한 모터를 포함할 수 있고, 우륜 구동부(162)는 우륜을 구동시키기 위한 모터를 포함할 수 있다.
도 4에서는 주행 구동부(160)가 좌륜 구동부(161) 및 우륜 구동부(162)를 포함하는 것을 예로 들어 설명하였으나, 본 발명이 이에 한정되지 않는다. 즉, 일 실시 예에서 주행 구동부(160)는 하나의 휠 만으로 구성될 수도 있다. 한편 실시 예에서 주행 구동부(160)는 주행부로 언급될 수 있다.
청소부(190)는 흡입부(191) 또는 걸레질부(192) 중에서 적어도 하나 이상을 포함하여, 로봇 청소기(500) 인근의 바닥 면을 청소할 수 있다.
흡입부(191)는 진공 청소부라 부를 수도 있다.
흡입부(191)는 공기를 흡입하여 로봇 청소기(500) 주변의 먼지나 쓰레기 등의 이물질을 흡입할 수 있다.
이때, 흡입부(191)는 이물질을 모아주는 수단으로써 브러쉬 등을 포함할 수 있다.
걸레질부(192)는 걸레를 로봇 청소기(500)의 바닥 면에 적어도 일부 접촉시킨 상태에서 바닥을 닦을 수 있다.
이때, 걸레질부(192)는 걸레와 걸레를 움직이는 걸레 구동부 등을 포함할 수 있다.
이때, 걸레질부(192)의 걸레는 걸레 구동부를 통해 지면으로부터의 거리가 조절될 수 있다. 즉, 걸레 구동부는 걸레질이 필요한 경우에 걸레가 지면에 접촉되도록 동작할 수 있다.
맵생성부(193)는 장애물에 대한 정보를 바탕으로, 청소구역에 대한 지도를 생성한다.
맵생성부(193)는 초기 동작 시, 또는 청소구역에 대한 지도가 저장되어 있지 않은 경우, 인공 지능 로봇이 청소구역을 주행하면서 획득한 장애물 정보를 바탕으로 청소구역에 대한 지도를 생성한다. 또한, 맵생성부(220)는 주행 중 획득되는 장애물 정보를 바탕으로, 기 생성된 지도를 갱신한다.
맵생성부(193)는 주행 중 획득되는 장애물 정보를 바탕으로 기초 지도를 생성하고, 기초 지도로부터 구역을 구분하여 실내 구역 지도를 생성한다.
기초 지도는, 주행을 통해 획득되는 청소영역의 형태가 외곽선으로 표시되는 지도이고, 실내 구역 지도는 기초 지도에 구역이 구분된 지도이다. 기초 지도와 실내 구역 지도에는 로봇 청소기의 주행 가능한 영역과 장애물정보가 포함된다.
맵생성부(193)는 기초 지도 생성 후, 청소구역을 복수의 구역으로 구분하고, 복수의 구역을 연결하는 연결통로를 포함하며, 각 구역 내의 장애물에 대한 정보를 포함하여 지도를 생성한다. 한편 실시 예에서 청소구역은 러닝 프로세서(130)에 의해 도출된 작업 역역내에서 이동 경로 정보를 기반으로 나누어 질 수 있다. 보다 구체적으로 러닝 프로세서(130) 강화 학습을 통해 도출된 모델을 기반으로 작업 시간을 줄일 수 있는 경로 사이의 순서 정보를 결정할 수 있으며, 맵생성부(193) 이에 대한 정보를 생성된 맵에 같이 표시할 수 있다.
맵생성부(193)는 기초 지도 생성 후, 청소구역을 복수의 구역으로 구분하고, 복수의 구역을 연결하는 연결통로를 포함하며, 각 구역 내의 장애물에 대한 정보를 포함하여 지도를 생성한다. 실시 예에서 연결통로상에 위치하는 문과 같은 객체의 경우 이에 대한 정보를 별도로 확인하고, 사용자에게 표시할 수 있으며, 구역을 나눌 때 이와 같은 연결 통로 정보를 기반으로 구역을 구별할 수 있다.
맵생성부(193)는 일반적인 가정의 방의 형태, 예를 들어 사각형을 기준으로 구역의 형태를 가공한다. 또한, 맵생성부(193)는 기초 지도의 최외각 셀을 기준으로 구역의 형태를 확장하고, 장애물로 인하여 접근할 수 없는 구역에 대하여 구역을 삭제하거나 축소하여 구역의 형태를 가공한다.
또한, 맵생성부(193)는 기초 지도에서, 장애물의 크기에 따라, 일정 크기 이상의 장애물은 지도에 표시하고, 일정 크기 미만의 장애물은 해당 셀을 삭제하여 장애물이 표시되지 않도록 한다. 예를 들어, 맵생성부(193)는 일정크기 이상의 의자, 소파 등의 가구는 지도에 표시하고, 일시적으로 나타나는 장애물, 크기가 작은, 예를 들어 작은 장난감 등은 지도에서 삭제한다. 맵생성부(193)는 지도 생성 시, 충전대의 위치를 지도에 함께 저장한다.
맵생성부(193)는 지도가 생성된 이후, 감지되는 장애물에 대하여, 지도상에 장애물을 추가할 수 있다. 맵생성부(193)는 특정 장애물이 고정된 위치에서 반복적으로 감지되는 경우, 지도에 장애물을 추가하고, 장애물이 일시적으로 감지되는 경우에는 무시한다.
도 5는 본 명세서의 일 실시 예에 따른 로봇 청소기의 사시도이다.
도 5를 참조하면, 로봇 청소기(500)은 청소기 본체(50)와 본체에 구비되는 카메라(121) 또는 센싱부(140)를 포함할 수 있다.
카메라(121) 또는 센싱부(140)는 시각적 이미지를 수신할 수 있으며, 본체(50)에서 조사된 빛이 반사되어 돌아오는 것을 수신하여 이를 기반으로 주변 환경을 확인할 수 있다.
보다 구체적으로 카메라(121) 또는 센싱부(140)는 수신된 빛이 돌아오는 시간 차이를 이용하여 깊이 정보를 획득할 수 있다. 실시 예에서 카메라(121) 또는 센싱부(140)이 위치는 변경될 수 있으며, 카메라(121) 또는 센싱부(140)는 이미지 정보를 획득하고 이를 기반으로 맵을 생성할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 로봇 청소기(500)의 저면도이다.
도 6을 참조하면, 로봇 청소기(500)는 청소기 본체(50)에 구비된 좌륜(61a), 우륜(61b) 및 흡입부(70)를 포함할 수 있다.
좌륜(61a) 및 우륜(61b)은 청소기 본체(50)를 주행시킬 수 있다.
좌륜 구동부(161)는 좌륜(61a)을 구동시킬 수 있고, 우륜 구동부(162)는 우륜(61b)을 구동시킬 수 있다.
좌륜(61a) 및 우륜(61b)이 주행 구동부(160)에 의해 회전됨에 따라, 로봇 청소기(500)은 흡입부(70)를 통해 먼지와 이물질을 흡입할 수 있다.
흡입부(70)는 흡입된 기류 중에서 이물질을 채집하는 필터(미도시)와, 상기 필터에 의해 채집된 이물질들이 축적되는 이물질 수용기(미도시)를 더 포함할 수 있다.
또한, 로봇 청소기(500)은 도 4의 구성에 더해, 걸레질부(미도시)를 더 포함할 수 있다.
걸레질부(미도시)는 걸레(미도시)와, 걸레를 바닥 면에 접촉시킨 상태에서 회전시키거나 설정된 패턴에 따라 움직이는 모터(미도시)를 포함할 수 있다. 로봇 청소기(500)는 걸레질부(미도시)를 통해 바닥 면을 닦을 수 있다.
도 7은 본 발명의 일 실시 예에 따른 인공 지능 시스템(1)의 일 예를 나타낸 도면이다.
도 7을 참조하면, 인공 지능 시스템(1)은 인공 지능 장치(100), 인공 지능 서버(200), 하나 이상의 외부 기기(300)를 포함할 수 있다.
인공 지능 장치(100), 인공 지능 서버(200) 및 외부 기기(300)는 유무선 통신 기술을 이용하여 서로 통신할 수 있다.
특히, 인공 지능 장치(100), 인공 지능 서버(200) 또는 외부 기기(300) 중에서 일부는 5G 네트워크 기술을 이용하여 서로 통신할 수 있다.
또한, 인공 지능 장치(100)는 적어도 하나 이상의 외부 기기(300)의 식별정보 및 위치정보를 획득할 수 있다. 인공 지능 장치(100)은 적어도 하나 이상의 외부 기기(300) 각각을 식별할 수 있다. 인공 지능 장치(100)는 외부 기기(300)로부터 데이터를 수신하는 경우, 테이터를 전송한 외부 기기(300)를 식별하고 해당 외부 기기(300)의 위치를 파악할 수 있다.
외부 기기(300)는 로봇 청소기(500), 인공 지능 로봇, 사물 인터넷 기기, 텔레비전, 에어컨, 냉장고, 세탁기, 홈 보안 카메라, 공기청정기, IoT 디바이스 또는 가전 등을 포함할 수 있다.
예를 들어, 외부 기기(300)는 음성 데이터를 수집할 수 있는 마이크로폰, 영상 데이터를 수집할 수 있는 카메라 또는 이미지 센서, 물체 거리 데이터를 수집할 수 있는 깊이 센서 중 적어도 하나를 포함할 수 있다.
또한, 외부 기기(300)가 움직일 수 있는 기기인 경우, 주행 중 동선 데이터를 수집할 수 있다. 예를 들어, 외부 기기(300)가 로봇 청소기(500)인 경우, 로봇 청소기(500)는 청소를 하기 위해 주행했던 경로에 관한 데이터인 동선 데이터를 수집할 수 있다. 또한, 로봇 청소기(500)는 맵생성부(193)를 통하여 실내 구역 지도 데이터를 생성할 수 있다.
또한, 외부 기기(300)가 영상 데이터를 수집할 수 있는 카메라가 구비되어 있는 기기인 경우, 실내 구역 영상 데이터를 획득할 수 있다. 예를 들어, 외부 기기(300)가 홈 보안 카메라인 경우, 구역별로 영상을 촬영할 수 있으며, 실내 구역 영상 데이터를 획득할 수 있다.
외부 기기(300)는 음성 데이터, 영상 데이터, 물체 거리 데이터, 실내 구역 지도 데이터 및 실내 구역 영상 데이터 중 적어도 하나를 포함하는 데이터를 획득하고, 획득한 데이터를 인공 지능 장치(100)에 전송할 수 있다.
도 8은 본 명세서의 일 실시 예에 따른 로봇 청소기의 동작을 설명하기 위한 순서도이다.
도 8을 참조하면 실시 예에 따른 로봇 청소기의 동작 방법이 도시된다.
단계 805에서 로봇 청소기는 작업 영역에 대한 주행을 수행하면서 맵을 생성할 수 있다. 일 예로 로봇 청소기는 작업 영역 전반을 주행하면서, 획득된 이미지 정보를 기반으로 작엽 영역을 구획하고 이에 대한 맵 정보를 확인할 수 있다. 또한 작업 영역 내에 위치하는 장애물 정보, 문과 같은 지형 정보를 획득할 수 있으며, 이를 통해서 작업 가능한 영역에 대한 정보를 획득할 수 있다. 이와 같이 획득된 정보는 사용자에게 제공될 수 있으며, 로봇 청소기가 작업을 수행하는데 활용될 수 있다. 실시 예에서 작업 영역에 대한 맵 생성은 작업 영역에 대한 이미지 정보를 획득하면서 지그재그 주행을 통해서 생성될 수 있다.
단계 810에서 로봇 청소기는 생성된 맵 정보를 기반으로 작업 영역을 주행할 주행 정책을 학습할 수 있다. 로봇 청소기는 실제로 작업 영역에 대한 작업을 수행하면서, 작업 시간을 기준으로 작업 시간이 줄어들 경우 보상을 주고, 작업 시간이 늘어나는 경우 벌점을 주는 강화학습을 통해서 주행 정책을 학습할 수 있다. 또한 로봇 청소기는 획득된 맵 정보에 대해서 가상적으로 작업을 수행하는 시뮬레이션을 통해 작업 시간을 계산하고 위와 같은 강화 학습을 통해 주행 정책을 학습할 수도 있다.
단계 815에서 로봇 청소기는 학습된 정책에 따라 맵 영역 내에서 작업을 수행할 수 있다. 로봇 청소기는 주행 정책에 따라 작업 영역 내에서 결정된 경로를 따라 이동하면서 작업을 수행할 수 있다. 로봇 청소기는 학습 결과에 따라 작업 영역 중 넓은 공간을 포함하는 구역을 먼저 작업하고, 장애물이 존재하거나 주위의 벽의 모양으로 인해 복잡한 작업 구역을 나중에 작업하는 방향으로 주행 정책을 결정할 수 있다. 또한 복수개의 구역 중 가장 넓은 공간을 포함하는 구역을 먼저 작업하고, 인접한 공간 중 복잡도가 낮은 구역을 다음 작업 영역으로 결정하는 주행 정책을 가질 수 있다. 실시 예에서 해당 구역에서 작업을 수행하기 위해서 로봇 청소기가 방향 전환을 수행하는 횟수가 늘어나는 경우 및 방향 전환 후 주행하는 직선 경로의 길이가 짧은 경우에 복잡도가 높을 수 있다. 또한 실시 예에서 방향 전환 횟수 및 방향 전환 후 주행하는 직성 경로의 길이에 대한 판단은 해당 구역의 전체 넓이를 기준으로 할 수 있다. 단위 넓이 당 방향 전환 횟수가 많은 경우 복잡도가 높을 수 있고, 단위 면적당 직선 주행 경로의 길이가 짧을 경우 복잡도가 높을 수 있다. 이와 같이 복잡도가 높은 구역의 경우 청소를 수행하는데 소요되는 시간이 길기 때문에 이와 같은 영역의 경우 청소 순서를 조절함으로써 전체 작업 시간을 줄일 수 있다.
단계 820에서 로봇 청소기는 최근 수행한 작업 결과를 기반으로 주행 정책을 업데이트 할 수 있다. 이와 같이 실제 작업 결과를 기반으로 주행 정책을 업데이트 함으로써 보다 정확한 소요 시간에 대한 결과를 기반으로 강화 학습을 수행할 수 있다. 최근 수행한 작업 결과에 따라 작업 소요 시간이 줄어든 경우 이에 대한 보상을 수행하여 강화 학습을 수행할 수 있다.
이와 같이 로봇 청소기의 작업과 관련해서 강화 학습을 통한 작업 영역 내에서 주행 정책을 결정함으로써 작업 영역에 대한 작업 시간을 줄일 수 있는 주행 정책을 학습할 수 있다. 또한 실시 예에서 로봇 청소기는 맵 빌딩 초기에는 시뮬레이션을 통해 주행 정책을 학습하고, 이후 작업 횟수가 늘어남에 따라 실제 작업 결과를 기반으로 학습을 수행하여, 주행 정책을 업데이트 할 수 있다. 일 예로 작업 횟수가 기준 값 이하일 경우 시뮬레이션에 따른 학습 결과에 대한 비중을 높이고, 작업 수행 횟수가 늘어나는 경우 실제 수행한 작업 결과를 기반으로 학습을 수행하며, 이에 대한 가중치를 높게 적용할 수 있다. 실시 예에서 기준 값은 작업 영역의 넓이 및 복잡도 중 적어도 하나에 따라 달라질 수 있다. 또한 로봇 청소기는 이동하는 장애물이 있는 환경에서 수행한 작업 결과의 경우, 학습을 수행할 때 낮은 가중치를 적용하여 학습을 수행할 수 있다.
도 9는 본 명세서의 실시 예에 따른 주행 정책 모델을 업데이트 하기 위한 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 실시 예에 따른 로봇 청소기의 주행 정책 모델을 업데이트 하기 위한 방법이 도시된다.
실시 예에서 프로세서(180)는 작업영역 맵 데이터(905)를 주행 정책 모델(910)에 대한 입력 값으로 제공하고, 이에 대한 결과 값으로 주행 정책 데이터(915)를 확인할 수 있다. 또한 프로세서(180)는 주행 정책 데이터(915)를 기반으로 작업을 수행하고, 수행된 작업에 대한 작업 결과 정보(920)를 획득할 수 있다. 작업 결과 정보(920)는 특정 경로에 대응하는 작업 시간 정보, 소모된 배터리의 용량 및 수거된 이물질의 양에 대한 정보 중 적어도 하나를 포함할 수 있다.
또한 프로세서(180)는 주행 정책 업데이트를 위해 작업 결과 정보(920)를 파라미터(925)화 할 수 있다. 파라미터(925)는 주행 정책 모델(910)의 학습을 위해 소정의 형식일 수 있으며, 일 예에 따르면 강화 학습을 위한 보상 및 벌점 정보를 포함할 수 있다. 실시 예에서 작업 시간이 줄어드는 경우 보상을 줄 수 있다. 또한 다른 방법으로는 수거된 이물질의 양을 기반으로 보상을 줄 수 있다. 수거된 이물질이 많을 경우 보상을 줄 수 있다. 다만 작업 시간을 가장 높은 가중치로 보상을 줄 수 있다.
이후 프로세서(180)는 파라미터(925)를 주행 정책 모델(910)에 적용하여 주행 정책 데이터를 업데이트 할 수 있으며, 이와 같은 동작을 반복함으로써 보다 나은 주행 정책을 결정할 수 있으며, 사용자 편의성이 향상될 수 있다. 보다 구체적으로 작업 시간이 줄어듦에 따라 리워드 파라미터가 주행 정책 모델(910)에 제공될 수 있으며, 이에 따라 주행 정책 모델(910)은 보다 높은 보상을 획득할 때까지 반복적으로 학습을 수행하여 보다 짧은 작업 시간을 가질 수 있는 주행 정책 데이터를 획득할 수 있다. 이와 같이 프로세서(180)는 작업 시간을 기반으로 파라미터를 추출하여 주행 정책 모델(910)을 학습시킬 수 있으며, 학습된 주행 정책에 따라 작업 영역을 적어도 두개의 구역으로 분리하고, 이에 대한 정보를 사용자에게 제공할 수 있으며, 작업 시간을 줄이기 위한 복수개의 구역 사이의 작업 순서를 결정할 수도 있다.
도 10은 본 명세서의 실시 예에 따른 분할된 구역 정보를 제공하고 이에 따른 작업을 수행하는 로봇 청소기의 동작을 설명하기 위한 순서도이다.
도 10을 참조하면, 실시 예에 따른 로봇 청소기의 동작 방법이 도시된다.
단계 1005에서 로봇 청소기는 생성된 맵 정보를 기반으로 주행 정책을 학습할 수 있다. 보다 구체적으로 맵 정보를 기반으로 주행 모델을 통해 주행 정책을 학습할 수 있으며, 작업 영역의 특성을 기반으로 주행 정책을 학습할 수 있다. 이와 같은 학습은 작업 시간에 따른 보상 값을 기반으로 한 강화학습일 수 있다. 이와 같은 강화 학습은 실제 작업 수행 결과 및 시뮬레이션 결과 중 적어도 하나를 기반으로 수행될 수 있다.
단계 1010에서 로봇 청소기는 주행 정책을 기반으로 작업 영역을 적어도 하나의 구역으로 분할하고 이에 대한 정보를 사용자에게 제공할 수 있다. 이와 같은 구역 분할은 작업 영역의 맵의 특성 및 구역 분할에 따른 작업 시간 중 적어도 하나를 기반으로 수행될 수 있다. 일 예로 맵의 복잡도를 기반으로 구역을 나누고, 이에 대한 정보를 제공할 수 있다. 또한 로봇 청소기는 작업 영역 내의 벽이나 문, 장애물을 고려하여 구역을 나눌 수 있으며, 로봇 청소기는 나누어진 구역별로 작업을 수행할 수 있다. 또한 실시 예에서 작업 수행시 일부 구역에 접근이 불가능 할 경우 접근 가능한 구역을 기준으로 작업을 수행할 수도 있다.
단계 1015에서 로봇 청소기는 작업 영역 내에서 확인된 구역 정보를 기반으로 구역 별 작업 순서를 결정할 수 있다. 실시 예에서 작업 순서는 강화 학습을 통해서 수행될 수 있으며, 작업 시간이 줄어드는 경우 보상이 주어지며, 이에 따라 작업 시간을 줄이는 방향으로 학습을 수행할 수 있다. 이와 같은 학습을 통해 로봇 청소기는 작업 구역 중 복잡도가 낮은 구역부터 작업을 수행할 수 있다. 또한 작업을 수행한 인접 구역 중 복잡도가 가장 낮은 구역을 선택하여 다음으로 작업을 수행할 수 있으며, 구역별 작업 순서를 기반으로 해당 구역 내에서 다음 구역으로 이동이 용이하도록 작업 경로를 결정할 수 있다.
단계 1020에서는 결정된 작업 순서에 따라 순차적으로 작업을 수행할 수 있다. 실시 예에서 작업 수행시 작업 영역 내에서의 작업 경로는 작업 구역의 순서를 고려하여 결정될 수 있다. 또한 강화 학습을 기반으로 결정된 주행 정책에 따라서 작업 순서는 복잡도가 낮은 구역부터 복잡도가 높은 구역을 진행하는 것으로 결정될 수 있다. 또한 실시 예에서 구역을 분할할 때 분할될 구역 사이의 복잡도의 차이가 크도록 구역을 나눌 수 있다.
단계 1025에서 로봇 청소기는 수행한 작업 결과를 기반으로 주행 정책을 업데이트 할 수 있다. 주행 정책 업데이트는 작업 결과와 관련된 정보를 기반으로 수행될 수 있으며, 이와 같은 업데이트를 통해 작업 구역의 분할 방법 및 해당 작업 구역 내에서 주행 경로 역시 업데이트 될 수 있다. 작업 구역이 변경되는 경우 이와 관련된 정보를 사용자에게 제공할 수 있다.
한편 실시 예에서 로봇 청소기는 결정된 구역 정보를 사용자에게 제공할 수 있으며, 사용자는 결정된 구역 중 적어도 일부의 구역에 대한 청소를 수행하는 것을 로봇 청소기에게 지시 할 수 있다. 이와 같은 지시에 따라 로봇 청소기는 청소를 수행하는 것으로 지시된 구역에 대한 청소 순서를 결정할 수 있다. 이와 같은 일부 구역에 대한 청소 수행을 위해 로봇 청소기는 추가적인 학습을 수행할 수 있다.
이와 같이 작업 구역을 분할하고, 작업 구역 내에서 주행 경로를 결정함으로써 여러 특성을 가지는 구역들에 대응한 청소 동작을 수행할 수 있으며, 전체 작업 시간을 줄일 수 있다.
도 11은 본 명세서의 실시 예에 따른 로봇이 구역 별 작업 가능 여부를 기반으로 작업을 수행하는 방법을 설명하기 위한 순서도이다.
도 11을 참조하면, 실시 예에 따른 로봇 청소기의 동작 방법이 도시된다.
단계 1105에서 로봇 청소기는 생성된 맵 정보 및 학습된 주행 정책을 기반으로 작업 구역 정보를 제공할 수 있다. 작업 구역의 경우 이전 실시 예에서 설명한 것과 같이 작업을 수행하는 순서에 따라 구역이 나누어 질 수 있으며, 구역을 나누는 방식에 대해서는 중복된 설명을 생략한다.
단계 1110에서 로봇 청소기는 카메라(121) 등을 사용하여 작업 구역 중 작업 가능한 구역을 확인할 수 있다. 일 예로 작업 구역 사이의 출입문이 닫혀 있어서 내부로 진입하지 못하는 구역이 있는 경우, 해당 구역을 작업 불가능 구역으로 확인할 수 있다. 로봇 청소기는 특정 구역에 대한 작업을 수행하면서 작업 가능 구역을 확인하는 것을 같이 진행할 수 이에 따라 다음 작업 구역 중 작업 가능한 구역을 확인할 수 있다.
단계 1115에서 로봇 청소기는 확인한 정보를 기반으로 작업 가능 구역에 대해서 작업 순서를 결정할 수 있다. 작업 순서는 강화 학습에 따라서 결정될 수 있으며, 결정된 작업 순서는 각 구역의 복잡도가 고려될 수 있다. 작업을 수행한 구역에 인접한 구역 중 복잡도가 가장 낮은 구역을 기준으로 작업을 수행할 수 있다.
단계 1120에서 로봇 청소기는 결정된 작업 순서를 기반으로 작업을 수행할 수 있다. 또한 로봇 청소기는 다음에 수행할 작업 구역의 순서를 기반으로 특정 구역 내에서 주행 정책을 업데이트 할 수 있다. 이와 같은 업데이트 역시 강화 학습을 통해 수행될 수 있으며, 강화 학습에 따라 작업 시간을 줄이는 방향으로 로봇 청소기의 정책이 업데이트 될 수 있다.
단계 1125에서 로봇 청소기는 수행한 작업 결과를 기반으로 주행 정책을 업데이트 할 수 있다. 주행 정책 업데이트는 특정 작업 구역 사이의 작업 순서를 기반으로 이에 대응하는 가중치를 적용하여 수행될 수 있다. 또한 이와 같은 학습 정책은 작업 가능 구역이 결정되면 가능한 구역들의 집합을 기준으로 관리될 수 있다.
도 12는 본 명세서의 실시 예에 따른 로봇 청소기의 학습 방법을 통한 주행 패턴의 변화를 설명하기 위한 도면이다.
도 12를 참조하면, 작업 영역(1210, 1220)에서 로봇 청소기(1200)가 작업을 수행하는 경로(1215, 1225)가 도시된다. 로봇 청소기(1200)는 주변 이미지 정보를 기반으로 작업 영역(1210, 1220)에 대한 지도 정보를 획득할 수 있으며, 이에 따라 작업 영역(1210, 1220)에 대한 주행을 수행할 수 있다. 초기에 작업 경로(1215)는 단순한 지그재그 움직임으로 영역 사이의 이동 거리가 멀어지고 이에 따라 작업 시간이 길어 질 수 있다. 강화 학습을 수행한 뒤의 작업 경로(1225)는 전체 이동 거리가 짧아질 수 있으며, 이에 따라 작업 시간 역시 짧아질 수 있다. 이와 같이 강화 학습을 수행한 로봇 청소기의 작업 경로는 전 체 경로 상에서 이동을 보다 효과적으로 수행할 수 있으며, 이에 따른 작업 시간이 줄어들 수 있다.
도 13은 본 명세서의 실시 예에 따라 로봇이 사용자에게 제공한 정보를 기반으로 사용자에게 표시되는 작업 영역에 대한 이미지 정보를 설명하기 위한 도면이다.
도 13을 참조하면, 실시 예에 따라 로봇 청소기가 도출한 작업 영역 내의 구역 정보 및 관련 정보가 도시된다.
로봇 청소기(1305)가 도킹 장치(1310)에 위치할 수 있으며, 작업 영역 내에 복수개의 구역(1312, 1314, 1316, 1318, 1320, 1322)가 표시될 수 있다. 또한 출입문(1332) 및 장애물(1334)의 아이콘이 표시될 수 있다. 또한 실시 예에서 각 구역(1312, 1314, 1316, 1318, 1320, 1322)은 주행 정책에 따라 나누어 질 수 있으며, 주행 정책이 업데이트 됨에 따라 구역의 분할 역시 달라질 수 있다. 이와 같은 구역 정보는 사용자에게 제공될 수 있으며, 사용자는 구역 정보 및 각 구역에 대한 청소 순서 정보 역시 제공받을 수 있다.
로봇 청소기(1305)는 맵 정보를 기반으로 강화 학습 결과에 따라 주행 정책을 업데이트 하고 이에 따라 작업 영역에 각 구역을 나눌 수 있다. 또한 각 구역별로 작업을 수행할 수 있으며, 학습 결과에 따라 작업 시간을 줄일 수 있도록 구역을 설정할 수 있다. 실시 예에서 제1구역(1312)의 넓이가 가장 넓고 복잡도가 낮으며, 도킹 장치(1310)의 인근에 위치하고 있는바, 먼저 작업을 수행할 수 있다. 이후 복잡도 및 각 구역 사이의 위치 관계에 따라 제2구역(1314), 제3구역(1316), 제6구역(1322), 제5구역(1320), 제4구역(1318)의 순서대로 작업을 수행할 수 있다. 이와 같은 작업 순서는 강화 학습의 결과에 따라 달라질 수 있으나, 작업 시간을 보상 값으로 하여 학습을 수행하는바, 전체 작업 시간이 짧아지도록 반복 학습을 수행할 수 있다.
명세서 전반에서 로봇 청소기를 기준으로 설명하였으나, 작업 영역에 대한 맵 정보를 생성하고 이에 따라 작업을 수행하는 이동 로봇에 공통적으로 적용될 수 있다. 보다 구체적으로 생성된 맵 정보를 기반으로 작업을 수행하면서 작업 영역 내의 작업 가능 구역을 이동하면서 작업을 수행하는 이동 로봇에 본 명세서의 실시 예가 적용될 수 있으며, 이에 따라 전체 작업 시간이 줄어드는 효과가 생길 수 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (20)

  1. 이동 로봇에 있어서,
    외관을 형성하는 바디;
    상기 바디를 이동 시키는 주행부; 및
    작업 영역에 대한 맵(map) 정보를 획득하고, 상기 작업 맵 정보 및 상기 맵에 대한 작업 정보를 기반으로 학습을 통한 주행 경로를 결정하고, 상기 주행 경로로 상기 작업 영역에서 작업을 수행하도록 상기 주행부를 제어하는 제어부;를 포함하고,
    상기 작업 정보는 특정 주행 경로에 대응하는 작업 시간 정보를 포함하고, 상기 제어부는 상기 작업 시간 정보를 기반으로 작업 시간이 줄어드는 것에 대응하여 보상을 주는 강화 학습을 통한 주행 경로를 결정하는 것을 특징으로 하는 이동 로봇.
  2. 제1항에 있어서,
    상기 제어부는
    상기 학습을 통해 상기 맵 정보에 적어도 하나의 구역을 설정하고, 상기 설정된 구역에 대한 정보를 출력하는 것을 특징으로 하는 이동 로봇.
  3. 제1항에 있어서,
    상기 제어부는
    상기 학습을 통해 상기 맵 정보에 적어도 하나의 구역 설정 및 상기 구역에 대한 작업 순서 결정을 수행하는 것을 특징으로 하는 이동 로봇.
  4. 제3항에 있어서,
    상기 제어부는
    상기 구역에 대한 작업 순서를 기반으로 상기 주행 경로를 결정하는 것을 특징으로 하는 이동 로봇.
  5. 제3항에 있어서,
    상기 작업 순서는 상기 적어도 하나의 구역에 대응하는 복잡도 정보를 기반으로 결정되며,
    상기 복잡도 정보는 상기 구역의 넓이 및 상기 구역에서 작업을 위한 방향 전환 횟수를 기반으로 결정되는 것을 특징으로 하는 이동 로봇.
  6. 제5항에 있어서,
    상기 작업 순서는 복잡도가 낮은 구역이 복잡도가 높은 구역보다 빠른 순서를 가지는 것을 특징으로 하는 이동 로봇.
  7. 제1항에 있어서,
    상기 작업 정보는 특정 주행 경로에 대응하는 이물질 수거 정보 및 배터리 소모 정보를 포함하며,
    상기 제어부는 상기 작업 시간 정보, 상기 이물질 수거 정보 및 상기 배터리 소모 정보 각각에 다른 가중치를 적용하여 상기 학습을 수행하는 것을 특징으로 하는 이동 로봇.
  8. 제1항에 있어서,
    상기 작업 정보는 상기 제어부의 시뮬레이션에 의해 생성된 작업 정보를 포함하는 것을 특징으로 하는 이동 로봇.
  9. 제1항에 있어서,
    상기 제어부는
    상기 학습을 통해 상기 맵 정보에 적어도 두 개의 구역을 설정하고, 상기 구역 중 일부의 구역에 대한 작업 지시를 수신하고, 상기 일부의 구역에 대한 작업 정보를 기반으로 학습을 통한 추가적인 주행 경로를 결정하는 것을 특징으로 하는 이동 로봇.
  10. 제1항에 있어서,
    상기 제어부는
    상기 작업 영역 중 작업 가능한 구역을 확인하고, 상기 작업 가능한 구역에 대한 작업 정보를 기반으로 학습을 통한 주행 정보를 결정하는 것을 특징으로 하는 이동 로봇.
  11. 이동 로봇의 제어 방법에 있어서,
    작업 영역에 대한 맵(map) 정보를 획득하는 단계;
    상기 작업 맵 정보 및 상기 맵에 대한 작업 정보를 기반으로 학습을 통한 주행 경로를 결정하는 단계; 및
    상기 주행 경로로 상기 작업 영역에서 작업을 수행하는 단계;를 포함하고,
    상기 작업 정보는 특정 주행 경로에 대응하는 작업 시간 정보를 포함하고, 상기 주행 경로는 상기 작업 시간 정보를 기반으로 작업 시간이 줄어드는 것에 대응하여 보상을 주는 강화 학습을 통해 결정되는 것을 특징으로 하는 제어 방법.
  12. 제11항에 있어서,
    상기 학습을 통해 상기 맵 정보에 적어도 하나의 구역을 설정하는 단계; 및
    상기 설정된 구역에 대한 정보를 출력하는 단계를 더 포함하는 것을 특징으로 하는 제어 방법.
  13. 제11항에 있어서,
    상기 학습을 통해 상기 맵 정보에 적어도 하나의 구역 설정 및 상기 구역에 대한 작업 순서 결정을 수행하는 단계를 더 포함하는 것을 특징으로 하는 제어 방법.
  14. 제13항에 있어서,
    상기 주행 경로는 상기 구역에 대한 작업 순서를 기반으로 결정되는 것을 특징으로 하는 제어 방법.
  15. 제13항에 있어서,
    상기 작업 순서는 상기 적어도 하나의 구역에 대응하는 복잡도 정보를 기반으로 결정되며,
    상기 복잡도 정보는 상기 구역의 넓이 및 상기 구역에서 작업을 위한 방향 전환 횟수를 기반으로 결정되는 것을 특징으로 하는 제어 방법.
  16. 제15항에 있어서,
    상기 작업 순서는 복잡도가 낮은 구역이 복잡도가 높은 구역보다 빠른 순서를 가지는 것을 특징으로 하는 제어 방법.
  17. 제11항에 있어서,
    상기 작업 정보는 특정 주행 경로에 대응하는 이물질 수거 정보 및 배터리 소모 정보를 포함하며,
    상기 학습은 상기 작업 시간 정보, 상기 이물질 수거 정보 및 상기 배터리 소모 정보 각각에 다른 가중치를 적용하여 수행되는 것을 특징으로 하는 제어 방법.
  18. 제11항에 있어서,
    상기 작업 정보는 상기 제어부의 시뮬레이션에 의해 생성된 작업 정보를 포함하는 것을 특징으로 하는 제어 방법.
  19. 제11항에 있어서,
    상기 학습을 통해 상기 맵 정보에 적어도 두 개의 구역을 설정하는 단계;
    상기 구역 중 일부의 구역에 대한 작업 지시를 수신하는 단계; 및
    상기 일부의 구역에 대한 작업 정보를 기반으로 학습을 통한 추가적인 주행 경로를 결정하는 단계;를 더 포함하는 것을 특징으로 하는 제어 방법.
  20. 제11항에 있어서,
    상기 작업 영역 중 작업 가능한 구역을 확인하는 단계; 및
    상기 작업 가능한 구역에 대한 작업 정보를 기반으로 학습을 통한 주행 정보를 결정하는 단계;를 더 포함하는 것을 특징으로 하는 제어 방법.
KR1020200129362A 2020-10-07 2020-10-07 이동 로봇 및 그 제어방법 KR20220046210A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200129362A KR20220046210A (ko) 2020-10-07 2020-10-07 이동 로봇 및 그 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200129362A KR20220046210A (ko) 2020-10-07 2020-10-07 이동 로봇 및 그 제어방법

Publications (1)

Publication Number Publication Date
KR20220046210A true KR20220046210A (ko) 2022-04-14

Family

ID=81211317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200129362A KR20220046210A (ko) 2020-10-07 2020-10-07 이동 로봇 및 그 제어방법

Country Status (1)

Country Link
KR (1) KR20220046210A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200089235A1 (en) * 2014-09-26 2020-03-19 Ecovacs Robotics Co., Ltd. Self-moving robot movement boundary determining method
KR102556408B1 (ko) * 2022-09-26 2023-07-17 (주)신정개발 협업형 무인로봇을 이용한 산업용 저장소의 자율 클리닝 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200089235A1 (en) * 2014-09-26 2020-03-19 Ecovacs Robotics Co., Ltd. Self-moving robot movement boundary determining method
KR102556408B1 (ko) * 2022-09-26 2023-07-17 (주)신정개발 협업형 무인로봇을 이용한 산업용 저장소의 자율 클리닝 시스템

Similar Documents

Publication Publication Date Title
US11625508B2 (en) Artificial intelligence device for guiding furniture placement and method of operating the same
KR102255712B1 (ko) 오염로그를 이용하여 청소를 수행하는 인공 지능 로봇 및 그 방법
KR102331563B1 (ko) 구역별 오염정보를 이용하여 청소를 수행하는 인공 지능 로봇 및 그 방법
KR102305206B1 (ko) 인공 지능을 통해 바닥 상황을 고려하여 청소하는 로봇 청소기 및 그 방법
KR102298582B1 (ko) 센서 데이터를 이용하여 청소 동선을 결정하는 인공 지능 로봇 및 그 방법
KR102367831B1 (ko) 운전 로그 및 인공지능모델을 이용하여 고장 진단을 하는 인공 지능 기기 및 그 방법
KR102286137B1 (ko) 공기 청정기의 배치 위치를 가이드하는 인공 지능 장치 및 그의 동작 방법
KR102287460B1 (ko) 인공지능 무빙 에이전트
AU2019437767B2 (en) Artificial intelligence cleaner and operation method thereof
US20200008639A1 (en) Artificial intelligence monitoring device and method of operating the same
US11580385B2 (en) Artificial intelligence apparatus for cleaning in consideration of user&#39;s action and method for the same
KR20210051014A (ko) 로봇 청소기 및 그의 동작 방법
KR20210072362A (ko) 인공 지능 모델에 대한 학습 데이터를 생성하는 인공 지능 장치 및 그 방법
US11653805B2 (en) Robot cleaner for performing cleaning using artificial intelligence and method of operating the same
KR20190110500A (ko) 인공지능 서버
US11318614B2 (en) Robot cleaner and operating method thereof
KR20210066207A (ko) 객체를 인식하는 인공 지능 장치 및 그 방법
KR20220046210A (ko) 이동 로봇 및 그 제어방법
KR20210079610A (ko) 인공 지능 청소 로봇 및 방법
US20210204785A1 (en) Artificial intelligence moving agent
KR20190114925A (ko) 소리 신호 분류를 이용한 인공지능장치 및 그 방법
Ma et al. Using RGB image as visual input for mapless robot navigation
KR102285472B1 (ko) 음향의 이퀄라이징 방법과, 이를 구현하는 로봇 및 ai 서버
KR102591707B1 (ko) 보행경로예측장치
US20230230320A1 (en) Artificial intelligence device and operating method thereof