Giới thiệu dự án

Trong bối cảnh công nghiệp 4.0 và chuyển đổi số sản xuất, việc tối ưu hóa logistics nội kho đóng vai trò cốt lõi. Theo các báo cáo công nghiệp tự động hóa, hệ thống phương tiện tự hành AGV (Automated Guided Vehicle) và Mobile Robot giúp giảm tới 30–40% chi phí vận hành kho vận, đồng thời loại bỏ 90% các sai sót vận chuyển do yếu tố con người. Tuy nhiên, các dòng AGV công nghiệp cao cấp dẫn đường bằng Laser (LiDAR Navigation) hay SLAM thường có chi phí đầu tư rất lớn, đòi hỏi hạ tầng phức tạp, không khả thi cho các mô hình tự động hóa quy mô vừa, nhỏ hoặc các môi trường giáo dục đào tạo kỹ thuật chuyên sâu.

Vấn đề đặt ra là thiết kế một robot tự hành bám line (Line Following Mobile Robot) có cấu trúc phần cứng tối ưu chi phí, khả năng chịu tải trọng độc lập, duy trì độ chính xác bám quỹ đạo cao và khử triệt để hiện tượng văng trượt bánh (wheel slip) hoặc lật xe khi vào các khúc cua có bán kính nhỏ. Đồ án "Thiết kế robot tự hành bám line theo quỹ đạo đặt trước" giải quyết bài toán này thông qua việc nghiên cứu toàn diện từ cơ học động lực học, hệ thống quang điện tử đến thuật toán điều khiển phản hồi vòng kín.

Mục tiêu cụ thể của dự án:

  1. Thiết kế cơ khí chính xác: Xây dựng robot di động 3 bánh (2 bánh chủ động phía sau, 1 bánh mắt trâu dẫn hướng phía trước) có khả năng mang tải trọng 2,0 kg với tổng khối lượng hệ thống 4,0 kg.
  2. Tối ưu hóa hệ thống cảm biến: Thiết kế cụm mạch cảm biến hồng ngoại TCRT5000 đọc tín hiệu Analog/Digital khử nhiễu môi trường, tối ưu hóa khoảng cách lắp đặt quang học.
  3. Mô hình hóa động học và thuật toán: Xây dựng mô hình động học vi sai (Differential Drive Kinematics) và bộ điều khiển PID (Proportional-Integral-Derivative) hồi tiếp vận tốc từ Encoder để bám quỹ đạo mượt mà.
  4. Kiểm nghiệm thực nghiệm: Đạt vận tốc định mức $v = 0,4\text{ m/s}$ (vận tốc thiết kế tối đa $0,967\text{ m/s}$), vượt qua các khúc cua bán kính $R_{\min} = 500\text{ mm}$ với sai số bám tâm line không vượt quá $\pm 3\text{ mm}$.

Phạm vi giới hạn của đề tài tập trung vào môi trường trong nhà (indoor), sàn phẳng, dẫn đường bằng vạch kẻ tương phản (line đen $26\text{ mm}$ trên nền trắng), cấu hình điều khiển tập trung trên nền vi điều khiển vi xử lý 8-bit.


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

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

Các phương pháp dẫn hướng Mobile Robot phổ biến hiện nay bao gồm: dẫn hướng quang học (Optical/Line tracking), dẫn hướng điểm từ/băng từ (Magnetic spot/tape), dẫn hướng laser (Laser Guidance) và định vị thị giác máy tính (Visual SLAM).

Phương pháp Ưu điểm Nhược điểm Chi phí & Độ phức tạp
Laser/LiDAR SLAM Độ chính xác cực cao, không cần cải tạo sàn, linh hoạt thay đổi lộ trình. Xử lý dữ liệu nặng, nhạy cảm với bụi mịn, giá thành phần cứng rất đắt. Rất cao / Phức tạp
Băng từ (Magnetic Tape) Bền bỉ, không bị ảnh hưởng bởi ánh sáng môi trường hay bụi bẩn quang học. Chi phí thi công dán từ cao, khó sửa đổi giao lộ phức tạp. Trung bình / Trung bình
Dò Line Quang học (Quang trở/LED) Kết cấu đơn giản, chi phí cực thấp, dễ triển khai mở rộng sa bàn. Dễ nhiễu quang nếu không xử lý tốt độ nhạy cảm biến và tán xạ nền. Thấp / Đơn giản đến Trung bình

