Giới thiệu dự án

Sự gia tăng nhanh chóng của mật độ dân số đô thị và tốc độ phát triển kinh tế tại các thành phố lớn ở Việt Nam đang tạo ra áp lực khổng lồ lên hạ tầng quản lý rác thải. Theo thống kê từ Bộ Tài nguyên và Môi trường, các đô thị lớn thải ra hàng chục nghìn tấn rác sinh hoạt mỗi ngày, trong đó tỷ lệ rác thải bị vứt bừa bãi tại các khu vực công cộng như công viên, trường học, bệnh viện và trung tâm thương mại vẫn chiếm tỷ trọng đáng kể. Nguyên nhân cốt lõi bắt nguồn từ thói quen thụ động của người dân kết hợp với hạ tầng thu gom rác tĩnh (thùng rác cố định) thiếu tính linh hoạt và không có khả năng tương tác chủ động.

Vấn đề đặt ra là các thùng rác truyền thống hoàn toàn phụ thuộc vào việc người dùng phải tự tìm đến vị trí đặt thùng rác. Khi khoảng cách tiếp cận quá xa hoặc thùng rác bị che khuất, hành vi xả rác bừa bãi rất dễ phát sinh. Đề tài "Xây dựng mô hình thùng rác di chuyển tự động và theo cử chỉ tay" được nghiên cứu và phát triển bởi nhóm sinh viên ngành Công nghệ Kỹ thuật Máy tính, Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE) dưới sự hướng dẫn của ThS. Lê Minh nhằm giải quyết triệt để điểm nghẽn này.

+-----------------------------------------------------------------------+
|                           HỆ THỐNG ROBOT THÙNG RÁC THÔNG MINH         |
+-----------------------------------------------------------------------+
|  [Thu nhận & Xử lý Thị giác]         [Điều khiển & Cảm biến Ngoại vi] |
|   - Camera Pi Noir v2 (CSI 8MP)       - Sharp GP2Y0A02YK0F IR Sensors |
|   - NVIDIA Jetson Nano (GPU 128 core)  - NodeMCU ESP32 SoC (Dual-Core) |
|   - Deep CNN (Inference cử chỉ tay)   - Driver L298 + Động cơ DC Giảm tốc|
|                                       - Cảnh báo LED WS2812 & Còi Buzzer |
+------------------------------------+----------------------------------+
                                     | (Giao thức UART / Wi-Fi)
                                     v
+-----------------------------------------------------------------------+
|           NỀN TẢNG CLOUD IOT & GIAO DIỆN ĐIỀU KHIỂN BLYNK APP         |
|   - Giám sát mức rác theo thời gian thực (Level Tracking)             |
|   - Điều khiển hướng di chuyển thủ công (Manual Override)             |
|   - Cảnh báo trạng thái đầy rác tự động (Push Notification)           |
+-----------------------------------------------------------------------+

Mục tiêu dự án

  1. Thiết kế phần cứng tích hợp: Xây dựng mô hình robot di động 3 bánh (2 bánh chủ động dẫn động độc lập qua động cơ DC giảm tốc và 1 bánh omni điều hướng) có kết cấu cơ khí vững chắc, tải trọng chứa rác tối thiểu 5kg.
  2. Xây dựng hệ thống thị giác máy tính biên (Edge AI Computer Vision): Triển khai mạng nơ-ron tích chập (Convolutional Neural Network - CNN) trên nền tảng nhúng NVIDIA Jetson Nano để nhận dạng thời gian thực (real-time) cử chỉ lòng bàn tay mở của con người.
  3. Phát triển thuật toán điều hướng và tránh vật cản tự động: Ứng dụng cụm cảm biến khoảng cách hồng ngoại Sharp GP2Y0A02YK0F kết hợp bộ điều khiển trung tâm NodeMCU ESP32 để phát hiện vật cản đa hướng và tự động lập quỹ đạo né tránh an toàn.
  4. Tích hợp IoT quản lý mức rác: Tự động đo lường độ đầy của thùng rác bằng cảm biến chuyên dụng, đồng bộ trạng thái lên điện toán đám mây qua giao thức kết nối của nền tảng Blynk Server, hỗ trợ giám sát và điều khiển từ xa.

Giải pháp và Phạm vi

