A cleaning robot comprising: a main body having at least a part formed of a flat front; a driving unit configured to move the main body; an obstacle sensor configured to detect an obstacle in a non-contact manner and output an obstacle detection signal; a contact sensor configured to detect contact with the obstacle and output a contact detection signal; a suction motor configured to rotate a suction fan; and characterized in that it further comprises a controller electrically connected to the driving unit, the obstacle sensor, the contact sensor, and the suction motor, wherein the controller is configured to: determine whether or not to align the flat front of the main body with the obstacle based on the obstacle detection signal; based on determining an alignment between the flat front of the main body and the obstacle, control the driving unit so that the flat front is parallel to a first position of the obstacle; detect the flat front contacted the first position of the obstacle based on the contact detection signal; control the driving unit so that the main body moves backward based on the contact of the flat front with the first position of the obstacle; control the driving unit so that the main body travels in a curve so as to make the flat front parallel to a second position of the obstacle adjacent to the first position of the obstacle; and increase a rotational speed of the suction motor while the main body moves toward the obstacle. a main body having at least a part formed of a flat front; a driving unit configured to move the main body; an obstacle sensor configured to detect an obstacle in a non-contact manner and output an obstacle detection signal; a contact sensor configured to detect contact with the obstacle and output a contact detection signal; a suction motor configured to rotate a suction fan; and a controller electrically connected to the driving unit, the obstacle sensor, the contact sensor, and the suction motor, wherein the controller is configured to: determine whether or not to align the flat front of the main body with the obstacle based on the obstacle detection signal; based on determining an alignment between the flat front of the main body and the obstacle, control the driving unit so that the flat front is parallel to a first position of the obstacle; detect the flat front contacted the first position of the obstacle based on the contact detection signal; control the driving unit so that the main body moves backward based on the contact of the flat front with the first position of the obstacle; control the driving unit so that the main body travels in a curve so as to make the flat front parallel to a second position of the obstacle adjacent to the first position of the obstacle; and increase a rotational speed of the suction motor while the main body moves toward the obstacle. determine whether or not to align the flat front of the main body with the obstacle based on the obstacle detection signal; based on determining an alignment between the flat front of the main body and the obstacle, control the driving unit so that the flat front is parallel to a first position of the obstacle; detect the flat front contacted the first position of the obstacle based on the contact detection signal; control the driving unit so that the main body moves backward based on the contact of the flat front with the first position of the obstacle; control the driving unit so that the main body travels in a curve so as to make the flat front parallel to a second position of the obstacle adjacent to the first position of the obstacle; and increase a rotational speed of the suction motor while the main body moves toward the obstacle.