Giới thiệu dự án

Thị trường thiết bị bay không người lái (Unmanned Aerial Vehicle - UAV/Drone) đang trải qua giai đoạn tăng trưởng bùng nổ với tốc độ tăng trưởng kép hàng năm (CAGR) vượt 15%, phục vụ đa dạng các lĩnh vực từ giao nhận vận tải tự hành (Zipline, Wing), cứu hộ cứu nạn đến nông nghiệp thông minh. Tuy nhiên, việc phát triển hệ thống điều khiển bay (Flight Controller) từ mức thấp đòi hỏi khả năng xử lý động học phi tuyến tính phức tạp, chống nhiễu cảm biến và tối ưu hóa tài nguyên phần cứng thời gian thực.

Đề tài "Thiết kế và Điều khiển Máy bay Không người lái (Drone)" được thực hiện bởi nhóm nghiên cứu tại Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE), chuyên ngành Công nghệ Kỹ thuật Điều khiển & Tự động hóa, dưới sự hướng dẫn của TS. Trần Đức Thiện.

Vấn đề kỹ thuật (Problem Statement)

Hệ thống bay 4 cánh quạt (Quadrotor) là đối tượng điều khiển có tính chất bất định, ghép kênh phi tuyến mạnh (MIMO) và kém bền vững trước rung động cơ khí tần số cao từ động cơ không chổi than (Brushless DC Motor - BLDC). Khi động cơ quay ở tốc độ cao (lên đến 20.000+ RPM), dữ liệu thu thập từ khối đo lường quán tính (IMU) bị suy giảm tỷ số tín hiệu trên nhiễu (SNR), gây mất cân bằng vòng lặp kín và nguy cơ mất kiểm soát (flyaway).

Mục tiêu của dự án

  1. Thiết kế phần cứng tối ưu: Lựa chọn và tích hợp hệ thống động lực, mạch phân phối nguồn và vi điều khiển bảo đảm tỷ số lực đẩy trên khối lượng (Thrust-to-Weight Ratio) $> 3:1$.
  2. Xây dựng khung thử nghiệm (Test Bench): Thiết kế mô hình cơ khí 2 bậc tự do (2-DOF) trên phần mềm SolidWorks để phục vụ quá trình kiểm chuẩn an toàn.
  3. Xử lý tín hiệu cảm biến MPU6050: Ứng dụng kết hợp bộ lọc thông thấp số phần cứng (DLPF) và thuật toán lọc Kalman đệ quy để ước lượng góc nghiêng Roll ($\phi$), Pitch ($\theta$) chính xác.
  4. Phát triển thuật toán điều khiển PID: Lập trình bộ điều khiển tỷ lệ - tích phân - vi phân (PID) cân bằng trên nền tảng vi điều khiển ATmega328P.
  5. Đánh giá thời gian thực: Trích xuất dữ liệu đáp ứng động lực học qua Arduino Serial Plotter nhằm phân tích độ vọt lố ($POT$), thời gian xác lập ($t_s$) và sai số xác lập ($e_{ss}$).

Phạm vi và Giới hạn

  • Phạm vi: Cân bằng góc nghiêng 2 trục (Roll, Pitch) trên khung thử nghiệm cơ khí chuyên dụng; kiểm tra đáp ứng lực đẩy động cơ.
  • Giới hạn: Dự án chưa tích hợp định vị GPS và đo độ cao tuyệt đối qua Barometer/Sonar; thuật toán tối ưu hóa trên nền tảng vi điều khiển 8-bit.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Giải pháp Ưu điểm Nhược điểm Khả năng tùy biến học thuật
