Bối cảnh và vấn đề nghiên cứu

Trong xu thế tự động hóa và hiện đại hóa quy trình sản xuất công nghiệp, việc tối ưu hóa năng suất luôn phải đi kèm với công tác kiểm soát chất lượng sản phẩm nghiêm ngặt. Tại các dây chuyền sản xuất truyền thống hoặc bán tự động, việc kiểm tra thủ công phụ thuộc nhiều vào sức người, tiềm ẩn nguy cơ sai sót do mệt mỏi và không đáp ứng được tốc độ vận hành công nghiệp. Sự phát triển của robot công nghiệp kết hợp với trí tuệ nhân tạo (AI) và thị giác máy tính mở ra giải pháp tự động nhận diện và phân loại sản phẩm khuyết tật một cách ổn định, liên tục và chính xác. Xuất phát từ nhu cầu thực tiễn đó, đề tài "Thiết kế và thi công mô hình cánh tay robot phân loại sản phẩm lỗi" được thực hiện bởi nhóm tác giả Trần Văn Phúc và Nguyễn Đình Cao Trí Tín, dưới sự hướng dẫn khoa học của PGS. Trương Ngọc Sơn tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (chuyên ngành Kỹ thuật Điện tử - Viễn thông).

Đề tài xác định hệ thống các nhiệm vụ nghiên cứu cụ thể như sau:

  1. Sử dụng camera ghi hình các sản phẩm trên băng chuyền và truyền dữ liệu hình ảnh về máy tính xử lý trung tâm.
  2. Ứng dụng bo mạch vi điều khiển Arduino để điều khiển động cơ băng tải và chấp hành tác vụ phân loại sản phẩm.
  3. Thiết lập hệ thống giám sát và thuật toán trên máy tính nhằm đánh giá chất lượng sản phẩm dựa trên đặc trưng hình ảnh.
  4. Điều khiển cánh tay robot thực hiện thao tác gắp sản phẩm lỗi và phân loại chính xác vào các vị trí quy định tương ứng với từng dạng lỗi.
  5. Xây dựng, thiết kế và thi công hoàn thiện mô hình phần cứng tích hợp tối ưu giữa cơ khí, điện tử và điều khiển.
  6. Tiến hành vận hành thử nghiệm, ghi nhận sai số, khắc phục lỗi hệ thống và đánh giá hiệu suất phân loại thực tế.

Đối tượng nghiên cứu của đồ án bao gồm mô hình cánh tay robot 6 bậc tự do (6 DOF), hệ thống băng chuyền chuyển động, cảm biến phát hiện vật thể, camera thu nhận hình ảnh và máy tính tính toán. Phạm vi nghiên cứu tập trung vào bài toán phân loại sản phẩm mẫu là chai sữa Yakult trên băng chuyền động, phân biệt giữa sản phẩm đạt chuẩn (không lỗi) và 4 nhóm sản phẩm lỗi: lỗi nắp chai, lỗi vỏ chai (móp méo), lỗi màu sữa và lỗi có vật thể lạ bên trong. Thời gian triển khai nghiên cứu được ghi nhận từ tháng 3 năm 2023 đến tháng 7 năm 2023.


Cơ sở lý thuyết và phương pháp

Về mặt lý thuyết, công trình xây dựng dựa trên nền tảng của thị giác máy tính (Computer Vision) và học sâu (Deep Learning). Tác giả ứng dụng thư viện OpenCV để thực hiện các bước tiền xử lý ảnh số, bao gồm việc chuyển đổi không gian màu từ RGB sang HSV hoặc Lab nhằm tách biệt các thuộc tính màu sắc, khử nhiễu và trích xuất đặc trưng của vật thể. Trong bài toán nhận diện và định vị đối tượng cục bộ (Object Detection), đồ án tập trung nghiên cứu mô hình mạng tích chập một giai đoạn (one-stage detector) YOLO (You Only Look Once), kế thừa từ kiến trúc trích xuất đặc trưng Darknet, sử dụng các hộp neo (anchor boxes), chỉ số giao trên hợp (IoU - Intersection over Union) và kỹ thuật triệt tiêu phi cực đại (NMS - Non-Maximum Suppression). Phiên bản cụ thể được áp dụng trong đồ án là mô hình YOLOv5 do Ultralytics phát triển, cho phép nhận diện và phân loại đa nhãn trong thời gian thực với dung lượng nhẹ và tốc độ xử lý nhanh.

