A robotic device for working on a surface includes a body including: a tool for working on the surface; a controller moving the body along the surface; a first set of at least two rotors mounted to the body and generating thrust in a first direction towards the surface; and a second set of at least two rotors mounted to the body and generating thrust in a second direction away from the surface. A sensor measures a distance between the body and the surface, and a computer adjusts the first set of rotors and the second set of rotors in response to the sensor to place the body in position to work on the surface. In particular, the first set of rotors and the second set of rotors generate a net force on the body to it in non-contact position to work on the surface.