Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghiệp 4.0 và sự phát triển mạnh mẽ của lĩnh vực Robotics, robot di động (Mobile Robot) ngày càng đóng vai trò quan trọng trong việc tự động hóa các hoạt động công nghiệp và dân dụng. Tuy nhiên, việc vận hành robot di động trong các môi trường chưa xác định, phức tạp hoặc tiềm ẩn nguy hiểm (như cứu nạn, cứu hộ, khám phá không gian độc hại) đặt ra thách thức lớn về khả năng tự định vị và thiết lập bản đồ thời gian thực. Để giải quyết vấn đề này, việc tích hợp cảm biến đo khoảng cách bằng ánh sáng (LiDAR), camera truyền hình ảnh trực tiếp cùng hệ điều hành chuyên dụng cho robot (Robot Operating System - ROS) là một hướng tiếp cận kỹ thuật tất yếu.

Đề tài "Xây dựng Robot Di động Sử dụng Lidar Hỗ trợ Khám phá Môi trường" được thực hiện bởi nhóm tác giả Trần Hoàng Chương và Nguyễn Huy Hoàng (Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, chuyên ngành Hệ thống nhúng và IoT) nhằm thiết kế và chế tạo một mô hình robot di động vi sai có cấu trúc linh hoạt, ứng dụng công nghệ quét laser DTOF và thuật toán SLAM để tự hành và truyền tải dữ liệu môi trường.

Mục tiêu nghiên cứu cụ thể của đề tài bao gồm:

  1. Phát triển hệ thống điều khiển mạnh mẽ cho phép robot thực hiện các tác vụ di chuyển phức tạp một cách tự động, có khả năng thích nghi với môi trường biến đổi.
  2. Tích hợp cảm biến LiDAR và camera nhằm thu thập dữ liệu không gian độ phân giải cao phục vụ quá trình tự định hình, tránh vật cản và điều hướng tự động.
  3. Ứng dụng thuật toán SLAM (Simultaneous Localization and Mapping) để định vị robot và tạo bản đồ 2D thời gian thực.
  4. Tối ưu hóa tương tác giữa người dùng và robot thông qua giao diện dòng lệnh (Command Line Interface) trên môi trường Linux/ROS2.
  5. Xây dựng giải pháp kỹ thuật toàn diện kết hợp giữa khả năng tự động hóa và sự linh hoạt trong điều khiển từ xa thông qua mạng không dây (WiFi).

Đối tượng nghiên cứu: Hệ thống robot di động dẫn động vi sai hai bánh tích hợp cảm biến LiDAR LD19, camera Rapoo XW180, bộ xử lý trung tâm Raspberry Pi 4 Model B và bộ vi điều khiển phụ trợ Arduino Nano.

Phạm vi nghiên cứu: Đề tài tập trung vào việc lập bản đồ 2D và truyền hình ảnh trong môi trường trong nhà (indoor environment); các thử nghiệm và đánh giá được hoàn thành vào tháng 6 năm 2024. Đồ án không mở rộng sang các bài toán tương tác xã hội phức tạp hoặc môi trường địa hình gồ ghề ngoài trời.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình tính toán

Nghiên cứu xây dựng trên nền tảng cơ học robot, lý thuyết điều khiển tự động và kiến trúc phần mềm phân tán:

  • Động học thuận (Forward Kinematics): Sử dụng quy tắc Denavit-Hartenberg (DH) để thiết lập hệ trục tọa độ và xây dựng ma trận chuyển đổi đồng nhất giữa các khâu của robot di động vi sai:
Khâu ($i$) $a_{i-1}$ $\alpha_{i-1}$ $d_i$ $\theta_i$
1 0 0 0 $\theta_1$
2 $d$ 0 0 0