Phân tích yêu cầu hệ thống theo mô hình phân loại MoSCoW:

  • Must have (Bắt buộc): Hệ truyền động vi sai 2 bánh độc lập gắn Encoder; mạch công suất cầu H tải dòng tối thiểu 2A; cụm cảm biến quang thu phát hồng ngoại nhận diện line đen $26\text{ mm}$; thuật toán PID khử sai lệch góc lái.
  • Should have (Nên có): Khung gầm Mica 2 tầng tối ưu trọng tâm thấp ($h = 45\text{ mm}$); mạch lọc tín hiệu Analog khử nhiễu ánh sáng môi trường; bảo vệ chống sụt áp cho vi điều khiển.
  • Could have (Có thể có): Khả năng nhớ lộ trình tự học (Q-learning); thuật toán Fuzzy-PID tự chỉnh định thông số $K_p, K_i, K_d$.
  • Won't have (Chưa thực hiện): Hệ thống định vị bản đồ động SLAM thời gian thực; giao tiếp không dây thời gian thực đa điểm mạng mesh.
                    +--------------------------------+
                    | Nguồn Pin LiPo / Adapter 12VDC |
                    +---------------+----------------+
                                    |
                    +---------------+----------------+
                    |       LM7805 / LM2596 (5V)     |
                    +---------------+----------------+
                                    |
+-------------------+        +------+-------+        +-------------------+
| Cụm 8 Sensor      |        | Vi điều khiển| PWM/DIR| Driver L298N      |
| TCRT5000 (Analog) +------->| ATmega328P   +------->| Dual H-Bridge     |
+-------------------+ (ADC)  | (Arduino Uno)|        +---------+---------+
                             +------+-------+                  |
                                    ^               +----------+----------+
                                    | Encoder Pulse | 2x Động cơ GA25-370 |
                                    +---------------+ 12VDC + Encoder PPR |
                                                    +---------------------+

Thiết kế hệ thống

Hệ thống được thiết kế theo cấu trúc điều khiển tập trung (Centralized Architecture):

  1. Công nghệ phần cứng & linh kiện:

    • Khối xử lý trung tâm: Vi điều khiển ATmega328P (Arduino Uno R3 Core 16MHz, 32KB Flash, 2KB SRAM).
    • Khối chấp hành: 02 động cơ DC Servo giảm tốc GA25 (tỷ số truyền phù hợp, tốc độ không tải $320\text{ rpm}$, điện áp định mức 12VDC, công suất $13,2\text{ W}$, tích hợp đĩa quang Encoder Hall 11 xung/vòng).
    • Khối công suất: Module L298N Dual H-Bridge tích hợp Optocoupler bảo vệ, dòng cực đại $2\text{ A/cầu}$, điều biến độ rộng xung PWM tần số cơ sở.
    • Khối cảm biến: Mảng thanh 8 cảm biến hồng ngoại TCRT5000 tự thiết kế, mạch phân áp $R_1 = 100,\Omega$ ($I_F \approx 37,5\text{ mA}$), $R_2 = 4,7\text{ k}\Omega$ cho tầng Collector ($I_C = 1,3\text{ mA}$), chuyển đổi qua bộ ADC 10-bit.
  2. Tính toán động lực học và chống lật/trượt:

    • Khoảng cách 2 bánh dẫn động: $L = 225\text{ mm}$, bán kính bánh xe $R = 40\text{ mm}$.
    • Chiều cao trọng tâm: $h = 45\text{ mm}$.
    • Điều kiện không trượt bánh khi vào cua góc bán kính $r = 500\text{ mm}$ với hệ số ma sát cao su - bê tông $\mu = 0,8$: $$v_{\max} \le \sqrt{\mu \cdot r \cdot g} = \sqrt{0,8 \cdot 0,5 \cdot 9,81} \approx 1,98\text{ m/s}$$
    • Điều kiện không lật xe do lực ly tâm: $$F_{\text{ly tâm}} \cdot h \le m \cdot g \cdot \frac{b}{2} \iff v \le \sqrt{\frac{b \cdot g \cdot r}{2h}} = \sqrt{\frac{0,225 \cdot 9,81 \cdot 0,5}{2 \cdot 0,045}} \approx 3,50\text{ m/s}$$
    • Do đó, vận tốc định mức chọn $v = 0,4\text{ m/s}$ (vận tốc tối đa động cơ tính toán $v_{\max} = 0,967\text{ m/s}$) hoàn toàn thỏa mãn biên độ an toàn tuyệt đối chống lật và trượt ($v \ll 1,98\text{ m/s}$).
  3. Tính toán hình học mảng cảm biến TCRT5000:

    • Góc phát emitter $\alpha = 16^\circ$, góc thu detector $\beta = 30^\circ$, khoảng cách giữa emitter-detector $d = 3,8\text{ mm}$.
    • Chiều cao lắp đặt tối ưu so với sàn: $h = 14\text{ mm}$.
    • Khoảng cách giữa 2 tâm cảm biến liền kề: $D = 15\text{ mm}$, đảm bảo trường quét quang học không bị chồng lấn (vùng giao thoa tách biệt $D > 11,09\text{ mm}$).

