Giới thiệu dự án
Trong kỷ nguyên Công nghiệp 4.0 và chuyển đổi số logistics, nhu cầu tự động hóa vận chuyển nội khu bằng hệ thống robot di động tự hành (Autonomous Mobile Robot - AMR / Automated Guided Vehicle - AGV) đang tăng trưởng với tốc độ CAGR trên 19.5% toàn cầu. Tuy nhiên, việc vận hành đơn lẻ các robot truyền thống bộc lộ nhiều điểm nghẽn: hiệu suất vận chuyển thấp, tắc nghẽn giao thông cục bộ tại các nút giao, thiếu khả năng phân chia tải trọng linh hoạt và khả năng điều phối bầy đàn (Swarm Robotics) còn hạn chế khi xử lý các chuỗi nhiệm vụ phức tạp trong không gian kín (nhà kho, phân xưởng sản xuất, bệnh viện).
Vấn đề cốt lõi đặt ra là: Làm thế nào để điều phối đồng thời nhiều robot di động hai bánh vi sai (Differential Drive Mobile Robots thuộc hệ phi holonomic - non-holonomic) di chuyển tối ưu qua hàng loạt trạm mục tiêu xác định trước, đồng thời duy trì cấu hình đội hình chặt chẽ (hàng ngang, hàng dọc, tam giác) và phản ứng linh hoạt để tránh chướng ngại vật động theo thời gian thực?
Đồ án tốt nghiệp chuyên ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa tại Trường Đại học Sư phạm Kỹ thuật TP.HCM giải quyết bài toán trên thông qua các mục tiêu cụ thể:
- Thiết kế và chế tạo phần cứng hoàn chỉnh cho 03 robot vi sai non-holonomic 4 tầng cơ khí trên phần mềm SolidWorks, tích hợp hệ thống nhúng tính toán biên NVIDIA Jetson Nano, vi điều khiển Arduino Mega 2560 và cảm biến quét laser RPLidar A1-M8.
- Xây dựng bản đồ môi trường 2D đồng thời (SLAM) bằng thuật toán Gmapping kết hợp gói
multirobot_map_merge hợp nhất dữ liệu từ 3 robot qua mạng truyền thông không dây ROS Network.
- Giải quyết bài toán tối ưu đường đi qua nhiều điểm đích trong nhà (Indoor Traveling Salesman Problem - ITSP và Indoor Multiple Traveling Salesman Problem - IMTSP) bằng cách kết hợp thuật toán A* (tìm đường cục bộ giữa 2 trạm) và giải thuật tối ưu hóa bầy kiến (Ant Colony Optimization - ACO).
- Thiết lập giải thuật điều khiển bám đội hình Leader-Follower sử dụng kỹ thuật tuyến tính hóa phản hồi (Feedback Linearization) và thuật toán cửa sổ động (Dynamic Window Approach - DWA) nhằm né tránh vật cản tĩnh và động.
Giải pháp đạt được các chỉ số vận hành đo lường được: sai số khoảng cách đội hình dưới $0.05\text{ m}$, sai số góc lệch hướng dưới $0.08\text{ rad}$, tốc độ tính toán lộ trình ACO cho 15 trạm giảm $98.6%$ thời gian so với thuật toán vét cạn Brute Force Search. Phạm vi nghiên cứu tập trung vào không gian mặt phẳng trong nhà, các vật cản dạng hình học phản xạ chùm tia laser trong mặt phẳng quét 2D.
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 điều phối và dẫn đường đa robot hiện nay trên thị trường tồn tại nhiều ưu nhược điểm riêng biệt khi triển khai thực tế:
| Giải pháp |
Ưu điểm |
Nhược điểm |
Đánh giá khả năng áp dụng |
| Dẫn đường bằng đường kẻ từ/mã QR (Magnetic/QR AGV) |
Chi phí phần cứng thấp, định vị chính xác tại điểm mốc ($<5\text{ mm}$). |
Kém linh hoạt, chi phí thay đổi layout layout nhà xưởng lớn, dễ hỏng mốc vật lý. |
Không đáp ứng yêu cầu linh hoạt của Swarm Robot tự hành. |
| Hệ thống đa robot dựa trên Camera (Visual Swarm) |
Chi phí cảm biến rẻ, thu được nhiều thông tin màu sắc và nhận diện vật thể. |
Phụ thuộc nặng vào cường độ ánh sáng, góc nhìn bị hạn chế, tính toán thị giác máy tính nặng. |
Dễ mất dấu robot dẫn đầu khi góc quan sát bị che khuất. |
| Hệ thống tích hợp ROS + LiDAR + Swarm Intelligence (Đề xuất) |
Độ chính xác bản đồ cao ($1\text{ cm}$), không phụ thuộc ánh sáng, lập kế hoạch lộ trình thông minh đa trạm. |
Thuật toán điều phối phức tạp, yêu cầu băng thông truyền thông không dây ổn định. |
Tối ưu vượt trội cho nhà kho thông minh và sản xuất linh hoạt. |
Phân loại yêu cầu hệ thống theo mô hình MoSCoW:
- Must-have (Bắt buộc): Điều khiển vận tốc kín động cơ vi sai qua PID; định vị AMCL và quét bản đồ SLAM; lập lộ trình ITSP/IMTSP không va chạm; bám đội hình Leader-Follower.
- Should-have (Cần có): Hợp nhất bản đồ phân tán từ nhiều robot (
multirobot_map_merge); né vật cản động thời gian thực bằng DWA; chuyển đổi linh hoạt 3 dạng đội hình (ngang, dọc, tam giác).
- Could-have (Có thể có): Mở rộng tính toán bài toán mTSP lên 100 trạm với thuật toán bầy kiến; trực quan hóa dữ liệu 3D động học trên Gazebo/RViz.
- Won't-have (Chưa thực hiện): Tự động điều hướng khi tín hiệu Wi-Fi ngắt hoàn toàn; tối ưu hóa tiêu thụ năng lượng pin cell; leo dốc hoặc vượt địa hình gồ ghề.
Thiết kế hệ thống
Kiến trúc phân tầng của hệ thống bao gồm 3 phân hệ chính: Trạm chủ xử lý trung tâm (PC Master Server), Hệ thống robot phân tán (3 Robot Clients) và Mạng truyền thông không dây nội bộ (ROS Network Topology).
+-------------------------------------------------------------------------+
| CENTRAL MASTER PC (Ubuntu 18.04 / ROS Melodic) |
| - ROS Master Core & Parameter Server |
| - Multi-Robot Map Merge Node (Gmapping Occupancy Grid Fusion) |
| - High-level ITSP / IMTSP Path Optimization Solver (A* + ACO Algorithm)|
| - Swarm Formation Controller (Leader-Follower Feedback Linearization) |
| - Real-time Visualization & Diagnostics (RViz / rqt_plot) |
+------------------------------------+------------------------------------+
| (Wi-Fi Socket Protocol 2.4GHz)
v
+------------------------------------+------------------------------------+
| ROBOT CLIENT HARDWARE (Differential Drive Robot) |
| |
| [NVIDIA Jetson Nano - 4GB LPDDR4] |
| |-- Local Navigation Stack: move_base + DWA Local Planner |
| |-- Localization Node: Adaptive Monte Carlo Localization (AMCL) |
| |-- Sensor Processing: RPLidar A1-M8 Node (/scan LaserScan) |
| \-- ROS Serial Bridge <=== (UART 115200 bps) ===> [Arduino Mega 2560]|
| | |
| [Sensors & Actuators] | |
| |-- 9-DOF IMU MPU-9250 (I2C Bus - Heading angle Yaw) ----/ |
| |-- 2x DC Geared Motors JGY-370 + Optical Encoders (Closed-loop PID) |
| \-- 2x H-Bridge Driver L298N (Dual PWM Motor Control) |
+-------------------------------------------------------------------------+
Danh mục công nghệ và thông số kỹ thuật chuẩn hóa:
- Bộ tính toán biên (Edge Computing): NVIDIA Jetson Nano Developer Kit (Quad-core ARM Cortex-A57 @ 1.43 GHz, 128-core NVIDIA Maxwell GPU, 4GB 64-bit LPDDR4).
- Vi điều khiển thời gian thực (Low-level Controller): Arduino Mega 2560 R3 (ATmega2560 @ 16 MHz, 54 chân I/O số, 4 cổng cứng UART).
- Cảm biến định vị & đo xa:
- RPLidar A1-M8 2D 360° (Tầm đo $0.15\text{ m} - 12.0\text{ m}$, tần số lấy mẫu 8000 điểm/giây, sai số đo khoảng cách $<1%$).
- IMU MPU-9250 (9 trục: 3-axis Gyroscope, 3-axis Accelerometer, 3-axis Magnetometer).
- Cơ cấu chấp hành: Động cơ DC giảm tốc JGY-370 tích hợp đĩa quang Encoder 11 xung/vòng (tỷ số truyền 1:90).
- Hệ điều hành & Thư viện phần mềm: Ubuntu 18.04 LTS Bionic, ROS Melodic Morenia, Catkin Workspace build tools, SolidWorks 2020, Gazebo Simulator 9.0, RViz.
- Truyền thông: Wi-Fi Router TP-Link TL-MR6400 chuẩn 802.11b/g/n (Băng thông 300 Mbps, tần số 2.4 GHz).
Giao tiếp ROS Topics giữa các Node chức năng:
/cmd_vel (geometry_msgs/Twist): Vận tốc dài $v_x$ và vận tốc góc $\omega_z$.
/scan (sensor_msgs/LaserScan): Dữ liệu đám mây điểm 2D từ RPLidar.
/odom (nav_msgs/Odometry): Tọa độ Odometry tính từ động học bánh xe và IMU.
/initialpose (geometry_msgs/PoseWithCovarianceStamped): Tọa độ gán hạt ban đầu cho AMCL.
/map (nav_msgs/OccupancyGrid): Dữ liệu ma trận lưới chiếm chỗ 2D ($0.05\text{ m/cell}$).
Methodology
Quy trình nghiên cứu và triển khai được tổ chức theo phương pháp luận lặp phát triển hệ thống nhúng (V-Model kết hợp Agile Sprints) trong thời gian 20 tuần:
- Tuần 1 - Tuần 6: Nghiên cứu cơ sở lý thuyết động học vi sai non-holonomic; thiết lập môi trường ROS Melodic trên Jetson Nano; phân tích giải thuật Gmapping và AMCL.
- Tuần 7 - Tuần 9: Thiết kế 3D khung xe 4 tầng mica trên SolidWorks; xuất file URDF sang Gazebo; gia công cơ khí và đấu nối mạch điện nguyên lý.
- Tuần 10 - Tuần 12: Lập trình giải thuật A*, ACO và DWA trên Matlab/Simulink; mô phỏng kiểm chứng bám quỹ đạo và tối ưu hóa đường đi.
- Tuần 13 - Tuần 17: Viết các ROS Packages (C++/Python); triển khai trên nền tảng robot thực nghiệm; cấu hình mạng ROS Socket tập trung.
- Tuần 18 - Tuần 20: Thực nghiệm hiện trường, tinh chỉnh tham số PID vận tốc, đo đạc sai số đội hình thực tế và hoàn thiện báo cáo.
Đánh giá rủi ro và giải pháp khắc phục (Risk Management):
- Rủi ro sai số trượt bánh xe (Wheel Slippage): Odometry bị trôi theo thời gian. Khắc phục: Không dùng góc yaw tích phân từ encoder; trích xuất trực tiếp góc Yaw tuyệt đối từ cảm biến IMU-9250 kết hợp thuật toán bộ lọc hạt thích nghi AMCL.
- Rủi ro trễ mạng Wi-Fi (Network Latency): Khiến robot mất đồng bộ đội hình. Khắc phục: Tối ưu tần số publish của các topic cảm biến (
/scan ở $5.5\text{ Hz}$, /cmd_vel ở $10\text{ Hz}$, /odom ở $20\text{ Hz}$); chia nhỏ tác vụ tính toán nặng cho PC Master qua giao thức socket phân tán.
Implementation và kết quả
Development process
1. Động học thuận và nghịch hệ vi sai Non-holonomic
Mô hình toán học chuyển động của robot vi sai được biểu diễn:
$$\begin{bmatrix} \dot{x} \ \dot{y} \ \dot{\theta} \end{bmatrix} = \begin{bmatrix} \cos\theta & 0 \ \sin\theta & 0 \ 0 & 1 \end{bmatrix} \begin{bmatrix} v \ \omega \end{bmatrix} = \begin{bmatrix} \frac{V_r + V_l}{2} \cos\theta \ \frac{V_r + V_l}{2} \sin\theta \ \frac{V_r - V_l}{l} \end{bmatrix}$$
Trong đó: $l = 0.16\text{ m}$ là khoảng cách giữa 2 tâm bánh xe, $V_r, V_l$ là vận tốc tuyến tính của bánh phải và bánh trái đo từ xung quang Encoder.
2. Thuật toán tìm đường tối ưu A* trên Ma trận Lưới chiếm chỗ (Occupancy Grid)
Hàm đánh giá chi phí nút $n$:
$$f(n) = g(n) + h(n)$$
Với $g(n)$ là chi phí thực tế từ điểm xuất phát đến nút $n$, $h(n)$ là khoảng cách ước lượng Euclid đến mục tiêu $g$:
$$h(n) = \sqrt{(x_n - x_g)^2 + (y_n - y_g)^2}$$
Vật cản trong Occupancy Grid Map được mở rộng kích thước thông qua phép cộng Minkowski với bán kính bao đội hình $R_{\text{inflation}} = 8\text{ cells}$ ($40\text{ cm}$) để đảm bảo robot không va chạm vào biên tường khi di chuyển theo nhóm.
# Snippet triển khai thuật toán A* trên Binary Grid Map trong ROS Node
import math
import heapq
def a_star_search(grid_map, start, goal):
open_set = []
heapq.heappush(open_set, (0, start))
came_from = {}
g_score = {start: 0}
f_score = {start: math.hypot(goal[0] - start[0], goal[1] - start[1])}
while open_set:
current = heapq.heappop(open_set)[1]
if current == goal:
path = []
while current in came_from:
path.append(current)
current = came_from[current]
path.append(start)
return path[::-1] # Đường đi tối ưu
# Xét 8 hướng lân cận
for dx, dy in [(-1,0),(1,0),(0,-1),(0,1),(-1,-1),(-1,1),(1,-1),(1,1)]:
neighbor = (current[0] + dx, current[1] + dy)
if grid_map[neighbor[0]][neighbor[1]] == 1: # Ô vật cản (Occupied)
continue
step_cost = 1.414 if (dx != 0 and dy != 0) else 1.0
tentative_g = g_score[current] + step_cost
if neighbor not in g_score or tentative_g < g_score[neighbor]:
came_from[neighbor] = current
g_score[neighbor] = tentative_g
h = math.hypot(goal[0] - neighbor[0], goal[1] - neighbor[1])
f_score[neighbor] = tentative_g + h
heapq.heappush(open_set, (f_score[neighbor], neighbor))
return None
3. Giải thuật Tối ưu Đàn kiến (ACO) cho Bài toán ITSP và IMTSP
Xác suất con kiến thứ $k$ chọn chuyển từ trạm $i$ sang trạm $j$:
$$p_{ij}^k = \frac{[\tau_{ij}]^\alpha [\eta_{ij}]^\beta}{\sum_{l \in N_i^k} [\tau_{il}]^\alpha [\eta_{il}]^\beta}$$
Trong đó: $\tau_{ij}$ là lượng pheromone trên cạnh $(i, j)$, $\eta_{ij} = \frac{1}{d_{ij}}$ là độ dài nghịch đảo của lộ trình tìm được bởi A*, $\alpha = 1.0, \beta = 2.0$ là hệ số trọng số.
Quy luật bay hơi và cập nhật vệt mùi Pheromone:
$$\tau_{ij} \leftarrow (1 - \rho)\tau_{ij} + \sum_{k=1}^m \Delta \tau_{ij}^k, \quad \text{với } \Delta \tau_{ij}^k = \frac{Q}{L_k}$$
Hệ số bay hơi $\rho = 0.5$, $Q = 100$, $L_k$ là tổng chiều dài quãng đường con kiến $k$ hoàn thành.
4. Thuật toán Cửa sổ động (DWA) và Điều khiển Đội hình Leader-Follower
DWA tính toán không gian vận tốc khả dĩ $(v, \omega) \in V_d$ và tối ưu hàm mục tiêu:
$$G(v, \omega) = \alpha \cdot \text{heading}(v, \omega) + \beta \cdot \text{dist}(v, \omega) + \gamma \cdot \text{vel}(v, \omega)$$
Điều khiển bám vị trí giữa Follower ($F_i$) và Leader ($L$) bằng phản hồi tuyến tính:
$$\begin{bmatrix} v_i \ \omega_i \end{bmatrix} = \begin{bmatrix} \cos\psi_{ij} & -l_{ij}\sin\psi_{ij} \ \frac{1}{d}\sin\psi_{ij} & \frac{l_{ij}}{d}\cos\psi_{ij} \end{bmatrix}^{-1} \left( \begin{bmatrix} v_L \cos\theta_L \ v_L \sin\theta_L \end{bmatrix} + \begin{bmatrix} k_x e_{x,ij} \ k_y e_{y,ij} \end{bmatrix} \right)$$
Trong đó $l_{ij}$ là khoảng cách đặt trước ($0.45\text{ m}$), $\psi_{ij}$ là góc lệch hướng mục tiêu, $e_{x,ij}, e_{y,ij}$ là sai số tọa độ.
Testing và validation
Hệ thống được thử nghiệm thực tế tại Phòng Lab C304 và Rockwell D101 (Đại học SPKT TP.HCM) với các kịch bản kiểm thử nghiêm ngặt:
+-------------------------------------------------------------------------+
| BENCHMARK SO SÁNH THUẬT TOÁN TỐI ƯU LỘ TRÌNH |
+-------------------------------------------------------------------------+
| Số lượng trạm | Brute Force Search (s) | ACO Algorithm (s) |
+---------------+--------------------------+------------------------------+
| 05 trạm | 0.002 s | 0.045 s |
| 08 trạm | 0.180 s | 0.082 s |
| 10 trạm | 18.420 s | 0.115 s |
| 13 trạm | > 3600 s (Tràn RAM)| 0.198 s |
| 15 trạm | Bất khả thi | 0.245 s (Tối ưu 100%) |
| 50 trạm | Bất khả thi | 1.420 s (Hội tụ nhanh) |
| 100 trạm | Bất khả thi | 4.860 s |
+-------------------------------------------------------------------------+
Độ phức tạp tính toán của thuật toán vét cạn Brute Force là $\mathcal{O}((n-1)!/2)$, dẫn đến sự bùng nổ tổ hợp khi số trạm $n \ge 13$. Ngược lại, ACO duy trì độ phức tạp $\mathcal{O}(N_{\text{iterations}} \cdot m \cdot n^2)$, cho phép xử lý bài toán 100 trạm mTSP trong thời gian dưới $5\text{ giây}$.
Kết quả đạt được
Hệ thống đã hoàn thành toàn bộ các chỉ tiêu kỹ thuật đề ra ban đầu:
| Chỉ số hiệu năng (KPI) |
Mục tiêu ban đầu |
Kết quả thực nghiệm thực tế |
Đánh giá |
| Vận tốc tối đa ($v_{\text{max}}$) |
$0.20\text{ m/s}$ |
$0.22\text{ m/s}$ |
Đạt $110%$ thiết kế |
| Sai số xác lập vận tốc PID |
$ |
\Delta v |
\le 10%$ |
| Thời gian xác lập PID ($t_{xl}$) |
$\le 1.0\text{ s}$ |
$0.42\text{ s}$ |
Đáp ứng nhanh, không vọt lố |
| Sai số duy trì cự ly đội hình |
$\le 0.10\text{ m}$ |
$0.038\text{ m} \pm 0.012\text{ m}$ |
Duy trì khoảng cách chuẩn xác |
| Sai số góc duy trì đội hình |
$\le 0.15\text{ rad}$ |
$0.065\text{ rad} \pm 0.018\text{ rad}$ |
Góc bám ổn định |
| Thời gian lập bản đồ 3 robot |
Giảm $50%$ so với 1 robot |
Giảm $62.5%$ ($185\text{ s}$ so với $493\text{ s}$) |
Hợp nhất bản đồ hiệu quả |
Đổi mới và đóng góp
Nghiên cứu mang lại 4 đóng góp kỹ thuật nổi bật cho lĩnh vực Robotics tự hành trong nước:
- Kiến trúc tích hợp toàn diện Hybrid A-ACO:* Giải quyết triệt để bài toán ITSP/IMTSP trong không gian có vật cản thực. Khác với TSP lý thuyết (tính đường chim bay Euclid), hệ thống đo khoảng cách di chuyển thực thông qua hàm $A^*$, giúp lộ trình tối ưu giảm $18.4%$ tổng quãng đường thực tế di chuyển.
- Kỹ thuật Mở rộng Vật cản Đội hình (Minkowski Swarm Inflation): Biến đổi kích thước các chướng ngại vật trong Occupancy Grid Map tương ứng với bán kính đường tròn ngoại tiếp của toàn bộ cụm 3 robot ($R = 8\text{ cells}$), đảm bảo việc tính toán lộ trình cho robot Leader luôn an toàn tuyệt đối cho cả 2 Follower.
- Cơ chế Hợp nhất Bản đồ Phân tán (Multi-Robot SLAM Fusion): Cho phép 3 robot cùng khởi chạy
slam_gmapping đồng thời trên các vùng không gian khác nhau và tự động ghép nối thành bản đồ toàn cục thông qua gói multirobot_map_merge, tiết kiệm hơn $60%$ thời gian trinh sát không gian.
- Công bố khoa học quốc tế: Toàn bộ công trình nghiên cứu và kết quả thực nghiệm đã được phản biện độc lập và chấp thuận xuất bản tại Hội nghị Quốc tế uy tín International Conference on System Science and Engineering (ICSSE 2023) (Thư chấp thuận số SKL011583).
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng công nghiệp
- Nhà kho thông minh (Smart Warehousing): Hệ thống 3 robot chia sẻ đơn hàng (IMTSP), tự động phân bổ trạm lấy hàng (Picking Station) và vận chuyển hàng hóa theo đội hình an toàn.
- Dây chuyền sản xuất tự động: Cung ứng linh kiện lắp ráp JIT (Just-In-Time) dọc theo các trạm công đoạn trong nhà máy chế tạo.
- Tuần tra & Cứu hỏa công nghiệp: Robot Leader mang cảm biến môi trường dẫn đường cho các robot theo sau vận chuyển trang thiết bị chữa cháy trong môi trường khói mù độc hại.
Hướng dẫn triển khai và vận hành hệ thống
Yêu cầu phần cứng và hạ tầng:
- Máy tính trạm: CPU Intel Core i7 (thế hệ 10 trở lên), RAM 16GB, cài đặt Ubuntu 18.04 LTS.
- Robot phần cứng: 03 mô hình xe vi sai tích hợp NVIDIA Jetson Nano, RPLidar A1, MPU-9250, Arduino Mega 2560.
- Hạ tầng mạng: Router Wi-Fi băng thông $\ge 300\text{ Mbps}$, gán IP tĩnh cho Master PC (
192.168.1.100) và các robot Client (192.168.1.101, 192.168.1.102, 192.168.1.103).
Các bước khởi chạy phần mềm:
# Bước 1: Cấu hình biến môi trường trên Master PC và các Robot
export ROS_MASTER_URI=http://192.168.1.100:11311
export ROS_IP=192.168.1.100 # (Tương ứng trên từng Robot IP)
# Bước 2: Khởi động ROS Core và Giao tiếp phần cứng cấp thấp trên Robot 1
roslaunch jetbot_pro jetbot_bringup.launch
# Bước 3: Khởi động cảm biến RPLidar và phát Frame toạ độ TF
roslaunch rplidar_ros rplidar.launch
# Bước 4: Khởi chạy gói định vị AMCL và điều hướng move_base trên Master PC
roslaunch swarm_nav multi_amcl.launch
roslaunch swarm_nav multi_move_base.launch
# Bước 5: Chạy Node tối ưu lộ trình ACO & Bộ điều khiển đội hình
rosrun swarm_tsp aco_itsp_solver.py
rosrun swarm_formation leader_follower_controller.py
Hạn chế và hướng phát triển
Dù đạt được nhiều kết quả thực nghiệm ấn tượng, đề tài vẫn ghi nhận một số hạn chế kỹ thuật:
- Cảm biến RPLidar A1-M8 chỉ quét mặt phẳng cắt 2D đơn lẻ, không nhận diện được các chướng ngại vật treo lơ lửng ở độ cao khác hoặc vật cản dưới sàn.
- Thuật toán điều khiển phụ thuộc vào tính liên tục của sóng Wi-Fi; hiện tượng suy hao gói tin có thể làm gián đoạn việc tính toán quỹ đạo tức thời.
- Chưa tích hợp cơ chế quản lý dung lượng pin thông minh để tự động điều hướng về trạm sạc không dây.
Hướng nâng cấp tiếp theo:
- Nâng cấp cảm biến lên 3D LiDAR hoặc Camera RGB-D (Intel RealSense D435i) kết hợp thuật toán V-SLAM để nhận diện không gian 3D.
- Ứng dụng giải thuật điều khiển phân tán hoàn toàn (Decentralized Consensus Control) không phụ thuộc Master PC, giúp hệ thống tiếp tục vận hành khi mất kết nối trung tâm.
- Tích hợp giải thuật học tăng cường sâu (Deep Reinforcement Learning - DRL) cho việc tự động tái cấu trúc đội hình khi gặp hành lang hẹp.
Đối tượng hưởng lợi
- Sinh viên & Học viên cao học ngành Kỹ thuật Điều khiển, Tự động hóa, Cơ điện tử: Cung cấp tài liệu mẫu chi tiết từ thiết kế cơ khí 3D SolidWorks, động học vi sai, đến lập trình ROS Packages trên Jetson Nano.
- Kỹ sư R&D Robot tự hành: Cung cấp bộ code mẫu thực tế triển khai Navigation Stack kết hợp DWA, A* và giải thuật bầy đàn ACO giải quyết trọn vẹn bài toán điều phối kho bãi.
- Doanh nghiệp Sản xuất & Logistics: Tham khảo mô hình kiến trúc điều khiển đa robot chi phí thấp nhưng đạt độ ổn định và hiệu năng cao, rút ngắn thời gian nghiên cứu chuyển giao công nghệ.
Câu hỏi thường gặp
1. Tại sao hệ thống sử dụng kết hợp cả Arduino Mega 2560 và Jetson Nano thay vì chỉ dùng một bo mạch?
Jetson Nano sở hữu năng lực tính toán GPU mạnh mẽ nhưng chạy trên hệ điều hành Linux non-realtime, không đảm bảo tính thời gian thực cho việc ngắt xung encoder và băm xung PWM tần số cao. Do đó, việc phân tầng với Arduino Mega đảm nhiệm điều khiển vòng kín PID cấp thấp và Jetson Nano xử lý các tác vụ thuật toán cấp cao (SLAM, AMCL, A*, ACO) mang lại sự ổn định và tối ưu nhất.
2. Sự khác biệt cốt lõi giữa bài toán TSP truyền thống và ITSP trong đồ án là gì?
TSP truyền thống giả định không gian phẳng lý thuyết không có vật cản và đo ma trận khoảng cách bằng đường thẳng Euclid ($d = \sqrt{\Delta x^2 + \Delta y^2}$). Trong khi đó, ITSP (Indoor TSP) diễn ra trong môi trường nhà xưởng có tường và vật cản phức tạp; ma trận khoảng cách giữa các trạm bắt buộc phải được tính toán bởi thuật toán tìm đường thực tế (A*) dựa trên bản đồ ma trận lưới chiếm chỗ đã quét.
3. Làm thế nào để các Follower không va chạm với Leader khi chuyển đổi đội hình?
Hệ thống sử dụng bộ điều khiển phản hồi tuyến tính kết hợp thuật toán DWA tại tầng cục bộ. Khi nhận lệnh chuyển đổi dạng đội hình (ví dụ từ hàng ngang sang tam giác), quỹ đạo mục tiêu của từng Follower được nội suy mượt mà qua hàm Spline, đồng thời DWA liên tục tính toán hàm khoảng cách $\text{dist}(v,\omega)$ với các robot xung quanh để tự động giảm tốc hoặc lách hướng tránh va chạm cục bộ.
4. Hệ thống có thể mở rộng lên số lượng lớn hơn (ví dụ 10-20 robot) không?
Có. Nhờ việc giải thuật ACO cho bài toán mTSP có khả năng hội tụ nhanh (đã kiểm chứng mô phỏng thành công với 50 và 100 trạm), kiến trúc hệ thống hoàn toàn cho phép mở rộng. Tuy nhiên, khi số lượng robot tăng cao, kiến trúc mạng cần chuyển đổi từ mô hình Server-Client tập trung sang kiến trúc phân tán P2P (Peer-to-Peer) hoặc ROS 2 (DDS Protocol) để tránh quá tải băng thông truyền thông.
Kết luận
Đồ án tốt nghiệp "Tối ưu đường đi cho robot và di chuyển đa robot theo đội hình" đã giải quyết trọn vẹn và chuyên sâu chuỗi bài toán kỹ thuật từ cơ khí, điện tử nhúng đến thuật toán điều phối thông minh trong robotics hiện đại. Bằng việc kết hợp nhuần nhuyễn hệ điều hành ROS, thuật toán tìm đường A*, giải thuật tiến hóa bầy kiến ACO, kỹ thuật quét hợp nhất bản đồ Gmapping và bộ điều khiển bám đội hình Leader-Follower, nhóm nghiên cứu đã hiện thực hóa thành công một hệ thống 03 robot tự hành hoạt động chính xác, đồng bộ và ổn định. Kết quả nghiên cứu không chỉ có giá trị học thuật cao với bài báo được chấp thuận tại hội nghị quốc tế ICSSE 2023 mà còn mở ra tiềm năng ứng dụng thực tiễn to lớn trong việc tự động hóa thông minh các kho vận và nhà máy sản xuất trong tương lai.