Giới thiệu dự án

  • Bối cảnh ngành: Thị trường xe tự hành toàn cầu dự kiến đạt $62.5 tỷ vào 2030, với nhu cầu giảm chi phí cảm biến và tăng tốc độ quyết định thời gian thực. Các giải pháp hiện nay thường dựa vào cảm biến 3D‑LiDAR đắt đỏ hoặc các mô hình CNN nặng không phù hợp với các robot quy mô nhỏ.
  • Problem statement:
    1. Thiết kế một hệ thống lane‑tracking và tránh vật cản cho xe nền tảng 1/10 hoạt động trong môi trường nội bộ (khuôn viên HCMUTE).
    2. Đảm bảo chi phí thấp, tiến độ thời gian thực < 30 mskhả năng mở rộng sang các phương tiện lớn hơn.
  • Mục tiêu dự án (đánh số):
    1. Xây dựng mô hình lane‑line detection dựa trên kiến trúc UFLD (Ultra‑Fast Structure‑aware Lane Detection).
    2. Áp dụng YOLOv4‑tiny cho nhận dạng biển báo giao thông và vật cản, kết hợp Mosaic augmentation để cải thiện độ đa dạng dữ liệu.
    3. Tối ưu hoá mô hình sang TensorRT fp16 trên NVIDIA Jetson TX2 để đạt FPS ≥ 40.
    4. Phát triển thuật toán Adaptive Breakpoint Detection (ABD) + RANSAC trên dữ liệu 2D‑LiDAR để xác định khoảng cách an toàn.
    5. Điều khiển góc lái bằng PID controller dựa trên thông tin lane‑line và khoảng cách LiDAR.
  • Giải pháp đề xuất: Kết hợp camera monocular (IMX335 5 MP) và 2D‑LiDAR A1 thông qua sensor fusion ở mức lớp ứng dụng, sử dụng multithreading để đồng thời xử lý video, point‑cloud và điều khiển.
  • Kết quả mong đợi:
    • Độ chính xác lane‑detection mIoU ≥ 0.88.
    • mAP cho object detection ≥ 0.76 (COCO‑style).
    • Thời gian inference trung bình ≤ 27 ms.
    • Chi phí phần cứng ≈ USD 150 (so với > USD 1000 cho 3D‑LiDAR).

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

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

Giải pháp Cảm biến Thuật toán Độ trễ (ms) Độ chính xác* Chi phí (USD) Ưu điểm Nhược điểm
Camera‑only Monocular (1080p) CNN (SegNet) 45 mIoU ≈ 0.74 30 Đơn giản, giá rẻ Không phát hiện vật cản sâu
Sensor fusion 3D‑LiDAR 3D‑LiDAR + Camera Point‑cloud + CNN 62 mIoU ≈ 0.92, mAP ≈ 0.81 1 200 Độ chính xác cao, môi trường đa dạng Chi phí cao, tiêu thụ năng lượng
Đề xuất (Monocular + 2D‑LiDAR) Monocular + 2D‑LiDAR UFLD + YOLOv4‑tiny + ABD/RANSAC 27 mIoU ≥ 0.88, mAP ≥ 0.76 ≈ 150 Chi phí thấp, thời gian thực, phù hợp robot nhỏ Giới hạn tầm nhìn ngoài môi trường phức tạp

*Độ chính xác được tính trên tập dữ liệu tự thu thập tại HCMUTE (điều kiện ánh sáng đa dạng, đa dạng biển báo).

Thiết kế hệ thống

Kiến trúc tổng quan

graph LR
    A[Camera (IMX335)] -->|Video stream| B[Video Processor<br/>UFLD & YOLOv4‑tiny]
    C[2D‑LiDAR A1] -->|Range data| D[LiDAR Processor<br/>ABD + RANSAC]
    B & D -->|Fusion| E[Decision Layer<br/>PID Controller]
    E -->|PWM commands| F[Servo/ Motor Driver<br/>PCA9685]
    F --> G[RC Car Platform (Devo7 + RX‑701)]
  • Video Processor: chạy trên Jetson TX2, sử dụng TensorRT fp16 để giảm độ trễ.
  • LiDAR Processor: thực hiện tiền xử lý dữ liệu, phát hiện breakpoint, sau đó dùng RANSAC để ước tính đường thẳng rào chắn.
  • Decision Layer: tính góc lái dựa vào error_lane = lane_center – image_centererror_obstacle = safety_distance – measured_distance. Áp dụng PID để sinh PWM.

