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

Khóa luận tốt nghiệp "Nghiên cứu và xây dựng mô hình robot phục vụ quán cà phê" (tên tiếng Anh: Research and Implement Serving Robot for Coffee Shop) được thực hiện năm 2023 bởi hai sinh viên Phạm Quốc Đăng và Viên Minh Tân, dưới sự hướng dẫn của ThS. Nguyễn Thanh Thiện tại Khoa Kỹ thuật Máy tính, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh.

Ý tưởng ứng dụng robot phục vụ trong lĩnh vực dịch vụ ăn uống đã được hiện thực hóa qua một số dòng sản phẩm thương mại trên thế giới như Dinerbot T8, T5, T1 của hãng KEENON Robotics; CIOT Restaurant Robots của Shenzhen Intelligent Guardforce Robot Technology; hay Dexter Intelligent Transporting Robots của Service Robots tại các quốc gia như Anh, Canada, Trung Quốc và Việt Nam. Tại Khoa Kỹ thuật Máy tính, các nghiên cứu tiền nhiệm đã tiếp cận mảng robot tự hành gồm đề tài "Xây dựng robot tự hành quét bản đồ trong nhà và tránh vật cản" (Lê Chí Bảo – Phan Anh Kiệt, 2021) và "Robot tránh vật cản sử dụng công nghệ Lidar" (Võ Anh Tuấn – Trần Hoàng Phương, 2021). Tuy nhiên, các đề tài này chưa đi sâu vào bối cảnh hoạt động cụ thể của quán cà phê. Mặt khác, các sản phẩm thương mại hiện có trên thị trường có mức độ phổ biến chưa cao, thường xuyên phát sinh lỗi vận hành và chưa thích ứng tốt với không gian thực tế tại Việt Nam. Do đó, nhóm tác giả lựa chọn nghiên cứu xây dựng mô hình robot chuyên biệt nhằm tận dụng công nghệ LiDAR và các giải thuật tự hành mã nguồn mở để giải quyết bài toán vận chuyển đồ uống.

Mục tiêu nghiên cứu được xác định cụ thể gồm hai nhiệm vụ chính:

  1. Xây dựng mô hình robot có kết cấu phù hợp, thực hiện việc vận chuyển thức ăn, nước uống đến vị trí chỉ định dựa trên bản đồ đã được nạp sẵn, đồng thời có khả năng tránh các vật cản nằm trong tầm hoạt động của cảm biến LiDAR trên lộ trình di chuyển.
  2. Xây dựng website cung cấp giao diện cho người quản lý theo dõi, điều khiển robot theo thời gian thực; hỗ trợ các tác vụ nhận và thông báo đơn hàng, quản lý hóa đơn, điều phối và giám sát hoạt động của robot.

Đối tượng nghiên cứu là hệ thống robot tự hành bánh xe vi sai tích hợp máy tính nhúng, cảm biến đo khoảng cách laser và hệ thống web điều hành. Phạm vi nghiên cứu giới hạn trong không gian mặt phẳng 2D nội thất quán cà phê, không gian thực nghiệm trong nhà và khung thời gian hoàn thành khóa luận vào năm 2023.


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

