Giới thiệu dự án

Bối cảnh và thực trạng ngành

Hỏa hoạn tại các khu đô thị đông dân cư, nhà xưởng công nghiệp và các tòa nhà cao tầng đang gia tăng với mức độ phức tạp ngày càng cao. Theo thống kê từ Cục Cảnh sát Phòng cháy chữa cháy và Cứu nạn cứu hộ (PCCC & CNCH), các vụ cháy tại các khu vực ngõ hẻm sâu hoặc tầng cao (> 10 tầng) thường gây thiệt hại nghiêm trọng do lực lượng chức năng mất từ 15–25 phút để tiếp cận hiện trường. Phương thức chữa cháy truyền thống bằng vòi phun nước từ xe thang bị giới hạn nghiêm trọng về chiều cao và góc tiếp cận, đồng thời đặt tính mạng lính cứu hỏa vào vùng rủi ro cực lớn do nhiệt độ cao, sập đổ kết cấu và khí độc $CO/CO_2$.

Sự phát triển của thiết bị bay không người lái (Unmanned Aerial Vehicle - UAV) đã mở ra giải pháp mang tính đột phá. Tuy nhiên, phần lớn các dòng drone giám sát thương mại hiện nay chỉ dừng lại ở nhiệm vụ truyền hình ảnh và thiếu khả năng can thiệp trực tiếp vào điểm cháy.

       +-------------------------------------------------------+
       |             Thực trạng PCCC truyền thống             |
       | - Tiếp cận chậm (kẹt xe, ngõ hẹp, tầng cao)           |
       | - Nguy cơ ngạt khí, sập đổ đối với lính cứu hỏa       |
       | - Tầm với xe thang giới hạn (< 50m)                   |
       +---------------------------+---------------------------+
                                   |
                                   v
       +-------------------------------------------------------+
       |       Giải pháp Đồ án: Firefighting Quadcopter        |
       | - Tự hành trinh sát, phát hiện ngọn lửa (YOLOv9)      |
       | - Cơ cấu kẹp nhả bóng chữa cháy thông minh (1.5 kg)   |
       | - Điều khiển quỹ đạo Offboard qua Jetson Nano + ROS  |
       +-------------------------------------------------------+

Bài toán kỹ thuật (Problem Statement)

Dự án tập trung giải quyết ba điểm nghẽn kỹ thuật cốt lõi:

  1. Khả năng mang tải và khí động học: Tải trọng quả bóng chữa cháy tự bung dạng bột khô ($Dry\ Chemical\ Powder$) nặng khoảng $1.5\text{ kg}$, đòi hỏi kết cấu khung quadcopter và hệ thống động lực phải tối ưu lực nâng, duy trì tỷ lệ lực đẩy trên khối lượng ($Thrust-to-Weight\ Ratio$) an toàn $\ge 2:1$.
  2. Nhận dạng và định vị điểm cháy theo thời gian thực: Môi trường đám cháy có sự biến động phức tạp về quang học (ánh sáng chói, khói bụi). Hệ thống cần mô hình thị giác máy tính chạy trực tiếp tại biên (Edge AI) với độ trễ $< 50\text{ ms}$ để bám sát tâm lửa.
  3. Cơ chế thả chính xác và điều khiển ổn định: Tích hợp bộ điều khiển bay (Flight Controller) với máy tính nhúng biên (Companion Computer) để tự động điều chỉnh tọa độ $X-Y-Z$ theo pixel ảnh mục tiêu và kích hoạt cơ cấu nhả tải đúng thời điểm.

Mục tiêu của đề tài

  1. Thiết kế và tính toán cơ cấu động học, khí động học: Lựa chọn khung carbon, động cơ không chổi than (BLDC), cánh quạt và nguồn pin LiPo đảm bảo tổng tải cất cánh $4.0\text{ kg}$.
  2. Nghiên cứu và chế tạo cơ cấu gắp - nhả bóng chữa cháy: Thiết kế cơ cấu ngàm kẹp truyền động bánh răng trục vít, phân tích ứng suất và biến dạng tĩnh trên phần mềm CAE.
  3. Xây dựng hệ thống thị giác máy tính và AI: Triển khai mô hình deep learning YOLOv9 trên NVIDIA Jetson Nano kết hợp camera Arducam IMX519 autofocus để phát hiện ngọn lửa.
  4. Phát triển thuật toán điều khiển tự hành: Lập trình hệ thống nút giao tiếp ROS (Robot Operating System), MAVROS và cầu nối MAVLink để điều khiển bay bám mục tiêu ở chế độ Offboard.
  5. Mô phỏng HITL và thử nghiệm thực địa: Kiểm chứng thuật toán qua mô phỏng phần cứng trong vòng lặp (Hardware-in-the-Loop - HITL) trước khi bay thực tế dập lửa.

