PATENT ABSTRACT
A robot cleaner, robot cleaning system, and a method for controlling the same, the robot cleaner cleaning by wirelessly communicating with an external apparatus having a driving unit for driving a plurality of wheels; an upper camera disposed on a main body for photographing an upper image perpendicular to a direction of driving the robot cleaner; and a controller for controlling the driving unit to allow the robot cleaner to drive with a cleaning area according to a predetermined driving pattern, and compensating the driving path by analyzing the image photographed by the upper camera. In other embodiments, the robot cleaner may include a second forwardly directed camera which may be utilized to provide a three dimensional image of the cleaning area, and also sensors for sensing the walls defining a cleaning area or obstacles in the cleaning area. In yet another embodiment, and to reduce the image computing load on the robot cleaner, transmission of the image to an external processor/controller may be effected by a radio antenna. The robot cleaner, the robot cleaning system, and the method for controlling the same, can recognize the robot cleaner position more accurately as the position is recognized by using an upper image that does not experience as much alteration as does a floor. Therefore, a movement error to a target position is reduced, and a commanded work can be performed more easily.

PATENT DESCRIPTION
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention relates generally to a robot cleaner, a robot cleaning system, and a method for controlling the same, and more particularly, to a robot cleaner, a robot cleaning system, and a method for controlling the same that is capable of controlling the driving mechanism of the robot cleaner by using an upper image photographed while the robot cleaner is driving.  
           [0003]    2. Description of the Related Art  
           [0004]    A general robot cleaner determines the extent of a cleaning area by driving an outer track of the cleaning area that is surrounded by a wall or an obstacle by using an ultrasonic sensor disposed on a main body, and plans a cleaning path to clean the determined cleaning area. After that, the robot cleaner drives wheels to run the planned cleaning path by calculating a driving distance and a current position from a signal detected through a sensor for sensing the degree of rotation of the wheels and their rotation angle. However, the above generally used method for recognizing the position produces an error between the driving distance and the moved position calculated from the signal by the sensor and the real driving distance and the position that may be caused by the slip of the wheels and/or the bend of a floor while the robot cleaner is driving along a cleaning path. The more the cleaner drives, the more the position recognition errors may accumulate. Accordingly, the cleaner driven by the accumulated position recognition error can deviate significantly from the planned cleaning path. Consequently, some area might not be cleaned, and the cleaner can perform cleaning several times for other areas. Accordingly, cleaning efficiency and precision can diminish.  
         SUMMARY OF THE INVENTION  
         [0005]    An object of the present invention is to provide a robot cleaner, a robot cleaning system, and a method for controlling the robot capable of effectively performing a commanded cleaning by compensating to correct error in a computed driving track, and for precisely recognizing the current position of the robot cleaner.  
           [0006]    The above object is accomplished by providing a robot cleaner that comprises: a driving unit for driving a plurality of wheels; an upper camera disposed on a main body in order to photograph an upper image perpendicular to a direction of driving of the robot cleaner; and a controller for controlling the driving unit to allow the robot cleaner to drive within a cleaning area defined by a predetermined driving pattern, and arranging the driving path by analyzing the image photographed by the upper camera.  
           [0007]    It is preferable that the controller controls the driving unit to drive within the cleaning area defined by the predetermined driving pattern and creates and stores an image map in regard to the upper area from the image photographed by the upper camera, when operating a mode for mapping a cleaning area. In addition, the controller recognizes the position of the robot cleaner by comparing the stored image map and a current image input from the upper camera, so as to enable the control of the driving unit corresponding to a target driving path from a recognized position.  
           [0008]    Moreover, the controller creates the image map when a signal for cleaning is transmitted.  
           [0009]    It is preferable that a front camera is disposed on the main body for photographing an image opposite to the direction of driving of the robot cleaner. The controller creates the image map by three-dimensionally mapping the upper image photographed from the upper camera and the front image photographed by the front camera.  
           [0010]    The controller may divide the image map into a plurality of small cells, each cell having a predetermined size, may determine a special feature on one or more of the divided small cells, and set up the determined special feature as a standard coordinate point for recognizing the position of the robot cleaner. The special feature includes at least one element taken from a bulb, a fire sensor, a fluorescent lamp, and a speaker.  
           [0011]    The controller extracts a linear element from the image photographed from the upper camera while the robot cleaner is driving, and may arrange a driving track by using the extracted linear element.  
           [0012]    To accomplish the above object, the robot cleaning system includes: a driving unit for driving a plurality of wheels; a robot cleaner having an upper camera disposed on a main body for photographing an upper image perpendicular to a driving direction; and a remote controller for wirelessly communicating with the robot cleaner. The remote controller controls the robot cleaner to drive within a cleaning area defined by a predetermined driving pattern, and arranges a driving track by analyzing the image transmitted after being photographed by the upper camera.  
           [0013]    It is preferable that the remote controller controls the robot cleaner to drive within the cleaning area defined by the predetermined driving pattern and creates an image map in regard to the upper area from the image photographed by the upper camera, when operating a mode for mapping a cleaning area. In addition, the remote controller recognizes the position of the robot cleaner by comparing the stored image map and a current image transmitted from the robot cleaner after being photographed from the upper camera and controls a cleaning path of the robot cleaner to perform the desired target work from a recognized position, after receiving a signal for cleaning.  
           [0014]    It is advisable that the remote controller creates the image map whenever a signal for cleaning is transmitted.  
           [0015]    A front camera is disposed on the main body in order to photograph an image opposite to the direction of driving of the robot cleaner. Moreover, the remote controller creates the image map by three-dimensionally mapping the upper image and the front image transmitted from the robot cleaner after being photographed from the upper camera and the front camera, respectively.  
           [0016]    It is recommended that the remote controller extracts a linear element from the image transmitted after being photographed from the upper camera and arranges a driving track by using the extracted linear element, when controlling the driving of the robot cleaner.  
           [0017]    To accomplish the above object, the method for controlling the robot cleaner according to the present invention comprises the steps of: creating and storing an image map of an upper area, located above an area to be cleaned, from an image photographed by the upper camera by driving the robot cleaner according to a predetermined driving pattern within a cleaning area; recognizing a position of the robot cleaner by comparing an image of the recorded image map and a current image photographed from the upper camera, and calculating a driving path from the recognized position to a target position, upon receiving a signal for cleaning; and driving the robot cleaner according to the calculated driving path.  
           [0018]    According to another aspect of the present invention, the method for controlling the robot cleaner comprises the steps of: creating a cleaning area map by driving the robot cleaner within a cleaning area and storing the map; calculating a driving path corresponding to a cleaning command, upon receiving a signal for cleaning; driving the robot cleaner according to the calculated driving path; and arranging the driving path by analyzing an image photographed from the upper camera.  
           [0019]    It is preferable that the driving path arranging step extracts a linear element from the image photographed from the upper camera, and arranges the driving path by using the extracted linear element. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0020]    The objects and the features of the present invention will become more apparent by describing the preferred embodiments of the present invention having reference to the appended drawings, in which:  
         [0021]    [0021]FIG. 1 is a perspective view showing a robot cleaner according to the present invention in which a cover has been separated from the cleaner;  
         [0022]    [0022]FIG. 2 is a schematic block diagram showing the robot cleaning system according to the present invention;  
         [0023]    [0023]FIG. 3 is a schematic block diagram showing the central control unit of FIG. 2;  
         [0024]    [0024]FIG. 4 is a view showing the status in which the robot cleaner of FIG. 1 is placed in a room;  
         [0025]    [0025]FIG. 5 is a view showing an exemplary track that the robot cleaner may drive in the room, such as that shown in FIG. 4;  
         [0026]    [0026]FIG. 6 is a “plan” view showing one example of an image map created by mapping an image photographed along the driving track shown in FIG. 5;  
         [0027]    [0027]FIG. 7 is a flow chart diagram showing the control process of the robot cleaner according to one preferred embodiment of the present invention;  
         [0028]    [0028]FIG. 8 is a perspective view showing another example of a possible room configuration; and  
         [0029]    [0029]FIG. 9 is a flow chart showing the control process of the robot cleaner according to another preferred embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0030]    Hereinbelow, the preferred embodiments of the present invention will be described in greater detail having reference to the appended drawings.  
         [0031]    Referring to FIGS. 1 and 2, a robot cleaner  10  comprises a suction unit  11 , a sensing unit  12 , a front camera  13 , an upper camera  14 , a driving unit  15 , comprising elements  15   a  to  15   g  (FIG. 1), a memory  16  (FIG. 2), a transmitter  17 , and a controller  18 . The power source may comprise a battery  19 .  
         [0032]    The suction unit  11  is installed on a main body  10   a  in order to collect dust on an opposing floor while drawing in air. The suction unit  11  can be constructed using well-known methods. As one example, the suction unit  11  has a suction motor (not shown), and a suction chamber, for collecting the air drawn in through a suction hole or a suction pipe formed opposite to the floor by driving of the suction motor.  
         [0033]    The sensing unit  12  sends a signal to commence the process of sensing the environment outside of the robot  10  cleaner. The sensing unit  12  comprises an obstacle detection sensor  12   a  disposed at a side circumference of the body  10   a  separated by predetermined intervals in order to receive a reflected signal, and a driving distance detection sensor  12   b  for measuring distances driven by the robot  10  cleaner.  
         [0034]    The obstacle detection sensor  12   a  has a plurality of infrared ray luminous elements  12   a   1  for projecting infrared rays and light-receiving elements  12   a   2  for receiving infrared rays. The infrared ray luminous elements  12   a   1  and receiving elements  12   a   2  are disposed along an outer circumference of the obstacle detection sensor  12   a  by perpendicularly arranged pairs. On the other hand, the obstacle detection sensor  12   a  can adopt an ultrasonic sensor capable of projecting an ultrasound and receiving a reflected ultrasound. The obstacle detection sensor  12   a  is also used for measuring the distance between the robot cleaner and an obstacle or an adjacent wall.  
         [0035]    The driving distance detection sensor  12   b  (FIG. 2) computes data received from a rotation detection sensor for detecting the degree or amount of rotation of wheels  15   a  through  15   d.  For example, the rotation detection sensor can adopt an encoder for detecting the degree of rotation of motors  15   e,    15   f,  respectively.  
         [0036]    The front camera  13  is disposed on the main body  10   a  is directed in the direction of travel in order to photograph a front image, and outputs the photographed image to the controller  18 .  
         [0037]    The upper camera  14  is disposed on the main body  10   a  and directly upwardly in order to photograph an upper image, and outputs the photographed image to the controller  18 .  
         [0038]    The driving unit  15  comprises: two wheels  15   a,    15   b  disposed at both sides of the front of body  10   a;  two wheels  15   c,    15   d  disposed at both sides of the back of body  10   a;  motors  15   e,    15   f  for respectively rotating the back wheels  15   c,    15   d;  and a timing belt  15   g  for transmitting power generated by the motors  15   e,    15   f  to the back wheels  15   c,    15   d  also to the front wheels  15   a,    15   b.  The driving unit  15  independently rotates the motors  15   e,    15   f  in a forward or an inverse direction in accordance with control signals received from the controller  18 . The angular rotation of the robot  10  can be performed by driving the motors  15   e,    15   f  with different speeds of rotation or in opposite directions. The transmitter  17  sends target data through an antenna  17   a,  and transmits a signal received by the transmitter  17 , through the antenna  17   a,  to the controller  18 .  
         [0039]    The controller  18  processes the signal received by the transmitter  17 , and controls each of the elements. The controller  18  processes a key signal input from a key input apparatus, when the key input apparatus having a plurality of keys for manipulating to set-up functions of an apparatus is further provided on the main body  10   a.    
         [0040]    The controller  18  develops or arranges a driving path for the robot cleaner  10  by analyzing the image photographed by the upper camera  14  as the controller  18  controls the driving unit  15  to drive within a cleaning area according to a driving pattern determined by the command for cleaning.  
         [0041]    According to a first aspect of the present invention, the controller  18  creates an image map in regard to an upper area of the cleaning area, such as a ceiling, from the image photographed by the upper camera  14  by controlling the driving unit  15  to drive the robot cleaner  10  within the cleaning area in accordance with a predetermined driving pattern for creating the map. The controller then stores the created image map into the memory  16 , when a mode for creating the image map is set up. The controller  18  can be set up to perform the mode for creating the image map when a signal is received commanding performance of the mode for creating the image map by an external wireless input or from the key input apparatus. Alternatively, the controller  18  can be set up to perform the mode for creating the image map before performing any cleaning operations, when the command for cleaning is wirelessly transmitted from the outside or the key input apparatus to the robot  10 .  
         [0042]    The controller  18  controls the driving unit  15  in accordance with the driving pattern set up by the controller so as to photograph the cleaning area. Generally, the cleaning area is surrounded by an obstacle or a wall, and may define an entire room by dividing the room with reference to the data received from the upper camera  14 , when operating the mode for creating the image map. As an example of the driving pattern, the controller  18  advances the robot cleaner  10  forward from a current position, and when a wall or obstacle is detected by the obstacle sensor  12   a,  sets up the current position as an initial position. After that, the controller  18  controls the driving unit  15  to drive the robot cleaner  10  until the robot cleaner  10  returns to its initial position by driving along the wall, thereby creating an image of a room outline or boundary.  
         [0043]    Then, the controller  18  drives the robot cleaner  10  within the area determined by the room outline along driving lines or legs separated by regular intervals. In other words, the controller  18  controls the driving unit  15  to drive the robot cleaner  10  along the driving line  22  planned with respect to the cleaning area  21  determined, as shown in FIG. 5.  
         [0044]    At this time, the interval separating the legs of the driving line  22  is determined to allow the upper images photographed by camera  14  to be consecutive. The upper image is photographed while the robot cleaner  10  is moving along the driving line  22 . Moreover, it is preferable that the photographing cycle is determined to provide frames having an overlap of about 10% to 20% with the adjacent image of the upper images photographed or extracted while moving along an adjacent leg of line  22 . The method for determining the photographing cycle can initially be done through a plurality of images photographed for several times. Alternatively, the photographing cycle may be set up in advance by considering an angle of vision of the upper camera  14  and the distance from the floor to ceiling in a normal room, and then the photographing can be done by a predetermined photographing cycle.  
         [0045]    The image photographed from the upper camera  14  during the driving process is stored in the memory  16  as the upper image map shown in FIG. 6. The stored image may include elements, as determined by the control program of the controller  18 , when elements, such as a bulb  31 , a fire sensor  32 , and a fluorescent lamp  33 , shown in FIG. 4, are photographed as being installed on the ceiling.  
         [0046]    Preferably, the controller  18  divides the image map stored in the memory  16  into several cells, as shown in FIG. 6. In addition, the controller  18  performs an image process for setting up one or more special features as standard coordinate points for recognizing the position so as to easily determine the position of the robot cleaner  10  by extracting the special feature among the images corresponding to each of the cells. For example, the bulb  31 , the fire sensor  32 , and the direct-light fluorescent lamp  33 , shown in FIG. 4, may be determined as the special features for the image processing method in regard to the image photographed for the corresponding elements  31 ,  32 ,  33  shown in of FIG. 6.  
         [0047]    The image processing method for extracting the special features from the photographed image can adopt well-known methods. For example, a method can be adopted using an algorithm that processes a coordinate point calculated by connecting pixel points having similar values, such as the special features, after converting the photographed image into a gray level. Moreover, an image area having a similar distribution as does the recorded data value can be determined as matching a corresponding special feature, after image data having a distribution type in regard to the special features are first stored in the memory  16 .  
         [0048]    According to a second aspect of the present invention, the controller  18  creates an image map by three-dimensionally mapping the front image photographed from the front camera  13  and the upper image photographed from the upper camera  14  and stores the created image map into the memory  16 . When the three-dimensional image map is created and used, the accuracy of the position recognition can be improved. In this case, it is preferable that the position recognition from the upper image received from camera  14 , having less variety of the installed elements, is processed first to provide information for recognizing the robot cleaner&#39;s position. When the position is not precisely recognized, it is advisable that the front image from camera  13  is referenced for additional information.  
         [0049]    The controller  18  recognizes the position of the robot cleaner  10  in reference to the stored image map by using the image map created when the robot cleaner  10  performs the cleaning after the image map is created. In other words, the controller  18  recognizes the current position of the robot cleaner  10  by comparing the current image input from the upper camera  14  alone, or from both the front camera  13  and the upper camera  14 , with the stored image map. The controller  18  then controls the driving unit  15  to follow the line  22  corresponding to the target driving path from the recognized position, when the signal for externally commanding the cleaning is wirelessly input from outside or from the key input apparatus.  
         [0050]    Here, the signal for commanding the cleaning may include an observation made through one or both of the cameras  13 ,  14  or from the cleaning program. The controller  18  calculates the driving error by using the current position recognized by the driving distance measured from the encoder and comparing the current photographed image from the cameras with the stored image map, and controls the driving unit  15  to track the target driving path by compensating for any error.  
         [0051]    It has been described that the image map is directly created by the controller  18 , and the position of the robot cleaner  10  can be recognized by the controller by using the created image map.  
         [0052]    According to a third aspect of the present invention, the robot cleaning system may externally process the upper image map creation and position recognition of the robot cleaner  10  to reduce the operation load required for the creating of the image map of the robot cleaner  10  and for recognizing the position of the robot cleaner  10 .  
         [0053]    The robot cleaner  10  is constructed to wirelessly send the photographed image information to an external processor, such as central control unit  50  (FIG. 2), and to perform operations in accordance with the control signal transmitted from the external processor. Moreover, a remote controller  40  wirelessly controls the driving of the robot cleaner  10 , recognizes the position of the robot cleaner  10 , and creates the image map.  
         [0054]    The remote controller  40  comprises a wireless relaying apparatus  41 , an antenna  42  and a central control unit  50 .  
         [0055]    The wireless relaying apparatus  41  processes the wireless signal transmitted from the robot cleaner  10  and transmits the processed signal to the central control unit  50  through a wire. In addition, the wireless relaying apparatus  50  wirelessly sends the signal transmitted from the central control unit  50  to the robot cleaner  10  through antenna  42 .  
         [0056]    The central control unit  50  is established with a general computer, and one example of the central control unit  50  is shown in FIG. 3. Referring to FIG. 3, the central control unit  50  comprises a CPU (central process unit)  51 , a ROM  52 , a RAM  53 , a display apparatus  54 , an input apparatus  55 , a memory  56 , including a robot cleaner driver  56   a,  and a communication apparatus  57 .  
         [0057]    The robot cleaner driver  56   a  is used for controlling the robot cleaner  10  and for processing the signal transmitted from the robot cleaner  10 .  
         [0058]    The robot cleaner driver  56   a  provides a menu for setting up the control of the robot cleaner  10  through the display unit  54 , and processes the menu choice selected by a user to be performed by the robot cleaner  10 , when being operated. It is preferable that the menu includes the cleaning area map creation, the cleaning command, and the observation operation. Moreover, it is advisable that an image map creation command, a target area selection list, and a method for cleaning are provided as sub-selection menus.  
         [0059]    In the case of the menu for creating the cleaning area map or the image map, it is preferable that the user can set up an update cycle at least once per week or once per month in regard to updating the status of the image map, when the robot cleaner  10  operates the cleaning process.  
         [0060]    When a signal for creating the image map is input through the input apparatus  55  by the user or at the time of creating the predetermined image map, the robot cleaner driver  56   a  controls the robot cleaner  10  to receive the upper image, usually the ceiling image, of the entire cleaning area required for creating the image map, as described before. The robot cleaner driver  56   a  creates the image map by mapping the image transmitted by the robot cleaner  10 , and stores the created image map into the memory  56 . In this case, the controller  18  (FIG. 1) of the robot cleaner  10  controls the driving unit  15  in accordance with control information transmitted from the robot cleaner driver  56   a  through a wireless relaying apparatus  41  (FIG. 2), and thus the operation load in regard to creation of the image map is diminished significantly. In addition, the controller  18  transmits the upper image photographed during a regular cycle while the robot cleaner is driving in accordance with commands sent by the central control unit  50  through the wireless relaying apparatus  41 . The robot cleaner driver  56   a  can create the image map by mapping the front image and the upper image, simultaneously.  
         [0061]    The position recognition method of the robot cleaner  10  operated by the above method will be described, referring to FIG. 7 for the method steps and to FIG. 1 for the hardware.  
         [0062]    First the controller  18  (FIG. 1) judges whether to perform the mode for creating the image map, step  100 .  
         [0063]    When the mode for creating the image map is required or commanded, the controller  18  drives the robot cleaner  10  to photograph the entire upper image of the ceiling, step  10 .  
         [0064]    The controller  18  creates the image map by mapping the upper image and, if necessary, the front image, photographed by the cameras  13 ,  14  corresponding to the cleaning area, and stores the created image map into the memory  16  or  56 , step  120 .  
         [0065]    After that, the controller  18  makes a determination of whether the command for cleaning is being transmitted, step  130 .  
         [0066]    When it is judged that the command for cleaning has been transmitted, the controller  18  recognizes the position of the robot cleaner  10  by comparing the upper image transmitted from the upper camera  14  with the stored image map, step  140 . When the image map includes the information on the front image in the step  140 , the current front image can be also used for the step of recognizing of the position of the robot cleaner  10 .  
         [0067]    Then, the controller  18  calculates the driving path from the recognized current position, as determined in step  140 , for moving to the cleaning area or along the cleaning path corresponding to the transmitted command for cleaning, step  150 .  
         [0068]    Next, the controller  18  drives the robot cleaner  10  according to the calculated driving path, step  160 .  
         [0069]    After that, the controller  18  makes a determination whether the work command is completed, step  170 . The work command here means the cleaning work that is performed driving the cleaning path or moving to the target position. If the work is not completed, steps  140  to  160  are repeated until the work is completed. Alternatively, according to a fourth preferred embodiment of the present invention, when the ceiling has an orthogonal outline, a method is adopted for driving the robot cleaner  10  so as to reduce the compensation process load in regard to the driving path by photographing the ceiling. For example, as shown in FIG. 8, when the ceiling is arrayed with rectangle plaster boards  34  or when a plurality of direct-light fluorescent lamps  35  are installed on the ceiling, the controller  18  or/and the remote controller  40  are established to compensate for any driving error by using the condition of the ceiling that provides the orthogonal outline defined by the edges of the plaster boards  34  or fluorescent lamps  35 .  
         [0070]    To achieve this, the controller  18  extracts any linear elements from the image photographed from the upper camera  14  while the robot cleaner  10  is driving, by using a well-known method for processing an image of a detected edge, and arranges for the driving track by using the extracted linear element information.  
         [0071]    Preferably, the controller  18  compensates for any driving error detected with respect to a predetermined time or a predetermined distance from the encoder. After that, the controller  18  repeatedly compensates for the driving error by using the linear element of the image photographed from the upper camera. In other words, the controller  18  calculates the driving track error by detecting the driving track error with the encoder, and controls the driving unit  15  for allowing the robot cleaner  10  to return to a target driving track by compensating for the calculated error. After that, the controller  18  compensates for driving error by calculating the track deviation error of the robot cleaner  10  by using direction information of the linear elements extracted by analyzing the image data photographed from the upper camera  14 .  
         [0072]    The above method can be adapted to the robot cleaning system described above.  
         [0073]    Here, the method for processing an image of the detected edge can adopt various methods such as a ‘Sobel Algorithm,’ or a ‘Navatiark Babu Algorithm.’ 
         [0074]    The robot cleaner controlling process for compensating for the driving error by extracting the linear element from the upper image will be described in greater detail referring to FIG. 9 for the method steps and to FIGS. 1 and 8 for the hardware.  
         [0075]    First, the controller  18  determines whether to perform the mode for creating the work or cleaning area map, step  200 .  
         [0076]    When the mode for creating the cleaning area map is required or commanded, the controller  18  drives the robot cleaner  10  within the cleaning area, step  210 .  
         [0077]    The driving pattern of the robot cleaner  10  in regard to the mode for creating the cleaning area map is the same as the example described above. First, the robot cleaner  10  is driven forward, and when a wall or an obstacle is detected by the obstacle detection sensor  12   a,  then the position is set up as the initial position. After that, the controller  18  controls the driving unit  15  to drive the robot cleaner  10  until the robot cleaner  10  returns to its initial position by driving along the outline of the room adjacent the wall. Next, the controller  18  drives the robot cleaner  10  within the area determined by the outline, as determined, along the driving line extending by incremental legs having, a predetermined interval between the legs. The controller  18  creates the cleaning area map by using the information on the obstacle or the driving track detected during the driving described above, and stores the cleaning area map, step  220 . On the other hand, the cleaning area map may be created using the same method as the mode for creating the image map described above, and thereafter stored.  
         [0078]    The controller  18  then determines whether the command for cleaning has been transmitted, step  230 .  
         [0079]    If the controller  18  determines that the command for cleaning has been transmitted, then the controller  18  calculates the driving path for moving to the commanded cleaning area or along the cleaning path corresponding to the transmitted command for cleaning, step  240 .  
         [0080]    Then, the controller  18  drives the robot cleaner  10  according to the calculated driving path, step  250 .  
         [0081]    The controller  18  extracts the linear element information from the image photographed from the upper camera  14  while the robot cleaner  10  is driving, and compensates for any driving error by using the extracted linear element information, step  260 . Here, it is preferable that the process for analyzing the image photographed from the upper camera  14  is performed once every cycle set up so as to reduce the image process load.  
         [0082]    Then, the controller  18  determines that the cleaning is completed by driving the robot cleaner  10  along the cleaning path according to the above process, step  270 . If the cleaning is not completed, the controller  18  repeats the steps  240  to  260  until the robot cleaner  10  completes the cleaning, as shown by the loop in FIG. 9.  
         [0083]    As described so far, the robot cleaner, the robot cleaning system, and the method for controlling the same according to the present invention can perform the commanded cleaning work more easily by reducing the driving error to the target position since the robot cleaner  10  can recognize the position more accurately by using the upper image having less variety of the installed elements. It is contemplated that unlike furniture, ceiling fixtures will not be moved as often.  
         [0084]    The preferred embodiments of the present invention have been illustrated and described herein. However, the present invention is not limited to the preferred embodiments described here, and someone skilled in the art can modify the present invention without distorting the point of the present invention claimed in the following claims.