Patent Description:
Recently, electronic devices in various types are being developed and distributed, and in particular, along with active research going on in the field of robots, the distribution rate of household robots in various types other than industrial robots is on the increase.

When developing a robot device, in a logging method based on texts, there is a problem that the amount of logs increases exponentially according to the operation time, as there is a great variety of components included in the robot device.

In a log file generated according to a logging method based on texts, replay of the operation history is not easy, and the log file is also inappropriate for searching a part wherein a problem occurred between operations.

Also, in a log file generated according to a conventional logging method, there is a problem that the log file is rather inappropriate for a developing environment for a robot device, such as a separate compiling process being required.

Accordingly, there have been various demands for a logging method wherein replay of the operation history is possible in an easy and fast manner, and a separate compiling process is not required.

<CIT> describes systems and methods for monitoring and controlling vehicles. <CIT> describes navigating semi-autonomous mobile robots. <CIT> describes an autonomous vehicle research system. <CIT> describes a general purpose robotics operating system.

The disclosure was devised for addressing the aforementioned need, and the purpose of the disclosure is in providing a robot device that generates and stores data according to the operation of the robot device, and replays based on the data, and a control method therefor.

A robot device according to claim <NUM> of the claims appended hereto is provided.

Here, the instruction data may be data in a robot programming language format for controlling at least one of a driving distance, a driving direction, or a driving speed of the robot device, and the processor may control hardware elements of the robot device based on the data in the robot programming language format and generate the action.

Here, the sensing data of the sensor may include operation data generated in the hardware elements as the action occurs, and the map data may include information on an object in a specific place wherein the robot device is located, and the information on the object may include at least one of location information, size information, shape information, or characteristic information of the object.

Further, the event may include at least one of a feedback notifying that the sensing data corresponding to the action occurred in the robot device does not belong to the threshold range, an instruction controlling the hardware elements of the robot device such that the sensing data corresponding to the action belongs to the threshold range, or an event notifying an element wherein an error occurred among the hardware elements of the robot device based on the sensing data corresponding to the action.

Also, the processor may, based on a test mode being executed, replay the action based on the instruction data stored in the memory and the sensing data stored in the memory corresponding to the instruction data, or replay the action based on the instruction data stored in the memory and the sensing data received from the server corresponding to the instruction data.

In addition, the processor may convert the instruction data and the sensing data into data in a robot programming language format and store the converted data in the memory, and transmit the data to the server via the communication interface.

A robot device system according to claim <NUM> of the claims appended hereto is also provided.

Here, the server may receive instruction data and sensing data corresponding to each of a plurality of actions from the robot device, and identify a threshold range of each of the plurality of actions based on the received data.

Meanwhile, a control method for a robot device according to claim <NUM> of the claims appended hereto is provided.

Here, the instruction data may be data in a robot programming language format for controlling at least one of a driving distance, a driving direction, or a driving speed of the robot device, and the control method may further include the step of controlling hardware elements of the robot device based on the data in the robot programming language format and generating the action.

Here, the sensing data may include operation data generated in the hardware elements as the action occurs, and the map data may include information on an object in a specific place wherein the robot device is located, and the information on the object may include at least one of location information, size information, shape information, or characteristic information of the object.

Also, the control method according to an embodiment may further include the step of, based on a test mode being executed, replaying the action based on the stored instruction data and the stored sensing data corresponding to the instruction data, or replaying the action based on the instruction data stored in the memory and the sensing data received from the server corresponding to the instruction data.

In addition, the step of storing may include the steps of converting the instruction data and the sensing data into data in a robot programming language format and storing the converted data.

As described above, according to the various embodiments of the disclosure, a log file can be stored when an action of the robot device occurs.

Also, by using a log file of a low capacity, a part that drove differently from what was predicted can be replayed easily.

In addition, by using a robot programming language, the driving history of the electronic device can be replayed without a separate interpreter.

<FIG> is a block diagram illustrating a configuration of a robot device according to an embodiment of the disclosure.

According to what is illustrated in <FIG>, a robot device <NUM> according to an embodiment of the disclosure may mean machines in various forms that have the capability of performing a work function by themselves. As an example, a robot may mean a smart device that detects the surrounding environment in real time based on a sensor, a camera, etc., and collects information and operates autonomously, other than simple repetitive functions.

However, this is merely an example, and the disclosure is obviously not limited thereto. The various embodiments of the disclosure may be implemented through an electronic device. Here, the electronic device may be implemented as devices in various forms such as a user terminal device, a display device, a set-top box, a tablet personal computer (PC), a smart phone, an e-book reader, a desktop PC, a laptop PC, a workstation, a server, a personal digital assistant (PDA), a portable multimedia player (PMP), an MP3 player, a kiosk, etc. However, these are merely examples, and the electronic device may also be implemented as electronic devices in various types such as a wearable device falling under at least one form among an accessory-type device (e.g.: a watch, a ring, a bracelet, an ankle bracelet, a necklace, glasses, a contact lens, or a head-mounted-device (HMD)), and a device integrated with fabrics or clothing (e.g.: electronic clothing), a robot including an operation part, a projector, a server, etc. Hereinafter, for the convenience of explanation, description will be made on the assumption of a case wherein the various embodiments of the disclosure are implemented in the robot device <NUM>.

