Patent Description:
Recently, development of technologies for robots that are arranged in indoor spaces and provide services to users is activity going on. In particular, a robot cleaning an indoor space can continuously update map data corresponding to the space while travelling in the indoor space.

In this case, the robot may simultaneously perform an operation of recognizing the location of the robot and an operation of acquiring map data of the space in the travelling process. However, a conventional robot had a problem that it acquired incorrect map data in case the location of the robot was not recognized correctly or there was an error in sensor data necessary for acquiring map data.

Accordingly, there is a continuous demand for a robot that, in case the robot travelling in an indoor space acquires map data corresponding to a new area, identifies whether the map data is correct map data, and that determines whether to update the map.

<CIT> discloses an autonomous mobile robot for the new exploration of an area.

The disclosure is for addressing the aforementioned need, and the purpose of the disclosure is in providing a robot that determines whether to update the stored map data based on a comparison result between the stored map data and newly acquired map data, and a controlling method thereof.

A robot according to one or more embodiments of the disclosure for achieving the aforementioned purpose may include a memory storing first map data corresponding to a first region of a specific space, a distance sensor, and a processor configured to, based on acquiring second map data on the basis of distance data acquired by the distance sensor while the robot is travelling in the specific space, compare the first map data and the second map data, and based on identifying, as a result of the comparison, that an error does not exist in the second map data and information on a second region other than the first region is included in the second map data, update the first map data on the basis of the second map data.

Here, the processor may, based on identifying that the second region is a region wherein a plurality of sub regions are clustered and the size of the second region is greater than or equal to a threshold size, update the first map data on the basis of the second map data.

Here, the memory may store travelling history information of the robot, and the processor may, based on identifying that the robot has a history of travelling in the second region on the basis of the travelling history information of the robot, update the first map data on the basis of the second map data.

Meanwhile, the processor may identify a first location corresponding to the current location of the robot based on the first map data, identify a second location corresponding to the current location of the robot based on the second map data, based on a distance between the first location and the second location being smaller than a threshold distance, identify that an error does not exist in the second map data, and based on the distance between the first location and the second location being greater than or equal to the threshold distance, identify that an error exists in the second map data.

Also, the processor may compare first line information included in the first map data and second line information included in the second map data, and identify whether an error exists in the second map data based on the result of comparison.

Here, the processor may acquire first histogram information based on angle information of lines included in the first map data, acquire second histogram information based on angle information of lines included in the second map data, based on similarity between the first histogram information and the second histogram information being smaller than a threshold value, identify that an error does not exist in the second map data, and based on the similarity between the first histogram information and the second histogram information being greater than or equal to the threshold value, identify that an error exists in the second map data.

Meanwhile, the processor may, based on identifying, on the basis of the first map data and the second map data, that a boundary line between the first region and the second region is greater than or equal to a threshold length, update the first map data on the basis of the second map data.

Also, the robot may further include a display, and the processor may control the display to display a UI inquiring about whether to update the first map data on the basis of the second map data, and based on receiving a user instruction requesting update of the first map data, update the first map data on the basis of the second map data.

In addition, the robot may further include a communication interface, and the processor may control the communication interface to transmit the updated first map data to an external server.

Meanwhile, a controlling method of a robot storing first map data corresponding to a first region of a specific space according to one or more embodiments of the disclosure may include the steps of, based on acquiring second map data while the robot is travelling in the specific space, comparing the first map data and the second map data, and based on identifying, as a result of the comparison, that an error does not exist in the second map data and information on a second region other than the first region is included in the second map data, updating the first map data on the basis of the second map data.

Here, in the updating step, based on identifying that the second region is a region wherein a plurality of sub regions are clustered and the size of the second region is greater than or equal to a threshold size, the first map data may be updated on the basis of the second map data.

Here, in the updating step, based on identifying that the robot has a history of travelling in the second region on the basis of the travelling history information of the robot, the first map data may be updated on the basis of the second map data.

Meanwhile, the comparing step may include the steps of identifying a first location corresponding to the current location of the robot based on the first map data, identifying a second location corresponding to the current location of the robot based on the second map data, based on a distance between the first location and the second location being smaller than a threshold distance, identifying that an error does not exist in the second map data, and based on the distance between the first location and the second location being greater than or equal to the threshold distance, identifying that an error exists in the second map data.

