KR20230158668A - Robot and controlling method thereof - Google Patents

Robot and controlling method thereof Download PDF

Info

Publication number
KR20230158668A
KR20230158668A KR1020220057702A KR20220057702A KR20230158668A KR 20230158668 A KR20230158668 A KR 20230158668A KR 1020220057702 A KR1020220057702 A KR 1020220057702A KR 20220057702 A KR20220057702 A KR 20220057702A KR 20230158668 A KR20230158668 A KR 20230158668A
Authority
KR
South Korea
Prior art keywords
robot
rotation angle
information
processor
control command
Prior art date
Application number
KR1020220057702A
Other languages
Korean (ko)
Inventor
이태희
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020220057702A priority Critical patent/KR20230158668A/en
Priority to PCT/KR2023/003610 priority patent/WO2023219253A1/en
Publication of KR20230158668A publication Critical patent/KR20230158668A/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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
    • 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/1689Teleoperation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

로봇이 개시된다. 로봇은 통신 인터페이스, 카메라, 복수의 센서를 포함하는 센서 모듈, 구동부 및 통신 인터페이스를 통해 사용자 단말로부터 수신된 제어 명령에 기초하여 구동부를 제어하는 프로세서를 포함한다. 프로세서는 카메라를 통해 영상 데이터를 획득하고, 복수의 센서 중 적어도 하나의 센서를 통해 획득된 센싱 데이터 및 영상 데이터에 기초하여 로봇의 주행 정보를 획득한다. 또한, 프로세서는 주행 정보 중 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별하고, 식별된 주행 정보에 기초하여 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별한다. 나아가, 프로세서는 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별되면 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 통신 인터페이스를 통해 사용자 단말로 전송한다.The robot starts. The robot includes a communication interface, a camera, a sensor module including a plurality of sensors, a driving unit, and a processor that controls the driving unit based on control commands received from the user terminal through the communication interface. The processor acquires image data through a camera and acquires driving information of the robot based on sensing data and image data obtained through at least one sensor among a plurality of sensors. Additionally, the processor identifies driving information within a threshold time based on the point in time at which the control command is received among the driving information, and identifies whether the operation corresponding to the control command was normally performed based on the identified driving information. Furthermore, when the processor identifies that an operation corresponding to a control command has been performed abnormally, it transmits guide UI (User Interface) information related to the abnormal operation to the user terminal through a communication interface.

Description

로봇 및 그 제어 방법{ROBOT AND CONTROLLING METHOD THEREOF}Robot and its control method {ROBOT AND CONTROLLING METHOD THEREOF}

본 발명은 로봇 및 그 제어 방법에 관한 것이다.The present invention relates to robots and their control methods.

최근 실내 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 특히, 실내 공간을 주행하며 서비스를 제공하는 로봇에 대한 수요가 증가하고 있으며, 최근에는 사용자가 로봇을 원격으로 제어하며 서비스를 제공받는 방식이 보편화되고 있다.Recently, technology development for robots that are deployed in indoor spaces and provide services to users has become active. In particular, the demand for robots that provide services while driving in indoor spaces is increasing, and recently, the method of allowing users to remotely control robots and receive services has become common.

그러나, 다양한 원인으로 말미암아 로봇이 사용자의 명령대로 동작하지 않는 문제가 발생할 수 있으며, 이에 따라 사용자 명령대로 동작하지 않는 로봇에 관한 알림을 제공하고, 나아가 스스로 상술한 문제를 해결하는 로봇에 대한 지속적인 요구가 있었다.However, problems may arise where the robot does not operate according to the user's commands due to various reasons, and accordingly, there is a continuous demand for robots that provide notifications regarding robots that do not operate according to the user's commands and further solve the above-mentioned problems on their own. There was.

본 개시는 상술한 필요성에 따른 것으로, 카메라 및 센서를 통해 획득된 복수의 데이터에 기초하여 로봇이 사용자의 제어 명령에 대응되는 동작을 정상적으로 수행했는지 여부를 식별하고, 비 정상적 동작이 식별되면 해당 동작에 관련된 가이드 UI를 제공하는 한편 비 정상적 동작의 대체 동작을 수행하는 로봇 및 그 제어 방법을 제공함에 있다.The present disclosure is in response to the above-described need, and identifies whether a robot has normally performed an operation corresponding to a user's control command based on a plurality of data acquired through cameras and sensors, and when an abnormal operation is identified, the corresponding operation is performed. The aim is to provide a guide UI related to the robot and its control method that performs alternative movements for abnormal movements.

이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 로봇은, 통신 인터페이스, 카메라, 복수의 센서를 포함하는 센서 모듈, 구동부 및 상기 통신 인터페이스를 통해 사용자 단말로부터 수신된 제어 명령에 기초하여 상기 구동부를 제어하는 프로세서를 포함하며, 상기 프로세서는, 상기 카메라를 통해 영상 데이터를 획득하고, 상기 복수의 센서 중 적어도 하나의 센서를 통해 획득된 센싱 데이터 및 상기 영상 데이터에 기초하여 상기 로봇의 주행 정보를 획득하고, 상기 로봇의 주행 정보 중 상기 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별하고, 상기 식별된 주행 정보에 기초하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하고, 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별되면, 상기 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 상기 통신 인터페이스를 통해 상기 사용자 단말로 전송할 수 있다.To achieve the above object, a robot according to an embodiment of the present invention includes a communication interface, a camera, a sensor module including a plurality of sensors, a driving unit, and a control command received from a user terminal through the communication interface. and a processor that controls the driving unit, wherein the processor acquires image data through the camera and drives the robot based on the sensing data and the image data acquired through at least one sensor among the plurality of sensors. Obtain information, identify driving information within a threshold time based on the point at which the control command is received among the driving information of the robot, and determine whether the operation corresponding to the control command was normally performed based on the identified driving information. is identified, and if the operation corresponding to the control command is identified as being performed abnormally, guide UI (User Interface) information related to the abnormal operation may be transmitted to the user terminal through the communication interface.

여기서, 상기 센서 모듈은, 거리 센서 및 오도메트리(Odometry) 센서를 포함하며, 상기 프로세서는, 상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제1 이동 거리, 상기 임계 시간 내에 상기 거리 센서를 통해 획득된 상기 로봇의 제2 이동 거리 및 상기 임계 시간 내에 상기 오도메트리 센서를 통해 획득된 상기 로봇의 제3 이동 거리에 기초하여 상기 임계 시간 동안 상기 로봇의 이동 거리를 식별하고, 상기 식별된 상기 로봇의 이동 거리 및 상기 제어 명령에 대응되는 이동 거리를 비교하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별할 수 있다.Here, the sensor module includes a distance sensor and an odometry sensor, and the processor determines a first movement distance of the robot based on the image data acquired within the threshold time and the distance within the threshold time. Identify the moving distance of the robot during the critical time based on the second moving distance of the robot obtained through the sensor and the third moving distance of the robot obtained through the odometry sensor within the critical time, and By comparing the identified movement distance of the robot and the movement distance corresponding to the control command, it is possible to identify whether the operation corresponding to the control command was normally performed.

여기서, 상기 프로세서는, 상기 제1 이동 거리, 상기 제2 이동 거리 및 상기 제3 이동 거리 중 중간 값을 상기 로봇의 이동 거리로 식별할 수 있다.Here, the processor may identify a middle value among the first movement distance, the second movement distance, and the third movement distance as the movement distance of the robot.

여기서, 상기 프로세서는, 상기 식별된 이동 거리를 상기 제1 이동 거리, 상기 제2 이동 거리 및 상기 제3 이동 거리 중 나머지 이동 거리 각각과 비교하여 제1 거리 편차 및 제2 거리 편차를 식별하고, 상기 제1 거리 편차 또는 제2 거리 편차 중 적어도 하나가 제1 임계 값 이상인 경우 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별할 수 있다.Here, the processor identifies a first distance deviation and a second distance deviation by comparing the identified movement distance with each of the remaining movement distances among the first movement distance, the second movement distance, and the third movement distance, When at least one of the first distance deviation or the second distance deviation is greater than or equal to a first threshold value, it can be identified that an operation corresponding to the control command has been performed abnormally.

또한, 상기 센서 모듈은, 관성 센서 및 오도메트리(Odometry) 센서를 포함하며, 상기 프로세서는, 상기 프로세서는, 상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제1 회전 각도, 상기 임계 시간 내에 상기 관성 센서를 통해 획득된 상기 로봇의 제2 회전 각도 및 상기 임계 시간 내에 상기 오도메트리 센서를 통해 획득된 상기 로봇의 제3 회전 각도에 기초하여 상기 임계 시간 동안 상기 로봇의 회전 각도를 식별하고, 상기 식별된 상기 로봇의 회전 각도 및 상기 제어 명령에 대응되는 회전 각도를 비교하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별할 수 있다.In addition, the sensor module includes an inertial sensor and an odometry sensor, and the processor includes a first rotation angle of the robot based on the image data acquired within the threshold time, the threshold Based on the second rotation angle of the robot obtained through the inertial sensor within the time and the third rotation angle of the robot obtained through the odometry sensor within the critical time, the rotation angle of the robot during the critical time is determined. It is possible to identify whether the operation corresponding to the control command was normally performed by comparing the rotation angle of the identified robot and the rotation angle corresponding to the control command.

여기서, 상기 프로세서는, 상기 제1 회전 각도, 상기 제2 회전 각도 및 상기 제3 회전 각도 중 중간 값을 상기 로봇의 회전 각도로 식별할 수 있다.Here, the processor may identify a middle value among the first rotation angle, the second rotation angle, and the third rotation angle as the rotation angle of the robot.

여기서, 상기 프로세서는, 상기 식별된 회전 각도를 상기 제1 회전 각도, 상기 제2 회전 각도 및 상기 제3 회전 각도 중 나머지 회전 각도 각각과 비교하여 제1 각도 편차 및 제2 각도 편차를 식별하고, 상기 제1 각도 편차 또는 제2 각도 편차 중 적어도 하나가 제2 임계 값 이상인 경우 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별할 수 있다.Here, the processor compares the identified rotation angle with each of the remaining rotation angles among the first rotation angle, the second rotation angle, and the third rotation angle to identify a first angle deviation and a second angle deviation, When at least one of the first angle deviation or the second angle deviation is greater than or equal to a second threshold value, it can be identified that the operation corresponding to the control command has been performed abnormally.

또한, 상기 센서 모듈은, 관성 센서를 포함하며, 상기 프로세서는, 상기 영상 데이터에 기초한 상기 로봇의 제1 흔들림 정보 및 상기 제1 흔들림 정보가 획득된 시간과 동일한 시간 동안 상기 관성 센서를 통해 획득된 흔들림 데이터에 기초한 상기 로봇의 제2 흔들림 정보 정보를 비교하여 상기 관성 센서의 동작이 정상적으로 수행되는지 여부를 식별하고, 상기 관성 센서의 동작이 비 정상적으로 수행된 것으로 식별되면, 상기 관성 센서를 리셋(Reset)하고, 상기 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 상기 통신 인터페이스를 통해 상기 사용자 단말로 전송할 수 있다.In addition, the sensor module includes an inertial sensor, and the processor is configured to obtain first shake information of the robot based on the image data and the first shake information obtained through the inertial sensor for the same time as the time at which the first shake information was acquired. Compare the second shaking information of the robot based on the shaking data to identify whether the operation of the inertial sensor is performed normally, and if it is identified that the operation of the inertial sensor is performed abnormally, the inertial sensor is reset (Reset) ), and guide UI (User Interface) information related to the abnormal operation can be transmitted to the user terminal through the communication interface.

또한, 상기 프로세서는, 상기 비 정상적 동작의 타입을 식별하고, 상기 식별된 타입과 관련된 솔루션 정보를 획득하고, 상기 솔루션 정보를 포함하는 상기 가이드 UI 정보를 상기 통신 인터페이스를 통해 상기 사용자 단말로 전송할 수 있다.In addition, the processor may identify the type of the abnormal operation, obtain solution information related to the identified type, and transmit the guide UI information including the solution information to the user terminal through the communication interface. there is.

또한, 배터리를 더 포함하며, 상기 프로세서는, 상기 배터리의 전력량이 임계 값 미만인 경우 상기 카메라 및 상기 복수의 센서를 통해 획득된 복수의 데이터 중 제1 개수의 데이터에 기초하여 상기 주행 정보를 획득하고, 상기 배터리의 전력량이 임계 값 이상인 경우 상기 복수의 데이터 중 제1 개수보다 많은 상기 제2 개수의 데이터에 기초하여 상기 주행 정보를 획득할 수 있다.In addition, it further includes a battery, wherein the processor acquires the driving information based on a first number of data among a plurality of data acquired through the camera and the plurality of sensors when the power amount of the battery is less than a threshold value, and , when the amount of power of the battery is greater than or equal to a threshold value, the driving information may be obtained based on the second number of data that is greater than the first number of the plurality of data.

한편, 본 발명의 일 실시 예에 따라 사용자 단말로부터 수신된 제어 명령에 기초하여 구동되는 로봇의 제어 방법은, 카메라를 통해 영상 데이터를 획득하는 단계, 복수의 센서 중 적어도 하나의 센서를 통해 획득된 센싱 데이터 및 상기 영상 데이터에 기초하여 상기 로봇의 주행 정보를 획득하는 단계, 상기 로봇의 주행 정보 중 상기 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별하는 단계, 상기 식별된 주행 정보에 기초하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계 및 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별되면, 상기 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 사용자 단말로 전송하는 단계를 포함할 수 있다.Meanwhile, according to an embodiment of the present invention, a method of controlling a robot driven based on a control command received from a user terminal includes acquiring image data through a camera, and obtaining image data through at least one sensor among a plurality of sensors. Obtaining driving information of the robot based on the sensing data and the image data, identifying driving information within a threshold time based on the time when the control command is received among the driving information of the robot, and the identified driving information Based on the step of identifying whether the operation corresponding to the control command was performed normally, and if the operation corresponding to the control command is identified as being performed abnormally, providing guide UI (User Interface) information related to the abnormal operation It may include transmitting to the user terminal.

여기서, 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는, 상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제1 이동 거리, 상기 임계 시간 내에 거리 센서를 통해 획득된 상기 로봇의 제2 이동 거리 및 상기 임계 시간 내에 오도메트리(Odometry) 센서를 통해 획득된 상기 로봇의 제3 이동 거리에 기초하여 상기 임계 시간 동안 상기 로봇의 이동 거리를 식별하는 단계 및 상기 식별된 상기 로봇의 이동 거리 및 상기 제어 명령에 대응되는 이동 거리를 비교하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계를 포함할 수 있다.Here, the step of identifying whether the operation corresponding to the control command was normally performed includes the first movement distance of the robot based on the image data acquired within the threshold time, and the first movement distance of the robot obtained through a distance sensor within the threshold time. Identifying the moving distance of the robot during the critical time based on the second moving distance of the robot and the third moving distance of the robot obtained through an odometry sensor within the critical time, and the identified It may include comparing the movement distance of the robot and the movement distance corresponding to the control command to identify whether the operation corresponding to the control command was normally performed.

여기서, 상기 로봇의 이동 거리를 식별하는 단계는, 상기 제1 이동 거리, 상기 제2 이동 거리 및 상기 제3 이동 거리 중 중간 값을 상기 로봇의 이동 거리로 식별할 수 있다.Here, the step of identifying the moving distance of the robot may identify a middle value among the first moving distance, the second moving distance, and the third moving distance as the moving distance of the robot.

여기서, 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는, 상기 식별된 이동 거리를 상기 제1 이동 거리, 상기 제2 이동 거리 및 상기 제3 이동 거리 중 나머지 이동 거리 각각과 비교하여 제1 거리 편차 및 제2 거리 편차를 식별하는 단계 및 상기 제1 거리 편차 또는 제2 거리 편차 중 적어도 하나가 제1 임계 값 이상인 경우 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별하는 단계를 포함할 수 있다.Here, the step of identifying whether the operation corresponding to the control command was performed normally includes comparing the identified movement distance with each of the remaining movement distances among the first movement distance, the second movement distance, and the third movement distance. identifying a first distance deviation and a second distance deviation, and identifying that an operation corresponding to the control command is abnormally performed when at least one of the first distance deviation or the second distance deviation is greater than or equal to a first threshold value. May include steps.

또한, 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는, 상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제1 회전 각도, 상기 임계 시간 내에 관성 센서를 통해 획득된 상기 로봇의 제2 회전 각도 및 상기 임계 시간 내에 오도메트리(Odometry) 센서를 통해 획득된 상기 로봇의 제3 회전 각도에 기초하여 상기 임계 시간 동안 상기 로봇의 회전 각도를 식별하는 단계 및 상기 식별된 상기 로봇의 회전 각도 및 상기 제어 명령에 대응되는 회전 각도를 비교하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계를 포함할 수 있다.In addition, the step of identifying whether the operation corresponding to the control command was normally performed includes the first rotation angle of the robot based on the image data acquired within the threshold time, and the first rotation angle of the robot obtained through an inertial sensor within the threshold time. Identifying a rotation angle of the robot during the critical time based on a second rotation angle of the robot and a third rotation angle of the robot obtained through an odometry sensor within the critical time, and the identified It may include comparing the rotation angle of the robot and the rotation angle corresponding to the control command to identify whether the operation corresponding to the control command was normally performed.

여기서, 상기 로봇의 회전 각도를 식별하는 단계는, 상기 제1 회전 각도, 상기 제2 회전 각도 및 상기 제3 회전 각도 중 중간 값을 상기 로봇의 회전 각도로 식별할 수 있다.Here, the step of identifying the rotation angle of the robot may identify a middle value among the first rotation angle, the second rotation angle, and the third rotation angle as the rotation angle of the robot.

여기서, 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는, 상기 식별된 회전 각도를 상기 제1 회전 각도, 상기 제2 회전 각도 및 상기 제3 회전 각도 중 나머지 회전 각도 각각과 비교하여 제1 각도 편차 및 제2 각도 편차를 식별하는 단계 및 상기 제1 각도 편차 또는 제2 각도 편차 중 적어도 하나가 제2 임계 값 이상인 경우 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별하는 단계를 포함할 수 있다.Here, the step of identifying whether the operation corresponding to the control command was normally performed includes comparing the identified rotation angle with each of the remaining rotation angles among the first rotation angle, the second rotation angle, and the third rotation angle. identifying a first angle deviation and a second angle deviation, and identifying that an operation corresponding to the control command is abnormally performed when at least one of the first angle deviation or the second angle deviation is greater than or equal to a second threshold value. May include steps.

