Giới thiệu dự án

Trong kỷ nguyên tự động hóa và công nghiệp 4.0, robot phục vụ và các phương tiện tự hành AGV (Automated Guided Vehicle) đang trở thành xu hướng tất yếu nhằm giải phóng sức lao động của con người. Trong các hoạt động bảo trì cơ khí, sửa chữa điện máy tại các nhà xưởng, trạm dịch vụ ô tô hay trong gia đình, kỹ thuật viên thường xuyên phải di chuyển qua lại để lấy dụng cụ. Việc mang vác thùng đồ nghề cồng kềnh, nặng nề không chỉ gây suy giảm thể lực mà còn làm gián đoạn nhịp độ làm việc, tiêu tốn từ 20% đến 30% thời gian thao tác vô ích.

Đồ án tốt nghiệp "Hộp Dụng Cụ Di Động" thuộc ngành Công nghệ Kỹ thuật Máy tính (Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) giải quyết triệt để bài toán này bằng cách phát triển một robot trợ lý thông minh có khả năng tự nhận dạng, định hướng và bám sát người dùng theo thời gian thực, đồng thời vận chuyển dụng cụ sửa chữa theo yêu cầu.

flowchart LR
    A["Người dùng (Đeo vòng nhận diện)"] -->|"Hình ảnh (CSI)"| B["Camera Pi V1.3"]
    A -->|"Khoảng cách"| C["3x Cảm biến HY-SRF05"]
    B --> D["Raspberry Pi 3 Model B+<br/>(OpenCV + CamShift)"]
    C --> D
    D -->|"PWM / GPIO"| E["Mạch cầu H L298"]
    E -->|"Dẫn động 4 động cơ"| F["Khung xe 4WD"]
    F -.->|"Tự động bám theo"| A

Mục tiêu nghiên cứu cụ thể

  1. Thiết kế phần cứng: Chế tạo khung xe robot 4 bánh (4WD) tích hợp bộ điều khiển trung tâm Raspberry Pi 3 Model B+, khối công suất mạch cầu H L298 và hệ thống nguồn pin kép độc lập.
  2. Xử lý ảnh thị giác máy tính: Ứng dụng thư viện mã nguồn mở OpenCV, chuyển đổi không gian màu HSV và thuật toán CamShift (Continuously Adaptive Mean Shift) để phát hiện, theo dõi vị trí vòng đeo nhận diện trên chân người dùng.
  3. Đo khoảng cách và chống va chạm: Tích hợp mảng 3 cảm biến siêu âm HY-SRF05 quét 3 hướng (trái, giữa, phải) nhằm duy trì khoảng cách an toàn (dưới 50 cm) và tự động dừng khi gặp chướng ngại vật.
  4. Điều khiển bám mục tiêu liên tục: Xây dựng giải thuật điều khiển chuyển động (chạy thẳng, rẽ trái, rẽ phải, quét dò tìm kiếm) với khả năng tự phục hồi khi mất dấu đối tượng.

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

  • Môi trường hoạt động: Mặt sàn bằng phẳng trong nhà xưởng, phòng thí nghiệm, ít dốc và không có vật cản hấp thụ sóng siêu âm bất thường.
  • Đối tượng bám sát: Vòng nhận diện mang màu sắc đặc trưng đeo ở cổ chân người dùng trong cự ly nhận diện hiệu quả tối ưu từ 10 cm đến 50 cm.
  • Phần cứng: Nền tảng nhúng Raspberry Pi 3 Model B+ xử lý tính toán cục bộ (Edge Computing) không phụ thuộc máy chủ bên ngoài.

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

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