Phương trình vị trí điểm đầu cuối của robot so với gốc tọa độ được xác định theo công thức: $$P_{EE} = \begin{bmatrix} x + d\cos(\theta_1) \ y + d\sin(\theta_1) \end{bmatrix}$$

  • Động lực học (Dynamics): Thiết lập phương trình vi phân chuyển động thông qua hàm Lagrange ($L = K - U$, với thế năng $U = 0$ do chuyển động trên mặt phẳng ngang). Năng lượng động năng $K$ được tính toán từ vận tốc thẳng $v = \frac{v_l + v_r}{2}$ và vận tốc góc, từ đó dẫn xuất phương trình mô-men xoắn Euler-Lagrange cho từng động cơ dẫn động bánh trái ($\tau_l$) và bánh phải ($\tau_r$).
  • Hệ điều hành Robot (ROS2): Ứng dụng ROS2 với kiến trúc phân tán dựa trên chuẩn DDS (Data Distribution Service), quản lý quá trình trao đổi thông tin qua mô hình Publish/Subscribe (Topic), Request/Reply (Service), Action và Parameter Server.
  • Hệ thống điều hướng 2D (ROS Navigation Stack / Nav2): Ứng dụng cấu trúc Costmap 2D đa lớp (Static Layer, Obstacle Layer, Inflation Layer) với các thông số điều khiển cốt lõi như obstacle_range, inflation_radius, global_costmap và local_costmap.
  • Thuật toán SLAM: Sử dụng gói phần mềm SLAM Toolbox (dựa trên thuật toán tối ưu hóa đồ thị tư thế - Pose-Graph SLAM), hỗ trợ cập nhật bản đồ liên tục (lifetime mapping) và xử lý không gian lớn, vượt trội hơn so với Hector SLAM, Gmapping hay Karto.
Phương pháp SLAM Ưu điểm Nhược điểm
Hector SLAM Hoạt động tốt trong nhà chỉ với LiDAR; không bắt buộc odometry. Kém hiệu quả trong không gian lớn, môi trường đối xứng hoặc có chuyển động nhanh.
Gmapping Dễ cài đặt, cấu hình đơn giản; bản đồ ổn định trong không gian hẹp. Phụ thuộc chặt chẽ vào odometry; tiêu tốn tài nguyên bộ nhớ khi quy mô bản đồ tăng.
Karto Thuật toán tối ưu đồ thị trực quan, dễ tiếp cận. Khả năng mở rộng và tài liệu hỗ trợ cho không gian phức tạp còn hạn chế.
SLAM Toolbox Khả năng tùy biến cao; hỗ trợ đa cảm biến; tối ưu cho không gian lớn; có chế độ online/offline. Yêu cầu cấu hình tham số phức tạp hơn các thuật toán truyền thống.
  • Điều khiển phản hồi PID: Áp dụng bộ điều khiển tỉ lệ - tích phân - vi phân (Proportional - Integral - Derivative) trên vi điều khiển cấp thấp để ổn định vận tốc động cơ thông qua tín hiệu phản hồi từ bộ mã hóa xung (encoder).

Phương pháp nghiên cứu thực tế

Nhóm tác giả triển khai quy trình gồm 5 giai đoạn liên kết:

  1. Nghiên cứu lý thuyết: Đánh giá lý thuyết động học vi sai, chuẩn giao tiếp ROS2, nguyên lý Time-of-Flight của LiDAR và các thuật toán SLAM 2D.
  2. Thiết kế hệ thống: Phân chia kiến trúc phần cứng - phần mềm theo mô hình mô-đun hóa độc lập.
  3. Phát triển phần mềm và mô phỏng: Xây dựng mô hình hình học robot (URDF), mô phỏng hoạt động cảm biến và thuật toán điều hướng trên môi trường Gazebo và RViz.
  4. Chế tạo và tích hợp phần cứng: Lắp ráp khung cơ khí bánh xích, đấu nối mạch nguồn, thiết lập giao tiếp UART/ROS Serial giữa vi điều khiển và máy tính nhúng.
  5. Thực nghiệm và đánh giá: Đo đạc sai số thực tế giữa không gian thật và không gian ảo trong RViz, kiểm tra độ ổn định của luồng dữ liệu hình ảnh và bản đồ 2D.

Thiết kế và triển khai hệ thống kỹ thuật

