Giới thiệu dự án

Hạ tầng giao thông và an toàn đường bộ đang là thách thức trọng điểm toàn cầu. Theo thống kê từ Tổ chức Y tế Thế giới (WHO), mỗi năm có khoảng 1,19 triệu người tử vong do tai nạn giao thông đường bộ, trong đó hơn 90% các vụ tai nạn xuất phát từ lỗi phán đoán chủ quan, mất tập trung hoặc phản ứng chậm trễ của người điều khiển phương tiện. Tại Việt Nam, với mật độ giao thông đô thị dày đặc và hệ thống biển báo đa dạng, việc nghiên cứu các hệ thống hỗ trợ lái xe nâng cao (ADAS - Advanced Driver Assistance Systems) và công nghệ xe tự hành (Autonomous Vehicles) đóng vai trò cấp thiết nhằm giảm thiểu rủi ro va chạm.

Đề tài "Thiết kế, phát triển hệ thống cảnh báo sớm trên xe tự lái" (Mã đề tài: CDT-66) do nhóm nghiên cứu ngành Công nghệ Kỹ thuật Cơ - Điện tử, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh thực hiện dưới sự hướng dẫn của TS. Vũ Quang Huy, tập trung giải quyết các bài toán cốt lõi trong điều khiển tự hành thời gian thực trên nền tảng phần cứng nhúng biên giới hạn tài nguyên.

+-----------------------------------------------------------------------+
|                         PROBLEM STATEMENT                             |
|                                                                       |
|  [Độ trễ nhận diện]    [Nhiễu môi trường]      [Hạn chế phần cứng]    |
|   Xử lý ảnh biển báo   Biến thiên ánh sáng &    Cân bằng tải giữa vi  |
|   và vật cản không đủ   vật cản phức tạp gây    xử lý hình ảnh và vi  |
|   nhanh để phanh an     sai lệch biên nhận      điều khiển thời gian  |
|   toàn ở tốc độ cao.    dạng.                   thực với giá thành thấp.|
+-----------------------------------------------------------------------+

Mục tiêu dự án

  1. Thu nhận và xử lý ảnh luồng video thời gian thực: Nhận dạng làn đường (Lane Detection) và giữ làn ổn định sử dụng thuật toán phân đoạn và tách biên thích nghi.
  2. Nhận dạng biển báo hiệu lệnh giao thông chuẩn Việt Nam: Tự động phát hiện, trích xuất vùng đặc trưng (Region of Interest - ROI) và phân loại chính xác các biển báo hiệu lệnh (rẽ trái, rẽ phải, đi thẳng, dừng lại).
  3. Phát hiện và cảnh báo vật cản cự ly gần: Tích hợp cụm cảm biến siêu âm quét chướng ngại vật phía trước với độ trễ phản hồi dưới 50ms, tự động kích hoạt phanh hoặc chuyển hướng an toàn.
  4. Tối ưu hóa kiến trúc nhúng phân tầng Master-Slave: Kết hợp tối ưu giữa máy tính đơn bo Raspberry Pi và vi điều khiển Arduino Uno R3 thông qua giao thức truyền thông nối tiếp UART.

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

Giải pháp áp dụng mô hình phân tách tác vụ điện toán: bo mạch Raspberry Pi 3 đảm nhiệm các tác vụ tính toán nặng về thị giác máy tính (Computer Vision - CV) sử dụng thư viện OpenCV, trong khi bo mạch Arduino Uno R3 chịu trách nhiệm điều khiển thời gian thực (Real-time Motor Control, PWM, đọc cảm biến ngắt).

Kết quả kỳ vọng định lượng:

  • Tốc độ xử lý khung hình đạt $\ge 20\text{ FPS}$ trên vi xử lý nhúng.
  • Tỷ lệ nhận diện biển báo chính xác đạt $\ge 90%$ trong khoảng cách từ $0.3\text{m} - 1.5\text{m}$.
  • Thời gian kích hoạt cơ chế phanh khẩn cấp $< 40\text{ms}$ khi phát hiện vật cản ở cự ly nguy hiểm $\le 15\text{cm}$.

