1. A method of navigating an indoor environment gathering visual information from sensors on a mobile device in the indoor environment, the visual information including a plurality of successive frames received from the camera; retrieving angular information from an inertial measurement unit during movement of the mobile device, the angular information indicative of a change in pose of the camera between the frames; and computing location information using the gathered visual information and the retrieved angular information, further comprising: performing feature detection on the retrieved visual information to determine feature positions; identifying features common to one or more of the plurality of frames; and computing a location based on the angular information when the visual information fails to distinguish sufficient features to compute a location, the camera further comprising left and right cameras, computing the location information further including modeling camera observations as a three dimensional vector having a first component, a second component and a third component, wherein the first component and the second component represent a pixel location of a feature as observed by the left camera and the third component is a pixel location within a row corresponding to the feature observed by the right camera.