Tiêu chí Hộp dụng cụ truyền thống Xe tự hành công nghiệp (AGV) Hộp dụng cụ di động (Đề tài)
Cơ chế di chuyển Thủ công (xách/kéo tay) Tự hành theo vạch từ / Laser SLAM Tự hành bám theo mục tiêu (Follow-me)
Chi phí chế tạo Rất thấp (< 500.000 VNĐ) Rất cao (> 50.000.000 VNĐ) Thấp / Tiếp cận được (< 2.500.000 VNĐ)
Tính linh hoạt Kém (phụ thuộc sức người) Cố định tuyến đường Cao, thích ứng theo vị trí người dùng
Yêu cầu hạ tầng Không Cần dán line từ/gắn gương phản xạ Không cần thay đổi hạ tầng sẵn có
Thời gian thiết lập Ngay lập tức Phức tạp, mất nhiều tuần Nhanh chóng, bật nguồn là hoạt động

Ma trận ưu tiên yêu cầu hệ thống (MoSCoW)

  • Must-have (Bắt buộc): Nhận diện chính xác mục tiêu thông qua màu sắc trong không gian HSV; bám sát đối tượng ở cự ly an toàn; tự động ngắt động cơ khi khoảng cách phía trước < 15 cm.
  • Should-have (Cần có): Chế độ quét dò (Sweep Search) 360 độ tự động khi mục tiêu ra khỏi khung hình camera; điều khiển vận tốc mượt mà qua PWM.
  • Could-have (Có thể có): Hỗ trợ cảnh báo âm thanh/LED khi phát hiện vật cản; giao diện giám sát pin trực tiếp.
  • Won't-have (Chưa thực hiện): Bản đồ hóa 2D/3D (SLAM) bằng LiDAR; nhận diện khuôn mặt sinh trắc học phức tạp.

Thiết kế hệ thống

Kiến trúc hệ thống được chia thành 5 khối chức năng chính liên kết chặt chẽ:

graph TD
    subgraph "Khối Nguồn"
        P1["Pin sạc dự phòng 5V - 2.1A"] --> RPi["Raspberry Pi 3 Model B+"]
        P1 --> Cam["Pi Camera V1.3"]
        P1 --> Sensors["3x Cảm biến HY-SRF05"]
        P2["Bộ 3 Pin 18650 11.1V 3400mAh"] --> Driver["Mạch cầu H L298"]
    end

    subgraph "Khối Cảm Biến & Thu Nhận"
        Cam -->|"Cáp MIPI CSI"| RPi
        Sensors -->|"Echo/Trig (GPIO)"| RPi
    end

    subgraph "Khối Xử Lý Trung Tâm"
        RPi -->|"Xử lý HSV & CamShift"| Core["Thuật toán bám mục tiêu"]
        RPi -->|"Tính toán xung siêu âm"| Safe["Hệ thống an toàn / Tránh vật cản"]
    end

    subgraph "Khối Chấp Hành"
        Core -->|"Tín hiệu IN1-IN4 & PWM"| Driver
        Safe -->|"Tín hiệu Dừng khẩn cấp"| Driver
        Driver -->|"Công suất DC"| Motors["4x Động cơ DC có hộp giảm tốc (1:48.3)"]
    end

Technology Stack và Thông số kỹ thuật

  • Bộ xử lý trung tâm: Broadcom BCM2837B0, Quad-core Cortex-A53 64-bit SoC @ 1.4GHz, 1GB LPDDR2 SDRAM.
  • Hệ điều hành: Raspbian OS (Debian-based) Kernel 4.14+.
  • Ngôn ngữ & Thư viện: Python 3.5+, OpenCV 3.4.x (tối ưu hóa module cv2, CXCore, HighGUI), RPi.GPIO.
  • Cảm biến thị giác: Raspberry Pi Camera Module V1.3, cảm biến Omnivision 5MP, độ phân giải chụp ảnh 2592 x 1944, video 1080p@30fps / 720p@60fps kết nối cổng MIPI CSI bus 15-pin.
  • Cảm biến siêu âm: 03 module HY-SRF05, tần số 40 kHz, dải đo 2 cm – 450 cm, góc quét < 15°, độ chính xác ±0.2 cm.
  • Mạch điều khiển động cơ: Dual H-Bridge L298N, dòng định mức 2A/cầu, điện áp hoạt động logic 5V, điện áp tải động cơ lên đến 46V.
  • Nguồn cấp: Hệ thống tách nguồn kép gồm Pin sạc dự phòng 5V/2.1A (cho Pi và cảm biến) và Pack 3 cell Pin Li-ion Panasonic 18650 dung lượng 3400mAh mắc nối tiếp (11.1V danh định) cho động cơ.