The robot device <NUM> may include an operation part including an actuator or a motor. Here, the operation part may include a wheel, a brake, etc., and the robot may be implemented as a mobile robot that can move in a specific place by itself by using the operation part. For example, if it is determined that there is an obstacle in the front, the electronic device <NUM> may rotate its main body to the right side or the left side and then make the main body go forward, or make the main body go backward, by using the operation part.

Also, the operation part can obviously move a component (e.g., a robot joint) of the robot for replacing the functions of a human arm or hand, other than the main body. The robot device <NUM> according to an embodiment of the disclosure may generate or change an action of the robot device <NUM> by using the operation part. Here, the action may include the moving and the movement of the robot device <NUM>. For example, the robot device <NUM> may drive or rotate the robot device <NUM> by controlling the operation part. As another example, the robot device <NUM> may perform operations such as moving an external object, or gripping an external object by controlling the operation part. That is, the action can obviously include various operations and functions that the robot device <NUM> can perform.

Meanwhile, the robot device <NUM> may be divided into an industrial use, a medical use, a household use, a military use, and an exploration use, etc., according to fields or performable functions. According to an embodiment, industrial robots may be subdivided into a robot used in a product manufacturing process in a factory, a robot performing serving of guests, receiving orders, and serving, etc. in a shop or a restaurant, etc., and the like. For example, the electronic device <NUM> according to an embodiment of the disclosure may be implemented as a serving robot that can carry service goods to a location desired by a user, and a specific location in various places such as a restaurant, a hotel, a mart, a hospital, a clothing shop, etc. However, these are merely examples, and robots can be classified in various ways according to fields of application, functions, and purposes of uses, and are obviously not limited to the aforementioned examples.

The robot device <NUM> according to an embodiment of the disclosure includes a sensor <NUM>, a communication interface <NUM>, a memory <NUM>, and a processor <NUM>.

Meanwhile, the sensor <NUM> according to an embodiment of the disclosure may also be implemented as a detection sensor. The sensor <NUM> according to an embodiment may sense actual operations of the operation part and the components according to an action of the robot device <NUM>, and generate sensing data. The sensing data according to an embodiment may include operation data generated in hardware elements provided in the robot device <NUM> as an action of the robot device <NUM> occurs. Here, the sensing data may also be referred to as a log file or operation data, but it will be generally referred to as sensing data, for the convenience of explanation.

For example, when the robot device <NUM> performs an action of a left side rotation, the sensor <NUM> may sense actual operations of the operation part according to the action of a left side rotation, e.g., the rotation angle, the rotation speed, the moving directions of each of the left side wheel and the right side wheel, etc., and generate sensing data. As another example, if the robot device <NUM> performs an action of forward driving, the sensor <NUM> may sense actual operations of the operation part according to the action of forward driving, e.g., the driving direction, the driving speed, etc., and generate sensing data. However, these are merely examples, and the sensor <NUM> may sense actual operations of each of the components included in the robot device <NUM> according to an action of the robot device <NUM>, and generate sensing data.

Also, the sensor <NUM> according to an embodiment of the disclosure may be a component for acquiring one or more images for the surroundings. The sensor <NUM> according to an embodiment may be implemented as an RGB camera, a 3D camera, etc. The processor <NUM> according to an embodiment may acquire map data based on the sensing data of the sensor <NUM>. Here, the map data may include information on an object in a specific place wherein the robot device <NUM> is located.

As another example, the sensor <NUM> may be implemented as an ultrasonic sensor, an infrared sensor, etc. According to an embodiment, in case the detection sensor is implemented as an ultrasonic sensor, the processor <NUM> may control the ultrasonic sensor to radiate an ultrasonic pulse. Then, when a reflective wave that comes as the ultrasonic pulse is reflected on an object is received, the processor <NUM> may measure the elapsed time in between, and thereby measure the distance between the object and the processor <NUM>. Other than this, the ultrasonic sensor may include an ultrasonic proximity sensor, and can obviously be implemented in various ways. An infrared sensor is an element that detects infrared light information included by an object. The processor <NUM> according to an embodiment of the disclosure may identify an object based on the sensing data of the sensor <NUM>.

Meanwhile, the disclosure is not limited thereto, and the sensor <NUM> may be implemented as sensors in various forms. For example, the sensor <NUM> may include an RF sensor, a geomagnetic sensor, a position sensitive device (PSD) sensor, a sensor that detects a cliff within a driving path, a light detection and ranging (LIDAR) sensor, etc. The processor <NUM> according to an embodiment can obviously acquire map data by identifying the location of the robot device <NUM> within a specific place, an object near the robot device <NUM>, etc. based on the sensing data of the sensor <NUM>.

Information on an object included in the map data may include at least one of location information of the object within a specific place, size information, shape information, or characteristic information. Here, the size information may include at least one of information on the width, the height, or the length of the object, and the shape information may include a representative image, a plan-view shape (or, a top-view), etc. of the object. Also, the characteristic information of the object may include information on whether the object can be climbed, or a threshold distance between the robot device <NUM> and the object in case the robot device <NUM> drives while avoiding the object (or, drives to follow the object), etc..

In addition, the processor <NUM> may analyze whether there is an object, a location of an object, a distance with an object, etc. based on the sensing data of the sensor <NUM>, and generate instruction data for generating an action of the robot device <NUM> based on the analysis result.