Phương pháp tiếp cận và kết quả kỳ vọng

Nhóm tác giả lựa chọn cấu hình Quadcopter 4 cánh quạt chéo chữ X kết hợp bộ điều khiển bay Pixhawk 6C (chạy firmware PX4) và máy tính nhúng Jetson Nano Developer Kit. Giải pháp này cân bằng giữa tính linh hoạt, chi phí chế tạo và khả năng mở rộng thuật toán điều khiển phi tuyến.

  • Tải trọng hữu ích: $1.5\text{ kg}$ (Bóng cứu hỏa tự kích nổ khi tiếp xúc nhiệt độ $> 70^\circ\text{C}$).
  • Độ chính xác nhận diện ngọn lửa: $mAP@0.5 \ge 88%$, tốc độ xử lý $\ge 20\text{ FPS}$ trên Jetson Nano.
  • Thời gian bay ổn định khi mang tải: $\ge 12\text{ phút}$.
  • Sai số định vị thả bóng: Bán kính sai lệch $< 0.8\text{ m}$ so với tâm đám cháy.

Phạm vi và giới hạn của đề tài

  • Phạm vi nghiên cứu: Chữa cháy điểm phát hỏa cục bộ ngoài trời hoặc trong không gian bán hở; dập tắt các đám cháy loại A, B, C quy mô vừa và nhỏ bằng bóng bột khô.
  • Giới hạn kỹ thuật: Thử nghiệm trong điều kiện sức gió cấp 3 trở xuống ($< 5.4\text{ m/s}$); chưa tích hợp cảm biến đo nhiệt tầm xa (Thermal FLIR) và hệ thống định vị RTK-GPS phụ trợ trong môi trường mất sóng GPS hoàn toàn.

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

Phân tích hiện trạng công nghệ

Tiêu chí Xe thang / Vòi phun truyền thống UAV Cánh bằng (Fixed-wing) UAV Trực thăng đơn (Single-rotor) Quadcopter Đồ án đề xuất
Khả năng tiếp cận ngõ hẹp Rất kém Không thể Trung bình Rất tốt
Khả năng cất/hạ cánh thẳng đứng (VTOL) Không áp dụng Cần đường băng/bãi phóng Có (Linh hoạt cao)
Khả năng Hover (Treo tại chỗ) Không áp dụng Không thể Tốt Rất tốt và ổn định
Tự động nhận diện mục tiêu AI Không Hiếm khi tích hợp Chi phí quá cao Tích hợp Edge AI trực tiếp
Chi phí chế tạo & bảo trì Rất cao ($> 500.000\text{ USD}$) Cao ($> 15.000\text{ USD}$) Rất cao ($> 25.000\text{ USD}$) Thấp (< 1.500 USD)

Ưu tiên yêu cầu kỹ thuật (MoSCoW Matrix)

  • Must-Have: Khung sườn Carbon Tarot 650 chịu lực tốt; 4 động cơ BLDC Sunnysky x2814-7 1100KV; Flight Controller Pixhawk 6C; cơ cấu kẹp giữ bóng $1.5\text{ kg}$; thuật toán nhận diện lửa YOLOv9.
  • Should-Have: Giao thức điều khiển MAVROS qua cổng Telemetry FTDI; camera tự động lấy nét (Arducam IMX519); quy trình mô phỏng HITL trên Gazebo.
  • Could-Have: Chế độ tự động quay về điểm xuất phát (RTL - Return to Launch) khi pin dưới ngưỡng $20%$; thuật toán ước lượng độ cao $Z$ dựa trên kích thước pixel hộp bao (Bounding Box).
  • Won't-Have: Cảm biến LiDAR 3D quét chướng ngại vật; cơ chế tự động gắp lại bóng mới sau khi ném.

Thiết kế kiến trúc hệ thống

+-----------------------------------------------------------------------------+
|                               HỆ THỐNG PHẦN CỨNG                            |
|                                                                             |
|  +--------------------+     CSI Bus      +-------------------------------+  |
|  | Arducam IMX519     | ----------------> |  NVIDIA Jetson Nano (4GB)     |  |
|  | (16MP Autofocus)   |                   |  - ROS Noetic (Ubuntu 20.04)  |  |
|  +--------------------+                   |  - YOLOv9 Flame Detector      |  |
|                                           |  - Trajectory Planning Node   |  |
|  +--------------------+                   +---------------+---------------+  |
|  | GA25-370 DC Motor  |                                   |                  |
|  | & L298N Driver     | <--- GPIO Trigger (Pin 18/24) ----+                  |
|  +--------------------+                                   | UART / TELEM2    |
|                                                           | (MAVLink 921600) |
|                                                           v                  |
|  +--------------------+     PWM 400Hz     +-------------------------------+  |
|  | 4x ESC Skywalker   | <---------------- |  Holybro Pixhawk 6C           |  |
|  | 60A UBEC           |                   |  - PX4 Autopilot v1.14        |  |
|  +---------+----------+                   |  - Dual Redundant IMU (ICM)   |  |
|            |                              |  - EKF2 Position Estimation   |  |
|            v                              +---------------+---------------+  |
|  +--------------------+                                   ^                  |
|  | 4x Sunnysky 2814   |                                   | SPI / I2C        |
|  | 1100KV + APC 1045  |                   +---------------+---------------+  |
|  +--------------------+                   | Holybro M10 GPS / Compass     |  |
|                                           +-------------------------------+  |
+-----------------------------------------------------------------------------+

