1. A mobile robot comprising: drive wheels operable to move the robot over a surface; an obstacle detection sensor; and a control system operatively connected to the obstacle detection sensor and to the drive wheels; wherein said control system is configured to: operate the robot in a plurality of modes including both an obstacle following mode in which the robot travels adjacent to an encountered obstacle, and a bounce mode in which the robot travels away from an encountered obstacle; track a frequency of obstacle encounters; and to operate the robot in the obstacle following mode over a distance determined as a function of the tracked frequency of obstacle encounters.