Khóa luận kết hợp giữa nghiên cứu lý thuyết điều khiển tự động, lý thuyết robot di động và phương pháp thực nghiệm kỹ thuật phần cứng - phần mềm:

  • Hệ điều hành Robot (Robot Operating System - ROS): Nền tảng trung gian mã nguồn mở cấp phép theo chuẩn BSD, cung cấp kiến trúc mạng ngang hàng (peer-to-peer) với các thực thể cốt lõi: ROS Master (quản lý đăng ký và phân giải tên), Node (tiến trình thực thi xử lý tính toán), Topic/Message (cơ chế truyền thông điệp bất đồng bộ publish/subscribe), Service (cơ chế yêu cầu/phản hồi đồng bộ request/response) và Package (đơn vị đóng gói phần mềm).
  • Mô hình động học robot bánh xe vi sai (Differential Wheeled Robot): Chuyển động dựa trên hai bánh dẫn động độc lập đặt ở hai bên thân robot và một bánh xe xoay tự do (caster wheel) chịu lực phía trước. Vận tốc tuyến tính $V$ và vận tốc góc $\omega$ của robot liên hệ với vận tốc bánh trái $v_L$, bánh phải $v_R$, bán kính bánh xe $r$, và khoảng cách giữa hai bánh xe $b$ qua hệ phương trình động học: $$\omega = \frac{v_R - v_L}{b}$$ $$V = \frac{v_R + v_L}{2}$$ Tâm quay tức thời (ICR) nằm trên trục nối hai tâm bánh xe, cho phép robot di chuyển thẳng, xoay tại chỗ hoặc bo cua linh hoạt trên mặt sàn phẳng.
  • Thuật toán lập bản đồ Hector_SLAM: Phương pháp định vị và xây dựng bản đồ đồng thời (SLAM) sử dụng dữ liệu từ cảm biến laser 2D. Thuật toán áp dụng kỹ thuật khớp mẫu quét (scan matching) giữa các tia quét mới nhất với lưới bản đồ đang xây dựng mà không bắt buộc phụ thuộc hoàn toàn vào số liệu odometry ban đầu, tạo ra bản đồ lưới chiếm dụng 2D (occupancy grid map).
  • Thuật toán định vị AMCL (Adaptive Monte Carlo Localization): Kỹ thuật định vị robot trong bản đồ 2D đã biết dựa trên bộ lọc hạt (particle filter). AMCL liên tục trải qua 4 bước: khởi tạo các hạt ngẫu nhiên, dự đoán chuyển động theo lệnh điều khiển, cập nhật trọng số các hạt dựa trên mức độ tương thích giữa tia LiDAR và bản đồ tĩnh, và thích ứng động số lượng hạt (tăng hạt khi độ tin cậy thấp và giảm hạt khi đã hội tụ) để tối ưu chi phí tính toán.
  • Ngăn xếp điều hướng ROS Navigation Stack và gói move_base: Khung điều hướng tích hợp bản đồ chi phí 2D (Costmap 2D) phân định các vùng rủi ro: cost_lethal (giá trị 254, vùng va chạm chắc chắn), cost_inscribed (giá trị 253, nằm trong bán kính nội tiếp), cost_possibly_circumscribed (giá trị 128, phụ thuộc góc quay), cost_freespace (giá trị 0, vùng an toàn) và cost_unknown. Bộ lập kế hoạch toàn cục (Global Planner) ứng dụng thuật toán Dijkstra để tìm lộ trình ngắn nhất trên đồ thị lưới; bộ lập kế hoạch cục bộ (Local Planner) sử dụng thuật toán Dynamic Window Approach (DWA) quét các mẫu vận tốc $(v_x, v_y, \omega)$ để tránh chướng ngại vật động.

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

Hệ thống được thiết kế theo mô hình phân tầng, kết hợp giữa cơ khí, vi điều khiển nhúng, máy tính biên AI và ứng dụng web quản lý qua giao thức mạng.

