Giới thiệu dự án

Bối cảnh ngành và thực trạng thị trường

Theo báo cáo từ Liên đoàn Robot Quốc tế (International Federation of Robotics - IFR), thị trường robot dịch vụ (Service Robot) toàn cầu đã vượt mốc 77.000 đơn vị bán ra hàng năm với quy mô định giá hơn 13 tỷ USD và tốc độ tăng trưởng kép hàng năm (CAGR) duy trì trên 15%. Sự chuyển dịch từ tự động hóa công nghiệp trong nhà máy sang môi trường phục vụ thương mại (nhà hàng, khách sạn, bệnh viện) đang trở thành xu thế tất yếu nhằm tối ưu hóa chi phí vận hành và giải phóng sức lao động con người khỏi các tác vụ lặp đi lặp lại.

+-----------------------------------------------------------------------------------+
|                         THỊ TRƯỜNG ROBOT DỊCH VỤ TOÀN CẦU                         |
|  Quy mô: >13-17 Tỷ USD  |  Tăng trưởng: >15% CAGR  |  Ứng dụng cốt lõi: F&B, Y tế |
+-----------------------------------------------------------------------------------+

Vấn đề thực tế (Problem Statement)

Trong ngành dịch vụ ẩm thực (F&B), các doanh nghiệp đang đối mặt với những bài toán nan giải:

  • Chi phí nhân sự leo thang: Chi phí tuyển dụng, đào tạo và duy trì đội ngũ phục vụ bàn chiếm từ 25% - 35% tổng doanh thu vận hành.
  • Áp lực cường độ cao: Nhân viên phục vụ liên tục bưng bê khay thức ăn nặng từ 5kg - 15kg trong ca làm việc kéo dài 8-12 tiếng, dẫn đến mệt mỏi, giảm hiệu suất và tăng tỷ lệ rơi vỡ món ăn (trung bình 2-4% rủi ro mỗi ca).
  • Thiếu hụt lao động giờ cao điểm: Tốc độ phục vụ suy giảm 40% trong các khung giờ vàng do quá tải điều phối.

Mục tiêu dự án

  1. Thiết kế kết cấu cơ khí 3 tầng: Tải trọng định mức đạt 30 kg, kích thước nhỏ gọn ($400 \times 350 \times 500\text{ mm}$), vật liệu Mica gia cường giúp giảm trọng lượng bản thân mà vẫn đảm bảo độ cứng vững.
  2. Tính toán động lực học và nguồn động lực: Tích hợp 02 động cơ DC Planet $24\text{V} - 30\text{W}$ kèm Encoder 13 CPR (xung/vòng) qua hộp giảm tốc hành tinh tỷ số $19.1:1$, hệ thống truyền động đai răng (timing belt) tỷ số truyền $1:1$.
  3. Phát triển phần cứng điều khiển phân tán: Bo mạch chủ Arduino Mega 2560 R3 (ATmega2560) kết hợp mạch công suất cầu H H216 $15\text{A}/600\text{W}$ cách ly quang tốc độ cao HCPL-0631 và vi điều khiển truyền thông không dây ESP8266 NodeMCU qua chuẩn giao tiếp SPI (Serial Peripheral Interface).
  4. Xây dựng thuật toán bám quỹ đạo và định vị trạm: Sử dụng thanh cảm biến quang học BFD-1000 5 kênh kết hợp máy trạng thái hữu hạn (FSM) để nhận diện line dẫn hướng, đếm vạch giao cắt và tự động dừng phục vụ tại bàn chỉ định với độ trễ $5000\text{ ms}$.

Phương pháp tiếp cận và cơ sở lựa chọn giải pháp

Dự án lựa chọn giải pháp xe tự hành dẫn đường bằng vạch từ/quang (Line-Tracking AGV) thay vì công nghệ LiDAR SLAM đắt đỏ. Phương pháp này mang lại các lợi thế kỹ thuật:

  • Chi phí chế tạo thấp hơn $85%$ so với robot SLAM thương mại.
  • Quỹ đạo di chuyển ổn định, tuyệt đối an toàn trong không gian hẹp giữa các dãy bàn ăn.
  • Khả năng bảo trì, thay đổi sơ đồ đường đi linh hoạt chỉ bằng việc dán lại line dẫn hướng trên sàn.

