STM32 Attitude Estimation: IMU, Euler Angles, Filters
Master attitude estimation: IMU sensor interfacing, Euler angles, Quaternions, and Kalman Filter. Learn practical STM32 programming for SPI, UART, and Timer interrupts.
Enroll Now
Highly Practical
What you'll learn
✔ Hands-on experience with STM32CubeIDE and HAL API
✔ Creating and managing STM32 projects
✔ Implementing SPI communication between STM32 and peripherals
✔ Developing a custom driver for the IMU sensor
✔ Understanding DMA theory and configuring DMA in STM32
✔ Building a strong foundation in STM32 firmware development for later attitude estimation tasks
✔ Understanding Euler angles and frame concepts
✔ Calculating orientation using accelerometer, gyroscope, and magnetometer data
✔ Implementing a Complementary Filter for basic sensor fusion
✔ Learning Quaternion theory and overcoming gimbal lock issues
✔ Applying quaternions in embedded projects for real-time orientation tracking
✔ Introducing the Extended Kalman Filter (EKF) for advanced sensor fusion
Course Content
-
CH0 - Introduction
4 lessons- 1 - Welcome to the course
- 3 - Prerequisites and is this course for you?
- 4 - Attitude estimation problem
- 5 - The pdf file contains slides to be used in the course
-
Ch 1 - STM32 Embedded programming
9 lessons- 1 - Introductory words
- 2 - STM32 CubeIde Project creation
- 3 - Using SWV for printf function
- 4 - Using SWV to plot variables
- 5 - SPI theory
- 6 - SPI Configuration using STM32CubeMx
- 7 - SPI wirings
- 8 - Reading ‘Who am I’ register
- 9 - Sending data through SPI
-
CH2 - ICM20948 Driver Development
8 lessons- 1 - First version of the library
- 2 - Testing the library
- 3 - How to read the magnetometer?
- 4 - Magnetometer update 1
- 5 - Magnetometer update 2
- 6 - Testing a new version of the library
- 7 - DMA Theory
- 8 - DMA configuration
-
CH 3 - IMU Calibration: bias removal, normalization, and scaling
9 lessons- 1 - Removing gyroscope biases
- 2 - Magnetometer bias explanation
- 3 - Timer Update Interrupts
- 4 - Magnetometer bias removal
- 5 - Normalization and scaling of IMU data
- 6 - ARM MATH Library Installation
- 7 - Library Integration
- 8 - A notion of frame
- 9 - Testing the library
-
CH 4 - Euler angles
10 lessons- 1 - Attitude estimation, slides
- 2 - A notion of frame in detail
- 3 - 2D rotation
- 4 - Euler angles and Rotation Matrix
- 5 - Using the accelerometer to obtain pitch and Roll angles
- 6 - Using the magnetometer to obtain the Yaw angle
- 7 - Using the gyroscope to obtain the Euler angles
- 8 - Library Integration
- 9 - Complementary Filter
- 10 - Testing the libraries
-
CH 5 - Quaternion Theory
9 lessons- 1 - Gimbal Lock or why we need quaternions
- 2 - Introduction to Quaternions
- 3 - Quaternions, practice work
- 4 - Quaternion Multiplication
- 5 - Quaternion Rotation
- 6 - Quaterion Rotation Example
- 7 - Rotation matrix based on the Quaternions
- 8 - Quaternion Library integration
- 9 - Defining multiple rotations using quaternions
-
CH 6 - Quaternion Attitude estimation and Complementary Filter
8 lessons- 1 - How to obtain the Quaternions using the accelerometer?
- 2 - How to obtain the Quaternions using the magnetometer?
- 3 - How to obtain the Quaternions using the gyroscope?
- 4 - Complementary Filter for the Quaternion based Attitude Estimation
- 5 - Library Integration 1
- 6 - Library Integration 2
- 7 - Complementary Filter Library Integration/Explanation
- 8 - Quanternion Complementary Filter Test
-
CH 7 - Extended Kalman Filter Sensor Fusion
7 lessons- 1 - Linear Kalman Filter Recap
- 2 - Extended Kalman Filter Theory
- 3 - Attitude Estimation using the Extended Kalman Filter
- 4 - The extended Kalman Filter, practice work
- 5 - Library Integration 1
- 6 - Library Integration 2
- 7 - Extended Kalman Filter demo
Reviews
AMIR FAKOUR AF OPTIMUM
The amount of useful content in this course is just astonishing ! Yerkebulan Massalim (the author of all this) really guides you from scratch in his videos and takes a lots of time to explain everything needed to completly understand what we code and why code to make stable flight. I'm only at 27% progress but I already learn so much ! Also, when I had questions, the author always answered to me on the forum in a matter of hours only. I can't wait to learn more on the hardware and the filters !
Trout Marnell
i have had a great experience this far in the course, as i have just completed it. If you follow along closley and pay attention, this course will do wonders for you. I had no prior experiance on stm32 cube ide programming, and after watching the intro to programming youtubte videos, then taking the course, I have made insurmountable progress. I like the way he goes through and explains each line of code, and i woudl reccomend this to anyone.
Sneha Joshi
It was an extremely valuable course. It is definitely worth taking. The topics of STM32 Programming and Attitude estimation are extremely well explained.
Liam West
The course content is excellent: STM32 Programming, IMU sensor interfacing, and Data fusion algorithms. All of these are in one place and are rigorously explained.
Join Today and Save 50% – Time Left
00
DAYS
00
HOURS
00
MINS
00
SECS
Discount for students
Students can get a 30% discount on this course. Contact us to claim your discount.
Cancelling & 14-day Money-back guarantee
I'm sure you'll enjoy this course! But if it doesn't meet your expectations, no problem—you can get a full refund within 14 days and cancel anytime, no questions asked.
Ask Questions Anytime
Whenever you're stuck, ask in the comments tab — I personally reply within 12 hours to guide you forward, like a mentor throughout your STM32 journey.
Target audience
Built For Engineers Like You
➜ You want to learn communication interfaces, including SPI, I2C, and UART along with direct memory access (DMA)
➜ You want to learn algorithms and principles related to attitude estimation, including Euler angles, Quaternions, Complementary filter, and the Kalman Filter.
➜ You want to communicate with IMU sensors and sample data in real-time
➜ You want to advance your knowledge in programming STM32 microcontrollers
Requirments
WHAT you'll need
✔ STM32 microcontroller board
✔ IMU sensor, preferably ICM20948
✔ Basic knowledge of programming STM32 MCUs
✔ Basic understanding of math. You should be familiar with terms such as vectors, matrix multiplication, and basic trigonometric functions (cos, sin, etc.).