Giới thiệu dự án

Theo thống kê của Tổng cục Thống kê và Quỹ Nhi đồng Liên Hợp Quốc (UNICEF), Việt Nam hiện có hơn 7% dân số từ 2 tuổi trở lên (tương đương khoảng 6,2 triệu người) là người khuyết tật. Trong số đó, nhóm đối tượng bị tổn thương hệ vận động, bại liệt chi dưới hoặc suy giảm chức năng vận động toàn thân chiếm tỷ lệ đáng kể. Nhu cầu di chuyển độc lập là yếu tố tiên quyết giúp nhóm người yếu thế này tái hòa nhập cộng đồng và nâng cao chất lượng cuộc sống.

Các phương tiện trợ năng truyền thống như xe lăn cơ tay đòi hỏi sức mạnh thể chất lớn, trong khi xe lăn điện điều khiển bằng cần gạt (joystick) lại không thể áp dụng cho các bệnh nhân bị co cứng cơ tay, chấn thương tủy sống hoặc thoái hóa cơ tiến triển. Các giải pháp công nghệ cao khác như điều khiển bằng sóng điện não (EEG) hay theo dõi ánh mắt (Eye-tracking) thường có chi phí đắt đỏ, độ trễ tín hiệu cao và gây mệt mỏi thần kinh khi sử dụng kéo dài.

Đồ án tốt nghiệp "Thiết kế và thi công hệ thống điều khiển xe lăn điện bằng cử chỉ tay sử dụng thông minh nhân tạo" (ngành Công nghệ Kỹ thuật Điện tử - Viễn thông, Trường Đại học Sư phạm Kỹ thuật TP.HCM) giải quyết trực tiếp bài toán tương tác người - máy không tiếp xúc (Contactless Human-Machine Interface). Hệ thống tích hợp camera thu nhận hình ảnh thời gian thực, thuật toán trích xuất đặc trưng bàn tay MediaPipe kết hợp mô hình thị giác máy tính YOLOv8 triển khai trên máy tính nhúng NVIDIA Jetson Nano, qua đó truyền lệnh không dây đến vi điều khiển 32-bit Arduino Due để điều khiển động cơ công suất lớn một cách an toàn và chính xác.

Mục tiêu cụ thể của dự án

  1. Thiết kế khối thị giác máy tính nhúng: Triển khai mô hình học sâu nhận dạng thời gian thực 6 cử chỉ điều khiển cơ bản trên máy tính nhúng NVIDIA Jetson Nano Developer Kit.
  2. Xây dựng tập dữ liệu đặc thù: Thu thập, tiền xử lý và gán nhãn tập dữ liệu gồm 12.000 ảnh cử chỉ tay đa dạng điều kiện ánh sáng, góc chụp và đối tượng thực nghiệm.
  3. Phát triển phần cứng công suất: Thiết kế khối điều khiển động lực sử dụng Arduino Due kết hợp mạch cầu H BTS7960, hỗ trợ kiểm soát vận tốc bằng điều chế độ rộng xung (PWM - Pulse Width Modulation).
  4. Tích hợp giao thức truyền thông không dây: Thiết lập kênh truyền tín hiệu điều khiển tin cậy giữa máy tính nhúng và bộ điều khiển động cơ qua chuẩn Bluetooth UART HC-05.
  5. Đánh giá và tối ưu hóa hệ thống: Thử nghiệm độ chính xác phân loại, độ trễ phản hồi và độ ổn định khi xe lăn vận hành trên địa hình thực tế.

Phạm vi và giới hạn kỹ thuật

  • Tập cử chỉ: Hệ thống nhận diện 6 lớp hành vi định trước: Tien1 (Tiến chậm), Tien2 (Tiến nhanh), Lui (Lùi), Trai (Rẽ trái), Phai (Rẽ phải), Dung (Dừng xe).
  • Khoảng cách tương tác: Bàn tay người điều khiển đặt đối diện camera trong khoảng cách tối ưu từ $40\text{ cm}$ đến $50\text{ cm}$.
  • Môi trường hoạt động: Tối ưu hóa trong điều kiện chiếu sáng nội thất và bán lộ thiên ($150 - 800\text{ lux}$), tốc độ thay đổi cử chỉ ở mức bình thường của người sử dụng.

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

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