Phương pháp nghiên cứu kết hợp giữa nghiên cứu lý thuyết và thực nghiệm kỹ thuật:

  • Nghiên cứu lý thuyết: Phân tích cấu trúc toán học của mạng nơ-ron tích chập, cơ chế dự báo bounding box từ anchor box, hàm mất mát và thuật toán động học của cánh tay robot.
  • Phương pháp thực nghiệm và thiết kế hệ thống: Tự chế tạo mô hình cơ khí băng tải, lắp ráp khung cánh tay robot 6 bậc tự do, thiết kế mạch điện nguyên lý phân phối nguồn và kết nối các khối phần cứng.
  • Nguồn dữ liệu thực nghiệm: Nhóm tác giả tự thu thập tập dữ liệu ảnh chụp các chai Yakult thực tế đặt trên mặt băng tải màu xanh lá cây dưới điều kiện hỗ trợ của hệ thống đèn LED trợ sáng. Dữ liệu được gán nhãn thủ công và huấn luyện tùy biến (custom training) trên nền tảng điện toán đám mây Google Colab thông qua khung làm việc PyTorch.

Thiết kế và triển khai

Hệ thống được tổ chức thành 6 khối chức năng chính: Khối nguồn, Khối cảm biến, Khối quét sản phẩm, Khối xử lý trung tâm, Khối hiển thị và Khối vận chuyển (băng chuyền và cánh tay robot).

Thiết bị / Linh kiện Mã hiệu / Quy cách kỹ thuật Vai trò trong hệ thống
Vi điều khiển Arduino Uno R3 (ATmega328, 16 MHz, 14 Digital I/O, 6 Analog) Điều khiển logic chuyển động băng chuyền, nhận tín hiệu cảm biến và phát xung servo
Động cơ kéo băng tải Động cơ giảm tốc DC GA25-370 (24VDC, 60 RPM, cốt chữ D 4mm) Dẫn động băng chuyền vận chuyển sản phẩm chai Yakult qua các vùng kiểm tra
Cảm biến phát hiện Cảm biến vật cản hồng ngoại E3F-DS30P1 (5VDC, NPN, cự ly 0–30 cm) Xác định vật thể di chuyển đến vị trí kiểm tra để gửi tín hiệu dừng băng tải
Động cơ cánh tay 6 Động cơ RC Servo MG996R (Bánh răng kim loại, lực kéo cao, góc quay 0–180°) Dẫn động 6 khớp nối của cánh tay robot để gắp và thả sản phẩm theo tọa độ
Camera ghi hình Rapoo C200 / C260 (Độ phân giải HD 720p, góc quét 78 độ, giao tiếp USB) Thu nhận luồng video và khung hình sản phẩm để truyền về thuật toán xử lý
Mạch hạ áp nguồn Buck DC-DC 12A (Điện áp vào 4.5–30V, hiệu suất 95%, công suất 100W) Hạ điện áp từ nguồn chính xuống cấp nguồn ổn định 5V cho Arduino và các servo
Bộ nguồn công nghiệp Nguồn tổ ong 24V - 10A (Điện áp vào 100–264 VAC, công suất định mức 240W) Cung cấp nguồn tổng một chiều cho toàn bộ hệ thống động lực và điều khiển
Nút nhấn điều khiển Nút nhấn LA38 (Điện áp vào 24VDC, dòng chịu đựng 10A, tiếp điểm 1NO + 1NC) Khởi động và ngắt vận hành dây chuyền

Phần mềm hệ thống được phân tách thành hai tầng xử lý phối hợp qua cổng nối tiếp (Serial Communication):

  1. Tầng nhận diện hình ảnh (Python trên máy tính): Tiếp nhận khung hình từ camera Rapoo, nạp trọng số mô hình đã huấn luyện (tệp định dạng .pt), khoanh vùng đối tượng bằng thuật toán YOLOv5 và phân loại nhãn. Khi nhận diện được trạng thái sản phẩm, chương trình Python mã hóa kết quả thành các ký tự lệnh điều khiển ('0', '1', '2', '3', '4') và truyền xuống vi điều khiển qua cổng nối tiếp.
  2. Tầng điều khiển cơ cấu chấp hành (Arduino Uno R3): Khai báo các chân điều khiển tín hiệu cho 6 động cơ RC Servo MG996R và chân đọc tín hiệu cảm biến E3F-DS30P1.