또한, 상기 영상 데이터에 기초한 상기 로봇의 제1 흔들림 정보 및 상기 제1 흔들림 정보가 획득된 시간과 동일한 시간 동안 관성 센서를 통해 획득된 흔들림 데이터에 기초한 상기 로봇의 제2 흔들림 정보 정보를 비교하여 상기 관성 센서의 동작이 정상적으로 수행되는지 여부를 식별하는 단계 및 상기 관성 센서의 동작이 비 정상적으로 수행된 것으로 식별되면, 상기 관성 센서를 리셋하고, 상기 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 상기 사용자 단말로 전송하는 단계를 더 포함할 수 있다.In addition, the first shake information of the robot based on the image data is compared with the second shake information of the robot based on shake data acquired through an inertial sensor for the same time as the time at which the first shake information was acquired. Identifying whether the operation of the inertial sensor is performed normally, and if it is identified that the operation of the inertial sensor is performed abnormally, resetting the inertial sensor and providing guide UI (User Interface) information related to the abnormal operation. The step of transmitting to the user terminal may be further included.

또한, 가이드 UI 정보를 사용자 단말로 전송하는 단계는, 상기 비 정상적 동작의 타입을 식별하고, 상기 식별된 타입과 관련된 솔루션 정보를 획득하는 단계 및 상기 솔루션 정보를 포함하는 상기 가이드 UI 정보를 상기 사용자 단말로 전송하는 단계를 포함할 수 있다.In addition, the step of transmitting guide UI information to the user terminal includes identifying the type of the abnormal operation, obtaining solution information related to the identified type, and transmitting the guide UI information including the solution information to the user. It may include the step of transmitting to the terminal.

또한, 상기 로봇의 주행 정보를 획득하는 단계는, 배터리의 전력량이 임계 값 미만인 경우 상기 카메라 및 상기 복수의 센서를 통해 획득된 복수의 데이터 중 제1 개수의 데이터에 기초하여 상기 주행 정보를 획득하는 단계 및 상기 배터리의 전력량이 임계 값 이상인 경우 상기 복수의 데이터 중 제1 개수보다 많은 상기 제2 개수의 데이터에 기초하여 상기 주행 정보를 획득하는 단계를 포함할 수 있다.In addition, the step of acquiring the driving information of the robot includes acquiring the driving information based on a first number of data among a plurality of data obtained through the camera and the plurality of sensors when the power amount of the battery is less than a threshold value. It may include obtaining the driving information based on the second number of data that is greater than the first number of the plurality of data when the power amount of the battery is greater than or equal to a threshold value.

본 개시의 다양한 실시 예에 따르면, 사용자가 로봇의 비 정상적 동작에 대한 알림을 제공받을 수 있을뿐더러 로봇 스스로 문제 해결을 위한 대체 동작을 수행할 수 있으므로 사용자의 편의가 향상될 수 있다.According to various embodiments of the present disclosure, the user's convenience can be improved because the user can not only receive notifications about the abnormal operation of the robot, but also the robot can perform alternative actions to solve the problem on its own.

도 1은 사용자에 의해 원격으로 제어되는 로봇의 동작과 관련한 개략적인 내용을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 블록도이다.
도 3은 본 개시의 일 실시 예에 따른 주행 정보를 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 로봇의 동작을 단계적으로 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 로봇의 동작을 보다 상세히 설명하기 위한 도면이다.
도 6a 및 도 6b는 본 개시의 일 실시 예에 따른 로봇의 대체 동작을 설명하기 위한 도면이다.
도 7a 및 도 7b는 본 개시의 일 실시 예에 따른 로봇의 센서 리셋 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시 예에 따른 머리부를 포함하는 로봇의 동작을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시 예에 따른 배터리 상태를 고려한 로봇의 동작을 설명하기 위한 흐름도이다.
도 10은 본 개시의 일 실시 예에 따른 로봇의 구성을 구체적으로 설명하기 위한 블록도이다.
도 11은 본 개시의 일 실시 예에 따른 제어 방법을 설명하기 위한 흐름도이다.
1 is a diagram schematically illustrating the operation of a robot remotely controlled by a user.
Figure 2 is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure.
Figure 3 is a diagram for explaining driving information according to an embodiment of the present disclosure.
Figure 4 is a diagram for step-by-step explaining the operation of a robot according to an embodiment of the present disclosure.
Figure 5 is a diagram for explaining in more detail the operation of a robot according to an embodiment of the present disclosure.
6A and 6B are diagrams for explaining an alternative operation of a robot according to an embodiment of the present disclosure.
7A and 7B are diagrams for explaining a sensor reset operation of a robot according to an embodiment of the present disclosure.
Figure 8 is a diagram for explaining the operation of a robot including a head according to an embodiment of the present disclosure.
Figure 9 is a flowchart for explaining the operation of a robot considering the battery state according to an embodiment of the present disclosure.
Figure 10 is a block diagram for specifically explaining the configuration of a robot according to an embodiment of the present disclosure.
Figure 11 is a flowchart for explaining a control method according to an embodiment of the present disclosure.

이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다. Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings.

본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the embodiments of the present disclosure have selected general terms that are currently widely used as much as possible while considering the functions in the present disclosure, but this may vary depending on the intention or precedent of a technician working in the art, the emergence of new technology, etc. . In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description part of the relevant disclosure. Therefore, the terms used in this disclosure should be defined based on the meaning of the term and the overall content of this disclosure, rather than simply the name of the term.

본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In the present disclosure, expressions such as “have,” “may have,” “includes,” or “may include” refer to the presence of the corresponding feature (e.g., component such as numerical value, function, operation, or part). , and does not rule out the existence of additional features.

A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다. The expression at least one of A or/and B should be understood as referring to either “A” or “B” or “A and B”.

본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. Expressions such as “first,” “second,” “first,” or “second,” used in the present disclosure can modify various components regardless of order and/or importance, and can refer to one component. It is only used to distinguish from other components and does not limit the components.

어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. A component (e.g., a first component) is “(operatively or communicatively) coupled with/to” another component (e.g., a second component). When referred to as “connected to,” it should be understood that a certain component can be connected directly to another component or connected through another component (e.g., a third component).

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as “comprise” or “consist of” are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are intended to indicate the presence of one or more other It should be understood that this does not exclude in advance the presence or addition of features, numbers, steps, operations, components, parts, or combinations thereof.

본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.In the present disclosure, a “module” or “unit” performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, a plurality of “modules” or a plurality of “units” are integrated into at least one module and implemented by at least one processor (not shown), except for “modules” or “units” that need to be implemented with specific hardware. It can be.

본 개시에서 '사용자' 는 로봇에게 서비스를 제공받는 사람을 의미할 수 있으나, 이에 한정되는 것은 아니다.In this disclosure, 'user' may refer to a person who receives services from a robot, but is not limited thereto.

도 1은 사용자에 의해 원격으로 제어되는 로봇의 동작과 관련한 개략적인 내용을 설명하기 위한 도면이다.1 is a diagram schematically illustrating the operation of a robot remotely controlled by a user.

본 개시의 일 실시 예에 따른 로봇(100)은 특정 공간을 주행하며 사용자(10)에게 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 사용자(10)에게 청소 서비스를 제공할 수 있으나 이에 한정되는 것은 아니다. 여기서, 로봇(100)은 사용자 단말(200)로부터 수신된 제어 명령에 기초하여 구동하며 서비스를 제공할 수 있다.The robot 100 according to an embodiment of the present disclosure can provide a service to the user 10 while traveling in a specific space. For example, the robot 100 may provide a cleaning service to the user 10, but is not limited to this. Here, the robot 100 can operate and provide services based on control commands received from the user terminal 200.

사용자(10)는 사용자 단말(200)을 통해 로봇(100)을 원격 제어할 수 있다. 사용자(10)는 로봇(100)을 구동하기 위한 제어 명령을 사용자 단말(200)을 통해 로봇(100)으로 전송할 수 있다. 여기서, 사용자 단말(200)은 전자 장치로 구현될 수 있다. 예를 들어, 사용자 단말(200)은 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 등 다양한 형태로 구현될 수 있으나 이에 한정되는 것은 아니다.The user 10 can remotely control the robot 100 through the user terminal 200. The user 10 may transmit a control command for driving the robot 100 to the robot 100 through the user terminal 200. Here, the user terminal 200 may be implemented as an electronic device. For example, the user terminal 200 may be a smartphone, tablet PC, mobile phone, video phone, e-book reader, desktop PC, laptop PC, netbook computer, workstation, server, PDA, PMP (portable multimedia player), MP3 It can be implemented in various forms such as players, medical devices, cameras, or wearable devices, but is not limited to these.

한편, 로봇(100)이 서비스를 제공하는 과정에서 로봇(100)의 동작에 이상이 발생할 수 있다. 이러한 동작 이상은 로봇(100)에 포함된 하드웨어적 구성의 문제, 로봇(100)에 탑재된 소프트웨어의 문제 또는 로봇(100)의 주행 환경이나 주변 오브젝트에 의해 발생하는 문제 중 적어도 하나와 관련될 수 있다.Meanwhile, while the robot 100 is providing a service, an error may occur in the operation of the robot 100. These motion abnormalities may be related to at least one of problems with the hardware configuration included in the robot 100, problems with the software mounted on the robot 100, or problems caused by the driving environment or surrounding objects of the robot 100. there is.

예를 들어, 로봇(100)이 주행하는 노면의 상태가 양호하지 않을 경우 로봇(100)은 사용자 단말(200)로부터 수신된 제어 명령에 대응되는 동작을 정확하게 수행하지 못할 수 있다. 가령 제어 명령이 일정 거리를 직진하는 동작을 지시하는 경우 미끄러운 노면을 주행하는 로봇(100)은 직진 동작을 수행하지 못하고 노면 상을 미끄러지며 주행하는 비 정상적 동작을 수행하게 된다.For example, if the condition of the road surface on which the robot 100 runs is not good, the robot 100 may not accurately perform an operation corresponding to a control command received from the user terminal 200. For example, when a control command instructs the robot 100 to move forward a certain distance, the robot 100 running on a slippery road cannot move forward and performs an abnormal motion of sliding on the road surface.

이 경우 로봇(100)은 상술한 비 정상적 동작이 발생한 것을 식별하고, 식별된 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 사용자 단말(200)로 전송할 수 있다. 사용자(10)는 사용자 단말(200)을 통해 가이드 UI 정보를 제공받을 수 있으며, 이를 통해 로봇(100)의 비 정상적 동작에 대한 적절한 조치를 취할 수 있게 된다.In this case, the robot 100 may identify that the above-described abnormal operation has occurred and transmit guide UI (User Interface) information related to the identified abnormal operation to the user terminal 200. The user 10 can receive guide UI information through the user terminal 200, through which the user can take appropriate measures for abnormal operation of the robot 100.

이와는 별개로 로봇(100)은 비 정상적 동작과 관련된 대체 동작을 식별할 수 있다. 여기서, 대체 동작이란 비 정상적 동작을 야기한 원인에 대처하기 위하여 로봇(100)이 수행해야할 동작을 의미할 수 있다. 로봇(100)은 식별된 대체 동작을 통하여 사용자 단말(200)로부터 수신된 제어 명령에 대응되는 동작을 할 수 있게 된다.Separately from this, the robot 100 can identify alternative movements related to abnormal movements. Here, the alternative operation may mean an operation that the robot 100 must perform in order to cope with the cause of the abnormal operation. The robot 100 can perform an operation corresponding to the control command received from the user terminal 200 through the identified alternative operation.

이하에서는, 사용자의 제어 명령에 대응되는 동작을 정상적으로 수행했는지 여부를 식별하고, 비 정상적 동작이 식별되면 해당 동작에 관련된 가이드 UI를 제공하는 한편 비 정상적 동작의 대체 동작을 수행하는 다양한 실시 예에 대해 좀더 구체적으로 설명하도록 한다.Hereinafter, various embodiments will be described that identify whether the operation corresponding to the user's control command has been performed normally, provide a guide UI related to the operation when an abnormal operation is identified, and perform an alternative operation for the abnormal operation. Let me explain in more detail.

도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 블록도이다.Figure 2 is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure.

도 2에 따르면, 로봇(100)은 통신 인터페이스(110), 카메라(120), 센서 모듈(130), 구동부(140) 및 프로세서를 포함할 수 있다.According to FIG. 2, the robot 100 may include a communication interface 110, a camera 120, a sensor module 130, a driver 140, and a processor.

통신 인터페이스(110)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(110)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.The communication interface 110 can input and output various types of data. For example, the communication interface 110 includes AP-based Wi-Fi (Wireless LAN network), Bluetooth, Zigbee, wired/wireless LAN (Local Area Network), WAN (Wide Area Network), Ethernet, IEEE 1394, HDMI (High-Definition Multimedia Interface), USB (Universal Serial Bus), MHL (Mobile High-Definition Link), AES/EBU (Audio Engineering Society/ European Broadcasting Union), Optical , external devices (e.g., source devices), external storage media (e.g., USB memory), and external servers (e.g., web hard drives) and various types of data through communication methods such as coaxial, etc. Can send and receive.

카메라(120)는 로봇(100)의 주변 환경에 대응되는 영상 데이터를 획득하는 구성이다. 카메라(120)는 오브젝트에 의해 반사되어 수신되는 가시광 기타 광학 신호를 이미지 센서로 포커싱하는 렌즈 및 가시광 기타 광학 신호를 감지할 수 있는 이미지 센서를 포함할 수 있다. 여기서, 이미지 센서는 복수의 픽셀로 구분되는 2D의 픽셀 어레이를 포함할 수 있다.The camera 120 is configured to acquire image data corresponding to the surrounding environment of the robot 100. The camera 120 may include a lens that focuses visible light and other optical signals reflected by an object and received into an image sensor, and an image sensor that can detect visible light and other optical signals. Here, the image sensor may include a 2D pixel array divided into a plurality of pixels.

프로세서(150)는 가시광선 또는 적외선 등 다양한 파장대의 광학 신호를 카메라(120)의 렌즈를 통해 수신하고, 수신된 광학 신호를 카메라(120)의 이미지 센서를 통해 처리하여 영상 데이터를 획득할 수 있다. 또한, 일 예에 따른 카메라(120)는 뎁스(Depth) 카메라로 구현될 수 있으며, 이 경우 프로세서(150)는 카메라(120)를 통해 뎁스 이미지를 포함하는 영상 데이터를 획득할 수 있다.The processor 150 receives optical signals of various wavelengths, such as visible light or infrared light, through the lens of the camera 120, and processes the received optical signals through the image sensor of the camera 120 to obtain image data. . Additionally, the camera 120 according to one example may be implemented as a depth camera, and in this case, the processor 150 may acquire image data including a depth image through the camera 120.

한편, 카메라(120)는 복수의 렌즈 및 복수의 이미지 센서를 포함하는 카메라 모듈의 형태로 구현될 수 있다. 일 예에 따르면, 카메라(120)는 두 개의 렌즈와 두 개의 이미지 센서를 포함하는 스테레오 카메라(stereo camera)일 수 있으나 이에 한정되는 것은 아니다. Meanwhile, the camera 120 may be implemented in the form of a camera module including a plurality of lenses and a plurality of image sensors. According to one example, the camera 120 may be a stereo camera including two lenses and two image sensors, but is not limited thereto.

센서 모듈(130)은 복수의 센서를 포함하는 구성이다. 여기서, 복수의 센서는 거리 센서, 오도메트리(Odometry) 센서, 관성 센서, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서, UV(ultra violet) 센서 또는 마이크 중의 적어도 하나를 포함할 수도 있으나 이에 한정되는 것은 아니다.The sensor module 130 is configured to include a plurality of sensors. Here, the plurality of sensors include a distance sensor, an odometry sensor, an inertial sensor, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, a grip sensor, a proximity sensor, and a color sensor (e.g., RGB (red, green, blue) sensor), a biometric sensor, a temperature/humidity sensor, an illumination sensor, a UV (ultra violet) sensor, or a microphone, but is not limited thereto.

구동부(140)는 로봇(100)을 구동하는 구성이다. 구동부(140)는 프로세서(150)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있다. 또한, 구동부(140)는 로봇(100)의 구성 중 독립적으로 움직이는 부재를 구동하여 로봇(100)의 자세를 변경할 수도 있다. The driving unit 140 is a component that drives the robot 100. The driving unit 140 can adjust the traveling direction and traveling speed according to the control of the processor 150. Additionally, the driving unit 140 may change the posture of the robot 100 by driving independently moving members of the robot 100.

일 예에 따른 구동부(140)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(134)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입, 볼 타입 등)에 따라 변형 실시될 수 있다.The driving unit 140 according to one example is a power generator that generates power for the robot 100 to travel (e.g., a gasoline engine, a diesel engine, or a liquefied petroleum gas (LPG) depending on the fuel (or energy source) used. ) engines, electric motors, etc.), steering devices to control the driving direction (e.g., manual steering, hydraulics steering, electronic control power steering (EPS), etc.), robots depending on power. It may include a traveling device (e.g., wheels, propeller, etc.) that drives (100). Here, the driving unit 134 may be modified according to the driving type of the robot 100 (e.g., wheel type, walking type, flying type, ball type, etc.).

프로세서(150)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(145)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(150)는 통신 인터페이스(110), 카메라(120), 센서 모듈(130) 및 구동부(140)와 연결되어 로봇(100)의 동작을 제어할 수 있다.The processor 150 generally controls the operation of the robot 100. Specifically, the processor 145 is connected to each component of the robot 100 and can generally control the operation of the robot 100. For example, the processor 150 may be connected to the communication interface 110, the camera 120, the sensor module 130, and the driver 140 to control the operation of the robot 100.

일 실시 예에 따라 프로세서(150)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), NPU(Neural Processing Unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)) 등 다양한 이름으로 명명될 수 있으나, 본 명세서에서는 프로세서(150)로 기재한다.According to one embodiment, the processor 150 includes a digital signal processor (DSP), a microprocessor, a central processing unit (CPU), a micro controller unit (MCU), and a micro processing unit (MPU). It may be named by various names such as unit), NPU (Neural Processing Unit), controller, and application processor (AP), but in this specification, it is referred to as processor 150.

