Giới thiệu dự án
Theo thống kê từ Tổ chức Y tế Thế giới (WHO) và Cục An toàn Giao thông Đường cao tốc Quốc gia Mỹ (NHTSA), hơn 94% các vụ tai nạn giao thông đường bộ bắt nguồn từ lỗi chủ quan của người lái xe như thiếu tập trung, phản xạ chậm hoặc xử lý sai tình huống. Sự bùng nổ của các hệ thống hỗ trợ lái xe nâng cao (ADAS - Advanced Driver Assistance Systems) và phương tiện tự hành (Autonomous Vehicles - AV) được kỳ vọng sẽ giải quyết triệt để vấn đề này, đồng thời tối ưu hóa 30% lưu lượng giao thông đô thị. Tuy nhiên, việc nghiên cứu và thử nghiệm thuật toán điều khiển xe tự lái trên xe thương mại thực tế đòi hỏi chi phí đầu tư khổng lồ, đi kèm rủi ro an toàn kỹ thuật nghiêm trọng.
Đề tài "Thiết kế chế tạo mô hình xe tự lái" (Thực hiện bởi sinh viên Trịnh An Khương, Đỗ Ngọc Hà; Giảng viên hướng dẫn: ThS. Nguyễn Trung Hiếu - Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP.HCM) được xây dựng nhằm giải quyết bài toán cấp thiết: kiến tạo một nền tảng phần cứng mô hình tỷ lệ thu nhỏ và phát triển hệ sinh thái thuật toán nhúng hoàn chỉnh, mô phỏng chính xác các tính năng tự hành cốt lõi trong điều kiện giao thông thực tế.
+-----------------------------------+
| Master Controller: ATmega2560 |
+-----------------+-----------------+
|
+-------------------+----------+----------+-------------------+
| | | |
+----+----+ +----+----+ +----+----+ +----+----+
| SENSORS | | DRIVERS | | NETWORK | | POWER |
| TSL1401 | | L298N | | ESP8266 | | LM2596 |
| HC-SR04 | | MG996R | | WebApp | | AMS1117 |
| Sharp IR| | Encoder | | UART | | 7.4V LPO|
+---------+ +---------+ +---------+ +---------+
Mục tiêu dự án
- Thiết kế cơ khí và phần cứng nhúng: Chế tạo hoàn chỉnh khung gầm xe mô hình tỷ lệ 1:10 với cơ cấu đánh lái Ackermann, hệ thống truyền động DC có phản hồi tốc độ qua Encoder quang học và mạch điều khiển tích hợp.
- Xây dựng hệ thống sa bàn chuẩn hóa: Thiết kế mô hình đường đua khép kín tích hợp dốc nghiêng, vạch kẻ làn đường phản quang, biển báo giao thông, bãi đỗ xe phân ô và cụm đèn tín hiệu giao thông điều khiển tự động.
- Phát triển thuật toán tự hành thời gian thực:
- Hệ thống hỗ trợ giữ làn đường (Lane Keeping Assist System - LKAS) sử dụng cảm biến quang học tuyến tính xử lý điểm ảnh.
- Hệ thống kiểm soát hành trình thích ứng (Adaptive Cruise Control System - ACCS) duy trì khoảng cách an toàn.
- Hệ thống chuyển làn tự động vượt chướng ngại vật (Automatic Lane Changing).
- Hệ thống tự động tìm vị trí và lùi chuồng đỗ xe (Autonomous Parking System - IPAS).
- Tích hợp giao thức giám sát IoT: Thiết lập Webserver không dây cho phép theo dõi trạng thái vận hành (tốc độ, dung lượng pin, dữ liệu cảm biến) và can thiệp điều khiển khẩn cấp theo thời gian thực.
Phương pháp tiếp cận và kết quả kỳ vọng
Giải pháp áp dụng kiến trúc phân tầng điều khiển nhúng trên vi điều khiển 8-bit tốc độ cao (ATmega2560 @ 16 MHz), kết hợp mạch xử lý quang học tuyến tính phân giải cao để nhận dạng biên độ sáng thay vì sử dụng các module camera streaming đắt tiền và độ trễ cao. Phương pháp này tối ưu hóa tài nguyên tính toán cục bộ, đạt chu kỳ lấy mẫu dưới 10ms, cho phép xe vận hành ổn định ở dải vận tốc 0.5 - 1.5 m/s với sai số bám làn dưới $\pm 1.2\text{ cm}$.
Phạm vi và giới hạn nghiên cứu
- Phạm vi: Mô hình xe tự hành trong môi trường phòng thí nghiệm có kiểm soát ánh sáng và sa bàn quy chuẩn.
- Giới hạn: Cảm biến quang học tuyến tính nhạy cảm với ánh sáng môi trường biến thiên mạnh (chưa tích hợp bộ lọc HDR); mô hình chưa áp dụng hệ điều hành robot (ROS) hay mạng nơ-ron tích chập (CNN) do giới hạn năng lực phần cứng của vi điều khiển 8-bit.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí phân tích |
Xe tự lái đồ chơi thông thường (Black-line Tracking) |
Hệ thống ROS + Single Board Computer (Raspberry Pi/Jetson) |
Giải pháp Đề tài (Arduino Mega + Optical Sensor + ESP8266) |
| Cảm biến dẫn đường |
Mảng LED hồng ngoại rời rạc (4-8 mắt) |
Camera 2D (RGB) / 2D-3D LiDAR |
Camera tuyến tính TSL1401CL (128 pixels analog) |
| Độ mượt điều khiển |
Bật/Tắt Relay hoặc PWM cố định (Bang-bang) |
Điều khiển tối ưu phi tuyến / MPC / Pure Pursuit |
Thuật toán PI (Proportional-Integral) băm xung PWM |
| Thời gian đáp ứng |
$50 - 100\text{ ms}$ (Độ trễ cao) |
$80 - 200\text{ ms}$ (Tùy thuộc tải CPU/GPU) |
$\le 10\text{ ms}$ (Xử lý bare-metal thời gian thực) |
| Chi phí chế tạo |
Rất thấp (< $30 USD) |
Rất cao (> $350 - 1000 USD) |
Hợp lý (~ $75 - 90 USD) |
| Khả năng mở rộng IoT |
Không hỗ trợ |
Hỗ trợ toàn diện qua mạng IP |
Tích hợp ESP8266 REST API / WebSocket nội bộ |
Phân loại yêu cầu hệ thống theo mô hình MoSCoW
- Must have (Bắt buộc): Giữ làn đường chính xác ở góc cua bán kính $R = 40\text{ cm}$; Dừng khẩn cấp khi phát hiện vật cản phía trước $< 20\text{ cm}$; Tự động đỗ xe song song khi phát hiện khoảng trống $\ge 1.5$ lần chiều dài thân xe.
- Should have (Nên có): Thích ứng tốc độ ACC theo vật cản di động; Truyền dữ liệu telemetry lên Webserver qua Wi-Fi 802.11 b/g/n; Nhận diện trạng thái đèn tín hiệu tại giao lộ.
- Could have (Có thể có): Chuyển làn vượt chướng ngại vật chủ động và tự trở lại làn ban đầu; Báo cáo điện áp pin trực quan qua giao diện web.
- Won't have (Chưa thực hiện): Nhận diện biển báo giao thông bằng AI chuyên sâu; Định vị bản đồ vệ tinh độ chính xác cao RTK-GNSS (do môi trường sa bàn trong nhà).
Thiết kế hệ thống
Kiến trúc phần cứng và phần mềm của mô hình xe tự hành Version 2 được module hóa thành các khối chức năng độc lập nhưng đồng bộ cao:
[ Mảng Cảm Biến ] [ Khối Xử Lý Trung Tâm ] [ Cơ Cấu Chấp Hành ]
+--------------------+ +-----------------------+ +-------------------+
| TSL1401CL (128-px) |---ADC----->| |---PWM---->| Servo MG996R (Lái)|
| HC-SR04 (Siêu âm) |---Echo/Trig| Arduino Mega 2560 R3 |---PWM/DIR>| Driver L298N (DC) |
| Sharp GP2Y0A21YK |---ADC----->| (ATmega2560 @ 16 MHz) |---GPIO--->| Cụm Đèn Báo / Còi |
| Encoder Quang học |---Ext Int->| | +-------------------+
+--------------------+ +-----------+-----------+
| UART (115200 bps)
v
+-----------------------+
| Module Wi-Fi ESP8266 |<=== Wi-Fi ===> [ Giao Diện Web UI ]
| Webserver & API Hub | (Giám sát & Lệnh)
+-----------------------+
Danh mục công nghệ và linh kiện phần cứng
- Khối điều khiển trung tâm:
- Bo mạch xử lý: Arduino Mega 2560 R3 (Microchip ATmega2560, Flash: 256KB, SRAM: 8KB, 54 chân I/O số, 16 kênh ADC 10-bit, 4 cổng phần cứng UART).
- Module truyền thông không dây: ESP8266-01 (ESP-01) nạp firmware AT v1.7.x, giao tiếp UART tốc độ 115200 baud, cấu hình ở chế độ Access Point / Station.
- Khối cảm biến thu nhận tín hiệu:
- Cảm biến bám làn: Linear Optical Sensor Array TSL1401CL gồm 128 photodiodes nối tiếp, điện áp $3.3\text{V} - 5\text{V}$, xuất tín hiệu analog từng pixel thông qua xung kích
SI (Serial Input) và xung nhịp CLK.
- Cảm biến đo cự ly: Cảm biến siêu âm HC-SR04 (Tần số 40kHz, góc quét $15^\circ$, dải đo $2\text{ cm} - 400\text{ cm}$, độ chính xác $\pm 3\text{ mm}$) và Cảm biến hồng ngoại Sharp GP2Y0A21YK0F (Dải đo $10\text{ cm} - 80\text{ cm}$, ngõ ra điện áp phi tuyến từ $0.4\text{V} - 2.8\text{V}$).
- Đo phản hồi tốc độ: Đĩa mã hóa Optical Encoder 20 khe gắn đồng trục bánh sau, kích hoạt ngắt ngoài (External Interrupt) đếm xung.
- Khối chấp hành và điều khiển công suất:
- Mạch cầu H: L298N Dual Full-Bridge Driver, dòng tải liên tục 2A/kênh, điều khiển chiều quay và băm xung PWM tốc độ động cơ DC.
- Cơ cấu lái: Servo TowerPro MG996R (Bánh răng kim loại, lực kéo $11\text{ kg}\cdot\text{cm}$ tại 6V, góc quay $0^\circ - 180^\circ$, điều khiển bằng độ rộng xung $1\text{ ms} - 2\text{ ms}$).
- Khối quản lý nguồn năng lượng:
- Nguồn chính: Bộ pin Li-Po 2S 7.4V 2200mAh 25C.
- Mạch hạ áp xung: LM2596S Step-Down Converter (Hiệu suất 92%, ngõ ra ổn định 5V/3A cho Arduino và Servo) kết hợp AMS1117-3.3V cấp nguồn riêng cho module ESP8266 và cảm biến quang học.
Thiết kế giao thức dữ liệu UART / REST API
Dữ liệu truyền thông giữa Arduino Mega và ESP8266 sử dụng khung truyền định dạng chuỗi phân cách bởi ký tự điều khiển:
#HEADER:SPEED,VOLT,DIST_F,DIST_R,LANE_ERR,STATE*CHECKSUM\n
- Giao diện Webserver cung cấp endpoint
/telemetry trả lời JSON chứa thông số kỹ thuật và endpoint /control?cmd={START|STOP|PARK|RESET} nhận lệnh điều khiển từ người dùng.
Phương pháp luận (Methodology)
Dự án áp dụng quy trình phát triển kết hợp V-Model cho việc đóng gói phần cứng và Agile Sprints cho việc phát triển thuật toán:
Yêu cầu Hệ thống <-----------------------------> Kiểm thử Tích hợp Toàn diện
\ /
Thiết kế Module Phần cứng <-------------> Kiểm thử Module Mạch & Nguồn
\ /
Lập trình Thuật toán <-----------> Kiểm thử Đơn vị & Tinh chỉnh Tham số
\ /
+----> Hiện thực hóa (Coding) -+
Tiến độ thực hiện (16 tuần)
- Tuần 1 - 4: Nghiên cứu cơ sở lý thuyết, khảo sát các giải pháp xe tự hành (Tesla Autopilot, Google Waymo, Renesas MCU Car Rally), phân tích yêu cầu kỹ thuật.
- Tuần 5 - 8: Thiết kế sa bàn, chế tạo phần cứng xe Version 1 (dò line bằng LED hồng ngoại), đánh giá hạn chế về độ phân giải và quán tính đánh lái.
- Tuần 9 - 12: Nâng cấp Version 2: tích hợp Linear Camera TSL1401CL, thiết kế bo mạch Shield mở rộng cho Arduino Mega, phát triển thuật toán bám làn PI và tự động đỗ xe.
- Tuần 13 - 15: Tích hợp giao thức IoT Webserver trên ESP8266, thử nghiệm toàn diện các kịch bản: bám làn cua gắt, dừng đèn đỏ, tránh vật cản, lùi chuồng.
- Tuần 16: Đóng gói sản phẩm, đánh giá sai số, hoàn thiện báo cáo tốt nghiệp.
Quản trị rủi ro kỹ thuật
- Nhiễu điện áp do motor DC: Động cơ DC khi khởi động hoặc đảo chiều sinh ra xung ngược (Back-EMF). Giải pháp: Tách riêng đường mass (GND) tín hiệu và GND công suất, sử dụng diode bảo vệ Schottky và tụ lọc gốm 100nF mắc song song tại hai cực động cơ.
- Độ trễ xử lý tín hiệu: Việc đọc tuần tự 128 pixel analog qua
analogRead() chuẩn của Arduino mất $\sim 13\text{ ms}$. Giải pháp: Can thiệp trực tiếp thanh ghi ADC Prescaler của vi điều khiển ATmega2560, tăng tần số xung nhịp ADC lên 500kHz, rút ngắn thời gian đọc toàn bộ mảng pixel xuống còn dưới $2.5\text{ ms}$.
Implementation và kết quả
Quá trình phát triển và thuật toán cốt lõi
1. Thuật toán xử lý ảnh từ Camera tuyến tính TSL1401CL
Module TSL1401CL thu nhận 128 điểm ảnh cường độ sáng. Vạch kẻ đường màu trắng phản xạ ánh sáng mạnh nhất, tạo ra các đỉnh (peaks) điện áp trên đồ thị tín hiệu.
// Trích xuất dữ liệu mảng 128 pixel từ TSL1401CL
#define CLK_PIN 4
#define SI_PIN 5
#define AO_PIN A0
uint8_t PixelData[128];
void Read_TSL1401CL() {
digitalWrite(SI_PIN, HIGH);
digitalWrite(CLK_PIN, HIGH);
digitalWrite(SI_PIN, LOW);
digitalWrite(CLK_PIN, LOW);
for (uint8_t i = 0; i < 128; i++) {
digitalWrite(CLK_PIN, HIGH);
// Đọc giá trị tương tự và nén về 8-bit (0-255)
PixelData[i] = analogRead(AO_PIN) >> 2;
digitalWrite(CLK_PIN, LOW);
}
}
Sau khi lọc nhiễu qua bộ lọc trung bình động 3 điểm, thuật toán quét biên tìm 2 vị trí có đạo hàm bậc nhất vượt ngưỡng $\Delta V_{th}$:
$$\text{Pixel}{\text{Center}} = \frac{\text{Pixel}{\text{LeftEdge}} + \text{Pixel}{\text{RightEdge}}}{2}$$
Sai số điều khiển bám tâm:
$$e(t) = \text{Pixel}{\text{Setpoint}} - \text{Pixel}{\text{Center}} \quad (\text{với } \text{Pixel}{\text{Setpoint}} = 64)$$
// Bộ điều khiển góc lái PI (Proportional-Integral)
float Kp = 1.35;
float Ki = 0.04;
float integral_error = 0;
const int SERVO_CENTER = 90; // Góc thẳng lái
int Calculate_Steering(int error) {
integral_error += error;
// Chống bão hòa tích phân (Anti-windup)
integral_error = constrain(integral_error, -150, 150);
float steering_adj = (Kp * error) + (Ki * integral_error);
int target_angle = SERVO_CENTER + (int)steering_adj;
// Giới hạn góc bẻ lái cơ khí (-35 độ đến +35 độ)
return constrain(target_angle, 55, 125);
}
THUẬT TOÁN ĐIỀU KHIỂN BÁM LÀN (LKAS)
+------------------------------------+
| Đọc 128 pixel từ TSL1401CL |
+-----------------+------------------+
|
v
+------------------------------------+
| Lọc nhiễu & Tìm 2 đỉnh vạch trắng |
+-----------------+------------------+
|
v
+------------------------------------+
| Tính tâm làn: Pixel_Center |
| Sai số: e(t) = 64 - Pixel_Center |
+-----------------+------------------+
|
v
+------------------------------------+
| Bộ điều khiển PI: |
| Angle = 90 + Kp*e(t) + Ki*int(e) |
+-----------------+------------------+
|
v
+------------------------------------+
| Xuất PWM điều khiển Servo MG996R |
+------------------------------------+
2. Thuật toán kiểm soát hành trình thích ứng (ACC)
Hệ thống tính toán tốc độ cài đặt dựa trên khoảng cách tức thời $D_{\text{front}}$ đo được từ cụm cảm biến HC-SR04:
void Execute_ACC(float distance_cm) {
const float DIST_SAFE = 45.0; // Khoảng cách an toàn tối thiểu (cm)
const float DIST_STOP = 15.0; // Khoảng cách dừng nguy cấp (cm)
const int BASE_PWM = 160; // Tốc độ định mức (~ 0.8 m/s)
if (distance_cm <= DIST_STOP) {
// Phanh khẩn cấp: Ngắt cầu H và kích hoạt còi báo
analogWrite(ENA_MOTOR, 0);
digitalWrite(BRAKE_LIGHT, HIGH);
} else if (distance_cm < DIST_SAFE) {
// Giảm tốc độ tuyến tính theo khoảng cách
int dynamic_pwm = map(distance_cm, DIST_STOP, DIST_SAFE, 60, BASE_PWM);
analogWrite(ENA_MOTOR, dynamic_pwm);
digitalWrite(BRAKE_LIGHT, LOW);
} else {
// Duy trì vận tốc cài đặt
analogWrite(ENA_MOTOR, BASE_PWM);
digitalWrite(BRAKE_LIGHT, LOW);
}
}
3. Thuật toán Tự động đỗ xe (Autonomous Parking)
Quá trình đỗ xe tuân thủ máy trạng thái hữu hạn (FSM - Finite State Machine):
- State 1 (Search): Xe di chuyển song song với bãi đỗ với tốc độ thấp ($0.3\text{ m/s}$), cảm biến Sharp GP2Y0A21YK đo khoảng cách vuông góc với mép đường.
- State 2 (Slot Validation): Khi khoảng cách hông tăng đột biến ($> 25\text{ cm}$), bộ đếm Encoder bắt đầu tích lũy quãng đường $S$. Nếu $S \ge 1.5 \times L_{\text{vehicle}}$ ($45\text{ cm}$) trước khi gặp vật cản tiếp theo $\rightarrow$ Xác nhận ô đỗ hợp lệ.
- State 3 (Trajectory Maneuver): Xe tiến vượt điểm mép trên $10\text{ cm}$, dừng lại, bẻ hết lái sang phải ($\text{Angle} = 125^\circ$), lùi xe cho đến khi trục xe tạo góc $45^\circ$ so với lề đường. Tiếp tục bẻ ngược hết lái sang trái ($\text{Angle} = 55^\circ$), lùi vào tâm chuồng, cảm biến siêu âm đuôi xe giám sát khoảng cách dừng an toàn $\le 5\text{ cm}$.
Thử nghiệm và đánh giá kết quả
Hệ thống đã trải qua hơn 150 lượt chạy thử nghiệm thực địa trên sa bàn với các kịch bản kiểm thử nghiêm ngặt:
Bảng kết quả đo kiểm hiệu năng thực tế
| Kịch bản kiểm thử |
Số lần thử |
Tỷ lệ thành công |
Thời gian phản hồi trung bình |
Sai số lớn nhất ghi nhận |
| Bám làn đường thẳng ($v = 1.0\text{ m/s}$) |
40 |
100% |
$8.2\text{ ms}$ |
Độ lệch tâm $\pm 0.4\text{ cm}$ |
| Bám cua gấp ($R = 40\text{ cm}, v = 0.6\text{ m/s}$) |
40 |
95.0% |
$8.5\text{ ms}$ |
Độ lệch tâm $\pm 1.2\text{ cm}$ |
| Phanh khẩn cấp / ACC (Vật cản tĩnh/động) |
30 |
96.7% |
$14.6\text{ ms}$ |
Sai số dừng $\pm 1.5\text{ cm}$ |
| Tự động lùi chuồng song song |
25 |
92.0% |
N/A (Hoàn tất trong 14s) |
Sai lệch góc đỗ $\le 3.5^\circ$ |
| Dừng đèn đỏ theo cảm biến quang sa bàn |
15 |
100% |
$12.0\text{ ms}$ |
Vượt vạch dừng $0\text{ cm}$ |
BIỂU ĐỒ SO SÁNH HIỆU QUẢ GIỮ LÀN (LKAS)
Sai số lệch làn (cm)
+3 | Version 1 (Hồng ngoại rời rạc)
| /\ /\ /\
+1 |--------/--\----/--\----/--\------- Vạch giới hạn tối đa
0 |=======/====\==/====\==/====\====== Tâm làn chuẩn
-1 |------/------\/------\/------\----- Vạch giới hạn tối thiểu
| Version 2 (Camera TSL1401CL + PI)
-0.4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Giao động ổn định quanh tâm)
-3 +--------------------------------------------------> Thời gian (s)
Phân tích lỗi và biện pháp khắc phục trong quá trình thử nghiệm
- Hiện tượng xe bị "lắc võng" (Hunting Oscillation) khi bám đường thẳng: Ban đầu sử dụng thuật toán P thuần túy với $K_p = 2.4$, tín hiệu điều khiển servo phản ứng quá nhạy gây quá điều chỉnh (Overshoot). Sau khi bổ sung khâu tích phân $I$ ($K_i = 0.04$) và giảm $K_p$ xuống $1.35$, hệ thống đạt trạng thái suy giảm dao động tới hạn, xe vận hành êm dịu trên toàn tuyến.
- Nhiễu quang sai mép camera: 4 pixel ngoài cùng ở mỗi đầu mảng TSL1401CL bị suy hao điện áp do hiệu ứng góc tối quang học của thấu kính. Đã cấu hình phần mềm bỏ qua dải pixel $[0-3]$ và $[124-127]$ trong thuật toán quét biên.
Đổi mới và đóng góp
-
Ứng dụng cảm biến hình ảnh tuyến tính thay thế hệ thống thị giác máy tính nặng nề:
Đề tài chứng minh việc sử dụng cảm biến quang học 128 pixel TSL1401CL cho phép thực hiện thuật toán xử lý ảnh thời gian thực ở cấp độ phần cứng nhúng bare-metal với tần số lấy mẫu lên đến $120\text{ Hz}$. Phương pháp này giúp loại bỏ hoàn toàn yêu cầu về vi xử lý đồ họa (GPU) hoặc hệ điều hành nhúng phức tạp, giảm tiêu thụ năng lượng của hệ thống điều khiển xuống dưới $1.5\text{W}$.
-
Cấu trúc điều khiển phân tầng và kết hợp đa cảm biến (Sensor Fusion):
Kết hợp hài hòa giữa cảm biến quang học (độ phân giải điểm cao, bám biên nhạy), cảm biến siêu âm (đo cự ly tầm trung độc lập với màu sắc vật thể) và cảm biến hồng ngoại Sharp (đáp ứng nhanh ở cự ly gần). Nhờ đó, giải quyết triệt để điểm mù đo đạc trong các tình huống chuyển làn và lùi xe.
-
Cải tiến hiệu suất định lượng so với phiên bản Version 1:
- Tốc độ di chuyển tối đa giữ làn ổn định tăng 150% (từ $0.4\text{ m/s}$ lên $1.0\text{ m/s}$).
- Độ chính xác vị trí tâm làn cải thiện 71.4% (sai số biên giảm từ $\pm 4.2\text{ cm}$ xuống $\pm 1.2\text{ cm}$).
- Khả năng đỗ xe thành công tăng từ 60% lên 92% nhờ tích hợp thuật toán tính toán quỹ đạo dựa trên Encoder.
HIỆU SUẤT NÂNG CẤP TỪ VERSION 1 LÊN VERSION 2
+----------------------------+---------------+---------------+-----------+
| Chỉ số kỹ thuật | Version 1 | Version 2 | Cải thiện |
+----------------------------+---------------+---------------+-----------+
| Vận tốc bám làn an toàn | 0.4 m/s | 1.0 m/s | + 150 % |
| Sai số định vị tâm làn | +/- 4.2 cm | +/- 1.2 cm | - 71.4 % |
| Tần số lấy mẫu dẫn đường | 20 Hz | 120 Hz | + 500 % |
| Tỷ lệ lùi chuồng chuẩn xác | 60 % | 92 % | + 53.3 % |
| Tiêu thụ điện khối điều khiển| 4.5 W | 1.5 W | - 66.7 % |
+----------------------------+---------------+---------------+-----------+
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tiễn
- Xe tự hành chuyển hàng nội bộ trong nhà máy thông minh (AGV - Automated Guided Vehicles): Áp dụng trực tiếp thuật toán bám line quang học kết hợp kiểm soát khoảng cách an toàn ACC cho các robot vận chuyển linh kiện trong xưởng sản xuất, kho vận Logistics tự động.
- Nền tảng thiết bị thí nghiệm đào tạo chuyên ngành Kỹ thuật Ô tô & Tự động hóa: Mô hình là công cụ giảng dạy trực quan, giúp sinh viên làm quen với các khái niệm điều khiển hiện đại, giải thuật ADAS, giao tiếp cảm biến và an toàn chủ động trước khi tiếp cận xe thật.
LỘ TRÌNH TRIỂN KHAI 4 GIAI ĐOẠN
+-------------------------------------------------------+
Giai | GIAI ĐOẠN 1: MÔ HÌNH HÓA THÍ NGHIỆM |
đoạn 1 | - Đóng gói bộ KIT thí nghiệm xe tự lái cho sinh viên |
| - Kiểm chứng thuật toán điều khiển nhúng cơ bản |
+---------------------------+---------------------------+
|
v
+-------------------------------------------------------+
Giai | GIAI ĐOẠN 2: CHUYỂN ĐỔI CÔNG NGHIỆP (AGV) |
đoạn 2 | - Nâng cấp khung gầm công nghiệp, tải trọng 50-100 kg |
| - Ứng dụng trong nhà máy lắp ráp linh kiện cơ khí |
+---------------------------+---------------------------+
|
v
+-------------------------------------------------------+
Giai | GIAI ĐOẠN 3: NÂNG CẤP HỆ THỐNG ĐIỀU KHIỂN |
đoạn 3 | - Tích hợp vi điều khiển ARM Cortex-M4 / STM32F4 |
| - Giao tiếp ROS2 qua chuẩn CAN-Bus công nghiệp |
+---------------------------+---------------------------+
|
v
+-------------------------------------------------------+
Giai | GIAI ĐOẠN 4: THƯƠNG MẠI HÓA GIẢI PHÁP LOGISTICS |
đoạn 4 | - Điều hướng bằng LiDAR kết hợp SLAM & AI nhận diện |
| - Vận hành đồng bộ đội xe (Fleet Management) qua Cloud |
+-------------------------------------------------------+
Phân tích chi phí chế tạo (BOM) và hiệu quả đầu tư
| Hạng mục linh kiện |
Số lượng |
Đơn giá ước tính (VNĐ) |
Thành tiền (VNĐ) |
| Khung xe mô hình RC 1:10 + Động cơ DC + Servo MG996R |
1 bộ |
650.000 |
650.000 |
| Vi điều khiển Arduino Mega 2560 R3 |
1 chiếc |
210.000 |
210.000 |
| Cảm biến quang học tuyến tính TSL1401CL |
1 module |
280.000 |
280.000 |
| Module Wi-Fi ESP8266-01 |
1 chiếc |
45.000 |
45.000 |
| Mạch cầu H L298N + Mạch nguồn LM2596 + AMS1117 |
1 bộ |
95.000 |
95.000 |
| Cụm cảm biến khoảng cách (1x HC-SR04 + 1x Sharp IR) |
1 bộ |
180.000 |
180.000 |
| Bộ đĩa Encoder quang học + Pin Li-Po 7.4V 2200mAh |
1 bộ |
290.000 |
290.000 |
| Vật tư mạch in Shield, còi báo, LED, dây nối |
1 gói |
150.000 |
150.000 |
| Tổng chi phí phần cứng (BOM) |
|
|
1.900.000 VNĐ (~ $80 USD) |
Chi phí chế tạo hoàn chỉnh dưới 2 triệu đồng, chỉ bằng 5 - 10% so với các kit phục vụ nghiên cứu nhập khẩu (như Duckietown hoặc Donkey Car chạy SBC), mang lại hiệu quả kinh tế rất cao cho các cơ sở đào tạo đại học và cao đẳng kỹ thuật.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Nhiễu môi trường quang học: Cảm biến quang tuyến tính TSL1401CL sử dụng thấu kính thu quang học thụ động, dễ bị sai lệch tín hiệu khi cường độ ánh sáng môi trường thay đổi đột ngột (ví dụ khi có ánh đèn rọi trực tiếp hoặc bóng râm gắt).
- Năng lực tính toán vi điều khiển: Nền tảng ATmega2560 với bộ nhớ RAM 8KB không cho phép lưu trữ ma trận dữ liệu lớn hoặc thực thi các mô hình học sâu (Deep Learning) nhận diện biển báo, phân làn 3D.
- Cơ chế truyền thông không dây: ESP8266 truyền dữ liệu qua giao tiếp UART không đồng bộ có thể bị nghẽn cổ chai nếu tăng tần suất đẩy gói tin lên trên $50\text{ Hz}$.
Hướng phát triển và nghiên cứu tiếp theo
- Nâng cấp phần cứng xử lý: Chuyển dịch vi điều khiển trung tâm sang dòng vi điều khiển 32-bit ARM Cortex-M4/M7 (như STM32F407 hoặc ESP32 Dual-Core @ 240MHz) có phần cứng tính toán dấu phẩy động (FPU), tăng tốc độ thực thi giải thuật PI/LQG và xử lý tín hiệu số.
- Ứng dụng công nghệ thị giác máy tính và AI nhúng: Tích hợp camera số OpenMV hoặc module AI TinyML (như Raspberry Pi RP2040 kết hợp bộ tăng tốc Edge TPU) để nhận diện các biển báo giao thông chuẩn quốc tế (dừng, rẽ, giới hạn tốc độ).
- Chuẩn hóa mạng truyền thông nội bộ: Ứng dụng mạng truyền thông CAN-Bus (Controller Area Network) chuẩn công nghiệp ô tô để liên kết các cụm cảm biến và cơ cấu chấp hành thay cho giao thức UART truyền thống.
Đối tượng hưởng lợi
+--------------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+-----------------------+--------------------------------+-----------------------+
| Sinh viên Kỹ thuật | Kỹ sư & Lập trình viên nhúng | Doanh nghiệp & Xưởng|
| - Tài liệu mẫu ADAS | - Source code Bare-metal tối | - Nền tảng AGV giá |
| - Trực quan hóa PI | ưu chu kỳ quét ADC | rẻ (< $90 USD) |
| - Thực hành sa bàn | - Thiết kế mạch chống nhiễu | - Dễ dàng tùy biến |
+-----------------------+--------------------------------+-----------------------+
- Sinh viên chuyên ngành Kỹ thuật Ô tô / Cơ điện tử / Tự động hóa:
Có được tài liệu tham khảo chi tiết từ khâu thiết kế mạch in, phối ghép cảm biến, điều khiển động cơ đến lập trình thuật toán điều khiển vòng kín; rút ngắn 40% thời gian nghiên cứu các đồ án tương tự.
- Kỹ sư phát triển hệ thống nhúng (Embedded Engineers):
Tiếp cận mã nguồn mẫu tối ưu hóa trực tiếp thanh ghi ADC và các giải thuật bám đường, điều khiển servo không sử dụng thư viện cồng kềnh, tối ưu chu kỳ lấy mẫu dưới $10\text{ ms}$.
- Doanh nghiệp vừa và nhỏ (SMEs) trong lĩnh vực sản xuất:
Có thể chuyển giao và nâng cấp thiết kế này thành các xe tự hành AGV kéo hàng trong nhà kho với chi phí đầu tư ban đầu giảm hơn 70% so với các giải pháp nhập ngoại.
- Các nhóm nghiên cứu học thuật:
Cung cấp dữ liệu thực nghiệm về độ chính xác của cảm biến quang tuyến tính so với cảm biến hồng ngoại truyền thống, làm tiền đề xuất bản các bài báo khoa học về điều khiển xe thông minh.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai và chạy thử nghiệm mô hình này là gì?
Để triển khai mô hình, bạn cần chuẩn bị:
- Phần cứng: 01 khung xe mô hình dẫn động cầu sau có vi sai và cơ cấu lái Ackermann, 01 Arduino Mega 2560 R3, 01 mảng cảm biến TSL1401CL kèm ống kính tiêu cự 8mm, 01 cảm biến siêu âm HC-SR04, 01 cảm biến Sharp GP2Y0A21YK, 01 mạch L298N, 01 Servo MG996R, nguồn pin Li-Po 7.4V/2200mAh tối thiểu 20C.
- Phần mềm: Arduino IDE phiên bản 1.8.x trở lên, trình biên dịch GCC-AVR hỗ trợ can thiệp thanh ghi, thư viện điều khiển Servo tiêu chuẩn.
- Sa bàn thử nghiệm: Nền sơn tối màu (đen hoặc xám đậm), vạch kẻ đường màu trắng bề rộng $2.0 - 2.5\text{ cm}$, bán kính các khúc cua tối thiểu $R \ge 35\text{ cm}$.
2. Hệ thống xử lý thế nào khi gặp điều kiện ánh sáng môi trường thay đổi đột ngột?
Trên phiên bản hiện tại, ngưỡng phân tách điểm ảnh ($\Delta V_{th}$) được cố định thông qua biến trở hoặc tham số lập trình. Khi ánh sáng thay đổi lớn, cần thực hiện hiệu chuẩn động (Dynamic Thresholding): thuật toán tính toán giá trị trung bình cường độ sáng của 128 pixel:
$$V_{avg} = \frac{1}{128}\sum_{i=0}^{127} Pixel[i]$$
Sau đó tự động gán ngưỡng nhận diện đỉnh: $V_{th} = V_{avg} + \Delta V_{offset}$. Trong tương lai, việc lắp thêm cụm đèn LED chiếu sáng chủ động xung quanh cảm biến sẽ giúp triệt tiêu hoàn toàn tác động của ánh sáng môi trường.
3. Tại sao không sử dụng Camera thông thường (như OV7670) mà lại chọn TSL1401CL?
Camera thông thường xuất hình ảnh 2D (ví dụ $640 \times 480$ pixels), tạo ra khối lượng dữ liệu lên đến hàng trăm Kilobytes mỗi khung hình, đòi hỏi vi xử lý phải có dung lượng RAM lớn (tối thiểu vài Megabytes) và băng thông xử lý cao mà vi điều khiển ATmega2560 (8KB RAM) không thể đáp ứng. Ngược lại, cảm biến tuyến tính TSL1401CL chỉ xuất 128 điểm ảnh (1 chiều), vừa đủ để định vị chính xác vị trí vạch kẻ đường, giúp vi điều khiển xử lý tức thời ở tốc độ $120\text{ Hz}$ mà không bị quá tải bộ nhớ.
4. Hệ thống Webserver trên ESP8266 giao tiếp với xe như thế nào và có độ trễ bao nhiêu?
ESP8266 đóng vai trò là một cầu nối truyền thông không dây (Transparent Wi-Fi Serial Bridge) hoặc máy chủ Web độc lập. Vi điều khiển Mega 2560 gửi chuỗi dữ liệu trạng thái qua cổng Serial phần cứng (UART1) đến ESP8266 với tốc độ 115200 bps. Người dùng truy cập vào địa chỉ IP của ESP8266 qua trình duyệt web trên điện thoại/máy tính. Độ trễ truyền nhận lệnh điều khiển qua mạng Wi-Fi cục bộ dao động trong khoảng $20 - 45\text{ ms}$, hoàn toàn đáp ứng tốt việc giám sát và can thiệp dừng xe khẩn cấp.
5. Chi phí bảo trì, độ bền linh kiện và khả năng nâng cấp như thế nào?
Nhờ sử dụng servo bánh răng kim loại (MG996R) và khung gầm composite bền bỉ, hệ thống có tuổi thọ vận hành cơ học cao. Bộ pin Li-Po 2200mAh cho phép xe hoạt động liên tục trong $45 - 60\text{ phút}$ cho mỗi lần sạc đầy. Chi phí bảo dưỡng gần như bằng không; linh kiện thay thế phổ biến trên thị trường với giá thành rẻ. Việc nâng cấp chỉ yêu cầu thay thế bo mạch vi điều khiển trung tâm mà không cần thiết kế lại cơ cấu cơ khí.
Kết luận
Đề tài "Thiết kế chế tạo mô hình xe tự lái" của nhóm sinh viên Trịnh An Khương và Đỗ Ngọc Hà đã hoàn thành xuất sắc các mục tiêu nghiên cứu và ứng dụng thực tiễn đề ra:
- Chế tạo thành công mô hình xe tự hành tỷ lệ 1:10 hoạt động ổn định với cơ cấu phần cứng đồng bộ, mạch bảo vệ và phân phối nguồn tối ưu.
- Làm chủ và hiện thực hóa thành công các thuật toán hỗ trợ lái xe cốt lõi: giữ làn đường thông minh (LKAS) bằng cảm biến quang học tuyến tính kết hợp điều khiển PI, thích ứng tốc độ theo cự ly (ACC) và đỗ xe song song hoàn toàn tự động (Auto Parking).
- Tích hợp thành công nền tảng giám sát không dây IoT qua Webserver, mở ra tiềm năng ứng dụng rộng rãi trong đào tạo kỹ thuật ô tô và nghiên cứu phát triển robot vận chuyển tự hành (AGV).
Công trình là minh chứng rõ nét cho khả năng làm chủ công nghệ điều khiển tự động và chuyển hóa kiến thức lý thuyết thành các sản phẩm kỹ thuật ứng dụng thực tế có giá trị cao.
Mã nguồn chương trình, sơ đồ nguyên lý mạch điện chi tiết và video quá trình vận hành sa bàn được lưu trữ và chia sẻ phục vụ mục đích học thuật tại bộ môn Điện Ô tô - Khoa Đào tạo Chất lượng cao, Đại học Sư phạm Kỹ thuật TP.HCM.