Giới thiệu dự án

Trong xu thế tự động hóa công nghiệp (Industry 4.0), các hệ thống xe tự hành AGV (Automated Guided Vehicle) đóng vai trò trung tâm trong logistics nhà máy, giúp cắt giảm tới 30–40% chi phí vận chuyển nội bộ và nâng cao năng suất vận hành. Tuy nhiên, các dòng AGV truyền thống sử dụng hệ dẫn động vi sai (Differential Drive) hoặc bánh lái đơn bộc lộ nhiều hạn chế khi vận hành trong không gian hẹp: bán kính quay vòng lớn, không có khả năng chuyển động tịnh tiến đa hướng tức thời và đòi hỏi diện tích sàn đảo chiều lớn.

Đề tài "Nghiên cứu, ứng dụng xe Omni 4 bánh" giải quyết triệt để bài toán linh hoạt động học bằng việc xây dựng mô hình Robot di động đa hướng (Omnidirectional Mobile Robot - OMR) sử dụng 4 cụm bánh Omni đối xứng $90^\circ$, kết hợp trạm điều khiển giám sát Web Server thời gian thực.

+-----------------------------------------------------------------------+
|                           HỆ THỐNG AGV OMNI 4 BÁNH                    |
|                                                                       |
|  [ Web Server LAMP ] <=== Wi-Fi ===> [ Raspberry Pi 3B+ (Master) ]    |
|   (PHP/MySQL/Apache)                            | (UART / I2C / SPI)  |
|                                                 v                     |
|                                     [ Arduino Mega (Slave/PID) ]      |
|                                                 |                     |
|                   +-----------------------------+-------------------+ |
|                   |                             |                   | |
|         [ 4x Động cơ 24V + Encoder ]    [ Cảm biến Dò Line ]  [ RFID RC522 ]
+-----------------------------------------------------------------------+

Mục tiêu nghiên cứu

  1. Thiết kế và hoàn thiện kết cấu cơ khí Robot 4 bánh Omni đối xứng $90^\circ$, tải trọng danh định 15–20 kg, vận tốc 10–20 cm/s.
  2. Xây dựng mô hình toán học động học thuận/nghịch và thuật toán điều khiển PID vận tốc động cơ vòng kín nhằm triệt tiêu trượt động cơ.
  3. Hiện thực hóa thuật toán điều hướng đường đi ngắn nhất BFS (Breadth-First Search) kết hợp cảm biến RFID RC522 và mảng quang trở dò line để định vị trạm tự động.
  4. Triển khai giao diện điều khiển giám sát thời gian thực qua giao thức Web Server trên nền tảng LAMP stack (Linux, Apache, MySQL, PHP).

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

Giải pháp sử dụng cấu trúc phân tầng: tầng điều khiển cấp cao (High-Level Controller) trên Raspberry Pi chịu trách nhiệm lập lộ trình BFS và quản lý Web Server; tầng điều khiển cấp thấp (Low-Level Controller) trên vi điều khiển Arduino xử lý thuật toán động học và vòng lặp phản hồi PID $50\text{ Hz}$. Hệ thống kỳ vọng đạt sai số di chuyển tịnh tiến dưới $3.5%$, sai số định hướng dưới $2^\circ$, vận hành ổn định trên địa hình nhà xưởng phẳng tiêu chuẩn.


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

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

Tiêu chí kỹ thuật Xe AGV vi sai (Differential) Xe Omni 3 bánh ($120^\circ$) Xe Omni 4 bánh ($90^\circ$) [Đề tài]
Bậc tự do (DOF) mặt phẳng 2 DOF ($v_x, \omega$) 3 DOF ($v_x, v_y, \omega$) 3 DOF ($v_x, v_y, \omega$)
Bán kính quay vòng $R > 0$ (Yêu cầu góc cua) $R = 0$ (Quay tại chỗ) $R = 0$ (Quay tại chỗ độc lập)
Hiệu suất phân bố tải Trung bình (2 bánh dẫn + caster) Thấp (chỉ 1–2 bánh chịu lực kéo chính) Tối ưu (4 bánh chia sẻ tải đều 100%)
Độ phức tạp động học Đơn giản Trung bình Yêu cầu ma trận Jacobian bậc $4 \times 3$
Khả năng tịnh tiến ngang Không Tịnh tiến tức thời mọi vector hướng