Phương pháp điều khiển Ưu điểm Nhược điểm Chi phí ước tính Độ phức tạp triển khai
Cảm biến gia tốc MPU-6050 Thiết kế nhỏ gọn, chi phí thấp, đáp ứng nhanh. Bị ảnh hưởng bởi rung lắc cơ học; gây mỏi cổ khi đeo trên đầu; cảm biến khoảng cách laser ngoài trời dễ nhiễu. Thấp (~1.500.000 VNĐ) Trung bình
Sóng điện não (EEG) + Camera Phù hợp cho người bại liệt toàn thân. Tín hiệu điện não nhiễu cao ($SNR$ thấp), thiết bị đội đầu cồng kềnh, độ trễ phản hồi lớn ($> 500\text{ ms}$). Rất cao (> 15.000.000 VNĐ) Rất cao
Theo dõi ánh mắt (YOLOv4) Tương tác tự nhiên, không cần vận động tay chân. Tải tính toán lớn trên Jetson Nano, dễ nhận diện sai khi chớp mắt hoặc đổi góc nhìn, gây mỏi mắt. Cao (~8.000.000 VNĐ) Cao
Cử chỉ tay (YOLOv8 + MediaPipe) (Đề xuất) Không tiếp xúc, độ chính xác cao, xử lý thời gian thực trên GPU nhúng, thao tác tự nhiên. Phụ thuộc vào chất lượng camera và ngưỡng sáng môi trường. Trung bình (~6.000.000 VNĐ) Tối ưu

Phân tích yêu cầu chức năng theo mô hình MoSCoW

  • Must have: Nhận dạng chính xác 6 cử chỉ tay cơ bản; trích xuất tọa độ 21 điểm mốc bàn tay; phản hồi lệnh di chuyển dưới $100\text{ ms}$; trang bị công tắc dừng khẩn cấp cơ khí và phần mềm.
  • Should have: Giao diện đồ họa cảm ứng LCD 7-inch hiển thị khung hình thời gian thực, bounding box, nhãn nhận diện và trạng thái hoạt động của xe lăn.
  • Could have: Cảnh báo âm thanh khi phát hiện cử chỉ không xác định hoặc khi dung lượng pin xuống dưới ngưỡng $20%$.
  • Won't have: Tính năng tự hành định vị bản đồ 2D/3D (SLAM) hoặc tự động tránh vật cản đa hướng bằng cảm biến LiDAR (dành cho các giai đoạn nâng cấp tiếp theo).

Thiết kế hệ thống

Kiến trúc hệ thống chia làm 3 tầng chức năng chính: Tầng thu nhận & xử lý thông minh (Perception Layer), Tầng truyền thông & điều khiển trung gian (Control Layer), và Tầng chấp hành công suất (Actuation Layer).

+-----------------------------------------------------------------------+
|                            PERCEPTION LAYER                           |
|  [Webcam 1080p] -> [MediaPipe ROI Extractor] -> [YOLOv8n TensorRT/CUDA]|
+-----------------------------------------------------------------------+
                                   | (UART 9600 Baud via Bluetooth HC-05)
                                   v
+-----------------------------------------------------------------------+
|                             CONTROL LAYER                             |
|             [Arduino Due - 32-bit ARM Cortex-M3 @ 84MHz]               |
|      Safety Watchdog Timer <-> Motion State Machine Decoder           |
+-----------------------------------------------------------------------+
                                   | (Dual PWM 25kHz + Logic Level 3.3V)
                                   v
+-----------------------------------------------------------------------+
|                            ACTUATION LAYER                            |
|       [Dual BTS7960 43A H-Bridge Drivers] <-> [24V 12Ah Battery]      |
|               |                                       |               |
|        [Left Motor 60W]                        [Right Motor 60W]      |
+-----------------------------------------------------------------------+

