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

Trong bối cảnh tự động hóa và kỹ thuật robot phát triển nhanh chóng, nhu cầu ứng dụng các hệ thống tự hành nhằm tối ưu hóa năng suất lao động, tiết kiệm chi phí và thời gian vận hành ngày càng gia tăng. Trong số các phân hệ robot, robot tự hành có khả năng tự hoạch định đường đi (Navigation Robot) giữ vai trò then chốt và được triển khai phổ biến trong các ứng dụng dân dụng lẫn công nghiệp như robot hút bụi, robot vận chuyển hàng hóa tự động trong nhà kho và nhà máy.

Tại Việt Nam, công nghệ xe tự hành đang trong giai đoạn tiếp cận và phát triển ban đầu thông qua các dự án nghiên cứu của các tập đoàn lớn (VinGroup, FPT, Phenikaa) cùng các cuộc thi học thuật dành cho sinh viên. Tuy nhiên, các sản phẩm và nền tảng phục vụ công tác đào tạo, nghiên cứu chuyên sâu trong nước vẫn còn tương đối hạn chế, nhỏ lẻ và thiếu tính đồng nhất. Trước đề tài này, tại Khoa Kỹ thuật Máy tính - Trường Đại học Công nghệ Thông tin (ĐHQG-HCM) đã có các công trình nghiên cứu tiền đề như:

  • Đề tài "Robot tránh vật cản sử dụng công nghệ LIDAR" của nhóm sinh viên Trần Hoàng Phương và Võ Anh Tuấn (hướng dẫn: ThS. Phan Đình Duy).
  • Đề tài "Xây dựng robot tự hành quét bản đồ trong nhà và tránh vật cản" của nhóm sinh viên Phan Anh Kiệt và Lê Chí Bảo (hướng dẫn: ThS. Nguyễn Duy Xuân Bách).

Cả hai đề tài tiền nhiệm đều ứng dụng Robot Operating System phiên bản 1 (ROS1) trên máy tính nhúng Nvidia Jetson Nano kết hợp kit vi điều khiển Arduino Mega vận hành theo vòng lặp tuần tự thông thường (while). Cách tiếp cận này bộc lộ hạn chế về độ trễ, thiếu tính đa nhiệm thời gian thực và khó mở rộng cho các hệ thống phức tạp.

Xuất phát từ thực tiễn đó, khóa luận tốt nghiệp kỹ sư của sinh viên Phùng Văn Hảo và Phan Hữu Đạt đặt ra mục tiêu nghiên cứu và tích hợp thành công hệ điều hành robot thế hệ thứ hai (ROS2) cùng hệ điều hành thời gian thực (RTOS) lên nền tảng phần cứng hiện đại hơn, phục vụ xây dựng mô hình robot tự hành có khả năng lập bản đồ, tự định vị và dẫn đường tránh vật cản.

Nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm 6 nội dung:

  1. Thiết kế mô hình 3D trên phần mềm Solidworks 2019 và gia công khung xe hoàn chỉnh bằng nhôm định hình 3 tầng, tích hợp các cảm biến LIDAR, IMU MPU6050 và cảm biến hồng ngoại.
  2. Cài đặt và cấu hình hệ điều hành ROS2 (phiên bản Foxy Fitzroy) trên máy tính nhúng Nvidia Jetson TX2 Developer Kit.
  3. Nghiên cứu, hiện thực RTOS và Micro-ROS trên kit vi điều khiển STM32F429 Discovery Kit nhằm quản lý, phân chia các tác vụ điều khiển động cơ và đọc cảm biến cấp thấp.
  4. Ứng dụng giải thuật Cartographer ROS để quét, thiết lập và lưu trữ bản đồ 2D môi trường hoạt động từ dữ liệu laser scan.
  5. Triển khai hệ thống Navigation2 (Nav2) trên ROS2 để định vị và tự động hoạch định quỹ đạo di chuyển theo bản đồ.
  6. Đồng bộ hóa và kết nối toàn diện các khối phần cứng và phần mềm (ROS2, RTOS, máy tính cá nhân quản lý qua RViz2) thành một hệ sinh thái vận hành thống nhất.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Mô hình robot tự hành 4 bánh chủ động, kiến trúc phần mềm tích hợp ROS2 - Micro-ROS - RTOS, các thuật toán SLAM (Cartographer) và hệ thống dẫn đường Nav2.
  • Phạm vi không gian: Môi trường hoạt động trong nhà (indoor), di chuyển trên bề mặt sàn phẳng, quét bản đồ không gian 2D.
  • Phạm vi thời gian: Khóa luận được hoàn thành và bảo vệ theo Quyết định số 66/QĐ-ĐHCNTT ngày 14 tháng 02 năm 2022 của Trường Đại học Công nghệ Thông tin, ĐHQG-HCM.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết và công nghệ sử dụng

