Giới thiệu dự án

Trong kỷ nguyên Công nghiệp 4.0 và sự bùng nổ của chuỗi cung ứng thông minh, robot di động tự hành (Autonomous Mobile Robot - AMR / Automated Guided Vehicle - AGV) đóng vai trò xương sống tại các nhà kho thông minh, nhà máy sản xuất tự động và cơ sở y tế. Theo các báo cáo thị trường logistics toàn cầu, việc tự động hóa khâu vận chuyển nội bộ giúp tăng hiệu suất vận hành lên hơn 40% và giảm thiểu 70% rủi ro va chạm do con người. Tuy nhiên, bài toán cốt lõi và then chốt quyết định sự thành bại của AMR chính là hệ thống định vị chính xác trong không gian thực (Localization System).

Vấn đề thực tiễn (Problem Statement)

Định vị robot trong nhà (indoor localization) gặp phải nhiều rào cản kỹ thuật nghiêm trọng:

  • Tín hiệu GPS hoàn toàn bị suy hao hoặc không khả dụng trong môi trường kín.
  • Phương pháp định vị quán tính thuần túy qua bánh xe (Dead Reckoning / Wheel Odometry) bị tích lũy sai số theo thời gian (drift error) do hiện tượng trượt bánh (wheel slippage), ma sát không đều và sai số cơ khí.
  • Cảm biến IMU tầm trung dễ bị trôi góc yaw do nhiễu nhiệt và từ trường cục bộ.
  • Các cảm biến đơn lẻ như UWB (Ultra-Wideband) hay LiDAR gặp hiện tượng mất tầm nhìn (Non-Line-of-Sight - NLOS) hoặc phản xạ bề mặt.

Mục tiêu dự án (Project Objectives)

  1. Thiết kế và mô hình hóa động học, động lực học cho robot di động 2 bánh vi sai (Differential Drive Robot) tích hợp động cơ DC Servo và encoder.
  2. Nghiên cứu và hiện thực hóa thuật toán dung hợp cảm biến dựa trên Bộ lọc Kalman mở rộng (Extended Kalman Filter - EKF) để kết hợp đồng thời 4 nguồn dữ liệu: Wheel Encoder, IMU MPU-9250 (9-DOF), UWB DWM1001C và RPLiDAR A1M8.
  3. Xây dựng hệ thống điều khiển phân tầng (Two-Tier Embedded Architecture) gồm vi điều khiển thời gian thực STM32F405RGT6 (tầng thấp) và máy tính nhúng Linux Jetson Nano chạy ROS (tầng cao).
  4. Đánh giá, kiểm chứng thuật toán trên cả mô phỏng MATLAB/Simulink và mô hình thực tế, giảm thiểu tối đa sai số vị trí $RMSE$ và góc hướng.

Phương pháp tiếp cận (Solution Approach)

Đồ án lựa chọn phương pháp Sensor Fusion phi tuyến tính bằng Extended Kalman Filter (EKF). Vận tốc tuyến tính ($v$) và vận tốc góc ($\omega$) từ Encoder và IMU được đưa vào giai đoạn Dự đoán (Prediction Stage), trong khi tọa độ tuyệt đối từ hệ thống UWB và LiDAR AMCL được đưa vào giai đoạn Cập nhật (Update Stage) với ma trận hiệp phương sai nhiễu $R$ thích ứng.

       +-----------------------------------------------------------+
       |                   JETSON NANO (High-Level)                |
       |  - ROS Core, EKF State Estimation, AMCL Navigation        |
       |  - Inputs: RPLiDAR A1M8 (USB), UWB DWM1001C (UART/I2C)    |
       +-----------------------------+-----------------------------+
                                     | UART / Serial Interface
       +-----------------------------v-----------------------------+
       |                STM32F405RGT6 MCU (Low-Level)              |
       |  - Discrete PID Speed Control Loop (Ts = 7.3ms)           |
       |  - Inputs: MPU-9250 (I2C 400kHz), Optical Encoders (TIM)  |
       |  - Outputs: PWM Motor Driver (H-Bridge MD36NP27P)         |
       +-----------------------------------------------------------+

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

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