Sơ đồ kết nối chân GPIO (Pin Mapping)

Thiết bị / Module Tên chân Module Chân kết nối Raspberry Pi (GPIO) Pin vật lý (Header) Chức năng
HY-SRF05 Trái Trig / Echo GPIO 5 / GPIO 6 PIN 29 / PIN 31 Kích xung / Nhận phản xạ trái
HY-SRF05 Giữa Trig / Echo GPIO 16 / GPIO 26 PIN 36 / PIN 37 Kích xung / Nhận phản xạ trung tâm
HY-SRF05 Phải Trig / Echo GPIO 20 / GPIO 19 PIN 38 / PIN 35 Kích xung / Nhận phản xạ phải
Driver L298N IN1 / IN2 GPIO 23 / GPIO 22 PIN 16 / PIN 15 Chiều quay Động cơ Trái
Driver L298N IN3 / IN4 GPIO 18 / GPIO 17 PIN 12 / PIN 11 Chiều quay Động cơ Phải
Driver L298N ENA / ENB GPIO 12 / GPIO 13 PIN 32 / PIN 33 Điều xung PWM tốc độ Trái / Phải
Pi Camera 15-pin FFC MIPI CSI Port MIPI CSI Port Truyền dữ liệu video trực tiếp

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

Dự án áp dụng mô hình phát triển tích hợp phần cứng - phần mềm theo phương pháp lặp (Iterative V-Model):

  1. Giai đoạn 1 (Hardware Prototyping): Lắp ráp khung gầm 4WD, bố trí trọng tâm pin và tải trọng chứa đồ nghề, đo kiểm điện áp cấp và mạch bảo vệ L298.
  2. Giai đoạn 2 (Vision & Algorithm Pipeline): Xây dựng module nhận diện OpenCV trên Python, tối ưu bộ lọc Gaussian Blur, chuyển đổi không gian HSV và thuật toán CamShift.
  3. Giai đoạn 3 (Sensor & Control Integration): Lập trình đa luồng đọc mảng siêu âm kết hợp thuật toán điều khiển rẽ/bám theo tọa độ tâm $x_c$ của đối tượng.
  4. Giai đoạn 4 (Field Testing & Calibration): Chạy thực nghiệm hiệu chỉnh ngưỡng màu, độ nhạy phản xạ siêu âm và bù quán tính bánh xe khi dừng.

Implementation và kết quả

Chi tiết giải thuật và mã nguồn

1. Chuyển đổi màu sắc và Lọc nhiễu không gian

Hình ảnh thu nhận từ Camera Pi có định dạng RGB mặc định rất dễ bị nhiễu do cường độ chiếu sáng thay đổi. Hệ thống thực hiện chuyển đổi sang không gian màu HSV ($H$: Hue, $S$: Saturation, $V$: Value), trong đó sắc độ $H$ ($0 \le H \le 180$) giữ vai trò quyết định để cô lập màu sắc của vòng nhận diện:

$$\text{RGB} \xrightarrow{\text{cv2.cvtColor}} \text{HSV}$$

Sau đó, bộ lọc Gaussian và phép biến đổi hình thái học (Morphology: Dilation & Erosion) được áp dụng để loại bỏ các đốm nhiễu nhỏ:

import cv2
import numpy as np

def preprocess_frame(frame, lower_hsv, upper_hsv):
    # Làm mịn ảnh bằng Gaussian Blur để giảm nhiễu hạt
    blurred = cv2.GaussianBlur(frame, (5, 5), 0)
    
    # Chuyển đổi không gian màu sang HSV
    hsv = cv2.cvtColor(blurred, cv2.COLOR_BGR2HSV)
    
    # Tạo mặt nạ nhị phân lọc dải màu đối tượng
    mask = cv2.inRange(hsv, lower_hsv, upper_hsv)
    
    # Xử lý hình thái học: Co (Erode) và Giãn (Dilate)
    mask = cv2.erode(mask, None, iterations=2)
    mask = cv2.dilate(mask, None, iterations=2)
    return hsv, mask