Khóa luận xây dựng dựa trên các nền tảng lý thuyết và công nghệ cốt lõi trong lĩnh vực kỹ thuật máy tính và điều khiển tự động:

  • Hệ điều hành thời gian thực (RTOS): Hệ thống quản lý tài nguyên vi điều khiển với độ trễ tối thiểu, cấu trúc gồm Kernel điều phối tác vụ (Task) thông qua 4 trạng thái cơ bản (Ready, Running, Blocked, Suspended). Các thuật toán lập lịch được áp dụng gồm Cooperative, Round-robin, Priority-based và Priority-based Preemptive. Hệ thống sử dụng các cơ chế truyền thông nội bộ (Signal Events, Message Queue, Mail Queue) và chia sẻ tài nguyên an toàn (Counting/Binary Semaphore, Mutex kết hợp cơ chế thừa kế độ ưu tiên Priority Inheritance nhằm triệt tiêu hiện tượng nghịch đảo ưu tiên).
  • Hệ điều hành robot thế hệ 2 (ROS2): Nền tảng phân tán mã nguồn mở kế thừa ROS1 nhưng loại bỏ cấu trúc Master Node trung tâm, chuyển sang sử dụng chuẩn truyền thông trung gian thời gian thực DDS (Data Distribution Service / DDSI-RTPS). Khung kiến trúc gồm các thành phần: Workspace, Package, Node, Topic (Publisher/Subscriber), Service (Client/Server) và Action (Goal, Result, Feedback). Phiên bản phân phối được lựa chọn là ROS2 Foxy Fitzroy.
  • Công nghệ cảm biến đo khoảng cách LIDAR: Thiết bị phát và thu nhận xung laser phản xạ để đo khoảng cách theo công thức thời gian bay của ánh sáng: $$d = \frac{1}{2} \cdot t \cdot c$$ (Trong đó $d$ là cự ly đến vật thể, $t$ là thời gian khứ hồi của xung, $c \approx 299.792.458\text{ m/s}$ là vận tốc ánh sáng).
  • Định vị và lập bản đồ đồng thời (SLAM): Thuật toán Cartographer ROS do Google phát triển, tính toán dữ liệu laser và dịch chuyển tọa độ để nội suy vị trí và dựng bản đồ lưới chiếm chỗ 2D (Occupancy Grid Map).
  • Hệ thống dẫn đường Navigation2 (Nav2): Bộ công cụ định vị và dẫn đường bao gồm: thuật toán định vị xác suất thích nghi AMCL (Adaptive Monte Carlo Localization), module bản đồ chi phí đa lớp Costmap 2D, thuật toán lập kế hoạch toàn cục Dijkstra, thuật toán điều khiển cục bộ DWA/DWB (Dynamic Window Approach) và cây hành vi (Behavior Trees) điều phối trạng thái phục hồi (Recovery).

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

  • Phương pháp thiết kế và tích hợp kỹ thuật: Mô hình hóa kết cấu cơ khí 3D trên phần mềm Solidworks 2019, phân tách nguồn điện độc lập cho các tầng điều khiển nhằm cách ly nhiễu và bảo vệ phần cứng.
  • Phương pháp kiến trúc hệ thống phân tầng: Tách biệt thành 3 cấp độ: cấp điều khiển chuyển động thời gian thực (RTOS trên STM32F429), cấp tính toán thuật toán cao cấp (ROS2 trên Nvidia Jetson TX2) và cấp giám sát trực quan (RViz2 trên PC).
  • Phương pháp thực nghiệm kiểm chứng: Cho robot quét lập bản đồ phòng thí nghiệm, sau đó thiết lập các điểm đến chỉ định trên RViz2 để đo đạc và đánh giá khả năng bám quỹ đạo, tốc độ đáp ứng và khả năng tự động né tránh vật cản tĩnh/động.

