Patent Publication Number: US-2020275814-A1

Title: Moving robot and controlling method

Description:
TECHNICAL FIELD 
     The present disclosure relates to a moving robot and a controlling method thereof, and, particularly, a moving robot which performs cleaning by traveling in a cleaning region and a controlling method thereof. 
     BACKGROUND 
     A moving robot is an apparatus that automatically performs cleaning by suctioning foreign substances, such as dust, from a floor of an area to be cleaned. 
     The moving robot may sense distances to an obstacle, such as furniture, office equipment, and walls, in a cleaning region and maneuver to avoid the obstacle. 
     The moving robot generates a map while traveling in a region, and travels based on the map when performing cleaning, so that all regions are prevented from being left uncleaned, and the moving robot tends to store information on an obstacle detected during the cleaning. 
     The moving robot may be in a messy and dusty region depending on an indoor environment, and thus, it is necessary for the moving robot to perform cleaning in response to the messy and dusty condition, but it is difficult to reflect such indoor environment in the cleaning operation. 
     In order to address this drawback, Korean Patent Application No. 20110032346A (Apr. 7, 2011) discloses a robot cleaner which generates a cleaning map by searching for a cleaning region and displays a contaminant degree on the map. 
     However, although the robot cleaner displays the contaminant degree, a change in contamination in a target region due to cleaning is not displayed, and therefore, there is a limitation in cleaning control. 
     In addition, as the order in which cleaning is to be performed is set merely based on a degree of contamination, a relatively highly contaminated region is cleaned repeatedly and thus redundant cleaning is performed unnecessarily and a relatively less contaminated region is excluded from the cleaning operation. 
     That is, cleaning is performed merely based on a degree of contamination, resulting in an increased cleaning time, and, in particular, a particular region is excluded from the cleaning and thus the whole regions may not be cleaned evenly. 
     SUMMARY 
     Technical Problem 
     The present disclosure provides a moving robot and a controlling method thereof, in which a contamination level of each cleaning region is determined indoor, wherein a region is set as a cleaning region in consideration of the number of times the corresponding region was cleaned and therefore it is possible to clean the entire indoor area while preventing cleaning the same region from being cleaned unnecessarily. 
     Technical Solution 
     In one general aspect of the present disclosure, there is provided a moving robot including: a movable main body; a travel drive unit configured to move the main body; a data unit configured to store data for each region; a dust sensor configured to detect dust in air suctioned during cleaning; and a controller configured to control the travel drive unit so as to perform cleaning while traveling in a traveling area distinguished into a plurality of regions, wherein the controller is further configured to: store, in the data unit, dust information detected by the dust sensor and a number of times of cleaning in each region; and set a cleaning region and a non-cleaning region based on cleaning data, which is calculated based on the dust information and the number of times of cleaning, so as to perform cleaning of the cleaning region. 
     The controller may be further configured to: distinguish each region allowed for traveling in the plurality of regions into cells of a predetermined size; store, as the dust information, a number of cells in each region and a number of cells where dust is detected by the dust sensor; calculate the cleaning data based on a number of cells in each region, a number of cells where the dust is detected, and a number of times of cleaning. 
     The controller may be further configured to; when the cleaning data has a value equal to or greater than a reference value, set a region as a cleaning region; and, when the cleaning data has a value smaller than the reference value, set the region as a non-cleaning region. 
     In another general aspect of the present disclosure, there is provided a controlling method of a moving robot, the method including: receiving a cleaning command with respect to a traveling area divided into a plurality of regions; checking cleaning data which is calculated based on a number of times of cleaning in each region and dust information; setting a cleaning region and a non-cleaning region by comparing the cleaning data with a reference value; performing cleaning of the cleaning region while traveling; storing dust information by detecting dust in air suctioned during cleaning; and updating the cleaning data based on the number of times of cleaning in each region and the dust information. 
     The method may further include, before setting a region as the non-cleaning region in a case where the cleaning data has a value smaller than the reference value, setting the region as a cleaning region when at least one of the following conditions is met: the region has been set as the non-cleaning region a preset number of times or more; there is a cell with a density of dust equal to or greater than a reference density; and a preset time has elapsed since last cleaning. 
     Advantageous Effects 
     A moving robot and a controlling method thereof according to the present disclosure may enable detecting a density of dust detected by the moving robot while traveling, counting the number of times of cleaning in each region, and calculating cleaning data for each region so as to set a next cleaning region for a next cleaning operation. 
     The moving robot of the present disclosure sets a cleaning region based on cleaning data to thereby prevent cleaning from being unnecessarily repeatedly performed, and allows cleaning to be performed based on the number of times of cleaning despite a small amount of dust, and therefore, there are the advantages that the entire indoor area is maintained in a uniform clean state and cleaning efficiency is enhanced. 
     In addition, the moving robot of the present disclosure performs cleaning by distinguishing an indoor area into a plurality of regions, and accurately determines an amount of dust by detecting an amount of dust in each region on a per cell basis, wherein it is possible to perform cleaning based on an amount of dust in each cell even when the regions are not allowed to be distinguished. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIGS. 1( a ) and 1( b )  are perspective views of a moving robot according to an embodiment of the present disclosure. 
         FIGS. 2( a ) and 2( b )  are horizontal angled views of the moving robot shown in  FIGS. 1( a )  and  1 ( b ). 
         FIGS. 3( a ) and 3( b )  are front views of the moving robot shown in  FIGS. 1( a ) and 1( b ) . 
         FIG. 4  is a bottom view of the moving robot shown in  FIGS. 1( a ) and 1( b ) . 
         FIG. 5  is a block diagram illustrating major components of a moving robot according to an embodiment of the present disclosure. 
         FIG. 6  is a diagram illustrating an example of how to generate a map and distinguish regions by a moving robot according to an embodiment of the present disclosure. 
         FIG. 7  is a diagram referred to for explaining how to distinguish cells in each region by a moving robot according to an embodiment of the present disclosure. 
         FIG. 8  is a diagram referred to for explaining a detection method in response to movement of a moving robot according to an embodiment of the present disclosure. 
         FIG. 9  is a diagram referred to for explaining a change in environment of a region with respect to a moving robot according to an embodiment of the present disclosure. 
         FIG. 10  is a flowchart illustrating a cleaning method of a moving robot according to an embodiment of the present disclosure. 
         FIG. 11  is a flowchart illustrating a method of setting a cleaning region by a moving robot according to an embodiment of the present disclosure. 
         FIG. 12  is a flowchart illustrating a method of updating data by a moving robot according to an embodiment of the present disclosure. 
     
    
    
     DESCRIPTION 
     Advantages and features of the moving robot of the present disclosure and a method of cleaning using the same will be clearly understood from embodiments described below in detail with reference to the accompanying drawings. However, the present disclosure is not limited to the following embodiments and may be implemented in various different forms, and the embodiments are provided merely for complete description of the present disclosure and to fully convey the scope of the disclosure to those of ordinary skill in the art to which the present disclosure pertains, and the present disclosure is defined only by the scope of the claims. Throughout the present disclosure, like numbers refer to like elements. A control component in the present disclosure may be configured as at least one processor. 
       FIGS. 1( a ) and 1( b )  are perspective views of a moving robot according to an embodiment of the present disclosure.  FIGS. 2( a ) and 2( b )  are horizontal angled views of the moving robot shown in  FIGS. 1( a ) and 1( b ) .  FIGS. 3( a ) and 3( b )  are front views of the moving robot shown in  FIGS. 1( a ) and 1( b ) .  FIG. 4  is a bottom view of the moving robot shown in  FIGS. 1( a ) and 1( b ) . 
     Referring to  FIGS. 1( a )  to  4 , a moving robot  1  according to an embodiment of the present disclosure includes a main body  10  traveling on a floor a cleaning area to suction foreign substances such as dust on the floor, and a detection means provided on the front surface of the main body  10  to detect an obstacle. 
     The main body  10  may include: a casing  11  which defines an external appearance of the main body  10  and internally defines a space in which constituent elements of the main body  10  are accommodated; a suction unit  34  which is provided in the casing  11  to suction foreign substances such as dust or trash; and a left wheel  36 L and a right wheel  36 R which are rotatably provided on the casing  11 . The main body  10  travels on the floor of the cleaning area in response to rotations of the left wheel  36 L and the right wheel  36 R, and, in this process, foreign substances are suctioned through the suction unit  34 . 
     The suction unit  34  may include: a suction fan (not illustrated) which generates suction force; and a suction port  10   h  through which an air stream generated by the rotation of the suction fan is suctioned. The suction unit  34  may further include: a filter (not illustrated) which collects foreign substances from the air stream suctioned through the suction port  10   h ; and a foreign substance collection container (not illustrated) in which the foreign substances collected by the filter accumulate. 
     In addition, the main body  10  may include a travel unit which drives the left wheel  36 L and the right wheel  36 R. The travel unit may include at least one drive motor. At least one drive motor may include a left-wheel drive motor for rotating the left wheel  36 L, and a right-wheel drive motor for rotating the right wheel  36 R. 
     As the left-wheel drive motor and the right-wheel drive motor are controlled by a travel controller of a controller to operate independently, the main body  10  may travel forward in a straight, travel backward, or rotate. For example, when the main body  10  travels forward, the left-wheel drive motor and the right-wheel drive motor are rotated in the same direction: however, when the left-wheel drive motor and the right-wheel drive motor are rotated at different speeds or in different directions, a direction of travel of the main body may be changed. At least one auxiliary wheel  37  may be further provided to stably support the main body  10 . 
     A plurality of brushes  35  may be further provided on the front side of the lower surface portion of the casing  11 , and may each include bristles having a plurality of blades which radially extend. Dust is removed from the floor of the cleaning area due to rotation of the brushes  35 , and, in turn, the dust removed from the floor is suctioned through the suction port  10   h  and then collected in the collection container. 
     A control panel may be provided on the upper surface of the casing  11 , the control panel which includes a manipulation unit  160  to receive various user commands for controlling the robot cleaner  1 . 
     As shown in  FIG. 1( a ) , the detection means includes a sensor unit  150  for detecting an obstacle using a plurality of sensors, and an image acquisition unit  140  and  170  for capturing an image. 
     As shown in  FIG. 1( b ) , the detection means may include an obstacle detection unit  100  which is provided on the front surface of the body  10  to emit a light pattern and detect an obstacle from a captured image. The obstacle detection unit  100  may include an image acquisition unit  140 , and the detection means may include both the obstacle detection unit and the sensor unit  150 . 
     The imaging acquisition unit  140  may be provided to face a ceiling, as shown in  FIG. 2  ( a ), or may be provided to face a forward direction, as shown in  FIG. 3( b ) . In some embodiments, any one image acquisition units  140  may be provided or two image acquisition units respectively facing the forward direction and the ceiling may be provided. 
     The obstacle detection unit  100  may be provided on the front surface of the main body  10 . 
     The obstacle detection unit  100  may be fixed to the front surface of the casing  11 , and may include a first pattern emission unit  120 , a second pattern emission unit  130 , and an image acquisition unit  140 . In this case, the image acquisition unit is basically installed below the pattern emission units, as shown in the drawings, but the image acquisition unit may be disposed between the first and second pattern emission units in some embodiments. 
     In addition, as described above, a second image acquisition unit  170  may be further provided on the upper surface of the main body. The second image acquisition unit  170  captures an image of the upper surface of the main body, that is, an image of a ceiling. 
     The main body includes a rechargeable battery  38 , and, when a charging terminal  33  of the battery  38  is connected to a commercial power source (e.g., a power plug in the house) or when the main body  10  is docked with a separate charging station  400  connected to the commercial power source, a charging terminal  33  of the battery  38  may be electrically connected to the commercial power source through its contact with a terminal  410  of the charging station. Electrical constituent elements of the moving robot  1  may receive power from the battery  38 , and thus, the moving robot  1  may perform autonomous traveling when the battery  38  is charged, even if the robot cleaner  1  is electrically separated from the commercial power source. 
       FIG. 5  is a block diagram illustrating major components of a moving robot according to an embodiment of the present disclosure. 
     As illustrated in  FIG. 5 , the moving robot  1  may include a travel drive unit  250 , a cleaning unit  260 , a data unit  280 , an obstacle detection unit  100 , a sensor unit  150 , a communication unit  270 , a manipulation unit  160 , and a controller  200  which controls the overall operation of the mobile robot  1 . 
     The manipulation unit  160  may include at least one of a button, a switch, a touch pad, or the like to receive a user command. The manipulation unit may be provided on the upper surface of the main body  10 , as described above. 
     The data unit  280  may store a detection signal received from the obstacle detection unit  100  or the sensor unit  150 , reference data used for an obstacle recognition unit  210  to determine existence of an obstacle, and obstacle information which is information on a detected obstacle. In addition, the data unit  280  may store control data for controlling operation of the moving robot, data generated according to a cleaning mode of the moving robot, and a map including obstacle information generated by a map generator. The data unit  280  may store a basic map, a cleaning map, a user map, and a guide map. An obstacle detection signal includes an ultrasonic/laser detection signal generated by the sensor unit, and an image acquired by the image acquisition unit. 
     In addition, the data unit  280  may store data readable by a microprocessor, and may include Hard Disk Drive (HDD), Solid State Disk (SSD), Silicon Disk Drive (SDD), Read-Only Memory (ROM), Random-Access Memory (RAM), Compact Disk Read Only Memory (CD-ROM), a magnetic tape, a floppy disk, an optical data storage device, etc. 
     The communication unit  270  communicates with a terminal (not shown) in a wireless communication method. In addition, the communication unit  270  may be connected to the Internet via a home network to communicate with an external server or a terminal which controls the moving robot. 
     The communication unit  270  may transmit a generated map to the terminal, receive a cleaning command from the terminal, and transmits data on an operation status of the moving robot and a clean state. The communication unit  270  may include not just a short-range wireless communication module, such as Zigbee and Bluetooth, but Wi-Fi and Wibro to transmit and receive data. 
     Meanwhile, the terminal is a device which is equipped with a communication module for network access, a program for controlling the moving robot, or an application for controlling the moving robot, and the terminal may be a computer, a laptop, a smartphone, a PDA, a tablet PC, and the like. In addition, the terminal may be a wearable device such as a smart watch. 
     The travel drive unit  250  includes at least one drive motor to cause the moving robot to travel in accordance with a control command from a travel controller  230 . The travel drive unit  250  may include a left-wheel drive motor for rotating the left wheel  36 (L), and a right-wheel drive motor for rotating the right wheel  36 (R). 
     The cleaning unit  260  may operate the brushes to facilitate suctioning dust or foreign substances around the moving robot, and may operate a suction device to suction the dust or the foreign substances. The cleaning unit  260  controls operation of the suction fan provided in the suction unit  34 , which suctions foreign materials such as dust or waste, so that dust may be drawn into the foreign substance collection container through the suction hole. 
     The obstacle detection unit  100  includes a first pattern emission unit  120 , a second pattern emission unit  130 , and an image acquisition unit  140 . 
     The sensor unit  150  includes a plurality of sensors to supplement detecting an obstacle. The sensor unit  150  detects an obstacle existing in front of the main body  10 , that is, in a forward direction of travel, using at least one of a laser light, an ultrasonic light, or an infrared light. If a signal transmitted by the sensor unit  150  is reflected and then incident back, the sensor unit  150  inputs a signal including information on the existence of an obstacle or a distance to the obstacle to the controller  200 . 
     In addition, the sensor unit  150  includes a dust sensor  151 . 
     The dust sensor  151  is provided on any one side of the suction hole to detect dust in suctioned air. The dust sensor  151  detects presence, an amount, or a density of dust, and inputs a result of the detection to the controller  200 . 
     For example, the dust sensor may be configured as a plurality of dust sensors, and may detect simply presence of dust in suctioned air or may detect a density of dust for a p[redetermined time by detecting the number of dust particles in the suctioned air. When configured to detect just presence of dust, the dust sensor may count the number of times of detection of dust at every predetermined time unit and determine an amount of dust based on the number of times of detection of dust in each predetermine time unit. 
     A density of dust in suctioned air for a predetermined period of time may be determined. The dust sensor may detect a density of dust per size, and may detect a density of dust in different categories such as PM 1.0, PM 2.5, and PM 10 according to dust types. 
     The sensor unit  150  may include at least one inclination sensor (not shown) to detect inclination of the main body. The inclination sensor calculates a direction of inclination and an angle of inclination when the main body is inclined forward, rearward, leftward, or rightward. The inclination sensor includes may include a tilt sensor, an acceleration sensor, and the like, and the acceleration sensor may be any one of gyro type, inertial type, and silicon semiconductor type. 
     In addition, the sensor unit  150  may detect a floor state of a cleaning region. 
     The obstacle detection unit  100  is configured such that the first pattern emission unit  120 , the second pattern emission unit  130 , and the image acquisition unit  140  are provided on the front surface of the main body  10 , as described above to emit a light of the first pattern P 1  and a light of the second pattern P 2  in an region in front of the moving robot and an image is acquired by capturing the light of the emitted patterns. 
     The obstacle detection unit  100  transmits a detection signal including the acquired image to the controller  200 . 
     Each of the first and second pattern emission units  120  and  130  in the obstacle detection unit  100  may include a light source, and an Optical Pattern Projection Element (OPPE) which generates a predetermined pattern by transmitting light emitted from the light source. The light source may be a laser diode (LD), a light emitting diode (LED), and the like. Laser light has excellent monochromaticity, straightness, and connectivity properties, as compared to other light sources, thereby enabling fine distance measurement, and, particularly, since infrared light or visible light has a high deviation in precision in distance measurement according to factors, such as colors and materials of a target object, it is desired to use the LD as the light source. The OPPE may include a lens or a diffractive optical element (DOE). Depending on the configuration of the respective OPPEs included in the pattern emission units  120  and  130 , light in various patterns may be emitted. 
     The first pattern emission unit  120  may emit a light of the first pattern (P 1 , which will be hereinafter referred to as a first patterned light) downward and forward from the main body  10 . Accordingly, the first patterned light P 1  may be emitted to the floor of the cleaning area. 
     The first patterned light P 1  may be in a horizontal line shape. Further, the first patterned light P 1  may also be in a cross shape with a horizontal line intersecting a vertical line, but aspects of the present disclosure are not limited to the drawings, and the first patterned light P 1  may be in any of various shapes. 
     The first pattern emission unit  120 , the second pattern emission unit  130 , and the image acquisition unit  140  may be arranged vertically in a line. The image acquisition unit  140  is provided below the first pattern emission unit  120  and the second pattern emission unit  130 , but aspects of the present disclosure are not limited thereto, and the image acquisition unit  140  may be dispose above the first pattern emission unit and the second pattern emission unit. 
     In some embodiments, the first pattern emission unit  120  is provided on the top to emit the first patterned light P 1  downward and forward so as to detect an obstacle located at a position lower than the first pattern emission unit  120 , and the second pattern emission unit  130  is provided below the first pattern emission unit  120  to emit a light of the second pattern (P 1 , which will be hereinafter referred to as a second patterned light)upward and forward. Thus, the second patterned light P 2  may be emitted onto an obstacle or a part thereof located at a position higher than at least the second pattern emission unit  130  from a wall or a floor in the cleaning area. 
     The second pattern light P 2  may be different from the first patterned light P 1 , and desirably include a horizontal line. The horizontal line is not necessarily a continuous line segment and may be a dotted line. 
     Meanwhile, in the above-described  FIG. 2( b ) , an emission angle θh is a horizontal emission angle of the first patterned light P 1  emitted by the first pattern emission unit  120 , and the emission angle θh represents an angle formed between both ends of the horizontal line and the first pattern emission unit  120 , and it is desired to set the emission angle θh in a range of 130° to 140°, but aspects of the present disclosure are not limited thereto. The dotted line of  FIG. 2( b )  represents a direction forward of the mobile robot  1 , and the first patterned light P 1  may be symmetrical with respect to the dotted line. 
     Similarly to the first pattern emission unit  120 , it is desired to set a horizontal emission angle of the second pattern emission unit  130  in a range of 130° to 140°, and in some embodiments, the second patterned light P 2  may be emitted at the same horizontal emission angle as that of the first pattern emission unit  120 , and, in this case, the second patterned light P 2  may be also symmetrical with respect to the dotted line of  FIG. 2( b ) . 
     The image acquisition unit  140  may acquire a forward image of the main body  10 . Particularly, the patterned lights P 1  and P 2  are displayed on an image acquired by the image acquisition unit  140  (hereinafter referred to as an acquired image), and images of the patterned lights P 1  and P 2  displayed on the acquired image will be hereinafter referred to as optical patterns, and, because the optical patterns are images formed on the image sensor by the first patterned light P 1  and the second patterned light P 2  which are incident on an actual space, the same reference numerals as the first patterned light P 1  and the second patterned light P 2  will be given to a first optical pattern P 1  corresponding to the first patterned light P 1  and a second optical pattern P 2  corresponding to the second patterned light P 2 . 
     The image acquisition unit  140  may include a digital camera configured to convert an image of a subject into an electrical signal, convert the electrical signal into a digital signal, and store the digital signal in a memory device, and the digital camera includes an image sensor (not shown) and an image processor (not shown). 
     The image sensor is a device that converts an optical image into an electrical signal, and is formed as a chip having a plurality of photodiodes integrated therein, and the photodiodes may be, for example, pixels. When light having passed through the lens forms an image on the chip, charges are accumulated in the respective pixels constructing the image, and the charges accumulated in the pixels are converted into an electrical signal (for example, voltage). A Charge Coupled Device (CCD), a Complementary Metal Oxide Semiconductor (CMOS), and the like are well known examples of the image sensor. 
     The image processor generates a digital image based on an analog signal output from the image sensor. The image processor includes: an A/D converter to convert an analog signal into a digital signal; a buffer memory to temporarily store digital data according to the digital signal output from the A/D converter; and a digital signal processor (DSP) to generate a digital image by processing the data stored in the buffer memory. 
     The controller  200  include an obstacle recognition unit  210 , a map generation unit  220 , a travel controller  230 , a location recognition unit  240 . 
     The obstacle recognition unit  210  may determine presence of an obstacle based on an acquired image received from the obstacle detection unit  100 , and control the travel drive unit  250  so as to pass or avoid the obstacle by changing a direction of travel or a path of travel based on obstacle information. 
     The travel controller  230  controls the travel drive unit  250  so as to control the left wheel driving motor and the right wheel driving motor independently from each other, such that the main body  10  may move forward or turn. 
     The obstacle recognition unit  210  stores an obstacle detection signal, received from the sensor unit  150  or the obstacle detection unit  100 , in the data unit  280  and determines an obstacle by analyzing the obstacle detection signal. 
     The obstacle recognition unit  210  determines presence of an obstacle located in the direction of travel based on a signal from the sensor unit, and determines a location, a size, and a shape of the obstacle by analyzing an acquired image. 
     The obstacle recognition unit  210  extracts a pattern by analyzing the acquired image. The obstacle recognition unit  210  extracts an optical pattern which is obtained by emitting a patterned light onto a floor or an obstacle from the first pattern emission unit or the second pattern emission unit, and determines the obstacle based on the extracted optical pattern. 
     The obstacle recognition unit  210  detects the optical patterns P 1  and P 2  from an image (an acquired image) acquired by the image acquisition unit  140 . The obstacle recognition unit  210  may detect features, such as dots, lines, sides, and the like, of pixels forming the acquired image, and, based on the detected features, the pattern detection unit  210  may detect the optical patterns P 1  and P 2 , or dots, lines, sides, and the like of the optical patterns P 1  and P 2 . 
     The obstacle recognition unit  210  may extract a horizontal line forming the first optical pattern P 1  and a horizontal line forming the second optical pattern P 2  by extracting line segments line segments which are formed by consecutive pixels brighter than neighboring pixels. However, aspects of the present disclosure are not limited thereto, and, using well-known techniques for extracting a desired pattern from a digital image, the obstacle recognition unit  210  may extract the first optical pattern P 1  and the second optical pattern P 2 . 
     In addition, the obstacle recognition unit  210  determines presence of an obstacle based on the detected patterns, and determines a shape of the obstacle. The obstacle recognition unit  210  may determine an obstacle based on the first optical pattern and the second optical pattern, and calculate a distance to the obstacle. In addition, the obstacle recognition unit  210  may determine a size (height) of an obstacle based on the respective shapes of the first optical pattern and the second optical pattern and a change in an optical pattern occurring during approaching the obstacle. 
     The obstacle recognition unit  210  may determine an obstacle based on a distance from the first optical pattern and the second optical pattern to a reference position. The obstacle recognition unit  210  may determine that there is a downhill slope when the first optical pattern P 1  is located at a position lower than the reference position, and the obstacle recognition unit  210  may determine that there is a cliff when the first optical pattern P 1  disappears. In addition, the obstacle recognition unit  210  may determine an obstacle located in a direction of travel or an obstacle located above when the second optical pattern appears. 
     The obstacle recognition unit  210  determines inclination of the main body based on inclination information received from the inclination sensor included in the sensor unit  150 , and, when the main body is inclined, the obstacle recognition unit  210  compensates for the inclination with respect to a position of an optical pattern in an acquired image. 
     The travel controller  230  controls the travel drive unit  250  to perform cleaning of a region designated from among cleaning regions while traveling in the same area, and controls the cleaning unit  260  to perform the cleaning by suctioning dust during the traveling. 
     By determining whether the moving robot is allowed to travel or enter with respect to an obstacle recognized by the obstacle recognition unit  210 , the travel controller  230  sets a traveling path such that the moving robot travels while approaching the obstacle, travels in the vicinity of the obstacle, passes through the obstacle, or avoids the obstacle, and the travel controller  230  controls the travel drive unit  250  according to the traveling path. 
     The map generator  220  may generate a map of cleaning regions, based on information on an obstacle determined by the obstacle recognition unit  210 . 
     In an initial operation, if a map of cleaning regions is not stored, the map generator  220  generates the map of cleaning regions based on obstacle information while traveling in the cleaning region. In addition, the map generator  220  may update a pre-generated map based on obstacle information acquired during traveling. 
     The map generator  220  generates a basic map based on information acquired by the obstacle recognition unit  210  during traveling, and generates a cleaning map by distinguishing the basic map into regions. In addition, the map generator  220  trims distinguished regions of the cleaning map, and generates a user map and a guide map by setting an attribute of each of the distinguished regions. 
     The basic map is a map in which a shape of a cleaning region obtained during traveling is displayed with an outline, and the cleaning map is a map obtained by distinguishing the basic map into regions. The basic map and the cleaning map include a region allowed for the moving robot to travel, and obstacle information. The user map is obtained by simplifying the regions in the cleaning map and trimming shapes of the outlines of the regions, such that a visual effect is added to the user map. The guide map is a map where the cleaning map and the user map overlap each other. As the cleaning map is displayed on the guide map, a cleaning command may be input based on a region where the moving robot is allowed to travel. 
     After generating the basic map, the map generator  220  distinguishes the cleaning region into a plurality of regions, and generates a map, which includes connection passages connecting the plurality of regions and information on an obstacle existing in each region. The map generator  220  generates a map with distinguished regions in a manner as follows: the map is distinguished into small regions in order to distinguish the regions on the map, each distinguished small region is set as a detailed region, and each detailed region is incorporated into the representative region. 
     The map generator  220  processes a shape of each distinguished region. The map generator  220  sets an attribute of each distinguished region, and processes a shape of each distinguished region according to an attribute of each corresponding distinguished region. 
     The map generator  220  first determines a main region on the basis of the number of portions in each distinguished region overlapping with any other region. The main region is basically set to a living room, but, in some embodiments, the main region may be changed to any one of a plurality of room. The map generator  220  may set attributes of remaining regions with reference to the main region. For example, the map generator  220  may set a region with a size equal to or greater a predetermined size around the living room to a room, and set any other region to an extra region. 
     When it comes to processing a shape of a region, the map generator  220  processes a shape of each region into a predetermined shape according to a reference depending on an attribute of each corresponding region. For example, the map generator  220  processes a shape of a region with reference to a common house room shape, for example, a square. In addition, the map generator  220  processes a shape of a region in a manner of expanding the shape of the region with reference to the most outer cell in the basic map while deleting or reducing a region not allowed for the moving robot to approach due to an obstacle. 
     In addition, the map generator  220  displays an obstacle based on a size of the obstacle in the basic map such that an obstacle having a size equal to or greater than a predetermined size is displayed on the map and a cell corresponding to an obstacle having a size smaller than the predetermined size is deleted. For example, on the map, the map generator displays furniture, such as a chair and a sofa, having a size equal to or greater than a predetermined size and deletes a temporarily present obstacle and a small-sized obstacle such as a small toy. When generating a map, the map generator  220  stores a location of a charging station together with the map. 
     After the map is generated, the map generator  220  may add an obstacle to the map based on obstacle information about a detected obstacle received from the obstacle recognition unit  21 . If a particular obstacle is repeatedly detected at a fixed position, the map generator  220  may add the obstacle in the map, and, if an obstacle is temporarily detected, the map generator  220  ignores the obstacle. 
     In addition, in accordance with a detection signal which is received from the dust sensor  151  included in the sensor unit  150  during traveling, the map generator  220  may add dust information as well as obstacle information in a pre-generated cleaning map. The map generator  220  may distinguish one region into cells of a predetermined size, and store, together with the cleaning map, information on the number of cells in each region and dust information on a per cell basis. 
     The map generator  220  generates a user map, which is a processed map, and a guide map, which is a map where the user map and the cleaning map overlap each other. 
     The moving robot performs cleaning based on the cleaning map, and transmits the user map and the guide map to a terminal. A terminal  300  may store and display both the guide map and the user map, and output one of the guide map and the user map according to a setting. When a cleaning command based on the user map or the guide map is received from the terminal  300 , the moving robot  1  cleans a designated region by traveling based on the cleaning map. The moving robot stores information on the number of cells in each region and dust information for each region, not on the basis of the user map, but on the basis of the cleaning map which is composed of regions allowed for the moving robot to travel. 
     The location recognition unit  240  may determine the current location of the main body  10  based on a map (a cleaning map, a guide map, or a user map) stored in the data unit. 
     When a cleaning command is received, the location recognition unit  240  determines whether a location displayed on the map and the current location of the main body coincide with each other, and, when the current location of the main body does not coincide with the location displayed on the map or when the current location is unknown, the location recognition unit  240  recognizes the current location to restore the current location of the moving robot. When the current location is restored, the travel controller  230  may control the travel drive unit to travel to a designated region based on the current location. The cleaning command may be input from a remote controller (not shown), the manipulation unit  160 , or the terminal  300 . 
     When the current location does not coincide with the location displayed on the map or when the current location is unknown, the location recognition unit  240  may estimate the current location based on the map by analyzing an acquisition image received from the image acquisition unit  140 . 
     While a map is generated by the map generator  220 , the location recognition unit  240  processes an acquired image acquired at each location and associate the acquired image with the map to thereby recognize the global position of the main body. 
     The location recognition unit  240  may identify the current location of the main body by comparing a map and an acquired image, acquired by the image acquisition unit at each location on the map, and accordingly, even when the location of the main body is changed all of sudden, the location recognition unit  240  is able to estimate and recognize the current location. 
     The location recognition unit  240  determines the current location of the main body by analyzing various features located at a ceiling in an acquired image, such as lighting devices, edges, corners, blobs, and ridges. The acquired image may be received from the image acquisition unit or from the second image acquisition unit provided on the upper surface of the main body. 
     The location recognition unit  240  detects features from each acquired image. There are various well-known feature detection techniques for detecting a feature from an image in the computer vision field. A variety of feature detectors are well known. For example, there are Canny detector, Sobel detector, Harris&amp;Stephens/Plessey detector, SUSAN detector, Shi&amp;Tomasi detector, Level curve curvature detector, FAST detector, Laplacian of Gaussian detector, Difference of Gaussians detector, Determinant of Hessian detector, MSER detector, PCBR detector, and Grey-level blob detector. 
     The location recognition unit  240  calculates a descriptor based on each feature. For feature detection, the location recognition unit  240  may convert a feature into a descriptor using Scale Invariant Feature Transform (SIFT). The descriptor may be expressed in the form of an n-dimensional vector. The SIFT may detect a feature invariant to scale, rotation, and a change in brightness of a subject, and accordingly, it is possible to detect an invariant (that is, rotation invariant) feature when the same region is imaged by changing the position of the moving robot  1 . Of course, aspects of the present disclosure are not limited thereto, and other various techniques (e.g., Histogram of Oriented Gradient (HOG), Haar feature, Fems, Local Binary Pattern (LBP), and Modified Census Transform (MCT)) may be applied. 
     Based on descriptor information acquired from an acquired image acquired at each location, the location recognition unit  240  may classify at least one descriptor of the acquired image into a plurality of groups according to a predetermined sub-classification rule, and convert descriptors belonging to the same group into sub-representative descriptors according to a predetermined sub-representation rule. In another example, the location recognition unit  240  may classify all descriptors calculated based on images acquired in a predetermined area into a plurality of groups according to the predetermined sub-classification rule, and convert descriptors belonging to the same group into sub-representative descriptors according to the predetermined sub-representation rule. 
     Through the above procedure, the location recognition unit  240  may obtain a feature distribution for each location. The feature distribution for each location may be expressed in the form of a histogram or an n-dimensional vector. In another example, without using the predetermined sub-classification rule and the predetermined sub-representation rule, a learning module  143  is able to estimate an unknown current location based on a descriptor calculated from each feature. 
     In addition, when the current location of the moving robot  1  has become unknown due to location hopping, the location recognition unit  240  may estimate the current location based on data such as a pre-stored descriptor and a sub-representative descriptor. 
     The location recognition unit  240  acquires an acquired image from the unknown current location using the image acquisition unit  140 , and, when various features located at a ceiling, such as lighting devices, edges, corners, blobs, and ridges, are found in the acquired image, the location recognition unit  240  detects the features from the acquired image. 
     According to a predetermined sub-conversion rule, the location recognition unit  240  may convert information on at least one descriptor obtained from an image acquired at the unknown current location into location information to be compared (e.g., a feature distribution for each location) and comparable information (sub-recognition feature distribution). According to a predetermined sub-comparison rule, a feature distribution for each location may be compared with a corresponding recognition feature distribution to calculate a similarity level for each location. A similarity level (probability) may be calculated at each location, and a location at which the highest probability is calculated may be determined to be the current location. 
     When a map is updated by the map generator  220  during traveling, the controller  200  transmits the updated information to the terminal  300  via the communication unit so that the same map is stored in the terminal and the moving robot  1 . As the same map is stored in the terminal  300  and the moving robot  1 , the moving robot  1  is able to clean a designated region in response to a cleaning command from the terminal and the terminal is able to display the current location of the moving robot on the map. 
     In response to a cleaning command, the travel controller  230  controls the travel drive unit to move to a region designated from among cleaning regions, and operates the cleaning unit so as to perform cleaning while traveling. 
     In response to a cleaning command for cleaning a plurality of regions, the travel controller  230  controls cleaning by moving regions in a priority order or a preset order of the regions: if there is no set order, the travel controller  230  moves to a nearby region or an adjacent region with reference to the current location and performs cleaning. 
     In addition, in response to a cleaning command for cleaning a random region regardless of whether regions are distinguished, the travel controller  230  moves to a region included in the random region and performs cleaning. 
     When a virtual wall is set up, the travel controller  230  controls the travel drive unit to travel based on coordinates received from the map generator by avoiding the virtual wall. Even though it is determined by the obstacle recognition unit  210  that no obstacle is present, if a virtual wall is set up, the travel controller  230  recognizes an obstacle as being present at a location corresponding to the virtual wall and restricts traveling. 
     In response to a cleaning command, the travel controller  230  sets a cleaning region and set a path of cleaning of the cleaning region. The travel controller  230  may set a cleaning region based on cleaning data calculated based on dust information and the number of times of cleaning, and set a cleaning path for the cleaning region. 
     For example, when a cleaning command for cleaning an entire area is received, the travel controller  230  sets a cleaning region to be cleaned and a non-cleaning region not to be cleaned, based on numbers in cleaning data, and then the travel controller  230  sets a cleaning path. In some embodiments, the travel controller may add cleaning of a particular region. The travel controller may set a less dusty region as a non-cleaning region or may set even the less dusty region as a cleaning region depending on the number of times the region has been set as a non-cleaning region or an elapse of time since the previous cleaning. That is, the travel controller may prevent a less dusty region from being cleaned repeatedly and also allow the less dusty region to be cleaned when a preset time elapsed, thereby maintaining an entire area in a constant clean state. 
     If a cleaning region or a cleaning order is set by a user, the travel controller  230  performs cleaning according to the setting. The travel controller  230  may transmit information on a cleaning situation as to a region not to be cleaned based on cleaning data to a terminal so as to guide cleaning of the region. For example, if there is a region that has not been cleaned for a predetermined time, the travel controller  230  may output cleaning guidance to perform cleaning, regardless of an amount of dust. 
     If cleaning of a designated region is completed, the controller  200  stores a record of the cleaning in the data unit. 
     In addition, the controller  200  accumulates and stores dust information detected during cleaning, counts the number of times of cleaning in each region, calculates cleaning data based on the number of times of cleaning in each region and an amount (density) of dust in each region, and then sets a cleaning region based on the cleaning data in the next time of cleaning. 
     The controller  200  calculates cleaning data based on the number of cells in each region, the number of cells where dust is detected, and the number of times of cleaning (the number of visits), and the controller  200  stores the cleaning data. The controller  200  calculates the cleaning data by combining newly detected data and pre-accumulated data. 
     For example, the controller  200  may calculate cleaning data by dividing the number of cells where dust is detected by a value obtained by multiplying the number of cells in each region by the number of times of cleaning. The cleaning data may further include another variable, and how to calculate the cleaning data may be changed. 
     The controller may accumulate and store, in the data unit, the number of cells in each region, dust information, and the number of times of cleaning, and reset such data every preset period of time or when the environment of the region changes. For example, when the number of cells in a region is changed due to a new obstacle, such as installation of new furniture in the region, the controller may determine that the environment has changed, and thus reset data. 
     The controller  200  transmits an operation state of the moving robot  1  or a clean state in a predetermined period of time to the terminal  300  via the communication unit  190 . 
     Based on data received from the moving robot  1 , the terminal  300  displays a location of the moving robot together with a map on a screen of an application in execution, and outputs information on a clean state. Based on the data received the moving robot, the terminal  300  may display, on the screen, information on an amount/density of dust and the number of times of cleaning has been performed. 
     The terminal  300  may display one of a user map and a guide map according to a setting, and change the displayed one to the other according to a setting. 
     The terminal  300  may display a received map on the screen, and, in response to a key input or a touch input, the terminal  300  may distinguish or incorporate regions and change or add an attribute of a region. In addition, the terminal may designate a location of a particular obstacle on the map, and information on the designated obstacle is transmitted to the moving robot and added in a pre-stored map. 
     In response to a key input or a touch input, the terminal  300  may designate a cleaning region on a displayed map and set an order in which cleaning is to be performed, and transmit a cleaning command to the moving robot. 
     In addition, based on data received from the moving robot, the terminal  300  shows a clean state on a displayed map (the user map and the guide map). When information on an obstacle is added, the terminal updates the map based on the received data and displays the updated map. 
     In addition, when a charging station is detected based on a return signal from the charging station, the controller  200  recognizes the current location of the moving robot, calculates a location of the charging station based on the current location of the moving robot, and stores the location of the charging station. The controller  200  may perform setting to display the location of the charging station on the map. 
       FIG. 6  is a diagram illustrating an example of how to generate a map and distinguish regions by a moving robot according to an embodiment of the present disclosure. 
     As illustrated in (a) of  FIG. 6 , when no map is stored, the moving robot  1  may generate a map using a wall following technique while traveling in a traveling area X 1 . 
     As illustrated in (b) of  FIG. 6 , the map generator  220  generates a map as shown in (c) of  FIG. 6  by distinguishing a traveling area X 1  into a plurality of regions A 1 ′ to A 9 ′. The generated map is stored in the data unit  280  and transmitted to the terminal  200  via the communication unit  270 . 
     The map generator  220  may distinguish a traveling area into a plurality of regions by a predetermined criterion. The traveling area may be defined as a range including all areas on any plane previously travelled by the moving robot and all areas on a plane currently being travelled by the moving robot  1 . 
     For region distinction, the map generator  220  distinguishes the traveling area X 1  into small regions and large regions, and generates a map accordingly. The map generator  220  may distinguish the traveling area into a plurality of small regions, and each small region may be distinguished on the basis of each chamber (room) in the traveling area. In addition, the map generator may distinguish the traveling area into a plurality of large regions which are distinguished from each other on the basis of a travel capability. For example, two indoor spaces completely separated from each other by a moving line may be distinguished as two large regions. In another example, even the same indoor space may be distinguished into the large regions on the basis of floors of the travel area. 
     After distinguishing regions, the map generator  220  generates a map (a user map), as shown in (c) of  FIG. 6 , by trimming the outline of the regions. When a region in a cleaning map has a size equal to or greater than a predetermined size, the region may be distinguished into a plurality of regions. For example, a region A 3 ′ may be distinguished into a region A 3  and a region A 4 . 
     The terminal  300  executes an application and displays a received map on a screen. In this case, a plurality of distinguished regions (A 1  to A 9 ) is displayed differently. The plurality of regions (A 1  to A 0 ) in the map may be displayed with different colors or different names. 
     The moving robot and the terminal basically store the same map, but the terminal displays a user map with simplified regions, as shown in (c) of  FIG. 6 , to allow a user to easily recognize the regions, and the moving robot performs traveling and cleaning based on a cleaning map, as shown in (b) of  FIG. 6 , including information on an obstacle. In order to display the obstacle even in (c) of  FIG. 6 , a guide map where the cleaning map and the user map overlap each other may be displayed. 
     As described above, the moving robot performs cleaning based on the cleaning map as shown in (b) of  FIG. 6 . 
     When a cleaning command is received, the moving robot  1  determines the current location thereof based on the stored cleaning map, and, when the current location coincides with a location displayed on the map, the moving robot  1  performs designated cleaning, and, when the current location does not coincide with the location displayed on the map, the moving robot  1  recognizes and restores the current location and then performs cleaning. Accordingly, no matter where the moving robot  1  may be located in the plurality of regions (A 1  to A 9 ), the moving robot  1  is able to determine the current location thereof, move to a designated region, and then perform cleaning. 
     As illustrated in the drawing, the remote controller or the terminal may select at least one of the plurality of regions (A 1  to A 9 ) and input a cleaning command to the moving robot  1 . In addition, the moving robot  1  may set any one region as a cleaning region or may set a cleaning region by touching or dragging the plurality of regions without distinguishing therebetween. 
     When a cleaning command for the plurality of regions is received, any one of the plurality of regions may be set as a first priority region, cleaning may be performed in the first priority region first and then in a region in the vicinity of the first priority region, or the order in which cleaning is to be performed may be set. When the order in which cleaning is to be performed in a plurality of designated regions is set, the moving robot  1  may perform cleaning by moving according to the set order. When there is no set order in which cleaning is to be performed in a plurality of cleaning regions, the moving robot  1  moves a region closest to the current location of the moving robot  1  and performs cleaning. 
       FIG. 7  is a diagram referred to for explaining how to distinguish cells in each region by a moving robot according to an embodiment of the present disclosure. 
     As illustrated in  FIG. 7 , the moving robot distinguishes one region into a plurality of cells, detects dust information on a per cell basis, and stores such dust information. 
     As illustrated in the drawing regarding the first region A 1 , the number of cells in a region allowed for the moving robot to travel, that is, a region shown in the cleaning map, is counted. 
     The dust sensor detects dust during traveling and transmits a result of the detection to the controller  200 , and the controller  200  stores dust information in response to a detection signal from the dust sensor with respect to each region on a per cell basis. Based on a detection signal depending on the type of the dust sensor, the controller  200  may store presence of dust on a per cell basis or may store a density of dust on a per cell basis. 
     The controller  200  may change a cell size depending on the type of the dust sensor and the detection method of the moving robot, but it is desirable to set the cell size based on a size of the moving robot  1 . The controller  200  sets every cell in each region to have an identical size, and counts the number of cells in each region. The controller  200  sets the cell size corresponding to the size of the moving robot  1 , and stores dust information in response to a detection signal from the dust sensor in each cell. 
     In response to a received cleaning command, the controller  200  performs cleaning of the traveling area by setting a cleaning region based on cleaning data, which is calculated based on dust information and the number of times of cleaning. 
     As described above, the controller  200  calculates cleaning data based on dust information, the number of cells in each region, the number of cells where dust is detected, and the number of times of cleaning. The controller  200  may determine a dusty level based on a ratio between the number of cells in a region and the number of cells where dust is detected in the region. In addition, using a dust density stored on a cell basis, the controller  200  may calculate cleaning data. 
     If cleaning data has a greater value, the controller  200  determines that a corresponding region has more dust and needs to be cleaned often, and if cleaning data has a smaller value, the controller  200  determines that a corresponding region has less dust and does not needs to be cleaned often. In some embodiments, if cleaning data has a value equal to or greater than a predetermined value, the controller  200  may set additional cleaning. 
     The controller  200  may determine the order in which cleaning is to be performed, based on a value of cleaning data. 
     The cleaning data is a value which is obtained in consideration of both an amount of dust and the number of times of cleaning, and thus, the controller  200  may set a region as a cleaning region based on cleaning data and based on whether the region meets a predetermined condition, although a small amount of dust present in the region. 
     For example, even though there is a small amount of dust in a region, if the number of times of cleaning in the region is equal to or smaller than a predetermined value or if a predetermined time has elapsed since last cleaning, the controller  200  sets the region as a cleaning region, and, in particular, if the region was set as a non-cleaning region, the controller  200  set the region as a cleaning region in the last cleaning, regardless of an amount of dust, so that there is no region left uncleaned for a predetermined period of time. In addition, even though there is a small amount of dust in a region, if the number of cells with a density of dust equal to or greater than a reference value in the region is equal to or greater than a predetermined value, the controller  200  may set the region as a cleaning region so as to perform cleaning of the region. 
     The controller  200  performs control such that a dusty region is cleaned often, a less dusty region is set as a non-cleaning region so as not to be cleaned unnecessarily, and even the less dusty region is cleaned within a predetermined period of time, and accordingly, the entire traveling area may be maintained in a constant clean state. 
     As illustrated in the following Table 1, cleaning may be set by calculating cleaning data. The following Table 1 includes an extreme example to describe how to set a cleaning region based on cleaning data, and Table 1 may be different from actual measurements. 
     
       
         
           
               
               
               
               
               
             
               
                 TABLE 1 
               
               
                   
               
               
                   
                   
                   
                 Number of 
                   
               
               
                   
                 Number 
                 Cells where dust is 
                 times of 
                 Cleaning 
               
               
                 Region 
                 of cells 
                 detected 
                 cleaning 
                 data 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
               
               
            
               
                 A 
                 120 
                 110 
                 4 
                 0.229 
               
               
                 B 
                 80 
                 70 
                 2 
                 0.438 
               
               
                 C 
                 105 
                 30 
                 3 
                 0.095 
               
               
                   
               
            
           
         
       
     
     As illustrated in Table 1, Region A has the highest values in terms of the number of cells and the number of cells where dust is detected (the greatest amount of dust), but the number of times of cleaning in Region A is 4, and thus, cleaning data for Region A is calculated into 0.229 which is the second highest value. 
     Region B has the second highest values in terms of the number of cells and the number of cells where dust is detected, but the number of times of cleaning has been performed in Region B is a small value, and thus, the cleaning data for Region B is calculated into 0.438 which is the highest value, and therefore, Region B may be determined to be a region most in need of cleaning. 
     Meanwhile, Region C has the lowest values in terms of the number of cells and the number of cells where dust is detected, but the number of times of cleaning in Region C is greater than that of Region B, and therefore, cleaning data for Region C is calculated into a very low value. 
     Accordingly, the controller  200  may set Region A and Region B as cleaning regions and Region C as a non-cleaning region, so that cleaning is performed only in Region A and Region B. Meanwhile, even though cleaning data for Region C is calculated into a low value, if Region C was set as a non-cleaning region in last cleaning, the controller  200  may set Region C as a cleaning region so as to clean Region C. 
     When it comes to determining the number of times a region has been set as a non-cleaning region, the controller  200  may variably apply the determination according to a setting, and the controller  200  may set a cleaning region depending on an elapse of time since last cleaning. In addition, even though the cleaning data for Region C has the lowest value, if a cell with a density of dust equal to greater than a reference density is included in Region C or if the number of cells with a density of dust equal to or greater than a reference density in Region C is equal to or greater than a predetermined value, the controller  200  may set Region C as a cleaning region, regardless of the cleaning data. 
     In addition, after setting a cleaning region, the controller  200  may determine that a region having cleaning data equal to or greater than a reference value is highly contaminated, and additionally set the region to be cleaned. 
       FIG. 8  is a diagram referred to for explaining a detection method in response to movement of a moving robot according to an embodiment of the present disclosure. 
     As illustrated in  FIG. 8 , while traveling between two regions out of a plurality of regions, the moving robot  1  may perform cleaning of a region A 10  included in a traveling path or may not perform cleaning of the region A 10  after cleaning once or twice. 
     The travel controller may set the region A 10  to be cleaned, and travel in the moving region A 10  while performing cleaning, or may pass the region A 10  quickly after cleaning once. The travel controller may perform control such that dust information detected during cleaning is measured once for each cell included in the region A 10 . In addition, after the region A 10  is cleaned once, if an amount of dust equal to or greater than a predetermined value is detected in the second round of traveling in the region A 10 , the travel controller performs control such that the region A 10  is cleaned again but only the dust information detected in the first round of cleaning is stored. 
     For example, when moving from a first region A 1  to a second region A 2 , the moving robot passes through a seventh region A 7 , and, even when moving from the second region to a third region A 3 , the moving robot passes through the seventh region A 7 , and accordingly, the travel controller performs control such that dust information for a corresponding region is stored once on a per cell basis. 
       FIG. 9  is a diagram referred to for explaining a change in environment of a region with respect to a moving robot according to an embodiment of the present disclosure. 
     As illustrated in  FIG. 9 , the travel controller  230  stores information on an obstacle detected by the obstacle detection unit  100  during traveling. The map generator updates a pre-generated map based on a newly detected obstacle. 
     The travel controller  230  stores dust information for each region and the number of times of cleaning in each region, and, if an obstacle having a size equal to or greater than a predetermined size is detected in a region, the number of cells in the region is changed, and thus, in this case, the travel controller  230  may reset dust information pre-stored in the data unit. 
     In addition, the travel controller  230  may reset data, stored in the data unit, in a predetermined period of time, for example, every month, every three month (quarter), and every year, such that the recent data is used. 
     As illustrated in the drawings, if a changed region A 11  occurs due to a new obstacle present in the first region A 1 , for example, if a region as large as the changed region A 11  is not allowed for the moving robot to travel due to installation of new furniture, the total number of cells in the first region is changed, and thus, the controller  200  may reset dust information, and accumulate and store new detected data. If the number of cells is changed, the number of cells where dust is detected is changed and thus it is desired to reset dust information. 
     Even though an obstacle is equal to or greater than a predetermined size, the controller  200  may not reset data immediately and instead may reset the data after determining whether the obstacle is detected a predetermined number of times. 
     In addition, even though a new obstacle is detected, if the obstacle is smaller than the predetermined size and not detected in the next time, for example, if a pet is detected, the controller  200  ignores the detected obstacle and maintains the number of cells and dust information for each of the cells, because the pet is a moving subject and does not stay in one place all the time. 
       FIG. 10  is a flowchart illustrating a cleaning method of a moving robot according to an embodiment of the present disclosure. 
     As illustrated in  FIG. 10 , the moving robot starts to clean a traveling area in accordance with a cleaning command received from a remote controller, a manipulation unit, or a terminal (S 310 ). 
     The moving robot  1  checks cleaning data calculated based on pre-stored data, which includes dust information and the number of times of cleaning, (S 320 ), and sets a cleaning region based on the cleaning data. 
     The controller  200  performs control such that a dusty area is set to be cleaned often, a less dusty area is set as a non-cleaning area so as not to be cleaned unnecessarily, and even the less dusty region is cleaned within a predetermined period of time, and accordingly, the entire traveling area may be maintained in a constant clean state. 
     As described above, as cleaning data is a value obtained in consideration of both an amount of dust and the number of times of cleaning, the controller  200  may set a cleaning region based on the cleaning data, and may set even a less dusty region as a cleaning region based on whether a predetermined condition is met. When there is a smaller amount of dust and a smaller number of times of cleaning, the cleaning data is calculated to be high, and, when there are a larger amount of dust and a larger number of times of cleaning, the cleaning data may be calculated to be low. Even though there is a large amount of dust, if cleaning has been performed a great number of times, the cleaning data may be calculated to be low, and, even though there is a small amount of dust, if cleaning has been performed a small number of times, the cleaning data may be calculated to be high (a great value). 
     Accordingly, the controller  200  sets a cleaning region based on cleaning data, and, if cleaning data for a region is equal to or smaller than a predetermined value, the controller  200  may set the corresponding region as a non-cleaning region to be excluded from the upcoming cleaning operation. Even though cleaning data for a region is low, the controller  200  may set the corresponding region as a cleaning region depending on the number of times that the corresponding region has been set as non-cleaning regions, an elapse of time (hours) since last cleaning, and a density of dust in each cell. 
     In addition, if cleaning data for a region is equal to or greater than a set value, the controller  200  may determine that the region is highly contaminated, and may set additional cleaning. 
     If cleaning regions are set, the controller  200  sets a cleaning path that connects cleaning regions (S 340 ). The controller  200  may set a cleaning path to first travel to a region with the highest cleaning data, and may set a cleaning path depending on a distance between cleaning regions. 
     The controller  200  applies a control command to the travel drive unit and the cleaning unit so as to perform cleaning while traveling in a cleaning region according to a setting. In addition, the controller  200  applies a control command to the sensor unit  150  so as to detect dust using the dust sensor during cleaning. 
     The dust sensor inputs a detection signal to the controller  200  by detecting dust in the air suctioned during cleaning. 
     The controller  200  increases the number of times of cleaning in each region, and stores dust information for each region based on a detection signal indicative of detection of dust in each cell (S 360 ). The controller  200  may store the number of cells in each region and the number of cells where dust is detected, and store a dust density for each region on a per cell basis. In some embodiments, the controller  200  may store information on a cell with a density of dust equal to or greater than a reference density. 
     When cleaning of every cleaning region is completed (S 370 ), the controller  200  accumulates and stores data for each region in the data unit, and calculates and updates cleaning data based on the number of cells, the number of cells where dust is detected, and the number of times of cleaning (S 380 ). The controller  200  may calculate cleaning data after completion of cleaning or before start of cleaning. 
       FIG. 11  is a flowchart illustrating a method of setting a cleaning region by a moving robot according to an embodiment of the present disclosure. 
     As illustrated in  FIG. 11 , the controller  200  checks cleaning data (S 410 ) to set a cleaning region. 
     The controller  200  determines whether cleaning data for each region has a value equal to or greater than a reference value (S 420 ), and, if cleaning data for a region has value equal to or greater than the reference value, the controller  200  sets the region as a cleaning region (S 480 ). 
     If the cleaning data for the corresponding region has a value equal to or greater than the reference and also equal to or greater than a preset value set greater than the reference value, the controller  200  may add cleaning of the corresponding region (S 450 ). 
     Meanwhile, if cleaning data for a region has a value smaller than the reference value, the controller  200  determines whether the number of times of exclusion of each region is equal to or greater than a preset number of times (S 430 ). 
     Even though cleaning data for a region has a value smaller than the reference value, if the number of times of exclusion of the region is equal to or greater than the preset number of times, the controller  200  sets the region as a cleaning region (S 480 ). 
     For example, the preset number of times may be set to 1 or 3, and, if the preset number of times is 1 and a corresponding region has been once excluded from cleaning, the controller  200  unconditionally sets the corresponding region as a cleaning region in the next cleaning operation. 
     In addition, if cleaning data for a region is smaller than the reference value and the number of times of exclusion of the region is smaller than the preset number of times, the controller  200  determines whether a dust density on a per cell basis is equal to or greater than a reference density (S 460 ). 
     If the number of cells with a density of dust equal to or greater than the reference density is equal to or greater than a preset value, the controller  200  sets the cells as cleaning regions (S 480 ). 
     In addition, the controller  200  determines if a preset time has elapsed since last cleaning (S 470 ), and, if so, the controller  200  sets the corresponding cells as cleaning regions (S 480 ). 
     The controller  200  may, regardless of order, make determinations as to the number of times of exclusion, a density of dust in each cell, and an elapse of time since last cleaning, and may apply the determinations to set a cleaning region. That is, if cleaning data for a region is smaller than the reference value and the preset time has elapsed since last cleaning, the region may be set as a cleaning region, regardless of whether the preset time has elapsed since last cleaning. 
     Meanwhile, the controller  200  sets a region as a non-cleaning region (S 485 ) when cleaning data for the region has a value smaller than the reference value, when the number of times of exclusion is smaller than the preset number of times, when there is no cell with a density of dust equal to or greater than the reference density (or the number of such cells being smaller than a preset value), and when the preset time has not elapsed since last cleaning. 
     After determination as to a cleaning region and a non-cleaning region is made, the controller  200  may set a cleaning path which connects cleaning regions (S 490 ), and controls the travel drive unit and the cleaning unit to perform cleaning while traveling in the cleaning regions. 
       FIG. 12  is a flowchart illustrating a method of updating data by a moving robot according to an embodiment of the present disclosure. 
     As illustrated in  FIG. 12 , the controller  200  stores a detection signal received from the dust sensor during cleaning as cleaning information for each region (S 510 ). 
     In addition, the controller  200  stores information on an obstacle detected during cleaning, and updates a cleaning map. 
     The controller  200  stores dust information for each region and the number of times of cleaning in each region, and, when an obstacle in size equal to or greater than a predetermined size is detected in a region, the number of cells in the region is changed, and thus, the controller  200  may reset dust information pre-stored in the data unit. 
     When there is a change in the environment of any one region (S 520 ), for example, when an obstacle in size equal to or greater than a predetermined size is detected, the controller  200  may determine there is a change in the environment. In addition, even when a region has expanded due to removal of a pre-existing obstacle, the controller  200  may determine that there is a change in the environment. 
     When an obstacle in size equal to or greater than the predetermined size is detected in a region, the number of cells in the region is changed, and thus, the controller  200  may reset data accumulated in the data (S 540 ). In this case, out of dust information for the region and number of times of cleaning in the region, which are pre-stored in the data unit, the controller  200  may reset only dust information or reset both the dust information and the number of times of cleaning. 
     For example, since the moving robot is not allowed to travel in a region in size equal to or greater than a predetermined size due to additional installation of furniture in the region, the number of cells in the region is changed, and thus, dust information for the region is reset. However, even though an obstacle is detected, if there is no change in a traveling region, the obstacle may be ignored, and, since such an obstacle is possibly a temporary obstacle, data may not be reset immediately and instead dust information may be reset after determination as to whether the obstacle is detected a predetermined number of times. 
     Meanwhile, even though a new obstacle is detected in a region, if the obstacle has a size equal to or smaller than a predetermined size and is not detected later, for example, when the obstacle is a moving obstacle such as a pet, the controller  200  may maintain the number of cells in the region and dust information for the region. 
     In addition, the controller  200  may reset data stored in the data unit, for example, every month, every three month, or every year, so that the most recent data is used(S 530 ). 
     The controller  200  resets data by deleting data which has been stored for more than a preset time (S 550 ). For example, when cleaning data is set to be calculated based on data of the latest three months, the controller  200  deletes data which has been stored for more than three months, and maintains only data which has been stored for three months or less. 
     The controller  200  calculates cleaning data (SS 560 ) based on an amount of dust (density of dust) and the number of times of cleaning, which are on the basis of data newly detected during cleaning and data accumulated within a period of time, and the controller  200  stores the calculated cleaning data in the data unit (S 570 ). 
     Thus, the moving robot of the present disclosure stores dust information detected during cleaning, and set a region as a cleaning region or a non-cleaning region based on the dust information and the number of times of cleaning in the region, so that the region is prevented from being cleaned redundantly and the whole regions are maintained in a constant clean state. Accordingly, the moving robot does not clean a region unnecessarily redundantly and does not allow a region left uncleaned, thereby improving cleaning efficiency. 
     The foregoing description is merely illustrative of the technical features of the moving robot of the present disclosure, and various modifications and variations can be made by those having ordinary skill in the art without departing from the essential characteristics of the present disclosure.