Danh mục công nghệ và linh kiện chuẩn xác

  • Khung thân: Tarot Iron Man 650 Foldable Carbon Fiber (Trọng lượng khung: $476\text{ g}$, trục cơ sở $650\text{ mm}$).
  • Hệ động lực: 4x Motor Sunnysky x2814-7 1100KV ($600\text{ W}$, lực đẩy tối đa $2360\text{ g/motor}$ ở điện áp $14.8\text{V}$), Cánh quạt APC 1045 ($10\times 4.5\text{ inch}$, trọng lượng $15\text{ g}$).
  • Bộ điều tốc điện tử (ESC): Hobbywing Skywalker 60A UBEC ($Continuous\ 60\text{A},\ Burst\ 80\text{A}$).
  • Nguồn năng lượng: Pin LiPo GNB 5500mAh 4S (14.8V, xả định mức 70C, cực đại 140C, xả liên tục tới $385\text{A}$, trọng lượng $450\text{ g}$).
  • Khối điều khiển & Định vị: Pixhawk 6C (Vi xử lý STM32H753 480MHz, 2MB Flash, 1MB RAM), Holybro M10 GPS (u-blox M10 GNSS hỗ trợ đồng thời 4 hệ vệ tinh GPS, GLONASS, Galileo, BeiDou).
  • Máy tính biên & Cảm biến: NVIDIA Jetson Nano B01 (128-core Maxwell GPU, Quad-core ARM A57, 4GB LPDDR4), Camera Arducam IMX519 (16MP, cảm biến Sony IMX519, giao tiếp MIPI-CSI-2).
  • Cơ cấu chấp hành gắp nhả: Động cơ DC giảm tốc GA25-370 (12V, 100 RPM, momen xoắn $2.5\text{ kg.cm}$) điều khiển qua mạch cầu H L298N.

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển Mechatronics V-Model kết hợp các chu kỳ Agile lặp nhanh:

[ Phân tích yêu cầu ] --------------------------------> [ Thử nghiệm thực địa ]
         \                                                     /
    [ Thiết kế động học/CAE ]                         [ Mô phỏng HITL ]
             \                                             /
        [ Lựa chọn linh kiện & AI ] --------> [ Tích hợp hệ thống ]
+-----------------------------------------------------------------------------+
| Giai đoạn 1: Tính toán động lực học & CAE cơ cấu kẹp (Tuần 1 - 4)          |
| Deliverables: Báo cáo tính lực nâng, bản vẽ 3D SolidWorks, kết quả FEA.    |
+-----------------------------------------------------------------------------+
                                       |
                                       v
+-----------------------------------------------------------------------------+
| Giai đoạn 2: Huấn luyện mạng AI & Xây dựng ROS Nodes (Tuần 5 - 8)          |
| Deliverables: Dataset ngọn lửa gán nhãn MakeSense, Model YOLOv9 ONNX/TensorRT.|
+-----------------------------------------------------------------------------+
                                       |
                                       v
+-----------------------------------------------------------------------------+
| Giai đoạn 3: Mô phỏng Hardware-in-the-Loop (HITL) (Tuần 9 - 11)             |
| Deliverables: Kết nối Pixhawk 6C với Gazebo qua MAVLink, kiểm chứng PID.   |
+-----------------------------------------------------------------------------+
                                       |
                                       v
+-----------------------------------------------------------------------------+
| Giai đoạn 4: Chế tạo cơ khí, Lắp ráp & Bay thử nghiệm (Tuần 12 - 16)       |
| Deliverables: Khung hoàn thiện, dập tắt đám cháy thử nghiệm thành công.     |
+-----------------------------------------------------------------------------+

Implementation và kết quả

Cơ sở mô hình toán học và động học Quadcopter

