NOTE / 12/7/2020
[FF] Visual-Wheel-GPS Localization: Fusing Wheel Odometry, Vision, and GPS
This follows MSCKF-Based Visual Wheel Odometry (VWO-MSCKF). Here I add GPS measurements to obtain global localization.
The implementation follows work from Guoquan Huang’s group: W. Lee, K. Eckenhoff, P. Geneva, and G. Huang, Intermittent GPS-aided VIO: Online Initialization and Calibration, ICRA 2020.
In the result below, the red trajectory is the fused estimate and the cyan trajectory is the GPS measurement.
If the player does not load, open the Zhihu video directly.
Code: ydsf16/TinyGrapeKit
Coordinate frame
Unlike VWO-MSCKF, the global frame is now an ENU (East-North-Up) frame. Its origin coincides with the origin of the wheel-odometry frame at initialization.
System state
The system state is otherwise the same as in VWO-MSCKF:
It contains the transformation between the wheel-odometry and global frames, together with the camera poses in the sliding window.
Extrinsics
Compared with VWO-MSCKF, this formulation adds the GPS-to-camera extrinsic: the GPS position expressed in the camera frame,
which is also the GPS-camera lever arm.
GPS update
GPS, wheel-odometry, and image timestamps are usually not synchronized. Suppose a GPS measurement falls between image frames and in the sliding window. Their timestamps are and , and their corresponding camera poses are
Let the GPS timestamp be . The camera pose at can be interpolated as
GPS supplies WGS84 coordinates. Convert them to ENU and denote the result by . The measurement equation is then
The measurement Jacobian with respect to the system state is
For the interpolated pose,
Let
The derivatives of the interpolated pose with respect to the two endpoint poses are
The rotational and translational terms in the pose Jacobians must be derived separately.
Initialization
Because the ENU origin is the initial wheel-odometry origin, initialize the position to zero:
For rotation, assume zero roll and pitch. The initial yaw is unknown, so it is also set to zero; assign yaw a large initial variance so that it converges quickly:
Experiment
The experiment uses the KAIST Urban Dataset. In the trajectory below, red is the fused trajectory and cyan is GPS. The fused estimate is smoother and remains bounded, while the GPS trajectory has visible noise and bias.

Summary
Adding GPS observations to the VWO-MSCKF sliding window preserves the short-term motion constraints from vision and wheel odometry while providing a global position reference. The key steps are: using a common ENU frame, handling GPS-image timestamp misalignment, introducing GPS-camera lever-arm extrinsics, and deriving the rotational and translational Jacobians for the interpolated pose correctly.