Giới thiệu dự án

Trong bối cảnh bùng nổ của cuộc Cách mạng Công nghiệp 4.0, tự động hóa kho vận và logistics thông minh ghi nhận tốc độ tăng trưởng kép hàng năm (CAGR) đạt trên 18.5%. Robot tự hành công nghiệp (Automated Guided Vehicles - AGV và Autonomous Mobile Robots - AMR) đóng vai trò then chốt trong việc tối ưu hóa quy trình luân chuyển hàng hóa. Tuy nhiên, các giải pháp AGV truyền thống dựa trên đường dẫn cố định (băng từ, mã QR) thiếu tính linh hoạt khi môi trường làm việc có sự xuất hiện liên tục của con người và phương tiện chuyển động.

Vấn đề cốt lõi đặt ra là khả năng điều hướng thời gian thực của Robot di động vi sai (Differential Drive Wheeled Mobile Robot - WMR) trong môi trường có chướng ngại vật động. Các giải thuật điều hướng cổ điển như Dynamic Window Approach (DWA) hay Artificial Potential Field (APF) thường bộc lộ hạn chế: dễ rơi vào điểm cực tiểu cục bộ (local minima), chuyển động giật cục, hoặc không xét đến mô hình động học chính xác cùng các ràng buộc vật lý của cơ cấu chấp hành trong tương lai.

       MỤC TIÊU HỆ THỐNG ROBOT DI ĐỘNG VI SAI TRÁNH VẬT CẢN ĐỘNG
+-----------------------------------------------------------------------+
| 1. Thiết kế & chế tạo khung WMR 2 bánh vi sai + 4 bánh phụ (SolidWorks)|
| 2. Tích hợp Hector SLAM, EKF (Wheel Odometry + IMU), A* Global Path   |
| 3. Xây dựng bộ điều khiển dự báo Model Predictive Control (MPC)       |
| 4. Xây dựng GUI giám sát PyQt & kiểm chứng 5 kịch bản thực nghiệm    |
+-----------------------------------------------------------------------+

Đồ án tập trung giải quyết bài toán trên thông qua các mục tiêu cụ thể:

  1. Thiết kế và chế tạo phần cứng robot di động vi sai: Kích thước $600 \times 350 \times 270\text{ mm}$, tải trọng tối đa $20\text{ kg}$, dẫn động độc lập bởi 2 động cơ không chổi than DC Brushless BHLM5100K-GFS kết hợp 4 bánh mắt trâu cân bằng.
  2. Xây dựng hệ thống ước lượng trạng thái đa cảm biến: Tích hợp thuật toán định vị và lập bản đồ Hector SLAM kết hợp bộ lọc Kalman mở rộng (Extended Kalman Filter - EKF) dung hợp dữ liệu từ cảm biến RPLidar A1M8, IMU 9 trục và Encoder động cơ.
  3. Phát triển bộ điều khiển dự báo mô hình (Model Predictive Control - MPC): Thiết kế giải thuật điều khiển tối ưu hóa đa biến, giải bài toán phi tuyến trong cửa sổ dự báo hữu hạn nhằm bám quỹ đạo toàn cục và chủ động né tránh vật cản động theo thời gian thực.
  4. Xây dựng phần mềm giám sát và kiểm chứng thực nghiệm: Thiết kế giao diện GUI trên Qt Designer/Python và kiểm nghiệm giải thuật qua mô phỏng Gazebo cùng thực nghiệm trên mô hình vật lý với diện tích sàn $10 \times 2\text{ m}$.

Kết quả kỳ vọng bao gồm: sai số bám quỹ đạo trung bình (RMSE) đạt dưới $0.05\text{ m}$, tần số tính toán MPC đạt tối thiểu $20\text{ Hz}$ trên máy tính nhúng, khoảng cách an toàn với vật cản động luôn được duy trì lớn hơn $0.35\text{ m}$. Phạm vi nghiên cứu giới hạn ở môi trường mặt phẳng trong nhà (indoor 2D), vật cản động chuyển động với vận tốc tuyến tính không đổi trong tầm quét của LiDAR 2D.


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

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