Mô hình động học 6 bậc tự do (6-DOF) của Quadcopter được thiết lập trong hệ quy chiếu cố định Trái Đất ${E} = {O_E, X_E, Y_E, Z_E}$ và hệ quy chiếu gắn trên thân Drone ${B} = {O_B, X_B, Y_B, Z_B}$.

             Front (Motor 1 - CCW)
                     ^ +X_B
                     |
  (Motor 4 - CW)     |     (Motor 2 - CW)
        \            |            /
         \           |           /
          \          |          /
           +---------+---------+  ---> +Y_B (Right)
          /          |          \
         /           |           \
        /            |            \
  (Motor 3 - CCW)    |
                     +Z_B (Down - NED)

Ma trận quay Euler $R_{B}^E$ từ hệ thân ${B}$ sang hệ ${E}$ với các góc Roll ($\phi$), Pitch ($\theta$), Yaw ($\psi$):

$$R_B^E = \begin{bmatrix} \cos\theta\cos\psi & \sin\phi\sin\theta\cos\psi - \cos\phi\sin\psi & \cos\phi\sin\theta\cos\psi + \sin\phi\sin\psi \ \cos\theta\sin\psi & \sin\phi\sin\theta\sin\psi + \cos\phi\cos\psi & \cos\phi\sin\theta\sin\psi - \sin\phi\cos\psi \ -\sin\theta & \sin\phi\cos\theta & \cos\phi\cos\theta \end{bmatrix}$$

Phương trình động lực học tịnh tiến tổng quát có tính đến lực đẩy động cơ $T_i = k_T \omega_i^2$, trọng lực $mg$ và lực cản khí động $D$:

$$m \ddot{P}E = \begin{bmatrix} 0 \ 0 \ mg \end{bmatrix} - R_B^E \begin{bmatrix} 0 \ 0 \ \sum{i=1}^4 T_i \end{bmatrix} - D \dot{P}_E$$

Mối quan hệ hình học giữa tọa độ tâm đám cháy trên mặt phẳng ảnh camera $(u_c, v_c)$ và góc điều khiển góc hướng (Yaw) cùng vị trí độ cao $Z$:

$$Z_{target} = \frac{f \cdot H_{real}}{h_{pixel}}$$

$$\psi_{error} = \arctan2(u_c - u_0, f_x)$$

Trong đó $f$ là tiêu cự camera, $(u_0, v_0)$ là tọa độ tâm quang học, $h_{pixel}$ là chiều cao pixel của bounding box ngọn lửa.

Xây dựng phần mềm và kiến trúc ROS Node

Hệ thống điều khiển biên sử dụng kiến trúc phân tán gồm 6 Node ROS chính chạy trên Jetson Nano:

[Camera Node (IMX519)] ---> /camera/image_raw ---> [Detect Node (YOLOv9)]
                                                              |
                                                    /fire_box_coordinates
                                                              |
                                                              v
[Pixhawk 6C (MAVROS)] <--- /mavros/setpoint_raw/local <--- [Control Node]
          ^                                                   |
          |                                            /fire_drop_trigger
          v                                                   |
[Node Init / Failsafe]                                        v
                                                      [GPIO Node (L298N)]

Dưới đây là đoạn mã thực thi cốt lõi của Node điều khiển bám mục tiêu (control_node.py) sử dụng thư viện MAVROS:

#!/usr/bin/env python3
import rospy
import math
from geometry_msgs.msg import PoseStamped, TwistStamped
from std_msgs.msg import Float32MultiArray, Bool
from mavros_msgs.msg import State
from mavros_msgs.srv import CommandBool, SetMode