Giải pháp định vị Ưu điểm Nhược điểm Chi phí Độ chính xác vị trí
Pure Wheel Odometry Tần số lấy mẫu cao ($>100\text{ Hz}$), chi phí rất thấp. Sai số tích lũy không giới hạn do trượt bánh và sai số bán kính. Rất thấp Kém ($>0.5\text{ m}$ sau $10\text{ m}$ di chuyển)
Odometry + IMU (Gyro) Khử được sai số quay tức thời, phản hồi nhanh. Vẫn tích lũy sai số trôi tịnh tiến (drift) theo thời gian. Thấp Trung bình ($0.2 - 0.4\text{ m}$)
UWB Triangulation đơn lẻ Định vị tuyệt đối toàn cục, không trôi tích lũy. Dễ bị nhiễu đa đường (multipath), giật bước nhảy tọa độ. Trung bình Tốt ($\pm 0.1 - 0.15\text{ m}$)
LiDAR AMCL đơn lẻ Độ chính xác cao trong môi trường giàu đặc trưng. Chi phí tính toán cao, mất dấu khi môi trường đối xứng/trống. Cao Cao ($\pm 0.05\text{ m}$)
Đề xuất: EKF Fusion (Odometry + IMU + UWB + LiDAR) Tận dụng ưu điểm định vị tương đối (tần số cao) & tuyệt đối (khử trôi), ổn định cao. Thuật toán phức tạp, yêu cầu đồng bộ thời gian và cân chỉnh ma trận nhiễu. Tối ưu Rất cao ($\le 0.02 - 0.04\text{ m}$)

Ưu tiên yêu cầu hệ thống (MoSCoW)

  • Must have: Bộ lọc EKF dung hợp Encoder + IMU + UWB; Bộ điều khiển PID số ổn định tốc độ động cơ DC; Giao tiếp truyền thông tin cậy giữa STM32 và Jetson Nano.
  • Should have: Tích hợp quét 2D LiDAR RPLiDAR A1M8 để tránh vật cản và hiệu chỉnh góc Yaw qua AMCL.
  • Could have: Thuật toán lọc góc Madgwick 9-DOF bù góc nghiêng trực tiếp trên vi điều khiển.
  • Won't have (lần này): Thuật toán 3D SLAM và Visual Odometry bằng Camera Stereo.

Thiết kế hệ thống

1. Mô hình toán học động học Robot vi sai (Differential Drive Kinematics)

Trạng thái của robot tại bước rời rạc $k$ được định nghĩa bởi vector trạng thái: $$x_k = \begin{bmatrix} x_k & y_k & \theta_k \end{bmatrix}^T$$

Phương trình trạng thái phi tuyến mô tả chuyển động với chu kỳ lấy mẫu $T_s$: $$\begin{bmatrix} x_k \ y_k \ \theta_k \end{bmatrix} = \begin{bmatrix} x_{k-1} \ y_{k-1} \ \theta_{k-1} \end{bmatrix} + \begin{bmatrix} v_{k-1} T_s \cos\left(\theta_{k-1} + \frac{1}{2} T_s \omega_{k-1}\right) \ v_{k-1} T_s \sin\left(\theta_{k-1} + \frac{1}{2} T_s \omega_{k-1}\right) \ T_s \omega_{k-1} \end{bmatrix}$$

Trong đó $v_{k-1}$ và $\omega_{k-1}$ là vận tốc dài và vận tốc góc của robot được tính từ vận tốc góc của 2 bánh xe $(\omega_R, \omega_L)$: $$v = \frac{R}{2}(\omega_R + \omega_L), \quad \omega = \frac{R}{L}(\omega_R - \omega_L)$$ với $R = 0.0625\text{ m}$ (bán kính bánh xe) và $L = 0.370\text{ m}$ (khoảng cách giữa hai bánh xe).