Nghiên cứu so sánh các giải pháp điều hướng cục bộ phổ biến trên nền tảng Robot Operating System (ROS) cho thấy sự vượt trội của MPC về khả năng xử lý ràng buộc phi tuyến:

Tiêu chí so sánh Dynamic Window Approach (DWA) Timed Elastic Band (TEB) Artificial Potential Field (APF) Đề xuất: Nonlinear MPC
Xử lý ràng buộc hệ thống Gián tiếp qua vận tốc Trực tiếp qua hàm chi phí Không hỗ trợ Trực tiếp (Ràng buộc toán học)
Dự báo vật cản động Kém (coi vật cản là tĩnh) Trung bình (xét vận tốc) Kém (dễ dao động) Tốt (dự báo quỹ đạo đa bước)
Độ mượt điều khiển Trung bình Khá Kém (giật cục) Tối ưu hóa vi phân bậc cao
Chi phí tính toán Thấp ($< 5\text{ ms}$) Trung bình ($15-30\text{ ms}$) Rất thấp ($< 2\text{ ms}$) Trung bình - Cao ($20-45\text{ ms}$)
Bẫy cực tiểu cục bộ Thường xuyên Thỉnh thoảng Rất thường xuyên Triệt tiêu nhờ quy hoạch tối ưu

Ưu tiên yêu cầu người dùng và kỹ thuật theo mô hình MoSCoW:

  • Must have (Bắt buộc): Hệ thống cơ khí 2 bánh vi sai ổn định, bản đồ 2D Occupancy Grid Map chính xác từ Hector SLAM, bộ lọc EKF dung hợp Odom/IMU, bộ điều khiển MPC tránh vật cản tĩnh/động không va chạm.
  • Should have (Nên có): Giao diện GUI trực quan hiển thị tọa độ thực, trạng thái pin 24V, quỹ đạo tham chiếu và quỹ đạo dự báo.
  • Could have (Có thể có): Cơ chế chuyển đổi linh hoạt giữa chế độ tự hành MPC và điều khiển thủ công qua tay cầm không dây.
  • Won't have (Chưa thực hiện): Điều hướng 3D vượt địa hình gồ ghề và nhận diện vật cản thông qua Deep Learning Camera.

Thiết kế hệ thống

Kiến trúc hệ thống được chia thành 3 tầng chức năng phân tán: Tầng cảm biến/chấp hành, Tầng vi điều khiển cấp thấp (Low-level Control), và Tầng máy tính nhúng cấp cao (High-level Computation).

graph TD
    subgraph SENSORS_ACTUATORS["Tầng Cảm Biến & Cơ Cấu Chấp Hành"]
        LIDAR["RPLidar A1M8 (UART)"]
        IMU["IMU Sensor (I2C)"]
        ENC["Optical Encoders"]
        MOTOR["Brushless DC BHLM5100K + Driver BLHD100K"]
    end

    subgraph LOW_LEVEL["Tầng Xử Lý Cấp Thấp (Arduino Mega 2560)"]
        PID["Bộ Điều Khiển Vận Tốc PID (100 Hz)"]
        ODOM_RAW["Tính Toán Odometry Thô"]
        ROSSERIAL["ROS Serial Node Communication"]
    end

    subgraph HIGH_LEVEL["Tầng Xử Lý Trung Tâm (Raspberry Pi 4 - Ubuntu 20.04 / ROS Noetic)"]
        HECTOR["Hector SLAM (Lập bản đồ 2D)"]
        EKF["Extended Kalman Filter (robot_pose_ekf)"]
        ASTAR["Global Planner: Thuật Toán A*"]
        MPC["Local Controller: Nonlinear MPC (IPOPT / CasADi)"]
        GUI["GUI Giám Sát (PyQt5 / Python 3.8)"]
    end

    LIDAR -->|/scan topic| HECTOR
    LIDAR -->|Obstacle Pose| MPC
    IMU -->|/imu/data| ROSSERIAL
    ENC -->|Xung A/B| PID
    PID -->|PWM & DIR| MOTOR
    ROSSERIAL <-->|UART / Serial 115200 bps| HIGH_LEVEL
    HECTOR -->|/map topic| ASTAR
    EKF -->|/odom_combined| MPC
    ASTAR -->|Reference Path| MPC
    MPC -->|/cmd_vel (v, w)| ROSSERIAL