class FirefightingController:
    def __init__(self):
        rospy.init_node('fire_tracking_control_node', anonymous=True)
        
        self.target_sub = rospy.Subscriber('/fire_box_coordinates', Float32MultiArray, self.fire_callback)
        self.state_sub = rospy.Subscriber('/mavros/state', State, self.state_callback)
        self.local_pos_pub = rospy.Publisher('/mavros/setpoint_position/local', PoseStamped, queue_size=10)
        self.drop_trigger_pub = rospy.Publisher('/fire_drop_trigger', Bool, queue_size=1)
        
        self.current_state = State()
        self.target_box = None
        self.image_width = 1280
        self.image_height = 720
        self.center_x = self.image_width / 2.0
        self.center_y = self.image_height / 2.0
        
        self.kp_x = 0.0015
        self.kp_y = 0.0015
        self.kp_z = 0.0020
        self.target_locked_frames = 0
        
    def state_callback(self, msg):
        self.current_state = msg

    def fire_callback(self, data):
        # Data format: [u_min, v_min, u_max, v_max, confidence]
        if len(data.data) >= 5 and data.data[4] > 0.65:
            self.target_box = data.data
        else:
            self.target_box = None

    def execute_tracking_loop(self):
        rate = rospy.Rate(20.0) # 20 Hz
        pose = PoseStamped()
        pose.pose.position.x = 0.0
        pose.pose.position.y = 0.0
        pose.pose.position.z = 4.0 # Độ cao tiếp cận ban đầu 4m

        while not rospy.is_shutdown():
            if self.target_box is not None:
                box_u_center = (self.target_box[0] + self.target_box[2]) / 2.0
                box_v_center = (self.target_box[1] + self.target_box[3]) / 2.0
                
                err_x = self.center_x - box_u_center
                err_y = self.center_y - box_v_center
                
                # Cập nhật vị trí cục bộ thông qua bộ điều khiển P-P
                pose.pose.position.x += err_y * self.kp_x
                pose.pose.position.y += err_x * self.kp_y
                
                # Kiểm tra điều kiện ngắm trúng tâm đám cháy
                if abs(err_x) < 35 and abs(err_y) < 35:
                    self.target_locked_frames += 1
                    if self.target_locked_frames > 40: # Khóa mục tiêu ổn định trong 2 giây (40 frames)
                        rospy.loginfo("Mục tiêu đã khóa! Kích hoạt nhả bóng cứu hỏa.")
                        self.drop_trigger_pub.publish(Bool(data=True))
                        self.target_locked_frames = 0
                else:
                    self.target_locked_frames = max(0, self.target_locked_frames - 1)
            
            pose.header.stamp = rospy.Time.now()
            self.local_pos_pub.publish(pose)
            rate.sleep()

if __name__ == '__main__':
    try:
        controller = FirefightingController()
        controller.execute_tracking_loop()
    except rospy.ROSInterruptException:
        pass

Thiết kế và phân tích cơ cấu chấp hành (Gripper Mechanism)

Cơ cấu kẹp nhả bóng cứu hỏa sử dụng cấu trúc 3 chấu hướng tâm liên kết qua đĩa xoay và trục ren vít điều khiển bởi motor GA25-370:

  • Vật liệu chế tạo: Nhôm hợp kim 6061-T6 gia công CNC và các thanh giằng in 3D nhựa Carbon PLA+.
  • Phân tích ứng suất kết cấu (FEA Ansys/SolidWorks Simulation): Khi kẹp tải trọng $1.5\text{ kg}$ cộng với gia tốc rung lắc tối đa $a_{max} = 2.5g$ ($36.75\text{ N}$), ứng suất Von-Mises lớn nhất ghi nhận trên thanh giằng đỡ là $24.8\text{ MPa}$, thấp hơn nhiều so với giới hạn chảy của vật liệu ($\sigma_y = 55\text{ MPa}$ cho PLA-CF và $276\text{ MPa}$ cho Al 6061), hệ số an toàn đạt $SF = 2.21$.
         +---------------------------------------+
         |     Động cơ GA25-370 (12V, 100 RPM)   |
         +-------------------+-------------------+
                             | Trục vít me
                             v
                 +-----------------------+
                 |    Đĩa xoay đồng tâm   |
                 +----+-------------+----+
                     /       |       \
                    /        |        \  Thanh nối truyền lực
                   v         v         v
             +-------+   +-------+   +-------+
             | Khớp  |   | Khớp  |   | Khớp  |
             | kẹp 1 |   | kẹp 2 |   | kẹp 3 |
             +-------+   +-------+   +-------+
                 \           |           /
                  \          |          /
                   ===> [ BÓNG CỨU HỎA ] <===

Thử nghiệm mô phỏng và đo đạc thực tế

1. Mô phỏng phần cứng trong vòng lặp (HITL Simulation)

Kết nối cổng TELEM2 của Pixhawk 6C với máy trạm qua module chuyển đổi FTDI-USB. Hệ thống chạy môi trường mô phỏng vật lý Gazebo 11 kết hợp firmware PX4 HITL.

  • Đáp ứng góc Roll/Pitch: Thời gian tăng (Rise time) $t_r = 0.18\text{ s}$, độ vọt lố (Overshoot) $< 4.5%$.
  • Khả năng ổn định vị trí: Khi xuất hiện nhiễu gió mô phỏng $4\text{ m/s}$, hệ thống điều khiển vị trí bù trừ sai lệch trong vòng $0.85\text{ s}$.

2. Kết quả nhận diện mô hình YOLOv9

  • Dataset huấn luyện: 3.450 ảnh ngọn lửa đa dạng góc nhìn, được gán nhãn trên nền tảng MakeSense.
  • Chuyển đổi mô hình: Chuyển từ PyTorch (.pt) sang TensorRT engine (FP16 precision) để tăng tốc phần cứng trên GPU NVIDIA Jetson Nano.
  • Hiệu năng: Đạt độ chính xác $mAP@0.5 = 89.4%$, tốc độ suy luận ổn định ở mức $22.6\text{ FPS}$, nhiệt độ chip GPU duy trì dưới $58^\circ\text{C}$ khi có quạt tản nhiệt chủ động.