Quy trình giao tiếp logic được thiết lập như sau:

  • Ký tự '0': Sản phẩm đạt chuẩn (không lỗi). Băng chuyền tiếp tục chuyển động đưa sản phẩm về cuối dây chuyền; cánh tay robot giữ nguyên vị trí chờ.
  • Ký tự '1': Lỗi nắp chai. Cánh tay robot kích hoạt chuỗi góc quay gắp chai thả vào khay lỗi nắp.
  • Ký tự '2': Lỗi vỏ chai (móp méo). Robot gắp sản phẩm chuyển sang khay phân loại lỗi vỏ.
  • Ký tự '3': Lỗi biến đổi màu sữa. Robot gắp thả vào khay tương ứng với lỗi màu sắc dung dịch.
  • Ký tự '4': Lỗi có vật thể lạ. Robot gắp thả vào vị trí phế phẩm có dị vật. Sau khi hoàn thành chu trình thả sản phẩm vào đúng vị trí, cánh tay robot quay về trạng thái mặc định ban đầu (home position) và gửi tín hiệu sẵn sàng cho chu kỳ quét tiếp theo.

Nội dung chính theo từng chương

Chương 1: Giới thiệu

Chương này thiết lập bức tranh tổng quan về sự cấp thiết của việc tự động hóa khâu kiểm tra lỗi trong sản xuất công nghiệp nhằm giảm chi phí nhân công và nâng cao độ chính xác. Nhóm tác giả trình bày mục tiêu xây dựng mô hình tích hợp giữa cánh tay máy 6 bậc tự do và camera thị giác máy tính. Phạm vi đề tài được xác định giới hạn ở việc nhận diện các lỗi cơ bản của vỏ, nắp và dung dịch chai sữa Yakult trên mô hình băng chuyền kích thước nhỏ, sử dụng vi điều khiển Arduino kết hợp ngôn ngữ lập trình Python.

Chương 2: Cơ sở lý thuyết

Nội dung chương 2 tập trung hệ thống hóa các kiến thức nền tảng về thị giác máy tính và học sâu. Tác giả trình bày chi tiết về thư viện OpenCV, phương pháp chuyển đổi không gian màu (RGB sang HSV/Lab) và trích xuất đặc trưng phục vụ phân loại. Trọng tâm của chương là lý thuyết mô hình mạng nơ-ron tích chập YOLO, đi sâu vào cấu trúc Darknet-53, cơ chế tính toán ma trận điểm giao nhau IoU, kiến trúc đầu ra chứa tọa độ tâm $(t_x, t_y)$, kích thước $(t_w, t_h)$, điểm tin cậy đối tượng (objectness score) và xác suất phân lớp. Chương này cũng giải thích cơ chế phân chia feature map đa tỷ lệ ($13 \times 13$, $26 \times 26$, $52 \times 52$) sinh ra tổng cộng 10.647 anchor box trong một khung hình, cùng ưu thế triển khai của phiên bản YOLOv5.

Chương 3: Thiết kế hệ thống

Chương 3 trình bày toàn bộ bản vẽ thiết kế phần cứng và giải thuật phần mềm. Về phần cứng, tác giả cung cấp sơ đồ nguyên lý 6 khối vẽ trên phần mềm Proteus, bảng thông số kỹ thuật chi tiết của vi điều khiển Arduino Uno R3, cảm biến hồng ngoại E3F-DS30P1, camera Rapoo C200, động cơ DC GA25-370, servo MG996R, mạch buck hạ áp 12A và bộ nguồn 24V-10A. Về phần mềm, chương này chi tiết hóa lưu đồ giải thuật toàn hệ thống, lưu đồ chương trình Python tiếp nhận tín hiệu Serial và lưu đồ giải thuật Arduino điều khiển góc quay servo. Quy trình huấn luyện mô hình YOLOv5 trên Google Colab qua 150 epoch cũng được thuyết minh đầy đủ với các biểu đồ giám sát hàm mất mát và độ chính xác.

Chương 4: Kết quả thi công hệ thống

Chương 4 ghi nhận kết quả chế tạo thực tế của mô hình hoàn thiện chụp từ các góc độ (trái, phải, trên xuống) và mạch đấu nối giữa các linh kiện. Tác giả trình bày kết quả thực nghiệm nhận diện hình ảnh của mô hình sau 150 lần huấn luyện đối với từng trạng thái của sản phẩm chai Yakult: sản phẩm chuẩn, sản phẩm lỗi nắp, sản phẩm lỗi móp méo vỏ, sản phẩm biến đổi màu sữa và sản phẩm chứa vật thể lạ. Các bước gắp và phân loại cơ học của cánh tay robot tương ứng với từng tín hiệu mã hóa cũng được minh chứng bằng chuỗi hình ảnh chụp lại quá trình vận hành thực tế trên băng chuyền.

Chương 5: Kết luận và hướng phát triển

