Autonomous Surface Exploration for Mobile Robots