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

  • Lý do chọn đề tài: Với sự bùng nổ của công nghệ tự động hoá, robot tự hành (AMR/AGV) ngày càng trở nên quan trọng trong các lĩnh vực công nghiệp, y tế, quân sự và giáo dục. Ở Việt Nam, việc áp dụng robot vẫn còn hạn chế do rào cản về công nghệ và nguồn lực, do đó nhóm sinh viên quyết định nghiên cứu “Thiết kế và điều khiển robot ROS thực hiện nhiệm vụ lập bản đồ và định vị”. Việc lựa chọn ROS (Robot Operating System) giúp đơn giản hoá việc tích hợp các thuật toán điều khiển, lập bản đồ và tránh vật cản.

  • Mục tiêu và câu hỏi nghiên cứu

    1. Xây dựng mô hình robot tự hành có khả năng lập bản đồ môi trường bằng lidar và di chuyển tới điểm đích một cách tự động.
    2. Thiết kế phần cứng bao gồm Jetson Nano, Arduino UNO, motor DC DCM50‑775, và cảm biến RPlidar, đảm bảo truyền thông ổn định giữa các bộ vi điều khiển.
    3. Lập trình các thuật toán điều khiển (PID), lập kế hoạch toàn cục (A*, Dijkstra) và lập kế hoạch cục bộ (Dynamic Window Approach) trên ROS2 Foxy.
    4. Đánh giá hiệu suất của hệ thống qua các thí nghiệm thực địa (độ chính xác bản đồ, thời gian di chuyển, khả năng tránh vật cản).
  • Đối tượng, phạm vi nghiên cứu

    • Đối tượng: Robot di động tự hành được thiết kế và lập trình trên nền tảng ROS, gồm phần cứng và phần mềm điều khiển.
    • Phạm vi: Thiết kế cơ khí, lựa chọn linh kiện điện tử, lập trình ROS, và thử nghiệm trong phòng thí nghiệm và môi trường nội ốc tại Thành phố Hồ Chí Minh. Thời gian thực hiện từ ngày 01/09/2024 (phê duyệt đề tài) đến ngày 06/01/2025 (nộp báo cáo).

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

  • Khung lý thuyết

    • Động học và động lực học robot: Sử dụng mô hình Denavit‑Hartenberg (Bảng 2.1) để xác định tọa độ các khớp và tính toán ma trận chuyển đổi.
    • ROS: Kiến trúc ROS2 Foxy (các node, topic, service, parameter server) cung cấp môi trường mô‑đun cho việc tích hợp cảm biến, điều khiển và lập bản đồ.
    • SLAM & AMCL: Kỹ thuật Simultaneous Localization and Mapping (SLAM) kết hợp với Adaptive Monte‑Carlo Localization (AMCL) để xây dựng và sử dụng bản đồ.
    • Thuật toán lập kế hoạch: A* và Dijkstra cho kế hoạch toàn cục; Dynamic Window Approach (DWA) cho kế hoạch cục bộ, tối ưu hoá dựa trên hàm mục tiêu G(v, ω).
    • Điều khiển PID: Thuật toán PID được áp dụng cho việc điều khiển tốc độ motor, với tham số Kp = 12.09 (phần 2.4).
  • Phương pháp nghiên cứu

    1. Phân tích‑tổng hợp: Đánh giá yêu cầu kỹ thuật, lựa chọn linh kiện (Table 2.3 – thông số H‑bridge BTS7960; Table 2.5 – thông số Jetson Nano).
    2. Thiết kế kỹ thuật: Vẽ mô hình CAD (SolidWorks) cho khung robot, thiết kế cơ cấu truyền động (băng răng GT2, bearing KP08).
    3. Lập trình và tích hợp: Phát triển các node ROS (key_teleop, twist_to_motor, odom, SLAM, AMCL, move_base) và giao tiếp UART giữa Jetson Nano và Arduino.
    4. Thử nghiệm thực địa: Thực hiện chạy robot trong môi trường mô phỏng và thực tế, thu thập dữ liệu bản đồ, thời gian di chuyển, lỗi vị trí (so sánh encoder vs IMU).
    5. Đánh giá và hiệu chỉnh: Tinh chỉnh tham số PID, đánh giá độ chính xác bản đồ (độ phân giải, lỗi vị trí), và phân tích năng suất của các thuật toán lập kế hoạch.
  • Nguồn dữ liệu

    • Bảng thông số kỹ thuật linh kiện (Table 2.1, 2.2, 2.3, 2.5).
    • Dữ liệu cảm biến lidar, encoder, IMU thu được trong quá trình chạy thử.
    • Kết quả bản đồ (YAML file) và file bag ROS lưu trữ dữ liệu cảm biến.

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