Nguồn dữ liệu

Dữ liệu đầu vào của hệ thống được trích xuất trực tiếp từ các cảm biến phần cứng:

  • Dữ liệu đám mây điểm 2D từ cảm biến quét laser RPLidar A1 (tầm quét 0,15 - 6 m, tần số quét 5,5 Hz, tốc độ lấy mẫu 2000 - 2010 Hz).
  • Dữ liệu 6 bậc tự do (3 trục gia tốc, 3 trục con quay hồi chuyển) từ cảm biến IMU MPU6050.
  • Tín hiệu xung phản hồi từ Encoder tích hợp trên 4 động cơ DC Servo JGB37 để tính toán Odometry và trạng thái chuyển động.
  • Tín hiệu phát hiện vật cản tiệm cận từ cảm biến quang hồng ngoại E3F-DS30Y2.

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

Phân tích và thiết kế phần cứng

Hệ thống phần cứng của robot được phân tách thành 3 tầng chức năng độc lập đặt trên khung nhôm định hình kích thước $240 \times 200 \times 245\text{ mm}$, sử dụng 4 bánh xe đường kính 65 mm truyền động bởi 4 động cơ DC Servo kim loại JGB37:

Tầng / Cụm phần cứng Thành phần chi tiết Thông số kỹ thuật & Chức năng
Tầng đáy (Cơ cấu chấp hành & Nguồn) - Khung gầm nhôm định hình
- 4 Động cơ DC Servo JGB37
- Mạch nguồn hạ áp DC-DC
- Kích thước tổng thể: $240 \times 200 \times 245\text{ mm}$, bánh xe $\varnothing 65\text{ mm}$.
- Động cơ lõi đồng, hộp giảm tốc kim loại kèm encoder đo xung.
- Mạch Buck DC-DC hiệu suất 95%, dải vào 4,5-30V, dòng tải cực đại 12A, tích hợp tản nhiệt nhôm đôi.
Tầng giữa (Xử lý thời gian thực) - Kit STM32F429 Discovery
- 4 Module Driver MSD_E10A
- Cảm biến IMU MPU6050
- Vi điều khiển ARM Cortex-M4 32-bit @ 180MHz, 2MB Flash, 256KB SRAM, đơn vị FPU/DSP, bus AHB/APB.
- Driver công suất tối đa 200W, dải áp 10-28 VDC, tích hợp thuật toán điều khiển vòng kín PID riêng cho từng động cơ.
- Cảm biến GY-521 6DOF đo góc nghiêng và gia tốc.
Tầng đỉnh (Xử lý thuật toán cao cấp) - Nvidia Jetson TX2 Developer Kit
- Cảm biến laser RPLidar A1
- Cảm biến hồng ngoại E3F-DS30Y2
- CPU Dual Denver 2 + Quad ARM Cortex-A57, GPU 256-core Pascal, 4GB RAM LPDDR4, hiệu năng 1.33 TFLOPS, công suất tiêu thụ <5W/15W.
- Quét laser 2D 360°, tầm đo 0,15 - 6 m, độ phân giải góc $\le 1^\circ$, độ phân giải khoảng cách <0,5 m (<1%).
- Phát hiện vật thể cản trở ở khoảng cách gần.

Phân tích và triển khai phần mềm

