Giới thiệu dự án

Trong kỷ nguyên Công nghiệp 4.0 và tự động hóa logistics, robot di động tự hành (Autonomous Mobile Robot - AMR) và xe tự hành dẫn đường (Automated Guided Vehicle - AGV) đóng vai trò then chốt trong việc tối ưu hóa năng suất chuỗi cung ứng toàn cầu. Theo các khảo sát công nghiệp, việc áp dụng hệ thống kho vận thông minh giúp giảm thiểu đến 40% chi phí vận hành và 70% tai nạn lao động. Tuy nhiên, thách thức cốt lõi đối với các hệ thống robot tự hành trong nhà chính là bài toán ước tính vị trí chính xác trong thời gian thực (Real-time Indoor Localization).

+-----------------------------------------------------------------------------+
|                          HỆ THỐNG ĐỊNH VỊ ROBOT TRONG NHÀ                   |
+------------------------------------+----------------------------------------+
|             THÁCH THỨC             |             GIẢI PHÁP ĐỀ XUẤT          |
+------------------------------------+----------------------------------------+
| * GNSS/GPS mất tín hiệu hoàn toàn  | * Mạng trạm UWB đa điểm (DS-TWR)       |
| * Dead-Reckoning tích lũy sai số   | * Cảm biến quét Laser LiDAR 2D         |
| * Môi trường mở thiếu đặc trưng    | * Fusion EKF (Encoder+IMU+LiDAR+UWB)   |
| * Hiện tượng trượt bánh cơ học     | * Nền tảng điều khiển phân tán qua ROS |
+------------------------------------+----------------------------------------+

Vấn đề kỹ thuật thực tế (Problem Statement)

  • Sự vô hiệu hóa của GNSS trong nhà: Hệ thống định vị vệ tinh toàn cầu (GPS/GNSS) bị suy giảm và phản xạ nghiêm trọng qua các kết cấu bê tông, kim loại, gây sai số từ vài mét đến hàng chục mét.
  • Hiện tượng trôi tích lũy (Cumulative Drift) của Dead-Reckoning: Phương pháp ước lượng vị trí dựa trên Encoder động cơ và Cảm biến quán tính (IMU) luôn tích lũy sai số theo thời gian do hiện tượng trượt bánh (wheel slippage) và sai số tích phân góc quay $\Delta \theta$.
  • Hạn chế của phương pháp LiDAR Scan-Matching thuần túy: Trong không gian rộng lớn, hành lang đối xứng hoặc thiếu vật cản đặc trưng (featureless environments), thuật toán AMCL (Adaptive Monte Carlo Localization) hoặc Hector SLAM dễ mất hội tụ và định vị sai tọa độ gốc ban đầu.

Mục tiêu đề tài

  1. Thiết kế và chế tạo hoàn chỉnh mô hình phần cứng robot di động dẫn động hai bánh vi sai (Differential Drive Mobile Robot) với tải trọng tối đa 5 kg, tốc độ tối đa 0.15 m/s.
  2. Thiết kế và thi công phần cứng module định vị băng tần siêu rộng UWB (Ultra-Wideband) dựa trên chip thu phát Decawave DWM1000 chuẩn IEEE 802.15.4a, triển khai giải thuật đo khoảng cách DS-TWR (Double-Sided Two-Way Ranging) và giải thuật định vị Trilateration 3D.
  3. Thiết kế và cài đặt thuật toán lọc Kalman mở rộng (Extended Kalman Filter - EKF) trên hệ điều hành Robot (ROS) để kết hợp dữ liệu đa cảm biến (Wheel Odometry, IMU 6-DOF, 2D LiDAR và UWB), nâng cao độ chính xác quỹ đạo chuyển động.

Phạm vi và giới hạn hệ thống

  • Mô hình động học: Robot dẫn động 2 bánh vi sai có thêm 1 bánh tự lựa (caster wheel) hỗ trợ cân bằng.
  • Môi trường hoạt động: Không gian trong nhà với các vật cản cố định, diện tích khảo sát thử nghiệm tiêu chuẩn.
  • Giới hạn vận hành: Tốc độ tuyến tính cực đại $v_{\max} = 0.15\text{ m/s}$, tải trọng làm việc ổn định $\le 5\text{ kg}$.

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

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