Chương cuối cùng tổng kết các hạng mục đã hoàn thành so với mục tiêu đề ra ban đầu, đánh giá khả năng vận hành ổn định của hệ thống phần cứng và độ chính xác của mô hình nhận diện AI. Đồng thời, tác giả chỉ ra các điểm hạn chế về mặt cơ khí, khả năng kháng nhiễu môi trường ánh sáng và đề xuất những giải pháp cải tiến để nâng cấp mô hình cho môi trường công nghiệp quy mô lớn.


Kết quả và đóng góp

Công trình đã thiết kế và thi công hoàn thiện một mô hình thực nghiệm hoạt động đồng bộ giữa phần mềm thị giác máy tính và cơ cấu chấp hành phần cứng. Mô hình mạng YOLOv5 sau khi được huấn luyện qua 150 chu kỳ (epoch) trên tập dữ liệu tùy biến đã đạt được các chỉ số nhận diện cụ thể như sau:

Nhóm sản phẩm / Dạng lỗi Chỉ số độ tự tin nhận diện (IoU / Confidence) Đặc điểm nhận diện thực tế
Chai Yakult chuẩn (Không lỗi) 0.964 Hình dạng nguyên vẹn, màu sắc đồng nhất, nắp kín
Lỗi nắp chai ~0.850 Nắp bị hở, rách hoặc lệch khỏi miệng chai
Lỗi màu sữa Đạt mức nhận diện cao Màu sắc dung dịch biến đổi so với mẫu chuẩn
Lỗi có vật thể lạ Đạt mức nhận diện cao Xuất hiện khối màu hoặc vết bất thường bên trong
Lỗi vỏ chai (móp méo) 0.749 Vết móp méo trên thân chai nhựa
Giá trị trung bình toàn hệ thống 0.854 Độ tin cậy tổng thể của mô hình sau 150 epoch

Đóng góp kỹ thuật của đề tài thể hiện ở việc xây dựng thành công quy trình kết nối khép kín giữa máy tính xử lý ảnh chạy Python và bo mạch điều khiển công nghiệp giá thành thấp Arduino Uno R3 thông qua giao thức truyền thông nối tiếp. Hệ thống không chỉ dừng lại ở bài toán phân loại nhị phân (sản phẩm lỗi / không lỗi) mà đã phân tách cụ thể thành 4 dạng lỗi cơ bản trong công nghệ đóng gói đồ uống, đồng thời điều khiển cánh tay robot 6 bậc tự do chuyển sản phẩm về đúng khay phân loại riêng biệt cho từng lỗi tương ứng.


Hạn chế và hướng nghiên cứu tiếp

Dựa trên các kết quả khảo sát và phạm vi thử nghiệm được ghi nhận trong văn bản, công trình tồn tại một số hạn chế:

  • Tỷ lệ nhận diện đối với nhóm lỗi vỏ chai còn thấp nhất (đạt 0.749) do đặc trưng hình học của các vết móp méo trên bề mặt chai nhựa dễ bị nhầm lẫn dưới các góc phản xạ quang học khác nhau.
  • Hệ thống hoạt động phụ thuộc vào điều kiện chiếu sáng cưỡng bức (sử dụng đèn LED và nền băng tải màu xanh lá cây cố định), khả năng thích ứng khi thay đổi cường độ ánh sáng môi trường tự nhiên chưa cao.
  • Cánh tay robot sử dụng các động cơ RC Servo analog giá rẻ (MG996R) nên độ chính xác lặp lại và tải trọng nâng còn hạn chế, tốc độ gắp chưa tối ưu cho các dây chuyền tốc độ cao.
  • Khảo sát thực nghiệm chỉ mới dừng lại trên một mẫu sản phẩm duy nhất là chai nhựa Yakult trong môi trường phòng thí nghiệm.