Kiến trúc phần cứng và phân bổ nguồn

Hệ thống phần cứng được thiết kế theo cấu trúc phân tầng vi xử lý nhằm đảm bảo tính thời gian thực và phân bổ tài nguyên hợp lý:

  • Khối xử lý trung tâm: Máy tính nhúng Raspberry Pi 4 Model B (SoC Broadcom BCM2711, 4 nhân Cortex-A72 64-bit 1.5 GHz, RAM 4GB, kết nối Wi-Fi Dual-Band). Thiết bị chịu trách nhiệm chạy ROS2, xử lý dữ liệu LiDAR, thuật toán SLAM Toolbox, quản lý camera node và truyền nhận dữ liệu với máy tính trạm (PC).
  • Khối điều khiển động cơ cấp thấp: Bo mạch vi điều khiển Arduino Nano kết nối trực tiếp với mạch cầu H L298N và đọc tín hiệu xung từ 2 bộ encoder động cơ. Việc tách riêng vi điều khiển giúp thuật toán PID hoạt động ổn định, tránh hiện tượng trễ chu kỳ xung khi Raspberry Pi chịu tải tính toán cao.
  • Khối cảm biến thu nhận:
    • Cảm biến LiDAR DTOF LD19: Quét 360°, tầm đo 0,02 m đến 12 m, tần số quét mặc định 10 Hz (có thể tùy chỉnh từ 5 Hz đến 13 Hz), tần số lấy mẫu 4500 Hz, độ phân giải góc 15 mm, sai số khoảng cách $\pm 45\text{ mm}$, giao tiếp UART với tốc độ 230400 bps.
    • Cảm biến hình ảnh Webcam Rapoo XW180: Chuẩn Full HD 1080P, tốc độ 30 khung hình/giây, tích hợp thuật toán lọc nhiễu (Noise Reduction) và microphone.
  • Khối cấp nguồn: Sử dụng bộ pin Lithium 4S (điện áp định mức khi sạc đầy đạt xấp xỉ 16,8V), đi qua 2 mạch giảm áp xung DC-DC Buck XL4015 độc lập để hạ áp xuống 5V cho Raspberry Pi 4 và cấp nguồn công suất cho mạch L298N. Nhóm tác giả chủ động tháo jumper 5V trên L298N và cấp nguồn điều khiển 5V riêng từ Arduino nhằm bảo vệ IC nguồn của mạch cầu H khỏi hiện tượng quá áp hoặc sụt áp đột ngột.

Kiến trúc phần mềm và truyền thông

  • Mô tả robot (URDF & TF): Định nghĩa liên kết hình học và hệ quy chiếu chuyển động của robot (base_link, base_footprint, laser_frame, camera_link).
  • Giao tiếp phần cứng (ros2_control & ROS Serial): Chuyển đổi lệnh vận tốc cmd_vel từ bộ điều hướng/joystick thành tín hiệu xung PWM cho động cơ và tính toán dữ liệu odometry từ phản hồi encoder.
  • Lập bản đồ và điều hướng: Dữ liệu laser scan từ topic /scan và dữ liệu odometry được đưa vào SLAM Toolbox để tính toán ma trận biến đổi tọa độ $map \rightarrow odom$, cập nhật bản đồ Occupancy Grid 2D lên topic /map.
  • Luồng truyền video: Node điều khiển camera thu thập dữ liệu hình ảnh dạng sensor_msgs/Image và phát trực tiếp qua mạng WiFi cục bộ để hiển thị trên giao diện điều khiển PC.

Nội dung chính theo từng chương

Chương 1: Tổng quan

Trình bày tính cấp thiết của việc phát triển robot di động tự hành trong thời đại công nghiệp 4.0, đặc biệt trong các ứng dụng khám phá và cứu nạn. Chương này tổng thuật các công trình nghiên cứu về SLAM trong và ngoài nước (như nghiên cứu tối ưu hóa Hector SLAM của Đinh Minh Bảo, nghiên cứu Gmapping của Abdelrasoul, nghiên cứu thị giác SLAM của Ibragimov). Từ đó, xác định rõ 5 mục tiêu cốt lõi, phương pháp luận 5 bước và các giới hạn phạm vi nghiên cứu của đề tài.