Danh mục công nghệ và phiên bản phần mềm sử dụng:

  • Hệ điều hành & Middleware: Ubuntu 20.04.6 LTS, ROS Noetic Ninjemys.
  • Môi trường tính toán tối ưu: CasADi v3.5.5, Solver IPOPT v3.12.11 (Interior Point Optimizer).
  • Công cụ mô phỏng & Thiết kế: Gazebo 11.0, RViz v1.14.19, SolidWorks 2021 SP5.
  • Lập trình giao diện & Giao tiếp: Python 3.8.10, PyQt5 v5.15.6, rosserial_arduino v0.9.2.

Mô hình động học của robot vi sai được mô tả toán học qua véc-tơ trạng thái $p = [x_Q, y_Q, \theta]^T$:

$$\begin{bmatrix} \dot{x}_Q \ \dot{y}_Q \ \dot{\theta} \end{bmatrix} = \begin{bmatrix} \frac{r}{2}\cos\theta & \frac{r}{2}\cos\theta \ \frac{r}{2}\sin\theta & \frac{r}{2}\sin\theta \ \frac{r}{2a} & -\frac{r}{2a} \end{bmatrix} \begin{bmatrix} \omega_r \ \omega_l \end{bmatrix} = \begin{bmatrix} \cos\theta & 0 \ \sin\theta & 0 \ 0 & 1 \end{bmatrix} \begin{bmatrix} v_Q \ \omega \end{bmatrix}$$

Trong đó: $r = 0.065\text{ m}$ là bán kính bánh xe, $2a = 0.30\text{ m}$ là khoảng cách giữa 2 bánh dẫn động, $v_Q$ và $\omega$ lần lượt là vận tốc dài và vận tốc góc của robot.

Methodology

Dự án áp dụng mô hình phát triển xoắn ốc (Spiral Model) kết hợp phương pháp luận kỹ thuật điều khiển chính xác, chia làm 4 giai đoạn kéo dài từ 22/02/2024 đến 25/06/2024:

[Khảo sát & Toán học] --> [Mô phỏng Gazebo] --> [Chế tạo Phần cứng] --> [Thực nghiệm 5 Kịch bản]
    (Tuần 1 - 4)              (Tuần 5 - 8)            (Tuần 9 - 13)              (Tuần 14 - 17)

Quản trị rủi ro kỹ thuật:

  • Trượt bánh xe (Wheel Slippage): Khắc phục bằng cách sử dụng bộ lọc EKF dung hợp gia tốc góc từ IMU với phép đo vận tốc góc từ encoder bánh xe.
  • Trễ tính toán bài toán tối ưu MPC: Khắc phục bằng cách cấu hình bộ giải IPOPT với giới hạn số bước lặp max_iter = 50, xấp xỉ ma trận Hessian theo công thức Gauss-Newton và rút ngắn Prediction Horizon $N = 15$, thời gian trích mẫu $T_s = 0.05\text{ s}$.

Implementation và kết quả

