Giới thiệu dự án
Sự phát triển nhanh chóng của các hệ thống tự hành (Autonomous Mobile Robots - AMR) và phương tiện tự hành (Autonomous Vehicles) đang định hình lại ngành logistics và tự động hóa công nghiệp. Theo các báo cáo thị trường quốc tế, thị trường robot di động tự hành toàn cầu dự kiến đạt tốc độ tăng trưởng kép (CAGR) vượt 20% mỗi năm. Các giải pháp tiêu biểu trên thế giới như xe tự hành Tesla, robot giao hàng tự trị Amazon Scout hay các robot vận chuyển trong khuôn viên trường học (Starship Technologies) đã chứng minh tiềm năng to lớn của việc tự động hóa quá trình di chuyển ngoại cảnh.
Tại Việt Nam, việc triển khai các robot tự hành linh hoạt trên bản đồ thực tế với phạm vi không gian mở vẫn đối mặt với nhiều rào cản về mặt chi phí và công nghệ. Hầu hết các hệ thống tự hành thương mại sử dụng cảm biến LiDAR đa tầng (3D LiDAR) và hệ thống định vị vi sai độ chính xác cao (RTK-GPS) có giá thành hàng nghìn đến hàng chục nghìn USD, khó tiếp cận cho các doanh nghiệp vừa và nhỏ hoặc các bài toán vận chuyển nội khu (campus, bệnh viện, khu công nghiệp). Ngược lại, các nghiên cứu robot tự hành cấp thấp dựa thuần túy vào GPS tiêu chuẩn thường gặp sai số định vị từ 3–5m, dễ lệch hướng khi đi qua các khúc cua phức tạp và không có khả năng cơ động đa hướng tức thời.
Đề tài "Xây dựng Robot đa hướng tự hành theo quỹ đạo từ bản đồ Google và tự né tránh vật cản" do nhóm kỹ sư Kỹ thuật Máy tính (Trường Đại học Công nghệ Thông tin, ĐHQG-HCM) thực hiện nhằm giải quyết trực tiếp bài toán trên. Dự án tập trung xây dựng một robot tự hành sử dụng bánh xe Mecanum đa hướng kết hợp thuật toán dung hợp cảm biến (Sensor Fusion) và tích hợp hệ thống điều khiển thông minh qua ứng dụng di động Android kết nối Google Maps Platform.
+-----------------------------------------------------------------------------------+
| HỆ THỐNG TỔNG QUAN |
| |
| [Android App] <---> [Firebase Realtime DB] <---> [NodeMCU ESP8266] (UART) |
| - Google Maps SDK | |
| - Directions API [STM32F407 (FreeRTOS)] |
| - Polyline Decoding / | \ |
| [GY-86] [GPS] [US-015] |
| (IMU 9-DOF) (NEO-M8N) (Siêu âm) |
| \ | / |
| [PID Motor Controllers] |
| [4x Mecanum Wheel Base] |
+-----------------------------------------------------------------------------------+
Mục tiêu cụ thể của dự án
- Thiết kế và hiện thực khung gầm robot cơ động cao: Ứng dụng hệ thống chuyển động 4 bánh Mecanum cho phép robot tịnh tiến đa hướng (tiến, lùi, dạt ngang, xoay tròn tại chỗ) với độ linh hoạt cao trong không gian hẹp.
- Xây dựng ứng dụng điều khiển và trích xuất lộ trình: Phát triển ứng dụng di động trên nền tảng Android Studio/Java tích hợp Google Maps Platform (Directions API, Geocoding API, Places API), cho phép chọn điểm đi/đến trực tiếp hoặc qua tọa độ thực tế của robot.
- Phát triển thuật toán giải mã đường đi (Polyline Decoding): Phân tích và chuyển đổi chuỗi Polyline nén từ Google Maps thành tập hợp các điểm mốc (waypoints) mật độ cao, loại bỏ đường cong liên tục để robot bám sát quỹ đạo.
- Hệ thống điều khiển trung tâm và Sensor Fusion: Sử dụng vi điều khiển 32-bit ARM Cortex-M4 (STM32F407) kết hợp module cảm biến GY-86 (MPU6050 + HMC5883L) qua bộ lọc bù (Complementary Filter) / Kalman mở rộng (EKF) để triệt tiêu hiện tượng trôi góc (drift) của con quay hồi chuyển, xác định chính xác góc hướng tuyệt đối (True North Yaw).
- Điều khiển bám quỹ đạo vòng kín và né vật cản: Triển khai giải thuật PID điều khiển vận tốc 4 động cơ DC encoder (JGB37-520) và module cảm biến siêu âm US-015 để tự động dừng/chuyển hướng khi phát hiện chướng ngại vật trong bán kính an toàn.
Phạm vi và giới hạn
- Môi trường hoạt động: Khuôn viên phẳng, không gian ngoài trời có tín hiệu GPS ổn định (thực nghiệm tại Khu đô thị ĐHQG-HCM).
- Giới hạn giao tiếp URL & Cloud: URL Google Directions API bị giới hạn tối đa 8.192 ký tự; gói Firebase miễn phí đáp ứng tốt cho lộ trình tiêu chuẩn dưới 30 km.
- Dung sai định vị: Phụ thuộc vào độ chính xác định vị dân sự của module U-blox NEO-M8N (sai số bán kính khoảng 2.5m - 5m).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí |
Robot vi sai GPS thông thường |
Hệ thống AMR công nghiệp (LiDAR SLAM + RTK) |
Giải pháp của đề tài (Mecanum + GPS + Sensor Fusion) |
| Cơ cấu chuyển động |
2 bánh vi sai (Differential), bán kính quay lớn |
Bánh vi sai hoặc Mecanum |
4 bánh Mecanum độc lập, xoay 0° bán kính, dạt ngang linh hoạt |
| Chi phí phần cứng |
Thấp (< 3.000.000 VNĐ) |
Rất cao (> 100.000.000 VNĐ) |
Tối ưu (~ 6.000.000 – 9.000.000 VNĐ) |
| Thuật toán định vị |
GPS đơn thuần, dễ lệch khi mất tín hiệu |
2D/3D LiDAR Point Cloud SLAM + RTK-GPS |
GPS NEO-M8N kết hợp 9-DOF IMU Sensor Fusion (Tilt-compensated Yaw) |
| Lập quỹ đạo (Routing) |
Điểm mốc cố định hoặc thủ công |
Bản đồ nội bộ được xây dựng trước qua SLAM |
Google Maps Platform động, phân giải cao qua Polyline Decoding |
| Khả năng né vật cản |
Cơ bản (chạm dừng) hoặc không có |
Đám mây điểm LiDAR thời gian thực |
Cảm biến siêu âm US-015 phản xạ nhanh, quét cung góc trước |
Bảng ưu tiên yêu cầu hệ thống (MoSCoW)
- Must-have (Bắt buộc): Lấy lộ trình từ Google Maps API, giải mã Polyline thành chuỗi Waypoints, đồng bộ Realtime Database lên Cloud, bù nghiêng cho từ kế và fusion góc Yaw, điều khiển 4 bánh Mecanum bằng PID encoder.
- Should-have (Nên có): Tự động phát hiện vật cản bằng siêu âm và ngắt truyền động, hiển thị trạng thái hoạt động trên màn hình GLCD đồ họa và ứng dụng Android theo thời gian thực.
- Could-have (Có thể có): Lựa chọn chế độ điều khiển thủ công qua Virtual Joystick trên App di động, đề xuất lộ trình đa phương thức (đi bộ, xe máy).
- Won't-have (Tạm thời chưa làm): Nhận diện biển báo giao thông bằng Camera AI, định vị trong nhà (Indoor Positioning).
Thiết kế hệ thống
Kiến trúc hệ thống được phân lớp rõ ràng từ tầng Giao diện Người dùng, tầng Đám mây, tầng Cổng giao tiếp IoT đến tầng Nhúng thời gian thực (Hard Real-time Embedded Layer).
graph TD
User([Người dùng]) -->|Chọn điểm đến| App[Android Application]
App -->|HTTP REST Request| GMA[Google Maps Platform]
GMA -->|JSON Encoded Polyline| App
App -->|Decode & Push Path| FB[(Firebase Realtime DB)]
subgraph Robot Hardware
Node[NodeMCU ESP8266] <-->|SSL Sync| FB
Node <-->|UART 115200bps| STM[STM32F407VGT6 Primary MCU]
GPS[GPS NEO-M8N] -->|UART 9600bps / NMEA| STM
IMU[GY-86: MPU6050 + HMC5883L] -->|I2C 400kHz| STM
SONAR[US-015 Ultrasonic] -->|GPIO Trigger/Echo| STM
STM -->|PWM + Direction| DRV[L298N / Dual H-Bridge Drivers]
ENC[Quadrature Encoders] -->|Timer Capture| STM
DRV --> MOT[4x JGB37-520 DC Motors]
STM --> GLCD[Graphic LCD / Debug Info]
end
Technology Stack & Versions
- Mobile Client: Android Studio 4.x / Arctic Fox, Java Development Kit (JDK 8 / Java SE 8), Google Play Services SDK v18+, Maps SDK for Android v3.
- Cloud Infrastructure: Firebase Realtime Database (Google Cloud Platform) giao tiếp bảo mật qua SSL/TLS 2048-bit.
- Embedded Firmware: STM32CubeIDE v1.6.0, FreeRTOS v10.x, C/C++ Embedded, Thư viện HAL STM32F4.
- IoT Firmware: Arduino IDE v1.8.x cho NodeMCU ESP8266 (ESP8266 Core v2.7.4).
- Thiết kế phần cứng: Proteus Design Suite 8.9 (Schematic & PCB Design), SolidWorks 2020 (Thiết kế cơ khí và mô phỏng tải trọng khung xe).
Giao thức truyền thông và bảo mật
- ESP8266 <-> STM32F407: UART không đồng bộ, Baudrate 115.200 bps, cấu hình khung truyền 8-N-1 với cờ kiểm tra định dạng gói tin (
$START...#END).
- STM32F407 <-> GY-86: Chuẩn I2C Fast-mode (400 kHz) đọc thanh ghi gia tốc, con quay hồi chuyển và từ trường.
- Cloud Communication: HTTPS REST client với token xác thực API Key, truyền nhận dữ liệu JSON phân nhánh
Current_Position, Points, Route, State.
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển tích hợp phần cứng - phần mềm lặp (Hardware-Software Iterative Development), chia làm 4 giai đoạn chính trong 16 tuần:
Tuần 01 - 04: Nghiên cứu lý thuyết Kinematics, thiết kế khung Mecanum trên SolidWorks, làm mạch PCB.
Tuần 05 - 08: Xây dựng App Android, tích hợp Google Maps API, xây dựng cấu trúc DB trên Firebase.
Tuần 09 - 12: Lập trình Firmware STM32, cấu hình FreeRTOS, viết giải thuật Sensor Fusion & PID.
Tuần 13 - 16: Thử nghiệm thực địa tại khuôn viên trường, cân chỉnh thông số PID và viết tài liệu.
Bảng đánh giá rủi ro và giải pháp khắc phục
| Rủi ro kỹ thuật |
Mức độ |
Biện pháp giảm thiểu |
| Nhiễu từ trường cục bộ làm lệch từ kế HMC5883L |
Cao |
Bố trí module GY-86 cách xa cụm động cơ và dây nguồn dòng lớn ít nhất 15cm; kết hợp thuật toán bù nghiêng từ gia tốc kế. |
| Trôi tích phân góc quay từ Gyroscope (MPU6050) |
Cao |
Sử dụng bộ lọc bù (Complementary Filter) kết hợp giá trị tuyệt đối từ từ kế để triệt tiêu sai số trôi dài hạn (long-term drift). |
| Trễ mạng (Network Latency) từ Cloud |
Trung bình |
Tải toàn bộ mảng Waypoints về bộ nhớ đệm SRAM của STM32 khi bắt đầu hành trình; ESP8266 chỉ gửi tọa độ hồi tiếp để giám sát. |
Implementation và kết quả
Quá trình phát triển kỹ thuật
1. Thuật toán giải mã Google Encoded Polyline (Polyline Decoding)
Dữ liệu đường đi trả về từ Google Directions API được nén dưới dạng chuỗi ASCII bằng thuật toán mã hóa Lossy Compression để giảm tải băng thông. Mỗi ký tự biểu diễn 5-bit dữ liệu đã được cộng thêm 63 (ký tự ASCII ?). Hệ thống trên ứng dụng di động triển khai giải thuật giải nén với độ phức tạp thời gian $\mathcal{O}(N)$ ($N$ là chiều dài chuỗi) để trích xuất danh sách tọa độ kinh/vĩ độ chính xác.
public static List<LatLng> decodePolyline(String encoded) {
List<LatLng> poly = new ArrayList<>();
int index = 0, len = encoded.length();
int lat = 0, lng = 0;
while (index < len) {
int b, shift = 0, result = 0;
do {
b = encoded.charAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
} while (b >= 0x20);
int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
lat += dlat;
shift = 0;
result = 0;
do {
b = encoded.charAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
} while (b >= 0x20);
int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
lng += dlng;
LatLng p = new LatLng((((double) lat / 1E5)), (((double) lng / 1E5)));
poly.add(p);
}
return poly;
}
Hiệu quả giải thuật: Trên lộ trình thử nghiệm nội bộ 1.2 km, từ 1 điểm trung gian thô do Google Routes cung cấp ban đầu, thuật toán đã giải nén và bổ sung thành 15–28 waypoints chi tiết, giúp quỹ đạo robot loại bỏ hoàn toàn các cung lượn phức tạp và chuyển đổi thành các đoạn thẳng nối tiếp có độ lệch nhỏ hơn 0.5m.
2. Thuật toán bù góc nghiêng (Tilt Compensation) và Dung hợp cảm biến (Sensor Fusion)
Để loại bỏ sai số đo góc Yaw khi robot di chuyển qua bề mặt nghiêng hoặc rung lắc cơ học, dữ liệu từ gia tốc kế (Accelerometer) được dùng để tính góc Pitch và Roll, sau đó chiếu vector từ trường của từ kế (Magnetometer) lên mặt phẳng nằm ngang chuẩn:
$$\text{roll} = \arctan\left(\frac{a_y}{a_z}\right)$$
$$\text{pitch} = \arctan\left(\frac{-a_x}{\sqrt{a_y^2 + a_z^2}}\right)$$
$$X_h = m_x \cos(\text{pitch}) + m_z \sin(\text{pitch})$$
$$Y_h = m_x \sin(\text{roll})\sin(\text{pitch}) + m_y \cos(\text{roll}) - m_z \sin(\text{roll})\cos(\text{pitch})$$
$$\text{yaw}_{\text{mag}} = \arctan2(Y_h, X_h)$$
Sau đó, góc $\text{yaw}_{\text{mag}}$ được hợp nhất với vận tốc góc $\omega_z$ của Con quay hồi chuyển (Gyroscope) thông qua bộ lọc bù:
$$\theta_k = \alpha \cdot (\theta_{k-1} + \omega_z \cdot \Delta t) + (1 - \alpha) \cdot \text{yaw}_{\text{mag}}$$
(Trong đó trọng số $\alpha = 0.96$, chu kỳ lấy mẫu $\Delta t = 10\text{ ms}$).
// C snippet trên STM32F407 thực hiện tính toán góc hợp nhất
void Update_Orientation_Fusion(float ax, float ay, float az, float mx, float my, float mz, float gz, float dt) {
float roll = atan2f(ay, az);
float pitch = atan2f(-ax, sqrtf(ay * ay + az * az));
float Xh = mx * cosf(pitch) + mz * sinf(pitch);
float Yh = mx * sinf(roll) * sinf(pitch) + my * cosf(roll) - mz * sinf(roll) * cosf(pitch);
float yaw_mag = atan2f(Yh, Xh) * (180.0f / M_PI);
// Complementary Filter
current_yaw = 0.96f * (current_yaw + gz * dt) + 0.04f * yaw_mag;
}
+-----------------------------------------------------------------------------+
| ĐỘNG HỌC BÁNH XE MECANUM |
| |
| Bánh 1 (FL) ///// \\\\\ Bánh 2 (FR) |
| \ / |
| [ ROBOT ] |
| / \ |
| Bánh 3 (RL) \\\\\ ///// Bánh 4 (RR) |
| |
| V_FL = V_x - V_y - (L_x + L_y)*omega V_FR = V_x + V_y + (L_x + L_y)*omega |
| V_RL = V_x + V_y - (L_x + L_y)*omega V_RR = V_x - V_y + (L_x + L_y)*omega |
+-----------------------------------------------------------------------------+
Thử nghiệm và đánh giá kết quả
Hệ thống được thử nghiệm qua 30 chu kỳ vận hành thực tế tại khuôn viên Đại học Công nghệ Thông tin (ĐHQG-HCM) với các điều kiện môi trường khác nhau.
+-----------------------------------------------------------------------------------+
| KẾT QUẢ ĐO ĐẠC GÓC YAW (SENSOR FUSION) |
| |
| Độ lệch (Độ) |
| 6° | --- Gyro đơn thuần (Trôi) |
| 4° | - - - - - - |
| 2° | - - - - - - |
| 0° |=========================================== === Sensor Fusion GY-86 (Ổn định)|
| -2° |___________________________________________ |
| 0s 30s 60s 90s 120s (Thời gian) |
+-----------------------------------------------------------------------------------+
Dữ liệu đo kiểm hiệu năng (Performance Benchmarks)
- Tần số lấy mẫu Sensor Fusion: 100 Hz (đảm bảo độ trễ phản hồi < 15ms trong FreeRTOS task).
- Tốc độ truyền nhận Cloud (Round-trip time): 120ms - 250ms qua mạng di động 4G/LTE.
- Độ chính xác góc hướng tuyệt đối: Sai số tĩnh < 1.2°, sai số động khi di chuyển trên địa hình nghiêng < 2.5°.
- Phản xạ né vật cản của US-015: Độ chính xác phát hiện vật cản 98.5% ở khoảng cách thiết lập ngưỡng 35cm, thời gian dừng khẩn cấp < 80ms.
Bảng so sánh mục tiêu thiết kế và kết quả đạt được
| Chỉ số kỹ thuật |
Mục tiêu ban đầu |
Kết quả thực nghiệm |
Trạng thái |
| Số Waypoints trích xuất |
$\ge 10$ điểm / km |
15 – 28 điểm / km |
Đạt (vượt 150%) |
| Độ trôi góc Yaw sau 2 phút |
$< 5.0^\circ$ |
$< 1.5^\circ$ |
Đạt |
| Thời gian đáp ứng né vật cản |
$< 200\text{ ms}$ |
$< 80\text{ ms}$ |
Đạt |
| Bán kính sai lệch điểm đích |
$< 3.0\text{ m}$ |
$1.8\text{ m} – 2.4\text{ m}$ |
Đạt (phù hợp GPS) |
| Thời gian vận hành liên tục |
$> 45\text{ phút}$ |
65 phút (Pin 3S 5200mAh) |
Đạt |
Đổi mới và đóng góp
- Kiến trúc phân tầng xử lý Edge-IoT tối ưu chi phí: Dự án tách biệt hoàn toàn tác vụ truyền thông mạng/giải mã API nặng (xử lý trên Smartphone và ESP8266) khỏi tầng điều khiển phản hồi thời gian thực khắt khe (FreeRTOS trên STM32F407). Điều này giúp hệ thống đạt độ tin cậy chuẩn công nghiệp mà chỉ sử dụng phần cứng tầm trung.
- Kỹ thuật nén và tối ưu lộ trình Google Maps cho nhúng: Thay vì phụ thuộc vào việc tính toán lộ trình trực tiếp trên bộ xử lý nhúng (vốn tốn tài nguyên tính toán), giải pháp khai thác tối đa sức mạnh của Google Directions API kết hợp Polyline Decoding trên app di động để tạo mạng lưới điểm mốc mật độ cao với chi phí xử lý bằng 0 trên MCU.
- Mô hình động học Mecanum kết hợp bù nghiêng AHRS: Ứng dụng thành công hệ thống bánh xe Mecanum cho chuyển động ngoại cảnh bằng việc kết hợp bộ lọc bù 9-DOF, giải quyết nhược điểm trượt bánh (wheel slippage) cố hữu của Mecanum thông qua việc bù sai lệch hướng liên tục từ IMU và GPS.
+-----------------------------------------------------------------------------+
| SO SÁNH CẢI THIỆN ĐỘ CHÍNH XÁC VÀ CHI PHÍ HỆ THỐNG |
| |
| Chi phí phần cứng: [-85% so với AMR LiDAR thương mại] |
| Số lượng Waypoints: [+1500% so với dữ liệu Google Maps thô] |
| Độ ổn định góc quay Yaw: [+400% so với sử dụng Gyroscope đơn thuần] |
+-----------------------------------------------------------------------------+
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Vận chuyển bưu phẩm/tài liệu nội khu (Campus Delivery): Robot tự hành nhận lệnh từ ứng dụng của sinh viên hoặc cán bộ, tự di chuyển từ tòa nhà này sang tòa nhà khác trong khuôn viên trường đại học để chuyển phát đồ dùng.
- Robot hỗ trợ hậu cần tại bệnh viện dã chiến / khu cách ly: Vận chuyển thuốc men, thực phẩm giữa các phân khu điều trị độc lập ngoài trời mà không cần sự tiếp xúc trực tiếp của nhân viên y tế.
- Robot giám sát và tuần tra thông minh: Tự hành theo tuyến đường định sẵn trong các khu công nghiệp, tích hợp camera giám sát truyền dữ liệu về phòng điều khiển trung tâm.
+-----------------------------------------------------------------------------------+
| QUY TRÌNH TRIỂN KHAI THỰC ĐỊA |
| |
| 1. Bật nguồn Robot -> STM32 khởi động FreeRTOS, cân chỉnh cảm biến IMU (3s) |
| 2. Module NEO-M8N khóa tọa độ GPS (3D Fix) -> Gửi kinh/vĩ độ về Firebase |
| 3. Người dùng mở Android App -> Chọn điểm đến trên Google Maps -> Ấn FIND PATH |
| 4. App giải mã Polyline thành chuỗi Waypoints -> Ấn SEND DATA lên Firebase |
| 5. ESP8266 tải chuỗi Waypoints -> Truyền qua UART sang STM32F407 |
| 6. STM32 kích hoạt bộ điều khiển PID bám lộ trình và bật cảm biến US-015 |
+-----------------------------------------------------------------------------------+
Phân tích Chi phí - Lợi ích (Cost-Benefit Analysis)
- Chi phí chế tạo phần cứng nguyên mẫu: ~7.500.000 VNĐ (Bao gồm khung nhôm, 4 động cơ encoder, mạch STM32, GPS, GY-86, ESP8266, Pin LiPo và mạch công suất).
- So sánh vận hành: Tiết kiệm hơn 85% chi phí đầu tư ban đầu so với các dòng robot tự hành sử dụng cảm biến LiDAR công nghiệp, đồng thời cắt giảm chi phí nhân sự giao nhận nội khu với thời gian hoàn vốn (ROI) ước tính trong vòng 4–6 tháng hoạt động liên tục.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Độ phân giải định vị GPS dân sự: Sai số 2–3m của GPS tiêu chuẩn khiến robot gặp khó khăn khi di chuyển trên các lối đi hẹp dưới 1.5m.
- Phụ thuộc kết nối viễn thông: Cần duy trì kết nối Internet (4G/Wi-Fi) để cập nhật trạng thái giữa Cloud và Robot.
- Cảm biến siêu âm 1 bậc tự do: US-015 có góc quét hình nón giới hạn (khoảng 15°–30°), chưa phát hiện được các vật cản mỏng hoặc nằm ngoài góc quét chính diện.
Hướng nâng cấp trong tương lai
- Tích hợp RTK-GPS (Real-Time Kinematic): Nâng cao độ chính xác định vị lên mức centimet ($< 5\text{ cm}$), cho phép di chuyển chính xác trên vỉa hè hoặc các làn đường hẹp.
- Bổ sung Camera AI và 2D LiDAR tầm thấp: Ứng dụng các thuật toán Deep Learning (YOLOv8-nano trên Raspberry Pi hoặc Jetson Nano) để nhận diện người đi bộ, làn đường và biển báo.
- Quy hoạch quỹ đạo cục bộ (Local Path Planning): Triển khai thuật toán DWA (Dynamic Window Approach) hoặc TEB Local Planner để robot tự động vòng qua vật cản thay vì chỉ dừng lại chờ vật cản rời đi.
Đối tượng hưởng lợi
- Sinh viên & Học viên chuyên ngành Kỹ thuật: Tiếp cận tài liệu tham khảo hoàn chỉnh từ thiết kế cơ điện tử, lập trình hệ thống nhúng thời gian thực (FreeRTOS/ARM Cortex-M4) đến xử lý thuật toán Sensor Fusion và ứng dụng di động Android.
- Kỹ sư phát triển Robot (Robotics Developers): Tận dụng mẫu thiết kế kiến trúc phân tầng để triển khai nhanh các dự án AMR ngoài trời với chi phí thấp mà vẫn đảm bảo độ tin cậy.
- Doanh nghiệp vừa và nhỏ (SMEs): Mô hình hóa giải pháp vận chuyển hàng hóa nội khu giá rẻ, mở ra cơ hội tự động hóa quy trình kho vận mà không đòi hỏi hạ tầng định vị đắt tiền.
- Cộng đồng nghiên cứu: Cung cấp dữ liệu thực nghiệm về sai số của bộ lọc bù góc nghiêng trên cảm biến 9-DOF và thuật toán trích xuất Polyline từ Google Maps API.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai và chạy hệ thống là gì?
Hệ thống yêu cầu nguồn cấp DC từ 11.1V đến 12.6V (Pin LiPo 3S tối thiểu 25C, dung lượng $\ge 3000\text{ mAh}$); thiết bị điều khiển cần chạy hệ điều hành Android 5.0 trở lên có kết nối Internet; môi trường thử nghiệm cần thoáng đãng để GPS bắt được tối thiểu 4 vệ tinh (3D Fix).
2. Giới hạn khoảng cách và lộ trình của robot là bao nhiêu?
Về mặt phần mềm, Google Directions API giới hạn chuỗi URL 8.192 ký tự, tương đương lộ trình đường bộ khoảng 25–30 km. Về mặt năng lượng, với bộ pin 3S 5200mAh, robot có khả năng hoạt động liên tục trong phạm vi bán kính 3–5 km tùy tải trọng và tốc độ cài đặt.
3. Làm thế nào để robot không bị trôi góc (drift) khi hoạt động lâu ngoài trời?
Hệ thống sử dụng bộ lọc bù kết hợp giữa 3 trục gia tốc kế (tính góc nghiêng), 3 trục từ kế (xác định hướng Bắc từ trường) và 3 trục con quay hồi chuyển. Gia tốc kế khử sai số nghiêng cho từ kế, còn từ kế liên tục bù trừ hiện tượng trôi tích phân của con quay hồi chuyển, duy trì góc hướng ổn định trong suốt hành trình.
4. Hệ thống xử lý thế nào khi mất kết nối mạng (Internet/4G) giữa chừng?
Khi người dùng bấm "SEND DATA", toàn bộ danh sách điểm mốc (Waypoints) của lộ trình đã được nạp trực tiếp vào bộ nhớ RAM của vi điều khiển STM32F407. Do đó, nếu mất kết nối Internet giữa chừng, robot vẫn tự hành hoàn thành trọn vẹn lộ trình đã lưu và tự dừng lại an toàn tại điểm đích.
5. Chi phí triển khai và thời gian hoàn vốn của giải pháp như thế nào?
Tổng chi phí linh kiện để lắp ráp hoàn chỉnh một robot thử nghiệm dao động từ 6.5 đến 8 triệu VNĐ. So với việc thuê nhân công vận chuyển nội khu hoặc đầu tư hệ thống AGV công nghiệp nhập khẩu, giải pháp giúp tiết kiệm tới 80% ngân sách và có khả năng thu hồi vốn trong vòng 4 đến 6 tháng.
Kết luận
Đề tài "Xây dựng Robot đa hướng tự hành theo quỹ đạo từ bản đồ Google và tự né tránh vật cản" đã giải quyết thành công bài toán tự hành hóa phương tiện di chuyển ngoài trời với chi phí tối ưu. Thông qua việc kết hợp nền tảng vi điều khiển hiệu năng cao STM32F407, hệ điều hành thời gian thực FreeRTOS, giải thuật Sensor Fusion 9-DOF và ứng dụng điều khiển tích hợp Google Maps Platform, công trình đã chứng minh tính khả thi vượt trội của mô hình AMR giá rẻ phục vụ các bài toán vận chuyển nội khu thông minh. Đây là nền tảng vững chắc để tiếp tục mở rộng tích hợp các công nghệ định vị độ chính xác cao (RTK-GPS) và trí tuệ nhân tạo thị giác máy tính trong tương lai gần.