Tổng quan nghiên cứu

Trong bối cảnh cách mạng công nghiệp 4.0 và chuyển đổi số tự động hóa, nhu cầu triển khai các dòng robot di động tự hành trong công nghiệp và dân dụng ghi nhận mức tăng trưởng ước tính trên 25% mỗi năm. Hệ điều hành robot thế hệ thứ nhất đã phục vụ cộng đồng nghiên cứu suốt 15 năm, nhưng sự phụ thuộc vào nút quản lý trung tâm cùng việc thiếu hỗ trợ xử lý thời gian thực đã bộc lộ nhiều điểm nghẽn nghiêm trọng. Với việc phiên bản Noetic chính thức khép lại vòng đời vào năm 2025, việc chuyển dịch công nghệ sang nền tảng thế hệ thứ hai trở thành yêu cầu cấp thiết của ngành kỹ thuật máy tính và tự động hóa.

Đề tài tập trung giải quyết bài toán hiện thực hóa robot di động trên nền tảng ROS2 phiên bản Foxy Fitzroy kết hợp phần cứng TurtleBot3 Burger. Vấn đề nghiên cứu cốt lõi xoay quanh việc xử lý bất đồng bộ, lập trình đa luồng để thu nhận dữ liệu cảm biến liên tục và xây dựng thuật toán tìm đường bao phủ không gian theo mô hình máy trạng thái hữu hạn. Mục tiêu cụ thể là thiết kế hoàn chỉnh hệ thống điều khiển chuyển động, tối ưu hóa cơ chế giao tiếp thông điệp và kiểm chứng độ chính xác khi di chuyển trong không gian thực tế.

Nghiên cứu được triển khai tại phòng thí nghiệm chuyên ngành thuộc Trường Đại học Bách Khoa, Đại học Quốc gia Thành phố Hồ Chí Minh trong giai đoạn từ quý 4 năm 2022 đến đầu năm 2023. Kết quả thực nghiệm mang ý nghĩa quan trọng đối với các kỹ sư nhúng và nhà phát triển robot. Hệ thống điều khiển đa luồng giúp robot thu nhận chính xác 360 điểm đo laser mỗi vòng quét với tốc độ 300 vòng/phút, triệt tiêu hoàn toàn độ trễ điều hướng và nâng cao hiệu suất bao phủ diện tích sàn đạt khoảng 85% đến 90% trong điều kiện môi trường xác định.

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

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng dựa trên sự tích hợp của hai nền tảng lý thuyết chủ đạo: Kiến trúc phần mềm phân tán dựa trên chuẩn truyền thông dịch vụ phân phối dữ liệu thời gian thực và Lý thuyết điều khiển chuyển động robot di động thông qua máy trạng thái hữu hạn. Chuẩn truyền thông phân tán loại bỏ hoàn toàn nút chủ trung tâm, cho phép các nút chức năng tự khám phá và trao đổi dữ liệu ngang hàng với độ trễ cực thấp.

Bên cạnh đó, nghiên cứu vận dụng 5 khái niệm chuyên ngành then chốt nhằm định hình kiến trúc phần mềm:

  1. Giao tiếp Publish-Subscribe thông qua đường truyền dữ liệu Topic, điển hình là kênh vận tốc điều khiển và kênh quét laser khoảng cách.
  2. Trình điều phối đa luồng kết hợp các nhóm thực thi hàm gọi lại loại trừ lẫn nhau nhằm ngăn chặn hiện tượng tắc nghẽn tiến trình.
  3. Cấu hình chất lượng dịch vụ cho phép tùy biến chính sách tin cậy và kích thước hàng đợi thông điệp phù hợp với mạng không dây.
  4. Thuật toán quy đổi góc hướng từ hệ tọa độ Quaternion sang hệ góc Euler trục quay Yaw để kiểm soát quỹ đạo xoay.
  5. Hoạch định đường đi bao phủ dạng lưới nhằm đảm bảo robot quét toàn diện các điểm trong không gian mà không bị lặp lại lộ trình.

Phương pháp nghiên cứu