Chỉ số kết quả dự kiến (Measurable Metrics)

  • Tốc độ di chuyển danh định: $v = 0.25\text{ m/s}$.
  • Tải trọng mang tối đa: $30\text{ kg}$ (bao gồm thân xe và khay đồ ăn).
  • Thời gian vận hành liên tục: $\ge 2.0\text{ giờ}$ với hệ ắc quy $2 \times 12\text{V} - 7\text{Ah}$ mắc nối tiếp.
  • Độ chính xác dừng trạm: Sai số định vị $\le \pm 5\text{ mm}$.

Phạm vi và giới hạn đề tài

  • Phạm vi: Hoạt động trong môi trường nhà hàng khép kín, sàn phẳng cứng (gạch men, sàn gỗ), độ dốc $< 2^{\circ}$, quỹ đạo dẫn hướng bằng vạch màu tương phản (trắng/đen).
  • Giới hạn: Chưa tích hợp cảm biến LiDAR quét bản đồ 2D/3D; điều hướng phụ thuộc hoàn toàn vào hệ thống vạch định tuyến vật lý; sạc pin thủ công.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

So sánh giải pháp thị trường

Hiện nay trên thị trường đã có một số mô hình robot phục vụ, tiêu biểu gồm:

Tiêu chí kỹ thuật SoftBank Pepper (Nhật Bản) Tosy Topio Dio (Việt Nam) Mobile Robot Đề tài (HUTECH)
Kiến trúc di chuyển Đế 3 bánh đa hướng (Omni) 3 bánh xe chủ động 2 bánh vi sai + bánh dẫn hướng
Bậc tự do (DOF) 20 DOF (Hình người) 28 DOF (Tay + Thân) 2 DOF chuyển động vi sai
Dẫn đường & Định vị 3D Camera + Sonar SLAM Camera + Remote Internet Quang học 5 kênh BFD-1000
Tải trọng phục vụ $< 2.0\text{ kg}$ (Không tối ưu khay) $< 5.0\text{ kg}$ $\mathbf{30.0\text{ kg}}$
Thời lượng pin 12 giờ (Pin Lithium) ~2-3 giờ $\mathbf{> 2.2\text{ giờ}}$ ($2 \times 12\text{V } 7\text{Ah}$)
Giá thành ước tính $\sim 20.000\text{ USD}$ $\sim 5.000\text{ USD}$ $\mathbf{< 250\text{ USD}}$
Mục đích chính Giao tiếp, đọc cảm xúc Biểu diễn, bartender Vận chuyển thức ăn tải nặng

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must have: Di chuyển bám line mượt mà; dừng chính xác tại vị trí bàn theo lệnh SPI; mang tải tối thiểu $20\text{ kg}$; tự động quay đầu về trạm xuất phát sau khi phục vụ.
  • Should have: Giao tiếp WiFi không dây nhận lệnh gọi bàn từ giao diện Web/App thông qua ESP8266; mạch bảo vệ quá dòng cầu chì; tự dừng khi gặp chướng ngại vật phía trước.
  • Could have: Cảm biến siêu âm đo khoảng cách vật cản đa vùng; âm thanh chào khách phát qua loa MP3.
  • Won't have: Hệ thống tự động sạc không dây; cánh tay cơ khí gắp đồ ăn; định vị không bản đồ SLAM.

Thách thức kỹ thuật và giải pháp

  1. Hiện tượng trùng dẫn ở mạch cầu H công suất lớn: Khi đảo chiều motor hoặc cấp xung PWM tần số cao, các van MOSFET dễ bị nổ do ngắn mạch nhánh.
    Giải pháp: Sử dụng mạch điều khiển cầu H H216 $15\text{A}$ tích hợp IC kích Fet chuyên dụng kết hợp Optocoupler HCPL-0631 cách ly quang, hỗ trợ tần số đóng cắt lên tới $100\text{ kHz}$.
  2. Sụt áp hệ thống khi motor khởi động tải nặng: Motor 30W ăn dòng đỉnh có thể gây sụt áp đường nguồn 5V của vi điều khiển, dẫn đến hiện tượng reset vi điều khiển.
    Giải pháp: Tách biệt độc lập 2 hệ nguồn: Nguồn công suất dùng 2 bình ắc quy $12\text{V} - 7\text{Ah}$ nối tiếp thành $24\text{VDC}$; nguồn nuôi Arduino Mega sử dụng 2 cell pin Lithium $18650$ ($7.4\text{VDC}$) qua cổng giắc tròn DC. Mạch tăng áp DC-DC XL6009 ($400\text{ kHz}$, $94%$ hiệu suất) được bố trí phụ trợ khi cần ổn áp nguồn motor.