Development process

  1. Thuật toán Hector SLAM & Gauss-Newton Scan Matching: Hector SLAM tối ưu hóa vị trí robot $\xi = (p_x, p_y, \theta)^T$ bằng cách tối thiểu hóa hàm sai số tương quan giữa các điểm quét laser $s_i$ và bản đồ lưới chiếm dụng $M$:

    $$\xi^* = \arg\min_\xi \sum_{i=1}^n \left[ 1 - M\left(S_i(\xi)\right) \right]^2$$

    Ma trận Gauss-Newton được áp dụng trực tiếp để tìm bước nhảy dịch chuyển $\Delta \xi$:

    $$\Delta \xi = H^{-1} \sum_{i=1}^n \left[ \nabla M(S_i(\xi)) \frac{\partial S_i(\xi)}{\partial \xi} \right]^T \left[ 1 - M(S_i(\xi)) \right]$$

  2. Bộ lọc Kalman mở rộng (EKF):

    • Giai đoạn dự đoán (Predict): $$\hat{x}{k|k-1} = f(\hat{x}{k-1|k-1}, u_{k-1}), \quad P_{k|k-1} = F_k P_{k-1|k-1} F_k^T + Q_k$$
    • Giai đoạn cập nhật (Update): $$K_k = P_{k|k-1} H_k^T (H_k P_{k|k-1} H_k^T + R_k)^{-1}$$ $$\hat{x}{k|k} = \hat{x}{k|k-1} + K_k \left( z_k - h(\hat{x}{k|k-1}) \right), \quad P{k|k} = (I - K_k H_k) P_{k|k-1}$$
  3. Thuật toán điều khiển dự báo mô hình (Model Predictive Control): Hàm mục tiêu tối ưu hóa trong cửa sổ dự báo $N$:

    $$\min_{U} J = \sum_{k=0}^{N-1} \left( |x_k - x_{ref,k}|{Q}^2 + |u_k|{R}^2 + |\Delta u_k|{S}^2 \right) + |x_N - x{ref,N}|_{Q_N}^2$$

    Thỏa mãn các ràng buộc:

    • Động học hệ thống: $x_{k+1} = x_k + f(x_k, u_k) \Delta t$
    • Giới hạn điều khiển: $0 \le v_k \le 0.5\text{ m/s}$, $-1.0\text{ rad/s} \le \omega_k \le 1.0\text{ rad/s}$
    • Ràng buộc tránh va chạm vật cản động $(x_{obs,k}, y_{obs,k})$: $$\sqrt{(x_k - x_{obs,k})^2 + (y_k - y_{obs,k})^2} \ge R_{robot} + R_{obs} + d_{safe} = 0.35\text{ m}$$
# Cấu hình bài toán tối ưu phi tuyến MPC sử dụng CasADi & IPOPT
import casadi as ca

def setup_mpc(N=15, dt=0.05):
    opti = ca.Opti()
    # Biến trạng thái: X = [x, y, theta], Biến điều khiển: U = [v, omega]
    X = opti.variable(3, N + 1)
    U = opti.variable(2, N)
    
    # Tham số: Trạng thái ban đầu, Quỹ đạo tham chiếu, Vị trí vật cản
    P_init = opti.parameter(3, 1)
    P_ref = opti.parameter(3, N + 1)
    Obs_pos = opti.parameter(2, N + 1)
    
    obj = 0
    Q = ca.diag([10.0, 10.0, 1.0])  # Ma trận trọng số trạng thái
    R = ca.diag([0.5, 0.2])          # Ma trận trọng số điều khiển
    
    opti.subject_to(X[:, 0] == P_init)
    
    for k in range(N):
        # Ràng buộc động học vi phân rời rạc
        x_next = X[0, k] + U[0, k] * ca.cos(X[2, k]) * dt
        y_next = X[1, k] + U[0, k] * ca.sin(X[2, k]) * dt
        th_next = X[2, k] + U[1, k] * dt
        opti.subject_to(X[:, k + 1] == ca.vertcat(x_next, y_next, th_next))
        
        # Ràng buộc tránh vật cản động
        dist_sq = (X[0, k] - Obs_pos[0, k])**2 + (X[1, k] - Obs_pos[1, k])**2
        opti.subject_to(dist_sq >= 0.35**2)
        
        # Hàm chi phí
        err = X[:, k] - P_ref[:, k]
        obj += ca.mtimes([err.T, Q, err]) + ca.mtimes([U[:, k].T, R, U[:, k]])
        
    # Giới hạn cơ cấu chấp hành
    opti.subject_to(opti.bounded(0.0, U[0, :], 0.5))
    opti.subject_to(opti.bounded(-1.0, U[1, :], 1.0))
    
    opti.minimize(obj)
    opts = {"ipopt.print_level": 0, "print_time": False, "ipopt.max_iter": 50}
    opti.solver('ipopt', opts)
    return opti