Technology stack

Thành phần Phiên bản
OS Ubuntu 20.04 LTS (JetPack 4.6)
GPU NVIDIA Jetson TX2 (CUDA 10.2, cuDNN 8)
Framework PyTorch 1.12, TensorRT 8.4
Models UFLD v2, YOLOv4‑tiny (pre‑trained on VOC + custom dataset)
LiDAR driver rplidar‑a1 Python SDK v2.2
Control Arduino UNO (C++), PCA9685 library v1.1
Build system CMake 3.18, catkin (ROS Noetic optional)
Dev tools VSCode, Git, DVC for dataset versioning

Methodology

  • Agile Sprint 2‑week:
    • Sprint 1: thu thập & gán nhãn dữ liệu, training baseline models.
    • Sprint 2: tối ưu TensorRT, triển khai thread pipeline.
    • Sprint 3: tích hợp LiDAR, calibrate ABD/RANSAC, PID tuning.
    • Sprint 4: kiểm thử trên đường thực tế, đánh giá KPI, viết báo cáo.
  • Risk mitigation:
    • R1: Over‑fitting của YOLOv4‑tiny → áp dụng Mosaic augmentationearly stopping.
    • R2: Độ trễ quá mức → sử dụng multithreading + CPU‑GPU pinning.
    • R3: Sai lệch LiDAR → thực hiện bias correction qua đo mẫu tĩnh.

Implementation và kết quả

Development process

  • Pipeline đa luồng (Python 3.9):
    import threading, queue, cv2, numpy as np, tensorrt as trt
    
    def video_worker(in_q, out_q):
        while True:
            frame = in_q.get()
            lane_mask = ufld_infer(frame)           # < 8 ms
            obj_boxes = yolo_infer(frame)           # < 12 ms
            out_q.put((lane_mask, obj_boxes))
    
    def lidar_worker(lidar_q, out_q):
        while True:
            scan = lidar_q.get()
            points = preprocess(scan)                # noise filter
            clusters = adaptive_breakpoint(points)   # < 5 ms
            lines = ransac_fit(clusters)             # < 4 ms
            out_q.put(lines)
    
    # Main thread merges results & runs PID
    
  • Code snippet – TensorRT inference (YOLOv4‑tiny)
    import tensorrt as trt, pycuda.driver as cuda, pycuda.autoinit
    import cv2, numpy as np
    
    TRT_LOGGER = trt.Logger(trt.Logger.INFO)
    
    def load_engine(engine_path):
        with open(engine_path, "rb") as f, trt.Runtime(TRT_LOGGER) as runtime:
            return runtime.deserialize_cuda_engine(f.read())
    
    def infer_yolo(context, input_image):
        img = cv2.resize(input_image, (416, 416))
        img = img.astype(np.float32) / 255.0
        img = np.transpose(img, (2, 0, 1))[np.newaxis, ...]
        d_input = cuda.mem_alloc(img.nbytes)
        d_output = cuda.mem_alloc(255 * 255 * 3 * 4)   # example size
        cuda.memcpy_htod(d_input, img)
        context.execute_v2(bindings=[int(d_input), int(d_output)])
        out = np.empty([255, 255, 3], dtype=np.float32)
        cuda.memcpy_dtoh(out, d_output)
        return postprocess_yolo(out)
    
  • Code snippet – PID controller (C++)
    class PID {
    public:
        PID(double kp, double ki, double kd)
            : kp_(kp), ki_(ki), kd_(kd), prev_err_(0.0), integral_(0.0) {}
    
        double step(double setpoint, double measurement, double dt) {
            double err = setpoint - measurement;
            integral_ += err * dt;
            double derivative = (err - prev_err_) / dt;
            prev_err_ = err;
            return kp_ * err + ki_ * integral_ + kd_ * derivative;
        }
    private:
        double kp_, ki_, kd_;
        double prev_err_, integral_;
    };
    
  • Hardware integration: PWM từ PID được gửi tới PCA9685 (16‑channel, 12‑bit) để điều khiển servo lái và motor tốc độ.