Here, the instruction data may be data in a robot programming language format for controlling at least one of a driving distance, a driving direction, or a driving speed of the robot device <NUM>. However, this is merely an example, and the disclosure is obviously not limited thereto. For example, the instruction data may be data in a robot programming language format for controlling a rotation direction, a rotation angle, or a rotation speed of the robot device <NUM>, or movements of each of the plurality of components provided in the robot device <NUM>.

For example, the processor <NUM> may generate instruction data in a robot programming language format that can be interpreted in the robot device <NUM> such that the robot device <NUM> performs a specific action. As an example, when an object (e.g., an obstacle) is identified in the front side of the robot device <NUM>, the processor <NUM> may generate instruction data for making the robot device <NUM> drive to rotate to the right side or the left side, or for making the robot device <NUM> go backward. Here, the instruction data may include instructions regarding an action of driving to rotate to the right side, an action of driving to rotate to the left side, or an action of driving to go backward, etc..

Then, the processor <NUM> may control the operation part, the components, etc. such that the robot device <NUM> performs a specific action corresponding to the instruction data. Meanwhile, the instruction data may also be referred to as command data including instructions, but it will be generally referred to as instruction data for the convenience of explanation.

The communication interface <NUM> according to an embodiment of the disclosure may transmit or receive data by performing communication with an external device (e.g., a source device, an external user terminal), an external storage medium (e.g., a USB memory), an external server (e.g., a webhard), etc. through communication methods such as Wi-Fi based on AP (a Wireless LAN network), Bluetooth, Zigbee, a wired/wireless Local Area Network (LAN), a Wide Area Network (WAN), Ethernet, IEEE <NUM>, a High-Definition Multimedia Interface (HDMI), a Universal Serial Bus (USB), a Mobile High-Definition Link (MHL), AES/EBU (Audio Engineering Society/European Broadcasting Union), Optical, Coaxial, etc..

In particular, the robot device <NUM> according to an embodiment of the disclosure may perform communication in a Peer to Peer (P2P) form with another electronic device through the communication interface <NUM>, and share communication. As an example, the robot device <NUM> may also perform communication with another electronic device in an Ad Hoc mode of transmitting or receiving information in a P2P form between devices without an Access Point (AP).

The processor <NUM> according to an embodiment of the disclosure may transmit data to a server through the communication interface <NUM>, and receive data from the server. Detailed explanation in this regard will be described later.

According to an embodiment of the disclosure, the memory <NUM> provided in the robot device <NUM> may be implemented as an internal memory such as a ROM (e.g., an electrically erasable programmable read-only memory (EEPROM)), a RAM, etc., included in the processor <NUM>, or implemented as a separate memory from the processor <NUM>. In this case, the memory <NUM> may be implemented in the form of a memory embedded in the robot device <NUM>, or implemented in the form of a memory that can be attached to or detached from the robot device <NUM> according to the use of stored data. For example, in the case of data for operating the robot device <NUM>, the data may be stored in a memory embedded in the robot device <NUM>, and in the case of data for an extended function of the robot device <NUM>, the data may be stored in a memory that can be attached to or detached from the robot device <NUM>. Meanwhile, in the case of a memory embedded in the robot device <NUM>, the memory may be implemented as at least one of a volatile memory (e.g.: a dynamic RAM (DRAM), a static RAM (SRAM), or a synchronous dynamic RAM (SDRAM), etc.) or a non-volatile memory (e.g.: an one time programmable ROM (OTPROM), a programmable ROM (PROM), an erasable and programmable ROM (EPROM), an electrically erasable and programmable ROM (EEPROM), a mask ROM, a flash ROM, a flash memory (e.g.: NAND flash or NOR flash, etc.), a hard drive, or a solid state drive (SSD)). In the case of a memory that can be attached to or detached from the robot device <NUM>, the memory may be implemented as forms such as a memory card (e.g., compact flash (CF), secure digital (SD), micro secure digital (Micro-SD), mini secure digital (Mini-SD), extreme digital (xD), a multi-media card (MMC), etc.), an external memory that can be connected to a USB port (e.g., a USB memory), etc..

In particular, if an action of the robot device <NUM> is changed according to control by the processor <NUM> according to an embodiment of the disclosure, the processor <NUM> stores instruction data corresponding to the action, sensing data of the sensor <NUM> related to the action, and map data related to the action in the memory <NUM>. Here, the sensing data of the sensor <NUM> related to the action and the map data related to the action may respectively mean sensing data and map data on the time point when the action of the robot device <NUM> was changed. For example, if an action of the robot device <NUM> is changed, the processor <NUM> may store instruction data corresponding to the action, and sensing data and map data on the time point when the action was changed in the memory <NUM>. Here, the map data may include information on an object adjacent to the robot device <NUM> on the time point when the action was changed.

The processor <NUM> controls the overall operations of the robot device <NUM>.

According to an embodiment, the processor <NUM> may be implemented as a digital signal processor (DSP) processing digital image signals, a microprocessor, an artificial intelligence (Al) processor, and a timing controller (T-CON). However, the disclosure is not limited thereto, and the processor <NUM> may include one or more of a central processing unit (CPU), a micro controller unit (MCU), a micro processing unit (MPU), a controller, an application processor (AP), or a communication processor (CP), and an ARM processor, or may be defined by the terms. Also, the processor <NUM> may be implemented as a system on chip (SoC) having a processing algorithm stored therein or large scale integration (LSI), or in the form of a field programmable gate array (FPGA).