Hiện nay có nhiều công nghệ truyền thông không dây được ứng dụng cho Hệ thống định vị trong nhà (Indoor Positioning System - IPS). Bảng so sánh dưới đây phân tích các đặc tính kỹ thuật chính:

Công nghệ Băng tần hoạt động Độ chính xác Phạm vi phủ sóng Mức tiêu thụ năng lượng Khả năng chống nhiễu đa đường Chi phí phần cứng
RFID LF, HF, UHF 0.5 – 3 m Vài cm – 10 m Rất thấp (Passive) Kém Thấp
Wi-Fi (RSSI) 2.4 GHz / 5 GHz 1 – 5 m ~100 m Cao Rất kém Thấp (Tận dụng AP)
BLE (Beacon) 2.4 GHz 1 – 3 m 70 – 100 m Rất thấp Kém Trung bình
ZigBee 868/915 MHz, 2.4 GHz 2 – 5 m ~100 m Thấp Trung bình Trung bình
UWB (Đề xuất) 3.1 – 10.6 GHz 5 – 15 cm 10 – 50 m Trung bình Cực cao (Xung picosecond) Hợp lý

Ma trận ưu tiên yêu cầu hệ thống (MoSCoW)

  • Must Have (Bắt buộc): Truyền nhận dữ liệu cảm biến thời gian thực, thuật toán Trilateration tọa độ $(x, y)$, bộ lọc EKF dung hợp tối thiểu Encoder + IMU + UWB, giao tiếp đồng bộ ROS node.
  • Should Have (Nên có): Tích hợp bản đồ 2D Occupancy Grid Map từ RPLidar A1M8, hiển thị trực quan quỹ đạo trên Rviz và PlotJuggler.
  • Could Have (Có thể mở rộng): Giải thuật tối ưu hóa giảm thiểu tác động của hiện tượng vật cản phi tầm nhìn (Non-Line-of-Sight - NLOS).
  • Won't Have (Chưa thực hiện): Bộ điều khiển bám quỹ đạo phi tuyến nâng cao (MPC), hệ thống điều hướng trên địa hình gồ ghề 3D.

Thiết kế hệ thống

+----------------------------------------------------------------------------------+
|                             KIẾN TRÚC TỔNG THỂ HỆ THỐNG                          |
+----------------------------------------------------------------------------------+
                                                                                    
  [ Trạm UWB 1 ]      [ Trạm UWB 2 ]      [ Trạm UWB 3 ]   (Tọa độ trạm cố định)    
         \                   |                   /                                  
          \                  | (Sóng UWB DS-TWR)/                                   
           v                 v                 v                                    
     +--------------------------------------------------+                           
     |     Module UWB Tag (Decawave DWM1000 + MCU)      |                           
     +--------------------------------------------------+                           
                             | (UART/SPI)                                           
                             v                                                      
+----------------------------------------------------------------------------------+
|                     KHỐI XỬ LÝ TRUNG TÂM (JETSON NANO - ROS)                     |
|                                                                                  |
|  +------------------+   +-------------------+   +-----------------------------+  |
|  | /uwb_pose (Tag)  |   | /imu/data (MPU)   |   | /odom (Encoder) + /scan     |  |
|  +------------------+   +-------------------+   +-----------------------------+  |
|           \                       |                       /                      |
|            \                      |                      /                       |
|             v                     v                     v                        |
|       +-------------------------------------------------------+                  |
|       |     EKF MULTI-SENSOR FUSION NODE (robot_localization) |                  |
|       |       -> Ước lượng vector trạng thái: [x, y, yaw]      |                  |
|       +-------------------------------------------------------+                  |
|                                   |                                              |
|                                   v                                              |
|            +---------------------------------------------+                       |
|            | Output: /odometry/filtered -> Navigation /  |                       |
|            | Trajectory Tracking PID Controller          |                       |
|            +---------------------------------------------+                       |
+----------------------------------------------------------------------------------+
                                    | (PWM / Direction)                             
                                    v                                               
     +--------------------------------------------------+                           
     |    Driver TB6612 -> Động cơ DC JGB37-520         |                           
     +--------------------------------------------------+                           

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

  • Phần mềm điều khiển & mô phỏng:
    • Robot Operating System (ROS Noetic / Melodic trên nền Ubuntu Linux).
    • Phần mềm mô phỏng không gian vật lý 3D Gazebo 11.
    • Công cụ trực quan hóa dữ liệu Rviz và PlotJuggler 3.x.
    • Phần mềm thiết kế cơ khí 3D SolidWorks 2023.
  • Phần cứng vi xử lý & tính toán:
    • Máy tính nhúng Single Board Computer (SBC): NVIDIA Jetson Nano Developer Kit (4GB RAM).
    • Vi điều khiển cấp thấp (Low-level MCU): Arduino Mega 2560 (ATmega2560, 16 MHz).
  • Cảm biến và cơ cấu chấp hành:
    • Cảm biến đo khoảng cách Laser 2D 360 độ: RPLidar A1M8 (tần số quét 5.5 - 10 Hz, tầm quét 12 m).
    • Cảm biến quán tính 6-DOF IMU: MPU-6050 (kết nối qua I2C).
    • Cảm biến Encoder: Đĩa mã hóa quang học kép gắn trục động cơ.
    • Module vô tuyến UWB: Decawave DWM1000 (giao tiếp SPI/UART).
    • Động cơ: DC Servo giảm tốc JGB37-520 tích hợp Encoder, điều khiển qua IC cầu H TB6612FNG.
    • Nguồn cấp: Pin LiPo Ovonic Air 3S/11.1V kết hợp mạch hạ áp DC-DC Buck XY-3606.

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

