KR20220152866A - 로봇 장치, 그 제어 방법, 및 프로그램이 기록된 기록매체 - Google Patents

로봇 장치, 그 제어 방법, 및 프로그램이 기록된 기록매체 Download PDF

Info

Publication number
KR20220152866A
KR20220152866A KR1020210060334A KR20210060334A KR20220152866A KR 20220152866 A KR20220152866 A KR 20220152866A KR 1020210060334 A KR1020210060334 A KR 1020210060334A KR 20210060334 A KR20210060334 A KR 20210060334A KR 20220152866 A KR20220152866 A KR 20220152866A
Authority
KR
South Korea
Prior art keywords
mode
machine learning
learning model
person
driving area
Prior art date
Application number
KR1020210060334A
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 KR1020210060334A priority Critical patent/KR20220152866A/ko
Priority to PCT/KR2022/095097 priority patent/WO2022240274A1/ko
Publication of KR20220152866A publication Critical patent/KR20220152866A/ko
Priority to US18/388,607 priority patent/US20240077870A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • B25J11/0085Cleaning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/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/1679Programme controls characterised by the tasks executed
    • B25J9/1684Tracking a line or surface by means of sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/22Command input arrangements
    • G05D1/221Remote-control arrangements
    • G05D1/222Remote-control arrangements operated by humans
    • G05D1/224Output arrangements on the remote controller, e.g. displays, haptics or speakers
    • G05D1/2244Optic
    • G05D1/2245Optic providing the operator with a purely computer-generated representation of the environment of the vehicle, e.g. virtual reality
    • G05D1/2246Optic providing the operator with a purely computer-generated representation of the environment of the vehicle, e.g. virtual reality displaying a map of the environment
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/243Means capturing signals occurring naturally from the environment, e.g. ambient optical, acoustic, gravitational or magnetic signals
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/648Performing a task within a working area or space, e.g. cleaning
    • G05D1/6482Performing a task within a working area or space, e.g. cleaning by dividing the whole area or space in sectors to be processed separately
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W16/00Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
    • H04W16/18Network planning tools
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2105/00Specific applications of the controlled vehicles
    • G05D2105/10Specific applications of the controlled vehicles for cleaning, vacuuming or polishing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2107/00Specific environments of the controlled vehicles
    • G05D2107/40Indoor domestic environment
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2109/00Types of controlled vehicles
    • G05D2109/10Land vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2111/00Details of signals used for control of position, course, altitude or attitude of land, water, air or space vehicles
    • G05D2111/10Optical signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Fuzzy Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • Manipulator (AREA)
  • Image Analysis (AREA)

Abstract

로봇 장치에 있어서, 상기 로봇 장치를 이동시키는 이동 어셈블리; 상기 로봇 장치의 주행 중에 주변을 촬영하여 입력 영상 신호를 생성하는 카메라; 통신 인터페이스; 및 상기 로봇 장치의 주행 영역에서 사람을 검출하고, 상기 주행 영역에 사람이 없다고 판단된 경우, 제1 모드에서, 상기 영상 신호로부터 생성된 입력 영상을 클라우드 기계학습 모델에 입력하고, 상기 클라우드 기계학습 모델의 출력에 기초하여 객체를 인식하고, 상기 주행 영역에 사람이 있다고 판단된 경우, 제2 모드에서, 상기 입력 영상을 온-디바이스 기계학습 모델에 입력하고, 상기 온-디바이스 기계학습 모델의 출력에 기초하여 객체를 인식하고, 상기 객체 인식 결과를 이용하여 상기 이동 어셈블리를 통한 상기 로봇 장치의 주행을 제어하는 적어도 하나의 프로세서를 포함하고, 상기 클라우드 기계학습 모델은 상기 통신 인터페이스를 통해 연결된 클라우드 서버에서 동작하고, 상기 온-디바이스 기계학습 모델은, 상기 로봇 장치 상에서 동작하는, 로봇 장치가 제공된다.

Description