The processor <NUM> according to an embodiment of the disclosure may control the operation of the robot device <NUM> based on map data for a specific place sensed by the sensor <NUM>. Here, the map data for a specific place may mean data indicating the physical geography of the place wherein the robot device <NUM> is operated, and it may be an image form, but is obviously not limited thereto.

The processor <NUM> may generate instruction data for controlling the action of the robot device <NUM> based on information on an object included in the map data, section information of each of a plurality of sections constituting a place, etc. Here, the instruction data may be data in a robot programming language format for controlling at least one of a driving distance, a driving direction, or a driving speed of the robot device <NUM>.

As an example, if a place is a restaurant, an object may mean a table, a seat on which a user can sit, or physical obstacles in various forms. The map data may include identification information and location information of a table, a seat, etc. provided in the place. As another example, if a place is a home, an object can obviously mean furniture, a home appliance, or obstacles in various forms.

Here, an obstacle may mean various kinds of objects or situations that may interfere with the driving of the robot device <NUM>, or that may cause stopping of the operation between driving of the robot device <NUM>, damage, or breakage. For example, an obstacle can obviously include various objects such as a rug, clothes, a wall surface, a step, a threshold, etc., other than furniture and electronic devices. Also, section information of each of a plurality of sections constituting a place may mean information for identifying each of the plurality of sections. For example, in case a specific place is a restaurant, section information may include identification information, location information, and size information, etc. regarding the kitchen, the payment area, and the hall area provided in the restaurant.

Map data may be received from an external server (not shown) and stored in the memory <NUM>, or it can obviously be acquired based on sensing data (or an image) acquired through the sensor <NUM> (or, a camera) included in the robot device <NUM>.

The processor <NUM> according to an embodiment of the disclosure may control the hardware elements of the robot device <NUM> based on instruction data, i.e., data in a robot programming language format, and generate an action. Here, the action can obviously include various movements that the robot device <NUM> can perform according to the purpose of the robot device <NUM>, such as an action for driving while avoiding an obstacle, etc. based on map data, an action for performing cleaning, an action for carrying an object, etc. Explanation in this regard will be made with reference to <FIG>.

<FIG> is a diagram for illustrating data according to an embodiment of the disclosure.

Referring to <FIG>, if an object (e.g., an obstacle) is identified in the front side of the robot device <NUM> based on sensing data, the processor <NUM> according to an embodiment of the disclosure may generate instruction data for making the robot device <NUM> drive to rotate to the right side or the left side, or for making the robot device <NUM> go backward.

Then, the processor <NUM> may control the driving part, the components, etc. such that the robot device <NUM> performs a specific action corresponding to the instruction data. Referring to <FIG>, the processor <NUM> may control the hardware elements of the robot device <NUM> based on the instruction data, and generation an action of driving to rotate to the right side.

Here, if the action of the robot device <NUM> changes from an action of driving straight to an action of driving to rotate to the right side, the processor <NUM> may store the instruction data on the time point when the action changed, the sensing data including the operation data generated in the hardware elements on the time point when the action changed, and the map data on the time point when the action changed in the memory <NUM>.

As another example, if the action of the robot device <NUM> changes from an action of driving straight to an action of driving to rotate to the right side, the processor <NUM> can obviously store the instruction data corresponding to the changed action, i.e., the action of driving to rotate to the right side, the operation data generated in the hardware elements according to performing of the changed action, and the map data related to the changed action in the memory <NUM>. Here, the operation data may mean data generated as the hardware elements such as the motor, the wheel, etc. are driven for the robot device <NUM> to perform the action.

Meanwhile, the processor <NUM> according to an embodiment of the disclosure may selectively or optionally store at least one of the instruction data, the sensing data, or the map data. For example, the processor <NUM> can obviously store only the sensing data, or map the instruction data and the sensing data and store them. As another example, the processor <NUM> can obviously map the instruction data, the sensing data, and the map data, and store them in the memory <NUM>.

<FIG> is a diagram for illustrating instruction data and sensing data according to an embodiment of the disclosure.

Referring to <FIG>, the processor <NUM> according to an embodiment of the disclosure may acquire instruction data in a robot programming language format that can be interpreted in the robot device <NUM> based on map data.

As an example, the processor <NUM> may generate "Moving" instruction data such that the robot device <NUM> performs an action of forward driving. Then, if an obstacle is detected in the front side based on map data, the processor <NUM> may generate "Avoiding_obstacle" instruction data such that the robot device <NUM> performs an action of driving to avoid the obstacle.

In particular, the processor <NUM> according to an embodiment of the disclosure may control the hardware elements based on the instruction data, and perform an action. Then, the processor <NUM> may acquire operation data generated in the hardware elements of the robot device <NUM>. Here, the operation data may mean data related to actual operations of the hardware elements according to performing of the action.

If the action of the robot device <NUM> changes, the processor <NUM> according to an embodiment of the disclosure stores the instruction data, the sensing data, and the map data in the memory <NUM>. Then, the processor <NUM> transmits the data stored in the memory <NUM> to the server through the communication interface <NUM>. For example, if the action of the robot device <NUM> changes from "Moving" to "Avoiding_obstacle," the processor <NUM> may store the instruction data corresponding to the changed action, the sensing data including the operation data of the hardware elements according to performing of the action, and the map data related to the action in the memory <NUM>.

