KR20230158668A - Robot and controlling method thereof - Google Patents
Robot and controlling method thereof Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 34
- 230000002159 abnormal effect Effects 0.000 claims abstract description 50
- 238000004891 communication Methods 0.000 claims abstract description 30
- 230000033001 locomotion Effects 0.000 claims description 118
- 238000010586 diagram Methods 0.000 description 18
- 230000015654 memory Effects 0.000 description 18
- 230000009471 action Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000005096 rolling process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 208000012661 Dyskinesia Diseases 0.000 description 2
- 230000010485 coping Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000003915 liquefied petroleum gas Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- WHXSMMKQMYFTQS-UHFFFAOYSA-N Lithium Chemical compound [Li] WHXSMMKQMYFTQS-UHFFFAOYSA-N 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 239000003502 gasoline Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 229910052744 lithium Inorganic materials 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/06—Control stands, e.g. consoles, switchboards
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/006—Controls for manipulators by means of a wireless system for controlling one or several manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
- B25J5/007—Manipulators mounted on wheels or on carriages mounted on wheels
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1689—Teleoperation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0223—Control 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/027—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0272—Control 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
본 발명은 로봇 및 그 제어 방법에 관한 것이다.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
사용자(10)는 사용자 단말(200)을 통해 로봇(100)을 원격 제어할 수 있다. 사용자(10)는 로봇(100)을 구동하기 위한 제어 명령을 사용자 단말(200)을 통해 로봇(100)으로 전송할 수 있다. 여기서, 사용자 단말(200)은 전자 장치로 구현될 수 있다. 예를 들어, 사용자 단말(200)은 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 등 다양한 형태로 구현될 수 있으나 이에 한정되는 것은 아니다.The
한편, 로봇(100)이 서비스를 제공하는 과정에서 로봇(100)의 동작에 이상이 발생할 수 있다. 이러한 동작 이상은 로봇(100)에 포함된 하드웨어적 구성의 문제, 로봇(100)에 탑재된 소프트웨어의 문제 또는 로봇(100)의 주행 환경이나 주변 오브젝트에 의해 발생하는 문제 중 적어도 하나와 관련될 수 있다.Meanwhile, while the
예를 들어, 로봇(100)이 주행하는 노면의 상태가 양호하지 않을 경우 로봇(100)은 사용자 단말(200)로부터 수신된 제어 명령에 대응되는 동작을 정확하게 수행하지 못할 수 있다. 가령 제어 명령이 일정 거리를 직진하는 동작을 지시하는 경우 미끄러운 노면을 주행하는 로봇(100)은 직진 동작을 수행하지 못하고 노면 상을 미끄러지며 주행하는 비 정상적 동작을 수행하게 된다.For example, if the condition of the road surface on which the
이 경우 로봇(100)은 상술한 비 정상적 동작이 발생한 것을 식별하고, 식별된 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 사용자 단말(200)로 전송할 수 있다. 사용자(10)는 사용자 단말(200)을 통해 가이드 UI 정보를 제공받을 수 있으며, 이를 통해 로봇(100)의 비 정상적 동작에 대한 적절한 조치를 취할 수 있게 된다.In this case, the
이와는 별개로 로봇(100)은 비 정상적 동작과 관련된 대체 동작을 식별할 수 있다. 여기서, 대체 동작이란 비 정상적 동작을 야기한 원인에 대처하기 위하여 로봇(100)이 수행해야할 동작을 의미할 수 있다. 로봇(100)은 식별된 대체 동작을 통하여 사용자 단말(200)로부터 수신된 제어 명령에 대응되는 동작을 할 수 있게 된다.Separately from this, the
이하에서는, 사용자의 제어 명령에 대응되는 동작을 정상적으로 수행했는지 여부를 식별하고, 비 정상적 동작이 식별되면 해당 동작에 관련된 가이드 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
통신 인터페이스(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
카메라(120)는 로봇(100)의 주변 환경에 대응되는 영상 데이터를 획득하는 구성이다. 카메라(120)는 오브젝트에 의해 반사되어 수신되는 가시광 기타 광학 신호를 이미지 센서로 포커싱하는 렌즈 및 가시광 기타 광학 신호를 감지할 수 있는 이미지 센서를 포함할 수 있다. 여기서, 이미지 센서는 복수의 픽셀로 구분되는 2D의 픽셀 어레이를 포함할 수 있다.The
프로세서(150)는 가시광선 또는 적외선 등 다양한 파장대의 광학 신호를 카메라(120)의 렌즈를 통해 수신하고, 수신된 광학 신호를 카메라(120)의 이미지 센서를 통해 처리하여 영상 데이터를 획득할 수 있다. 또한, 일 예에 따른 카메라(120)는 뎁스(Depth) 카메라로 구현될 수 있으며, 이 경우 프로세서(150)는 카메라(120)를 통해 뎁스 이미지를 포함하는 영상 데이터를 획득할 수 있다.The
한편, 카메라(120)는 복수의 렌즈 및 복수의 이미지 센서를 포함하는 카메라 모듈의 형태로 구현될 수 있다. 일 예에 따르면, 카메라(120)는 두 개의 렌즈와 두 개의 이미지 센서를 포함하는 스테레오 카메라(stereo camera)일 수 있으나 이에 한정되는 것은 아니다. Meanwhile, the
센서 모듈(130)은 복수의 센서를 포함하는 구성이다. 여기서, 복수의 센서는 거리 센서, 오도메트리(Odometry) 센서, 관성 센서, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서, UV(ultra violet) 센서 또는 마이크 중의 적어도 하나를 포함할 수도 있으나 이에 한정되는 것은 아니다.The
구동부(140)는 로봇(100)을 구동하는 구성이다. 구동부(140)는 프로세서(150)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있다. 또한, 구동부(140)는 로봇(100)의 구성 중 독립적으로 움직이는 부재를 구동하여 로봇(100)의 자세를 변경할 수도 있다. The driving
일 예에 따른 구동부(140)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(134)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입, 볼 타입 등)에 따라 변형 실시될 수 있다.The driving
프로세서(150)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(145)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(150)는 통신 인터페이스(110), 카메라(120), 센서 모듈(130) 및 구동부(140)와 연결되어 로봇(100)의 동작을 제어할 수 있다.The
일 실시 예에 따라 프로세서(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
프로세서(150)는 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(150)는 SRAM 등의 휘발성 메모리를 포함할 수 있다.The
프로세서(150)는 통신 인터페이스(110)를 통해 사용자 단말로부터 수신된 제어 명령에 기초하여 구동부(140)를 제어할 수 있다. 여기서, 제어 명령은 로봇(100)이 이동해야 할 거리 정보 또는 로봇(100)이 회전해야 할 각도 정보 중 적어도 하나를 포함할 수 있다.The
이하에서는, 프로세서(150)가 구동부(140)를 제어함에 따라 이루어지며, 사용자 단말로부터 수신된 제어 명령에 대응되는 로봇(100)의 동작을 '요청 동작'이라는 용어로 표현하도록 한다.Hereinafter, the operation of the
프로세서(150)는 카메라(120)를 통해 로봇(100)의 주변 환경에 대응되는 이미지를 포함하는 영상 데이터를 획득할 수 있다. 또한, 프로세서(150)는 센서 모듈(130)에 포함된 복수의 센서 중 적어도 하나의 센서를 통해 센싱 데이터를 획득할 수 있다.The
그 다음, 프로세서(150)는 영상 데이터 및 센싱 데이터에 기초하여 로봇(100)의 주행 정보를 획득할 수 있다. 여기서, 로봇(100)의 주행 정보는 로봇(100)의 이동 거리 정보, 회전 각도 정보 또는 흔들림 정보 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.Next, the
이와 관련하여, 프로세서(150)는 임계 시간 내에 획득된 영상 데이터에 기초한 로봇(100)의 제1 이동 거리, 임계 시간 내에 센서 모듈(130)에 포함된 거리 센서를 통해 획득된 로봇(100)의 제2 이동 거리 및 임계 시간 내에 센서 모듈(130)에 포함된 오도메트리 센서를 통해 획득된 로봇(100)의 제3 이동 거리를 각각 식별할 수 있다.In this regard, the
또한, 프로세서(150)는 임계 시간 내에 획득된 영상 데이터에 기초한 로봇(100)의 제1 회전 각도, 임계 시간 내에 센서 모듈(130)에 포함된 관성 센서를 통해 획득된 로봇(100)의 제2 회전 각도 및 임계 시간 내에 센서 모듈(130)에 포함된 오도메트리 센서를 통해 획득된 로봇(100)의 제3 회전 각도를 각각 식별할 수 있다.In addition, the
나아가, 프로세서(150)는 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별할 수 있다. 일 예에 따른 임계 시간은 제어 명령에 포함된 설정 정보에 기초하여 결정되거나, 프로세서(150)에 의해 수신된 제어 명령에 기초하여 결정될 수도 있다. 이상에서는 프로세서(150)가 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 식별하는 것으로 설명하였으나, 다른 예에 따르면 프로세서(150)가 제어 명령이 수신된 시점을 기준으로 임계 시간 내에 획득된 영상 데이터와 센싱 데이터에 기초하여 주행 정보를 획득하는 것도 가능하다.Furthermore, the
프로세서(150)는 식별된 주행 정보에 기초하여 제어 명령에 대응되는 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수 있다. 일 예에 따르면, 프로세서(150)는 제어 명령에 포함된 로봇(100)이 이동해야 할 거리 정보와 주행 정보에 포함된 이동 거리 정보를 비교하거나 제어 명령에 포함된 로봇(100)의 회전해야 할 각도 정보와 주행 정보에 포함된 회전 각도 정보를 비교하여 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수도 있다. 여기서, 프로세서(150)는 주행 정보에 기초하여 로봇(100)이 요청 동작을 완벽하게 수행하지는 못하였더라도 로봇(100)이 수행한 동작이 요청 동작에 비하여 임계 수준 이상의 유사도를 갖는 경우 요청 동작이 정상적으로 수행된 것으로 식별할 수 있다.The
이와 관련하여, 프로세서(150)는 로봇(100)의 제1 이동 거리, 로봇(100)의 제2 이동 거리 및 로봇(100)의 제3 이동 거리 중 중간 값을 로봇(100)의 이동 거리로 식별하고, 식별된 로봇(100)의 이동 거리와 제어 명령에 포함된 로봇(100)이 이동해야 할 거리를 비교하여 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수 있다.In this regard, the
또한, 프로세서(150)는 로봇(100)의 제1 회전 각도, 로봇(100)의 제2 회전 각도 및 로봇(100)의 제3 회전 각도 중 중간 값을 로봇(100)의 회전 각도로 식별하고, 식별된 로봇의 회전 각도와 제어 명령에 포함된 로봇(100)이 회전해야 할 각도를 비교하여 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수 있다.In addition, the
다른 예에 따르면, 프로세서(150)는 주행 정보에 포함된 다양한 타입의 정보와 관련하여 각기 다른 센서로부터 획득된 정보를 서로 비교하여 요청 동작이 정상적으로 수행되었는지 여부를 식별할 수도 있다. 여기서, 프로세서(150)는 각기 다른 센서로부터 획득된 정보가 임계 수준 이상의 유사도를 갖는 경우 요청 동작이 정상적으로 수행된 것으로 식별할 수 있다.According to another example, the
이와 관련하여, 프로세서(150)는 제1 이동 거리, 제2 이동 거리 및 제3 이동 거리 중 중간 값을 로봇(100)의 이동 거리로 식별하고, 로봇(100)의 이동 거리와 나머지 두 이동 거리 각각을 비교하여 제1 거리 편차 및 제2 거리 편차를 식별할 수 있다. 프로세서(150)는 제1 거리 편차 또는 제2 거리 편차 중 적어도 하나가 제1 임계 값 이상인 경우 요청 동작이 비 정상적으로 수행된 것으로 식별할 수 있다.In this regard, the
또한, 프로세서(150)는 제1 회전 각도, 제2 회전 각도 및 제3 회전 각도 중 중간 값을 로봇(100)의 회전 각도로 식별하고, 로봇(100)의 회전 각도와 나머지 두 회전 각도 각각을 비교하여 제1 각도 편차 및 제2 각도 편차를 식별할 수 있다. 프로세서(150)는 제1 각도 편차 또는 제2 각도 편차 중 적어도 하나가 제2 임계 값 이상인 경우 요청 동작이 비 정상적으로 수행된 것으로 식별할 수 있다.Additionally, the
만일 요청 동작이 비 정상적으로 수행된 것으로 식별되는 경우, 프로세서(150)는 식별된 비 정상적 동작과 관련된 가이드 UI(User Interface) 정보를 통신 인터페이스(110)를 통해 사용자 단말로 전송할 수 있다. 여기서, 가이드 UI 정보는 비 정상적 동작의 발생, 비 정상적 동작의 타입, 비 정상적 동작의 발생 원인 또는 비 정상적 동작에 대한 사용자 행동 요령 중 적어도 하나에 관한 정보를 포함할 수 있으나 이에 한정되는 것은 아니다.If the requested operation is identified as being performed abnormally, the
나아가, 프로세서(150)는 영상 데이터에 기초한 로봇(100)의 제1 흔들림 정보를 획득할 수 있다. 또한, 프로세서(150)는 제1 흔들림 정보가 획득된 시간과 동일한 시간 동안 센서 모듈(130)에 포함된 관성 센서를 통해 획득된 흔들림 데이터에 기초하여 로봇(100)의 제2 흔들림 정보를 획득할 수 있다.Furthermore, the
프로세서(150)는 제1 흔들림 정보와 제2 흔들림 정보를 비교하여 관성 센서의 동작이 정상적으로 수행되는지 여부를 식별할 수 있다. 만일 관성 센서의 동작이 비 정상적으로 수행된 것으로 식별되면 프로세서(150)는 관성 센서를 리셋할 수 있다. 또한, 프로세서(150)는 관성 센서의 비 정상적 동작과 관련된 가이드 UI 정보를 통신 인터페이스(110)를 통해 사용자 단말로 전송할 수 있다.The
프로세서(150)는 로봇(100)의 동작이 비 정상적으로 수행된 것으로 식별하는 경우, 비 정상적 동작의 타입을 식별할 수 있다. 나아가, 프로세서(150)는 식별된 타입과 관련된 솔루션 정보를 획득할 수 있다. 여기서, 솔루션 정보는 비 정상적 동작의 타입에 대응되는 문제 원인, 비 정상적 동작의 타입에 대응되는 사용자 행동 요령 또는 비 정상적 동작의 타입에 대응되는 로봇(100)의 대체 동작에 관한 정보 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다. 프로세서(150)는 솔루션 정보를 포함하는 가이드 UI 정보를 통신 인터페이스(110)를 통해 사용자 단말로 전송할 수 있다.When the
또한, 로봇(100)은 배터리를 더 포함할 수 있다. 프로세서(150)는 배터리의 전력량이 임계 값 미만인 경우 카메라(120) 및 복수의 센서를 통해 획득된 복수의 데이터 중 제1 개수의 데이터에 기초하여 주행 정보를 획득할 수 있다. 배터리의 전력 량이 임계 값 이상인 경우 프로세서(150)는 복수의 데이터 중 제1 개수보다 많은 제2 개수의 데이터에 기초하여 주행 정보를 획득할 수 있다. 여기서, 임계 값은 카메라(120) 및 복수의 센서 각각의 특성 정보에 따라 결정되는 값일 수 있다.Additionally, the
도 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
구체적으로, 이동 거리 정보(310)는 카메라(120)를 통해 획득된 영상 데이터를 기초로 하여 산출된 이동 거리 정보(311), 거리 센서를 통해 획득된 거리 데이터를 기초로 하여 산출된 이동 거리 정보(312) 및 오도메트리 센서를 통해 획득된 오도메트리 데이터를 기초로 하여 산출된 이동 거리 정보(313)을 포함할 수 있다. Specifically, the moving
프로세서(150)는 제어 명령 수신 시 획득된 영상 데이터와 제어 명령 수신 후 임계 시간 도과 시 획득된 영상 데이터를 비교하여 각 영상 데이터에서 각각 매칭되는 복수의 픽셀(또는 픽셀 그룹)이 임계 시간을 전후로 얼마나 이동 하였는지에 대한 복수의 벡터 정보를 식별하고, 복수의 벡터의 크기에 대한 평균 값에 기초하여 영상 데이터 기반 이동 거리 정보(311)를 획득할 수 있다.The
프로세서(150)는 SLAM(Simultaneous Localization and Mapping) 방식에 기초하여 거리 데이터 기반 이동 거리 정보(312)를 획득할 수 있다. 예를 들어, 프로세서(150)는 제어 명령 수신 시 거리 센서를 통해 획득된 거리 데이터에 기초하여 제어 명령 수신시 로봇(100)의 위치를 식별하고, 제어 명령 수신 후 임계 시간 도과시 거리 센서를 통해 획득된 거리 데이터에 기초하여 임계 시간 도과 후 로봇(100)의 위치를 식별하여 식별된 두 위치 사이의 거리를 거리 데이터 기반 이동 거리 정보(312)를 획득할 수 있다.The
프로세서(150)는 제어 명령 수신시로부터 임계 시간이 도과할 때까지 오도메트리 센서를 통해 구동부(140)의 움직임에 관련된 오도메트리 데이터를 획득할 수 있다. 예를 들어, 구동부(140)가 좌측 바퀴 및 우측 바퀴를 포함하는 경우 프로세서(150)는 임계 시간동안 좌측 바퀴가 회전한 정도에 관련된 제1 오도메트리 데이터 및 임계 시간동안 우측 바퀴가 회전한 정도에 관련된 제2 오도메트리 데이터를 획득할 수 있다. 또한, 프로세서(150)는 제1 오도메트리 데이터, 제2 오도메트리 데이터 및 구동부(140)에 대한 특성 정보에 기초하여 오도메트리 데이터 기반 이동 거리 정보(313)를 획득할 수 있다.The
일 예에 따른 프로세서(150)는 각 이동 거리 정보(311, 312, 313) 중에서 중간 값을 로봇(100)의 이동 거리 정보로 식별할 수 있다. 도 3에 따르면, 영상 데이터 기반 이동 거리 정보(311)는 3m, 거리 데이터 기반 이동 거리 정보(312)는 2.9m, 오도메트리 데이터 기반 이동 거리 정보(313)는 5m를 각각 지시하므로, 프로세서(150)는 영상 데이터 기반 이동 거리 정보(311)를 로봇(100)의 이동 거리 정보로 식별할 수 있다.The
회전 각도 정보(320)는 카메라(120)를 통해 획득된 영상 데이터를 기초로 하여 산출된 회전 각도 정보(321), 관성 센서를 통해 획득된 관성 데이터를 기초로 하여 산출된 회전 각도 정보(322) 및 오도메트리 센서를 통해 획득된 오도메트리 데이터를 기초로 하여 산출된 회전 각도 정보(323)를 포함할 수 있다.
프로세서(150)는 제어 명령 수신 시 획득된 영상 데이터와 제어 명령 수신 후 임계 시간 도과 시 획득된 영상 데이터를 비교하여 각 영상 데이터에서 각각 매칭되는 복수의 픽셀(또는 픽셀 그룹)이 임계 시간을 전후로 얼마나 이동 하였는지에 대한 복수의 벡터 정보를 식별하고, 복수의 벡터의 방향에 대한 평균 값에 기초하여 영상 데이터 기반 회전 각도 정보(321)를 획득할 수 있다.The
프로세서(150)는 제어 명령 수신시로부터 임계 시간이 도과할 때까지 관성 센서를 통해 획득된 관성 데이터에 기초하여 관성 데이터 기반 회전 각도 정보(322)를 획득할 수 있다. 예를 들어, 회전 각도 정보(320)는 로봇(100)의 주행면을 기준으로 로봇(100) 회전한 정도를 지시하는 정보이므로, 프로세서(150)는 관성 센서를 통해 획득된 관성 데이터 중 로봇(100)의 주행면과 수직한 축을 기준으로 로봇(100)이 회전한 정도(yawing)에 관한 관성 데이터에 기초하여 관성 데이터 기반 회전 각도 정보(322)를 획득할 수 있으나 이에 한정되는 것은 아니다.The
프로세서(150)는 제어 명령 수신시로부터 임계 시간이 도과할 때까지 오도메트리 센서를 통해 획득된 제1 오도메트리 데이터, 제2 오도메트리 데이터 및 구동부(140)에 대한 특성 정보에 기초하여 오도메트리 데이터 기반 회전 각도 정보(323)를 획득할 수 있다. 예를 들어, 프로세서(150)는 제1 오도메트리 데이터에 의해 식별된 구동부(140)의 움직임이 제2 오도메트리 데이터에 의해 식별된 구동부(140)의 움직임보다 큰 경우 로봇(100)이 우측 방향으로 회전한 것으로 식별할 수 있으며, 이때 회전 각도는 제1 오도메트리 데이터 및 제2 오도메트리 데이터가 각각 지시하는 구동부(140)의 움직임의 차이 값에 기초하여 결정될 수 있다.The
일 예에 따른 프로세서(150)는 각 회전 각도 정보(321, 322, 323) 중에서 중간 값을 로봇(100)의 회전 각도 정보로 식별할 수 있다. 도 3에 따르면, 영상 데이터 기반 회전 각도 정보(321)는 30도, 관성 데이터 기반 회전 각도 정보(322)는 50도, 오도메트리 데이터 기반 회전 각도 정보(323)는 40도를 각각 지시하므로, 프로세서(150)는 오도메트리 데이터 기반 회전 각도 정보(323)를 로봇(100)의 회전 각도 정보로 식별할 수 있다.The
흔들림 정보(330)는 카메라(120)를 통해 획득된 영상 데이터를 기초로 하여 산출된 흔들림 정보(331) 및 관성 센서를 통해 획득된 관성 데이터를 기초로 하여 산출된 흔들림 정보(332)를 포함할 수 있다. 여기서, 흔들림 정보(330)는 로봇(100)의 rolling, pitching 및 yawing의 정도에 관한 정보를 포함할 수 있으나 이에 한정되지 않는다.The shaking
프로세서(150)는 제어 명령 수신 시 획득된 영상 데이터와 제어 명령 수신 후 임계 시간 도과 시 획득된 영상 데이터를 비교하여 각 영상 데이터에서 각각 매칭되는 복수의 픽셀(또는 픽셀 그룹)이 임계 시간을 전후로 얼마나 이동 하였는지에 대한 복수의 벡터 정보를 식별하고, 복수의 벡터의 크기에 대한 분산 값에 기초하여 영상 데이터 기반 흔들림 정보(331)를 획득할 수 있다.The
프로세서(150)는 제어 명령 수신시로부터 임계 시간이 도과할 때까지 관성 센서를 통해 획득된 관성 데이터에 기초하여 관성 데이터 기반 흔들림 정보(332)를 획득할 수 있다. 예를 들어, 프로세서(150)는 관성 센서를 통해 획득되며, 기 설정된 축을 기준으로 로봇(100)이 흔들린 정도에 각각 대응되는 관성 데이터에 기초하여 관성 데이터 기반 흔들림 정보(332)를 획득할 수 있다. 기 설정된 축이 3개 축인 경우, 일 예에 따른 프로세서(150)는 rolling, pitching 및 yawing 값의 평균 값에 기초하여 관성 데이터 기반 흔들림 정보(332)를 획득할 수 있다.The
일 예에 따른 프로세서(150)는 각 흔들림 정보(331, 332)의 평균 값을 로봇(100)의 흔들림 정보로 식별할 수 있다. 도 3에 따르면, 영상 데이터 기반 흔들림 정보(331)는 200, 관성 데이터 기반 흔들림 정보(332)는 300을 각각 지시하므로, 프로세서(150)는 250을 로봇(100)의 흔들림 정도로 식별할 수 있다.The
도 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
프로세서(150)는 로봇(100)의 구동에 따라 카메라(120)로부터 획득된 영상 데이터를 분석할 수 있다(S410). 예를 들어, 프로세서(150)는 영상 데이터에 기초하여 로봇(100)의 이동 거리 정보를 획득하고, 영상 데이터에 기초하여 로봇(100)의 회전 각도 정보를 획득하며, 영상 데이터에 기초하여 로봇(100)의 흔들림 정보를 획득할 수 있다.The
일 예에 따라 로봇(100)이 머리부와 몸체부로 구성된 경우, 프로세서(150)는 로봇(100)의 머리부에 구비된 관성 센서(133)를 통해 획득된 관성 데이터에 기초하여 로봇(100)의 머리부의 움직임에 대한 흔들림 정보를 획득할 수 있다(S421). 또한, 프로세서(150)는 로봇(100)의 몸체부에 구비된 관성 센서(133)를 통해 획득된 관성 데이터에 기초하여 로봇(100)의 몸체부의 움직임에 대한 흔들림 정보를 획득할 수 있다(S422).According to one example, when the
프로세서(150)는 거리 센서(131)를 통해 획득된 거리 데이터를 SLAM 방식으로 처리하여 로봇(100)의 위치 변화를 계산할 수 있다(S430). 이를 통해 프로세서(150)는 거리 데이터 기반의 이동 거리 정보를 획득할 수 있다.The
프로세서(150)는 오도메트리 센서(132)를 통해 획득된 오도메트리 데이터에 기초하여 구동부(140)의 움직임을 통해 예상되는 로봇(100)의 움직임을 계산할 수 있다(S440). 이를 통해 프로세서(150)는 오도메트리 데이터 기반 이동 거리 정보 및 오도메트리 데이터 기반 회전 각도 정보를 획득할 수 있게 된다.The
프로세서(150)는 배터리(160)의 상태에 기초하여 로봇(100)이 저전력 상태인지 여부 및 식별된 배터리의 상태 하에서 각 센서가 정상적으로 동작하는지 여부를 파악할 수 있다(S450).The
프로세서(150)는 카메라(120), 복수의 센서(131, 132, 133) 및 배터리(160)로부터 획득된 정보에 기초하여 요청 동작 수행 여부를 판단할 수 있다(S460). 만일 요청 동작이 충분히 수행되지 않은 경우, 프로세서(150)는 로봇(100)의 비 정상적 동작의 타입을 식별하고, 식별된 타입과 관련된 솔루션 정보를 제공할 수 있다(S470). 여기서, 프로세서(150)가 솔루션 정보를 포함하는 가이드 UI 정보를 통신 인터페이스(110)를 통해 사용자 단말로 전송함으로써 솔루션 정보를 제공할 수도 있으나, 로봇(100)이 스스로 솔루션 정보에 대응되는 UI를 제공할 수도 있다.The
이어서, 프로세서(150)는 솔루션 정보에 기초하여 비 정상적 동작의 타입에 대응되는 로봇(100)의 대체 동작 실행 가능 여부를 판단한다(S480). 예를 들어, 프로세서(150)는 비 정상적 동작의 타입에 기초하여 사용자의 개입 없이 로봇(100) 스스로 비 정상적 동작에 대한 대체 동작을 실행하여 문제를 해결할 수 있는지 여부를 판단할 수 있다.Next, the
만일 대체 동작 실행이 가능하다면(S480: Y) 프로세서(150)는 솔루션 정보에 대응되는 대체 동작을 실행하도록 구동부(140)를 제어할 수 있다(S491). 만일 대체 동작 실행이 불가능하다면(S480: N) 프로세서(150)는 구동부(140)의 동작을 중지한 후 사용자 단말로부터 후속 제어 명령이 수신될 때까지 로봇(100)을 대기 상태로 제어할 수 있다(S492).If execution of the alternative operation is possible (S480: Y), the
도 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
또한, 프로세서(150)는 구동부(140)의 움직임을 통해 예상되는 로봇(100) 움직임 계산(S440)을 통해 오도메트리 데이터 기반 이동 거리(513) 및 오도메트리 데이터 기반 회전 각도(518)를 계산할 수 있으며, 로봇(100) 머리부의 움직임에 대한 흔들림 정보 획득(S421) 및 로봇(100) 몸체의 움직임에 대한 흔들림 정보 획득(S422)을 통해 관성 데이터 기반 흔들림 정도(515) 및 관성 데이터 기반 회전 각도(517)를 계산할 수 있다.In addition, the
이어서, 프로세서(150)는 상술한 방식으로 계산한 로봇(100)의 이동 거리, 로봇(100)의 회전 각도 및 로봇(100)의 흔들림 정도를 포함하는 주행 정보에 기초하여 요청 동작 수행 여부를 판단하고, 요청 동작이 정상적으로 수행되지 않은 경우 비 정상적 동작에 대응되는 가이드 UI 정보를 제공할 수 있다(520).Subsequently, the
이 과정에서, 프로세서(150)는 각 센서의 이상 동작 여부 파악(S450)을 통해 획득된 주행 정보 내에서 요청 동작 수행 여부 판단에 활용될 정보를 식별할 수 있다. 예를 들어, 식별된 배터리 상태 하에서 카메라(120)가 정상적으로 동작하지 못하는 경우, 프로세서(150)는 영상 데이터 기반 이동 거리(511), 영상 데이터 기반 흔들림 정도(514) 및 영상 데이터 기반 회전 각도(516)를 제외한 주행 정보에 기초하여 요청 동작 수행 여부를 판단할 수 있다. In this process, the
또한, 프로세서(150)는 로봇(100)이 저전력 상태인지 식별할 수 있다(519). 만일 로봇(100)이 저전력 상태인 것으로 식별되는 경우(519: Y), 프로세서(150)는 저전력 상태 경고 정보 및 로봇(100) 구동 중단 정보를 가이드 UI 정보에 포함시키고, 로봇(100)이 구동하지 않도록 구동부(140)를 제어할 수 있다(530).Additionally, the
만일 로봇(100)이 저전력 상태가 아닌 것으로 식별되는 경우(519: N), 프로세서는 주행 정보에 기초하여 요청 동작 수행 여부를 판단할 수 있다(520).If the
일 예에 따른 프로세서(150) 식별된 이동 거리(511, 512, 513) 중 중간 값을 식별하고, 식별된 중간 값 및 중간 값을 제외한 나머지 이동 거리와의 편차 비율을 계산할 수 있다. 프로세서(150)는 편차 비율이 임계 비율 이상인지에 기초하여 요청 동작의 수행 정도를 식별하고, 식별된 수행 정도를 출력하는 가이드 UI 정보를 획득할 수 있다(521).The
일 예에 따른 프로세서(150)는 식별된 흔들림 정도(514, 515)의 평균 값을 식별하고, 평균 값과 식별된 흔들림 정도(514, 515) 각각과의 편차 비율을 계산할 수 있다. 프로세서(150)는 편차 비율이 임계 비율 이상인지에 기초하여 요청 동작의 수행 정도를 식별하고, 식별된 수행 정도를 출력하는 가이드 UI 정보를 획득할 수 있다(522).The
일 예에 따른 프로세서(150)는 식별된 회전 각도(516, 517, 518) 중 중간 값을 식별하고, 식별된 중간 값 및 중간 값을 제외한 나머지 회전 각도와의 편차 비율을 계산할 수 있다. 프로세서(150)는 편차 비율이 임계 비율 이상인지에 기초하여 요청 동작의 수행 정도를 식별하고, 식별된 수행 정도를 출력하는 가이드 UI 정보를 획득할 수 있다(523).The
마지막으로, 프로세서(150)는 획득된 가이드 UI 정보를 사용자 단말로 전송할 수 있다(540). 로봇(100)이 저전력 상태인 것으로 식별되는 경우(519: Y), 프로세서(150)는 저전력 상태 경고 정보 및 로봇(100) 구동 중단 정보를 포함하는 UI 정보를 사용자 단말로 전송할 수 있다.Finally, the
도 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
프로세서(150)는 오도메트리 데이터에 기초하여 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리를 각각 계산할 수 있다. 일 예에 따른 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값 이상인 것으로 식별되면 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수 있다.The
프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 아닌 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 비율에 기초하여 요청 동작이 정상적으로 수행되었는지 판단할 수도 있으나 설명의 편의상 도 6a 및 도 6b와 관련하여서는 프로세서(150)가 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이에 기초하여 요청 동작이 정상적으로 수행되었는지 판단하는 것으로 상정하고 설명하도록 한다.The
한편, 프로세서(150)는 제어 명령(610)에 기초한 로봇(100)이 이동해야 할 거리(5m)와 오도메트리 데이터에 기초한 양 바퀴(141, 142)의 회전량(7m, 5.5m)을 비교하여 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수도 있다. 예를 들어, 프로세서(150)는 양 바퀴(141, 142)의 회전량(7m, 5.5m) 중 어느 하나라도 제어 명령(610)에 기초한 로봇(100)이 이동해야 할 거리(5m)보다 제3 임계 값(예: 1.5m) 이상 큰 값을 갖는 것으로 식별되면 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수 있다.Meanwhile, the
또한, 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값보다 큰 제2 임계 값 미만인 경우 비 정상적 동작의 타입을 '미끄러짐'으로 식별하고, 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값보다 큰 제2 임계 값 이상인 경우 비 정상적 동작의 타입을 '이물질 끼임'으로 식별할 수 있다.In addition, the
도 6a에 따르면, 사용자 단말로부터 제어 명령(610)을 수신한 로봇(100)은 미끄러운 주행면 상을 이동할 수 있다. 일 예에 따른 프로세서(150)는 우측 바퀴(141)가 7m 회전한 것으로 식별하고(611), 좌측 바퀴(142)가 5.5m 회전한 것으로 식별할 수 있다(612). 이 경우 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값(예: 1m) 이상인 것에 기초하여 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수 있다.According to FIG. 6A, the
또한, 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제2 임계 값(예: 3m) 미만인 것에 기초하여 비 정상적 동작의 타입이 '미끄러짐'인 것으로 식별하고, 식별된 타입에 대응되는 솔루션 정보(620)를 획득할 수 있다. 예를 들어, 미끄러짐에 대처하기 위한 솔루션 정보(620)는 로봇(100)의 이동 속도를 제어 명령(610)에 대응되는 0.2m/s보다 느린 0.1m/s로 감소시키는 정보를 포함할 수 있으나 이에 한정되는 것은 아니다.In addition, the
도 6b에 따르면, 사용자 단말로부터 제어 명령(630)을 수신한 로봇(100)은 주행면 상의 이물질(60)을 통과하여 이동할 수 있다. 여기서, 이물질(60)은 구동부(140)의 동작에 간섭을 일으킬 수 있는 오브젝트(예: 헝겊)일 수 있다. According to FIG. 6B, the
일 예에 따른 프로세서(150) 우측 바퀴(141)가 5m 회전한 것으로 식별하고(631), 좌측 바퀴(142)가 0.5m 회전한 것으로 식별할 수 있다(632). 이 경우 프로세서(150)는 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제1 임계 값(예: 1m) 이상인 것에 기초하여 요청 동작이 정상적으로 수행되지 않은 것으로 식별할 수 있다.According to one example, the
또한, 프로세서(150)는 우측 바퀴(141)의 이동 거리 및 좌측 바퀴(142)의 이동 거리의 차이가 제2 임계 값(예: 3m) 이상인 것에 기초하여 비 정상적 동작의 타입이 '이물질 끼임'인 것으로 식별하고, 식별된 타입에 대응되는 솔루션 정보(640)를 획득할 수 있다. 예를 들어, 이물질 끼임에 대처하기 위한 솔루션 정보(640)는 이물질이 끼인 바퀴(142)를 제어 명령(630)에 따른 회전 방향과 반대 방향으로 회전시킨 후, 제어 명령(630)에 따른 회전 방향으로 회전하도록 제어하는 정보를 포함할 수 있으나 이에 한정되는 것은 아니다.In addition, the
도 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
도 7a에 따르면, 프로세서(150)는 로봇(100)의 주기적 흔들림을 감지할 수 있다(710). 로봇(100)이 주행하는 과정에서 주기적으로 rolling, pitching 또는 yawing이 식별된다면 이는 주행면의 상태에서 기인한 흔들림이 아닌 로봇(100)의 제어 알고리즘 또는 관성 센서(133)의 에러에서 기인한 흔들림일 가능성이 높으므로, 프로세서(150)는 로봇(100)의 주행을 중단하고(721) 관성 센서(133)를 리셋할 수 있다(722).According to FIG. 7A, the
이에 더하여, 프로세서(150)는 로봇(100)의 제어 알고리즘을 리셋할 수도 있으며, 통신 인터페이스(110)를 통해 제어 알고리즘 또는 관성 센서(133)의 에러를 지시하는 가이드 UI 정보를 사용자 단말로 전송할 수도 있다.In addition, the
도 7b에 따르면, 프로세서(150)는 로봇(100)의 간헐적 흔들림을 감지할 수 있다(730). 로봇이 주행하는 과정에서 간헐적으로 rolling, pitching 또는 yawing이 식별된다면 이는 주행면의 상태에서 기인한 흔들림일 가능성이 높으므로, 프로세서(150)는 로봇(100)이 감속되도록 구동부(140)를 제어할 수 있다(741).According to FIG. 7B, the
이와 동시에, 프로세서(150)는 카메라(120)를 통해 획득되는 영상 데이터의 분석 방식을 조정(내지는 변경)할 수 있다(742). 예를 들어, 프로세서(150)는 영상 데이터 내에서 장애물 또는 요철을 식별하는 데 관여하는 민감도를 향상시킬 수 있다. 이를 통해 로봇(100)은 양호하지 않은 상태의 주행면을 보다 원활하게 이동할 수 있게 된다.At the same time, the
도 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
프로세서(150)는 제어 명령이 수신된 시점을 기준으로 제1 임계 시간 내의 주행 정보를 획득할 수 있다. 획득된 주행 정보에는 머리부(100-1)에 대한 흔들림 정보 및 몸체부(100-2)에 대한 흔들림 정보는 물론 카메라(120)를 통해 획득된 영상 데이터에 기초한 로봇(100)의 흔들림 정보도 포함되어 있을 수 있다.The
예를 들어, 프로세서(150)는 영상 데이터에 기초하여 식별된 로봇(100)의 흔들림 정도는 '약'인 것으로 식별하고(811), 관성 데이터에 기초하여 식별된 머리부(100-1)의 흔들림 정도는 '약'인 것으로 식별하며(812), 관성 데이터에 기초하여 식별된 몸통부(100-2)의 흔들림 정도는 '강'인 것으로 식별할 수 있다(813). 식별된 흔들림의 정도가 동일하지 않은 상황에 기초하여, 프로세서(150)는 관성 센서(133-1, 133-2) 중 적어도 하나에 에러가 발생한 것으로 식별할 수 있다.For example, the
프로세서(150)는 에러가 발생한 관성 센서를 식별하기 위해 머리부(100-1)가 몸체부(100-2)와 별도로 움직이지 않도록 구동부(143)를 제어하고(821), 로봇(100)의 주행이 중단되도록 구동부(141, 142)를 제어할 수 있다(822). 또한, 프로세서(150)는 구동부(141, 142, 143)에 대한 제어 시점을 기준으로 제2 임계 시간 내에 카메라(120) 및 관성 센서(133-1, 133-2)로부터 획득된 데이터에 기초하여 로봇(100)의 흔들림 정보를 다시 획득할 수 있다.The
로봇(100)의 주행이 중단되었기 때문에, 프로세서(150)가 영상 데이터에 기초한 로봇(100)의 흔들림은 식별되지 않을 수 있다(831). 머리부(100-1)에 구비된 관성 센서(133-1)에 에러가 발생하지 않은 경우라면 관성 데이터에 기초한 머리부(100-1)의 흔들림 역시 식별되지 않을 수 있다. 반면, 몸체부(100-2)에 구비된 관성 센서(133-2)에 에러가 발생한 경우 관성 데이터에 기초한 몸체부(100-2)의 흔들림은 '강'으로 식별될 수 있다.Because the running of the
이 경우 프로세서(150)는 몸체부(100-2)에 구비된 관성 센서(133-2)에 에러가 발생한 것으로 식별하고, 해당 관성 센서(133-2)의 에러에 관련된 가이드 UI 정보를 사용자 단말로 전송하도록 통신 인터페이스(110)를 제어할 수 있다. In this case, the
나아가, 프로세서(150)는 에러가 발생한 관성 센서(133-2)에 대한 리셋 이력에 기초하여 해당 관성 센서(133-2)에 고장이 발생한 것으로 식별할 수 있다. 예를 들어, 프로세서(150)는 에러가 발생한 관성 센서(133-2)가 임계 기간 내에 임계 횟수 이상 리셋된 것으로 식별되면 해당 센서(133-2)에 고장이 발생한 것으로 식별하고, 고장에 관한 가이드 UI 정보를 사용자 단말로 전송하도록 통신 인터페이스(110)를 제어할 수 있다.Furthermore, the
도 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
만일 배터리의 전력량이 임계 값 미만인 것으로 식별되면(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
만일 배터리의 전력량이 임계 값 이상인 것으로 식별되면(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
예를 들어, 프로세서(150)는 배터리의 전력량이 카메라(120)의 요구 전력량 이상인지 여부를 판단하고(S940), 배터리의 전력량이 카메라(120)의 요구 전력량 이상인 경우(S940: Y)에만 영상 데이터를 주행 정보에 반영할 수 있다(S941).For example, the
또한, 프로세서(150)는 배터리의 전력량이 거리 센서의 요구 전력량 이상인지 여부를 판단하고(S950), 배터리의 전력량이 거리 센서의 요구 전력량 이상인 경우(S950: Y)에만 거리 데이터를 주행 정보에 반영할 수 있다(S951).In addition, the
또한, 프로세서(150)는 배터리의 전력량이 오도메트리 센서의 요구 전력량 이상인지 여부를 판단하고(S960), 배터리의 전력량이 오도메트리 센서의 요구 전력량 이상인 경우(S960: Y)에만 오도메트리 데이터를 주행 정보에 반영할 수 있다(S961).In addition, the
또한, 프로세서(150)는 배터리의 전력량이 관성 센서의 요구 전력량 이상인지 여부를 판단하고(S970), 배터리의 전력량이 관성 센서의 요구 전력량 이상인 경우(S970: Y)에만 관성 데이터를 주행 정보에 반영할 수 있다(S971).In addition, the
이어서, 프로세서(150)는 위와 같은 과정을 통해 반영된 데이터에 기초하여 제어 명령이 수신된 시점을 기준으로 임계 시간 내의 주행 정보를 획득할 수 있다(S980). 또한, 프로세서(150)는 획득된 주행 정보에 기초하여 요청 동작이 비 정상적으로 수행된 것으로 식별되면 비 정상적 동작과 관련된 가이드 UI 정보를 제공할 수 있다(S990).Subsequently, the
도 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
거리 센서(131)는 거리 데이터를 획득할 수 있다. 구체적으로, 거리 센서(131)는 로봇(100)의 위치와 오브젝트의 위치 사이의 거리를 측정하고, 측정 결과에 기초하여 거리 데이터를 획득할 수 있다. 일 예에 따른 거리 센서(131)는 라이다(LIDAR, Light Detection And Ranging) 또는 TOF(Time of flight) 센서로 구현될 수 있으나, 이에 한정되는 것은 아니다.The
오도메트리 센서(132)는 구동부(140)와 인접하여 배치될 수 있다. 오도메트리 센서(132)는 구동부(140)의 움직임을 물리적 또는 전자적 방법으로 센싱하여 구동부(140)의 움직임에 대응되는 오도메트리 데이터를 획득할 수 있다. 일 예에 따라 구동부(140)가 복수개 구비되는 경우 오도메트리 센서(132) 역시 구동부(140)와 같은 수만큼 구비될 수 있다. 다른 예에 따라 구동부(140)가 볼 타입으로 구현되는 경우라면, 볼 타입 구동부(140)의 기 설정된 회전 방향에 각각 대응되는 복수의 오도메트리 센서(132)가 구비될 수도 있다.The
관성 센서(133)는 관성 데이터를 획득하는 구성이다. 일 예에 따른 관성 센서(133)는 3축 가속도 센서와 3축 자이로 센서를 조합한 후 각각의 센서를 통해 획득된 센싱 데이터에 기초하여 관성 데이터를 출력할 수 있다. 이 경우 관성 센서(133)는 rolling, pitching 및 yawing의 정도에 관한 관성 데이터를 출력할 수 있다.The
배터리(160)는 로봇(100)에 포함된 구성에 전력을 공급하기 위한 구성이다. 배터리(160)는 충전 가능한 배터리로 구현될 수 있다. 예를 들어, 배터리(160)는 리튬 이온 배터리(Lithium-ion battery) 또는 리튬 폴리머 배터리(Lithium polymer battery) 중 적어도 하나로 구현될 수 있다. 프로세서(150)는 배터리(160)의 상태를 모니터링 및 관리하기 위하여 BMS(Battery Management System) 관련 기능을 수행할 수 있다.The
메모리(170)는 본 개시의 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리(170)에는 주행 정보 획득과 관련된 임계 시간, 요청 동작 수행 여부 판단에 관한 임계 값 및 카메라(120) 및 복수의 센서(131, 132, 133)가 각각 정상 동작하는 배터리(160)의 전력량에 관한 정보 등이 저장될 수 있다.The
메모리(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
사용자 인터페이스(180)는 로봇(100)이 사용자와 인터렉션(Interaction)을 수행하는 데 관여하는 구성이다. 예를 들어 사용자 인터페이스(180)는 터치 스크린, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다. 프로세서(150)는 통신 인터페이스(110)를 통해 가이드 UI 정보를 사용자 단말로 전송하는 것 외에 사용자 인터페이스(180)를 통해 가이드 UI 정보를 제공할 수 있다. 이 경우, 프로세서(150)는 사용자 인터페이스(180)를 통해 입력된 사용자의 피드백에 기초하여 대체 동작을 실행할 수 있다.The
도 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
이에 따라, 로봇(100)이 비 정상적으로 동작하는 경우, 로봇(100)과 연결된 클라우드 서버가 로봇(100)의 비 정상적 동작을 식별하고, 이와 관련된 가이드 UI 정보를 사용자 단말로 전송할 수도 있으며, 클라우드 서버에 연결된 다른 전자 장치(예: TV, 에어컨디셔너 등)가 로봇(100)의 비 정상적 동작을 식별하고, 이와 관련된 가이드 UI 정보를 사용자 단말로 전송할 수도 있다.Accordingly, when the
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(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
한편, 상술한 본 개시의 다양한 실시 예들에 따른 로봇(100)의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 로봇(100)에서의 처리 동작을 특정 기기가 수행하도록 한다. Meanwhile, computer instructions for performing processing operations of the
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(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.
상기 센서 모듈은,
거리 센서; 및
오도메트리(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.
상기 프로세서는,
상기 제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.
상기 프로세서는,
상기 식별된 이동 거리를 상기 제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.
상기 센서 모듈은,
관성 센서; 및
오도메트리(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.
상기 프로세서는,
상기 제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.
상기 프로세서는,
상기 식별된 회전 각도를 상기 제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 흔들림 정보가 획득된 시간과 동일한 시간 동안 상기 관성 센서를 통해 획득된 흔들림 데이터에 기초한 상기 로봇의 제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.
상기 프로세서는,
상기 비 정상적 동작의 타입을 식별하고, 상기 식별된 타입과 관련된 솔루션 정보를 획득하고,
상기 솔루션 정보를 포함하는 상기 가이드 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 개수보다 많은 상기 제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.
상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는,
상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제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.
상기 로봇의 이동 거리를 식별하는 단계는,
상기 제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.
상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는,
상기 식별된 이동 거리를 상기 제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.
상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는,
상기 임계 시간 내에 획득된 상기 영상 데이터에 기초한 상기 로봇의 제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.
상기 로봇의 회전 각도를 식별하는 단계는,
상기 제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.
상기 제어 명령에 대응되는 동작이 정상적으로 수행되었는지 여부를 식별하는 단계는,
상기 식별된 회전 각도를 상기 제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.
상기 영상 데이터에 기초한 상기 로봇의 제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: .
가이드 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.
상기 로봇의 주행 정보를 획득하는 단계는,
배터리의 전력량이 임계 값 미만인 경우 상기 카메라 및 상기 복수의 센서를 통해 획득된 복수의 데이터 중 제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.
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)
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 |
-
2022
- 2022-05-11 KR KR1020220057702A patent/KR20230158668A/en unknown
-
2023
- 2023-03-17 WO PCT/KR2023/003610 patent/WO2023219253A1/en unknown
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 |