Also, in the comparing step, first line information included in the first map data and second line information included in the second map data may be compared, and it may be identified whether an error exists in the second map data based on the result of comparison.

Here, the comparing step may include the steps of acquiring first histogram information based on angle information of lines included in the first map data, acquiring second histogram information based on angle information of lines included in the second map data, based on similarity between the first histogram information and the second histogram information being smaller than a threshold value, identifying that an error does not exist in the second map data, and based on the similarity between the first histogram information and the second histogram information being greater than or equal to the threshold value, identifying that an error exists in the second map data.

Meanwhile, in the updating step, based on identifying, on the basis of the first map data and the second map data, that a boundary line between the first region and the second region is greater than or equal to a threshold length, the first map data may be updated on the basis of the second map data.

Also, the controlling method may further include the steps of displaying a UI inquiring about whether to update the first map data on the basis of the second map data, and based on receiving a user instruction requesting update of the first map data, updating the first map data on the basis of the second map data.

In addition, the controlling method may further include the step of transmitting the updated first map data to an external server.

Meanwhile, a non-transitory computer-readable recording medium storing a computer instruction making the robot perform an operation in case the instruction is executed by the processor of the robot according to one or more embodiments of the disclosure may include the steps of, based on acquiring second map data while the robot is travelling in the specific space, comparing the first map data and the second map data, and based on identifying, as a result of the comparison, that an error does not exist in the second map data and information on a second region other than the first region is included in the second map data, updating the first map data on the basis of the second map data.

According to the various embodiments of the disclosure, a robot can acquire map data with high credibility, and thus the quality of a service provided based on the map data can be enhanced, and accordingly, the user's convenience can be improved.

As terms used in the embodiments of the disclosure, general terms that are currently used widely were selected as far as possible, in consideration of the functions described in the disclosure. However, the terms may vary depending on the intention of those skilled in the art, previous court decisions, or emergence of new technologies, etc. Also, in particular cases, there may be terms that were arbitrarily designated by the applicant, and in such cases, the meaning of the terms will be described in detail in the relevant descriptions in the disclosure. Accordingly, the terms used in the disclosure should be defined based on the meaning of the terms and the overall content of the disclosure, but not just based on the names of the terms.

Also, in the disclosure, expressions such as "have," "may have," "include," and "may include" denote the existence of such characteristics (e.g.: elements such as numbers, functions, operations, and components), and do not exclude the existence of additional characteristics.

In addition, the expression "at least one of A and/or B" should be interpreted to mean any one of "A" or "B" or "A and B.

Further, the expressions "first," "second," and the like used in the disclosure may be used to describe various elements regardless of any order and/or degree of importance. Also, such expressions are used only to distinguish one element from another element, and are not intended to limit the elements.

In addition, the description in the disclosure that one element (e.g.: a first element) is "(operatively or communicatively) coupled with/to" or "connected to" another element (e.g.: a second element) should be interpreted to include both the case where the one element is directly coupled to the another element, and the case where the one element is coupled to the another element through still another element (e.g.: a third element).

Meanwhile, singular expressions include plural expressions, unless defined obviously differently in the context. Also, in the disclosure, terms such as "include" and "consist of" should be construed as designating that there are such characteristics, numbers, steps, operations, elements, components, or a combination thereof described in the specification, but not as excluding in advance the existence or possibility of adding one or more of other characteristics, numbers, steps, operations, elements, components, or a combination thereof.

In addition, in the disclosure, "a module" or "a part" performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Also, a plurality of "modules" or a plurality of "parts" may be integrated into at least one module and implemented as at least one processor (not shown), except "a module" or "a part" that needs to be implemented as specific hardware.

Further, in the disclosure, the term "user" may refer to a person who is provided with a route guiding service from a robot.

<FIG> is a diagram for illustrating a robot travelling in an indoor space.