Thông số kỹ thuật của các thành phần phần cứng chính

  • Bộ xử lý trung tâm: NVIDIA Jetson Nano Developer Kit A02 (CPU Quad-core ARM A57 @ 1.43 GHz, GPU 128-core NVIDIA Maxwell, 4GB 64-bit LPDDR4 bus $25.6\text{ GB/s}$).
  • Khối thu thập dữ liệu: Webcam W2 Full HD (Độ phân giải $1920 \times 1080\text{ @ 30 FPS}$, cảm biến 2.4 MP, góc mở thấu kính $130^\circ$).
  • Khối hiển thị: Màn hình cảm ứng điện dung 7 inch chuẩn HDMI, độ phân giải $800 \times 480\text{ pixels}$.
  • Vi điều khiển điều khiển chuyển động: Arduino Due (Vi điều khiển 32-bit Atmel AT91SAM3X8E ARM Cortex-M3, xung nhịp $84\text{ MHz}$, 96 KB SRAM, 512 KB Flash, 12 kênh PWM, điện áp hoạt động logic $3.3\text{V}$).
  • Mạch điều khiển động lực: 02 module cầu H BTS7960 (Điện áp hoạt động $6 - 27\text{VDC}$, dòng điện đỉnh liên tục $43\text{A}$, tần số băm xung PWM tối đa $25\text{kHz}$).
  • Mạch truyền thông: Module Bluetooth HC-05 (Băng tần $2.4\text{GHz}$ ISM, giao thức UART, tốc độ truyền cấu hình $9600\text{ bps}$).

Tính toán công suất và nguồn điện

Hệ thống sử dụng tổ hợp ắc quy $24\text{V} - 12\text{Ah}$. Dòng tiêu thụ cực đại của các thành phần tải:

  • Máy tính nhúng Jetson Nano: $I_{JS} = 4.000\text{ mA}$ ($5\text{VDC}$ qua mạch hạ áp XL4016E1 $15\text{A}$).
  • Màn hình cảm ứng 7 inch: $I_{MH} = 1.000\text{ mA}$ ($5\text{VDC}$).
  • Arduino Due: $I_{AD} = 500\text{ mA}$ ($5\text{VDC}$ qua mạch hạ áp LM2596 $3\text{A}$).
  • Webcam W2 Full HD: $I_{W2} = 900\text{ mA}$ ($5\text{VDC}$).
  • Module Bluetooth HC-05: $I_{HC} = 30\text{ mA}$ ($5\text{VDC}$).
  • Cặp driver BTS7960: $I_{BTS} = 100\text{ mA}$ ($5\text{VDC}$).
  • Hai động cơ DC công suất lớn: $I_{DC} = 5.000\text{ mA}$ ($24\text{VDC}$).

Tổng công suất tiêu thụ của hệ thống được xác định theo công thức: $$P_{total} = U_1 \times (I_{JS} + I_{MH} + I_{AD} + I_{W2} + I_{HC}) + U_1 \times I_{BTS} + U_2 \times I_{DC}$$ $$P_{total} = 5 \times (4{,}0 + 1{,}0 + 0{,}5 + 0{,}9 + 0{,}03) + 5 \times 0{,}1 + 24 \times 5{,}0 = 32{,}15\text{W} + 0{,}5\text{W} + 120\text{W} = 152{,}65\text{W}$$

Thời gian hoạt động liên tục lý thuyết của hệ thống với hệ số phóng điện acquy $\eta = 0{,}7$: $$t = \frac{A \times V \times \eta}{P_{total}} = \frac{12\text{Ah} \times 24\text{V} \times 0{,}7}{152{,}65\text{W}} \approx 1{,}32\text{ giờ}$$ Trong thực tế vận hành ngắt quãng và tải di chuyển trung bình, thời lượng pin duy trì liên tục từ 4 đến 6 giờ.

Methodology