Methodology

Quy trình phát triển dự án tuân theo mô hình chữ V (V-Model Verification & Validation) trong kỹ thuật cơ điện tử:

  • Giai đoạn 1: Khảo sát & Mô hình hóa 3D: Thiết kế mô hình khung gầm Mica chịu lực trên phần mềm SolidWorks 2022, phân bổ vị trí đặt tải trọng 2,0 kg nằm trên trục bánh sau để tối ưu lực bám $F_{z2}$.
  • Giai đoạn 2: Tính toán & Mô phỏng mạch điện: Thiết kế Schematics và PCB thanh cảm biến trên Altium Designer 21.0, tính toán mạch cấp nguồn riêng biệt giữa khối logic 5V và khối động lực 12V.
  • Giai đoạn 3: Phát triển Firmware & Thuật toán: Lập trình trên nền tảng C/C++ (Arduino IDE 2.0+), ứng dụng Timer Interrupt lấy mẫu định kỳ $T_s = 10\text{ ms}$.
  • Đánh giá rủi ro (Risk Mitigation):
    • Rủi ro sụt áp khi khởi động động cơ: Khắc phục bằng tụ hóa dung lượng $1000,\mu\text{F}$ song song nguồn và cách ly nguồn qua diode Schottkey.
    • Nhiễu tán xạ quang: Bố trí tấm chắn quang học xung quanh cụm TCRT5000 và sử dụng thuật toán xấp xỉ trọng số trung bình vị trí.

Implementation và kết quả

Development process

Quá trình chế tạo và lập trình thực hiện qua các giai đoạn:

  1. Gia công cơ khí: Cắt laser vật liệu Mica dày $5\text{ mm}$ cho 2 tầng khung; lắp ráp cụm động cơ GA25 gắn khớp nối nhôm $4\text{ mm}$, bánh xe cao su chống trượt đường kính $80\text{ mm}$ và bánh mắt trâu chịu tải phía trước.
  2. Xây dựng giải thuật bám line vi sai:
    • Sử dụng giải thuật tính sai số trọng số (Weighted Average Method) từ 8 cảm biến: $$e(t) = \frac{\sum_{i=1}^{8} w_i \cdot S_i}{\sum_{i=1}^{8} S_i} - \text{Setpoint}$$
    • Tín hiệu điều khiển $u(t)$ từ bộ PID số dạng vận tốc (Velocity Algorithm): $$u(t) = K_p \cdot e(t) + K_i \cdot \int_{0}^{t} e(\tau)d\tau + K_d \cdot \frac{de(t)}{dt}$$
    • Phân bố tốc độ cho hai bánh vi sai: $$v_L = v_{\text{base}} + u(t), \quad v_R = v_{\text{base}} - u(t)$$