Hệ thống sử dụng kiến trúc xử lý phân tầng (Hierarchical Processing Architecture):

  • Tầng AI/Vision cấp cao: Kit nhúng NVIDIA Jetson Nano xử lý luồng video độ phân giải cao từ Camera Pi Noir v2 qua socket CSI, thực hiện tiền xử lý ảnh và suy luận mạng CNN để xác định tọa độ trọng tâm bàn tay.
  • Tầng Điều khiển Thời gian thực cấp thấp: Vi điều khiển SoC ESP32 đảm nhận đọc dữ liệu analog từ cảm biến khoảng cách, điều khiển băm xung PWM cho cầu H L298, quản lý trạng thái hiển thị của LED NeoPixel WS2812 và còi báo.

Phạm vi & Giới hạn: Hệ thống vận hành tối ưu trong môi trường trong nhà (indoor) hoặc bán ngoài trời (semi-outdoor) có bề mặt sàn phẳng (hệ số ma sát ổn định), điều kiện ánh sáng môi trường từ 150 Lux đến 1200 Lux và khoảng cách nhận diện cử chỉ hiệu quả trong phạm vi từ 0.5m đến 2.0m.


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

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

Trước khi tiến hành thiết kế hệ thống, nhóm nghiên cứu đã tiến hành khảo sát các mô hình robot thùng rác tự hành tiêu biểu trên thế giới và phân tích các giải pháp hiện hành.

Giải pháp / Dự án Nền tảng công nghệ Ưu điểm Nhược điểm Chi phí ước tính
STB (Toyohashi Tech - Nhật Bản) Cảm biến thân nhiệt PIR, Pyroelectric IR, Video Camera, thuật toán bám người Tương tác xã hội cao, tự tìm đến đám đông nhờ cảm biến nhiệt Xử lý hình ảnh phụ thuộc môi trường nhiệt, không có điều khiển từ xa qua cloud Rất cao (> $3,000)
Baryl (Gares & Connexions - Pháp) LiDAR 2D, Cảm biến siêu âm, Hệ thống di chuyển bánh xe công nghiệp, SMS Gateway Dung tích lớn (20L), độ bền công nghiệp, tự động gửi SMS khi đầy rác Chi phí đắt đỏ, kích thước cồng kềnh, không hỗ trợ nhận diện cử chỉ thị giác Rất cao (> $8,000)
Thùng rác cảm ứng tĩnh thông thường Cảm biến hồng ngoại PIR/Siêu âm đơn điểm, Vi điều khiển 8-bit Giá thành rẻ, tiết kiệm năng lượng, đóng mở nắp tự động Hoàn toàn bất động, không có khả năng tương tác từ xa hoặc nhận diện người Thấp (< $30)
Giải pháp đề xuất (HCMUTE) Dual MCU (Jetson Nano + ESP32), Deep CNN Vision, Sharp Analog IR, Blynk Cloud IoT Nhận diện cử chỉ tay chính xác, tự tránh vật cản, giám sát dung lượng qua App, tối ưu chi phí Giới hạn di chuyển trên địa hình gồ ghề, phụ thuộc vào nguồn pin Tối ưu (< $250)
               [So sánh độ thông minh vs Chi phí triển khai]
    Độ thông minh ^
                  |                           [*] Robot Baryl (Pháp)
                  |          [*] Đề xuất (HCMUTE)
                  |                           [*] Robot STB (Nhật Bản)
                  |
                  |  [*] Thùng rác cảm ứng tĩnh
                  +---------------------------------------------> Chi phí

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc):
    • Nhận diện cử chỉ bàn tay mở 5 ngón với độ trễ suy luận (inference latency) $< 100\text{ ms}$.
    • Tự động dừng và quay đầu đổi hướng khi phát hiện vật cản phía trước ở khoảng cách $< 25\text{ cm}$.
    • Điều khiển chuyển động thủ công (Tiến, Lùi, Trái, Phải, Dừng) thông qua giao diện Blynk Mobile App.
  • Should have (Nên có):
    • Đo mức rác trong thùng theo tỷ lệ phần trăm ($0 - 100%$) và gửi cảnh báo quá ngưỡng về điện thoại.
    • Hệ thống đèn báo LED NeoPixel WS2812 đa màu sắc hiển thị trạng thái hoạt động (Tìm kiếm, Tiếp cận, Tránh vật cản, Đầy rác).
  • Could have (Có thể có):
    • Tích hợp mô-đun âm thanh phát giọng nói chào mừng hoặc âm thanh vui nhộn khi người dùng tiếp cận bỏ rác.
  • Won't have (Chưa thực hiện trong giai đoạn này):
    • Bản đồ hóa và định vị đồng thời (SLAM) bằng cảm biến 3D LiDAR.
    • Phân loại tự động rác hữu cơ/vô cơ bên trong thùng bằng AI.

