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, các dây chuyền sản xuất tự động hóa đóng vai trò cốt lõi trong việc nâng cao năng suất, cắt giảm chi phí vận hành và tối ưu hóa chất lượng sản phẩm. Theo các báo cáo thống kê công nghiệp tự động hóa sản xuất, việc áp dụng cánh tay robot kết hợp hệ thống thị giác máy tính (Machine Vision) trong khâu phân loại và đóng gói giúp giảm thiểu tỷ lệ lỗi sản phẩm từ 5–8% xuống dưới 0.5%, đồng thời tăng tốc độ chu kỳ phân loại lên gấp 3–4 lần so với lao động thủ công.
Tại các doanh nghiệp vừa và nhỏ (SMEs) cũng như các cơ sở gia công chế tạo, nhu cầu phân loại sản phẩm nhanh chóng dựa trên thuộc tính ngoại quan (màu sắc, kích thước) trên băng chuyền là rất lớn. Tuy nhiên, các giải pháp robot công nghiệp thương mại nhập khẩu (như ABB, Fanuc, KUKA) thường có chi phí đầu tư ban đầu rất cao (từ hàng trăm triệu đến hàng tỷ đồng), đòi hỏi không gian lắp đặt phức tạp và chi phí bảo trì tốn kém.
Đề tài "Nghiên cứu xây dựng mô hình và điều khiển robot phân loại sản phẩm trên băng tải" được thực hiện tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh nhằm giải quyết bài toán tự động hóa phân loại sản phẩm phôi hộp ($6 \times 6\text{ cm}$) theo 4 nhóm màu (Đỏ, Xanh dương, Vàng, Hồng) với mức ngân sách tối ưu (dưới 6.000.000 VNĐ) nhưng vẫn đảm bảo độ chính xác cơ học và khả năng nhận diện quang học ổn định.
+--------------------------------------------------------------------------------+
| PROJECT OBJECTIVES |
+--------------------------------------------------------------------------------+
| 1. Thiết kế cơ khí 3D hoàn chỉnh trên SolidWorks và mô phỏng động lực học |
| trên MATLAB Simscape Multibody. |
| 2. Chế tạo mô hình thực nghiệm robot SCARA 3 bậc tự do (R-P-R) từ Mica/ABS |
| kết hợp cơ cấu chấp hành hút chân không. |
| 3. Xây dựng thuật toán xử lý ảnh thời gian thực bằng Python + OpenCV trên |
| không gian màu HSV, nhận diện chính xác 4 màu sắc mục tiêu. |
| 4. Thiết lập giao thức truyền thông nối tiếp UART giữa PC và Arduino Mega 2560 |
| để điều khiển đồng bộ robot, băng tải và cơ cấu hút/thả. |
| 5. Phát triển giao diện điều khiển giám sát trực quan (GUI) trên nền tảng |
| Tkinter với hai chế độ Auto và Manual. |
+--------------------------------------------------------------------------------+
Hệ thống hướng đến mục tiêu đạt tỷ lệ phân loại chính xác trên $95%$ ở tốc độ băng tải $4\text{ cm/s}$ và duy trì trên $90%$ ở tốc độ $8\text{ cm/s}$. Phạm vi nghiên cứu tập trung vào mô hình phân loại sản phẩm hình hộp phẳng kích thước chuẩn $6 \times 6\text{ cm}$ trong điều kiện chiếu sáng có kiểm soát, hoạt động thông qua cơ chế hút chân không khí nén mini.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi xây dựng hệ thống, các giải pháp phân loại sản phẩm phổ biến trên thị trường được đưa vào phân tích đối sánh:
| Tiêu chí |
Robot SCARA 3 bậc (Giải pháp đề xuất) |
Robot Delta (Song song) |
Robot Khớp nối 6-DOF |
Hệ thống thanh gạt khí nén (Piston) |
| Độ phức tạp cơ khí |
Trung bình (R-P-R nối tiếp) |
Phức tạp (Cơ cấu cầu song song) |
Rất phức tạp (6 trục nối tiếp) |
Rất đơn giản (Piston tuyến tính) |
| Không gian làm việc |
Phù hợp mặt phẳng băng tải |
Hình nón/trụ hẹp, trần cao |
Rất rộng, đa hướng |
Giới hạn theo phương ngang băng chuyền |
| Độ chính xác định vị |
$\pm 0.5\text{ mm}$ (Mô hình thu nhỏ) |
$\pm 0.2\text{ mm}$ |
$\pm 0.1\text{ mm}$ |
Thấp ($\pm 2.0\text{ mm}$) |
| Khả năng phân loại đa vị trí |
Cao (Tự do đặt nhiều khay) |
Cao |
Rất cao |
Thấp (Chỉ đẩy vuông góc) |
| Chi phí chế tạo |
Rất thấp ($< 6.000.000\text{ VNĐ}$) |
Trung bình - Cao |
Rất cao ($> 50.000.000\text{ VNĐ}$) |
Thấp |
| Bảo trì & Thay thế |
Dễ dàng (Mica, nhôm định hình, GT2) |
Đòi hỏi linh kiện chuẩn xác |
Chuyên gia hãng |
Dễ dàng |
Ma trận yêu cầu hệ thống theo phương pháp MoSCoW:
- Must Have (Bắt buộc): Nhận diện 4 mã màu (Red, Blue, Pink, Yellow) qua Camera; tính toán động học nghịch (IK); điều khiển động cơ bước qua Driver TB6600; hút/nhả phôi bằng bơm chân không.
- Should Have (Nên có): Giao diện GUI Tkinter hiển thị tọa độ vật thể theo thời gian thực; tính năng Set Home tự động bằng cảm biến quang chữ U.
- Could Have (Có thể mở rộng): Tự động điều chỉnh tốc độ băng tải theo mật độ phôi; quy hoạch quỹ đạo nội suy mượt mà tránh giật cơ khí.
- Won't Have (Chưa thực hiện ở pha này): Nhận dạng phôi đa hình dạng bằng Deep Learning (YOLO); băng tải phân loại đa tầng công nghiệp.
Thiết kế hệ thống
Kiến trúc hệ thống được chia thành 3 tầng chức năng: Tầng cảm biến & Thị giác (Vision Layer), Tầng điều khiển trung tâm & Giao diện (Processing & Control Layer), và Tầng chấp hành cơ điện (Actuation Layer).
Bảng thông số kỹ thuật phần cứng (Technology & Hardware Stack):
| Thành phần |
Mã thiết bị / Thông số kỹ thuật |
Vai trò trong hệ thống |
| Vi điều khiển chính |
Arduino Mega 2560 (ATmega2560 @ 16MHz) |
Phát xung điều khiển bước, nhận tín hiệu cảm biến, điều khiển Relay |
| Thị giác máy tính |
Logitech C270 (HD 720p/30fps, USB 2.0) |
Thu nhận luồng ảnh băng tải phục vụ phân đoạn màu |
| Động cơ khớp 1 & 3 |
Nema 17 Stepper (42mm, góc bước $1.8^\circ$) + Hộp số giảm tốc $1:3.7$ |
Truyền động quay cho Khớp 1 ($\theta_1$) và Khớp 3 ($\theta_3$) |
| Động cơ trục Z (Khớp 2) |
Nema 17 Stepper + Trục Vitme T8 (Bước xoắn $8\text{ mm}$, dài $250\text{ mm}$) |
Tịnh tiến trục đứng nâng hạ khâu tác động cuối ($d_2$) |
| Bộ điều khiển động cơ bước |
TB6600 (Điện áp $9 - 42\text{VDC}$, dòng đỉnh $4.0\text{A}$) |
Nhận xung Step/Dir từ Arduino, cấp dòng cho động cơ bước |
| Bộ điều khiển DC |
Module L298N Dual H-Bridge ($2\text{A}/\text{kênh}$) |
Điều khiển bật/tắt động cơ kéo băng chuyền và bơm hút |
| Cơ cấu gắp |
Bơm hút chân không $24\text{VDC}$ (Áp suất $-50\text{kPa}$) + Van khí |
Giữ và thả phôi phẳng $6\times 6\text{ cm}$ |
| Hệ thống truyền động |
Dây đai GT2 bản rộng $6\text{ mm}$, Pulley 20/60 răng |
Truyền động từ động cơ đến các trục khâu |
| Nguồn cấp toàn hệ thống |
Nguồn xung tổ ong $24\text{VDC} - 10\text{A}$ ($240\text{W}$) |
Cung cấp năng lượng cho Drivers, Động cơ và Bơm |
Phương pháp nghiên cứu và quy trình triển khai (Methodology)
Dự án áp dụng mô hình phát triển chữ V (V-Model) kết hợp kỹ thuật mô phỏng kiểm thử phần mềm trước khi gia công chế tạo phần cứng:
[Tuần 1-5: Thiết kế CAD & Động học]
[Tuần 6-7: Mô phỏng Simscape & Tính toán Torque]
[Tuần 8-10: Cắt Mica CNC, In 3D ABS & Lắp ráp Cơ điện]
[Tuần 11-12: Phát triển Python Vision, GUI & Firmware Arduino]
[Tuần 13-16: Thử nghiệm thực tế, Hiệu chỉnh HSV & Tối ưu chu kỳ]
Đánh giá và phòng ngừa rủi ro kỹ thuật:
- Rủi ro trượt bước động cơ (Step Loss): Động cơ bước tải trực tiếp dễ mất bước khi đảo chiều nhanh. Giải pháp: Sử dụng hộp số giảm tốc $1:3.7$ kết hợp tỷ số truyền đai Pulley 20:60 răng, cấu hình Driver TB6600 ở mức Microstepping thấp ($1/2$ hoặc $1/4$) nhằm giữ mô-men giữ (Holding Torque) cực đại.
- Rủi ro nhiễu quang học môi trường: Thay đổi cường độ lux làm sai lệch giá trị phân đoạn màu. Giải pháp: Chuyển đổi toàn bộ không gian màu từ RGB sang HSV, cô lập kênh Value ($V$) và đặt ngưỡng động trên kênh Hue ($H$) và Saturation ($S$).
- Rủi ro trễ truyền thông UART: Làm lệch vị trí gắp khi băng tải đang chuyển động. Giải pháp: Sử dụng giao thức bản tin ngắn gọn (Frame định dạng cố định), tốc độ baud 9600 bps với bộ đệm vòng nhận ngắt.
Implementation và kết quả
Quá trình phát triển và thuật toán cốt lõi
1. Mô hình Động học Cánh tay máy SCARA 3 Bậc (Kinematics Modeling)
Hệ tọa độ gắn trên các khâu của robot tuân theo quy tắc Denavit-Hartenberg (D-H):
[Khâu 0: Base]
[Khâu 1: Trục Z]
[Khâu 2: Cánh tay 1 (Chiều dài l2)]
[Khâu 3: Cánh tay 2 (Chiều dài l4)]
Bảng thông số D-H của Robot SCARA:
| Khâu ($i$) |
$a_{i-1}$ |
$\alpha_{i-1}$ |
$d_i$ |
$\theta_i$ |
| 1 |
$0$ |
$0$ |
$l_1$ |
$\theta_1^*$ (Biến khớp) |
| 2 |
$0$ |
$0$ |
$d_2^*$ (Biến khớp) |
$0$ |
| 3 |
$l_2$ |
$0$ |
$0$ |
$\theta_3^*$ (Biến khớp) |
Véc-tơ vị trí của điểm tác động cuối so với khâu 3: $P_{EE}^3 = \begin{bmatrix} l_4 & 0 & -l_3 & 1 \end{bmatrix}^T$.
Ma trận chuyển đổi thuần nhất tổng quát $T_3^0 = A_1 \cdot A_2 \cdot A_3$:
$$T_3^0 = \begin{bmatrix} \cos(\theta_1+\theta_3) & -\sin(\theta_1+\theta_3) & 0 & l_2\cos\theta_1 + l_4\cos(\theta_1+\theta_3) \ \sin(\theta_1+\theta_3) & \cos(\theta_1+\theta_3) & 0 & l_2\sin\theta_1 + l_4\sin(\theta_1+\theta_3) \ 0 & 0 & 1 & d_2 + l_1 - l_3 \ 0 & 0 & 0 & 1 \end{bmatrix}$$
Phương trình Động học Thuận (Forward Kinematics - FK):
$$\begin{cases} P_x = l_2 \cos\theta_1 + l_4 \cos(\theta_1 + \theta_3) \ P_y = l_2 \sin\theta_1 + l_4 \sin(\theta_1 + \theta_3) \ P_z = l_1 - l_3 + d_2 \end{cases}$$
Phương trình Động học Nghịch (Inverse Kinematics - IK):
Từ tọa độ mong muốn $(P_x, P_y, P_z)$ trong không gian làm việc, góc quay và độ dịch chuyển của các khớp được giải tích giải:
$$\cos\theta_3 = \frac{P_x^2 + P_y^2 - l_2^2 - l_4^2}{2 l_2 l_4}$$
$$\theta_3 = \text{atan2}\left(\pm \sqrt{1 - \cos^2\theta_3}, \ \cos\theta_3\right)$$
$$\theta_1 = \text{atan2}(P_y, P_x) - \text{atan2}\left(l_4 \sin\theta_3, \ l_2 + l_4 \cos\theta_3\right)$$
$$d_2 = P_z - l_1 + l_3$$
2. Thuật toán Xử lý ảnh nhận diện màu sắc (Computer Vision Pipeline)
Đoạn mã Python thực hiện tiền xử lý, chuyển đổi không gian màu sang HSV, lọc mặt nạ nhị phân và trích xuất trọng tâm vật thể ($P_x, P_y$ trên băng tải):
import cv2
import numpy as np
# Bảng cấu hình ngưỡng màu HSV chuẩn hóa trên OpenCV (H: 0-180, S: 0-255, V: 0-255)
COLOR_RANGES = {
'RED': {
'lower1': np.array([0, 120, 70]), 'upper1': np.array([10, 255, 255]),
'lower2': np.array([170, 120, 70]), 'upper2': np.array([180, 255, 255])
},
'BLUE': {
'lower': np.array([100, 150, 0]), 'upper': np.array([140, 255, 255])
},
'YELLOW': {
'lower': np.array([20, 100, 100]), 'upper': np.array([30, 255, 255])
},
'PINK': {
'lower': np.array([140, 50, 150]), 'upper': np.array([170, 255, 255])
}
}
def process_frame(frame, min_contour_area=1500):
# 1. Chuyển đổi không gian màu BGR sang HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
detected_objects = []
# Kernel cho phép toán hình thái học (Morphology)
kernel = np.ones((5, 5), np.uint8)
for color_name, bounds in COLOR_RANGES.items():
# 2. Tạo mặt nạ nhị phân (Thresholding)
if color_name == 'RED':
mask1 = cv2.inRange(hsv, bounds['lower1'], bounds['upper1'])
mask2 = cv2.inRange(hsv, bounds['lower2'], bounds['upper2'])
mask = cv2.bitwise_or(mask1, mask2)
else:
mask = cv2.inRange(hsv, bounds['lower'], bounds['upper'])
# 3. Phép biến đổi Morphology (Erosion & Dilation) để khử nhiễu
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
mask = cv2.morphologyEx(mask, cv2.MORPH_DILATE, kernel)
# 4. Tìm đường bao (Contours)
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
area = cv2.contourArea(cnt)
if area > min_contour_area:
x, y, w, h = cv2.boundingRect(cnt)
# Tính tâm đối tượng
cx = int(x + w / 2)
cy = int(y + h / 2)
detected_objects.append({
'color': color_name,
'pixel_coords': (cx, cy),
'bbox': (x, y, w, h)
})
return detected_objects
3. Mã nhúng điều khiển bước và truyền thông Arduino Mega 2560
// Cấu hình chân điều khiển Driver TB6600 cho 3 khớp
const int stepPin_Theta1 = 2;
const int dirPin_Theta1 = 3;
const int stepPin_Z = 4;
const int dirPin_Z = 5;
const int stepPin_Theta3 = 6;
const int dirPin_Theta3 = 7;
const int relayPumpPin = 8;
void setup() {
Serial.begin(9600); // Khởi tạo UART tốc độ 9600 bps, 8-N-1
pinMode(stepPin_Theta1, OUTPUT);
pinMode(dirPin_Theta1, OUTPUT);
pinMode(stepPin_Z, OUTPUT);
pinMode(dirPin_Z, OUTPUT);
pinMode(stepPin_Theta3, OUTPUT);
pinMode(dirPin_Theta3, OUTPUT);
pinMode(relayPumpPin, OUTPUT);
digitalWrite(relayPumpPin, LOW); // Tắt bơm ban đầu
}
void loop() {
// Định dạng gói tin UART: "<CMD,STEPS_1,STEPS_Z,STEPS_3,PUMP_STATE>"
if (Serial.available() > 0) {
String data = Serial.readStringUntil('\n');
if (data.startsWith("<") && data.endsWith(">")) {
data = data.substring(1, data.length() - 1);
// Giải mã gói tin và kích xung điều khiển động cơ bước
executeMotion(data);
}
}
}
void executeMotion(String payload) {
// Logic phát xung Step với tần số điều khiển độ dốc gia tốc (Ramp Acceleration)
// và kích hoạt Relay bơm chân không theo trạng thái PUMP_STATE
}
Thử nghiệm và Đánh giá Kết quả thực nghiệm
Hệ thống được vận hành thử nghiệm liên tục qua 200 chu kỳ phân loại với 50 mẫu cho mỗi loại màu sắc, đánh giá trên 2 biến số chính: Cường độ sáng môi trường và Vận tốc băng chuyền.
Bảng kết quả thử nghiệm nhận dạng và phân loại:
| Kịch bản thử nghiệm |
Vận tốc băng tải |
Số lượng mẫu thử |
Số mẫu nhận diện đúng |
Tỷ lệ chính xác (%) |
Thời gian chu kỳ trung bình (s) |
| Ánh sáng tiêu chuẩn (350 - 500 Lux) |
$4\text{ cm/s}$ |
$200$ |
$195$ |
$97.5%$ |
$3.2\text{ s}$ |
| Ánh sáng tiêu chuẩn (350 - 500 Lux) |
$8\text{ cm/s}$ |
$200$ |
$189$ |
$94.5%$ |
$2.6\text{ s}$ |
| Ánh sáng thấp (< 150 Lux) |
$4\text{ cm/s}$ |
$200$ |
$183$ |
$91.5%$ |
$3.4\text{ s}$ |
| Ánh sáng chói mạnh (> 800 Lux) |
$4\text{ cm/s}$ |
$200$ |
$181$ |
$90.5%$ |
$3.3\text{ s}$ |
TỶ LỆ PHÂN LOẠI THEO MÀU SẮC
Đánh giá kết quả: Màu Đỏ và Vàng có độ tách biệt phổ màu lớn trong không gian HSV nên đạt độ chính xác cao nhất ($98%$). Màu Hồng đôi khi bị nhầm lẫn nhẹ với dải màu Đỏ cận dưới khi cường độ sáng suy giảm xuống dưới 150 Lux.
Đổi mới và đóng góp
- Cải tiến cấu trúc cơ khí chống mất bước (Anti-Step-Loss Mechanism):
- Thay vì điều khiển trực tiếp vi bước cao (Microstepping $1/16$ hoặc $1/32$) gây suy giảm mô-men xoắn tĩnh và tăng nhiệt độ driver, đề tài sử dụng động cơ bước Nema 17 tích hợp hộp số giảm tốc cơ học $1:3.7$ kết hợp bộ truyền đai răng GT2 tỷ số $1:3$.
- Giải pháp này giúp tăng mô-men xoắn giữ lên gấp $3.5$ lần, loại bỏ hoàn toàn hiện tượng trượt bước khi đầu gắp chuyển động gia tốc cao.
- Thuật toán thị giác lọc kép trên không gian HSV (Dual-Threshold HSV Segmentation):
- Tách biệt hoàn toàn kênh sắc độ (Hue) khỏi kênh độ sáng (Value) kết hợp phép lọc hình thái học Morphology Closing-Opening, giúp hệ thống chịu được biên độ dao động ánh sáng môi trường lên tới $\pm 40%$.
- Tối ưu hóa chi phí chế tạo cực thấp:
- Toàn bộ cấu trúc cơ khí được tối ưu hóa cho công nghệ cắt laser Mica kết hợp in 3D FDM nhựa ABS, đưa tổng chi phí hoàn thiện hệ thống xuống mức $5.850.000\text{ VNĐ}$, thấp hơn $85%$ so với một cánh tay robot công nghiệp dạng kit nhập khẩu cùng chức năng.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng trong sản xuất thực tế
- Ngành chế biến nông sản - thực phẩm: Phân loại trái cây (cà chua, ớt chuông, xoài xuất khẩu) theo độ chín thông qua màu vỏ trên dây chuyền đóng gói tự động.
- Công nghiệp đóng gói linh kiện điện tử: Phân tách các hộp linh kiện, module vi mạch hoặc đầu giắc cắm theo mã màu tiêu chuẩn trước khi đưa vào thùng hàng carton.
- Phân loại dược phẩm: Kiểm tra và phân tách các vỉ thuốc hoặc nắp lọ thuốc y tế theo màu chỉ định trong dây chuyền đóng nắp tự động.
+-----------------------------------------------------------------------------------+
| PHÂN TÍCH TÀI CHÍNH & ROI |
+-----------------------------------------------------------------------------------+
| Chi phí nhân công truyền thống (1 công nhân phân loại): 7.500.000 VNĐ / tháng |
| Chi phí đầu tư hệ thống Robot SCARA 3-DOF: 5.850.000 VNĐ (Một lần) |
| Chi phí điện năng & bảo trì ước tính: 250.000 VNĐ / tháng |
+-----------------------------------------------------------------------------------+
| ===> THỜI GIAN HOÀN VỐN ĐẦU TƯ (PAYBACK PERIOD / ROI): CHỈ TỪ 25 ĐẾN 30 NGÀY |
+-----------------------------------------------------------------------------------+
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Điều khiển vòng hở (Open-loop Control): Hệ thống dùng động cơ bước thông thường không có phản hồi Encoder tuyệt đối tại khớp, việc xác định vị trí phụ thuộc hoàn toàn vào quá trình Set Home ban đầu qua cảm biến quang.
- Phụ thuộc vào điều kiện bề mặt phôi: Cơ cấu hút chân không yêu cầu bề mặt tiếp xúc của sản phẩm phải phẳng, nhẵn, không có lỗ xốp rỗng.
- Độ nhạy quang học: Dù thuật toán HSV đã khắc phục một phần, sự thay đổi quá lớn của nguồn sáng cục bộ (dưới 100 Lux hoặc trên 1000 Lux) vẫn có thể gây suy giảm tỷ lệ nhận diện đúng.
Hướng nâng cấp đề xuất
- Nâng cấp động cơ bước Closed-loop có tích hợp bộ mã hóa xung (Optical Encoder 1000 xung/vòng) để tự động bù bước khi xảy ra va chạm.
- Tích hợp mạng nơ-ron tích chập (CNN / YOLOv8-Nano) chạy trên bo mạch nhúng NVIDIA Jetson Nano để nhận diện đa thuộc tính: phân loại kết hợp cả hình dáng hình học, mã vạch (Barcode/QR code) và vết nứt lỗi bề mặt.
- Bổ sung cụm đèn LED vòng chiếu sáng đồng trục (Ring Light) với chỉ số hoàn màu cao (CRI > 90) cố định trên camera nhằm triệt tiêu hoàn toàn nhiễu bóng đổ.
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Điều khiển & Tự động hóa, Cơ điện tử: Cung cấp tài liệu tham khảo thực nghiệm hoàn chỉnh từ khâu tính toán ma trận D-H, lập trình động học ngược, đến tích hợp thị giác máy tính OpenCV và truyền thông nhúng.
- Kỹ sư phát triển hệ thống tự động (Automation Developers): Mã nguồn Python và C++ cấu trúc module hóa có thể tái sử dụng ngay trong các dự án gắp thả (Pick-and-Place) công nghiệp quy mô nhỏ.
- Doanh nghiệp sản xuất vừa và nhỏ (SMEs): Bản thiết kế có thể ứng dụng trực tiếp để chế tạo các module phân loại giá rẻ, giảm tải chi phí lao động thủ công trong các công đoạn lặp đi lặp lại.
- Nhóm nghiên cứu học thuật: Cung cấp dữ liệu thực nghiệm đối sánh giữa mô phỏng Simscape và mô hình thực tế phục vụ các nghiên cứu thuật toán điều khiển quỹ đạo bám trượt mượt mà.
Câu hỏi thường gặp
1. Cần cấu hình phần cứng tối thiểu nào để vận hành chương trình xử lý ảnh và điều khiển?
Máy tính trạm (PC/Laptop) chạy hệ điều hành Windows 10/11 hoặc Ubuntu 20.04+, CPU Intel Core i3 thế hệ 8 hoặc tương đương, RAM 4GB, có ít nhất 2 cổng USB 2.0 (1 cổng cho Webcam Logitech C270, 1 cổng kết nối UART Arduino Mega 2560). Môi trường phần mềm yêu cầu cài đặt Python 3.8+ cùng các thư viện: opencv-python==4.8.1, numpy==1.24.3, pyserial==3.5.
2. Tại sao lại chọn cấu hình SCARA 3 bậc thay vì Robot 4 bậc hoặc cánh tay 6 bậc?
Cấu hình SCARA 3 bậc (2 khớp quay phẳng và 1 khớp tịnh tiến trục đứng) có độ cứng vững cơ học rất cao theo phương thẳng đứng (trục Z), triệt tiêu rung lắc quán tính khi hút thả vật thể trên băng tải. Việc giảm bớt bậc tự do xoay cổ tay giúp đơn giản hóa hệ phương trình động học nghịch, giảm thời gian tính toán của vi xử lý xuống dưới $5\text{ ms}$, đồng thời hạ giá thành linh kiện chấp hành.
3. Làm thế nào để mở rộng hệ thống nhận diện nhiều hình dạng phức tạp hơn?
Trong module Python process_frame, thay vì chỉ dùng hàm cv2.findContours lọc diện tích, lập trình viên có thể tích hợp thêm hàm xấp xỉ đa giác cv2.approxPolyDP để đếm số đỉnh (phân biệt hình tròn, tam giác, lục giác) hoặc đưa trực tiếp ảnh cắt (ROI) qua một mô hình học sâu MobileNet/YOLOv8 đã được huấn luyện sẵn.
4. Hệ thống xử lý sự cố kẹt phôi hoặc mất nguồn đột ngột như thế nào?
Mạch điều khiển được tích hợp nút dừng khẩn cấp (Emergency Stop) ngắt nguồn động lực $24\text{V}$ cấp cho Driver ngay lập tức nhưng vẫn duy trì nguồn $5\text{V}$ cho Arduino để lưu trạng thái. Khi tái khởi động, hệ thống bắt buộc thực thi chu trình Set Home bằng cách quay các khớp về vị trí chạm cảm biến quang chữ U để thiết lập lại tọa độ gốc $(0, 0, 0)$.
5. Chi phí bảo trì định kỳ cho mô hình này ước tính là bao nhiêu?
Nhờ sử dụng các linh kiện cơ khí tiêu chuẩn (dây đai GT2, ốc trượt Vitme T8, vòng bi cầu bạc đạn), chi phí bảo dưỡng định kỳ hàng năm chủ yếu là bôi trơn dầu mỡ trục trượt và thay thế núm hút cao su chân không, ước tính không quá $300.000\text{ VNĐ/năm}$.
Kết luận
Đề tài "Nghiên cứu xây dựng mô hình và điều khiển robot phân loại sản phẩm trên băng tải" đã hiện thực hóa thành công một giải pháp tự động hóa toàn diện từ thiết kế cơ khí 3D, mô phỏng động học Simscape, gia công phần cứng đến lập trình thị giác máy tính OpenCV và điều khiển nhúng thời gian thực. Hệ thống đạt tỷ lệ phân loại chính xác trung bình $96.0%$ ở tốc độ băng tải $4\text{ cm/s}$, chứng minh tính khả thi vượt trội của việc ứng dụng các thuật toán xử lý ảnh trên nền tảng phần cứng chi phí thấp.
Kết quả nghiên cứu mở ra hướng tiếp cận thực tiễn, có khả năng chuyển giao công nghệ cho các ứng dụng đóng gói, phân loại tự động tại các xưởng sản xuất vừa và nhỏ, đồng thời là nền tảng học thuật vững chắc cho các nghiên cứu phát triển robot thông minh tích hợp trí tuệ nhân tạo (AI-driven Robotics) trong tương lai.