According to <FIG>, a robot <NUM> according to one or more embodiments of the disclosure may provide a service to a user while travelling in a specific space <NUM>. For example, the robot <NUM> may provide a service of cleaning the space <NUM>, but is not limited thereto. The robot <NUM> may store in advance map data corresponding to the space <NUM> for travelling in the space <NUM>, and the map data may include information on at least one of a wall surface region (occupied), a free region (free space), or an unidentified region (unknown) constituting the space <NUM>. Here, the unidentified region may mean the remaining region excluding the wall surface region and the free region, but is not limited thereto.

Here, the map data may include information on a plurality of sub regions, and the sub regions may be regions divided in grid units, but are not limited thereto. In case the sub regions are regions divided in grid units, the map data may include information on a plurality of grids corresponding to one region among the wall surface region, the free region, or the unidentified region.

Also, the space <NUM> may include an independent region <NUM> having a plurality of wall surface regions as its boundary. In this case, at least one wall surface region corresponding to the region <NUM> may include an entrance of the region <NUM>. In case all of the entrances of the region <NUM> are in a closed state, the map data stored in the robot <NUM> may not include information on the region <NUM>.

However, in case the entrance of the region <NUM> is changed to an open state, the robot <NUM> may acquire map data corresponding to the region <NUM>. In this case, the robot <NUM> may update the previously stored map data based on the acquired map data. Hereinafter, various embodiments of determining whether to update the stored data based on a comparison result of the stored map data and newly acquired map data will be described in more detail.

<FIG> is a diagram for illustrating a configuration of a robot according to one or more embodiments of the disclosure.

According to <FIG>, the robot <NUM> may include a memory <NUM>, a distance sensor <NUM>, and a processor <NUM>.

The memory <NUM> may store data necessary for the various embodiments of the disclosure. The memory <NUM> may be implemented in the form of a memory embedded in the robot <NUM>, or implemented as a memory that can be attached to or detached from the robot <NUM>, according to the usage of stored data. For example, in the case of data for operating the robot <NUM>, the data may be stored in a memory embedded in the robot <NUM>, and in the case of data for an extended function of the robot <NUM>, the data may be stored in a memory that can be attached to or detached from the robot <NUM>. Meanwhile, in the case of a memory embedded in the robot <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)). Also, in the case of a memory that can be attached to or detached from the robot <NUM>, the memory may be implemented in 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..

Also, the memory <NUM> according to one or more embodiments may store first map data corresponding to a partial region (a first region) of a space wherein the robot <NUM> is travelling.

The distance sensor <NUM> may acquire distance data. Specifically, the distance sensor <NUM> may measure a distance between the location of the robot <NUM> and the location of an object, and acquire distance data based on the measurement result. The distance sensor <NUM> according to one or more embodiments may be implemented as a Light Detection And Ranging (LIDAR) sensor or a Time of flight (TOF) sensor, but is not limited thereto.

The processor <NUM> controls the overall operations of the robot <NUM>. Specifically, the processor <NUM> may be connected with each component of the robot <NUM>, and control the overall operations of the robot <NUM>. For example, the processor <NUM> may be connected with the memory <NUM> and the distance sensor <NUM>, and control the operations of the robot <NUM>.

According to one or more embodiments, the processor <NUM> may be referred to as various names such as a digital signal processor (DSP), a microprocessor, a central processing unit (CPU), a micro controller unit (MCU), a micro processing unit (MPU), a neural processing unit (NPU), a controller, an application processor (AP), etc., but it is described as the processor <NUM> in this specification.

The processor <NUM> may be implemented as a system on chip (SoC) or large scale integration (LSI), or in the form of a field programmable gate array (FPGA). Also, the processor <NUM> may include a volatile memory such as an SRAM, etc..

The processor <NUM> may acquire new map data (second map data) based on distance data acquired by the distance sensor <NUM> while the robot <NUM> is travelling in a specific space. Here, the second map data may include all or a part of information on the first region corresponding to the first map data, but it may not include information on the first region depending on the travelling route of the robot <NUM>. According to an embodiment, the second map data may be data in a form wherein information on the second region is added to the first map data.

Here, the first region and the second region may be regions including a sub region corresponding to a free region included in the space, and in particular, the second region may include regions of the user that can be always occupied (e.g.: a room, a living room, etc.) among regions that can be travelled by the robot <NUM>.