프로세서(150)는 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(150)는 SRAM 등의 휘발성 메모리를 포함할 수 있다.The processor 150 may be implemented as a System on Chip (SoC), large scale integration (LSI), or may be implemented as a Field Programmable Gate Array (FPGA). Additionally, the processor 150 may include volatile memory such as SRAM.

프로세서(150)는 통신 인터페이스(110)를 통해 사용자 단말로부터 수신된 제어 명령에 기초하여 구동부(140)를 제어할 수 있다. 여기서, 제어 명령은 로봇(100)이 이동해야 할 거리 정보 또는 로봇(100)이 회전해야 할 각도 정보 중 적어도 하나를 포함할 수 있다.The processor 150 may control the driver 140 based on a control command received from the user terminal through the communication interface 110. Here, the control command may include at least one of information on the distance at which the robot 100 should move or information on the angle at which the robot 100 should rotate.

이하에서는, 프로세서(150)가 구동부(140)를 제어함에 따라 이루어지며, 사용자 단말로부터 수신된 제어 명령에 대응되는 로봇(100)의 동작을 '요청 동작'이라는 용어로 표현하도록 한다.Hereinafter, the operation of the robot 100, which is performed as the processor 150 controls the driving unit 140 and corresponds to the control command received from the user terminal, will be expressed by the term 'request operation'.

프로세서(150)는 카메라(120)를 통해 로봇(100)의 주변 환경에 대응되는 이미지를 포함하는 영상 데이터를 획득할 수 있다. 또한, 프로세서(150)는 센서 모듈(130)에 포함된 복수의 센서 중 적어도 하나의 센서를 통해 센싱 데이터를 획득할 수 있다.The processor 150 may acquire image data including an image corresponding to the surrounding environment of the robot 100 through the camera 120. Additionally, the processor 150 may acquire sensing data through at least one sensor among the plurality of sensors included in the sensor module 130.

그 다음, 프로세서(150)는 영상 데이터 및 센싱 데이터에 기초하여 로봇(100)의 주행 정보를 획득할 수 있다. 여기서, 로봇(100)의 주행 정보는 로봇(100)의 이동 거리 정보, 회전 각도 정보 또는 흔들림 정보 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.Next, the processor 150 may obtain driving information of the robot 100 based on the image data and sensing data. Here, the driving information of the robot 100 may include, but is not limited to, at least one of movement distance information, rotation angle information, or shaking information of the robot 100.

이와 관련하여, 프로세서(150)는 임계 시간 내에 획득된 영상 데이터에 기초한 로봇(100)의 제1 이동 거리, 임계 시간 내에 센서 모듈(130)에 포함된 거리 센서를 통해 획득된 로봇(100)의 제2 이동 거리 및 임계 시간 내에 센서 모듈(130)에 포함된 오도메트리 센서를 통해 획득된 로봇(100)의 제3 이동 거리를 각각 식별할 수 있다.In this regard, the processor 150 determines the first movement distance of the robot 100 based on the image data acquired within the critical time, the distance of the robot 100 acquired through the distance sensor included in the sensor module 130 within the critical time. The second movement distance and the third movement distance of the robot 100 obtained through the odometry sensor included in the sensor module 130 within the critical time can be identified, respectively.

또한, 프로세서(150)는 임계 시간 내에 획득된 영상 데이터에 기초한 로봇(100)의 제1 회전 각도, 임계 시간 내에 센서 모듈(130)에 포함된 관성 센서를 통해 획득된 로봇(100)의 제2 회전 각도 및 임계 시간 내에 센서 모듈(130)에 포함된 오도메트리 센서를 통해 획득된 로봇(100)의 제3 회전 각도를 각각 식별할 수 있다.In addition, the processor 150 may set a first rotation angle of the robot 100 based on image data acquired within a critical time, and a second rotation angle of the robot 100 acquired through an inertial sensor included in the sensor module 130 within the critical time. The third rotation angle of the robot 100 obtained through the odometry sensor included in the sensor module 130 within the rotation angle and critical time can be identified.

나아가, 프로세서(150)는 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별할 수 있다. 일 예에 따른 임계 시간은 제어 명령에 포함된 설정 정보에 기초하여 결정되거나, 프로세서(150)에 의해 수신된 제어 명령에 기초하여 결정될 수도 있다. 이상에서는 프로세서(150)가 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별하는 것으로 설명하였으나, 다른 예에 따르면 프로세서(150)가 제어 명령이 수신된 시점을 기준으로 임계 시간 내에 획득된 영상 데이터와 센싱 데이터에 기초하여 주행 정보를 획득하는 것도 가능하다.Furthermore, the processor 150 may identify driving information within a threshold time based on the time when the control command is received. The threshold time according to one example may be determined based on setting information included in the control command, or may be determined based on the control command received by the processor 150. In the above, it has been described that the processor 150 identifies driving information within a threshold time based on the time the control command is received. However, according to another example, the processor 150 obtains the driving information within the critical time based on the time the control command is received. It is also possible to obtain driving information based on image data and sensing data.

프로세서(150)는 식별된 주행 정보에 기초하여 제어 명령에 대응되는 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수 있다. 일 예에 따르면, 프로세서(150)는 제어 명령에 포함된 로봇(100)이 이동해야 할 거리 정보와 주행 정보에 포함된 이동 거리 정보를 비교하거나 제어 명령에 포함된 로봇(100)의 회전해야 할 각도 정보와 주행 정보에 포함된 회전 각도 정보를 비교하여 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수도 있다. 여기서, 프로세서(150)는 주행 정보에 기초하여 로봇(100)이 요청 동작을 완벽하게 수행하지는 못하였더라도 로봇(100)이 수행한 동작이 요청 동작에 비하여 임계 수준 이상의 유사도를 갖는 경우 요청 동작이 정상적으로 수행된 것으로 식별할 수 있다.The processor 150 may identify whether the requested operation corresponding to the control command was normally performed based on the identified driving information. According to one example, the processor 150 compares the distance information to be moved by the robot 100 included in the control command with the movement distance information included in the driving information, or the processor 150 compares the distance information to be moved by the robot 100 included in the control command. It is also possible to identify whether the requested operation was performed normally by comparing the angle information and the rotation angle information included in the driving information. Here, even if the robot 100 did not perfectly perform the requested action based on the driving information, the processor 150 normally performs the requested action if the action performed by the robot 100 has a similarity level higher than a critical level compared to the requested action. It can be identified as having been performed.

이와 관련하여, 프로세서(150)는 로봇(100)의 제1 이동 거리, 로봇(100)의 제2 이동 거리 및 로봇(100)의 제3 이동 거리 중 중간 값을 로봇(100)의 이동 거리로 식별하고, 식별된 로봇(100)의 이동 거리와 제어 명령에 포함된 로봇(100)이 이동해야 할 거리를 비교하여 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수 있다.In this regard, the processor 150 uses the middle value among the first movement distance of the robot 100, the second movement distance of the robot 100, and the third movement distance of the robot 100 as the movement distance of the robot 100. It is possible to identify whether the requested operation was performed normally by comparing the movement distance of the identified robot 100 with the distance to be moved by the robot 100 included in the control command.

또한, 프로세서(150)는 로봇(100)의 제1 회전 각도, 로봇(100)의 제2 회전 각도 및 로봇(100)의 제3 회전 각도 중 중간 값을 로봇(100)의 회전 각도로 식별하고, 식별된 로봇의 회전 각도와 제어 명령에 포함된 로봇(100)이 회전해야 할 각도를 비교하여 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수 있다.In addition, the processor 150 identifies the middle value among the first rotation angle of the robot 100, the second rotation angle of the robot 100, and the third rotation angle of the robot 100 as the rotation angle of the robot 100, , it is possible to identify whether the requested operation was performed normally by comparing the rotation angle of the identified robot with the angle at which the robot 100 should rotate included in the control command.

다른 예에 따르면, 프로세서(150)는 주행 정보에 포함된 다양한 타입의 정보와 관련하여 각기 다른 센서로부터 획득된 정보를 서로 비교하여 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수도 있다. 여기서, 프로세서(150)는 각기 다른 센서로부터 획득된 정보가 임계 수준 이상의 유사도를 갖는 경우 요청 동작이 정상적으로 수행된 것으로 식별할 수 있다.According to another example, the processor 150 may compare information obtained from different sensors in relation to various types of information included in the driving information to identify whether the requested operation was performed normally. Here, the processor 150 may identify that the requested operation has been performed normally when information obtained from different sensors has a similarity level greater than or equal to a threshold level.

이와 관련하여, 프로세서(150)는 제1 이동 거리, 제2 이동 거리 및 제3 이동 거리 중 중간 값을 로봇(100)의 이동 거리로 식별하고, 로봇(100)의 이동 거리와 나머지 두 이동 거리 각각을 비교하여 제1 거리 편차 및 제2 거리 편차를 식별할 수 있다. 프로세서(150)는 제1 거리 편차 또는 제2 거리 편차 중 적어도 하나가 제1 임계 값 이상인 경우 요청 동작이 비 정상적으로 수행된 것으로 식별할 수 있다.In this regard, the processor 150 identifies the middle value among the first movement distance, the second movement distance, and the third movement distance as the movement distance of the robot 100, and the movement distance of the robot 100 and the remaining two movement distances. The first distance deviation and the second distance deviation can be identified by comparing each. The processor 150 may identify that the requested operation has been performed abnormally when at least one of the first distance deviation or the second distance deviation is greater than or equal to the first threshold value.

또한, 프로세서(150)는 제1 회전 각도, 제2 회전 각도 및 제3 회전 각도 중 중간 값을 로봇(100)의 회전 각도로 식별하고, 로봇(100)의 회전 각도와 나머지 두 회전 각도 각각을 비교하여 제1 각도 편차 및 제2 각도 편차를 식별할 수 있다. 프로세서(150)는 제1 각도 편차 또는 제2 각도 편차 중 적어도 하나가 제2 임계 값 이상인 경우 요청 동작이 비 정상적으로 수행된 것으로 식별할 수 있다.Additionally, the processor 150 identifies the middle value among the first rotation angle, the second rotation angle, and the third rotation angle as the rotation angle of the robot 100, and uses the rotation angle of the robot 100 and each of the remaining two rotation angles as the rotation angle of the robot 100. By comparison, the first angle deviation and the second angle deviation can be identified. The processor 150 may identify that the requested operation has been performed abnormally when at least one of the first angle deviation or the second angle deviation is greater than or equal to the second threshold value.

만일 요청 동작이 비 정상적으로 수행된 것으로 식별되는 경우, 프로세서(150)는 식별된 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 통신 인터페이스(110)를 통해 사용자 단말로 전송할 수 있다. 여기서, 가이드 UI 정보는 비 정상적 동작의 발생, 비 정상적 동작의 타입, 비 정상적 동작의 발생 원인 또는 비 정상적 동작에 대한 사용자 행동 요령 중 적어도 하나에 관한 정보를 포함할 수 있으나 이에 한정되는 것은 아니다.If the requested operation is identified as being performed abnormally, the processor 150 may transmit guide UI (User Interface) information related to the identified abnormal operation to the user terminal through the communication interface 110. Here, the guide UI information may include, but is not limited to, information about at least one of the occurrence of abnormal operation, type of abnormal operation, cause of occurrence of abnormal operation, or user action tips for abnormal operation.

나아가, 프로세서(150)는 영상 데이터에 기초한 로봇(100)의 제1 흔들림 정보를 획득할 수 있다. 또한, 프로세서(150)는 제1 흔들림 정보가 획득된 시간과 동일한 시간 동안 센서 모듈(130)에 포함된 관성 센서를 통해 획득된 흔들림 데이터에 기초하여 로봇(100)의 제2 흔들림 정보를 획득할 수 있다.Furthermore, the processor 150 may obtain first shaking information of the robot 100 based on image data. In addition, the processor 150 may acquire second shaking information of the robot 100 based on shaking data acquired through the inertial sensor included in the sensor module 130 for the same time as the time at which the first shaking information was acquired. You can.

프로세서(150)는 제1 흔들림 정보와 제2 흔들림 정보를 비교하여 관성 센서의 동작이 정상적으로 수행되는지 여부를 식별할 수 있다. 만일 관성 센서의 동작이 비 정상적으로 수행된 것으로 식별되면 프로세서(150)는 관성 센서를 리셋할 수 있다. 또한, 프로세서(150)는 관성 센서의 비 정상적 동작과 관련된 가이드 UI 정보를 통신 인터페이스(110)를 통해 사용자 단말로 전송할 수 있다.The processor 150 may identify whether the inertial sensor is operating normally by comparing the first shaking information and the second shaking information. If the operation of the inertial sensor is identified as abnormal, the processor 150 may reset the inertial sensor. Additionally, the processor 150 may transmit guide UI information related to the abnormal operation of the inertial sensor to the user terminal through the communication interface 110.

프로세서(150)는 로봇(100)의 동작이 비 정상적으로 수행된 것으로 식별하는 경우, 비 정상적 동작의 타입을 식별할 수 있다. 나아가, 프로세서(150)는 식별된 타입과 관련된 솔루션 정보를 획득할 수 있다. 여기서, 솔루션 정보는 비 정상적 동작의 타입에 대응되는 문제 원인, 비 정상적 동작의 타입에 대응되는 사용자 행동 요령 또는 비 정상적 동작의 타입에 대응되는 로봇(100)의 대체 동작에 관한 정보 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다. 프로세서(150)는 솔루션 정보를 포함하는 가이드 UI 정보를 통신 인터페이스(110)를 통해 사용자 단말로 전송할 수 있다.When the processor 150 identifies that the operation of the robot 100 is performed abnormally, the processor 150 may identify the type of the abnormal operation. Furthermore, the processor 150 may obtain solution information related to the identified type. Here, the solution information includes at least one of the problem cause corresponding to the type of abnormal operation, user action tips corresponding to the type of abnormal operation, or information about an alternative operation of the robot 100 corresponding to the type of abnormal operation. It may include, but is not limited to this. The processor 150 may transmit guide UI information including solution information to the user terminal through the communication interface 110.

또한, 로봇(100)은 배터리를 더 포함할 수 있다. 프로세서(150)는 배터리의 전력량이 임계 값 미만인 경우 카메라(120) 및 복수의 센서를 통해 획득된 복수의 데이터 중 제1 개수의 데이터에 기초하여 주행 정보를 획득할 수 있다. 배터리의 전력 량이 임계 값 이상인 경우 프로세서(150)는 복수의 데이터 중 제1 개수보다 많은 제2 개수의 데이터에 기초하여 주행 정보를 획득할 수 있다. 여기서, 임계 값은 카메라(120) 및 복수의 센서 각각의 특성 정보에 따라 결정되는 값일 수 있다.Additionally, the robot 100 may further include a battery. If the power amount of the battery is less than a threshold value, the processor 150 may obtain driving information based on a first number of data among a plurality of data acquired through the camera 120 and a plurality of sensors. When the amount of power of the battery is greater than or equal to the threshold, the processor 150 may obtain driving information based on a second number of data that is greater than the first number of the plurality of data. Here, the threshold value may be a value determined according to characteristic information of the camera 120 and each of the plurality of sensors.

도 3은 본 개시의 일 실시 예에 따른 주행 정보를 설명하기 위한 도면이다.Figure 3 is a diagram for explaining driving information according to an embodiment of the present disclosure.

도 3에 따르면, 프로세서(150)는 이동 거리 정보(310), 회전 각도 정보(320) 및 흔들림 정보(330)를 포함하는 로봇(100)의 주행 정보(300)를 식별할 수 있다. 여기서, 이동 거리 정보(310)는 통신 인터페이스(110)를 통해 제어 명령이 수신된 후 임계 시간 내에 로봇(100)이 주행면 상에서 이동한 거리에 관한 정보를 포함하며, 회전 각도 정보(320)는 제어 명령이 수신된 후 임계 시간 내에 로봇(100)이 주행면 상에서 회전한 각도에 관한 정보를 포함하며, 흔들림 정보(330)는 제어 명령이 수신된 후 임계 시간 내에 로봇(100)이 기 설정된 축을 기준으로 회전한 정도에 관한 정보를 포함할 수 있다.According to FIG. 3 , the processor 150 may identify driving information 300 of the robot 100 including movement distance information 310, rotation angle information 320, and shaking information 330. Here, the movement distance information 310 includes information about the distance the robot 100 has moved on the running surface within a critical time after receiving a control command through the communication interface 110, and the rotation angle information 320 is It includes information about the angle at which the robot 100 rotated on the running surface within a critical time after the control command is received, and the shaking information 330 indicates that the robot 100 rotates on a preset axis within the critical time after the control command is received. It may contain information about the degree of rotation relative to the reference.

구체적으로, 이동 거리 정보(310)는 카메라(120)를 통해 획득된 영상 데이터를 기초로 하여 산출된 이동 거리 정보(311), 거리 센서를 통해 획득된 거리 데이터를 기초로 하여 산출된 이동 거리 정보(312) 및 오도메트리 센서를 통해 획득된 오도메트리 데이터를 기초로 하여 산출된 이동 거리 정보(313)을 포함할 수 있다. Specifically, the moving distance information 310 includes moving distance information 311 calculated based on image data acquired through the camera 120, and moving distance information calculated based on distance data acquired through a distance sensor. (312) and may include movement distance information (313) calculated based on odometry data acquired through an odometry sensor.

프로세서(150)는 제어 명령 수신 시 획득된 영상 데이터와 제어 명령 수신 후 임계 시간 도과 시 획득된 영상 데이터를 비교하여 각 영상 데이터에서 각각 매칭되는 복수의 픽셀(또는 픽셀 그룹)이 임계 시간을 전후로 얼마나 이동 하였는지에 대한 복수의 벡터 정보를 식별하고, 복수의 벡터의 크기에 대한 평균 값에 기초하여 영상 데이터 기반 이동 거리 정보(311)를 획득할 수 있다.The processor 150 compares the image data acquired when receiving the control command with the image data acquired when the threshold time elapses after receiving the control command, and determines how many pixels (or groups of pixels) matching each image data are before and after the threshold time. It is possible to identify a plurality of vector information regarding movement, and obtain image data-based movement distance information 311 based on the average value of the sizes of the plurality of vectors.

