A mobile robot rotates a spin mop to move a main body along a surface and clean the surface. A location change of the main body during its motion is analyzed to determine if the robot is traveling abnormally. If abnormal traveling is occurring, the location where it is occurring is stored and re-cleaning of the location is initiated. The location where abnormal traveling occurred may be considered in next cleaning to improve cleaning efficiency.