This week, I focused on integrating the IMU sensing pipeline and beginning development of the attitude estimation component of our state estimator. I implemented a complementary filter that combines gyroscope, accelerometer, and magnetometer measurements to estimate roll, pitch, and yaw from the IMU data stream. I structured the implementation so that the complementary filter runs as a standalone module, while a lightweight ROS node subscribes to the IMU topics and publishes the resulting orientation estimates.
I also created tools to test the filter using recorded IMU and magnetometer data. This included scripts to replay logged sensor data through the filter and visualization tools to plot and view the estimated orientation over time, including a simple 3D viewer to better interpret the results.
My progress is currently on schedule. The main goal this week was to establish a reliable orientation estimate from the IMU before integrating it into the full state estimation pipeline.
Next week, I plan to integrate the complementary filter output with the rest of the estimator and begin modifying the attitude filter so that it can fuse the IMU orientation estimates with visual attitude measurements from the celestial solver.