프로세서(150)는 SLAM(Simultaneous Localization and Mapping) 방식에 기초하여 거리 데이터 기반 이동 거리 정보(312)를 획득할 수 있다. 예를 들어, 프로세서(150)는 제어 명령 수신 시 거리 센서를 통해 획득된 거리 데이터에 기초하여 제어 명령 수신시 로봇(100)의 위치를 식별하고, 제어 명령 수신 후 임계 시간 도과시 거리 센서를 통해 획득된 거리 데이터에 기초하여 임계 시간 도과 후 로봇(100)의 위치를 식별하여 식별된 두 위치 사이의 거리를 거리 데이터 기반 이동 거리 정보(312)를 획득할 수 있다.The processor 150 may obtain distance data-based movement distance information 312 based on Simultaneous Localization and Mapping (SLAM) method. For example, the processor 150 identifies the location of the robot 100 when receiving a control command based on distance data acquired through a distance sensor when receiving a control command, and detects the location of the robot 100 through the distance sensor when a threshold time has elapsed after receiving the control command. Based on the acquired distance data, the position of the robot 100 may be identified after a threshold time has elapsed, and distance data-based movement distance information 312 may be obtained as the distance between the two identified locations.

프로세서(150)는 제어 명령 수신시로부터 임계 시간이 도과할 때까지 오도메트리 센서를 통해 구동부(140)의 움직임에 관련된 오도메트리 데이터를 획득할 수 있다. 예를 들어, 구동부(140)가 좌측 바퀴 및 우측 바퀴를 포함하는 경우 프로세서(150)는 임계 시간동안 좌측 바퀴가 회전한 정도에 관련된 제1 오도메트리 데이터 및 임계 시간동안 우측 바퀴가 회전한 정도에 관련된 제2 오도메트리 데이터를 획득할 수 있다. 또한, 프로세서(150)는 제1 오도메트리 데이터, 제2 오도메트리 데이터 및 구동부(140)에 대한 특성 정보에 기초하여 오도메트리 데이터 기반 이동 거리 정보(313)를 획득할 수 있다.The processor 150 may obtain odometry data related to the movement of the driver 140 through the odometry sensor from the time the control command is received until the critical time elapses. For example, when the driving unit 140 includes a left wheel and a right wheel, the processor 150 may include first odometry data related to the degree to which the left wheel rotated during the critical time and the degree to which the right wheel rotated during the critical time. Second odometry data related to can be obtained. Additionally, the processor 150 may obtain odometry data-based movement distance information 313 based on first odometry data, second odometry data, and characteristic information about the driving unit 140.

일 예에 따른 프로세서(150)는 각 이동 거리 정보(311, 312, 313) 중에서 중간 값을 로봇(100)의 이동 거리 정보로 식별할 수 있다. 도 3에 따르면, 영상 데이터 기반 이동 거리 정보(311)는 3m, 거리 데이터 기반 이동 거리 정보(312)는 2.9m, 오도메트리 데이터 기반 이동 거리 정보(313)는 5m를 각각 지시하므로, 프로세서(150)는 영상 데이터 기반 이동 거리 정보(311)를 로봇(100)의 이동 거리 정보로 식별할 수 있다.The processor 150 according to one example may identify the middle value among the movement distance information 311, 312, and 313 as the movement distance information of the robot 100. According to FIG. 3, the image data-based moving distance information 311 indicates 3m, the distance data-based moving distance information 312 indicates 2.9m, and the odometry data-based moving distance information 313 indicates 5m, so the processor ( 150 may identify the image data-based movement distance information 311 as movement distance information of the robot 100.

회전 각도 정보(320)는 카메라(120)를 통해 획득된 영상 데이터를 기초로 하여 산출된 회전 각도 정보(321), 관성 센서를 통해 획득된 관성 데이터를 기초로 하여 산출된 회전 각도 정보(322) 및 오도메트리 센서를 통해 획득된 오도메트리 데이터를 기초로 하여 산출된 회전 각도 정보(323)를 포함할 수 있다. Rotation angle information 320 includes rotation angle information 321 calculated based on image data acquired through the camera 120, and rotation angle information 322 calculated based on inertial data acquired through an inertial sensor. And it may include rotation angle information 323 calculated based on odometry data acquired through an odometry sensor.

프로세서(150)는 제어 명령 수신 시 획득된 영상 데이터와 제어 명령 수신 후 임계 시간 도과 시 획득된 영상 데이터를 비교하여 각 영상 데이터에서 각각 매칭되는 복수의 픽셀(또는 픽셀 그룹)이 임계 시간을 전후로 얼마나 이동 하였는지에 대한 복수의 벡터 정보를 식별하고, 복수의 벡터의 방향에 대한 평균 값에 기초하여 영상 데이터 기반 회전 각도 정보(321)를 획득할 수 있다.The processor 150 compares the image data acquired when receiving the control command with the image data acquired when the threshold time elapses after receiving the control command, and determines how many pixels (or groups of pixels) matching each image data are before and after the threshold time. A plurality of vector information regarding movement can be identified, and image data-based rotation angle information 321 can be obtained based on the average value of the directions of the plurality of vectors.

프로세서(150)는 제어 명령 수신시로부터 임계 시간이 도과할 때까지 관성 센서를 통해 획득된 관성 데이터에 기초하여 관성 데이터 기반 회전 각도 정보(322)를 획득할 수 있다. 예를 들어, 회전 각도 정보(320)는 로봇(100)의 주행면을 기준으로 로봇(100) 회전한 정도를 지시하는 정보이므로, 프로세서(150)는 관성 센서를 통해 획득된 관성 데이터 중 로봇(100)의 주행면과 수직한 축을 기준으로 로봇(100)이 회전한 정도(yawing)에 관한 관성 데이터에 기초하여 관성 데이터 기반 회전 각도 정보(322)를 획득할 수 있으나 이에 한정되는 것은 아니다.The processor 150 may acquire inertial data-based rotation angle information 322 based on inertial data acquired through an inertial sensor from the time a control command is received until the threshold time elapses. For example, since the rotation angle information 320 is information indicating the degree to which the robot 100 rotates based on the running surface of the robot 100, the processor 150 selects the robot ( Inertial data-based rotation angle information 322 may be obtained based on inertial data regarding the degree to which the robot 100 rotates (yawing) relative to an axis perpendicular to the running surface of the robot 100, but the inertial data-based rotation angle information 322 is not limited thereto.

프로세서(150)는 제어 명령 수신시로부터 임계 시간이 도과할 때까지 오도메트리 센서를 통해 획득된 제1 오도메트리 데이터, 제2 오도메트리 데이터 및 구동부(140)에 대한 특성 정보에 기초하여 오도메트리 데이터 기반 회전 각도 정보(323)를 획득할 수 있다. 예를 들어, 프로세서(150)는 제1 오도메트리 데이터에 의해 식별된 구동부(140)의 움직임이 제2 오도메트리 데이터에 의해 식별된 구동부(140)의 움직임보다 큰 경우 로봇(100)이 우측 방향으로 회전한 것으로 식별할 수 있으며, 이때 회전 각도는 제1 오도메트리 데이터 및 제2 오도메트리 데이터가 각각 지시하는 구동부(140)의 움직임의 차이 값에 기초하여 결정될 수 있다.The processor 150 is based on the first odometry data, second odometry data, and characteristic information about the driver 140 obtained through the odometry sensor from the time the control command is received until the critical time elapses. Odometry data-based rotation angle information 323 can be obtained. For example, the processor 150 may operate the robot 100 when the movement of the driving unit 140 identified by the first odometry data is greater than the movement of the driving unit 140 identified by the second odometry data. It can be identified as having rotated in the right direction, and in this case, the rotation angle can be determined based on the difference value of the movement of the drive unit 140 indicated by the first odometry data and the second odometry data, respectively.

일 예에 따른 프로세서(150)는 각 회전 각도 정보(321, 322, 323) 중에서 중간 값을 로봇(100)의 회전 각도 정보로 식별할 수 있다. 도 3에 따르면, 영상 데이터 기반 회전 각도 정보(321)는 30도, 관성 데이터 기반 회전 각도 정보(322)는 50도, 오도메트리 데이터 기반 회전 각도 정보(323)는 40도를 각각 지시하므로, 프로세서(150)는 오도메트리 데이터 기반 회전 각도 정보(323)를 로봇(100)의 회전 각도 정보로 식별할 수 있다.The processor 150 according to an example may identify the middle value among the rotation angle information 321, 322, and 323 as the rotation angle information of the robot 100. According to FIG. 3, the image data-based rotation angle information 321 indicates 30 degrees, the inertial data-based rotation angle information 322 indicates 50 degrees, and the odometry data-based rotation angle information 323 indicates 40 degrees, The processor 150 may identify the odometry data-based rotation angle information 323 as rotation angle information of the robot 100.

흔들림 정보(330)는 카메라(120)를 통해 획득된 영상 데이터를 기초로 하여 산출된 흔들림 정보(331) 및 관성 센서를 통해 획득된 관성 데이터를 기초로 하여 산출된 흔들림 정보(332)를 포함할 수 있다. 여기서, 흔들림 정보(330)는 로봇(100)의 rolling, pitching 및 yawing의 정도에 관한 정보를 포함할 수 있으나 이에 한정되지 않는다.The shaking information 330 may include shaking information 331 calculated based on image data acquired through the camera 120 and shaking information 332 calculated based on inertial data acquired through an inertial sensor. You can. Here, the shaking information 330 may include information about the degree of rolling, pitching, and yawing of the robot 100, but is not limited thereto.

프로세서(150)는 제어 명령 수신 시 획득된 영상 데이터와 제어 명령 수신 후 임계 시간 도과 시 획득된 영상 데이터를 비교하여 각 영상 데이터에서 각각 매칭되는 복수의 픽셀(또는 픽셀 그룹)이 임계 시간을 전후로 얼마나 이동 하였는지에 대한 복수의 벡터 정보를 식별하고, 복수의 벡터의 크기에 대한 분산 값에 기초하여 영상 데이터 기반 흔들림 정보(331)를 획득할 수 있다.The processor 150 compares the image data acquired when receiving the control command with the image data acquired when the threshold time elapses after receiving the control command, and determines how many pixels (or groups of pixels) matching each image data are before and after the threshold time. A plurality of vector information regarding movement can be identified, and image data-based shake information 331 can be obtained based on the variance value for the size of the plurality of vectors.

프로세서(150)는 제어 명령 수신시로부터 임계 시간이 도과할 때까지 관성 센서를 통해 획득된 관성 데이터에 기초하여 관성 데이터 기반 흔들림 정보(332)를 획득할 수 있다. 예를 들어, 프로세서(150)는 관성 센서를 통해 획득되며, 기 설정된 축을 기준으로 로봇(100)이 흔들린 정도에 각각 대응되는 관성 데이터에 기초하여 관성 데이터 기반 흔들림 정보(332)를 획득할 수 있다. 기 설정된 축이 3개 축인 경우, 일 예에 따른 프로세서(150)는 rolling, pitching 및 yawing 값의 평균 값에 기초하여 관성 데이터 기반 흔들림 정보(332)를 획득할 수 있다.The processor 150 may obtain inertial data-based shaking information 332 based on inertial data acquired through an inertial sensor from the time a control command is received until the threshold time elapses. For example, the processor 150 may acquire inertial data-based shaking information 332 based on inertial data obtained through an inertial sensor and corresponding to the degree to which the robot 100 shakes based on a preset axis. . When the preset axes are three axes, the processor 150 according to an example may obtain inertial data-based shaking information 332 based on the average value of rolling, pitching, and yawing values.

일 예에 따른 프로세서(150)는 각 흔들림 정보(331, 332)의 평균 값을 로봇(100)의 흔들림 정보로 식별할 수 있다. 도 3에 따르면, 영상 데이터 기반 흔들림 정보(331)는 200, 관성 데이터 기반 흔들림 정보(332)는 300을 각각 지시하므로, 프로세서(150)는 250을 로봇(100)의 흔들림 정도로 식별할 수 있다.The processor 150 according to one example may identify the average value of each shaking information 331 and 332 as shaking information of the robot 100. According to FIG. 3, since the image data-based shaking information 331 indicates 200 and the inertial data-based shaking information 332 indicates 300, the processor 150 can identify 250 as the degree of shaking of the robot 100.

도 4는 본 개시의 일 실시 예에 따른 로봇의 동작을 단계적으로 설명하기 위한 도면이다.Figure 4 is a diagram for step-by-step explaining the operation of a robot according to an embodiment of the present disclosure.

도 4에 따르면, 센서 모듈(130)는 거리 센서(131), 오도메트리 센서(132) 및 관성 센서(133)를 포함할 수 있다. 또한, 로봇(100)은 배터리(160)를 추가로 구비할 수 있다. 프로세서(150)는 카메라(120), 센서 모듈(130)에 포함된 복수의 센서(131, 132, 133) 및 배터리(160)로부터 획득된 정보에 기초하여 사용자가 제어 명령을 통해 지시한 요청 동작이 정상적으로 수행되었는지 여부를 판단할 수 있다.According to FIG. 4, the sensor module 130 may include a distance sensor 131, an odometry sensor 132, and an inertial sensor 133. Additionally, the robot 100 may be additionally equipped with a battery 160. The processor 150 performs the requested operation indicated by the user through a control command based on information obtained from the camera 120, a plurality of sensors 131, 132, and 133 included in the sensor module 130, and the battery 160. It can be determined whether this was performed normally.

프로세서(150)는 로봇(100)의 구동에 따라 카메라(120)로부터 획득된 영상 데이터를 분석할 수 있다(S410). 예를 들어, 프로세서(150)는 영상 데이터에 기초하여 로봇(100)의 이동 거리 정보를 획득하고, 영상 데이터에 기초하여 로봇(100)의 회전 각도 정보를 획득하며, 영상 데이터에 기초하여 로봇(100)의 흔들림 정보를 획득할 수 있다.The processor 150 may analyze image data obtained from the camera 120 as the robot 100 operates (S410). For example, the processor 150 acquires movement distance information of the robot 100 based on the image data, acquires rotation angle information of the robot 100 based on the image data, and determines the robot (100) based on the image data. 100) of shaking information can be obtained.

일 예에 따라 로봇(100)이 머리부와 몸체부로 구성된 경우, 프로세서(150)는 로봇(100)의 머리부에 구비된 관성 센서(133)를 통해 획득된 관성 데이터에 기초하여 로봇(100)의 머리부의 움직임에 대한 흔들림 정보를 획득할 수 있다(S421). 또한, 프로세서(150)는 로봇(100)의 몸체부에 구비된 관성 센서(133)를 통해 획득된 관성 데이터에 기초하여 로봇(100)의 몸체부의 움직임에 대한 흔들림 정보를 획득할 수 있다(S422).According to one example, when the robot 100 is composed of a head and a body, the processor 150 processes the robot 100 based on inertial data acquired through the inertial sensor 133 provided on the head of the robot 100. Shaking information about the movement of the head can be obtained (S421). Additionally, the processor 150 may obtain shaking information about the movement of the body of the robot 100 based on inertial data acquired through the inertial sensor 133 provided in the body of the robot 100 (S422 ).

프로세서(150)는 거리 센서(131)를 통해 획득된 거리 데이터를 SLAM 방식으로 처리하여 로봇(100)의 위치 변화를 계산할 수 있다(S430). 이를 통해 프로세서(150)는 거리 데이터 기반의 이동 거리 정보를 획득할 수 있다.The processor 150 may calculate the change in position of the robot 100 by processing the distance data acquired through the distance sensor 131 using the SLAM method (S430). Through this, the processor 150 can obtain movement distance information based on distance data.

프로세서(150)는 오도메트리 센서(132)를 통해 획득된 오도메트리 데이터에 기초하여 구동부(140)의 움직임을 통해 예상되는 로봇(100)의 움직임을 계산할 수 있다(S440). 이를 통해 프로세서(150)는 오도메트리 데이터 기반 이동 거리 정보 및 오도메트리 데이터 기반 회전 각도 정보를 획득할 수 있게 된다.The processor 150 may calculate the expected movement of the robot 100 through the movement of the driving unit 140 based on odometry data acquired through the odometry sensor 132 (S440). Through this, the processor 150 can obtain odometry data-based movement distance information and odometry data-based rotation angle information.

프로세서(150)는 배터리(160)의 상태에 기초하여 로봇(100)이 저전력 상태인지 여부 및 식별된 배터리의 상태 하에서 각 센서가 정상적으로 동작하는지 여부를 파악할 수 있다(S450).The processor 150 can determine whether the robot 100 is in a low-power state based on the state of the battery 160 and whether each sensor operates normally under the identified battery state (S450).

프로세서(150)는 카메라(120), 복수의 센서(131, 132, 133) 및 배터리(160)로부터 획득된 정보에 기초하여 요청 동작 수행 여부를 판단할 수 있다(S460). 만일 요청 동작이 충분히 수행되지 않은 경우, 프로세서(150)는 로봇(100)의 비 정상적 동작의 타입을 식별하고, 식별된 타입과 관련된 솔루션 정보를 제공할 수 있다(S470). 여기서, 프로세서(150)가 솔루션 정보를 포함하는 가이드 UI 정보를 통신 인터페이스(110)를 통해 사용자 단말로 전송함으로써 솔루션 정보를 제공할 수도 있으나, 로봇(100)이 스스로 솔루션 정보에 대응되는 UI를 제공할 수도 있다.The processor 150 may determine whether to perform the requested operation based on information obtained from the camera 120, the plurality of sensors 131, 132, and 133, and the battery 160 (S460). If the requested operation is not sufficiently performed, the processor 150 may identify the type of abnormal operation of the robot 100 and provide solution information related to the identified type (S470). Here, the processor 150 may provide solution information by transmitting guide UI information including solution information to the user terminal through the communication interface 110, but the robot 100 itself provides UI corresponding to the solution information. You may.

이어서, 프로세서(150)는 솔루션 정보에 기초하여 비 정상적 동작의 타입에 대응되는 로봇(100)의 대체 동작 실행 가능 여부를 판단한다(S480). 예를 들어, 프로세서(150)는 비 정상적 동작의 타입에 기초하여 사용자의 개입 없이 로봇(100) 스스로 비 정상적 동작에 대한 대체 동작을 실행하여 문제를 해결할 수 있는지 여부를 판단할 수 있다.Next, the processor 150 determines whether an alternative operation of the robot 100 corresponding to the type of abnormal operation can be performed based on the solution information (S480). For example, the processor 150 may determine whether the robot 100 can solve the problem by executing an alternative operation for the abnormal operation on its own without user intervention based on the type of abnormal operation.

만일 대체 동작 실행이 가능하다면(S480: Y) 프로세서(150)는 솔루션 정보에 대응되는 대체 동작을 실행하도록 구동부(140)를 제어할 수 있다(S491). 만일 대체 동작 실행이 불가능하다면(S480: N) 프로세서(150)는 구동부(140)의 동작을 중지한 후 사용자 단말로부터 후속 제어 명령이 수신될 때까지 로봇(100)을 대기 상태로 제어할 수 있다(S492).If execution of the alternative operation is possible (S480: Y), the processor 150 may control the driver 140 to execute the alternative operation corresponding to the solution information (S491). If it is impossible to execute an alternative operation (S480: N), the processor 150 may stop the operation of the driving unit 140 and then control the robot 100 in a standby state until a subsequent control command is received from the user terminal. (S492).

도 5는 본 개시의 일 실시 예에 따른 로봇의 동작을 보다 상세히 설명하기 위한 도면이다.Figure 5 is a diagram for explaining in more detail the operation of a robot according to an embodiment of the present disclosure.

프로세서(150)는 카메라(120), 복수의 센서(131, 132, 133) 및 배터리(160)로부터 획득된 정보에 기초하여 주행 정보를 획득할 수 있다(510). 예를 들어, 프로세서(150)는 영상 데이터 분석(S410)을 통해 영상 데이터 기반 이동 거리(511), 영상 데이터 기반 흔들림 정도(514) 및 영상 데이터 기반 회전 각도(516)를 계산할 수 있다. 또한, 프로세서(150)는 SLAM 기반의 로봇(100) 위치 변화 계산(S430)를 통해 거리 데이터 기반 이동 거리를 계산할 수 있다(512).The processor 150 may obtain driving information based on information obtained from the camera 120, the plurality of sensors 131, 132, and 133, and the battery 160 (510). For example, the processor 150 may calculate the moving distance 511 based on image data, the degree of shaking 514 based on image data, and the rotation angle 516 based on image data through image data analysis (S410). Additionally, the processor 150 may calculate a moving distance based on distance data through SLAM-based position change calculation of the robot 100 (S430) (512).

또한, 프로세서(150)는 구동부(140)의 움직임을 통해 예상되는 로봇(100) 움직임 계산(S440)을 통해 오도메트리 데이터 기반 이동 거리(513) 및 오도메트리 데이터 기반 회전 각도(518)를 계산할 수 있으며, 로봇(100) 머리부의 움직임에 대한 흔들림 정보 획득(S421) 및 로봇(100) 몸체의 움직임에 대한 흔들림 정보 획득(S422)을 통해 관성 데이터 기반 흔들림 정도(515) 및 관성 데이터 기반 회전 각도(517)를 계산할 수 있다.In addition, the processor 150 calculates the movement of the robot 100 (S440), which is expected through the movement of the driving unit 140, and calculates the odometry data-based movement distance 513 and the odometry data-based rotation angle 518. It can be calculated by obtaining shaking information about the movement of the head of the robot 100 (S421) and acquiring shaking information about the movement of the body of the robot 100 (S422) to determine the degree of shaking based on inertial data (515) and rotation based on inertial data. The angle 517 can be calculated.

이어서, 프로세서(150)는 상술한 방식으로 계산한 로봇(100)의 이동 거리, 로봇(100)의 회전 각도 및 로봇(100)의 흔들림 정도를 포함하는 주행 정보에 기초하여 요청 동작 수행 여부를 판단하고, 요청 동작이 정상적으로 수행되지 않은 경우 비 정상적 동작에 대응되는 가이드 UI 정보를 제공할 수 있다(520).Subsequently, the processor 150 determines whether to perform the requested operation based on the driving information including the moving distance of the robot 100, the rotation angle of the robot 100, and the degree of shaking of the robot 100 calculated in the above-described manner. And, if the requested operation is not performed normally, guide UI information corresponding to the abnormal operation may be provided (520).

이 과정에서, 프로세서(150)는 각 센서의 이상 동작 여부 파악(S450)을 통해 획득된 주행 정보 내에서 요청 동작 수행 여부 판단에 활용될 정보를 식별할 수 있다. 예를 들어, 식별된 배터리 상태 하에서 카메라(120)가 정상적으로 동작하지 못하는 경우, 프로세서(150)는 영상 데이터 기반 이동 거리(511), 영상 데이터 기반 흔들림 정도(514) 및 영상 데이터 기반 회전 각도(516)를 제외한 주행 정보에 기초하여 요청 동작 수행 여부를 판단할 수 있다. In this process, the processor 150 can identify information to be used to determine whether to perform the requested operation within the driving information obtained through determining whether each sensor is operating abnormally (S450). For example, if the camera 120 does not operate normally under the identified battery state, the processor 150 determines the moving distance 511 based on image data, the degree of shaking 514 based on image data, and the rotation angle 516 based on image data. It can be determined whether to perform the requested operation based on driving information excluding ).

