The Mission: From Zero to State Estimation
The purpose of this blog is to publicly document my commitment and journey toward mastering the skills required for the ft_kalman project from School 42.
This project requires me to build a complex real-time 3D Kalman Filter. In the simplest terms, the end goal is to create a C program that can consistently and accurately determine a vehicle’s position, velocity, and orientation—despite receiving highly noisy, incomplete, and flawed sensor data.
To get there, I need to build a new technical foundation covering:
- Linear Algebra (Matrices)
- Statistical Modeling (Noise and Uncertainty)
- Kinematic Modeling (Physics of Motion)
For the moment, I freely admit that I have no working knowledge of these advanced topics. I am starting from scratch.
The Motivation: Proof of Work and Personal Excellence
While ft_kalman is a technical challenge, for me, it is fundamentally a personal challenge.
I am currently in the middle of completing core projects at 42 (like ft_irc, inception, and trancendance), but none of those projects really motivates me to do programming. I am starting this project to try a different approach, one that aligns with my true interests and builds genuine passion for the craft.
My goal is to prove to myself that I can master complex subjects, be a good student, and reach for excellence, regardless of past academic struggles or lack of formal credentials. I am basically a piece of crap when it comes to studying because I am extremely lazy unless its something that catches my attention so I chose this project because it truly sparked my interest and reminds me of the fun I had building a smaller scale algorithmic projects in the past using c++.
This project is my digital footprint—a public record designed to hold me accountable, stop me from being lazy, and push me to consistently learn at a high level
The Vision: Moving Towards Avionics
This journey is also about laying the groundwork for my professional future. I am interested in eventually working in fields like avionics systems engineering, where technologies like the Kalman Filter are foundational for guidance, navigation, and control (GNC) systems. Every line of code and every completed project is a step towards that career goal.
This is more than just completing a project; this is about achieving a new level of self-proof and technical competence.
What is the Kalman Filter
The Kalman Filter is an algorithm used for state estimation. In the context of this project, the algorithm's job is to:
- Filter Noise: Take in imperfect, noisy measurements from sensors like the accelerometer and GPS.
- Fuse Data: Combine these disparate data streams (sensor fusion) to produce a single, statistically optimal estimate of the vehicle's position and velocity.
- Predict State: Use a mathematical model of motion (kinematics) to predict the vehicle's state in the future.
- Correct Estimate: When new sensor data arrives, the algorithm calculates how much to trust the new measurement versus its own prediction, ultimately minimizing the estimation error.
The project explicitly mandates that you Must implement a Kalman Filter, no machine learning, no other algorithm. This means my final C program will be a direct, custom implementation of the Kalman Filter's mathematical equations, which are primarily based on linear algebra.
The Path Forward (Day 2 Preview)
Starting tomorrow, I begin with Phase 1: Linear Algebra. I will be building a matrix_lib from scratch in C, as matrices are the foundational language of the Kalman Filter.
You can access my github repository here
If you're interested in an easy-to-grasp explanation of the core concept behind the Kalman filter, this video provides an intuitive explanation of the algorithm's recursive nature.
Kalman Filter for Beginners, Part 1 - Recursive Filters & MATLAB Examples
btw I also have no idea about the things that were explained in this video but the point is to understand it at the end of this journey and also I apologize for my writing if I make any mistakes since its also the first time I am kinda doing this blogging and documenting thing.
I am open to hearing your advises as well you can contact me on X
Thank you for reading and I wish myself good luck.
Top comments (0)