2. Technology Stack & Thông số kỹ thuật chi tiết

  • Tầng tính toán cao cấp (High-Level Controller):
    • Board: NVIDIA Jetson Nano (CPU Quad-Core ARM Cortex-A57 @ 1.43 GHz, GPU 128-core Maxwell, 4GB 64-bit LPDDR4).
    • Hệ điều hành: Ubuntu 18.04 LTS tích hợp ROS Melodic (Robot Operating System).
    • Ngôn ngữ: C++11, Python 3.6/3.8, NumPy, SciPy.
  • Tầng điều khiển thời gian thực (Low-Level Controller):
    • Vi điều khiển: STM32F405RGT6 (ARM Cortex-M4 @ 168 MHz, FPU, 1MB Flash, 192KB SRAM).
    • Bộ truyền động: 02 Động cơ DC Servo MD36NP27P kèm hộp số giảm tốc $1:27$, tích hợp Optical Encoder $500\text{ xung/vòng}$ ($2000\text{ count/vòng}$ sau nhân 4).
    • Mạch công suất: H-Bridge MOSFET kép $8-32\text{V}$, dòng định mức $8\text{A}$, đỉnh $200\text{W}$.
  • Cảm biến chuyên dụng:
    • IMU: TDK InvenSense MPU-9250 (9 trục: 3-axis Gyroscope, 3-axis Accelerometer, 3-axis Magnetometer AK8963), giao tiếp I2C $400\text{ kHz}$.
    • UWB: Decawave DWM1001C (IEEE 802.15.4-2011 UWB), hỗ trợ giao tiếp UART/SPI, sai số định vị gốc $\le 10\text{ cm}$.
    • LiDAR: Slamtec RPLiDAR A1M8-R5 (Góc quét $360^\circ$, tần số quét $5.5 - 10\text{ Hz}$, khoảng cách đo $0.15 - 12\text{ m}$, tần số lấy mẫu $8000\text{ points/s}$).

Phương pháp nghiên cứu và nhận dạng hệ thống (Methodology)

Nhận dạng hàm truyền động cơ thực tế thông qua MATLAB System Identification Toolbox với tín hiệu kích thích PRBS (Pseudo-Random Binary Sequence), chu kỳ lấy mẫu $T_s = 0.005\text{ s}$:

  • Hàm truyền rời rạc nhận dạng được đạt độ khớp thực nghiệm $96.44%$: $$G(z) = \frac{0.0251}{z - 0.7937}$$
  • Thiết kế bộ điều khiển PID số (Discrete PID) với $T_s = 0.007311\text{ s}$, đảm bảo Gain Margin đạt vô cùng ($\text{Inf dB}$) và Phase Margin đạt $90^\circ$, hệ kín ổn định tuyệt đối.

Implementation và kết quả

Chi tiết thuật toán EKF Dung hợp đa cảm biến

Thuật toán Extended Kalman Filter được chia thành 2 pha liên tục:

[ Trạng thái trước x_{k-1}, P_{k-1} ]
   [ Trạng thái tối ưu x_k, P_k ]

1. Pha dự đoán (Prediction Step)

Tính toán Jacobian ma trận trạng thái $F_k$ và ma trận nhiễu quá trình $W_k$: $$F_k = \begin{bmatrix} 1 & 0 & -T_s v_{k-1} \sin\left(\theta_{k-1} + \frac{1}{2} T_s \omega_{k-1}\right) \ 0 & 1 & T_s v_{k-1} \cos\left(\theta_{k-1} + \frac{1}{2} T_s \omega_{k-1}\right) \ 0 & 0 & 1 \end{bmatrix}$$