Thành phần phần cứng Model / Thông số kỹ thuật chi tiết Vai trò trong hệ thống
Máy tính nhúng NVIDIA Jetson Nano B01 (GPU 128-core Maxwell, CPU Quad-core ARM A57 @ 1.43 GHz, RAM 4GB LPDDR4, nguồn pin LiPo 2S hạ áp 5V) Trung tâm xử lý (bộ não), chạy ROS Master, Hector_SLAM, AMCL, move_base và WebSocket
Mạch điều khiển động cơ Arduino Mega 2560 CH340 (Atmega2560 @ 16 MHz, Flash 256KB, SRAM 8KB, 54 chân Digital I/O, kết nối Serial USB với Jetson Nano) Mạch cầu nhúng (driver), nhận lệnh vận tốc từ ROS qua rosserial, phát xung PWM điều khiển động cơ và đọc encoder
Mạch công suất Mạch cầu H L298N (cấp nguồn từ pin LiPo 3S 12V) Khuếch đại công suất lái 2 động cơ DC
Động cơ chuyển động 2 động cơ DC servo giảm tốc JGB37 (12V DC, 333 rpm, tỉ số truyền 1:30, đĩa encoder 11 xung/vòng) Dẫn động 2 bánh xe chủ động, phản hồi số vòng quay để tính toán Odometry
Cảm biến khoảng cách RPLIDAR A1M8 của SLAMTEC (quét 360 độ, dải quét 0.15 - 12m, tần số quét 5.5Hz, tốc độ lấy mẫu 8000 điểm/giây, giao tiếp UART/USB) Quét môi trường xung quanh, cung cấp laser scan cho SLAM, AMCL và Costmap
Cảm biến quán tính GY-521 6DOF MPU6050 (3 trục Gyroscope $\pm 250 - 2000^\circ/\text{s}$, 3 trục Accelerometer $\pm 2 - 16g$, giao tiếp I2C) Cung cấp vận tốc góc và gia tốc bổ trợ ước lượng trạng thái robot

Kết cấu cơ khí của robot được thiết kế hình hộp chữ nhật rỗng ruột bằng vật liệu in 3D kết hợp mica dày 3mm, chia làm 3 tầng chuyên biệt với tổng chiều cao 20 cm:

  • Tầng đáy (cao 5 cm): Kích thước đáy $20 \times 25\text{ cm}$, hai bên khoét hai khoảng khuyết 5 cm lắp bánh xe chủ động nối với động cơ JGB37, phía trước bố trí một bánh xe xoay tự do (caster wheel).
  • Tầng giữa (cao 5 cm): Khoang kín bảo vệ các mạch điện gồm Jetson Nano, Arduino Mega 2560, mạch L298N, cảm biến MPU6050 và hệ thống pin cấp nguồn.
  • Tầng trên cùng (cao 5 cm): Thiết kế khay chứa cốc nước, đĩa thức ăn nhỏ cho khách; đỉnh trên của khay là vị trí lắp đặt cảm biến RPLIDAR A1M8 nhằm tránh các góc khuất quét tia laser.

Kiến trúc phần mềm phân tán liên kết giữa web app và robot thông qua gói trung gian rosbridge_suite chạy WebSocket server trên Jetson Nano. Website giao diện người dùng sử dụng thư viện roslibjs để tương tác trực tiếp với ROS Master:

Lớp (Class) Phương thức sử dụng Mô tả chức năng kỹ thuật
Ros connect(url), on() Khởi tạo và quản lý kết nối socket tới địa chỉ IP/Port của robot, bắt các sự kiện kết nối
Topic publish(), subscribe() Gửi và nhận các bản tin ROS Message (như dữ liệu trạng thái, tọa độ, thông tin đơn hàng)
Goal send(), cancel() Phát lệnh mục tiêu tọa độ điều hướng (navigation goal) tới move_base hoặc hủy lệnh

Hệ thống cơ sở dữ liệu trên máy chủ web được xây dựng trên nền tảng MongoDB với 4 tập hợp (collection) lưu trữ dạng JSON:

  • orders: Quản lý đơn hàng tổng quan gồm các trường Date, Table, Status (trạng thái: pending hoặc completed), OrderList, Note, Total.
  • orderdetails: Chi tiết từng mặt hàng trong đơn gồm Drinks (ID tham chiếu món), Price, Qty.
  • drinks: Danh mục thực đơn quán gồm DrinkName, DrinkPrice.
  • staffs: Hồ sơ nhân viên phục vụ gồm Name, Age, Address, Phone.

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

Chương 1. TỔNG QUAN ĐỀ TÀI

