Bối cảnh và vấn đề nghiên cứu

Trong xu thế phát triển của cuộc Cách mạng Công nghiệp 4.0, công nghệ xe tự hành (autonomous vehicle) đang trở thành một trong những trọng tâm nghiên cứu và ứng dụng hàng đầu của ngành công nghiệp ô tô toàn cầu. Sự kết hợp giữa trí tuệ nhân tạo (AI), thị giác máy tính và điều khiển tự động hướng đến mục tiêu nâng cao mức độ an toàn giao thông, giảm thiểu tai nạn do lỗi con người và tối ưu hóa hiệu quả di chuyển. Theo phân loại quốc tế, công nghệ tự hành gồm 6 cấp độ (từ cấp độ 0 - điều khiển thủ công hoàn toàn đến cấp độ 5 - tự hành hoàn toàn); trong đó, các dòng xe thương mại hiện nay chủ yếu vận hành ở cấp độ 2 (tự động hóa một phần, hỗ trợ lái, kiểm soát hành trình và giữ làn đường dưới sự giám sát của tài xế). Trên thế giới, các doanh nghiệp tiên phong như Waymo (Mỹ), MobilEye (Đức) hay Didi Chuxing (Trung Quốc) đã và đang thử nghiệm các dịch vụ xe tự hành và robotaxi. Tại Việt Nam, nghiên cứu xe tự hành được thúc đẩy bởi các tập đoàn công nghệ lớn như VinFast/VinAI, FPT (dự án akaBot) và Alpha Asimov, cùng với các sân chơi học thuật như FPT Autonomous Car hay Bosch Future Mobility Challenge.

Tuy nhiên, trong quá trình tiếp cận và phát triển các mô hình xe tự hành quy mô nhỏ, tác giả nhận thấy hệ thống xử lý bám làn đường hiện nay vẫn tồn tại nhiều hạn chế: phản ứng bám làn chưa mượt mà, xe dễ bị giật cục hoặc mất dấu vạch kẻ đường khi vào các đoạn cua gắt hay khi vạch kẻ bị gián đoạn. Bên cạnh đó, việc bố trí phần cứng xử lý hình ảnh và điều khiển thường cồng kềnh, tiêu tốn năng lượng và làm tăng trọng lượng xe. Nhằm giải quyết các vấn đề trên với chi phí hợp lý, đề tài "Nghiên cứu, thiết kế mô hình xe tự hành" được thực hiện nhằm xây dựng một mô hình xe tự hành kích thước nhỏ gọn, xử lý bám làn bằng camera thời gian thực kết hợp thuật toán điều khiển phản hồi.

Nhiệm vụ nghiên cứu của đề tài được xác định gồm 5 nội dung chính:

  1. Nghiên cứu cơ sở lý thuyết và thu thập tài liệu liên quan đến xe tự hành, xử lý ảnh và điều khiển tự động.
  2. Xây dựng đề cương tóm tắt yêu cầu kỹ thuật và thiết kế luồng xử lý dữ liệu của toàn bộ hệ thống.
  3. Nghiên cứu, lập trình thuật toán điều khiển trên môi trường máy tính và triển khai thực thi trên phần cứng máy tính nhúng Raspberry Pi kết hợp vi điều khiển Arduino Nano.
  4. Kiểm tra thực nghiệm mô hình trên sa hình thực tế, thu thập dữ liệu, đánh giá độ ổn định và hiệu chỉnh thông số hệ thống.
  5. Tổng hợp kết quả và hoàn thiện thuyết minh đồ án tốt nghiệp.
  • Đối tượng nghiên cứu: Mô hình xe tự hành tỷ lệ nhỏ; thuật toán xử lý ảnh nhận diện làn đường trên nền tảng OpenCV; ngôn ngữ lập trình Python; giao thức truyền thông nối tiếp SPI; bộ điều khiển PID; máy tính nhúng Raspberry Pi 4 Model B và bo mạch vi điều khiển Arduino Nano.
  • Phạm vi nghiên cứu: Mô hình xe tự hành sử dụng khung gầm RC Buggy, hoạt động trong môi trường sa hình định sẵn với vạch kẻ đường rõ ràng; tập trung vào bài toán nhận diện vạch làn đường bằng camera đơn (monocular vision), tính toán độ lệch tâm và điều khiển hệ thống lái/truyền động theo thời gian thực.
  • Thời gian thực hiện: Từ ngày 26/01/2024 đến tháng 05/2024 tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình tính toán

