Giới thiệu dự án
Trong bối cảnh cuộc Cách mạng Công nghiệp 4.0 và xu hướng chuyển dịch mạnh mẽ sang mô hình Smart Factory, các dây chuyền sản xuất tự động đòi hỏi tính linh hoạt cao, chu kỳ vận hành ngắn và khả năng tự thích ứng với các biến thể sản phẩm. Theo thống kê của Hiệp hội Robot Quốc tế (IFR), các dòng cánh tay robot công nghiệp SCARA (Selective Compliance Assembly Robot Arm) chiếm hơn $30%$ thị phần robot lắp ráp và phân loại nhờ ưu thế vượt trội về tốc độ, độ lặp lại cao trên mặt phẳng ngang ($XY$) và độ cứng vững theo trục thẳng đứng ($Z$).
Tuy nhiên, các hệ sinh thái phân loại truyền thống chủ yếu dựa vào cữ chặn cơ khí cố định hoặc hệ thống thị giác 2D cơ bản. Phương pháp này bộc lộ nhiều hạn chế nghiêm trọng khi sản phẩm có độ cao thay đổi, vị trí đặt ngẫu nhiên hoặc xuất hiện sai lệch góc xoay. Sự kết hợp giữa bộ điều khiển lập trình logic công nghiệp PLC (Programmable Logic Controller), bộ điều khiển chuyển động chuyên dụng (Motion Controller) và công nghệ thị giác máy tính 3D (3D Computer Vision) dựa trên học sâu (Deep Learning) trở thành giải pháp then chốt nhằm giải quyết triệt để bài toán này.
+-----------------------------------------------------------------------------+
| KIẾN TRÚC TỔNG QUAN HỆ THỐNG |
+-----------------------------------------------------------------------------+
| [Intel RealSense D435] ---> (RGB-D Stream) ---> [Edge AI / Python YOLOv8] |
| | |
| (MC Protocol Frame 3E / TCP/IP) |
| v |
| [HMI GT Designer3] <---> [PLC Q26UDVCPU] <===> [Motion CPU Q172DSCPU] |
| | |
| (SSCNET III Optical) |
| v |
| [Robot SCARA YK600XG] <--- (Servo Motors) <--- [Driver MR-J4W2 / MR-J3W] |
+-----------------------------------------------------------------------------+
Mục tiêu đề tài
- Thiết kế và tích hợp phần cứng cơ điện tử: Xây dựng trạm phân loại hoàn chỉnh gồm cơ cấu Robot SCARA YK600XG (Yamaha), hệ thống truyền động AC Servo Mitsubishi đa trục, băng tải cấp phôi và cơ cấu chấp hành nam châm điện.
- Xây dựng kiến trúc điều khiển đa CPU: Tích hợp khối điều khiển lập trình Mitsubishi Q26UDVCPU và bộ điều khiển chuyển động chuyên dụng Q172DSCPU qua bus nội bộ nền tảng Base Q38DB, đồng bộ dữ liệu qua mạng quang tốc độ cao SSCNET III.
- Mô hình hóa và giải bài toán động học: Thiết lập hệ trục tọa độ theo chuẩn Denavit – Hartenberg (D-H), giải phương trình động học thuận (Forward Kinematics) và động học nghịch (Inverse Kinematics) với thuật toán đại số tối ưu.
- Phát triển hệ thống thị giác 3D thông minh: Ứng dụng mô hình YOLOv8 kết hợp camera chiều sâu Intel RealSense D435 để nhận dạng, phân loại vật thể (hộp pate thấp và hộp cá cao) và trích xuất tọa độ không gian 3D $(X_c, Y_c, Z_c)$.
- Đồng bộ hóa giao tiếp công nghiệp: Thiết lập kết nối Ethernet thời gian thực giữa máy tính xử lý thị giác (Python) và PLC thông qua chuẩn giao thức truyền thông MC Protocol (Mitsubishi Communication Protocol) Frame 3E.
- Thực nghiệm và đánh giá chỉ số vận hành: Đạt chu kỳ gắp thả (Cycle time) $< 3.0\text{ s/vật}$, độ chính xác phân loại $> 95%$, sai số định vị vị trí không quá $\pm 1.5\text{ mm}$.
Phạm vi và giới hạn đề tài
- Đối tượng thao tác: Vật phẩm có thành phần kim loại từ tính (hộp pate, hộp cá) phù hợp với cơ cấu gắp bằng nam châm điện DC.
- Không gian hoạt động: Robot hoạt động trong vùng bao làm việc hữu dụng bán kính $600\text{ mm}$, giới hạn góc quay khớp $1$ từ $135^\circ$ đến $270^\circ$, khớp $2$ từ $128^\circ$ đến $232^\circ$, hành trình trục trượt $Z$ từ $-180\text{ mm}$ đến $180\text{ mm}$.
- Môi trường hoạt động: Hệ thống được kiểm chuẩn trong điều kiện ánh sáng phòng thí nghiệm ổn định (300 - 500 Lux), băng tải cấp phôi dạng tịnh tiến một chiều.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
Giải pháp cữ cơ khí cố định |
Camera 2D công nghiệp + PLC |
Giải pháp đề xuất: Camera 3D D435 + YOLOv8 + Q172DSCPU |
| Độ linh hoạt sản phẩm |
Cực thấp (phải gia công lại cữ khi đổi mẫu) |
Trung bình (chỉ nhận diện mặt phẳng $XY$, phụ thuộc ánh sáng) |
Cực cao (nhận dạng bằng Deep Learning, xử lý linh hoạt tọa độ $XYZ$) |
| Phân biệt biến thể chiều cao |
Hạn chế (cần thêm cảm biến quang/tiệm cận) |
Không thể trích xuất trực tiếp chiều sâu ($Z$) |
Tự động phân tích Point Cloud và Depth Map thời gian thực |
| Thời gian chuyển đổi (Changeover) |
30 - 60 phút |
10 - 15 phút (cài đặt lại template matching) |
< 1 phút (chỉ cần nạp trọng số mô hình hoặc thêm nhãn) |
| Độ tin cậy khi phôi bị lệch góc |
Kẹt phôi, dễ gây dừng chuyền |
Giảm độ chính xác nhận dạng khi bóng đổ thay đổi |
Nhận dạng bounding box và trích xuất tâm chính xác $> 96%$ |
| Chi phí đầu tư phần cứng |
Thấp |
Rất cao đối với Smart Camera chuyên dụng |
Tối ưu chi phí nhờ tận dụng Edge AI và cảm biến RGB-D tiêu chuẩn |
Phân loại yêu cầu hệ thống theo mô hình MoSCoW
- Must-Have (Bắt buộc): Điều khiển nội suy mượt mà 3 trục robot qua mạng SSCNET III; Nhận dạng chính xác 2 loại vật thể với độ chính xác $> 90%$; Giao tiếp MC Protocol truyền nhận dữ liệu liên tục không nghẽn mạng; Giao diện HMI giám sát trạng thái và điều khiển chế độ Manual/Auto.
- Should-Have (Nên có): Tự động tính toán bù sai số giữa hệ tọa độ camera và robot (Hand-Eye Calibration); Cơ chế khóa an toàn liên động (Interlock) chống va đập giới hạn mềm phần mềm.
- Could-Have (Có thể mở rộng): Thuật toán quy hoạch quỹ đạo nội suy đường cong S-Curve nhằm giảm rung chấn cơ khí; Ghi nhật ký vận hành (Data logging) lên máy chủ SQL.
- Won't-Have (Chưa thực hiện ở giai đoạn này): Cơ cấu gắp hút chân không cho vật thể phi kim; Thuật toán Conveyor Tracking bám theo vật khi băng tải đang chạy liên tục ở tốc độ cao.
+-----------------------------------------------------------------------------------+
| SƠ ĐỒ PHÂN BỔ TRUYỀN THÔNG VÀ DỮ LIỆU |
+-----------------------------------------------------------------------------------+
| |
| [Intel RealSense D435] |
| | (USB 3.0 / 60 FPS) |
| v |
| [Edge Computer: Python 3.10 / YOLOv8 / OpenCV] |
| | |
| | (Ethernet TCP/IP - MC Protocol Frame 3E / Command 0401) |
| v |
| [Q26UDVCPU - Main PLC] <======== (Base Bus Q38DB) ========> [Q172DSCPU - Motion] |
| | | |
| | (Digital I/O) | (SSCNET) |
| v v |
| [Module QY42P / Relay] [MR-J4W2-22B / MR-J3W] |
| | (24VDC Control) | |
| v v |
| [Nam châm điện DC] [HF-KP053 / HG-MR43BJ] |
| |
+-----------------------------------------------------------------------------------+
Danh mục công nghệ và phiên bản phần mềm (Technology Stack)
- Bộ xử lý điều khiển trung tâm: CPU PLC Mitsubishi Q26UDVCPU kết hợp CPU Điều khiển chuyển động Q172DSCPU trên Rack Base Q38DB (Bộ nguồn Q61P: 100–240VAC, đầu ra 5VDC 6A).
- Module xuất tín hiệu số: Mitsubishi QY42P (64 ngõ ra Transistor Sink type, 12-24VDC 0.1A).
- Bộ khuếch đại và Động cơ Servo: Mitsubishi MR-J4W2-22B (2 trục nội suy) và MR-J3W-44B; Động cơ servo HF-KP053, HG-MR43BJ, HF-KP23G7, HG-KR23 có tích hợp Encoder quang tuyệt đối/tương đối độ phân giải cao ($262,144\text{ pulses/rev}$ hoặc $4,194,304\text{ pulses/rev}$).
- Hạ tầng Robot & Cảm biến: Cánh tay Robot SCARA YK600XG Yamaha (khâu $l_1 = 300\text{ mm}$, $l_2 = 300\text{ mm}$); Camera chiều sâu Intel RealSense Depth Camera D435 (công nghệ Active IR Stereo, tầm đo $0.2\text{ m} - 3.0\text{ m}$).
- Môi trường phát triển phần mềm:
- PLC & Motion: MELSOFT GX Works2 (v1.595V), MT Developer2 (v1.140W - lập trình Motion SFC), GT Designer3 (v1.280S - thiết kế giao diện HMI), MR Configurator2 (v1.70Y - tuning thông số servo).
- Thị giác máy tính: Python 3.10.12, Ultralytics YOLOv8 (v8.0.220), OpenCV (v4.8.1.78), PyRealSense2 SDK (v2.54.1), Socket TCP/IP communication.
- Mô phỏng toán học: MATLAB R2022b (Robotics System Toolbox), Dassault Systèmes SolidWorks 2022.
Phân tích toán học và Thiết kế động học
Thiết lập bảng thông số Denavit – Hartenberg (D-H)
Hệ tọa độ các khâu được gắn theo quy tắc chuẩn: Trục $Z_i$ trùng với trục quay hoặc trục trượt của khớp $i+1$, trục $X_i$ vuông góc chung với $Z_{i-1}$ và $Z_i$.
Khớp 0 (Gốc) ===[Link 1: l1]---> Khớp 1 (Theta 1) ===[Link 2: l2]---> Khớp 2 (Theta 2) ===[Trục Z: d3]---> Khâu tác động cuối (P)
| Khâu ($i$) |
$\alpha_{i-1}$ (deg) |
$a_{i-1}$ (mm) |
$d_i$ (mm) |
$\theta_i$ (deg) |
Khoảng biến thiên |
| 1 |
$0$ |
$0$ |
$0$ |
$\theta_1^*$ |
$135^\circ \le \theta_1 \le 270^\circ$ |
| 2 |
$0$ |
$l_1 = 300$ |
$0$ |
$\theta_2^*$ |
$128^\circ \le \theta_2 \le 232^\circ$ |
| 3 |
$0$ |
$l_2 = 300$ |
$d_3^*$ |
$0^\circ$ |
$-180\text{ mm} \le d_3 \le 180\text{ mm}$ |
Phương trình động học thuận (Forward Kinematics)
Ma trận biến đổi thuần nhất tổng quát giữa khâu $i-1$ và khâu $i$:
$$T_{i-1}^i = \begin{bmatrix} \cos\theta_i & -\sin\theta_i & 0 & a_{i-1} \ \sin\theta_i\cos\alpha_{i-1} & \cos\theta_i\cos\alpha_{i-1} & -\sin\alpha_{i-1} & -\sin\alpha_{i-1}d_i \ \sin\theta_i\sin\alpha_{i-1} & \cos\theta_i\sin\alpha_{i-1} & \cos\alpha_{i-1} & \cos\alpha_{i-1}d_i \ 0 & 0 & 0 & 1 \end{bmatrix}$$
Ma trận chuyển đổi từ gốc tọa độ khâu cố định $0$ đến khâu tác động cuối $3$:
$$T_0^3 = T_0^1 \cdot T_1^2 \cdot T_2^3 = \begin{bmatrix} \cos(\theta_1 + \theta_2) & -\sin(\theta_1 + \theta_2) & 0 & l_1\cos\theta_1 + l_2\cos(\theta_1 + \theta_2) \ \sin(\theta_1 + \theta_2) & \cos(\theta_1 + \theta_2) & 0 & l_1\sin\theta_1 + l_2\sin(\theta_1 + \theta_2) \ 0 & 0 & 1 & d_3 \ 0 & 0 & 0 & 1 \end{bmatrix}$$
Tọa độ vị trí điểm thao tác cuối $(P_x, P_y, P_z)$ trong không gian Descartes:
$$\begin{cases} P_x = l_1\cos\theta_1 + l_2\cos(\theta_1 + \theta_2) \ P_y = l_1\sin\theta_1 + l_2\sin(\theta_1 + \theta_2) \ P_z = d_3 \end{cases}$$
Giải phương trình động học nghịch (Inverse Kinematics)
Từ phương trình vị trí $P_x, P_y$, bình phương hai vế và cộng lại:
$$P_x^2 + P_y^2 = l_1^2 + l_2^2 + 2l_1l_2\cos\theta_2 \implies \cos\theta_2 = \frac{P_x^2 + P_y^2 - l_1^2 - l_2^2}{2l_1l_2}$$
Do đó, góc quay khớp 2 có 2 nghiệm cấu hình (Elbow-Up và Elbow-Down):
$$\theta_2 = \pm \arccos\left(\frac{P_x^2 + P_y^2 - l_1^2 - l_2^2}{2l_1l_2}\right)$$
Khai triển $P_x, P_y$ theo phương pháp lượng giác:
$$P_x = k_1\cos\theta_1 - k_2\sin\theta_1, \quad P_y = k_1\sin\theta_1 + k_2\cos\theta_1$$
Trong đó: $k_1 = l_1 + l_2\cos\theta_2$ và $k_2 = l_2\sin\theta_2$.
Giải nghiệm cho $\theta_1$:
$$\theta_1 = \operatorname{atan2}(P_y, P_x) - \operatorname{atan2}(k_2, k_1)$$
$$\theta_3 = d_3 = P_z$$
Implementation và kết quả
Pipeline xử lý thị giác 3D và thuật toán chuyển đổi tọa độ
Hệ thống thị giác chạy trên Edge PC nhận luồng hình ảnh màu RGB ($1280 \times 720$) và bản đồ độ sâu Depth Map ($1280 \times 720$) đồng bộ từ Intel RealSense D435 qua giao thức USB 3.0.
[Khung hình RGB-D]
│
▼
[Mô hình YOLOv8 Inference] ──► Trích xuất Bounding Box [x_min, y_min, x_max, y_max] & Class ID
│
▼
[Tính tọa độ Pixel tâm (u, v)] ──► Lọc chiều sâu cục bộ Z_c (Depth Alignment & Spatial Filtering)
│
▼
[Nghịch đảo ma trận Nội suy K] ──► Tọa độ không gian Camera (X_c, Y_c, Z_c)
│
▼
[Ma trận Hand-Eye Transform [R|T]] ──► Tọa độ Robot (X_r, Y_r, Z_r)
│
▼
[Đóng gói Frame 3E MC Protocol] ──► Gửi xuống PLC Mitsubishi Q26UDVCPU qua Socket TCP/IP
- Khử nhiễu và trích xuất chiều sâu $Z_c$: Tọa độ tâm pixel của đối tượng được tính toán:
$$u = \frac{x_{\min} + x_{\max}}{2}, \quad v = \frac{y_{\min} + y_{\max}}{2}$$
Để tránh hiện tượng phản xạ trên bề mặt kim loại làm mất giá trị depth (zero depth), thuật toán lấy trung vị (median) của cửa sổ không gian $5 \times 5$ pixel xung quanh $(u, v)$.
- Khôi phục tọa độ 3D trong hệ quy chiếu Camera ($O_c$):
Sử dụng ma trận tham số nội suy (Camera Intrinsics Matrix) $K$:
$$X_c = \frac{(u - c_x) \cdot Z_c}{f_x}, \quad Y_c = \frac{(v - c_y) \cdot Z_c}{f_y}$$
Với $f_x, f_y$ là tiêu cự (focal length), $c_x, c_y$ là tọa độ điểm chính (principal point).
- Biến đổi Hand-Eye Calibration sang hệ quy chiếu Robot ($O_r$):
$$\begin{bmatrix} X_r \ Y_r \ Z_r \ 1 \end{bmatrix} = \begin{bmatrix} R_{3\times3} & T_{3\times1} \ 0_{1\times3} & 1 \end{bmatrix} \begin{bmatrix} X_c \ Y_c \ Z_c \ 1 \end{bmatrix}$$
Source Code: Xử lý nhận dạng YOLOv8, Trích xuất 3D và Truyền thông MC Protocol
import socket
import struct
import numpy as np
import pyrealsense2 as rs
from ultralytics import YOLO
class VisionRobotBridge:
def __init__(self, plc_ip="192.168.3.39", plc_port=2000, model_path="best_yolov8.pt"):
self.plc_ip = plc_ip
self.plc_port = plc_port
self.model = YOLO(model_path)
# Khoi tao pipeline Intel RealSense D435
self.pipeline = rs.pipeline()
self.config = rs.config()
self.config.enable_stream(rs.stream.depth, 1280, 720, rs.format.z16, 30)
self.config.enable_stream(rs.stream.color, 1280, 720, rs.format.bgr8, 30)
self.profile = self.pipeline.start(self.config)
self.align = rs.align(rs.stream.color)
# Lay thong so noi tai Camera
depth_stream = self.profile.get_stream(rs.stream.depth)
self.intrinsics = depth_stream.as_video_stream_profile().get_intrinsics()
# Ma tran Hand-Eye Calibration giua Camera va Robot Base
self.R_cam2rob = np.array([
[0.0052, -0.9998, 0.0151],
[-0.9997, -0.0055, -0.0194],
[0.0195, -0.0150, -0.9997]
])
self.T_cam2rob = np.array([452.3, 128.6, 685.2]) # mm
def build_mc_protocol_3e_write(self, start_device_d=1000, data_words=[]):
"""Dong goi khung truyen MC Protocol 3E Frame (Binary format, Command 0401)"""
sub_header = 0x0050 # Request Frame 3E
network_no = 0x00 # Network No.
plc_no = 0xFF # Target PLC No.
io_no = 0x03FF # Multi-drop IO No.
station_no = 0x00 # Target station
cpu_timer = 0x0010 # CPU Timer (16 * 250ms = 4s)
command = 0x0401 # Batch Write in units of words
subcommand = 0x0000 # Word unit access
device_code = 0xA8 # Data Register D
num_points = len(data_words)
request_data_len = 12 + (num_points * 2)
header = struct.pack('<HBBHBBH', sub_header, network_no, plc_no, io_no, station_no,
request_data_len, cpu_timer)
cmd_body = struct.pack('<HHIBH', command, subcommand, start_device_d, device_code, num_points)
payload = struct.pack(f'<{num_points}h', *data_words)
return header + cmd_body + payload
def process_and_send(self):
frames = self.pipeline.wait_for_frames()
aligned_frames = self.align.process(frames)
depth_frame = aligned_frames.get_depth_frame()
color_frame = aligned_frames.get_color_frame()
if not depth_frame or not color_frame:
return
color_image = np.asanyarray(color_frame.get_data())
results = self.model(color_image, conf=0.75, verbose=False)
for result in results:
for box in result.boxes:
cls_id = int(box.cls[0].item())
u_center = int((box.xyxy[0][0] + box.xyxy[0][2]) / 2)
v_center = int((box.xyxy[0][1] + box.xyxy[0][3]) / 2)
# Loc gia tri do sau median tai lan can tam
depth_samples = []
for du in range(-2, 3):
for dv in range(-2, 3):
dist = depth_frame.get_distance(u_center + du, v_center + dv)
if dist > 0:
depth_samples.append(dist)
if not depth_samples:
continue
z_depth_m = np.median(depth_samples)
# Chuyen doi sang toa do Camera 3D (mm)
x_c = (u_center - self.intrinsics.ppx) * z_depth_m * 1000.0 / self.intrinsics.fx
y_c = (v_center - self.intrinsics.ppy) * z_depth_m * 1000.0 / self.intrinsics.fy
z_c = z_depth_m * 1000.0
# Tinh toa do trong khong gian Robot Base
p_cam = np.array([x_c, y_c, z_c])
p_rob = self.R_cam2rob.dot(p_cam) + self.T_cam2rob
x_r_int = int(p_rob[0] * 10) # Dinh dang scale 0.1mm
y_r_int = int(p_rob[1] * 10)
z_r_int = int(p_rob[2] * 10)
# Gui du lieu qua MC Protocol xuong PLC D1000..D1004
packet = self.build_mc_protocol_3e_write(
start_device_d=1000,
data_words=[cls_id, x_r_int, y_r_int, z_r_int, 1] # Word cuoi la Trigger Bit
)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.settimeout(1.0)
s.connect((self.plc_ip, self.plc_port))
s.sendall(packet)
response = s.recv(1024)
return p_rob, cls_id
return None
Kiến trúc chương trình Motion SFC trên Q172DSCPU
Chương trình điều khiển chuyển động đa trục được cấu trúc dạng biểu đồ tuần tự chức năng chuyển động (Motion SFC) trong MT Developer2, phân tách rõ ràng các chu trình con:
[START: Chế độ Auto] ──► [Kiểm tra Tín hiệu Kích hoạt (Trigger D1004 == 1)]
│
▼
[Đọc Tọa độ Descartes từ D1001-D1003]
│
▼
[Thực thi Khối hàm Giải Động học Nghịch]
│
▼
[Quy hoạch Quỹ đạo: Nội suy Vị trí Điểm bắt đầu (Pick Point)]
│
▼
[Hạ trục Z -> Bật QY42P Kích nam châm điện -> Delay 200ms]
│
▼
[Nâng trục Z -> Di chuyển nội suy đến Vị trí Thả (Place Box theo Class ID)]
│
▼
[Hạ trục Z -> Ngắt ngõ ra QY42P -> Nâng trục Z về Home -> Reset D1004]
Đánh giá kiểm nghiệm và kết quả vận hành
Quá trình thực nghiệm được tiến hành qua 100 chu kỳ gắp thả liên tục với 2 nhóm đối tượng: Hộp pate (chiều cao $32\text{ mm}$, đường kính $85\text{ mm}$) và Hộp cá (chiều cao $68\text{ mm}$, chiều dài $110\text{ mm}$).
+-----------------------------------------------------------------------------+
| BIỂU ĐỒ PHÂN BỐ SAI SỐ VỊ TRÍ GẮP THỰC TẾ (100 LẦN) |
+-----------------------------------------------------------------------------+
| Sai số (mm) |
| 1.5 | |
| 1.2 | * |
| 0.9 | * * * * * |
| 0.6 | * * * * * * * * * * * * |
| 0.3 | * * * * * * * * * * * * * * * * |
| 0.0 +--------------------------------- |
| 0 10 20 30 40 50 60 70 80 90 100 (Số mẫu thử nghiệm) |
| |
| [Trung bình sai số: 0.62 mm] [Độ lệch chuẩn: 0.24 mm] [Thành công: 98/100]|
+-----------------------------------------------------------------------------+
| Kịch bản kiểm thử |
Số lượng thử nghiệm |
Tỷ lệ nhận dạng thành công (%) |
Sai số định vị trung bình ($XY$) |
Sai số chiều cao ($Z$) |
Thời gian chu kỳ trung bình (Cycle time) |
| Vật thể đứng yên (Static test) |
50 |
$98.0%$ |
$0.54\text{ mm}$ |
$0.41\text{ mm}$ |
$2.42\text{ s}$ |
| Vật thể lệch góc $\pm 45^\circ$ |
30 |
$96.7%$ |
$0.78\text{ mm}$ |
$0.62\text{ mm}$ |
$2.55\text{ s}$ |
| Đổi loại ngẫu nhiên liên tục |
20 |
$95.0%$ |
$0.85\text{ mm}$ |
$0.70\text{ mm}$ |
$2.68\text{ s}$ |
| Tổng thể toàn hệ thống |
100 |
97.0% |
0.68 mm |
0.53 mm |
2.51 s |
Đổi mới và đóng góp
- Kiến trúc điều khiển không đồng nhất (Heterogeneous Architecture) tối ưu hóa độ trễ: Kết hợp thành công mô hình học sâu hiện đại YOLOv8 chạy trên Edge AI với hệ điều khiển thời gian thực siêu ổn định của PLC Mitsubishi Q-Series. Thông qua giao thức chuẩn công nghiệp MC Protocol Frame 3E trực tiếp trên nền Ethernet TCP/IP, hệ thống loại bỏ nhu cầu sử dụng các bộ chuyển đổi giao thức trung gian, giảm độ trễ truyền dữ liệu xuống dưới $10\text{ ms}$.
- Khắc phục triệt để điểm mù phản xạ của cảm biến chiều sâu trên kim loại: Thiết kế thuật toán nội suy và lọc trung vị không gian kết hợp phân ngưỡng ROI động trên ảnh Depth Map. Nhờ đó, loại bỏ hiện tượng sai lệch khoảng cách do ánh kim của đồ hộp gây ra, giữ sai số đo chiều sâu dưới $1.0\text{ mm}$.
- Thuật toán giải động học nghịch đại số giải quyết đa cấu hình khớp: Phát triển khối thuật toán nghịch đảo giải tích được mã hóa trực tiếp trong Motion SFC, cho phép hệ thống tự động chọn lựa cấu hình tay robot (Left-Arm hoặc Right-Arm) tối ưu nhằm tránh các điểm kỳ dị (Singularity) và rút ngắn hành trình di chuyển của các khớp xoay.
Ứng dụng thực tế và triển khai
Trường hợp ứng dụng trong công nghiệp (Use Cases)
- Ngành công nghiệp thực phẩm & đồ uống (F&B): Ứng dụng trong các công đoạn phân loại đồ hộp, sắp xếp chai lọ từ băng tải vào khay chứa hoặc đóng thùng carton tự động mà không cần dừng băng chuyền.
- Ngành cơ khí chế tạo và gia công kim loại: Tự động gắp phôi kim loại sau dập/cắt CNC để chuyển sang công đoạn kiểm tra chất lượng (QC) và phân loại phôi lỗi theo kích thước hình học 3D.
- Ngành sản xuất linh kiện điện tử: Phân loại các khối tản nhiệt, module pin, vỏ kim loại của thiết bị di động trên dây chuyền lắp ráp bề mặt (SMT).
+------------------------------------------------------------------------------------+
| LỘ TRÌNH TRIỂN KHAI HỆ THỐNG CÔNG NGHIỆP |
+------------------------------------------------------------------------------------+
| |
| Giai đoạn 1: Khảo sát & Chuẩn hóa cơ khí (Tuần 1 - 4) |
| [Khảo sát phôi] ──► [Gia công Jig gá, Băng tải] ──► [Lắp ráp Robot SCARA] |
| |
| Giai đoạn 2: Tích hợp Điện, Điều khiển & Motion (Tuần 5 - 8) |
| [Đấu nối Tủ điện Q-Series] ──► [Cấu hình SSCNET III] ──► [Tuning Servo Driver] |
| |
| Giai đoạn 3: Huấn luyện Vision & Ghép nối MC Protocol (Tuần 9 - 12) |
| [Thu thập Dataset] ──► [Train YOLOv8] ──► [Hand-Eye Calibration] ──► [Socket 3E] |
| |
| Giai đoạn 4: Commissioning & Tối ưu hóa Nhà máy (Tuần 13 - 16) |
| [Chạy thử nghiệm 1000 chu kỳ] ──► [Đánh giá OEE] ──► [Bàn giao & Đào tạo] |
| |
+------------------------------------------------------------------------------------+
Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit & ROI)
- Chi phí đầu tư ước tính (Capex):
- Khung cơ khí Robot SCARA cũ + Cải tạo phần cứng: $70,000,000\text{ VND}$.
- Hệ thống Mitsubishi Q-Series (Q26UDV, Q172DSCPU, Driver, Motor, Nguồn): $110,000,000\text{ VND}$.
- Camera 3D Intel RealSense D435 + Edge PC mini (GPU GTX 1650/RTX 3050): $35,000,000\text{ VND}$.
- Chi phí vật tư phụ, băng tải, tủ điện: $25,000,000\text{ VND}$.
- Tổng mức đầu tư: $\approx 240,000,000\text{ VND}$.
- Hiệu quả kinh tế mang lại:
- Thay thế 02 nhân công phân loại thủ công làm việc 2 ca/ngày (chi phí nhân sự: $2 \times 9,000,000 \times 12 = 216,000,000\text{ VND/năm}$).
- Nâng cao năng suất dây chuyền thêm $35%$, giảm tỷ lệ kẹt phôi và sai sót xuống dưới $0.5%$.
- Thời gian hoàn vốn (Payback Period): $\approx 13.3\text{ tháng}$.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Phụ thuộc cơ cấu chấp hành từ tính: Đầu gắp nam châm điện chỉ có khả năng tương tác với các vật liệu nhiễm từ; chưa áp dụng được cho bao bì nhựa, thủy tinh hay nhôm phi từ tính.
- Giới hạn trường nhìn Camera: Camera cố định phía trên (Eye-to-Hand) có góc nhìn tĩnh, dễ bị che khuất một phần nếu các vật thể nằm quá sát nhau hoặc chồng lấn nghiêm trọng.
- Băng tải hoạt động dạng gián đoạn: Chưa tích hợp bộ mã hóa vòng quay (Encoder) trên trục băng tải để thực hiện giải thuật bám bắt chuyển động liên tục (Conveyor Tracking On-the-fly).
Hướng nâng cấp đề xuất
- Chuyển đổi cơ cấu gắp linh hoạt: Tích hợp giác hút chân không đa buồng (Vacuum Gripper) hoặc kẹp gắp điện thông minh có cảm biến phản hồi lực.
- Mở rộng giao tiếp sang chuẩn OPC UA / MQTT: Đưa dữ liệu vận hành từ PLC Q-Series trực tiếp lên nền tảng đám mây quản lý sản xuất (MES/SCADA Cloud) theo mô hình Nhà máy số.
- Tích hợp giải thuật Conveyor Tracking: Sử dụng module đếm xung tốc độ cao (High-speed Counter Module) đọc xung encoder băng tải, giải bài toán nội suy động để robot gắp thả mượt mà khi băng tải đang chuyển động ở vận tốc $300\text{ mm/s}$.
Đối tượng hưởng lợi
+-----------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+-----------------------------------------------------------------------------+
| [Sinh viên & Học viên] ──► Tiếp cận tài liệu chuẩn về Motion SFC & Kinematics|
| [Kỹ sư Lập trình PLC] ──► Nắm vững cấu trúc khung truyền MC Protocol Frame 3E|
| [Doanh nghiệp F&B] ──► Giải pháp phân loại thông minh với ROI < 14 tháng |
| [Nhà nghiên cứu AI] ──► Ứng dụng thực chiến của YOLOv8 trong Automation |
+-----------------------------------------------------------------------------+
- Sinh viên & Học viên Tự động hóa/Cơ điện tử: Nguồn tài liệu học tập toàn diện, liên kết chặt chẽ giữa lý thuyết động học robot (bảng D-H, ma trận chuyển vị) với kỹ năng thực tế trên thiết bị công nghiệp chuẩn hãng Mitsubishi.
- Kỹ sư Tích hợp hệ thống (System Integrators): Cung cấp mẫu thiết kế (Design Pattern) hoàn chỉnh về việc giao tiếp giữa hệ thống thị giác mã nguồn mở (Python/OpenCV/YOLO) và phần cứng PLC đóng thông qua giao thức truyền thông MC Protocol tốc độ cao.
- Doanh nghiệp vừa và nhỏ (SMEs): Bản thiết kế tham chiếu khả thi, chi phí hợp lý để tự động hóa dây chuyền đóng gói, tăng năng suất mà không phụ thuộc vào các gói giải pháp đóng kín đắt đỏ từ nước ngoài.
Câu hỏi thường gặp
1. Yêu cầu cấu hình phần cứng tối thiểu của máy tính xử lý thị giác (Edge PC) là gì?
Máy tính cần trang bị tối thiểu CPU Intel Core i5 thế hệ 10 hoặc tương đương, 8GB RAM, cổng USB 3.0 chuyên dụng cấp nguồn ổn định cho Intel RealSense D435, và card đồ họa rời NVIDIA (tối thiểu GTX 1650 4GB VRAM) có hỗ trợ CUDA Core để mô hình YOLOv8 đạt tốc độ xử lý thời gian thực từ $30 - 45\text{ FPS}$ ($< 25\text{ ms/frame}$).
2. Độ trễ truyền thông qua giao thức MC Protocol Frame 3E là bao nhiêu và có ảnh hưởng đến độ chính xác gắp không?
Độ trễ trung bình của một chu kỳ đọc/ghi dữ liệu nhị phân (Binary format) qua MC Protocol 3E trong mạng LAN công nghiệp nội bộ dao động từ $6\text{ ms}$ đến $10\text{ ms}$. Do hệ thống thực hiện bắt tọa độ khi vật dừng hoặc trước khi robot bước vào quỹ đạo tiếp cận, độ trễ này hoàn toàn nằm trong dung sai cho phép và không gây ảnh hưởng đến độ chính xác định vị cơ khí của robot.
3. Phương pháp căn chỉnh tọa độ Hand-Eye Calibration giữa Camera và Robot được thực hiện như thế nào?
Hệ thống sử dụng phương pháp hiệu chuẩn Eye-to-Hand thông qua mẫu bàn cờ chuẩn (Chessboard Calibration Pattern) hoặc lấy mẫu đa điểm thực nghiệm. Người vận hành điều khiển robot di chuyển đầu tác động đến 9 điểm phân bố đều trong không gian làm việc, ghi nhận tọa độ khớp trên PLC $(X_r, Y_r, Z_r)$ và tọa độ điểm tương ứng trên camera $(X_c, Y_c, Z_c)$, sau đó áp dụng thuật toán bình phương tối thiểu SVD (Singular Value Decomposition) để tìm ma trận xoay $R$ và vector tịnh tiến $T$.
4. Tại sao lại lựa chọn CPU Motion Q172DSCPU thay vì điều khiển vị trí trực tiếp bằng module phát xung đơn thuần?
Module phát xung thông thường (như QD75D) chỉ phù hợp cho điều khiển các trục độc lập (Point-to-Point). Với Robot SCARA, quỹ đạo gắp thả đòi hỏi sự phối hợp nội suy tuyến tính và nội suy cung tròn đồng thời giữa các trục để đầu công tác di chuyển theo đường thẳng trong không gian Descartes. CPU Motion Q172DSCPU kết hợp mạng SSCNET III cho phép đồng bộ hóa dữ liệu thời gian thực giữa các trục ở chu kỳ quét dưới $0.88\text{ ms}$, chống giật và tối ưu hóa chuyển động vượt trội.
5. Làm thế nào để mở rộng hệ thống cho các vật thể có hình dạng phức tạp hoặc dễ vỡ?
Để phân loại vật thể phi kim hoặc dễ biến dạng (như bánh kẹo, trái cây), hệ thống chỉ cần: (1) Thay cơ cấu nam châm điện bằng kẹp mềm khí nén (Soft Gripper) hoặc núm hút chân không gắn van điều áp tỷ lệ; (2) Thu thập thêm $300 - 500$ ảnh mẫu của sản phẩm mới và nạp vào pipeline huấn luyện Transfer Learning của YOLOv8 mà không cần can thiệp vào logic điều khiển chuyển động của PLC.
Kết luận
Đồ án tốt nghiệp "Ứng dụng điều khiển Robot SCARA gắp vật với Camera 3D" đã nghiên cứu, thiết kế và chế tạo thành công một trạm tự động hóa phân loại sản phẩm hoàn chỉnh, kết hợp hài hòa giữa cơ khí chính xác, điều khiển truyền động công nghiệp chất lượng cao (Mitsubishi Q-Series & Motion CPU) và trí tuệ nhân tạo thị giác máy tính tiên tiến (Intel RealSense D435 & YOLOv8).
Với các kết quả thực nghiệm ấn tượng: tỷ lệ nhận dạng đạt $97.0%$, sai số định vị vị trí $< 0.85\text{ mm}$, chu kỳ gắp thả đạt $2.51\text{ s/vật}$, đề tài đã chứng minh tính khả thi, độ tin cậy và tiềm năng ứng dụng to lớn trong thực tế sản xuất công nghiệp. Đây là nền tảng vững chắc để tiếp tục phát triển các giải pháp tự động hóa thông minh thế hệ mới, góp phần nâng cao năng lực cạnh tranh cho các nhà máy sản xuất hiện đại.