$$W_k = \begin{bmatrix} T_s \cos(\theta_{k-1}) & 0 \ T_s \sin(\theta_{k-1}) & 0 \ 0 & T_s \end{bmatrix}$$

Cập nhật hiệp phương sai dự đoán: $$\bar{P}k = F_k P{k-1} F_k^T + W_k Q_{k-1} W_k^T$$ với $Q_k = \text{diag}(\sigma_v^2, \sigma_\omega^2)$ là ma trận hiệp phương sai nhiễu vận tốc động cơ xác định qua kiểm chứng thống kê Gauss: $\sigma_v = 0.012\text{ m/s}, \sigma_\omega = 0.024\text{ rad/s}$.

2. Pha cập nhật đo lường (Measurement Update Step)

Khi nhận bản tin đo từ UWB $z_k = [x_{UWB}, y_{UWB}]^T$: $$H_{UWB} = \begin{bmatrix} 1 & 0 & 0 \ 0 & 1 & 0 \end{bmatrix}, \quad R_{UWB} = \begin{bmatrix} \text{var}(x_{uwb}) & 0 \ 0 & \text{var}(y_{uwb}) \end{bmatrix}$$

Tính ma trận Kalman Gain $K_k$ và cập nhật trạng thái tối ưu: $$K_k = \bar{P}_k H_k^T (H_k \bar{P}_k H_k^T + R_k)^{-1}$$ $$\hat{x}_k = \bar{x}_k + K_k (z_k - H_k \bar{x}_k)$$ $$P_k = (I - K_k H_k) \bar{P}_k$$

3. Mã nguồn thực thi thuật toán EKF (C++ / ROS Node snippet)

#include <ros/ros.h>
#include <Eigen/Dense>
#include <geometry_msgs/PoseWithCovarianceStamped.h>

class AMR_EKF_Fusion {
private:
    Eigen::Vector3d x_est; // [x, y, theta]
    Eigen::Matrix3d P_cov; // Hiệp phương sai trạng thái
    Eigen::Matrix2d Q_noise; // Nhiễu quá trình [var_v, var_w]
    double Ts;

public:
    AMR_EKF_Fusion(double sample_time) : Ts(sample_time) {
        x_est.setZero();
        P_cov = Eigen::Matrix3d::Identity() * 0.01;
        Q_noise << 0.000144, 0.0,
                   0.0,      0.000576;
    }

    void predict(double v, double omega) {
        double theta = x_est(2);
        double half_w_dt = 0.5 * omega * Ts;
        
        // Cập nhật trạng thái phi tuyến
        x_est(0) += v * Ts * std::cos(theta + half_w_dt);
        x_est(1) += v * Ts * std::sin(theta + half_w_dt);
        x_est(2) += omega * Ts;
        
        // Chuẩn hóa góc theta [-pi, pi]
        x_est(2) = std::atan2(std::sin(x_est(2)), std::cos(x_est(2)));

        // Jacobian Fk
        Eigen::Matrix3d Fk = Eigen::Matrix3d::Identity();
        Fk(0, 2) = -v * Ts * std::sin(theta + half_w_dt);
        Fk(1, 2) =  v * Ts * std::cos(theta + half_w_dt);

        // Jacobian Wk
        Eigen::Matrix<double, 3, 2> Wk;
        Wk << Ts * std::cos(theta), 0.0,
              Ts * std::sin(theta), 0.0,
              0.0,                  Ts;

        P_cov = Fk * P_cov * Fk.transpose() + Wk * Q_noise * Wk.transpose();
    }

    void updateUWB(double z_x, double z_y, double var_x, double var_y) {
        Eigen::Matrix<double, 2, 3> H;
        H << 1.0, 0.0, 0.0,
             0.0, 1.0, 0.0;

        Eigen::Matrix2d R;
        R << var_x, 0.0,
             0.0,   var_y;

        Eigen::Vector2d z(z_x, z_y);
        Eigen::Vector2d z_pred = H * x_est;
        Eigen::Vector2d y_residual = z - z_pred;

        Eigen::Matrix2d S = H * P_cov * H.transpose() + R;
        Eigen::Matrix<double, 3, 2> K = P_cov * H.transpose() * S.inverse();

        x_est = x_est + K * y_residual;
        P_cov = (Eigen::Matrix3d::Identity() - K * H) * P_cov;
    }
};