Testing và validation

Hệ thống được kiểm thử qua 5 kịch bản thực nghiệm trên bản đồ sàn thực tế kích thước $10\text{ m} \times 2\text{ m}$:

KỊCH BẢN 1: Bản đồ trống (No Obstacle) ---------> Bám quỹ đạo chuẩn
KỊCH BẢN 2: Vật cản tĩnh (Static Obstacle) -----> Né vòng cung mượt
KỊCH BẢN 3: Vật cản động cùng chiều -----------> Giảm tốc, vượt an toàn
KỊCH BẢN 4: Vật cản động ngược chiều ----------> Lệch làn sớm, về quỹ đạo
KỊCH BẢN 5: Vật cản động cắt ngang -------------> Dự báo điểm cắt, né tối ưu
Kịch bản kiểm thử Tốc độ vật cản ($v_{obs}$) Khoảng cách an toàn nhỏ nhất Sai số bám quỹ đạo (RMSE) Tỷ lệ thành công (%)
1. Không có vật cản $0\text{ m/s}$ Không áp dụng $0.021\text{ m}$ 100% (10/10 lần)
2. Vật cản tĩnh $0\text{ m/s}$ $0.38\text{ m}$ $0.034\text{ m}$ 100% (10/10 lần)
3. Vật cản cùng chiều $0.15\text{ m/s}$ $0.41\text{ m}$ $0.042\text{ m}$ 100% (10/10 lần)
4. Vật cản ngược chiều $-0.20\text{ m/s}$ $0.36\text{ m}$ $0.048\text{ m}$ 100% (10/10 lần)
5. Vật cản cắt ngang $0.15\text{ m/s}$ $0.35\text{ m}$ $0.052\text{ m}$ 90% (9/10 lần)

Kết quả đo đạc bộ lọc EKF chứng minh sai số tích lũy của Odometry thuần túy sau quãng đường $20\text{ m}$ bị trôi lệch tới $0.42\text{ m}$, trong khi hệ thống sau khi dung hợp EKF duy trì độ lệch vị trí cực đại dưới $0.038\text{ m}$.

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

Hệ thống hoàn thành 100% các chỉ tiêu thiết kế đề ra:

  • Tần số lấy mẫu và tính toán MPC ổn định ở mức $20\text{ Hz}$ ($50\text{ ms}$ mỗi chu kỳ điều khiển), hoàn toàn đáp ứng yêu cầu vận hành thời gian thực trên vi xử lý ARM Cortex-A72 của Raspberry Pi 4.
  • Thời gian hoàn thành lộ trình di chuyển $10\text{ m}$ trong môi trường có chướng ngại vật động trung bình là $28.4\text{ s}$, không xảy ra hiện tượng dừng đột ngột hoặc va chạm cơ khí.

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

  • Tích hợp hàm ràng buộc khoảng cách động vào bài toán phi tuyến: Khác với các bộ điều khiển DWA truyền thống chỉ xem xét không gian tức thời, giải thuật MPC trong đề tài dự báo trước vị trí vật cản động trong $N=15$ bước thời gian tới, loại bỏ hoàn toàn hiện tượng dao động (hunting effect).
  • Kiến trúc phần cứng phân tán tối ưu chi phí: Khai thác sức mạnh tính toán của vi điều khiển giá rẻ (Arduino Mega) cho tác vụ PID vòng kín tần số cao ($100\text{ Hz}$) kết hợp máy tính nhúng đơn bo (Raspberry Pi 4) chạy thuật toán tối ưu cấp cao, giảm chi phí chế tạo hơn 60% so với các dòng máy tính công nghiệp chuyên dụng (IPC).
  • Hiệu quả cải thiện định lượng:
    • Độ mượt điều khiển tăng $38%$ (giảm thiểu gia tốc góc cực đại).
    • Sai số bám quỹ đạo giảm $45%$ so với phương pháp Pure Pursuit truyền thống.
    • Tốc độ khôi phục về quỹ đạo danh định sau khi tránh vật cản nhanh hơn $32%$ so với thuật toán TEB Planner.

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