Testing và validation

Thử nghiệm Phương pháp Metric Kết quả
Lane‑detection Kiểm tra trên 200 ảnh thực địa (độ sáng đa dạng) mIoU 0.89
Object detection Đánh giá trên tập tùy chỉnh 1500 ảnh (3 lớp biển báo + xe) mAP (IoU ≥ 0.5) 0.78
Inference latency Đo thời gian GPU + CPU (Jetson TX2) Avg ms 26.3 ms (CPU + GPU)
Obstacle distance So sánh đo LiDAR vs. thước laser chuẩn RMSE (cm) 4.2 cm
System stability Thử chạy vòng 5 km trong 2 h (tự động) Time‑to‑Failure > 4 h (không gặp treo)
  • Feasibility: Mọi KPI đáp ứng hoặc vượt ngưỡng đề ra, chứng minh khả năng triển khai trên mô hình thực tế và mở rộng sang xe quy mô lớn hơn với chỉ tăng GPU lên Jetson Xavier để giảm latency còn 10 ms.
  • Scalability: Kiến trúc modular cho phép thay thế 2D‑LiDAR bằng 3D‑LiDAR chỉ cần cập nhật LiDAR Processor mà không thay đổi Decision Layer.

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

  1. Kết hợp Mosaic augmentation vào quá trình huấn luyện YOLOv4‑tiny, giảm over‑fitting và tăng mAP từ 0.71 → 0.78 (+9 %).
  2. Adaptive Breakpoint Detection (ABD) – thuật toán tự điều chỉnh ngưỡng dựa trên độ dốc quét, giảm false‑positive trong phát hiện vật cản từ 12 % → 3 %.
  3. TensorRT fp16 cho cả UFLD và YOLOv4‑tiny, giảm latency trung bình 30 % so với FP32 mà không mất đáng kể độ chính xác (mAP giảm < 0.5 %).
  4. Multithreaded sensor fusion trên Jetson TX2 đạt CPU utilisation ≈ 45 %, cho phép thêm SLAM module trong tương lai mà không gây bottleneck.

So sánh với hai giải pháp hiện có:

Đặc tính Giải pháp A (Camera‑only) Giải pháp B (3D‑LiDAR + Camera) Đề xuất
Chi phí phần cứng $30 $1 200 $150
Độ trễ trung bình 45 ms 62 ms 27 ms
mAP (object) 0.71 0.81 0.78
mIoU (lane) 0.74 0.92 0.89
Năng lượng tiêu thụ 5 W 25 W 8 W

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

  • Use case 1 – Campus shuttle: Xe tự hành giao hàng đồ ăn nhanh trong khuôn viên, di chuyển 300 m với tốc độ 2 m/s, đáp ứng thời gian giao < 5 phút.
  • Use case 2 – Indoor logistics robot: Áp dụng thuật toán ABD + RANSAC để tránh kệ hàng trong nhà kho, độ chính xác đo khoảng cách < 5 cm.
  • Deployment strategy:
    1. Prototype (đã hoàn thiện) → Field test (2 tuần).
    2. Production: Lắp đặt Jetson Xavier NX, nâng cấp LiDAR lên RPLIDAR S1 nếu yêu cầu tầm nhìn > 12 m.
  • **Sc## Giới thiệu dự án
  • Bối cảnh ngành: Thị trường xe tự hành toàn cầu dự kiến đạt $62.5 tỷ vào 2030, với nhu cầu giảm chi phí cảm biến và tăng tốc độ quyết định thời gian thực. Các giải pháp hiện nay thường dựa vào cảm biến 3D‑LiDAR đắt đỏ hoặc các mô hình CNN nặng không phù hợp với các robot quy mô nhỏ.
  • Problem statement:
    1. Thiết kế một hệ thống lane‑tracking và tránh vật cản cho xe nền tảng 1/10 hoạt động trong môi trường nội bộ (khuôn viên HCMUTE).
    2. Đảm bảo chi phí thấp, tiến độ thời gian thực < 30 mskhả năng mở rộng sang các phương tiện lớn hơn.
  • Mục tiêu dự án (đánh số):
    1. Xây dựng mô hình lane‑line detection dựa trên kiến trúc UFLD (Ultra‑Fast Structure‑aware Lane Detection).
    2. Áp dụng YOLOv4‑tiny cho nhận dạng biển báo giao thông và vật cản, kết hợp Mosaic augmentation để cải thiện độ đa dạng dữ liệu.
    3. Tối ưu hoá mô hình sang TensorRT fp16 trên NVIDIA Jetson TX2 để đạt FPS ≥ 40.
    4. Phát triển thuật toán Adaptive Breakpoint Detection (ABD) + RANSAC trên dữ liệu 2D‑LiDAR để xác định khoảng cách an toàn.
    5. Điều khiển góc lái bằng PID controller dựa trên thông tin lane‑line và khoảng cách LiDAR.
  • Giải pháp đề xuất: Kết hợp camera monocular (IMX335 5 MP) và 2D‑LiDAR A1 thông qua sensor fusion ở mức lớp ứng dụng, sử dụng multithreading để đồng thời xử lý video, point‑cloud và điều khiển.
  • Kết quả mong đợi:
    • Độ chính xác lane‑detection mIoU ≥ 0.88.
    • mAP cho object detection ≥ 0.76 (COCO‑style).
    • Thời gian inference trung bình ≤ 27 ms.
    • Chi phí phần cứng ≈ USD 150 (so với > USD 1000 cho 3D‑LiDAR).

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

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

Giải pháp Cảm biến Thuật toán Độ trễ (ms) Độ chính xác* Chi phí (USD) Ưu điểm Nhược điểm
Camera‑only Monocular (1080p) CNN (SegNet) 45 mIoU ≈ 0.74 30 Đơn giản, giá rẻ Không phát hiện vật cản sâu
Sensor fusion 3D‑LiDAR 3D‑LiDAR + Camera Point‑cloud + CNN 62 mIoU ≈ 0.92, mAP ≈ 0.81 1 200 Độ chính xác cao, môi trường đa dạng Chi phí cao, tiêu thụ năng lượng
Đề xuất (Monocular + 2D‑LiDAR) Monocular + 2D‑LiDAR UFLD + YOLOv4‑tiny + ABD/RANSAC 27 mIoU ≥ 0.88, mAP ≥ 0.76 ≈ 150 Chi phí thấp, thời gian thực, phù hợp robot nhỏ Giới hạn tầm nhìn ngoài môi trường phức tạp

*Độ chính xác được tính trên tập dữ liệu tự thu thập tại HCMUTE (điều kiện ánh sáng đa dạng, đa dạng biển báo).

Thiết kế hệ thống

Kiến trúc tổng quan

graph LR
    A[Camera (IMX335)] -->|Video stream| B[Video Processor<br/>UFLD & YOLOv4‑tiny]
    C[2D‑LiDAR A1] -->|Range data| D[LiDAR Processor<br/>ABD + RANSAC]
    B & D -->|Fusion| E[Decision Layer<br/>PID Controller]
    E -->|PWM commands| F[Servo/ Motor Driver<br/>PCA9685]
    F --> G[RC Car Platform (Devo7 + RX‑701)]
  • Video Processor: chạy trên Jetson TX2, sử dụng TensorRT fp16 để giảm độ trễ.
  • LiDAR Processor: thực hiện tiền xử lý dữ liệu, phát hiện breakpoint, sau đó dùng RANSAC để ước tính đường thẳng rào chắn.
  • Decision Layer: tính góc lái dựa vào error_lane = lane_center – image_centererror_obstacle = safety_distance – measured_distance. Áp dụng PID để sinh PWM.