Thiết kế hệ thống

Kiến trúc phần cứng và sơ đồ kết nối

Kiến trúc phần cứng của robot được tổ chức thành 7 khối chức năng liên kết chặt chẽ:

  1. Khối xử lý thị giác (Vision Processing Unit): Bo mạch NVIDIA Jetson Nano B01 (Quad-Core ARM Cortex-A57 @ 1.43GHz, 128-core NVIDIA Maxwell GPU, 4GB LPDDR4 64-bit) kết nối trực tiếp với Camera Pi Noir v2 (Cảm biến Sony IMX219 8-Megapixel, khẩu độ f/2.0, góc nhìn FoV 77 độ) qua giao diện cáp dẹt MIPI-CSI 15-pin.
  2. Khối xử lý trung tâm & IoT (Master MCU): NodeMCU ESP32 (32-bit Tensilica Xtensa Dual-Core LX6 Microprocessor @ 240MHz, 520KB SRAM, tích hợp Wi-Fi 802.11 b/g/n và Bluetooth v4.2 BR/EDR & BLE).
  3. Khối cảm biến (Sensors Array):
    • 01 Cảm biến đo khoảng cách hồng ngoại Sharp GP2Y0A02YK0F (dải đo $20\text{ cm} - 150\text{ cm}$, đầu ra điện áp Analog $0.4\text{V} - 2.8\text{V}$).
    • 01 Cảm biến siêu âm HC-SR04 đặt tại nắp thùng rác đo độ đầy dung tích chứa.
  4. Khối chấp hành động lực (Motor Drive Subsystem): 01 Module mạch cầu H L298N công suất cao điều khiển 02 động cơ DC giảm tốc trục kép (điện áp định mức 12VDC, tỷ số truyền 1:48, momen xoắn $1.5\text{ kg}\cdot\text{cm}$).
  5. Khối hiển thị & Ngoại vi (Peripherals): Module 4 LED RGB WS2812 tích hợp IC điều khiển nối tiếp 1-Wire, còi báo Buzzer cảnh báo âm thanh chủ động.
  6. Khối máy chủ & Điều khiển (Cloud Server & UI): Nền tảng Blynk Cloud Server kết nối hai chiều với ESP32 thông qua giao thức TCP/IP qua mạng Wi-Fi 2.4GHz.
  7. Khối nguồn phân phối (Power Management Unit): Hệ thống pin Li-ion 3S 12.6V cung cấp dòng xả cao cho động cơ và hạ áp thông qua module Buck DC-DC LM2596 (5V/3A) và nguồn phụ 5V/4A chuyên dụng cấp cho Jetson Nano qua Jack DC.
+-----------------------------------------------------------------------------------+
|                           SƠ ĐỒ NGUYÊN LÝ GIAO TIẾP TOÀN HỆ THỐNG                 |
+-----------------------------------------------------------------------------------+
|  [Camera Pi Noir v2] ---> (MIPI-CSI) ---> [NVIDIA Jetson Nano]                    |
|                                                   |                               |
|                                            (UART TXD/RXD)                         |
|                                                   |                               |
|                                                   v                               |
|  [Sharp GP2Y0A02YK0F] -> (GPIO34/ADC1) -> [NodeMCU ESP32] <-> (Wi-Fi) <-> [Blynk] |
|  [HC-SR04 Sensor] ------> (Trig/Echo)  -->        |                               |
|                                                   +-> (GPIO04/00/02/15) -> [L298N]|
|                                                   +-> (GPIO13) -> [WS2812 LEDs]   |
|                                                   +-> (GPIO12) -> [Buzzer Alarm]  |
+-----------------------------------------------------------------------------------+

Bảng tính toán công suất tiêu thụ toàn tải

Hệ thống sử dụng hai đường cấp nguồn độc lập nhằm cách ly xung nhiễu điện từ do động cơ DC gây ra:

Tên linh kiện / Khối Điện áp danh định (V) Dòng tiêu thụ đỉnh (mA) Số lượng Tổng công suất (W)
Camera Pi Noir v2 5.0 V 250 mA 1 1.25 W
Cảm biến Sharp GP2Y0A02YK0F 5.0 V 35 mA 2 0.35 W
Cảm biến HC-SR04 5.0 V 15 mA 1 0.075 W
NodeMCU ESP32 SoC (Tx/Rx Peak) 5.0 V 250 mA 1 1.25 W
NVIDIA Jetson Nano (GPU Full Load) 5.0 V 4000 mA 1 20.00 W
Module LED NeoPixel WS2812 (4 LED) 5.0 V 240 mA 1 1.20 W
Tổng nhánh nguồn 5VDC 5.0 V 4790 mA -- 24.125 W
Động cơ DC giảm tốc (Stall/Load) 12.0 V 1200 mA 2 28.80 W
Module Driver cầu H L298N Logic 12.0 V 40 mA 1 0.48 W
Tổng nhánh nguồn 12VDC 12.0 V 2440 mA -- 29.28 W