Metric                          Kế hoạch ban đầu        Thực nghiệm đạt được
-----------------------------------------------------------------------------
Tổng khối lượng cất cánh        <= 4.2 kg               4.05 kg
Tải trọng bóng chữa cháy        1.5 kg                  1.5 kg
Tỷ lệ Lực đẩy / Khối lượng      >= 2.0 : 1              2.33 : 1 (9.44 kg max thrust)
Thời gian bay có tải            >= 10 phút              12 phút 40 giây
Tốc độ xử lý AI nhận diện lửa   >= 15 FPS               22.6 FPS (TensorRT FP16)
Bán kính sai số thả bóng        < 1.0 m                 0.65 m

Đổi mới và đóng góp

Các điểm cải tiến kỹ thuật nổi bật

  1. Kiến trúc điều khiển kết hợp Phản xạ Thị giác (Visual Servoing) cấp độ biên: Thay vì chỉ gửi video về trạm mặt đất xử lý gây trễ tín hiệu do băng thông truyền hình ảnh vô tuyến, toàn bộ tác vụ AI và tính toán quỹ đạo cục bộ được giải quyết trực tiếp trên Jetson Nano thông qua hệ nút ROS nội tại, giảm thiểu độ trễ phản hồi từ hàng trăm mili-giây xuống chỉ còn $44\text{ ms}$.
  2. Cơ cấu kẹp 3 chấu trọng tâm tự cân bằng: Khắc phục nhược điểm mất cân bằng mô-men quán tính ($Moment\ of\ Inertia$) thường gặp ở các cơ cấu thả tải dạng treo dây đơn, cơ cấu ngàm kẹp giữ cứng tâm quả bóng $1.5\text{ kg}$ trùng hoàn toàn với trục tọa độ trọng tâm $Z_B$ của Drone, triệt tiêu hiện tượng con lắc đu đưa làm rung lắc hệ thống điều khiển PID.
  3. Quy trình tối ưu hóa lực nâng với cánh APC 1045: Việc tính toán khí động học và chuyển đổi từ cánh EMP9X6 sang cánh quạt APC 1045 giúp tăng $14%$ hiệu suất lực nâng trên mỗi Watt điện năng tiêu thụ, đảm bảo động cơ Sunnysky x2814-7 hoạt động trong dải nhiệt độ an toàn ($< 55^\circ\text{C}$).
+-----------------------------------------------------------------------------+
|                           SO SÁNH ĐẶC TÍNH KỸ THUẬT                         |
+------------------------------------+--------------------+-------------------+
| Giải pháp                          | Độ trễ phản hồi    | Độ lệch tâm ném   |
+------------------------------------+--------------------+-------------------+
| 1. Drone truyền hình ảnh về GCS    | ~ 250 - 400 ms     | 1.8 - 2.5 m       |
| 2. Thả tự do dạng dây treo servo   | ~ 150 ms           | 1.2 - 1.5 m       |
| 3. Đồ án (Edge AI + Kẹp cân tâm)   | 44 ms (Giảm 82%)   | 0.65 m (Giảm 56%) |
+------------------------------------+--------------------+-------------------+

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

   [Phát hiện báo cháy] ---> [UAV xuất kích tự động]
                                    |
                                    v
     [Bay quét & tiếp cận tầng cao / ngõ sâu trong 2 phút]
                                    |
                                    v
       [AI YOLOv9 nhận dạng tâm lửa & tự hạ độ cao < 4m]
                                    |
                                    v
         [Khóa mục tiêu -> Kích hoạt L298N nhả bóng 1.5kg]
                                    |
                                    v
     [Bóng tiếp xúc lửa -> Kích nổ bột khô dập tắt trong 5s]
                                    |
                                    v
         [UAV kích hoạt chế độ RTL tự bay về trạm gốc]

Kịch bản triển khai thực tế

  • Chữa cháy nhà cao tầng khu đô thị: Tiếp cận ban công, cửa sổ các tầng từ 5 đến 20 nơi xe thang không với tới hoặc bị chắn bởi dây điện chằng chịt.
  • Ứng cứu kho bãi hóa chất, xưởng may: Bay thẳng vào tâm hỏa hoạn khi trần nhà có nguy cơ đổ sập để ném bóng dập tắt nguồn cháy sơ khởi trước khi đám cháy lan rộng.
  • Kiểm soát cháy rừng giai đoạn nhen nhóm: Tuần tra phát hiện tàn tro âm ỉ và ném bóng dập lửa dập tắt các đốm cháy nhỏ trước khi bùng phát thành thảm họa.