Quy trình phát triển được xây dựng theo mô hình V-Model lặp kết hợp Agile Sprint với 4 giai đoạn trọng tâm:

[Khảo sát & Động học] -> [Thiết kế Phần cứng/3D] -> [Mô phỏng Gazebo] -> [Thực nghiệm EKF]
       (Sprint 1)                 (Sprint 2)              (Sprint 3)            (Sprint 4)
  1. Sprint 1 (Tuần 1 - 3): Xây dựng lý thuyết động học vi sai, mô hình toán học giải thuật DS-TWR và Trilateration, thiết kế 3D robot trên SolidWorks 2023.
  2. Sprint 2 (Tuần 4 - 6): Gia công khung robot 2 tầng, thiết kế mạch PCB tích hợp vi điều khiển và module DWM1000, thiết lập giao thức truyền thông UART, I2C, SPI.
  3. Sprint 3 (Tuần 7 - 10): Chuyển đổi mô hình SolidWorks sang URDF/Xacro, dựng môi trường vật lý trên Gazebo, cài đặt bộ lọc EKF mô phỏng với dữ liệu nhiễu Gaussian.
  4. Sprint 4 (Tuần 11 - 16): Triển khai mã nguồn thực tế lên Jetson Nano và Arduino Mega, thiết lập mạng Anchor UWB thực tế, hiệu chuẩn dữ liệu cảm biến và kiểm chứng sai số bám quỹ đạo qua PlotJuggler.

Implementation và kết quả

Quá trình phát triển và chi tiết giải thuật

1. Động học thuận vi sai (Differential Drive Kinematics)

Vector vị trí và tư thế của robot trong hệ tọa độ phẳng toàn cục: $$p = \begin{bmatrix} x_Q \ y_Q \ \theta \end{bmatrix}$$

Vận tốc góc và vận tốc tuyến tính của robot liên hệ với vận tốc hai bánh ($v_r, v_l$) qua ma trận Jacobian: $$\dot{p} = \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}$$

Trong đó $r$ là bán kính bánh xe, $2a$ là khoảng cách giữa 2 bánh dẫn động, $\omega_r, \omega_l$ là vận tốc góc bánh phải và bánh trái đo từ Encoder.

2. Kỹ thuật định vị UWB: Giải thuật Double-Sided Two-Way Ranging (DS-TWR)

Để triệt tiêu sai số trôi xung đồng hồ (clock drift error) giữa Tag và Anchor mà không cần đồng bộ pha tuyệt đối, khoảng thời gian truyền sóng hai chiều được tính: $$ToF = \frac{T_{1}' T_{2}' - T_{1} T_{2}}{2(T_{1}' + T_{2}' + T_{1} + T_{2})}$$ $$d = c \cdot ToF$$ (với $c \approx 2.99792458 \times 10^8\text{ m/s}$ là vận tốc ánh sáng).

3. Giải thuật Trilateration tuyến tính hóa ma trận

Gọi $(x_i, y_i)$ là tọa độ của Anchor thứ $i$, khoảng cách đo được từ Tag tới Anchor $i$ là $d_i$. Phương trình khoảng cách Euclid: $$(x - x_i)^2 + (y - y_i)^2 = d_i^2$$

