Attitude estimation course outcome

+ Mastering basic and advanced topics related to Orientation estimation

+ Learning to work with datasheets and reference manuals of sensors

+ Applying math equations in real-world applications

+ Working with SPI, and UART in polling and DMA modes

+ Streaming IMU sensor readings in real-time

+ Using an IMU sensor (gyroscope, accelerometer, and magnetometer) to compute Euler angles

+ Learning the math behind Quaternions

+ Learning the Extended Kalman Filter

+ Using the Extended Kalman Filter for Orientation estimation


Part 1: STM32 Programming

In this part of the course, participants will gain proficiency in STM32 programming, essential for embedded systems development. Beginning with an introduction and clarification of prerequisites, the course progresses to hands-on experience with STM32 CubeIDE and HAL API. Students learn to create projects, utilize SWV for efficient debugging, and master SPI for communication. The focus extends to driver development for the ICM20948 IMU sensor, covering the library's initial version and testing procedures. The section concludes with an exploration of DMA theory and configuration. Throughout this part, participants build a solid foundation in STM32 programming, acquiring skills crucial for the subsequent focus on attitude estimation.

Part 2: Orientation Estimation

Building on the STM32 programming foundation, this part of the course delves into the specialized field of attitude estimation. Participants start with Euler angles, gaining insights into frame notions, 2D rotation, and Euler angles. Practical applications involve deriving pitch, roll, and yaw angles using accelerometers, magnetometers, and gyroscopes. The introduction of the Complementary Filter enhances students' understanding of sensor fusion techniques. The course then progresses to Quaternions theory, addressing challenges such as gimbal lock and emphasizing the necessity of quaternions in attitude estimation. Students explore quaternion operations, rotation matrices, and their integration into projects. The final chapter introduces the Extended Kalman Filter, applying the theory to achieve robust sensor fusion for accurate attitude estimation. This part provides participants with a comprehensive understanding of attitude estimation algorithms, allowing them to integrate these concepts into real-world applications.

Course curriculum

    1. Welcome to the course

    2. Prerequisites and is this course for you?

    3. Attitude estimation problem

    4. The pdf file contains slides to be used in the course

    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

    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

    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

    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

    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

About this course

  • 105 lessons
  • 11 hours of video content
  • +100 students

BASE

  • Immediate access to the full course content

  • Full support during the course enrollment

  • Access to the community page

  • Access to the source code of the Course

  • 100% money-back guarantee (7 days from the order)

MonTHLY Subscription

$18/mo

Recommended

  • Everything in the BASE subscription

  • Access to the source code of all projects in SteppeSchool

  • 100% money-back guarantee (7 days from the order)

Three-MONTH SUBSCRIPTION

$40/3-month

Annual

  • Everything in the base subscription

  • Access to the source code of all projects in SteppeSchool

  • 100% money-back guarantee (7 days from the order)

ANNUAL SUBSCRIPTION

$120/yr

Discover the Buzz and Insights from Our Viewers
Unlocking Knowledge: IMU sensors and Attitude Estimation Videos surpass 60,000 Views on YouTube. Here is what people say about it

Course Reviews

5 star rating

trouts review

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 ...

Read More

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 taing 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.

Read Less
5 star rating

Amazing content !

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 ...

Read More

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 ! Thanks again Yerkebulan Massalim !

Read Less

What you'll need

+ STM32 microcontroller board

+ IMU sensor, preferably ICM20948

+ Basic knowledge of programming STM32 MCUs

+ Basic knowledge of math. You must be familiar with terms like vectors, matrix multiplication, and basic trigonometry functions (cos, sin, etc.)

 


This course is for you if ...

  • 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

FAQ

  • What do I get after the enrollment?

    You will have full access to the course content on all electronic devices. In addition, you will receive PDF slides (60 pages in total) that summarize the entire content of the course. Also, you will have the option to ask questions.

  • Can I ask questions during the course?

    Every lesson has a discussion section where students can ask questions. I will be happy to answer your questions and give you feedback.

  • Can I cancel the subscription any time?

    You can cancel the subscription at any time and there is no cancellation fee. You will have full course content until your access expires.

  • Can I use a different STM32 board than the one used in the course?

    Since all stm32 microcontrollers are based on the same ARM architecture, they have minor differences. Also, you can mention your board in the discussions section. I will help you set up the hardware and project.

  • Should I have prior knowledge of programming STM32 microcontrollers?

    It is preferable to have basic STM32 programming skills