또한, 프로세서(150)는 로봇(100)이 저전력 상태인지 식별할 수 있다(519). 만일 로봇(100)이 저전력 상태인 것으로 식별되는 경우(519: Y), 프로세서(150)는 저전력 상태 경고 정보 및 로봇(100) 구동 중단 정보를 가이드 UI 정보에 포함시키고, 로봇(100)이 구동하지 않도록 구동부(140)를 제어할 수 있다(530).Additionally, the processor 150 may identify whether the robot 100 is in a low power state (519). If the robot 100 is identified as being in a low-power state (519: Y), the processor 150 includes low-power state warning information and robot 100 operation interruption information in the guide UI information, and the robot 100 is driven. The driving unit 140 can be controlled so as not to do so (530).

만일 로봇(100)이 저전력 상태가 아닌 것으로 식별되는 경우(519: N), 프로세서는 주행 정보에 기초하여 요청 동작 수행 여부를 판단할 수 있다(520).If the robot 100 is identified as not being in a low power state (519: N), the processor may determine whether to perform the requested operation based on the driving information (520).

일 예에 따른 프로세서(150) 식별된 이동 거리(511, 512, 513) 중 중간 값을 식별하고, 식별된 중간 값 및 중간 값을 제외한 나머지 이동 거리와의 편차 비율을 계산할 수 있다. 프로세서(150)는 편차 비율이 임계 비율 이상인지에 기초하여 요청 동작의 수행 정도를 식별하고, 식별된 수행 정도를 출력하는 가이드 UI 정보를 획득할 수 있다(521).The processor 150 according to an example may identify a middle value among the identified movement distances 511, 512, and 513, and calculate a deviation ratio from the identified middle value and the remaining movement distances excluding the middle value. The processor 150 may identify the performance level of the requested operation based on whether the deviation rate is greater than or equal to the threshold rate and obtain guide UI information that outputs the identified performance level (521).

일 예에 따른 프로세서(150)는 식별된 흔들림 정도(514, 515)의 평균 값을 식별하고, 평균 값과 식별된 흔들림 정도(514, 515) 각각과의 편차 비율을 계산할 수 있다. 프로세서(150)는 편차 비율이 임계 비율 이상인지에 기초하여 요청 동작의 수행 정도를 식별하고, 식별된 수행 정도를 출력하는 가이드 UI 정보를 획득할 수 있다(522).The processor 150 according to an example may identify the average value of the identified shaking degrees 514 and 515 and calculate a deviation ratio between the average value and the identified shaking degrees 514 and 515, respectively. The processor 150 may identify the performance level of the requested operation based on whether the deviation rate is greater than or equal to the threshold rate and obtain guide UI information that outputs the identified performance level (522).

일 예에 따른 프로세서(150)는 식별된 회전 각도(516, 517, 518) 중 중간 값을 식별하고, 식별된 중간 값 및 중간 값을 제외한 나머지 회전 각도와의 편차 비율을 계산할 수 있다. 프로세서(150)는 편차 비율이 임계 비율 이상인지에 기초하여 요청 동작의 수행 정도를 식별하고, 식별된 수행 정도를 출력하는 가이드 UI 정보를 획득할 수 있다(523).The processor 150 according to an example may identify a middle value among the identified rotation angles 516, 517, and 518, and calculate a deviation ratio from the identified middle value and the remaining rotation angles excluding the middle value. The processor 150 may identify the performance level of the requested operation based on whether the deviation rate is greater than or equal to the threshold rate and obtain guide UI information that outputs the identified performance level (523).

마지막으로, 프로세서(150)는 획득된 가이드 UI 정보를 사용자 단말로 전송할 수 있다(540). 로봇(100)이 저전력 상태인 것으로 식별되는 경우(519: Y), 프로세서(150)는 저전력 상태 경고 정보 및 로봇(100) 구동 중단 정보를 포함하는 UI 정보를 사용자 단말로 전송할 수 있다.Finally, the processor 150 may transmit the obtained guide UI information to the user terminal (540). When the robot 100 is identified as being in a low power state (519: Y), the processor 150 may transmit UI information including low power state warning information and robot 100 operation interruption information to the user terminal.

도 6a 및 도 6b는 본 개시의 일 실시 예에 따른 로봇의 대체 동작을 설명하기 위한 도면이다. 일 예에 따른 로봇(100)은 우측 바퀴(141) 및 좌측 바퀴(142)를 포함하는 구동부(140)를 구비할 수 있다.6A and 6B are diagrams for explaining an alternative operation of a robot according to an embodiment of the present disclosure. The robot 100 according to one example may be provided with a driving unit 140 including a right wheel 141 and a left wheel 142.

프로세서(150)는 오도메트리 데이터에 기초하여 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리를 각각 계산할 수 있다. 일 예에 따른 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값 이상인 것으로 식별되면 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수 있다.The processor 150 may calculate the movement distance of the right wheel 141 and the movement distance of the left wheel 142, respectively, based on the odometry data. The processor 150 according to an example may identify that the requested operation has not been performed normally when the difference between the movement distance of the right wheel 141 and the movement distance of the left wheel 142 is determined to be greater than or equal to the first threshold.

프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 아닌 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 비율에 기초하여 요청 동작이 정상적으로 수행되었는지 판단할 수도 있으나 설명의 편의상 도 6a 및 도 6b와 관련하여서는 프로세서(150)가 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이에 기초하여 요청 동작이 정상적으로 수행되었는지 판단하는 것으로 상정하고 설명하도록 한다.The processor 150 performs a request operation based on the ratio of the movement distance of the right wheel 141 and the movement distance of the left wheel 142, rather than the difference between the movement distance of the right wheel 141 and the movement distance of the left wheel 142. It may be determined whether this was performed normally, but for convenience of explanation, in relation to FIGS. 6A and 6B, the processor 150 determines whether the requested operation is performed normally based on the difference between the movement distance of the right wheel 141 and the movement distance of the left wheel 142. It is assumed and explained that it is judged whether it has been carried out.

한편, 프로세서(150)는 제어 명령(610)에 기초한 로봇(100)이 이동해야 할 거리(5m)와 오도메트리 데이터에 기초한 양 바퀴(141, 142)의 회전량(7m, 5.5m)을 비교하여 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수도 있다. 예를 들어, 프로세서(150)는 양 바퀴(141, 142)의 회전량(7m, 5.5m) 중 어느 하나라도 제어 명령(610)에 기초한 로봇(100)이 이동해야 할 거리(5m)보다 제3 임계 값(예: 1.5m) 이상 큰 값을 갖는 것으로 식별되면 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수 있다.Meanwhile, the processor 150 calculates the distance to be moved by the robot 100 (5 m) based on the control command 610 and the rotation amount (7 m, 5.5 m) of both wheels 141 and 142 based on odometry data. By comparison, it can be identified that the requested operation was not performed properly. For example, the processor 150 determines that any one of the rotation amounts (7 m, 5.5 m) of both wheels 141 and 142 is greater than the distance (5 m) that the robot 100 must move based on the control command 610. 3 If it is identified as having a value greater than the threshold (e.g. 1.5m), it can be identified that the requested operation was not performed properly.

또한, 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값보다 큰 제2 임계 값 미만인 경우 비 정상적 동작의 타입을 '미끄러짐'으로 식별하고, 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값보다 큰 제2 임계 값 이상인 경우 비 정상적 동작의 타입을 '이물질 끼임'으로 식별할 수 있다.In addition, the processor 150 identifies the type of abnormal operation as 'slipping' when the difference between the moving distance of the right wheel 141 and the moving distance of the left wheel 142 is less than a second threshold value that is greater than the first threshold value. And, if the difference between the moving distance of the right wheel 141 and the moving distance of the left wheel 142 is greater than the second threshold value that is greater than the first threshold value, the type of abnormal operation can be identified as 'foreign matter caught'.

도 6a에 따르면, 사용자 단말로부터 제어 명령(610)을 수신한 로봇(100)은 미끄러운 주행면 상을 이동할 수 있다. 일 예에 따른 프로세서(150)는 우측 바퀴(141)가 7m 회전한 것으로 식별하고(611), 좌측 바퀴(142)가 5.5m 회전한 것으로 식별할 수 있다(612). 이 경우 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값(예: 1m) 이상인 것에 기초하여 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수 있다.According to FIG. 6A, the robot 100 that receives a control command 610 from the user terminal can move on a slippery running surface. The processor 150 according to an example may identify that the right wheel 141 has rotated 7 m (611) and that the left wheel 142 has rotated 5.5 m (612). In this case, the processor 150 may identify that the requested operation was not performed normally based on the difference between the moving distance of the right wheel 141 and the moving distance of the left wheel 142 being greater than or equal to a first threshold value (e.g., 1 m). You can.

또한, 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제2 임계 값(예: 3m) 미만인 것에 기초하여 비 정상적 동작의 타입이 '미끄러짐'인 것으로 식별하고, 식별된 타입에 대응되는 솔루션 정보(620)를 획득할 수 있다. 예를 들어, 미끄러짐에 대처하기 위한 솔루션 정보(620)는 로봇(100)의 이동 속도를 제어 명령(610)에 대응되는 0.2m/s보다 느린 0.1m/s로 감소시키는 정보를 포함할 수 있으나 이에 한정되는 것은 아니다.In addition, the processor 150 determines that the type of abnormal operation is 'sliding' based on the difference between the moving distance of the right wheel 141 and the moving distance of the left wheel 142 being less than a second threshold value (e.g., 3 m). and can obtain solution information 620 corresponding to the identified type. For example, solution information 620 for coping with slippage may include information to reduce the moving speed of the robot 100 to 0.1 m/s, which is slower than 0.2 m/s corresponding to the control command 610. It is not limited to this.

도 6b에 따르면, 사용자 단말로부터 제어 명령(630)을 수신한 로봇(100)은 주행면 상의 이물질(60)을 통과하여 이동할 수 있다. 여기서, 이물질(60)은 구동부(140)의 동작에 간섭을 일으킬 수 있는 오브젝트(예: 헝겊)일 수 있다. According to FIG. 6B, the robot 100 that receives the control command 630 from the user terminal can move through the foreign matter 60 on the running surface. Here, the foreign matter 60 may be an object (eg, a cloth) that may interfere with the operation of the driving unit 140.

일 예에 따른 프로세서(150) 우측 바퀴(141)가 5m 회전한 것으로 식별하고(631), 좌측 바퀴(142)가 0.5m 회전한 것으로 식별할 수 있다(632). 이 경우 프로세서(150)는 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값(예: 1m) 이상인 것에 기초하여 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수 있다.According to one example, the right wheel 141 of the processor 150 may be identified as having rotated 5 m (631), and the left wheel 142 may be identified as having rotated 0.5 m (632). In this case, the processor 150 normally performs the requested operation based on the difference between the moving distance of the right wheel 141 and the moving distance of the left wheel 142 being greater than or equal to a first threshold value (e.g., 1 m). It can be identified as not being done.

또한, 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제2 임계 값(예: 3m) 이상인 것에 기초하여 비 정상적 동작의 타입이 '이물질 끼임'인 것으로 식별하고, 식별된 타입에 대응되는 솔루션 정보(640)를 획득할 수 있다. 예를 들어, 이물질 끼임에 대처하기 위한 솔루션 정보(640)는 이물질이 끼인 바퀴(142)를 제어 명령(630)에 따른 회전 방향과 반대 방향으로 회전시킨 후, 제어 명령(630)에 따른 회전 방향으로 회전하도록 제어하는 정보를 포함할 수 있으나 이에 한정되는 것은 아니다.In addition, the processor 150 determines that the type of abnormal operation is 'foreign matter caught' based on the difference between the moving distance of the right wheel 141 and the moving distance of the left wheel 142 being more than a second threshold value (e.g., 3 m). , and solution information 640 corresponding to the identified type can be obtained. For example, the solution information 640 for coping with foreign matter being caught is to rotate the wheel 142 with foreign matter caught in the direction opposite to the rotation direction according to the control command 630, and then rotate the wheel 142 in the rotation direction according to the control command 630. It may include information that controls rotation, but is not limited to this.

도 7a 및 도 7b는 본 개시의 일 실시 예에 따른 로봇의 센서 리셋 동작을 설명하기 위한 도면이다. 프로세서(150)는 관성 센서(133)로부터 획득된 관성 데이터에 기초하여 로봇(100)의 흔들림 정보를 획득할 수 있다.7A and 7B are diagrams for explaining a sensor reset operation of a robot according to an embodiment of the present disclosure. The processor 150 may obtain shaking information of the robot 100 based on inertial data acquired from the inertial sensor 133.

도 7a에 따르면, 프로세서(150)는 로봇(100)의 주기적 흔들림을 감지할 수 있다(710). 로봇(100)이 주행하는 과정에서 주기적으로 rolling, pitching 또는 yawing이 식별된다면 이는 주행면의 상태에서 기인한 흔들림이 아닌 로봇(100)의 제어 알고리즘 또는 관성 센서(133)의 에러에서 기인한 흔들림일 가능성이 높으므로, 프로세서(150)는 로봇(100)의 주행을 중단하고(721) 관성 센서(133)를 리셋할 수 있다(722).According to FIG. 7A, the processor 150 may detect periodic shaking of the robot 100 (710). If rolling, pitching, or yawing is periodically identified during the driving process of the robot 100, this is not shaking caused by the condition of the running surface, but shaking caused by an error in the control algorithm of the robot 100 or the inertial sensor 133. Since there is a high possibility, the processor 150 may stop running the robot 100 (721) and reset the inertial sensor 133 (722).