Nguồn dữ liệu thực nghiệm được thu thập trực tiếp từ hệ thống phần cứng TurtleBot3 Burger. Robot được trang bị bộ vi xử lý máy tính đơn bo Raspberry Pi 3B+, mạch điều khiển OpenCR tích hợp vi điều khiển ARM Cortex-M7 tốc độ 216 MHz đạt hiệu năng 462 DMIPS, cảm biến quét laser 360 độ LDS-01 có tầm quét từ 120 mm đến 3500 mm, cùng 2 động cơ servo thông minh XL430-W250-T hỗ trợ tốc độ truyền thông lên tới 4.5 Mbps. Cỡ mẫu nghiên cứu bao gồm 10 lượt chạy thực nghiệm độc lập trong không gian kín với diện tích sàn tiêu chuẩn, thu nhận hơn 10000 gói tin dữ liệu tọa độ và khoảng cách laser theo chu kỳ lấy mẫu 0.1 giây.

Phương pháp chọn mẫu thực nghiệm có kiểm soát được áp dụng nhằm đánh giá khả năng vận hành ở 2 điều kiện: môi trường hoàn toàn trống và môi trường có vật cản tĩnh đơn lẻ. Lý do lựa chọn phương pháp phân tích thực nghiệm dựa trên sự kiện thời gian thực là vì việc điều khiển robot đòi hỏi độ chính xác tuyệt đối giữa lệnh điều tốc và phản hồi cảm biến. Timeline nghiên cứu được phân bổ chặt chẽ trong 6 tháng, từ khâu thiết lập môi trường Ubuntu 20.04 LTS, biên dịch các gói phần mềm bằng công cụ Colcon, viết mã nguồn điều khiển hướng đối tượng bằng Python, đến khâu chạy thử nghiệm và tinh chỉnh tham số máy trạng thái.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình phân tích thực nghiệm mang lại 3 phát hiện kỹ thuật quan trọng:

Thứ nhất, việc ứng dụng mô hình thực thi đa luồng đã giải quyết triệt để lỗi mất dữ liệu cảm biến khi robot quay góc. Trong mô hình đơn luồng truyền thống, tiến trình lặp để kiểm tra góc quay đã chiếm dụng toàn bộ tài nguyên, khiến giá trị trục quay Yaw bị đóng băng và robot quay quá góc chỉ định tới hơn 45 độ. Khi áp dụng bộ thực thi đa luồng với 3 tuyến xử lý tách biệt, biến trạng thái góc được cập nhật liên tục với chu kỳ 100 mili-giây, giúp robot dừng quay chính xác với sai số góc cực nhỏ dưới 0.03 radian (tương đương khoảng 1.72 độ).

Thứ hai, cảm biến khoảng cách LDS-01 duy trì tần số quét ổn định 300 vòng/phút, cung cấp mảng dữ liệu 360 phần tử tương ứng 360 độ quét. Độ chính xác đo lường đạt mức sai số chỉ khoảng ±15 mm trong dải cự ly dưới 500 mm và sai số tương đối trong khoảng ±5.0% ở dải cự ly từ 500 mm đến 3500 mm. Dữ liệu này giúp robot nhận diện biên tường ở khoảng cách an toàn 0.2 mét trước khi kích hoạt trạng thái dừng.

Thứ ba, máy trạng thái 5 chế độ hoạt động nhịp nhàng, giúp robot tự động di chuyển zigzag song song và hoàn thành lộ trình quét không gian trống. Khi gặp vật cản bên hông tại góc dự định rẽ, cơ chế lùi xe tự động kích hoạt cho đến khi chùm tia laser xác nhận hướng rẽ đã thông thoáng, giảm thiểu 100% rủi ro va chạm cơ học trong suốt 10 lượt chạy thử.

Thảo luận kết quả

Dữ liệu chuyển động và phản hồi cảm biến được biểu diễn trực quan thông qua công cụ hiển thị đồ họa Rviz2 và các biểu đồ biến thiên tọa độ theo thời gian thực. Bảng so sánh giữa chương trình đơn luồng và đa luồng cho thấy thời gian phản hồi tín hiệu ngắt của hệ thống đa luồng nhanh hơn khoảng 65%, trong khi tỷ lệ rớt gói tin trên kênh vận tốc giảm xuống dưới 1%. Đồ thị quỹ đạo ghi nhận các đường quét ngang cách đều nhau với khoảng dịch chuyển thẳng 3 giây ở vận tốc 0.22 m/s, tạo thành các vệt bao phủ hình chữ nhật đồng nhất.