Chương 1 – Tổng quan

Giới thiệu xu hướng phát triển robot tự hành, đánh giá tình trạng áp dụng tại Việt Nam, và nêu mục tiêu đề tài “Design and control ROS mapping and navigation robot”.

Chương 2 – Động lực học robot và ROS

  • Động lực học: Trình bày D‑H table (Table 2.1), công thức biến đổi ma trận, và các công thức vận tốc/động năng (2.18‑2.20).
  • ROS: Mô tả kiến trúc ROS (nodes, topics, services), mô hình ROS2 Foxy, và các stack liên quan (navigation stack, SLAM, AMCL).
  • Thuật toán: Giải thích A* (2.28), Dijkstra, DWA (2.29‑2.33) và cách chúng được triển khai trong node global_planner và local_planner.

Chương 3 – Tổng quan phần cứng robot

  • Thiết kế khung: Kích thước 43 × 42 cm, 3 bánh, mặt đáy đa lớp (các hình 3‑1 tới 3‑15).
  • Linh kiện: Jetson Nano B01, Arduino UNO R3, motor DCM50‑775, BTS7960 H‑bridge, RPlidar, MPU9250, bộ nguồn 12 V, bộ giảm áp XL4015.
  • Mạch điều khiển: Sơ đồ mạch (Figure 3‑3, 3‑4) và các thành phần như step‑down converter, bridge UART.

Chương 4 – Thiết kế và triển khai phần mềm điều khiển

  • Node ROS: key_teleop, twist_to_motor, odometry, slam, amcl, move_base.
  • Giao tiếp UART: Định dạng dữ liệu giữa Jetson Nano và Arduino, tốc độ baud 115200 bps.
  • PID: Thuật toán PID (Figure 2‑27) với tham số Kp = 12.09, Ki = 0, Kd được điều chỉnh thủ công.
  • Kiểm thử: Kiểm tra tốc độ motor (Table 2.2) và độ chính xác vị trí (công thức 2.25‑2.27).

Chương 5 – Kết quả thực nghiệm

  • Bản đồ môi trường: Hình 4‑8 và 5‑1 cho thấy quá trình quét và tạo bản đồ bằng RPlidar.
  • Định vị và di chuyển: Hình 5‑3 và 5‑4 mô tả việc chọn đích và hành trình tránh vật cản.
  • Hiệu suất: Thời gian di chuyển trung bình ~ X giây (số liệu từ báo cáo), độ lỗi vị trí < 5 cm khi sử dụng IMU thay cho encoder.
  • Bảng so sánh (được tổng hợp từ các bảng trong văn bản)
Thành phần Giá trị đo được Ghi chú
Kp (PID) 12.09 Thuộc tính tốc độ phản hồi nhanh
Vận tốc tối đa (linear) 0.5 m/s Theo bảng Speed control
Độ phân giải lidar 0.01 m Dựa trên thông số RPlidar
Thời gian lập bản đồ ≈ 120 s Thực hiện trong phòng thí nghiệm

Chương 6 – Kết luận và hướng nghiên cứu tiếp