2. Giải thuật CamShift bám mục tiêu

Thuật toán CamShift giải quyết bài toán mục tiêu thay đổi kích thước khi di chuyển xa/gần camera. CamShift liên tục tính toán các moment không gian bậc 0 và bậc 1 trên bản đồ xác suất màu (Histogram Backprojection):

  • Moment bậc 0 (Diện tích phân bố xác suất): $$M_{00} = \sum_{x} \sum_{y} I(x, y)$$
  • Moment bậc 1 (Tọa độ trọng tâm): $$M_{10} = \sum_{x} \sum_{y} x \cdot I(x, y), \quad M_{01} = \sum_{x} \sum_{y} y \cdot I(x, y)$$
  • Trọng tâm đối tượng $(\bar{x}, \bar{y})$: $$\bar{x} = \frac{M_{10}}{M_{00}}, \quad \bar{y} = \frac{M_{01}}{M_{00}}$$

Cửa sổ tìm kiếm (Search Window) tự động co giãn theo $\sqrt{M_{00}}$, giúp hệ thống bắt trọn đối tượng dù người dùng bước gần lại hoặc đi xa ra.

# Cấu hình tiêu chuẩn dừng cho MeanShift / CamShift
term_crit = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1)

def track_target(prob_image, track_window):
    # Áp dụng giải thuật CamShift
    rotated_box, track_window = cv2.CamShift(prob_image, track_window, term_crit)
    
    # Trích xuất tọa độ tâm x, y và kích thước cửa sổ
    center_x = int(rotated_box[0][0])
    center_y = int(rotated_box[0][1])
    target_size = rotated_box[1]
    
    return (center_x, center_y), target_size, track_window

3. Đo cự ly siêu âm và Quyết định điều hướng

Khoảng cách được xác định bằng công thức: $$d = \frac{t \times v_{\text{âm thanh}}}{2} = \frac{t \times 34000\text{ cm/s}}{2 \times 10^6} = \frac{t}{58.82}\text{ (cm)}$$ (trong đó $t$ là thời gian xung Echo ở mức HIGH tính bằng microsecond $\mu s$).

import RPi.GPIO as GPIO
import time

def read_distance(trig_pin, echo_pin):
    # Phát xung Trigger 10us
    GPIO.output(trig_pin, True)
    time.sleep(0.00001)
    GPIO.output(trig_pin, False)
    
    pulse_start = time.time()
    pulse_end = time.time()
    
    timeout = pulse_start + 0.04  # Hạn chế treo vòng lặp (timeout 40ms)
    while GPIO.input(echo_pin) == 0 and time.time() < timeout:
        pulse_start = time.time()
        
    while GPIO.input(echo_pin) == 1 and time.time() < timeout:
        pulse_end = time.time()
        
    pulse_duration = pulse_end - pulse_start
    distance = pulse_duration * 17150 # cm
    return round(distance, 2)
stateDiagram-v2
    [*] --> KhoiTao: Bật nguồn hệ thống
    KhoiTao --> QuetDo: Không thấy mục tiêu trong khung hình
    QuetDo --> QuetDo: Xoay tròn tìm vòng nhận diện
    QuetDo --> BamSat: Phát hiện mục tiêu (OpenCV Match)
    
    state BamSat {
        [*] --> DocCamShift
        DocCamShift --> TinhToanTam: Xác định tọa độ X_c
        TinhToanTam --> ReTrai: X_c < (TamAnh - Offset)
        TinhToanTam --> RePhai: X_c > (TamAnh + Offset)
        TinhToanTam --> ChayThang: X_c nằm trong dải trung tâm
    }
    
    BamSat --> DungXe: Cảm biến siêu âm d < 15cm (Vật cản / Đã đến gần)
    DungXe --> BamSat: Mục tiêu di chuyển ra xa (d > 20cm)
    BamSat --> QuetDo: Mất dấu đối tượng > 3 giây