Chương 2: Cơ sở lý thuyết

Xây dựng khung tảng toán học và kỹ thuật cho đồ án:

  • Phân tích động học vi sai qua bảng thông số Denavit-Hartenberg và phương trình chuyển động Lagrange.
  • Giới thiệu kiến trúc phần mềm ROS2, cấu trúc cây tính toán (Computation Graph), các khái niệm Node, Topic, Service, Action và công cụ trực quan hóa RViz.
  • Phân tích nguyên lý hoạt động của LiDAR DTOF, thuật toán SLAM Toolbox và cơ chế tạo lập chi phí di chuyển (Costmap 2D) trong ROS Navigation Stack.
  • Phân tích cấu trúc khung truyền UART (tốc độ baud, bit LSB/MSB) và thuật toán điều khiển PID phản hồi vòng kín.

Chương 3: Thiết kế và xây dựng hệ thống robot

Mô tả chi tiết quá trình hiện thực hóa mô hình robot:

  • Xây dựng sơ đồ khối tổng thể, phân tích giải pháp phân tầng điều khiển giữa Raspberry Pi 4B và Arduino Nano.
  • Trình bày đặc tả kỹ thuật của các linh kiện: Raspberry Pi 4B, LiDAR LD19, Webcam Rapoo XW180, Driver L298N, mạch giảm áp XL4015 và hệ thống pin Lithium 4S.
  • Thiết kế mô hình 3D khung vỏ cơ khí của robot phục vụ gắn kết các cụm cảm biến và cơ cấu chấp hành.
  • Xây dựng sơ đồ phần mềm ROS2, luồng xử lý dữ liệu URDF, cấu hình nút điều khiển joystick, thuật toán điều khiển động cơ và nút thu phát hình ảnh từ camera.

Chương 4: Kết quả và đánh giá mô hình

Trình bày kết quả thử nghiệm mô phỏng và thực tế:

  • Hoàn thiện chế tạo mô hình vật lý của robot di động bánh xích.
  • Thử nghiệm mô phỏng thành công trên phần mềm Gazebo trong môi trường nhà kho ảo: kiểm tra góc quét LiDAR, luồng hình ảnh camera và thuật toán tạo bản đồ 2D.
  • Thực nghiệm đo khoảng cách trong môi trường thực và đối chiếu với dữ liệu hiển thị trên RViz, xác nhận độ sai lệch nằm trong ngưỡng cho phép của cảm biến.
  • Thử nghiệm tạo lập bản đồ 2D cho một căn phòng thực tế và stream video đồng thời qua giao diện ROS2 trên PC.

Chương 5: Kết luận và hướng phát triển

Đánh giá mức độ hoàn thành so với các mục tiêu đề ra ban đầu, tổng kết các kết quả đạt được về phần cứng, phần mềm và khả năng hoạt động đồng bộ của hệ thống; đồng thời chỉ rõ các hạn chế kỹ thuật và đề xuất các giải pháp nâng cấp trong tương lai.


Kết quả và đóng góp

Kết quả kỹ thuật thực nghiệm

  1. Mô hình phần cứng hoàn chỉnh: Chế tạo thành công robot di động dạng bánh xích nhỏ gọn, tích hợp đồng bộ khối vi xử lý trung tâm (Raspberry Pi 4B), vi điều khiển động cơ (Arduino Nano), cảm biến LiDAR LD19, camera Full HD và hệ thống nguồn pin 4S có mạch ổn áp an toàn.
  2. Khả năng mô phỏng: Thiết lập hoàn chỉnh môi trường mô phỏng trên Gazebo với mô hình nhà kho ảo, kiểm chứng chính xác mô hình động học URDF trước khi nạp vào hệ thống thực tế.
  3. Độ chính xác lập bản đồ và đo khoảng cách: Dữ liệu đám mây điểm từ LiDAR LD19 kết hợp thuật toán SLAM Toolbox tái tạo trung thực hình học căn phòng thử nghiệm (tường bao, góc cạnh, chướng ngại vật) thành bản đồ 2D Occupancy Grid. Độ chính xác đo đạc khoảng cách giữa thực tế và phần mềm RViz đạt độ tin cậy cao, phù hợp với sai số kỹ thuật định mức của cảm biến ($\pm 45\text{ mm}$).
  4. Giám sát thời gian thực: Hệ thống duy trì ổn định việc truyền luồng video 1080P từ camera Rapoo XW180 về máy tính điều khiển qua kết nối không dây, đồng thời cho phép điều khiển hướng di chuyển thông qua joystick.