Kiểm chứng thực nghiệm và Đánh giá hiệu năng

Hệ thống được thử nghiệm trên 3 quỹ đạo di chuyển chuẩn:

  1. Quỹ đạo đường tròn (Circular path): Bán kính $R = 1.0\text{ m}$, vận tốc $v = 0.2\text{ m/s}$.
  2. Quỹ đạo hình chữ nhật (Rectangular path): Kích thước $3.0\text{ m} \times 2.0\text{ m}$.
  3. Quỹ đạo hỗn hợp ngoằn ngoèo (S-Curve & Random Waypoints): Chiều dài tổng $25\text{ m}$.
Tiêu chí đánh giá Pure Dead Reckoning (Odometry thuần) Odometry + IMU (MPU9250) UWB Định vị thô Đề xuất: EKF Fusion (Encoder+IMU+UWB+LiDAR)
Max Position Error ($e_{max}$) $0.482\text{ m}$ $0.215\text{ m}$ $0.145\text{ m}$ $0.028\text{ m}$
RMSE Vị trí ($X-Y$) $0.312\text{ m}$ $0.128\text{ m}$ $0.098\text{ m}$ $0.016\text{ m}$
Sai số góc hướng Yaw ($RMSE_\theta$) $8.45^\circ$ $2.10^\circ$ N/A $0.65^\circ$
Thời gian trễ tính toán (Latency) $< 1\text{ ms}$ $< 2\text{ ms}$ $10\text{ ms}$ $4.2\text{ ms}$ trên Jetson Nano
So sánh tích lũy sai số RMSE theo quãng đường di chuyển (25 mét):

Sai số (m)
0.40 |                                          .... [Pure Odometry]
0.30 |                             ............
0.20 |                  ...........             ---- [Odom + IMU]
0.10 |        ---------                         -.-. [UWB Raw]
     0m        5m        10m       15m       25m

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

  1. Kiến trúc dung hợp phi tuyến đa nguồn thích ứng: Đồ án không chỉ dừng lại ở việc lọc nhiễu 2 cảm biến thông thường mà kết hợp 4 lớp dữ liệu vật lý (Encoder tốc độ cao, Gia tốc & Con quay hồi chuyển 9 trục từ MPU-9250, Sóng vô tuyến cực rộng UWB DWM1001C và Quét laser RPLiDAR).
  2. Triển khai kiến trúc nhúng phân tầng tối ưu tài nguyên:
    • Tầng vi điều khiển ARM Cortex-M4 xử lý đọc encoder tần số $200\text{ Hz}$, tính toán bộ lọc AHRS Madgwick và điều khiển PID motor với chu kỳ chính xác $7.311\text{ ms}$.
    • Tầng máy tính nhúng Jetson Nano xử lý thuật toán EKF, giải ma trận đại số tuyến tính bằng thư viện Eigen C++ và phân phối message qua ROS Master không gây quá tải CPU ($< 25%$ CPU load).
  3. Cải thiện độ chính xác vượt bậc: Giảm thiểu $94.8%$ sai số vị trí RMSE so với phương pháp đo bước thuần túy (Dead Reckoning) và cải thiện $83.6%$ độ ổn định định vị so với việc chỉ sử dụng UWB độc lập.

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