Commercial Flight Controller (DJI Naza, Pixhawk) Độ ổn định cao, tích hợp đầy đủ cảm biến, cắm là chạy Mã nguồn đóng hoặc kiến trúc phần mềm quá phức tạp, chi phí cao Rất thấp, không can thiệp sâu vào giải thuật lõi
Open-source Flight Controller (Betaflight/Cleanflight) Tối ưu hóa cho đua FPV, tốc độ lặp vòng điều khiển cao (1kHz - 8kHz) Yêu cầu phần cứng STM32 chuyên dụng, khó trích xuất mô hình toán Trung bình
Giải pháp nhúng tùy biến trên Arduino Uno (Đề tài) Chi phí thấp, trực quan hóa toàn bộ chuỗi xử lý tín hiệu và điều khiển Giới hạn về năng lực tính toán dấu phẩy động của MCU 8-bit Rất cao, phù hợp nghiên cứu và thực nghiệm sâu

Phân tích yêu cầu chức năng (MoSCoW)

  • Must have (Bắt buộc): Đọc dữ liệu Gyroscope/Accelerometer qua bus I2C (400kHz), bộ lọc Kalman ước lượng góc, bộ điều khiển PID 2 trục, xuất xung PWM điều khiển 4 ESC.
  • Should have (Cần có): Khung thử nghiệm Test Bench cân bằng cơ khí, cấu hình bộ lọc phần cứng DLPF trên thanh ghi 0x1A của MPU6050.
  • Could have (Có thể mở rộng): Điều khiển góc Yaw qua bù trừ moment xoắn phản kháng.
  • Won't have (Chưa thực hiện): Tính năng tự bay về điểm xuất phát (RTH) qua GPS, tránh vật cản tự động.

Thiết kế hệ thống

Kiến trúc tổng thể

graph TD
    Bat[Pin LiPo 3S 2200mAh] --> PDB[Matek PDB BEC 5V/12V]
    PDB --> ESC[4x ESC BLHeli 30A]
    PDB --> MCU[Arduino Uno R3]
    PDB --> IMU[Cảm biến MPU6050]
    
    IMU -- I2C Bus 400kHz --> MCU
    MCU -- 4x PWM Signals --> ESC
    ESC -- 3-Phase AC --> Motor[4x Motor Himodel 2450KV]
    Motor --> Prop[Cánh quạt Azure 4838]
    
    subgraph Signal Processing & Control
        RawData[Raw Accel/Gyro] --> DLPF[DLPF Register 0x1A]
        DLPF --> Kalman[Kalman Filter]
        Kalman --> StateEst[Góc ước lượng Roll/Pitch]
        SetPoint[Góc đặt Target = 0 deg] --> ErrorCalc[Sai số e_t]
        StateEst --> ErrorCalc
        ErrorCalc --> PID[Bộ điều khiển PID]
        PID --> Mixer[Motor PWM Mixer]
    end

Ngăn xếp công nghệ (Technology Stack)

  • Vi điều khiển: Arduino Uno R3 (Vi điều khiển ATmega328P 8-bit, 16 MHz Clock, 32KB Flash, 2KB SRAM).
  • Cảm biến góc nghiêng (IMU): GY-521 MPU6050 (3-axis Gyroscope $\pm 250^\circ/\text{s}$, 3-axis Accelerometer $\pm 2\text{g}$, 16-bit ADC, Digital Low Pass Filter tích hợp).
  • Hệ thống động lực:
    • 4x Brushless Motor Himodel XXD A2212 - 2450KV (Công suất 240W, Lực nâng cực đại 533g/động cơ).
    • 4x ESC BLHeli-S 30A (Hỗ trợ tín hiệu điều khiển PWM 50Hz, độ rộng xung 1000 - 2000 $\mu\text{s}$, dòng đỉnh 40A).
    • 4x Cánh quạt Azure Power Johnny 4838 (Polycarbonate siêu nhẹ $< 4\text{g}$, bước xoắn 3.8", đường kính 4.8").
  • Khung vỏ & Cơ khí: Khung Carbon Fiber 3K QAV-R 220mm (Tay arm dày 4mm), Giá đỡ Test bench thiết kế trên SolidWorks.
  • Nguồn cấp: Pin LiPo Spider 3S 11.1V 2200mAh 25C; Mạch phân nguồn Matek PDB Plus (Hub XT60, tích hợp BEC kép 5V/12V).
  • Môi trường phát triển: Arduino IDE v1.8.19, SolidWorks 2020.