로봇 장치, 그 제어 방법, 및 프로그램이 기록된 기록매체 {Robot apparatus, controlling method thereof, and recording medium for recording program}
본 개시의 실시예들은 로봇 장치, 로봇 장치 제어 방법, 및 컴퓨터 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
카메라, 마이크, 센서 등에서 획득되는 데이터들의 특징을 스스로 분류 또는 학습하는 알고리즘 기술은 고성능의 연산 능력을 요구한다. 이로 인해, 전자 장치가 획득된 데이터들을 장치에서 직접 처리하지 않고, 원격의 클라우드 서버에 전달하고, 클라우드 서버에 데이터의 분석을 요청하고, 분석 결과를 수신하는 방식이 이용되고 있다. 이러한 경우, 서버는 다수의 전자 장치에서 수집된 빅데이터를 기반으로 한 기계학습 알고리즘을 이용하여 전자 장치로부터 수신된 데이터를 처리하고, 처리 결과 값을 전자 장치에서 이용 가능한 형태로 전자 장치에 전달한다. 전자 장치는 클라우드 서버로부터 수신한 결과 값을 이용하여 사전에 정의된 동작을 수행할 수 있다. 그런데, 전자 장치에서 촬영한 이미지들이 클라우드 서버를 활용한 기계학습 알고리즘 처리에 사용되는 경우, 사용자가 공개하고 싶지 있지 않은 이미지나 비디오 데이터를 클라우드 서버로 전송해야 하는 문제가 있다. 만약 사용자가 개인 정보 보호를 위해 수집된 데이터의 서버 전송을 동의하지 않는 경우, 빅데이터를 활용한 클라우드 AI(Artificial Intelligence) 기반 제어 기능을 제공받지 못하는 문제가 있다.
본 개시의 실시예들은, 영상을 촬영하면서 주행하는 로봇 장치에서, 클라우드 기계학습 모델을 이용하면서 사용자의 프라이버시를 보장할 수 있는 로봇 장치, 로봇 장치 제어 방법, 및 컴퓨터 프로그램을 저장하는 기록매체를 제공하기 위한 것이다.
본 개시의 일 실시예의 일 측면에 따르면, 로봇 장치에 있어서, 로봇 장치를 이동시키는 이동 어셈블리; 로봇 장치의 주행 중에 주변을 촬영하여 입력 영상 신호를 생성하는 카메라; 통신 인터페이스; 및 로봇 장치의 주행 영역에서 사람을 검출하고, 주행 영역에 사람이 없다고 판단된 경우, 제1 모드에서, 영상 신호로부터 생성된 입력 영상을 클라우드 기계학습 모델에 입력하고, 클라우드 기계학습 모델의 출력에 기초하여 객체를 인식하고, 주행 영역에 사람이 있다고 판단된 경우, 제2 모드에서, 입력 영상을 온-디바이스 기계학습 모델에 입력하고, 온-디바이스 기계학습 모델의 출력에 기초하여 객체를 인식하고, 객체를 인식한 결과를 이용하여 이동 어셈블리를 통한 로봇 장치의 주행을 제어하는 적어도 하나의 프로세서를 포함하고, 클라우드 기계학습 모델은 통신 인터페이스를 통해 연결된 클라우드 서버에서 동작하고, 온-디바이스 기계학습 모델은, 로봇 장치 상에서 동작하는, 로봇 장치가 제공된다.
또한, 본 개시의 일 시시예에 따르면, 로봇 장치는, 출력 인터페이스를 더 포함하고, 적어도 하나의 프로세서는, 제1 모드로 동작 중에, 주행 영역에 사람이 있다고 판단된 경우, 출력 인터페이스를 통해 제2 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공하고, 제2 모드로 동작 중에, 주행 영역에 사람이 없다고 판단된 경우, 출력 인터페이스를 통해 제1 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서는, 클라우드 기계학습 모델 또는 온-디바이스 기계학습 모델의 객체 인식 결과에 기초하여, 주행 영역에 사람이 있는지 여부를 판단할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 통신 인터페이스는, 주행 영역에서 사람을 검출하는 제1 센서를 포함하는 외부 장치와 통신하고, 적어도 하나의 프로세서는, 제1 센서의 센서 검출 값에 기초하여 주행 영역에 사람이 있는지 여부를 판단할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 통신 인터페이스는, 주행 영역을 포함하는 소정의 영역을 관리하는 영역 관리 시스템과 통신하고, 적어도 하나의 프로세서는, 영역 관리 시스템이 외출 모드로 설정되었다는 외출 정보를 수신한 것에 기초하여, 주행 영역에 사람이 없다고 판단할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 통신 인터페이스는, 사용자 계정에 등록된 적어도 하나의 전자 장치를 제어하는 장치 관리 서버와 통신하고, 적어도 하나의 프로세서는, 장치 관리 서버의 사용자 계정에 등록된 다른 전자 장치로부터 수신된 사용자 위치 정보 또는 외출 모드 설정 정보에 기초하여, 주행 영역에 사람이 있는지 여부를 판단할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서는, 주행 영역 전체를 스캔하고, 주행 영역 전체의 스캔 결과에 기초하여 주행 영역에 사람이 있는지 여부를 판단할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 주행 영역은 주행 영역을 분할하여 정의되는 적어도 하나의 서브 주행 영역을 포함하고, 적어도 하나의 프로세서는, 적어도 하나의 서브 주행 영역 중에서 사람이 없다고 판단된 서브 주행 영역에 대해서는 제1 모드로 동작하여 객체를 인식하고, 적어도 하나의 서브 주행 영역 중에서 사람이 있다고 판단된 서브 주행 영역에 대해서는 제 2 모드로 동작하면서 객체를 인식할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서는, 온-디바이스 기계학습 모델은, 제2 모드에서 노멀 모드로 동작하고, 제1 모드에서 상기 노멀 모드에 비해 처리량이 적은 상기 라이트 모드로 동작하고, 적어도 하나의 프로세서는, 제1 모드에서 동작하는 동안, 온-디바이스 기계학습 모델을 라이트 모드로 설정하고, 입력 영상을 클라우드 기계학습 모델로 입력하기 전에, 입력 영상을 라이트 모드로 설정된 온-디바이스 기계학습 모델에 입력하고, 라이트 모드로 설정된 온-디바이스 기계학습 모델의 출력에 기초하여 사람이 검출되지 않았다고 판단되면, 입력 영상을 클라우드 기계학습 모델로 입력하고, 라이트 모드로 설정된 온-디바이스 기계학습 모델의 출력에 기초하여 사람이 검출되었다고 판단되면, 입력 영상을 클라우드 기계학습 모델로 입력하는 동작을 중단할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서는, 제1 모드로 동작 중에, 주행 영역에 사람이 있다고 판단된 경우, 제2 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공하고, 제2 모드로 동작 중에, 주행 영역에 사람이 없다고 판단된 경우, 제1 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공하고, 알림은 통신 인터페이스를 통해 연결된 장치 관리 서버의 사용자 계정에 등록된 적어도 하나의 장치를 통해 출력될 수 있다.
또한, 본 개시의 일 실시예에 따르면, 적어도 하나의 프로세서는, 주행 영역 중 프라이버시 영역이 설정된 경우, 프라이버시 영역에서는, 사람의 검출 여부에 관계없이, 제2 모드로 동작할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 로봇 장치는, 진공 흡입 또는 걸레 수분 공급 중 적어도 하나의 동작을 수행하는 청소 어셈블리를 더 포함하고, 적어도 하나의 프로세서는, 제1 모드 및 제2 모드에서, 주행 영역을 주행하면서, 청소 어셈블리를 동작시킬 수 있다.
본 개시의 일 실시예의 다른 측면에 따르면, 로봇 장치의 주행 중에 주변을 촬영하여 입력 영상을 생성하는 단계; 로봇 장치의 주행 영역에서 사람을 검출하는 단계; 주행 영역에 사람이 없다고 판단된 경우, 제1 모드에서, 입력 영상을 클라우드 기계학습 모델에 입력하고, 클라우드 기계학습 모델의 출력에 기초하여 객체를 인식하는 단계; 주행 영역에 사람이 있다고 판단된 경우, 제2 모드에서, 입력 영상을 온-디바이스 기계학습 모델에 입력하고, 온-디바이스 기계학습 모델의 출력에 기초하여 객체를 인식하는 단계; 및 객체를 인식한 결과를 이용하여 로봇 장치의 주행을 제어하는 단계를 포함하고, 클라우드 기계학습 모델은 로봇 장치와 통신하는 클라우드 서버에서 동작하고, 온-디바이스 기계학습 모델은, 로봇 장치 상에서 동작하는, 로봇 장치 제어 방법이 제공된다.
본 개시의 일 실시예의 또 다른 측면에 따르면, 로봇 장치 제어 방법을 컴퓨터에서 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체가 제공된다.
도 1은 본 개시의 일 실시예에 따른 로봇 장치 및 로봇 장치 제어 시스템을 나타낸 도면이다.
도 2는 본 개시의 일 실시예에 따른 로봇 장치의 구조를 나타낸 블록도이다.
도 3은 본 개시의 일 실시예에 따른 로봇 장치 제어 방법을 나타낸 도면이다.
도 4는 본 개시의 일 실시예에 따른 기계학습 모델의 출력을 나타낸 도면이다.
도 5는 본 개시의 일 실시예에 따라 사람 존재 여부를 판단하는 과정을 나타낸 도면이다.
도 6a 및 도 6b는 본 개시의 일 실시예에 따라 수행되는 로봇 장치의 패트롤 모드의 동작을 나타낸 도면이다.
도 7은 본 개시의 일 실시예에 따른 로봇 장치의 주행 영역을 나타낸 도면이다.
도 8은 본 개시의 일 실시예에 따른 로봇 장치의 기계학습 모델의 제어 동작을 나타낸 도면이다.
도 9는 본 개시의 일 실시예에 따른 로봇 장치의 동작을 나타낸 도면이다.
도 10은 본 개시의 일 실시예에 따른 로봇 장치의 구성을 나타낸 도면이다.
도 11은 본 개시의 일 실시예에 따라 모드 변경을 판단하는 조건 및 모드 전환 추천 이벤트가 발생하는 경우를 나타낸 도면이다.
도 12는 본 개시의 일 실시예에 따라 로봇 장치에서 모드 변경 추천 메시지를 출력하는 동작을 나타낸 도면이다.
도 13은 본 개시의 일 실시예에 따라 로봇 장치에서 모드 변경 추천 메시지를 출력하는 동작을 나타낸 도면이다.
도 14는 본 개시의 일 실시예에 따라 로봇 장치가 모드 변경 알림을 전달하는 과정을 나타낸 도면이다.
도 15는 본 개시의 일 실시예에 따라 제1 모드에서 모드 전환 추천 이벤트가 발생한 경우, 외부 전자 장치를 통해 알림을 출력하는 과정을 나타낸 흐름도이다.
도 16은 본 개시의 일 실시예에 따라 외부 장치를 통해 모드 변경 추천 메시지를 출력하는 과정을 나타낸 도면이다.
도 17은 본 개시의 일 실시예에 따라 제2 모드에서 모드 전환 추천 이벤트가 발생한 경우, 외부 전자 장치를 통해 알림을 출력하는 과정을 나타낸 흐름도이다.
도 18은 본 개시의 일 실시예에 따라 외부 장치를 통해 모드 변경 추천 메시지를 출력하는 과정을 나타낸 도면이다.
도 19는 본 개시의 일 실시예에 따라 프라이버시 영역 또는 프라이버시 시간을 설정하는 동작을 나타낸 흐름도이다.
도 20은 본 개시의 일 실시예에 따라 프라이버시 영역을 설정하는 과정을 나타낸 도면이다.
도 21은 본 개시의 일 실시예에 따라, 프라이버시 영역 및 촬영 금지 구역을 설정하는 과정을 나타낸 도면이다.
도 22는 본 개시의 일 실시예에 따라 프라이버시 시간을 설정하는 과정을 나타낸 도면이다.
도 23은 본 개시의 일 실시예에 따른 로봇 장치의 일례를 도시한 도면이다.
도 24는 본 개시의 일 실시예에 따른 청소 로봇의 구조를 나타낸 도면이다.
본 명세서는 청구항의 권리범위를 명확히 하고, 본 개시의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자가 청구항에 기재된 실시예를 실시할 수 있도록, 실시예들의 원리를 설명하고 개시한다. 개시된 실시예들은 다양한 형태로 구현될 수 있다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 본 개시의 실시예들이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 “모듈” 또는 “부”(unit)라는 용어는 소프트웨어, 하드웨어 또는 펌웨어 중 하나 또는 둘 이상의 조합으로 구현될 수 있으며, 실시예들에 따라 복수의 “모듈” 또는 “부”가 하나의 요소(element)로 구현되거나, 하나의 “모듈” 또는 “부”가 복수의 요소들을 포함하는 것도 가능하다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
이하 첨부된 도면들을 참고하여 본 개시의 실시예들의 작용 원리 및 다양한 실시예들에 대해 설명한다.
도 1은 본 개시의 일 실시예에 따른 로봇 장치 및 로봇 장치 제어 시스템을 나타낸 도면이다.
본 개시의 실시예들은 소정 영역에서 주행하는 로봇 장치(100)에 관한 것이다. 로봇 장치(100)는 소정의 영역에서 주행을 하면서 다양한 기능을 제공할 수 있다. 로봇 장치(100)는 예를 들면, 청소 로봇, 케어 서비스를 제공하는 케어 로봇 등의 형태로 구현될 수 있다. 본 개시에서는 로봇 장치(100)가 청소 로봇인 실시예를 중심으로 설명한다. 그러나 로봇 장치(100)는 다양한 형태의 주행형 로봇 장치로 구현될 수 있으며, 로봇 장치(100)의 실시예가 청소 로봇으로 한정되는 것은 아니다.
로봇 장치(100)는 소정의 주행 영역 내에서 주행한다. 주행 영역은 로봇 장치(100)가 동작을 개시하면서 소정의 기준에 따라 정의하거나, 설계자 또는 사용자에 의해 미리 설정될 수 있다. 로봇 장치(100)의 주행 영역은 댁내, 매장, 사무실, 야외의 특정 공간 등으로 다양하게 정의될 수 있다. 로봇 장치(100)는 주행 영역은 벽, 천장, 표식 등에 의해 미리 정의될 수 있다. 예를 들면, 가정용으로 쓰이는 로봇 장치는 집 안의 벽(또는 천장)을 자동으로 인식하여 주행 영역을 정의할 수 있다.
로봇 장치(100)는 주행 영역에서 카메라, 센서 등을 이용하여 전방을 감지하면서 주행한다. 로봇 장치(100)는 카메라를 구비하고, 카메라에 의해 촬영된 입력 영상(130a, 130b)을 이용하여 전방의 장애물을 감지하면서, 자동으로 주행 영역 내에서 장애물을 회피하면서 주행할 수 있다.
본 개시의 실시예들에 따른 로봇 장치(100)는 기계학습 모델을 이용하여 입력 영상(130a, 130b)으로부터 객체를 인식하고 주행을 제어한다. 기계학습 모델은 다수의 이미지를 포함하는 트레이닝 데이터에 의해 학습된 모델이다. 기계학습 모델은 입력 영상(130a, 130b)을 입력 받아, 객체의 종류를 나타내는 객체 정보 및 객체 영역을 나타내는 객체 영역 정보를 출력한다. 로봇 장치(100)는 기계학습 모델에 의해 출력된 객체 종류 정보 및 객체 영역 정보에 기초하여, 주행 경로를 설정(계획)하고, 장애물을 회피한다. 예를 들면, 로봇 장치(100)는 주행 영역 내에서 장애물이 존재하지 않는 주행이 가능한 공간에서 최적의 경로를 결정하고, 최적의 경로로 주행하면서 동작을 수행한다. 또한, 로봇 장치(100)는 장애물을 검출하면, 장애물을 회피하여 주행 경로를 설정한다. 이와 같이 로봇 장치(100)는 입력 영상(130a, 130b)으로부터 기계학습 모델을 이용하여 객체 종류 정보 및 객체 영역 정보를 획득하여, 주행 경로를 제어하는 동작을 수행한다.
본 개시의 일 실시예에 따른 로봇 장치 제어 시스템(10)은 서버(112) 및 로봇 장치(100)를 포함한다. 서버(112)는 다양한 종류의 외부 장치에 대응되며, 클라우드 서버로 구현될 수 있다. 로봇 장치(100)와 서버(112)는 네트워크를 통해 연결된다. 로봇 장치(100)는 서버(112)로 입력 영상(130a, 130b) 및 다양한 제어 신호와 데이터를 전달한다. 서버(112)는 로봇 장치(100)로 객체 인식 결과를 출력한다.
본 개시의 일 실시예에 따른 로봇 장치(100)는 객체 인식을 위해 클라우드 기계학습 모델(110)과 온-디바이스 기계학습 모델(120)을 함께 이용한다. 클라우드 기계학습 모델(110)은 서버(112)에서 수행되는 기계학습 모델이다. 온-디바이스 기계학습 모델(120)은 로봇 장치(100)에서 수행되는 기계학습 모델이다. 클라우드 기계학습 모델(110)과 온-디바이스 기계학습 모델(120)은 모두 입력 영상(130a, 130b)을 입력 받아, 객체 종류 정보 및 객체 영역 정보를 출력한다. 클라우드 기계학습 모델(110)과 온-디바이스 기계학습 모델(120)은 동일한 구조 및 파라미터 값을 갖는 기계학습 모델일 수 있다. 다른 예에 따르면, 클라우드 기계학습 모델(110)과 온-디바이스 기계학습 모델(120)의 구조와 파라미터 값이 다르게 설정될 수 있다.
본 개시의 일 실시예에 따른 로봇 장치(100)는 주행 영역에 사람이 없다고 판단하면, 클라우드 기계학습 모델(110)을 이용하는 제1 모드로 동작한다. 로봇 장치(100)는 주행 영역에 사람(132)이 있다고 판단하면, 입력 영상(130b)을 서버(112)로 전송하지 않고, 온-디바이스 기계학습 모델(120)을 이용하는 제2 모드로 동작한다.
로봇 장치(100)는 다양한 방식으로 주행 영역에 사람(132)이 있는지 여부를 판단한다. 예를 들면, 로봇 장치(100)는 카메라를 이용하여 촬영된 입력 영상(130a, 130b)을 이용하여, 주행 영역에 사람(132)이 있는지 여부를 판단한다. 예를 들면, 로봇 장치(100)는 클라우드 기계학습 모델(110)의 출력 또는 온-디바이스 기계학습 모델(120)의 출력을 이용하여, 주행 영역에 사람(132)이 있는지 여부를 판단할 수 있다. 다른 예로서, 로봇 장치(100)는 라이다 센서, 적외선 센서 등의 별도의 센서를 구비하고, 센서 검출 값을 이용하여 주행 영역에 사람(132)이 있는지 여부를 판단할 수 있다. 또 다른 예로서, 로봇 장치(100)는 외부 장치로부터 제공된 정보를 이용하여 주행 영역에 사람(132)이 있는지 여부를 판단할 수 있다. 사람(132)이 있는지 여부를 판단하는 방식에 대한 다양한 실시예는 아래에서 자세히 설명한다.
본 개시의 실시예들에 따르면, 로봇 장치(100)가 카메라를 이용하여 입력 영상(130a, 130b)을 촬영하고, 사람이 주행 영역에 없는 경우에만 입력 영상(130a)을 서버(112)로 전송하는 경우, 사용자가 프라이버시를 침해 받는 상황을 방지할 수 있는 효과가 있다.
클라우드 기계학습 모델(110)은 많은 리소스와 트레이닝 데이터를 이용할 수 있어, 온-디바이스 기계학습 모델(120)에 비해 그 성능이 우수할 수 있다. 클라우드 기계학습 모델(110)은 다양한 사용자 환경 조건에서 수집되는 빅 데이터에 기반하여 모델을 학습시킬 수 있어, 인식 가능한 객체의 종류가 많고, 객체 인식의 정확도가 높을 수 있다. 그러나 사용자는 본인 또는 가족이 촬영된 영상이 서버(112)로 전송되는 것을 원하지 않을 수 있고, 입력 영상을 서버(112)로 전송함에 의해 프라이버시를 보호하지 못하는 상황이 발생할 수 있다.
한편, 로봇 장치(100)에서 구동 및 제어 처리를 위해 이용되는 CPU의 연산 성능이 저비용 고성능 형태로 진화하고 있으며, 기계 학습 알고리즘의 효율적인 처리를 위해 NPU(Neural Processing Unit)를 별도로 내장하는 경우도 있다. 또한, GPU(graphic Processing Unit) 기반 Open CL과 같은 컴퓨터 언어를 사용하여, 원격의 클라우드 서버를 이용하지 않고, 온-디바이스에서 기계학습 알고리즘을 요구 시간 내에 처리하는 것도 가능하다. 이와 같은 온-디바이스 기계학습 모델을 이용하는 방식은 클라우드 서버를 이용하는 클라우드 기계학습 모델을 이용하는 방식에 대비하여, 네트워크 비용이 없기 때문에, 데이터 처리 속도 및 개인 정보 보호 측면에서 장점을 갖는다.
또 다른 측면에서, 온-디바이스 기계학습 모델은 학습을 위한 데이터 수집의 범위가 댁내 환경으로 제한되어, 고도로 개인화된 서비스를 제공받을 수 있는 장점이 있다. 그러나 일반적인 사용 조건을 벗어난 환경하에서 로봇 장치(100)가 동작해야 하는 경우, 즉, 댁내 환경에서 한 번도 학습된 적이 없는 조건이 갑자기 주어지는 경우, 다양한 사용자의 데이터 수집을 기반으로 AI 추론을 처리하는 클라우드 기계학습 모델의 동작 대비 잘못된 제어가 발생할 확률이 높은 단점이 존재한다.
청소 로봇의 사물 인식을 예로 들면, 온-디바이스 기계학습 모델(120)을 이용하는 경우, 주행 중에 카메라에서 수집되는 이미지나 비디오 입력 데이터를 클라우드 기계학습 모델(110)에서 처리 가능한 데이터 형태로 변환할 필요 없이, 로 데이터(raw data)를 AI 추론을 위한 입력으로 바로 사용하는 것이 가능한 장점이 있다. 또한, 입력 영상(130a, 130b)을 서버(112)에 전송하기 위한 네트워크 비용과 지연 시간이 필요하지 않아, 처리 속도에서 장점을 가질 수 있다. 그러나, 온-디바이스의 컴퓨팅 파워를 고려하였을 때, 온-디바이스 기계학습 모델(120)의 사물 인식의 종류가 클라우드 기계학습 모델(110)보다는 제한적일 수 있다. 이와 같이, 객체 인식 성능이 떨어지는 경우, 로봇 장치(100)의 주행 중에 충돌이 발생하거나, 애완 동물의 분비물을 회피하지 못하고 밀고 지나가버리는 등의 문제가 발생할 수 있다.
반면에, 청소 로봇이 클라우드 기계학습 모델(110)을 이용하는 경우, 사용자가 우려하는 프라이버시 보호를 보장할 수 없지만, 다양한 사용자 환경 조건에서 수집되는 빅 데이터에 기반한 AI 추론을 이용할 수 있어, 인식 가능한 객체 또는 사물의 종류와 정확도가 향상되는 장점이 있다.
본 개시의 실시예들은 이와 같이 클라우드 기계학습 모델(110)을 이용하는 과정에서 프라이버시를 보호받지 못하는 상황을 방지하기 위한 것이다. 본 개시의 실시예들은 로봇 장치(100)의 주행 영역에 사람이 존재한다고 판단되는 경우, 로봇 장치(100)로부터 입력 영상(130a)을 서버(112)로 전송하지 않도록 제어하여, 클라우드 기계학습 모델(110)의 이용하는 로봇 장치(100)가 프라이버시를 침해하는 것을 방지하는 효과가 있다. 또한, 본 개시의 실시예들은, 로봇 장치(100)의 주행 영역에 사람이 존재하지 않는다고 판단되는 경우, 로봇 장치(100)가 클라우드 기계학습 모델(110)을 이용하도록 하여, 사용자의 프라이버시를 침해하지 않는 상황에서는, 클라우드 기계학습 모델(110)을 이용하여 보다 고성능의 객체 인식을 제공할 수 있는 효과가 있다.
로봇 장치(100)는 주행 영역에 사람이 없다고 판단되는 경우, 제1 모드로 동작한다. 로봇 장치(100)는 제1 모드에서 클라우드 기계학습 모델(110)을 이용한다. 로봇 장치(100)는 서버(112)로 입력 영상(130a)을 전송하여, 클라우드 기계학습 모델(110)에 객체 인식을 요청한다. 서버(110)는 입력 영상(130a)을 수신하여, 입력 영상(130a)을 클라우드 기계학습 모델(110)에 입력한다. 클라우드 기계학습 모델(110)은 입력 영상(130a)을 입력 받아, 처리하여, 객체 종류 정보 및 객체 영역 정보를 출력한다. 서버(112)는 클라우드 기계학습 모델(110)로부터 출력된 객체 종류 정보 및 객체 영역 정보를 로봇 장치(100)로 전송한다. 로봇 장치(100)는 클라우드 기계학습 모델(110)로부터 수신된 객체 종류 정보 및 객체 영역 정보를 이용하여 소정의 주행 제어 동작을 수행한다.
로봇 장치(100)는 주행 영역에 사람(132)이 있다고 판단되는 경우, 제2 모드로 동작한다. 로봇 장치(100)는 제2 모드에서 온-디바이스 기계학습 모델(120)을 이용한다. 로봇 장치(100)는 제2 모드에서는 입력 영상(130b)을 서버(112)로 전송하지 않는다. 로봇 장치(100)는 제2 모드에서 온-디바이스 기계학습 모델(120)로 입력 영상(130b)을 입력한다. 온-디바이스 기계학습 모델(120)은 입력 영상(130b)을 입력 받아, 처리하여, 객체 종류 정보 및 객체 영역 정보를 출력한다. 로봇 장치(100)는 온-디바이스 기계학습 모델(120)로부터 수신된 객체 종류 정보 및 객체 영역 정보를 이용하여 소정의 주행 제어 동작을 수행한다.
도 2는 본 개시의 일 실시예에 따른 로봇 장치의 구조를 나타낸 블록도이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 프로세서(210), 카메라(220), 통신 인터페이스(230), 및 이동 어셈블리(240)를 포함한다.
프로세서(210)는 로봇 장치(100) 전반의 동작을 제어한다. 프로세서(210)는 하나 또는 그 이상의 프로세서로 구현될 수 있다. 프로세서(210)는 메모리에 저장된 인스트럭션 또는 커맨드를 실행하여 소정의 동작을 수행할 수 있다.
카메라(220)는 입사광을 광전 변환하여 전기적인 영상 신호를 생성한다. 카메라(220)는 로봇 장치(100)와 일체로 형성되거나, 탈착 가능하게 구비될 수 있다. 카메라(220)는 로봇 장치(100)의 전방을 촬영하도록 로봇 장치(100)의 상측 또는 전면에 배치된다. 카메라(220)는 적어도 하나의 렌즈 및 이미지 센서를 포함한다. 카메라(220)는 영상 신호를 프로세서(210)로 전송한다. 카메라(220)는 로봇 장치(100)에 복수 개 배치될 수도 있다.
통신 인터페이스(230)는 무선으로 외부 장치와 통신할 수 있다. 통신 인터페이스(230)는 근거리 통신을 수행할 수 있으며, 예를 들면, 블루투스, BLE(Bluetooth Low Energy), 근거리 무선 통신 (Near Field Communication), WLAN(와이파이), 지그비(Zigbee), 적외선(IrDA, infrared Data Association) 통신, WFD(Wi-Fi Direct), UWB(ultra wideband), Ant+ 통신 등을 이용할 수 있다. 다른 예로서, 통신 인터페이스(230)는 이동 통신을 이용할 수 있으며, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신할 수 있다.
통신 인터페이스(230)는 서버(112)와 통신한다. 통신 인터페이스(230)는 프로세서(210)의 제어에 따라 서버(112)와 통신을 수립할 수 있다. 통신 인터페이스(230)는 서버(112)로 입력 영상을 전송하고, 서버(112)로부터 객체 인식 결과를 수신할 수 있다.
또한, 통신 인터페이스(230)는 다른 외부 장치와 근거리 통신으로 통신할 수 있다. 예를 들면, 통신 인터페이스(230)는 스마트폰, 웨어러블 장치, 또는 가전기기 등과 통신할 수 있다. 본 개시의 일 실시예에 따르면, 통신 인터페이스(230)는 외부 서버를 통해서 다른 외부 장치와 통신할 수 있다. 본 개시의 다른 실시예에 따르면, 통신 인터페이스(230)는 다른 외부 장치와 근거리 통신을 이용하여 직접 통신할 수 있다. 예를 들면, 통신 인터페이스(230)는 BLE, 또는 WFD 등을 이용하여 스마트폰, 웨어러블 장치, 다른 가전기기 등과 직접 통신할 수 있다.
이동 어셈블리(240)는 로봇 장치(100)를 이동시킨다. 이동 어셈블리(240)는 로봇 장치(100)의 하면에 배치되어, 로봇 장치(100)를 전진, 후진, 및 회전시킬 수 있다. 이동 어셈블리(240)는 로봇 장치(100)의 본체 중앙 영역을 기준으로 좌우 가장자리에 각각 배치된 한 쌍의 휠을 포함할 수 있다. 또한, 이동 어셈블리(240)는 각 휠에 이동력을 인가하는 휠 모터와, 본체의 전방에 설치되어 로봇 장치(100)가 이동하는 바닥 면의 상태에 따라 회전하여 각도가 변화하는 캐스터 휠을 포함할 수 있다. 한 쌍의 휠은 로봇 장치(100)의 본체에 서로 대칭적으로 배치될 수 있다.
프로세서(210)는 이동 어셈블리(240)를 제어하여 로봇 장치(100)의 주행을 제어한다. 프로세서(210)는 로봇 장치(100)의 주행 경로를 설정하고, 주행 경로에 대응하도록 로봇 장치(100)를 이동시키도록 이동 어셈블리(240)를 구동한다. 이를 위해, 프로세서(210)는 이동 어셈블리(240)를 제어하는 구동 신호를 생성하고, 이동 어셈블리(240)로 출력한다. 이동 어셈블리(240)는 프로세서(210)로부터 출력된 구동 신호에 기초하여, 이동 어셈블리(240)의 각 구성을 구동한다.
프로세서(210)는 카메라(220)로부터 입력된 영상 신호를 수신하고, 영상 신호를 처리하여 입력 영상을 생성한다. 입력 영상은 연속적으로 입력되는 영상 스트림에 대응하며, 복수의 프레임을 포함할 수 있다. 로봇 장치(100)는 메모리를 포함하고, 메모리에 입력 영상을 저장할 수 있다. 프로세서(210)는 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)에서 요구되는 형태로 입력 영상을 생성한다. 로봇 장치(100)는 제1 모드에서는 클라우드 기계학습 모델(110)에서 요구되는 형태로 입력 영상을 생성하고, 제2 모드에서는 온-디바이스 기계학습 모델(120)에서 요구되는 형태로 입력 영상을 생성한다.
또한, 프로세서(210)는 주행 영역에서 사람을 검출한다. 프로세서(210)는 다양한 방식을 이용하여 사람을 검출한다.
일 실시예에 따르면, 프로세서(210)는 기계학습 모델의 출력을 이용하여 사람을 검출한다. 프로세서(210)는 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)의 출력을 이용하여, 사람을 검출한다. 클라우드 기계학습 모델(110)과 온-디바이스 기계학습 모델(120)은 입력 영상을 입력 받아, 객체 종류 정보 및 객체 영역 정보를 출력한다. 프로세서(210)는 객체 종류 정보는 미리 정의된 객체의 타입 중 하나에 대응된다. 미리 정의된 객체의 타입은 예를 들면, 사람, 식탁 다리, 전선, 동물의 변, 가전 기기, 또는 장애물 등을 포함할 수 있다. 프로세서(210)는 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)에서 출력된 객체 종류 정보가 사람에 대응되는 경우, 사람을 검출한다.
다른 실시예에 따르면, 프로세서(210)는 사람을 검출하는 별도의 알고리즘을 이용하여 사람을 검출한다. 예를 들면, 프로세서(210)는 입력 영상을 사람을 인식하는 사람 인식 알고리즘에 입력하고, 사람 인식 알고리즘의 출력을 이용하여 사람을 검출한다.
또 다른 실시예에 따르면, 로봇 장치(100)는 별도의 센서를 구비하고, 프로세서(210)는 센서의 출력 값을 이용하여 사람을 검출한다. 예를 들면, 로봇 장치(100)는 적외선 센서를 포함하고, 적외선 센서의 출력을 이용하여 사람을 검출할 수 있다.
또 다른 실시예에 따르면, 로봇 장치(100)는 외부 장치로부터 사람 검출 정보를 수신하여 사람을 검출한다. 외부 장치는 예를 들면, 스마트폰, 스마트홈 시스템, 가전기기, 또는 웨어러블 장치 등에 대응될 수 있다. 로봇 장치(100)는 외부 장치로부터 댁내에 사람이 존재한다는 정보를 수신할 수 있다.
프로세서(210)는 사람을 검출하여, 주행 영역 내에 사람 존재하는지 여부를 판단한다. 프로세서(210)는 주행 영역 내에서 사람을 검출하면 주행 영역 내에 사람이 존재한다고 판단한다. 또한, 프로세서(210)는 주행 영역 전체에 대해 사람을 검출하고, 주행 영역 전체에서 사람이 검출되지 않은 경우, 주행 영역에 사람이 존재하지 않는다고 판단한다.
프로세서(210)는 주행 영역 내에 사람이 존재하지 않는다고 판단하면, 제1 모드로 동작한다. 프로세서(210)는 제1 모드에서 입력 영상을 서버(112)로 전송하고, 객체 인식을 요청한다. 이를 위해, 프로세서(210)는 입력 영상을 서버(112)의 클라우드 기계학습 모델(110)에서 요구되는 형태로 처리하고, 입력 영상을 전송할 수 있다. 또한, 프로세서(210)는 서버(112)에 클라우드 기계학습 모델(110)의 객체 인식 결과를 요청하는 객체 인식 요청을 생성하여 입력 영상과 함께 전송할 수 있다. 객체 인식 요청은 로봇 장치(100)의 식별 정보, 인증 정보, MAC 주소, 프로토콜 정보 등을 포함할 수 있다. 또한, 프로세서(210)는 서버(112)로부터 객체 인식 결과를 획득한다.
프로세서(210)는 주행 영역 내에 사람이 존재한다고 판단하면, 제2 모드로 동작한다. 프로세서(210)는 입력 영상을 온-디바이스 기계학습 모델(120)에서 요구되는 형태로 처리한다. 또한, 프로세서(210)는 제2 모드에서 입력 영상을 온-디바이스 기계학습 모델(120)로 입력한다. 프로세서(210)는 온-디바이스 기계학습 모델(120)로부터 객체 종류 정보 및 객체 영역 정보를 획득한다.
온-디바이스 기계학습 모델(120)은 프로세서(210)에서 수행되거나, 별도의 뉴럴 프로세서(NPU)에 의해 수행된다. 온-디바이스 기계학습 모델(120)은 클라우드 기계학습 모델(110)에 비해 경량화된 모델일 수 있다. 또한, 일 실시예에 따르면, 온-디바이스 기계학습 모델(120)에 의해 인식되는 객체의 종류의 수는 클라우드 기계학습 모델(110)에 의해 인식되는 객체의 종류의 수보다 같거나 적을 수 있다.
프로세서(210)는 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)에서 출력된 객체 인식 결과를 이용하여, 로봇 장치(100)의 주행을 제어한다. 프로세서(210)는 객체 인식 결과를 이용하여 주행 영역을 인식하고, 주행 영역 내의 장애물을 검출한다. 프로세서(210)는 장애물을 회피하면서 주행 영역을 주행한다. 예를 들면, 로봇 장치(100)가 청소 로봇으로 구현되는 경우, 프로세서(210)는 장애물을 회피하면서 주행 영역 내의 바닥의 빈 공간을 모두 지나가도록 주행 경로를 설정한다. 로봇 장치(100)가 케어 로봇으로 구현되는 경우, 프로세서(210)는 로봇 장치(100)의 목표 위치를 설정하고, 목표 위치까지의 최적 경로를 설정한다. 케어 로봇은 최적 경로로 주행하면서 장애물을 발견하면 장애물을 회피하면서 주행한다.
프로세서(210)는 미리 정의된 객체 종류를 장애물로 인식할 수 있다. 예를 들면, 프로세서(210)는 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)에 의해 인식되는 객체 종류 중, 식탁 다리, 동물의 변, 전선, 바닥에 배치된 소정 크기 이상의 부피를 갖는 물건 등을 장애물로 인식할 수 있다. 프로세서(210)는 주행 중에 전방을 촬영하면서, 실시간으로 장애물을 인식하여, 장애물을 회피하도록 주행 경로를 제어한다.
도 3은 본 개시의 일 실시예에 따른 로봇 장치 제어 방법을 나타낸 도면이다.
로봇 장치(100) 제어 방법은 카메라 및 프로세서를 구비하고, 주행이 가능한 다양한 종류의 로봇 장치(100)에 의해 수행될 수 있다. 또한, 로봇 장치(100) 제어 방법은, 주행이 가능한 로봇 장치(100)와 통신하면서 로봇 장치(100)를 제어하는 전자 장치에 의해서도 수행될 수 있다. 예를 들면, 로봇 장치(100)와 통신하는 스마트폰, 웨어러블 장치, 모바일 장치, 가전기기 등은 로봇 장치(100) 제어 방법을 수행하여 로봇 장치(100)를 제어할 수 있다. 본 개시에서는 본 개시에서 설명된 로봇 장치(100)가 로봇 장치 제어 방법을 수행하는 실시예를 중심으로 설명하지만, 본 개시의 실시예가 이에 한정되는 것은 아니다.
로봇 장치(100)는 로봇 장치(100)의 주행 중에 주변을 촬영하여 입력 영상을 생성한다(302). 로봇 장치(100)는 카메라(220)를 이용하여 전방 및 주변을 촬영할 수 있다. 카메라(220)는 영상 신호를 생성하여 프로세서(210)로 출력하고, 프로세서(210)는 영상 신호를 이용하여 입력 영상을 생성할 수 있다.
다음으로, 로봇 장치(100)는 주행 영역에서 사람을 검출한다(304). 로봇 장치(100)는 다양한 방식으로 사람을 검출할 수 있다. 예를 들면, 로봇 장치(100)는 기계학습 모델의 출력을 이용하는 방식, 별도의 알고리즘을 이용하여 입력 영상으로부터 사람을 인식하는 방식, 로봇 장치에 구비된 센서를 이용하는 방식, 외부 장치로부터 수신된 정보를 이용하는 방식 등 다양한 방식을 이용할 수 있다.
다음으로 로봇 장치(100)는 주행 영역에 사람이 존재하는지 여부를 판단한다(306). 사람이 존재하는지 여부를 판단하는 과정은 도 5를 이용하여 자세히 설명한다.
로봇 장치(100)는 주행 영역에 사람이 존재하지 않는다고 판단된 경우(306), 제1 모드에서 클라우드 기계학습 모델(110)을 이용하여 객체를 인식한다(308). 로봇 장치(100)는 제1 모드에서 입력 영상을 서버(112)로 전송하고, 서버(112)에 객체 인식을 요청한다. 서버(112)는 로봇 장치(100)로부터 수신된 입력 영상을 클라우드 기계학습 모델(110)에 입력한다. 클라우드 기계학습 모델(110)은 입력 영상을 입력 받아 객체 종류 정보 및 객체 영역 정보를 출력한다. 서버(112)는 로봇 장치(100)로 객체 종류 정보 및 객체 영역 정보를 포함하는 객체 인식 결과를 전송한다.
로봇 장치(100)는 주행 영역에 사람이 존재한다고 판단된 경우(306), 제2 모드에서 온-디바이스 기계학습 모델(120)을 이용하여 객체를 인식한다(310). 로봇 장치(100)는 제2 모드에서 입력 영상을 온-디바이스 기계학습 모델(120)로 입력한다. 온-디바이스 기계학습 모델(120)은 입력 영상을 입력 받아 객체 종류 및 객체 영역 정보를 출력한다.
로봇 장치(100)는 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)로부터 획득된 객체 인식 결과를 이용하여 로봇 장치(100)의 주행을 제어한다(312). 로봇 장치(100)는 객체 인식 결과를 이용하여 주행 경로를 설정하고, 주행 경로로 로봇 장치(100)를 이동시키도록 이동 어셈블리(240)를 제어한다.
도 4는 본 개시의 일 실시예에 따른 기계학습 모델의 출력을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 입력 영상을 입력 받아, 객체 종류 정보 및 객체 영역 정보를 출력한다. 클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 객체 인식을 위한 다양한 종류의 기계학습 모델로 구현될 수 있다. 예를 들면, 클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 YoLo 기계학습 모델을 이용할 수 있다.
클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 복수의 레이어를 포함하는 DNN(Deep Neural Network) 구조를 가질 수 있다. 또한, 클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 CNN 구조 또는 RNN 구조로 구현되거나, 이들의 조합으로 구현될 수 있다. 클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 입력 레이어, 복수의 히든 레이어, 및 출력 레이어를 포함한다.
입력 레이어는 입력 영상으로부터 생성된 입력 벡터를 입력 받아, 적어도 하나의 입력 피처 맵을 생성한다. 적어도 하나의 입력 피처 맵은 히든 레이어로 입력되어 처리된다. 히든 레이어는 소정의 기계학습 알고리즘에 의해 미리 학습되어 생성된다. 히든 레이어는 적어도 하나의 피처 맵을 입력 받아, 액티베이션 처리, 풀링 처리, 선형 처리, 컨벌루션 처리 등을 수행하여, 적어도 하나의 출력 피처 맵을 생성한다. 출력 레이어는 출력 피처 맵을 출력 벡터로 변환하여 출력한다. 클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 출력 레이어로부터 출력된 출력 벡터로부터 객체 종류 정보 및 객체 영역 정보를 획득한다.
클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 복수의 객체(424a, 424b)를 인식할 수 있다. 클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)에서 인식 가능한 객체의 최대 개수는 미리 설정될 수 있다.
클라우드 기계학습 모델(110)에서 인식 가능한 객체의 최대 개수, 객체의 종류, 및 객체 인식 정확도는 온-디바이스 기계학습 모델(120)보다 클 수 있다. 로봇 장치(100)는 서버(112)보다 컴퓨팅 능력과 리소스가 적기 때문에, 온-디바이스 기계학습 모델(120)은 클라우드 기계학습 모델(110)보다 경량화된 모델로 구현될 수 있다. 예를 들면, 온-디바이스 기계학습 모델(120)은 클라우드 기계학습 모델(110)의 레이어 사이에 적어도 하나의 바이패스 경로를 적용하여 구현될 수 있다. 바이패스 경로는 하나의 레이어로부터 다른 레이어로부터 출력을 바로 전달하는 경로이다. 바이패스 경로는 소정의 레이어를 스킵하고 데이터를 처리하기 위해 이용된다. 바이패스 경로를 적용하면, 일부 레이어의 처리가 생략되기 때문에, 기계학습 모델의 처리량이 줄어들고 처리 시간이 짧아지는 효과가 있다.
일 실시예에 따르면, 도 4와 같이 객체 종류 정보(420a, 420b) 및 객체 영역 정보(422a, 422b)가 생성될 수 있다. 클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 입력 영상(410)으로부터 적어도 하나의 객체(424a, 424b)를 인식한다. 인식되는 객체의 종류는 미리 정의될 수 있으며, 예를 들면, 사람, 가구, 가구 다리, 동물의 변 등의 종류가 미리 정의될 수 있다.
객체 종류 정보(420a, 420b)는 객체 종류(person, dog)를 나타낸다. 일 실시예에 따르면, 객체 종류 정보(420a, 420b)는 해당 객체일 확률을 나타내는 확률 값을 더 포함할 수 있다. 예를 들면, 도 4의 예에서는, 제1 객체(424a)가 사람일 확률이 99.95%이고, 제2 객체(424b)가 개(dog)일 확률이 99.88%라고 출력되었다.
객체 영역 정보(422a, 422b)는 객체(424a, 424b)가 검출된 영역을 나타낸다. 객체 영역 정보(422a, 422b)는 도 4와 같이 객체(424a, 424b)가 검출된 영역을 정의하는 박스에 대응된다. 객체 영역 정보(422a, 422b)는 예를 들면, 객체(424a, 424b)가 검출된 영역을 정의하는 박스의 하나의 꼭지점 및 영역의 폭과 너비 정보를 나타낼 수 있다.
도 5는 본 개시의 일 실시예에 따라 사람 존재 여부를 판단하는 과정을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 다양한 정보를 이용하여 주행 영역에 사람이 존재하는지 여부를 판단할 수 있다(510). 도 5에서 설명된 사람이 존재하는지 여부를 판단하는 방식의 다양한 조합이 로봇 장치(100)에 적용될 수 있다. 또한, 로봇 장치(100)는 다양한 정보 중 먼저 입력된 정보에 근거하여 사람이 존재하는지 여부를 판단할 수 있다. 로봇 장치(100)의 프로세서(210)는 기계학습 모델(520)의 객체 인식 결과, 로봇 장치 내장 센서(530)의 센서 검출 값, 영역 관리 시스템(540)의 정보, 또는 장치 관리 서버(550)의 정보 중 적어도 하나 또는 이들의 조합에 기초하여 주행 영역에 사람이 존재하는지 여부를 판단할 수 있다.
프로세서(210)는 기계학습 모델(520)로부터 객체 인식 결과를 수신하고, 객체 인식 결과에 기초하여 사람을 검출하고 사람이 존재하는지 여부를 판단할 수 있다. 프로세서(210)는 객체 인식 결과에 포함된 객체 종류 정보 중 사람이 있는지 여부를 판단한다. 객체 종류 정보에 사람이 있는 경우, 프로세서(210)는 사람이 존재한다고 판단한다.
프로세서(210)는 로봇 장치 내장 센서(530)로부터 센서 검출 값을 수신하고, 센서 검출 값에 기초하여 사람이 존재하는지 여부를 판단할 수 있다. 로봇 장치(100)는 카메라(220) 이외의 별도의 센서를 구비할 수 있다. 센서는 예를 들면, 적외선 센서에 대응될 수 있다. 프로세서(210)는 적외선 센서의 센서 검출 값을 수신하고, 적외선 영상을 생성할 수 있다. 프로세서(210)는 적외선 영상에서 체온에 대응되는 온도 범위를 갖고, 사람의 형상을 갖는 객체를 인식하는 경우, 사람이 존재한다고 판단할 수 있다.
프로세서(210)는 영역 관리 시스템(540)으로부터 사람 인지 정보 또는 외출 기능 설정 정보를 수신하고, 수신된 정보에 기초하여 사람이 존재하는지 여부를 판단할 수 있다. 영역 관리 시스템(540)은 소정의 영역을 관리하는 시스템으로서, 예를 들면, 스마트홈 시스템, 홈 네트워크 시스템, 건물 관리 시스템, 보안 시스템, 또는 매장 관리 시스템 등에 대응될 수 있다. 영역 관리 시스템(540)는 해당 영역에 배치되거나, 클라우드 서버의 형태로 구현될 수 있다. 로봇 장치(100)는 로봇 장치(100)의 주행 영역에 대응하는 영역을 관리하는 영역 관리 시스템(540)으로부터 정보를 수신할 수 있다.
영역 관리 시스템(540)은 해당 영역에서 사람을 인지하는 사람 인지 센서(542)를 포함할 수 있다. 사람 인지 센서(542)는 움직임을 감지하는 움직임 센서, 보안용 카메라 등을 구비할 수 있다. 영역 관리 시스템(540)은 움직임 센서에서 사람의 움직임에 대응하는 움직임이 검출되는 경우, 사람이 존재한다고 판단할 수 있다. 또한, 영역 관리 시스템(540)은 보안용 카메라에서 해당 영역을 촬영한 영상을 획득하고, 촬영 영상에서 사람을 검출할 수 있다. 이와 같이 영역 관리 시스템(540)이 움직임 센서 또는 보안용 카메라를 이용하여 사람을 검출한 경우, 영역 관리 시스템(540)은 사람 인지 정보를 생성하고, 사람 인지 정보를 로봇 장치(100)로 전송할 수 있다. 프로세서(210)는 영역 관리 시스템(540)으로부터 사람 인지 정보를 수신하면, 영역 관리 시스템(540)에서 사람이 검출된 영역이 해당 로봇 장치(100)의 주행 영역에 대응하는지 여부를 판단한다. 프로세서(210)는 영역 관리 시스템(540)에서 사람이 검출된 영역이 주행 영역에 대응하는 경우, 주행 영역에 사람이 존재한다고 판단한다.
또한, 영역 관리 시스템(540)은 외출 기능을 제공하는 외출 기능 설정 모듈(544)을 구비할 수 있다. 외출 기능 설정 모듈(544)은 사용자가 해당 시스템을 외출 모드로 설정하면, 해당 영역 내에 사람이 없다고 판단하고, 해당 시스템의 기능을 수행할 수 있다. 예를 들면, 스마트홈 시스템에서 사용자는 외출 시에 외출 모드를 설정할 수 있다. 다른 예로서, 보안 시스템에서 사용자는 해당 영역에 사람이 없는 경우 외출 모드를 설정할 수 있다. 영역 관리 시스템(540)은 외출 모드가 설정된 경우, 외출 기능 설정 정보를 로봇 장치(100)로 전송한다. 프로세서(210)는 영역 관리 시스템(540)으로부터 외출 기능 설정 정보를 수신하면, 외출 모드가 설정된 영역이 주행 영역에 대응하는지 여부를 판단한다. 프로세서(210)는 외출 모드가 설정된 영역이 주행 영역에 대응하면, 주행 영역에 사람이 없다고 판단한다.
프로세서(210)는 장치 관리 서버(550)로부터 사용자 위치 정보 또는 외출 기능 설정 정보를 수신하고, 수신된 정보를 이용하여 사람이 존재하는지 여부를 판단할 수 있다. 장치 관리 서버(550)는 로봇 장치(100)를 포함한 하나 이상의 전자 장치를 관리하는 서버이다. 장치 관리 서버(550)는 사용자 계정에 등록된 하나 이상의 전자 장치를 관리한다. 하나 이상의 전자 장치는 사용자 계정 정보를 이용하여 인증을 수행한 후, 장치 관리 서버(550)에 등록된다. 하나 이상의 전자 장치는 예를 들면, 스마트폰, 웨어러블 장치, 냉장고, 세탁기, 에어컨, 청소 로봇, 가습기, 또는 공기청정기 등의 장치를 포함할 수 있다.
장치 관리 서버(550)는 등록된 전자 장치 중 모바일 장치(예를 들면, 스마트폰, 웨어러블 장치)로부터 위치 정보를 수집하는 위치 정보 수집 모듈(552)을 포함할 수 있다. 위치 정보 수집 모듈(552)은 모바일 장치의 위치 정보를 수집하여 사용자의 위치 정보를 수집한다. 장치 관리 서버(550)는 로봇 장치(100)로 사용자 위치 정보를 전송할 수 있다. 프로세서(210)는 장치 관리 서버(550)로부터 수신된 사용자 위치 정보를 이용하여, 사용자가 주행 영역 내에 있는지 여부를 판단할 수 있다. 프로세서(210)는 사용자가 주행 영역 내에 있다고 판단하면 주행 영역에 사람이 존재한다고 판단할 수 있다.
장치 관리 서버(550)는 등록된 전자 장치의 사용 정보를 수집하는 사용 정보 수집 모듈(554)을 포함할 수 있다. 사용 정보 수집 모듈(554)은 댁내 전자 장치의 사용 정보를 수집한다. 예를 들면, 사용 정보 수집 모듈(554)은 댁내의 냉장고, 세탁기, 에어컨, 공기청정기 등의 가전기기를 사용자가 조작하는 이벤트가 발생하면, 댁내에 사용자가 있다고 판단할 수 있다. 예를 들면, 냉장고는 사용자가 냉장고 문을 여닫는 동작을 검출하면, 사용자가 냉장고를 조작하는 이벤트가 발생하였다고 판단하고, 사용자가 댁내에 있다는 사용자 위치 정보를 생성한다. 다른 예로서, 세탁기는 사용자가 세탁기의 버튼을 조작하거나 세탁기의 문을 여닫는 동작을 검출하면, 사용자가 세탁기를 조작하는 이벤트가 발생하였다고 판단하고, 사용자가 댁내에 있다는 사용자 위치 정보를 생성한다. 장치 관리 서버(550)는 사용 정보 수집 모듈(554)에 의해 사용자가 댁내에 있다는 사용자 위치 정보가 생성되면, 사용자 위치 정보를 로봇 장치(100)로 전송한다. 로봇 장치(100)는 장치 관리 서버(550)로부터 사용자가 댁내에 있다는 사용자 위치 정보가 수신되면, 주행 영역에 사용자가 존재한다고 판단한다.
다른 예로서, 사용자 정보 수집 모듈(554)은 사용자가 댁내의 가전기기를 조작하는 이벤트가 발생하면, 사용자가 댁내의 가전기기를 조작하였다는 장치 사용 정보를 생성하고, 장치 관리 서버(550)는 장치 사용 정보를 로봇 장치(100)로 전송한다. 로봇 장치(100)가 장치 사용 정보를 수신하면, 프로세서(210)는 사용된 장치가 주행 영역 내의 전자 장치인지 여부를 판단한다. 프로세서(210)는 사용된 장치가 주행 영역 내의 전자 장치인 경우, 주행 영역에 사람이 존재한다고 판단한다.
또한, 장치 관리 서버(550)는 해당 서버에 등록된 전자 장치 중 적어도 하나에 의해 외출 모드가 설정된 경우 외출 기능을 제공하는 외출 기능 설정 모듈(556)을 포함할 수 있다. 외출 기능 설정 모듈(556)은 적어도 하나의 전자 장치에 의해 외출 모드가 설정되면, 등록된 전자 장치를 외출 모드로 변경할 수 있다. 외출 모드에서 장치 관리 서버(550)는 댁내의 전자 장치를 절전 모드로 변경하거나, 보안 기능을 실행시키는 등의 소정을 동작을 수행할 수 있다. 장치 관리 서버(550)는 외출 모드가 설정된 경우, 외출 모드가 설정되었다는 정보를 포함하는 외출 기능 설정 정보를 로봇 장치(100)로 전송한다. 로봇 장치(100)가 외출 기능 설정 정보를 수신하면, 프로세서(210)는 외출 모드가 설정된 영역이 주행 영역에 대응하는지 여부를 판단할 수 있다. 프로세서(210)는 외출 모드가 설정된 영역이 주행 영역에 대응하면, 주행 영역에 사람이 존재하지 않는다고 판단한다.
본 개시의 일 실시예에 따르면, 클라우드 기계학습 모델(110)이 장치 관리 서버(550) 내에서 수행될 수 있다. 예를 들어, 클라우드 기계 학습 모델(110)이 동작하는 클라우드 서버는 장치 관리 서버(550)와 동일한 서버일 수 있다. 다른 예로서, 클라우드 기계학습 모델(110)은 장치 관리 서버와 별개의 서버(112)에서 수행될 수 있다.
도 6a 및 도 6b는 본 개시의 일 실시예에 따라 수행되는 로봇 장치의 패트롤 모드의 동작을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 주행 영역에서 주행을 개시할 때, 주행 영역 내에 사람이 존재하는지 여부를 판단하기 위해, 패트롤 모드를 수행할 수 있다. 패트롤 모드에서 로봇 장치(100)는 주행 영역 내의 전체 영역에 사람이 존재하는지 여부를 판단한다. 로봇 장치(100)는 주행 영역의 전체 영역에 대해 스캔하는 중에 사람이 검출되면 주행 영역에 사람이 있다고 판단한다. 로봇 장치(100)는 주행 영역의 전체 영역에 대해 스캔을 마칠 때까지 사람이 검출되지 않으면, 주행 영역에 사람이 없다고 판단한다. 주행 영역에 대한 스캔은 카메라(220)를 이용하거나, 로봇 장치(100)에 구비된 별도의 센서를 이용하여 수행할 수 있다. 카메라(220)의 출력과 센서의 출력을 함께 이용하는 것도 가능하다.
본 개시의 일 실시예에 따르면, 도 6a에 도시된 바와 같이, 로봇 장치(100)는 카메라(220)를 이용하여 주행 영역 전체를 촬영한다(610). 로봇 장치(100)는 주행 영역 전체를 촬영하기 위해, 주행 영역의 가장 자리로 이동하여, 가능한 넓은 화각의 FOV로 주행 영역을 촬영하고, 촬영된 입력 영상에서 사람을 검출할 수 있다. 로봇 장치(100)는 주행 영역을 소정의 영역으로 분할하여, 넓은 화각으로 복수회에 걸쳐서 촬영할 수 있다. 예를 들면, 주행 영역을 좌측 영역과 우측 영역으로 분할하고, 주행 영역의 중앙에서 좌측 영역을 촬영하고, 다음으로 우측 영역을 촬영할 수 있다.
로봇 장치(100)는 주행 영역을 전체적으로 스캔하기 위해, 카메라(220)의 화각을 이동시킬 수 있다(612). 예를 들면, 로봇 장치(100)는 로봇 장치(100)의 본체를 좌우로 회전시켜서 카메라(220)의 화각을 이동시킬 수 있다. 다른 예로서, 카메라(220)가 화각의 이동을 지원하는 경우, 로봇 장치(100)는 카메라(220) 자체의 화각을 이동시켜, 주행 영역을 스캔할 수 있다.
다른 예로서, 로봇 장치(100)는 센서를 이용하여 주행 영역을 전체적으로 스캔한다. 예를 들면, 로봇 장치(100)는 적외선 센서를 이용하여 주행 영역을 전체적으로 스캔할 수 있다. 적외선 센서를 이용하여 스캔하는 동작은 앞서 카메라(220)의 스캔 동작과 유사하다. 다른 예로서, 로봇 장치(100)는 라이다 센서, 또는 3D 센서 등을 이용하여 주행 영역을 스캔할 수 있다.
본 개시의 다른 실시예에 따르면, 도 6b에 도시된 바와 같이, 로봇 장치(100)는 주행 영역(620)을 따라 소정의 주행 경로(622)로 이동하면서, 주행 영역(620)을 스캔하고, 사람을 검출할 수 있다. 예를 들면, 로봇 장치(100)는 지그재그 형태로 주행 영역(620)을 주행하면서 주행 영역(620) 전체를 스캔할 수 있다. 일 실시예에 따르면, 패트롤 모드에서 지그재그 형태의 주행 경로(622)는 일반 모드에서의 지그재그 형태의 주행 경로보다 그 간격이 더 넓게 설정될 수 있다. 패트롤 모드에서 지그재그 형태의 주행 경로(622)는 주행 영역을 전체적으로 스캔하기 위한 것이기 때문에, 청소 모드와 같은 일반 모드보다 더 넓은 간격으로 촬영되어도 무방하다. 패트롤 모드에서의 주행 경로(622)는 빠른 시간 내에 주행 영역을 모두 스캔할 수 있도록 가능한 넓은 간격으로 지그재그 형태의 주행 경로를 설정한다.
다른 예로서, 로봇 장치(100)는 센서를 이용하여 소정의 주행 경로(622)로 이동하면서 주행 영역을 전체적으로 스캔한다. 예를 들면, 로봇 장치(100)는 적외선 센서를 이용하여 적외선 영상을 촬영하면서 주행 경로(622)를 주행하고 주행 영역을 전체적으로 스캔할 수 있다. 적외선 센서를 이용하여 스캔하는 동작은 앞서 카메라(220)의 스캔 동작과 유사하다.
주행 경로(622)의 형태는 지그재그 형태 이외에도 다양한 형태로 설정될 수 있다.
로봇 장치(100)는 패트롤 모드에서 주행 영역에 사람이 존재하는지 여부가 판단되면, 제1 모드 또는 제2 모드로 동작 모드를 설정한다. 프로세서(210)는 주행 영역에 사람이 존재하지 않는다고 판단되면, 클라우드 기계학습 모델(110)을 이용하는 제1 모드로 동작한다. 프로세서(210)는 주행 영역에 사람이 존재한다고 판단되면, 온-디바이스 기계학습 모델(120)을 이용하는 제2 모드로 동작한다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)가 주행 영역에서 주행을 개시할 때, 패트롤 모드에서 빠른 시간 내에 주행 영역 내에 사람이 존재하는지 판단함에 의해, 사용자의 프라이버시를 보호하는 기능을 제공하면서, 로봇 장치(100)의 동작 준비 시간을 과도하게 증가시키지 않는 장점이 있다.
로봇 장치(100)는 주행 영역에서 주행을 개시할 때, 영역 관리 시스템(540)에서 사람 인지 정보 또는 외출 기능 설정 정보를 수신하여, 주행 영역에 사람이 존재하는지 여부를 이미 판단한 경우, 패트롤 모드를 수행하지 않고, 바로 동작 모드를 제1 모드 또는 제2 모드로 설정할 수 있다. 또한, 로봇 장치(100)는 주행 영역에서 주행을 개시할 때, 장치 관리 서버(550)에서 사용자 위치 정보, 장치 사용 정보, 또는 외출 기능 설정 정보를 수신하여 주행 영역에 사람이 존재하는지 여부를 이미 판단한 경우, 패트롤 모드를 수행하지 않고, 바로 동작 모드를 제1 모드 또는 제2 모드로 설정할 수 있다.
도 7은 본 개시의 일 실시예에 따른 로봇 장치의 주행 영역을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)의 주행 영역은 벽 또는 문으로 구별된 실내 영역에 대응될 수 있다. 본 개시에서는 주행 영역이 일반 가정집에 대응하는 댁내 영역인 실시예를 중심으로 설명한다. 그러나 본 개시의 실시예들이 이러한 실시예로 한정되는 것은 아니며, 주행 영역은 다양한 실내 또는 실외 영역에 대응될 수 있다.
주행 영역(710)은 적어도 하나의 서브 주행 영역(720a, 720b, 720c, 720d, 720e)을 포함할 수 있다. 서브 주행 영역(720a, 720b, 720c, 720d, 720e)은 방, 거실, 주방 등에 대응될 수 있다. 서브 주행 영역(720a, 720b, 720c, 720d, 720e)은 벽 또는 문에 의해 그 경계가 정해질 수 있다. 로봇 장치(100)의 주행 알고리즘은 주행 영역(710)을 스캔하고, 벽과 문을 검출하여 주행 영역(710) 및 서브 주행 영역(720a, 720b, 720c, 720d, 720e)을 정의할 수 있다. 또한, 일 실시예에 따르면, 로봇 장치(100)는 사용자 입력에 따라 주행 영역(710)과 적어도 하나의 서브 주행 영역(720a, 720b, 720c, 720d, 720e)을 설정할 수 있다. 로봇 장치(100)는 사용자 입력에 따라 주행 금지 영역을 설정하는 것도 가능하다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 주행 영역(710) 전체를 대상으로 사람이 존재하는지 여부를 판단하고, 동작 모드를 제1 모드 또는 제2 모드로 설정할 수 있다. 이러한 경우, 로봇 장치(100)는 적어도 하나의 서브 주행 영역(720a, 720b, 720c, 720d, 720e)에 대해 제1 모드와 제2 모드 중 하나를 동일하게 적용할 수 있다. 이와 같은 경우, 로봇 장치(100)는 서브 주행 영역(720a, 720b, 720c, 720d, 720e) 간의 이동 시에 사람이 존재하는지 여부를 판단하고 모드를 판단하는 동작 없이, 설정된 동작(예를 들면, 청소)을 수행할 수 있다.
본 개시의 다른 실시예에 따르면, 로봇 장치(100)는 서브 주행 영역(720a, 720b, 720c, 720d, 720e) 각각에 대해 사람이 존재하는지 여부를 판단하고, 동작 모드를 제1 모드 또는 제2 모드로 설정할 수 있다. 로봇 장치(100)는 각각의 서브 주행 영역(720a, 720b, 720c, 720d, 720e)에서 주행을 개시할 때, 해당 서브 주행 영역(720a, 720b, 720c, 720d, 720e)에 사람이 존재하는지 여부를 판단한다. 예를 들면, 로봇 장치(100)가 침실 2(720a)의 청소를 시작할 때, 침실 2(720a)에 사람이 존재하는지 여부를 판단하고, 침실 2(720a)에서의 동작 모드를 제1 모드 또는 제2 모드로 설정한다. 또한, 로봇 장치(100)가 침실 2(720a)의 청소를 마치고, 거실(720c)로 이동하여 청소할 때, 거실(720c)에 사람이 존재하는지 여부를 판단하고, 거실(720c)에서의 동작 모드를 제1 모드 또는 제2 모드로 설정한다. 만약 침실 2(720a)는 사람이 존재하지 않고, 거실(720c)에는 사람이 존재하는 경우, 로봇 장치(100)는 침실 2(720a)에서 제1 모드로 동작하고, 거실(720c)에서는 제2 모드로 동작할 수 있다.
도 8은 본 개시의 일 실시예에 따른 로봇 장치의 기계학습 모델의 제어 동작을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 주행 영역에서 사람을 검출하고, 사람이 존재하는지 여부의 판단 결과에 따라 동작 모드를 변경한다. 이 때, 제1 모드에서 이용되는 클라우드 기계학습 모델(110)과 제2 모드에서 이용되는 온-디바이스 기계학습 모델(120) 간의 클로닝 동작이 수행될 수 있다. 클로닝 동작은 두 기계학습 모델 간에 동기화하는 동작으로, 로봇 장치(100)의 동작 중에 수행된 학습의 결과를 다른 기계학습 모델에 반영하는 동작이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)가 동작을 개시하고(802), 주행 영역에 사람이 존재하는지 여부를 판단한다(804).
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 동작을 개시하고(802), 아직 동작 모드가 결정되지 않았을 때는 미리 정해진 디폴트 모드로 동작할 수 있다. 디폴트 모드는 제1 모드이거나 제2 모드일 수 있다.
로봇 장치(100)는 주행 영역에 사람이 존재하지 않으면, 로봇 장치(100)의 동작 모드를 제1 모드로 설정하고, 클라우드 기계학습 모델(110)을 이용하여 입력 영상으로부터 객체를 인식한다(806). 로봇 장치(100)는 주행 영역에 사람이 존재하면, 로봇 장치(100)의 동작 모드를 제2 모드로 설정하고, 온-디바이스 기계학습 모델(120)을 이용하여 입력 영상으로부터 객체를 인식한다(808).
로봇 장치(100)는 모드를 설정하고, 주행 영역에서 주행하면서 계속해서 주행 영역에 사람이 존재하는지 여부를 판단한다(810). 모드 설정을 완료하더라도, 주행 도중에 사람이 존재하는지 여부에 대한 상태가 변경될 수 있기 때문에, 로봇 장치(100)는 동작 중에도 사람이 존재하는지 여부를 계속해서 판단한다. 로봇 장치(100)는 동작 중에 모드 변경 이벤트가 발생하면(812), 모드 변경을 위한 준비 동작을 수행한다.
로봇 장치(100)는 모드를 변경하기 전에, 기계학습 모델들 사이의 클로닝 동작을 수행한다. 로봇 장치(100)는 주행 중에 입력 영상을 수집하면서, 기계학습 모델을 추가적으로 학습시킬 수 있다. 클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 로봇 장치(100)로부터 제공된 입력 영상을 이용하여, 주행 영역의 환경을 반영하여 추가적인 학습을 수행할 수 있다. 예를 들면, 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)은 입력 영상에서 장애물이 없다고 판단하여, 로봇 장치(100)가 장애물이 없다고 판단하고 전방으로 직진하였는데 장애물과 충돌한 경우를 가정해보자. 이러한 경우, 로봇 장치(100)는 전방에 장애물이 있었다는 피드백 정보를 생성하여, 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)의 학습을 수행하는 블록으로 전달할 수 있다. 피드백 정보가 생성되면 해당 입력 영상을 처리한 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)은 재학습될 수 있다. 즉, 피드백 정보가 생성되면 제1 모드에서는 클라우드 기계학습 모델(110)이 재학습되고, 제2 모드에서는 온-디바이스 기계학습 모델(120)이 재학습된다. 이와 같이 클라우드 기계학습 모델(110)과 온-디바이스 기계학습 모델(120)은 주행 중에 재학습되고, 재학습 결과에 의해 해당 모델의 파라미터 값이 수정될 수 있다.
본 개시의 일 실시예에 따르면, 모드 변경 이벤트가 발생하여 모드가 변경되는 경우, 모드를 변경하기 전에 현재 사용 중인 기계학습 모델에 대해 재학습이 수행된 경우, 다른 기계학습 모델에 현재 사용 중인 기계학습 모델의 재학습 결과를 반영하는 클로닝 동작이 수행된다(814). 예를 들면, 제1 모드에서 동작 중에 클라우드 기계학습 모델(110)의 재학습이 수행되고 모드 변경 이벤트가 발생한 경우(812), 클라우드 기계학습 모델(110)의 재학습에 의해 수정된 파라미터 값이 온-디바이스 기계학습 모델(120)에 반영되는 클로닝 동작이 수행된다. 다른 예로서, 제2 모드에서 동작 중에 온-디바이스 기계학습 모델(120)의 재학습이 수행되고 모드 변경 이벤트가 발생한 경우(812), 온-디바이스 기계학습 모델(120)의 재학습에 의해 수정된 파라미터 값이 클라우드 기계학습 모델(110)에 반영되는 클로닝 동작이 수행된다.
클라우드 기계학습 모델(110) 및 온-디바이스 기계학습 모델(120)은 복수의 레이어 및 복수의 노드를 포함한다. 복수의 레이어 및 복수의 노드를 거치면서 데이터가 처리될 때, 소정의 가중치가 적용되어 각 노드의 출력 값이 전달된다. 또한, 각 레이어에서 수행되는 연산에 적용되는 다양한 파라미터가 존재한다. 이와 같은 가중치를 포함하는 파라미터는 기계학습을 통해 그 값이 정해진다. 만약 해당 기계학습 모델에 재학습이 수행되는 경우, 해당 기계학습 모델의 파라미터 값이 변경된다. 기계학습 모델을 수행하는 장치에는 이와 같은 파라미터 값을 각 레이어 및 노드에 적용하는 동작을 수행하는 파라미터 매니징 모듈이 구비될 수 있다. 본 개시의 일 실시예에 따라 기계학습 모델의 재학습이 수행되는 경우, 파라미터 매니징 모듈에서 파라미터 값이 업데이트되고, 파라미터 값이 업데이트되었다는 재학습 정보가 생성된다. 로봇 장치(100)는 모드 변경 이벤트가 발생한 경우(812), 현재 모드에서 기계학습 모델의 동작을 수행 중인 장치의 파라미터 매니징 모듈에 파라미터 값이 업데이트 되었다는 재학습 정보가 있는지 여부를 판단한다. 만약 재학습 정보가 존재하는 경우, 로봇 장치(100)는 모드를 변경하기 전에 기계학습 모델 사이의 클로닝 동작을 수행한다.
앞서 설명한 바와 같이, 온-디바이스 기계학습 모델(120)은 클라우드 기계학습 모델(110)에 적어도 하나의 바이패스 경로를 적용한 모델일 수 있다. 클로닝 동작을 수행하는 경우, 두 기계학습 모델에서 대응되는 파라미터 값을 동기화한다. 제1 모드에서 제2 모드로 변경되는 경우, 로봇 장치(100)는 서버(112)로부터 재학습 정보 및 파라미터 값 세트를 수신하고, 온-디바이스 기계학습 모델(120)의 파라미터 값 세트에 서버(112)로부터 수신된 파라미터 값 세트를 반영한다. 제2 모드에서 제1 모드로 변경되는 경우, 로봇 장치(100)는 서버(112)로 온-디바이스 기계학습 모델(120)에 대한 재학습 정보 및 파라미터 값 세트를 서버(112)로 전송한다. 서버(112)는 로봇 장치(100)로부터 수신된 파라미터 값 세트를 클라우드 기계학습 모델(110)의 파라미터 값 세트에 반영한다.
기계학습 모델 사이의 클로닝 동작이 수행되면(814), 로봇 장치(100)는 모드 변경 이벤트에 기초하여 로봇 장치(100)의 동작 모드를 제1 모드로 변경하거나(816), 제2 모드로 변경한다(818). 만약 모드 변경 이벤트가 발생하였을 때, 현재 이용 중인 기계학습 모델에 재학습이 수행된 이력이 없는 경우, 클로닝 동작이 수행되지 않고, 바로 모드가 변경될 수 있다.
도 9는 본 개시의 일 실시예에 따른 로봇 장치의 동작을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 제1 모드에서 서버(112)로 입력 영상을 전송하기 전에, 입력 영상에 사람이 존재하는지 여부를 판단하고, 사람이 존재하는 경우, 입력 영상을 전송하지 않을 수 있다. 이를 위해, 프로세서(210)는 서버(112)로 입력 영상을 전송하기 전에, 입력 영상으로부터 사람을 인식하는 처리를 수행한다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 제1 모드에서, 입력 영상으로부터 사람을 인식하기 위해, 온-디바이스 기계학습 모델(120)을 이용할 수 있다. 로봇 장치(100)는 제1 모드에서, 입력 영상을 온-디바이스 기계학습 모델(120)에 입력한 후, 온-디바이스 기계학습 모델(120)의 객체 인식 결과에서 사람이 검출되지 않은 경우, 입력 영상을 서버(112)로 전송할 수 있다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 제1 모드에서, 온-디바이스 기계학습 모델(120)을 이용할 때, 온-디바이스 기계학습 모델(120)의 모드를 라이트 모드로 설정할 수 있다. 라이트 모드의 온-디바이스 기계학습 모델(922)은 온-디바이스 기계학습 모델(922)을 경량화한 모델로서, 온-디바이스 기계학습 모델(120)에 적어도 하나의 바이패스 경로를 적용한 모델이다. 라이트 모드의 온-디바이스 기계학습 모델(922)은 사람 이외의 다른 객체의 인식 정확도는 고려하지 않고, 사람의 인식에 대해서만 소정 기준 이상의 정확도를 갖도록 동작할 수 있다. 온-디바이스 기계학습 모델(120)은 제1 모드에서 라이트 모드로 동작하고, 제2 모드에서는 노멀 모드로 동작할 수 있다.
프로세서(210)는 메모리(910)에서 입력 영상이 입력되면, 현재 모드에 따라 입력 영상을 전달한다. 현재 모드가 제1 모드인 경우, 입력 영상은 라이트 모드의 온-디바이스 기계학습 모델(922)로 입력된다. 프로세서(210)는 제1 모드에서 온-디바이스 기계학습 모델(922)을 라이트 모드로 설정한다. 라이트 모드의 온-디바이스 기계학습 모델(922)은 객체 인식 결과를 출력한다. 프로세서(210)는 객체 인식 결과에 따라 입력 영상을 전달한다(924).
프로세서(210)는 라이트 모드의 온-디바이스 기계학습 모델(922)의 객체 인식 결과에 기초하여 입력 영상에서 사람이 검출된 경우, 입력 영상을 서버(112)로 전송하지 않는다. 객체 인식 결과 사람이 존재한다고 판단되면, 프로세서(210)는 로봇 장치(100)의 모드를 제2 모드로 변경할 수 있다. 프로세서(201)는 라이트 모드의 온-디바이스 기계학습 모델(922)의 객체 인식 결과에 기초하여 입력 영상에서 사람이 검출되지 않은 경우, 입력 영상을 서버(112)로 전달한다.
프로세서(210)는 제2 모드에서는 온-디바이스 기계학습 모델을 노멀 모드로 설정하고, 노멀 모드의 온-디바이스 기계학습 모델(928)로 입력 영상을 입력한다.
프로세서(210)는 클라우드 기계학습 모델(110) 또는 노멀 모드의 온-디바이스 기계학습 모델(928)로부터 출력된 객체 인식 결과를 이용하여, 주행 제어 동작(926)을 수행한다.
도 10은 본 개시의 일 실시예에 따른 로봇 장치의 구성을 나타낸 도면이다.
본 개시의 일 실시예에 따른 로봇 장치(100)는 프로세서(210), 카메라(220), 통신 인터페이스(230), 이동 어셈블리(240), 및 출력 인터페이스(1010)를 포함할 수 있다. 도 10에 도시된 프로세서(210), 카메라(220), 통신 인터페이스(230), 및 이동 어셈블리(240)는 도 2에 도시된 것과 대응된다. 따라서 도 10에서는 도 2에 도시된 실시예와 차이점을 중심으로 설명한다.
출력 인터페이스(1010)는 로봇 장치(100)를 통해 출력되는 정보를 출력하는 인터페이스이다. 출력 인터페이스(1010)는 다양한 형태의 디바이스를 포함할 수 있다. 예를 들면, 출력 인터페이스(1010)는 디스플레이, 스피커, 또는 터치스크린 등을 포함할 수 있다.
로봇 장치(100)는 본체 상면에 배치된 디스플레이를 포함할 수 있다. 디스플레이는 로봇 장치(100)의 동작 모드, 현재 상태, 알림 메시지, 시간, 통신 상태, 잔여 배터리 정보 등의 정보를 표시할 수 있다. 프로세서(210)는 디스플레이로 표시할 정보를 생성하여 디스플레이로 출력한다. 디스플레이는 다양한 방식으로 구현될 수 있으며, 예를 들면, 액정 표시 장치, 유기 전계 발광 표시 장치, 전기 영동 표시 장치 등의 형태로 구현될 수 있다.
로봇 장치(100)는 출력 인터페이스(1010)를 통해 기계학습 모델의 동작 모드에 대한 정보를 출력한다. 프로세서(210)는 주행 영역에 사람이 있는지 여부를 판단하고, 판단 결과에 따라 모드를 변경해야 하는 이벤트가 발생한 경우, 출력 인터페이스(1010)를 통해 모드 변경 추천 메시지를 출력할 수 있다. 모드 변경 추천 메시지는 추천하는 모드에 대한 정보 및 모드를 변경할지 여부에 대한 확인 요청을 포함할 수 있다.
로봇 장치(100)는 모드 변경 추천 메시지를 시각 정보 또는 오디오 정보로 출력하거나, 이들의 조합으로 출력할 수 있다. 모드 변경 추천 메시지를 출력하는 형태는 미리 설정될 수 있다. 예를 들면, 로봇 장치(100)는 일반 모드, 무음 모드, 방해 금지 모드 등의 동작 모드를 포함할 수 있다. 로봇 장치(100)는 일반 모드에서는 시각 정보와 오디오 정보의 조합으로 모드 변경 추천 메시지를 출력한다. 또한, 로봇 장치(100)는 무음 모드 및 방해 금지 모드에서는 시각 정보로 모드 변경 추천 메시지를 출력하고, 오디오 정보는 출력하지 않는다. 프로세서(210)는 현재 모드에 따라 시각 정보 또는 오디오 정보를 생성하고 출력 인터페이스(1010)를 통해 출력할 수 있다.
일 실시예에 따르면, 로봇 장치(100)는 모드 변경 추천 메시지에 대해 사용자의 선택이 있는 경우에 모드를 변경하고, 사용자의 선택이 입력되지 않으면 모드를 변경하지 않을 수 있다. 예를 들면, 로봇 장치(100)가 제1 모드로 동작 중에 제2 모드로 모드 변경을 추천하는 모드 변경 추천 메시지를 출력한 경우, 로봇 장치(100)는 사용자가 모드 변경을 선택하는 사용자 입력이 수신되면 제2 모드로 변경하고, 모드를 변경하지 않을 것을 선택하는 사용자 입력이 수신되거나, 선택 입력이 수신되지 않으면 제2 모드로 변경하지 않을 수 있다. 또한, 로봇 장치(100)가 제2 모드로 동작 중에 제1 모드로 모드 변경을 추천하는 모드 변경 추천 메시지를 출력한 경우, 로봇 장치(100)는 사용자가 모드 변경을 선택하는 사용자 입력이 수신되면 제1 모드로 변경하고, 모드를 변경하지 않을 것을 선택하는 사용자 입력이 수신되거나, 선택 입력이 수신되지 않으면 제1 모드로 변경하지 않을 수 있다.
일 실시예에 따르면, 로봇 장치(100)는 모드 변경 추천 메시지를 출력하고, 기준 시간 이내에 모드의 변경 또는 모드의 유지를 선택하는 사용자 입력이 수신되면 사용자 입력에 따라 모드를 변경 또는 유지하고, 기준 시간 이내에 모드 변경 요청 메시지에 대한 사용자 입력이 수신되지 않으면, 자동으로 추천 모드로 변경할 수 있다. 예를 들면, 로봇 장치(100)는 모드 변경 추천 메시지를 출력하고 30초간 사용자 입력의 수신을 대기하고, 30초 내에 사용자 입력이 수신되지 않으면, 자동으로 추천 모드로 변경한다.
일 실시예에 따르면, 로봇 장치(100)는 제2 모드로 동작 중에 제1 모드를 추천하는 경우, 기준 시간 이내에 모드 변경을 선택하는 사용자 입력이 수신되지 않으면, 동작 모드를 제1 모드로 변경하지 않고, 제2 모드로 유지할 수 있다. 제1 모드에서는 입력 영상이 서버(112)로 전송되기 때문에, 모드 변경을 선택하는 사용자 입력이 없는 경우, 로봇 장치(100)의 동작 모드를 변경하지 않을 수 있다. 로봇 장치(100)는 제1 모드로 동작 중에 제2 모드를 추천하는 경우, 기준 시간 이내에 모드 변경 또는 유지를 선택하는 사용자 입력이 수신되지 않으면, 동작 모드를 제2 모드로 자동으로 변경할 수 있다. 제2 모드로 모드 변경 추천은 사용자의 프라이버시 보호를 위한 것이기 때문에, 사용자가 제1 모드로 동작 모드를 유지하겠다는 명시적인 선택이 없는 경우, 로봇 장치(100)는 프라이버시 보호를 위해 로봇 장치(100)의 동작 모드를 제2 모드로 자동으로 변경할 수 있다.
도 11은 본 개시의 일 실시예에 따라 모드 변경을 판단하는 조건 및 모드 전환 추천 이벤트가 발생하는 경우를 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 프로세서(210)는 제1 모드 또는 제2 모드로 동작 중에 사람이 존재하는지 여부를 계속해서 판단한다. 프로세서(210)는 제2 모드로 동작 중에, 주행 영역 내에 사람이 존재하지 않는다고 판단되면, 제1 모드로 모드 전환을 추천하는 모드 전환 추천 이벤트가 발생했다고 판단한다(1110). 또한, 프로세서(210)는 제1 모드로 동작 중에, 주행 영역 내에 사람이 존재한다고 판단되면, 제2 모드로 모드 전환을 추천하는 모드 전환 추천 이벤트가 발생했다고 판단한다(1120).
일 실시예에 따르면, 프로세서(210)는 모드 전환 이벤트가 발생한 경우, 모드 변경 추천 메시지를 출력하는 동작을 수행할 수 있다. 프로세서(210)는 모드 전환 이벤트가 발생하면, 추천 모드 정보에 기초하여 모드 변경 추천 메시지를 생성하고 출력한다.
다른 실시예에 따르면, 프로세서(210)는 모드 전환 이벤트가 발생한 경우, 모드 변경 알림 메시지 출력 후, 추천 모드로 동작 모드를 변경한다. 모드 변경 알림 메시지는 어떤 모드로 변경된다는 알림 메시지를 포함하며, 사용자의 응답은 요구되지 않는다. 일 실시예에 따르면, 모드 변경 알림 메시지와 함께 사용자가 모드 변경 여부를 선택할 수 있는 사용자 인터페이스 메뉴가 제공될 수 있다. 이러한 경우 사용자의 선택 입력이 필수는 아니다. 로봇 장치(100)는 사용자 입력이 수신되면 사용자 입력에 기초하여 모드 변경 여부를 결정하고, 사용자 입력이 없으면 자동으로 동작 모드를 추천 모드로 변경한다.
도 12는 본 개시의 일 실시예에 따라 로봇 장치에서 모드 변경 추천 메시지를 출력하는 동작을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 본체의 상면에 디스플레이(1202) 및 입력 인터페이스(1204)를 포함할 수 있다. 디스플레이(1202)는 로봇 장치(100)의 동작 상태에 대한 정보를 디스플레이한다. 입력 인터페이스(1204)는 적어도 하나의 버튼을 포함하고, 사용자 입력을 수신한다. 사용자는 적어도 하나의 버튼을 눌러서 원하는 선택 신호를 입력할 수 있다. 로봇 장치(100)는 디스플레이(1202)에 현재 모드를 표시하고, 입력 인터페이스(1204)를 통해 사용자가 선택할 수 있는 옵션을 표시할 수 있다.
로봇 장치(100)는 제1 모드로 동작 중에 사람이 검출된 경우, 제2 모드로 모드 변경을 추천하는 모드 변경 추천 메시지를 생성하고 출력할 수 있다. 프로세서(210)는 제1 모드로 동작 중에 사람이 검출되면, 오디오 출력 형태의 모드 변경 추천 메시지(1212)를 생성하고 출력한다. 로봇 장치(100)에 구비된 스피커(미도시)는 오디오 출력 형태의 모드 변경 추천 메시지를 출력한다.
또한, 로봇 장치(100)는 제1 모드로 동작 중에 사람이 검출된 경우, 모드 변경 또는 현재 모드 유지를 선택할 수 있는 GUI(Graphic user interface)를 제공할 수 있다(1210). 프로세서(210)는 디스플레이(1202)를 통해 모드 변경 또는 현재 모드 유지를 선택할 수 있는 GUI 뷰를 제공한다. 사용자는 디스플레이(1202)에 안내된 옵션에 따라 모드 변경 또는 현재 모드 유지를 선택하는 선택 신호를 입력 인터페이스(1204)를 통해 입력할 수 있다. 로봇 장치(100)는 모드 변경 추천 메시지를 출력하고 사용자 입력을 대기하는 동안, 주행을 중단하고 소정 시간 동안 사용자 입력을 대기할 수 있다. 소정 시간 동안 사용자 입력이 수신되지 않으면, 로봇 장치(100)는 모드를 자동으로 변경하거나 모드를 유지하고 다시 주행을 개시하고 설정된 동작(예를 들면, 청소)을 재개할 수 있다.
모드 변경을 선택하는 사용자 입력이 수신되면, 로봇 장치(100)의 동작 모드가 제2 모드로 변경되고, 모드가 변경되었다는 안내 메시지(1220)가 디스플레이(1202) 또는 스피커 중 적어도 하나로 출력된다. 현재 모드 유지를 선택하는 사용자 입력이 수신되면, 로봇 장치(100)는 모드를 변경하지 않고, 계속해서 제1 모드로 동작한다. 또한, 클라우드 기계학습 모델(110)을 이용하는 제1 모드로 동작 중이라는 안내 메시지(1230)가 디스플레이(1202) 또는 스피커 중 적어도 하나로 출력된다.
도 13은 본 개시의 일 실시예에 따라 로봇 장치에서 모드 변경 추천 메시지를 출력하는 동작을 나타낸 도면이다.
로봇 장치(100)는 제2 모드로 동작 중에 주행 영역에 사람이 없다고 판단되는 경우, 제1 모드로 모드 변경을 추천하는 모드 변경 추천 메시지를 생성하고 출력할 수 있다. 프로세서(210)는 제2 모드로 동작 중에 주행 영역에 사람이 없다고 판단되면, 오디오 출력 형태의 모드 변경 추천 메시지(1312)를 생성하고 출력한다. 로봇 장치(100)에 구비된 스피커(미도시)는 오디오 출력 형태의 모드 변경 추천 메시지를 출력한다.
또한, 로봇 장치(100)는 제2 모드로 동작 중에 주행 영역에 사람이 없다고 판단한 경우, 모드 변경 또는 현재 모드 유지를 선택할 수 있는 GUI(Graphic user interface)를 제공할 수 있다(1310). 프로세서(210)는 디스플레이(1202)를 통해 모드 변경 또는 현재 모드 유지를 선택할 수 있는 GUI 뷰를 제공한다. 사용자는 디스플레이(1202)에 안내된 옵션에 따라 모드 변경 또는 현재 모드 유지를 선택하는 선택 신호를 입력 인터페이스(1204)를 통해 입력할 수 있다. 로봇 장치(100)는 모드 변경 추천 메시지를 출력하고 사용자 입력을 대기하는 동안, 주행을 중단하고 소정 시간 동안 사용자 입력을 대기할 수 있다. 소정 시간 동안 사용자 입력이 수신되지 않으면, 로봇 장치(100)는 모드를 자동으로 변경하거나 모드를 유지하고 다시 주행을 개시하고 설정된 동작(예를 들면, 청소)을 재개할 수 있다.
모드 변경을 선택하는 사용자 입력이 수신되면, 로봇 장치(100)의 동작 모드가 제1 모드로 변경되고, 모드가 변경되었다는 안내 메시지(1320)가 디스플레이(1202) 또는 스피커 중 적어도 하나로 출력된다. 현재 모드 유지를 선택하는 사용자 입력이 수신되면, 로봇 장치(100)는 모드를 변경하지 않고, 계속해서 제2 모드로 동작한다. 또한, 온-디바이스 기계학습 모델을 이용하는 제2 모드로 동작 중이라는 안내 메시지(1330)가 디스플레이(1202) 또는 스피커 중 적어도 하나로 출력된다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 제2 모드로 동작 중에 주행 영역에 사람이 없다고 판단하여 제1 모드를 추천하는 경우, 로봇 장치(100)와 직접 연결되거나 장치 관리 서버(550)를 통해 연결된 외부 전자 장치로 모드 변경 추천 메시지를 함께 출력할 수 있다. 제2 모드로 동작 중에 외부 전자 장치로 모드 변경 추천 메시지를 출력하는 구성은 도 17 및 도 18에서 설명한다.
도 14는 본 개시의 일 실시예에 따라 로봇 장치가 모드 변경 알림을 전달하는 과정을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 모드 전환 추천 이벤트 또는 모드 변경 이벤트가 발생한 경우, 다른 전자 장치를 통해 알림 메시지를 출력할 수 있다. 로봇 장치(100)는 장치 관리 서버(550)를 통해 적어도 하나의 다른 전자 장치(1410a, 1410b, 1410c)와 연결될 수 있다. 로봇 장치(100)에서 모드 전환 추천 이벤트 또는 모드 변경 이벤트를 포함하는 알림 이벤트가 발생한 경우(1420), 로봇 장치(100)는 장치 관리 서버(550)로 알림 이벤트에 대한 정보를 전달한다. 장치 관리 서버(550)는 알림 이벤트에 대응하는 알림 메시지를 다른 전자 장치(1410a, 1410b, 1410c)로 전달할 수 있다(1422).
장치 관리 서버(550)는 적어도 하나의 전자 장치(100, 1410a, 1410b, 1410c)를 관리하는 서버이다. 장치 관리 서버(550)는 등록된 사용자 계정을 통해 적어도 하나의 전자 장치(100, 1410a, 1410b, 1410c)를 등록하고 관리할 수 있다. 장치 관리 서버(550)는 유선 또는 무선 네트워크를 통해 로봇 장치(100) 및 적어도 하나의 다른 전자 장치(1410a, 1410b, 1410c)와 연결된다. 적어도 하나의 다른 전자 장치(1410a, 1410b, 1410c)는 다양한 종류의 모바일 장치 및 가전기기를 포함할 수 있다. 예를 들면, 적어도 하나의 다른 전자 장치(1410a, 1410b, 1410c)는 스마트폰, 웨어러블 장치, 냉장고, 세탁기, 에어컨, 공기청정기, 의류관리기, 오븐, 인덕션 등을 포함할 수 있다.
알림 이벤트는 모드 전환 추천 이벤트 또는 모드 변경 이벤트를 포함할 수 있다. 알림 이벤트는 앞서 설명한 이벤트 이외에, 청소 시작 알림, 청소 완료 알림, 청소 상태 알림, 이물질 검출 알림, 배터리 부족 알림, 충전 개시 알림, 충전 완료 알림 등의 다양한 알림 이벤트를 포함할 수 있다.
모드 전환 추천 이벤트는 앞서 설명한 바와 같이 모드 변경을 추천하는 이벤트이다. 모드 전환 추천 이벤트에 대응하는 메시지가 다른 전자 장치(1410a, 1410b, 1410c)로 전달되는 경우, 장치 관리 서버(550)는 다른 전자 장치(1410a, 1410b, 1410c)를 통해 모드 변경에 대한 사용자 선택 신호를 요청하고, 다른 전자 장치(1410a, 1410b, 1410c) 중 적어도 하나를 통해 수신된 사용자 선택 신호를 로봇 장치(100)로 전달할 수 있다.
모드 변경 이벤트는 모드가 변경되었음을 알리는 이벤트이다. 모드 변경 이벤트에 대응하는 메시지가 다른 전자 장치(1410a, 1410b, 1410c)로 전달되는 경우, 장치 관리 서버(550)는 다른 전자 장치(1410a, 1410b, 1410c)에 메시지의 출력을 요청한다. 모드 변경 이벤트에 대응하는 메시지에 대해, 다른 전자 장치(1410a, 1410b, 1410c)를 통한 사용자 응답은 요구되지 않는다.
도 15는 본 개시의 일 실시예에 따라 제1 모드에서 모드 전환 추천 이벤트가 발생한 경우, 외부 전자 장치를 통해 알림을 출력하는 과정을 나타낸 흐름도이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 제1 모드에서 동작 중에 모드 변경 추천 이벤트가 발생하였을 때, 외부 전자 장치(1410)를 통해 모드 변경 추천 메시지를 전달하고, 사용자 입력을 수신할 수 있다. 외부 전자 장치(1410)는 장치 관리 서버(550)의 사용자 계정에 등록된 장치이다.
장치 관리 서버(550)는 사용자 계정에 등록된 외부 전자 장치 중, 메시지의 출력 및 사용자 입력 수신이 가능한 일부 전자 장치로 모드 변경 추천 메시지를 전달할 수 있다. 예를 들면, 장치 관리 서버(550)는 사용자 계정에 스마트폰, 웨어러블 장치, 냉장고, 세탁기, 에어컨, 오븐이 등록되어 있는 경우, 스마트폰, 웨어러블 장치, 및 냉장고로 모드 변경 추천 메시지를 전달하고, 세탁기, 에어컨, 및 오븐으로는 모드 변경 추천 메시지를 전달하지 않을 수 있다.
장치 관리 서버(550)는 메시지의 종류에 따라 메시지를 전달할 장치의 종류를 결정할 수 있다. 예를 들면, 장치 관리 서버(550)는 메시지의 출력이 가능한 소정 크기 이상의 디스플레이를 구비한 외부 전자 장치를 선택하여, 메시지를 전달할 수 있다. 또한, 사용자 응답이 필요한 메시지인 경우 디스플레이와 입력 인터페이스(예를 들면, 버튼, 터치스크린 등)를 구비한 외부 전자 장치를 선택하여, 메시지를 전달할 수 있다. 일 실시예에 따르면, 장치 관리 서버(550)는 모드 변경 추천 메시지는 응답이 필요한 메시지로 분류하고, 소정 기준 이상의 출력 인터페이스 및 입력 인터페이스를 모두 갖춘 전자 장치(예를 들면, 스마트폰 및 웨어러블 장치)로 메시지를 전달할 수 있다. 다른 예로서, 장치 관리 서버(550)는 모드 변경 알림 메시지는 응답이 필요 없는 메시지로 분류하고, 소정 기준 이상의 출력 인터페이스를 갖춘 전자 장치(예를 들면, 스마트폰, 웨어러블 장치, 및 냉장고)로 메시지를 전달할 수 있다.
도 15를 참조하여 제1 모드에서 외부 전자 장치로 모드 변경 추천 메시지를 전달하는 과정을 상세히 설명한다.
로봇 장치(100)는 제1 모드에서 클라우드 기계학습 모델(110)로 객체를 인식하면서(1502), 주행 영역 내에 사람이 존재하는지 여부를 판단한다(1504). 로봇 장치(100)는 주행 영역 내에 사람이 존재한다고 판단한 경우(1504), 서버(112)로 입력 영상의 전송을 중단한다(1506). 다음으로 로봇 장치(100)는 제2 모드로 모드를 변경할 것을 추천하는 모드 변경 추천 메시지를 생성하고 출력한다(1508). 로봇 장치(100)는 모드 변경 추천 메시지를 로봇 장치(100)의 출력 인터페이스(1010)를 통해 출력하고, 장치 관리 서버(550)로 전송한다.
로봇 장치(100)의 모드 변경 추천 메시지를 장치 관리 서버(550)에 등록된 외부 전자 장치(1410)로 전달하고 외부 전자 장치(1410)를 통해 출력할지 여부는 미리 설정 가능하다. 사용자는 본인의 사용자 계정에 등록된 전자 장치를 통해 로봇 장치(100)에 관련된 알림을 출력할지 여부를 사전에 설정할 수 있다. 사용자는 로봇 장치(100)에서 알림을 다른 전자 장치로 전달 및 출력할지 여부를 설정하거나, 사용자 계정에 등록된 전자 장치 중 하나를 통해 알림의 전달 및 출력 여부를 설정할 수 있다.
장치 관리 서버(550)는 로봇 장치(100)로부터 모드 변경 추천 메시지가 입력되면, 해당 메시지를 사용자 계정에 등록된 외부 전자 장치(1410)로 전송한다(1510). 장치 관리 서버(550)는 외부 전자 장치(1410)의 종류에 따라 모드 변경 추천 메시지를 변환하거나 가공하여 전달할 수 있다. 또한, 장치 관리 서버(550)는 외부 전자 장치(1410)에서 요구되는 통신 규격, 입력 데이터 규격 등을 고려하여 모드 변경 추천 메시지를 처리하여 전달할 수 있다. 장지 관리 서버(550)는 소정의 기준에 따라 모드 변경 추천 메시지를 전달할 외부 전자 장치(1410)를 선택하여, 선택된 외부 전자 장치(1410)로 모드 변경 추천 메시지를 전달한다. 예를 들면, 앞서 설명한 바와 같이, 장치 관리 서버(550)는 외부 전자 장치(1410)가 소정 기준 이상의 출력 인터페이스 및 입력 인터페이스를 구비하는지 여부에 기초하여 모드 변경 추천 메시지를 전달할 외부 전자 장치(1410)를 선택할 수 있다.
외부 전자 장치(1410)는 모드 변경 추천 메시지를 수신하면, 모드 변경 추천 메시지를 출력 인터페이스를 통해 출력한다(1512). 외부 전자 장치(1410)는 모드 변경 추천 메시지를 디스플레이하거나 오디오 신호로 출력할 수 있다. 일 실시예에 따르면, 외부 전자 장치(1410)는 장치 관리 서버(550)에 등록된 적어도 하나의 전자 장치를 관리하는 장치 관리 애플리케이션을 실행하고, 장치 관리 애플리케이션을 통해 모드 변경 추천 메시지를 출력할 수 있다. 이러한 경우, 모드 변경 추천 메시지는 애플리케이션 알림의 형태로 출력된다.
외부 전자 장치(1410)는 모드 변경 추천 메시지에 대한 사용자 입력을 수신한다(1514). 사용자 입력은 모드 변경을 선택하는 사용자 입력과, 현재 모드 유지를 선택하는 사용자 입력 중 하나일 수 있다. 본 개시의 일 실시예에 따르면, 외부 전자 장치(1410)는 청소 중지를 선택하는 사용자 입력 등 장치의 동작을 제어하는 다양한 종류의 사용자 입력을 받을 수 있다.
외부 전자 장치(1410)는 사용자 입력이 수신되면, 수신된 사용자 입력을 장치 관리 서버(550)로 전송한다(1516). 장치 관리 서버(550)는 외부 전자 장치(1410) 중 하나로부터 사용자 입력이 수신되면, 수신된 사용자 입력을 로봇 장치(100)로 전송한다(1518).
일 실시예에 따르면, 모드 변경 추천 메시지가 복수의 외부 전자 장치(1410)로 전달된 경우, 하나의 외부 전자 장치(1410)에서 사용자 입력이 수신되면, 나머지 외부 전자 장치(1410)에서 출력된 메시지는 출력이 중단될 수 있다. 이를 위해, 장치 관리 서버(550)는 하나의 외부 전자 장치(1410)로부터 사용자 입력이 수신되면, 모드 변경 추천 메시지를 출력한 나머지 전자 장치로 메시지에 대한 응답이 완료되었다는 정보 또는 메시지의 출력의 중단을 요청하는 제어 신호를 전달하여, 나머지 전자 장치에서의 메시지 출력을 중단시킬 수 있다. 만약 로봇 장치(100) 및 적어도 하나의 외부 전자 장치(1410)를 통해 모드 변경 추천 메시지가 출력되고, 로봇 장치(100)를 통해 사용자 입력이 수신되면, 로봇 장치(100)는 장치 관리 서버(550)로 모드 변경 추천 메시지에 대한 응답이 완료되었다는 정보 또는 메시지의 출력의 중단을 요청하는 제어 신호를 전달한다. 장치 관리 서버(550)는 로봇 장치(100)로부터 모드 변경 추천 메시지에 대한 응답이 완료되었다는 정보 또는 메시지의 출력의 중단을 요청하는 제어 신호를 수신하면, 나머지 외부 전자 장치(1410)로 메시지에 대한 응답이 완료되었다는 정보 또는 메시지의 출력의 중단을 요청하는 제어 신호를 전달하여, 나머지 외부 전자 장치(1410)에서의 메시지 출력을 중단시킬 수 있다.
로봇 장치(100)는 장치 관리 서버(550)로부터 사용자 입력이 수신되면, 사용자 입력에 기초하여 로봇 장치(100)의 모드를 제어한다(1520). 로봇 장치(100)는 모드 변경을 선택한 사용자 입력이 수신되면, 동작 모드를 제2 모드로 변경한다. 로봇 장치(100)는 현재 모드 유지를 선택한 사용자 입력이 수신되면, 동작 모드를 제1 모드로 유지한다.
도 16은 본 개시의 일 실시예에 따라 외부 장치를 통해 모드 변경 추천 메시지를 출력하는 과정을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)와 장치 관리 서버(550)를 통해 통신하고, 장치 관리 서버(550)의 사용자 계정에 등록된 모바일 장치(1610)를 통해 모드 변경 추천 메시지가 출력될 수 있다. 모바일 장치(1610)는 통신 인터페이스 및 프로세서를 포함할 수 있다. 모바일 장치(1610)는 장치 관리 서버(550)의 기능을 제공하는 제1 애플리케이션을 설치하고 실행한다. 모바일 장치(1610)는 제1 애플리케이션을 통해 장치 관리 서버(550)에 등록된 장치 정보, 장치 관리 서버(550)에서 제공하는 정보 등을 제공할 수 있다. 또한, 모바일 장치(1610)는 로봇 장치(100)의 상태 정보, 및 로봇 장치(100)를 제어하기 위한 GUI를 제공할 수 있다.
모바일 장치(1610)는 사용자 계정에 등록된 적어도 하나의 장치 정보(1612)를 제공할 수 있다. 모바일 장치(1610)는 각 장치에 속성 정보, 동작 정보, 위치 정보 등을 나타낼 수 있다. 또한, 모바일 장치(1610)는 사용자 계정에 등록된 적어도 하나의 장치에서 알림 이벤트가 발생하면 이벤트 정보를 출력한다.
로봇 장치(100)가 장치 관리 서버(550)에 등록된 경우, 모바일 장치(1610)는 제1 애플리케이션을 통해 로봇 장치(100)의 동작 상태를 출력한다. 제1 애플리케이션은 로봇 장치(100)가 제1 모드로 동작 중인 경우, 로봇 장치(100)가 클라우드 기계학습 모델(110)을 이용하여 동작 중이라는 정보(1620)를 출력할 수 있다. 또한, 모바일 장치(1610)는 제1 애플리케이션을 통해 로봇 장치(100)의 동작 모드를 제2 모드로 변경할 수 있는 선택 메뉴(1622)를 제공할 수 있다.
모바일 장치(1610)는 모드 전환 추천 이벤트가 발생했다는 정보를 장치 관리 서버(550)로부터 수신한 경우, 모드 변경 추천 메시지(1630)를 출력한다. 모바일 장치(1610)는 모드 변경 추천 메시지(1630)와 함께 사용자가 모드 변경 여부를 선택할 수 있는 선택 메뉴(1632)를 함께 제공할 수 있다. 모바일 장치(1610)는 사용자 입력이 수신되면, 사용자 입력을 장치 관리 서버(550)로 전달한다. 장치 관리 서버(550)는 사용자 입력을 로봇 장치(100)로 전달한다.
사용자가 모드 변경을 선택하고, 사용자 입력에 따라 로봇 장치(100)의 동작 모드가 제2 모드로 변경 완료되면, 모바일 장치(1610)는 로봇 장치(100)의 동작 모드가 제2 모드로 변경되었다는 상태 정보(1640)를 출력한다. 사용자가 모드를 변경하지 않는 옵션을 선택하고, 사용자 입력에 따라 로봇 장치(100)가 제1 모드로 청소를 재개하면, 모바일 장치(1610)는 로봇 장치(100)가 제1 모드로 청소를 계속한다는 상태 정보(1642)를 출력한다.
도 17은 본 개시의 일 실시예에 따라 제2 모드에서 모드 전환 추천 이벤트가 발생한 경우, 외부 전자 장치를 통해 알림을 출력하는 과정을 나타낸 흐름도이다.
로봇 장치(100)는 제2 모드에서 온-디바이스 기계학습 모델(120)로 객체를 인식하면서(1702), 주행 영역 내에 사람이 존재하는지 여부를 판단한다(1704). 로봇 장치(100)는 주행 영역 내에 사람이 존재한다고 판단한 경우(1704), 제1 모드로 모드를 변경할 것을 추천하는 모드 변경 추천 메시지를 생성하고 출력한다(1706). 로봇 장치(100)는 모드 변경 추천 메시지를 로봇 장치(100)의 출력 인터페이스를 통해 출력하고, 장치 관리 서버(550)로 전송한다.
장치 관리 서버(550)는 로봇 장치(100)로부터 모드 변경 추천 메시지가 입력되면, 해당 메시지를 사용자 계정에 등록된 외부 전자 장치(1410)로 전송한다(1708). 장치 관리 서버(550)는 소정의 기준에 따라 모드 변경 추천 메시지를 전달할 외부 전자 장치(1410)를 선택하여, 선택된 외부 전자 장치(1410)로 모드 변경 추천 메시지를 전달한다.
외부 전자 장치(1410)는 모드 변경 추천 메시지를 수신하면, 모드 변경 추천 메시지를 출력 인터페이스를 통해 출력한다(1710). 외부 전자 장치(1410)는 모드 변경 추천 메시지를 디스플레이하거나 오디오 신호로 출력할 수 있다.
외부 전자 장치(1410)는 모드 변경 추천 메시지에 대한 사용자 입력을 수신한다(1712). 사용자 입력은 모드 변경을 선택하는 사용자 입력과, 현재 모드 유지를 선택하는 사용자 입력 중 하나일 수 있다.
외부 전자 장치(1410)는 사용자 입력이 수신되면, 수신된 사용자 입력을 장치 관리 서버(550)로 전송한다(1714). 장치 관리 서버(550)는 외부 전자 장치(1410) 중 하나로부터 사용자 입력이 수신되면, 수신된 사용자 입력을 로봇 장치(100)로 전송한다(1716).
로봇 장치(100)는 장치 관리 서버(550)로부터 사용자 입력이 수신되면, 사용자 입력에 기초하여 로봇 장치(100)의 모드를 제어한다(1718). 로봇 장치(100)는 모드 변경을 선택한 사용자 입력이 수신되면, 동작 모드를 제1 모드로 변경한다. 로봇 장치(100)는 현재 모드 유지를 선택한 사용자 입력이 수신되면, 동작 모드를 제2 모드로 유지한다.
도 18은 본 개시의 일 실시예에 따라 외부 장치를 통해 모드 변경 추천 메시지를 출력하는 과정을 나타낸 도면이다.
로봇 장치(100)가 장치 관리 서버(550)에 등록된 경우, 모바일 장치(1610)는 제1 애플리케이션을 통해 로봇 장치(100)의 동작 상태를 출력한다. 제1 애플리케이션은 로봇 장치(100)가 제2 모드로 동작 중인 경우, 로봇 장치(100)가 온-디바이스 기계학습 모델(120)을 이용하여 동작 중이라는 정보(1820)를 출력할 수 있다. 또한, 모바일 장치(1610)는 로봇 장치(100)의 동작 모드를 제1 모드로 변경할 수 있는 선택 메뉴(1822)를 제공할 수 있다.
모바일 장치(1610)는 모드 전환 추천 이벤트가 발생했다는 정보를 장치 관리 서버(550)로부터 수신한 경우, 모드 변경 추천 메시지(1830)를 출력한다. 모바일 장치(1610)는 모드 변경 추천 메시지(1830)와 함께 사용자가 모드 변경 여부를 선택할 수 있는 선택 메뉴(1832)를 함께 제공할 수 있다. 모바일 장치(1610)는 사용자 입력이 수신되면, 사용자 입력을 장치 관리 서버(550)로 전달한다. 장치 관리 서버(550)는 사용자 입력을 로봇 장치(100)로 전달한다.
사용자가 모드 변경을 선택하고, 사용자 입력에 따라 로봇 장치(100)의 동작 모드가 제1 모드로 변경 완료되면, 모바일 장치(1610)는 로봇 장치(100)의 동작 모드가 제2 모드로 변경되었다는 상태 정보(1840)를 출력한다. 사용자가 모드를 변경하지 않는 옵션을 선택하고, 사용자 입력에 따라 로봇 장치(100)가 제2 모드로 청소를 재개하면, 모바일 장치(1610)는 로봇 장치(100)가 제2 모드로 청소를 계속한다는 상태 정보(1842)를 출력한다.
도 19는 본 개시의 일 실시예에 따라 프라이버시 영역 또는 프라이버시 시간을 설정하는 동작을 나타낸 흐름도이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)는 사람이 존재하는지 여부에 상관없이, 항상 온-디바이스 기계학습 모델(120)을 이용하는 제2 모드로 동작하는 프라이버시 영역 또는 프라이버시 시간을 설정할 수 있다. 일 실시예에 따르면, 로봇 장치(100)는 프라이버시 영역을 설정할 수 있다. 다른 실시예에 따르면, 로봇 장치(100)는 프라이버시 시간을 설정할 수 있다. 또 다른 실시예에 따르면, 로봇 장치(100)는 프라이버시 영역과 프라이버시 시간을 모두 설정할 수 있다.
프라이버시 영역은 주행 영역 내의 소정의 영역을 의미한다. 일 실시예에 따르면, 프라이버시 영역은 주행 영역 내의 서브 주행 영역으로 설정될 수 있다. 예를 들면, 주행 영역은 방, 거실, 또는 주방에 대응되는 복수의 서브 주행 영역을 포함하고, 복수의 서브 주행 영역 중 프라이버시 영역이 선택될 수 있다. 프라이버시 영역은 설정되지 않을 수 있으며, 하나 이상의 서브 주행 영역이 프라이버시 영역으로 설정될 수 있다. 예를 들면, 침실 1이 프라이버시 영역으로 설정될 수 있다. 다른 예로서, 프라이버시 영역은 주행 영역 내에서 사용자에 의해 임의로 설정된 영역일 수 있다. 로봇 장치(100)는 로봇 장치(100)의 사용자 인터페이스 또는 장치 관리 서버(550)를 통해 연결된 다른 전자 장치의 사용자 인터페이스를 통해 프라이버시 영역을 설정하는 사용자 입력을 수신할 수 있다.
프라이버시 시간은 사용자에 의해 특정된 시간 구간을 의미한다. 프라이버시 시간은 한 번만 설정되거나, 반복적으로 설정될 수 있다. 프라이버시 시간은 요일을 선택하여 설정되거나, 주중 또는 주말을 선택하여 설정될 수 있다. 또한, 프라이버시 시간은 특정 시간 구간으로 지정되어 선택될 수 있다. 로봇 장치(100)는 로봇 장치(100)의 사용자 인터페이스 또는 장치 관리 서버(550)를 통해 연결된 다른 전자 장치의 사용자 인터페이스를 통해 프라이버시 시간을 설정하는 사용자 입력을 수신할 수 있다.
도 19를 참조하여, 프라이버시 영역 또는 프라이버시 시간이 설정된 경우의 로봇 장치(100)의 동작을 설명한다.
로봇 장치(100)는 동작을 개시하면, 현재 주행하는 영역이 프라이버시 영역에 대응하는지 여부를 판단한다(1902). 또한, 로봇 장치(100)는 동작을 개시하면, 현재 요일과 시간이 프라이버시 시간에 대응하는지 여부를 판단한다(1902). 만약 현재 주행하는 영역이 프라이버시 영역에 대응하거나, 현재 시간이 프라이버시 시간에 대응하는 경우, 로봇 장치(100)는 동작 모드를 제2 모드로 설정하고, 온-디바이스 기계학습 모델(120)을 이용하여 객체를 인식한다(1912). 이러한 경우, 로봇 장치(100)는 주행 영역에 사람이 존재하는지 여부를 판단하지 않고, 동작 모드를 제2 모드로 설정할 수 있다.
로봇 장치(100)는 현재 주행 지점이 프라이버시 영역에 해당하지 않는 경우, 사람이 존재하는지 여부를 판단하는 과정을 수행한다. 또한, 로봇 장치(100)는 현재 시점이 프라이버시 시간에 해당하지 않는 경우, 사람이 존재하는지 여부를 판단하는 과정을 수행한다. 로봇 장치(100)의 구성에 따라 프라이버시 영역에 해당하는지 여부를 판단하거나, 프라이버시 시간에 해당하는지 여부를 판단하거나, 프라이버시 영역과 프라이버시 시간에 해당하는지 여부를 모두 판단할 수 있다.
프라이버시 영역 또는 프라이버시 시간에 해당하지 않는 경우, 로봇 장치(100)는 로봇 장치(100)의 주행 중에 주변을 촬영하여 입력 영상을 생성한다(1904). 또한, 로봇 장치(100)는 주행 영역에서 사람을 검출하고(1906), 주행 영역에 사람이 존재하는지 여부를 판단한다(1908). 로봇 장치(100)는 주행 영역에 사람이 존재하지 않는 경우, 제1 모드에서 클라우드 기계학습 모델(110)을 이용하여 입력 영상으로부터 객체를 인식한다(1910). 로봇 장치(100)는 주행 영역에 사람이 존재하는 경우, 제2 모드에서 온-디바이스 기계학습 모델(120)을 이용하여 입력 영상으로부터 객체를 인식한다(1912).
로봇 장치(100)는 클라우드 기계학습 모델(110) 또는 온-디바이스 기계학습 모델(120)의 객체 인식 결과를 이용하여, 로봇 장치(100)의 주행을 제어한다(1914).
도 20은 본 개시의 일 실시예에 따라 프라이버시 영역을 설정하는 과정을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 장치 관리 서버(550)의 사용자 계정에 등록된 외부 전자 장치(2010)를 이용하여 로봇 장치(100)의 프라이버시 영역이 설정될 수 있다. 외부 전자 장치(2010)는 예를 들면, 터치스크린을 구비한 통신 단말, 태블릿 PC, 데스크톱 PC, 랩톱 PC, 웨어러블 장치, 텔레비전, 또는 냉장고 등에 대응될 수 있다. 외부 전자 장치(2010)는 디스플레이와 입력 인터페이스(예를 들면, 터치스크린, 마우스, 키보드, 터치패드, 키 버튼 등)를 구비할 수 있다.
외부 전자 장치(2010)는 장치 관리 서버(550)에 등록된 전자 장치들을 관리하는 제1 애플리케이션을 실행한다. 제1 애플리케이션은 로봇 장치(100)의 프라이버시 영역을 설정할 수 프라이버시 영역 설정 메뉴(2012)를 제공할 수 있다. 제1 애플리케이션은 사용자가 프라이버시 영역 메뉴(2012)를 선택하면(2014), 주행 공간 정보(2016)를 출력한다. 주행 공간 정보(2016)는 적어도 하나의 서브 주행 영역을 포함할 수 있다.
프라이버시 영역의 설정은 사용자가 서브 주행 영역을 선택하는 선택 입력(2022), 또는 사용자가 영역을 임의로 설정하는 영역 설정 입력(2026)에 기초하여 수행될 수 있다. 제1 애플리케이션은 사용자가 서브 주행 영역 중 하나(2020)를 프라이버시 영역으로 선택하면(2022), 해당 영역을 프라이버시 영역으로 설정한다. 또한, 제1 애플리케이션은 사용자가 설정한 임의의 영역(2024)을 프라이버시 영역으로 설정할 수 있다.
외부 전자 장치(2010)의 제1 애플리케이션에서 생성된 프라이버시 영역 정보는 장치 관리 서버(550)로 전달되고, 장치 관리 서버(550)는 로봇 장치(100)로 프라이버시 영역 정보를 전송한다. 로봇 장치(100)는 장치 관리 서버(550)로부터 수신한 프라이버시 영역 정보에 기초하여 로봇 장치(100)의 주행을 제어한다.
도 21은 본 개시의 일 실시예에 따라, 프라이버시 영역 및 촬영 금지 구역을 설정하는 과정을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 로봇 장치(100)의 주행 영역에서 프라이버시 영역(2020, 2024)이 설정된 경우, 프라이버시 영역(2020, 2024)이 촬영된 입력 영상을 서버(112)로 전송하는 것을 방지하기 위해, 프라이버시 영역(2020, 2024)을 포함하고 프라이버시 영역(2020, 2024)이 촬영될 수 있는 지점을 포함하는 영상 전송 금지 영역(2110a, 2110b)이 설정될 수 있다. 영상 전송 금지 영역(2110a, 2110b)은 프라이버시 영역(2020, 2024)을 포함하고, 프라이버시 영역(2020, 2024)보다 더 넓은 영역으로 설정될 수 있다.
영상 전송 금지 영역(2110a, 2110b)은 로봇 장치(100)의 각 지점에서의 카메라(220)의 FOV 및 화각을 고려하여 설정될 수 있다. 로봇 장치(100) 또는 장치 관리 서버(550)는 프라이버시 영역(2020, 2024)에 기초하여, 영상 전송 금지 영역(2110a, 2110b)을 설정할 수 있다. 로봇 장치(100) 또는 장치 관리 서버(550)는 카메라(220)의 FOV 내에 프라이버시 영역(2020, 2024)이 촬영되는 지점을 정의하고, FOV 내에 프라이버시 영역(2020, 2024)이 촬영되는 지점을 영상 전송 금지 영역(2110a, 2110b)으로 설정할 수 있다. 프라이버시 영역(2020)이 서브 주행 영역 중 하나로 설정된 경우, 영상 전송 금지 영역(2110b)은 서브 주행 영역으로 출입하는 문이 배치된 영역 주변의 소정 영역으로 설정될 수 있다. 프라이버시 영역(2024) 임의의 영역으로 설정된 경우, 영상 전송 금지 영역(2110a)은 해당 프라이버시 영역(2024) 주변에 가구 또는 벽이 배치되어 있는지 판단하고, 가구 또는 벽이 배치되지 않은 개방된 경계 주변의 소정 영역으로 설정될 수 있다.
로봇 장치(100)는 프라이버시 영역(2020, 2024)이 설정된 경우, 영상 전송 금지 영역(2110a, 2110b)에서 제2 모드로 동작할 수 있다. 사용자는 실제로 프라이버시 영역(2020, 2024)을 설정하지만, 사용자의 프라이버시 보호를 위해, 로봇 장치(100) 또는 장치 관리 서버(550)는 사람이 존재하는지 여부에 상관없이 항상 제2 모드로 동작하는 영역을 영상 전송 금지 영역(2110a, 2110b)으로 확장할 수 있다.
일 실시예에 따르면, 영상 전송 금지 영역(2110a, 2110b)을 설정할지 여부는 로봇 장치(100) 또는 외부 전자 장치(2010)를 통해 선택될 수 있다. 또한, 영상 전송 금지 영역(2110a, 2110b)에 대한 정보가 로봇 장치(100) 또는 외부 전자 장치(2010)를 통해 제공될 수 있다. 또한, 영상 전송 금지 영역(2110a, 2110b)을 설정하고 편집할 수 있는 GUI가 로봇 장치(100) 또는 외부 전자 장치(2010)를 통해 제공될 수 있다.
도 22는 본 개시의 일 실시예에 따라 프라이버시 시간을 설정하는 과정을 나타낸 도면이다.
본 개시의 일 실시예에 따르면, 장치 관리 서버(550)의 사용자 계정에 등록된 외부 전자 장치(2010)를 이용하여 로봇 장치(100)의 프라이버시 시간이 설정될 수 있다.
외부 전자 장치(2010)는 장치 관리 서버(550)에 등록된 전자 장치들을 관리하는 제1 애플리케이션을 실행한다. 제1 애플리케이션은 로봇 장치(100)의 프라이버시 시간을 설정할 수 있는 프라이버시 시간 설정 메뉴(2210)를 제공할 수 있다. 제1 애플리케이션은 사용자가 프라이버시 영역 메뉴(2210)를 선택하면(2212), 사용자가 프라이버시 시간을 설정할 수 있는 GUI를 제공한다.
제1 애플리케이션은 프라이버시 시간이 설정되면, 설정된 프라이버시 시간 정보(2220)를 출력할 수 있다. 프라이버시 시간은 다양한 날짜와 시간으로 설정될 수 있다. 프라이버시 시간은 반복되도록 설정되거나(2222a, 2222b, 2222c), 한 번만 설정(2222d)될 수 있다. 또한, 프라이버시 시간은 주말로 설정되거나(2222a), 주중으로 설정(2222b)될 수 있으며, 특정 요일을 선택하여 설정(2222c)될 수 있다.
외부 전자 장치(2010)의 제1 애플리케이션에서 생성된 프라이버시 시간 정보는 장치 관리 서버(550)로 전달되고, 장치 관리 서버(550)는 로봇 장치(100)로 프라이버시 시간 정보를 전송한다. 로봇 장치(100)는 장치 관리 서버(550)로부터 수신한 프라이버시 시간 정보에 기초하여 로봇 장치(100)의 주행을 제어한다.
도 23은 본 개시의 일 실시예에 따른 로봇 장치(100)의 일례를 도시한 도면이다.
본 개시의 일 실시예에 따른 로봇 장치(100)는 청소 로봇(2300)의 형태로 구현된다. 청소 로봇(2300)은 상면에 카메라(2310) 및 입출력 인터페이스(2320)를 구비한다. 카메라(2310)는 앞서 설명한 도 2에서 카메라(220)에 대응되고, 입출력 인터페이스(2320)는 앞서 설명한 출력 인터페이스(1010)에 대응될 수 있다. 카메라(2310)는 동작 상태에 따라 카메라(2310)의 FOV가 청소 로봇(2300)의 주행 방향 정면을 향하도록 동작할 수 있다. 예를 들면, 청소 로봇(2300)의 동작 상태에 따라 카메라(2310) 주변의 하우징이 이동하면서, 카메라(2310)의 FOV가 상면을 향하는 방향에서 정면을 향하는 방향으로 카메라(2310)가 이동할 수 있다.
또한, 청소 로봇(2300)은 하면에 청소 어셈블리(2330) 및 이동 어셈블리(2340a, 2340b, 2340c)를 포함한다. 청소 어셈블리(2330)는 진공 청소 모듈 또는 물걸레 청소 모듈 중 적어도 하나 또는 이들의 조합을 포함한다. 진공 청소 모듈은 먼지통, 브러쉬, 진공 흡입기 등을 포함하고, 진공 흡입 동작을 수행한다. 물걸레 청소 모듈은 물통, 수분 공급 모듈, 물걸레 부착부, 물걸레 등을 포함하고, 물걸레 청소 동작을 수행한다. 이동 어셈블리(2340a, 2340b, 2340c)는 적어도 하나의 바퀴, 바퀴 구동부 등을 포함하고, 청소 로봇(2300)을 이동시킨다.
도 24는 본 개시의 일 실시예에 따른 청소 로봇의 구조를 나타낸 도면이다.
본 개시의 일 실시예에 따른 청소 로봇(2400)은 센서(2410), 출력 인터페이스(2420), 입력 인터페이스(2430), 메모리(2440), 통신 인터페이스(2450), 청소 어셈블리(2460), 이동 어셈블리(2470), 배터리(2480), 및 프로세서(2490)를 포함한다. 청소 로봇(2400)은 도 24에 도시된 구성요소들의 다양한 조합으로 구성될 수 있으며, 도 24에 도시된 구성요소가 모두 필수적인 구성은 아니다.
도 24의 청소 로봇(2400)은 도 2에서 설명한 로봇 장치(100)에 대응되고, 이미지 센서(2412)는 도 2에서 설명한 카메라(220)에 대응되고, 출력 인터페이스(2420)는 도 10에서 설명한 출력 인터페이스(1010)에 대응되고, 프로세서(2490)는 도 2에서 설명한 프로세서(210)에 대응되고, 통신 인터페이스(2450)는 도 2에서 설명한 통신 인터페이스(230)에 대응되고, 이동 어셈블리(2470)는 도 2에서 설명한 이동 어셈블리(240)에 대응된다.
센서(2410)는 다양한 종류의 센서를 포함할 수 있으며, 예를 들면, 추락 방지 센서(2411), 이미지 센서(2412), 적외선 센서(2413), 초음파 센서(2414), 라이다 센서(2415), 장애물 센서(2416), 또는 주행거리 검출 센서(미도시) 중 적어도 하나 또는 이들의 조합을 포함할 수 있다. 주행거리 검출 센서는 바퀴의 회전수를 계산하는 회전검출 센서를 포함할 수 있다. 예를 들면, 회전 검출센서는 모터의 회전수를 검출하도록 설치된 엔코더가 있을 수 있다. 이미지 센서(2412)는 구현 예에 따라서 청소 로봇(2400)에 여러 개가 배치될 수도 있다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
출력 인터페이스(2420)는 디스플레이(2421) 또는 스피커(2422) 중 적어도 하나 또는 이들의 조합을 포함할 수 있다. 출력 인터페이스(2420)는 프로세서(2490)에서 생성된 다양한 알림, 메시지, 정보 등을 출력한다.
입력 인터페이스(2430)는 키(2431), 터치스크린(2432), 터치패드 등을 포함할 수 있다. 입력 인터페이스(2430)는 사용자 입력을 수신하여 프로세서(2490)로 전달한다.
메모리(2440)는 청소 로봇(2400)의 동작에 필요한 다양한 정보, 데이터, 명령어, 프로그램 등을 저장한다. 메모리(2440)는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 하나 또는 이들의 조합을 포함할 수 있다. 메모리(2440)는 플래시 메모리 타입(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), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 청소 로봇(2400)은 인터넷(internet)상에서 저장 기능을 수행하는 웹 스토리지(web storage) 또는 클라우드 서버를 운영할 수도 있다.
통신 인터페이스(2450)는 근거리 통신부(2452) 또는 이동 통신부(2454) 중 적어도 하나 또는 이들의 조합을 포함할 수 있다. 통신부(2450)는 다른 장치와 무선으로 통신하기 위한 적어도 하나의 안테나를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(2452)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부, 마이크로 웨이브(uWave) 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(2454)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
청소 어셈블리(2460)는 본체의 하부에 설치되어 바닥의 먼지를 쓸거나 비산시키고, 쓸거나 비산된 먼지를 흡입하는 메인 브러시 어셈블리와, 본체의 하부에 설치되되 외부로 돌출 가능하게 설치되고 메인 브러시 어셈블리에 의해 청소되는 영역과 다른 영역의 먼지를 쓸어 메인 브러시 어셈블리로 전달하는 사이드 브러시 어셈블리를 포함할 수 있다. 또한, 청소 어셈블리(2460)는 진공 흡입을 수행하는 진공 청소 모듈 또는 물걸레 청소를 수행하는 물걸레 청소 모듈을 포함할 수 있다.
이동 어셈블리(2470)는 청소 로봇(2400) 본체를 이동시킨다. 이동 어셈블리는 청소 로봇(2400)을 전진, 후진, 및 회전시키는 한 쌍의 휠, 각 휠에 이동력을 인가하는 휠 모터, 본체의 전방에 설치되어 청소 로봇(2400)이 이동하는 바닥 면의 상태에 따라 회전하여 각도가 변화하는 캐스터 휠 등을 포함할 수 있다. 이동 어셈블리(2470)는 프로세서(2490)의 제어에 따라 청소 로봇(2400)을 이동시킨다. 프로세서(2490)는 주행 경로를 결정하고, 결정된 주행 경로로 청소 로봇(2400)을 이동시키도록 이동 어셈블리(2470)를 제어한다.
전력 모듈(2480)은 청소 로봇(2400)에 전력을 공급한다. 전력 모듈(2480)은 배터리, 전력 구동 회로, 컨버터, 변압 회로 등을 포함한다. 전력 모듈(2480)은 충전 스테이션에 접속하여 배터리를 충전하고, 배터리에 충전된 전력을 청소 로봇(2400)의 구성 요소들에 공급한다.
프로세서(2490)는 청소 로봇(2400) 전반의 동작을 제어한다. 프로세서(2400)는 메모리(2440)에 저장된 프로그램을 실행하여, 청소 로봇(2400)의 구성 요소들을 제어할 수 있다.
본 개시의 일 실시예에 따르면, 프로세서(2490)는 기계학습 모델의 동작을 수행하는 별도의 NPU를 포함할 수 있다. 또한, 프로세서(2490)는 중앙 처리부(CPU), 그래픽 전용 프로세서(GPU; Graphic Processing Unit) 등을 포함할 수 있다.
프로세서(2490)는 청소 로봇(2400)의 동작 모드 제어, 주행 경로 결정 및 제어, 장애물 인식, 청소 동작 제어, 위치 인식, 외부 서버와 통신, 배터리 잔량 모니터링, 배터리 충전 동작 제어 등의 동작을 수행할 수 있다.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 로봇 장치(100)) 의해 읽을 수 있는 저장 매체(storage medium)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램)로서 구현될 수 있다. 예를 들면, 기기(예: 로봇 장치(100))의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (20)

  1. 로봇 장치에 있어서,
    상기 로봇 장치를 이동시키는 이동 어셈블리;
    상기 로봇 장치의 주행 중에 주변을 촬영하여 영상 신호를 생성하는 카메라;
    통신 인터페이스; 및
    상기 로봇 장치의 주행 영역에서 사람을 검출하고, 상기 주행 영역에 사람이 없다고 판단된 경우, 제1 모드에서, 상기 영상 신호로부터 생성된 입력 영상을 클라우드 기계학습 모델에 입력하고, 상기 클라우드 기계학습 모델의 출력에 기초하여 객체를 인식하고, 상기 주행 영역에 사람이 있다고 판단된 경우, 제2 모드에서, 상기 입력 영상을 온-디바이스 기계학습 모델에 입력하고, 상기 온-디바이스 기계학습 모델의 출력에 기초하여 객체를 인식하고, 상기 객체를 인식한 결과를 이용하여 상기 이동 어셈블리를 통한 상기 로봇 장치의 주행을 제어하는 적어도 하나의 프로세서를 포함하고,
    상기 클라우드 기계학습 모델은 상기 통신 인터페이스를 통해 연결된 클라우드 서버에서 동작하고, 상기 온-디바이스 기계학습 모델은, 상기 로봇 장치 상에서 동작하는, 로봇 장치.
  2. 제1항에 있어서,
    상기 로봇 장치는, 출력 인터페이스를 더 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 제1 모드로 동작 중에, 상기 주행 영역에 사람이 있다고 판단된 경우, 상기 출력 인터페이스를 통해 상기 제2 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공하고,
    상기 제2 모드로 동작 중에, 상기 주행 영역에 사람이 없다고 판단된 경우, 상기 출력 인터페이스를 통해 상기 제1 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공하는, 로봇 장치.
  3. 제1항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 클라우드 기계학습 모델 또는 상기 온-디바이스 기계학습 모델의 객체 인식 결과에 기초하여, 상기 주행 영역에 사람이 있는지 여부를 판단하는, 로봇 장치.
  4. 제1항에 있어서,
    상기 통신 인터페이스는, 상기 주행 영역에서 사람을 검출하는 제1 센서를 포함하는 외부 장치와 통신하고,
    상기 적어도 하나의 프로세서는, 상기 제1 센서의 센서 검출 값에 기초하여 상기 주행 영역에 사람이 있는지 여부를 판단하는, 로봇 장치.
  5. 제1항에 있어서,
    상기 통신 인터페이스는, 상기 주행 영역을 포함하는 소정의 영역을 관리하는 영역 관리 시스템과 통신하고,
    상기 적어도 하나의 프로세서는, 상기 영역 관리 시스템이 외출 모드로 설정되었다는 외출 정보를 수신한 것에 기초하여, 상기 주행 영역에 사람이 없다고 판단하는, 로봇 장치.
  6. 제1항에 있어서,
    상기 통신 인터페이스는, 사용자 계정에 등록된 적어도 하나의 전자 장치를 제어하는 장치 관리 서버와 통신하고,
    상기 적어도 하나의 프로세서는, 상기 장치 관리 서버의 상기 사용자 계정에 등록된 다른 전자 장치로부터 수신된 사용자 위치 정보 또는 외출 모드 설정 정보에 기초하여, 상기 주행 영역에 사람이 있는지 여부를 판단하는, 로봇 장치.
  7. 제1항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 주행 영역 전체를 스캔하고, 상기 주행 영역 전체의 스캔 결과에 기초하여 상기 주행 영역에 사람이 있는지 여부를 판단하는, 로봇 장치.
  8. 제1항에 있어서,
    상기 주행 영역은 상기 주행 영역을 분할하여 정의되는 적어도 하나의 서브 주행 영역을 포함하고,
    상기 적어도 하나의 프로세서는, 상기 적어도 하나의 서브 주행 영역 중에서 사람이 없다고 판단된 서브 주행 영역에 대해서는 상기 제1 모드로 동작하여 객체를 인식하고, 상기 적어도 하나의 서브 주행 영역 중에서 사람이 있다고 판단된 서브 주행 영역에 대해서는 상기 제 2 모드로 동작하면서 객체를 인식하는, 로봇 장치.
  9. 제1항에 있어서,
    상기 온-디바이스 기계학습 모델은, 상기 제2 모드에서 노멀 모드로 동작하고, 상기 제1 모드에서 상기 노멀 모드에 비해 처리량이 적은 상기 라이트 모드로 동작하고,
    상기 적어도 하나의 프로세서는,
    상기 제1 모드에서 동작하는 동안, 상기 온-디바이스 기계학습 모델을 라이트 모드로 설정하고,
    상기 입력 영상을 상기 클라우드 기계학습 모델로 입력하기 전에, 상기 입력 영상을 상기 라이트 모드로 설정된 온-디바이스 기계학습 모델에 입력하고,
    상기 라이트 모드로 설정된 온-디바이스 기계학습 모델의 출력에 기초하여 사람이 검출되지 않았다고 판단되면, 상기 입력 영상을 상기 클라우드 기계학습 모델로 입력하고,
    상기 라이트 모드로 설정된 온-디바이스 기계학습 모델의 출력에 기초하여 사람이 검출되었다고 판단되면, 상기 입력 영상을 상기 클라우드 기계학습 모델로 입력하는 동작을 중단하는, 로봇 장치.
  10. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제1 모드로 동작 중에, 상기 주행 영역에 사람이 있다고 판단된 경우, 상기 제2 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공하고, 상기 제2 모드로 동작 중에, 상기 주행 영역에 사람이 없다고 판단된 경우, 상기 제1 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공하고,
    상기 알림은 상기 통신 인터페이스를 통해 연결된 장치 관리 서버의 사용자 계정에 등록된 적어도 하나의 장치를 통해 출력되는, 로봇 장치.
  11. 제1항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 주행 영역 중 프라이버시 영역이 설정된 경우, 상기 프라이버시 영역에서는, 사람의 검출 여부에 관계없이, 상기 제2 모드로 동작하는, 로봇 장치.
  12. 제1항에 있어서,
    상기 로봇 장치는,
    진공 흡입 또는 걸레 수분 공급 중 적어도 하나의 동작을 수행하는 청소 어셈블리를 더 포함하고,
    상기 적어도 하나의 프로세서는, 상기 제1 모드 및 상기 제2 모드에서, 상기 주행 영역을 주행하면서, 상기 청소 어셈블리를 동작시키는 로봇 장치.
  13. 로봇 장치의 주행 중에 주변을 촬영하여 입력 영상을 획득하는 단계;
    상기 로봇 장치의 주행 영역에서 사람을 검출하는 단계;
    상기 주행 영역에 사람이 없다고 판단된 경우, 제1 모드에서, 상기 입력 영상을 클라우드 기계학습 모델에 입력하고, 상기 클라우드 기계학습 모델의 출력에 기초하여 객체를 인식하는 단계;
    상기 주행 영역에 사람이 있다고 판단된 경우, 제2 모드에서, 상기 입력 영상을 온-디바이스 기계학습 모델에 입력하고, 상기 온-디바이스 기계학습 모델의 출력에 기초하여 객체를 인식하는 단계; 및
    상기 객체를 인식한 결과를 이용하여 상기 로봇 장치의 주행을 제어하는 단계를 포함하고,
    상기 클라우드 기계학습 모델은 상기 로봇 장치와 통신하는 클라우드 서버에서 동작하고, 상기 온-디바이스 기계학습 모델은, 상기 로봇 장치 상에서 동작하는, 로봇 장치 제어 방법.
  14. 제13항에 있어서,
    상기 제1 모드로 동작 중에, 상기 주행 영역에 사람이 있다고 판단된 경우, 상기 제2 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공하는 단계; 및
    상기 제2 모드로 동작 중에, 상기 주행 영역에 사람이 없다고 판단된 경우, 상기 제1 모드로 동작 모드를 변경할 것을 추천하는 알림을 제공하는 단계를 더 포함하는 로봇 장치 제어 방법.
  15. 제13항에 있어서,
    상기 사람을 검출하는 단계는, 상기 클라우드 기계학습 모델 또는 상기 온-디바이스 기계학습 모델의 객체 인식 결과에 기초하여, 사람을 검출하는 단계를 포함하는, 로봇 장치 제어 방법.
  16. 제13항에 있어서,
    상기 사람을 검출하는 단계는, 상기 주행 영역에서 사람을 검출하는 제1 센서를 포함하는 외부 장치로부터 수신된 상기 제1 센서의 센서 검출 값에 기초하여 상기 주행 영역에서 사람을 검출하는 단계를 포함하는, 로봇 장치 제어 방법.
  17. 제13항에 있어서,
    상기 주행 영역을 포함하는 소정의 영역을 관리하는 영역 관리 시스템이 외출 모드로 설정되었다는 외출 정보를 수신한 것에 기초하여, 상기 주행 영역에 사람이 없다고 판단하는 단계를 더 포함하는, 로봇 장치 제어 방법.
  18. 제13항에 있어서,
    사용자 계정에 등록된 적어도 하나의 전자 장치를 제어하는 장치 관리 서버와 통신하는 단계; 및
    상기 장치 관리 서버의 상기 사용자 계정에 등록된 다른 전자 장치로부터 수신된 사용자 위치 정보 또는 외출 모드 설정 정보에 기초하여, 상기 주행 영역에 사람이 있는지 여부를 판단하는 단계를 더 포함하는, 로봇 장치 제어 방법.
  19. 제13항에 있어서,
    상기 주행 영역 전체를 스캔하는 단계; 및
    상기 주행 영역 전체의 스캔 결과에 기초하여 상기 주행 영역에 사람이 있는지 여부를 판단하는 단계를 더 포함하는, 로봇 장치 제어 방법.
  20. 제13항 내지 제19항 중 어느 한 항의 방법을 컴퓨터에서 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020210060334A 2021-05-10 2021-05-10 로봇 장치, 그 제어 방법, 및 프로그램이 기록된 기록매체 KR20220152866A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210060334A KR20220152866A (ko) 2021-05-10 2021-05-10 로봇 장치, 그 제어 방법, 및 프로그램이 기록된 기록매체