Hệ thống phần mềm được tổ chức theo cấu trúc giao tiếp mạng phân tán thông qua chuẩn kết nối DDS và Micro-ROS:

  1. Phân hệ Máy tính cá nhân (Trạm giám sát):

    • Chạy trên nền tảng Ubuntu có cài đặt ROS2.
    • Sử dụng công cụ trực quan hóa 3D RViz2 để nhận dữ liệu đồ họa, giám sát vị trí tọa độ robot, trạng thái cây biến đổi hình học (TF2), cấu trúc bản đồ chi phí (Costmap 2D) và truyền điểm mục tiêu (Navigation Goal) tới robot qua sóng WiFi.
  2. Phân hệ Máy tính nhúng Nvidia Jetson TX2 (Xử lý cấp cao):

    • Chạy hệ điều hành Linux tích hợp ROS2 Foxy Fitzroy và bộ thư viện phần mềm NVIDIA JetPack (CUDA, cuDNN, TensorRT).
    • Tiếp nhận dữ liệu laser thông qua package rplidar_ros.
    • Vận hành thuật toán Cartographer ROS để tạo lập bản đồ không gian 2D theo thời gian thực.
    • Vận hành phân hệ dẫn đường Nav2:
      • AMCL: Định vị xác suất vị trí robot trên bản đồ tĩnh.
      • Costmap 2D: Khởi tạo bản đồ chi phí 2 lớp gồm lớp tĩnh (Static Layer) và lớp chướng ngại vật (Obstacle/Inflation Layer).
      • Nav2 Planner: Ứng dụng giải thuật Dijkstra để tìm đường đi ngắn nhất từ vị trí hiện tại đến đích.
      • DWB Controller (DWA): Tính toán không gian vận tốc cho phép $V_a$, lựa chọn vector vận tốc xoay và vận tốc tịnh tiến tối ưu nhằm bám sát quỹ đạo toàn cục và né tránh vật cản động.
    • Xuất thông điệp vận tốc cmd_vel (geometry_msgs/msg/Twist) chuyển tiếp xuống tầng RTOS.
  3. Phân hệ Vi điều khiển STM32F429 Discovery Kit (Điều khiển cấp thấp):

    • Triển khai hệ điều hành thời gian thực RTOS kết hợp thư viện Micro-ROS.
    • Cấu trúc các tác vụ (Task) chạy song song được quản lý bởi Kernel:
      • Tác vụ đọc cảm biến: Định kỳ đọc xung từ 4 encoder và dữ liệu từ IMU MPU6050.
      • Tác vụ tính toán Odometry: Tính toán độ dịch chuyển, vận tốc thực tế của khung xe và đóng gói thành dữ liệu tọa độ gửi lên ROS2.
      • Tác vụ nhận lệnh Micro-ROS: Tiếp nhận dữ liệu vận tốc cmd_vel từ Jetson TX2 qua giao thức DDS.
      • Tác vụ điều khiển động cơ: Tính toán sai số và xuất tín hiệu điều khiển băm xung/chiều tới 4 driver MSD_E10A với thông số PID đã được căn chỉnh tối ưu.
    • Sử dụng Mutex và Semaphore để đồng bộ hóa việc truy cập bộ nhớ đệm dữ liệu cảm biến, loại trừ triệt để tranh chấp dữ liệu giữa các tác vụ.

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

Chương 1: Lý do chọn đề tài

Chương 1 trình bày tổng quan về xu hướng tự động hóa, vai trò của robot tự hành trong công nghiệp và đời sống, đồng thời khảo sát hiện trạng nghiên cứu công nghệ xe tự hành trong và ngoài nước. Tác giả tiến hành so sánh đối chiếu với các mô hình thương mại quốc tế (Turtlebot3 Waffle Pi/Burger của ROBOTIS, R1 mini của OMOROBOT) và hai công trình nghiên cứu trước đó tại Trường Đại học Công nghệ Thông tin.

Chương này chỉ rõ nhược điểm của các nghiên cứu trước (dùng ROS1 trên Jetson Nano và lập trình vòng lặp đơn trên Arduino Mega) và thiết lập mục tiêu chuyển đổi sang kiến trúc kết hợp ROS2 (Jetson TX2) và RTOS (STM32F429). Luồng dữ liệu của hệ thống cũng được xác định rõ qua 3 giai đoạn: Dữ liệu đầu vào (LIDAR, IMU, Encoder), Khối xử lý trung tâm (Cartographer, AMCL, Nav2 Planner, DWB) và Dữ liệu đầu ra (Micro-ROS, điều khiển 4 động cơ DC và truyền thông RViz2).

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