Cơ sở toán học và Động lực học

  1. Cân bằng lực và Khí động học: Tổng lực nâng tạo ra bởi 4 rotor: $$T = \sum_{i=1}^{4} F_i = 4 \times C_T \rho A (\Omega R)^2$$ Với khối lượng toàn tải của Drone $m = 0.644\text{ kg}$, trọng lực tác dụng: $$P = m \cdot g = 0.644 \times 9.81 \approx 6.318\text{ N}$$ Tổng lực nâng tối đa của 4 động cơ Himodel 2450KV: $$T_{\max} = 4 \times (0.533 \times 9.81) \approx 20.915\text{ N}$$ Hệ số an toàn lực nâng đạt $\frac{T_{\max}}{P} \approx 3.31$, đảm bảo khả năng gia tốc và duy trì phản hồi góc linh hoạt.

  2. Thuật toán lọc Kalman (State-Space Formulation): Vector trạng thái tại thời điểm $k$: $x_k = \begin{bmatrix} \theta & \dot{\theta}_b \end{bmatrix}^T$ (trong đó $\theta$ là góc nghiêng, $\dot{\theta}_b$ là độ trôi gyro bias).

  • Bước dự đoán (Predict): $$\hat{x}{k|k-1} = A \hat{x}{k-1|k-1} + B u_k$$ $$P_{k|k-1} = A P_{k-1|k-1} A^T + Q$$

  • Bước cập nhật (Update): $$K_k = P_{k|k-1} H^T \left( H P_{k|k-1} H^T + R \right)^{-1}$$ $$\hat{x}{k|k} = \hat{x}{k|k-1} + K_k \left( z_k - H \hat{x}{k|k-1} \right)$$ $$P{k|k} = (I - K_k H) P_{k|k-1}$$

  1. Thuật toán điều khiển PID: $$u(t) = K_p e(t) + K_i \int_{0}^{t} e(\tau) d\tau + K_d \frac{de(t)}{dt}$$ Trong đó sai số $e(t) = \theta_{\text{setpoint}} - \theta_{\text{kalman}}$.

Phương pháp nghiên cứu (Methodology)

Giai đoạn 1: Tính toán cơ khí & Động lực học (Tuần 1 - 3)
├── Lựa chọn Motor, Propeller, ESC dựa trên bài toán lực đẩy
└── Thiết kế mô hình 2D/3D Test Bench trên SolidWorks

Giai đoạn 2: Gia công phần cứng & Kết nối điện (Tuần 4 - 6)
├── Chế tạo khung giá đỡ cân bằng 2-DOF
└── Đi dây mạch công suất Matek PDB, ESC BLHeli và vi điều khiển

Giai đoạn 3: Xử lý tín hiệu cảm biến (Tuần 7 - 9)
├── Cấu hình thanh ghi DLPF MPU6050 (Register 0x1A = 0x03)
└── Triển khai giải thuật lọc Kalman 1D trên Arduino C++

Giai đoạn 4: Tinh chỉnh bộ điều khiển PID & Thử nghiệm (Tuần 10 - 13)
├── Thử nghiệm theo luật chỉ định PID trên Test Bench
└── Phân tích dạng sóng Serial Plotter, tối ưu hóa thông số

Triển khai thực nghiệm và Kết quả

Quá trình phát triển phần mềm

Chương trình điều khiển được tối ưu hóa cho chu kỳ lấy mẫu $T_s = 4\text{ms}$ (tần số vòng lặp điều khiển $250\text{Hz}$). Thanh ghi bộ lọc số tích hợp trên chip MPU6050 được cấu hình trực tiếp qua giao thức I2C:

#include <Wire.h>

