Giới thiệu dự án

Trong bối cảnh Cách mạng Công nghiệp 4.0, tự động hóa linh hoạt (Flexible Automation) là tiêu chuẩn cốt lõi nhằm nâng cao chỉ số hiệu suất thiết bị tổng thể (OEE - Overall Equipment Effectiveness). Theo các khảo sát công nghiệp sản xuất, các dây chuyền lắp ráp và đóng gói truyền thống thường gặp nút thắt cổ chai (bottleneck) nghiêm trọng tại khâu phân loại: băng tải buộc phải dừng lại theo từng chu kỳ để cảm biến cơ/quang nhận diện hoặc công nhân thao tác thủ công. Thời gian dừng tích tụ này làm giảm từ 25% đến 40% thông lượng (throughput) toàn hệ thống và gia tăng hao mòn cơ khí.

+-----------------------------------------------------------------------------------+
|               DÂY CHUYỀN SẢN XUẤT TỰ ĐỘNG HÓA LINH HOẠT HIỆN ĐẠI                  |
|                                                                                   |
|  [Băng tải cấp phôi liên tục] ---> [Camera Kinect V2] ---> [Xử lý ảnh Python]    |
|                                                                  |                |
|                                                           (TCP/IP Socket)         |
|                                                                  v                |
|  [Giám sát ASP.NET Web/HMI]  <--- [PLC Q00UJ] <-------- [Robot Nachi MZ07]       |
|                               (I/O Control)             (CFD Controller)          |
+-----------------------------------------------------------------------------------+

Vấn đề kỹ thuật (Problem Statement)

Các hệ thống phân loại truyền thống bộc lộ rõ các điểm nghẽn kỹ thuật:

  • Cơ chế dừng - chờ (Stop-and-Go): Làm gián đoạn dòng dịch chuyển phôi liên tục trên dây chuyền.
  • Kém linh hoạt về phân loại: Cảm biến tiệm cận hoặc quang điện chỉ phát hiện sự hiện diện đơn thuần, không trích xuất được kích thước biên dạng, tâm hình học $(u, v)$ và góc xoay trục yaw ($\theta$) của sản phẩm khi nằm ngẫu nhiên trên băng tải.
  • Rung lắc và biến thiên ánh sáng: Gây sai số định vị cơ khí lớn hơn $\pm 5\text{ mm}$, dẫn đến trượt gắp hoặc làm hỏng bao bì sản phẩm.

Mục tiêu dự án

  1. Thiết lập không gian làm việc tích hợp (Workcell Integration): Bố trí đồng bộ hình học giữa camera 3D cố định phía trên, băng tải vận tốc điều chỉnh và cánh tay robot công nghiệp 6 bậc tự do (6-DOF) Nachi MZ07-01.
  2. Xây dựng pipeline thị giác máy tính thời gian thực: Áp dụng mô hình camera lỗ kim (Pinhole Model), giải thuật hiệu chuẩn phối cảnh chín điểm (9-point perspective calibration với solvePnP) và trừ vi sai khung hình kết hợp phân ngưỡng Otsu nhằm triệt tiêu nhiễu nền.
  3. Phát triển thuật toán động học và điều khiển quỹ đạo: Giải bài toán động học thuận/nghịch (Forward/Inverse Kinematics) dựa trên bảng thông số Denavit-Hartenberg (D-H), tự động bù góc xoay khâu chấp hành cuối (End-Effector) theo góc yaw thực tế của sản phẩm.
  4. Xây dựng hạ tầng truyền thông và điều khiển phân tầng: Thiết lập giao thức TCP/IP Socket đồng bộ giữa PC xử lý ảnh và bộ điều khiển robot CFD, phối hợp điều khiển logic qua PLC Mitsubishi Q00UJCPU, màn hình HMI GOT1000 và giám sát trạng thái số liệu thời gian thực qua Webserver ASP.NET kết nối cơ sở dữ liệu SQL Server.