If it is identified that the sensing data corresponding to an action occurred in the robot device <NUM> does not belong to a threshold range based on data received from the server, the processor <NUM> according to an embodiment of the disclosure generates an event. Here, the data received from the server may include the data for a threshold range of the sensing data for each action that may occur in the robot device <NUM>, which was acquired by analyzing the data transmitted from the robot device <NUM> to the server. Here, the threshold range may mean an error range and a normal range, but for the convenience of explanation, it will be generally referred to as a threshold range.

For example, the processor <NUM> may transmit instruction data corresponding to an action "Avoiding_obstacle," sensing data including the operation data of the hardware elements according to performing of the action "Avoiding_obstacle," and map data related to the action "Avoiding_obstacle" to the server. Then, the processor <NUM> may acquire data for the threshold range of the sensing data related to the action "Avoiding_obstacle" based on the data received from the server.

For example, the server may receive a plurality of sensing data for each action from a plurality of robot devices. Then, the server may analyze the plurality of sensing data and acquire data for the threshold range of the sensing data for each action.

As an example, if sensing data corresponding to the action "Avoiding_obstacle" is received from each of the plurality of robot devices, the server may analyze the plurality of sensing data, and acquire standard sensing data corresponding to the action "Avoiding_obstacle. " For example, the server may analyze the plurality of sensing data, and acquire standard sensing data through combination of the most probable operation data, or acquire sensing data received from a specific robot device as standard sensing data. Then, the server may transmit the standard sensing data for each action that may occur in the robot device <NUM> and threshold similarity with the standard sensing data to the robot device <NUM>.

Then, the robot device <NUM> may measure similarity between the received standard sensing data and the sensing data stored in the memory <NUM>, and identify whether the similarity is greater than or equal to the threshold similarity, i.e., whether the similarity belongs to the threshold range. For example, if the threshold similarity is <NUM>%, the robot device <NUM> may compare the standard sensing data and the sensing data stored in the memory <NUM>, and determine whether the similarity is greater than or equal to <NUM>% according to the comparison result. Here, as a method for determining similarity, a known method of measuring similarity can obviously be used. However, this is merely an example, and the disclosure is obviously not limited thereto.

For example, if a plurality of sensing data for a specific action is collected, the server may analyze the plurality of sensing data, and acquire standard sensing data according to normal operations of the hardware elements included in the robot device <NUM>, wherein errors did not occur. As an example, the server may acquire standard sensing data from a plurality of sensing data based on a learning network model or an algorithm, and transmit the data to the robot device <NUM>. Here, the learning network model may be an artificial intelligence model which went through machine learning based on the plurality of sensing data for each action.

Functions related to artificial intelligence according to the disclosure are operated through the processor <NUM> and the memory <NUM>. The processor <NUM> may consist of one or a plurality of processors. Here, the one or plurality of processors may be generic-purpose processors such as a CPU, an AP, a digital signal processor (DSP), etc., graphic-dedicated processors such as a GPU and a vision processing unit (VPU), or artificial intelligence-dedicated processors such as an NPU. The one or plurality of processors perform control to process input data according to predefined operation rules or an artificial intelligence model stored in the memory. Alternatively, in case the one or plurality of processors are artificial intelligence-dedicated processors, the artificial intelligence-dedicated processors may be designed as a hardware structure specific for processing of a specific artificial intelligence model.

The predefined operation rules or the artificial intelligence model are characterized in that they are made through learning. Here, being made through learning means that a basic artificial intelligence model is trained by using a plurality of learning data by a learning algorithm, and predefined operations rules or an artificial intelligence model set to perform desired characteristics (or, purposes) are thereby made. Such learning may be performed in a device itself wherein artificial intelligence is performed according to the disclosure, or through a separate server and/or a system. As examples of learning algorithms, there are supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but learning algorithms in the disclosure are not limited to the aforementioned examples.

An artificial intelligence model may consist of a plurality of neural network layers. Each of the plurality of neural network layers has a plurality of weight values, and performs a neural network operation through an operation result of the previous layer and an operation among the plurality of weight values. The plurality of weight values included by the plurality of neural network layers may be optimized by the learning result of the artificial intelligence model. For example, the plurality of weight values may be updated such that a loss value or a cost value acquired at the artificial intelligence model during a learning process is reduced or minimized. An artificial neural network may include a deep neural network (DNN), and there are, for example, a convolutional neural network (CNN), a deep neural network (DNN), a recurrent neural network (RNN), a restricted Boltzmann Machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), or deep Q-networks, etc., but the disclosure is not limited to the aforementioned examples.

Then, if it is identified that sensing data corresponding to an action occurred in the robot device <NUM> does not belong to the threshold range based on the data received from the server, the robot device <NUM> according to an embodiment of the disclosure generates an event. Detailed explanation in this regard will be made with reference to <FIG>.

<FIG> is a diagram for illustrating a threshold range according to an embodiment of the disclosure.

Referring to <FIG>, as the robot device <NUM> performs an action, the processor <NUM> according to an embodiment of the disclosure may acquire sensing data including data regarding operation of the hardware elements, i.e., the operation data.

Then, the processor <NUM> may receive data from the server. Here, the data received from the server may include data for the threshold range of the sensing data for each action.

The data for the threshold range of the sensing data for each action may include the standard sensing data for each action and the data regarding the threshold similarity. Then, the processor <NUM> compares sensing data related to an action and the standard data related to the action, and identifies similarity. Then, if the similarity is smaller than the threshold similarity, the processor <NUM> may identify that the sensing data corresponding to the action occurred in the robot device <NUM> does not belong to the threshold range.