Technology stack

Thành phần Phiên bản
OS Ubuntu 20.04 LTS (JetPack 4.6)
GPU NVIDIA Jetson TX2 (CUDA 10.2, cuDNN 8)
Framework PyTorch 1.12, TensorRT 8.4
Models UFLD v2, YOLOv4‑tiny (pre‑trained on VOC + custom dataset)
LiDAR driver rplidar‑a1 Python SDK v2.2
Control Arduino UNO (C++), PCA9685 library v1.1
Build system CMake 3.18, catkin (ROS Noetic optional)
Dev tools VSCode, Git, DVC for dataset versioning

Methodology

  • Agile Sprint 2‑week:
    • Sprint 1: thu thập & gán nhãn dữ liệu, training baseline models.
    • Sprint 2: tối ưu TensorRT, triển khai thread pipeline.
    • Sprint 3: tích hợp LiDAR, calibrate ABD/RANSAC, PID tuning.
    • Sprint 4: kiểm thử trên đường thực tế, đánh giá KPI, viết báo cáo.
  • Risk mitigation:
    • R1: Over‑fitting của YOLOv4‑tiny → áp dụng Mosaic augmentationearly stopping.
    • R2: Độ trễ quá mức → sử dụng multithreading + CPU‑GPU pinning.
    • R3: Sai lệch LiDAR → thực hiện bias correction qua đo mẫu tĩnh.

Implementation và kết quả

Development process

  • Pipeline đa luồng (Python 3.9):
    import threading, queue, cv2, numpy as np, tensorrt as trt
    
    def video_worker(in_q, out_q):
        while True:
            frame = in_q.get()
            lane_mask = ufld_infer(frame)           # < 8 ms
            obj_boxes = yolo_infer(frame)           # < 12 ms
            out_q.put((lane_mask, obj_boxes))
    
    def lidar_worker(lidar_q, out_q):
        while True:
            scan = lidar_q.get()
            points = preprocess(scan)                # noise filter
            clusters = adaptive_breakpoint(points)   # < 5 ms
            lines = ransac_fit(clusters)             # < 4 ms
            out_q.put(lines)
    
    # Main thread merges results & runs PID
    
  • Code snippet – TensorRT inference (YOLOv4‑tiny)
    import tensorrt as trt, pycuda.driver as cuda, pycuda.autoinit
    import cv2, numpy as np
    
    TRT_LOGGER = trt.Logger(trt.Logger.INFO)
    
    def load_engine(engine_path):
        with open(engine_path, "rb") as f, trt.Runtime(TRT_LOGGER) as runtime:
            return runtime.deserialize_cuda_engine(f.read())
    
    def infer_yolo(context, input_image):
        img = cv2.resize(input_image, (416, 416))
        img = img.astype(np.float32) / 255.0
        img = np.transpose(img, (2, 0, 1))[np.newaxis, ...]
        d_input = cuda.mem_alloc(img.nbytes)
        d_output = cuda.mem_alloc(255 * 255 * 3 * 4)   # example size
        cuda.memcpy_htod(d_input, img)
        context.execute_v2(bindings=[int(d_input), int(d_output)])
        out = np.empty([255, 255, 3], dtype=np.float32)
        cuda.memcpy_dtoh(out, d_output)
        return postprocess_yolo(out)
    
  • Code snippet – PID controller (C++)
    class PID {
    public:
        PID(double kp, double ki, double kd)
            : kp_(kp), ki_(ki), kd_(kd), prev_err_(0.0), integral_(0.0) {}
    
        double step(double setpoint, double measurement, double dt) {
            double err = setpoint - measurement;
            integral_ += err * dt;
            double derivative = (err - prev_err_) / dt;
            prev_err_ = err;
            return kp_ * err + ki_ * integral_ + kd_ * derivative;
        }
    private:
        double kp_, ki_, kd_;
        double prev_err_, integral_;
    };
    
  • Hardware integration: PWM từ PID được gửi tới PCA9685 (16‑channel, 12‑bit) để điều khiển servo lái và motor tốc độ.