Chương 2 cung cấp hệ thống cơ sở lý thuyết toàn diện về các nền tảng công nghệ sử dụng trong đồ án:

  • Lý thuyết RTOS: Trình bày cấu trúc Kernel, các trạng thái tác vụ (Ready, Running, Blocked, Suspended), cơ chế lập lịch (Round-robin, Priority-based, Priority-based Preemptive), các giải pháp giao tiếp liên tác vụ (Signal Events, Message Queue, Mail Queue) và kỹ thuật chia sẻ tài nguyên (Semaphore, Mutex với cơ chế Priority Inheritance).
  • Lý thuyết ROS2 & DDS: Phân tích sự chuyển dịch từ ROS1 sang ROS2, chuẩn giao tiếp không tập trung DDSI-RTPS, các thành phần kiến trúc (Package, Workspace, Node, Topic, Service, Action).
  • Cảm biến và thuật toán: Giới thiệu nguyên lý đo khoảng cách bằng tia laser của LIDAR, cơ chế tạo đám mây điểm (Point Cloud), nguyên lý SLAM, giải thuật Cartographer ROS 2D của Google, cấu trúc hệ thống Nav2 (gồm 10 module chính: Map Server, AMCL, Nav2 Planner, Nav2 Controller, Costmap 2D, Behavior Trees, Nav2 Recoveries, Waypoint Follower, Lifecycle Manager, Nav2 Core).
  • Phần cứng triển khai: Phân tích cấu trúc phần cứng chi tiết của Nvidia Jetson TX2 (Dual Denver 2 + Quad Cortex-A57, GPU Pascal 256 nhân, 4GB LPDDR4), STM32F429 Discovery Kit (ARM Cortex-M4 @ 180MHz, FPU/DSP, 2MB Flash, 256KB SRAM), cảm biến RPLidar A1 (tầm quét 0,15 - 6 m, tần số quét 5,5 Hz, 2000-2010 mẫu/giây), mạch giảm áp DC-DC 12A (hiệu suất 95%), driver MSD_E10A (200W, PID tích hợp), cảm biến IMU MPU6050, động cơ JGB37 và cảm biến hồng ngoại E3F-DS30Y2.

Chương 3: Phân tích và thiết kế hệ thống

Chương 3 tập trung vào quy trình thiết kế kỹ thuật chi tiết của hệ thống robot:

  • Thiết kế cơ khí và liên kết phần cứng: Mô hình hóa kết cấu khung xe 3 tầng trên Solidworks 2019, tối ưu vị trí đặt pin ở tầng dưới cùng để hạ thấp trọng tâm, bố trí mạch driver và kit STM32F429 ở tầng giữa, đặt cảm biến RPLidar A1 và Jetson TX2 ở tầng trên cùng nhằm tối ưu góc quét laser.
  • Phần mềm trạm điều khiển (PC): Thiết lập môi trường hiển thị 3D RViz2 kết nối mạng nội bộ với robot qua DDS.
  • Xây dựng phần mềm trên Jetson TX2: Cấu hình hệ thống các gói ROS2, thiết lập cây biến đổi hình học tọa độ TF2 liên kết giữa map, odom, base_link và laser_frame, cấu hình bản đồ chi phí Costmap 2D gồm lớp tĩnh và lớp chướng ngại vật.
  • Xây dựng phần mềm trên STM32F429: Phân bổ các tác vụ RTOS độc lập, cấu hình giao tiếp Micro-ROS Client kết nối với Micro-ROS Agent trên Jetson TX2 qua chuẩn DDS, thiết lập thuật toán điều khiển vị trí/vận tốc vòng kín cho 4 động cơ.
  • Thuật toán tính toán chuyển động và dẫn đường: Xây dựng công thức tính Odometry từ dữ liệu góc quay bánh xe vi sai, thuật toán tìm đường toàn cục Dijkstra và thuật toán điều khiển cục bộ Dynamic Window Approach (DWA/DWB) với việc giới hạn không gian vận tốc động $V_a$ và đánh giá góc hướng đầu (heading) của robot.

Chương 4: Thực nghiệm và đánh giá