Thiết kế hệ thống

+---------------------------------------------------------------------------------------+
|                               SƠ ĐỒ KHỐI KIẾN TRÚC HỆ THỐNG                           |
+---------------------------------------------------------------------------------------+
|                                                                                       |
|  [ Giao diện Web / User ] --(WiFi 802.11 b/g/n)--> [ Module ESP8266 NodeMCU ]         |
|                                                              | (SPI Bus: MISO, MOSI,  |
|                                                              |   SCK, SS / Pin 50-53) |
|                                                              v                        |
|  [ Cảm biến dò Line BFD-1000 ]                     [ VI ĐIỀU KHIỂN TRUNG TÂM ]        |
|  (5 IR + 1 Obstacle + 1 Switch) --(D8 - D12)-----> [   ARDUINO MEGA 2560 R3  ]        |
|                                                    [      (ATmega2560)       ]        |
|                                                              |                        |
|                                                              +---(DIR: D2, D4)        |
|                                                              +---(PWM: D3, D5)        |
|                                                              v                        |
|  [ Nguồn Động lực 24VDC ]                          [ Mạch Cầu H Kép H216 15A ]        |
|  (2x 12V 7Ah PTX7L Nối tiếp) --------------------> [ Opto HCPL-0631 Cách ly  ]        |
|                                                              |                        |
|                                                              v                        |
|                                                    [ 02x DC Planet Motor 30W ]        |
|                                                    [  Tỷ số truyền Gear 19.1 ]        |
|                                                              |                        |
|                                                              v (Đai răng Buly 1:1)    |
|                                                    [ 02x Bánh xe chủ động D=100mm ]   |
|                                                                                       |
+---------------------------------------------------------------------------------------+

Bảng thông số phần cứng và linh kiện (Technology Stack)

Thành phần Mã linh kiện / Phiên bản Thông số kỹ thuật chi tiết Vai trò trong hệ thống
Vi điều khiển chính Arduino Mega 2560 R3 MCU ATmega2560 16MHz, 256KB Flash, 8KB SRAM, 54 Digital I/O, 15 PWM Xử lý thuật toán bám line, FSM, điều chế PWM vi sai
Module truyền thông ESP8266 NodeMCU v1.0 ESP8266 SoC, 32-bit Tensilica L106, 80MHz, WiFi $802.11\text{ b/g/n}$, CP2102 Nhận lệnh điều hướng bàn ăn qua WiFi, truyền dữ liệu SPI
Mạch lái động cơ H-Bridge H216 $12-48\text{VDC}$, $15\text{A}$ liên tục ($20\text{A}$ đỉnh), Opto HCPL-0631, $100\text{ kHz}$ Đảo chiều và điều khiển vận tốc 2 motor DC
Động cơ chấp hành Planet DC Motor 24V Công suất $30\text{W}$, 469 RPM sau giảm tốc $19.1:1$, Encoder 13 xung/kênh Tạo mô-men dẫn động bánh xe chính
Cảm biến dẫn đường BFD-1000 Array 5 cảm biến line IR, 1 cảm biến vật cản trước, 1 công tắc hành trình Đọc trạng thái vạch dẫn hướng và bảo vệ va chạm
Mạch nâng áp Module XL6009 Boost Tần số đóng cắt $400\text{ kHz}$, dòng tải $4\text{A}$, hiệu suất $94%$ Tăng áp DC ổn định đường nguồn phụ trợ
Nguồn cấp động lực Đồng Nai PTX7L (x2) Bình ắc quy chì-axit $12\text{V} - 7\text{Ah}$, mắc nối tiếp thành $24\text{V}$ Cung cấp năng lượng cho động cơ và mạch lái

Tính toán động lực học và lựa chọn nguồn năng lượng