Kiểm thử và Đánh giá thực nghiệm

Hệ thống được vận hành thử nghiệm trên nhiều kịch bản thực tế nhằm đánh giá độ trễ và tính ổn định.

Bảng kết quả thực nghiệm bám mục tiêu và đo khoảng cách

Kịch bản kiểm thử Khoảng cách thực tế (cm) Khoảng cách đo được (cm) Sai số $(\Delta d)$ Trạng thái xử lý của Robot Tốc độ đáp ứng
Mục tiêu đứng yên phía trước 40.0 cm 39.8 cm 0.2 cm Giữ cự ly, sẵn sàng bám < 50 ms
Mục tiêu tiến tới gần xe 12.0 cm 11.9 cm 0.1 cm Kích hoạt dừng an toàn < 30 ms
Mục tiêu rẽ sang trái 35.0 cm 34.7 cm 0.3 cm Điều khiển rẽ trái bám góc < 80 ms
Mục tiêu rẽ sang phải 35.0 cm 35.2 cm 0.2 cm Điều khiển rẽ phải bám góc < 80 ms
Mục tiêu đi nhanh ra khỏi tầm nhìn > 80.0 cm N/A N/A Chuyển chế độ quét dò 360° Tức thì
Vật cản bất ngờ cắt ngang 8.0 cm 8.1 cm 0.1 cm Dừng khẩn cấp, bảo vệ cơ khí < 25 ms

Kết quả đạt được so với mục tiêu ban đầu

  • Tỷ lệ nhận diện thành công: Đạt 94.6% trong điều kiện ánh sáng phòng tiêu chuẩn (300 - 500 Lux).
  • Tốc độ xử lý khung hình: Duy trì 24 - 28 FPS trên bo mạch Raspberry Pi 3 Model B+ khi giảm kích thước frame xuống $320 \times 240$ pixel để tối ưu độ trễ xử lý.
  • Khả năng tải tĩnh: Khung xe và 4 động cơ giảm tốc tải ổn định thùng đồ nghề khối lượng 1.5 kg – 2.0 kg mà không làm sụt dòng hệ thống logic.

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

  1. Kiến trúc dung hợp cảm biến kép (Sensor Fusion - Vision & Ultrasound): Khắc phục triệt để nhược điểm của các hệ thống chỉ dùng camera (dễ sai lệch chiều sâu) hoặc chỉ dùng cảm biến siêu âm (không phân biệt được người dùng với tường hay chướng ngại vật khác).
  2. Tối ưu hóa tài nguyên phần cứng nhúng: Sử dụng thuật toán thích nghi CamShift kết hợp lọc màu HSV thay vì các mạng nơ-ron tích chập (CNN) nặng nề, cho phép hệ thống chạy mượt mà theo thời gian thực trên vi xử lý ARM 1.4GHz mà không cần GPU đắt đỏ.
  3. Cơ chế phân tách nguồn chống sụt áp (Isolated Dual-Power Architecture): Việc cô lập nguồn động cơ (Pin Li-ion 11.1V qua L298) và nguồn vi điều khiển (5V/2.1A) giúp loại bỏ hiện tượng Reset bất ngờ do xung dòng khởi động của 4 động cơ DC gây ra.
  4. Thuật toán tự phục hồi bám đuổi (Auto-Recovery Sweep Algorithm): Tự động chuyển đổi giữa chế độ theo dõi cục bộ và chế độ quét không gian khi mất dấu, giúp robot không bị "bỏ rơi" khi người dùng đổi hướng đột ngột.

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

Tình huống ứng dụng thực tế

  • Nhà xưởng và Trạm bảo trì kỹ thuật: Đóng vai trò là trợ lý đắc lực mang theo máy khoan, cờ lê, đồng hồ đo điện theo chân thợ sửa chữa trong quá trình di chuyển quanh các dây chuyền lớn.
  • Garage sửa chữa ô tô: Tự động theo sau kỹ thuật viên khi kiểm tra gầm xe, khoang máy mà không cần quay lại bàn dụng cụ trung tâm nhiều lần.
  • Môi trường y tế và bệnh viện: Chuyển đổi công năng thành xe chở dụng cụ sơ cứu, phát thuốc tự động di chuyển theo y tá, bác sĩ trong ca trực.
