| CPC G01C 21/1656 (2020.08) [G01C 21/28 (2013.01); G06T 7/246 (2017.01); G06T 7/277 (2017.01); G06T 7/73 (2017.01); G07C 5/08 (2013.01)] | 18 Claims |

|
1. A vision-aided inertial navigation system (VINS) comprising:
at least one image source configured to produce image data along a trajectory of the VINS within an environment, wherein the image data contains a plurality of features observed for a plurality of poses of the VINS along the trajectory;
an inertial measurement unit (IMU) configured to produce IMU data indicative of motion of the VINS; and
a processor communicatively coupled to the at least one image source and the IMU, wherein the processor is configured to derive state estimates by:
maintaining a state vector for a sliding window of two or more most recent poses of the VINS;
generating:
a set of one or more motion estimate geometric constraints between poses within the sliding window based on a first set of features of the plurality of features, and
the state estimates within the state vector for the sliding window based on the set of one or more motion estimate geometric constraints;
computing a motion manifold for the environment based on the state estimates;
using the motion manifold to generate a set of one or more motion manifold geometric constraints, wherein the set of one or more motion manifold geometric constraints are used to constrain the motion of the VINS within a particular range of deviation from planar motion; and
updating the state estimates according to the set of one or more motion estimate geometric constraints and the set of one or more motion manifold geometric constraints.
|