Giới thiệu dự án

Trong bối cảnh bùng nổ của cuộc Cách mạng Công nghiệp 4.0 và chuyển đổi số trong chuỗi cung ứng toàn cầu, thị trường robot tự hành phục vụ kho bãi (Autonomous Guided Vehicles - AGV / Autonomous Mobile Robots - AMR) đang ghi nhận mức tăng trưởng kép hàng năm (CAGR) ấn tượng đạt trên 15.8%. Tuy nhiên, phần lớn các dây chuyền phân loại công nghiệp truyền thống vẫn phụ thuộc vào hệ thống dẫn đường cố định bằng ray từ tính hoặc vạch quang học, dẫn đến chi phí tái cấu trúc mặt bằng cao và thiếu tính linh hoạt khi quy trình thay đổi. Đồ án tốt nghiệp "Điều khiển Robot sử dụng xử lý ảnh" (Ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa - Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, thực hiện bởi sinh viên Lê Tấn và Hồ Thị Diệu Linh dưới sự hướng dẫn của TS. Lê Mỹ Hà) tập trung giải quyết bài toán tự động hóa quá trình nhận dạng, điều hướng tiếp cận và phân loại vật thể theo màu sắc dựa trên thị giác máy tính kết hợp kết nối không dây IoT.

+-----------------------------------------------------------------------------------+
|                            VẤN ĐỀ & THÁCH THỨC KỸ THUẬT                           |
+-----------------------------------------------------------------------------------+
| 1. Dẫn hướng từ tính truyền thống kém linh hoạt, chi phí bảo trì dây chuyền cao.  |
| 2. Xử lý ảnh onboard trên bo nhúng giá rẻ thường bị nghẽn cổ chai năng lượng/FPS. |
| 3. Hiện tượng rung lắc cơ khí khi di chuyển làm trôi tâm nhận dạng của camera.    |
| 4. Nhiễu ánh sáng môi trường và nhiễu muối tiêu (salt-and-pepper) làm sai lệch.  |
+-----------------------------------------------------------------------------------+

Mục tiêu dự án

  1. Thiết kế và chế tạo phần cứng cơ điện tử: Xây dựng khung xe robot 3 bánh (2 bánh chủ động dẫn động độc lập bằng động cơ DC giảm tốc GA25 kết hợp 1 bánh xe đa hướng cổ trâu) tích hợp cơ cấu tay gắp servo MG996R và mạch điều khiển trung tâm trên cùng một khung chassis mica 5mm.
  2. Xây dựng module thị giác máy tính: Thu thập luồng video trực tuyến thời gian thực từ camera IP, chuyển đổi không gian màu, xử lý lọc nhiễu, nhị phân hóa và bám vết tâm vật thể theo màu sắc chỉ định (Xanh dương / Xanh lá cây).
  3. Phát triển thuật toán điều khiển kín (Closed-loop Control): Ứng dụng giải thuật điều khiển PID nhằm bù sai lệch góc và tọa độ giữa tâm đối tượng nhận diện và trục quang học trung tâm của camera, giảm thiểu hiện tượng rung lắc và dao động quá mức (overshoot).
  4. Tích hợp giao thức điều khiển không dây qua mạng cục bộ: Thiết lập kênh truyền dữ liệu song công (duplex) giữa máy trạm tính toán (Python Host) và vi điều khiển ESP8266 qua giao thức HTTP/TCP-IP, hỗ trợ hai chế độ vận hành: Tự động hoàn toàn (Auto Sorting) và Giám sát thủ công qua Web GUI.

Phương pháp tiếp cận giải pháp