Đóng góp của đề tài

  • Hiện thực hóa thành công kiến trúc điều khiển phân tầng (Hierarchical Architecture) cho robot di động: phân định rõ nhiệm vụ tính toán cao cấp (SLAM, Navigation, Vision trên ROS2/Raspberry Pi) và điều khiển cấp thấp (PID, Encoder, PWM trên Arduino), giúp tối ưu hóa hiệu năng tính toán và nâng cao tính mô-đun hóa của hệ thống.
  • Cung cấp tài liệu thiết kế chi tiết từ mô hình toán học (DH, Lagrange), sơ đồ kết nối mạch phần cứng, giải pháp an toàn nguồn điện cho đến quy trình cấu hình hệ thống phần mềm ROS2 và SLAM Toolbox.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế được ghi nhận

  • Không gian hoạt động: Hệ thống chỉ mới được đánh giá và hoạt động tối ưu trong môi trường trong nhà (indoor) có mặt sàn phẳng; chưa thích ứng với môi trường địa hình phức tạp ngoài trời.
  • Năng lực tính toán nhúng: Raspberry Pi 4B có giới hạn về tài nguyên tính toán khi phải xử lý đồng thời nhiều tiến trình nặng (vừa chạy SLAM, tính toán costmap, xử lý điểm laser vừa stream video chất lượng cao).
  • Độ phân giải và tầm quét cảm biến: LiDAR LD19 là dòng cảm biến 2D giá thành thấp, tầm quét tối đa 12 m và mặt phẳng quét cố định nên khó nhận diện các vật cản nằm ngoài mặt phẳng quét hoặc vật thể kích thước quá nhỏ.
  • Mức độ tương tác: Robot chủ yếu giao tiếp qua dòng lệnh hoặc điều khiển bằng joystick, chưa tích hợp các thuật toán điều hướng tự hành phức tạp (tự tìm đường tránh vật thể động ở tốc độ cao).

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

  • Nâng cấp bộ xử lý trung tâm lên các bo mạch nhúng có năng lực tính toán AI cao hơn (như các dòng Jetson) để xử lý thêm các thuật toán thị giác máy tính (nhận diện vật thể qua camera).
  • Bổ sung cảm biến đo lường quán tính (IMU) để kết hợp với dữ liệu encoder bánh xe (Sensor Fusion), nâng cao độ chính xác của Odometry khi robot di chuyển trên bề mặt trơn trượt.
  • Tích hợp cảm biến LiDAR 3D hoặc bổ sung cảm biến siêu âm/camera chiều sâu (Depth Camera) để quét vật cản ở nhiều độ cao khác nhau.
  • Tối ưu hóa thuật toán Nav2 để robot có khả năng tự động di chuyển đến điểm đặt trước (Goal Point) hoàn toàn tự động mà không cần can thiệp từ joystick.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho sinh viên và các nhóm nghiên cứu thuộc các ngành Hệ thống nhúng và IoT, Kỹ thuật Cơ điện tử, Kỹ thuật Robot, Điện - Điện tử và Kỹ thuật Máy tính:

  • Khung lý thuyết toán học: Cung cấp phương pháp chi tiết từng bước về cách áp dụng bảng Denavit-Hartenberg và phương trình Euler-Lagrange để mô hình hóa động học, động lực học của robot di động bánh xích vi sai.
  • Thiết kế tích hợp phần cứng: Đưa ra giải pháp thực tế về cách ly nguồn, chống cháy mạch cầu H (L298N) và mô hình phân tách vi điều khiển - máy tính nhúng, giải quyết bài toán nghẽn tài nguyên điều khiển động cơ.
  • Triển khai thực tế ROS2 & SLAM: Cung cấp quy trình cấu hình chi tiết từ mô phỏng trên Gazebo/RViz đến triển khai gói SLAM Toolbox trên phần cứng thực tế, giúp rút ngắn thời gian làm quen với ROS2 cho các dự án robot tự hành.

