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 và thương mại điện tử toàn cầu, ngành logistics và quản lý kho thông minh đang chuyển dịch mạnh mẽ từ phương thức vận hành thủ công sang tự động hóa toàn diện. Theo thống kê từ Grand View Research, thị trường robot di động tự hành (Autonomous Mobile Robot - AMR) trong kho vận dự kiến đạt tốc độ tăng trưởng kép hàng năm (CAGR) trên 16.5% giai đoạn 2023–2030. Tuy nhiên, tại các doanh nghiệp vừa và nhỏ (SMEs), việc áp dụng các hệ thống tự động hóa vẫn gặp rào cản lớn do chi phí đầu tư AMR công nghiệp quá cao, hạ tầng nhà kho chưa đồng bộ và thiếu tính linh hoạt khi thay đổi layout kệ hàng.
Vấn đề cốt lõi đặt ra là: Làm thế nào để chế tạo một hệ thống robot di động chuyển hàng có chi phí tối ưu nhưng vẫn đảm bảo khả năng tự hành chính xác, tự xây dựng bản đồ (SLAM), tránh vật cản động và đặc biệt là tự định vị cấp chính xác cao để nâng/đặt hàng vào từng ngăn kệ một cách tin cậy?
Đồ án tốt nghiệp "Thiết kế và điều khiển robot di động chuyển hàng lên kệ" của nhóm sinh viên Nguyễn Huy Toàn và Đặng Đình Khôi (ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, dưới sự hướng dẫn của PGS.TS Vũ Văn Phong) giải quyết trực tiếp bài toán này.
Dự án xác định 5 mục tiêu kỹ thuật cụ thể:
- Thiết kế phần cứng hoàn chỉnh: Kết cấu cơ khí 2 bánh vi sai + 3 bánh đa hướng, tích hợp cơ cấu trục vít me T8 nâng/đẩy hàng 2 bậc tự do sử dụng động cơ bước TB6600.
- Xây dựng hệ điều hành nhúng: Triển khai ROS (Robot Operating System) phân tầng giữa máy tính nhúng Raspberry Pi 4 Model B (4GB RAM) và vi điều khiển Arduino Mega 2560 qua giao thức Rosserial.
- Bản đồ hóa và định vị tự hành: Thực thi thuật toán Gmapping SLAM qua cảm biến LiDAR RPLIDAR A1M1 và thuật toán định vị AMCL (Adaptive Monte Carlo Localization).
- Điều hướng tối ưu đa tầng: Kết hợp thuật toán toàn cục Dijkstra và thuật toán cục bộ DWA (Dynamic Window Approach) để tránh vật cản tĩnh/động thời gian thực.
- Điều hướng thứ cấp thị giác máy tính: Ứng dụng OpenCV và thư viện ArUco Marker để ước lượng tư thế không gian (Pose Estimation 3D), định vị chính xác vị trí khay kệ với sai số dưới $\pm 3\text{ mm}$.
Phạm vi và giới hạn: Robot được thiết kế với tải trọng hàng hóa nhẹ ($8 - 10\text{ kg}$ tổng thể), kích thước $350 \times 250 \times 800\text{ mm}$. Do tối ưu kết cấu cơ khí, cảm biến LiDAR được cấu hình quét góc hiệu dụng $220^\circ$ (từ $-110^\circ$ đến $+110^\circ$ phía trước) và không tích hợp cảm biến siêu âm phía sau.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi thiết kế, đồ án phân tích và đánh giá ba giải pháp vận chuyển hàng hóa tự động phổ biến hiện nay:
| Tiêu chí |
AGV bám line từ / mã QR |
AMR công nghiệp cao cấp |
Giải pháp đề tài (ROS + Hybrid Vision) |
| Hạ tầng yêu cầu |
Phải dán băng từ, mã vạch dưới sàn |
Yêu cầu bản đồ laser cố định |
Tự do, chỉ dán mã ArUco tại vị trí kệ |
| Tính linh hoạt |
Rất thấp (đổi layout phải thi công lại) |
Cao |
Rất cao (cập nhật map bằng phần mềm) |
| Cơ chế bốc xếp |
Chỉ kéo xe hoặc nâng pallet tiêu chuẩn |
Đa dạng nhưng đắt đỏ |
Tích hợp sẵn cơ chế nâng – đẩy khay |
| Chi phí chế tạo |
Trung bình ($5.000 - $15.000) |
Rất cao ($20.000 - $60.000) |
Tối ưu hóa nghiên cứu (< $1.000) |
| Khả năng mở rộng |
Hạn chế |
Tốt |
Tốt (Mã nguồn mở ROS, Web App) |
Áp dụng phương pháp phân loại yêu cầu MoSCoW:
- Must-have: Di chuyển vi sai ổn định, SLAM 2D, lập quỹ đạo tránh vật cản, nhận diện mã ArUco đưa hàng vào ngăn kệ, điều khiển qua Web UI.
- Should-have: Bộ lọc thông thấp IMU MPU6050 kết hợp Odometry, mô phỏng URDF trên Gazebo/RViz.
- Could-have: Tự động quay về trạm sạc (Home dock), phân loại 2 mã ArUco liên tiếp trên cùng một chu trình.
- Won't-have (lần này): SLAM 3D Point Cloud, cảm biến tải trọng tự động ngắt lực.
Thiết kế hệ thống
Kiến trúc hệ thống được xây dựng theo mô hình phân tầng Modular Computation Graph của ROS:
+-------------------------------------------------------------------------+
| GIAO DIỆN ĐIỀU KHIỂN & GIÁM SÁT |
| [ ReactJS Web Dashboard ] <--(WebSocket / roslibjs)--> [ Rosbridge ] |
| [ Laptop RViz / Teleop ] <--(Remote Desktop / RDP)--> [ Ubuntu OS ] |
+------------------------------------+------------------------------------+
|
+------------------------------------v------------------------------------+
| TẦNG XỬ LÝ TRUNG TÂM (Raspberry Pi 4 - ROS Noetic) |
| +-------------------+ +-------------------+ +---------------------+ |
| | Map Server | | AMCL Localization| | Move Base Planner | |
| | (2D Costmap) | | (Particle Filter)| | (Dijkstra + DWA) | |
| +---------^---------+ +---------^---------+ +----------^----------+ |
| | | | |
| +---------+----------------------+-----------------------v----------+ |
| | Vision Secondary Navigation Node (Python + OpenCV cv2.aruco) | |
| +--------------------------------^----------------------------------+ |
+-----------------------------------|-------------------------------------+
| (UART Serial / rosserial_python)
+-----------------------------------v-------------------------------------+
| TẦNG ĐIỀU KHIỂN CHẤP HÀNH (Arduino Mega 2560) |
| - Dual Closed-loop PID Velocity Control (Motor Left, Motor Right) |
| - Odometry Calculation (Encoder 334 PPR x Gear Ratio) |
| - Stepper Control (TB6600 -> Lift Axis Z + Push Axis Y) |
| - IMU MPU-6050 I2C Data Processing |
+-------------------------------------------------------------------------+
Technology Stack:
- Hệ điều hành: Ubuntu Linux 20.04 LTS (Focal Fossa).
- Robot Framework: ROS 1 Noetic Ninjemys (C++11, Python 3.8).
- Thị giác máy tính: OpenCV 4.5.4 (
cv2.aruco), camera_calibration package.
- Vi điều khiển & Cảm biến: Arduino IDE (C/C++), RPLIDAR SDK, thư viện
rosserial_arduino.
- Giao diện Web: ReactJS 18, HTML5 Canvas, WebSocket qua
rosbridge_server.
Cấu trúc dữ liệu và Topic ROS cốt lõi:
/cmd_vel (geometry_msgs/Twist): Vận tốc dài $v_x$ và vận tốc góc $\omega_z$.
/odom (nav_msgs/Odometry): Trạng thái vị trí $x, y$, góc xoay Yaw $\theta$ và ma trận hiệp phương sai sai số.
/scan (sensor_msgs/LaserScan): Mảng khoảng cách 360 điểm từ RPLIDAR A1.
/aruco_pose (geometry_msgs/PoseStamped): Tọa độ không gian 3D của tâm mã ArUco so với trục camera.
Phương pháp nghiên cứu (Methodology)
Dự án áp dụng mô hình phát triển xoắn ốc (Iterative Spiral Development) qua 6 giai đoạn (milestones) từ 22/02/2024 đến 25/06/2024:
- Giai đoạn 1 (Tuần 1–3): Nghiên cứu lý thuyết ROS, tính toán động học hệ 2 bánh vi sai, thiết kế CAD 3D trên SolidWorks 2022.
- Giai đoạn 2 (Tuần 4–5): Xuất mô hình URDF sang Gazebo/RViz để mô phỏng động thái học và cấu hình Navigation Stack.
- Giai đoạn 3 (Tuần 6–7): Gia công khung gầm nhôm định hình $20 \times 20$, lắp ráp động cơ JGB37-545, Arduino Mega 2560 và module L298N.
- Giai đoạn 4 (Tuần 8–10): Tinh chỉnh bộ điều khiển vận tốc PID rời rạc, xây dựng bản đồ SLAM phòng C304 bằng RPLIDAR.
- Giai đoạn 5 (Tuần 11–14): Lập trình module nhận diện mã ArUco trên Webcam Rapoo WX180, thiết kế thuật toán bám quỹ đạo thứ cấp.
- Giai đoạn 6 (Tuần 15–17): Tích hợp Web GUI ReactJS, chạy thực nghiệm toàn trình chuyển hàng lên kệ và nghiệm thu.
Implementation và kết quả
Quá trình phát triển và thuật toán trọng tâm
1. Động học thuận và nghịch hệ vi sai (Differential Drive Kinematics)
Robot di chuyển dựa trên việc điều khiển độc lập vận tốc hai bánh xe chủ động $V_r$ (bên phải) và $V_l$ (bên trái) với khoảng cách trục $l = 250\text{ mm}$:
$$\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}, \quad \text{với } v = \frac{V_r + V_l}{2}, \quad \omega = \frac{V_r - V_l}{l}$$
Tại mỗi chu kỳ lấy mẫu $\Delta t$, vi điều khiển Arduino giải phương trình động học nghịch để quy đổi từ vector vận tốc $(v, \omega)$ nhận được từ ROS sang xung PWM cấp cho 2 động cơ DC:
$$V_r = v + \frac{\omega \cdot l}{2}, \quad V_l = v - \frac{\omega \cdot l}{2}$$
// Code snippet: Bộ điều khiển PID vận tốc động cơ trên Arduino Mega 2560
void computePID() {
unsigned long currentMillis = millis();
if (currentMillis - prevMillis >= SAMPLE_TIME_MS) {
float dt = (currentMillis - prevMillis) / 1000.0;
// Tính vận tốc thực tế từ số xung Encoder (PPR = 334)
currentVelL = (encoderLeftTicks - prevTicksL) * (PI * WHEEL_DIAMETER) / (PPR * dt);
currentVelR = (encoderRightTicks - prevTicksR) * (PI * WHEEL_DIAMETER) / (PPR * dt);
// Tính sai số
float errorL = targetVelL - currentVelL;
float errorR = targetVelR - currentVelR;
integralL += errorL * dt;
integralR += errorR * dt;
float derivativeL = (errorL - prevErrorL) / dt;
float derivativeR = (errorR - prevErrorR) / dt;
pwmLeft = Kp * errorL + Ki * integralL + Kd * derivativeL;
pwmRight = Kp * errorR + Ki * integralR + Kd * derivativeR;
setMotorPWM(pwmLeft, pwmRight);
prevErrorL = errorL; prevErrorR = errorR;
prevTicksL = encoderLeftTicks; prevTicksR = encoderRightTicks;
prevMillis = currentMillis;
}
}
2. Lập kế hoạch quỹ đạo toàn cục và cục bộ (Global Planner & DWA Local Planner)
Hệ thống sử dụng Dijkstra để quét chi phí trên Global Costmap nhằm tìm ra đường đi ngắn nhất không va chạm. Khi robot lăn bánh, DWA liên tục lấy mẫu các cặp $(v, \omega)$ khả thi trong cửa sổ động học để tối ưu hóa hàm mục tiêu:
$$G(v, \omega) = \sigma \left( \alpha \cdot \text{heading}(v, \omega) + \beta \cdot \text{dist}(v, \omega) + \gamma \cdot \text{vel}(v, \omega) \right)$$
Trong đó:
- $\text{heading}(v, \omega)$: Đo độ thẳng hàng giữa hướng di chuyển của robot và điểm đích toàn cục.
- $\text{dist}(v, \omega)$: Khoảng cách tới vật cản gần nhất trên quỹ đạo mô phỏng (tối đa hóa để an toàn).
- $\text{vel}(v, \omega)$: Ưu tiên vận tốc cao để tối ưu hóa thời gian chu kỳ.
# Code snippet: Trích đoạn Node điều hướng thứ cấp bám mã ArUco (Python)
import cv2
import cv2.aruco as aruco
import numpy as np
import rospy
from geometry_msgs.msg import Twist
class ArUcoSecondaryNavigation:
def __init__(self):
rospy.init_node('aruco_docking_node', anonymous=True)
self.cmd_pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)
self.camera_matrix = np.load("camera_matrix.npy")
self.dist_coeffs = np.load("dist_coeffs.npy")
self.aruco_dict = aruco.Dictionary_get(aruco.DICT_5X5_250)
self.parameters = aruco.DetectorParameters_create()
def process_image(self, frame):
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
corners, ids, _ = aruco.detectMarkers(gray, self.aruco_dict, parameters=self.parameters)
twist = Twist()
if ids is not None and TARGET_ARUCO_ID in ids:
rvecs, tvecs, _ = aruco.estimatePoseSingleMarkers(
corners, 0.05, self.camera_matrix, self.dist_coeffs
)
# tvecs[0][0]: [x_offset, y_offset, z_distance]
x_dev = tvecs[0][0][0]
z_dist = tvecs[0][0][2]
# Giai đoạn 1: Hiệu chỉnh góc lệch tâm
if abs(x_dev) > 0.02:
twist.angular.z = -0.5 * x_dev
twist.linear.x = 0.05
# Giai đoạn 2: Tịnh tiến vào khe kệ và dừng lại
elif z_dist > DOCKING_STOP_DISTANCE:
twist.linear.x = 0.1
twist.angular.z = 0.0
else:
twist.linear.x = 0.0
twist.angular.z = 0.0
rospy.loginfo("Đã căn chuẩn vị trí kệ hàng. Bắt đầu đẩy hàng!")
self.cmd_pub.publish(twist)
Kiểm thử và đánh giá hiệu năng (Testing & Validation)
Hệ thống được kiểm thử thực tế tại phòng thực hành C304 (kích thước thực tế $7.2\text{ m} \times 6.8\text{ m}$):
1. Đánh giá độ chính xác bản đồ SLAM Gmapping
| Chiều đo |
Kích thước thực tế (m) |
Kích thước trên bản đồ SLAM (m) |
Sai số tuyệt đối (cm) |
Tỷ lệ sai số (%) |
| Chiều ngang |
$7.20$ |
$7.14$ |
$6.0$ |
$0.83%$ |
| Chiều dọc |
$6.80$ |
$6.75$ |
$5.0$ |
$0.74%$ |
| Khoảng cách vật cản cố định |
$2.50$ |
$2.48$ |
$2.0$ |
$0.80%$ |
2. Độ chính xác điều hướng toàn cục (AMCL + Dijkstra + DWA)
| Điểm đặt mục tiêu $(X, Y)$ |
Tọa độ thực tế robot đạt được |
Sai số vị trí $\Delta E_d$ (cm) |
Sai số góc quay $\Delta \theta$ (độ) |
Kết quả né vật cản |
| $(1.0, 0.0)$ |
$(0.98, 0.02)$ |
$2.8\text{ cm}$ |
$1.5^\circ$ |
Thành công |
| $(3.0, -0.5)$ |
$(2.95, -0.47)$ |
$5.8\text{ cm}$ |
$2.2^\circ$ |
Né 1 vật cản cố định |
| $(2.0, 1.0)$ |
$(1.96, 1.03)$ |
$5.0\text{ cm}$ |
$2.0^\circ$ |
Né 2 vật cản tĩnh |
| $(-2.0, -2.0)$ |
$(-1.94, -1.97)$ |
$6.7\text{ cm}$ |
$3.1^\circ$ |
Né vật cản bất ngờ |
| $(0.0, -4.0)$ |
$(0.03, -3.95)$ |
$5.8\text{ cm}$ |
$2.8^\circ$ |
Tái lập quỹ đạo sau 0.4s |
3. Độ chính xác căn chỉnh vị trí khay kệ bằng thị giác máy tính (ArUco Vision)
- Khoảng cách nhận diện mã tin cậy: $0.15\text{ m} - 1.80\text{ m}$.
- Sai số lệch tâm khi cập bến (Docking accuracy): Dưới $\pm 3\text{ mm}$ theo trục ngang và $\pm 1.2^\circ$ theo trục xoay.
- Tỷ lệ đẩy hàng vào kệ thành công: Đạt 19/20 lần thử nghiệm (95%).
Đổi mới và đóng góp
- Kiến trúc điều hướng Hybrid 2 tầng (2-Stage Navigation Architecture):
Đề tài khắc phục triệt để nhược điểm sai số tích lũy của AMCL/LiDAR ($3 - 7\text{ cm}$) – vốn không đủ an toàn để đưa hàng vào ngăn kệ hẹp – bằng cách tự động kích hoạt chế độ Thị giác máy tính thứ cấp (Secondary Visual Servoing) với mã ArUco khi robot tiến vào bán kính $0.5\text{ m}$ trước kệ hàng.
- Tối ưu hóa tài nguyên trên phần cứng giá rẻ:
Toàn bộ thuật toán nhận dạng ma trận ArUco, lọc ảnh xám, phân đoạn nhị phân và giải bài toán PnP (Perspective-n-Point) được tinh chỉnh để chạy mượt mà ở mức 30 FPS trên CPU ARM Cortex-A72 của Raspberry Pi 4 mà không cần GPU rời.
- Đóng góp học thuật và ứng dụng:
Xây dựng hoàn chỉnh chuỗi giải pháp mở từ thiết kế CAD, xuất URDF, mô phỏng Gazebo, nạp firmware vi điều khiển đến điều khiển qua giao diện Web ReactJS, cung cấp tài liệu mẫu cho nghiên cứu robot học trong nước.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế
- Nhà kho linh kiện điện tử: Robot nhận lệnh xuất kho qua Web App, tự di chuyển tới kệ A3, nhận diện mã ArUco ID-01, nâng trục Z lên độ cao tầng 2, cơ cấu trục vít me đẩy khay linh kiện vào kệ và quay về trạm sạc.
- Vận chuyển mẫu xét nghiệm bệnh viện: Tự động điều hướng qua các hành lang đông đúc, né người đi bộ nhờ DWA và chuyển khay thuốc/mẫu xét nghiệm tới đúng phòng chỉ định.
+--------------------------------------------------------------------------+
| LỘ TRÌNH TRIỂN KHAI HỆ THỐNG |
+--------------------------------------------------------------------------+
| Tháng 1-2: Khảo sát layout kho, dán mã ArUco tại các vị trí kệ |
| Tháng 3: Chạy SLAM 2D, lập bản đồ số hóa và cấu hình Costmap |
| Tháng 4: Cài đặt trạm phát Wi-Fi nội bộ, cấu hình Web Server ReactJS |
| Tháng 5: Chạy thử nghiệm tích hợp với hệ thống WMS (Warehouse System) |
| Tháng 6: Vận hành chính thức và chuyển giao tài liệu hướng dẫn |
+--------------------------------------------------------------------------+
Đánh giá hiệu quả kinh tế (ROI Analysis)
- Chi phí phần cứng thử nghiệm: Khoảng 12.000.000 VNĐ (~ $480 USD).
- So với chi phí nhân công: Tiết kiệm trung bình 1 nhân sự kho bãi/ca trực ($300 - $400 USD/tháng).
- Thời gian hoàn vốn ước tính: Dưới 6 tháng vận hành thực tế.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Cảm biến LiDAR RPLIDAR A1 bị giới hạn góc quét hữu dụng $220^\circ$ do che khuất cơ khí; chưa có cảm biến cảnh báo khi lùi xe.
- Kết cấu trục nâng vít me T8 chưa tích hợp cảm biến đo lực đẩy hành trình, chủ yếu dựa trên bước động cơ (Open-loop Stepper).
- Hệ thống sử dụng ROS 1 Noetic (chưa tận dụng cơ chế bảo mật DDS và Real-time của ROS 2).
Hướng phát triển tương lai
- Nâng cấp nền tảng: Chuyển đổi toàn bộ kiến trúc sang ROS 2 Humble / Iron trên nền tảng Ubuntu 22.04 LTS.
- Tích hợp cảm biến chuyên dụng: Bổ sung dải cảm biến siêu âm phía sau và cảm biến LiDAR 3D hoặc RealSense Depth Camera D435i để thực hiện 3D SLAM.
- Quản lý hạm đội (Fleet Management): Ứng dụng thuật toán điều phối đa robot (Multi-Agent Path Finding - MAPF) qua giao thức MQTT/WebSocket.
Đối tượng hưởng lợi
- Sinh viên & Học viên: Cung cấp mã nguồn mở mẫu, quy trình liên kết chuẩn giữa ROS – Arduino – ReactJS và tài liệu giải thuật động học vi sai trực quan.
- Kỹ sư & Lập trình viên: Tham khảo phương pháp tích hợp thuật toán bám ArUco cho các bài toán docking chính xác cao trong công nghiệp.
- Doanh nghiệp vừa và nhỏ (SMEs): Tiếp cận giải pháp tự động hóa kho hàng với chi phí đầu tư thấp hơn 80% so với mua thiết bị nhập khẩu nguyên chiếc.
- Nhà nghiên cứu: Cơ sở dữ liệu thực nghiệm về sai số định vị kết hợp giữa AMCL và Computer Vision trong môi trường trong nhà.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu sàn kho có độ dốc dưới $5^\circ$, độ mấp mô bề mặt $< 5\text{ mm}$, mạng Wi-Fi nội bộ phủ sóng ổn định (tần số 5GHz khuyến nghị cho luồng truyền video WebSocket/RDP mượt mà), máy tính chủ trang bị CPU đa nhân để chạy ROS Master và Web Server.
2. Làm thế nào để mở rộng số lượng điểm dừng và kệ hàng?
Người dùng chỉ cần dán thêm các mã ArUco mới lên kệ, đo tọa độ sơ bộ trên RViz và khai báo ID mã kèm tọa độ mục tiêu vào tệp cấu hình config/shelf_locations.yaml. Robot sẽ tự động tải dữ liệu này mà không cần lập trình lại hệ thống.
3. Hệ thống có thể tích hợp với phần mềm quản lý kho (WMS/ERP) không?
Có. Nhờ tầng giao tiếp WebSocket trên rosbridge_server, hệ thống dễ dàng kết nối với các ứng dụng ERP/WMS thông qua REST API hoặc WebSocket JSON messages để tự động nhận lệnh xuất/nhập hàng.
4. Nhu cầu bảo trì định kỳ của robot như thế nào?
Cần định kỳ bôi trơn trục vít me T8 sau mỗi 200 giờ hoạt động, kiểm tra độ mòn của bánh xe cao su V3, cân chỉnh lại camera sau các va chạm cơ học mạnh và vệ sinh bề mặt thấu kính quang học của RPLIDAR.
5. Chi phí dự toán và thời gian hoàn vốn khi thương mại hóa?
Với sản xuất quy mô nhỏ (10–50 chiếc), giá thành xuất xưởng ước tính khoảng 18–25 triệu VNĐ/robot (đã bao gồm pin sạc công nghiệp LiFePO4 và mạch nguồn cách ly). Thời gian thu hồi vốn (ROI) đối với nhà kho diện tích $200 - 500\text{ m}^2$ dao động từ 4 đến 7 tháng.
Kết luận
Đề tài tốt nghiệp "Thiết kế và điều khiển robot di động chuyển hàng lên kệ" đã hoàn thành xuất sắc toàn bộ các mục tiêu đặt ra: từ việc giải quyết bài toán động học, xây dựng phần cứng cơ điện tử đồng bộ, cấu hình thành công hệ thống dẫn đường tự động ROS (SLAM Gmapping, Dijkstra, DWA) đến việc phát triển thuật toán điều hướng thứ cấp bằng thị giác máy tính với mã ArUco cho độ chính xác định vị khay kệ đạt 95%.
Công trình không chỉ khẳng định tính khả thi vượt trội của các giải pháp tự động hóa mã nguồn mở giá thành thấp mà còn mở ra hướng nghiên cứu ứng dụng thực tiễn cao cho bài toán logistics thông minh tại Việt Nam.
Khám phá thêm & Kết nối hợp tác: Bạn đang tìm kiếm giải pháp AMR tự hành hoặc muốn trao đổi chuyên sâu về kiến trúc ROS & Computer Vision? Hãy liên hệ ngay với nhóm nghiên cứu tại Khoa Điện - Điện tử, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh để cùng phát triển các giải pháp tự động hóa thế hệ mới!