Also, when the second map data is acquired, the processor <NUM> may compare the first map data and the second map data stored in the memory <NUM>. If it is identified, as a result of the comparison between the first map data and the second map data, that an error does not exist in the second map data, and information on a second region other than the first region corresponding to the first map data is included in the second map data, the processor <NUM> may update the first map data on the basis of the second map data.

Here, 'update' may mean an operation of adding information on the second region other than the first region corresponding to the first map data among the information included in the second map data to the first map data. However, in case the second map data includes the first map data, 'update' may mean an operation of replacing the first map data with the second map data.

In addition, if it is identified that the second region is a region wherein a plurality of sub regions are clustered and the size of the second region is greater than or equal to a threshold size, the processor <NUM> may update the first map data on the basis of the second map data. Here, the clustered region may mean a region that is formed as sub regions corresponding to the second region included in the second map data are clustered in a specific form. For example, the clustered region may mean a region having a rectangular form, but is not limited thereto.

According to an embodiment, in order that the robot <NUM> can determine whether the second region is a clustered region, the memory <NUM> may store a neural network model. In this case, the processor <NUM> may input the second map data into the neural network model, and output information on at least one clustered region.

That is, even if information on the second region not included in the first map data is included in the second map data, the processor <NUM> may determine that the second region is in a specific form, and also, there is substantial expansion of the space only in case the second region is a region having an area that is greater than or equal to a specific size, and update the first map data on the basis of the second map data.

Also, the memory <NUM> may store information on a travelling history of the robot <NUM>. In this case, if it is identified that the robot <NUM> has a history of travelling in the second region on the basis of the travelling history information of the robot <NUM>, the processor <NUM> may update the first map data on the basis of the second map data.

In addition, the processor <NUM> may identify a first location corresponding to the current location of the robot <NUM> based on the first map data, and identify a second location corresponding to the current location of the robot <NUM> based on the second map data, and if a distance between the first location and the second location is smaller than a threshold distance, the processor <NUM> may identify that an error does not exist in the second map data. In contrast, if the distance between the first location and the second location is greater than or equal to the threshold distance, the processor <NUM> may identify that an error exists in the second map data.

Further, the processor <NUM> may compare first line information included in the first map data and second line information included in the second map data, and identify whether an error exists in the second map data based on the result of comparison. Here, the line information may be information acquired based on the information on the wall surface region included in the map data, but is not limited thereto, and a detailed content in this regard will be explained in detail with reference to <FIG> that will be described below.

Also, the processor <NUM> may acquire first histogram information based on angle information of lines included in the first map data, and acquire second histogram information based on angle information of lines included in the second map data.

If similarity between the first histogram information and the second histogram information is smaller than a threshold value, the processor <NUM> may identify that an error does not exist in the second map data, and if the similarity between the first histogram information and the second histogram information is greater than or equal to the threshold value, the processor <NUM> may identify that an error exists in the second map data. A detailed content in this regard will also be explained in detail with reference to <FIG> that will be described below.

Also, if it is identified, on the basis of the first map data and the second map data, that a boundary line between the first region and the second region is greater than or equal to a threshold length, the processor <NUM> may update the first map data on the basis of the second map data.

In addition, the robot <NUM> may further include a display, and the processor <NUM> may control the display to display a UI inquiring about whether to update the first map data on the basis of the second map data. Also, if a user instruction requesting update of the first map data is received, the processor <NUM> may update the first map data on the basis of the second map data.

Also, the robot <NUM> may further include a communication interface, and the processor <NUM> may control the communication interface to transmit the updated first map data to an external server.

<FIG> is a diagram for illustrating an operation of a robot of determining whether a space is expanded according to one or more embodiments of the disclosure.

According to <FIG>, the robot <NUM> may store first map data corresponding to a first region <NUM> of a specific space. Also, the robot <NUM> may acquire second map data including information on second regions <NUM>, <NUM>, <NUM> that are additionally identified while travelling in the specific space. In case an error does not exist in the second map data, the robot <NUM> may identify whether information on the second regions is included in the second map data.