// Địa chỉ thanh ghi MPU6050
const int MPU_ADDR = 0x68;
const int CONFIG_REG = 0x1A; // Digital Low Pass Filter (DLPF) Configuration

// Tham số Kalman Filter
double Q_angle = 0.001, Q_bias = 0.003, R_measure = 0.03;
double angle = 0.0, bias = 0.0, rate = 0.0;
double P[2][2] = {{0, 0}, {0, 0}};

// Thông số PID tối ưu
double Kp = 5.00, Ki = 0.02, Kd = 0.46;
double error, last_error = 0, integral = 0, derivative;
double output_pid;

double getKalmanAngle(double newAngle, double newRate, double dt) {
    rate = newRate - bias;
    angle += dt * rate;

    P[0][0] += dt * (dt * P[1][1] - P[0][1] - P[1][0] + Q_angle);
    P[0][1] -= dt * P[1][1];
    P[1][0] -= dt * P[1][1];
    P[1][1] += Q_bias * dt;

    double S = P[0][0] + R_measure;
    double K[2];
    K[0] = P[0][0] / S;
    K[1] = P[1][0] / S;

    double y = newAngle - angle;
    angle += K[0] * y;
    bias += K[1] * y;

    double P00_temp = P[0][0];
    double P01_temp = P[0][1];

    P[0][0] -= K[0] * P00_temp;
    P[0][1] -= K[0] * P01_temp;
    P[1][0] -= K[1] * P00_temp;
    P[1][1] -= K[1] * P01_temp;

    return angle;
}

void setup() {
    Wire.begin();
    Wire.setClock(400000); // Thiết lập tốc độ I2C 400kHz
    
    // Cấu hình DLPF: DLPF_CFG = 3 (Gyro Bandwidth 42Hz, Delay 4.8ms)
    Wire.beginTransmission(MPU_ADDR);
    Wire.write(CONFIG_REG);
    Wire.write(0x03);
    Wire.endTransmission();
}

Thử nghiệm và Tinh chỉnh PID

Quá trình tinh chỉnh hệ số PID trên giá thử nghiệm Test Bench được tiến hành theo phương pháp thực nghiệm có cấu trúc:

[Khởi tạo: Kp=0, Ki=0, Kd=0] 
       ↓
[Tăng Kp -> Hệ thống phản hồi nhanh dần, xuất hiện dao động duy trì]
       ↓ (Kp = 2.0 -> 5.0)
[Tăng Kd -> Triệt tiêu dao động biên độ lớn, giảm vọt lố]
       ↓ (Kd = 0.46)
[Tăng Ki -> Khử sai số tĩnh quanh điểm cân bằng 0 deg]
       ↓ (Ki = 0.02)
[Hệ thống đạt cân bằng ổn định quanh Setpoint]
  • Thử nghiệm 1 ($K_p = 0, K_i = 0, K_d = 0$): Hệ thống hoàn toàn không có lực kháng moment; cánh tay đòn lập tức rơi vào vị trí lệch cực đại.
  • Thử nghiệm 2 ($K_p = 2.0, K_d = 0$): Hệ thống bắt đầu phản hồi nhưng thời gian đáp ứng chậm, sai lệch lớn khi có ngoại lực.
  • Thử nghiệm 3 ($K_p = 5.0, K_d = 0$): Hệ thống đạt độ nhạy cao nhưng dao động quanh trục liên tục với biên độ lớn (vọt lố $> 45%$).
  • Thử nghiệm 4 ($K_p = 2.0, K_d = 1.0$): Hiện tượng vọt lố giảm rõ rệt nhưng phản hồi bị trễ pha do vi phân khuếch đại nhiễu tần số cao.
  • Thử nghiệm 5 Tối ưu ($K_p = 5.0, K_d = 0.46, K_i = 0.02$): Hệ thống cân bằng chính xác, triệt tiêu hoàn toàn dao động tự do, bù tải ổn định khi tác động lực ngoại cảnh sang trái/phải.