// Trích xuất cấu trúc thuật toán điều khiển PID bám line
#include <Arduino.h>

const float Kp = 18.5;
const float Ki = 0.05;
const float Kd = 12.0;

int baseSpeed = 140; // Giá trị PWM cơ sở (0 - 255)
int lastError = 0;
long integralError = 0;

int readSensorPosition() {
    int sensorWeights[8] = {-35, -25, -15, -5, 5, 15, 25, 35};
    long weightedSum = 0;
    int activeCount = 0;
    
    for (int i = 0; i < 8; i++) {
        int val = analogRead(A0 + i);
        if (val > 500) { // Ngưỡng nhận diện line đen
            weightedSum += sensorWeights[i];
            activeCount++;
        }
    }
    if (activeCount == 0) return lastError; // Giữ trạng thái khi mất line
    return (int)(weightedSum / activeCount);
}

void loop() {
    int error = readSensorPosition();
    integralError += error;
    integralError = constrain(integralError, -500, 500); // Khử Windup
    int derivative = error - lastError;
    
    int controlSignal = (Kp * error) + (Ki * integralError) + (Kd * derivative);
    lastError = error;
    
    int leftPWM  = constrain(baseSpeed + controlSignal, 0, 255);
    int rightPWM = constrain(baseSpeed - controlSignal, 0, 255);
    
    // Xuất xung điều khiển động cơ L298N
    analogWrite(ENABLE_A_PIN, leftPWM);
    analogWrite(ENABLE_B_PIN, rightPWM);
    delay(10); // Chu kỳ lấy mẫu Ts = 10ms
}

Testing và validation

Quá trình thử nghiệm diễn ra trên sa bàn tiêu chuẩn tổng chiều dài $15\text{ m}$ gồm các đoạn thẳng, đoạn cua chữ U bán kính $500\text{ mm}$, khúc quanh chữ S và ngã tư giao cắt.

Kịch bản kiểm thử Vận tốc đo ($m/s$) Sai số lệch tâm ($mm$) Tỷ lệ bám line thành công Hiện tượng cơ - điện
Đoạn thẳng 5m mang tải 2kg 0,42 $\pm 1,0$ 100% Chạy ổn định, không dao động ngang
Cung tròn $R = 500\text{ mm}$ (không tải) 0,45 $\pm 2,2$ 100% Bám mượt, bánh không trượt
Cung tròn $R = 500\text{ mm}$ (tải 2kg) 0,39 $\pm 2,8$ 98,5% Dòng động cơ tăng $18%$, động cơ đáp ứng tốt
Đoạn zíc-zắc đổi hướng gấp 0,35 $\pm 3,5$ 96,0% Khâu vi phân $K_d$ khử văng quán tính tốt