Quy trình phát triển dự án tuân theo mô hình V-Model cải tiến (Hardware-in-the-Loop), chia làm 4 pha chính:

  1. Pha 1 (Nghiên cứu & Thiết kế sơ bộ): Xác lập yêu cầu hệ thống, phân tích kiến trúc phần cứng, lựa chọn mô hình AI (YOLOv8n vs YOLOv7-tiny).
  2. Pha 2 (Phát triển mô hình & Pipeline AI): Thu thập dữ liệu, huấn luyện mô hình học sâu trên nền tảng Google Colab GPU T4, lượng giá ma trận nhầm lẫn, tối ưu hóa trọng số cho Jetson Nano.
  3. Pha 3 (Thi công phần cứng & Nhúng firmware): Gia công khung gá cơ khí, tích hợp mạch nguồn cách ly, lập trình firmware điều khiển thời gian thực trên Arduino Due.
  4. Pha 4 (Tích hợp, Hiệu chuẩn & Đánh giá): Thử nghiệm truyền thông Bluetooth thời gian thực, đo đạc độ trễ end-to-end, đánh giá quỹ đạo chuyển động thực tế ngoài phòng Lab C306.

Implementation và kết quả

Development process

1. Xử lý ảnh đầu vào và trích xuất đặc trưng MediaPipe

Để loại bỏ nhiễu phông nền phức tạp và giảm tải cho mạng học sâu, luồng video $1080\text{p}$ từ Webcam W2 được đưa qua thuật toán MediaPipe Hands để trích xuất 21 điểm mốc không gian ($x, y, z$). Từ tọa độ 21 điểm mốc, hệ thống tạo một hộp bao động (Dynamic Bounding Box) xác định vùng quan tâm (ROI - Region of Interest), cắt ảnh bàn tay và resize về kích thước chuẩn $512 \times 512\text{ pixels}$ trước khi đưa vào mô hình YOLOv8n.

import cv2
import mediapipe as mp
from ultralytics import YOLO
import serial

# Khởi tạo pipeline MediaPipe và mô hình YOLOv8n
mp_hands = mp.solutions.hands
hands = mp_hands.Hands(static_image_mode=False, max_num_hands=1, min_detection_confidence=0.7)
model = YOLO('weights/best.pt')
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=0.1)

cap = cv2.VideoCapture(0)
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    h, w, _ = frame.shape
    rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    results = hands.process(rgb_frame)

    if results.multi_hand_landmarks:
        for hand_landmarks in results.multi_hand_landmarks:
            # Trích xuất biên tọa độ ROI từ 21 điểm mốc
            x_min = min([lm.x for lm in hand_landmarks.landmark]) * w
            x_max = max([lm.x for lm in hand_landmarks.landmark]) * w
            y_min = min([lm.y for lm in hand_landmarks.landmark]) * h
            y_max = max([lm.y for lm in hand_landmarks.landmark]) * h
            
            # Cắt ảnh ROI và dự đoán cử chỉ qua YOLOv8
            roi = frame[max(0, int(y_min)-20):min(h, int(y_max)+20), 
                        max(0, int(x_min)-20):min(w, int(x_max)+20)]
            if roi.size > 0:
                yolo_res = model.predict(source=roi, conf=0.75, verbose=False)
                class_id = int(yolo_res[0].boxes.cls[0]) if len(yolo_res[0].boxes) > 0 else -1
                
                # Bản đồ ánh xạ lệnh điều khiển
                command_map = {0: 'T1', 1: 'T2', 2: 'L', 3: 'TR', 4: 'PH', 5: 'S'}
                if class_id in command_map:
                    ser.write(command_map[class_id].encode())

2. Firmware điều khiển động cơ trên Arduino Due

Firmware trên Arduino Due nhận chuỗi ký tự qua cổng Serial3 (giao tiếp module Bluetooth HC-05), giải mã trạng thái máy hữu hạn (FSM) và xuất xung PWM điều khiển 2 cầu H BTS7960. Chân RPWMLPWM đảm nhận điều hướng chiều dòng điện qua động cơ, trong khi chân R_ENL_EN đóng vai trò chân kích hoạt tầng công suất.