Referring to <FIG>, if similarity between the sensing data corresponding to the action "Avoiding_obstacle" performed in the robot device <NUM> and the standard sensing data of the action "Avoiding_obstacle" is smaller than the threshold similarity, the processor <NUM> according to an embodiment of the disclosure may identify that the sensing data does not belong to the threshold range, and generate an event.

Here, the event may include at least one of a feedback notifying that the sensing data corresponding to the action occurred in the robot device <NUM> does not belong to the threshold range, an instruction controlling the hardware elements of the robot device such that the sensing data corresponding to the action belongs to the threshold range, or an event notifying an element wherein an error occurred among the hardware elements of the robot device based on the sensing data corresponding to the action.

As an example, if the sensing data corresponding to a specific action performed in the robot device <NUM> has similarity smaller than the threshold similarity with the standard sensing data corresponding to the specific action, the processor <NUM> may identify that an error occurred in the robot device <NUM>. The processor <NUM> may provide at least one of a visual feedback or an auditory feedback notifying that the sensing data corresponding to the action does not belong to the threshold range.

As another example, the processor <NUM> may generate an action controlling the hardware elements such that the sensing data corresponding to the action belongs to the threshold range. For example, if the driving speed in the standard sensing data of an action "Moving" is <NUM>/s, and the driving speed in the sensing data generated as the robot device <NUM> performs the action "Moving" is <NUM>/s, the processor <NUM> may generate an instruction for changing the driving speed to <NUM>/s by controlling the wheel and the motor provided in the driving part.

As still another example, if the sensing data corresponding to a specific action performed in the robot device <NUM> has similarity smaller than the threshold similarity with the standard sensing data corresponding to the specific action, the processor <NUM> can obviously generate an event notifying that an error (or, an obstacle) occurred in the hardware elements of which control is required for performing the specific action. For example, if the driving speed in the standard sensing data of an action "Moving" is <NUM>/s, and the driving speed in the sensing data generated as the robot device <NUM> performs the action "Moving" is <NUM>/s, the processor <NUM> may provide a visual feedback or an auditory feedback notifying that an error occurred in the wheel, the motor, etc. provided in the driving part.

<FIG> is a diagram for illustrating map data according to an embodiment of the disclosure.

Referring to <FIG>, the processor <NUM> according to an embodiment of the disclosure may acquire map data including information on an object based on the sensing data of the sensor <NUM> while the robot device <NUM> is moving (or, driving).

Here, the information on the object may include at least one of location information of the object within a specific place, size information, shape information, or characteristic information. Here, the size information may include at least one of information on the width, the height, or the length of the object, and the shape information may include a representative image, a plan-view shape (or, a top-view), etc. of the object. Also, the characteristic information of the object may include information on whether the object can be climbed, or a threshold distance between the robot device <NUM> and the object in case the robot device <NUM> drives while avoiding the object (or, drives to follow the object), etc..

The processor <NUM> according to an embodiment of the disclosure may also acquire information on an object by using an artificial intelligence model stored in the memory <NUM>. For example, in the memory <NUM> according to an embodiment of the disclosure, an artificial intelligence model trained to identify an object in an input image may be stored. Here, the artificial intelligence model may be a model trained by using a plurality of sample images including various objects. Identifying an object can be understood to mean acquiring information on the object such as the name, the type, the size information, the shape information, or the characteristic information, etc. of the object.

Then, the processor <NUM> may acquire instruction data corresponding to the object based on the information on the object.

For example, if an obstacle that cannot be climbed is detected in the front side, the processor <NUM> may acquire instruction data for driving while avoiding the obstacle. As another example, if an obstacle that can be climbed is detected in the front side, the processor <NUM> may acquire instruction data for driving to climb over the obstacle.

If an action of the robot device <NUM> changes based on information on an object, i.e., map data, the processor <NUM> according to an embodiment of the disclosure may transmit instruction data corresponding to the action, sensing data including operation data generated as the action is performed, and map data including the information on the object to the server.

<FIG> is a diagram for illustrating a case of replaying driving of a robot device according to an embodiment of the disclosure.

Referring to <FIG>, a case wherein the robot device <NUM> according to an embodiment of the disclosure is implemented as a robot cleaner <NUM>' may be assumed.

The robot cleaner <NUM>' may identify objects such as a point where there is a dividing line or a raised spot on the bottom, a point where the movable width narrows, a point where there is a wall, a point where a wall starts, a point where a wall ends, a point where there is a door, etc. based on the sensing data of the sensor <NUM>. Then, the processor <NUM> may divide a place (e.g., a home) into a plurality of sections (e.g., a living room, a bedroom, a toilet, or a kitchen, etc.) with the identified points as boundaries among the sections.

Then, the robot cleaner <NUM>' may perform cleaning while moving in the plurality of sections sequentially.

Referring to <FIG>, the robot cleaner <NUM>' according to an embodiment of the disclosure may perform cleaning by cleaning the first area (①), e.g., the kitchen, and then moving to the next section.

According to an embodiment of the disclosure, the processor <NUM> may make the robot cleaner <NUM>' drive based on the sensing data of the sensor <NUM>. Referring to <FIG>, a case wherein the robot cleaner <NUM>' cleans the first area (①), e.g., the kitchen, and then performs an action to rotate to the left side for moving to the second area (②) may be assumed.