Yêu cầu vận hành và quy chuẩn môi trường

  • Người vận hành: Kỹ thuật viên PCCC cơ sở nắm vững thao tác kích hoạt Mission trên QGroundControl hoặc can thiệp tay qua tay điều khiển RadioMaster Pocket TX.
  • Môi trường hoạt động: Nhiệt độ ngoài trời $-5^\circ\text{C} \to 50^\circ\text{C}$; chống chịu bức xạ nhiệt tức thời của đám cháy ở khoảng cách $3\text{ m}$ trong thời gian $< 60\text{ giây}$.

Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit & ROI)

  • Chi phí sản xuất 01 thiết bị: Ước tính khoảng $28.000.000 - 32.000.000\text{ VNĐ}$ (tương đương $\approx 1.200\text{ USD}$), chỉ bằng $5 - 8%$ so với các dòng drone chữa cháy chuyên dụng nhập khẩu (như EHang 216F hay DJI Matrice 350 RTK gắn module chữa cháy có giá từ $15.000 - 40.000\text{ USD}$).
  • Hiệu quả kinh tế - xã hội: Giảm thời gian khống chế điểm cháy cục bộ xuống dưới 3 phút từ khi phát hiện, hạn chế tối đa nguy cơ thương vong cho chiến sĩ PCCC và bảo vệ tài sản doanh nghiệp hàng tỷ đồng.

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

Các hạn chế kỹ thuật hiện tại

  • Dung lượng pin LiPo 4S 5500mAh chỉ cho phép thời gian bay tải nặng tối đa khoảng 12-13 phút, đủ cho 01 lần xuất kích ném bóng duy nhất.
  • Camera quang học RGB Arducam IMX519 bị suy giảm khả năng nhận diện khi mật độ khói đen quá dày đặc bao trùm toàn bộ ngọn lửa.
  • Chưa trang bị cảm biến đo khoảng cách bằng sóng siêu âm hoặc LiDAR 1D ở mặt dưới để chống va chạm mặt đất khi hạ độ cao ném bóng.

Định hướng nghiên cứu mở rộng

  • Tích hợp cảm biến nhiệt kép (Dual Thermal & Optical Camera): Sử dụng cảm biến FLIR Lepton 3.5 để quét dải phổ hồng ngoại bước sóng dài, cho phép xuyên khói định vị tâm nhiệt chính xác $100%$.
  • Nâng cấp hệ thống pin nhiên liệu Hybrid hoặc sạc tự động: Tích hợp trạm đáp tự động có đế sạc không dây và cơ chế nạp bóng chữa cháy tự động tại chỗ.
  • Phát triển thuật toán phối hợp bầy đàn (Swarm UAVs): Triển khai đồng thời từ 3 đến 5 Quadcopter tạo thành biên đội dập tắt đám cháy diện rộng theo tọa độ lưới chia sẻ qua ROS2.

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

+-----------------------------------------------------------------------------+
|                            ĐỐI TƯỢNG HƯỞNG LỢI                             |
+-----------------------------------+-----------------------------------------+
| Nhóm đối tượng                    | Giá trị thực tiễn mang lại              |
+-----------------------------------+-----------------------------------------+
| 1. Sinh viên & Giảng viên         | Nguồn tài liệu mẫu toàn diện về cơ điện |
|    Kỹ thuật Mechatronics          | tử: từ tính toán động lực học, CAE đến  |
|                                   | ROS, PX4 và AI nhúng.                   |
+-----------------------------------+-----------------------------------------+
| 2. Kỹ sư R&D Drone & Embedded AI  | Kiến trúc tham chiếu mẫu về kết nối     |
|                                   | MAVROS - Offboard control và tối ưu hóa |
|                                   | TensorRT trên NVIDIA Jetson.            |
+-----------------------------------+-----------------------------------------+
| 3. Lực lượng PCCC & Đội cứu hộ    | Thiết bị trinh sát và dập lửa ban đầu   |
|    khu công nghiệp                | giá thành thấp, dễ chế tạo và thay thế. |
+-----------------------------------+-----------------------------------------+
| 4. Doanh nghiệp quản lý tòa nhà   | Giải pháp PCCC chủ động tại chỗ, nâng   |
|    và kho bãi hậu cần             | cao tiêu chuẩn an toàn công trình.      |
+-----------------------------------+-----------------------------------------+

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

1. Yêu cầu cấu hình máy tính để cấu hình nạp firmware và chạy mô phỏng HITL là gì?