Dạng sóng đáp ứng góc nghiêng (Roll/Pitch):
Góc (deg)
 15 |      _--_ (Ngoại lực tác động)
 10 |     /    \
  5 |    /      \__
  0 |---+----------\------------------ (Điểm đặt Setpoint = 0°)
 -5 |               \__-~- (Hệ phục hồi ổn định trong 0.45s)
    +--------------------------------- Thời gian (s)
      0.0   0.2   0.4   0.6   0.8   1.0

Đánh giá hiệu quả xử lý nhiễu cảm biến

Kịch bản lọc tín hiệu MPU6050 Biên độ nhiễu đỉnh-đỉnh ($\Delta \theta$) Độ trễ pha (Phase Delay) Đánh giá độ ổn định
Không có bộ lọc (Raw Data) $\pm 8.4^\circ$ $0\text{ ms}$ Cực kỳ nhiễu khi động cơ tăng tốc độ
Chỉ sử dụng Kalman Filter $\pm 3.2^\circ$ $\approx 2.1\text{ ms}$ Giảm nhiễu tốt nhưng vẫn bị gai tín hiệu cơ khí
Chỉ sử dụng DLPF (DLPF_CFG = 3) $\pm 2.8^\circ$ $\approx 4.8\text{ ms}$ Làm mượt tín hiệu nhưng có độ trễ pha
Kết hợp DLPF + Kalman Filter (Đề tài) $\pm 0.6^\circ$ $\approx 5.5\text{ ms}$ Tín hiệu làm mượt tối ưu, triệt tiêu 92.8% rung động cơ học

Đổi mới và Đóng góp kỹ thuật

  1. Cấu trúc lọc lai 2 tầng (Two-Tier Hybrid Filtering): Kết hợp tầng lọc phần cứng analog/digital on-chip của MPU6050 (thanh ghi 0x1A) để cắt các xung hài bậc cao của motor $> 42\text{Hz}$, kết hợp tầng lọc phần mềm Kalman ước lượng trạng thái đệ quy. Phương pháp này giảm thiểu hiện tượng trôi điểm không (drift) của Gyro và nhiễu gia tốc tức thời của Accelerometer.
  2. Khung thử nghiệm 2-DOF Test Bench tối ưu an toàn: Thiết kế trục xoay cân bằng cơ khí bằng SolidWorks, cho phép kiểm tra chính xác đáp ứng lực đẩy động cơ và thông số PID từng trục độc lập mà không gây rủi ro va chạm phần cứng.
  3. Hiện thực hóa trên phần cứng tối giản: Triển khai thành công chuỗi giải thuật lọc ma trận và điều khiển phản hồi phức tạp trên vi điều khiển 8-bit ATmega328P với chi phí dưới 2.500.000 VNĐ, chứng minh tính khả thi của các thuật toán nâng cao trên nền tảng nhúng giới hạn tài nguyên.

Ứng dụng thực tế và Triển khai

Khả năng ứng dụng thực tế

  • Học cụ đào tạo ngành Điều khiển & Tự động hóa: Cung cấp nền tảng mã nguồn mở trực quan cho sinh viên nghiên cứu lý thuyết điều khiển tự động, kỹ thuật lọc số và lập trình nhúng robot.
  • Khung thử nghiệm UAV công nghiệp thu nhỏ: Sử dụng làm giàn test tải động lực học, đo lực nâng và hiệu chỉnh ESC/Motor trước khi lắp ráp trên các khung bay thương mại cỡ lớn.
  • Drone giám sát nông nghiệp/môi trường: Tích hợp module truyền thông RF (NRF24L01/LoRa) để ứng dụng bay giám sát nông trại diện tích nhỏ.

Dự toán chi phí phần cứng (BOM Analysis)