Chương 1 trình bày tổng quan về nhu cầu tự động hóa phục vụ trong quán cà phê, phân tích các giải pháp thương mại hiện có và các công trình nghiên cứu đi trước tại Khoa Kỹ thuật Máy tính. Tác giả xác lập rõ ràng tính cấp thiết của đề tài xuất phát từ việc các sản phẩm ngoại nhập có chi phí cao, khó can thiệp hệ thống và dễ lỗi trong không gian thực tế. Chương này định hình mục tiêu chế tạo hệ thống kép (robot tự hành kết hợp website quản trị) và nêu phương pháp tiếp cận kỹ thuật: dùng in 3D/mica dựng khung, ROS làm nền tảng điều khiển, RPLIDAR quét bản đồ SLAM, thuật toán AMCL định vị và kết nối Node.js/ReactJS qua rosbridge.

Chương 2. Tổng quan về ROS

Chương 2 hệ thống hóa cơ sở lý thuyết chuyên sâu về ROS, làm rõ các khái niệm nút (node), chủ đề (topic), dịch vụ (service), gói (package) và cơ chế phân giải ROS Master. Nội dung đi sâu phân tích cấu trúc Navigation Stack và gói move_base, nguyên lý hoạt động của lưới chi phí Costmap 2D qua các mức giá trị chi phí từ an toàn đến va chạm chết người. Chương này giải thích chi tiết giải thuật Dijkstra trong Global Planner để tìm đường tối ưu trên đồ thị, giải thuật Dynamic Window Approach (DWA) trong Local Planner mô phỏng quỹ đạo vận tốc tránh va chạm cục bộ, cơ chế thích ứng hạt trong AMCL và phương pháp đối khớp tia quét laser trong Hector_SLAM. Đồng thời, các thông số phần cứng kỹ thuật của máy tính Jetson Nano B01, cảm biến RPLIDAR A1M8, vi điều khiển Arduino Mega 2560, động cơ encoder JGB37 và IMU MPU6050 được tổng hợp đầy đủ.

Chương 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Chương 3 tập trung hiện thực hóa thiết kế hệ thống từ lý thuyết:

  • Thiết kế phần cứng và cơ học: Xây dựng mô hình động học vi sai, thiết kế khung 3 tầng kích thước $20 \times 25 \times 20\text{ cm}$, hoàn thiện sơ đồ nối dây giữa nguồn pin LiPo, L298N, Arduino Mega, Jetson Nano, IMU và LiDAR.
  • Thiết kế ứng dụng web quản trị: Thiết kế luồng xử lý đơn hàng khép kín gồm Giao diện đặt món, Giao diện quản lý đơn hàng và Giao diện điều khiển (hiển thị bản đồ thời gian thực, nút nhấn bàn, phím điều khiển thủ công). Thiết kế cấu trúc 4 tập hợp CSDL MongoDB (orders, orderdetails, drinks, staffs).
  • Liên kết hệ thống: Ứng dụng rosbridge_suite và thư viện roslibjs để tạo cầu nối WebSocket JSON giữa ReactJS và ROS. Sử dụng gói rosserial kết nối Arduino với Jetson Nano để tính toán Odometry vi sai dựa trên số xung encoder phản hồi và tiếp nhận vận tốc cmd_vel.
  • Cấu hình Navigation Stack: Thiết lập và tinh chỉnh hệ thống các tệp tham số cấu hình gồm costmap_common_params, local_costmap_params, global_costmap_params, base_local_planner_params và tệp tham số khởi chạy amcl.

Chương 4. CÀI ĐẶT VÀ THỰC NGHIỆM