이에 더하여, 프로세서(150)는 로봇(100)의 제어 알고리즘을 리셋할 수도 있으며, 통신 인터페이스(110)를 통해 제어 알고리즘 또는 관성 센서(133)의 에러를 지시하는 가이드 UI 정보를 사용자 단말로 전송할 수도 있다.In addition, the processor 150 may reset the control algorithm of the robot 100, and may transmit guide UI information indicating an error in the control algorithm or the inertial sensor 133 to the user terminal through the communication interface 110. there is.

도 7b에 따르면, 프로세서(150)는 로봇(100)의 간헐적 흔들림을 감지할 수 있다(730). 로봇이 주행하는 과정에서 간헐적으로 rolling, pitching 또는 yawing이 식별된다면 이는 주행면의 상태에서 기인한 흔들림일 가능성이 높으므로, 프로세서(150)는 로봇(100)이 감속되도록 구동부(140)를 제어할 수 있다(741).According to FIG. 7B, the processor 150 can detect intermittent shaking of the robot 100 (730). If rolling, pitching, or yawing is identified intermittently during the robot's driving process, this is likely to be shaking caused by the condition of the running surface, so the processor 150 controls the driving unit 140 to decelerate the robot 100. Can (741).

이와 동시에, 프로세서(150)는 카메라(120)를 통해 획득되는 영상 데이터의 분석 방식을 조정(내지는 변경)할 수 있다(742). 예를 들어, 프로세서(150)는 영상 데이터 내에서 장애물 또는 요철을 식별하는 데 관여하는 민감도를 향상시킬 수 있다. 이를 통해 로봇(100)은 양호하지 않은 상태의 주행면을 보다 원활하게 이동할 수 있게 된다.At the same time, the processor 150 may adjust (or change) the analysis method of image data acquired through the camera 120 (742). For example, the processor 150 may improve the sensitivity involved in identifying obstacles or irregularities within image data. Through this, the robot 100 can move more smoothly on a running surface that is not in good condition.

도 8은 본 개시의 일 실시 예에 따른 머리부를 포함하는 로봇의 동작을 설명하기 위한 도면이다. 일 예에 따른 로봇(100)은 머리부(100-1)와 몸체부(100-2)로 구성되며, 머리부(100-1)와 몸통부(100-2) 사이에 위치한 머리부 구동부(143)에 의해 머리부(100-1)가 구동될 수 있다. 이 경우, 프로세서(150)는 로봇(100)의 머리부(100-1)에 구비된 관성 센서(133-1)를 통해 획득된 관성 데이터에 기초하여 로봇(100)의 머리부(100-1)의 움직임에 대한 흔들림 정보를 획득하고 로봇(100)의 몸체부(100-2)에 구비된 관성 센서(133-2)를 통해 획득된 관성 데이터에 기초하여 로봇(100)의 몸체부(100-2)의 움직임에 대한 흔들림 정보를 획득할 수 있다.Figure 8 is a diagram for explaining the operation of a robot including a head according to an embodiment of the present disclosure. The robot 100 according to an example consists of a head 100-1 and a body 100-2, and a head driving unit located between the head 100-1 and the body 100-2 ( The head portion 100-1 may be driven by 143). In this case, the processor 150 operates on the head 100-1 of the robot 100 based on inertial data acquired through the inertial sensor 133-1 provided on the head 100-1 of the robot 100. ) Obtain shaking information about the movement of the body portion 100 of the robot 100 based on the inertial data acquired through the inertial sensor 133-2 provided in the body portion 100-2 of the robot 100. -2) Shaking information about the movement can be obtained.

프로세서(150)는 제어 명령이 수신된 시점을 기준으로 제1 임계 시간 내의 주행 정보를 획득할 수 있다. 획득된 주행 정보에는 머리부(100-1)에 대한 흔들림 정보 및 몸체부(100-2)에 대한 흔들림 정보는 물론 카메라(120)를 통해 획득된 영상 데이터에 기초한 로봇(100)의 흔들림 정보도 포함되어 있을 수 있다.The processor 150 may obtain driving information within a first threshold time based on the time when the control command is received. The acquired driving information includes shaking information about the head 100-1 and shaking information about the body 100-2, as well as shaking information about the robot 100 based on image data acquired through the camera 120. may be included.

예를 들어, 프로세서(150)는 영상 데이터에 기초하여 식별된 로봇(100)의 흔들림 정도는 '약'인 것으로 식별하고(811), 관성 데이터에 기초하여 식별된 머리부(100-1)의 흔들림 정도는 '약'인 것으로 식별하며(812), 관성 데이터에 기초하여 식별된 몸통부(100-2)의 흔들림 정도는 '강'인 것으로 식별할 수 있다(813). 식별된 흔들림의 정도가 동일하지 않은 상황에 기초하여, 프로세서(150)는 관성 센서(133-1, 133-2) 중 적어도 하나에 에러가 발생한 것으로 식별할 수 있다.For example, the processor 150 identifies the degree of shaking of the robot 100 identified based on the image data as 'weak' (811), and the degree of shaking of the head 100-1 identified based on the inertial data is The degree of shaking can be identified as 'weak' (812), and the degree of shaking of the body portion 100-2 identified based on inertial data can be identified as 'strong' (813). Based on a situation where the identified degree of shaking is not the same, the processor 150 may identify that an error has occurred in at least one of the inertial sensors 133-1 and 133-2.

프로세서(150)는 에러가 발생한 관성 센서를 식별하기 위해 머리부(100-1)가 몸체부(100-2)와 별도로 움직이지 않도록 구동부(143)를 제어하고(821), 로봇(100)의 주행이 중단되도록 구동부(141, 142)를 제어할 수 있다(822). 또한, 프로세서(150)는 구동부(141, 142, 143)에 대한 제어 시점을 기준으로 제2 임계 시간 내에 카메라(120) 및 관성 센서(133-1, 133-2)로부터 획득된 데이터에 기초하여 로봇(100)의 흔들림 정보를 다시 획득할 수 있다.The processor 150 controls the driving unit 143 so that the head 100-1 does not move separately from the body 100-2 in order to identify the inertial sensor in which an error occurred (821), and the robot 100 The driving units 141 and 142 can be controlled to stop driving (822). In addition, the processor 150 based on data acquired from the camera 120 and the inertial sensors 133-1 and 133-2 within a second threshold time based on the control timing for the driving units 141, 142, and 143. The shaking information of the robot 100 can be acquired again.

로봇(100)의 주행이 중단되었기 때문에, 프로세서(150)가 영상 데이터에 기초한 로봇(100)의 흔들림은 식별되지 않을 수 있다(831). 머리부(100-1)에 구비된 관성 센서(133-1)에 에러가 발생하지 않은 경우라면 관성 데이터에 기초한 머리부(100-1)의 흔들림 역시 식별되지 않을 수 있다. 반면, 몸체부(100-2)에 구비된 관성 센서(133-2)에 에러가 발생한 경우 관성 데이터에 기초한 몸체부(100-2)의 흔들림은 '강'으로 식별될 수 있다.Because the running of the robot 100 has stopped, the processor 150 may not be able to identify the shaking of the robot 100 based on the image data (831). If an error does not occur in the inertial sensor 133-1 provided in the head 100-1, shaking of the head 100-1 based on inertial data may not be identified. On the other hand, if an error occurs in the inertial sensor 133-2 provided in the body 100-2, the shaking of the body 100-2 based on the inertial data may be identified as 'strong'.

이 경우 프로세서(150)는 몸체부(100-2)에 구비된 관성 센서(133-2)에 에러가 발생한 것으로 식별하고, 해당 관성 센서(133-2)의 에러에 관련된 가이드 UI 정보를 사용자 단말로 전송하도록 통신 인터페이스(110)를 제어할 수 있다. In this case, the processor 150 identifies that an error has occurred in the inertial sensor 133-2 provided in the body portion 100-2, and sends guide UI information related to the error of the inertial sensor 133-2 to the user terminal. The communication interface 110 can be controlled to transmit.

나아가, 프로세서(150)는 에러가 발생한 관성 센서(133-2)에 대한 리셋 이력에 기초하여 해당 관성 센서(133-2)에 고장이 발생한 것으로 식별할 수 있다. 예를 들어, 프로세서(150)는 에러가 발생한 관성 센서(133-2)가 임계 기간 내에 임계 횟수 이상 리셋된 것으로 식별되면 해당 센서(133-2)에 고장이 발생한 것으로 식별하고, 고장에 관한 가이드 UI 정보를 사용자 단말로 전송하도록 통신 인터페이스(110)를 제어할 수 있다.Furthermore, the processor 150 may identify that a failure has occurred in the inertial sensor 133-2 based on the reset history of the inertial sensor 133-2 in which an error occurred. For example, if the inertial sensor 133-2 in which an error occurred is identified as having been reset more than a threshold number of times within a critical period, the processor 150 identifies that a failure has occurred in the corresponding sensor 133-2 and provides a guide regarding the failure. The communication interface 110 can be controlled to transmit UI information to the user terminal.

도 9는 본 개시의 일 실시 예에 따른 배터리 상태를 고려한 로봇의 동작을 설명하기 위한 흐름도이다.Figure 9 is a flowchart for explaining the operation of a robot considering the battery state according to an embodiment of the present disclosure.

도 9에 따르면, 프로세서(150)는 배터리의 상태를 지속적으로 모니터링할 수 있다(S910). 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 획득하는 과정에서 프로세서(150)는 배터리의 전력량이 임계 값 이상인지 여부를 판단할 수 있다(S920). 여기서, 임계 값은 로봇(100)이 정상적으로 주행하는데 필요한 배터리 전력량일 수 있으나 이에 한정되는 것은 아니다. According to FIG. 9, the processor 150 can continuously monitor the state of the battery (S910). In the process of acquiring driving information within a threshold time based on the point in time at which the control command is received, the processor 150 may determine whether the amount of power in the battery is greater than or equal to the threshold (S920). Here, the threshold value may be the amount of battery power required for the robot 100 to run normally, but is not limited thereto.

만일 배터리의 전력량이 임계 값 미만인 것으로 식별되면(S920: N) 프로세서(150)는 로봇(100)의 구동을 중단하고, 로봇(100)의 구동 중단을 지시하는 가이드 UI 정보를 제공할 수 있다(S930). 이에 따라, 프로세서(150)는 임계 값 미만의 전력량을 갖는 배터리 상태에서 로봇(100)이 주행함에 따라 발생 가능한 문제를 차단할 수 있다.If the battery power amount is identified as being less than the threshold (S920: N), the processor 150 may stop driving the robot 100 and provide guide UI information instructing to stop driving the robot 100 ( S930). Accordingly, the processor 150 can block problems that may occur as the robot 100 runs in a battery state with a power amount below the threshold.

만일 배터리의 전력량이 임계 값 이상인 것으로 식별되면(S920: Y) 프로세서(150)는 카메라(120) 및 복수의 센서를 통해 획득된 데이터에 기초하여 주행 정보를 획득할 수 있다. 이 경우, 프로세서(150)는 식별된 배터리의 상태 하에서 신뢰할 수 있는 데이터 값만을 주행 정보 획득에 반영할 수 있다. 이하에서는, 카메라(120) 또는 복수의 센서 각각이 신뢰할 수 있는 데이터 값을 획득 및 출력하기 위한 전력량을 카메라(120) 또는 복수의 센서 각각의 '요구 전력량'이라는 용어로 표현하도록 한다.If the battery power amount is identified as being equal to or greater than the threshold (S920: Y), the processor 150 may obtain driving information based on data acquired through the camera 120 and a plurality of sensors. In this case, the processor 150 may reflect only reliable data values under the identified battery state in obtaining driving information. Hereinafter, the amount of power required for the camera 120 or each of the plurality of sensors to acquire and output reliable data values will be expressed in terms of the 'required power amount' of the camera 120 or each of the plurality of sensors.

예를 들어, 프로세서(150)는 배터리의 전력량이 카메라(120)의 요구 전력량 이상인지 여부를 판단하고(S940), 배터리의 전력량이 카메라(120)의 요구 전력량 이상인 경우(S940: Y)에만 영상 데이터를 주행 정보에 반영할 수 있다(S941).For example, the processor 150 determines whether the amount of power of the battery is greater than or equal to the amount of power required by the camera 120 (S940), and only if the amount of power of the battery is greater than the amount of power required by the camera 120 (S940: Y) Data can be reflected in driving information (S941).

또한, 프로세서(150)는 배터리의 전력량이 거리 센서의 요구 전력량 이상인지 여부를 판단하고(S950), 배터리의 전력량이 거리 센서의 요구 전력량 이상인 경우(S950: Y)에만 거리 데이터를 주행 정보에 반영할 수 있다(S951).In addition, the processor 150 determines whether the amount of power of the battery is greater than or equal to the amount of power required by the distance sensor (S950), and reflects the distance data to the driving information only when the amount of power of the battery is greater than the amount of power required by the distance sensor (S950: Y). You can do it (S951).

또한, 프로세서(150)는 배터리의 전력량이 오도메트리 센서의 요구 전력량 이상인지 여부를 판단하고(S960), 배터리의 전력량이 오도메트리 센서의 요구 전력량 이상인 경우(S960: Y)에만 오도메트리 데이터를 주행 정보에 반영할 수 있다(S961).In addition, the processor 150 determines whether the power amount of the battery is more than the power amount required by the odometry sensor (S960), and only if the power amount of the battery is more than the power amount required by the odometry sensor (S960: Y) Data can be reflected in driving information (S961).

또한, 프로세서(150)는 배터리의 전력량이 관성 센서의 요구 전력량 이상인지 여부를 판단하고(S970), 배터리의 전력량이 관성 센서의 요구 전력량 이상인 경우(S970: Y)에만 관성 데이터를 주행 정보에 반영할 수 있다(S971).In addition, the processor 150 determines whether the amount of power in the battery is greater than or equal to the amount of power required by the inertial sensor (S970), and reflects the inertial data in the driving information only when the amount of power in the battery is greater than the amount of power required by the inertial sensor (S970: Y). You can do it (S971).

이어서, 프로세서(150)는 위와 같은 과정을 통해 반영된 데이터에 기초하여 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 획득할 수 있다(S980). 또한, 프로세서(150)는 획득된 주행 정보에 기초하여 요청 동작이 비 정상적으로 수행된 것으로 식별되면 비 정상적 동작과 관련된 가이드 UI 정보를 제공할 수 있다(S990).Subsequently, the processor 150 may obtain driving information within a threshold time based on the time when the control command is received based on the data reflected through the above process (S980). Additionally, if the processor 150 identifies that the requested operation was performed abnormally based on the acquired driving information, it may provide guide UI information related to the abnormal operation (S990).

도 10은 본 개시의 일 실시 예에 따른 로봇의 구성을 구체적으로 설명하기 위한 블록도이다.Figure 10 is a block diagram for specifically explaining the configuration of a robot according to an embodiment of the present disclosure.

도 10에 따르면, 로봇(100)은 통신 인터페이스(110), 카메라(120), 거리 센서(131), 오도메트리 센서(132), 관성 센서(133)를 포함하는 센서 모듈(130), 구동부(140), 프로세서(150), 배터리(160), 메모리(170) 및 사용자 인터페이스(180)를 포함할 수 있다. 도 10에 도시된 구성 중 도 2에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.According to FIG. 10, the robot 100 includes a communication interface 110, a camera 120, a distance sensor 131, an odometry sensor 132, a sensor module 130 including an inertial sensor 133, and a drive unit. It may include 140, processor 150, battery 160, memory 170, and user interface 180. Among the configurations shown in FIG. 10, detailed descriptions of those that overlap with those shown in FIG. 2 will be omitted.

거리 센서(131)는 거리 데이터를 획득할 수 있다. 구체적으로, 거리 센서(131)는 로봇(100)의 위치와 오브젝트의 위치 사이의 거리를 측정하고, 측정 결과에 기초하여 거리 데이터를 획득할 수 있다. 일 예에 따른 거리 센서(131)는 라이다(LIDAR, Light Detection And Ranging) 또는 TOF(Time of flight) 센서로 구현될 수 있으나, 이에 한정되는 것은 아니다.The distance sensor 131 may acquire distance data. Specifically, the distance sensor 131 may measure the distance between the position of the robot 100 and the position of the object and obtain distance data based on the measurement result. The distance sensor 131 according to one example may be implemented as a LIDAR (Light Detection And Ranging) or TOF (Time of Flight) sensor, but is not limited thereto.

오도메트리 센서(132)는 구동부(140)와 인접하여 배치될 수 있다. 오도메트리 센서(132)는 구동부(140)의 움직임을 물리적 또는 전자적 방법으로 센싱하여 구동부(140)의 움직임에 대응되는 오도메트리 데이터를 획득할 수 있다. 일 예에 따라 구동부(140)가 복수개 구비되는 경우 오도메트리 센서(132) 역시 구동부(140)와 같은 수만큼 구비될 수 있다. 다른 예에 따라 구동부(140)가 볼 타입으로 구현되는 경우라면, 볼 타입 구동부(140)의 기 설정된 회전 방향에 각각 대응되는 복수의 오도메트리 센서(132)가 구비될 수도 있다.The odometry sensor 132 may be placed adjacent to the driving unit 140. The odometry sensor 132 may acquire odometry data corresponding to the movement of the drive unit 140 by sensing the movement of the drive unit 140 using a physical or electronic method. According to one example, when a plurality of driving units 140 are provided, the odometry sensors 132 may also be provided in the same number as the driving units 140. According to another example, if the drive unit 140 is implemented as a ball type, a plurality of odometry sensors 132 may be provided, each corresponding to a preset rotation direction of the ball type drive unit 140.

관성 센서(133)는 관성 데이터를 획득하는 구성이다. 일 예에 따른 관성 센서(133)는 3축 가속도 센서와 3축 자이로 센서를 조합한 후 각각의 센서를 통해 획득된 센싱 데이터에 기초하여 관성 데이터를 출력할 수 있다. 이 경우 관성 센서(133)는 rolling, pitching 및 yawing의 정도에 관한 관성 데이터를 출력할 수 있다.The inertial sensor 133 is a component that acquires inertial data. The inertial sensor 133 according to one example may combine a 3-axis acceleration sensor and a 3-axis gyro sensor and then output inertial data based on sensing data acquired through each sensor. In this case, the inertial sensor 133 may output inertial data regarding the degree of rolling, pitching, and yawing.

