Bối cảnh và vấn đề nghiên cứu
Trong xu thế tự động hóa và hiện đại hóa sản xuất công nghiệp, hệ thống cánh tay robot kết hợp thị giác máy tính (Computer Vision) ngày càng đóng vai trò thiết yếu. Các hệ thống này cho phép thay thế con người thực hiện các thao tác có tính chu kỳ, đòi hỏi độ chính xác cao hoặc hoạt động trong môi trường khắc nghiệt, độc hại, qua đó nâng cao năng suất và giảm chi phí vận hành. Tại Việt Nam, việc tiếp cận và làm chủ các công nghệ điều khiển robot tiên tiến tích hợp xử lý ảnh vẫn còn nhiều hạn chế, phần lớn trang thiết bị trong nước vẫn dựa trên các công nghệ truyền thống. Do đó, việc nghiên cứu, thiết kế và chế tạo các mô hình phân loại sản phẩm tự động kết hợp xử lý ảnh thời gian thực mang tính cấp thiết trong công tác đào tạo và nghiên cứu ứng dụng kỹ thuật.
Đề tài "Ứng dụng xử lý ảnh và robot phân loại sản phẩm theo màu sắc" được thực hiện bởi sinh viên Nguyễn Thái Đạt dưới sự hướng dẫn của TS. Trần Mạnh Sơ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 nhận dạng, định vị và gắp/thả sản phẩm trên mặt phẳng làm việc.
Hệ thống đặt ra 5 mục tiêu nghiên cứu cụ thể:
- Cánh tay robot hoạt động, di chuyển ổn định khi nhận lệnh điều khiển.
- Hình ảnh truyền từ camera về máy tính đạt độ trễ thấp.
- Quá trình xử lý ảnh xác định màu sắc và vị trí của sản phẩm diễn ra nhanh chóng, chính xác.
- Dữ liệu về màu sắc và thời gian phát hiện sản phẩm được cập nhật theo thời gian thực lên hệ quản trị cơ sở dữ liệu.
- Xây dựng giao diện điều khiển đồ họa (GUI) trực quan, hỗ trợ người vận hành dễ dàng giám sát và điều khiển hệ thống.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Mô hình cánh tay robot 3 bậc tự do (3-DOF) phỏng theo cấu trúc dòng robot Magician, hệ thống điều khiển nhúng trên nền vi điều khiển Arduino UNO R3, module camera Logitech C310 và các thuật toán xử lý ảnh trên máy tính.
- Phạm vi và giới hạn kỹ thuật: Cánh tay robot điều khiển theo cấu trúc vòng hở (open-loop) sử dụng động cơ bước không có cảm biến phản hồi vị trí (encoder). Thuật toán xử lý ảnh được triển khai bằng ngôn ngữ Python với thư viện OpenCV. Đối tượng phân loại là các khối hình trụ tròn có kích thước chiều cao 10 mm, đường kính đáy 10 mm với ba màu sắc cơ bản: Đỏ (Red), Vàng (Yellow) và Xanh dương (Blue).
Cơ sở lý thuyết và phương pháp
Đề tài kết hợp nền tảng lý thuyết động học tay máy và các kỹ thuật xử lý ảnh kỹ thuật số:
Khung lý thuyết động học robot
- Phương pháp Denavit – Hartenberg (D-H): Được sử dụng để thiết lập hệ tọa độ trên các khâu khớp và xây dựng mô hình động học thuận. Mô hình xác định ma trận chuyển đổi đồng nhất từ hệ trục tọa độ gốc (tại đế robot) đến khâu tác động cuối (end-effector).
- Phương pháp đại số giải bài toán động học ngược: Nhằm tính toán góc quay của các biến khớp ($\theta_1, \theta_2, \theta_3$) từ tọa độ không gian làm việc $(P_x, P_y, P_z)$. Do cấu hình cơ khí của cánh tay robot Magician yêu cầu cơ cấu chấp hành đầu cuối luôn song song với mặt phẳng nằm ngang, nhóm tác giả chọn bộ nghiệm có giá trị góc $\theta_3$ âm để đảm bảo tính phù hợp về mặt cơ học.
| Khâu ($i$) |
$a_i$ (cm) |
$\alpha_i$ (rad) |
$d_i$ (cm) |
$\theta_i$ (rad) |
| 1 |
0 |
$\pi/2$ |
$d_1 = 12.5$ |
$\theta_1$ |
| 2 |
$a_2 = 13.5$ |
0 |
0 |
$\theta_2$ |
| 3 |
$a_3 = 14.7$ |
0 |
0 |
$\theta_3$ |
| 4 |
$a_4 = 5.5$ |
0 |
0 |
$-(\theta_2 + \theta_3)$ |
| 5 |
$a_5 = 5.0$ |
0 |
0 |
$-\pi/2$ |
Kỹ thuật thị giác máy tính
- Kỹ thuật trừ nền (Background Subtraction): Thu nhận khung hình mẫu của vùng làm việc (ảnh nền) và liên tục so sánh, trừ với khung hình hiện tại từ webcam để phát hiện sự xuất hiện của vật thể mới.
- Không gian màu HSV (Hue - Saturation - Value): Được lựa chọn thay thế cho không gian màu RGB nhằm giảm thiểu ảnh hưởng của cường độ sáng môi trường, hỗ trợ phân ngưỡng và nhận dạng chính xác ba vùng màu: Đỏ, Vàng và Xanh dương.
- Xác định đường bao (Contour) và trọng tâm (Moments): Sử dụng các hàm tính toán hình học trong OpenCV để tìm chu vi, diện tích và tính toán tọa độ tâm sản phẩm theo hệ tọa độ pixel, sau đó ánh xạ sang hệ tọa độ thực tế của cánh tay robot.
Phương pháp nghiên cứu và nguồn dữ liệu
- Phương pháp mô hình hóa toán học và mô phỏng động học trên phần mềm MATLAB.
- Phương pháp thực nghiệm chế tạo phần cứng (in 3D, lắp ráp mạch điều khiển, kết nối cơ - điện).
- Dữ liệu thu thập trực tiếp từ luồng video của webcam Logitech C310 độ phân giải 720p/30fps trong quá trình thực nghiệm vận hành mô hình.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình điều khiển phân tầng, phân định rõ ràng giữa tầng xử lý cấp cao (Máy tính) và tầng điều khiển chấp hành cấp thấp (Vi điều khiển).
[Webcam Logitech C310] --> (Hình ảnh USB) --> [Máy tính: Python/OpenCV/GUI]
|
(Truyền thông UART)
v
[Arduino UNO R3 + CNC Shield V3]
|
+--> [Driver A4988] --> 3 Động cơ bước 127K38200
+--> [Servo MG90S] (Cơ cấu kẹp gắp)
+--> [3 Công tắc hành trình JL012] (Home Endstop)
Kiến trúc phần cứng
- Khung cơ khí cánh tay robot: Khung thân chế tạo bằng phương pháp in 3D mô phỏng robot Magician. Kích thước bao ngoài toàn bộ hệ thống sau khi lắp đặt trên đế gỗ là $600 \times 500 \times 430\text{ mm}$, tổng khối lượng 5 kg.
- Khối xử lý trung tâm và công suất:
- Vi điều khiển: Arduino UNO R3 (chip ATmega328, 8-bit, 16 MHz, bộ nhớ Flash 32 KB, SRAM 2 KB).
- Mạch mở rộng: CNC Shield V3 kết hợp 3 module mạch điều khiển động cơ bước A4988.
- Động cơ dẫn động khớp: 3 động cơ bước 2 pha mã hiệu 127K38200 (góc bước $1.8^\circ$, dòng $1.7\text{ A/pha}$, mô-men xoắn $43\text{ Ncm}$). Driver A4988 được thiết lập ở chế độ vi bước $1/16$ (Microstepping).
- Khâu chấp hành cuối: Động cơ RC Servo MG90S (bánh răng kim loại, góc quay $0 - 90^\circ$, lực kéo $2\text{ kg/cm}$) dùng để đóng/mở kẹp gắp.
- Cảm biến gốc: 3 công tắc hành trình cơ khí JL012 gắn tại các trục khớp để định vị điểm gốc ban đầu (Home position).
- Nguồn cấp: Nguồn tổ ong AC/DC $12\text{V} - 10\text{A}$ (công suất 150 W) cấp nguồn cho động cơ, mạch Arduino lấy nguồn $5\text{V}$ trực tiếp qua cổng USB máy tính.
| Chân Arduino UNO R3 |
Chức năng trên CNC Shield V3 |
Thiết bị ngoại vi kết nối |
| Chân số 8 |
EN (Enable) |
Kích hoạt chung cho các driver A4988 |
| Chân số 2, 5 |
X.STEP / X.DIR |
Driver điều khiển động cơ bước trục 1 (Khớp 1) |
| Chân số 3, 6 |
Y.STEP / Y.DIR |
Driver điều khiển động cơ bước trục 2 (Khớp 2) |
| Chân số 4, 7 |
Z.STEP / Z.DIR |
Driver điều khiển động cơ bước trục 3 (Khớp 3) |
| Chân số 9, 10, 11 |
Endstop X+, Y+, Z+ |
3 Công tắc hành trình định vị điểm Home |
| Chân Analog A0 |
Chân phát xung PWM |
Dây tín hiệu điều khiển Servo MG90S |
| Cổng USB Type-B |
Giao tiếp nối tiếp UART |
Kết nối máy tính truyền nhận dữ liệu điều khiển |
Kiến trúc phần mềm và thuật toán điều khiển
- Tính toán phát xung bước: Tỉ số truyền cơ khí giữa bánh răng tại trục khớp và bánh răng trục động cơ bước là $\text{Gear_ratio} = 90/20 = 4.5$. Số xung cần cấp cho động cơ quay một góc $\theta$ (độ) ở chế độ vi bước $1/16$ được xác định theo công thức:
$$\text{Pulse} = \frac{\theta \times 3200 \times \text{Gear_ratio}}{360}$$
Do đặc tính ràng buộc liên kết cơ khí của robot Magician, khi khớp 2 quay một góc $\theta_2$, để giữ nguyên góc của khớp 3 thì động cơ 3 phải quay bù một lượng tương ứng. Do đó, số xung cấp cho ba động cơ lần lượt là $\text{Pulse}_1$, $\text{Pulse}_2$, và $(\text{Pulse}_3 + \text{Pulse}_2)$.
- Quỹ đạo di chuyển an toàn: Sau mỗi chu trình gắp và thả sản phẩm vào ô phân loại, robot luôn được điều khiển quay về vị trí Home trung gian có tọa độ góc $(\theta_1 = 0^\circ, \theta_2 = 115^\circ, \theta_3 = -130^\circ)$ trước khi nhận lệnh tiếp theo nhằm triệt tiêu hiện tượng va chạm cơ khí và tích lũy sai số bước.
- Giao diện điều khiển (GUI) & Cơ sở dữ liệu:
- Được xây dựng bằng PyQt/Qt Designer và chạy trên môi trường PyCharm (Python).
- Cung cấp hai chế độ vận hành: Chế độ bằng tay (Manual - cho phép đặt góc/tọa độ trực tiếp, kiểm tra từng khớp và đóng/mở kẹp) và chế độ tự động (Auto - tự động nhận dạng, tính toán tọa độ và phân loại).
- Kết nối hệ quản trị cơ sở dữ liệu MySQL Workbench qua giao thức mạng nội bộ để lưu trữ nhật ký phân loại (ID, loại màu, thời gian nhận dạng).
Nội dung chính theo từng chương
Chương 1: Đặt vấn đề
Chương này tổng quan về vai trò của công nghệ tự động hóa, robot công nghiệp và thị giác máy tính trong thời kỳ công nghiệp 4.0. Tác giả chỉ ra thực trạng ứng dụng và đào tạo robot tại Việt Nam, qua đó xác định tính cấp thiết của đề tài. Chương 1 cũng công bố chi tiết mục tiêu nghiên cứu, phạm vi ứng dụng, các nội dung triển khai và giới hạn kỹ thuật của hệ thống.
Chương 2: Cơ sở lý thuyết
Chương 2 tập trung vào cơ sở toán học và lý thuyết xử lý ảnh phục vụ cho việc điều khiển robot:
- Khái quát về cấu tạo cánh tay robot, định nghĩa bài toán động học thuận và động học ngược.
- Thiết lập bảng thông số D-H và xây dựng hệ ma trận biến đổi tọa độ thuần nhất từ khâu 0 đến khâu 5.
- Trình bày thuật giải giải tích để giải bài toán động học ngược cho cấu hình robot Magician 3-DOF.
- Phân tích nguyên lý thị giác máy tính: thuật toán trừ ảnh nền, chuyển đổi không gian màu RGB sang HSV, các phép lọc hình thái học, kỹ thuật tìm đường bao (Contour) và tính tọa độ trọng tâm sản phẩm dựa trên hàm Moments.
Chương 3: Tính toán và thiết kế
Chương 3 trình bày các bước tính toán, thiết kế sơ đồ khối và lựa chọn các phần tử phần cứng, phần mềm:
- Thiết lập sơ đồ khối phần cứng gồm: Máy tính, Webcam, Khối điều khiển (Arduino + CNC Shield), Khối công suất (Driver A4988), Khối chấp hành (Động cơ bước, Servo) và Khối nguồn.
- Trình bày chi tiết thông số kỹ thuật của từng linh kiện: Kích thước các khâu của cánh tay robot in 3D, board Arduino UNO R3, CNC Shield V3, Driver A4988 (bảng chân cấu hình vi bước), động cơ bước 127K38200, nguồn tổ ong $12\text{V}-10\text{A}$, công tắc hành trình JL012, webcam Logitech C310 và servo MG90S.
- Giới thiệu các công cụ phần mềm: PyCharm, Qt Designer, MATLAB, Arduino IDE và MySQL Workbench.
Chương 4: Thi công hệ thống
Chương 4 thuyết minh chi tiết quá trình chế tạo mô hình và lập trình điều khiển:
- Thi công phần cứng: Sơ đồ đấu nối dây chi tiết giữa Arduino UNO R3, CNC Shield V3, Driver A4988, động cơ bước, công tắc hành trình và servo kẹp. Trình bày hình ảnh mô hình thực tế sau khi hoàn thiện với kích thước $600 \times 500 \times 430\text{ mm}$, nặng 5 kg.
- Lập trình nhúng và thuật toán điều khiển: Tính toán tỉ số truyền bánh răng ($90/20$), công thức phát xung vi bước $1/16$, giải thuật bù góc chuyển động liên khớp giữa khớp 2 và khớp 3.
- Xây dựng lưu đồ thuật toán điều khiển tổng thể, lưu đồ thuật toán xử lý ảnh trên Python/OpenCV, thuật toán chuyển đổi tọa độ từ pixel sang hệ tọa độ làm việc của robot.
- Lập trình giao diện điều khiển PyQt (chế độ Manual, Auto) và cấu hình kết nối bảng dữ liệu MySQL.
Chương 5: Kết quả thực hiện
Chương 5 báo cáo kết quả thử nghiệm thực tế của mô hình:
- Kết quả thử nghiệm điều khiển vị trí cánh tay robot (tính năng Set Position trong chế độ Manual), so sánh tọa độ đặt lý thuyết và tọa độ thực tế đạt được.
- Đánh giá khả năng phân loại sản phẩm theo ba màu (Đỏ, Vàng, Xanh dương) trong hai kịch bản môi trường: điều kiện đủ sáng và điều kiện thiếu sáng.
Chương 6: Kết luận và hướng phát triển
Chương 6 tổng kết các hạng mục đã hoàn thành, chỉ ra các mặt hạn chế còn tồn đọng trong mô hình thực nghiệm và đề xuất các phương hướng cải tiến trong các nghiên cứu tiếp theo.
Kết quả và đóng góp
Kết quả thực nghiệm
- Hoạt động của cánh tay robot: Cánh tay robot 3 bậc tự do vận hành đúng theo giải thuật động học đã tính toán. Tính năng Set Position và các thao tác gắp/thả sản phẩm hoạt động ổn định. Cơ cấu kẹp servo MG90S kẹp giữ chắc chắn các phôi hình trụ đường kính 10 mm.
- Độ tin cậy của thuật toán xử lý ảnh: Hệ thống nhận diện và phân loại chính xác các sản phẩm màu Đỏ, Vàng, Xanh dương khi làm việc trong điều kiện ánh sáng chuẩn. Giao diện GUI hiển thị trực quan luồng video từ webcam, hiển thị tọa độ tâm sản phẩm và tự động ghi nhận dữ liệu phân loại vào hệ thống cơ sở dữ liệu MySQL theo thời gian thực.
- Thử nghiệm trong điều kiện ánh sáng: Hệ thống hoạt động tốt trong điều kiện chiếu sáng đầy đủ và đồng đều. Khi thử nghiệm trong môi trường ánh sáng yếu hoặc bị bóng đổ, thuật toán phân ngưỡng HSV xuất hiện hiện tượng nhận diện sai lệch hoặc không bắt được đường bao sản phẩm.
| Hạng mục thử nghiệm |
Điều kiện ánh sáng tốt |
Điều kiện ánh sáng kém |
| Nhận diện màu Đỏ |
Chính xác, xác định đúng tâm |
Đôi khi mất biên dạng |
| Nhận diện màu Vàng |
Chính xác, không nhầm lẫn |
Dễ nhầm với vùng sáng nền |
| Nhận diện màu Xanh dương |
Tách biên rõ ràng, ổn định |
Giảm độ tương phản phân ngưỡng |
| Gắp - Phân loại về ô |
Đúng vị trí ô quy định |
Tọa độ lệch khi biên bị biến dạng |
Giải pháp và đóng góp của đề tài
- Chế tạo thành công mô hình phần cứng cánh tay robot 3-DOF giá thành thấp bằng công nghệ in 3D kết hợp các linh kiện điện tử mã nguồn mở phổ biến.
- Xây dựng hoàn chỉnh chuỗi thuật toán xử lý từ tiếp nhận ảnh, lọc màu HSV, tính tâm sản phẩm, giải bài toán động học ngược đến xuất xung điều khiển động cơ bước đa trục đồng thời.
- Tích hợp thành công giao diện giám sát GUI với cơ sở dữ liệu MySQL, cung cấp một giải pháp tự động hóa khép kín ở quy mô phòng thí nghiệm.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế kỹ thuật
- Hệ thống điều khiển vòng hở: Các khớp robot sử dụng động cơ bước không có encoder hồi tiếp vị trí. Nếu xảy ra hiện tượng kẹt cơ khí, trượt bước hoặc va chạm ngoại lực, hệ thống không thể tự phát hiện và tự bù sai số góc quay.
- Phụ thuộc điều kiện môi trường: Thuật toán xử lý ảnh dựa trên ngưỡng màu HSV cố định nên dễ bị ảnh hưởng bởi sự thay đổi cường độ ánh sáng tự nhiên và bóng phản chiếu trong không gian làm việc.
- Tốc độ xử lý: Thời gian nhận diện và tính toán chuyển động còn độ trễ nhất định khi luồng hình ảnh có độ phân giải cao hoặc khi có nhiều vật thể xuất hiện đồng thời.
Hướng nghiên cứu tiếp theo
- Tích hợp thêm cảm biến hồi tiếp góc quay (encoder) tại các trục động cơ bước hoặc chuyển đổi sang động cơ Servo để xây dựng hệ thống điều khiển vị trí vòng kín.
- Tối ưu hóa thuật toán xử lý ảnh, áp dụng các bộ lọc thích nghi hoặc thuật toán trí tuệ nhân tạo (AI/Deep Learning) để nhận diện được các sản phẩm có hình dạng phức tạp và giảm thiểu tối đa ảnh hưởng của sự thay đổi ánh sáng môi trường.
- Ứng dụng các thuật toán điều khiển hiện đại, điều khiển thông minh để tối ưu hóa quỹ đạo di chuyển, giảm rung lắc và tăng tốc độ làm việc của robot.
Giá trị tham khảo
Báo cáo đồ án tốt nghiệp này là tài liệu tham khảo hữu ích đối với:
- Sinh viên ngành Kỹ thuật Điều khiển & Tự động hóa, Cơ điện tử, Kỹ thuật Robot: Cung cấp phương pháp giải chi tiết bài toán động học thuận (D-H) và động học ngược đại số cho mô hình robot kiểu Scara/Magician 3-DOF; tài liệu hướng dẫn cấu hình vi bước trên Driver A4988 và phương pháp lập trình điều khiển động cơ bước kết hợp tỉ số truyền.
- Người nghiên cứu ứng dụng Thị giác máy tính cơ bản: Cung cấp quy trình từng bước xử lý ảnh nhận dạng màu sắc (trừ nền, chuyển đổi HSV, tìm contour, tính moments) bằng thư viện OpenCV trên nền Python.
- Kỹ sư phát triển hệ thống nhúng và SCADA/GUI: Tham khảo mô hình kết nối giao tiếp nối tiếp UART giữa Python GUI (PyQt) với vi điều khiển Arduino và phương thức quản trị dữ liệu sản xuất bằng MySQL Workbench.
Câu hỏi thường gặp
1. Cánh tay robot trong đề tài có bao nhiêu bậc tự do và sử dụng loại động cơ nào?
Cánh tay robot có 3 bậc tự do (3-DOF) với cấu trúc phỏng theo mẫu robot Magician. Hệ thống sử dụng 3 động cơ bước 2 pha mã hiệu 127K38200 (góc bước $1.8^\circ$, dòng $1.7\text{ A}$) kết hợp module Driver A4988 cấu hình vi bước $1/16$ để dẫn động các khớp, và 1 động cơ RC Servo MG90S để điều khiển cơ cấu kẹp gắp ở khâu cuối.
2. Tỉ số truyền tại các khớp của robot được thiết kế như thế nào?
Tỉ số truyền giữa bánh răng tại khớp của robot so với bánh răng gắn tại trục của động cơ bước ở cả ba khớp (khớp 1, khớp 2, khớp 3) đều bằng nhau và có giá trị là:
$$\text{Gear_ratio} = \frac{90}{20} = 4.5$$
3. Tại sao khi điều khiển khớp số 2 quay thì số xung cấp cho động cơ số 3 lại phải thay đổi?
Do cấu trúc liên kết cơ khí của robot kiểu Magician, khi khớp số 2 quay một góc $\theta_2$, để đảm bảo góc quay tương đối của khớp số 3 không bị thay đổi ngoài ý muốn thì động cơ số 3 phải quay cùng một góc $\theta_2$. Do đó, số xung thực tế cấp cho động cơ số 3 là tổng $(\text{Pulse}_3 + \text{Pulse}_2)$.
4. Tọa độ điểm Home mặc định của hệ thống được xác lập ở góc quay bao nhiêu?
Điểm Home (vị trí gốc trung gian an toàn) được định vị thông qua 3 công tắc hành trình JL012, tương ứng với bộ góc biến khớp:
- Khớp 1: $\theta_1 = 0^\circ$
- Khớp 2: $\theta_2 = 115^\circ$
- Khớp 3: $\theta_3 = -130^\circ$
5. Thuật toán xử lý ảnh nhận dạng những màu sắc nào và phân loại đối tượng có kích thước ra sao?
Hệ thống sử dụng không gian màu HSV để phân loại 3 màu sắc cơ bản: Đỏ, Vàng và Xanh dương. Đối tượng phân loại là các phôi hình trụ tròn có kích thước chiều cao 10 mm và đường kính mặt đáy 10 mm.
Kết luận
Đồ án tốt nghiệp của sinh viên Nguyễn Thái Đạt đã hoàn thành trọn vẹn các mục tiêu thiết kế và thi công hệ thống phân loại sản phẩm tự động kết hợp xử lý ảnh và cánh tay robot 3 bậc tự do. Công trình xây dựng thành công mô hình toán học động học thuận - ngược, hoàn thiện hệ thống phần cứng điều khiển bằng Arduino UNO R3 và phát triển phần mềm xử lý ảnh OpenCV trên nền tảng Python tích hợp giao diện GUI và cơ sở dữ liệu MySQL. Kết quả thực nghiệm cho thấy hệ thống hoạt động ổn định, nhận dạng và gắp đặt chính xác các sản phẩm theo màu sắc quy định, đóng vai trò là một mô hình thực hành và nghiên cứu ứng dụng có giá trị tham khảo cao trong lĩnh vực điều khiển tự động.