gantt
    title Lộ trình thương mại hóa và phát triển sản phẩm
    dateFormat  YYYY-MM
    section Giai đoạn 1
    Tối ưu hóa khung vỏ & cơ khí tải trọng 5kg :2026-09, 3M
    section Giai đoạn 2
    Nâng cấp vi xử lý RPi 4 / Jetson Nano & AI Vision :2026-12, 4M
    section Giai đoạn 3
    Tích hợp LiDAR 2D & Hệ điều hành ROS 2 :2027-04, 5M
    section Giai đoạn 4
    Thử nghiệm thực tế tại Garage & Sản xuất pilot :2027-09, 4M

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

  • Chi phí sản xuất nguyên mẫu: Xấp xỉ 2.200.000 VNĐ (thấp hơn 90% so với các giải pháp AGV công nghiệp nhập khẩu).
  • Tiết kiệm thời gian: Giảm trung bình 15-20 phút di chuyển lấy dụng cụ cho mỗi ca làm việc 8 tiếng của một kỹ thuật viên.
  • Thời gian hoàn vốn (ROI): Ước tính trong vòng 3 đến 5 tháng dựa trên năng suất lao động gia tăng của kỹ thuật viên bảo trì.

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

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

  • Độ nhạy sáng: Thuật toán dựa trên màu sắc trong không gian HSV có thể bị giảm độ chính xác khi môi trường ánh sáng thay đổi quá đột ngột (từ tối sang nắng gắt) hoặc khi có vật thể trùng màu sắc trong nền.
  • Khả năng vượt địa hình: Bánh xe nhựa đường kính 65 mm chỉ hoạt động tối ưu trên nền phẳng, gặp khó khăn khi qua bậc thềm, gờ giảm tốc cao hoặc nền đất cát gồ ghề.
  • Cơ chế nhận diện đơn điểm: Việc chỉ bám theo 1 vòng màu duy nhất ở chân có thể bị che khuất tạm thời nếu người dùng đứng chéo góc.

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

  1. Nâng cấp thuật toán thị giác: Ứng dụng mô hình mạng học sâu gọn nhẹ như MobileNet-SSD hoặc YOLOv8-Nano để nhận diện trực tiếp dáng người (Human Pose Estimation / Person Tracking) thay vì phụ thuộc vòng màu.
  2. Cải tiến cơ khí và truyền động: Chuyển sang động cơ DC Servo hoặc Stepper Motor có Encoder phản hồi vòng kín (Closed-loop PID Control), nâng cấp khung gầm bánh xích hoặc bánh Mecanum để di chuyển đa hướng linh hoạt.
  3. Mở rộng hệ thống cảm biến: Bổ sung cảm biến LiDAR 2D tầm quét 360 độ và tích hợp hệ điều hành ROS 2 (Robot Operating System) để xây dựng bản đồ đồng thời và tránh vật cản động thông minh.

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

  • Sinh viên ngành Kỹ thuật Máy tính, Điện tử, Cơ điện tử: Nguồn tài liệu thực chứng toàn diện về tích hợp hệ thống nhúng thực tế, kết hợp giữa phần cứng vi điều khiển và phần mềm xử lý ảnh OpenCV trên Linux.
  • Lập trình viên và Maker: Khung mẫu (Template) hoàn chỉnh về việc triển khai giải thuật CamShift, kỹ thuật điều khiển PWM và lập trình đa luồng I/O trên Raspberry Pi bằng Python.
  • Doanh nghiệp vừa và nhỏ, Xưởng cơ khí: Bản phác thảo thiết kế khả thi để tự chế tạo hoặc đặt hàng các xe chở thiết bị chuyên dụng giá rẻ, nâng cao chỉ số 5S và an toàn lao động trong nhà xưởng.
  • Nhà nghiên cứu: Cơ sở dữ liệu thực nghiệm về độ trễ, sai số đo cảm biến và tính tương thích giữa module camera CSI và vi xử lý SoC ARM trong các bài toán bám đối tượng thời gian thực.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai và chạy lại mã nguồn đề tài là gì?