Kịch bản ứng dụng trong nhà máy thông minh (Real-World Use Cases)

  • Hệ thống xe tự hành AGV kéo hàng / nâng hàng trong kho bãi Logistics: Duy trì vị trí chính xác ở mức milimet khi cập bến docking station để sạc pin tự động hoặc lấy hàng pallet.
  • Robot khử khuẩn và vận chuyển mẫu phẩm trong bệnh viện: Di chuyển tự động qua các hành lang dài, khu vực nhiều cửa kính (nơi LiDAR dễ bị tán xạ, cần UWB bù đắp).
+--------------------------------------------------------------------------+
|                          HẠ TẦNG TRIỂN KHAI THỰC TẾ                      |
|                                                                          |
|    [UWB Anchor 1] (0, 0, 2.5m)               [UWB Anchor 2] (10m, 0, 2.5m)|
|           *                                         *                    |
|    [UWB Anchor 4] (0, 8m, 2.5m)              [UWB Anchor 3] (10m, 8m, 2.5m)|
+--------------------------------------------------------------------------+

Phân tích chi phí & Lợi ích đầu tư (Cost-Benefit & ROI Analysis)

  • Chi phí phần cứng: Toàn bộ phần cứng nghiên cứu (Jetson Nano, STM32, MPU9250, DWM1001C, RPLidar, Động cơ, Khung xe) có chi phí chế tạo dưới 15.000.000 VNĐ (~$650 USD), chỉ bằng $1/10$ so với các hệ thống công nghiệp nhập khẩu (thường từ $5.000 - $10.000 USD).
  • Thời gian hoàn vốn (ROI): Trong nhà xưởng quy mô vừa ($500 - 2000\text{ m}^2$), việc tự chủ công nghệ điều khiển và định vị giúp doanh nghiệp thu hồi vốn đầu tư trong vòng 6 - 9 tháng nhờ giảm chi phí nhân công vận hành ban đêm và giảm thiểu hư hao do va chạm hàng hóa.

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

Hạn chế kỹ thuật

  • Vật cản che khuất sóng UWB (NLOS): Khi robot đi vào góc khuất có nhiều kệ kim loại dày đặc, tín hiệu UWB bị tán xạ dẫn đến nhiễu đột biến nếu không có cơ chế loại bỏ điểm ngoại lai (Outlier Rejection).
  • Hạn chế phần cứng 2D LiDAR: RPLiDAR A1M8 sử dụng cơ chế quay quang học ngoài trời dễ bị ảnh hưởng bởi ánh sáng mặt trời mạnh và không phát hiện được vật cản ở độ cao nằm ngoài mặt phẳng quét ngang.

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

  1. Tích hợp Unscented Kalman Filter (UKF) hoặc Factor Graph Optimization: Nâng cao khả năng xử lý phi tuyến tính mạnh mẽ hơn so với xấp xỉ đạo hàm bậc 1 của EKF.
  2. Nâng cấp cảm biến Visual-Inertial Odometry (VIO): Bổ sung Camera Stereo (như Intel RealSense D435i) kết hợp thuật toán ORB-SLAM3 để tăng cường độ chính xác khi UWB bị mất tín hiệu hoàn toàn.
  3. Mở rộng cho đội hình đa robot (Multi-Robot Fleet Management): Đồng bộ hóa bản đồ và tọa độ phân tán thông qua giao thức ROS 2 DDS.

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

  • Sinh viên & Học viên ngành Cơ điện tử, Tự động hóa, Robotics: Nguồn tài liệu thực chứng hoàn chỉnh từ việc mô hình hóa toán học vi sai, nhận dạng hàm truyền động cơ thực nghiệm đến lập trình bộ lọc EKF thực tế.
  • Kỹ sư phát triển hệ thống nhúng (Embedded Developers): Mẫu kiến trúc giao tiếp phân tầng chuẩn giữa vi điều khiển thời gian thực STM32 và máy tính nhúng Linux chạy ROS, tối ưu hóa băng thông truyền thông UART/DMA.
  • Doanh nghiệp vừa và nhỏ (SMEs / Startups Logistics): Giải pháp công nghệ định vị AMR tự chủ với chi phí linh kiện thấp, khả năng tùy biến cao, không phụ thuộc vào hạ tầng đường ray từ tính cố định.
  • Các nhóm nghiên cứu Robot tự hành: Bộ dữ liệu kiểm chứng và ma trận hiệp phương sai mẫu ($Q, R$) đã được cân chỉnh chuẩn xác qua thực nghiệm.

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

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