STT Thiết bị / Linh kiện Số lượng Đơn giá (VNĐ) Thành tiền (VNĐ)
1 Động cơ không chổi than Himodel XXD 2212 - 2450KV 4 105.000 420.000
2 ESC BLHeli-S 30A (2-4S LiPo) 4 196.000 784.000
3 Cặp cánh quạt Azure Power Johnny 4838 2 75.000 150.000
4 Mạch phân phối nguồn Matek PDB Plus XT60 1 96.000 96.000
5 Cảm biến đo góc nghiêng GY-521 MPU6050 1 65.000 65.000
6 Bo mạch vi điều khiển Arduino Uno R3 DIP 1 180.000 180.000
7 Khung máy bay sợi Carbon QAV-R 220mm 1 406.000 406.000
8 Pin LiPo Spider 3S 11.1V 2200mAh 25C 1 400.000 400.000
9 Vật tư phụ trợ (Dây nguồn 18AWG, ốc vít, jack cắm XT60) - - 300.000
TỔNG Chi phí cấu thành phần cứng 2.801.000 VNĐ

Hạn chế và Hướng phát triển

Hạn chế kỹ thuật

  • Năng lực tính toán vi điều khiển: Vi điều khiển ATmega328P không có bộ tính toán dấu phẩy động phần cứng (FPU), khiến thời gian thực thi các phép nhân ma trận của bộ lọc Kalman chiếm dụng nhiều chu kỳ máy, giới hạn tần số lấy mẫu tối đa ở mức $250\text{Hz}$.
  • Bậc tự do thử nghiệm: Mô hình mới chỉ được kiểm chuẩn cân bằng trên trục đơn của giá đỡ Test Bench, chưa phản ánh đầy đủ hiệu ứng tương tác khí động học (Ground Effect, Vortex Ring State) khi bay tự do ngoài không gian thực.

Hướng phát triển

  1. Nâng cấp phần cứng điều khiển: Chuyển đổi nền tảng sang STM32F405 / STM32F722 (ARM Cortex-M4/M7 có FPU) để nâng tần số vòng lặp điều khiển lên $1\text{kHz} - 4\text{kHz}$ và ứng dụng giao thức DSHOT600 thay cho PWM truyền thống.
  2. Nâng cấp thuật toán lọc: Ánh xạ quaternion hóa bộ lọc Extended Kalman Filter (EKF) để loại bỏ hoàn toàn hiện tượng khóa trục (Gimbal Lock) khi quay ở góc lớn.
  3. Tích hợp cảm biến định vị: Bổ sung cảm biến độ cao Barometer BMP280, cảm biến dòng quang học (Optical Flow) và module GPS định vị RTK để hiện thực hóa khả năng bay lơ lửng (Altitude/Position Hold) tự hành.

Đối tượng hưởng lợi

  • Sinh viên & Giảng viên ngành Kỹ thuật: Tài liệu tham khảo toàn diện về tích hợp hệ thống nhúng, kỹ thuật lọc Kalman thực hành và phương pháp tinh chỉnh bộ điều khiển PID thực nghiệm.
  • Kỹ sư nghiên cứu Robotics & UAV: Cung cấp dữ liệu đo kiểm thực tế về đáp ứng động cơ 2450KV, phân tích rung động cơ khí và thiết kế kiến trúc phân phối nguồn công suất cao.
  • Nhà phát triển Drone mã nguồn mở: Nền tảng mẫu để phát triển các thuật toán điều khiển phi tuyến nâng cao như LQR, Sliding Mode Control hoặc Backstepping Control.

Câu hỏi thường gặp

1. Tại sao cần kết hợp cả bộ lọc thông thấp (DLPF) phần cứng và bộ lọc Kalman phần mềm?

Động cơ không chổi than quay ở dải tốc độ cao tạo ra rung động cơ khí có tần số lên tới hàng trăm Hz. Nếu chỉ dùng thuật toán Kalman, vi điều khiển 8-bit sẽ bị quá tải khi phải lọc lượng nhiễu lớn này. Cấu hình DLPF trên MPU6050 (cắt tại $42\text{Hz}$) giúp loại bỏ trước các thành phần sóng hài rung động cơ học, giúp thuật toán Kalman xử lý nhanh hơn và đạt độ chính xác cao hơn mà không gây trễ pha lớn.