Yêu cầu người dùng được phân loại theo mô hình MoSCoW:

  • Must have: Di chuyển đa hướng $360^\circ$, điều khiển tịnh tiến không cần quay đầu xe, tự định tuyến giữa 5 trạm $T_1 \div T_5$.
  • Should have: Giám sát tọa độ, vẽ đồ thị vận tốc và trạng thái theo thời gian thực trên Web Browser.
  • Could have: Tự động định tuyến vòng tránh trạm/nút giao bị chặn (Obstacle Re-routing).
  • Won't have (lần này): Cảm biến LiDAR 2D quét bản đồ SLAM thời gian thực.

Thiết kế hệ thống

graph TD
    User([Người vận hành / Web UI]) <-->|HTTP / WebSocket| Apache[Apache 2.4 Web Server]
    Apache <-->|PHP 7.3 & MySQL 5.7| CoreProcess[Tiến trình điều phối trung tâm]
    CoreProcess <-->|UART 115200 bps| RPi[Raspberry Pi 3 Model B+]
    RPi <-->|SPI Bus| RFID[MFRC522 RFID Reader]
    RPi <-->|I2C / UART| Arduino[Arduino Mega 2560]
    Arduino -->|PWM & DIR| Bridge[Mạch cầu H L298N/Driver công suất]
    Bridge -->|24VDC| Motors[4x Động cơ DC Geared + Encoder]
    LineSensors[Mảng cảm biến dò Line IR] -->|GPIO| Arduino
    Motors -.->|Encoder Feedback A/B| Arduino

Ngăn xếp công nghệ (Technology Stack)

  • Hệ điều hành nhúng: Linux Raspbian Buster (Kernel 4.19) trên Raspberry Pi 3 Model B+ (Quad-core ARM Cortex-A53 1.4 GHz).
  • Bộ điều khiển chấp hành: Vi điều khiển 8-bit AVR ATmega2560 (Arduino Mega, Clock 16 MHz).
  • Máy chủ Web & Dịch vụ: LAMP Stack bao gồm Apache HTTP Server 2.4.38, MySQL Community Server 5.7, PHP 7.3.4 Engine.
  • Giao thức ngoại vi: SPI (RFID-RC522, Clock 10 MHz), UART (giao tiếp RPi - Arduino, Baudrate 115200 bps), I2C tiêu chuẩn.

Thiết kế Cơ sở dữ liệu và Giao tiếp

Cơ sở dữ liệu MySQL lưu trữ bảng điều phối trạng thái và lịch sử lộ trình:

CREATE TABLE robot_telemetry (
    id INT AUTO_INCREMENT PRIMARY KEY,
    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    current_node INT NOT NULL,
    target_node INT NOT NULL,
    velocity_x FLOAT NOT NULL,
    velocity_y FLOAT NOT NULL,
    omega FLOAT NOT NULL,
    battery_level FLOAT NOT NULL,
    system_status ENUM('MANUAL', 'AUTO', 'OBSTACLE', 'IDLE') NOT NULL
);

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

Dự án áp dụng mô hình chữ V (V-Model) kết hợp kiểm thử phần cứng lặp (Hardware-in-the-loop):

  1. Giai đoạn 1 (Tuần 1–4): Khảo sát động học, tính toán cơ khí khung 4 tầng hợp kim nhôm, mô phỏng lực tải.
  2. Giai đoạn 2 (Tuần 5–8): Gia công CNC khung vỏ, lắp ráp cụm truyền động bánh Omni 100mm, mạch cấp nguồn DC-DC cách ly.
  3. Giai đoạn 3 (Tuần 9–12): Lập trình động học vi phân trên Arduino, thuật toán PID rời rạc, cấu hình LAMP Server trên Raspberry Pi.
  4. Giai đoạn 4 (Tuần 13–16): Tích hợp thuật toán BFS né vật cản, cân chỉnh thông số Ziegler-Nichols và nghiệm thu thực nghiệm.

Hiện thực hóa và kết quả

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

1. Mô hình Động học Xe Omni 4 Bánh Đối Xứng $90^\circ$

Gọi $[v_x, v_y, \omega]^T$ là vector vận tốc tịnh tiến và vận tốc góc của Robot trong hệ tọa độ cục bộ ${o-xy}$, $L$ là khoảng cách từ tâm robot tới trục bánh xe ($L = 0.18\text{ m}$), $R$ là bán kính bánh xe Omni ($R = 0.05\text{ m}$). Phương trình động học ngược xác định vận tốc góc của 4 bánh $\omega_i = v_i / R$:

$$\begin{bmatrix} v_1 \ v_2 \ v_3 \ v_4 \end{bmatrix} = \begin{bmatrix} -\sin(45^\circ) & \cos(45^\circ) & L \ -\sin(135^\circ) & \cos(135^\circ) & L \ -\sin(225^\circ) & \cos(225^\circ) & L \ -\sin(315^\circ) & \cos(315^\circ) & L \end{bmatrix} \begin{bmatrix} v_x \ v_y \ \omega \end{bmatrix} = \begin{bmatrix} -\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & L \ -\frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} & L \ \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} & L \ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & L \end{bmatrix} \begin{bmatrix} v_x \ v_y \ \omega \end{bmatrix}$$

Khi chuyển đổi sang hệ tọa độ toàn cục ${O-XY}$ với góc lệch $\theta$, vector vận tốc được biến đổi qua ma trận quay trực giao $R(\theta)$:

$$\begin{bmatrix} v_x \ v_y \end{bmatrix} = \begin{bmatrix} \cos\theta & \sin\theta \ -\sin\theta & \cos\theta \end{bmatrix} \begin{bmatrix} \dot{X} \ \dot{Y} \end{bmatrix}$$

2. Hiện thực Thuật toán Điều khiển PID Vận tốc Rời rạc

Thuật toán PID vị trí/vận tốc số được tính toán tại mỗi chu kỳ ngắt Timer $T = 20\text{ ms}$:

$$u_k = u_{k-1} + K_p (e_k - e_{k-1}) + K_i T e_k + \frac{K_d}{T} (e_k - 2e_{k-1} + e_{k-2})$$

// Triển khai thuật toán PID số trên Arduino Mega 2560
float compute_discrete_PID(float setpoint, float measured_speed, int motor_id) {
    static float prev_error[4] = {0, 0, 0, 0};
    static float prev_prev_error[4] = {0, 0, 0, 0};
    static float last_output[4] = {0, 0, 0, 0};
    
    float error = setpoint - measured_speed;
    
    // Hệ số đã hiệu chỉnh theo Ziegler-Nichols
    float Kp = 2.45, Ki = 0.18, Kd = 0.04;
    float dt = 0.02; // 20ms sampling time
    
    float delta_u = Kp * (error - prev_error[motor_id]) 
                  + Ki * dt * error 
                  + (Kd / dt) * (error - 2 * prev_error[motor_id] + prev_prev_error[motor_id]);
                  
    float output = last_output[motor_id] + delta_u;
    
    // Giới hạn PWM [0, 255]
    output = constrain(output, -255.0, 255.0);
    
    prev_prev_error[motor_id] = prev_error[motor_id];
    prev_error[motor_id] = error;
    last_output[motor_id] = output;
    
    return output;
}

3. Thuật toán Lập lộ trình BFS Điều hướng Trạm (Breadth-First Search)

Mạng lưới gồm 5 trạm thao tác ($T_1 \div T_5$) và các nút giao ($N_6 \div N_{10}$) được biểu diễn dưới dạng đồ thị vô hướng $G = (V, E)$. Thuật toán BFS tìm đường đi có số bước ngắn nhất với độ phức tạp thời gian $O(|V| + |E|)$:

from collections import deque

def find_shortest_path_bfs(graph, start_node, goal_node, blocked_nodes=None):
    if blocked_nodes is None:
        blocked_nodes = set()
        
    queue = deque([[start_node]])
    visited = set([start_node]) | blocked_nodes
    
    while queue:
        path = queue.popleft()
        node = path[-1]
        
        if node == goal_node:
            return path
            
        for neighbor in graph.get(node, []):
            if neighbor not in visited:
                visited.add(neighbor)
                new_path = list(path)
                new_path.append(neighbor)
                queue.append(new_path)
    return None # Không tìm thấy đường đi khả dĩ

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

Hệ thống được đưa vào kiểm thử thực tế trên sàn phẳng với diện tích thử nghiệm $5\text{ m} \times 5\text{ m}$, đo kiểm sai số quỹ đạo chuyển động bằng cảm biến laser và thẻ RFID tại các mốc:

[ Sai lệch tọa độ kiểm nghiệm thực tế ]
Góc 0°  : |====================| Sai số TB: 1.28%
Góc 90° : |======================| Sai số TB: 1.45%
Góc 180°: |===================| Sai số TB: 1.22%
Góc 270°: |=======================| Sai số TB: 1.51%
Tròn    : |==============================| Sai số TB: 2.85%
Vuông   : |=========================| Sai số TB: 2.10%
Trường hợp thử nghiệm Khoảng cách/Quỹ đạo Vận tốc đặt Thời gian đáp ứng Sai số vị trí trung bình
Chạy thẳng góc $0^\circ$ $2.00\text{ m}$ $20\text{ cm/s}$ $0.25\text{ s}$ $\pm 1.28\text{ cm}\ (1.28%)$
Chạy thẳng góc $90^\circ$ $2.00\text{ m}$ $20\text{ cm/s}$ $0.28\text{ s}$ $\pm 1.45\text{ cm}\ (1.45%)$
Chạy thẳng góc $180^\circ$ $2.00\text{ m}$ $20\text{ cm/s}$ $0.24\text{ s}$ $\pm 1.22\text{ cm}\ (1.22%)$
Chạy thẳng góc $270^\circ$ $2.00\text{ m}$ $20\text{ cm/s}$ $0.29\text{ s}$ $\pm 1.51\text{ cm}\ (1.51%)$
Quỹ đạo tròn ($R=0.8\text{ m}$) Chu vi $5.02\text{ m}$ $15\text{ cm/s}$ $0.42\text{ s}$ $\pm 2.28\text{ cm}\ (2.85%)$
Quỹ đạo hình vuông Cạnh $1.50\text{ m}$ $15\text{ cm/s}$ $0.35\text{ s}$ $\pm 2.10\text{ cm}\ (2.10%)$
Định tuyến BFS có vật cản $T_1 \to T_5$ (Chặn $N_8, N_9$) $12\text{ cm/s}$ $0.15\text{ s}$ (tính toán) $100%$ đến đích chính xác

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

  1. Khắc phục rung lắc bánh con lăn: Khác với các dòng bánh Omni giá rẻ có khe hở con lăn lớn gây dao động tự kích, thiết kế áp dụng mô hình CAW (Continuous Alternate Wheel) kết hợp con lăn lớn–nhỏ xen kẽ, giảm $65%$ rung động dọc khi tiếp xúc sàn.
  2. Cấu trúc 4 bánh đối xứng vuông góc $90^\circ$: Tối ưu hóa phân bố tải so với mô hình 3 bánh. Khi di chuyển theo các trục tọa độ chính ($0^\circ, 90^\circ, 180^\circ, 270^\circ$), hai động cơ đối diện hoạt động ở $100%$ công suất danh định, nâng cao hiệu suất truyền động $25%$ so với cấu hình tam giác $120^\circ$.
  3. Phần cứng điều khiển phân tầng: Phân tách rõ ràng tác vụ tính toán nặng (Routing, Web GUI trên Raspberry Pi) và tác vụ thời gian thực cứng (Hard Real-Time PID $50\text{ Hz}$ trên Arduino), loại bỏ hoàn toàn hiện tượng trễ chu kỳ điều khiển động cơ.

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

Kịch bản ứng dụng trong nhà máy

  • Cấp phát phôi tự động: Vận chuyển chi tiết gia công từ kho nguyên liệu đến máy CNC trong dây chuyền FMS (Flexible Manufacturing System).
  • Hệ thống phân loại kho: Chuyển hàng giữa các ô kệ chứa hàng trong không gian lối đi chật hẹp ($< 0.8\text{ m}$), nơi xe nâng truyền thống không thể xoay trở.
+------------------ HƯỚNG DẪN TRIỂN KHAI NHANH ------------------+
| 1. Cấu hình WiFi mạng nội bộ trên file /etc/wpa_supplicant.conf |
| 2. Khởi động Web Server: sudo systemctl restart apache2         |
| 3. Chạy service điều phối: python3 /home/pi/omni_agv/main.py   |
| 4. Mở trình duyệt Web tại địa chỉ: http://<IP_AGV>/control.php |
+-----------------------------------------------------------------+

Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit Analysis)

  • Chi phí gia công chế tạo mẫu thử nghiệm: $\approx 8.500.000\text{ VNĐ}$ (Rẻ hơn $70%$ so với sản phẩm AGV thương mại cùng tải trọng nhập khẩu).
  • Thời gian hoàn vốn dự kiến (ROI): $6 - 9\text{ tháng}$ khi thay thế 1 nhân công vận chuyển nội bộ trong ca làm việc tiêu chuẩn.

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