Bằng cách chọn Anchor 1 làm gốc quy chiếu và tuyến tính hóa hiệu bình phương khoảng cách, ta có hệ phương trình ma trận $A \cdot r = b$: $$\begin{bmatrix} 2(x_2 - x_1) & 2(y_2 - y_1) \ 2(x_3 - x_1) & 2(y_3 - y_1) \end{bmatrix} \begin{bmatrix} x \ y \end{bmatrix} = \begin{bmatrix} d_1^2 - d_2^2 - (x_1^2 + y_1^2) + (x_2^2 + y_2^2) \ d_1^2 - d_3^2 - (x_1^2 + y_1^2) + (x_3^2 + y_3^2) \end{bmatrix}$$

Tọa độ Tag $(x, y)$ được giải trực tiếp bằng phương pháp nghịch đảo ma trận: $$r = (A^T A)^{-1} A^T b$$

4. Thuật toán dung hợp dữ liệu bằng Bộ lọc Kalman mở rộng (EKF)

Thuật toán EKF thực hiện hai bước lặp tuần hoàn liên tục:

  • Dự đoán trạng thái (Prediction): $$\hat{x}{k|k-1} = f(\hat{x}{k-1|k-1}, u_k)$$ $$P_{k|k-1} = F_k P_{k-1|k-1} F_k^T + Q_k$$
  • Cập nhật đo lường (Correction/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 (z_k - h(\hat{x}{k|k-1}))$$ $$P{k|k} = (I - K_k H_k) P_{k|k-1}$$

Trong đó $z_k = [x_{UWB}, y_{UWB}, \theta_{IMU}, \omega_{IMU}, v_{odom}]^T$, ma trận hiệp phương sai sai số đo lường $R_k$ và ma trận nhiễu hệ thống $Q_k$ được điều chỉnh tối ưu theo thực nghiệm.

#!/usr/bin/env python3
"""
Node ROS: Giai thuat Trilateration tinh toan toa do Tag tu mang Anchor UWB
"""
import rospy
import numpy as np
from geometry_msgs.msg import PoseWithCovarianceStamped

class UWBTrilaterationNode:
    def __init__(self):
        rospy.init_node('uwb_trilateration_node', anonymous=True)
        self.pub_pose = rospy.Publisher('/uwb_pose', PoseWithCovarianceStamped, queue_size=10)
        
        # Toa do co dinh cua 3 Anchor trong he toa do phong (meters)
        self.anchors = np.array([
            [0.0, 0.0],    # Anchor 1 (A1)
            [5.0, 0.0],    # Anchor 2 (A2)
            [2.5, 4.33]    # Anchor 3 (A3)
        ])
        self.k = np.sum(self.anchors**2, axis=1)

    def solve_trilateration(self, d):
        """
        Giai he phuong trinh tuyen tinh A * r = b
        d: array-like chua 3 khoang cach do duoc [d1, d2, d3]
        """
        A = np.array([
            [2 * (self.anchors[1, 0] - self.anchors[0, 0]), 2 * (self.anchors[1, 1] - self.anchors[0, 1])],
            [2 * (self.anchors[2, 0] - self.anchors[0, 0]), 2 * (self.anchors[2, 1] - self.anchors[0, 1])]
        ])
        
        b = np.array([
            d[0]**2 - d[1]**2 - self.k[0] + self.k[1],
            d[0]**2 - d[2]**2 - self.k[0] + self.k[2]
        ])
        
        try:
            pos = np.linalg.solve(A, b)
            return pos[0], pos[1]
        except np.linalg.LinAlgError:
            rospy.logwarn("Ma tran ky di - Khong the giai toa do Trilateration")
            return None, None

    def publish_uwb_pose(self, x, y):
        msg = PoseWithCovarianceStamped()
        msg.header.stamp = rospy.Time.now()
        msg.header.frame_id = "map"
        msg.pose.pose.position.x = x
        msg.pose.pose.position.y = y
        msg.pose.pose.position.z = 0.0
        # Gan ma tran hiep phuong sai do luong dac trung cua UWB
        msg.pose.covariance[0] = 0.04  # sigma_x^2 = (0.2m)^2
        msg.pose.covariance[7] = 0.04  # sigma_y^2 = (0.2m)^2
        self.pub_pose.publish(msg)

Kiểm thử và đánh giá hiệu năng

Hệ thống được kiểm thử thực nghiệm qua 3 kịch bản:

  1. Hệ thống 1: Dead-reckoning thuần túy (Encoder + IMU).
  2. Hệ thống 2: Dung hợp Dead-reckoning + 2D LiDAR Scan-matching.
  3. Hệ thống 3 (Đề xuất): Dung hợp Dead-reckoning + IMU + LiDAR + UWB Positioning System qua bộ lọc EKF.
+-----------------------------------------------------------------------------------+
|               SO SÁNH QUỸ ĐẠO BÁM THỰC TẾ (HÌNH CHỮ NHẬT 4m x 2m)                 |
+-----------------------------------------------------------------------------------+
  Y (m) ^
        |   +--------------------------+  <-- Quỹ đạo chuẩn (Ground Truth)
    2.0 |   |                          |
        |   |                          |  * Hệ thống 1 (Encoder+IMU): Trôi góc nghiêm trọng
        |   |   .-----------------.    |    (Sai số điểm cuối: > 0.65 m)
    1.0 |   |  /                 /     |
        |   | /                 /      |  * Hệ thống 2 (Thêm LiDAR): Mất vị trí ở vùng trơn
        |   |/                 /       |    (Sai số điểm cuối: ~ 0.28 m)
    0.0 +---+-----------------+--------+----> X (m)
        0.0        2.0        4.0         * Hệ thống 3 (Đề xuất - EKF UWB Fusion):
                                            Bám sát tuyệt đối (Sai số điểm cuối: < 0.08 m)

Bảng thông số hiệu năng thực nghiệm

Tiêu chí đánh giá Hệ thống 1 (Encoder + IMU) Hệ thống 2 (+ LiDAR AMCL) Hệ thống 3 (+ UWB EKF - Đề tài) Mức độ cải thiện
Sai số vị trí trung bình (RMSE Position) $0.482\text{ m}$ $0.215\text{ m}$ $0.068\text{ m}$ Giảm 85.8% so với Hệ 1
Sai số điểm cuối quỹ đạo kín (Loop Closure Error) $0.650\text{ m}$ $0.280\text{ m}$ $0.075\text{ m}$ Giảm 88.4% so với Hệ 1
Sai số góc hướng (Orientation Error - Yaw) $12.4^\circ$ $4.8^\circ$ $1.9^\circ$ Giảm 84.6%
Khả năng tự khôi phục tọa độ khi lệch gốc (Relocalization) Thất bại Kém (chậm) Tức thời ($< 100\text{ ms}$) Hoàn toàn tự động
Độ trễ xử lý thuật toán (Processing Latency) $2.1\text{ ms}$ $35.4\text{ ms}$ $12.8\text{ ms}$ Đạt chuẩn Real-time

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

  1. Triệt tiêu hoàn toàn sự tích lũy sai số trôi (Drift Elimination): Bằng việc tích hợp các mốc tham chiếu không gian tuyệt đối từ hệ thống UWB đa trạm, robot loại bỏ hoàn toàn hiện tượng lệch quỹ đạo tích lũy của Dead-reckoning khi di chuyển trong thời gian dài.
  2. Khắc phục triệt để vùng mù của thuật toán LiDAR Scan-Matching: Trong các môi trường nhà kho rộng, tường phẳng đối xứng không có cạnh góc, việc có thêm luồng tọa độ UWB giúp thuật toán EKF duy trì vector trạng thái ổn định với độ tin cậy cao ($p < 0.05$).
  3. Phần cứng tùy biến tối ưu chi phí: Thiết kế thành công module mạch tích hợp vi điều khiển và chip thu phát DWM1000 hai mặt nhỏ gọn, giao tiếp thông suốt qua chuẩn UART tốc độ cao (Baudrate 115200 bps) với Jetson Nano, thay thế các hệ thống UWB công nghiệp đắt đỏ.
  4. Kiến trúc phần mềm chuẩn hóa trên ROS: Toàn bộ thuật toán được đóng gói thành các ROS Package độc lập, dễ dàng tái sử dụng trên bất kỳ cấu hình robot di động nào (Ackermann, Mecanum, Omnidirectional).

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

Kịch bản ứng dụng thực tế

  • Robot vận chuyển trong kho Logistics thông minh (Smart Warehouse AGV): Dẫn đường và bốc dỡ pallet tự động giữa các kệ hàng có khoảng cách hẹp mà không cần dán băng từ định hướng sàn nhà.
  • Robot khử khuẩn và vận chuyển thuốc trong bệnh viện: Di chuyển chính xác qua các phòng bệnh kín, nơi tín hiệu GPS không thể xuyên qua và môi trường có tính đối xứng cao.
  • Robot trinh sát cứu hộ cứu nạn: Hoạt động trong hầm mỏ, công trình ngầm bị sập đổ, nơi khói bụi làm mù camera quang học và LiDAR.
+------------------------------------------------------------------------------------+
|                         HƯỚNG DẪN TRIỂN KHAI HỆ THỐNG TRONG NHÀ                    |
+------------------------------------------------------------------------------------+
| Bước 1: Bố trí tối thiểu 3 Anchor UWB ở các vị trí không thẳng hàng, cao > 1.5m   |
| Bước 2: Đo đạc chính xác tọa độ không gian (x, y, z) của từng Anchor               |
| Bước 3: Cấu hình file YAML tọa độ Anchor trong ROS package 'uwb_localization'      |
| Bước 4: Khởi chạy ROS Master, nạp firmware vi điều khiển và bật robot              |
| Bước 5: Giám sát quỹ đạo bám thời gian thực qua Rviz & PlotJuggler                 |
+------------------------------------------------------------------------------------+

Phân tích hiệu quả kinh tế (Cost-Benefit Analysis)

  • Chi phí phần cứng: Tổng chi phí chế tạo mô hình (gồm Jetson Nano, LiDAR, khung cơ khí, 4 module UWB) chưa đến 12.000.000 VNĐ, chỉ bằng khoảng 15 - 20% so với việc trang bị hệ thống định vị LiDAR 3D công nghiệp hoặc hệ thống Camera Motion Capture (Vicon/OptiTrack).
  • Thời gian hoàn vốn (ROI): Việc ứng dụng giải pháp định vị UWB chi phí thấp giúp các doanh nghiệp vừa và nhỏ tự động hóa dây chuyền với thời gian thu hồi vốn ước tính chỉ trong 6 - 9 tháng hoạt động.

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

Hạn chế kỹ thuật

  • Hệ thống giải thuật Trilateration hiện tại tối ưu tốt nhất trên mặt phẳng 2D, khi Tag và Anchor có độ cao biến thiên lớn sẽ xuất hiện thành phần sai số chiếu hình học (DOP - Dilution of Precision).
  • Hiện tượng suy hao tín hiệu và khúc xạ khi bị chắn bởi vật thể kim loại dày (vấn đề Non-Line-of-Sight - NLOS) làm suy giảm độ chính xác tức thời của phép đo khoảng cách UWB.
  • Tải trọng robot giới hạn ở mức 5 kg do công suất động cơ JGB37-520 và hệ thống khung nhôm nhẹ.

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

  • Tích hợp giải thuật phát hiện và lọc bỏ nhiễu NLOS: Sử dụng máy học (Support Vector Machine - SVM hoặc Random Forest) phân tích đặc tính xung kênh truyền (Channel Impulse Response - CIR) của chip DWM1000 để loại bỏ khoảng cách ảo.
  • Mở rộng sang EKF 3D (6 bậc tự do): Kết hợp thuật toán SLAM 3D với hệ thống nhiều hơn 4 trạm Anchor để định vị cho Drone (UAV) hoặc robot leo bậc thang.
  • Nâng cấp bộ điều khiển chuyển động: Phát triển bộ điều khiển bám quỹ đạo bền vững thích nghi (Adaptive Model Predictive Control - MPC) giúp robot hoạt động mượt mà ở vận tốc cao hơn ($v > 0.5\text{ m/s}$).

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

  • Sinh viên & Học viên ngành Tự động hóa / Cơ điện tử: Cung cấp tài liệu tham khảo chi tiết từ lý thuyết động học vi sai, cách chuyển đổi mô hình SolidWorks sang URDF, đến kỹ thuật lập trình nhúng và thiết kế bộ lọc EKF trên ROS.
  • Kỹ sư phát triển Robot (Robotics Developers): Tiếp cận một giải pháp phần cứng mở, kiến trúc truyền thông Module hóa và đoạn mã nguồn giải thuật Trilateration hoàn chỉnh có thể ứng dụng trực tiếp vào sản phẩm thương mại.
  • Doanh nghiệp vừa và nhỏ (SMEs): Bản thiết kế chứng minh tính khả thi về kinh tế của hệ thống định vị chính xác cao bằng công nghệ UWB trong nhà kho, thay thế cho các giải pháp quét mã vạch hay dán line từ truyền thống.
  • Nhà nghiên cứu khoa học: Cung cấp số liệu đối sánh thực nghiệm chi tiết giữa các cấu hình cảm biến khác nhau, làm tiền đề cho các bài toán tối ưu hóa kết hợp cảm biến nâng cao.

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 để triển khai hệ thống là gì?

Robot cần tối thiểu: 01 máy tính nhúng chạy được Ubuntu Linux và ROS (tối thiểu Raspberry Pi 4 4GB hoặc NVIDIA Jetson Nano), 01 vi điều khiển (STM32 hoặc Arduino Mega) có hỗ trợ ngắt ngoại vi và tối thiểu 2 cổng UART/SPI tốc độ cao, cùng bộ 3 module UWB Anchor và 1 module Tag (chuẩn DWM1000).

2. Giới hạn vùng không gian bao phủ của hệ thống định vị UWB là bao nhiêu?

Với 3 trạm Anchor bố trí ở các góc phòng, phạm vi định vị tối ưu trong tầm nhìn thẳng (Line-of-Sight - LOS) là khoảng không gian $30\text{ m} \times 30\text{ m}$. Khi cần mở rộng cho nhà kho lớn hơn, hệ thống có thể mở rộng topology lưới (Mesh/Cluster Anchor) mà không làm thay đổi kiến trúc giải thuật EKF trung tâm.

3. Hệ thống có thể tích hợp với các Robot đang chạy hệ điều hành khác ngoài ROS không?

Hoàn toàn có thể. Module UWB Tag và Arduino có thể xuất trực tiếp tọa độ $(x, y)$ đã qua tính toán sơ bộ qua giao thức UART hoặc Modbus RTU/TCP, giúp các PLC công nghiệp hoặc vi điều khiển khác dễ dàng đọc và xử lý mà không nhất thiết phải có hệ điều hành ROS.

4. Chi phí bảo trì và độ bền của hệ thống như thế nào?

Module UWB Decawave DWM1000 là linh kiện bán dẫn thể rắn, không có chi tiết chuyển động cơ học nên độ bền hoạt động rất cao ($> 50.000$ giờ). Bảo trì định kỳ chủ yếu bao gồm kiểm tra điện áp nguồn pin và hiệu chuẩn (calibration) lại vị trí tọa độ các Anchor cố định nếu có sự dịch chuyển cơ học trong kho.

5. Tại sao cần kết hợp cả IMU và LiDAR khi đã có hệ thống định vị UWB?

Tần số cập nhật của UWB qua giải thuật Trilateration thường dao động từ $10 - 20\text{ Hz}$ và có thể bị nhiễu nhảy vọt (noise spike) tức thời khi có người che chắn. IMU cung cấp dữ liệu góc quay và gia tốc ở tần số rất cao ($100 - 200\text{ Hz}$), trong khi LiDAR hỗ trợ tránh vật cản động thời gian thực. Sự kết hợp của cả 4 loại cảm biến qua EKF mang lại độ mượt và tính an toàn cao nhất cho robot.


Kết luận

Đồ án tốt nghiệp "Nâng cao khả năng ước tính vị trí của robot di động bằng hệ thống băng tần siêu rộng" đã giải quyết thành công bài toán cốt lõi trong lĩnh vực điều hướng robot tự hành trong nhà. Thông qua việc kết hợp cơ sở lý thuyết động học vi sai, công nghệ đo khoảng cách DS-TWR trên nền tảng UWB, và giải thuật lọc Kalman mở rộng (EKF) trên nền tảng ROS, nhóm tác giả đã chế tạo thành công mô hình robot thực tế với sai số vị trí trung bình giảm ấn tượng xuống mức $0.068\text{ m}$ (cải thiện hơn 85%) so với phương pháp Dead-reckoning truyền thống.

Kết quả của đề tài không chỉ khẳng định tính đúng đắn về mặt học thuật mà còn mở ra tiềm năng thương mại hóa và ứng dụng thực tiễn to lớn trong việc phát triển các giải pháp xe tự hành AGV/AMR giá thành thấp phục vụ nền công nghiệp thông minh tại Việt Nam.