Phạm vi và giới hạn nghiên cứu

  • Phạm vi: Mô hình xe tự hành tỷ lệ thu nhỏ (kích thước $26\text{cm} \times 16\text{cm} \times 22\text{cm}$), thử nghiệm trong sa bàn mô phỏng chuẩn quy chuẩn kỹ thuật quốc gia về báo hiệu đường bộ (QCVN 41:2019/BGTVT).
  • Giới hạn: Tập trung vào các biển báo hiệu lệnh cơ bản dạng tròn nền xanh; hệ thống quang học hoạt động tối ưu trong điều kiện ánh sáng đồng đều ($300 - 800\text{ Lux}$), chưa tích hợp cảm biến LiDAR 3D đắt tiền do giới hạn chi phí phần cứng thương mại.

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

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

Tiêu chí so sánh Giải pháp xử lý Cloud AI (Tesla/Waymo Cloud) Hệ thống máy tính công nghiệp nhúng (Nvidia Jetson Orin) Giải pháp nhúng phân tầng đề xuất (Raspberry Pi + Arduino)
Chi phí phần cứng Rất cao (> $5,000 USD) Cao ($500 - $2,000 USD) Rất thấp (< $100 USD)
Độ trễ truyền nhận Phụ thuộc 4G/5G ($50 - 200\text{ms}$) Thấp xử lý On-device ($10 - 20\text{ms}$) Thấp ($15 - 30\text{ms}$ on-board UART)
Công suất tiêu thụ Phụ thuộc trạm phát sóng $15\text{W} - 60\text{W}$ $5\text{W} - 10\text{W}$ (tối ưu cho pin Li-Ion)
Độ phức tạp tích hợp Hạ tầng mạng viễn thông phức tạp Cần hệ thống tản nhiệt và nguồn lớn Gọn nhẹ, dễ bảo trì, linh kiện chuẩn hóa
Tính độc lập mạng Yêu cầu kết nối liên tục Hoạt động Offline hoàn toàn Hoạt động Offline hoàn toàn

Ma trận ưu tiên yêu cầu người dùng (MoSCoW)

  • Must-have: Phát hiện vật cản $< 15\text{cm}$ dừng khẩn cấp; nhận diện vạch kẻ đường để điều khiển lái; nhận diện biển báo rẽ/dừng; giao tiếp UART liên tục $9600/\text{115200 bps}$.
  • Should-have: Tự động điều chỉnh góc lái mượt bằng thuật toán làm mịn dữ liệu; phân loại màu sắc trong không gian HSV chống nhiễu sáng; cảnh báo âm thanh/đèn LED trạng thái.
  • Could-have: Tích hợp màn hình HMI OLED hiển thị khoảng cách và trạng thái pin; lưu log hành trình vào bộ nhớ EEPROM/SD Card.
  • Won't-have (giai đoạn này): Định vị toàn cầu vi sai RTK-GPS; xử lý đa vật thể bằng mạng nơ-ron tích chập 3D phân đoạn điểm ảnh (PointNet).

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình phân tầng chức năng rõ ràng:

graph TD
    subgraph SENSING_TIER ["Tầng thu thập dữ liệu (Sensing Tier)"]
        CAM["Camera Dahua HD USB"] -->|USB Video Stream 30fps| RPI
        US["Cảm biến siêu âm HC-SR04"] -->|Echo/Trigger Pulse| ARD
    end

    subgraph PROCESSING_TIER ["Tầng tính toán & Xử lý ảnh (High-Level Controller)"]
        RPI["Raspberry Pi 3 Model B (Cortex-A53 1.2GHz)"]
        RPI -->|Pre-processing: Grayscale, Gauss Blur| CV_PIPE["Pipeline Xử lý ảnh (OpenCV)"]
        CV_PIPE -->|Canny Edge Detection & HSV| ROI["Trích xuất vùng đặc trưng & Biển báo"]
        ROI -->|Phân loại & Ra quyết định hướng đi| DECISION["State Machine Điều hướng"]
    end

    subgraph CONTROL_TIER ["Tầng điều khiển thời gian thực (Low-Level Controller)"]
        DECISION -->|UART Serial 8N1| ARD["Arduino Uno R3 (ATmega328P 16MHz)"]
        ARD -->|Tính toán thời gian bay sóng âm| US_CALC["Xác định khoảng cách (cm)"]
        US_CALC -->|Ngắt an toàn khi d < 15cm| SAFETY["Emergency Brake Interrupt"]
        SAFETY -->|Ghi đè lệnh PWM| L298N["Mạch cầu H L298N Driver"]
        ARD -->|PWM 8-bit Control| L298N
    end

    subgraph ACTUATION_TIER ["Tầng chấp hành cơ khí (Actuation Tier)"]
        L298N -->|12V H-Bridge Power| DCM["Động cơ DC kéo chủ động"]
        ARD -->|Tín hiệu góc điều khiển| SERVO["Động cơ Servo lái hướng"]
    end

Bảng thông số công nghệ chi tiết

Thành phần Module / Thư viện Phiên bản Chức năng kỹ thuật
High-Level OS Raspberry Pi OS (Debian-based) Bullseye (Kernel 5.10) Quản lý đa nhiệm, camera stack, streaming
Computer Vision OpenCV Core & Imgproc v4.5.4 Xử lý ảnh số, Canny, HSV thresholding
Ngôn ngữ xử lý ảnh Python Engine v3.9.2 Điều phối pipeline thị giác máy tính
Low-Level Microcontroller ATmega328P Firmware C++ / Arduino 1.8.19 Điều khiển PWM, ngắt ngoại vi, đọc cảm biến
Mạch lái công suất Dual Full-Bridge Driver L298N Module phần cứng Lái 2 kênh động cơ DC tải đỉnh $2\text{A}/\text{kênh}$
Cảm biến cự ly HC-SR04 Ultrasonic Module sóng âm $40\text{kHz}$ Đo khoảng cách $2\text{cm} - 400\text{cm}$, độ phân giải $3\text{mm}$
Bộ nguồn Li-ion 18650 3S Pack + LM2596 $11.1\text{V} - 12.6\text{V} \rightarrow 5\text{V}/3\text{A}$ Cấp nguồn độc lập chống sụt áp cho logic & động lực

Thiết kế an toàn và giao thức truyền thông

Giao tiếp giữa Raspberry Pi và Arduino Uno được chuẩn hóa theo khung gói tin nhị phân cố định qua UART nhằm triệt tiêu hiện tượng nghẽn bus: $$\text{Frame} = [\text{HEADER: } \texttt{0xAA}] \parallel [\text{CMD_ID: } 1\text{ byte}] \parallel [\text{SPEED_PWM: } 1\text{ byte}] \parallel [\text{STEER_ANGLE: } 1\text{ byte}] \parallel [\text{CHECKSUM: } 1\text{ byte}]$$ Hệ thống tích hợp cơ chế Heartbeat & Watchdog Timer tại Arduino Uno: nếu trong vòng $200\text{ms}$ không nhận được gói tin điều khiển hợp lệ từ Raspberry Pi, xe tự động ngắt nguồn cấp cho động cơ DC để ngăn chặn sự cố mất kiểm soát.


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

Dự án áp dụng mô hình phát triển phần cứng - phần mềm lặp linh hoạt (Embedded Agile Iteration) kết hợp kiểm thử phần cứng trong vòng lặp (Hardware-in-the-Loop - HIL).

+---------------------------------------------------------------------------------------------------+
|                                      PROJECT TIMELINE & MILESTONES                                |
|                                                                                                   |
|  [Tháng 01 - 02/2024]            [Tháng 03 - 04/2024]            [Tháng 05/2024]   [Tháng 06/2024]|
|  - Khảo sát lý thuyết            - Thiết kế CAD khung gầm xe     - Tích hợp hệ     - Khảo nghiệm  |
|  - Thu thập tập dữ liệu biển báo - Lập trình Canny & HSV lọc màu   thống HIL         sa bàn thực tế |
|  - Thiết lập môi trường OpenCV   - Lập trình firmware Arduino    - Tối ưu hóa UART - Hoàn thiện   |
|  - Đánh giá cảm biến HC-SR04     - Ghép nối truyền thông SPI/UART- Fix lỗi rớt mẫu   báo cáo ĐATN |
+---------------------------------------------------------------------------------------------------+