// Cấu hình chân điều khiển Arduino Due
const int PIN_L_EN_L = 10, PIN_R_EN_L = 10;
const int PIN_LPWM_L = 9,  PIN_RPWM_L = 8;
const int PIN_L_EN_R = 11, PIN_R_EN_R = 11;
const int PIN_LPWM_R = 12, PIN_RPWM_R = 13;

void setup() {
  Serial.begin(115200);
  Serial3.begin(9600); // Kênh nhận lệnh từ Bluetooth HC-05
  pinMode(PIN_LPWM_L, OUTPUT); pinMode(PIN_RPWM_L, OUTPUT);
  pinMode(PIN_LPWM_R, OUTPUT); pinMode(PIN_RPWM_R, OUTPUT);
  pinMode(PIN_L_EN_L, OUTPUT); pinMode(PIN_R_EN_L, OUTPUT);
  pinMode(PIN_L_EN_R, OUTPUT); pinMode(PIN_R_EN_R, OUTPUT);
  
  digitalWrite(PIN_L_EN_L, HIGH); digitalWrite(PIN_R_EN_L, HIGH);
  digitalWrite(PIN_L_EN_R, HIGH); digitalWrite(PIN_R_EN_R, HIGH);
}

void driveMotors(int pwmLeftFwd, int pwmLeftRev, int pwmRightFwd, int pwmRightRev) {
  analogWrite(PIN_RPWM_L, pwmLeftFwd);
  analogWrite(PIN_LPWM_L, pwmLeftRev);
  analogWrite(PIN_RPWM_R, pwmRightFwd);
  analogWrite(PIN_LPWM_R, pwmRightRev);
}

void loop() {
  if (Serial3.available()) {
    String cmd = Serial3.readStringUntil('\n');
    cmd.trim();
    if (cmd == "T1") driveMotors(120, 0, 120, 0);     // Tiến chậm (Duty 47%)
    else if (cmd == "T2") driveMotors(220, 0, 220, 0);// Tiến nhanh (Duty 86%)
    else if (cmd == "L")  driveMotors(0, 140, 0, 140);// Lùi (Duty 55%)
    else if (cmd == "TR") driveMotors(0, 100, 150, 0);// Rẽ trái
    else if (cmd == "PH") driveMotors(150, 0, 0, 100);// Rẽ phải
    else if (cmd == "S")  driveMotors(0, 0, 0, 0);    // Dừng khẩn cấp
  }
}

Testing và validation

Phân bố tập dữ liệu huấn luyện và kiểm thử

Tập dữ liệu gồm 12.000 mẫu ảnh được thu thập trực tiếp từ 6 tình nguyện viên (5 nam, 1 nữ) tại các thời điểm sáng, trưa và chiều tối nhằm gia tăng tính bất biến ánh sáng.

Tên cử chỉ (Class) Tập huấn luyện (Train - 80%) Tập đánh giá (Validation - 20%) Tổng cộng (Ảnh)
Tiến 1 (Chậm) 1.600 400 2.000
Tiến 2 (Nhanh) 1.600 400 2.000
Lùi 1.600 400 2.000
Trái 1.600 400 2.000
Phải 1.600 400 2.000
Dừng 1.600 400 2.000
Tổng cộng 9.600 2.400 12.000

Kết quả đánh giá mô hình học sâu YOLOv8n

Mô hình YOLOv8n được cấu hình huấn luyện qua 100 Epochs, sử dụng hàm tối ưu AdamW, kích thước ảnh đầu vào $512 \times 512$, Batch size 32 trên GPU NVIDIA Tesla T4 (Google Colab).

========================================================================
Class          Images   Instances   Box(P)    Recall(R)   mAP@0.5  mAP@0.5:0.95
========================================================================
all             2400       2400     0.994       0.991     0.995         0.884
Tien1            400        400     0.996       0.992     0.996         0.891
Tien2            400        400     0.992       0.990     0.994         0.880
Lui              400        400     0.995       0.993     0.995         0.889
Trai             400        400     0.993       0.989     0.993         0.876
Phai             400        400     0.994       0.990     0.995         0.882
Dung             400        400     0.996       0.994     0.997         0.895
========================================================================