As the action of the robot cleaner <NUM>' was changed from an action of driving straight to an action of rotating to the left side, the processor <NUM> may store instruction data corresponding to the action of rotating to the left side, and the sensing data and the map data on the time point when the action of rotating to the left side is performed in the memory <NUM>.

Afterwards, when the test mode is executed, the robot device <NUM> may replay the action based on the instruction data stored in the memory <NUM> and the sensing data corresponding to the instruction data.

The robot device <NUM> according to another embodiment of the disclosure may receive sensing data corresponding to the instruction data stored in the memory <NUM> from the server, and replay an action corresponding to the instruction data based on the instruction data stored in the memory <NUM> and the sensing data received from the server.

The robot device <NUM> according to still another embodiment of the disclosure can obviously receive instruction data and sensing data corresponding to the instruction data from the server, and replay an action based on the instruction data and the sensing data received from the server.

For example, another robot device may perform communication with the server, and receive instruction data and sensing data corresponding to the instruction data from the server. Then, the another robot device can obviously replay an action based on the instruction data and the sensing data received from the server. Here, the action replayed by the another robot device may mean the action performed by the robot device <NUM>. The another robot device may replay the action performed in the robot device <NUM> in the past, or simulate an action that may be performed. Here, the another robot device can obviously referred to as a simulator.

<FIG> is a detailed block diagram of a robot device according to an embodiment of the disclosure.

Referring to <FIG>, the robot device <NUM> according to an embodiment of the disclosure may include a sensor <NUM>, a communication interface <NUM>, a memory <NUM>, a processor <NUM>, and an operation part <NUM>. Regarding components that overlap with the components illustrated in <FIG>, explanation will be omitted.

The robot device <NUM> according to an embodiment may include an operation part including an actuator or a motor. Here, the operation part may include a wheel, a brake, etc., and the robot may be implemented as a moving robot that can move in a specific place by itself using the operation part.

The operation part can obviously include all components that are provided in the robot device <NUM> and make the robot device <NUM> cable of performing various operations and functions, other than components that make the robot device <NUM> movable. For example, the operation part may include a robot joint and make the robot device <NUM> carry an external object.

<FIG> is a flow chart for illustrating a control method for a robot device according to an embodiment of the disclosure.

In a control method for a robot device, first, if an action of the robot device changes, instruction data corresponding to the action, sensing data related to the action, and map data related to the action are stored in operation S810.

Then, the stored data is transmitted to a server in operation S820.

Then, if it is identified that the sensing data corresponding to the action occurred in the robot device does not belong to a threshold range based on the data received from the server, an event is generated in operation S830.

The instruction data according to an embodiment of the disclosure is data in a robot programming language format for controlling at least one of a driving distance, a driving direction, or a driving speed of the robot device, and the control method may further include the step of controlling hardware elements of the robot device based on the data in the robot programming language format and generating the action.

Also, the data received from the server may include data for a threshold range of sensing data for each action that may occur in the robot device, which was acquired by analyzing the data transmitted from the robot device to the server, and the operation S830 of generating an event may include the step of identifying whether the sensing data corresponding to the action occurred in the robot device belongs to the threshold range based on the data for the threshold range.

In addition, the data received from the server may indicate that the sensing data corresponding to the action occurred in the robot device does not belong to the threshold range, and the operation S830 of generating an event may include the step of generating the event based on the received data.

In addition, the operation S810 of storing may include the steps of converting the instruction data and the sensing data into data of a robot programming language format and storing the converted data in the memory.

<FIG> is a block diagram illustrating a configuration of a robot device system according to an embodiment of the disclosure.

According to what is illustrated in <FIG>, a robot device system <NUM> includes a robot device <NUM> and a server <NUM>.

If an action changes, the robot device <NUM> according to an embodiment may store instruction data corresponding to the action, sensing data of the sensor related to the action, and map data related to the action, and transmit the stored data to a server. Also, if it is identified that the sensing data corresponding to the action occurred in the robot device does not belong to a threshold range based on the data received from the server <NUM>, the robot device <NUM> may generate an event.

The server <NUM> according to an embodiment of the disclosure may identify the threshold range of the sensing data corresponding to the action based on the instruction data, the sensing data, and the map data received from the robot device. Then, the server <NUM> may transmit data related to the identified threshold range to the robot device.

Detailed explanation in this regard will be made with reference to <FIG>.

<FIG> is a diagram for illustrating a robot device system according to an embodiment of the disclosure.

Referring to <FIG>, each of a plurality of robot devices <NUM>-<NUM>, <NUM>-<NUM> according to an embodiment of the disclosure may transmit data to the server <NUM>. As an example, if an action changes, the first robot device <NUM>-<NUM> may transmit instruction data corresponding to the action, sensing data related to the action, and map data related to the action to the server <NUM>. Also, if an action changes, the second robot device <NUM>-<NUM> may transmit instruction data corresponding to the action, sensing data related to the action, and map data related to the action to the server <NUM>. As data is received from the plurality of robot devices <NUM>-<NUM>, <NUM>-<NUM>, the server <NUM> may acquire the instruction data, the sensing data, and the map data corresponding to each of the plurality of actions.

As an example, the server <NUM> may receive instruction data corresponding to the first action, and sensing data and map data generated as the first robot device <NUM>-<NUM> performs the first action from the first robot device <NUM>-<NUM>. Also, the server <NUM> may receive instruction data corresponding to the first action, and sensing data and map data generated as the second robot device <NUM>-<NUM> performs the first action from the second robot device <NUM>-<NUM>. Then, the server <NUM> may acquire standard sensing data for the first action based on the plurality of sensing data corresponding to the first action.