Chương 4 mô tả quy trình thiết lập môi trường và đánh giá thực nghiệm:

  • Cài đặt môi trường mạng ROS nhiều máy (multiple machine) kết nối giữa máy tính cá nhân (dùng chạy Rviz giám sát) và Jetson Nano trên robot thông qua cùng mạng Wi-Fi cục bộ.
  • Xây dựng tệp kịch bản shell script và cài đặt dịch vụ systemd service trên hệ điều hành Linux của Jetson Nano, giúp toàn bộ hệ thống Navigation Stack tự động khởi chạy ngay khi robot được cấp nguồn điện.
  • Thực nghiệm tạo bản đồ 2D không gian quán cà phê bằng Hector_SLAM qua dữ liệu laser_scan, lưu trữ bản đồ thành công dạng tệp ảnh và tệp YAML phục vụ điều hướng.
  • Thực nghiệm quá trình điều hướng: đánh giá lộ trình di chuyển của robot trong hai trường hợp: di chuyển đường thẳng và di chuyển có góc rẽ cua. Khi xuất hiện vật cản bất ngờ, robot kích hoạt thuật toán DWA tìm lộ trình vòng tránh; trường hợp laser scan bị lệch khỏi bản đồ toàn cục, robot tự động chuyển sang chế độ tự phục hồi (recovery mode) xoay vòng tại chỗ để định vị lại.
  • Thực nghiệm quy trình đặt món và điều phối trên website: khách đặt món -> dữ liệu ghi nhận vào MongoDB -> nhân viên xác nhận đơn tại bàn số 1 (Table 1) -> bấm nút gửi lệnh -> robot nhận tọa độ mục tiêu, mang đồ uống đến bàn và gửi thông báo hoàn thành lên giao diện điều khiển.

Chương 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Chương 5 đúc kết kết quả đạt được của mô hình thực tế, khẳng định robot đã hoàn thành các mục tiêu đề ra về di chuyển tự hành và kết nối website. Đồng thời, tác giả thẳng thắn chỉ ra các hạn chế về cơ khí, khả năng tải trọng, tầm quét cảm biến 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ả chế tạo phần cứng: Chế tạo thành công mô hình robot phục vụ bằng phương pháp in 3D và mica với kích thước thực tế $20 \times 25 \times 20\text{ cm}$. Tích hợp hoàn chỉnh hệ thống điện tử nhúng hoạt động ổn định gồm NVIDIA Jetson Nano, Arduino Mega 2560, mạch công suất L298N, 2 động cơ DC giảm tốc JGB37 có gắn encoder (11 xung/vòng, tỉ số truyền 1:30), cảm biến IMU MPU6050 và cảm biến RPLIDAR A1M8 (tần số quét 5.5Hz).
  • Kết quả thiết lập phần mềm điều khiển và điều hướng:
    • Hệ thống tự động khởi động các tiến trình ROS thông qua file script và service của hệ điều hành mà không cần thao tác dòng lệnh thủ công.
    • Xây dựng hoàn chỉnh bản đồ 2D của không gian thực nghiệm bằng Hector_SLAM.
    • Thuật toán AMCL ước lượng chính xác vị trí và góc quay của robot trên bản đồ; giải thuật Dijkstra và DWA phối hợp dẫn đường chính xác trong cả hai tình huống di chuyển thẳng và bo góc cua.
    • Khả năng né tránh chướng ngại vật động hoạt động hiệu quả khi có vật cản đột ngột; chế độ phục hồi (recovery behavior) giúp robot tự xoay vòng để tái đối khớp tia laser khi odometry xảy ra sai số.
  • Kết quả ứng dụng web quản lý: Xây dựng website hoàn chỉnh bằng ReactJS, Node.js và MongoDB. Triển khai thành công luồng thông tin: khách đặt món -> thông báo đơn hàng mới xuất hiện trên web -> nhân viên nhấn chọn bàn tương ứng -> website phát tín hiệu Action Goal qua thư viện roslibjs -> robot di chuyển tới đúng bàn chỉ định -> giao diện hiển thị trạng thái hoàn thành.
  • Đóng góp của đề tài: So với các nghiên cứu trước đó tại đơn vị (vốn chỉ dừng lại ở bài toán quét bản đồ hoặc tránh vật cản đơn lẻ), đề tài đã hoàn thiện một hệ thống ứng dụng khép kín đáp ứng ngữ cảnh cụ thể của quán cà phê; liên kết thành công môi trường ROS với ứng dụng web người dùng thông qua WebSocket mã nguồn mở với mức chi phí chế tạo thấp.

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

