1. A navigation system comprising: an image sensor operable to obtain a first image at a first moment in time and a second image at a second moment in time; an inertial measurement unit (IMU) operable to obtain measurement data corresponding to the first and second moments in time; and a processing unit coupled to the image sensor and the IMU, the processing unit operable to: estimate motion between the first and second moments in time based on the measurement data from the IMU; and determine error in the IMU measurement data based on the first and second images, wherein the processing unit is configured to determine error in the IMU measurement data by: calculating a plurality of transformations based on the estimated motion; applying each of the plurality of transformations to the first image to produce a plurality of predicted images; comparing the second image to each of the plurality of predicted images; selecting the predicted image from the plurality of predicted images which most closely matches the second image; wherein the processing unit is further configured to: and compensate for error in the IMU measurement data based on the transformation corresponding to the selected predicted image; perform navigation calculations based on the compensated IMU measurement data; and output the navigation calculations.