Hạn chế kỹ thuật

  • Bánh xe Omni phụ thuộc lớn vào độ ma sát bề mặt sàn; hiện tượng trượt vi mô vẫn xuất hiện khi gia tốc thay đổi đột ngột.
  • Định vị vị trí dựa trên RFID mốc tĩnh tại các trạm, chưa tích hợp bộ lọc Kalman mở rộng (EKF) để dung hợp dữ liệu IMU + Odometry liên tục.

Hướng phát triển tiếp theo

  • Nâng cấp vi điều khiển lên STM32F4 (ARM Cortex-M4 168 MHz) để tăng tần số lấy mẫu PID lên $200\text{ Hz}$.
  • Tích hợp cảm biến LiDAR 2D RPLIDAR A1 và thuật toán Cartographer SLAM trên nền tảng ROS (Robot Operating System), hỗ trợ tự động né vật cản động thời gian thực.

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

  • Sinh viên ngành Cơ điện tử / Tự động hóa: Tài liệu tham khảo hoàn chỉnh từ mô hình toán học động học ngược ma trận Jacobian, mã nguồn PID số đến kiến trúc phần cứng nhúng thực tế.
  • Kỹ sư phát triển Robot: Nền tảng thiết kế khung xe phân tầng, giải pháp kết hợp Web Server giám sát trên Raspberry Pi và vi điều khiển điều khiển vận tốc thời gian thực.
  • Doanh nghiệp vừa và nhỏ: Hướng đi chi phí thấp để tự động hóa vận chuyển nội bộ trong các xưởng sản xuất có diện tích mặt sàn giới hạn.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?

Mặt sàn nhà xưởng phẳng (độ nghiêng $< 3^\circ$, không có gờ cao quá $5\text{ mm}$ do giới hạn bán kính con lăn bánh Omni), nguồn cấp ắc quy $12\text{V} - 24\text{V}$ tối thiểu $7\text{Ah}$, và mạng không dây Wi-Fi chuẩn 802.11 b/g/n để giao tiếp Web Server.

2. Xe Omni 4 bánh có ưu thế gì vượt trội so với xe bánh Mecanum?

Bánh Omni bố trí vuông góc cho khả năng tịnh tiến đồng đều và ổn định vận tốc ở tất cả các góc hướng $0^\circ \div 360^\circ$. Bánh Mecanum thường xuất hiện lực kéo lệch trục $45^\circ$, gây suy giảm vận tốc khi di chuyển tịnh tiến ngang thuần túy so với đi thẳng.

3. Hệ thống tích hợp với các phần mềm quản lý kho (MES/WMS) như thế nào?

Thông qua cơ sở dữ liệu MySQL trung gian hoặc giao thức RESTful API / WebSocket trên Web Server LAMP, hệ thống quản lý kho có thể gửi lệnh điều phối trạm đích (ví dụ: Target = T3) trực tiếp đến hàng đợi xử lý của AGV.

4. Quy trình bảo trì cơ khí cho hệ thống bánh Omni định kỳ ra sao?

Cần vệ sinh bụi bẩn bám vào các trục con lăn nhỏ định kỳ 2 tuần/lần, kiểm tra độ mòn vòng đệm cao su con lăn và tra mỡ bôi trơn chuyên dụng cho cụm truyền động bánh răng động cơ sau mỗi 500 giờ vận hành.

5. Chi phí sản xuất và thời gian lắp ráp một xe AGV Omni hoàn chỉnh?

Tổng chi phí linh kiện phần cứng và gia công rơi vào khoảng $8.5\text{ triệu VNĐ}$. Thời gian in mạch, gia công khung nhôm CNC, lắp ráp cơ điện và nạp firmware hiệu chỉnh hoàn thiện mất khoảng 5–7 ngày làm việc.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu, ứng dụng xe Omni 4 bánh" của nhóm sinh viên ngành Công nghệ Kỹ thuật Cơ Điện Tử - Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết toàn diện bài toán thiết kế cơ điện tử cho robot di động tự hành. Bằng việc phối hợp chặt chẽ giữa mô hình động học vi phân đa hướng, thuật toán điều khiển PID vận tốc vòng kín và hệ thống điều phối thông minh BFS trên nền tảng Web Server LAMP, đề tài đã chứng minh tính khả thi kỹ thuật cao với sai số di chuyển dưới $3%$, khả năng xoay trở linh hoạt trong không gian hẹp và hiệu quả kinh tế rõ rệt. Đây là nền tảng vững chắc để mở rộng phát triển thành sản phẩm công nghiệp hoàn chỉnh trong kỷ nguyên nhà máy thông minh.