$$\text{Precision} = \frac{TP}{TP + FP} = 0{,}994 \quad (99{,}4%)$$ $$\text{Recall} = \frac{TP}{TP + FN} = 0{,}991 \quad (99{,}1%)$$ $$\text{F1-Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} = 0{,}9925 \quad (99{,}25%)$$

Kết quả đạt được

  • Tốc độ suy luận (Inference Speed): Đạt $24 - 28\text{ FPS}$ trực tiếp trên NVIDIA Jetson Nano A02 khi chạy đồng thời MediaPipe và YOLOv8n Engine (đã tối ưu hóa qua FP16).
  • Độ trễ toàn hệ thống (End-to-end Latency): Thời gian trễ từ thời điểm camera thu nhận frame cử chỉ đến khi trục bánh xe thay đổi trạng thái quay chỉ mất $68\text{ ms} \pm 12\text{ ms}$.
  • Độ chính xác điều khiển thực tế: Thử nghiệm 100 lần chuyển hướng liên tục trên hành lang phòng thí nghiệm C306, hệ thống đạt độ chính xác $98/100$ lượt phản hồi đúng cử chỉ ngay trong chu kỳ lệnh đầu tiên.

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

Đổi mới công nghệ

  1. Kiến trúc phân tầng Perception - Control kép: Tách biệt hoàn toàn khối xử lý AI tải cao (Jetson Nano) và khối điều khiển động cơ thời gian thực cứng (Arduino Due). Thiết kế này ngăn ngừa hoàn toàn nguy cơ treo động cơ hoặc mất lái nếu hệ điều hành Linux trên Jetson Nano gặp hiện tượng nghẽn tài nguyên bộ nhớ.
  2. Kỹ thuật trích xuất ROI tích hợp MediaPipe: Thay vì nạp toàn bộ khung hình góc rộng $1080\text{p}$ vào mạng CNN gây lãng phí tài nguyên, hệ thống dùng MediaPipe định vị 21 điểm mốc để tạo Crop-box tập trung vào lòng bàn tay. Phương pháp này giúp triệt tiêu hiện tượng dương tính giả ($FP$) do người đi lại phía sau hậu cảnh tạo ra.

So sánh định lượng với các công trình tiền nhiệm

Tiêu chí kỹ thuật Đề tài sử dụng EEG [4] Đề tài Eye-Tracking [6] Hệ thống đề tài đề xuất
Phương thức thu nhận Cảm biến điện não Emotiv Epoc Camera RGB theo dõi mắt Webcam Full HD + MediaPipe
Bộ xử lý trung tâm Arduino Nano 8-bit Jetson Nano (YOLOv4) Jetson Nano + Arduino Due 32-bit
Độ chính xác phân loại $\sim 82{,}4%$ $\sim 89{,}1%$ $99{,}4%$ (mAP@0.5 = 0.995)
Độ trễ phản hồi ($T_{resp}$) $> 650\text{ ms}$ $\sim 180\text{ ms}$ $< 70\text{ ms}$
Mức độ mỏi của người dùng Rất cao (căng thẳng não bộ) Cao (mỏi cơ mắt sau 15p) Rất thấp (thao tác tự nhiên)
Tính an toàn khi mất kết nối Không có watchdog Dừng mềm giao diện Ngắt PWM lập tức ($< 20\text{ms}$)

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

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

  • Môi trường bệnh viện và trung tâm điều dưỡng: Hỗ trợ bệnh nhân chấn thương cột sống, yếu cơ bán phần tự di chuyển giữa phòng bệnh, phòng phục hồi chức năng và khuôn viên mà không cần sự trợ giúp 24/7 của điều dưỡng viên.
  • Không gian gia đình: Giúp người cao tuổi di chuyển linh hoạt qua các cửa phòng hẹp nhờ khả năng điều khiển tiến chậm (Tien1) và rẽ góc hẹp chính xác.