Hệ thống yêu cầu tối thiểu một vi điều khiển 32-bit có bộ tính toán dấu phẩy động FPU (như STM32F4/F7/H7) để xử lý PID và IMU, kết hợp với máy tính nhúng tối thiểu 2GB RAM chạy Linux (Raspberry Pi 4 hoặc NVIDIA Jetson Nano) để chạy ROS và EKF Fusion.

2. Tại sao không dùng bộ lọc Kalman tiêu chuẩn (Standard KF) mà phải dùng EKF?

Robot di động 2 bánh vi sai có mô hình động học phi tuyến tính do chứa các hàm lượng giác $(\cos\theta, \sin\theta)$. Bộ lọc Kalman tiêu chuẩn chỉ áp dụng cho hệ thống tuyến tính. Do đó, EKF là bắt buộc để tuyến tính hóa mô hình trạng thái thông qua các ma trận đạo hàm riêng Jacobian ($F_k, H_k$) tại từng điểm làm việc.

3. Làm thế nào để loại bỏ nhiễu khi UWB bị che khuất (NLOS)?

Trong thuật toán cập nhật EKF, ta có thể tích hợp khoảng cách Mahalanobis để kiểm tra tính hợp lệ của vector phần dư đo lường ($y_k = z_k - H_k \bar{x}_k$). Nếu phần dư vượt quá ngưỡng tin cậy chi-square ($\chi^2$), phép đo UWB đó sẽ bị loại bỏ và hệ thống tạm thời chỉ tin cậy vào Encoder và IMU.

4. Hệ thống có hoạt động được khi mất kết nối WiFi không?

Có. Toàn bộ thuật toán EKF, giải mã tín hiệu cảm biến và điều khiển động cơ đều được tính toán on-board (trực tiếp tại chỗ) trên Jetson Nano và STM32, không phụ thuộc vào máy chủ đám mây hay mạng WiFi ngoài. WiFi chỉ dùng để giám sát và gửi lệnh điều hướng cấp cao.

5. Chi phí lắp đặt các mốc UWB Anchor trong nhà xưởng như thế nào?

Để định vị 2D ($X-Y$), nhà xưởng chỉ cần tối thiểu 3 đến 4 module UWB Anchor gắn cố định tại các góc tường ở độ cao $2.5 - 3\text{ m}$. Chi phí cho 4 module Anchor DWM1001C chỉ khoảng 3.000.000 - 4.000.000 VNĐ, dễ dàng lắp đặt và cấu hình tọa độ tự động.


Kết luận

Đề tài nghiên cứu đã giải quyết trọn vẹn và tối ưu bài toán nâng cao độ chính xác định vị cho Robot di động tự hành (AMR) thông qua phương pháp dung hợp đa cảm biến bằng Bộ lọc Kalman mở rộng (EKF). Bằng việc kết hợp hài hòa giữa Encoder cơ khí, con quay hồi chuyển 9-DOF MPU-9250, sóng định vị UWB DWM1001C và mắt thần RPLiDAR trên nền tảng nhúng phân tầng STM32F405 + Jetson Nano, hệ thống đã đạt độ chính xác định vị ấn tượng với sai số $RMSE \le 0.016\text{ m}$, loại bỏ hoàn toàn hiện tượng trôi vị trí tích lũy. Đây là tiền đề vững chắc cho việc ứng dụng và nội địa hóa các dòng AMR/AGV chất lượng cao phục vụ các dây chuyền sản xuất thông minh tại Việt Nam.