Câu hỏi thường gặp

1. Tại sao nhóm tác giả lại sử dụng thêm Arduino Nano làm mạch điều khiển động cơ thay vì nối trực tiếp L298N với Raspberry Pi 4?
Trả lời: Việc tách riêng Arduino Nano làm motor controller giúp hệ thống đạt tính mô-đun hóa cao, dễ dàng thay thế hoặc nâng cấp phần cứng sau này. Đồng thời, giải pháp này giúp đảm bảo tính thời gian thực cho việc đọc xung encoder và chạy thuật toán PID điều khiển động cơ, tránh tình trạng xung đột tiến trình hoặc trễ điều khiển khi Raspberry Pi 4 phải gánh các tác vụ tính toán nặng của ROS2.

2. Nhóm thực hiện đã xử lý vấn đề cấp nguồn cho mạch L298N như thế nào để đảm bảo an toàn?
Trả lời: Hệ thống sử dụng pin Lithium 4S (điện áp khi sạc đầy lên tới 16,8V). Để tránh làm cháy IC ổn áp tích hợp trên bo L298N do điện áp đầu vào cao và thao tác lắp ráp, nhóm tác giả đã chủ động tháo jumper cấp nguồn 5V trên L298N và dùng nguồn 5V độc lập từ Arduino cấp cho chân logic của L298N, chỉ sử dụng nguồn từ pin cấp cho chân công suất của động cơ.

3. Thuật toán SLAM Toolbox có ưu điểm gì nổi bật so với Hector SLAM và Gmapping trong đồ án này?
Trả lời: SLAM Toolbox có khả năng tùy biến cao, hỗ trợ cả hai chế độ lập bản đồ trực tuyến và ngoại tuyến, tối ưu tốt cho các môi trường có diện tích lớn và phức tạp. Thuật toán này không bị phụ thuộc hoàn toàn vào một loại dữ liệu đơn lẻ, hỗ trợ tính năng cập nhật bản đồ liên tục (lifetime mapping) và hợp nhất nhiều bản đồ.

4. Cảm biến LiDAR LD19 sử dụng trong đồ án có các thông số kỹ thuật chính nào?
Trả lời: LiDAR LD19 hoạt động theo nguyên lý DTOF, quét 360 độ với tầm đo từ 0,02 m đến 12 m, độ chính xác $\pm 45\text{ mm}$, tần số đo 4500 Hz, tần số quét mặc định 10 Hz, độ phân giải 15 mm, giao tiếp qua cổng TTL UART với tốc độ truyền 230400 bps và sử dụng nguồn điện 5V (180 mA).


Kết luận

Đồ án "Xây dựng Robot Di động Sử dụng Lidar Hỗ trợ Khám phá Môi trường" đã hoàn thành toàn diện các mục tiêu thiết kế và chế tạo một mô hình robot di động vi sai tích hợp cảm biến LiDAR DTOF và camera giám sát. Hệ thống phần mềm vận hành trên nền tảng ROS2 với thuật toán SLAM Toolbox đã chứng minh tính hiệu quả qua các bài kiểm tra mô phỏng trên Gazebo và thử nghiệm lập bản đồ không gian 2D thực tế. Đây là công trình ứng dụng có giá trị tham khảo cao về mặt kỹ thuật, cung cấp cơ sở phương pháp luận rõ ràng cho việc phát triển các hệ thống robot tự hành trong nhà và nghiên cứu ứng dụng ROS2 trong kỹ thuật nhúng.