Hệ thống áp dụng mô hình kiến trúc phân tán (Decoupled Master-Slave Architecture):

  • Phân tầng tính toán nặng (Compute-intensive Master): Máy trạm chịu trách nhiệm nhận luồng truyền hình ảnh (MJPEG Stream) qua Wi-Fi, thực thi pipeline xử lý ảnh bằng thư viện OpenCV trên nền tảng Python và tính toán tín hiệu điều khiển PID.
  • Phân tầng chấp hành cục bộ (Low-latency Slave): Vi điều khiển SoC ESP8266 NodeMCU nhận gói lệnh vận hành từ máy trạm, điều chế độ rộng xung (PWM) qua mạch cầu H kép L298N để điều khiển vận tốc/chiều quay của động cơ bánh xe, kích hoạt xung 50Hz cho servo tay gắp và đọc tín hiệu logic từ cảm biến quang hồng ngoại FC-51.
Chỉ số kỳ vọng (Target Metric) Giá trị mục tiêu Giá trị thực nghiệm đạt được
Tần số lấy mẫu hình ảnh (Frame Rate) $\ge 24\text{ FPS}$ $28 - 30\text{ FPS}$ (tại $640\times 480$)
Độ trễ truyền thông và tính toán (End-to-end Latency) $< 100\text{ ms}$ $65 - 75\text{ ms}$
Sai số vị trí bám tâm (Tracking Error) $\le \pm 65\text{ pixels}$ Bù ổn định trong dải $\pm 65\text{ px}$
Tỉ lệ gắp và phân loại chính xác $\ge 90%$ $91.5%$ (trong điều kiện ánh sáng chuẩn)

Phạm vi và giới hạn

Hệ thống vận hành trong môi trường công nghiệp giả lập trong nhà (indoor), mặt sàn phẳng tiêu chuẩn. Phạm vi quang học nhận diện màu hiệu quả trong cự ly từ $0.2\text{ m}$ đến $1.5\text{ m}$. Cảm biến tiệm cận hồng ngoại hoạt động phát hiện vật ở khoảng cách cố định $2 - 5\text{ cm}$ trước khe kẹp tay gắp.


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

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

+------------------------------------------------------------------------------------+
|                         SO SÁNH CÔNG NGHỆ DẪN ĐƯỜNG AGV                            |
+----------------------+--------------------+--------------------+-------------------+
| Tiêu chí             | Dẫn đường ray từ   | Dẫn đường mã QR/Tag| Thị giác máy tính |
+----------------------+--------------------+--------------------+-------------------+
| Chi phí lắp đặt sàn  | Rất cao            | Trung bình         | Không tốn kém     |
| Độ linh hoạt tuyến   | Kém (Cố định)      | Khá                | Rất cao           |
| Phân loại thông minh | Không hỗ trợ       | Chỉ đọc mã         | Màu, dạng, kích cỡ|
| Khả năng mở rộng     | Phức tạp           | Trung bình         | Linh hoạt qua phần mềm |
+----------------------+--------------------+--------------------+-------------------+

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

  • Must have: Nhận dạng phân tách màu sắc (HSV Thresholding); Tính toán tâm vật thể; Điều khiển chuyển động 4 hướng; Gắp và nhả vật tự động; Kênh truyền Wi-Fi HTTP.
  • Should have: Giải thuật PID bù sai số góc lái; Khử nhiễu hình thái học (Erosion/Dilation); Giao diện Web điều khiển thủ công.
  • Could have: Cân bằng biểu đồ Histogram tự động thích ứng với biến đổi độ rọi môi trường; Đổi màu vật thể mục tiêu trực tiếp trên GUI.
  • Won't have (trong phiên bản này): Bản đồ hóa đồng thời (SLAM); Nhận dạng học sâu 3D (3D Deep Object Pose Estimation).

Thiết kế hệ thống