Testing và validation

Thử nghiệm Phương pháp Metric Kết quả
Lane‑detection Kiểm tra trên 200 ảnh thực địa (độ sáng đa dạng) mIoU 0.89
Object detection Đánh giá trên tập tùy chỉnh 1500 ảnh (3 lớp biển báo + xe) mAP (IoU ≥ 0.5) 0.78
Inference latency Đo thời gian GPU + CPU (Jetson TX2) Avg ms 26.3 ms (CPU + GPU)
Obstacle distance So sánh đo LiDAR vs. thước laser chuẩn RMSE (cm) 4.2 cm
System stability Thử chạy vòng 5 km trong 2 h (tự động) Time‑to‑Failure > 4 h (không gặp treo)
  • Feasibility: Mọi KPI đáp ứng hoặc vượt ngưỡng đề ra, chứng minh khả năng triển khai trên mô hình thực tế và mở rộng sang xe quy mô lớn hơn với chỉ tăng GPU lên Jetson Xavier để giảm latency còn 10 ms.
  • Scalability: Kiến trúc modular cho phép thay thế 2D‑LiDAR bằng 3D‑LiDAR chỉ cần cập nhật LiDAR Processor mà không thay đổi Decision Layer.

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

  1. Kết hợp Mosaic augmentation vào quá trình huấn luyện YOLOv4‑tiny, giảm over‑fitting và tăng mAP từ 0.71 → 0.78 (+9 %).
  2. Adaptive Breakpoint Detection (ABD) – thuật toán tự điều chỉnh ngưỡng dựa trên độ dốc quét, giảm false‑positive trong phát hiện vật cản từ 12 % → 3 %.
  3. TensorRT fp16 cho cả UFLD và YOLOv4‑tiny, giảm latency trung bình 30 % so với FP32 mà không mất đáng kể độ chính xác (mAP giảm < 0.5 %).
  4. Multithreaded sensor fusion trên Jetson TX2 đạt CPU utilisation ≈ 45 %, cho phép thêm SLAM module trong tương lai mà không gây bottleneck.

So sánh với hai giải pháp hiện có:

Đặc tính Giải pháp A (Camera‑only) Giải pháp B (3D‑LiDAR + Camera) Đề xuất
Chi phí phần cứng $30 $1 200 $150
Độ trễ trung bình 45 ms 62 ms 27 ms
mAP (object) 0.71 0.81 0.78
mIoU (lane) 0.74 0.92 0.89
Năng lượng tiêu thụ 5 W 25 W 8 W

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

  • Use case 1 – Campus shuttle: Xe tự hành giao hàng đồ ăn nhanh trong khuôn viên, di chuyển 300 m với tốc độ 2 m/s, đáp ứng thời gian giao < 5 phút.
  • Use case 2 – Indoor logistics robot: Áp dụng thuật toán ABD + RANSAC để tránh kệ hàng trong nhà kho, độ chính xác đo khoảng cách < 5 cm.
  • Deployment strategy:
    1. Prototype (đã hoàn thiện) → Field test (2 tuần).
    2. Production: Lắp đặt Jetson Xavier NX, nâng cấp LiDAR lên RPLIDAR S1 nếu yêu cầu tầm nhìn > 12 m.
  • Scalability analysis: Nếu mở rộng độ dài xe lên 2 m (tỷ lệ 1:5), cần tăng camera resolution lên 2 MP và LiDAR range lên 20 m; các mô-đun phần mềm không cần thay đổi, chỉ cần re‑training lại mô hình lane‑detection với dữ liệu mới.
  • Cost‑benefit:
    • Đầu tư phần cứng: USD 150.
    • Tiết kiệm chi phí so với 3D‑LiDAR solution: ≈ USD 1 050 mỗi đơn vị.
    • ROI ước tính 6 tháng khi triển khai 10 xe trong môi trường giáo dục/đào tạo.

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

  • Giới hạn cảm biến: 2D‑LiDAR không cung cấp độ cao, do vậy các vật cản trên độ cao > 0.5 m còn chưa được phát hiện.
  • Môi trường phức hợp: Khi ánh sáng yếu (đêm) hoặc mưa, độ chính xác lane‑detection giảm xuống mIoU ≈ 0.78; cần bổ sung infrared camera hoặc radar.
  • Phát triển tương lai:
    1. Fusion 3D‑LiDAR + Camera để mở rộng tầm nhìn.
    2. Deep reinforcement learning cho quyết định lái dựa trên trạng thái toàn cảnh.
    3. Edge‑on‑device training (Tiny‑ML) để cập nhật mô hình trực tiếp trên robot.
    4. Công cụ tự động generate dataset bằng mô phỏng CARLA, giảm phụ thuộc vào dữ liệu thực địa.

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

  • Sinh viên: mẫu dự án hoàn chỉnh, tài liệu mã nguồn, và hướng dẫn triển khai nhanh cho các đề tài tương tự.
  • Nhà phát triển robot: kiến trúc module‑hoá, thư viện PID‑PCA9685TensorRT‑YOLOv4‑tiny giúp giảm thời gian tích hợp.
  • Doanh nghiệp giáo dục: giải pháp giảm chi phí triển khai demo autonomous vehicle trong phòng thí nghiệm.
  • Nhà nghiên cứu: công bố thuật toán ABD và kết quả so sánh metric chi tiết, mở ra hướng nghiên cứu sensor‑fusion cho robot giá rẻ.

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

  1. Yêu cầu phần cứng để triển khai?
    • Jetson TX2 (hoặc tương đương), camera IMX335 5 MP, 2D‑LiDAR A1, PCA9685 + Arduino UNO, bộ nguồn 7.4 V LiPo 2200 mAh.
  2. Giới hạn scalability?
    • Hệ thống hiện tại hỗ trợ tầm nhìn 12 m (LiDAR) và tốc độ ≤ 3 m/s. Đối với tốc độ cao hơn, cần nâng cấp GPU và cải thiện thuật toán lane‑prediction (Temporal Conv).
  3. Cách tích hợp với hệ thống ROS?
    • Các node video, LiDAR và PID được đóng gói dưới dạng ROS2 composable nodes, chỉ cần colcon build và chạy ros2 launch autonomous_robot.launch.py.
  4. Chi phí bảo trì và hỗ trợ?
    • Thay pin cho LiPo mỗi 6 tháng (~$10), cập nhật firmware Jetson mỗi năm, và kiểm tra hiệu năng LiDAR mỗi 3 tháng.
  5. Làm thế nào để cải thiện độ chính xác night‑time?
    • Thêm IR LED illumination và huấn luyện lại UFLD với dữ liệu ánh sáng yếu; hoặc kết hợp thermal camera làm backup sensor.

Kết luận

  • Thành tựu chính: Thiết kế và triển khai một hệ thống lane‑tracking & obstacle‑avoidance đạt chuẩn thời gian thực, chi phí thấp, và độ chính xác đủ cho môi trường nội bộ.
  • Đóng góp kỹ thuật: 1) ABD thuật toán mới, 2) Tối ưu TensorRT fp16 cho mô hình đa tác vụ, 3) Kiến trúc sensor‑fusion modular cho robot quy mô nhỏ.
  • Giá trị doanh nghiệp: Giảm chi phí cảm biến lên tới 85 %, nâng thời gian đưa sản phẩm ra thị trường, và tạo nền tảng mở rộng cho các dự án tự động hoá nội bộ.
  • Hướng phát triển: Tích hợp radar/IR, mở rộng sang mô hình 1:5, và nghiên cứu học tăng cường cho quyết định lái.

Call to Action: Đọc phần “Implementation và kết quả” để lấy code mẫu, tải Docker image chuẩn Jetson và bắt đầu triển khai ngay trên nền tảng của bạn.