Đánh giá và giảm thiểu rủi ro kỹ thuật

Rủi ro kỹ thuật Mức độ rủi ro Biện pháp giảm thiểu & Thiết kế dự phòng
Sụt áp logic khi động cơ khởi động Cao Thiết kế tách biệt 2 đường nguồn: 1 nhánh qua LM2596 cấp vi xử lý, 1 nhánh cấp trực tiếp L298N; bổ sung tụ lọc $1000\mu\text{F}$.
Nhiễu ánh sáng môi trường làm mất dấu biên Cao Chuyển đổi không gian màu RGB sang HSV, áp dụng lọc trung vị (Median Blur) và cân bằng lược đồ mức xám (CLAHE).
Độ trễ truyền thông UART làm lệch điều khiển Trung bình Tăng baudrate lên $115200\text{ bps}$, tối giản hóa payload chỉ gửi byte mã lệnh ngắn gọn không format chuỗi ký tự.
Hiện tượng phản xạ sóng âm ở góc chéo Trung bình Tích hợp thuật toán lọc Kalman 1 chiều hoặc bộ lọc thông thấp (Moving Average Filter) 5 mẫu liên tiếp.

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

Quy trình phát triển và Thuật toán cốt lõi

1. Pipeline xử lý ảnh phát hiện biên Canny và phân loại biển báo (Python & OpenCV)

Toán tử Canny phát hiện biên tối ưu theo 4 bước toán học:

  1. Làm mịn ảnh bằng bộ lọc Gauss: $G_\sigma(x, y) = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}}$
  2. Tính Gradient độ sáng cục bộ: $|\nabla f| = \sqrt{G_x^2 + G_y^2}$ và hướng $\theta = \arctan(G_y / G_x)$
  3. Triệt tiêu không cực đại (Non-maximal Suppression).
  4. Phân ngưỡng trễ (Hysteresis Thresholding) với 2 ngưỡng $T_1$ (Weak Edge) và $T_2$ (Strong Edge).
import cv2
import numpy as np
import serial
import time