Khóa luận tự chỉ ra các điểm hạn chế trong quá trình thực nghiệm:

  • Kích thước mô hình còn nhỏ ($20 \times 25 \times 20\text{ cm}$), kết cấu cơ khí bằng mica và in 3D chỉ đủ khả năng chịu tải một lượng nhỏ đồ uống hoặc thức ăn nhẹ, chưa đáp ứng được khay phục vụ lớn trong giờ cao điểm.
  • Cơ chế bánh xe vi sai dễ bị trượt bánh khi di chuyển trên các bề mặt sàn có độ ma sát không đồng đều; các va chạm đột ngột làm sai lệch dữ liệu tính toán odometry.
  • Cảm biến RPLIDAR A1M8 quét mặt phẳng cắt 2D song song mặt đất, do đó robot không thể phát hiện các vật cản nằm bên dưới hoặc bên trên mặt phẳng quét của chùm tia laser (như chân ghế nghiêng, mép bàn nhô ra hoặc vật thể rơi trên sàn).
  • Sự ổn định của kết nối điều khiển thời gian thực phụ thuộc hoàn toàn vào độ phủ và chất lượng đường truyền của mạng Wi-Fi nội bộ giữa website và máy tính nhúng.

Hướng phát triển tiếp theo được tác giả đề xuất:

  • Tối ưu hóa và nâng cấp khung cơ khí với vật liệu chịu lực tốt hơn, mở rộng kích thước khoang chứa đồ để tăng tải trọng phục vụ.
  • Tích hợp thêm các loại cảm biến bổ trợ như cảm biến khoảng cách siêu âm (ultrasonic) hoặc camera chiều sâu (RGB-D camera) nhằm phát hiện chướng ngại vật ngoài mặt phẳng quét 2D của LiDAR.
  • Cải tiến thuật toán kết hợp dữ liệu (sensor fusion) giữa IMU MPU6050 và encoder qua bộ lọc Kalman mở rộng (EKF) để triệt tiêu sai số trôi odometry.
  • Phát triển hệ thống điều phối đa robot (multi-robot coordination), cho phép website quản lý đồng thời nhiều robot phục vụ cùng lúc trong không gian quán lớn.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo thiết thực cho sinh viên, học viên và kỹ sư chuyên ngành Kỹ thuật Máy tính, Điện tử – Viễn thông, Cơ điện tử và Kỹ thuật Điều khiển & Tự động hóa khi tiếp cận các đề tài về robot dịch vụ trong nhà.

Các nội dung có giá trị tham khảo kỹ thuật cao bao gồm:

  1. Phương pháp phân tầng phần cứng và sơ đồ kết nối chuẩn giữa máy tính nhúng Jetson Nano và vi điều khiển Arduino Mega qua giao thức rosserial.
  2. Quy trình cấu hình chi tiết các tệp tham số của ROS Navigation Stack (costmap_common_params, local_costmap_params, global_costmap_params, base_local_planner_params, amcl).
  3. Mô hình tích hợp ứng dụng web hiện đại (ReactJS, Node.js, MongoDB) với hệ điều hành ROS qua rosbridge_suite và thư viện roslibjs, phục vụ xây dựng giao diện điều khiển robot qua trình duyệt mạng.

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