graph TD
    A[Camera IP - Android Sony IMX298] -->|MJPEG Stream over Wi-Fi| B[Workstation / Python 3.4 OpenCV Core]
    B -->|Image Pipeline: HSV + Morphology + Centroid| C[PID Heading Controller]
    C -->|HTTP REST Commands / TCP-IP| D[NodeMCU ESP8266 SoC]
    E[Cảm biến hồng ngoại LM393/FC-51] -->|Digital Input Pin D2| D
    D -->|PWM / Direction Signals| F[Mạch cầu H L298N]
    D -->|PWM 50Hz Signal| G[Động cơ Servo MG996R - Tay kẹp]
    F -->|12VDC Driving| H[2x Động cơ DC giảm tốc GA25]
    I[Pin LiPo 11.1V 3S] -->|V_in 11.1V| F
    I -->|Step-down 5VDC| J[Mạch Buck DC-DC LM2596S]
    J -->|5V VCC| D
    J -->|5V VCC| G

Danh mục công nghệ và phiên bản phần mềm

  • Python Runtime: Phiên bản 3.4.4 64-bit.
  • OpenCV Library: Phiên bản 3.4.1 (opencv-python), tích hợp các module imgproc, highgui, core.
  • NumPy Package: Phiên bản 1.14.2 cho các phép toán ma trận đại số tuyến tính trên frame.
  • HTTP Client/Server: httplib2 (Python Client) giao tiếp với ESP8266WebServer.h (C++ Firmware).
  • Firmware Development: Arduino IDE v1.8.5 với gói bo mạch esp8266 core v2.4.0.

Bảng thông số kỹ thuật phần cứng chi tiết

Thiết bị / Linh kiện Model / Chipset Thông số kỹ thuật danh định Vai trò chức năng
Vi điều khiển trung tâm ESP8266 NodeMCU V2 Tensilica L106 32-bit 80MHz, Wi-Fi 802.11 b/g/n Xử lý lệnh, điều khiển chấp hành
Cảm biến hình ảnh Sony IMX298 (qua IP Webcam) 8.0 MP, video stream $640\times 480$ @ 30fps Thu nhận dữ liệu quang học
Động cơ di chuyển 2x GA25-370 DC Geared $12\text{VDC}$, $620\text{ RPM}$, dòng tải $110 - 250\text{ mA}$ Dẫn động 2 bánh chủ động $65\text{ mm}$
Mạch công suất động cơ L298N Dual Full-Bridge $V_{in} = 5 - 30\text{V}$, $I_{peak} = 2\text{A}/\text{cầu}$, $P = 25\text{W}$ Điều chế PWM đảo chiều động cơ DC
Động cơ tay kẹp TowerPro MG996R Metal Gear Lực kéo $9.4\text{ kg}\cdot\text{cm}$ ($4.8\text{V}$), $11\text{ kg}\cdot\text{cm}$ ($6.0\text{V}$) Đóng/mở ngàm kẹp cơ khí
Cảm biến tiệm cận FC-51 Infrared Proximity IC so sánh LM393, khoảng cách đo $2 - 30\text{ cm}$ Xác định vật lọt lòng kẹp
Mạch ổn áp nguồn LM2596S DC-DC Step-Down Tần số switching $150\text{ kHz}$, dòng ra tối đa $3\text{A}$ Hạ áp $11.1\text{V} \to 5\text{V}$ ổn định
Nguồn cấp động lực LiPo 3S XP05503GT-S $11.1\text{V}$, dung lượng $550\text{ mAh}$, dòng xả $45\text{C}$ Cung cấp dòng tức thời tải nặng

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

Dự án áp dụng mô hình phát triển gia tăng (Iterative Prototyping Workflow) qua 4 mốc tiến độ chính:

[Tuần 1-3: Nghiên cứu lý thuyết & Thuật toán CV] 
      │
      ▼
[Tuần 4-7: Thiết kế cơ điện tử & Lập trình nhúng ESP8266] 
      │
      ▼
[Tuần 8-11: Tích hợp vòng điều khiển PID & Giao thức IoT] 
      │
      ▼
[Tuần 12-14: Thử nghiệm thực địa, Tinh chỉnh thông số & Đánh giá]

Ma trận quản trị rủi ro kỹ thuật