Phương pháp nghiên cứu và quy trình triển khai (Methodology)

Dự án áp dụng mô hình phát triển hệ thống nhúng lặp tuần tự (Iterative Embedded System Development Lifecycle) kết hợp kiểm thử tích hợp phần cứng - phần mềm liên tục:

[Khảo sát & Thiết kế] 
                             [Kiểm thử & Đánh giá]
  • Giai đoạn 1 (Tuần 1 - 3): Nghiên cứu lý thuyết mạng nơ-ron sâu, cấu trúc toán học của tích chập (Convolution), bước trượt (Stride), phần đệm (Padding) và lớp giảm mẫu (Max Pooling). Thu thập bộ dữ liệu ảnh bàn tay thực nghiệm.
  • Giai đoạn 2 (Tuần 4 - 7): Thiết kế mô hình CNN trên Keras/TensorFlow. Xây dựng phần cứng cơ sở: chế tạo khung gá thùng rác, lắp ráp module nguồn, động cơ, cảm biến và vi điều khiển.
  • Giai đoạn 3 (Tuần 8 - 11): Lập trình driver điều khiển phần cứng trên ESP32 bằng C/C++. Tối ưu hóa suy luận mô hình CNN trên Jetson Nano bằng thư viện OpenCV và CUDA Toolkit. Thiết lập giao thức UART kết nối liên vi điều khiển.
  • Giai đoạn 4 (Tuần 12 - 14): Kiểm thử tích hợp toàn hệ thống trong các kịch bản thực tế, đo đạc độ chính xác nhận diện theo khoảng cách, tối ưu hóa độ phản hồi tránh vật cản và hoàn thiện báo cáo kỹ thuật.

Implementation và kết quả

Chi tiết giải thuật và cấu trúc mạng CNN

Mạng CNN nhận diện cử chỉ bàn tay mở 5 ngón được thiết kế tối ưu hóa cho phần cứng nhúng biên với kích thước ảnh đầu vào $16 \times 16 \times 3$ pixels (chuẩn màu RGB) nhằm đảm bảo tốc độ tính toán cao nhất mà vẫn giữ được đặc trưng không gian (spatial features) của lòng bàn tay và các ngón tay.

[Ảnh đầu vào: 16x16x3]
[Flatten Layer: 256 vector]
[Dense Output: 2 Classes (Palm / No-Palm), Softmax]

Toán học của phép tích chập tại vị trí $(i, j)$ trên bản đồ đặc trưng thứ $k$ được biểu diễn bởi:

$$S(i, j) = (I * K)(i, j) = \sum_{m} \sum_{n} I(i - m, j - n) K(m, n) + b$$

Trong đó $I$ là ma trận điểm ảnh đầu vào, $K$ là bộ lọc kích thước $3 \times 3$, $b$ là hệ số chệch (bias) và hàm kích hoạt phi tuyến ReLU được áp dụng: $f(x) = \max(0, x)$.

# Kịch bản xây dựng và huấn luyện mô hình Hand Gesture CNN trên Python 3.7 & Keras/TensorFlow
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout

def build_gesture_cnn_model(input_shape=(16, 16, 3), num_classes=2):
    model = Sequential([
        # Lớp tích chập 1: 32 filters 3x3, padding='same'
        Conv2D(32, (3, 3), activation='relu', padding='same', input_shape=input_shape),
        MaxPooling2D(pool_size=(2, 2)),
        
        # Lớp tích chập 2: 32 filters 3x3
        Conv2D(32, (3, 3), activation='relu', padding='same'),
        MaxPooling2D(pool_size=(2, 2)),
        
        # Lớp tích chập 3: 64 filters 3x3
        Conv2D(64, (3, 3), activation='relu', padding='same'),
        MaxPooling2D(pool_size=(2, 2)),
        
        # Lớp phẳng hóa và lớp kết nối đầy đủ (Fully Connected)
        Flatten(),
        Dense(128, activation='relu'),
        Dropout(0.5), # Chống hiện tượng quá khớp (Overfitting)
        Dense(num_classes, activation='softmax')
    ])
    
    model.compile(optimizer='adam',
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])
    return model