Chương 4 ghi nhận kết quả kiểm thử thực nghiệm mô hình robot trong môi trường thực tế:

  • Kiểm thử phần cứng và phần mềm phụ thuộc: Khung robot hoạt động vững chắc, các liên kết cơ khí và điện tử vận hành ổn định; ROS2 Foxy cùng các node chức năng trên Jetson TX2 và RTOS trên STM32F429 giao tiếp mượt mà qua Micro-ROS.
  • Đánh giá bản đồ 2D: Sử dụng Cartographer ROS kết hợp RPLidar A1 quét thành công mặt cắt sàn phòng học; bản đồ thu được thể hiện rõ nét các đường biên vách tường, góc cua và các vật cản tĩnh với độ chính xác cao.
  • Đánh giá điều hướng không có vật cản: Thiết lập các điểm mục tiêu (Navigation Goal) trên RViz2; robot tự động lập quỹ đạo Dijkstra, điều khiển DWB đưa xe di chuyển bám sát quỹ đạo mong muốn và dừng chính xác tại điểm chỉ định.
  • Đánh giá điều hướng có vật cản ngoại cảnh: Khi phát hiện vật cản bất ngờ không có trên bản đồ tĩnh, module Costmap 2D lập tức cập nhật vùng chi phí từ dữ liệu quét của RPLidar A1, giải thuật DWB tính toán lại quỹ đạo vòng tránh an toàn. Trong trường hợp vật cản chặn hoàn toàn lối đi, hệ thống kích hoạt trạng thái phục hồi (Recovery state) cho phép robot quay tại chỗ hoặc lùi lại để tìm kiếm lối thoát mới.

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

Chương 5 tổng kết toàn bộ kết quả đạt được, phân tích ưu điểm, nhược điểm và đề xuất hướng nghiên cứu tiếp theo cho hệ thống robot tự hành.


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

Kết quả thực nghiệm chính

Khóa luận đã chế tạo và thử nghiệm thành công mô hình robot tự hành tích hợp đầy đủ hai hệ điều hành ROS2 và RTOS, đạt được các thông số kỹ thuật và kết quả cụ thể:

Hạng mục đánh giá Giải pháp triển khai Kết quả thực nghiệm ghi nhận
Khung gầm cơ khí Khung nhôm 3 tầng ($240 \times 200 \times 245\text{ mm}$), 4 bánh xe $\varnothing 65\text{ mm}$, 4 động cơ JGB37 Kết cấu vững chắc, phân bổ trọng tâm hợp lý; nguồn hạ áp DC-DC 12A hoạt động ổn định với hiệu suất 95%.
Thời gian thực cấp thấp RTOS + Micro-ROS trên STM32F429 (ARM Cortex-M4 @ 180MHz) Quản lý đa tác vụ độc lập, đọc chính xác xung encoder và IMU MPU6050, điều khiển PID vòng kín qua driver MSD_E10A không bị trễ.
Xử lý thuật toán cấp cao ROS2 Foxy trên Nvidia Jetson TX2 (1.33 TFLOPS) Khởi chạy đồng bộ các package rplidar_ros, cartographer_ros, nav2_bringup, liên kết hoàn chỉnh cây tọa độ TF2.
Tạo lập bản đồ (SLAM) Cartographer ROS + Cảm biến RPLidar A1 (tầm quét 0,15 - 6 m) Quét và xuất bản đồ 2D lưới chiếm chỗ chi tiết, đường biên rõ nét theo thời gian thực.
Dẫn đường tự động (Nav2) Thuật toán AMCL + Dijkstra + DWB Local Controller Điều hướng chính xác tới Navigation Goal chỉ định từ RViz2; xử lý mượt mà việc vòng tránh vật cản động và kích hoạt trạng thái Recovery khi bị chặn.

Giải pháp và kiến nghị đề xuất của tác giả

  • Tách biệt rõ ràng giữa tầng tính toán thuật toán điều hướng nặng (chạy trên ROS2/Linux) và tầng điều khiển phản hồi vận tốc động cơ/đọc cảm biến (chạy trên RTOS/vi điều khiển) nhằm đảm bảo an toàn phần cứng và triệt tiêu độ trễ điều khiển.
  • Sử dụng chuẩn truyền thông trung gian DDS giúp việc truyền nhận dữ liệu giữa vi điều khiển (Micro-ROS), máy tính nhúng (Jetson TX2) và máy tính trạm (PC) trở nên đồng bộ, tin cậy và không phụ thuộc vào một Master Node duy nhất.
  • Sử dụng các bộ driver động cơ MSD_E10A có tích hợp sẵn mạch PID phần cứng riêng giúp giảm tải đáng kể khối lượng tính toán điều khiển cho vi điều khiển trung tâm.

Đóng góp so với các nghiên cứu trước