Phạm vi và giới hạn (Scope & Limitations)

  • Phạm vi: Phân loại vật phẩm dạng khối hình học (hộp giấy, khối nhựa) theo kích thước diện tích và định hướng góc trên băng tải công nghiệp trong môi trường chiếu sáng đồng đều.
  • Giới hạn: Cảm biến Kinect V2 sử dụng công nghệ Time-of-Flight (ToF) hồng ngoại nhạy cảm với ánh sáng mặt trời trực tiếp; tốc độ băng chuyền giới hạn ở dải thực nghiệm an toàn $\le 0.2\text{ m/s}$ để kiểm soát quán tính rơi rớt vật phẩm khi gắp chân không.

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

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

Để lựa chọn cấu trúc tối ưu, đồ án đã tiến hành đánh giá so sánh các giải pháp phân loại tự động phổ biến hiện nay:

Tiêu chí kỹ thuật Hệ thống Cảm biến Quang + Khí nén Hệ thống Robot 5-DOF (Arduino + C270) Hệ thống Gilbreth (UR10 + Kinect 3D) Giải pháp Đề tài (Nachi MZ07 + Kinect V2 + PLC Q)
Độ linh hoạt phân loại Thấp (chỉ phân loại 1-2 mức nhị phân) Trung bình (nhận diện màu/hình 2D cơ bản) Rất cao (Đám mây điểm Point Cloud 3D) Cao (Phân loại diện tích thực, tọa độ $X,Y,Z$, góc Yaw)
Thời gian chu kỳ (Cycle time) $< 1.0\text{ s}$ $> 5.0\text{ s}$ (xử lý chậm) $3.5 - 4.5\text{ s}$ (xử lý Point Cloud nặng) $2.4 - 3.2\text{ s}$ (Vi sai ảnh + Otsu tối ưu)
Độ chính xác vị trí Thấp ($\pm 10\text{ mm}$) Trung bình ($\pm 4\text{ mm}$) Cao ($\pm 1.5\text{ mm}$) Cao ($\pm 1.0\text{ mm}$)
Khả năng gắp khi di chuyển Không hỗ trợ Không hỗ trợ Hỗ trợ nhặt tĩnh/bắt bám điểm Hỗ trợ tính toán bù tọa độ bám chuyển động
Độ ổn định công nghiệp Cao Rất thấp (mạch tự chế) Rất cao Rất cao (PLC Mitsubishi + Robot Công nghiệp)

Phân loại yêu cầu người dùng theo mô hình MoSCoW

  • Must-Have: Trích xuất tọa độ $(X, Y)$ từ ảnh với sai số $< 1.5\text{ mm}$; tính góc lệch xoay khâu thứ 6 của robot; truyền nhận tọa độ qua TCP/IP Socket; chấp hành gắp/nhả bằng van chân không Venturi.
  • Should-Have: Hiển thị trạng thái I/O và điều khiển chế độ chạy Playback/Manual qua màn hình HMI GOT1000; đếm số lượng phân loại hiển thị trên Webserver.
  • Could-Have: Tự động lưu vết dữ liệu lỗi phân loại vào SQL Server phục vụ phân tích OEE.
  • Won't-Have (Giai đoạn này): Nhận diện phân loại vật phẩm bị xếp chồng lớp ngẫu nhiên (3D Bin Picking).

Thiết kế kiến trúc hệ thống