if __name__ == "__main__":
    cnn_model = build_gesture_cnn_model()
    cnn_model.summary()

Xử lý điều khiển thời gian thực và tránh vật cản trên ESP32

Trên nền tảng NodeMCU ESP32, vi điều khiển thu thập liên tục điện áp Analog từ cảm biến Sharp GP2Y0A02YK0F thông qua bộ chuyển đổi ADC 12-bit (chân GPIO34). Khoảng cách thực tế $D\text{ (cm)}$ được nội suy phi tuyến từ điện áp đọc được theo hàm đặc tính:

$$D = \frac{60.495}{V_{out} - 0.105}$$

// Mã nguồn điều khiển di chuyển và tránh vật cản tự động trên ESP32 (Arduino Core v1.0.4)
#define MOTOR_L_IN1 4
#define MOTOR_L_IN2 0
#define MOTOR_R_IN3 2
#define MOTOR_R_IN4 15
#define IR_SENSOR_PIN 34
#define OBSTACLE_THRESHOLD_CM 25.0

void setup_motors() {
    pinMode(MOTOR_L_IN1, OUTPUT);
    pinMode(MOTOR_L_IN2, OUTPUT);
    pinMode(MOTOR_R_IN3, OUTPUT);
    pinMode(MOTOR_R_IN4, OUTPUT);
    Serial.begin(115200);   // Giao tiếp Debug
    Serial2.begin(115200);  // Giao tiếp UART với Jetson Nano (RX2:16, TX2:17)
}

float read_distance_cm() {
    int raw_adc = analogRead(IR_SENSOR_PIN);
    float volts = (float)raw_adc * (3.3 / 4095.0);
    if (volts <= 0.4) return 150.0; // Ngoài dải đo tối đa
    return (60.495 / (volts - 0.105));
}

void move_robot(int l1, int l2, int r1, int r2) {
    digitalWrite(MOTOR_L_IN1, l1);
    digitalWrite(MOTOR_L_IN2, l2);
    digitalWrite(MOTOR_R_IN3, r1);
    digitalWrite(MOTOR_R_IN4, r2);
}

void loop_navigation() {
    float distance = read_distance_cm();
    
    // Ưu tiên cao nhất: Thuật toán an toàn tránh va chạm
    if (distance < OBSTACLE_THRESHOLD_CM && distance > 5.0) {
        move_robot(LOW, LOW, LOW, LOW); // Dừng khẩn cấp
        delay(200);
        move_robot(LOW, HIGH, HIGH, LOW); // Xoay phải đổi hướng
        delay(600);
        return;
    }
    
    // Đọc lệnh điều hướng từ Jetson Nano qua UART
    if (Serial2.available() > 0) {
        char cmd = Serial2.read();
        switch (cmd) {
            case 'L': move_robot(LOW, HIGH, HIGH, LOW); break; // Rẽ trái theo tay
            case 'R': move_robot(HIGH, LOW, LOW, HIGH); break; // Rẽ phải theo tay
            case 'F': move_robot(HIGH, LOW, HIGH, LOW); break; // Tiến về phía người
            default:  move_robot(LOW, LOW, LOW, LOW); break;
        }
    }
}

Kết quả thực nghiệm và kiểm định

Tập dữ liệu huấn luyện (Dataset) gồm 1,000 bức ảnh chụp cử chỉ bàn tay thực tế trong các điều kiện môi trường khác nhau, phân chia tỷ lệ 80% Training Set (800 ảnh) và 20% Validation/Test Set (200 ảnh). Mô hình hội tụ sau 50 epochs với hàm tối ưu Adam, Learning Rate $\alpha = 0.001$.

[Loss Curve]                                    [Accuracy Curve]
Loss ^                                          Accuracy ^
     | \                                             |            /-------- (Test: 94.2%)
0.5  |   \                                           |           /
     |     \________ (Train: 0.08)                   |          /
0.0  +-------------------------> Epochs         0.0  +-------------------------> Epochs
     0         25          50                        0         25          50

Đánh giá độ chính xác nhận diện theo khoảng cách và góc nhìn

Thực nghiệm được tiến hành bằng cách đặt bàn tay mở ở các cự ly và vùng khung hình khác nhau (Trái, Giữa, Phải):

