Giới thiệu dự án
Trong bối cảnh cuộc Cách mạng Công nghiệp 4.0, tự động hóa và thị giác máy tính (Computer Vision) đang định hình lại toàn bộ quy trình sản xuất. Theo báo cáo từ International Federation of Robotics (IFR), nhu cầu ứng dụng robot công nghiệp tích hợp hệ thống thị giác (Vision-Guided Robotics - VGR) đạt mức tăng trưởng kép hàng năm (CAGR) trên 13.8%. Tại Việt Nam, đa số các dây chuyền lắp ráp và phân loại tự động tại các nhà máy vừa và nhỏ vẫn phụ thuộc vào hệ thống gắp nhả cố định (fixed pick-and-place) hoặc thiết bị nhập khẩu đắt đỏ từ các hãng quốc tế như Mitsubishi, ABB, KUKA với chi phí đầu tư ban đầu từ 15,000 USD đến hơn 40,000 USD.
+-----------------------------------------------------------------------------------+
| HIỆN TRẠNG & THÁCH THỨC |
+------------------------------------+----------------------------------------------+
| HỆ THỐNG GẮP CỐ ĐỊNH TRUYỀN THỐNG | RÀO CẢN HỆ THỐNG NHẬP KHẨU NGOẠI |
| - Phụ thuộc tọa độ cố định sẵn | - Chi phí đầu tư ban đầu rất cao |
| - Sai lệch vị trí dẫn đến lỗi gắp | - Khó tùy biến thuật toán theo yêu cầu riêng |
| - Chi phí làm đồ gá cơ khí lớn | - Phụ thuộc dịch vụ bảo trì nước ngoài |
+------------------------------------+----------------------------------------------+
|
v
+-----------------------------------------------------------------------------------+
| GIẢI PHÁP ĐỀ XUẤT CỦA ĐỒ ÁN |
| Mô hình tay máy 3 bậc tự do (3-DOF RRR) tích hợp Computer Vision & Điều khiển mờ |
| -> Tự động nhận dạng, tính toán tọa độ động học ngược, gắp nhả với sai số < 1.5mm|
+-----------------------------------------------------------------------------------+
Hệ thống gắp cố định truyền thống bộc lộ nhiều điểm nghẽn: không thể thích ứng khi vật thể nằm sai lệch vị trí, đòi hỏi hệ thống đồ gá phôi phức tạp và tốn kém nhân công hiệu chỉnh lại tọa độ khi thay đổi mẫu mã.
Đồ án "Nghiên cứu, thiết kế, điều khiển mô hình tay máy ứng dụng thuật toán xử lý ảnh" do nhóm sinh viên ngành Cơ điện tử, Khoa Cơ khí - Trường Đại học Công nghiệp Hà Nội (HaUI) thực hiện dưới sự hướng dẫn của TS. Bùi Thanh Lâm, giải quyết bài toán tự động hóa thích nghi thông qua việc tích hợp thị giác máy tính và điều khiển động học thông minh cho cánh tay robot.
Mục tiêu dự án
- Thiết kế & chế tạo cơ khí: Xây dựng mô hình tay máy cấu trúc 3 bậc tự do (3-DOF dạng RRR) sử dụng động cơ bước (Step Motor) chịu tải cao và cơ cấu kẹp dẫn động bởi động cơ Servo RC.
- Mô hình hóa động học: Thiết lập chính xác bài toán động học thuận (Forward Kinematics) và động học ngược (Inverse Kinematics) dựa trên quy tắc Denavit – Hartenberg (D-H).
- Phát triển module thị giác máy tính: Xây dựng pipeline tiền xử lý ảnh (OpenCV), nhận dạng vật thể, định vị tọa độ trọng tâm $(x_p, y_p, z_p)$ và tích hợp giải pháp theo dõi cử chỉ bàn tay (MediaPipe Hands với 21 điểm mốc 3D).
- Hệ thống điều khiển & truyền thông: Xây dựng mạch điều khiển vi xử lý Arduino Uno R3 giao tiếp máy tính qua chuẩn UART Serial (115200 baud), kết hợp thuật toán điều khiển mờ (Fuzzy Logic Controller) tối ưu hóa quỹ đạo chuyển động.
- Kiểm nghiệm thực nghiệm: Đánh giá độ chính xác gắp nhả, thời gian đáp ứng thời gian thực (real-time latency) và độ ổn định của toàn hệ thống.
Kết quả kỳ vọng và phạm vi
- Độ chính xác nhận diện lòng bàn tay/vật thể: Đạt tỷ lệ $\ge 95.7%$.
- Sai số vị trí đầu cuối (End-effector position error): $\le 1.5\text{ mm}$.
- Chu kỳ xử lý và gắp nhả (Cycle time): $\le 3.5\text{ giây/chu kỳ}$.
- Phạm vi nghiên cứu: Mô hình tay máy 3-DOF hoạt động trong không gian cầu bán kính $R = 350\text{ mm}$, tải trọng gắp $300\text{g} - 500\text{g}$, kết nối Serial có dây/không dây trong môi trường phòng lab và dây chuyền mô phỏng.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí |
Robot gắp tọa độ cố định (PLC/Pneumatic) |
Hệ thống Scara công nghiệp cao cấp |
Mô hình 3-DOF Vision-Guided (Đề tài) |
| Khả năng thích ứng vị trí |
Rất thấp (Cố định phôi) |
Rất cao (Camera 2D/3D tích hợp) |
Cao (Tự động bù tọa độ qua Camera) |
| Chi phí triển khai |
Trung bình ($3,000 - $6,000) |
Rất cao ($15,000 - $35,000) |
Rất thấp ($200 - $400 mô hình) |
| Khả năng tùy biến phần mềm |
Thấp (Hệ sinh thái đóng) |
Trung bình (Tùy hãng) |
Tuyệt đối (Mã nguồn mở Python/C++) |
| Điều khiển cử chỉ (Gesture) |
Không hỗ trợ |
Yêu cầu module chuyên dụng đắt tiền |
Tích hợp sẵn MediaPipe 21 Landmarks |
| Bảo trì & chuyển giao |
Đòi hỏi kỹ sư hãng |
Đòi hỏi chứng chỉ hãng |
Dễ tiếp cận trong đào tạo & R&D |
Phân loại yêu cầu theo phương pháp MoSCoW
- Must have (Bắt buộc): Giải bài toán động học D-H cho kết cấu 3 khớp quay; tiền xử lý và lọc nhiễu ảnh; giao thức truyền nhận Serial UART không mất gói tin; bộ truyền bánh răng và gối đỡ vòng bi 6009-2RS1 chịu lực; cơ cấu hành trình giới hạn góc quay.
- Should have (Nên có): Bộ điều khiển mờ (Fuzzy Logic Controller - Sugeno) làm mịn gia tốc động cơ bước; trích xuất bounding box diện tích nhỏ nhất (
cv2.minAreaRect).
- Could have (Có thể mở rộng): Điều khiển không gian làm việc bằng cử chỉ bàn tay 3D qua MediaPipe; tích hợp mô hình phát hiện vật thể học sâu YOLO/SSD.
- Won't have (Chưa thực hiện đợt này): Cảm biến phản hồi lực kẹp (Force-torque feedback); xử lý ảnh đa luồng trên GPU nhúng công nghiệp (NVIDIA Jetson).
Thiết kế hệ thống
graph TD
subgraph "1. Vision & AI Pipeline (Host PC)"
CAM[USB / Web Camera] -->|Video Stream 30FPS| IP[Tiền xử lý: Gaussian / Canny / Threshold]
IP --> DET{Nhận diện đối tượng}
DET -->|Vật thể| BB[Bounding Box & Moments: xp, yp, zp]
DET -->|Cử chỉ tay| MP[MediaPipe: 21 Landmarks 3D]
BB --> IK[Bộ tính Động học ngược Inverse Kinematics]
MP --> IK
IK --> FLC[Bộ điều khiển mờ Sugeno / Trajectory Generator]
FLC --> SER_TX[Giao thức đóng gói UART Serial]
end
subgraph "2. Hardware Control Unit"
SER_TX -->|USB UART 115200 bps| SER_RX[Arduino Uno R3 - ATmega328P]
SER_RX --> PARSER[Bộ giải mã lệnh Command Parser]
PARSER --> STEP_CTRL[Timer Interrupt Step/Dir Pulse]
PARSER --> SERVO_CTRL[PWM Generator]
SW_LIM[Công tắc hành trình Limit Switches] -->|Ngắt bảo vệ| SER_RX
PWR[Nguồn tổ ong 12V-10A SMPS] --> DRV1[Driver Động cơ bước TB6600/A4988]
PWR --> DRV2[Mạch hạ áp LM2596 5V cho Servo]
end
subgraph "3. Mechanical Actuation (3-DOF RRR)"
STEP_CTRL --> DRV1
SERVO_CTRL --> DRV2
DRV1 --> M1[Động cơ bước Khâu 1 - Đế xoay]
DRV1 --> M2[Động cơ bước Khâu 2 - Cánh tay 1]
DRV1 --> M3[Động cơ bước Khâu 3 - Cánh tay 2]
DRV2 --> S_GRIP[Servo MG90S - Tay gắp kẹp vật]
end
Technology Stack và linh kiện chi tiết
- Ngôn ngữ lập trình: Python 3.8.10 (Vision & Kinematics), C/C++ (Arduino Firmware Embedded).
- Thư viện thị giác & tính toán: OpenCV 4.5.5, MediaPipe 0.8.9, NumPy 1.21.0, PySerial 3.5.
- Phần mềm thiết kế & mô phỏng: SolidWorks 2020 (CAD 3D), MATLAB/Simulink 2021a (Fuzzy Logic Toolbox).
- Phần cứng điều khiển: Vi điều khiển ATmega328P (Arduino Uno R3, 16MHz clock, 2KB SRAM).
- Cơ cấu chấp hành: 03 Động cơ bước NEMA 17 (1.8°/bước, 4.2 kg·cm torque), Driver A4988/TB6600 cấu hình Microstepping 1/16; 01 Servo RC TowerPro MG90S (Metal Gear, 1.8 kg·cm).
- Cơ khí chính xác: Vòng bi đỡ trục 6009-2RS1, bộ truyền bánh răng giảm tốc in 3D/nhôm định hình, công tắc hành trình cơ khí chống va đập.
Giao thức truyền thông Serial Frame Format
Để đảm bảo tính toàn vẹn và chống trôi dữ liệu khi gửi góc quay $(\theta_1, \theta_2, \theta_3, Gripper)$ từ Python xuống vi điều khiển, khung truyền dữ liệu được thiết kế theo cấu trúc nhị phân cố định 8 bytes:
$$\text{Frame} = [,\text{0xFF (Header)};|;\theta_1\text{ (Int16)};|;\theta_2\text{ (Int16)};|;\theta_3\text{ (Int16)};|;\text{Grip (UInt8)};|;\text{Checksum};|;\text{0xFE (Footer)},]$$
$$\text{Checksum} = (\theta_1 + \theta_2 + \theta_3 + \text{Grip}) \pmod{256}$$
Methodology
Dự án áp dụng phương pháp tiếp cận kỹ thuật hình chữ V (V-Model Engineering Methodology), đảm bảo tính đối sánh giữa bài toán động học lý thuyết và khả năng thực thi phần cứng.
PHÂN TÍCH & THIẾT KẾ KIỂM THỬ & ĐÁNH GIÁ
[Yêu cầu hệ thống gắp nhả] ---------------------> [Kiểm thử tích hợp & Độ chính xác]
\ ^
[Tính toán D-H & Động học] ------------> [Mô phỏng Simulink & MATLAB]
\ ^
[Thiết kế CAD & Điện] ------> [Thử nghiệm Driver & Step Motor]
\ ^
---> [Gia công & Lắp ráp] -
- Giai đoạn 1 (Tuần 1 - 3): Khảo sát tổng quan, tính toán toán học động học D-H, phân tích mô men quán tính các khâu.
- Giai đoạn 2 (Tuần 4 - 7): Thiết kế 3D SolidWorks, tính toán độ bền bánh răng, chọn vòng bi và gia công cơ khí.
- Giai đoạn 3 (Tuần 8 - 11): Lập trình module OpenCV/MediaPipe trên máy tính và viết firmware điều khiển vi bước trên Arduino.
- Giai đoạn 4 (Tuần 12 - 14): Tích hợp truyền thông UART, tinh chỉnh luật điều khiển mờ Sugeno, căn chỉnh camera (Camera Calibration) và thực nghiệm gắp nhả.
Implementation và kết quả
Development process
1. Thiết lập phương trình động học Denavit – Hartenberg (D-H)
Cánh tay robot có cấu trúc 3 khớp quay $R \perp R \parallel R$. Bảng thông số D-H được thiết lập:
| Khâu ($i$) |
$d_i$ (Độ dịch trục $z$) |
$\theta_i$ (Góc quay quanh $z$) |
$a_i$ (Chiều dài khâu dọc $x$) |
$\alpha_i$ (Góc xoay quanh $x$) |
| 1 |
$L_1$ |
$\theta_1^*$ |
$0$ |
$90^\circ$ |
| 2 |
$0$ |
$\theta_2^*$ |
$L_2$ |
$0^\circ$ |
| 3 |
$0$ |
$\theta_3^*$ |
$L_3$ |
$0^\circ$ |
Ma trận biến đổi thuần nhất tổng quát giữa hai khâu liên tiếp:
$$^{i-1}T_i = \begin{bmatrix} \cos\theta_i & -\sin\theta_i\cos\alpha_i & \sin\theta_i\sin\alpha_i & a_i\cos\theta_i \ \sin\theta_i & \cos\theta_i\cos\alpha_i & -\cos\theta_i\sin\alpha_i & a_i\sin\theta_i \ 0 & \sin\alpha_i & \cos\alpha_i & d_i \ 0 & 0 & 0 & 1 \end{bmatrix}$$
Nhân các ma trận biến đổi thuần nhất $^{0}T_3 = {^{0}T_1} \cdot {^{1}T_2} \cdot {^{2}T_3}$, ta thu được tọa độ khâu công tác cuối $(x_p, y_p, z_p)$:
$$\begin{cases} x_p = \cos\theta_1 [L_3\cos(\theta_2 + \theta_3) + L_2\cos\theta_2] \ y_p = \sin\theta_1 [L_3\cos(\theta_2 + \theta_3) + L_2\cos\theta_2] \ z_p = L_1 + L_3\sin(\theta_2 + \theta_3) + L_2\sin\theta_2 \end{cases}$$
2. Thuật toán giải Động học ngược (Inverse Kinematics)
Từ tọa độ đích $(x_p, y_p, z_p)$ do module xử lý ảnh trả về, các góc khớp được tính giải tích:
$$\theta_1 = \text{atan2}(y_p, x_p)$$
Đặt $r = \sqrt{x_p^2 + y_p^2}$, $z' = z_p - L_1$. Áp dụng định lý hàm số Cosine cho tam giác tạo bởi các khâu $L_2, L_3$:
$$\cos\theta_3 = \frac{r^2 + (z')^2 - L_2^2 - L_3^2}{2 L_2 L_3} \implies \theta_3 = \text{atan2}\left(\pm\sqrt{1-\cos^2\theta_3},; \cos\theta_3\right)$$
$$\theta_2 = \text{atan2}(z', r) - \text{atan2}(L_3\sin\theta_3,; L_2 + L_3\cos\theta_3)$$
3. Xử lý ảnh và điều khiển bằng Python (Snippet)
import cv2
import numpy as np
import serial
import struct
import math
class VisionKinematicsPipeline:
def __init__(self, port='/dev/ttyUSB0', baudrate=115200):
self.ser = serial.Serial(port, baudrate, timeout=0.1)
self.L1, self.L2, self.L3 = 120.0, 150.0, 160.0 # mm
self.pixel_to_mm_ratio = 0.65 # Calibration constant
def inverse_kinematics(self, x, y, z):
# 1. Tinh goc khau de theta1
theta1 = math.atan2(y, x)
# 2. Chieu toa do len mat phang lam viec
r = math.sqrt(x**2 + y**2)
z_prime = z - self.L1
# 3. Tinh theta3
cos_theta3 = (r**2 + z_prime**2 - self.L2**2 - self.L3**2) / (2 * self.L2 * self.L3)
cos_theta3 = np.clip(cos_theta3, -1.0, 1.0)
theta3 = math.atan2(-math.sqrt(1 - cos_theta3**2), cos_theta3) # Elbow-up
# 4. Tinh theta2
theta2 = math.atan2(z_prime, r) - math.atan2(self.L3 * math.sin(theta3),
self.L2 + self.L3 * math.cos(theta3))
return math.degrees(theta1), math.degrees(theta2), math.degrees(theta3)
def process_frame(self, frame):
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
_, thresh = cv2.threshold(blurred, 60, 255, cv2.THRESH_BINARY_INV)
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
if cv2.contourArea(cnt) > 800:
M = cv2.moments(cnt)
if M["m00"] != 0:
cx = int(M["m10"] / M["m00"])
cy = int(M["m01"] / M["m00"])
# Chuyen doi toa do pixel sang toa do Robot (mm)
robot_x = (cx - 320) * self.pixel_to_mm_ratio + 180.0
robot_y = (240 - cy) * self.pixel_to_mm_ratio
robot_z = 25.0 # Cao do vat the
t1, t2, t3 = self.inverse_kinematics(robot_x, robot_y, robot_z)
self.send_robot_command(t1, t2, t3, grip=1)
break
def send_robot_command(self, t1, t2, t3, grip):
# Dong goi Serial Packet theo chuan 8-byte
t1_i, t2_i, t3_i = int(t1 * 10), int(t2 * 10), int(t3 * 10)
checksum = (t1_i + t2_i + t3_i + grip) & 0xFF
packet = struct.pack('<BhhhBB', 0xFF, t1_i, t2_i, t3_i, grip, checksum)
self.ser.write(packet)
4. Firmware Arduino điều khiển động cơ bước (Snippet)
#include <Servo.h>
Servo gripperServo;
const int stepPin[3] = {2, 4, 6};
const int dirPin[3] = {3, 5, 7};
const int limitSwitchPin[3] = {9, 10, 11};
void setup() {
Serial.begin(115200);
gripperServo.attach(8);
for (int i = 0; i < 3; i++) {
pinMode(stepPin[i], OUTPUT);
pinMode(dirPin[i], OUTPUT);
pinMode(limitSwitchPin[i], INPUT_PULLUP);
}
}
void loop() {
if (Serial.available() >= 9) {
if (Serial.read() == 0xFF) { // Header check
int16_t t1 = Serial.read() | (Serial.read() << 8);
int16_t t2 = Serial.read() | (Serial.read() << 8);
int16_t t3 = Serial.read() | (Serial.read() << 8);
uint8_t grip = Serial.read();
uint8_t checksum = Serial.read();
if (((t1 + t2 + t3 + grip) & 0xFF) == checksum) {
executeMovement(t1 / 10.0, t2 / 10.0, t3 / 10.0);
gripperServo.write(grip == 1 ? 90 : 0); // Dong / Mo tay kep
}
}
}
}
void executeMovement(float target1, float target2, float target3) {
// Phat xung vi buoc dieu khien chuyen dong muot
// Tich hop kiem tra cong tac hanh trinh limitSwitchPin
}
Testing và validation
Hệ thống được thử nghiệm qua 100 chu trình gắp nhả liên tục với các điều kiện phôi nằm ngẫu nhiên trong vùng làm việc $300 \times 300\text{ mm}$ dưới các mức độ chiếu sáng từ $200\text{ lux}$ đến $850\text{ lux}$.
+-----------------------------------------------------------------------------------+
| KẾT QUẢ THỬ NGHIỆM ĐỘ TRỄ TỔNG THỂ (LATENCY) |
+--------------------------+-----------------------+--------------------------------+
| TIẾN TRÌNH XỬ LÝ | THỜI GIAN ĐÁP ỨNG | TỶ TRỌNG (%) |
+--------------------------+-----------------------+--------------------------------+
| 1. Capture & Preprocess | 12.4 ms | [====] 0.6% |
| 2. Object Localization | 18.2 ms | [======] 0.9% |
| 3. Inverse Kinematics | 1.8 ms | [=] 0.1% |
| 4. UART Transmission | 4.2 ms | [==] 0.2% |
| 5. Mechanical Execution | 2,050.0 ms | [========================] 98% |
+--------------------------+-----------------------+--------------------------------+
| TỔNG THỜI GIAN CHU KỲ | ~2.08 giây | Hoàn toàn đạt chuẩn Real-time |
+--------------------------+-----------------------+--------------------------------+
| Chỉ số kiểm thử |
Giá trị mục tiêu |
Kết quả thực tế đạt được |
Đánh giá |
| Tỷ lệ nhận diện lòng bàn tay (MediaPipe) |
$\ge 90%$ |
$95.7%$ |
Vượt mục tiêu ($+5.7%$) |
| Độ chính xác định vị tâm vật thể ($x, y$) |
$\le 2.0\text{ mm}$ |
$1.2\text{ mm}$ |
Đạt yêu cầu gắp |
| Sai số lặp vị trí cơ khí (Repeatability) |
$\le 1.5\text{ mm}$ |
$0.85\text{ mm}$ |
Chạy êm nhờ vi bước $1/16$ |
| Tỷ lệ gắp thành công (100 lần test) |
$\ge 90%$ |
$94.0%$ ($94/100$) |
6 lần trượt do bề mặt bóng |
| Tốc độ xử lý khung hình (Frame Rate) |
$\ge 25\text{ FPS}$ |
$31.5\text{ FPS}$ |
Xử lý mượt mà thời gian thực |
Đổi mới và đóng góp
- Kiến trúc điều khiển lai kết hợp Host-Microcontroller: Thay vì sử dụng toàn bộ PLC chuyên dụng đắt đỏ, hệ thống phân bổ nhiệm vụ thông minh: PC phụ trách xử lý thuật toán Computer Vision/AI và Động học ngược phức tạp; vi điều khiển 8-bit Arduino đảm nhận tạo xung thời gian thực (Step/Dir pulses) chống giật và quản lý ngắt an toàn.
- Tích hợp mô hình AI Tracking 21 điểm mốc 3D (MediaPipe Hands): Đồ án tiên phong ứng dụng mô hình Single-Shot Detector kết hợp Landmark Regression để trích xuất 21 tọa độ đốt ngón tay 3D với độ chính xác đạt $95.7%$, tạo nền tảng cho điều khiển cánh tay robot từ xa qua cử chỉ không tiếp xúc (Teleoperation).
- Thuật toán triệt tiêu khung bao chồng lấn (Optimized NMS) & Trích xuất Moment: Tự động hóa quá trình xác định góc nghiêng và tâm hình học bằng hàm
cv2.minAreaRect và Moment bậc 1, giúp tiết kiệm hơn $80%$ thời gian căn chỉnh phôi so với lập trình tọa độ truyền thống.
- Tối ưu hóa chi phí chế tạo: Toàn bộ hệ thống cơ khí và mạch điều khiển có chi phí chỉ bằng khoảng $5 - 8%$ so với các cánh tay robot giáo dục thương mại cùng phân khúc tải trọng, mở ra tiềm năng lớn trong nghiên cứu và nội địa hóa thiết bị đào tạo tự động hóa.
Ứng dụng thực tế và triển khai
+-----------------------------------------------------------------------------------+
| CÁC LĨNH VỰC ỨNG DỤNG THỰC TẾ |
+-----------------------------------------------------------------------------------+
| [1. LẮP RÁP ĐIỆN TỬ] -> Phân loại chip, điện trở, kiểm tra thiếu mối hàn |
| [2. DƯỢC PHẨM & Y TẾ] -> Đếm số viên thuốc trong vỉ, gắp mẫu phẩm cách ly |
| [3. LOGISTICS & E-COMM] -> Phân loại bưu kiện theo mã màu, mã vạch tự động |
| [4. GIẢNG DẠY KỸ THUẬT] -> Thiết bị thực hành Robotics, Computer Vision tại ĐH |
+-----------------------------------------------------------------------------------+
Kịch bản triển khai phân loại sản phẩm trong nhà máy
- Môi trường: Băng chuyền chuyển động liên tục tốc độ $V \le 0.1\text{ m/s}$.
- Cấu hình: Camera cố định góc nhìn từ trên xuống (Top-down view), chiều cao $450\text{ mm}$, đèn vòng LED chống bóng mờ.
- Quy trình hoạt động:
- Camera chụp ảnh phôi khi đi qua cảm biến quang kích hoạt.
- Module OpenCV khử nhiễu, trích xuất tọa độ $(x_p, y_p)$ và góc xoay $\phi$.
- Máy tính giải ngược D-H, gửi frame dữ liệu điều khiển qua cổng USB Serial.
- Cánh tay 3-DOF thực hiện gắp phôi và đặt vào khay phân loại tương ứng theo màu sắc/kích thước trong vòng $2.1\text{ giây}$.
Phân tích hiệu quả đầu tư (ROI Analysis)
- Chi phí đầu tư mô hình: Khoảng $6,500,000\text{ VNĐ}$ (gồm khung nhôm, động cơ bước, mạch điều khiển, camera và gia công).
- So sánh nhân công: Thay thế $01$ vị trí phân loại thủ công lặp đi lặp lại. Thời gian hoàn vốn (Payback Period) ước tính dưới $3.5\text{ tháng}$ khi ứng dụng vào các xưởng gia công quy mô nhỏ.
Hạn chế và hướng phát triển
+-----------------------------------------------------------------------------------+
| HẠN CHẾ & HƯỚNG MỞ RỘNG ĐỀ TÀI |
+------------------------------------+----------------------------------------------+
| HẠN CHẾ HIỆN TẠI | GIẢI PHÁP & HƯỚNG PHÁT TRIỂN TIẾP THEO |
| - Phụ thuộc điều kiện ánh sáng | -> Tích hợp Camera độ sâu RGB-D (Intel D435) |
| - Không gian làm việc 3-DOF giới hạn| -> Nâng cấp lên 6-DOF để tự do hướng gắp |
| - Truyền thông Serial USB có dây | -> Chuyển sang ROS 2 & MQTT qua WiFi/5G |
| - Vi xử lý Arduino tài nguyên bé | -> Nhúng thẳng mô hình lên NVIDIA Jetson Orin|
+------------------------------------+----------------------------------------------+
-
Hạn chế kỹ thuật hiện tại:
- Hệ thống dùng camera 2D đơn sắc nên việc tính toán tọa độ chiều sâu $z_p$ còn phụ thuộc vào giả định mặt phẳng cố định ($z = \text{const}$).
- Kết cấu 3-DOF chưa thể tự do điều chỉnh hướng tiếp cận của tay gắp (chưa đủ 6 bậc tự do trong không gian Descartes).
- Điều kiện ánh sáng môi trường thay đổi đột ngột ($< 150\text{ lux}$ hoặc ngược sáng mạnh) làm suy giảm độ chính xác của ngưỡng nhị phân (Binary Threshold).
-
Hướng nghiên cứu và nâng cấp:
- Nâng cấp lên hệ thống 6-DOF Articulated Robot để tối ưu hóa góc tiếp cận vật thể phức tạp.
- Ứng dụng Camera 3D độ sâu (RGB-D Sensor như Intel RealSense D435) để lấy trực tiếp đám mây điểm (Point Cloud) không gian thực.
- Nhúng toàn bộ pipeline AI/Vision lên kit máy tính biên NVIDIA Jetson Nano / Raspberry Pi 4 kết hợp framework ROS 2 (Robot Operating System).
- Triển khai thuật toán điều khiển mạng nơ-ron thích nghi (Adaptive Neural Control) hoặc Reinforcement Learning cho quá trình gắp động.
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật (Cơ điện tử, Tự động hóa, CNTT): Cung cấp tài liệu hoàn chỉnh từ thiết lập toán học D-H, thuật toán giải ngược tọa độ, đến mã nguồn kết nối vi điều khiển với thị giác máy tính.
- Kỹ sư & Nhà phát triển hệ thống: Tham khảo kiến trúc phân tầng truyền thông nhị phân UART, phương pháp tiền xử lý ảnh và thiết kế mạch công suất động cơ bước không bị nhiễu sóng.
- Doanh nghiệp vừa và nhỏ (SMEs): Mô hình hóa giải pháp tự động hóa chi phí thấp, tận dụng nguồn linh kiện có sẵn để lắp ráp máy phân loại chuyên dụng mà không chịu gánh nặng tài chính từ thiết bị ngoại nhập.
- Nhà nghiên cứu (Researchers): Dữ liệu thực nghiệm về độ trễ, sai số động học và phương pháp tích hợp mô hình MediaPipe Hands điều khiển chuyển động theo thời gian thực.
Câu hỏi thường gặp
1. Cần những yêu cầu kỹ thuật phần cứng nào để triển khai hệ thống này?
Máy tính Host PC yêu cầu tối thiểu vi xử lý Intel Core i3 (thế hệ 8 trở lên) hoặc AMD Ryzen 3, RAM 4GB, 01 cổng USB 2.0/3.0, Camera độ phân giải tối thiểu HD 720p (30 FPS). Phía phần cứng chấp hành gồm vi điều khiển Arduino Uno R3, nguồn tổ ong 12V-10A SMPS, 03 bộ động cơ bước NEMA 17 kèm Driver TB6600/A4988 và 01 Servo MG90S.
2. Giới hạn không gian làm việc và độ chính xác của mô hình là bao nhiêu?
Mô hình hoạt động trong bán kính hình cầu từ $120\text{ mm}$ đến $350\text{ mm}$, góc quay đế $\theta_1 \in [-90^\circ, +90^\circ]$, góc nâng khớp $\theta_2 \in [0^\circ, 135^\circ]$, $\theta_3 \in [-90^\circ, 90^\circ]$. Độ chính xác lặp lại vị trí (Repeatability) đạt $0.85\text{ mm}$ với tải trọng tối đa khuyến nghị là $400\text{g}$.
3. Làm thế nào để hệ thống hoạt động ổn định khi điều kiện ánh sáng thay đổi?
Cần hiệu chuẩn ma trận nội suy camera định kỳ và sử dụng không gian màu HSV kết hợp bộ lọc thích nghi cv2.adaptiveThreshold hoặc bộ lọc làm mịn cv2.bilateralFilter để bảo toàn cạnh. Ngoài ra, việc lắp đặt hệ thống đèn LED vòng (Ring Light) với ánh sáng khuếch tán đồng đều là giải pháp tối ưu triệt tiêu bóng đổ.
4. Hệ thống có thể tích hợp với dây chuyền PLC công nghiệp sẵn có không?
Có thể tích hợp dễ dàng thông qua module chuyển đổi giao thức RS485/Modbus RTU hoặc qua các chân Digital I/O (Optocoupler cách ly quang) của Arduino để nhận tín hiệu kích hoạt (Trigger) và trả cờ báo hoàn thành (Done/Busy Flag) cho PLC trung tâm.
5. Chi phí chế tạo và thời gian thu hồi vốn (ROI) được tính toán như thế nào?
Tổng chi phí linh kiện gia công dao động từ $6.0 - 7.5\text{ triệu VNĐ}$. Với năng suất gắp trung bình $1,200\text{ sản phẩm/giờ}$, hệ thống tương đương một nhân công phân loại đơn giản, giúp thu hồi vốn đầu tư hoàn toàn trong khoảng $3 - 4\text{ tháng}$ vận hành thực tế.
Kết luận
Đồ án tốt nghiệp "Nghiên cứu, thiết kế, điều khiển mô hình tay máy ứng dụng thuật toán xử lý ảnh" của nhóm sinh viên Khoa Cơ khí - Đại học Công nghiệp Hà Nội đã hoàn thành toàn diện các mục tiêu đề ra: từ việc xây dựng cơ sở lý thuyết động học Denavit-Hartenberg, thiết kế gia công hệ thống cơ khí 3-DOF chắc chắn, đến việc lập trình thành công hệ thống thị giác máy tính OpenCV và mô hình nhận diện cử chỉ MediaPipe 3D.
Với độ chính xác nhận diện đạt $95.7%$, sai số vị trí $< 1.5\text{ mm}$ và chi phí tối ưu, công trình không chỉ có giá trị học thuật xuất sắc mà còn chứng minh tính khả thi cao trong việc ứng dụng tự động hóa chi phí thấp cho các dây chuyền sản xuất công nghiệp tại Việt Nam.
Hành động ngay: Khám phá chi tiết mã nguồn, bản vẽ thiết kế 3D SolidWorks và tài liệu thuật toán động học để ứng dụng trực tiếp vào các dự án Robot & Thị giác máy tính của bạn ngay hôm nay!