[STM32 Drone programming from scratch] 10-3. Double loop cascade PID control - Theory (1/2)

Опубликовано: 17 Июль 2023
на канале: Wonyeob Chris Park
1,769
32

In this video, prior to double loop PID control, single loop PID angular rate control for smooth control is explained and experimented. Then, the limitations of the angular rate control method are pointed out and I explain the reason why double loop PID control is needed.


M-HIVE "STM32 Drone programming from scratch"
This is the only course about the drone embedded system development from sensor interface, the most basic feature, to PID control for the flight control.

☆★ Buy an MH-FC V2.2 and drone parts ☆★
https://www.m-hive.net/

☆★ Download source code ☆★
https://github.com/ChrisWonyeobPark/M...

☆★ Overview of the "STM32 Drone programming from scratch" course ☆★
   • [STM32 Drone programming from scratch] Cou...  

☆★ Contents of the course ☆★
   • [STM32 Drone programming from scratch] 0-2...  

☆★ Introduction to the drone parts ☆★
   • [STM32 Drone programming from scratch] 0-1...  


This video includes

Pitch-axis double loop cascade PID control demonstration
Indoor flight test based on double loop cascade PID control
Review of the structure of single loop PID angle controller
Review of the limitations of single loop PID angle control
Single loop PID angular rate control
Write code for pitch-axis single loop PID angular rate controller
Single loop PID angular rate controller test
Limitations of single loop PID angular rate control
Concept of angular rate control based on angle error


Enjoy the course!


The lecture consists of 3 parts and 12 chapters. (51 videos)

In Part 1. Flight control system development fundamentals

CH1. Setting up the development environment for STM32 embedded systems
CH2. Sensor interface - BNO080 9-axis sensor, ICM-20602 6-axis sensor, LPS22HH barometer (SPI)
CH3. GPS data receiving and parsing - NEO M8N (UART)
CH4. Transmitter and receiver, data receiving and parsing - FS-i6 transmitter, FS-iA6B receiver using i-Bus protocol (UART)
CH5. Drone assembly (QAV210 frame)
CH6. BLDC motor drive - Oneshot125 PWM protocol (TIM-PWM)

In Part2. Communication and add-on functions

CH7. Add-on functions - EEPROM interface(I2C), battery voltage checker(ADC), BNO080 calibration, gyro offset removal
CH8. Radio data transmission (FC↔GCS) (Transmitting drone status information and receiving control parameters, how to use Ground station for this course)
CH9. Safety functions - Fail-safe motor stop and low battery alarm

In Part3. Flight Control using PID Control

CH10. Preparation for PID control
CH11. Roll, pitch control (Cascade PID)
CH12. Heading control (Single PID)


※ What will students learn in this course?

STM32F4 based high performance drone flight control system firmware development
How to setup peripherals, generate and build source code for STM32 with STM32CubeIDE
Sensor interface, motor driving, radio data transmission, flight control and its all source code
How to use STM32F4 HAL and LL driver (mainly LL used)
Embedded system firmware development process
Self-made drone FC software development
Various sensors (9DoF, 6DoF, Barometer) interface
GNSS(GPS) interface and data parsing
FlySky FS-iA6B receiver interface and data parsing (iBus message protocol)
How to setup a quadcoptor drone
PWM generation using TIM peripheral of STM32
ESC calibration and various ESC protocol types
BLDC motor driving using oneshot125 protocol
Radio data communication
EEPROM, battery voltage checker and low battery alarm
Safety functions - sensor connection check, Fail-safe, etc.
Drone flight control technique - PID control in self-leveling mode
Single loop and Double loop PID (Cascade PID) control theory and experiment

※ What are the requirements or prerequisites for taking this course?

MH-FC V2.2 flight controller is required!!
You must purchase the drone parts yourself. Check the attached on my github
Windows PC and STM32CubeIDE. (Not supported MAC or linux, etc.)
C programming language novice or intermediate level required.
STM32F4 or any type of microcontroller (MCU) development experience required.
Basic circuit knowledge required. (But not essential)

※ Who is this course for?

Those who want to build the entire drone control system step by step, from sensor interface to the flight control
Those who want to develop embedded application programs using STM32
Anyone who want to build your own unique drone flight controller
Students majoring in electronics, communication, control, mechanics, and dynamics
Those who want to experience the embedded system development process
Those who want to jump up from Arduino or 8bit to 32bit MCU
Those who want to learn the basic principles of PID control and implement their own operation
Those who want to practice high-level embedded projects
Drone-related research institutes and educational institutions
Those who are working on projects related to unmanned vehicles