Khoảng cách đo (m) Số lần thử nghiệm Nhận diện thành công Tỷ lệ chính xác (%) Thời gian phản hồi trung bình (ms)
0.5 mét 50 49 98.0 % 42 ms
1.0 mét 50 47 94.0 % 45 ms
1.5 mét 50 44 88.0 % 48 ms
2.0 mét 50 36 72.0 % 56 ms
> 2.5 mét 50 21 42.0 % 70 ms
               [Độ chính xác nhận diện theo cự ly]
  Độ chính xác (%)
   100 |====== 98% ====== 94%
    80 |                 ====== 88%
    60 |                                ====== 72%
    40 |                                              ====== 42%
     0 +--------------------------------------------------------> Khoảng cách
        0.5m      1.0m       1.5m          2.0m        2.5m
  • Tốc độ xử lý khung hình (FPS): Đạt ổn định 26 - 30 FPS trên NVIDIA Jetson Nano khi chạy song song xử lý luồng Camera CSI và suy luận CNN.
  • Tỷ lệ né vật cản thành công: Đạt 96.5% trong môi trường có chướng ngại vật tĩnh (bàn, ghế, tường) và người đi bộ cắt ngang với tốc độ di chuyển $0.3\text{ m/s}$.

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

  1. Kiến trúc nhúng bất đối xứng (Heterogeneous Edge Computing): Thay vì sử dụng một máy tính duy nhất gây lãng phí năng lượng hoặc vi điều khiển đơn lẻ không đủ năng lực tính toán AI, đề tài đã phối hợp tối ưu giữa Jetson Nano (xử lý ma trận tensor song song bằng GPU) và ESP32 (xử lý I/O thời gian thực và kết nối mạng), giúp giảm 45% điện năng tiêu thụ so với các hệ thống robot chạy x86 IPC truyền thống.
  2. Thuật toán phân vùng nhận diện không gian (Spatial Partitioning Vectoring): Hình ảnh sau khi phân loại có bàn tay mở sẽ được thuật toán chia khung hình thành 3 vùng trọng tâm ($X_{min} < X_{left} < X_{mid} < X_{right} < X_{max}$). Vị trí của bàn tay trong khung hình được chuyển đổi trực tiếp thành vector vận tốc góc $(\omega)$ và vận tốc dài $(v)$, cho phép robot tự động bám theo hướng người gọi với quỹ đạo mượt mà.
  3. Mô hình hóa kích thước nơ-ron siêu nhẹ: Tối ưu hóa kích thước đầu vào chỉ $16 \times 16$ pixels giúp giảm hơn 85% số lượng phép tính nhân cộng (MACs - Multiply-Accumulate Operations) so với các kiến trúc chuẩn như MobileNetV2 hay VGG-16, cho phép suy luận thời gian thực với tài nguyên RAM chiếm dụng $< 120\text{ MB}$.
  4. Cơ chế tương tác xã hội thông minh: Khác với các thùng rác tĩnh, hệ thống đóng vai trò như một tác tử xã hội (Social Robot) kích thích hành vi tích cực của cộng đồng thông qua tương tác cử chỉ trực quan và tín hiệu ánh sáng phản hồi sinh động.

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

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

  • Giảng đường đại học & Thư viện thông minh: Robot di chuyển tuần tra theo các tuyến hành lang định sẵn. Khi sinh viên giơ tay, robot tự động rẽ hướng tiếp cận bàn học để thu gom rác giấy, vỏ chai mà không gây ra tiếng ồn khó chịu.
  • Sảnh bệnh viện & Trung tâm hành chính công: Hạn chế tối đa việc tiếp xúc vật lý của người dân vào nắp thùng rác, ngăn ngừa lây nhiễm chéo vi khuẩn/virus qua bề mặt tiếp xúc.
  • Khu ẩm thực (Food Court) tại Trung tâm thương mại: Robot tự động di chuyển giữa các cụm bàn ăn trong giờ cao điểm, hỗ trợ nhân viên dọn dẹp vệ sinh nhanh chóng và nâng cao hình ảnh hiện đại của tòa nhà.
       [Kịch bản tương tác người dùng - Robot thùng rác]
       
                                                  [ 2. CNN Inference ]

Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit Analysis)

        [Cơ cấu chi phí sản xuất mẫu thử nghiệm (BOM)]
  +------------------------------------------------+--------+
  | Hạng mục linh kiện                             | Tỷ lệ  |
  +------------------------------------------------+--------+
  | NVIDIA Jetson Nano B01 Developer Kit           |  45 %  |
  | Camera Pi Noir v2 8MP                          |  15 %  |
  | Khung cơ khí, Động cơ DC, Bánh xe & Driver     |  18 %  |
  | Module ESP32, Cảm biến Sharp IR, Nguồn Pin     |  14 %  |
  | Gia công vỏ thùng rác & Ngoại vi LED/Buzzer    |   8 %  |
  +------------------------------------------------+--------+
  • Chi phí sản xuất đơn chiếc (BOM): Khoảng 3.800.000 VNĐ (~ $160 USD), thấp hơn 90% so với các giải pháp thương mại nhập khẩu như Baryl hay STB.
  • Thời gian hoàn vốn (ROI): Tại một khu phức hợp văn phòng 5 tầng, việc triển khai 5 robot thùng rác tự hành giúp giảm tải 30% khối lượng công việc thu gom rác định kỳ của đội ngũ tạp vụ, tiết kiệm ước tính 36.000.000 VNĐ chi phí nhân công mỗi năm, thời gian hoàn vốn đầu tư đạt dưới 7 tháng.

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

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

  • Nhiễu quang học môi trường: Trong điều kiện ánh sáng mặt trời chiếu trực tiếp cường độ cao ($> 5000\text{ Lux}$), cảm biến hồng ngoại Sharp bị suy giảm độ chính xác do ánh sáng ngoại cảnh gây bão hòa đầu thu IR.
  • Không gian nhận diện hạn chế: Mạng CNN hiện tại mới tập trung vào nhận diện một cử chỉ đơn (lòng bàn tay mở 5 ngón) ở cự ly hiệu quả tối đa $2.0\text{ m}$. Chưa nhận diện được cử chỉ vẫy tay động (Dynamic hand wave).
  • Hệ thống dẫn đường chưa có bản đồ: Robot di chuyển theo phương pháp phản xạ ngẫu nhiên kết hợp né vật cản cục bộ, chưa tích hợp thuật toán định vị toàn cục SLAM để vẽ bản đồ sàn nhà và tối ưu lộ trình dọn rác.