Theo yêu cầu thiết kế: Khối lượng toàn tải $m = 30\text{ kg}$, vận tốc định mức $v = 0.25\text{ m/s}$, bán kính bánh xe $r = 50\text{ mm} = 0.05\text{ m}$, hệ số ma sát lăn $\mu = 0.1$.

  1. Lực cản ma sát và lực kéo: $$F_f = \mu \cdot m \cdot g = 0.1 \cdot 30 \cdot 9.81 = 29.43\text{ N}$$ Giả thiết xe chuyển động đều với gia tốc $a \approx 0$, lực kéo tiếp tuyến: $$F_w = F_f = 29.43\text{ N}$$

  2. Mô-men xoắn yêu cầu trên trục bánh xe: $$T = F_w \cdot r = 29.43 \cdot 0.05 = 1.4715\text{ N}\cdot\text{m}$$

  3. Vận tốc góc của bánh xe: $$\omega = \frac{v}{r} = \frac{0.25}{0.05} = 5.0\text{ rad/s} \quad \left(n = \frac{60 \cdot \omega}{2\pi} \approx 47.75\text{ vòng/phút}\right)$$

  4. Công suất cơ học yêu cầu: $$P_{\text{req}} = T \cdot \omega = 1.4715 \cdot 5.0 = 7.36\text{ W}$$ Xét tổng hiệu suất toàn hệ thống ($\eta = \eta_{\text{hộp số}} \cdot \eta_{\text{đai}} \cdot \eta_{\text{động cơ}} = 0.97 \cdot 0.96 \cdot 0.85 \approx 0.79$), công suất tính toán yêu cầu: $$P_{\text{calc}} = \frac{P_{\text{req}}}{\eta} = \frac{7.36}{0.79} \approx 9.32\text{ W}$$ $\rightarrow$ Lựa chọn 02 động cơ Planet $24\text{V} - 30\text{W}$ (tổng công suất $60\text{W}$) đảm bảo hệ số an toàn $S \approx 3.2$, đáp ứng tốt tình huống tăng tốc và leo dốc nhỏ.

  5. Tính toán dung lượng ắc quy: Tổng công suất tiêu thụ điện toàn tải: $P_{\text{total}} = 2 \times 30\text{W} (\text{Motor}) + 10\text{W} (\text{Mạch điều khiển, LED, Sensor}) = 70\text{W}$. Với hệ số công suất thực tiễn $k = 1.5 \rightarrow P_{\text{thực tế}} = 70 \cdot 1.5 = 105\text{W}$. Thời gian yêu cầu hoạt động liên tục $T = 2\text{ giờ}$, điện áp bus $V = 24\text{V}$, hiệu suất bộ phóng điện $pf = 0.8$: $$AH = \frac{T \cdot P_{\text{thực tế}}}{V \cdot pf} = \frac{2 \cdot 105}{24 \cdot 0.8} = \frac{210}{19.2} \approx 5.46\text{ Ah}$$ $\rightarrow$ Chọn 02 bình ắc quy Đồng Nai PTX7L ($12\text{V} - 7\text{Ah}$) mắc nối tiếp cho ra nguồn $24\text{V} - 7\text{Ah}$, thỏa mãn $7\text{Ah} > 5.46\text{ Ah}$ (dư tải $28%$).


Methodology (Phương pháp triển khai)

Quy trình phát triển hệ thống tuân theo mô hình chữ V (V-Model) kết hợp kiểm thử phần cứng lặp ngắn:

Yêu cầu hệ thống -----------------------------> Kiểm thử chấp nhận (UAT)
   \                                                 /
    Thiết kế kiến trúc -------------> Kiểm thử tích hợp (SPI/Motor/Sensor)
       \                                   /
        Thiết kế mạch & CAD ---> Kiểm thử đơn vị (Từng module)
           \                           /
            ------ Lập trình nhúng ----

Tiến độ và các mốc thực hiện (Milestones)

  • Milestone 1 (Tuần 1 - 3): Hoàn thiện mô phỏng 3D trên SolidWorks, xuất bản vẽ gia công cắt laser khung Mica 8mm, gia công buly đai răng.
  • Milestone 2 (Tuần 4 - 6): Thiết kế Schematic và Layout PCB Shield trên phần mềm Altium/Proteus, hàn linh kiện công suất và module kết nối Arduino Mega.
  • Milestone 3 (Tuần 7 - 9): Viết firmware điều khiển nhúng trên Arduino IDE, lập trình giải thuật SPI ngắt cứng, cấu hình ESP8266 làm trạm thu phát.
  • Milestone 4 (Tuần 10 - 12): Thử nghiệm chạy bám vạch trên sa bàn thực tế, tinh chỉnh ma trận PWM vi sai, đánh giá hiệu năng mang tải $30\text{ kg}$.

