Jacob Ward Portfolio

Overview
This project evaluates the use of a VectorNav VN-100 IMU and a GNSS puck for dead reckoning navigation in the real-world driving environment shown on the left. By comparing dead reckoning estimates to GPS ground truth, the accuracy and limitations of inertial navigation over short- to medium-duration drives was assessed. See the final lab report for more detailed information about the project.
Methodology
The VectorNav VN-100 IMU was secured to the vehicle’s dashboard, and the GNSS puck was mounted on the roof, both connected to a laptop through USB interfaces. A single ROS launch file was used to start both of the custom-made IMU and GPS driver nodes simultaneously, ensuring synchronized data collection. The first dataset was recorded as the vehicle drove in repeated circles to aid magnetometer soft- and hard-iron calibrations during post-processing (see right). The next dataset, to be used for dead reckoning, was recorded as the vehicle traveled an above-ground route through Boston.

Yaw Angle from Different Methods
To aid dead reckoning, four different estimates of the yaw angle were obtained. Corrected Magnetometer Yaw was obtained from the corrected magnetometer x and y values. Integrated Gyro Yaw was obtained by integrating the yaw rate (angular velocity about the z-axis) from the IMU’s gyroscope. Euler Yaw was directly reported by the VectorNav IMU’s onboard orientation estimation, representing the yaw angle derived from its internal sensor fusion algorithms. Lastly, Complementary Filter Yaw combined the corrected magnetometer yaw and the integrated gyro yaw using a complementary filter to take advantage of the long-term stability of the magnetometer and the short-term responsiveness of the gyroscope, resulting in a more accurate and drift-resistant yaw estimate.

Velocity from Different Methods
After obtaining stable yaw values, two estimates of forward velocity were obtained. Accelerometer Velocity Estimate was obtained by integrating the forward acceleration measured by the IMU after removing bias and drift. This method uses inertial data to estimate how the vehicle’s speed changes over time but can accumulate errors without correction. GPS Velocity Estimate was calculated by measuring the distance between consecutive GPS coordinates and dividing by the time difference, providing an external, position-based measure of the vehicle’s speed. After appropriate bias removal and scaling corrections, the accelerometer-based velocity closely matched the GPS-derived velocity, validating the effectiveness of the dead reckoning approach over short time intervals. Further, the cumulative integral of the accelerometer forward velocity estimate produced a total distance traveled of 3198.1 m, and the GPS data produced a total distance traveled of 3147.2 m.


Results
The heading (yaw) from the magnetometer was used to rotate the estimated forward velocity to obtain a velocity vector. This velocity vector was then broken into Easting and Northing components and integrated to estimate the trajectory of the vehicle. The figure on the left shows a plot comparing the trajectory calculated from dead reckoning (IMU) overlayed with trajectory obtained from GPS data. Both trajectories follow the same shape, but the dead reckoning trajectory appears slightly rotated