So với các đề tài nghiên cứu về robot tự hành trước đây tại Khoa Kỹ thuật Máy tính (như đề tài của nhóm Trần Hoàng Phương - Võ Anh Tuấn và nhóm Phan Anh Kiệt - Lê Chí Bảo), khóa luận đã mang lại những cải tiến kỹ thuật nổi bật:

  • Nâng cấp nền tảng phần mềm từ ROS1 lên ROS2 Foxy Fitzroy, tối ưu hóa cấu trúc truyền thông với chuẩn DDS hiện đại.
  • Thay thế kit điều khiển Arduino Mega đơn luồng thông thường bằng STM32F429 Discovery Kit chạy RTOS kết hợp Micro-ROS, mang lại khả năng xử lý đa nhiệm thời gian thực với độ trễ cực thấp.
  • Nâng cấp năng lực xử lý phần cứng từ Nvidia Jetson Nano lên Nvidia Jetson TX2 Developer Kit (1.33 TFLOPS), cho phép thực thi các thuật toán SLAM phức tạp và mở rộng tích hợp mạng neural AI.

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

Hạn chế của đề tài

Theo đánh giá tự nhìn nhận của nhóm tác giả trong văn bản:

  • Kích thước tổng thể của mô hình khung xe ($240 \times 200 \times 245\text{ mm}$) còn tương đối lớn và cồng kềnh khi vận hành trong một số không gian hẹp.
  • Dung lượng bộ nguồn pin còn giới hạn, cần tiếp tục tối ưu hóa tiêu thụ năng lượng để kéo dài thời gian vận hành liên tục của robot.
  • Độ chính xác tính toán Odometry vẫn chịu ảnh hưởng bởi hiện tượng trượt bánh xe trên một số bề mặt sàn nhất định.

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

  • Nghiên cứu tích hợp thêm cảm biến hình ảnh (Camera/RGB-D Camera) kết hợp các mô hình học sâu (Deep Learning) trên Jetson TX2 nhằm nâng cao khả năng phân loại, nhận dạng đối tượng và mở rộng tính năng xử lý ảnh.
  • Nâng cấp thuật toán lọc kết hợp (như Extended Kalman Filter - EKF) để hợp nhất dữ liệu từ IMU 6DOF, Encoder và LIDAR, nâng cao độ chính xác định vị Odometry.
  • Phát triển hệ thống lập bản đồ và điều hướng trong không gian 3 chiều (3D SLAM và 3D Navigation).

Giá trị tham khảo

Khóa luận là tài liệu tham khảo có giá trị kỹ thuật cao đối với:

  • Sinh viên và học viên ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Cơ điện tử, Kỹ thuật Điều khiển & Tự động hóa và Công nghệ Thông tin: Cung cấp tài liệu hướng dẫn thực tế về việc triển khai hệ điều hành robot ROS2 và hệ điều hành thời gian thực RTOS trên phần cứng nhúng tiêu chuẩn công nghiệp.
  • Người nghiên cứu các đề tài xe tự hành (AGV, AMR): Cung cấp tài liệu tham khảo chi tiết về:
    • Cấu hình và tích hợp thư viện Micro-ROS lên dòng vi điều khiển STM32F4 (ARM Cortex-M4).
    • Quy trình cấu hình và tinh chỉnh hệ thống Navigation2 (Nav2 Stack), thuật toán AMCL, Costmap 2D và bộ điều khiển DWB.
    • Thiết kế sơ đồ khối phần cứng phân tầng, cách ly nguồn và bố trí mạch công suất cho robot di động 4 bánh.

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

1. Tại sao khóa luận lựa chọn tích hợp RTOS trên STM32F429 thay vì lập trình tuần tự trên Arduino Mega như các đề tài trước?

Các đề tài trước sử dụng vòng lặp tuần tự while trên Arduino Mega, dẫn đến việc xử lý bị nghẽn nếu một tác vụ bị chậm trễ và không đảm bảo tính phản hồi thời gian thực khi đọc encoder ở tốc độ cao. RTOS trên STM32F429 (ARM Cortex-M4 @ 180MHz) cho phép chia nhỏ chương trình thành các tác vụ độc lập (đọc encoder, đọc IMU, tính Odometry, nhận lệnh Micro-ROS, điều khiển PID), phân chia quyền ưu tiên (Preemptive scheduling) và chia sẻ tài nguyên an toàn qua Mutex/Semaphore, giúp hệ thống vận hành đa nhiệm với độ trễ cực thấp và ổn định.