1. Khung cơ khí của robot được thiết kế theo quy cách nào và kích thước cụ thể là bao nhiêu?
Khung robot được thiết kế theo cấu trúc hình hộp chữ nhật 3 tầng rỗng ruột bằng phương pháp in 3D và mica dày 3mm. Mặt đáy có kích thước $20 \times 25\text{ cm}$ với hai khoảng khuyết 5 cm chứa bánh xe. Tổng chiều cao của robot là 20 cm, trong đó tầng đáy cao 5 cm (chứa động cơ, bánh tự do), tầng giữa cao 5 cm (chứa mạch Jetson Nano, Arduino, pin) và tầng trên cao 5 cm (khay chứa món ăn và đế gắn cảm biến LiDAR).

2. Robot sử dụng những thuật toán cụ thể nào cho tác vụ lập bản đồ, định vị và điều hướng?
Robot ứng dụng thuật toán Hector_SLAM để quét và dựng bản đồ 2D thông qua phương pháp scan matching; sử dụng thuật toán AMCL (Adaptive Monte Carlo Localization) với bộ lọc hạt thích ứng để ước lượng vị trí robot trên bản đồ; sử dụng thuật toán Dijkstra trong Global Planner để hoạch định lộ trình toàn cục ngắn nhất; và sử dụng thuật toán Dynamic Window Approach (DWA) trong Local Planner để tính toán vận tốc tránh chướng ngại vật cục bộ.

3. Cơ chế giao tiếp giữa website quản trị và robot ROS được triển khai như thế nào?
Giao tiếp giữa website và robot được thực hiện qua giao thức WebSocket thông qua gói trung gian rosbridge_suite trên ROS Master. Phía frontend ReactJS sử dụng thư viện roslibjs với các lớp đối tượng Ros (quản lý kết nối qua IP và cổng), Topic (publish/subscribe dữ liệu thông điệp) và Goal (phát lệnh chỉ thị điều hướng send() hoặc hủy hành động cancel() tới move_base).

4. Dữ liệu của website quản lý quán cà phê được tổ chức trong MongoDB như thế nào?
Cơ sở dữ liệu MongoDB của hệ thống gồm 4 tập hợp: orders (lưu ngày tạo, số bàn, trạng thái đơn pending/completed, danh sách món, ghi chú và tổng tiền), orderdetails (lưu ID món, đơn giá và số lượng từng món), drinks (lưu tên thức uống và giá bán), và staffs (lưu tên, tuổi, địa chỉ, số điện thoại của nhân viên).

5. Hệ thống xử lý ra sao khi xảy ra hiện tượng tia quét laser scan không khớp với bản đồ toàn cục?
Khi xảy ra va chạm bất ngờ hoặc bánh xe bị trượt làm dữ liệu odometry sai lệch dẫn đến dữ liệu laser_scan không trùng khớp với bản đồ tĩnh (global map), robot sẽ tự động kích hoạt chế độ phục hồi (recovery mode). Trong trạng thái này, robot thực hiện hành vi tự xoay tròn tại chỗ (rotation) để thuật toán định vị quét lại môi trường xung quanh cho đến khi dữ liệu laser khớp tối đa với bản đồ toàn cục.


Kết luận

Khóa luận tốt nghiệp của sinh viên Phạm Quốc Đăng và Viên Minh Tân đã nghiên cứu và triển khai thành công mô hình robot phục vụ quán cà phê ứng dụng hệ điều hành ROS và máy tính nhúng NVIDIA Jetson Nano. Hệ thống kết hợp hài hòa giữa cấu trúc cơ khí 3 tầng dẫn động vi sai, hệ thống cảm biến LiDAR/IMU/Encoder và ngăn xếp điều hướng tự hành Navigation Stack. Điểm nổi bật của đề tài là việc tích hợp hoàn chỉnh quy trình quản lý đơn hàng từ giao diện website ReactJS đến các thao tác chuyển động tự động của robot thông qua cầu nối WebSocket. Đây là tài liệu tham khảo kỹ thuật chi tiết, cung cấp đầy đủ thông số cấu hình và quy trình tích hợp cho các nghiên cứu phát triển robot dịch vụ tương tự.