PCT/KR2022/095097 WO2022240274A1 (ko) 2021-05-10 2022-05-09 로봇 장치, 그 제어 방법, 및 프로그램이 기록된 기록매체
US18/388,607 US20240077870A1 (en) 2021-05-10 2023-11-10 Robot device, method for controlling same, and recording medium having program recorded thereon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210060334A KR20220152866A (ko) 2021-05-10 2021-05-10 로봇 장치, 그 제어 방법, 및 프로그램이 기록된 기록매체

Publications (1)

Publication Number Publication Date
KR20220152866A true KR20220152866A (ko) 2022-11-17

Family

ID=84028759

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210060334A KR20220152866A (ko) 2021-05-10 2021-05-10 로봇 장치, 그 제어 방법, 및 프로그램이 기록된 기록매체

Country Status (3)

Country Link
US (1) US20240077870A1 (ko)
KR (1) KR20220152866A (ko)
WO (1) WO2022240274A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020227381A1 (en) 2019-05-07 2020-11-12 Autonomous Shelf, Inc. Systems, methods, computing platforms, and storage media for directing and controlling an autonomous inventory management system
US12014321B2 (en) 2020-06-02 2024-06-18 Prime Robotics, Inc. Systems, methods, computing platforms, and storage media for directing and controlling an autonomous inventory management system in a retail control territory
US20220009715A1 (en) * 2020-06-02 2022-01-13 Autonomous Shelf, Inc. Systems, methods, computing platforms, and storage media for controlling an autonomous inventory management system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180023303A (ko) * 2016-08-25 2018-03-07 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR20180134230A (ko) * 2017-06-08 2018-12-18 삼성전자주식회사 청소 로봇 및 그 제어 방법
EP3514760B1 (en) * 2018-01-23 2020-06-17 Honda Research Institute Europe GmbH Method and system for privacy compliant data recording
KR20200087298A (ko) * 2018-12-28 2020-07-21 주식회사 라스테크 딥러닝 기반의 학습 클라우드 플랫폼을 이용하는 로봇용 인공지능 컴퓨팅 플랫폼 시스템
KR102281601B1 (ko) * 2019-08-09 2021-07-23 엘지전자 주식회사 시스템 온 칩과 이를 이용한 정보 보호 방법 및 장치