Hướng phát triển tiếp theo được đề xuất bao gồm: tiếp tục mở rộng tập dữ liệu ảnh chụp đa dạng góc độ và gia tăng số chu kỳ huấn luyện để cải thiện độ chính xác cho lớp lỗi vỏ chai; nghiên cứu nâng cấp phần cứng cánh tay robot sử dụng động cơ bước hoặc servo công nghiệp có phản hồi vị trí khép kín; và tích hợp các thuật toán tối ưu hóa quỹ đạo chuyển động nhằm rút ngắn thời gian chu kỳ gắp thả của cánh tay máy.


Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho sinh viên và người nghiên cứu thuộc các chuyên ngành Kỹ thuật Điện tử - Viễn thông, Kỹ thuật Cơ điện tử, Kỹ thuật Điều khiển và Tự động hóa hoặc Khoa học Máy tính ứng dụng. Các nội dung có giá trị thực tiễn cao bao gồm:

  • Quy trình tổ chức dữ liệu và cấu hình huấn luyện mô hình mạng YOLOv5 cho bài toán nhận diện vật thể tùy biến (custom object detection) trên Google Colab.
  • Giải pháp thiết kế mạch nguồn phân dòng kết hợp giữa nguồn công nghiệp 24VDC và mạch hạ áp xung Buck DC-DC 12A để nuôi tải công suất lớn (nhiều động cơ servo hoạt động đồng thời).
  • Sơ đồ nguyên lý và mã nguồn giải thuật giao tiếp Serial hai chiều giữa Python và Arduino Uno R3 trong việc đồng bộ hóa tín hiệu cảm biến - camera - cơ cấu gắp.

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

1. Mô hình thị giác máy tính nào được sử dụng và kết quả huấn luyện đạt được ra sao?
Hệ thống sử dụng mô hình YOLOv5 của Ultralytics, được huấn luyện qua 150 chu kỳ (epoch) trên Google Colab. Tỷ số nhận diện tự tin trung bình đạt 0.854. Trong đó, sản phẩm chuẩn không lỗi đạt độ tin cậy cao nhất là 0.964, còn lỗi vỏ móp méo đạt thấp nhất là 0.749.

2. Giao tiếp giữa máy tính xử lý ảnh và hệ thống điều khiển phần cứng được thực hiện qua phương thức nào?
Máy tính chạy chương trình Python nhận diện hình ảnh và kết nối với bo mạch Arduino Uno R3 thông qua giao thức truyền thông nối tiếp (Serial Port). Sau khi nhận diện, Python gửi các ký tự mã hóa ('0': tốt, '1': lỗi nắp, '2': lỗi vỏ, '3': lỗi màu sữa, '4': lỗi vật thể lạ) để Arduino giải mã và kích hoạt chương trình điều khiển góc quay của các động cơ servo.

3. Tại sao độ chính xác nhận diện lỗi vỏ chai lại thấp hơn các nhóm lỗi khác?
Theo phân tích của nhóm tác giả trong văn bản, lỗi vỏ chai (móp méo) có tỷ lệ nhận diện thấp nhất (0.749) do tính chất đặc trưng bề mặt của vết móp chai nhựa dễ bị trùng lặp với phản xạ ánh sáng trên thực tế, dẫn đến việc trích xuất đặc trưng hình học của mô hình gặp nhiều nhiễu hơn so với lỗi màu sắc hay mất nắp.

4. Cánh tay robot trong đề tài có cấu trúc như thế nào và sử dụng loại động cơ nào?
Cánh tay robot được thiết kế với cấu trúc 6 bậc tự do (6 DOF). Cơ cấu chuyển động tại các khớp nối và kẹp giữ sử dụng 6 động cơ RC Servo loại MG996R (analog, bánh răng kim loại, điện áp hoạt động 4.6VDC, thời gian quét 0.17s / 60 độ).

5. Cảm biến vật cản hồng ngoại E3F-DS30P1 đóng vai trò gì trong dây chuyền?
Cảm biến E3F-DS30P1 (loại NPN, khoảng cách phát hiện 0–30 cm) được bố trí tại vị trí quan sát trên băng tải. Khi sản phẩm di chuyển cắt ngang tia hồng ngoại, cảm biến phát tín hiệu kích hoạt về vi điều khiển để dừng băng tải tạm thời, cố định vị trí chai cho camera chụp ảnh nhận diện trước khi quyết định gắp hoặc cho chạy tiếp.


Kết luận

Đồ án tốt nghiệp của nhóm tác giả Trần Văn Phúc và Nguyễn Đình Cao Trí Tín đã thiết kế và chế tạo thành công mô hình hệ thống cánh tay robot 6 bậc tự do tích hợp thị giác máy tính để phân loại sản phẩm chai sữa Yakult khuyết tật trên băng chuyền. Nhờ ứng dụng mô hình học sâu YOLOv5 kết hợp cùng vi điều khiển Arduino Uno R3 và động cơ servo MG996R, hệ thống đạt độ tin cậy nhận diện trung bình 0.854 qua 150 epoch huấn luyện và phân loại chính xác 4 dạng lỗi thực tế. Toàn bộ công trình cung cấp tài liệu chi tiết về giải pháp tích hợp phần cứng - phần mềm, mang giá trị tham khảo rõ ràng cho các nghiên cứu ứng dụng trí tuệ nhân tạo vào tự động hóa công nghiệp.