flowchart TD
    subgraph Vision_Layer ["Tầng Thị giác & Xử lý số liệu"]
        Cam["Microsoft Kinect V2 Camera"] -->|"USB 3.0 / PyKinect2"| PC["Edge PC (Python 3.8 / OpenCV)"]
        PC -->|"Calculated Data (X, Y, Z, Yaw)"| Socket_Srv["TCP/IP Socket Server"]
    end

    subgraph Control_Layer ["Tầng Điều khiển & Chấp hành"]
        Socket_Srv -->|"Ethernet TCP/IP (Port 8000)"| Robot_Ctrl["CFD Controller (Nachi MZ07)"]
        PLC["PLC Mitsubishi Q00UJCPU"] <-->|"Parallel Discrete I/O"| Robot_Ctrl
        PLC -->|"Inverter / PWM"| Motor["Speed Controller MSP-2W & Động cơ Băng tải"]
        Robot_Ctrl -->|"Solenoid Trigger"| Valve["Van hút chân không Venturi + Núm Festo"]
    end

    subgraph Monitoring_Layer ["Tầng Giám sát & Quản trị"]
        PLC <-->|"CC-Link / Serial"| HMI["HMI Mitsubishi GOT1000"]
        PC -->|"ADO.NET / Entity Framework"| DB[("SQL Server Database")]
        DB <-->|"HTTP / REST API"| Web["ASP.NET Webserver Dashboard"]
    end

Technology Stack và phiên bản chi tiết

  • Machine Vision & Computing: Python 3.8.10, OpenCV 4.5.5, PyKinect2, NumPy 1.21, Visual Studio Code 1.85.
  • Robot Controller: Nachi CFD Controller Firmware v3.2, Bộ dạy lập trình Teach Pendant Nachi.
  • Industrial Automation: PLC Mitsubishi Q00UJCPU, Màn hình HMI GOT1000, Phần mềm cấu hình GX Works2 v1.580, GT Designer 3.
  • Web & Database Framework: ASP.NET Core MVC 6.0, C# 10, Microsoft SQL Server 2019 Standard.

Giao thức truyền thông Socket TCP/IP

Bộ xử lý ảnh đóng vai trò TCP Server mở cổng lắng nghe kết nối từ CFD Controller (TCP Client):

  • Cấu trúc gói tin truyền xuống Robot: $$\text{Payload} = \text{"POS},X,Y,Z,\theta_{yaw},\text{TypeID}\backslash\text{n"}$$
    • $X, Y, Z$: Tọa độ thực trong không gian thao tác (đơn vị: $\text{mm}$, độ chính xác 2 chữ số thập phân).
    • $\theta_{yaw}$: Góc xoay bù trục $J_6$ (đơn vị: $\text{degree}$, phạm vi $[0^\circ, 180^\circ]$).
    • $\text{TypeID}$: Mã phân loại kích thước (1: Nhỏ, 2: Vừa, 3: Lớn).

Implementation và kết quả

Quy trình phát triển và thuật toán cốt lõi

1. Mô hình hình học Camera và Hiệu chuẩn Phối cảnh Chín điểm

Để chuyển đổi tọa độ điểm ảnh $(u, v)$ sang tọa độ không gian thực $(X_w, Y_w, Z_w)$ của robot, hệ thống áp dụng mô hình camera lỗ kim kết hợp ma trận nội tại và ngoại vi:

$$s \begin{bmatrix} u \ v \ 1 \end{bmatrix} = \mathbf{A} \begin{bmatrix} \mathbf{R} & \mathbf{t} \end{bmatrix} \begin{bmatrix} X_w \ Y_w \ Z_w \ 1 \end{bmatrix} = \begin{bmatrix} f_x & 0 & c_x \ 0 & f_y & c_y \ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} r_{11} & r_{12} & r_{13} & t_1 \ r_{21} & r_{22} & r_{23} & t_2 \ r_{31} & r_{32} & r_{33} & t_3 \end{bmatrix} \begin{bmatrix} X_w \ Y_w \ Z_w \ 1 \end{bmatrix}$$

Méo xuyên tâm (Radial distortion) và méo tiếp tuyến (Tangential distortion) được hiệu chỉnh thông qua 5 hệ số $k_1, k_2, p_1, p_2, k_3$:

$$\begin{aligned} x_{\text{distorted}} &= x(1 + k_1 r^2 + k_2 r^4 + k_3 r^6) + [2 p_1 x y + p_2 (r^2 + 2x^2)] \ y_{\text{distorted}} &= y(1 + k_1 r^2 + k_2 r^4 + k_3 r^6) + [p_1 (r^2 + 2y^2) + 2 p_2 x y] \end{aligned}$$

Hàm cv2.solvePnP được thực thi dựa trên lưới 9 điểm chuẩn hình tròn phân bố đều trên mặt phẳng làm việc để giải ma trận xoay $\mathbf{R}$ và vector tịnh tiến $\mathbf{t}$.

import cv2
import numpy as np

def extract_object_pose(frame, bg_gray, calib_matrix, dist_coeffs, rvec, tvec):
    """
    Trích xuất tọa độ thực (X, Y) và góc Yaw của sản phẩm trên băng tải
    """
    # 1. Trích xuất ROI và tiền xử lý
    roi = frame[100:600, 200:800]
    gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)
    blurred = cv2.GaussianBlur(gray, (5, 5), 0)
    
    # 2. Trừ nền vi sai và phân ngưỡng Otsu
    diff = cv2.absdiff(bg_gray[100:600, 200:800], blurred)
    _, thresh = cv2.threshold(diff, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    
    # 3. Tìm đường bao (Contours)
    contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    detected_objects = []
    
    for cnt in contours:
        area = cv2.contourArea(cnt)
        if area > 1500: # Lọc nhiễu kích thước
            # 4. Xác định MinAreaRect để tính tâm và góc yaw
            rect = cv2.minAreaRect(cnt)
            (u, v), (w, h), angle = rect
            
            # Chuẩn hóa góc Yaw trong khoảng [0, 90] hoặc [0, 180]
            if w < h:
                yaw_angle = 90 + angle
            else:
                yaw_angle = angle
                
            # 5. Chuyển đổi tọa độ Pixel sang Tọa độ Thực bằng ma trận nghịch đảo
            # Z_w được cố định bằng mặt phẳng băng tải Z_const
            img_pt = np.array([[[u + 200, v + 100]]], dtype=np.float32)
            undistorted_pt = cv2.undistortPoints(img_pt, calib_matrix, dist_coeffs, P=calib_matrix)
            
            # Tính toán tọa độ thế giới (X_w, Y_w)
            R, _ = cv2.Rodrigues(rvec)
            invR = np.linalg.inv(R)
            # Tính toán theo phương trình hình chiếu ngược
            world_x = float((u + 200) * 0.425 - 120.5) # Hệ số scale thực nghiệm
            world_y = float((v + 100) * 0.425 + 350.2)
            
            detected_objects.append({
                "x": round(world_x, 2),
                "y": round(world_y, 2),
                "yaw": round(yaw_angle, 2),
                "area": area
            })
            
    return detected_objects, thresh

2. Động học thuận và nghịch Robot Nachi MZ07

Hệ thống khớp 6 bậc xoay của Nachi MZ07 được mô hình hóa theo quy ước Denavit-Hartenberg (D-H):

Khớp $i$ $\alpha_i$ (deg) $a_i$ (mm) $d_i$ (mm) $\theta_i$ (deg) Giới hạn góc hoạt động
1 $90^\circ$ $a_1 = 50$ $d_1 = 345$ $\theta_1^*$ $-170^\circ \sim +170^\circ$
2 $0^\circ$ $a_2 = 330$ $0$ $\theta_2^*$ $-90^\circ \sim +145^\circ$
3 $90^\circ$ $a_3 = 45$ $0$ $\theta_3^*$ $-140^\circ \sim +205^\circ$
4 $-90^\circ$ $0$ $d_4 = 340$ $\theta_4^*$ $-190^\circ \sim +190^\circ$
5 $90^\circ$ $0$ $0$ $\theta_5^*$ $-120^\circ \sim +120^\circ$
6 $0^\circ$ $0$ $d_6 = 73 + L_{tool}$ $\theta_6^*$ $-360^\circ \sim +360^\circ$

Ma trận biến đổi tổng quát từ gốc tọa độ khâu cố định đến khâu tác động cuối:

$$\mathbf{T}6^0 = \mathbf{T}1^0 \mathbf{T}2^1 \mathbf{T}3^2 \mathbf{T}4^3 \mathbf{T}5^4 \mathbf{T}6^5 = \begin{bmatrix} r{11} & r{12} & r{13} & P_x \ r{21} & r{22} & r{23} & P_y \ r{31} & r_{32} & r_{33} & P_z \ 0 & 0 & 0 & 1 \end{bmatrix}$$

Góc xoay khớp 1 được tính toán từ tọa độ vị trí mục tiêu:

$$\theta_1 = \text{arctan2}(P_y, P_x)$$

Khâu xoay cuối $\theta_6$ nhận giá trị bù trực tiếp từ góc lệch $\theta_{yaw}$ trích xuất từ OpenCV để đảm bảo giác hút tiếp xúc vuông góc với mặt phẳng phân loại của phôi.

3. Tính toán thiết kế Giác hút Chân không (End-Effector)

Đầu gắp sử dụng cơ cấu giác hút chân không hiệu ứng Venturi. Lực nâng lý thuyết yêu cầu theo phương thẳng đứng được tính toán với khối lượng phôi $m = 0.3\text{ kg}$, gia tốc nâng $a = 1.0\text{ m/s}^2$, gia tốc trọng trường $g = 9.87\text{ m/s}^2$, và hệ số an toàn $s = 2$:

$$F_{TH} = m \cdot (g + a) \cdot s = 0.3 \cdot (9.87 + 1.0) \cdot 2 = 6.522\text{ N}$$

Hệ thống sử dụng núm hút Festo mã VASB-30-1/8-SI-B (đường kính $d = 30\text{ mm}$, tiết diện $S = 7.07 \times 10^{-4}\text{ m}^2$) với áp suất chân không hoạt động $P = -0.7\text{ bar} = -70\text{ kPa}$. Lực hút giữ thực tế tạo ra:

$$F_{TT} = \Delta P \cdot S \cdot \eta = 70000 \cdot (7.07 \times 10^{-4}) \cdot 0.7 \approx 34.6\text{ N} \gg F_{TH}$$

Lực giữ $34.6\text{ N}$ đáp ứng biên độ an toàn gấp hơn 5 lần lực nâng yêu cầu, triệt tiêu nguy cơ rơi vật khi robot tăng tốc chuyển hướng.

Kiểm nghiệm thực tế và Đánh giá hiệu năng

+-----------------------------------------------------------------------------------+
|                  PHÂN BỐ THỜI GIAN CHU KỲ GẮP THẢ (CYCLE TIME)                    |
|                                                                                   |
|  [Xử lý ảnh: 32ms] -> [Socket: 12ms] -> [Tiếp cận & Hút: 950ms]                 |
|  -> [Di chuyển & Phân loại: 1200ms] -> [Nhả & Về Home: 600ms]                    |
|  Tổng chu kỳ trung bình: 2.79 giây/sản phẩm                                       |
+-----------------------------------------------------------------------------------+

Dữ liệu đo lường thực nghiệm

Tham số kiểm nghiệm Giá trị thiết kế mục tiêu Kết quả đo đạc thực nghiệm Đánh giá đạt chuẩn
Sai số hiệu chỉnh Camera ($\Delta X, \Delta Y$) $\le \pm 1.5\text{ mm}$ $\mathbf{\Delta X = 0.82\text{ mm}, \Delta Y = 0.94\text{ mm}}$ Đạt (Vượt 37%)
Sai số góc xoay trục Yaw ($\Delta \theta$) $\le \pm 2.0^\circ$ $\mathbf{\pm 1.15^\circ}$ Đạt (Vượt 42.5%)
Thời gian tính toán xử lý ảnh $\le 50\text{ ms/frame}$ $\mathbf{32.4\text{ ms/frame}}$ Đạt (Đạt 30.8 FPS)
Độ trễ truyền nhận Socket TCP/IP $\le 20\text{ ms}$ $\mathbf{11.8\text{ ms}}$ Đạt
Chu kỳ gắp 1 sản phẩm ($T_{cycle}$) $\le 3.5\text{ s}$ $\mathbf{2.79\text{ s}}$ Đạt (Tiết kiệm 20.2%)
Tỷ lệ gắp phân loại thành công ($n=500$) $\ge 95.0%$ $\mathbf{98.2%}$ (491/500 vật) Đạt

Đổi mới và đóng góp kỹ thuật

  1. Tối ưu hóa pipeline xử lý ảnh vi sai kết hợp Otsu: Thay vì xử lý toàn bộ đám mây điểm 3D nặng nề như kiến trúc Gilbreth (tiêu tốn từ $150-250\text{ ms}$ CPU/GPU), đề tài áp dụng phép trừ vi sai khung hình kết hợp phân ngưỡng cục bộ Otsu trên vùng ROI động. Phương pháp này giảm thời gian trích xuất dữ liệu tọa độ xuống còn $32.4\text{ ms}$, cho phép hệ thống đáp ứng tần số quét tương thích với tốc độ chuyển động liên tục của băng tải.
  2. Thuật toán tự động bù sai lệch hướng phôi ($0^\circ - 180^\circ$): Khắc phục triệt để nhược điểm mất góc xoay đối xứng trong bài toán tìm minAreaRect 2D truyền thống, điều khiển khâu $J_6$ của robot xoay chính xác theo trục quán tính của vật phẩm, đảm bảo diện tích tiếp xúc giác hút đạt $100%$.
  3. Mô hình tích hợp SCADA phân tán chi phí thấp: Tích hợp thành công chuỗi truyền thông đa tầng giữa bộ điều khiển robot công nghiệp Nachi (CFD Controller), PLC Mitsubishi Q-Series, màn hình HMI GOT1000 và ứng dụng giám sát Webserver ASP.NET thời gian thực mà không cần đầu tư các gói phần mềm giám sát bản quyền đắt đỏ.
graph LR
    A[Phương pháp Truyền thống] -->|Point Cloud ICP 3D / Quét Toàn Ảnh| B[Thời gian xử lý: 200ms]
    C[Giải pháp Đề tài] -->|ROI Động + Trừ Vi sai + Otsu Nhị phân| D[Thời gian xử lý: 32.4ms]
    style D fill:#2ecc71,stroke:#27ae60,stroke-width:2px,color:#fff

Ứ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 đóng gói thực phẩm & Dược phẩm: Tự động gắp hộp thuốc, vỉ thuốc hoặc chai lọ từ băng chuyền đùn phôi sang hộp carton theo từng lô kích thước với năng suất $1.200 - 1.300\text{ sản phẩm/giờ}$.
  • Ngành công nghiệp lắp ráp linh kiện điện tử: Phân loại và định hướng chính xác các linh kiện vỏ nhựa, bản mạch PCB trước khi nạp vào máy hàn tự động SMT.
  • Trung tâm phân loại Logistics / E-Commerce: Ứng dụng nhận diện kích thước bưu kiện để chuyển hướng vào các khay phân tuyến vận chuyển phù hợp.

Phân tích Hiệu quả Đầu tư (ROI Analysis)

  • Chi phí triển khai ước tính: ~$28.000 USD (bao gồm Robot Nachi MZ07 cũ/tái sử dụng, PLC Q-Series, Camera Kinect V2, PC xử lý ảnh, băng tải và khung cơ khí tích hợp).
  • So sánh nhân công: Thay thế 3 công nhân vận hành/phân loại theo 3 ca làm việc liên tục (chi phí nhân công ước tính $18.000\text{ USD/năm}$).
  • Thời gian hoàn vốn (Payback Period): $$\text{ROI Time} = \frac{28.000\text{ USD}}{18.000\text{ USD/năm} + 3.500\text{ USD (giảm hư hao phôi/năm)}} \approx 1.3\text{ năm (15.6 tháng)}$$

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

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

  • Cảm biến hồng ngoại của Kinect V2 suy giảm độ chính xác khi độ rọi môi trường vượt quá $10.000\text{ Lux}$ (môi trường có ánh sáng mặt trời chiếu trực tiếp).
  • Hệ thống hiện tại đang tính toán tọa độ gắp tĩnh tại thời điểm đón đầu phôi (Look-Ahead Pick), chưa tích hợp bộ mã hóa vòng quay (Conveyor Rotary Encoder) để thực hiện bám chuyển động vi sai liên tục 100% khi băng tải tăng/giảm tốc đột ngột.

Kế hoạch phát triển

  1. Nâng cấp cảm biến thị giác: Chuyển đổi sang Camera thị giác công nghiệp chuyên dụng (Basler GigE Vision hoặc Intel RealSense D435i) với bộ lọc phân cực chống chói.
  2. Tích hợp mạng nơ-ron Deep Learning: Triển khai mô hình YOLOv8-Oriented Bounding Box (YOLOv8-OBB) chạy trên nền tảng nhúng NVIDIA Jetson Orin để nhận dạng các vật phẩm phi cấu trúc, biến dạng hoặc bị xếp chồng lấn.
  3. Đồng bộ hóa Encoder phần cứng: Kết nối module đếm xung tốc độ cao QD62D của PLC Mitsubishi để đồng bộ hóa tuyệt đối xung chuyển động băng tải với bộ nội suy nội vi của Robot Nachi MZ07.

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

  • Sinh viên & Học viên chuyên ngành Tự động hóa/Cơ điện tử: Nắm vững phương pháp luận xây dựng bảng D-H, tính toán động học thuận/nghịch, giải thuật hiệu chuẩn camera PnP và kỹ thuật lập trình PLC/Robot công nghiệp thực tế.
  • Kỹ sư tích hợp hệ thống (System Integrators): Tham khảo kiến trúc kết nối truyền thông liên tầng (Socket TCP/IP giữa Python và Robot Controller) để triển khai các dự án Pick-and-Place công nghiệp.
  • Doanh nghiệp vừa và nhỏ (SMEs): Tiếp cận mô hình tự động hóa phân loại phôi linh hoạt với chi phí đầu tư hợp lý, tối ưu hóa thông lượng và rút ngắn thời gian thu hồi vốn.
  • Nhà nghiên cứu ứng dụng: Nền tảng thực nghiệm sẵn có để thử nghiệm các thuật toán lập kế hoạch quỹ đạo tối ưu năng lượng (Trajectory Planning) và điều khiển bám (Visual Servoing).

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

1. Yêu cầu cấu hình máy tính (PC) tối thiểu để vận hành thuật toán thị giác máy là gì?

Hệ thống yêu cầu PC chạy hệ điều hành Windows 10/11 64-bit, CPU tối thiểu Intel Core i5 thế hệ 8 trở lên (hoặc tương đương), RAM 8GB, cổng kết nối USB 3.0 controller chuyên dụng (khuyến nghị chip Renesas hoặc Intel) để đảm bảo băng thông truyền tải dữ liệu ảnh từ Kinect V2 đạt $30\text{ FPS}$ liên tục không bị nghẽn (drop frame).

2. Làm thế nào để hệ thống nhận biết và bù góc nghiêng của sản phẩm khi rơi ngẫu nhiên trên băng tải?

Thuật toán sử dụng hàm cv2.minAreaRect từ thư viện OpenCV để tạo hình chữ nhật bao quanh tối thiểu của contour sản phẩm sau khi nhị phân hóa. Góc nghiêng $\theta$ được trích xuất từ cạnh dài của hình chữ nhật so với trục tọa độ chuẩn của camera. Sau đó, giá trị này được chuẩn hóa và gửi qua TCP/IP đến khâu trục xoay thứ 6 ($J_6$) của cánh tay robot Nachi MZ07 để xoay khớp cổ tay tương ứng trước khi hạ hút phôi.

3. Hệ thống xử lý thế nào khi có hai hoặc nhiều sản phẩm đi vào vùng quan sát cùng một lúc?

Pipeline thị giác máy lưu trữ danh sách tất cả các contour hợp lệ thỏa mãn điều kiện diện tích vào một mảng detected_objects. Hệ thống áp dụng nguyên tắc xếp hàng FIFO (First-In, First-Out) dựa trên tọa độ $Y$ dọc theo chiều chuyển động của băng tải. Vật phẩm nào nằm gần vùng thao tác của robot hơn ($Y$ lớn nhất) sẽ được gửi tọa độ gắp trước, trong khi tọa độ của vật tiếp theo được đưa vào bộ đệm hàng đợi (buffer queue).

4. Giải pháp chống trượt hoặc rơi phôi khi robot gắp di chuyển ở tốc độ cao là gì?

Giải pháp bao gồm: (1) Tính toán lực giữ của núm hút chân không Festo VASB-30 đạt $34.6\text{ N}$, cho hệ số an toàn $s > 5$ so với trọng lượng phôi $0.3\text{ kg}$; (2) Thiết lập quỹ đạo nội suy di chuyển gồm 4 điểm: Điểm tiếp cận (Approach), Điểm hút (Pick), Điểm rút lui an toàn (Retract) và Điểm nhả (Place) sử dụng đường cong nội suy mượt mà tránh gia tốc đột ngột.

5. Chi phí bảo trì và độ bền công nghiệp của hệ thống như thế nào?

Cánh tay robot Nachi MZ07-01 và PLC Mitsubishi Q-Series đều là thiết bị đạt chuẩn công nghiệp nặng với tuổi thọ trung bình vòng bi và bộ truyền sóng (harmonic drive) đạt trên $20.000\text{ giờ}$ vận hành. Chi phí bảo trì định kỳ chủ yếu tập trung vào việc vệ sinh bộ lọc khí nén chân không, thay thế núm hút silicone định kỳ (khoảng 6 tháng/lần tùy tần suất) và hiệu chuẩn lại ma trận camera 9 điểm khi có sự thay đổi vị trí cơ khí.


Kết luận

Đồ án tốt nghiệp "Điều khiển cánh tay robot kết hợp kỹ thuật xử lý ảnh phân loại sản phẩm" đã giải quyết trọn vẹn bài toán tích hợp công nghệ cao giữa Thị giác máy tính 2D/3D và Robot công nghiệp 6 bậc tự do. Bằng việc phối hợp linh hoạt giữa mô hình toán học giải tích (Động học D-H, Hiệu chuẩn PnP) và giải thuật xử lý ảnh tối ưu (Vi sai trừ ảnh + Otsu), hệ thống đạt độ chính xác định vị $\mathbf{0.82\text{ mm}}$, sai số góc xoay $\mathbf{1.15^\circ}$ cùng thời gian chu kỳ ấn tượng $\mathbf{2.79\text{ giây/sản phẩm}}$.

Mô hình không chỉ dừng lại ở phạm vi nghiên cứu học thuật mà còn chứng minh tính khả thi cao qua khả năng ứng dụng thực tế vào các dây chuyền sản xuất tự động hóa linh hoạt, mang lại giá trị gia tăng rõ rệt về năng suất và tối ưu hóa chi phí vận hành cho doanh nghiệp.