Spatial Cognition For Mobile Robots