The robot <NUM> may determine whether to update the map data based on at least one of whether the second regions are regions wherein a plurality of sub regions are clustered, whether the size of the second regions is greater than or equal to a threshold size, or whether a boundary line between the first region and the second region is greater than or equal to a threshold length.

According to <FIG>, in the expanded space <NUM>, the independent three second regions <NUM>, <NUM>, <NUM> may be included. If it is identified that at least one second region is a region wherein a plurality of sub regions are clustered, and the size of the second region is greater than or equal to a threshold size, the robot <NUM> according to an embodiment may update the first map data on the basis of the second map data.

First, the robot <NUM> may identify a region wherein sub regions (grids) having a predetermined specification are clustered. For example, the clustered region may include structured regions such as rectangular forms, and the robot <NUM> may identify an amorphous region <NUM> as an unclustered region, and identify the other structured regions <NUM>, <NUM> as clustered regions.

Also, the robot <NUM> may identify a region of which size is greater than or equal to the threshold size in the clustered region. For example, the robot <NUM> may identify a region <NUM> including <NUM> or more sub regions (grids) as a region of which size is greater than or equal to the threshold size, and identify a region <NUM> including fewer than <NUM> sub regions (grids) as a region of which size is smaller than the threshold size.

Accordingly, the robot <NUM> may determine that an amorphous region or a region of which size is smaller than the threshold size is a noise, but not a region that was identified as the space was substantially expanded, and identify only the region <NUM> which is a structured region and of which size is greater than or equal to the threshold size as a region that was additionally identified compared to the previous first region <NUM>, and update the first map data based on the information on the region <NUM>.

Meanwhile, the robot <NUM> may determine that a region of which boundary line between the first region <NUM> is smaller than the threshold length such as the amorphous region <NUM> is a noise, but not a region that was identified as the space was extended, and may not reflect the information on the region <NUM> in an update process of the first map data.

<FIG> is a diagram for illustrating an operation of a robot of determining whether a space is expanded based on travelling history information according to one or more embodiments of the disclosure.

The robot <NUM> may store travelling history information of the robot <NUM>. Here, the travelling history information may include information on a route <NUM> by which the robot <NUM> travelled in a space in a process of providing a service in the past.

The robot <NUM> may update the first map data based on the travelling history information of the robot <NUM>. Specifically, the robot <NUM> may identify regions <NUM>, <NUM> that are regions wherein a plurality of sub regions are clustered, and of which sizes are greater than or equal to the threshold size at the same time, among regions <NUM>, <NUM>, <NUM>, <NUM> that were additionally identified while the robot <NUM> was travelling other than the first region included in the first map data. Also, the robot <NUM> may identify a region <NUM> wherein there is a history that the robot <NUM> travelled from among the regions <NUM>, <NUM> identified based on the past travelling route <NUM> of the robot <NUM> included in the travelling history information, and update the first map data based on the information on the region <NUM>.

That is, the robot <NUM> may identify the region <NUM> wherein there is no history that the robot <NUM> travelled as a region that is not directly related to service provision by the robot (e.g.: a bathroom, a balcony) even though it is a region that was additionally identified according to expansion of the space, and may not reflect the information on the region <NUM> in an update process of the first map data.

<FIG> is a diagram for illustrating determination of whether to update a map after re-recognition of a location according to one or more embodiments of the disclosure.

According to <FIG>, the robot <NUM> may depart from the previous location <NUM> and travel in the first region <NUM>. Also, the processor <NUM> may identify the current location of the robot <NUM> within the first region <NUM>. Specifically, the processor <NUM> may identify the current location of the robot <NUM> through two kinds of methods.

First, the processor <NUM> may identify a first location <NUM> corresponding to the current location of the robot <NUM> based on the speed data of the robot <NUM> per unit time and the first map data. For example, the processor <NUM> may identify the first location <NUM> based on the speed data of the robot <NUM> corresponding to the unit time (one second) and the first map data while the robot <NUM> is travelling during three seconds from the previous location <NUM>.

Secondly, the processor <NUM> may identify a second location <NUM> corresponding to the current location of the robot <NUM> based on the second map data. According to <FIG>, the processor <NUM> may acquire the second map data including information on the second region <NUM> based on the distance data acquired by the distance sensor <NUM> after the robot <NUM> travelled during three seconds from the previous location <NUM>. Also, the processor <NUM> may identify the second location <NUM> corresponding to the current location of the robot in the second map data.