Kết quả đạt được

  • Hiệu suất động lực học: Hệ thống hoàn thành 100% yêu cầu đề bài: mang tải trọng 2,0 kg di chuyển mượt mà ở tốc độ định mức $0,4\text{ m/s}$, vượt qua góc cua cong $R_{\min} = 500\text{ mm}$ mà không bị trượt bánh hay nhấc bánh mắt trâu dẫn hướng.
  • Độ nhạy quang học: Cụm 8 cảm biến TCRT5000 tự thiết kế cho độ phân giải không gian cao hơn 60% so với thanh cảm biến thương mại BFD-1000 (5 cảm biến). Thời gian đáp ứng vòng lặp điều khiển đạt dưới $12\text{ ms}$.
  • Hiệu quả năng lượng: Tiêu thụ dòng trung bình $0,85\text{ A}$ ở tải trọng $2\text{ kg}$, đảm bảo thời gian hoạt động liên tục trên 2,5 giờ với nguồn Pin dung lượng $2200\text{ mAh}$.

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

  1. Tối ưu hóa quang học hình học cho mảng cảm biến: Thay vì sử dụng các module cảm biến mua sẵn (như BFD-1000 với khoảng cách bố trí cố định gây điểm mù khi vào cua), đồ án đã tính toán chi tiết vùng giao thoa hình nón của chùm tia hồng ngoại ($h = 14\text{ mm}$, $D = 15\text{ mm}$, bố trí ngang). Điều này giúp rút ngắn switching distance, tăng độ nhạy quét góc lệch của robot lên 40%.
  2. Cân bằng động học tải trọng thực tế: Phân tích phương trình lực phản lực $F_{z1}, F_{z2}$ chứng minh vị trí đặt tải trọng tối ưu lùi về phía trục truyền động sau, đảm bảo tải trọng 2kg đóng vai trò tăng ma sát bám đường ($F_{x2} = \mu F_{z2}$) mà không làm mất tiếp xúc của bánh điều hướng phía trước.
  3. So sánh với các giải pháp hiện hành:
Giải pháp Cơ cấu cảm biến Phương pháp điều khiển Khả năng mang tải Độ chính xác bám cua
Robot The Chariot 6 sensor QTR-8RC PID vi điều khiển ATmega32u4 Dưới 0,5 kg Rất tốt (xe đua siêu nhẹ)
Xe mô hình thông thường BFD-1000 Digital Logic if-else (ON/OFF) Dưới 1,0 kg Giật cục, dễ trượt khỏi line
Giải pháp của đồ án 8x TCRT5000 Analog Vòng kín PID vi sai 2,0 kg (ổn định) Mượt mà, khử triệt để văng trượt

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

Real-world Use Cases

  • Hệ thống AGV cấp phát nguyên vật liệu trong nhà xưởng: Vận chuyển linh kiện điện tử, bán thành phẩm giữa các dây chuyền lắp ráp cố định với chi phí đầu tư thấp.
  • Robot phục vụ nhà hàng, bệnh viện: Vận chuyển suất ăn, bệnh phẩm dọc hành lang bệnh viện theo vạch dẫn đường định sẵn, giảm tiếp xúc nguy hại.
[Kho nguyên liệu] ===== (Line dẫn quang học) =====> [Dây chuyền sản xuất]
        ^                                                    |
        |============= (Lộ trình quay vòng) =================v

Phân tích tài chính và ROI

  • Chi phí chế tạo nguyên mẫu: Khoảng $1.200.000 - 1.500.000\text{ VNĐ}$ (~$60\text{ USD}$), chỉ bằng $5 - 10%$ chi phí một module AGV công nghiệp nhập khẩu cùng tải trọng.
  • Thời gian hoàn vốn (ROI): Khi áp dụng trong xưởng sản xuất nhỏ thay thế nhân công chuyển hàng thủ công nội bộ, thời gian thu hồi vốn ước tính dưới 3 tháng.

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

Hạn chế kỹ thuật

  • Vi điều khiển 8-bit ATmega328P bị giới hạn về tốc độ đọc ADC đồng thời 8 kênh (mất khoảng $100,\mu\text{s}$ cho mỗi lần chuyển đổi ADC), giới hạn tần số lấy mẫu khi nâng vận tốc robot lên trên $1,0\text{ m/s}$.
  • Khả năng thích ứng với mặt đường bám bụi bẩn hoặc bề mặt phản xạ gương còn nhạy cảm.