Nguyên nhân chính giúp hệ thống đạt độ ổn định cao là nhờ kiến trúc hướng đối tượng của ROS2, trong đó mỗi nút chức năng kế thừa trực tiếp từ lớp Node cơ sở và quản lý vòng đời độc lập. Cơ chế phân phối thông điệp phân tán qua chuẩn DDS giúp loại bỏ độ trễ truyền thông trung gian, duy trì thời gian trễ dưới 2 mili-giây so với mức khoảng 15 mili-giây ở phiên bản cũ. So sánh với các công bố quốc tế về robot hút bụi di chuyển ngẫu nhiên, phương pháp bao phủ zigzag có định hướng giúp tiết kiệm khoảng 40% thời gian hoạt động và giảm hơn 30% mức tiêu hao năng lượng từ bộ pin Li-Po 1800 mAh.

Đề xuất và khuyến nghị

Nhằm tối ưu hóa hiệu năng hệ thống và mở rộng phạm vi ứng dụng trong môi trường thực tế phức tạp, 4 giải pháp trọng tâm được khuyến nghị thực hiện:

  1. Tích hợp giải thuật phân chia vùng làm việc dạng lưới ô vuông kết hợp thuật toán lan truyền bước sóng Wavefront hoặc A* để tự động phân rã bản đồ phức tạp thành các ô chữ nhật không chứa vật cản, nâng tỷ lệ bao phủ không gian lên trên 95% với thời gian hoàn thành dưới 15 phút cho phòng 30 mét vuông. Mục tiêu này cần được đội ngũ kỹ sư thuật toán triển khai trong vòng 3 tháng.
  2. Nâng cấp phiên bản phần mềm từ bản Foxy lên phiên bản ROS2 Humble Hawksbill hoặc Iron trên nền Ubuntu 22.04 LTS nhằm tận dụng các bản vá bảo mật mới nhất và chuẩn biên dịch C++17, dự kiến thực hiện trong vòng 2 tháng bởi kỹ sư hệ thống nhúng.
  3. Bổ sung cảm biến camera đo sâu RGB-D kết hợp cùng thuật toán Cartographer SLAM để xây dựng bản đồ không gian 3 chiều thời gian thực, giảm sai số ước lượng vị trí bánh xe xuống dưới 5 mm. Kế hoạch do nhóm nghiên cứu thị giác máy tính đảm trách trong thời hạn 4 tháng.
  4. Xây dựng giao diện điều khiển và giám sát trung tâm dựa trên nền tảng Web thông qua giao thức truyền thông WebSocket, cho phép một người vận hành có thể quản lý đồng thời từ 5 đến 10 robot di động trong nhà kho với độ trễ dưới 50 mili-giây trong vòng 6 tháng.

Đối tượng nên tham khảo luận văn

Nội dung và kết quả thực nghiệm của luận văn mang lại giá trị học thuật và ứng dụng thực tiễn cao cho 4 nhóm đối tượng cụ thể:

  • Sinh viên và học viên cao học ngành Kỹ thuật Máy tính, Điện - Điện tử và Cơ điện tử: Nắm bắt phương pháp lập trình ROS2 chuẩn hóa bằng Python, kỹ thuật xử lý đa luồng chuyên sâu và cách thức cấu hình tệp Launch Description để khởi chạy hệ thống phức tạp.
  • Kỹ sư nghiên cứu và phát triển sản phẩm robot tự hành: Ứng dụng trực tiếp cấu trúc điều khiển máy trạng thái và cơ chế giao tiếp Topic/QoS để xây dựng các dòng robot phục vụ như robot quét rác, robot khử khuẩn bệnh viện hoặc xe tự hành AGV trong nhà máy.
  • Giảng viên và cán bộ nghiên cứu tại các trường đại học: Sử dụng toàn bộ tài liệu thuyết minh, mã nguồn và dữ liệu thực nghiệm làm bài giảng mẫu hoặc giáo trình thực hành cho môn học Robot học nâng cao và Hệ thống nhúng thời gian thực.
  • Doanh nghiệp sản xuất thiết bị tự động hóa: Định hình lộ trình chuyển đổi công nghệ từ nền tảng cũ sang hệ điều hành thế hệ mới nhằm tăng độ tin cậy và tính module hóa cho các dòng sản phẩm thương mại.

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

Tại sao cần lập trình đa luồng khi điều khiển robot di động trên ROS2?