2. Tỷ số Lực nâng / Khối lượng (Thrust-to-Weight) của mô hình đạt bao nhiêu và có ý nghĩa gì?

Tổng trọng lượng Drone là $644\text{g}$, trong khi 4 động cơ Himodel 2450KV tạo ra lực nâng tối đa $2132\text{g}$ ($533\text{g} \times 4$). Tỷ số đạt $\approx 3.31:1$. Tỷ số này vượt ngưỡng tiêu chuẩn cho Drone thông thường ($2:1$), đảm bảo hệ thống có đủ độ dự trữ công suất để đáp ứng các lệnh bẻ góc đột ngột và duy trì khả năng giữ thăng bằng khi có luồng gió ngoại cảnh.

3. Làm thế nào để điều khiển góc Yaw mà không làm thay đổi độ cao của Drone?

Góc Yaw được điều khiển dựa trên nguyên lý cân bằng moment xoắn ngược chiều. Cặp cánh trước - sau quay ngược chiều kim đồng hồ (CCW), cặp cánh trái - phải quay thuận chiều kim đồng hồ (CW). Khi cần xoay Yaw, tốc độ của cặp CCW tăng lên đồng thời tốc độ của cặp CW giảm đi cùng một lượng $\Delta \Omega$. Tổng lực nâng tạo ra không đổi, giúp Drone giữ nguyên độ cao trong khi moment xoắn chênh lệch sẽ làm thân Drone quay quanh trục $Z$.

4. Có thể nạp thẳng code điều khiển này để Drone bay tự do ngoài trời không?

Không nên bay tự do ngay lập tức. Mã nguồn hiện tại được tối ưu hóa cho mô hình cân bằng góc nghiêng trên giá thử nghiệm (Test Bench). Để bay tự do an toàn, cần bổ sung bộ thu phát tín hiệu không dây (RC Receiver), thuật toán trộn kênh lực đẩy 4 động cơ hoàn chỉnh (Mixer Algorithm), cùng vòng lặp bảo vệ tự ngắt (Failsafe) khi mất tín hiệu điều khiển.

5. Tại sao không sử dụng bộ lọc bù (Complementary Filter) thay vì bộ lọc Kalman?

Bộ lọc bù có ưu điểm là thuật toán đơn giản, tốn ít tài nguyên tính toán. Tuy nhiên, bộ lọc bù cố định trọng số $\alpha$ và không thể tự thích nghi với sự thay đổi của ma trận hiệp phương sai nhiễu đo lường theo thời gian. Bộ lọc Kalman ước lượng đệ quy và liên tục cập nhật ma trận hệ số khuếch đại Kalman Gain $K_k$, cho chất lượng ước lượng góc vượt trội trong môi trường rung động thay đổi liên tục của máy bay quadrotor.


Kết luận

Đồ án "Thiết kế và Điều khiển Máy bay Không người lái (Drone)" đã hoàn thành trọn vẹn chu trình nghiên cứu phát triển một hệ thống cơ điện tử phức tạp từ mức phần cứng thấp nhất. Bằng việc kết hợp thành công bộ lọc số phần cứng DLPF trên cảm biến MPU6050 với thuật toán lọc Kalman và bộ điều khiển PID tối ưu trên vi điều khiển ATmega328P, nhóm nghiên cứu đã giải quyết bài toán chống nhiễu cơ khí tần số cao và đạt được độ ổn định cân bằng cao trên khung thử nghiệm Test Bench. Đây là nền tảng học thuật và thực nghiệm vững chắc, mở ra tiềm năng ứng dụng rộng rãi cho các dự án phát triển thiết bị bay tự hành thông minh trong tương lai.