For example, the server <NUM> may analyze the sensing data received from the first robot device <NUM>-<NUM> and the sensing data received from the second robot device <NUM>-<NUM>, and acquire sensing data by assuming a case wherein the first action is performed in a normal state of the hardware elements provided in the robot device <NUM>. Here, the sensing data acquired by the server <NUM> means standard sensing data corresponding to the first action.

Then, the server <NUM> may acquire standard sensing data for each action that can be performed in the robot device <NUM>, or a threshold range of the sensing data. For example, the server <NUM> may acquire sensing data corresponding to the first action and the threshold range of the sensing data, and sensing data corresponding to the second action and the threshold range of the sensing data. Here, the threshold range means a range of determining whether the robot device <NUM> performed a specific action without an error (or, without an error of the hardware elements) based on the sensing data received from the robot device <NUM>.

As an example, the server <NUM> according to an embodiment of the disclosure may transmit data for the threshold range of the sensing data corresponding to each of a plurality of actions that may occur in the robot device <NUM> to the robot device <NUM>. Then, the robot device <NUM> may compare sensing data corresponding to a specific action performed in the robot device <NUM> and standard sensing data corresponding to the specific action based on the data received from the server <NUM>, and determine whether the similarity belongs within a threshold range. Then, if it is identified that the similarity is outside the threshold range according to the determination result, the robot device <NUM> may provide a feedback indicating that the hardware elements of the robot device <NUM> are in a disabled state, or a feedback notifying a hardware element related to the specific action as an event.

Meanwhile, a case wherein the similarity belongs within the threshold range may mean that the specific action performed in the robot device <NUM> was performed within a normal range. For example, the robot device <NUM> may perform comparison between the sensing data generated as the robot device <NUM> performed an action and the standard sensing data corresponding to the action, and determine whether the robot device <NUM> performed the action within the normal range according to the comparison result. Here, the normal range may mean standard sensing data generated by assuming a case wherein the robot device <NUM> performed the action in a state wherein the hardware elements are not in a disabled state, or standard sensing data including information on an error range that was predetermined for the action.

As another example, the server <NUM> may determine whether sensing data received from the robot device <NUM> is outside a threshold range, and transmit the determination result to the robot device <NUM>. For example, the determination result is data indicating that sensing data corresponding to an action occurred in the robot device <NUM> does not belong to a threshold range, and when the data is received, the robot device <NUM> may provide a feedback indicating that the hardware elements are in a disabled state, or a feedback notifying a hardware element related to the specific action as an event.

<FIG> is a sequence diagram for illustrating receipt and transmission of data between a server and a robot device according to an embodiment of the disclosure.

Referring to <FIG>, if an action of the robot device <NUM> changes, the robot device <NUM> may store instruction data corresponding to the action, sensing data of the sensor related to the action, and map data related to the action in operation S1110.

Then, the robot device <NUM> may transmit the stored data to a server in operation S1120.

The server <NUM> according to an embodiment may identify a threshold range corresponding to the action based on the instruction data, the sensing data, and the map data received from the robot device <NUM> in operation S1130.

Then, the server <NUM> may transmit data related to the identified threshold range to the robot device <NUM> in operation S1140.

If it is identified that the sensing data corresponding to the action occurred in the robot device does not belong to the threshold range based on the received data, the robot device <NUM> according to an embodiment of the disclosure may generate an event in operation S1150.

Meanwhile, the various embodiments of the disclosure can obviously be applied to all electronic devices, other than a robot device.

Meanwhile, the various embodiments described above may be implemented in a recording medium that can be read by a computer or a device similar to a computer, by using software, hardware, or a combination thereof. In some cases, the embodiments described in this specification may be implemented as a processor itself. According to implementation by software, the embodiments such as procedures and functions described in this specification may be implemented as separate software modules. Each of the software modules can perform one or more functions and operations described in this specification.

Meanwhile, computer instructions for performing processing operations of a robot cleaner according to the various embodiments of the disclosure described above may be stored in a non-transitory computer-readable medium. Such computer instructions stored in a non-transitory computer-readable medium make the processing operations at the display device <NUM> according to the various embodiments described above performed by a specific machine, when they are executed by the processor of the specific machine.

Claim 1:
A robot device (<NUM>) comprising:
a sensor (<NUM>);
a communication interface (<NUM>);
a memory (<NUM>); and
a processor (<NUM>) configured to:
based on an action of the robot device changing, store instruction data corresponding to the action, sensing data of the sensor related to the action, and map data related to the action in the memory,
transmit the instruction data, the sensing data of the sensor and the map data to a server via the communication interface,
characterized in that the processor is configured to:
receive data from the server, wherein the data comprises standard sensing data corresponding to the action and wherein the data further comprises a threshold range, wherein
the standard sensing data is acquired by the server from a plurality of sensing data collected for the action, based on an artificial intelligence model,
identify whether the sensing data of the sensor belongs to the threshold range by comparing the sensing data of the sensor and the standard sensing data based on the data received from the server, and
based on identifying that the sensing data of the sensor does not belong to the threshold range, generate an event,
wherein the event comprises a feedback notifying that the sensing data of the sensor does not belong to the threshold range.