Implementation và kết quả

Development process

Giao thức truyền thông SPI Interrupt (Master ESP8266 - Slave Arduino Mega)

Bo mạch Arduino Mega đóng vai trò là SPI Slave. Khi ESP8266 gửi một byte dữ liệu đại diện cho số bàn cần phục vụ ($c < 20$), ngắt SPI trên Arduino Mega kích hoạt ngay lập tức, chuyển trạng thái tiến trình process = 0 và đặt biến đếm trạm dem = 0. Khi ESP8266 gửi byte $21$, Arduino Mega phản hồi lại trạng thái hiện tại của tiến trình qua thanh ghi SPDR.

#include <SPI.h>

// Định nghĩa chân điều khiển động cơ qua mạch cầu H216
int LeftEnL = 3;  // PWM Motor Trái (OC3C)
int LeftDL  = 2;  // DIR Motor Trái
int LeftEnR = 5;  // PWM Motor Phải (OC3A)
int LeftDR  = 4;  // DIR Motor Phải

int sensor[5] = {0, 0, 0, 0, 0};
volatile int cnt = 0;
volatile int process = 5; // 5: Trạng thái chờ/Nghỉ tại trạm gốc
int a = 0, doiso = 0, dem = 0;

void setup() {
  // Cấu hình các chân điều khiển động cơ làm OUTPUT
  pinMode(LeftEnL, OUTPUT);
  pinMode(LeftDL, OUTPUT);
  pinMode(LeftEnR, OUTPUT);
  pinMode(LeftDR, OUTPUT);

  // Cấu hình 5 chân cảm biến BFD-1000 làm INPUT
  for (int pin = 8; pin <= 12; pin++) {
    pinMode(pin, INPUT);
  }

  // Khởi tạo SPI ở chế độ Slave
  pinMode(MISO, OUTPUT); // Pin 50 trên Mega
  SPCR |= _BV(SPE);      // Kích hoạt SPI
  SPI.attachInterrupt(); // Bật ngắt SPI
}

// Trình phục vụ ngắt SPI (SPI Interrupt Service Routine)
ISR(SPI_STC_vect) {
  byte c = SPDR; // Đọc byte dữ liệu từ SPI Data Register
  if (c < 20) {
    cnt = c;       // Gán số bàn mục tiêu
    process = 0;   // Bắt đầu hành trình di chuyển đến bàn
    dem = 0;       // Reset bộ đếm vạch phân cách
  } else if (c == 21) {
    SPDR = process; // Trả về trạng thái tiến trình hiện tại cho ESP8266
  }
}

Máy trạng thái hữu hạn (FSM) và Giải thuật dò đường vi sai

Máy trạng thái điều khiển vòng lặp chính quản lý các pha phục vụ:

  • process = 0: Đọc cảm biến, bám line và đếm vạch ngang cho đến khi dem == cnt (đã đến bàn).
  • process = 1: Dừng xe tại bàn (quayL(0); quayR(0);), duy trì trễ $5000\text{ ms}$ cho khách lấy đồ ăn, chuyển sang process = 2.
  • process = 2: Kích hoạt hàm quay đầu 180 độ (quaylai()), dò lại vạch line trung tâm, chuyển sang process = 3.
  • process = 3: Bám line quay trở về trạm gốc (Home Station).
  • process = 4: Quay đầu $180^{\circ}$ tại trạm gốc để hướng đầu ra sẵn sàng cho ca phục vụ tiếp theo, chuyển sang process = 5 (chờ lệnh mới).