Máy trạm phát triển cần cài đặt hệ điều hành Ubuntu 20.04 LTS (hoặc Ubuntu 22.04 LTS), vi xử lý Intel Core i5/i7 thế hệ 10 trở lên, tối thiểu 16GB RAM, card đồ họa rời NVIDIA GTX 1650 trở lên (để render mượt mà môi trường vật lý Gazebo 11), cài đặt sẵn môi trường ROS Noetic, PX4 Autopilot Toolchain và QGroundControl.

2. Làm thế nào Drone duy trì được sự ổn định khi bất ngờ nhả vật nặng 1.5kg?

Khi quả bóng nặng $1.5\text{ kg}$ rời khỏi ngàm kẹp, khối lượng drone giảm đột ngột từ $4.05\text{ kg}$ xuống còn $2.55\text{ kg}$. Bộ điều khiển bay Pixhawk 6C sử dụng thuật toán lọc Kalman mở rộng (EKF2) kết hợp vòng điều khiển phản hồi PID gia tốc cực nhanh (tần số lấy mẫu IMU đạt $1000\text{ Hz}$). Bộ điều khiển độ cao sẽ lập tức phát hiện gia tốc đi lên ($+a_z$) do dư thừa lực đẩy và tự động giảm tín hiệu PWM điều khiển 4 động cơ chỉ trong vòng $80\text{ ms}$, giữ cho drone không bị vọt độ cao quá $0.25\text{ m}$.

3. Tại sao nhóm nghiên cứu lại chọn Pixhawk 6C kết hợp Jetson Nano thay vì dùng vi điều khiển STM32 đơn lẻ?

Vi điều khiển STM32 đơn lẻ chỉ đủ năng lực tính toán cho các thuật toán cân bằng bay PID cơ bản và giao tiếp cảm biến cấp thấp. Các tác vụ xử lý ảnh thời gian thực, chạy mạng nơ-ron tích chập (CNN) của YOLOv9 và chạy hệ điều hành robot ROS đòi hỏi hàng triệu phép tính dấu phẩy động mỗi giây (FLOPS), điều mà chỉ có các GPU nhúng như NVIDIA Jetson Nano với 128 lõi CUDA mới có thể đáp ứng được tại biên.

4. Chi phí thay thế hoặc bảo dưỡng cơ cấu kẹp và động cơ sau mỗi lần chữa cháy là bao nhiêu?

Cơ cấu kẹp sử dụng các chi tiết nhôm CNC và linh kiện tiêu chuẩn có độ bền cao. Động cơ DC giảm tốc GA25-370 và mạch L298N có chi phí thay thế rất thấp (dưới $150.000\text{ VNĐ}$). Chi phí tái nạp cho mỗi nhiệm vụ chủ yếu là tiền thay thế quả bóng chữa cháy tự bung mới ($\approx 250.000 - 350.000\text{ VNĐ/quả}$).

5. Drone có thể hoạt động trong điều kiện ban đêm hoàn toàn không có ánh sáng không?

Với cấu hình thử nghiệm hiện tại sử dụng camera RGB Arducam IMX519, khi đám cháy bùng phát, chính ngọn lửa là nguồn phát quang mạnh giúp thuật toán YOLOv9 nhận dạng mục tiêu rất rõ nét vào ban đêm. Tuy nhiên, để nhận biết chướng ngại vật xung quanh trong bóng tối, phiên bản thương mại hóa cần bổ sung thêm module cảm biến khoảng cách bằng sóng Radar mmWave hoặc đèn LED trợ sáng công suất cao.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu, Thiết kế và Chế tạo Drone Chữa Cháy" của nhóm tác giả Vũ Đức Bình, Đoàn Thanh Nam, Trần Lê Nhật Huy dưới sự hướng dẫn của TS. Hà Lê Như Ngọc Thanh (Trường Đại học Sư phạm Kỹ thuật TP.HCM) đã giải quyết thành công bài toán tích hợp liên ngành Cơ khí chính xác, Điện tử nhúng và Trí tuệ nhân tạo.

       +-------------------------------------------------------------+
       |                  TỔNG KẾT ĐÓNG GÓP ĐỒ ÁN                    |
       |                                                             |
       |  [Khung sườn Tarot 650] ---> Chịu tải 4.05kg, Thrust: 2.33:1|
       |  [Pixhawk 6C + PX4]     ---> Điều khiển quỹ đạo Offboard    |
       |  [Jetson Nano + YOLOv9] ---> Nhận diện lửa 22.6 FPS         |
       |  [Cơ cấu kẹp GA25-370]  ---> Thả bóng 1.5kg chính xác 0.65m |
       +-------------------------------------------------------------+

Hệ thống đã chứng minh được tính khả thi kỹ thuật vượt trội, mở ra tiềm năng ứng dụng thực tế to lớn trong công tác phòng cháy chữa cháy đô thị thông minh, góp phần giảm thiểu rủi ro cho con người và bảo vệ an toàn cộng đồng.