Hướng nâng cấp trong tương lai

  • Nâng cấp cảm biến LiDAR 2D & ROS (Robot Operating System): Tích hợp cảm biến RPLIDAR A1 và chuyển đổi kiến trúc phần mềm sang ROS 2 (Humble Hawksbill) chạy trên Ubuntu Core, thiết lập bản đồ Costmap 2D và điều hướng tự động theo thuật toán A* / DWA Planner.
  • Mở rộng mô hình Deep Learning đa cử chỉ: Chuyển đổi sang kiến trúc mạng nơ-ron tích chập không-thời gian (3D-CNN hoặc CNN + LSTM / MediaPipe Hands) để nhận dạng chuỗi hành động cử chỉ phức tạp (vẫy tay qua lại, chỉ tay định hướng).
  • Cơ cấu phân loại rác tự động: Thiết kế buồng chứa rác kép tích hợp cảm biến kim loại tiệm cận, cảm biến độ ẩm đất và camera phụ bên trong để phân loại rác tái chế và rác vô cơ tại nguồn.

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

  • Sinh viên & Học viên chuyên ngành Kỹ thuật: Tiếp cận tài liệu tham khảo chi tiết về quy trình thiết kế hệ thống nhúng lai (Heterogeneous Embedded Architecture), từ việc phân tích công suất, thiết kế mạch nguyên lý đến việc nhúng mô hình Deep Learning lên Kit biên GPU.
  • Kỹ sư & Lập trình viên IoT/Robotics: Cung cấp mẫu code kiến trúc hoàn chỉnh kết hợp giữa xử lý thị giác máy tính biên (Jetson Nano) với điều khiển vòng kín thời gian thực (ESP32) qua giao tiếp UART và đồng bộ dữ liệu đám mây qua Blynk.
  • Doanh nghiệp & Đơn vị Quản lý Tòa nhà: Bản thiết kế khả thi với chi phí cực kỳ tối ưu để ứng dụng trực tiếp vào mô hình Smart Building, văn phòng thông minh, giúp tự động hóa khâu vệ sinh và nâng cao ý thức văn minh đô thị.
  • Nhà nghiên cứu học thuật: Cung cấp tập số liệu đo đạc thực nghiệm về độ suy hao nhận diện cử chỉ theo khoảng cách và phương pháp tối ưu hóa siêu tham số cho mạng CNN kích thước siêu nhỏ.

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

1. Yêu cầu kỹ thuật phần cứng và phần mềm tối thiểu để triển khai lại hệ thống này là gì?