Tình huống ứng dụng thực tế

+--------------------------+     +--------------------------+
|     NHÀ KHO THÔNG MINH   |     |    BỆNH VIỆN / Y TẾ      |
|  - Vận chuyển linh kiện  |     |  - Phân phát thuốc tự động|
|  - Tránh xe nâng & người |     |  - Di chuyển sảnh đông   |
+--------------------------+     +--------------------------+
  • Nhà máy sản xuất thông minh: Robot vận chuyển nguyên vật liệu giữa các dây chuyền lắp ráp trong môi trường có công nhân và xe nâng qua lại liên tục.
  • Logistics bệnh viện: Vận chuyển thuốc, mẫu xét nghiệm và rác thải y tế tự động qua các hành lang đông đúc mà không gây cản trở y bác sĩ.

Hướng dẫn triển khai hệ thống (Deployment Guide)

  1. Yêu cầu hệ thống phần cứng tối thiểu:
    • Máy tính nhúng: Raspberry Pi 4 Model B (RAM $\ge 4\text{ GB}$).
    • Cảm biến: RPLidar A1M8 ($360^\circ$, tầm quét $12\text{ m}$, tần số lấy mẫu $8\text{ kHz}$), MPU6050/MPU9250.
    • Nguồn điện: Pin Li-ion 24V - 4000mAh (xả tối thiểu 10C), mạch hạ áp LM2596S cấp nguồn 5V/3A cho SBC.
  2. Quy trình khởi chạy phần mềm:
    # Bước 1: Khởi động ROS Core và kết nối vi điều khiển
    roscore &
    rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200 &
    
    # Bước 2: Khởi chạy cảm biến LiDAR và EKF Odometry
    roslaunch rplidar_ros rplidar.launch &
    roslaunch robot_pose_ekf ekf_localization.launch &
    
    # Bước 3: Nạp bản đồ tĩnh và khởi chạy bộ điều khiển MPC
    rosrun map_server map_server map_workspace.yaml &
    rosrun mpc_controller mpc_tracking_node
    

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

  • Hạn chế kỹ thuật:
    • Giả định vật cản chuyển động với vận tốc tuyến tính không đổi; chưa xử lý tốt trường hợp vật cản đổi hướng đột ngột với gia tốc lớn.
    • LiDAR 2D đơn tầng quét bị điểm mù đối với các chướng ngại vật nằm ngoài mặt phẳng quét ngang (như gầm bàn cao hoặc vật thể treo).
  • Hướng phát triển:
    • Tích hợp thuật toán dự báo quỹ đạo chuyển động phi tuyến của vật cản bằng mạng nơ-ron LSTM hoặc Unscented Kalman Filter (UKF).
    • Nâng cấp cảm biến sang 3D LiDAR hoặc RGB-D Depth Camera kết hợp thuật toán OctoMap để điều hướng trong không gian 3D.
    • Chuyển đổi toàn bộ kiến trúc sang ROS 2 (Humble/Iron) với hệ thống mạng thời gian thực DDS và khả năng quản lý đội nhóm robot (Fleet Management).