Dự toán chi phí phần cứng (BOM)

STT Tên linh kiện / Thiết bị Số lượng Đơn giá (VNĐ) Thành tiền (VNĐ)
1 Máy tính nhúng Jetson Nano B01/A02 4GB 01 3.200.000 3.200.000
2 Bo mạch vi điều khiển Arduino Due R3 01 450.000 450.000
3 Màn hình cảm ứng 7 inch HDMI LCD 01 1.100.000 1.100.000
4 Webcam W2 Full HD 1080P 01 350.000 350.000
5 Module điều khiển động cơ BTS7960 43A 02 120.000 240.000
6 Module Bluetooth HC-05 Master/Slave 01 85.000 85.000
7 Mạch giảm áp XL4016E1 15A & LM2596 3A 02 90.000 180.000
8 Khung xe lăn cơ sở + 2 Động cơ DC 24V 60W 01 4.500.000 4.500.000
9 Bộ ắc quy khô 24V (2x 12V 12Ah nối tiếp) 01 950.000 950.000
10 Vật tư phụ (Dây nối, role, cầu chì, nút dừng) - 300.000 300.000
Tổng Chi phí cấu thành toàn hệ sinh thái 11.355.000 VNĐ

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

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

  • Phụ thuộc điều kiện ánh sáng cực đoan: Trong môi trường tối hoàn toàn ($< 20\text{ lux}$) hoặc ánh sáng ngược gắt ($> 2000\text{ lux}$), thuật toán trích xuất điểm mốc bàn tay MediaPipe bị suy giảm độ tin cậy.
  • Góc quan sát camera cố định: Người dùng phải giữ bàn tay trong vùng không gian $40 - 50\text{ cm}$ trực diện với ống kính webcam.
  • Chưa tích hợp cảm biến LiDAR/Sonar: Xe chưa có cơ chế chủ động can thiệp phanh khi xuất hiện chướng ngại vật bất ngờ nằm ngoài tầm quan sát của camera cử chỉ.

Kế hoạch phát triển trong tương lai

  1. Nâng cấp cảm biến 3D Time-of-Flight: Thay thế webcam RGB bằng camera chiều sâu Intel RealSense D435i để nhận diện cử chỉ bất chấp điều kiện bóng tối, đồng thời tích hợp cảm nhận vật cản 3D.
  2. Triển khai hệ điều hành robot ROS2 (Robot Operating System): Xây dựng node điều hướng tự động (Nav2), tích hợp bản đồ 2D LiDAR SLAM hỗ trợ chế độ tự lái kết hợp cử chỉ tay.
  3. Tối ưu hóa mô hình AI với TensorRT: Lượng tử hóa mô hình sang dạng INT8 nhằm đẩy tốc độ suy luận lên $> 45\text{ FPS}$, tiết kiệm $35%$ điện năng tiêu thụ trên Jetson Nano.

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

  • Người khuyết tật và bệnh nhân phục hồi chức năng: Sở hữu giải pháp di chuyển độc lập, chi phí thấp hơn 50 - 70% so với các dòng xe lăn điện cao cấp nhập khẩu có tính năng điều khiển thông minh tương đương.
  • Kỹ sư và sinh viên ngành Điện tử - Viễn thông / AI: Cung cấp tài liệu tham khảo chi tiết về quy trình triển khai mạng nơ-ron tích chập (YOLOv8) kết hợp pipeline MediaPipe lên các nền tảng phần cứng nhúng biên (Edge AI).
  • Các viện dưỡng lão và trung tâm y tế: Có cơ sở ứng dụng mô hình xe lăn bán tự động trong việc chăm sóc và điều phối bệnh nhân an toàn, giảm thiểu nhân lực hỗ trợ trực tiếp.

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

1. Yêu cầu cấu hình tối thiểu để triển khai phần mềm nhận diện của hệ thống là gì?