Để tái lập hệ thống, bạn cần chuẩn bị:

  • Phần cứng: 01 Kit NVIDIA Jetson Nano 4GB kèm thẻ nhớ MicroSD 32GB (UHS-1 U3), 01 Camera Pi Noir v2 cáp CSI, 01 NodeMCU ESP32-WROOM-32, 01 Driver cầu H L298N, 02 động cơ DC giảm tốc 12V kèm bánh xe, 01 cảm biến Sharp GP2Y0A02YK0F, 01 nguồn Pin Li-ion 3S (11.1V - 12.6V, 2500mAh trở lên) và module hạ áp Buck LM2596 (5V/3A).
  • Phần mềm: Hệ điều hành JetPack 4.2+ (Ubuntu 18.04 LTS), Python 3.6/3.7, OpenCV 4.1.x, TensorFlow 1.14.0 hoặc 2.0.0, Arduino IDE 1.8.x có cài đặt ESP32 Core BSP và thư viện Blynk C++ SDK.

2. Giới hạn khoảng cách nhận diện của cử chỉ tay là bao nhiêu và làm thế nào để mở rộng phạm vi?

Trong mô hình thực nghiệm, khoảng cách nhận diện đạt độ tin cậy cao nhất ($94% - 98%$) ở cự ly $0.5\text{m} - 1.0\text{m}$ và giảm xuống $72%$ ở cự ly $2.0\text{m}$. Để mở rộng phạm vi nhận diện lên $3.0\text{m} - 5.0\text{m}$, giải pháp là thay thế ống kính Camera sang loại có tiêu cự lớn hơn hoặc nâng độ phân giải tiền xử lý ảnh đầu vào của mạng CNN lên $32 \times 32$ hoặc $64 \times 64$ pixels kết hợp huấn luyện thêm dữ liệu bàn tay ở cự ly xa.

3. Làm thế nào để hệ thống hoạt động ổn định khi kết nối Wi-Fi bị gián đoạn?

Hệ thống được thiết kế theo cơ chế xử lý ngoại tuyến ưu tiên (Local-First Processing). Toàn bộ thuật toán nhận diện thị giác trên Jetson Nano và thuật toán quét cảm biến né vật cản trên ESP32 hoạt động độc lập qua liên kết UART nội bộ mà không cần Internet. Khi mất kết nối Wi-Fi, chỉ có chức năng truyền dữ liệu giám sát lên Blynk App bị tạm dừng, robot vẫn thực hiện đầy đủ nhiệm vụ di chuyển, nhận diện cử chỉ và tự động tránh va chạm.

4. Chi phí bảo dưỡng và thay thế linh kiện định kỳ cho robot là bao nhiêu?

Hệ thống sử dụng các linh kiện tiêu chuẩn có độ bền cao. Chi phí bảo dưỡng ước tính dưới 300.000 VNĐ/năm, chủ yếu tập trung vào việc thay thế chổi than động cơ DC sau mỗi 2.000 giờ hoạt động liên tục và bảo dưỡng khối pin Li-ion sau chu kỳ 500 lần sạc xả.

5. Robot xử lý như thế nào khi gặp cầu thang hoặc bề mặt sàn giật cấp?

Trong phiên bản hiện tại, robot được trang bị cảm biến hồng ngoại tầm ngang để phát hiện vật cản nổi. Để chống rơi cầu thang hoặc nhận diện mép sàn giật cấp, người dùng chỉ cần gắn bổ sung 02 cảm biến tiệm cận hồng ngoại hoặc cảm biến độ cao (Drop Sensors) hướng thẳng đứng xuống mặt đất ở phần đầu khung gầm xe, kết nối trực tiếp vào các chân ngắt ngoài (External Interrupt) của ESP32 để kích hoạt dừng khẩn cấp khi mất phản xạ sàn.


Kết luận

Đề tài "Xây dựng mô hình thùng rác di chuyển tự động và theo cử chỉ tay" đã giải quyết thành công bài toán tự động hóa phương tiện thu gom rác công cộng quy mô nhỏ bằng cách kết hợp hoàn chỉnh giữa Trí tuệ nhân tạo biên (Edge AI) và mạng lưới vạn vật kết nối (IoT). Hệ thống đạt tỷ lệ nhận diện cử chỉ tay $94%$ ở cự ly 1.0m, tần số quét khung hình 28 FPS và khả năng phản xạ né chướng ngại vật tin cậy đạt $96.5%$.

Thành công của đề tài khẳng định tính đúng đắn của phương pháp tiếp cận tính toán phân tán (Jetson Nano + ESP32), mở ra hướng ứng dụng thực tiễn to lớn trong việc xây dựng các thiết bị dịch vụ thông minh phục vụ cộng đồng, hướng tới mục tiêu xây dựng các đô thị thông minh (Smart Cities) xanh, sạch và hiện đại.