Hướng nâng cấp

  • Nâng cấp phần cứng: Chuyển đổi sang vi điều khiển 32-bit ARM Cortex-M4 (STM32F401/STM32F411) để tích hợp bộ lọc Kalman lọc nhiễu tín hiệu cảm biến và tăng tốc độ xử lý vòng kín lên $1\text{ kHz}$.
  • Tích hợp cảm biến phụ trợ: Bổ sung cảm biến siêu âm/LiDAR tầm gần để phát hiện chướng ngại vật và bổ sung thuật toán nhớ đường tự động (Dead-reckoning kết hợp IMU).

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

  • Sinh viên ngành Kỹ thuật Điều khiển & Tự động hóa, Cơ điện tử: Tài liệu tham khảo hoàn chỉnh từ tính toán cơ học động lực học, mạch quang điện tử đến thuật toán lập trình nhúng PID.
  • Kỹ sư phát triển Robot (R&D Engineers): Bộ công thức thiết kế hình học cảm biến TCRT5000 và phương pháp tính toán công suất moment động cơ kéo tải thực tế.
  • Các doanh nghiệp sản xuất vừa và nhỏ (SMEs): Bản thiết kế tham khảo khả thi để tự chủ động chế tạo hệ thống xe tự hành AGV nội bộ giá rẻ.

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

1. Yêu cầu phần cứng tối thiểu để triển khai lại đồ án này là gì?

Cần một bộ kit vi điều khiển tương đương Arduino Uno (hoặc STM32/ESP32), mạch cầu H L298N (hoặc TB6612FNG để tối ưu hiệu suất), 2 động cơ DC giảm tốc có Encoder, khung mica 2 tầng và mảng 6–8 cặp LED thu phát hồng ngoại TCRT5000.

2. Làm thế nào để robot không bị rung lắc (dao động chữ S) khi chạy thẳng?

Hiện tượng rung lắc xảy ra khi hệ số $K_p$ quá lớn hoặc khâu vi phân $K_d$ chưa đủ để hãm quán tính. Cần giảm $K_p$, tăng nhẹ $K_d$ và thu hẹp chu kỳ ngắt lấy mẫu $T_s$ để phản hồi sai số kịp thời.

3. Có thể thay thế thanh line đen dán sàn bằng màu khác được không?

Được. Cảm biến TCRT5000 hoạt động dựa trên sự tương phản hấp thụ và phản xạ tia hồng ngoại. Chỉ cần bề mặt nền phản xạ tốt (như màu trắng, vàng nhạt) và đường line hấp thụ tốt tia hồng ngoại (màu đen, xanh thẫm) thì hệ thống đều nhận diện chính xác sau khi hiệu chỉnh lại ngưỡng Threshold.

4. Tại sao lại chọn cấu trúc điều khiển tập trung thay vì phân cấp?

Với mô hình robot bám line cơ bản 2 động cơ và 8 cảm biến, vi điều khiển ATmega328P hoàn toàn đủ năng lực tính toán trong chu kỳ $10\text{ ms}$. Cấu trúc tập trung giúp tối giản mạch in, giảm trọng lượng xe, tiết kiệm chi phí và loại bỏ độ trễ giao tiếp bus giữa các MCU.

5. Chi phí bảo dưỡng và tuổi thọ linh kiện như thế nào?

Chi phí vận hành định kỳ rất thấp, chủ yếu là thay thế chổi than động cơ DC hoặc pin sau khoảng 1000 chu kỳ sạc-xả. Mạch điện tử và cảm biến quang học là linh kiện trạng thái rắn nên có độ bền trên 3–5 năm trong môi trường trong nhà tiêu chuẩn.


Kết luận

Đồ án tốt nghiệp "Thiết kế robot tự hành bám line theo quỹ đạo đặt trước" đã giải quyết thành công bài toán thiết kế một Mobile Robot hoàn chỉnh từ khâu tính toán động cơ, kết cấu cơ khí phân bổ tải trọng 2,0 kg đến thiết kế mảng cảm biến hồng ngoại chuyên dụng và thuật toán điều khiển PID vi sai. Hệ thống đạt độ ổn định cao, chuyển động bám quỹ đạo mượt mà với vận tốc $0,4\text{ m/s}$, không trượt lật ở khúc cua bán kính $500\text{ mm}$. Đây là nền tảng kỹ thuật vững chắc có thể chuyển giao công nghệ thành các dòng AGV vận chuyển thực tế trong nhà xưởng công nghiệp hiện đại.