In case the location of the robot <NUM> was identified incorrectly, the second map data acquired based on the location may include information on a region in a form wherein a region included in the first map data moved in parallel to a specific direction. Thus, the processor <NUM> may identify the distance d between the first location <NUM> and the second location <NUM>, and if the identified distance d is smaller than a threshold distance, the processor <NUM> may identify that an error does not exist in the second map data, and update the first map data based on the information on the second region <NUM> included in the second map data.

That is, in case the assumed location <NUM> based on the speed data and the assumed location <NUM> based on distance sensing is different by a specific level or more, the robot <NUM> may determine that an error exists in the second map data, and may not update the first map data even though there is the second region <NUM> that was newly identified in the second map data.

<FIG> is a diagram for illustrating determination of whether to update a map based on line information according to one or more embodiments of the disclosure.

According to <FIG>, the processor <NUM> may compare the first map data <NUM> stored in the memory <NUM> and the second map data <NUM> acquired based on the distance data acquired by the distance sensor <NUM>. Specifically, the processor <NUM> may compare first line information included in the first map data <NUM> and second line information included in the second map data <NUM>, and identify whether an error exists in the second map data <NUM> based on the result of comparison.

For example, the processor <NUM> may acquire first histogram information <NUM> based on angle information of lines included in the first map data <NUM>, and acquire second histogram information <NUM> based on angle information of lines included in the second map data <NUM>. Also, if similarity between the first histogram information <NUM> and the second histogram information <NUM> is smaller than a threshold value, the processor <NUM> may identify that an error does not exist in the second map data <NUM>, and update the first map data <NUM> on the basis of the second map data <NUM>.

According to <FIG>, in the second histogram information <NUM>, information <NUM>, <NUM> on the second region <NUM> newly identified in the second map data <NUM> may be included. In case the robot <NUM> acquired the map data corresponding to the second region <NUM> incorrectly, the second region <NUM> identified as a warped region may include lines corresponding to the angle information <NUM>, <NUM> other than the angle information within a threshold range based on <NUM> degrees or <NUM> degrees unlike the lines included in the first region.

In this case, in the second histogram information <NUM>, the angle information <NUM>, <NUM> within the threshold range based on <NUM> degrees or <NUM> degrees may be included, unlike the first histogram information <NUM>. In case the number of the lines (or the ratio of the lines) corresponding to the information <NUM>, <NUM> is greater than or equal to a threshold value, the processor <NUM> according to an embodiment may identify that an error exists in the second map data <NUM>, and may not update the first map data <NUM>.

That is, through an operation as above, the robot <NUM> may update the first map data <NUM> on the basis of the second map data <NUM> only in case the second region <NUM> newly identified in the second map data <NUM> was identified correctly without warping.

<FIG> is a diagram for illustrating an operation of a robot of displaying a UI according to one or more embodiments of the disclosure.

According to <FIG>, the robot <NUM> may further include a display <NUM>. The processor <NUM> may control the display <NUM> to display a UI <NUM> related to the second map data including the second region and a UI <NUM> inquiring about whether to update the first map data on the basis of the second map data.

For example, in case at least one of whether an error exists in the second map data or whether substantial expansion of the space was performed based on the second region included in the second map data was not identified clearly, the robot <NUM> may provide the UIs <NUM>, <NUM> requesting a user instruction regarding whether to update to the user.

Also, the robot <NUM> may further include a user interface (not shown) that can receive input of the user, and the user interface according to an embodiment may include a touch sensor combined with the display <NUM>, but is not limited thereto.

The user may select one of 'Yes <NUM>' or 'No <NUM>' through the user interface, and the processor <NUM> may identify whether there was an update request by the user based on the item selected by the user. In case it was identified that the user selected 'Yes <NUM>,' the processor <NUM> may identify that a user instruction regarding an update request was received, and update the first map data on the basis of the second map data.

In contrast, in case it was identified that the user selected 'No <NUM>' or the user did not make any choice within a threshold time, the processor <NUM> may identify that a user instruction regarding an update request was not received, and may not update the first map data.