배터리(160)는 로봇(100)에 포함된 구성에 전력을 공급하기 위한 구성이다. 배터리(160)는 충전 가능한 배터리로 구현될 수 있다. 예를 들어, 배터리(160)는 리튬 이온 배터리(Lithium-ion battery) 또는 리튬 폴리머 배터리(Lithium polymer battery) 중 적어도 하나로 구현될 수 있다. 프로세서(150)는 배터리(160)의 상태를 모니터링 및 관리하기 위하여 BMS(Battery Management System) 관련 기능을 수행할 수 있다.The battery 160 is configured to supply power to components included in the robot 100. Battery 160 may be implemented as a rechargeable battery. For example, the battery 160 may be implemented as at least one of a lithium-ion battery or a lithium polymer battery. The processor 150 may perform Battery Management System (BMS)-related functions to monitor and manage the state of the battery 160.

메모리(170)는 본 개시의 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리(170)에는 주행 정보 획득과 관련된 임계 시간, 요청 동작 수행 여부 판단에 관한 임계 값 및 카메라(120) 및 복수의 센서(131, 132, 133)가 각각 정상 동작하는 배터리(160)의 전력량에 관한 정보 등이 저장될 수 있다.The memory 170 may store data necessary for various embodiments of the present disclosure. For example, the memory 170 includes a threshold time related to obtaining driving information, a threshold value related to determining whether to perform the requested operation, and a battery 160 in which the camera 120 and the plurality of sensors 131, 132, and 133 are respectively operating normally. ) Information about the amount of power, etc. may be stored.