Also Published As

Publication number Publication date
WO2022240274A1 (ko) 2022-11-17
US20240077870A1 (en) 2024-03-07

Similar Documents

Publication Publication Date Title
JP7395229B2 (ja) 状況認識のためのモバイル清掃ロボット人工知能
US10950103B2 (en) Virtual enhancement of security monitoring
KR20220152866A (ko) 로봇 장치, 그 제어 방법, 및 프로그램이 기록된 기록매체
US11317778B2 (en) Mobile robot
US11226633B2 (en) Mobile robot and method of controlling the same
CN112166350B (zh) 智能设备中的超声感测的***和方法
US11743578B2 (en) Systems and methods of power-management on smart devices
CN114342357B (zh) 基于事件的记录
KR101635200B1 (ko) 사물인터넷과 광대역 레이더 센싱 기술을 이용한 가정용 인텔리전트 스마트 모니터링시스템
CN104769962A (zh) 包括移动机器人的环境管理***以及其使用方法
JP6091771B2 (ja) 自走式電子機器および自走式電子機器の制御システム
US11257355B2 (en) System and method for preventing false alarms due to display images
US11004317B2 (en) Moving devices and controlling methods, remote controlling systems and computer products thereof
EP3398029B1 (en) Intelligent smart room control system
US11676360B2 (en) Assisted creation of video rules via scene analysis
CN111343696A (zh) 自移动设备的通信方法、自移动设备及存储介质
KR102508073B1 (ko) 이동 로봇 및 이동 로봇의 제어방법
US12052494B2 (en) Systems and methods of power-management on smart devices
US20220347862A1 (en) Method and system for controlling cleaning robot
CN113226667A (zh) 清洁机器人及其执行任务的方法

Legal Events

Date Code Title Description
A201 Request for examination