← All projects

RKCRobotics, Kinematics & ControlNov – Dec 2024

GPS & IMU Sensor Fusion for Automotive Dead Reckoning

Custom Python ROS drivers characterize sensor noise via Allan Variance and fuse magnetometer + gyro yaw with a complementary filter; a causal “moving-frame” zero-velocity update compensates IMU drift, and kinematics (accounting for sensor offset from the center of mass) reconstruct the trajectory against GPS ground truth.

  • ROS
  • Python
  • Allan Variance
  • Complementary Filter
  • Sensor Fusion
  • MATLAB

↗ gitlab.com/athaluri.s

Hardware & Architecture

  • Vehicle-mounted GPS + IMU modules acquired over a ROS framework with self-written Python device drivers.
  • Three datasets: circular roundabout driving (magnetometer calibration), a 5-minute stationary hold (bias), and a looped main-road drive (validation).

Key Highlights

  • Hard-iron correction by mean subtraction produced a near-spherical magnetic flux plot, confirming negligible soft-iron distortion.
  • Complementary filter fuses high-pass gyro yaw with low-pass magnetometer yaw to eliminate low-frequency drift.
  • Causal moving-frame windowing detects rest via low std-dev and zeroes velocity, offsetting integration bias in real time.
  • Kinematic model accounts for the sensor's ~4 cm displacement from the center of mass; dead-reckoned path tracks the GPS ground truth.

Images

Code

The full ROS device drivers plus the magnetometer-calibration, complementary-filter, and dead-reckoning analysis scripts live on the linked GitLab profile.