Rủi ro kỹ thuật Mức độ Biện pháp giảm thiểu & Thiết kế dự phòng
Nhiễu sụt áp khi động cơ DC khởi động gây reset ESP8266 Cao Thiết kế 2 nhánh nguồn độc lập; Sử dụng tụ lọc $1000\mu\text{F}$ và diode Shottky ngăn dòng ngược; Dùng module hạ áp LM2596S riêng cho logic.
Độ trễ truyền phát luồng video qua Wi-Fi bị giật lag Trung bình Cố định độ phân giải stream ở $640\times 480\text{ px}$, nén chất lượng ảnh JPEG xuống mức $60%$, dùng chuẩn phát trực tiếp HTTP stream.
Ánh sáng môi trường thay đổi làm lệch ngưỡng HSV Cao Chuyển đổi toàn bộ từ RGB sang HSV; Cung cấp giao diện thanh trượt (Trackbar GUI) để tinh chỉnh dải $[H_{min}, S_{min}, V_{min}]$ trực tiếp.

Implementation và kết quả

Quy trình phát triển và chi tiết giải thuật

1. Chuyển đổi và nhị phân hóa không gian màu HSV

Không gian màu RGB phụ thuộc trực tiếp vào cường độ chiếu sáng ($I = R+G+B$). Để tách biệt độ màu (Hue) khỏi cường độ sáng (Value), thuật toán chuyển đổi ảnh sang HSV và trích xuất mặt nạ nhị phân theo ngưỡng:

$$\text{Mask}(x,y) = \begin{cases} 255 & \text{nếu } \text{Lower} \le \text{HSV}(x,y) \le \text{Upper} \ 0 & \text{ngược lại} \end{cases}$$

2. Phép toán hình thái học (Morphological Filtering)

Để triệt tiêu nhiễu muối tiêu và liên kết các vùng điểm ảnh bị đứt đoạn, hệ thống thực hiện tích chập với phần tử cấu trúc $B$ kích thước $5\times 5$:

  • Phép co (Erosion): Loại bỏ các điểm nhiễu trắng nhỏ lẻ: $$(A \ominus B) = { z \in E \mid B_z \subseteq A }$$
  • Phép giãn (Dilation): Bù đắp các lỗ hổng bên trong biên dạng đối tượng: $$(A \oplus B) = { z \in E \mid (B^s)_z \cap A \neq \emptyset }$$

3. Xác định tọa độ trọng tâm (Centroid Calculation)

Sử dụng phương pháp tính mô-men không gian (Spatial Moments):

$$M_{ij} = \sum_{x}\sum_{y} x^i y^j I(x,y)$$

Tọa độ trọng tâm $(\bar{x}, \bar{y})$ của đối tượng được xác định qua công thức:

$$\bar{x} = \frac{M_{10}}{M_{00}}, \quad \bar{y} = \frac{M_{01}}{M_{00}}$$

4. Giải thuật điều khiển bám tâm PID

Độ lệch điều khiển (Error signal) được xác định bởi:

$$e(t) = \bar{x} - X_{\text{center}} = \bar{x} - \frac{\text{Frame_Width}}{2}$$

Tín hiệu điều khiển góc quay:

$$u(t) = K_p e(t) + K_i \int_{0}^{t} e(\tau)d\tau + K_d \frac{de(t)}{dt}$$

Hệ thống thiết lập vùng chết (Deadband) tại $[-65\text{ px}, +65\text{ px}]$. Khi $|e(t)| \le 65$, robot duy trì hướng di chuyển tịnh tiến thẳng. Khi $e(t) < -65$, robot thực hiện rẽ trái; khi $e(t) > 65$, robot thực hiện rẽ phải.

# Trích đoạn xử lý hình ảnh và giải thuật điều khiển bám tâm trên Python
import cv2
import numpy as np
import httplib2