class EarlyWarningVisionSystem:
    def __init__(self, port='/dev/ttyACM0', baudrate=115200):
        self.camera = cv2.VideoCapture(0)
        self.camera.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
        self.camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)
        self.ser = serial.Serial(port, baudrate, timeout=0.05)
        # Ngưỡng màu HSV cho biển báo hiệu lệnh (Màu xanh dương)
        self.LOWER_BLUE = np.array([100, 150, 50])
        self.UPPER_BLUE = np.array([130, 255, 255])

    def detect_traffic_sign(self, frame):
        hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        mask = cv2.inRange(hsv, self.LOWER_BLUE, self.UPPER_BLUE)
        
        # Tiền xử lý lọc nhiễu
        blurred = cv2.GaussianBlur(mask, (5, 5), 0)
        edges = cv2.Canny(blurred, 50, 150)
        
        contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
        sign_type = "NONE"
        
        for cnt in contours:
            area = cv2.contourArea(cnt)
            if area > 400:  # Lọc các đốm nhiễu nhỏ
                perimeter = cv2.arcLength(cnt, True)
                approx = cv2.approxPolyDP(cnt, 0.04 * perimeter, True)
                x, y, w, h = cv2.boundingRect(approx)
                aspect_ratio = float(w) / h
                
                # Biển báo tròn có tỷ lệ khung bao xấp xỉ 1:1
                if 0.8 <= aspect_ratio <= 1.2:
                    roi = edges[y:y+h, x:x+w]
                    # Phân loại dựa trên phân bố trọng tâm điểm trắng trong ROI
                    h_roi, w_roi = roi.shape
                    left_weight = np.sum(roi[:, :w_roi//2])
                    right_weight = np.sum(roi[:, w_roi//2:])
                    
                    if left_weight > right_weight * 1.3:
                        sign_type = "TURN_LEFT"
                    elif right_weight > left_weight * 1.3:
                        sign_type = "TURN_RIGHT"
                    else:
                        sign_type = "FORWARD"
                    break
        return sign_type

    def run_pipeline(self):
        while self.camera.isOpened():
            ret, frame = self.camera.read()
            if not ret:
                break
            sign = self.detect_traffic_sign(frame)
            # Gửi mã lệnh điều khiển xuống Arduino
            cmd_byte = b'\x00'
            if sign == "TURN_LEFT":
                cmd_byte = b'\x01'
            elif sign == "TURN_RIGHT":
                cmd_byte = b'\x02'
            elif sign == "FORWARD":
                cmd_byte = b'\x03'
            
            self.ser.write(cmd_byte)
            time.sleep(0.03) # Duy trì ~30 FPS

2. Firmware điều khiển thời gian thực và đo cự ly siêu âm (C++ trên Arduino Uno)

#include <Arduino.h>

const int PIN_TRIG = 9;
const int PIN_ECHO = 10;
const int PIN_ENA  = 5;   // PWM Động cơ trái
const int PIN_IN1  = 7;
const int PIN_IN2  = 8;
const int PIN_ENB  = 6;   // PWM Động cơ phải
const int PIN_IN3  = 4;
const int PIN_IN4  = 2;

const float SPEED_OF_SOUND = 0.0343; // cm/microsecond
const int SAFE_DISTANCE_THRESHOLD = 15; // Ngưỡng dừng khẩn cấp (cm)

void setup() {
    Serial.begin(115200);
    pinMode(PIN_TRIG, OUTPUT);
    pinMode(PIN_ECHO, INPUT);
    pinMode(PIN_ENA, OUTPUT);
    pinMode(PIN_IN1, OUTPUT);
    pinMode(PIN_IN2, OUTPUT);
    pinMode(PIN_ENB, OUTPUT);
    pinMode(PIN_IN3, OUTPUT);
    pinMode(PIN_IN4, OUTPUT);
}

float measureDistanceCM() {
    digitalWrite(PIN_TRIG, LOW);
    delayMicroseconds(2);
    digitalWrite(PIN_TRIG, HIGH);
    delayMicroseconds(10);
    digitalWrite(PIN_TRIG, LOW);
    
    long duration = pulseIn(PIN_ECHO, HIGH, 25000); // Timeout 25ms
    if (duration == 0) return 999.0; // Không có phản hồi (quá xa)
    return (duration * SPEED_OF_SOUND) / 2.0;
}

void setMotors(int leftPWM, int rightPWM, bool fwd) {
    analogWrite(PIN_ENA, leftPWM);
    analogWrite(PIN_ENB, rightPWM);
    digitalWrite(PIN_IN1, fwd ? HIGH : LOW);
    digitalWrite(PIN_IN2, fwd ? LOW : HIGH);
    digitalWrite(PIN_IN3, fwd ? HIGH : LOW);
    digitalWrite(PIN_IN4, fwd ? LOW : HIGH);
}

void loop() {
    float distance = measureDistanceCM();
    
    // Ưu tiên 1: Hệ thống cảnh báo sớm và phanh khẩn cấp
    if (distance <= SAFE_DISTANCE_THRESHOLD) {
        setMotors(0, 0, true); // Khóa động cơ lập tức
        return;
    }
    
    // Ưu tiên 2: Xử lý lệnh điều hướng từ Raspberry Pi qua UART
    if (Serial.available() > 0) {
        byte command = Serial.read();
        switch (command) {
            case 0x01: // Rẽ trái theo biển báo
                setMotors(80, 180, true);
                break;
            case 0x02: // Rẽ phải theo biển báo
                setMotors(180, 80, true);
                break;
            case 0x03: // Đi thẳng
                setMotors(150, 150, true);
                break;
            default:
                setMotors(120, 120, true);
                break;
        }
    }
}

Thử nghiệm và Đánh giá thực nghiệm

Hệ thống được đưa vào kiểm thử thực tế trên mô hình sa bàn giao thông với các điều kiện bề mặt, khoảng cách và loại biển báo khác nhau.

1. Đánh giá độ chính xác nhận dạng biển báo theo khoảng cách

Khoảng cách đo ($cm$) Số lần thử Số lần nhận dạng đúng Tỷ lệ chính xác ($%$) Thời gian xử lý trung bình ($ms$)
$20 - 40$ 50 48 $96.0%$ $32.4$
$40 - 60$ 50 47 $94.0%$ $33.1$
$60 - 80$ 50 44 $88.0%$ $34.5$
$80 - 100$ 50 39 $78.0%$ $35.2$
Tổng thể ($20-100$) 200 178 $89.0%$ $33.8$

2. Khảo nghiệm thời gian đáp ứng của cảm biến siêu âm HC-SR04 với các loại vật liệu

Loại vật cản Cự ly thực ($cm$) Cự ly đo ($cm$) Sai số tuyệt đối ($cm$) Thời gian phản hồi ($ms$) Trạng thái phanh
Tấm kim loại phẳng $15.0$ $15.1$ $+0.1$ $18.2$ Kích hoạt thành công
Khối nhựa cứng (ABS) $15.0$ $14.8$ $-0.2$ $19.0$ Kích hoạt thành công
Bìa carton sóng $15.0$ $15.3$ $+0.3$ $21.5$ Kích hoạt thành công
Vật cản hình trụ tròn $15.0$ $15.8$ $+0.8$ $24.8$ Kích hoạt thành công
TỶ LỆ NHẬN DẠNG THEO LOẠI BIỂN BÁO (%):
[Biển Rẽ Trái]  ========================================> 94.0%
[Biển Rẽ Phải] ========================================> 92.0%
[Biển Đi Thẳng] ======================================> 90.0%

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

  1. Kiến trúc nhúng Hybrid tối ưu hóa chi phí: Triển khai thành công hệ thống ADAS thời gian thực trên cặp vi xử lý giá rẻ (Raspberry Pi 3 + Arduino Uno) với tổng chi phí linh kiện dưới 2,5 triệu VNĐ, giảm hơn 85% chi phí so với việc sử dụng các máy tính công nghiệp AI chuyên dụng (Nvidia Jetson Series).
  2. Thuật toán phân loại kết hợp HSV và Canny ROI Weighting: Thay vì sử dụng mạng nơ-ron sâu nặng nề (như YOLOv5/v8) tiêu tốn 100% tài nguyên CPU trên Raspberry Pi 3, nhóm đã phát triển thuật toán trích xuất đặc trưng hình học kết hợp phân bố ma trận điểm ảnh nhị phân trong vùng ROI, giúp giảm thời gian suy luận xuống chỉ còn $33.8\text{ms}$ (tương đương $\sim 30\text{ FPS}$).
  3. Cơ chế ngắt an toàn phản xạ cứng (Hardware-level Reflex): Cơ chế điều khiển phanh khẩn cấp được thực thi độc lập tại vi điều khiển tầng dưới (Arduino), đảm bảo xe dừng ngay cả khi tầng trên (Raspberry Pi/Camera) gặp sự cố đơ khung hình hoặc quá nhiệt.

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

Kịch bản ứng dụng thực tế

  • Xe tự hành chuyển hàng nội bộ (AGV - Automated Guided Vehicle): Ứng dụng trong các nhà máy sản xuất thông minh, kho bãi logistics để bám làn đường định vị sẵn và tuân thủ các biển chỉ dẫn điều hướng tự động.
  • Robot tuần tra và giám sát khuôn viên trường đại học/bệnh viện: Tự động di chuyển trên đường nội bộ, nhận biết khu vực dừng/rẽ và né tránh chướng ngại vật là người đi bộ.
  • Bộ KIT đào tạo thực hành IoT & Robotics: Làm mô hình học tập trực quan cho sinh viên chuyên ngành Cơ điện tử, Tự động hóa và Khoa học máy tính tiếp cận các khái niệm xử lý ảnh nhúng.
+----------------------------------------------------------------------------------------------------+
|                                    TÍNH TOÁN HIỆU QUẢ KINH TẾ (ROI)                                |
|                                                                                                    |
|  Chi phí triển khai mô hình thử nghiệm:          2.250.000 VNĐ / xe AGV                            |
|  Chi phí nhập khẩu thiết bị thương mại cùng loại: 18.000.000 - 35.000.000 VNĐ / xe                 |
|  Mức tiết kiệm chi phí đầu tư ban đầu:           > 85%                                             |
|  Thời gian hoàn vốn ước tính khi áp dụng vào kho hàng vừa và nhỏ: < 4 tháng                        |
+----------------------------------------------------------------------------------------------------+

Lộ trình thương mại hóa và nâng cấp

gantt
    title Lộ trình triển khai & Nâng cấp công nghệ
    dateFormat  YYYY-MM
    section Giai đoạn 1: Prototype
    Thử nghiệm trên sa bàn phòng Lab :done, 2024-03, 2024-06
    section Giai đoạn 2: Công nghiệp hóa
    Nâng cấp vi điều khiển sang STM32F4 :active, 2024-07, 2024-10
    Tích hợp module tăng tốc AI Edge TPU :2024-09, 2024-12
    section Giai đoạn 3: Scale-up
    Thử nghiệm đội xe AGV trong kho vận thực tế :2025-01, 2025-06

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

Hạn chế kỹ thuật hiện tại

  • Camera đơn sắc/quang học dễ bị suy giảm độ tương phản dưới nguồn sáng tán xạ mạnh (ngược sáng hoặc ban đêm).
  • Cảm biến siêu âm HC-SR04 có góc quét hình nón hẹp ($15^\circ$), xuất hiện điểm mù ở hai bên sườn xe và dễ bị tán xạ khi bề mặt vật cản gồ ghề.
  • Tập dữ liệu biển báo mới giới hạn ở 3 biển hiệu lệnh tròn cơ bản.

Hướng phát triển đề xuất

  1. Nâng cấp cảm biến: Tích hợp cụm cảm biến 2D LiDAR RPLIDAR A1 để quét bản đồ 360 độ phục vụ thuật toán SLAM (Simultaneous Localization and Mapping).
  2. Tăng tốc xử lý AI: Chuyển đổi mô hình nhận dạng sang YOLOv8-Nano lượng tử hóa (INT8) kết hợp vi xử lý chuyên dụng Raspberry Pi 5 hoặc Google Coral USB Accelerator.
  3. Mạng truyền thông CAN Bus: Thay thế giao thức UART bằng chuẩn giao tiếp công nghiệp CAN Bus (Controller Area Network) để tăng tính ổn định và chống nhiễu trên xe kích thước thật.

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

+----------------------------------------------------------------------------------------------------+
|                                    GIÁ TRỊ TẠO RA CHO CÁC BÊN                                      |
+------------------------------------+---------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI                | GIÁ TRỊ VÀ LỢI ÍCH ĐỊNH LƯỢNG                                 |
+------------------------------------+---------------------------------------------------------------+
| Sinh viên & Học viên Kỹ thuật      | Tiếp cận mã nguồn mẫu mở chuẩn OpenCV C++/Python; hiểu sâu   |
|                                    | cơ chế Master-Slave và điều khiển động cơ thực tế.            |
+------------------------------------+---------------------------------------------------------------+
| Lập trình viên Hệ thống nhúng      | Tham khảo mô hình phân bổ tải tối ưu giữa Linux SBC và MCU;   |
|                                    | nắm vững kỹ thuật xử lý ảnh tốc độ cao với Canny/HSV.         |
+------------------------------------+---------------------------------------------------------------+
| Doanh nghiệp Sản xuất & Kho vận    | Sở hữu giải pháp thiết kế xe tự hành AGV giá rẻ, chủ động     |
|                                    | công nghệ chế tạo trong nước mà không phụ thuộc ngoại nhập.   |
+------------------------------------+---------------------------------------------------------------+
| Nhà nghiên cứu Học thuật           | Dữ liệu thực nghiệm về độ tin cậy của thuật toán phân đoạn    |
|                                    | trong điều kiện ánh sáng thực tế tại Việt Nam.                 |
+------------------------------------+---------------------------------------------------------------+

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

1. Cấu hình phần cứng tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu bo mạch tối thiểu là Raspberry Pi 3 Model B (1GB RAM) hoặc tương đương, vi điều khiển ATmega328P (Arduino Uno/Nano), Camera USB độ phân giải tối thiểu 720p 30fps, cảm biến HC-SR04, driver L298N và nguồn cấp Li-Ion tối thiểu $11.1\text{V} - 2000\text{mAh}$ xả dòng cao ($10\text{C}$).

2. Làm thế nào để giải quyết vấn đề trễ khung hình khi Raspberry Pi bị quá nhiệt?

Hệ thống áp dụng kỹ thuật giảm kích thước khung hình xuống $320 \times 240\text{ pixels}$ trước khi đưa vào pipeline Canny. Đồng thời, cấu hình tản nhiệt thụ động nhôm kèm quạt tản nhiệt $5\text{V}$ điều tốc, giúp duy trì nhiệt độ CPU dưới $65^\circ\text{C}$ và xung nhịp ổn định ở $1.2\text{GHz}$.

3. Tại sao không dùng trực tiếp Arduino để đọc Camera và xử lý ảnh?

Arduino Uno R3 chạy trên vi điều khiển 8-bit ATmega328P với xung nhịp $16\text{MHz}$ và bộ nhớ SRAM chỉ $2\text{KB}$. Một khung hình xám kích thước $320 \times 240$ đã chiếm $76.8\text{KB}$, vượt gấp 38 lần toàn bộ dung lượng RAM của Arduino. Do đó, việc sử dụng Raspberry Pi làm bộ xử lý đồ họa cấp cao là bắt buộc.

4. Hệ thống xử lý thế nào khi gặp vật cản trong lúc đang thực hiện lệnh rẽ?

Luồng ngắt khoảng cách từ cảm biến siêu âm trên Arduino có mức ưu tiên cao nhất (Interrupt Priority). Khi khoảng cách $d \le 15\text{cm}$, lệnh ngắt tức thời sẽ ghi đè toàn bộ giá trị PWM về 0 để dừng xe, bất kể Raspberry Pi đang truyền lệnh rẽ nào.

5. Chi phí chế tạo một mô hình hoàn chỉnh là bao nhiêu?

Tổng chi phí linh kiện gia công phần cứng, cảm biến, vi xử lý và khung vỏ mica/chassis cắt laser dao động từ 1.800.000 VNĐ đến 2.450.000 VNĐ, phù hợp cho việc nghiên cứu và ứng dụng quy mô vừa - nhỏ.


Kết luận

Đồ án tốt nghiệp "Thiết kế, phát triển hệ thống cảnh báo sớm trên xe tự lái" đã giải quyết trọn vẹn bài toán tích hợp liên ngành giữa Cơ khí chính xác, Điện tử điều khiển và Khoa học máy tính. Bằng việc kết hợp sáng tạo giữa kỹ thuật thị giác máy tính truyền thống (Canny Edge Detection, HSV Segmentation) và hệ thống điều khiển nhúng phản hồi nhanh, nhóm nghiên cứu đã xây dựng thành công một mô hình xe tự hành có khả năng tự bám làn, nhận dạng biển báo hiệu lệnh chính xác ($89.0%$) và tự động phanh khẩn cấp phòng tránh va chạm thời gian thực ($< 25\text{ms}$).

Công trình mở ra hướng tiếp cận thực tiễn trong việc nội địa hóa các giải pháp giao thông thông minh và xe tự hành công nghiệp với chi phí tối ưu, đóng góp thiết thực vào xu hướng chuyển đổi số hạ tầng giao thông và tự động hóa kho vận tại Việt Nam.