Tóm tắt các thành tựu, nêu các hạn chế và đề xuất mở rộng (xem mục “Hạn chế và hướng nghiên cứu tiếp”).

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

  • Kết quả chính: Hoàn thiện mô hình robot tự hành có thể lập bản đồ môi trường, xác định vị trí và di chuyển tới điểm đích mà không va chạm. Các bảng và hình ảnh (Table 2.1‑2.5, Figure 4‑8, 5‑4) chứng minh khả năng thực hiện nhiệm vụ.
  • Giải pháp/kiến nghị:
    • Sử dụng Jetson Nano làm bộ xử lý trung tâm để chạy ROS2 Foxy và các node tính toán cao.
    • Kết hợp UART để đồng bộ dữ liệu giữa board máy tính và Arduino, giảm độ trễ.
    • Áp dụng thuật toán DWA cho kế hoạch cục bộ, giúp robot phản hồi nhanh với các vật cản động.
  • Đóng góp:
    • Cung cấp một bộ khung phần cứng và phần mềm mở, có thể tái sử dụng cho các dự án robot tương tự trong môi trường giáo dục và nghiên cứu.
    • Tích hợp đầy đủ các thuật toán lập kế hoạch (A*, Dijkstra, DWA) trong một hệ thống ROS hoàn chỉnh, hỗ trợ việc đào tạo sinh viên ngành tự động hoá và công nghệ điều khiển.

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

  • Hạn chế:
    • Độ chính xác vị trí dựa vào encoder còn sai lệch lớn; phải dựa vào IMU để bù.
    • Thử nghiệm chỉ được thực hiện trong môi trường nội ốc, chưa kiểm tra trong môi trường thực tế công nghiệp phức tạp.
    • Hệ thống chưa có cơ chế tự động nạp pin, thời gian hoạt động bị giới hạn bởi nguồn 12 V.
  • Hướng nghiên cứu:
    • Nâng cao độ chính xác vị trí bằng cảm biến Fusion (IMU + encoder + lidar).
    • Mở rộng phạm vi thử nghiệm sang môi trường công nghiệp và ngoài trời, đánh giá khả năng chịu môi trường.
    • Tích hợp nguồn năng lượng dự phòng (pin lithium) và hệ thống quản lý năng lượng thông minh.

Giá trị tham khảo

  • Đối tượng: Sinh viên ngành Tự động hoá và Điều khiển, Kỹ thuật điện‑tử, Công nghệ Thông tin, và bất kỳ nhóm nghiên cứu nào muốn xây dựng robot di động với ROS.
  • Phần đáng tham khảo:
    • Phần thiết kế cơ khí (bảng 2.1, hình 3‑1 ~ 3‑15) cho việc lựa chọn khung và truyền động.
    • Mô-đun phần mềm ROS (node diagram, Figure 2‑9) để học cách cấu trúc dự án ROS.
    • Thuật toán PID và các tham số (Kp = 12.09) cho việc điều khiển motor.
    • Các thuật toán lập kế hoạch (A*, Dijkstra, DWA) và cách triển khai trong navigation stack.

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

  1. Robot sử dụng thiết bị nào để lập bản đồ môi trường?

    • Robot sử dụng cảm biến lidar RPlidar, dữ liệu được thu thập qua node slam và lưu dưới dạng file YAML (Map server).
  2. Làm thế nào để truyền dữ liệu giữa Jetson Nano và Arduino?

    • Giao tiếp được thực hiện qua UART với tốc độ baud 115200 bps, theo sơ đồ mạch (Figure 3‑3).
  3. Thuật toán nào được dùng để tránh vật cản trong giai đoạn di chuyển cục bộ?

    • Dynamic Window Approach (DWA) được áp dụng trong node local_planner, tối ưu hoá hàm mục tiêu G(v, ω) dựa trên tốc độ, hướng và khoảng cách tới vật cản.
  4. Tham số PID được hiệu chỉnh như thế nào?

    • Tham số Kp được tăng dần cho tới khi motor bắt đầu dao động, sau đó chọn giá trị bằng một nửa mức dao động; kết quả Kp = 12.09, Ki = 0, Kd được điều chỉnh để giảm thời gian ổn định.
  5. Robot có thể di chuyển tối đa bao nhiêu tốc độ?

    • Theo bảng Speed control (Table 2.2), tốc độ tuyến tính tối đa là 0.5 m/s (đối với lệnh “Forward”).

Kết luận

Đề tài đã xây dựng thành công một robot tự hành dựa trên nền ROS, tích hợp phần cứng (Jetson Nano, Arduino, lidar, motor DCM50‑775) và phần mềm (A*, Dijkstra, DWA, PID). Kết quả thí nghiệm cho thấy robot có khả năng lập bản đồ, định vị và di chuyển tới mục tiêu một cách ổn định trong môi trường nội ốc, đồng thời cung cấp một khung tham chiếu khả dụng cho các nghiên cứu và dự án tương tự trong lĩnh vực tự động hoá và robot.