Trong cấu hình mặc định, ROS2 sử dụng bộ thực thi đơn luồng khiến các hàm gọi lại bị xếp hàng chờ tuần tự. Khi robot thực hiện tác vụ xoay góc kéo dài, tiến trình này sẽ chặn hoàn toàn việc nhận dữ liệu từ cảm biến laser và bộ mã hóa bánh xe, dẫn đến mất lái hoặc xoay quá góc. Lập trình đa luồng với bộ thực thi chuyên dụng giúp robot vừa xoay góc chính xác vừa liên tục cập nhật dữ liệu cảm biến mỗi 0.1 giây.

Cảm biến LDS-01 đóng vai trò như thế nào trong giải thuật bao phủ?

Cảm biến LDS-01 đóng vai trò mắt thần quét 360 độ không gian xung quanh với tần số 300 vòng/phút, cung cấp 360 giá trị khoảng cách từ 120 mm đến 3500 mm. Dữ liệu này giúp bộ điều khiển nhận biết vật cản phía trước ở cự ly an toàn 0.2 mét để chuyển trạng thái dừng, đồng thời liên tục rà soát khoảng trống bên hông trước khi cho phép robot quay góc 90 độ.

Điểm khác biệt lớn nhất giữa tệp khởi chạy trên ROS1 và ROS2 là gì?

Tệp khởi chạy trên hệ thống cũ được viết hoàn toàn bằng định dạng XML với khả năng tùy biến logic rất hạn chế. Trong khi đó, hệ điều hành thế hệ mới sử dụng ngôn ngữ Python để xây dựng tệp Launch Description. Điều này cho phép lập trình viên nhúng trực tiếp cấu trúc điều kiện, liên kết linh hoạt nhiều tệp khởi chạy con và tự động truyền tham số cấu hình chỉ qua một dòng lệnh duy nhất trên Terminal.

Thuật toán di chuyển zigzag có ưu thế gì so với di chuyển ngẫu nhiên?

Di chuyển ngẫu nhiên dựa vào va chạm thuần túy thường khiến robot quét lặp nhiều lần tại một vị trí, gây lãng phí tới hơn 40% thời gian và tiêu tốn năng lượng pin vô ích. Ngược lại, thuật toán di chuyển zigzag có kiểm soát khoảng cách bằng cảm biến laser giúp vạch ra các đường quét thẳng song song có trật tự, bao phủ không gian đồng đều và rút ngắn đáng kể chu kỳ hoàn thành nhiệm vụ.

Cấu hình chất lượng dịch vụ QoS giải quyết bài toán gì trong hệ thống?

Chất lượng dịch vụ QoS cho phép kỹ sư tùy chỉnh độ tin cậy và dung lượng hàng đệm thông điệp cho từng kênh dữ liệu riêng biệt. Đối với luồng quét laser dung lượng lớn qua sóng không dây, việc thiết lập chính sách nỗ lực tối đa giúp ưu tiên cập nhật gói tin mới nhất tức thời, chấp nhận bỏ qua gói tin trễ để hệ thống không bị nghẽn bộ nhớ đệm.

Kết luận

  • Hệ thống đã hiện thực hóa thành công mô hình điều khiển robot di động trên nền tảng ROS2 Foxy Fitzroy và hệ điều hành Ubuntu 20.04 LTS.
  • Xử lý triệt để bài toán đồng thời bằng bộ thực thi đa luồng, kiểm soát góc quay chính xác với sai số dưới 0.03 radian.
  • Hoàn thiện thuật toán tìm đường bao phủ zigzag dựa trên máy trạng thái hữu hạn 5 chế độ kết hợp cảm biến laser LDS-01.
  • Cung cấp kiến trúc mã nguồn Python đồng bộ, chuẩn hóa quy trình tạo gói, lập trình nút và thiết lập tệp Launch Description.
  • Đạt hiệu suất di chuyển an toàn và ổn định ở vận tốc 0.22 m/s, không xảy ra va chạm cơ học trong môi trường thực nghiệm có vật cản.

Đóng góp lớn nhất của nghiên cứu là xây dựng tài liệu kỹ thuật hoàn chỉnh và giải pháp mã nguồn mẫu cho việc ứng dụng hệ điều hành robot thế hệ mới tại Việt Nam. Lộ trình phát triển tiếp theo sẽ tập trung tích hợp giải thuật bản đồ hóa đồng thời SLAM 3D và thuật toán phủ lưới Wavefront trong vòng 6 tháng tới. Các nhà nghiên cứu và doanh nghiệp quan tâm có thể ứng dụng ngay bộ khung kiến trúc này để phát triển các sản phẩm robot tự hành thông minh vượt trội.