<FIG> is a diagram for illustrating in detail a functional configuration of a robot according to one or more embodiments of the disclosure.

According to <FIG>, the robot <NUM> may include a memory <NUM>, a distance sensor <NUM>, a processor <NUM>, a display <NUM>, a communication interface <NUM>, a user interface <NUM>, and a driving part <NUM>. Among the components illustrated in <FIG>, regarding components that overlap with the components illustrated in <FIG>, detailed explanation will be omitted.

The display <NUM> may be implemented as displays in various forms such as a liquid crystal display (LCD), an organic light emitting diodes (OLED) display, a quantum dot light-emitting diodes (QLED) display, a plasma display panel (PDP), etc. In the display <NUM>, a driving circuit that may be implemented in forms such as a TFT, a low temperature poly silicon (LTPS) TFT, an organic TFT (OTFT), etc., and a backlight unit, etc. may also be included together. Meanwhile, the display <NUM> may be implemented as a flexible display, a 3D display, etc..

The communication interface <NUM> may input and output various types of data. For example, the communication interface <NUM> may transmit and receive various types of data with an external device (e.g., a source device), an external storage medium (e.g., a USB memory), and an external server (e.g., a web hard) through communication methods such as Wi-Fi based on AP (Wi-Fi, 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), Audio Engineering Society/European Broadcasting Union (AES/EBU), optical, coaxial, etc..

The processor <NUM> according to an embodiment may control the communication interface <NUM> to transmit the updated first map data to an external server.

The user interface <NUM> is a component that is involved in the robot <NUM>'s performing of an interaction with the user. For example, the user interface <NUM> may include at least one of a touch sensor, a motion sensor, a button, a jog dial, a switch, a microphone, or a speaker, but is not limited thereto.

