Giới thiệu dự án
Trong kỷ nguyên Công nghiệp 4.0 và tự động hóa thông minh, thị trường robot di động tự hành (Autonomous Mobile Robot - AMR) toàn cầu đang chứng kiến tốc độ tăng trưởng kép hàng năm (CAGR) vượt mức 19.5%, hướng tới quy mô hơn 10.5 tỷ USD vào năm 2028. Sự chuyển dịch từ các hệ thống xe tự hành dẫn đường cố định (Automated Guided Vehicles - AGV) phụ thuộc vào đường ray từ/vạch kẻ sang các AMR thông minh có khả năng nhận thức không gian thực tế đang là yêu cầu cấp thiết trong logistics, y tế, nhà kho thông minh và cứu hộ cứu nạn.
+-----------------------------------------------------------------------------+
| KIẾN TRÚC TỔNG THỂ HỆ THỐNG ROBOT HAI BÁNH VI SAI |
+-----------------------------------------------------------------------------+
| [RPLiDAR C1 (360°, 12m)] [Remote Master / Rviz Visualization PC] |
| (USB Serial) (Wi-Fi TCP/IP) |
| | HIGH-LEVEL PROCESSING: Raspberry Pi 4 Model B | |
| | • Ubuntu 20.04 LTS + ROS Noetic Ninjemys | |
| | • Hector_Mapping Node (Scan Matching & 2D Occupancy Grid Map) | |
| | • Odometry Transformation (/tf: base_link -> odom -> map) | |
| (/odom, Encoders) (/cmd_vel) |
| | LOW-LEVEL CONTROLLER: Arduino Mega 2560 (MCU) | |
| | • Dual-channel PID Closed-Loop Velocity Control (Rate: 50Hz) | |
| | • Optical Encoder Pulse Processing & Kinematics Computation | |
| | (12V, 130RPM, AB Hall) | | (Powered by 3S 18650 Li-ion) | |
+-----------------------------------------------------------------------------+
Vấn đề thực tiễn và điểm nghẽn kỹ thuật (Problem Statement)
Các hệ thống robot di động tự chế hoặc giá rẻ trong phân khúc giáo dục và nghiên cứu ứng dụng thường đối mặt với các rào cản kỹ thuật cốt lõi:
- Sai số tích lũy Odometry (Dead Reckoning Drift): Hiện tượng trượt bánh cơ học (wheel slippage) khiến cảm biến Encoder ước lượng vị trí sai lệch lớn dần theo thời gian, phá vỡ cấu trúc bản đồ nếu dùng thuật toán SLAM phụ thuộc hoàn toàn vào đo đạc chuyển động bánh xe (như Gmapping).
- Chi phí phần cứng đắt đỏ: Các cảm biến LiDAR công nghiệp 3D và máy tính tính toán biên (Edge AI) chuẩn công nghiệp có giá thành rất cao, gây khó khăn cho việc nghiên cứu và triển khai số lượng lớn.
- Tách rời điều khiển thời gian thực và xử lý tính toán cấp cao: Vi điều khiển MCU không đủ năng lực xử lý thuật toán SLAM phức tạp, trong khi máy tính nhúng Linux (SBC) lại thiếu tính năng điều khiển xung thời gian thực cứng (hard real-time PWM) cho động cơ.
Mục tiêu dự án
- Thiết kế và gia công khung cơ khí 2 tầng: Cân đối trọng lượng, chống rung và cách ly nhiễu điện từ cho cảm biến LiDAR và mạch điều khiển.
- Xây dựng mạch điều khiển động học vi sai phân tầng: Tích hợp bộ vi điều khiển Arduino Mega 2560 và máy tính nhúng Raspberry Pi 4 qua giao thức nối tiếp tốc độ cao.
- Phát triển thuật toán điều khiển PID vận tốc vòng kín: Đáp ứng sai số vận tốc tĩnh $< 3.5%$, triệt tiêu hiện tượng lệch hướng khi di chuyển thẳng.
- Triển khai thuật toán HectorSLAM xây dựng bản đồ 2D: Khai thác dữ liệu quét laser từ cảm biến LiDAR để dựng bản đồ Occupancy Grid Map trong nhà với độ chính xác cao mà không cần dữ liệu Odometry lý tưởng.
- Định vị và hiển thị thời gian thực (Visualization): Giám sát trạng thái, quỹ đạo và bản đồ thông qua công cụ RViz trên nền tảng ROS.
Phương pháp tiếp cận và kết quả kỳ vọng
Dự án áp dụng phương pháp kiến trúc nhúng phân tán (Distributed Embedded Architecture). Tầng dưới (Arduino Mega) thực hiện các ngắt đo góc pha Encoder và bộ lọc PID điều khiển điện áp cầu H L298N. Tầng trên (Raspberry Pi 4) vận hành hệ điều hành robot ROS Noetic, xử lý gói tin Scan Matching từ RPLiDAR C1.
Chỉ số định lượng kỳ vọng:
- Bản đồ đạt độ tương đồng kích thước thực tế sai số kích thước hình học $\le 3.5%$.
- Tần số xử lý bản đồ $\ge 10\text{ Hz}$.
- Thời lượng hoạt động liên tục $\ge 120\text{ phút}$ với khối pin 3S Li-ion 3500mAh.
Phạm vi và giới hạn nghiên cứu
- Phạm vi: Môi trường trong nhà (indoor), mặt sàn phẳng, vật cản thẳng đứng nằm trong mặt phẳng quét 2D của LiDAR (độ cao cách sàn 18cm - 25cm).
- Giới hạn: Không khảo sát địa hình gồ ghề ngoài trời, không xử lý vật cản trong suốt (kính phản xạ) hoặc vật cản dưới mặt phẳng quét LiDAR.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí |
Giải pháp AGV truyền thống |
Robot di động mã nguồn đóng |
Giải pháp ROS-HectorSLAM đề xuất |
| Cơ chế định hướng |
Cảm biến từ, băng dính quang |
Cảm biến Visual SLAM độc quyền |
RPLiDAR C1 + Hector Scan Matching |
| Tính linh hoạt bản đồ |
Rất thấp (phải dán lại đường line) |
Trung bình (phụ thuộc cloud hãng) |
Cực cao (cập nhật map online 2D) |
| Độ tin cậy khi trượt bánh |
Trung bình |
Kém nếu mất dấu hình ảnh |
Cao (không phụ thuộc Odometry) |
| Chi phí triển khai |
Trung bình - Cao |
Rất cao ($> 2,000\text{ USD}$) |
Thấp - Tối ưu ($< 250\text{ USD}$) |
| Khả năng mở rộng phần mềm |
Đóng hoàn toàn |
API hạn chế |
Mã nguồn mở ROS (C++/Python) |
Phân loại yêu cầu người dùng (Mô hình MoSCoW)
- Must have (Bắt buộc): Khung gầm 2 bánh vi sai + bánh caster chịu tải; điều khiển động cơ PID vòng kín; giao tiếp ROS qua ROS Serial UART; quét RPLiDAR C1 và dựng Occupancy Grid Map.
- Should have (Nên có): Giao diện Rviz quan sát tọa độ $TF$ (
base_link, laser, odom, map); cơ chế an toàn ngắt động cơ khi mất kết nối tín hiệu.
- Could have (Có thể mở rộng): Tự động điều hướng tránh vật cản động bằng DWA Local Planner (
move_base).
- Won't have (Chưa thực hiện đợt này): Lập bản đồ 3D PointCloud hoặc nhận diện biển chỉ dẫn bằng thị giác máy tính AI.
Thiết kế hệ thống
Technology Stack và phiên bản chi tiết
- Hệ điều hành cấp cao: Ubuntu Linux 20.04.6 LTS (Focal Fossa).
- Robot Middleware: Robot Operating System (ROS 1) Noetic Ninjemys.
- Phần mềm nhúng cấp thấp: Arduino IDE 2.3.2, C++11,
rosserial_arduino Client Library.
- Gói phần mềm SLAM:
hector_slam stack v0.5.2 (hector_mapping, hector_trajectory_server).
- Công cụ trực quan: RViz (ROS 3D Robot Visualizer) v1.14.19.
- Phần cứng vi xử lý: Broadcom BCM2711, Quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz (Raspberry Pi 4 4GB).
- Cảm biến Laser Rangefinder: RPLiDAR C1 (Tần số quét 10Hz, độ phân giải góc 0.72°, phạm vi 0.05m - 12m).
Thiết kế giao tiếp và luồng dữ liệu (Data Pipeline & Topics)
Hệ thống sử dụng các ROS Topic chuẩn để bảo đảm tính tương thích theo kiến trúc tính toán đồ thị (Computation Graph):
| ROS COMPUTATION GRAPH & TOPICS |
| |
- Topic
/scan (sensor_msgs/LaserScan): Dữ liệu mảng khoảng cách và góc quét từ RPLiDAR C1 gửi lên bộ nhớ đệm của ROS.
- Topic
/cmd_vel (geometry_msgs/Twist): Chứa vận tốc tuyến tính trục $X$ ($v_x$) và vận tốc góc trục $Z$ ($\omega_z$).
- Topic
/odom (nav_msgs/Odometry): Trả về tọa độ suy biến $x, y, \theta$ và vận tốc thực tế của robot tính từ Encoder.
- Topic
/map (nav_msgs/OccupancyGrid): Bản đồ lưới 2D với giá trị xác suất chiếm chỗ từ $0$ (trống), $100$ (vật cản) đến $-1$ (chưa khám phá).
Phương pháp nghiên cứu và quy trình triển khai (Methodology)
Dự án áp dụng mô hình phát triển V-Model kết hợp các chu kỳ lặp ngắn (Iterative Prototyping):
- Giai đoạn 1 (Tuần 1 - 4): Thiết kế mô hình toán học động học thuận/nghịch, mô phỏng trên Gazebo/MATLAB, tính toán tải trọng động cơ và thiết kế bản vẽ cơ khí 2D trên AutoCAD.
- Giai đoạn 2 (Tuần 5 - 10): Gia công lắp ráp phần cứng, đấu nối mạch phân phối nguồn 12V/5V cách ly nguồn động lực và nguồn điều khiển; viết firmware ngắt timer Encoder và thuật toán PID trên Arduino.
- Giai đoạn 3 (Tuần 11 - 16): Cấu hình ROS Master trên Raspberry Pi, tích hợp
rosserial, hiệu chuẩn khung biến đổi tọa độ $TF$ (base_footprint $\rightarrow$ base_link $\rightarrow$ laser), chạy thực nghiệm thuật toán HectorSLAM trong phòng thí nghiệm.
- Giai đoạn 4 (Tuần 17 - 20): Kiểm thử đánh giá sai số bản đồ với thước đo laser chuẩn, tối ưu thông số bộ lọc và biên soạn tài liệu kỹ thuật hoàn chỉnh.
Implementation và kết quả
Quy trình phát triển và chi tiết thuật toán cốt lõi
1. Động học thuận và nghịch hệ hai bánh vi sai (Differential Drive Kinematics)
Robot sử dụng 2 bánh chủ động độc lập có bán kính $r = 0.0325\text{ m}$ ($65\text{ mm}$) và khoảng cách giữa 2 bánh $L = 0.185\text{ m}$.
Tâm quay tức thời (ICC - Instantaneous Center of Curvature) được tính toán từ vận tốc tuyến tính bánh phải $v_R$ và bánh trái $v_L$:
$$\omega = \frac{v_R - v_L}{L}, \quad R_{ICC} = \frac{L}{2} \cdot \frac{v_R + v_L}{v_R - v_L}$$
Vận tốc tuyến tính trung bình $v$ và vận tốc góc $\omega$ của robot tại trọng tâm:
$$v = \frac{v_R + v_L}{2}, \quad \omega = \frac{v_R - v_L}{L}$$
Phương trình cập nhật vi phân trạng thái vị trí và hướng $(x, y, \theta)$ sau khoảng thời gian $\Delta t$:
$$\begin{bmatrix} x_{t+\Delta t} \ y_{t+\Delta t} \ \theta_{t+\Delta t} \end{bmatrix} = \begin{bmatrix} x_t \ y_t \ \theta_t \end{bmatrix} + \begin{bmatrix} v \cos(\theta_t) \Delta t \ v \sin(\theta_t) \Delta t \ \omega \Delta t \end{bmatrix}$$
2. Thuật toán điều khiển PID vận tốc động cơ thời gian thực
Hệ thống sử dụng bộ điều khiển PID số rời rạc chạy trong ngắt định thời $T_s = 20\text{ ms}$ trên Arduino Mega:
$$u(k) = K_p e(k) + K_i T_s \sum_{j=0}^{k} e(j) + K_d \frac{e(k) - e(k-1)}{T_s}$$
// Trích xuất mã nguồn điều khiển PID vòng kín trên Arduino Mega 2560
#include <Arduino.h>
volatile long encoder_count_L = 0;
volatile long encoder_count_R = 0;
float target_rpm_L = 0.0, target_rpm_R = 0.0;
float current_rpm_L = 0.0, current_rpm_R = 0.0;
// Tham số PID sau hiệu chỉnh thực nghiệm (Ziegler-Nichols + Fine Tuning)
const float Kp = 2.85, Ki = 0.45, Kd = 0.08;
float error_integral_L = 0.0, prev_error_L = 0.0;
int pwm_out_L = 0;
void IRAM_ATTR isr_encoder_left() {
if (digitalRead(ENCODER_L_PIN_B) == HIGH) {
encoder_count_L++;
} else {
encoder_count_L--;
}
}
void compute_PID_Left(float setpoint, float feedback, float dt) {
float error = setpoint - feedback;
error_integral_L += error * dt;
// Chống hiện tượng bão hòa tích phân (Anti-Windup)
error_integral_L = constrain(error_integral_L, -100.0, 100.0);
float derivative = (error - prev_error_L) / dt;
float output = (Kp * error) + (Ki * error_integral_L) + (Kd * derivative);
prev_error_L = error;
pwm_out_L = (int)constrain(output, 0, 255);
analogWrite(PWM_PIN_MOTOR_L, pwm_out_L);
}
3. Thuật toán lập bản đồ HectorSLAM (Scan Matching Optimization)
Khác với Gmapping sử dụng bộ lọc hạt Rao-Blackwellized Particle Filter (RBPF) đòi hỏi dữ liệu Odometry liên tục, HectorSLAM tìm kiếm phép biến đổi không gian $\mathbf{\xi} = (p_x, p_y, \psi)^T$ để căn chỉnh đám mây điểm LiDAR vào bản đồ lưới tích lũy bằng cách cực tiểu hóa phi hàm phi tuyến thông qua thuật toán tối ưu Gauss-Newton:
$$\mathbf{\xi}^* = \arg\min_{\mathbf{\xi}} \sum_{i=1}^n \left[ 1 - M(\mathbf{S}_i(\mathbf{\xi})) \right]^2$$
Trong đó:
- $M(\mathbf{S}_i(\mathbf{\xi}))$ là giá trị xác suất chiếm chỗ tại điểm $\mathbf{S}_i$ trong bản đồ lưới.
- $\mathbf{S}_i(\mathbf{\xi})$ là tọa độ thế giới của điểm quét thứ $i$ sau khi áp dụng ma trận quay và tịnh tiến $\mathbf{\xi}$.
- Ma trận thông tin Hessian $\mathbf{H}$ và vector Gradient $\nabla M$ được tính toán trên cấu trúc đa tầng phân giải (Multi-Resolution Grid Maps) giúp tránh bẫy cực trị địa phương và tăng tốc độ hội tụ $< 15\text{ ms}$ cho mỗi vòng quét 360°.
Testing và Validation
| SƠ ĐỒ TESTBENCH THỰC NGHIỆM |
| |
| |
| • Thiết bị đo chuẩn: Thước đo khoảng cách Laser Bosch GLM 50-27 CG |
| • Tải trọng kiểm thử: 1.85 kg (Khung + Động cơ + Pin + LiDAR + SBC) |
Thực nghiệm được thực hiện tại hành lang và phòng lab IoT diện tích $8.40\text{ m} \times 4.80\text{ m}$ có bố trí các vật cản hình học chuẩn.
Bảng so sánh kết quả đo đạc hình học thực tế vs Bản đồ Rviz
| Vị trí / Kích thước kiểm tra |
Kích thước thực tế (Laser Bosch GLM) |
Kích thước trích xuất từ RViz / Map |
Sai số tuyệt đối ($\Delta E$) |
Tỷ lệ sai số (%) |
| Chiều dài phòng (Trục X) |
$840.0\text{ cm}$ |
$831.6\text{ cm}$ |
$8.4\text{ cm}$ |
$1.00%$ |
| Chiều rộng phòng (Trục Y) |
$480.0\text{ cm}$ |
$472.3\text{ cm}$ |
$7.7\text{ cm}$ |
$1.60%$ |
| Khoảng cách Vật cản A - B |
$215.0\text{ cm}$ |
$211.2\text{ cm}$ |
$3.8\text{ cm}$ |
$1.76%$ |
| Cạnh bàn đo góc phòng |
$120.0\text{ cm}$ |
$116.8\text{ cm}$ |
$3.2\text{ cm}$ |
$2.66%$ |
| Thử nghiệm tịnh tiến thẳng 40cm |
$40.0\text{ cm}$ |
$39.1\text{ cm}$ |
$0.9\text{ cm}$ |
$2.25%$ |
Kết quả đạt được
- Hiệu năng hệ thống: Tốc độ cập nhật bản đồ đạt ổn định $10\text{ Hz}$, độ trễ giao tiếp giữa Arduino và Raspberry Pi duy trì $< 8.5\text{ ms}$ ở Baudrate 115200 bps.
- Tài nguyên chiếm dụng trên Raspberry Pi 4: Mức sử dụng CPU trung bình $28.4%$, RAM chiếm dụng $412\text{ MB}$, nhiệt độ SoC duy trì $48.5^\circ\text{C}$ với tản nhiệt nhôm thụ động.
- Tính ổn định của bản đồ: Bản đồ Occupancy Grid Map giữ nguyên tính nhất quán, các góc tường vuông vắn, không xuất hiện hiện tượng chồng lặp bóng ma (ghosting artifacts) ngay cả khi robot quay vòng với tốc độ góc $1.2\text{ rad/s}$.
Đổi mới và đóng góp
Các giải pháp cải tiến kỹ thuật nổi bật
- Triệt tiêu ảnh hưởng trượt bánh: Ứng dụng thành công giải thuật quét khớp HectorScan trên nền tảng vi sai mini, biến robot thành thiết bị lập bản đồ độc lập không phụ thuộc vào tính hoàn hảo cơ khí của hệ dẫn động bánh xe.
- Kiến trúc nguồn phân dòng lọc nhiễu 3 tầng: Tách biệt nguồn công suất cho động cơ (12V qua L298N) và nguồn kỹ thuật số nhạy cảm cho LiDAR/SBC (5V-3A qua module Buck hạ áp DC-DC MP1584), giúp loại bỏ hoàn toàn hiện tượng sụt áp và nhiễu sóng xung vuông trên đường truyền UART.
- Phân bố kết cấu tầng tối ưu trường quan sát (FoV): Thiết kế đưa RPLiDAR C1 lên tầng 2 với góc quét không điểm mù $360^\circ$, loại bỏ hiện tượng bị che chắn bởi pin và bo mạch vi xử lý.
| MA TRẬN ĐÁNH GIÁ CÁC GIẢI THUẬT SLAM TRÊN HỆ THỐNG NHÚNG |
| Tiêu chí | Gmapping (RBPF) | Cartographer | HectorSLAM |
| | | (Google) | (Đồ án chọn) |
| Yêu cầu Odometry | Bắt buộc | Tùy chọn | Không cần |
| Yêu cầu IMU | Không | Khuyên dùng | Tùy chọn |
| Tải CPU nhúng (Pi 4) | Trung bình (45%) | Rất cao (80-90%) | Rất thấp (28%)|
| Độ trễ dựng map | Thấp (~30ms) | Trung bình | Cực thấp (12ms|
| Độ phân giải bản đồ | 0.05 m | 0.05 m | 0.025 m |
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế (Use Cases)
- Hệ thống dẫn đường trong bệnh viện/khu cách ly: Vận chuyển thuốc men, nhu yếu phẩm tự động vào các phòng bệnh nhân truyền nhiễm mà không cần tương tác trực tiếp.
- Tuần tra an ninh và kiểm kê nhà kho: Tự động di chuyển lập bản đồ các kho hàng vừa và nhỏ, gắn thẻ RFID/mã QR để quản lý vị trí kiện hàng.
- Nền tảng đào tạo Robotic và IoT: Làm mô hình chuẩn cho sinh viên ngành Điện tử - Viễn thông, Hệ thống nhúng và Kỹ thuật Máy tính tiếp cận công nghệ ROS tiêu chuẩn công nghiệp.
Hướng dẫn triển khai và vận hành hệ thống
# 1. Khởi tạo ROS Master và kết nối phần cứng từ Raspberry Pi
roscore &
rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200 &
# 2. Kích hoạt Node quét cảm biến Laser RPLiDAR C1
roslaunch rplidar_ros rplidar_c1.launch &
# 3. Kích hoạt thuật toán Hector Mapping để dựng bản đồ 2D
roslaunch hector_mapping mapping_default.launch &
# 4. Lưu bản đồ sau khi quét hoàn chỉnh không gian
rosrun map_server map_saver -f ~/my_lab_map
| BẢNG DỰ TOÁN BÀO CHẾ VÀ CHI PHÍ LINH KIỆN (BOM) |
| STT | Danh mục phần cứng | Thông số kỹ thuật | Chi phí (VNĐ) |
| 1 | Raspberry Pi 4 Model B (4GB) | Cortex-A72, Wi-Fi Dual | 1,650,000 |
| 2 | Cảm biến RPLiDAR C1 | Range 12m, 360°, TOF | 1,850,000 |
| 3 | Arduino Mega 2560 R3 | ATmega2560 16MHz | 280,000 |
| 4 | Động cơ DC Servo JGA25-370 (x2)| 12V 130RPM + Hall Encoder | 320,000 |
| 5 | Mạch điều khiển động cơ L298N | Dual H-Bridge 2A | 45,000 |
| 6 | Khung xe Mica 2 tầng + Caster | Cắt Laser Acrylic 3mm | 150,000 |
| 7 | Pin 18650 Panasonic NCR (x3) | 3S 11.1V 3500mAh + BMS | 270,000 |
| 8 | Phụ kiện, dây cắm, Buck DC-DC | LM2596 / MP1584 | 90,000 |
| TỔNG CHI PHÍ PHẦN CỨNG: 4,655,000 VNĐ |
Hạn chế và hướng phát triển
Các hạn chế kỹ thuật hiện tại
- Phụ thuộc vào đặc trưng hình học môi trường: Thuật toán HectorSLAM Scan Matching có xu hướng mất định vị (lost localization) khi di chuyển dọc theo các hành lang thẳng tắp, dài và thiếu các góc tường/chướng ngại vật làm điểm tựa tính toán ma trận thông tin.
- Thiếu phản hồi quán tính IMU: Khi robot gặp hiện tượng vấp bậc gờ nhẹ, cảm biến LiDAR bị nghiêng khiến mặt cắt quét laser sai lệch, gây nhiễu các điểm tường ảo trên bản đồ 2D.
- Nhiệt năng mạch công suất: Driver L298N sử dụng công nghệ BJT thế hệ cũ, gây sụt áp khoảng $1.4\text{V} - 2.0\text{V}$ trên transistor công suất và tỏa nhiệt lớn khi chạy tải cao liên tục.
Kế hoạch nâng cấp và hướng phát triển
- Nâng cấp Driver MOSFET: Thay thế module L298N bằng mạch cầu H MOSFET hiệu suất cao (như TB6612FNG hoặc BTS7960) giúp giảm tổn hao nhiệt $> 60%$ và cải thiện hiệu suất sử dụng pin.
- Tích hợp cảm biến quán tính 9 trục (IMU MPU9250): Kết hợp thuật toán mở rộng
robot_localization (Extended Kalman Filter - EKF) để hợp nhất dữ liệu Odometry, IMU và LiDAR, khắc phục triệt để lỗi quét khi qua hành lang dài.
- Mở rộng sang ROS 2 Humble/Iron: Chuyển dịch toàn bộ package sang nền tảng ROS 2 với giao thức truyền thông thời gian thực DDS (Data Distribution Service), cải thiện độ an toàn bảo mật và khả năng phân tán đa robot (Multi-Robot Swarm).
Đối tượng hưởng lợi
- Sinh viên khối ngành Kỹ thuật (Điện tử, Tự động hóa, IoT, Công nghệ thông tin): Cung cấp tài liệu tham khảo chi tiết từ mô hình toán học động học vi sai, cấu trúc gói tin
rosserial đến phương pháp triển khai SLAM thực nghiệm.
- Kỹ sư phát triển Robot (Robotics Developers): Nắm vững kiến trúc phần cứng phân tầng chuẩn giữa vi điều khiển thời gian thực và SBC Linux, tái sử dụng các đoạn code tối ưu PID và cấu hình Launch file.
- Doanh nghiệp vừa và nhỏ (SMEs) & Startup: Cơ sở phát triển các dòng AMR vận chuyển nội bộ giá rẻ với tổng chi phí vật tư linh kiện dưới 5 triệu đồng.
- Nhà nghiên cứu học thuật: Dữ liệu thực nghiệm so sánh kích thước bản đồ cung cấp minh chứng tin cậy cho hiệu quả của thuật toán Scan Matching trong điều kiện cảm biến laser giá rẻ.
Câu hỏi thường gặp
1. Yêu cầu cấu hình tối thiểu để triển khai phần mềm là gì?
Hệ thống yêu cầu máy tính đơn bo nhúng từ Raspberry Pi 3B+ trở lên (khuyên dùng Raspberry Pi 4 Model B RAM 4GB) cài hệ điều hành Ubuntu 20.04 LTS và ROS Noetic Ninjemys. Phía máy tính giám sát từ xa cần cấu hình tối thiểu Intel Core i3, RAM 4GB và card đồ họa hỗ trợ OpenGL để render mượt mà môi trường 3D RViz.
2. Tại sao đồ án lại chọn HectorSLAM thay vì Gmapping phổ biến?
Gmapping phụ thuộc chặt chẽ vào độ chính xác của Odometry từ Encoder bánh xe. Trên các mô hình robot cỡ nhỏ tự chế, độ trượt bánh (slippage) và sai số chế tạo cơ khí thường rất lớn, khiến Gmapping dễ làm méo mó bản đồ. HectorSLAM sử dụng trực tiếp kỹ thuật khớp tia laser (Scan Matching) với độ phân giải cao, hoàn toàn độc lập với sai số Odometry bánh xe.
3. Giao tiếp UART 115200 bps có gây nghẽn cổ chai (bottleneck) dữ liệu không?
Không. Với kiến trúc phân tầng, Arduino Mega chỉ gửi dữ liệu số đếm Encoder và nhận lệnh mảng 2 phần tử $v_x, \omega_z$ qua ROS Serial với tần số 50Hz, chiếm dụng băng thông $< 15\text{ KB/s}$, nằm hoàn toàn trong ngưỡng an toàn của đường truyền UART 115200 bps (tối đa $\approx 11.5\text{ KB/s}$ với dữ liệu nhị phân nén của rosserial).
4. Hệ thống có thể hoạt động trong môi trường hoàn toàn tối không?
Có. Cảm biến RPLiDAR C1 phát ra tia laser hồng ngoại bước sóng gần (Near-Infrared Laser) và thu nhận tín hiệu quang phản xạ chủ động, do đó khả năng quét và lập bản đồ hoàn toàn không phụ thuộc vào điều kiện ánh sáng môi trường.
5. Khả năng chịu tải và thời gian vận hành liên tục của robot là bao nhiêu?
Với kết cấu khung mica chịu lực và 2 động cơ DC Servo JGA25-370 giảm tốc tỉ số 1:21.3, robot có khả năng mang tải trọng tĩnh lên tới $3.5\text{ kg}$. Khối nguồn 3 cell pin 18650 (11.1V - 3500mAh) cung cấp đủ năng lượng cho hệ thống vận hành liên tục từ 120 đến 150 phút ở chế độ quét bản đồ liên tục.
Kết luận
Đồ án tốt nghiệp "Điều khiển và lập bản đồ cho robot di động hai bánh" đã hoàn thành trọn vẹn các mục tiêu kỹ thuật đặt ra từ giai đoạn thiết kế lý thuyết đến thực nghiệm hiện trường. Thông qua việc kết hợp tối ưu giữa hệ điều hành mã nguồn mở ROS Noetic, máy tính nhúng Raspberry Pi 4, vi điều khiển Arduino Mega 2560 và cảm biến quét laser RPLiDAR C1, hệ thống đã chứng minh tính khả thi vượt trội trong việc tự định vị và tái tạo không gian 2D với sai số kích thước trung bình $< 2.0%$.
Thành công của đề tài không chỉ đóng góp một giải pháp phần cứng - phần mềm mẫu mực, chi phí thấp cho bài toán lập bản đồ trong nhà mà còn mở ra nền tảng vững chắc để tiếp tục tích hợp các thuật toán điều hướng tự động, nhận diện chướng ngại vật thông minh và kết nối đám mây IoT trong tương lai. Hệ thống là minh chứng rõ nét cho năng lực nghiên cứu ứng dụng công nghệ cao của sinh viên ngành Hệ thống Nhúng và IoT, đáp ứng trực tiếp nhu cầu tự động hóa ngày càng cao của xã hội hiện đại.