Nghiên cứu ứng dụng các nguyên lý xử lý ảnh số, lý thuyết truyền thông vi xử lý, kỹ thuật điều khiển tự động và điện - điện tử:

  • Biến đổi phối cảnh (Perspective Transformation): Chuyển đổi góc nhìn của ảnh thu được từ camera (góc nhìn nghiêng) sang góc nhìn từ trên xuống (Bird's Eye View) thông qua ma trận biến đổi phối cảnh dựa trên 4 điểm tương ứng giữa ảnh nguồn và ảnh đích (cv2.getPerspectiveTransform và cv2.warpPerspective).
  • Không gian màu xám (Gray Scale): Chuyển đổi ảnh màu RGB sang ảnh mức xám 8-bit (thang giá trị cường độ sáng từ 0 đến 255) nhằm loại bỏ thông tin màu sắc không cần thiết, giúp giảm dung lượng dữ liệu và tăng tốc độ xử lý khung hình.
  • Bộ lọc làm mờ Gaussian (Gaussian Blur): Áp dụng ma trận lọc (kernel) Gaussian làm mượt ảnh, giảm thiểu nhiễu hạt và chi tiết thừa trước khi trích xuất biên dạng.
  • Thuật toán phát hiện cạnh Canny (Canny Edge Detection): Sử dụng hàm cv2.Canny với hai ngưỡng xác định $T_{lower}$ và $T_{upper}$ nhằm lọc gradient cường độ sáng, trích xuất chính xác các đường viền mép vạch làn đường.
  • Giải thuật điều khiển PID (Proportional - Integral - Derivative): Sử dụng sai số giữa tâm xe và tâm làn đường (độ lệch vị trí) làm tín hiệu đầu vào để tính toán góc bẻ lái phù hợp cho động cơ Servo:
    • Khâu tỷ lệ ($P$): Tạo lực điều khiển tỷ lệ thuận với sai số tức thời.
    • Khâu tích phân ($I$): Triệt tiêu sai số xác lập tích lũy theo thời gian.
    • Khâu vi phân ($D$): Dự báo xu hướng thay đổi của sai số, dập tắt các dao động nhanh và hiện tượng đánh lái giật cục.
  • Lý thuyết mạch điện tử cơ bản: Ứng dụng định luật Ohm ($I = \frac{U}{R}$), định luật điện tích tụ điện ($C = \frac{Q}{U}$), nguyên lý cách ly quang của Optocoupler và nguyên lý bảo vệ nhiệt - dòng của cầu chì ống.

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

  • Phương pháp phân tích - tổng hợp tài liệu: Thu thập và nghiên cứu các tài liệu kỹ thuật về kiến trúc máy tính nhúng, tập lệnh OpenCV, giao thức truyền thông vi điều khiển và các giải thuật bám làn đường.
  • Phương pháp mô hình hóa và thiết kế kỹ thuật: Thiết kế kiến trúc phân tầng phần cứng (High-level xử lý ảnh, Low-level chấp hành), sơ đồ nguyên lý mạch điều khiển công suất và cơ cấu cơ khí gá đặt thiết bị.
  • Phương pháp thực nghiệm và hiệu chỉnh thông số: Chạy thử nghiệm mô hình thực tế trên sa hình mô phỏng, áp dụng phương pháp Ziegler-Nichols (xác định độ lợi giới hạn $K_u$ và chu kỳ dao động tới hạn $T_u$) kết hợp tinh chỉnh thực nghiệm để lựa chọn bộ thông số $K_p, K_i, K_d$ tối ưu.

Thiết kế và triển khai

Hệ thống xe tự hành được thiết kế theo cấu trúc điều khiển phân tán gồm hai khối xử lý chính: khối xử lý ảnh trung tâm cấp cao (Raspberry Pi 4) và khối điều khiển chấp hành cấp thấp (Arduino Nano), kết nối đồng bộ với nhau qua giao tiếp ngoại vi SPI.

Thành phần hệ thống Thông số kỹ thuật / Linh kiện sử dụng Vai trò chức năng
Bộ xử lý trung tâm Raspberry Pi 4 Model B (Broadcom BCM2711, Quad-core Cortex-A72 1.5GHz, RAM đa dung lượng, nguồn 5V/3A) Thu nhận luồng video từ camera, thực thi thuật toán OpenCV, tính toán sai số làn đường và giải thuật PID.
Bộ vi điều khiển chấp hành Arduino Nano (Vi điều khiển ATmega328P 8-bit, 16 MHz, Flash 32KB, 22 chân Digital I/O, 6 kênh PWM) Nhận dữ liệu góc lái và tốc độ từ Raspberry Pi qua SPI, xuất xung PWM điều khiển góc quay Servo và tốc độ động cơ DC.
Cảm biến hình ảnh & hiển thị Camera hành trình góc rộng; Màn hình LCD (FPC7005001) kèm bo mạch giải mã Thu nhận dữ liệu hình ảnh mặt đường; hiển thị thông số và hình ảnh xử lý thời gian thực.
Hệ thống truyền động & lái Động cơ DC 775 trục D; Động cơ Servo điều hướng; Hộp số vi sai; Hệ thống treo độc lập Dẫn động cầu sau và bẻ lái bánh trước dựa trên cơ cấu khung gầm RC Buggy.
Mạch công suất & bảo vệ Mạch hạ áp LM2596, Transistor công suất MOSFET IRF3205, Optocoupler cách ly, Module Relay 30A/12VDC, Cầu chì ống Cấp nguồn ổn định 5V/3.3V, khuếch đại dòng điều khiển động cơ, chống nhiễu tín hiệu và bảo vệ quá dòng.
Nguồn cấp di động Pin LiPo và khối Pin Lithium-ion 18650 (8V) Cung cấp năng lượng độc lập cho khối máy tính nhúng và hệ thống động cơ chấp hành.

Giao thức truyền thông SPI

Hệ thống thiết lập đường truyền SPI song công toàn phần (Full-duplex) giữa Master (Raspberry Pi) và Slave (Arduino Nano) qua 4 đường tín hiệu vật lý:

  • MOSI (Master Out Slave In): Raspberry Pi truyền dữ liệu góc lái đã tính toán sang Arduino Nano.
  • MISO (Master In Slave Out): Arduino Nano gửi trạng thái phản hồi về Raspberry Pi.
  • SCK (Serial Clock): Tín hiệu xung đồng hồ do Raspberry Pi phát ra để đồng bộ quá trình truyền nhận từng bit dữ liệu.
  • SS (Slave Select): Tín hiệu kích hoạt chọn chip điều khiển Arduino Nano.

Luồng xử lý phần mềm

  1. Camera liên tục ghi hình mặt đường và chuyển đổi từng khung hình vào bộ nhớ đệm của phần mềm viết bằng Python trên môi trường Thonny IDE.
  2. Áp dụng ma trận phối cảnh biến đổi vùng quan tâm (ROI) của đường chạy sang góc nhìn bình đồ.
  3. Chuyển đổi khung hình sang không gian màu xám, áp dụng lọc mờ Gaussian để khử nhiễu và chạy giải thuật Canny để trích xuất biên mép vạch sơn.
  4. Thuật toán quét điểm xác định vị trí biên trái và biên phải của làn đường, tính toán tọa độ trung tâm làn và xác định độ lệch tâm (Cross Track Error - CTE) so với tâm khung xe.
  5. Giải thuật PID chuyển đổi giá trị độ lệch thành góc bẻ lái tương ứng, mã hóa dữ liệu và gửi qua giao tiếp SPI xuống Arduino Nano để điều khiển Servo bẻ lái góc tương ứng và duy trì tốc độ động cơ DC.

Nội dung chính theo từng chương

Chương 1: Tổng quan đề tài

Chương 1 thiết lập bức tranh tổng thể về lý do lựa chọn nghiên cứu xe tự hành, phân tích nhu cầu phát triển phương tiện giao thông thông minh trong bối cảnh toàn cầu hóa và xu hướng công nghiệp 4.0. Tác giả tiến hành tổng quan tình hình nghiên cứu xe tự hành ở phạm vi quốc tế (phân loại 6 cấp độ tự hành của SAE, đánh giá các công nghệ từ MobilEye, Waymo, Didi Chuxing) và trong nước (VinAI, FPT, Alpha Asimov, các cuộc thi sinh viên). Trên cơ sở đó, chương xác định mục tiêu chế tạo mô hình xe tự hành bám làn chi phí thấp, nêu rõ 5 nhiệm vụ kỹ thuật, phương pháp nghiên cứu, đối tượng, phạm vi và bố cục 6 chương của đồ án.

Chương 2: Cơ sở lý thuyết

Chương 2 trình bày chi tiết nền tảng lý thuyết toán học và kỹ thuật phần cứng được ứng dụng trong đề tài:

  • Xử lý ảnh số: Trình bày toán học của thuật toán biến đổi phối cảnh (Perspective Transformation), nguyên lý biểu diễn ảnh xám 8-bit, hàm phân bố lọc mờ Gaussian và thuật toán dò cạnh Canny đa ngưỡng.
  • Lý thuyết điều khiển và truyền thông: Phân tích giao thức truyền thông nối tiếp đồng bộ SPI (4 dây tín hiệu, cấu trúc Master-Slave) và cấu trúc bộ điều khiển PID (tác động của từng thành phần $K_p, K_i, K_d$ đến đặc tính đáp ứng thời gian và triệt tiêu dao động).
  • Linh kiện điện tử và phần cứng: Thống kê chi tiết thông số kỹ thuật và sơ đồ chân của máy tính nhúng Raspberry Pi 4 Model B (chip BCM2711, 28 chân GPIO, chuẩn nguồn USB Type-C), vi điều khiển Arduino Nano (ATmega328P), mạch hạ áp LM2596, Opto cách ly quang, MOSFET công suất IRF3205, động cơ DC 775, động cơ Servo, rơ-le và các loại cảm biến/pin nguồn.

Chương 3: Thiết kế và lắp đặt mô hình

Chương 3 tập trung vào quy trình thiết kế cơ khí và kết nối điện tử cho mô hình xe tự hành:

  • Thiết kế bố trí kết cấu khung xe dựa trên kit xe RC Buggy, hoàn thiện hệ thống treo giảm chấn độc lập và bộ vi sai truyền động cầu sau nhằm đảm bảo khả năng vào cua ổn định.
  • Lắp đặt tầng đỡ linh kiện, giá đỡ camera phía trước với góc quan sát bao quát mặt đường và gá đặt màn hình LCD hiển thị trạng thái.
  • Thiết kế và thi công mạch điều khiển động cơ DC (sử dụng MOSFET và Opto cách ly) cùng mạch điều khiển góc quay Servo.
  • Hoàn thiện sơ đồ đấu nối dây nguồn và dây tín hiệu SPI giữa Raspberry Pi 4 và Arduino Nano, đảm bảo cách ly nguồn động lực và nguồn điều khiển để chống sụt áp.

Chương 4: Thuật toán điều khiển xe tự hành

Chương 4 diễn giải chi tiết logic thuật toán và cấu trúc mã nguồn điều khiển:

  • Khởi tạo môi trường lập trình Python, thư viện OpenCV và giao thức SPI trên hệ điều hành Raspberry Pi OS.
  • Xây dựng thuật toán nhận diện làn đường: định nghĩa hàm biến đổi góc nhìn dựa trên thanh trượt hiệu chỉnh (trackbar) để chọn vùng quan tâm (ROI), áp dụng lọc Gaussian và phát hiện biên Canny.
  • Thiết lập giải thuật tìm hai điểm biên làn đường trái - phải, dự đoán điểm mất dấu và tính toán giá trị độ lệch tâm của xe so với tim đường.
  • Cài đặt phương trình điều khiển PID trên Python để chuyển đổi sai số vị trí thành tín hiệu góc lái, sau đó truyền mã lệnh xuống thanh ghi dữ liệu của Arduino Nano (SPDR) để điều khiển phần cứng.

Chương 5: Kết quả thực nghiệm

Chương 5 ghi nhận quá trình thử nghiệm thực tế mô hình xe tự hành trên sa hình kiểm thử:

  • Xây dựng sa hình mặt đường thử nghiệm gồm các đoạn đường thẳng, khúc cua sang trái và khúc cua sang phải với bề rộng vạch kẻ tiêu chuẩn.
  • Thực nghiệm hiệu chỉnh bộ thông số PID theo phương pháp Ziegler-Nichols kết hợp tinh chỉnh thủ công: tiến hành tăng dần $K_p$ đến khi hệ thống đạt trạng thái dao động duy trì để xác định độ lợi giới hạn $K_u$ và chu kỳ tới hạn $T_u$, từ đó suy ra các hệ số $K_p, K_i, K_d$.
  • Đánh giá khả năng bám làn trong các trường hợp: xe di chuyển thẳng (độ lệch tâm xấp xỉ 0), xe vào cua trái (hệ thống đánh lái bù góc mượt mà) và xe vào cua phải (duy trì quỹ đạo trong tâm làn đường, không bị văng ra khỏi vạch kẻ).

Chương 6: Kết luận và hướng phát triển

Chương 6 tổng kết các kết quả đạt được của đồ án tốt nghiệp, khẳng định mô hình đã đáp ứng được yêu cầu thiết kế ban đầu về khả năng nhận diện vạch kẻ đường và tự động điều hướng bám làn ổn định với chi phí chế tạo thấp. Đồng thời, chương chỉ ra các hạn chế kỹ thuật hiện tại và đề xuất các hướng nghiên cứu nâng cao cho các giai đoạn tiếp theo.


Kết quả và đóng góp

Kết quả kỹ thuật đạt được

  • Chế tạo thành công phần cứng mô hình xe tự hành: Xây dựng hoàn chỉnh mô hình xe tự hành trên nền tảng khung xe RC Buggy, tích hợp chắc chắn hệ thống treo, bộ vi sai, giá đỡ camera, màn hình LCD, máy tính nhúng Raspberry Pi 4 Model B, vi điều khiển Arduino Nano và mạch công suất điều khiển động cơ DC 775 / Servo.
  • Xây dựng chương trình xử lý ảnh bám làn thời gian thực: Triển khai thành công chuỗi xử lý ảnh số (Perspective Transformation $\rightarrow$ Gray Scale $\rightarrow$ Gaussian Blur $\rightarrow$ Canny Edge Detection) giúp trích xuất vạch làn đường chính xác từ camera, tính toán độ lệch tâm theo thời gian thực mà không gây quá tải tài nguyên Raspberry Pi.
  • Xác lập và tinh chỉnh hệ số điều khiển PID thực nghiệm: Áp dụng phương pháp xác định hệ số dao động tới hạn kết hợp thực nghiệm trên sa hình, tìm ra bộ thông số $K_p, K_i, K_d$ giúp xe tự động đánh lái mượt mà, triệt tiêu hiện tượng rung lắc đầu xe khi di chuyển thẳng và ổn định quỹ đạo khi vào cua.
Trường hợp thử nghiệm Trạng thái nhận diện làn đường Phản ứng của hệ thống điều khiển Kết quả thực tế
Đoạn đường thẳng Nhận diện rõ hai vạch biên trái - phải; sai số lệch tâm $e(t) \approx 0$. Tín hiệu điều khiển PID giữ góc lái Servo ở vị trí trung hòa ($0^\circ$). Xe di chuyển thẳng ổn định, không xuất hiện hiện tượng lắc ngang.
Đoạn cua sang trái Vạch làn đường lệch về phía bên trái khung hình; sai số lệch tâm âm. Bộ điều khiển PID xuất tín hiệu bẻ lái Servo sang góc trái tương ứng. Xe bám sát theo độ cong khúc cua, duy trì vị trí tâm làn đường.
Đoạn cua sang phải Vạch làn đường lệch về phía bên phải khung hình; sai số lệch tâm dương. Bộ điều khiển PID xuất tín hiệu bẻ lái Servo sang góc phải tương ứng. Xe chuyển hướng mượt mà sang phải, không bị trượt bánh hoặc mất dấu vạch.

Giải pháp và đóng góp của đề tài

  • Đề xuất giải pháp kiến trúc điều khiển phân tầng tối ưu: giao toàn bộ tác vụ xử lý ảnh nặng cho Raspberry Pi 4 và tác vụ điều khiển thời gian thực (PWM motor/servo) cho Arduino Nano thông qua giao tiếp SPI tốc độ cao, giúp giải phóng tài nguyên và tăng độ ổn định của hệ thống nhúng.
  • Cung cấp một phương án chế tạo mô hình thử nghiệm xe tự hành chi phí thấp, mã nguồn mở, dễ dàng tiếp cận và mở rộng cho sinh viên, học viên trong các hoạt động học tập và nghiên cứu về xe tự lái.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Hệ thống nhận diện làn đường dựa trên kỹ thuật lọc ngưỡng và dò cạnh truyền thống (Canny) nên dễ bị ảnh hưởng bởi điều kiện môi trường ánh sáng thay đổi đột ngột hoặc xuất hiện bóng đổ phức tạp trên mặt đường.
  • Xe chỉ tập trung vào chức năng bám làn đường cơ bản; chưa tích hợp các thuật toán nhận diện biển báo giao thông, đèn tín hiệu hoặc phát hiện vật cản/người đi bộ trên đường.
  • Mô hình chưa tích hợp các cảm biến chuyên sâu như LiDAR, Radar hay camera chiều sâu (Depth Camera) để xây dựng bản đồ không gian và định vị vị trí xe chính xác trong không gian 3D.

Hướng phát triển

  • Ứng dụng các mô hình học sâu (Deep Learning) và mạng nơ-ron tích chập (CNN) để nâng cao độ chính xác nhận diện làn đường trong điều kiện môi trường thực tế nhiều nhiễu.
  • Tích hợp thêm cảm biến siêu âm, cảm biến khoảng cách LiDAR và thuật toán phân loại đối tượng để phát hiện chướng ngại vật và đọc biển báo giao thông.
  • Tối ưu hóa thuật toán và nâng cấp phần cứng xử lý AI chuyên dụng nhằm tăng tốc độ khung hình (FPS) và xử lý tình huống giao thông ở dải tốc độ cao hơn.

Giá trị tham khảo

Báo cáo đồ án tốt nghiệp cung cấp tài liệu tham khảo có giá trị kỹ thuật thực tiễn cho sinh viên, học viên và nhóm nghiên cứu thuộc các chuyên ngành Công nghệ Kỹ thuật Ô tô, Kỹ thuật Cơ điện tử, Kỹ thuật Điều khiển & Tự động hóa, và Công nghệ Thông tin (Khoa học Máy tính / Hệ thống Nhúng).

Cụ thể, các nội dung có tính ứng dụng cao gồm:

  • Toàn bộ chuỗi lệnh và giải thuật xử lý ảnh nhận diện làn đường bằng Python kết hợp OpenCV (Chương 4).
  • Sơ đồ nguyên lý ghép nối phần cứng và giao thức truyền thông SPI giữa máy tính nhúng Raspberry Pi và vi điều khiển Arduino (Chương 2, Chương 3).
  • Phương pháp luận và bảng số liệu thực nghiệm điều chỉnh bộ thông số PID trên mô hình cơ cấu lái thực tế (Chương 5).

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

1. Đề tài sử dụng kiến trúc phần cứng xử lý gồm những thiết bị chính nào?

Hệ thống sử dụng cấu trúc điều khiển phân tầng: máy tính nhúng Raspberry Pi 4 Model B (Broadcom BCM2711, 4 lõi 64-bit 1.5 GHz) đóng vai trò Master phụ trách thu nhận hình ảnh từ camera và thực thi thuật toán xử lý ảnh, kết nối qua giao tiếp SPI với bo mạch vi điều khiển Arduino Nano (ATmega328P) đóng vai trò Slave phụ trách xuất xung PWM điều khiển góc quay Servo và động cơ DC 775.

2. Chuỗi thuật toán xử lý ảnh nhận diện làn đường trên Python/OpenCV gồm những bước nào?

Quy trình xử lý ảnh gồm 5 bước tuần tự:

  1. Chuyển đổi góc nhìn qua biến đổi phối cảnh (Perspective Transformation).
  2. Chuyển đổi khung hình sang ảnh mức xám (Gray Scale).
  3. Khử nhiễu ảnh bằng bộ lọc làm mờ Gaussian Blur.
  4. Trích xuất đường biên mép làn đường bằng thuật toán Canny Edge Detection.
  5. Quét tìm 2 điểm biên làn đường và tính toán độ lệch tâm (CTE) so với trục giữa xe.

3. Bộ điều khiển PID đóng vai trò gì trong mô hình xe tự hành này?

Bộ điều khiển PID nhận tín hiệu đầu vào là độ lệch tâm giữa vị trí thực tế của xe và tâm làn đường do camera đo đạc. Thông qua 3 khâu tỉ lệ ($P$), tích phân ($I$) và vi phân ($D$), thuật toán tính toán chính xác góc quay cần thiết cho động cơ Servo nhằm bẻ lái đưa xe về đúng tâm làn, triệt tiêu hiện tượng dao động lắc lư đầu xe và tránh giật cục khi vào khúc cua.

4. Giao thức truyền thông giữa Raspberry Pi và Arduino Nano được thiết lập ra sao?

Hai thiết bị giao tiếp thông qua chuẩn truyền thông nối tiếp đồng bộ SPI (Serial Peripheral Interface) chế độ song công toàn phần (Full-duplex) với 4 chân tín hiệu: MOSI (chân 19 RPi kết nối D11 Arduino), MISO (chân 21 RPi kết nối D12 Arduino), SCK (chân 23 RPi kết nối D13 Arduino) và SS/CS (chân 24 RPi kết nối D10 Arduino).

5. Kết quả thử nghiệm thực tế của mô hình trên các dạng đường như thế nào?

Mô hình đã được thử nghiệm thành công trên sa hình thực nghiệm: trên đường thẳng, xe duy trì hướng đi ổn định không bị lắc ngang; trên các đoạn đường cong cua trái và cua phải, thuật toán nhận diện làn đường hoạt động liên tục, bộ điều khiển PID điều chỉnh góc đánh lái kịp thời giúp xe di chuyển êm ái bám sát làn đường mà không bị trượt văng ra ngoài.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu, thiết kế mô hình xe tự hành" của sinh viên Nguyễn Hồng Phúc và Dương Quốc Việt (Khoa Cơ khí Động lực, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) đã hoàn thành trọn vẹn các mục tiêu thiết kế và chế tạo một mô hình xe tự hành cấp độ nhỏ gọn, chi phí tối ưu. Đề tài đã xây dựng thành công giải pháp kết hợp giữa máy tính nhúng Raspberry Pi 4 xử lý ảnh thị giác máy tính OpenCV và vi điều khiển Arduino Nano điều khiển chấp hành qua giao tiếp SPI đồng bộ. Kết quả thử nghiệm thực tế chứng minh mô hình có khả năng nhận diện vạch làn đường chính xác và tự động bám làn ổn định thông qua bộ điều khiển PID. Công trình là tài liệu tham khảo có giá trị kỹ thuật cao cho sinh viên ngành kỹ thuật trong việc nghiên cứu và phát triển các hệ thống xe tự hành thông minh.