The driving part <NUM> is a device that can make the robot <NUM> travel. The driving part <NUM> may adjust the travelling direction and the travelling speed according to control by the processor <NUM>, and the driving part <NUM> according to an embodiment may include a driving force generation device that generates a driving force for the robot <NUM> to travel (e.g.: a gasoline engine, a diesel engine, a liquefied petroleum gas (LPG) engine, an electronic motor, etc. according to the used fuel (or the energy source), a steering device for adjusting the travelling direction (e.g.: manual steering, hydraulics steering, electronic control power steering (EPS), etc.), a travelling device that makes the robot <NUM> travel according to the driving force (e.g.: a wheel, a propeller, etc.). Here, the driving part <NUM> may be implemented in modified forms according to the travelling type (e.g.: a wheel type, a walking type, a flying type, etc.) of the robot <NUM>.

<FIG> is a flow chart for illustrating a map update process based on a user's update request according to one or more embodiments of the disclosure.

According to <FIG>, the robot <NUM> may re-recognize the location of the robot <NUM> based on the first map data stored in the memory <NUM> and start travelling. According to an embodiment, in the travelling process, the robot <NUM> may acquire second map data based on distance data acquired through the distance sensor <NUM> through a simultaneous localization and mapping (SLAM) method, and determine whether an error exists in the acquired second map data in operation S910.

Here, in case it is identified that an error exists in the second map data in operation S910:Y, the robot <NUM> may determine to not update the first map data, and delete the acquired second map data.

In contrast, in case it is identified that an error does not exist in the second map data in operation S910:N, the robot <NUM> may identify whether the space that the robot <NUM> is travelling was substantially expanded based on the information on the second region included in the second map data. If it is identified that the second region is a region wherein a plurality of sub regions are clustered and the size of the second region is greater than or equal to a threshold size in operation S920:Y, the robot <NUM> according to an embodiment may store the second map data, and update the first map data on the basis of the second map data.

However, in case it is identified that the second region is not a clustered region, or even if the second region is a clustered region, the size of the second region is smaller than the threshold size in operation S920:N, the robot <NUM> may identify whether the user's confirmation regarding whether to update the first map data is needed in operation S930.

In case the robot <NUM> identifies that the user's confirmation is not needed in operation S930:N, the robot <NUM> may determine to not update the first map data, and delete the acquired second map data.

However, in case it is identified that the user's confirmation is needed in operation S930:Y, the robot <NUM> may display a UI inquiring about whether to update the first map data to the user in operation S940. Also, the robot <NUM> may identify whether a user instruction requesting update of the first map data was received in operation S950.

If a user instruction requesting update of the first map data is received in operation S950:Y, the robot <NUM> may store the second map data, and update the first map data on the basis of the second map data. In contrast, if a user instruction requesting update of the first map data is not received in operation S950:N, the robot <NUM> may determine to not update the first map data, and delete the acquired second map data.

It is obvious that the aforementioned operations of the robot <NUM> can repeatedly occur per specific cycle or whenever a specific event occurs.

<FIG> is a flow chart for illustrating a controlling method according to one or more embodiments of the disclosure.

In the controlling method according to one or more embodiments of the disclosure, if second map data is acquired while the robot travels in a specific space, the first map data and the second map data are compared in operation S1010.

Then, if it is identified, as a result of the comparison, that an error does not exist in the second map data and information on a second region other than the first region corresponding to the first map data is included in the second map data, the first map data is updated on the basis of the second map data in operation S1020.

Here, in the updating operation S1020, if it is identified that the second region is a region wherein a plurality of sub regions are clustered and the size of the second region is greater than or equal to a threshold size, the first map data may be updated on the basis of the second map data.

Here, in the updating operation S1020, if it is identified that the robot has a history of travelling in the second region on the basis of the travelling history information of the robot, the first map data may be updated on the basis of the second map data.

Also, the comparing operation S1010 may include the steps of identifying a first location corresponding to the current location of the robot based on the first map data, identifying a second location corresponding to the current location of the robot based on the second map data, based on a distance between the first location and the second location being smaller than a threshold distance, identifying that an error does not exist in the second map data, and based on the distance between the first location and the second location being greater than or equal to the threshold distance, identifying that an error exists in the second map data.

Also, in the comparing operation S1010, first line information included in the first map data and second line information included in the second map data may be compared, and it may be identified whether an error exists in the second map data based on the result of comparison.

Here, the comparing operation S1010 may include the steps of acquiring first histogram information based on angle information of lines included in the first map data, acquiring second histogram information based on angle information of lines included in the second map data, based on similarity between the first histogram information and the second histogram information being smaller than a threshold value, identifying that an error does not exist in the second map data, and based on the similarity between the first histogram information and the second histogram information being greater than or equal to the threshold value, identifying that an error exists in the second map data.

Meanwhile, in the updating operation S1020, based on identifying, on the basis of the first map data and the second map data, that a boundary line between the first region and the second region is greater than or equal to a threshold length, the first map data may be updated on the basis of the second map data.

Meanwhile, methods according to the aforementioned various embodiments of the disclosure may be implemented in forms of applications that can be installed on conventional robots.

Also, the methods according to the aforementioned various embodiments of the disclosure may be implemented just with software upgrade, or hardware upgrade of conventional robots.

In addition, the aforementioned various embodiments of the disclosure may be performed through an embedded server provided on a robot, or at least one external server.

Meanwhile, the aforementioned various embodiments 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 the processor <NUM> 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 the robot <NUM> according to the aforementioned various embodiments of the disclosure may be stored in a non-transitory computer-readable medium. Computer instructions stored in such a non-transitory computer-readable medium make the processing operations at the robot <NUM> according to the aforementioned various embodiments performed by a specific machine, when the instructions are executed by the processor of the specific machine.

Claim 1:
A robot (<NUM>) comprising:
a memory (<NUM>) storing first map data corresponding to a first region of a specific space;
a distance sensor (<NUM>); and
a processor (<NUM>) configured to:
based on acquiring second map data on the basis of distance data acquired by the distance sensor (<NUM>) while the robot (<NUM>) is travelling in the specific space, compare the first map data and the second map data, and
based on identifying, as a result of the comparison, that an error does not exist in the second map data and information on a second region other than the first region is included in the second map data, update the first map data on the basis of the second map data,
characterized in that
the second region is a region comprising a plurality of sub regions clustered in a specific form and the size of the second region is greater than or equal to a threshold size.