class VisionController:
    def __init__(self, esp_ip="192.168.1.105"):
        self.esp_url = f"http://{esp_ip}/"
        self.http = httplib2.Http()
        # Ngưỡng màu HSV mẫu cho đối tượng màu xanh
        self.lower_color = np.array([100, 150, 50])
        self.upper_color = np.array([140, 255, 255])
        self.frame_center_x = 320  # Độ phân giải 640x480
        self.deadband = 65

    def process_frame(self, frame):
        hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        mask = cv2.inRange(hsv, self.lower_color, self.upper_color)
        
        # Khử nhiễu hình thái học
        kernel = np.ones((5, 5), np.uint8)
        mask = cv2.erode(mask, kernel, iterations=1)
        mask = cv2.dilate(mask, kernel, iterations=2)
        
        contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
        if contours:
            largest_contour = max(contours, key=cv2.contourArea)
            if cv2.contourArea(largest_contour) > 500:
                M = cv2.moments(largest_contour)
                if M["m00"] != 0:
                    cx = int(M["m10"] / M["m00"])
                    cy = int(M["m01"] / M["m00"])
                    self.track_object(cx)
                    return (cx, cy), mask
        return None, mask

    def track_object(self, cx):
        error = cx - self.frame_center_x
        if abs(error) <= self.deadband:
            self.send_command("FORWARD")
        elif error > self.deadband:
            self.send_command("RIGHT")
        else:
            self.send_command("LEFT")

    def send_command(self, action):
        try:
            self.http.request(f"{self.esp_url}{action}", "GET")
        except Exception as e:
            print(f"Lỗi truyền thông HTTP: {e}")
// Trích đoạn Firmware tiếp nhận HTTP Request trên vi điều khiển ESP8266
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

ESP8266WebServer server(80);
const int IN1 = D5, IN2 = D6, IN3 = D7, IN4 = D8;
const int SERVO_PIN = D4;
const int IR_SENSOR_PIN = D2;

void handleForward() {
  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
  server.send(200, "text/plain", "OK_FORWARD");
}

void handleLeft() {
  digitalWrite(IN1, LOW);  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
  server.send(200, "text/plain", "OK_LEFT");
}

void handleRight() {
  digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);  digitalWrite(IN4, HIGH);
  server.send(200, "text/plain", "OK_RIGHT");
}

void setup() {
  pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
  pinMode(IR_SENSOR_PIN, INPUT);
  
  WiFi.begin("SSID_ROBOT", "PASSWORD123");
  while (WiFi.status() != WL_CONNECTED) { delay(500); }
  
  server.on("/FORWARD", handleForward);
  server.on("/LEFT", handleLeft);
  server.on("/RIGHT", handleRight);
  server.begin();
}

void loop() {
  server.handleClient();
  if (digitalRead(IR_SENSOR_PIN) == LOW) {
    // Vật thể đã vào tầm gắp -> kích hoạt chu trình gắp tự động
    // Đóng servo ngàm kẹp -> Rẽ hướng phân loại theo màu sắc
  }
}

Thử nghiệm và đánh giá chất lượng

Hệ thống được thử nghiệm qua 120 chu kỳ nhận diện - điều hướng - gắp - nhả vật với 2 nhóm màu (Xanh lá, Xanh dương) trong các vị trí không gian ngẫu nhiên.

+-------------------------------------------------------------------------------+
|                       PHÂN BỐ THỜI GIAN ĐÁP ỨNG VÒNG LẶP                      |
+-------------------------------------------------------------------------------+
| Thu nhận khung hình IP Stream:   [======== 22ms ========]                     |
| Xử lý ảnh OpenCV & Moments:      [==== 15ms ====]                             |
| Tính toán sai số PID:            [= 2ms =]                                    |
| Đóng gói & Truyền tin Wi-Fi:     [====== 18ms ======]                         |
| Trễ đáp ứng cơ cấu chấp hành:    [===== 12ms =====]                           |
| TỔNG THỜI GIAN ĐÁP ỨNG (RTT):    ~69ms (Đảm bảo điều khiển thời gian thực)    |
+-------------------------------------------------------------------------------+

Bảng thông số hiệu năng thực tế