2. Chuẩn truyền thông DDS và Micro-ROS đóng vai trò gì trong kiến trúc của robot?

DDS (Data Distribution Service) là chuẩn truyền thông trung gian machine-to-machine thời gian thực theo mô hình Publish/Subscribe không cần Master Node trung tâm. Micro-ROS là giải pháp đưa ROS2 xuống các vi điều khiển có tài nguyên hạn chế. Nhờ DDS và Micro-ROS, kit STM32F429 giao tiếp trực tiếp với ROS2 trên Jetson TX2 và máy tính PC một cách đồng bộ, tin cậy và có khả năng mở rộng cao.

3. Cảm biến RPLidar A1 và thuật toán Cartographer ROS xây dựng bản đồ 2D như thế nào?

Cảm biến RPLidar A1 phát chùm tia laser 360 độ (tần số quét 5,5 Hz, tầm đo 0,15 - 6 m) và ghi nhận thời gian phản xạ xung để tính cự ly theo công thức $d = \frac{1}{2} \cdot t \cdot c$, tạo ra tập hợp điểm đám mây 2D. Thuật toán Cartographer ROS trên Jetson TX2 tiếp nhận dữ liệu laser scan này kết hợp với phép biến đổi tọa độ hình học TF2 để nội suy vị trí và vẽ lại bản đồ mặt cắt 2D dạng lưới chiếm chỗ của không gian hoạt động theo thời gian thực.

4. Hệ thống Nav2 và giải thuật DWB xử lý tình huống phát hiện vật cản ngoài bản đồ như thế nào?

Khi robot đang di chuyển theo đường đi toàn cục của giải thuật Dijkstra mà xuất hiện vật cản mới, dữ liệu quét từ RPLidar A1 sẽ được module Costmap 2D cập nhật ngay vào lớp chướng ngại vật (Obstacle Layer/Inflation Layer). Bộ điều khiển cục bộ DWB (Dynamic Window Approach) sẽ tính toán lại không gian vận tốc cho phép $V_a$ để điều khiển xe lượn tránh vật cản. Nếu đường đi bị chặn hoàn toàn, hệ thống kích hoạt trạng thái phục hồi (Nav2 Recovery) cho phép xe xoay tại chỗ hoặc lùi lại để tìm đường đi thay thế.

5. Khung xe và hệ thống động lực của robot được thiết kế với thông số ra sao?

Khung robot được thiết kế 3 tầng bằng nhôm định hình kích thước $240 \times 200 \times 245\text{ mm}$, sử dụng 4 động cơ DC Servo kim loại JGB37 gắn với 4 bánh xe đường kính 65 mm. Hệ thống sử dụng 4 bộ driver MSD_E10A (công suất tối đa 200W) tích hợp thuật toán điều khiển PID riêng cho từng động cơ, kết hợp mạch hạ áp DC-DC công suất lớn 12A (hiệu suất 95%) để cung cấp nguồn điện ổn định.


Kết luận

Khóa luận "Nghiên cứu, tích hợp ROS2 và RTOS cho robot tự hành" của sinh viên Phùng Văn Hảo và Phan Hữu Đạt đã thiết kế và chế tạo thành công một mô hình robot tự hành 4 bánh hoàn chỉnh với kiến trúc phân tầng khoa học. Bằng việc kết hợp hệ điều hành thời gian thực RTOS và Micro-ROS trên kit STM32F429 với hệ điều hành robot ROS2 Foxy trên Nvidia Jetson TX2, đề tài đã giải quyết triệt để bài toán đồng bộ điều khiển cấp thấp và thực thi thuật toán cấp cao. Kết quả thực nghiệm chứng minh robot có khả năng lập bản đồ 2D chính xác bằng Cartographer ROS và tự động điều hướng, tránh vật cản hiệu quả thông qua hệ thống Navigation2. Đây là công trình kỹ thuật có giá trị tham khảo ứng dụng và kế thừa cao cho các nghiên cứu tiếp theo về xe tự hành và robot di động trong nhà.