Đố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ử, Robotics: Nắm vững tài liệu tham khảo hoàn chỉnh từ mô hình hóa toán học, thiết kế CAD/PCB đến thuật toán điều khiển nâng cao MPC và SLAM trên ROS.
  • Kỹ sư nghiên cứu & phát triển (R&D Developers): Kế thừa mã nguồn CasADi/IPOPT giải bài toán tối ưu MPC phi tuyến thời gian thực áp dụng trực tiếp cho các hệ thống tự hành.
  • Doanh nghiệp sản xuất chế tạo AMR/AGV: Sở hữu giải pháp công nghệ tự chủ, tối ưu chi phí linh kiện phần cứng mà vẫn đảm bảo độ tin cậy và an toàn vận hành.

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

1. Yêu cầu cấu hình phần cứng tối thiểu để chạy thuật toán MPC trong đề tài là gì?

Hệ thống yêu cầu tối thiểu vi xử lý Quad-Core ARM Cortex-A72 @ 1.5GHz (tương đương Raspberry Pi 4 Model B bản 4GB RAM) chạy trên Ubuntu 20.04 LTS và ROS Noetic. Tần số tối ưu hóa được cấu hình ở mức $20\text{ Hz}$ với $N=15$ bước dự báo để đảm bảo tính thời gian thực.

2. Làm thế nào để giải quyết vấn đề trễ tính toán khi số lượng vật cản động tăng lên?

Khi số lượng vật cản động tăng, hàm ràng buộc khoảng cách sẽ tăng tương ứng. Giải pháp là áp dụng cơ chế lọc không gian: chỉ đưa vào bài toán tối ưu MPC tối đa 3 vật cản gần nhất nằm trong hình quạt cảnh báo phía trước robot (bán kính $2\text{ m}$, góc mở $\pm 60^\circ$).

3. Tại sao đồ án chọn Hector SLAM thay vì Gmapping hay Cartographer?

Hector SLAM sử dụng kỹ thuật Scan Matching trực tiếp dựa trên tần số quét cao của RPLidar A1M8 mà không bắt buộc phải có dữ liệu Odometry chính xác ở bước khởi tạo. Điều này giúp giảm thiểu sai số tích lũy ban đầu do trượt bánh trước khi đưa vào dung hợp EKF.

4. Thuật toán xử lý thế nào khi không tìm được nghiệm tối ưu (Infeasible Solution)?

Khi bộ giải IPOPT không hội tụ trong ngưỡng max_iter = 50 hoặc không tìm được nghiệm khả thi (ví dụ khi bị bao vây hoàn toàn), hệ thống sẽ kích hoạt chế độ an toàn (Recovery Behavior): phát lệnh $v=0\text{ m/s}, \omega=0\text{ rad/s}$ để dừng robot tức thì và tái lập kế hoạch đường đi toàn cục với thuật toán A*.

5. Chi phí ước tính để chế tạo hoàn thiện mô hình robot là bao nhiêu?

Tổng chi phí chế tạo phần cứng nguyên mẫu (bao gồm 2 động cơ Brushless kèm driver, khung nhôm định hình, cảm biến RPLidar A1M8, Raspberry Pi 4, pin 24V và mạch PCB) ước tính khoảng 8.500.000 - 10.500.000 VNĐ, thấp hơn đáng kể so với các kit robot giáo dục và công nghiệp tương đương trên thị trường.


Kết luận

Đồ án tốt nghiệp "Thiết kế bộ điều khiển dự báo chuyển động cho robot di động vi sai tránh vật cản động" đã hoàn thành xuất sắc các mục tiêu nghiên cứu từ cơ sở lý thuyết đến thực nghiệm vật lý. Bằng việc kết hợp thành công thuật toán định vị lập bản đồ Hector SLAM, bộ lọc trạng thái EKF và bộ điều khiển dự báo mô hình MPC phi tuyến giải bởi CasADi/IPOPT, robot đã chứng minh khả năng di chuyển linh hoạt, bám sát quỹ đạo toàn cục và né tránh chính xác các chướng ngại vật chuyển động phức tạp trong không gian thực tế. Đề tài mở ra tiềm năng ứng dụng to lớn trong việc nội địa hóa công nghệ chế tạo AMR thông minh phục vụ cho các nhà máy và kho vận tự động hóa tại Việt Nam.