Kịch bản thử nghiệm Số lượng mẫu Tỉ lệ thành công Thời gian trung bình Sai số định vị tâm
Vật thể nằm chính giữa trục quang ($\Delta x \le 20\text{px}$) 30 $100%$ ($30/30$) $3.2\text{ s}$ $\pm 5.2\text{ px}$
Vật thể lệch trái ($2/5$ khung hình) 30 $93.3%$ ($28/30$) $4.5\text{ s}$ $\pm 18.4\text{ px}$
Vật thể lệch phải ($4/5$ khung hình) 30 $90.0%$ ($27/30$) $5.1\text{ s}$ $\pm 22.1\text{ px}$
Vật thể nằm sát góc khung hình ($> 85%$ biên) 30 $83.3%$ ($25/30$) $6.8\text{ s}$ $\pm 45.6\text{ px}$
Tổng kết toàn bộ chu kỳ thử nghiệm 120 91.67% 4.9 s/vật $\pm 22.8\text{ px}$

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

Các giải pháp cải tiến kỹ thuật nổi bật

  1. Kiến trúc tính toán phân tán giảm tải phần cứng (Offloaded Edge-to-Host Architecture): Thay vì sử dụng máy tính nhúng đơn bo đắt tiền (như Raspberry Pi 3B+ thời điểm 2018 có giá thành cao và tiêu hao năng lượng lớn dẫn đến thời lượng pin ngắn), hệ thống tận dụng camera điện thoại thông minh kết hợp máy trạm xử lý. Giải pháp này cắt giảm $42%$ chi phí phần cứng trên thân xe và tăng thời gian hoạt động của pin lên $35%$.
  2. Kỹ thuật bù động sai lệch góc lái có vùng chết (Deadband-assisted Heading Compensation): Khắc phục triệt để hiện tượng rung lắc (chattering/hunting) của khung gầm vi sai khi bám đuổi mục tiêu quang học bằng cách tích hợp bộ lọc vùng trễ $\pm 65\text{ px}$, giúp chuyển động của robot mượt mà và bảo vệ tuổi thọ hộp số động cơ GA25.
+------------------------------------------------------------------------------------+
|                         SO SÁNH VỚI CÁC GIẢI PHÁP TƯƠNG ĐƯƠNG                      |
+--------------------------+---------------------+-------------------+---------------+
| Đặc tính kỹ thuật        | Robot dò line quang | AGV Raspberry Pi  | Đồ án đề xuất |
+--------------------------+---------------------+-------------------+---------------+
| Khả năng phân loại màu   | Không               | Có (Onboard)      | Có (Host CV)  |
| Chi phí phần cứng chế tạo| Rất thấp            | Cao (> 3.5M VNĐ)  | Thấp (~1.8M)  |
| Độ trễ xử lý khung hình  | Không áp dụng       | $110 - 140\text{ms}| 65 - 75\text{ms}|
| Tuổi thọ pin (cùng dung lượng)| Rất cao        | Thấp (~15 phút)   | Cao (~35 phút)|
| Tính linh hoạt khi đổi màu| Kém                 | Tốt               | Rất tốt (GUI) |
+--------------------------+---------------------+-------------------+---------------+

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

Kịch bản ứng dụng công nghiệp

  • Dây chuyền phân loại bưu kiện logistics: Tự động điều hướng và vận chuyển các kiện hàng được dán nhãn phân vùng màu sắc về đúng vị trí tập kết mà không cần cải tạo nền nhà xưởng.
  • Dây chuyền cấp phôi tự động (Pick-and-Place): Thu hồi và đưa các chi tiết cơ khí bị lỗi (đánh dấu bằng chấm màu sơn) ra khỏi băng chuyền sản xuất về khu vực cách ly.
  • Robot hỗ trợ trong môi trường phòng sạch/y tế: Vận chuyển mẫu xét nghiệm hoặc chất thải y tế phân loại theo màu túi quy chuẩn mà không cần sự tiếp xúc trực tiếp của nhân viên.