메모리(170)는 데이터 저장 용도에 따라 로봇(100)에 임베디드된 메모리 형태로 구현되거나, 로봇(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 로봇(100)의 구동을 위한 데이터의 경우 로봇(100)에 임베디드된 메모리에 저장되고, 로봇(100)의 확장 기능을 위한 데이터의 경우 로봇(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 로봇(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. 또한, 로봇(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.The memory 170 may be implemented as a memory embedded in the robot 100 or as a memory detachable from the robot 100 depending on the data storage purpose. For example, data for driving the robot 100 is stored in a memory embedded in the robot 100, and data for expansion functions of the robot 100 is stored in a memory that is detachable from the robot 100. It can be. Meanwhile, in the case of memory embedded in the robot 100, volatile memory (e.g., dynamic RAM (DRAM), static RAM (SRAM), or synchronous dynamic RAM (SDRAM), etc.), non-volatile memory (e.g. : OTPROM (one time programmable ROM), PROM (programmable ROM), EPROM (erasable and programmable ROM), EEPROM (electrically erasable and programmable ROM), mask ROM, flash ROM, flash memory (e.g. NAND flash or NOR flash, etc.) , a hard drive, or a solid state drive (SSD). In addition, in the case of memory that is removable from the robot 100, a memory card (e.g., compact flash (CF), SD (secure digital), Micro-SD (micro secure digital), Mini-SD (mini secure digital), xD (extreme digital), MMC (multi-media card), etc.), external memory that can be connected to a USB port (e.g. For example, it may be implemented in a form such as USB memory).

사용자 인터페이스(180)는 로봇(100)이 사용자와 인터렉션(Interaction)을 수행하는 데 관여하는 구성이다. 예를 들어 사용자 인터페이스(180)는 터치 스크린, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다. 프로세서(150)는 통신 인터페이스(110)를 통해 가이드 UI 정보를 사용자 단말로 전송하는 것 외에 사용자 인터페이스(180)를 통해 가이드 UI 정보를 제공할 수 있다. 이 경우, 프로세서(150)는 사용자 인터페이스(180)를 통해 입력된 사용자의 피드백에 기초하여 대체 동작을 실행할 수 있다.The user interface 180 is a component that helps the robot 100 interact with a user. For example, the user interface 180 may include at least one of a touch screen, a button, a jog dial, a switch, a microphone, or a speaker, but is not limited thereto. The processor 150 may provide guide UI information through the user interface 180 in addition to transmitting guide UI information to the user terminal through the communication interface 110. In this case, the processor 150 may execute an alternative operation based on the user's feedback input through the user interface 180.

도 11은 본 개시의 일 실시 예에 따른 제어 방법을 설명하기 위한 흐름도이다.Figure 11 is a flowchart for explaining a control method according to an embodiment of the present disclosure.

본 개시의 일 실시 예에 따른 제어 방법은 카메라를 통해 영상 데이터를 획득한다(S1110).The control method according to an embodiment of the present disclosure acquires image data through a camera (S1110).

이어서, 복수의 센서 중 적어도 하나의 센서를 통해 획득된 센싱 데이터 및 영상 데이터에 기초하여 로봇의 주행 정보를 획득한다(S1120).Next, the robot's driving information is obtained based on the sensing data and image data obtained through at least one sensor among the plurality of sensors (S1120).

이어서, 로봇의 주행 정보 중 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별한다(S1130).Next, among the robot's driving information, the driving information within a threshold time is identified based on the time when the control command is received (S1130).

이어서, 식별된 주행 정보에 기초하여 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별한다(S1140).Next, it is identified whether the operation corresponding to the control command was normally performed based on the identified driving information (S1140).

마지막으로, 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별되면 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 제공할 수 있다(S1150).Lastly, if the operation corresponding to the control command is identified as being performed abnormally, guide UI (User Interface) information related to the abnormal operation may be provided (S1150).

여기서, 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계(S1140)는 임계 시간 내에 획득된 영상 데이터에 기초한 로봇의 제1 이동 거리, 임계 시간 내에 거리 센서를 통해 획득된 로봇의 제2 이동 거리 및 임계 시간 내에 오도메트리(Odometry) 센서를 통해 획득된 로봇의 제3 이동 거리에 기초하여 임계 시간 동안 로봇의 이동 거리를 식별하는 단계 및 식별된 로봇의 이동 거리 및 제어 명령에 대응되는 이동 거리를 비교하여 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계를 포함할 수 있다.Here, the step of identifying whether the operation corresponding to the control command was performed normally (S1140) includes the first moving distance of the robot based on image data acquired within a critical time, and the second moving distance of the robot obtained through a distance sensor within the critical time. Identifying the moving distance of the robot during a critical time based on the moving distance and the third moving distance of the robot acquired through an odometry sensor within the critical time, and corresponding to the moving distance and control command of the identified robot. It may include comparing the movement distance to identify whether the operation corresponding to the control command was performed normally.

여기서, 로봇의 이동 거리를 식별하는 단계에서는 제1 이동 거리, 제2 이동 거리 및 제3 이동 거리 중 중간 값을 로봇의 이동 거리로 식별할 수 있다.Here, in the step of identifying the moving distance of the robot, the middle value among the first moving distance, the second moving distance, and the third moving distance may be identified as the moving distance of the robot.

여기서, 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계(S1140)는 식별된 이동 거리를 제1 이동 거리, 제2 이동 거리 및 제3 이동 거리 중 나머지 이동 거리 각각과 비교하여 제1 거리 편차 및 제2 거리 편차를 식별하는 단계 및 제1 거리 편차 또는 제2 거리 편차 중 적어도 하나가 제1 임계 값 이상인 경우 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별하는 단계를 포함할 수 있다.Here, the step of identifying whether the operation corresponding to the control command was performed normally (S1140) compares the identified movement distance with each of the remaining movement distances among the first movement distance, the second movement distance, and the third movement distance to determine the first movement distance. It may include identifying a distance deviation and a second distance deviation, and identifying that an operation corresponding to the control command is abnormally performed when at least one of the first distance deviation or the second distance deviation is greater than or equal to a first threshold value. there is.

또한, 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계(S1140)는 임계 시간 내에 획득된 영상 데이터에 기초한 로봇의 제1 회전 각도, 임계 시간 내에 관성 센서를 통해 획득된 로봇의 제2 회전 각도 및 임계 시간 내에 오도메트리(Odometry) 센서를 통해 획득된 로봇의 제3 회전 각도에 기초하여 임계 시간 동안 로봇의 회전 각도를 식별하는 단계 및 식별된 로봇의 회전 각도 및 제어 명령에 대응되는 회전 각도를 비교하여 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계를 포함할 수 있다.In addition, the step of identifying whether the operation corresponding to the control command was performed normally (S1140) includes the first rotation angle of the robot based on the image data acquired within the critical time, and the second rotation angle of the robot acquired through the inertial sensor within the critical time. Identifying a rotation angle of the robot during a critical time based on the rotation angle and a third rotation angle of the robot acquired through an odometry sensor within the critical time, and corresponding to the rotation angle and control command of the identified robot. It may include comparing rotation angles to identify whether the operation corresponding to the control command was normally performed.

여기서, 로봇의 회전 각도를 식별하는 단계에서는 제1 회전 각도, 제2 회전 각도 및 제3 회전 각도 중 중간 값을 로봇의 회전 각도로 식별할 수 있다.Here, in the step of identifying the rotation angle of the robot, the middle value among the first rotation angle, the second rotation angle, and the third rotation angle may be identified as the rotation angle of the robot.

여기서, 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계(S1140)는 식별된 회전 각도를 제1 회전 각도, 제2 회전 각도 및 제3 회전 각도 중 나머지 회전 각도 각각과 비교하여 제1 각도 편차 및 제2 각도 편차를 식별하는 단계 및 제1 각도 편차 또는 제2 각도 편차 중 적어도 하나가 제2 임계 값 이상인 경우 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별하는 단계를 포함할 수 있다.Here, the step of identifying whether the operation corresponding to the control command has been performed normally (S1140) is to compare the identified rotation angle with each of the remaining rotation angles among the first rotation angle, the second rotation angle, and the third rotation angle. It may include identifying the angle deviation and the second angle deviation, and identifying that the operation corresponding to the control command is abnormally performed when at least one of the first angle deviation or the second angle deviation is greater than or equal to a second threshold value. there is.

또한, 제어 방법은 영상 데이터에 기초한 로봇의 제1 흔들림 정보 및 제1 흔들림 정보가 획득된 시간과 동일한 시간 동안 관성 센서를 통해 획득된 흔들림 데이터에 기초한 로봇의 제2 흔들림 정보 정보를 비교하여 관성 센서의 동작이 정상적으로 수행되는지 여부를 식별하는 단계 및 관성 센서의 동작이 비 정상적으로 수행된 것으로 식별되면 관성 센서를 리셋하고, 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 사용자 단말로 전송하는 단계를 더 포함할 수 있다.In addition, the control method compares the first shake information of the robot based on image data and the second shake information of the robot based on shake data acquired through an inertial sensor for the same time as the time at which the first shake information was acquired. A step of identifying whether the operation of the inertial sensor is performed normally, and if the operation of the inertial sensor is identified as being performed abnormally, a step of resetting the inertial sensor and transmitting guide UI (User Interface) information related to the abnormal operation to the user terminal. More may be included.

또한, 가이드 UI 정보를 사용자 단말로 전송하는 단계(S1150)는 비 정상적 동작의 타입을 식별하고, 식별된 타입과 관련된 솔루션 정보를 획득하는 단계 및 솔루션 정보를 포함하는 가이드 UI 정보를 사용자 단말로 전송하는 단계를 포함할 수 있다.In addition, the step of transmitting guide UI information to the user terminal (S1150) includes identifying the type of abnormal operation, obtaining solution information related to the identified type, and transmitting guide UI information including the solution information to the user terminal. It may include steps.

또한, 로봇의 주행 정보를 획득하는 단계(S1120)는 배터리의 전력량이 임계 값 미만인 경우 카메라 및 복수의 센서를 통해 획득된 복수의 데이터 중 제1 개수의 데이터에 기초하여 주행 정보를 획득하는 단계 및 배터리의 전력량이 임계 값 이상인 경우 복수의 데이터 중 제1 개수보다 많은 제2 개수의 데이터에 기초하여 주행 정보를 획득하는 단계를 포함할 수 있다In addition, the step of acquiring driving information of the robot (S1120) includes acquiring driving information based on a first number of data among a plurality of data acquired through a camera and a plurality of sensors when the power amount of the battery is less than a threshold value; When the power amount of the battery is greater than or equal to the threshold, the method may include obtaining driving information based on a second number of data that is greater than the first number of the plurality of data.

한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 기존 로봇에 설치 가능한 어플리케이션 형태로 구현될 수 있다. Meanwhile, the methods according to various embodiments of the present disclosure described above may be implemented in the form of applications that can be installed on existing robots.

또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 기존 로봇에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다. Additionally, the methods according to various embodiments of the present disclosure described above can be implemented only by upgrading software or hardware for an existing robot.

또한, 상술한 본 개시의 다양한 실시 예들은 로봇에 구비된 임베디드 서버 또는 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.Additionally, the various embodiments of the present disclosure described above can also be performed through an embedded server provided in a robot or at least one external server.

예를 들어, 본 개시의 다양한 실시 예들은 클라우드 컴퓨팅(cloud computing)을 통해 구현될 수 있다. 즉, 본 개시의 다양한 실시 예들은 로봇(100) 자체에 탑재된 프로세서(150) 외에도 로봇(100)과 연결된 클라우드 서버 또는 클라우드 서버와 연결된 다른 전자 장치 등을 통해 구현될 수 있다.For example, various embodiments of the present disclosure may be implemented through cloud computing. That is, various embodiments of the present disclosure may be implemented through a cloud server connected to the robot 100 or other electronic devices connected to the cloud server, in addition to the processor 150 mounted on the robot 100 itself.

이에 따라, 로봇(100)이 비 정상적으로 동작하는 경우, 로봇(100)과 연결된 클라우드 서버가 로봇(100)의 비 정상적 동작을 식별하고, 이와 관련된 가이드 UI 정보를 사용자 단말로 전송할 수도 있으며, 클라우드 서버에 연결된 다른 전자 장치(예: TV, 에어컨디셔너 등)가 로봇(100)의 비 정상적 동작을 식별하고, 이와 관련된 가이드 UI 정보를 사용자 단말로 전송할 수도 있다.Accordingly, when the robot 100 operates abnormally, the cloud server connected to the robot 100 may identify the abnormal operation of the robot 100 and transmit related guide UI information to the user terminal, and the cloud server Another electronic device (e.g., TV, air conditioner, etc.) connected to may identify abnormal operation of the robot 100 and transmit related guide UI information to the user terminal.

한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서(150) 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.Meanwhile, the various embodiments described above may be implemented in a recording medium that can be read by a computer or similar device using software, hardware, or a combination thereof. In some cases, embodiments described herein may be implemented by the processor 150 itself. According to software implementation, embodiments such as procedures and functions described in this specification may be implemented as separate software modules. Each of the software modules may perform one or more functions and operations described herein.

한편, 상술한 본 개시의 다양한 실시 예들에 따른 로봇(100)의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 로봇(100)에서의 처리 동작을 특정 기기가 수행하도록 한다. Meanwhile, computer instructions for performing processing operations of the robot 100 according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium. . Computer instructions stored in such a non-transitory computer-readable medium, when executed by a processor of a specific device, cause the specific device to perform processing operations in the robot 100 according to the various embodiments described above.

비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.A non-transitory computer-readable medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as registers, caches, and memories. Specific examples of non-transitory computer-readable media may include CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, etc.

이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해 되어져서는 안될 것이다.In the above, preferred embodiments of the present disclosure have been shown and described, but the present disclosure is not limited to the specific embodiments described above, and may be used in the technical field pertaining to the disclosure without departing from the gist of the disclosure as claimed in the claims. Of course, various modifications can be made by those with the knowledge, and these modifications should not be understood individually from the technical ideas or perspectives of the present disclosure.

100: 로봇 110: 통신 인터페이스
120: 카메라 130: 센서 모듈
140: 구동부 150: 프로세서
100: robot 110: communication interface
120: camera 130: sensor module
140: driving unit 150: processor

Claims (20)

로봇에 있어서,
통신 인터페이스;
카메라;
복수의 센서를 포함하는 센서 모듈;
구동부; 및
상기 통신 인터페이스를 통해 사용자 단말로부터 수신된 제어 명령에 기초하여 상기 구동부를 제어하는 프로세서;를 포함하며,
상기 프로세서는,
상기 카메라를 통해 영상 데이터를 획득하고,
상기 복수의 센서 중 적어도 하나의 센서를 통해 획득된 센싱 데이터 및 상기 영상 데이터에 기초하여 상기 로봇의 주행 정보를 획득하고,
상기 로봇의 주행 정보 중 상기 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별하고,
상기 식별된 주행 정보에 기초하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하고,
상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별되면, 상기 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 상기 통신 인터페이스를 통해 상기 사용자 단말로 전송하는, 로봇.
In robots,
communication interface;
camera;
A sensor module including a plurality of sensors;
driving part; and
It includes a processor that controls the driving unit based on a control command received from the user terminal through the communication interface,
The processor,
Obtain image data through the camera,
Obtaining driving information of the robot based on sensing data and the image data obtained through at least one sensor among the plurality of sensors,
Among the driving information of the robot, driving information within a threshold time is identified based on the time when the control command is received,
Identify whether the operation corresponding to the control command was normally performed based on the identified driving information,
When the operation corresponding to the control command is identified as being performed abnormally, the robot transmits guide UI (User Interface) information related to the abnormal operation to the user terminal through the communication interface.
제1항에 있어서,
상기 센서 모듈은,
거리 센서; 및
오도메트리(Odometry) 센서;를 포함하며,
상기 프로세서는,
상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제1 이동 거리, 상기 임계 시간 내에 상기 거리 센서를 통해 획득된 상기 로봇의 제2 이동 거리 및 상기 임계 시간 내에 상기 오도메트리 센서를 통해 획득된 상기 로봇의 제3 이동 거리에 기초하여 상기 임계 시간 동안 상기 로봇의 이동 거리를 식별하고,
상기 식별된 상기 로봇의 이동 거리 및 상기 제어 명령에 대응되는 이동 거리를 비교하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는, 로봇.
According to paragraph 1,
The sensor module is,
distance sensor; and
Includes an odometry sensor,
The processor,
A first moving distance of the robot based on the image data acquired within the critical time, a second moving distance of the robot obtained through the distance sensor within the critical time, and a second moving distance obtained through the odometry sensor within the critical time Identifying the moving distance of the robot during the threshold time based on the third moving distance of the robot,
A robot that compares the identified movement distance of the robot and the movement distance corresponding to the control command to identify whether the operation corresponding to the control command was normally performed.
제2항에 있어서,
상기 프로세서는,
상기 제1 이동 거리, 상기 제2 이동 거리 및 상기 제3 이동 거리 중 중간 값을 상기 로봇의 이동 거리로 식별하는, 로봇.
According to paragraph 2,
The processor,
A robot that identifies a middle value among the first movement distance, the second movement distance, and the third movement distance as the movement distance of the robot.
제3항에 있어서,
상기 프로세서는,
상기 식별된 이동 거리를 상기 제1 이동 거리, 상기 제2 이동 거리 및 상기 제3 이동 거리 중 나머지 이동 거리 각각과 비교하여 제1 거리 편차 및 제2 거리 편차를 식별하고,
상기 제1 거리 편차 또는 제2 거리 편차 중 적어도 하나가 제1 임계 값 이상인 경우 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별하는, 로봇.
According to paragraph 3,
The processor,
Identifying a first distance deviation and a second distance deviation by comparing the identified movement distance with each of the remaining movement distances among the first movement distance, the second movement distance, and the third movement distance,
A robot that identifies that an operation corresponding to the control command is abnormally performed when at least one of the first distance deviation or the second distance deviation is greater than or equal to a first threshold value.
제1항에 있어서,
상기 센서 모듈은,
관성 센서; 및
오도메트리(Odometry) 센서;를 포함하며,
상기 프로세서는,
상기 프로세서는,
상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제1 회전 각도, 상기 임계 시간 내에 상기 관성 센서를 통해 획득된 상기 로봇의 제2 회전 각도 및 상기 임계 시간 내에 상기 오도메트리 센서를 통해 획득된 상기 로봇의 제3 회전 각도에 기초하여 상기 임계 시간 동안 상기 로봇의 회전 각도를 식별하고,
상기 식별된 상기 로봇의 회전 각도 및 상기 제어 명령에 대응되는 회전 각도를 비교하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는, 로봇.
According to paragraph 1,
The sensor module is,
inertial sensor; and
Includes an odometry sensor,
The processor,
The processor,
A first rotation angle of the robot based on the image data acquired within the threshold time, a second rotation angle of the robot obtained through the inertial sensor within the threshold time, and a second rotation angle obtained through the odometry sensor within the threshold time. Identifying the rotation angle of the robot during the threshold time based on the third rotation angle of the robot,
A robot that compares the identified rotation angle of the robot and the rotation angle corresponding to the control command to identify whether the operation corresponding to the control command was normally performed.
제5항에 있어서,
상기 프로세서는,
상기 제1 회전 각도, 상기 제2 회전 각도 및 상기 제3 회전 각도 중 중간 값을 상기 로봇의 회전 각도로 식별하는, 로봇.
According to clause 5,
The processor,
A robot that identifies a middle value among the first rotation angle, the second rotation angle, and the third rotation angle as the rotation angle of the robot.
제6항에 있어서,
상기 프로세서는,
상기 식별된 회전 각도를 상기 제1 회전 각도, 상기 제2 회전 각도 및 상기 제3 회전 각도 중 나머지 회전 각도 각각과 비교하여 제1 각도 편차 및 제2 각도 편차를 식별하고,
상기 제1 각도 편차 또는 제2 각도 편차 중 적어도 하나가 제2 임계 값 이상인 경우 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별하는, 로봇.
According to clause 6,
The processor,
Identifying a first angle deviation and a second angle deviation by comparing the identified rotation angle with each of the remaining rotation angles among the first rotation angle, the second rotation angle, and the third rotation angle,
A robot that identifies that an operation corresponding to the control command is abnormally performed when at least one of the first angle deviation or the second angle deviation is greater than or equal to a second threshold value.
제1항에 있어서,
상기 센서 모듈은,
관성 센서;를 포함하며,
상기 프로세서는,
상기 영상 데이터에 기초한 상기 로봇의 제1 흔들림 정보 및 상기 제1 흔들림 정보가 획득된 시간과 동일한 시간 동안 상기 관성 센서를 통해 획득된 흔들림 데이터에 기초한 상기 로봇의 제2 흔들림 정보 정보를 비교하여 상기 관성 센서의 동작이 정상적으로 수행되는지 여부를 식별하고,
상기 관성 센서의 동작이 비 정상적으로 수행된 것으로 식별되면, 상기 관성 센서를 리셋하고, 상기 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 상기 통신 인터페이스를 통해 상기 사용자 단말로 전송하는, 로봇.
According to paragraph 1,
The sensor module is,
Includes an inertial sensor;
The processor,
By comparing the first shake information of the robot based on the image data and the second shake information of the robot based on shake data acquired through the inertial sensor for the same time as the time at which the first shake information was acquired, the inertia Identify whether the sensor is operating normally,
When the operation of the inertial sensor is identified as abnormal, the robot resets the inertial sensor and transmits guide UI (User Interface) information related to the abnormal operation to the user terminal through the communication interface.
제1항에 있어서,
상기 프로세서는,
상기 비 정상적 동작의 타입을 식별하고, 상기 식별된 타입과 관련된 솔루션 정보를 획득하고,
상기 솔루션 정보를 포함하는 상기 가이드 UI 정보를 상기 통신 인터페이스를 통해 상기 사용자 단말로 전송하는, 로봇.
According to paragraph 1,
The processor,
Identifying a type of abnormal operation, obtaining solution information related to the identified type, and
A robot that transmits the guide UI information including the solution information to the user terminal through the communication interface.
제1항에 있어서,
배터리;를 더 포함하며,
상기 프로세서는,
상기 배터리의 전력량이 임계 값 미만인 경우 상기 카메라 및 상기 복수의 센서를 통해 획득된 복수의 데이터 중 제1 개수의 데이터에 기초하여 상기 주행 정보를 획득하고,
상기 배터리의 전력량이 임계 값 이상인 경우 상기 복수의 데이터 중 제1 개수보다 많은 상기 제2 개수의 데이터에 기초하여 상기 주행 정보를 획득하는, 로봇.
According to paragraph 1,
It further includes a battery;
The processor,
When the amount of power of the battery is less than a threshold value, obtain the driving information based on a first number of data among a plurality of data obtained through the camera and the plurality of sensors,
A robot that acquires the driving information based on the second number of data that is greater than the first number of the plurality of data when the amount of power of the battery is greater than a threshold value.
사용자 단말로부터 수신된 제어 명령에 기초하여 구동되는 로봇의 제어 방법에 있어서,
카메라를 통해 영상 데이터를 획득하는 단계;
복수의 센서 중 적어도 하나의 센서를 통해 획득된 센싱 데이터 및 상기 영상 데이터에 기초하여 상기 로봇의 주행 정보를 획득하는 단계;
상기 로봇의 주행 정보 중 상기 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별하는 단계;
상기 식별된 주행 정보에 기초하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계; 및
상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별되면, 상기 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 사용자 단말로 전송하는 단계;를 포함하는, 제어 방법.
In the control method of a robot driven based on a control command received from a user terminal,
Acquiring image data through a camera;
Obtaining driving information of the robot based on sensing data and the image data obtained through at least one sensor among a plurality of sensors;
Identifying driving information within a threshold time among the driving information of the robot based on the time when the control command is received;
Identifying whether an operation corresponding to the control command was normally performed based on the identified driving information; and
If the operation corresponding to the control command is identified as being performed abnormally, transmitting guide UI (User Interface) information related to the abnormal operation to the user terminal.
제11항에 있어서,
상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는,
상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제1 이동 거리, 상기 임계 시간 내에 거리 센서를 통해 획득된 상기 로봇의 제2 이동 거리 및 상기 임계 시간 내에 오도메트리(Odometry) 센서를 통해 획득된 상기 로봇의 제3 이동 거리에 기초하여 상기 임계 시간 동안 상기 로봇의 이동 거리를 식별하는 단계; 및
상기 식별된 상기 로봇의 이동 거리 및 상기 제어 명령에 대응되는 이동 거리를 비교하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계;를 포함하는, 제어 방법.
According to clause 11,
The step of identifying whether the operation corresponding to the control command was performed normally,
A first movement distance of the robot based on the image data acquired within the threshold time, a second movement distance of the robot obtained through a distance sensor within the threshold time, and an odometry sensor within the threshold time. identifying a moving distance of the robot during the threshold time based on the obtained third moving distance of the robot; and
A control method including; comparing the identified movement distance of the robot and the movement distance corresponding to the control command to identify whether the operation corresponding to the control command was normally performed.
제12항에 있어서,
상기 로봇의 이동 거리를 식별하는 단계는,
상기 제1 이동 거리, 상기 제2 이동 거리 및 상기 제3 이동 거리 중 중간 값을 상기 로봇의 이동 거리로 식별하는, 제어 방법.
According to clause 12,
The step of identifying the moving distance of the robot is,
A control method that identifies a middle value among the first movement distance, the second movement distance, and the third movement distance as the movement distance of the robot.
제13항에 있어서,
상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는,
상기 식별된 이동 거리를 상기 제1 이동 거리, 상기 제2 이동 거리 및 상기 제3 이동 거리 중 나머지 이동 거리 각각과 비교하여 제1 거리 편차 및 제2 거리 편차를 식별하는 단계; 및
상기 제1 거리 편차 또는 제2 거리 편차 중 적어도 하나가 제1 임계 값 이상인 경우 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별하는 단계;를 포함하는, 제어 방법.
According to clause 13,
The step of identifying whether the operation corresponding to the control command was performed normally,
identifying a first distance deviation and a second distance deviation by comparing the identified movement distance with each of the remaining movement distances among the first movement distance, the second movement distance, and the third movement distance; and
A control method comprising; identifying that an operation corresponding to the control command is abnormally performed when at least one of the first distance deviation or the second distance deviation is greater than or equal to a first threshold value.
제11항에 있어서,
상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는,
상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제1 회전 각도, 상기 임계 시간 내에 관성 센서를 통해 획득된 상기 로봇의 제2 회전 각도 및 상기 임계 시간 내에 오도메트리(Odometry) 센서를 통해 획득된 상기 로봇의 제3 회전 각도에 기초하여 상기 임계 시간 동안 상기 로봇의 회전 각도를 식별하는 단계; 및
상기 식별된 상기 로봇의 회전 각도 및 상기 제어 명령에 대응되는 회전 각도를 비교하여 상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계;를 포함하는, 제어 방법.
According to clause 11,
The step of identifying whether the operation corresponding to the control command was performed normally,
A first rotation angle of the robot based on the image data acquired within the critical time, a second rotation angle of the robot acquired through an inertial sensor within the critical time, and an odometry sensor within the critical time. identifying a rotation angle of the robot during the threshold time based on the obtained third rotation angle of the robot; and
Comparing the identified rotation angle of the robot and the rotation angle corresponding to the control command to identify whether the operation corresponding to the control command was normally performed. A control method comprising a.
제15항에 있어서,
상기 로봇의 회전 각도를 식별하는 단계는,
상기 제1 회전 각도, 상기 제2 회전 각도 및 상기 제3 회전 각도 중 중간 값을 상기 로봇의 회전 각도로 식별하는, 제어 방법.
According to clause 15,
The step of identifying the rotation angle of the robot is,
A control method that identifies a middle value among the first rotation angle, the second rotation angle, and the third rotation angle as the rotation angle of the robot.
제16항에 있어서,
상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는,
상기 식별된 회전 각도를 상기 제1 회전 각도, 상기 제2 회전 각도 및 상기 제3 회전 각도 중 나머지 회전 각도 각각과 비교하여 제1 각도 편차 및 제2 각도 편차를 식별하는 단계; 및
상기 제1 각도 편차 또는 제2 각도 편차 중 적어도 하나가 제2 임계 값 이상인 경우 상기 제어 명령에 대응되는 동작이 비 정상적으로 수행된 것으로 식별하는 단계;를 포함하는, 제어 방법.
According to clause 16,
The step of identifying whether the operation corresponding to the control command was performed normally,
identifying a first angle deviation and a second angle deviation by comparing the identified rotation angle with each of the remaining rotation angles among the first rotation angle, the second rotation angle, and the third rotation angle; and
A control method comprising; identifying that an operation corresponding to the control command is abnormally performed when at least one of the first angle deviation or the second angle deviation is greater than or equal to a second threshold value.
제11항에 있어서,
상기 영상 데이터에 기초한 상기 로봇의 제1 흔들림 정보 및 상기 제1 흔들림 정보가 획득된 시간과 동일한 시간 동안 관성 센서를 통해 획득된 흔들림 데이터에 기초한 상기 로봇의 제2 흔들림 정보 정보를 비교하여 상기 관성 센서의 동작이 정상적으로 수행되는지 여부를 식별하는 단계; 및
상기 관성 센서의 동작이 비 정상적으로 수행된 것으로 식별되면, 상기 관성 센서를 리셋하고, 상기 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 상기 사용자 단말로 전송하는 단계;를 더 포함하는, 제어 방법.
According to clause 11,
The inertial sensor compares the first shake information of the robot based on the image data and the second shake information of the robot based on shake data acquired through an inertial sensor for the same time as the time at which the first shake information was acquired. Identifying whether the operation is performed normally; and
If it is identified that the operation of the inertial sensor is abnormal, resetting the inertial sensor and transmitting guide UI (User Interface) information related to the abnormal operation to the user terminal; a control method further comprising: .
제11항에 있어서,
가이드 UI 정보를 사용자 단말로 전송하는 단계는,
상기 비 정상적 동작의 타입을 식별하고, 상기 식별된 타입과 관련된 솔루션 정보를 획득하는 단계; 및
상기 솔루션 정보를 포함하는 상기 가이드 UI 정보를 상기 사용자 단말로 전송하는 단계;를 포함하는, 제어 방법.
According to clause 11,
The step of transmitting guide UI information to the user terminal is:
Identifying a type of the abnormal operation and obtaining solution information related to the identified type; and
A control method comprising: transmitting the guide UI information including the solution information to the user terminal.
제11항에 있어서,
상기 로봇의 주행 정보를 획득하는 단계는,
배터리의 전력량이 임계 값 미만인 경우 상기 카메라 및 상기 복수의 센서를 통해 획득된 복수의 데이터 중 제1 개수의 데이터에 기초하여 상기 주행 정보를 획득하는 단계; 및
상기 배터리의 전력량이 임계 값 이상인 경우 상기 복수의 데이터 중 제1 개수보다 많은 상기 제2 개수의 데이터에 기초하여 상기 주행 정보를 획득하는 단계;를 포함하는, 제어 방법.
According to clause 11,
The step of acquiring driving information of the robot is,
When the amount of battery power is less than a threshold, acquiring the driving information based on a first number of data among a plurality of data acquired through the camera and the plurality of sensors; and
A control method comprising; acquiring the driving information based on the second number of data that is greater than the first number of the plurality of data when the amount of power of the battery is greater than or equal to a threshold value.
KR1020220057702A 2022-05-11 2022-05-11 Robot and controlling method thereof KR20230158668A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220057702A KR20230158668A (en) 2022-05-11 2022-05-11 Robot and controlling method thereof
PCT/KR2023/003610 WO2023219253A1 (en) 2022-05-11 2023-03-17 Robot and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220057702A KR20230158668A (en) 2022-05-11 2022-05-11 Robot and controlling method thereof

Publications (1)

Publication Number Publication Date
KR20230158668A true KR20230158668A (en) 2023-11-21

Family

ID=88730556

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220057702A KR20230158668A (en) 2022-05-11 2022-05-11 Robot and controlling method thereof

Country Status (2)

Country Link
KR (1) KR20230158668A (en)
WO (1) WO2023219253A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100645816B1 (en) * 2005-07-22 2006-11-23 엘지전자 주식회사 A device for travel distance equalization of roving robot
JP2008178959A (en) * 2007-01-26 2008-08-07 Canon Electronics Inc Mobile robot system and charge station
KR20110046291A (en) * 2009-10-26 2011-05-04 한국전자통신연구원 Robot driving method and device
WO2011052827A1 (en) * 2009-10-30 2011-05-05 주식회사 유진로봇 Slip detection apparatus and method for a mobile robot
KR102423573B1 (en) * 2020-01-08 2022-07-20 엘지전자 주식회사 A robot cleaner using artificial intelligence and control method thereof

Also Published As

Publication number Publication date
WO2023219253A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
US20190253626A1 (en) Target tracking method and aircraft
KR102555374B1 (en) Electronic device and control method thereof
TWI543019B (en) Automatic device display orientation detection
WO2019119201A1 (en) Gimbal control method, unmanned aerial vehicle, gimbal, and storage medium
US11592825B2 (en) Electronic device and operation method therefor
JP6896103B2 (en) Systems and methods for controlling vehicle motion
CN106104203A (en) The distance detection method of a kind of mobile object, device and aircraft
KR102042046B1 (en) An Autonomous System and Method based on Distributed Cloud Environment
WO2016031105A1 (en) Information-processing device, information processing method, and program
US9477302B2 (en) System and method for programing devices within world space volumes
EP3680754B1 (en) Orientation of an electronic device toward a user using utterance localization and image processing
US11904853B2 (en) Apparatus for preventing vehicle collision and method thereof
WO2019047415A1 (en) Trajectory tracking method and apparatus, storage medium and processor
US9812020B2 (en) Electronic device and unmanned aerial vehicle control method
US20160080644A1 (en) Movement assisting device, movement assisting method, and computer program product
KR102491386B1 (en) Electronic device and control method thereof
KR102498597B1 (en) Electronic device and method for identifying object based on setting region-of-interest by using the same
JP2020513627A (en) Intelligent guidance method and device
KR20230158668A (en) Robot and controlling method thereof
US20230195113A1 (en) Robot and method for controlling same
Zamanakos et al. Energy-aware design of vision-based autonomous tracking and landing of a UAV
WO2012096282A1 (en) Controller, model device and control method
KR20190094677A (en) Apparatus and method for recognizing voice and face based on changing of camara mode
KR102619973B1 (en) Electronic device for scheduling a plurality of tasks and operating method thereof
WO2019233299A1 (en) Mapping method and apparatus, and computer readable storage medium