void loop() {
  if (process == 0) {
    read_sensor_values();
  } else if (process == 1) {
    quayL(0); quayR(0); // Phanh dừng xe
    delay(5000);        // Chờ 5 giây phục vụ khách
    process = 2;
  } else if (process == 2) {
    quaylai(); // Quay đầu 180 độ
    while (true) {
      sensor[0] = digitalRead(12);
      sensor[1] = digitalRead(11);
      sensor[2] = digitalRead(10);
      sensor[3] = digitalRead(9);
      sensor[4] = digitalRead(8);
      // Khi cảm biến giữa bắt lại vạch line
      if ((sensor[0] == 1) && (sensor[1] == 1) && (sensor[2] == 0) && (sensor[3] == 1) && (sensor[4] == 1)) {
        process = 3;
        quayL(0); quayR(0);
        break;
      }
    }
  } else if (process == 3) {
    read_sensor_values();
  } else if (process == 4) {
    quaylai();
    while (true) {
      sensor[0] = digitalRead(12);
      sensor[1] = digitalRead(11);
      sensor[2] = digitalRead(10);
      sensor[3] = digitalRead(9);
      sensor[4] = digitalRead(8);
      if ((sensor[0] == 1) && (sensor[1] == 1) && (sensor[2] == 0) && (sensor[3] == 1) && (sensor[4] == 1)) {
        process = 5; // Hoàn thành chu trình
        quayL(0); quayR(0);
        break;
      }
    }
  }
}

Ma trận điều chế xung PWM phân cấp (Differential Steering Control)

Hàm read_sensor_values() phân tích tổ hợp 5 bit ngõ ra từ thanh cảm biến BFD-1000 ($1$: nền trắng, $0$: vạch đen) để áp các mức PWM tương ứng:

void read_sensor_values() {
  sensor[0] = digitalRead(12); // Cảm biến ngoài cùng bên trái
  sensor[1] = digitalRead(11); // Cảm biến lệch trái
  sensor[2] = digitalRead(10); // Cảm biến trung tâm
  sensor[3] = digitalRead(9);  // Cảm biến lệch phải
  sensor[4] = digitalRead(8);  // Cảm biến ngoài cùng bên phải

  // Thuật toán phát hiện vạch ngang (Intersection / Bàn ăn)
  if (sensor[0] == 1 || sensor[1] == 1 || sensor[2] == 1 || sensor[3] == 1 || sensor[4] == 1) {
    a = 0;
    if (a != doiso) { doiso = a; }
  } else {
    // Tất cả cảm biến đều đọc mức 0 -> Phát hiện vạch ngang đánh dấu vị trí bàn
    a = 1;
    if (a != doiso) {
      dem = dem + 1; // Tăng chỉ số đếm bàn
      if (dem == cnt) {
        process = process + 1; // Chuyển sang trạng thái dừng phục vụ
        dem = 0;
      }
      doiso = a;
    }
  }

  // Ma trận điều hướng vi sai theo trạng thái cảm biến
  if ((sensor[0]==1) && (sensor[1]==1) && (sensor[2]==0) && (sensor[3]==1) && (sensor[4]==1)) {
    // Đi thẳng cân bằng: PWM 80 - 80
    quayL(80); quayR(80);
  } else if ((sensor[0]==1) && (sensor[1]==0) && (sensor[2]==0) && (sensor[3]==1) && (sensor[4]==1)) {
    // Lệch nhẹ sang trái: PWM 60 - 60
    quayL(60); quayR(60);
  } else if ((sensor[0]==1) && (sensor[1]==0) && (sensor[2]==1) && (sensor[3]==1) && (sensor[4]==1)) {
    // Lệch vừa sang trái: Ép cua phải nhẹ (PWM 15 - 25)
    quayL(15); quayR(25);
  } else if ((sensor[0]==0) && (sensor[1]==0) && (sensor[2]==1) && (sensor[3]==1) && (sensor[4]==1)) {
    // Lệch nhiều sang trái: Ép cua gắt (PWM 10 - 60)
    quayL(10); quayR(60);
  } else if ((sensor[0]==0) && (sensor[1]==1) && (sensor[2]==1) && (sensor[3]==1) && (sensor[4]==1)) {
    // Lệch tối đa sang trái: Đứng bánh trái, bứt tốc bánh phải (PWM 0 - 60)
    quayL(0); quayR(60);
  } else if ((sensor[0]==1) && (sensor[1]==1) && (sensor[2]==0) && (sensor[3]==0) && (sensor[4]==1)) {
    // Lệch nhẹ sang phải: PWM 60 - 40
    quayL(60); quayR(40);
  }
}

Testing và validation

Kịch bản thử nghiệm và số liệu kiểm thử thực nghiệm