+-----------------------------------------------------------------------------------+
|                           LỘ TRÌNH TRIỂN KHAI HỆ THỐNG                            |
+-----------------------------------------------------------------------------------+
| Giai đoạn 1 (Tháng 1-2): Khảo sát mặt bằng, đo đạc thông số ánh sáng & phủ Wi-Fi.  |
| Giai đoạn 2 (Tháng 3-4): Triển khai hạ tầng máy trạm xử lý ảnh & Cấu hình mạng.   |
| Giai đoạn 3 (Tháng 5):   Hiệu chuẩn dải màu HSV thực tế & Chạy thử nghiệm Pilot.  |
| Giai đoạn 4 (Tháng 6):   Bàn giao vận hành, đào tạo nhân viên & Tối ưu hóa ROI.   |
+-----------------------------------------------------------------------------------+

Phân tích hiệu quả kinh tế và hoàn vốn (Cost-Benefit Analysis)

  • Chi phí chế tạo nguyên mẫu: Xấp xỉ $1.850.000\text{ VNĐ}$ (bao gồm cơ khí mica, động cơ, mạch điều khiển, pin và phụ kiện).
  • Chi phí vận hành và bảo trì: Tiêu thụ điện năng danh định $< 25\text{W}$ trên trạm điều khiển; chi phí thay thế cơ cấu kẹp và pin thấp.
  • Thời gian hoàn vốn (Payback Period): Ước tính từ $4 - 6\text{ tháng}$ khi áp dụng tại các xưởng may mặc/sản xuất linh kiện quy mô vừa và nhỏ để thay thế 1 công đoạn phân loại thủ công lặp lại.

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

Các hạn chế kỹ thuật hiện hữu

  • Độ nhạy cảm với dải quang thông môi trường: Việc sử dụng không gian màu HSV tĩnh vẫn có thể gặp hiện tượng nhận diện sai khi cường độ sáng phòng thay đổi đột ngột (dưới $150\text{ lux}$ hoặc trên $850\text{ lux}$).
  • Thông tin độ sâu 2D (Depth Ambiguity): Camera đơn (Monocular) không cung cấp tọa độ trục $Z$, hệ thống phải phụ thuộc vào cảm biến tiệm cận hồng ngoại để nhận biết chính xác thời điểm đóng tay kẹp.
  • Băng thông mạng không dây phụ thuộc: Nếu mạng Wi-Fi cục bộ bị nghẽn (Jitter $> 40\text{ ms}$), tín hiệu điều khiển có thể bị trễ, làm tăng sai số bám quỹ đạo của xe.

Hướng phát triển và mở rộng

  1. Nâng cấp thuật toán sang Deep Learning: Triển khai mô hình nén YOLOv8-Nano hoặc MobileNet-SSD để nhận diện đa dạng hình học và phân loại vật thể phức tạp thay vì chỉ dựa vào màu sắc.
  2. Tích hợp cảm biến đo sâu và LiDAR: Sử dụng cảm biến ToF (Time-of-Flight) hoặc Camera RGB-D (Intel RealSense) để tái tạo đám mây điểm 3D, hỗ trợ tính toán tọa độ gắp vật 6 bậc tự do (6-DoF Grasp Pose Estimation).
  3. Chuyển đổi giao thức truyền thông: Nâng cấp từ HTTP polling sang WebSocket hoặc MQTT qua giao thức ROS2 (Robot Operating System), cho phép quản lý đồng thời một đội xe (Swarm Robotics) trong nhà kho thông minh.

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

  • Sinh viên & Học viên ngành Tự động hóa / Cơ điện tử: Cung cấp tài liệu tham khảo thực tế về mô hình kết hợp phần cứng vi điều khiển giá rẻ với thị giác máy tính OpenCV và lý thuyết điều khiển tự động.
  • Kỹ sư phát triển hệ thống nhúng & IoT: Nắm bắt mô hình kiến trúc phân tán client-server, phương pháp tối ưu hóa độ trễ vòng lặp điều khiển kín qua kết nối không dây.
  • Doanh nghiệp vừa và nhỏ (SMEs): Cơ sở để nghiên cứu tự chế tạo các mô hình xe tự hành kéo hàng và phân loại bán tự động với chi phí đầu tư ban đầu cực thấp.
  • Nhà nghiên cứu học thuật: Cung cấp dữ liệu thực nghiệm về tác động của vùng chết (deadband) và bộ lọc hình thái học đối với tính ổn định của hệ thống dẫn động vi sai dựa trên thị giác.

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

