reference will now be made in detail to one or more embodiments , illustrated in the accompanying drawings , wherein like reference numerals refer to like elements throughout . in this regard , embodiments of the present invention may be embodied in many different forms and should not be construed as being limited to embodiments set forth herein , as various changes , modifications , and equivalents of the systems , apparatuses and / or methods described herein will be understood to be included in the invention by those of ordinary skill in the art after embodiments discussed herein are understood . accordingly , embodiments are merely described below , by referring to the figures , to explain aspects of the present invention . fig1 is a perspective view illustrating an outer appearance of a robot cleaner 1 according to one or more embodiments . referring to fig1 , the robot cleaner 1 may include a main body 10 that forms the outer appearance and auxiliary cleaners 100 a and 100 b ( collectively denoted by 100 ) that clean a near - wall portion and a corner portion . various sensors for detecting an obstacle may be coupled to the main body 10 and may include a proximity sensor 61 and / or a vision sensor 62 . for example , when the robot cleaner 1 navigates in an arbitrary direction without a determined path , that is , in a cleaning system with no map , the robot cleaner 1 may detect an obstacle by using the proximity sensor 61 and may navigate a cleaning area . by contrast , when the robot cleaner 1 navigates along a determined path , that is , in a cleaning system requiring a map , the vision sensor 62 that receives position information of the robot cleaner 1 and generates a map may be provided , and other various methods may be used . also , a display unit 70 may be coupled to the main body 10 and may display various states of the robot cleaner 1 . the display unit 70 may display , for example , a battery state of charge , whether a dust - collecting device is full , or a cleaning mode of the robot cleaner 1 . a structure of each auxiliary cleaner 100 will be explained below in detail with reference to fig3 through 6 . fig2 is a cross - sectional view illustrating a structure of a bottom surface of a robot cleaner according to one or more embodiments , such as the robot cleaner 1 of fig1 . referring to fig1 and 2 , the robot cleaner 1 may include a main brush unit 30 , a power supply 50 , driving wheels 41 and 42 , a caster 43 , and the auxiliary cleaners 100 a and 100 b . the main brush unit 30 may be mounted in an opening formed in a rear portion r of the bottom surface of the main body 10 . the main brush unit 30 may sweep dust accumulated on a floor on which the main body 10 is put into a dust inlet 33 . the opening of the bottom surface of the main body 10 in which the main brush unit 30 may be mounted is the dust inlet 33 . the main brush unit 30 may include a roller 31 and a main brush 32 on an outer surface of the roller 31 . as the roller 31 rotates , the main brush 32 may sweep dust accumulated on the floor into the dust inlet 33 . although not shown in fig2 , a ventilation device that generates a suction force may be provided in the dust inlet 33 and may transfer the dust swept into the dust inlet 33 to the dust collecting device . the power supply 50 may supply driving power for driving the main body 10 . the power supply 50 may include various driving devices for driving various parts mounted on the main body 10 and a battery that may be electrically connected to the main body 10 and may supply driving power . the battery may be a rechargeable secondary battery . when a cleaning process is completed and the main body 10 is coupled to a charger or a discharge station , the battery may be supplied with power from the charger or the discharge station to be charged . the driving wheels 41 and 42 may be symmetrically disposed on left and right edges of a central area of the bottom surface of the main body 10 . while the robot cleaner 1 performs the cleaning process , the driving wheels 41 and 42 may navigate forward or backward , or rotate . the caster 43 may be provided on a front edge of the bottom surface of the main body 10 in a navigation direction of the robot cleaner 1 , to help the main body 10 to maintain a stable posture . the driving wheels 41 and 42 and the caster 43 may constitute one assembly and may be detachably mounted on the main body 10 . openings may be formed at both sides of a front portion f of the bottom surface of the main body 10 , and the auxiliary cleaning units 100 a and 100 b may be provided to cover the openings . a structure of the auxiliary cleaner 100 will be explained in detail with reference to fig3 through 6 . the auxiliary cleaner 100 may be mounted to the bottom surface of the robot cleaner 1 to protrude and retract from and to the robot cleaner 1 . the auxiliary cleaner 100 may have any of various structures , and two structures according to one or more embodiments will be explained , but the structure of the auxiliary cleaner 100 is not limited thereto . fig3 is a cross - sectional view illustrating a structure of the auxiliary cleaner 100 that protrudes or retracts , according to one or more embodiments . referring to fig3 , the auxiliary cleaner 100 may include a side arm 102 , a rim cover 103 , and an auxiliary cleaning tool 110 . the side arm 102 may be coupled to a lower portion of a front side of the main body 10 , and an arm motor ( not shown ) that may drive the side arm 102 may be located in an upper portion of the side arm 102 . the arm motor may be connected to a rotating shaft ( not shown ) via a predetermined gear that may transmit a driving force to the side arm 102 , and the rotating shaft may be mounted in a coupling groove 101 formed in one end of the side arm 102 . accordingly , when the arm motor is driven , the rotating shaft may rotate and the side arm 102 may pivot about the coupling groove 101 . in this case , as the side arm 102 pivots to the outside of the main body 10 , the rim cover 103 may no longer cover the opening of the main body 10 and may no longer form a side rim of the main body 10 . a coupling groove 104 to which the auxiliary cleaning tool 110 may be coupled may be formed in the other end of the side arm 102 . a rotary motor ( not shown ) that drives the auxiliary cleaning tool 110 may be located in an upper portion of the other end of the side arm 102 , and the auxiliary cleaning tool 110 may rotate about the coupling groove 104 due to a driving force of the rotary motor . fig4 is a cross - sectional view illustrating a structure of an auxiliary cleaner 100 that protrudes or retracts , according to one or more embodiments . referring to fig4 , the auxiliary cleaner 100 may include a side arm 106 , a rim cover 108 , and the auxiliary cleaning tool 110 . the side arm 106 may be coupled through a coupling groove 105 to a lower portion of a front side of the main body 10 , and an extension arm 107 that may slidably extend to the outside of the side arm 106 may be received in the side arm 106 . the extension arm 107 may move forward and backward in a longitudinal direction of the side arm 106 in the side arm 106 . to this end , a rail may be formed in the side arm 106 , a guide loop ( not shown ) may be formed on the extension arm 107 , and the extension arm 107 may slidably move along the rail while being fixed to the rail . also , another extension arm that may slidably extend to the outside of the extension arm 107 may be received in the extension arm 107 . the other extension arm may move in the same manner , and the number of extension arms is not limited . an arm motor ( not shown ) that drives the extension arm 107 may be received in an upper portion of the side arm 106 . the arm motor may transmit a driving force to the extension arm 107 . when the arm motor is driven , the extension arm 107 may slide to the outside of the side arm 106 and may protrude to the outside of the main body 10 . in this case , the rim cover 108 may no longer cover the opening of the main body 10 and may no longer form a side rim of the main body 10 . a coupling groove 109 to which the auxiliary cleaning tool 110 may be coupled may be formed in an end of the extension arm 107 . a rotary motor ( not shown ) that drives the auxiliary cleaning tool 110 may be received in an upper portion of the end of the extension arm 107 , and the auxiliary cleaning tool 110 may rotate about the coupling groove 109 due to a driving force of the rotary motor . in the auxiliary cleaner 100 , the auxiliary cleaner 100 may protrude by receiving a force from , for example , a spring instead of a motor . also , as described above , a rotating shaft of the auxiliary cleaning tool 110 may not be the same as a rotating shaft of the motor and may be connected , for example , by a gear , a belt , or the like . the auxiliary cleaner 100 may include the auxiliary cleaning tool 110 , and the auxiliary cleaning tool 110 may clean a near - wall portion . the auxiliary cleaning tool 110 may include a brush that collects or scatters foreign substances such as dust , a dustcloth that cleans a floor , and an absorber that absorbs foreign substances such as dust . however , the auxiliary cleaning tool 110 is not limited to a specific type . fig5 is a view illustrating a structure of the auxiliary cleaning tool 110 , according to one or more embodiments . referring to fig5 , the brush arm 113 may extend outward in a radial direction of the auxiliary cleaning tool 110 . an auxiliary brush 112 may be coupled to the brush arm 113 , and a rotating shaft 111 that may protrude from the brush arm 113 may be coupled to the side arm 102 or the extension arm 107 through a coupling groove . when the auxiliary cleaning tool 110 rotates , the auxiliary brush 112 may sweep dust accumulated on a near - wall portion toward the central area of the main body 10 . fig6 is a view illustrating a structure of an auxiliary too , such as the auxiliary cleaning tool 110 , according to one or more embodiments . referring to fig6 , a dustcloth holder 116 may be formed in a radial direction of the auxiliary cleaning tool 110 , and an auxiliary dustcloth 115 may be mounted in a radial direction of the dustcloth holder 116 on the dustcloth holder 116 . a rotating shaft 114 that may receive a driving force of the rotary motor and may rotate the auxiliary cleaning tool 110 may protrude from the center of the dustcloth holder 116 , and the rotating shaft 114 may be coupled to the side arm 102 or the extension arm 107 through a coupling groove . when the auxiliary cleaning tool 110 rotates , the auxiliary dustcloth 115 may clean a near - wall portion . when the auxiliary cleaning tool 110 of fig6 is applied to the auxiliary cleaner 100 of fig4 , a cleaning operation of the auxiliary cleaner 100 may be performed when the auxiliary cleaning tool 110 rotates and the extension arm 107 repeatedly protrudes and retracts . also , a cleaning operation may be performed when only the extension arm 107 repeatedly protrudes and retracts without any rotation of the auxiliary cleaning tool 110 . the auxiliary brush 112 may be formed of any of various elastic materials , and the auxiliary dustcloth 115 may be formed of any of various materials such as , for example , a fibrous material . since a cleaning area may be widened due to the auxiliary cleaner 100 that protrudes to the outside of the main body 10 , the robot cleaner 1 may clean even a near - wall portion or a corner portion of the floor . although two auxiliary cleaning units 100 a and 100 b may be provided on both side portions of the robot cleaner 1 in fig1 through 6 , the present embodiment is not limited thereto and a number and positions of the auxiliary cleaning units 100 are not limited . however , for convenience of explanation , in the following description , it is assumed that two auxiliary cleaning units 100 may be provided on both side portions of the robot cleaner 1 as shown in fig1 through 6 . in the following description , it is assumed that a cleaning process may be basically performed by the main brush unit 30 while the robot cleaner 1 navigates . also , for convenience of explanation , it is assumed that the auxiliary cleaning tool 110 may be a brush type . fig7 is a block diagram illustrating a control structure of a robot cleaner , according to one or more embodiments . referring to fig7 , the robot cleaner 1 may include a first detector 60 that may detect an environment of the robot cleaner 1 , a second detector 300 that may detect an operation of the auxiliary cleaner 100 , an input unit 80 that may receive a command related to navigation or a cleaning operation of the robot cleaner 1 from a user , a controller 200 that may control the navigation and / or the cleaning operation of the robot cleaner 1 according to the command input to the input unit 80 or a result of the detection of the first and second detection units 60 and 300 , the main brush unit 30 and the auxiliary cleaner 100 that may perform the cleaning operation of the robot cleaner 1 , and a navigation unit 40 that may be in charge of the navigation of the robot cleaner 1 . the first detector 60 may detect an obstacle . examples of the first detector 60 that detects an obstacle may include , for example , an ultrasonic sensor , a light sensor , or a proximity sensor , etc . when the first detector 60 is an ultrasonic sensor , the first detector 60 may detect an obstacle by transmitting ultrasound waves to a navigation path and receiving reflected ultrasound waves . when the first detector 60 is a light sensor , an infrared light - emitting element may emit infrared rays , and an infrared receiving element may receive reflected infrared rays to detect an obstacle . in addition , the first detector 60 may be , for example , a proximity sensor , a contact sensor , or a vision sensor . as long as the first detector 60 may detect an obstacle , the first detector 60 is not limited to a specific construction . the second detector 300 may detect whether the auxiliary cleaner 100 performs a protrusion operation or a retraction operation . also , the second detector 300 may detect a protrusion degree or a retraction degree of the auxiliary cleaner 100 , and may detect whether the protrusion operation or the retraction operation of the auxiliary cleaner 100 is completed . in order to detect a protrusion or retraction state of the auxiliary cleaner 100 , the second detector 300 may include a contact sensor such as a micro - switch , a circuit that detects a counter - electromotive force of an arm motor , a hall sensor that detects a number of times the arm motor rotates , or a photo sensor . a detailed structure of the second detector 300 will be explained below in detail when a structure of detecting an operation of the auxiliary cleaner 100 is described . the input unit 80 may receive a command related to a cleaning operation or a navigation of the robot cleaner 1 from the user . basically , a cleaning start command or a cleaning end command may be input by inputting an on / off signal , and a command related to a navigation mode and a cleaning mode may be input . the input unit 80 may be provided on the main body 10 of the robot cleaner 1 as a button type , or may be provided on the display unit 70 as a touch panel type , for example . the controller 200 may detect an error of the auxiliary cleaner 100 and accordingly may control the robot cleaner 1 to clean and navigate . to this end , the controller 200 may include an error detector 210 that may detect an error of the auxiliary cleaner 100 , a cleaning controller 220 that may control the main brush unit 30 and the auxiliary cleaner 100 for a cleaning operation of the robot cleaner 1 , and a navigation controller 230 that may control the navigation unit 40 for a navigation of the robot cleaner 1 . a structure and an operation of the controller 200 will be explained in detail below . the main brush unit 30 may include the roller 31 and the main brush 32 placed into the outer surface of the roller 31 as described above . when the cleaning controller 220 transmits a control signal to a driving motor that drives the roller 31 , the roller 31 may begin to rotate according to the control signal . as the roller 31 rotates , the main brush 32 may sweep dust accumulated on the floor into the dust inlet 33 and a cleaning operation of the main brush unit 30 may be performed . the auxiliary cleaner 100 may clean a corner portion which the main brush unit 30 may not reach . the term ‘ corner portion ’ used herein refers to a portion formed when an obstacle including a wall and a floor contact each other . the auxiliary cleaner 100 may clean a corner portion which the main brush unit 30 may not reach . the auxiliary cleaner 100 may include the side arms 102 and 106 and / or the extension arm 107 which may be in charge of a protrusion operation and a retraction operation of the auxiliary cleaner 100 , a rotary motor that may rotate the auxiliary cleaning tool 110 , and an arm motor that may drive the side arms 102 and 106 and / or the extension arm 107 . the navigation unit 40 may include the driving wheels 41 and 42 , the caster 43 , and a driving unit that may drive the driving wheels 41 and 42 and the caster 43 as described above . the navigation controller 230 may transmit a control signal to the driving unit to drive the driving wheels 41 and 42 forward or backward , and thus may move the robot cleaner 1 forward or backward . when the driving wheel 41 as a left driving wheel is moved backward and the driving wheel 42 as a right driving wheel is moved forward , the robot cleaner 1 may rotate leftward . by contrast , when the driving wheel 41 is moved forward and the driving wheel 42 is moved backward , the robot cleaner 1 may rotate rightward . fig8 is a block diagram illustrating a control structure of the controller 200 of a robot cleaner , according to one or more embodiments . the first detector 60 , the second detector 300 , the input unit 80 , the main brush unit 30 , the auxiliary cleaner 100 , and the navigation unit 40 have already been described and thus an explanation thereof will not be given . referring to fig8 , the error detector 210 may determine whether the auxiliary cleaner 100 operates abnormally based on a result of a detection of the second detector 300 . when the cleaning controller 220 transmits a protrusion or retraction command to the auxiliary cleaner 100 but a result of the detection of the second detector 300 indicates that the auxiliary cleaner 100 does not normally protrude or retract , the error detector 210 may determine that an error has occurred in an operation of the auxiliary cleaner 100 . the cleaning controller 220 may control the main brush unit 30 and the auxiliary cleaner 100 to perform a cleaning operation according to the user &# 39 ; s input or a program that is previously stored . in detail , the cleaning controller 220 may generate a cleaning command and may control a motor that drives the main brush unit 30 to be driven , and may generate a protrusion command or a retraction command and may control a motor that drives the auxiliary cleaner 100 to be driven . the navigation controller 230 may control a navigation path and a navigation speed of the robot cleaner 1 by controlling the navigation unit 40 according to the user &# 39 ; s input or a program that is previously stored . a protrusion or retraction operation of the auxiliary cleaner 100 and a rotation operation of the auxiliary cleaning tool 110 in one or more embodiments may be the same as those described with reference to fig3 through 6 . that is , a protrusion or retraction operation of the auxiliary cleaner 100 may be performed as the arm motor that drives the side arm 102 or the extension arm 107 rotates , and a rotation operation of the auxiliary cleaning tool 110 may be performed as the rotary motor rotates . a structure of detecting an operation of the auxiliary cleaner 100 and a method of detecting an error of the auxiliary cleaner 100 will be explained in detail . in the following description , a driving unit may include an arm motor that drives a side arm or an extension arm of the auxiliary cleaner 100 . fig9 is a perspective view illustrating a structure of detecting an operation of an auxiliary cleaner , such as the auxiliary cleaner 100 , according to one or more embodiments . referring to fig9 , a magnet plate 340 may rotate by being coupled to a rotating shaft of a driving unit 120 . two or more permanent magnets 330 are mounted on the magnet plate 340 . the number of the permanent magnets 330 mounted on the magnet plate 340 may vary according to sizes of the permanent magnets 330 . hall sensors 311 and 312 may be provided on a side of an outer peripheral surface of the driving unit 120 . a plurality of the hall sensors 311 and 312 may be provided on the outer peripheral surface of the driving unit 120 with a phase difference of , for example , 120 or 90 degrees . as the magnet plate 340 rotates , a magnetic field generated by the permanent magnets 330 may be detected by the hall sensors 311 and 312 , and the hall sensors 311 and 312 may transmit a square - wave signal to the error detector 210 according to the detected magnetic field . in this case , the magnet plate 340 may rotate forward or backward according to a rotation direction of the driving unit 120 . the error detector 210 may determine the rotation direction of the driving unit 120 according to the magnetic field detected by the plurality of hall sensors 311 and 312 . fig1 is a perspective view illustrating a structure of detecting an operation of an auxiliary cleaner , such as the auxiliary cleaner 100 , according to one or more embodiments . referring to fig1 , a rotary plate 350 in which a plurality of slits may be formed to block or pass light may be coupled to the rotating shaft of the driving unit 120 . a light - emitting unit 360 that emits light toward the rotary plate 350 may be provided , and a light - receiving unit 313 that receives light may be provided on a side of the outer peripheral surface of the driving unit 120 . the light - emitting unit 360 may be , for example , a light - emitting diode ( led ), and the light - receiving unit 313 may be , for example , a photo sensor . as the rotary plate 350 rotates , the light - receiving unit 313 may receive light that has been emitted from the light - emitting unit 360 and has been transmitted through the slits formed in the rotary plate 350 . accordingly , whether the light - receiving unit 313 receives light may be related to whether the driving unit 120 rotates , and a number of times the light - receiving unit 313 receives light may be related to a number of times the driving unit 120 rotates . the light - receiving unit 313 may transmit a square - wave signal to the error detector 210 according to whether light is received . fig1 is a diagram for explaining a method of detecting an error of an auxiliary cleaner according to one or more embodiments , such as the auxiliary cleaner 100 of fig9 or 10 . referring to fig1 , the error detector 210 may receive a square - wave signal from the hall sensors 311 and 312 or the light - receiving unit 313 . the error detector 210 may determine a rotation direction of the driving unit 120 according to from which hall sensor a square - wave signal is first received from among the plurality of hall sensors 311 and 312 . accordingly , the error detector 210 may determine whether the auxiliary cleaner 100 performs a protrusion operation or a retraction operation according to whether the rotation direction of the driving unit 120 is a forward direction or a backward direction . the error detector 210 may calculate a rotation speed of the driving unit 120 according to a cycle of a signal received from the hall sensors 311 and 312 or the light - receiving unit 313 . when a signal is received from the hall sensors 311 and 312 , a cycle of the signal is inversely proportional to a rotation speed of the driving unit 120 and a number of the permanent magnets 330 mounted on the magnet plate 340 . when a signal is received from the light - receiving unit 313 , a cycle of the signal is inversely proportional to a rotation speed of the driving unit 120 and a number of the slits formed in the rotary plate 350 . the error detector 210 may calculate a number of times the driving unit 120 rotates by analyzing a square - wave signal received for a preset period of time , and may determine a protrusion or retraction degree of the auxiliary cleaner 100 based on the number of times the driving unit 120 rotates . for example , the error detector 210 may calculate a number of times the driving unit 120 rotates based on a number of times a low level or a high level of a signal is changed . for example , when a rotation speed of the driving unit 120 is a first speed ( 1 ×) as shown in fig1 , a number of times a low level or a high level of a signal is changed for a preset period of time may be 5 . likewise , when a rotation speed of the driving unit 120 is a second speed ( 2 ×), a number of times a low level or a high level of a signal is changed for a preset period of time may be 10 . for example , when a cycle of a signal is repeated 5 times , the rotating shaft of the driving unit 120 may rotate by 45 °, and when a cycle of a signal is repeated 10 times , the rotating shaft of the driving unit 120 may rotate by 90 °. that is , the error detector 210 may calculate a number of times the driving unit 120 rotates by analyzing a number of times a cycle of a signal is repeated for a preset period of time . when a number of times a cycle of a signal is changed for a preset period of time is less than a critical value , that is , when a number of times a low level or a high level of a signal is changed is less than a critical value , the error detector 210 may determine that an error has occurred in a protrusion or retraction operation of the auxiliary cleaner 100 . the preset period of time may be the same as a time taken for the auxiliary cleaner 100 to normally protrude or retract or a value obtained by adding or subtracting a predetermined period of time to or from the time taken for the auxiliary cleaner 100 to normally protrude or retract . the error detector 210 may determine whether a protrusion operation or a retraction operation of the auxiliary cleaner 100 is completed based on an accumulated number of times the driving unit 120 rotates . when a square - wave signal is received from the hall sensors 311 and 312 or the receiving unit 313 and a number of times a cycle of a signal is repeated for a preset period of time is greater than a critical value even though there is no protrusion command or retraction command for the auxiliary cleaner 100 , the error detector 210 may determine that the auxiliary cleaner 100 has performed an undesired protrusion operation or retraction operation . fig1 is a block diagram illustrating a structure of detecting an operation of an auxiliary cleaner , such as the auxiliary cleaner 100 , according to one or more embodiments . referring to fig1 , a first detection circuit 314 and a second detection circuit 315 may be provided in the driving unit 120 , and each of the first and second detection circuits 314 and 315 may detect a counter - electromotive force generated when the arm motor or the rotary motor rotates . the first detection circuit 314 and the second detection circuit 315 may be provided at different positions in order to distinguish counter - electromotive forces according to a rotation direction of the driving unit 120 . the error detector 210 may determine whether the auxiliary cleaner 100 performs a protrusion operation or a retraction operation according to whether current corresponding to a forward rotation of the driving unit 120 is detected or current corresponding to a backward rotation of the driving unit 120 is detected . fig1 is a graph for explaining a method of detecting an error of an auxiliary cleaner according to one or more embodiments , such as the auxiliary cleaner 100 of fig1 . referring to fig1 , a current may be supplied from a power supply circuit to the driving unit 120 according to a protrusion command or a retraction command for the auxiliary cleaner 100 , and the first detection circuit 314 or the second detection circuit 315 may detect an amount of current generated as the arm motor or the rotary motor supplied with the rotates . current supplied to the arm motor or the rotary motor may be proportional to current detected by the first detection circuit 314 or the second detection circuit 315 . since an amount of current detected by the first detection circuit 314 or the first detection circuit 314 may be proportional to a protrusion degree or a retraction degree of the auxiliary cleaner 100 , the error detector 210 may determine the protrusion degree or the retraction degree by using the amount of current detected by the first detection circuit 314 or the second detection circuit 315 . for example , current values i 1 and i 2 may need to be supplied in order to drive and rotate the arm motor or the rotary motor as shown in fig1 , and amounts of current s 1 and s 2 supplied to the arm motor or the rotary motor may be set according to a desired protrusion degree or a desired retraction degree of the auxiliary cleaner 100 . here , the current values i 1 and i 2 and the amounts of current s 1 and s 2 supplied to the arm motor or the rotary motor may vary according to a type of the arm motor or the rotary motor , and the amounts of current s 1 and s 2 supplied to the arm motor or the rotary motor may correspond to values obtained by integrating current values supplied to the arm motor or the rotary motor for periods of time t 1 and t 2 taken for the auxiliary cleaner 100 to operate normally . when an amount of current detected by the first detection circuit 314 or the second detection circuit 315 for a preset period of time is less than a critical value , the error detector 210 may determine that an error has occurred in a protrusion or retraction operation of the auxiliary cleaner 100 . the preset period of time may be the same as a time taken for the auxiliary cleaner 100 to normally protrude or retract or a value obtained by adding or subtracting a predetermined period of time to or from the time taken for the auxiliary cleaner 100 to normally protrude or retract . the error detector 210 may determine whether a protrusion operation or a retraction operation of the auxiliary cleaner 100 is completed based on an accumulated amount of current detected by the first detection circuit 314 or the second detection circuit 315 . when current is detected by the first detection circuit 314 or the second detection circuit 315 and an amount of current detected for a preset period of time is greater than a critical value even though there is no protrusion command or retraction command for the auxiliary cleaner 100 , the error detector 210 may determine that the auxiliary cleaner 100 has performed an undesired protrusion operation or retraction operation . fig1 and 15 are diagrams illustrating a structure of detecting an operation of an auxiliary cleaner , such as the auxiliary cleaner 100 , according to one or more embodiments . referring to fig1 and 15 , in order to protrude or retract the auxiliary cleaner 100 , a contact detection sensor such as , for example , a micro - switch or a contact switch may be provided in a path through which a predetermined mechanism moves . examples of a contact detection sensor include a sensor that indirectly detects a contact such as a photo interrupter as well as a sensor that physically detects a contact . when it is assumed that a predetermined mechanism pivots about a predetermined rotating shaft as shown in fig1 , a plurality of contact detection sensors 316 may be provided in a radial direction of a mechanism 370 . when it is assumed that a predetermined mechanism linearly moves in a predetermined direction as shown in fig1 , a plurality of the contact detection sensors 316 may be provided in a movement direction of a mechanism 390 . accordingly , the error detector 210 may indirectly estimate a position of the auxiliary cleaner 100 by using a contact position between a predetermined mechanism and the contact detection sensors 316 . although a micro - switch is used as only an example in the following description for convenience of explanation , the present embodiment is not limited thereto . also , the number of the contact detection sensors 316 may vary according to an accuracy in detecting an operation of the auxiliary cleaner 100 , and a resistor 380 may be connected to an end of each of the contact detection sensors 316 . a plurality of micro - switches may be provided to contact a predetermined mechanism in a path through which the predetermined mechanism moves . as the predetermined mechanism moves , a specific micro - switch of the micro - switches may detect a contact , and the error detector 210 may determine whether the auxiliary cleaner 100 performs a protrusion operation or a retract operation based on a position of the specific micro - switch detecting the contact and an order in which contacts are detected . the error detector 210 may calculate an operation speed of the auxiliary cleaner 100 by using a time and a position of a micro - switch detecting a contact , and may determine whether a protrusion operation or a retraction operation of the auxiliary cleaner 100 is completed based on a final position of a micro - switch detecting a contact . when a contact between a mechanism and a micro - switch of a predicted position within a preset period of time is not detected , the error detector 210 may determine that an error occurs in a protrusion or retraction operation of the auxiliary cleaner 100 . the preset period of time may be the same as a time taken for the auxiliary cleaner 100 to normally protrude or retract or a value obtained by adding or subtracting a predetermined period of time to or from the time taken for the auxiliary cleaner 100 to normally protrude or retract as described above . when a position of the auxiliary cleaner 100 is changed and a contact between a mechanism and a micro - switch of a specific position is detected even though there is no protrusion command or retraction command for the auxiliary cleaner 100 , the error detector 210 may determine that the auxiliary cleaner 100 performs an undesired protrusion operation or retraction operation . a method of controlling the robot cleaner 1 according to the structures of detecting an error of the auxiliary cleaner 100 will be explained . fig1 is a flowchart illustrating a method of controlling a robot cleaner in a case where an error occurs when an auxiliary cleaner , such as the auxiliary cleaner 100 , protrudes , according to one or more embodiments . referring to fig1 , in operation 511 , the controller 200 may determine whether a protrusion command for the auxiliary cleaner 100 is generated . when it is determined in operation 511 that there is a protrusion command for the auxiliary cleaner 100 , the method may proceed to operation 512 . in operation 512 , the controller 200 may determine whether an error is detected in a protrusion operation of the auxiliary cleaner 100 based on a result obtained when the second detector 300 detects the auxiliary cleaner 100 . when it is determined in operation 512 that an error is detected in a protrusion operation of the auxiliary cleaner 100 , the method may proceed to operation 513 . in operation 513 , the first detector 60 may determine whether an obstacle is detected in the protrusion direction of the auxiliary cleaner 100 . when it is determined in operation 513 that an obstacle is detected in the protrusion direction of the auxiliary cleaner 100 , the method may proceed to operation 514 . in operation 514 , the controller 200 may determine that the error of the auxiliary cleaner 100 is caused by the obstacle ( for example , a state where the auxiliary cleaner 100 fails to protrude due to a collision with the obstacle ). in operation 515 , the controller 200 may perform an operation in response to the obstacle . in this case , the controller 200 may perform a retraction operation of the auxiliary cleaner 100 in response to the obstacle . also , the controller 200 may change a navigation direction and a navigation pattern of the robot cleaner 1 in response to the obstacle . when it is determined in operation 513 that an obstacle is not detected in the protrusion direction of the auxiliary cleaner 100 , the method may proceed to operation 516 . in operation 516 , the controller 200 may determine that the error of the auxiliary cleaner 100 is caused by a change in a floor surface ( for example , a state where the floor surface is changed to a floor surface formed of a material with high resistance such as a carpet ). in operation 517 , the controller 200 may perform an operation in response to the change in the floor surface . in this case , the controller 200 may perform a retraction operation of the auxiliary cleaner 100 in response to the change in the floor surface . also , the controller 200 may adjust a protrusion strength of the auxiliary cleaner 100 in response to the change in the floor surface . to this end , the controller 200 may adjust current supplied to the arm motor that protrudes the auxiliary cleaner 100 . when it is determined in operation 511 that there is no protrusion command for the auxiliary cleaner 100 , the method may proceed to operation 518 . in operation 518 , the controller 200 may determine whether an error is detected in a protrusion operation of the auxiliary cleaner 100 based on a result obtained when the second detector 300 detects the auxiliary cleaner 100 . in this case , the controller 200 may additionally determine whether the robot cleaner 1 is in a navigation mode . when it is determined in operation 518 that an error is detected in a protrusion operation of the auxiliary cleaner 100 , the method may proceed to operation 519 . in operation 519 , the controller 200 may determine that the error of the auxiliary cleaner 100 is caused by an undesired protrusion ( for example , a state where the robot cleaner 1 is lowered by the user and the auxiliary cleaner 100 protrudes downward ). in operation 520 , the controller 200 may determine that the undesired protrusion is caused by an external force applied by the user , and may control the driving unit 120 to resist the external force in order to maintain a previous state . fig1 is a flowchart illustrating a method of controlling a robot cleaner in a case where an error occurs when an auxiliary cleaner , such as the auxiliary cleaner 100 retracts , according to one or more embodiments . referring to fig1 , in operation 611 , the controller 200 may determine whether a retraction command for the auxiliary cleaner 100 is generated . when it is determined in operation 611 that there is a retraction command for the auxiliary cleaner 100 , the method may proceed to operation 612 . in operation 612 , the controller 200 may determine whether an error is detected in a retraction operation of the auxiliary cleaner 100 based on a result obtained when the second detector 300 detects the auxiliary cleaner 100 . when it is determined in operation 612 that an error is detected in a retraction operation of the auxiliary cleaner 100 , the method may proceed to operation 613 . in operation 613 , the first detector 60 may determine whether an obstacle is detected in the retraction direction of the auxiliary cleaner 100 . when it is determined in operation 613 that an obstacle is detected in the retraction direction of the auxiliary cleaner 100 , the method may proceed to operation 614 . in operation 614 , the controller 200 may determine that the error of the auxiliary cleaner 100 is caused by the obstacle ( for example , a state where the auxiliary cleaner 100 fails to retract due to the obstacle disposed between the auxiliary cleaner 100 and the main body 10 ). in operation 615 , the controller 200 may perform an operation in response to the obstacle . in this case , the controller 200 may maintain a protrusion state of the auxiliary cleaner 100 for a predetermined period of time in response to the obstacle . also , the controller 200 may change a navigation direction and a navigation pattern of the robot cleaner 1 in response to the obstacle . when it is determined in operation 613 that an obstacle is not detected in the retraction direction of the auxiliary cleaner 100 , the method may proceed to operation 616 . in operation 616 , the controller 200 may determine that the error of the auxiliary cleaner 100 is caused by a change in a floor surface ( for example , a state where the floor surface is changed to a floor surface formed of a material with high resistance such as a carpet ). in operation 617 , the controller 200 may perform an operation in response to the change in the floor surface . in this case , the controller 200 may perform a protrusion operation of the auxiliary cleaner 100 in response to the change in the floor surface . also , the controller 200 may adjust a retraction strength of the auxiliary cleaner 100 in response to the change in the floor surface . to this end , the controller 200 may adjust current supplied to the arm motor that retracts the auxiliary cleaner 100 . when it is determined in operation 611 that there is no retraction command for the auxiliary cleaner 100 , the method may proceed to operation 618 . in operation 618 , the controller 200 may determine whether an error is detected in a retraction operation of the auxiliary cleaner 100 based on a result obtained when the second detector 300 detects the auxiliary cleaner 100 . in this case , the controller 200 may additionally determine whether the robot cleaner 1 is in a navigation mode . when it is determined in operation 618 that an error is detected in a retraction operation of the auxiliary cleaner 100 , the method may proceed to operation 619 . in operation 619 , the controller 200 may determine that the error of the auxiliary cleaner 100 is caused by an undesired retraction ( for example , a state where the user arbitrarily presses down the auxiliary cleaner 100 that is protruding . in operation 620 , the controller 200 may determine that the undesired retraction is caused by an external force applied by the user , and may control the driving unit 120 to resist the external force in order to maintain a previous state . although two auxiliary cleaning units 100 may be provided on both side portions of the robot cleaner 1 in the above - mentioned embodiments , the embodiments are not limited thereto , and a number and positions of the auxiliary cleaning units 100 are not limited . each of the auxiliary cleaning units 100 may protrude or retract , and a method of controlling the robot cleaner 1 which may be performed when an error occurs in an operation of each of the auxiliary cleaning units 100 may be applied to each of the auxiliary cleaning units 100 . in one or more embodiments , any apparatus , system , element , or interpretable unit descriptions herein include one or more hardware devices or hardware processing elements . for example , in one or more embodiments , any described apparatus , system , element , retriever , pre or post - processing elements , tracker , detector , encoder , decoder , etc ., may further include one or more memories and / or processing elements , and any hardware input / output transmission devices , or represent operating portions / aspects of one or more respective processing elements or devices . further , the term apparatus should be considered synonymous with elements of a physical system , not limited to a single device or enclosure or all described elements embodied in single respective enclosures in all embodiments , but rather , depending on embodiment , is open to being embodied together or separately in differing enclosures and / or locations through differing hardware elements . in addition to the above described embodiments , embodiments can also be implemented through computer readable code / instructions in / on a non - transitory medium , e . g ., a computer readable medium , to control at least one processing device , such as a processor or computer , to implement any above described embodiment . the medium can correspond to any defined , measurable , and tangible structure permitting the storing and / or transmission of the computer readable code . the media may also include , e . g ., in combination with the computer readable code , data files , data structures , and the like . one or more embodiments of computer - readable media include : magnetic media such as hard disks , floppy disks , and magnetic tape ; optical media such as cd rom disks and dvds ; magneto - optical media such as optical disks ; and hardware devices that are specially configured to store and perform program instructions , such as read - only memory ( rom ), random access memory ( ram ), flash memory , and the like . computer readable code may include both machine code , such as produced by a compiler , and files containing higher level code that may be executed by the computer using an interpreter , for example . the media may also be any defined , measurable , and tangible distributed network , so that the computer readable code is stored and executed in a distributed fashion . still further , as only an example , the processing element could include a processor or a computer processor , and processing elements may be distributed and / or included in a single device . the computer - readable media may also be embodied in at least one application specific integrated circuit ( asic ) or field programmable gate array ( fpga ), as only examples , which execute ( e . g ., processes like a processor ) program instructions . while aspects of the present invention has been particularly shown and described with reference to differing embodiments thereof , it should be understood that these embodiments should be considered in a descriptive sense only and not for purposes of limitation . descriptions of features or aspects within each embodiment should typically be considered as available for other similar features or aspects in the remaining embodiments . suitable results may equally be achieved if the described techniques are performed in a different order and / or if components in a described system , architecture , device , or circuit are combined in a different manner and / or replaced or supplemented by other components or their equivalents . thus , although a few embodiments have been shown and described , with additional embodiments being equally available , it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the invention , the scope of which is defined in the claims and their equivalents .
a robot cleaner that automatically removes dust accumulated on a floor while navigating a cleaning area , and a method of controlling the robot cleaner , includes a main body that navigates a floor ; a first detector that detects an obstacle getting closer to the main body ; an auxiliary cleaner that is mounted on the main body to protrude and retract ; a second detector that detects a protrusion state or a retraction state of the auxiliary cleaner ; and a controller that determines an abnormal operation of the auxiliary cleaner based on a result of the detection of the second detector and controls a protrusion operation or a retraction operation of the auxiliary cleaner according to a result of the determination .