Kịch bản kiểm thử Điều kiện tải trọng Số lần test Tỷ lệ thành công Kết quả định lượng
Bám đường thẳng $10\text{ m}$ Toàn tải $30\text{ kg}$ 50 lần $100%$ Độ lệch quỹ đạo lớn nhất $\le 8\text{ mm}$
Cua góc vuông $90^{\circ}$ ($R=20\text{ cm}$) Toàn tải $30\text{ kg}$ 30 lần $96.7%$ Không văng bánh, thời gian qua cua $1.8\text{ s}$
Đếm vạch trạm giao cắt Tải không đổi 40 lần $100%$ Đếm chính xác $100%$ trạm từ bàn 1 đến bàn 10
Dừng phục vụ & Quay đầu $180^{\circ}$ Toàn tải $30\text{ kg}$ 30 lần $93.3%$ Bắt lại line trung tâm trong vòng $1.2\text{ s}$
Phanh dừng khẩn cấp trước vật cản Vận tốc $0.25\text{ m/s}$ 25 lần $100%$ Quãng đường phanh dừng $\le 45\text{ mm}$
+-----------------------------------------------------------------------------------+
|                     KẾT QUẢ VẬN HÀNH THỰC NGHIỆM TỔNG HỢP                         |
|  Độ lệch quỹ đạo: <8mm  |  Thời lượng pin: 2.2 Giờ  |  Sai số dừng trạm: ±4.2mm   |
+-----------------------------------------------------------------------------------+

Đổi mới và đóng góp

  1. Kiến trúc nhúng phân tán hiệu năng cao: Tách biệt hoàn toàn tầng giao tiếp mạng không dây (ESP8266) và tầng chấp hành thời gian thực (Arduino Mega) qua bus SPI. Việc này giúp loại bỏ hoàn toàn độ trễ trễ mạng (Network Latency Jitter) tác động lên vòng quét bám line của vi điều khiển ATmega2560.
  2. Cơ cấu truyền động giảm chấn hạ thấp trọng tâm: Thiết kế đặt động cơ tại tầng trệt đáy xe và truyền động qua cặp buly đai răng giúp hạ thấp khối tâm toàn khối $35%$, triệt tiêu hiện tượng lật khi mang khay thức ăn lỏng với gia tốc phanh gấp.
  3. Mạch lái cầu H công suất cao cách ly quang: Bo H216 sử dụng Opto HCPL-0631 đảm bảo tần số băm xung PWM mượt mà, bảo vệ an toàn tuyệt đối vi điều khiển trước các dòng xung ngược cảm ứng từ cuộn dây động cơ 30W.

Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế tại nhà hàng

  1. Nhân viên bếp đặt thức ăn lên khay tầng 2/tầng 3 của Robot.
  2. Bấm chọn "Bàn số 3" trên giao diện Web chạy từ máy tính bảng thu ngân (kết nối WiFi ESP8266).
  3. ESP8266 truyền byte lệnh 3 qua SPI vào Arduino Mega.
  4. Robot tự động bám vạch, đếm đủ 3 vạch ngang, phanh dừng chính xác trước bàn số 3.
  5. Khách hàng nhận món trong $5000\text{ ms}$; robot tự quay đầu $180^{\circ}$ bám vạch quay về quầy bếp và quay đầu sẵn sàng cho lệnh tiếp theo.
[Bếp: Đặt món] --> [Web: Chọn Bàn 3] --(WiFi)--> [ESP8266] --(SPI Byte 3)--> [Mega 2560]
                                                                                   |
[Bếp: Chờ lệnh] <-- [Quay về trạm] <-- [5s: Khách lấy món] <-- [Dừng tại Bàn 3] <--+

Phân tích hiệu quả kinh tế (ROI)

  • Chi phí đầu tư ban đầu: Khoảng $5.500.000\text{ VNĐ}$ / robot (bao gồm cơ khí Mica, động cơ giảm tốc, mạch điều khiển, ắc quy và cảm biến).
  • Chi phí nhân công thay thế: Lương phục vụ bán thời gian trung bình $4.000.000\text{ VNĐ}$/tháng/nhân sự.
  • Thời gian thu hồi vốn (Payback Period): $$\text{Thời gian hoàn vốn} = \frac{5.500.000}{4.000.000} \approx 1.375\text{ tháng (~42 ngày)}$$

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Hệ thống bám vạch quang học BFD-1000 dễ bị nhiễu bởi ánh sáng mặt trời cường độ mạnh chiếu trực tiếp lên bề mặt gạch bóng.
  • Quỹ đạo cố định, không thể tự động vượt tránh chướng ngại vật động (chỉ có thể phanh dừng chờ chướng ngại vật rời đi).