Hệ thống yêu cầu bo mạch Raspberry Pi 3 Model B hoặc B+ (RAM tối thiểu 1GB), thẻ nhớ MicroSD tối thiểu 8GB Class 10 cài đặt hệ điều hành Raspbian Buster/Bullseye, Camera Module V1.3 (hoặc V2), mạch L298N, 03 cảm biến HY-SRF05, Python 3 và OpenCV 3.4+.

2. Thuật toán CamShift có bị nhầm lẫn khi người dùng đi vào khu vực có đồ vật trùng màu không?

Có thể xảy ra sai số nếu đồ vật có kích thước và màu sắc tương đồng nằm quá gần vòng nhận diện. Giải pháp khắc phục trong đề tài là giới hạn khoảng cách tìm kiếm dựa trên dữ liệu cự ly từ cảm biến siêu âm và áp dụng ngưỡng diện tích khung hình (Contour Area Threshold) để lọc bỏ các vùng màu không đúng kích thước thiết kế.

3. Tại sao lại dùng 3 cảm biến siêu âm mà không dùng 1 cảm biến xoay bằng Servo?

Cảm biến xoay bằng Servo mất thời gian quét cơ học (khoảng 200 - 400 ms cho một góc quét 180°), gây trễ cho việc phát hiện vật cản khi xe đang di chuyển. Sử dụng 3 cảm biến cố định gắn ở 3 hướng cho phép hệ thống đọc xung tuần tự với độ trễ cực thấp (< 60 ms cho cả 3 hướng), đảm bảo an toàn phản xạ tức thì.

4. Hệ thống có thể hoạt động liên tục trong bao lâu với bộ pin trang bị?

Với bộ pin 3 cell Li-ion 18650 dung lượng 3400mAh cấp cho động cơ và sạc dự phòng 10.000mAh cấp cho Pi 3, hệ thống có thể hoạt động bám sát liên tục từ 2.5 đến 3.5 giờ tùy thuộc vào tải trọng mang theo và tần suất chuyển hướng của động cơ.

5. Làm thế nào để điều chỉnh tốc độ bám của xe tương thích với tốc độ bước đi của người dùng?

Tốc độ xe được điều khiển linh hoạt qua thuật toán điều biến độ rộng xung (PWM) trên 2 chân ENA và ENB của IC L298. Khi khoảng cách đo được từ cảm biến siêu âm lớn dần ($30\text{ cm} < d < 50\text{ cm}$), hệ thống tự động tăng Duty Cycle PWM từ 60% lên 90% để xe tăng tốc bám kịp người dùng và giảm dần về 0% khi $d \le 15\text{ cm}$.


Kết luận

Đồ án tốt nghiệp "Hộp Dụng Cụ Di Động" của tác giả Tạ Minh Trí (GVHD: TS. Trương Ngọc Sơn, Trường ĐH Sư phạm Kỹ thuật TP.HCM) đã giải quyết trọn vẹn và thực tế bài toán tự động hóa hỗ trợ con người trong lao động kỹ thuật. Bằng việc kết hợp hài hòa giữa thị giác máy tính OpenCV, giải thuật bám đuổi thích nghi CamShift, mảng cảm biến đo cự ly siêu âm HY-SRF05 và bộ điều khiển trung tâm Raspberry Pi 3 Model B+, đề tài đã chứng minh tính khả thi cao của mô hình robot cá nhân giá rẻ phục vụ sản xuất.

Dự án không chỉ là minh chứng xuất sắc cho năng lực nghiên cứu ứng dụng thực tiễn của sinh viên ngành Công nghệ Kỹ thuật Máy tính mà còn mở ra hướng tiếp cận giàu tiềm năng cho các giải pháp AGV nội bộ trong các doanh nghiệp vừa và nhỏ tại Việt Nam.