1. Yêu cầu cấu hình tối thiểu của máy trạm xử lý ảnh là gì?

Máy trạm chỉ cần CPU từ Intel Core i3 (thế hệ 4 trở lên), RAM $4\text{ GB}$, hệ điều hành Windows 7/10 hoặc Ubuntu Linux 16.04+, Python 3.4+ cài đặt đầy đủ các thư viện opencv-python, numpy, httplib2. Hệ thống không bắt buộc trang bị GPU rời.

2. Làm thế nào để khắc phục hiện tượng trôi ngưỡng màu khi ánh sáng phòng thay đổi?

Có thể áp dụng giải thuật cân bằng biểu đồ mức xám (Histogram Equalization) trên kênh $V$ (Value) trước khi lọc ngưỡng, hoặc chuyển sang dùng thuật toán phân ngưỡng thích nghi (Adaptive Thresholding) kết hợp giao diện thanh trượt hiệu chuẩn trực tuyến theo thời gian thực.

3. Tại sao hệ thống lại dùng vi điều khiển ESP8266 thay vì Arduino Uno truyền thống?

ESP8266 tích hợp sẵn vi xử lý 32-bit mạnh mẽ xung nhịp $80\text{MHz}$ cùng khối truyền thông Wi-Fi chuẩn $802.11\text{ b/g/n}$, cho phép giao tiếp TCP/IP trực tiếp mà không cần gắn thêm khiên chắn (shield) mạng đắt đỏ và cồng kềnh như trên Arduino Uno.

4. Hệ thống có thể xử lý trường hợp có nhiều vật thể cùng màu trong khung hình không?

Trong phiên bản hiện tại, thuật toán sử dụng hàm max(contours, key=cv2.contourArea) để tự động chọn đối tượng có diện tích lớn nhất (vật thể ở gần camera nhất) nhằm tính toán tọa độ bám tâm và bỏ qua các đối tượng nhỏ hơn ở xa.

5. Chi phí bảo trì và thay thế linh kiện sau thời gian dài sử dụng như thế nào?

Toàn bộ linh kiện đều là module tiêu chuẩn công nghiệp phổ thông (GA25, L298N, SG90/MG996R, ESP8266) với tổng chi phí thay thế định kỳ ước tính dưới $200.000\text{ VNĐ/năm}$, đảm bảo tính khả thi cao trong triển khai thực tế.


Kết luận

Đồ án tốt nghiệp "Điều khiển Robot sử dụng xử lý ảnh" đã giải quyết trọn vẹn và nhất quán bài toán tích hợp liên ngành giữa Cơ điện tử, Công nghệ Vi điều khiển IoT và Thị giác máy tính. Bằng việc đề xuất kiến trúc tính toán phân tán giữa trạm xử lý ảnh OpenCV và vi điều khiển nhúng ESP8266, hệ thống đạt được hiệu năng nhận diện ổn định với độ trễ thấp ($69\text{ ms}$), độ chính xác phân loại $91.67%$, đồng thời tối ưu hóa đáng kể chi phí phần cứng. Đây là nền tảng kỹ thuật vững chắc mở ra tiềm năng ứng dụng sâu rộng trong các dây chuyền phân loại logistics tự động, hỗ trợ đắc lực cho tiến trình chuyển đổi số của các doanh nghiệp sản xuất trong kỷ nguyên Công nghiệp 4.0.