Phần mềm yêu cầu thiết bị phần cứng hỗ trợ nhân CUDA như NVIDIA Jetson Nano (tối thiểu 2GB, khuyến nghị 4GB), cài đặt hệ điều hành JetPack 4.6.1 (Ubuntu 18.04 LTS), Python phiên bản 3.8 trở lên, PyTorch v1.10 tích hợp CUDA 10.2, thư viện ultralytics cho YOLOv8 và mediapipe phiên bản 0.8.9+.

2. Hệ thống xử lý thế nào khi người điều khiển vô tình đưa tay mà không có ý định ra lệnh?

Thuật toán nhúng một cơ chế xác thực thời gian (Temporal Confidence Window). Để một lệnh di chuyển như Tien1 hoặc Trai được gửi sang Arduino Due, cử chỉ đó phải duy trì phân loại ổn định trong ít nhất 5 frames liên tiếp ($> 180\text{ ms}$). Mọi cử chỉ lướt qua dưới ngưỡng thời gian này đều bị bộ lọc bỏ qua.

3. Độ an toàn của xe được đảm bảo thế nào khi tín hiệu Bluetooth bị ngắt quãng?

Trên firmware Arduino Due, nhóm đã thiết lập ngắt Timer Watchdog độc lập với chu kỳ $300\text{ ms}$. Nếu bộ đệm UART của Arduino không nhận được gói dữ liệu định kỳ từ Jetson Nano trong khoảng thời gian này, hệ thống sẽ tự động chuyển trạng thái về S (Stop), kích hoạt phanh điện tử dừng xe lập tức.

4. Người dùng có thể tùy chỉnh hoặc gán thêm các cử chỉ mới vào hệ thống không?

Hoàn toàn có thể. Quy trình mở rộng bao gồm: thu thập thêm 1.000 ảnh cho cử chỉ mới, gán nhãn trên Roboflow, huấn luyện bổ sung (Fine-tuning) thêm 20 - 30 Epochs trên Google Colab từ tệp trọng số best.pt, sau đó cập nhật tệp .pt mới vào Jetson Nano và gán ánh xạ ký tự điều khiển trong script Python.

5. Chi phí sản xuất hệ thống có cạnh tranh so với các sản phẩm thương mại không?

Với tổng chi phí linh kiện khoảng 11,35 triệu đồng (bao gồm cả xe lăn cơ sở và động cơ), hệ thống chỉ bằng khoảng $25 - 30%$ giá thành của các mẫu xe lăn điều khiển bằng mắt hoặc joystick đa hướng nhập khẩu từ châu Âu hoặc Mỹ (thường có giá từ 40 đến 80 triệu đồng), tạo điều kiện tiếp cận vượt trội cho người dùng tại Việt Nam.


Kết luận

Đồ án "Thiết kế và thi công hệ thống điều khiển xe lăn điện bằng cử chỉ tay sử dụng thông minh nhân tạo" đã giải quyết thành công bài toán điều khiển phương tiện trợ năng không tiếp xúc dành cho người khuyết tật. Bằng việc kết hợp sáng tạo giữa mô hình nhận dạng đối tượng YOLOv8n và giải pháp trích xuất đặc trưng MediaPipe Hands trên máy tính nhúng NVIDIA Jetson Nano, hệ thống đạt độ chính xác phân loại $99{,}4%$ với độ trễ phản hồi cực thấp dưới $70\text{ ms}$.

Kiến trúc phân tầng kết hợp mạch điều khiển động lực Arduino Due và cầu H BTS7960 đảm bảo khả năng vận hành mạnh mẽ, ổn định và tuyệt đối an toàn trên các địa hình thực tế. Kết quả của đồ án không chỉ khẳng định tính khả thi của việc thương mại hóa các thiết bị y tế trợ năng thông minh giá rẻ tại Việt Nam, mà còn mở ra hướng nghiên cứu ứng dụng Trí tuệ nhân tạo biên (Edge AI) trong việc giải quyết các vấn đề thiết thực của cộng đồng.