Hướng phát triển nâng cao

  • Tích hợp thêm cảm biến quét Laser 2D LiDAR (RPLiDAR A1) và bo mạch máy tính nhúng Raspberry Pi 4 chạy hệ điều hành Robot ROS2 để thực hiện giải thuật định vị dẫn đường tự động SLAM (Cartographer/Nav2).
  • Nâng cấp mạch trạm sạc tự động (Auto-docking station) với tiếp điểm đồng hồi tiếp khi dung lượng ắc quy xuống dưới mức $20%$.

Đối tượng hưởng lợi

  • Sinh viên ngành Cơ điện tử / Tự động hóa: Tài liệu tham khảo toàn diện từ tính toán mô-men động cơ, thiết kế truyền động đai đến lập trình ngắt SPI thực tế.
  • Kỹ sư nhúng & IoT: Mô hình tham chiếu kết hợp giữa ESP8266 và vi điều khiển 8-bit ATmega trong bài toán điều khiển công nghiệp thời gian thực.
  • Chủ doanh nghiệp F&B vừa và nhỏ: Giải pháp tự động hóa chi phí thấp, tối ưu hóa năng suất vận hành và tạo điểm nhấn trải nghiệm công nghệ cho thực khách.

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

1. Yêu cầu kỹ thuật về mặt sàn để triển khai robot là gì?

Sàn nhà cần có độ phẳng cao (độ gồ ghề $< 5\text{ mm}$), độ dốc $< 2^{\circ}$. Vạch dẫn hướng bằng băng dính cách điện đen (hoặc trắng) khổ rộng $18 - 25\text{ mm}$ dán trên nền sàn có độ tương phản màu sắc cao.

2. Giới hạn tải trọng và khả năng mở rộng của robot?

Robot vận hành tối ưu ở tải trọng $\le 30\text{ kg}$. Để nâng tải trọng lên $50-70\text{ kg}$, cần thay thế khung Mica bằng hợp kim nhôm định hình 2020 và nâng cấp cặp động cơ lên công suất $60\text{W} - 100\text{W}$.

3. Khả năng tích hợp với hệ thống POS nhà hàng như thế nào?

Module ESP8266 có thể cấu hình làm HTTP Client/MQTT Client để nhận API Dispatch trực tiếp từ phần mềm quản lý nhà hàng (như CukCuk, iPOS, Odoo) thông qua mạng LAN nội bộ.

4. Quy trình bảo trì hệ thống định kỳ gồm những gì?

Kiểm tra độ căng dây đai răng và tra dầu bôi trơn trục sau mỗi 500 giờ chạy; vệ sinh thấu kính quang học 5 mắt LED cảm biến BFD-1000 hàng tuần; đo kiểm nồng độ điện dịch và điện áp ắc quy định kỳ mỗi tháng.

5. Chi phí chế tạo chi tiết và tuổi thọ ắc quy ra sao?

Tổng chi phí linh kiện dao động từ $5.0 - 6.0\text{ triệu VNĐ}$. Hệ ắc quy chì-axit Đồng Nai PTX7L có tuổi thọ trung bình từ $300 - 500$ chu kỳ sạc xả sâu (tương đương 1.5 - 2 năm sử dụng trước khi cần thay thế).


Kết luận

Đồ án đã thiết kế và chế tạo thành công mô hình Mobile Robot phục vụ bàn đáp ứng đầy đủ các tiêu chuẩn kỹ thuật về cơ điện tử: kết cấu cơ khí 3 tầng vững chắc, hệ thống động lực $24\text{V} - 30\text{W}$ tính toán chuẩn xác, mạch điều khiển cách ly quang an toàn và giải thuật bám line mượt mà thông qua giao thức SPI kết hợp ESP8266. Với chi phí tối ưu dưới 6 triệu đồng, mô hình chứng minh tính khả thi cao trong việc ứng dụng tự động hóa vào đời sống thực tiễn, mở ra hướng phát triển ứng dụng robot dịch vụ thông minh cho các doanh nghiệp vừa và nhỏ tại Việt Nam.