1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứng dụng dobot magician trong hệ thống phân loại sản phẩm

107 79 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Dobot Magician Trong Hệ Thống Phân Loại Sản Phẩm
Tác giả Nguyễn Đức Phong, Nguyễn Văn Vinh
Người hướng dẫn PGS. TS Trương Đình Nhơn
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành CNKT Điều Khiển Và Tự Động Hóa
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2019
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 107
Dung lượng 11,93 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (18)
    • 1.1 Đặt vấn đề (18)
    • 1.2 Mục tiêu nghiên cứu (19)
    • 1.3 Nội dung nghiên cứu (19)
    • 1.4 Giới hạn đề tài (20)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (21)
    • 2.1 Nguyên lý hoạt động (21)
    • 2.2 Lý thuyết xử lý ảnh (21)
      • 2.2.1 Xử lý ảnh số (21)
      • 2.2.2 Điểm ảnh (21)
      • 2.2.3 Độ phân giải ảnh (22)
      • 2.2.4 Mức xám (22)
      • 2.2.5 Biểu diễn ảnh (23)
      • 2.2.6 Biến đổi ảnh (23)
      • 2.2.7 Phân tích ảnh (24)
      • 2.2.8 Nhận dạng và phân loại ảnh (24)
      • 2.2.9 Các không gian màu trong xử lý ảnh (25)
      • 2.2.10 Thư viện mã nguồn mở OpenCV (27)
    • 2.3 Thuật toán phát hiện cạnh Canny (28)
      • 2.3.1 Giảm nhiễu (29)
      • 2.3.2 Tính độ dốc (Gradient) (30)
      • 2.3.3 Chặn không cực đại (Non-maximum suppression) (33)
      • 2.3.4 Lọc ngưỡng (35)
      • 2.3.5 Điều chỉnh cạnh bằng độ trễ (Edge Tracking by Hysteresis) (36)
      • 2.3.6 Giải thuật AutoCanny (36)
    • 2.4 Thuật toán phát hiện đường thẳng (Hough Transform) (38)
      • 2.4.1 Lý thuyết (38)
      • 2.4.2 Hiện thực Hough Transform phát hiện đường thẳng (39)
      • 2.4.3 Hiện thực Hough Transform phát hiện đoạn thẳng (41)
    • 2.5 Nhận diện vật thể hình vuông (41)
    • 2.6 Nhận diện màu sắc (42)
    • 2.7 Điều khiển chuyển động của Robot (43)
      • 2.7.1 Phần mềm Dobot Studio (43)
      • 2.7.2 Phần mềm Visual Studio (46)
  • CHƯƠNG 3. TÍNH TOÁN THIẾT KẾ (48)
    • 3.1 Yêu cầu thiết kế (48)
    • 3.2 Yêu cầu điều khiển (48)
    • 3.3 Linh kiện phần cứng (49)
      • 3.3.1 Camera (49)
      • 3.3.2 Băng tải (49)
      • 3.3.3 Cánh tay Dobot Magician (50)
      • 3.3.4 Bộ bơm khí nén và đầu hút (54)
    • 3.4 Sơ đồ kết nối phần cứng (55)
  • CHƯƠNG 4. THI CÔNG HỆ THỐNG (57)
    • 4.1 Lắp ráp phần cứng (57)
    • 4.2 Lập trình điều khiển (58)
      • 4.2.1 Thuật toán xử lý ảnh (58)
      • 4.2.3 Chương trình điều khiển (64)
    • 4.3 Vận hành hệ thống (65)
  • CHƯƠNG 5. KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ (69)
    • 5.1 Kết quả vận hành (69)
    • 5.2 Sai số hệ thống (73)
    • 5.3 Khắc phục lỗi (78)
      • 5.3.1 Không gắp chính xác vật thể (78)
      • 5.3.2 Không nhận diện được vật thể (79)
    • 5.4 Nhận xét, đánh giá (79)
  • CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (80)
    • 6.1 Kết luận (80)
      • 6.1.1 Ưu điểm (80)
      • 6.1.2 Nhược điểm (80)
      • 6.1.3 Khó khăn (81)
    • 6.2 Hướng phát triển (81)
  • TÀI LIỆU THAM KHẢO (83)
  • PHỤ LỤC (85)

Nội dung

TỔNG QUAN

Đặt vấn đề

Hình 1 1 Xử lý ảnh số

Ngày nay, sự phát triển vượt bậc của khoa học máy tính đã mang lại nhiều thành tựu cho ngành công nghiệp xử lý ảnh, đặc biệt trong lĩnh vực nhận dạng và phân loại hình ảnh Những tiến bộ này không chỉ giúp giảm giá thành sản phẩm mà còn tối đa hóa đầu ra, làm cho lĩnh vực này trở thành một trong những ngành được nghiên cứu tích cực nhất trong thị giác máy tính.

Hệ thống xử lý ảnh đã giúp con người giảm khối lượng công việc, tiết kiệm thời gian và tăng độ chính xác trong nhiều lĩnh vực Trong y học, công nghệ này hỗ trợ phát hiện khối u, giải phẫu, cải thiện ảnh X quang và nhận dạng đường biên mạch máu Trong đời sống hàng ngày, xử lý ảnh được sử dụng để nâng cao chất lượng hình ảnh trên TV, laptop và điện thoại Trong ngành công nghiệp đóng gói, nó kiểm tra việc dán nhãn sản phẩm và tính chính xác của bao bì Ngành dược phẩm áp dụng xử lý ảnh để kiểm tra số lượng thuốc trong vỉ, trong khi lĩnh vực điện - điện tử sử dụng công nghệ này để phát hiện khuyết tật trên bo mạch Ngoài ra, xử lý ảnh còn được ứng dụng trong nhận dạng khuôn mặt, vân tay, mống mắt, chữ viết trong bảo mật, nhận diện vật thể và phân loại chất lượng sản phẩm trong ngành Robotics.

Trong sản xuất công nghiệp và nông nghiệp, kiểm tra ngoại quan sản phẩm là rất quan trọng Quy trình này đảm bảo sản phẩm có chất lượng đồng đều trước khi ra thị trường, loại bỏ những sản phẩm không đạt yêu cầu và phân loại chúng theo nhóm chất lượng khác nhau.

Khoa ĐT CLC – ĐHSPKT TP.HCM phân loại gạch men thành ba loại: loại 1, loại 2 và loại 3 Ngoài ra, rau củ quả cũng được phân chia thành các loại chín, chín vừa và xanh Trong ngành thương mại dịch vụ, việc phân loại các phương tiện giao thông là cần thiết để thu phí cầu đường và phí tại các bãi giữ xe.

Kiểm tra ngoại quan đóng vai trò quan trọng trong quy trình sản xuất, nhưng chủ yếu vẫn do con người thực hiện Để nâng cao năng suất và giảm thiểu sai sót do yếu tố chủ quan, việc tự động hóa quy trình kiểm tra này là rất cần thiết Nhằm đáp ứng nhu cầu thực tiễn, nhóm nghiên cứu đã phát triển công nghệ xử lý ảnh phân loại theo màu sắc để thay thế công đoạn kiểm tra ngoại quan Quy trình phân loại sản phẩm dựa trên việc thu thập thông tin màu sắc qua hệ thống camera; sản phẩm có màu sắc đúng tiêu chuẩn sẽ được đưa vào kho, trong khi sản phẩm không đạt yêu cầu sẽ bị loại bỏ khỏi băng chuyền.

Mục tiêu nghiên cứu

Hệ thống “Ứng dụng Dobot Magician trong hệ thống phân loại sản phẩm” được thiết kế và lập trình dựa trên các thuật toán phát hiện biên vật thể, nhận diện đường thẳng và màu sắc thông qua thư viện OpenCV Hệ thống áp dụng các hàm điều khiển cánh tay Robot từ nhà sản xuất Dobot, cho phép xác định chính xác màu sắc, vị trí và hướng của nhiều vật thể trên băng chuyền, bất kể chúng có cùng màu hay khác màu.

Phân tích và xử lý các tình huống trong quá trình hoạt động của hệ thống là rất quan trọng Mô hình lắp ráp thực tế được điều khiển và theo dõi trực tiếp qua phần mềm máy tính, giúp phát triển những ứng dụng thực tiễn của xử lý ảnh trong khoa học và đời sống hàng ngày.

Nội dung nghiên cứu

Phương pháp cơ bản nhất để thay thế kiểm tra ngoại quan bằng mắt người là sử dụng camera Camera có khả năng thay thế đôi mắt con người trong việc thu nhận hình ảnh từ môi trường xung quanh.

Mắt con người, kết hợp với bộ não và hàng tỉ nơron thần kinh, có khả năng phân biệt và xử lý hình ảnh từ đơn giản đến phức tạp một cách nhanh chóng và chính xác Trong khi đó, việc xây dựng hệ thống camera để xử lý hình ảnh phụ thuộc nhiều vào chương trình và thuật toán điều khiển Mỗi ứng dụng phân loại sản phẩm sẽ có những đặc thù riêng, bao gồm kích thước, hình dáng và màu sắc của vật thể cần xử lý.

Nhóm nghiên cứu tại Khoa ĐT CLC – ĐHSPKT TP.HCM đã chọn đề tài “Ứng dụng Dobot Magician trong hệ thống phân loại sản phẩm” nhằm đảm bảo tính khả thi và phù hợp với trình độ của mình Đề tài này sẽ tập trung vào việc áp dụng công nghệ Dobot Magician để cải thiện quy trình phân loại sản phẩm.

Chương 1: Tổng quan đề tài: Trình bày tổng quan sơ bộ về các yêu cầu đề ra ban đầu bao gồm đặt vấn đề, mục tiêu đề tài, nội dung nghiên cứu và giới hạn đề tài

Chương 2: Cơ sở lý thuyết: Trình bày nguyên lý hoạt động của hệ thống và các lý thuyết có liên quan đến các vấn đề mà đề tài sẽ dùng để thực hiện việc thiết kế và thi công hệ thống

Chương 3: Tính toán thiết kế: Xuất phát từ yêu cầu thiết kế và yêu cầu điều khiển của đề tài, trình bày các tính toán thiết kế và lựa chọn thiết bị phần cứng hệ thống

Chương 4: Thi công hệ thống: Tiến hành thi công, lắp ráp mô hình đã thiết kế; trình bày lưu đồ thuật toán và lập trình điều khiển; vận hành hệ thống

Chương 5: Kết quả, nhận xét và đánh giá: Trình bày kết quả của quá trình thực hiện đề tài, nghiên cứu được những gì, minh chứng và giải thích

Chương 6: Kết luận và hướng phát triển: Kết luận chung về ưu điểm, nhược điểm, khó khăn gặp phải trong suốt quá trình thực hiện đề tài; khẳng định những kết quả đạt được, đề xuất ý kiến cải thiện khuyết điểm và định hướng phát triển trong tương lai.

Giới hạn đề tài

Nhóm đã hoàn thành việc lắp ráp và đấu nối hệ thống "Ứng dụng Dobot Magician trong hệ thống phân loại sản phẩm" bằng các module có sẵn từ nhà sản xuất Dobot Hệ thống được lập trình để phân loại màu sắc vật thể, sử dụng cánh tay Robot để xếp hàng vào kho chứa, áp dụng ngôn ngữ lập trình Python và thư viện nguồn mở OpenCV.

Hệ thống hiện tại vẫn còn nhiều thiếu sót, bao gồm việc chưa hiển thị thông số của các khớp xoay, vận tốc, gia tốc và mô men của cánh tay Robot Bên cạnh đó, băng tải không thể hoạt động đồng thời với cánh tay Robot, dẫn đến tình trạng băng tải chạy liên tục trong khi cánh tay Robot chỉ di chuyển để gắp vật thể Hơn nữa, hệ thống cũng thiếu chức năng tự động reset kho, điều này gây cản trở cho quá trình tiếp theo khi cánh tay Robot đã lấp đầy vật thể trong kho.

Khoa ĐT CLC – ĐHSPKT TP.HCM 4

CƠ SỞ LÝ THUYẾT

Nguyên lý hoạt động

Đầu tiên, khởi động băng chuyền và đặt các khối vật thể đã được xác định lên băng chuyền để chúng di chuyển Khi vật thể đi vào tầm quan sát của Camera, quá trình phát hiện sẽ được thực hiện.

Hệ thống sử dụng các thuật toán điều khiển để xác định vị trí, góc và màu sắc của vật thể trên băng chuyền Băng chuyền chỉ dừng lại khi vật thể vào vùng hoạt động của cánh tay Robot, nơi cánh tay sẽ di chuyển đến tâm vật thể, gắp chúng lên bằng hệ thống khí nén và xoay chúng theo vị trí đã định trước Sau khi cánh tay Robot hoàn thành việc gắp các khối vật trong tầm hoạt động, băng chuyền sẽ tiếp tục chạy cho đến khi kho chứa được lấp đầy.

Lý thuyết xử lý ảnh

2.2.1 Xử lý ảnh số Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Xử lý ảnh số là một dạng xử lý tín hiệu mà trong đó đầu vào là một ảnh và đầu ra của quá trình xử lý có thể là một ảnh khác hoặc là một tập hợp chứa các tính chất hoặc tham số liên quan đến hình ảnh được cung cấp từ đầu vào

Hầu hết các kỹ thuật xử lý ảnh truyền thống đều coi ảnh như một tín hiệu hai chiều và áp dụng các phương pháp xử lý tín hiệu để tiến hành phân tích.

2.2.2 Điểm ảnh Điểm ảnh là một phần tử của ảnh số tại tọa độ (x,y) với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh được chọn thích hợp sao cho mắt người cảm nhận được sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh

Khoa ĐT CLC – ĐHSPKT TP.HCM 5

Hình 2 2 Mô tả điểm ảnh

2.2.3 Độ phân giải ảnh Độ phân giải ảnh là mật độ điểm ảnh ấn định trên một ảnh số được hiển thị Khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bố đó chính là độ phân giải ảnh và được phân bố theo trục Ox (trục ngang) và Oy (trục dọc) trong không gian hai chiều Ảnh có độ phân giải càng cao thì các biến đổi trong ảnh sẽ càng mịn và càng rõ nét

Hình 2 3 So sánh độ phân giải ảnh

Mức xám là giá trị độ sáng của một điểm ảnh, được xác định bởi một giá trị nguyên dương trong khoảng [0, 255].

Giá trị của mỗi điểm ảnh trong hình ảnh được biểu diễn bằng các mức xám, thường là 16, 32, 64, 128 và 256 Những mức này phổ biến trong kỹ thuật máy tính vì chúng sử dụng 1 byte để lưu trữ thông tin.

= 8 bits để biểu diễn mức xám, mức xám dùng 1 byte để biểu diễn 2 8 = 256 giá trị tức từ 0 đến 255)

Khoa ĐT CLC – ĐHSPKT TP.HCM 6

Trong biểu diễn ảnh, điểm ảnh (pixel) là các phần tử đặc trưng quan trọng Một ảnh có thể được mô tả bằng hàm hai biến chứa thông tin Các mô hình này cung cấp cái nhìn logic và định lượng về các tính chất của hàm Chất lượng ảnh và hiệu quả của các kỹ thuật xử lý ảnh phụ thuộc vào nhiều yếu tố, bao gồm độ phân giải và mức độ nhiễu.

Hình 2 5 Biến đổi ảnh màu (trái) sang ảnh xám (giữa) và ảnh nhị phân (phải)

Có ba loại ảnh chính dựa trên giá trị biểu diễn điểm ảnh: Ảnh màu, trong đó mỗi điểm ảnh bao gồm ba giá trị màu (Đỏ, Xanh lá, Xanh dương) với giá trị từ 0 đến 255, cần 24 bits (3 bytes) để biểu diễn; Ảnh xám, với giá trị mỗi điểm ảnh nằm trong dải từ 0 đến 255.

Mỗi điểm ảnh được biểu diễn bằng 8 bit, tương đương với 1 byte Ảnh nhị phân chỉ có hai giá trị duy nhất là 0 và 1, tương ứng với màu trắng và đen.

Biến đổi ảnh là thuật ngữ chỉ các kỹ thuật thay đổi hình ảnh, thường áp dụng trong ngành công nghiệp xử lý ảnh Các phương pháp khoa học cổ điển được sử dụng để thực hiện các phép toán tương đương hoặc chuyển đổi sang miền xử lý khác, nhằm tối ưu hóa quá trình xử lý và tính toán hình ảnh.

Có nhiều phương pháp biến đổi ảnh được sử dụng phổ biến như biến đổi Fourier, Cosin, Karhumen Loeve, tích chập, Hadamard,…

Khoa ĐT CLC – ĐHSPKT TP.HCM 7

Trong xử lý ảnh, việc trích chọn đặc điểm đối tượng là bước quan trọng, giúp nâng cao độ chính xác trong nhận dạng, tối ưu thời gian tính toán và giảm dung lượng lưu trữ Các đặc điểm có thể được phân loại thành đặc điểm không gian như phân bố mức xám và biên độ ảnh, cùng với đặc điểm biến đổi được trích chọn qua các bộ lọc vùng hay “mặt nạ đặc điểm” với nhiều hình dạng khác nhau Đặc điểm biên và đường biên cũng rất hữu ích trong việc phân tích thuộc tính bất biến để nhận dạng đối tượng, với các phương pháp thu được ảnh biên như toán tử Gradient, toán tử Laplace và giải thuật Canny.

2.2.8 Nhận dạng và phân loại ảnh

Hình 2 6 Nhận dạng các vật thể trong ảnh

Khoa ĐT CLC – ĐHSPKT TP.HCM 8

Nhận dạng ảnh là quá trình phân loại các đối tượng dựa trên các mô hình đã được lưu trữ, thường thông qua việc so sánh với mẫu chuẩn Quá trình này dựa vào nhiều đặc tính của vật thể, như hình dạng và màu sắc, với mỗi đặc tính yêu cầu các kỹ thuật nhận dạng khác nhau Theo lý thuyết nhận dạng, có hai loại phân loại ảnh cơ bản: phân loại có mẫu, nơi các đối tượng được so sánh với mẫu đã xác định, và phân loại không có mẫu, trong đó các đối tượng được phân loại vào các lớp chưa được biết đến dựa trên tiêu chuẩn đồng hạng.

Trong thực tế, việc phân loại tối ưu không thể chỉ dựa vào một phương pháp đơn lẻ, vì vậy, các phương thức phân loại tổ hợp thường được áp dụng để đạt được kết quả tốt nhất trong nhận dạng Một số ứng dụng phổ biến trong khoa học và công nghệ hiện nay bao gồm nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản, nhận dạng vân tay, nhận dạng khuôn mặt và nhận dạng mống mắt.

2.2.9 Các không gian màu trong xử lý ảnh

Không gian màu RGB (Red, Green, Blue)

RGB là không gian màu phổ biến nhất hiện nay, bao gồm ba màu gốc: đỏ, xanh lá và xanh dương, phản ánh cách mà mắt người tổng hợp màu sắc Các màu sắc này được kết hợp theo nhiều cách khác nhau để tạo ra toàn bộ bảng màu Ngoài ra, RGB cũng là không gian màu mặc định trong OpenCV, mặc dù OpenCV có sự đảo ngược giữa hai kênh màu.

Red và Blue lại, trở thành BGR

Trong mô hình màu 24 bit, mỗi kênh màu R, G, B được biểu diễn bằng 8 bit, cho phép tạo ra 16,777,216 màu sắc khác nhau Giá trị của mỗi kênh nằm trong khoảng từ 0 đến 255, tương ứng với cường độ của từng màu, và bộ ba màu này sẽ xác định màu sắc cho mỗi điểm ảnh trong hình ảnh.

Hình 2 7 Không gian màu RGB

Khoa ĐT CLC – ĐHSPKT TP.HCM 9

Không gian màu CMYK (Cyan, Magenta, Yellow, Key/Black)

Thuật toán phát hiện cạnh Canny

Hình 2 11 Xử lý cạnh dùng hàm Canny

Trong hình ảnh, các thành phần chính bao gồm vùng trơn, góc/cạnh và nhiễu, với điểm ảnh được coi là điểm biên khi có sự thay đổi đột ngột về mức xám Điểm đen trong ảnh nhị phân là điểm biên nếu có ít nhất một điểm trắng lân cận Tập hợp các điểm biên liên tiếp tạo thành đường biên ảnh, thể hiện các đặc trưng quan trọng của đối tượng trong ảnh Phát hiện biên là công cụ quan trọng trong xử lý ảnh số, giúp làm nổi bật các điểm ảnh có sự biến đổi lớn về giá trị mức sáng và giảm khối lượng dữ liệu cần tính toán Thuật toán Canny, phát triển bởi John F Canny vào năm 1986 tại MIT, là phương pháp phổ biến nhất để phát hiện đường biên nhờ khả năng chống nhiễu và tạo ra các đường biên mỏng, đều Nó được ứng dụng rộng rãi trong ngành công nghiệp xử lý ảnh với tỉ lệ sai sót thấp và độ chính xác cao trong việc xác định các điểm biên.

Khoa ĐT CLC – ĐHSPKT TP.HCM giới thiệu về bộ lọc nhân xoắn Canny, một công cụ hiệu quả trong việc làm mịn nhiễu và phát hiện cạnh trong ảnh Công thức hàm Canny trong Python được viết dưới dạng: cv2.Canny(image, lower, upper), trong đó image là ảnh đầu vào, còn lower và upper là các ngưỡng số nguyên mà người dùng thiết lập Để áp dụng thuật toán Canny, ảnh màu cần được chuyển đổi sang ảnh xám, vì thuật toán này chỉ hoạt động trên nền ảnh xám Quy trình phát hiện cạnh Canny bao gồm 5 bước chính.

Trong thực tế, hình ảnh luôn có sự xuất hiện của nhiễu, và chúng xuất hiện một cách ngẫu nhiên, khiến việc dự đoán chính xác trở nên khó khăn.

Các thuật toán xử lý ảnh thường dựa trên các đạo hàm toán học, dẫn đến việc phát hiện cạnh dễ bị nhiễu Để khắc phục vấn đề này, các thuật toán làm mờ ảnh đã được phát triển Trong xử lý ảnh, những bộ lọc làm mờ và giảm nhiễu phổ biến bao gồm Box Filter, Gaussian Filter, Median Filter và Bilateral Filter.

Sử dụng bộ lọc Gaussian trong quá trình nhân tích chập với ảnh đầu vào giúp loại bỏ nhiễu và làm mịn ảnh hiệu quả Kích thước của bộ lọc thường là số lẻ nguyên dương như 3, 5, 7, đảm bảo chiều dài bằng chiều rộng Việc chọn kích thước lẻ cho phép có một pixel duy nhất ở trung tâm bộ lọc, giúp tránh nhầm lẫn trong việc xác định pixel trung tâm khi kích thước bộ lọc là số chẵn.

Bộ lọc Gaussian kích thước (5x5) là lựa chọn hiệu quả cho thuật toán phát hiện biên Canny Người dùng có thể điều chỉnh kích thước bộ lọc phù hợp với kích thước ảnh đầu vào và dựa trên kinh nghiệm cá nhân Công thức cho bộ lọc Gaussian có kích thước (2k+1) * (2k+1) được áp dụng để tối ưu hóa quá trình xử lý ảnh.

(1) Sau khi áp dụng bộ lọc Gaussian ta nhận được kết quả như sau:

Khoa ĐT CLC – ĐHSPKT TP.HCM 13

Hình 2 12 Ảnh gốc (trái) - Ảnh mờ với bộ lọc Gaussian (phải)

Trong xử lý ảnh, độ dốc được hiểu là sự thay đổi mức sáng của các pixel trong ảnh Các pixel trong vùng ảnh trơn có giá trị gần giống nhau, dẫn đến đạo hàm gần bằng 0, nghĩa là không có biến thiên mức sáng Đạo hàm dương tại một pixel cho thấy mức sáng đang tăng, trong khi đạo hàm âm cho thấy mức sáng đang giảm Tóm lại, Gradient của ảnh chính là đạo hàm ảnh, được tính bằng cách nhân chập ảnh gốc với hai chiều tương ứng với các toán tử đạo hàm theo hướng Ox và Oy.

Hình 2 13 Mô tả hai hướng Gx và Gy

Khoa ĐT CLC – ĐHSPKT TP.HCM 14

Nếu ta có một ảnh đầu vào là I, ta sẽ có 2 ảnh đạo hàm riêng theo 2 hướng đó là:

Khi đó, ta tính được Gradient bao gồm hai thành phần cường độ và hướng theo công thức:

Ví dụ: Giả sử ta có một điểm ảnh như sau:

Hình 2 14 Trích chọn một điểm ảnh Áp dụng công thức (2), (3) và (4) ở trên, ta có:

Đối với ảnh màu, Gradient của ba kênh RGB được xem xét, với độ lớn của Gradient tại mỗi điểm ảnh là giá trị lớn nhất của cường độ Gradient từ ba kênh Góc tương ứng với Gradient lớn nhất cũng được xác định trong quá trình này.

Khoa ĐT CLC – ĐHSPKT TP.HCM 15

Hình 2 15 Ảnh mờ (trái) - Ảnh mật độ độ dốc Gradient (phải)

Kết quả xử lý gần như đạt yêu cầu, nhưng vẫn tồn tại sự không đồng đều giữa các cạnh, với một số cạnh dày và một số cạnh mỏng như thể hiện trong hình 2.15 Để khắc phục tình trạng này, phương pháp NMS được đề cập trong mục 2.3.3 sẽ giúp giảm thiểu sự khác biệt Ảnh đạo hàm 𝐺 𝑥 và 𝐺 𝑦 tạo ra ma trận, với mỗi pixel biểu thị độ lớn của biến đổi mức sáng tại vị trí tương ứng trên ảnh gốc Tương tự, ma trận hướng cũng có kích thước giống nhau, trong đó mỗi pixel thể hiện góc (hướng cạnh).

Khi góc Gradient là 0°, cạnh trên của ảnh sẽ tạo thành một đường thẳng đứng vuông góc với hướng Gradient Giá trị hướng Gradient được tính toán trong khoảng từ -180° đến 180°, và thay vì giữ nguyên các góc này, chúng ta sẽ phân loại thành 4 hướng đại diện: ngang 0°, chéo bên phải 45°, dọc 90° và chéo bên trái 135°.

Hình 2 16 Biểu thị góc Gradient

Khoa ĐT CLC – ĐHSPKT TP.HCM 16

2.3.3 Chặn không cực đại (Non-maximum suppression)

Để loại bỏ các pixel không phải là cực đại toàn cục, chúng ta áp dụng bộ lọc kích thước 3x3 chạy qua từng pixel trên ảnh Gradient - tích chập Trong quá trình này, cần kiểm tra xem độ lớn Gradient của pixel trung tâm có phải là cực đại so với các pixel xung quanh hay không Nếu pixel trung tâm là cực đại, nó sẽ được giữ lại; ngược lại, nếu không phải, độ lớn Gradient của nó sẽ được thiết lập về 0 và chỉ so sánh với hai pixel lân cận theo hướng Gradient.

Khi hướng Gradient là 0 độ, ta so sánh pixel trung tâm với hai pixel lân cận bên trái và bên phải Nếu hướng Gradient là 45 độ, việc so sánh diễn ra với hai pixel ở góc trên bên phải và góc dưới bên trái Tương tự, các hướng Gradient khác cũng được xử lý như vậy Kết thúc quá trình, chúng ta sẽ có một mặt nạ nhị phân (ảnh trắng đen) với hai giá trị là 0 và 255 (số nguyên) hoặc 0 và 1 (số thực).

Hình 2 17 Phương pháp Non-maximum suppression

Kết quả cuối cùng nên có các cạnh mỏng thay vì dày Để đạt được điều này, chúng ta áp dụng phương pháp NMS, trong đó thuật toán sẽ quét qua tất cả các điểm trên ma trận mật độ Gradient và xác định các pixel có giá trị tối đa theo hướng của cạnh.

Hình 2 18 Biểu diễn phương pháp NMS

Khoa ĐT CLC – ĐHSPKT TP.HCM 17

Hình 2.18 cho thấy ô đỏ ở góc trên bên trái đại diện cho một pixel trong ma trận mật độ Gradient Hướng cạnh được chỉ định bởi mũi tên màu cam với góc –𝜋 radians.

Hình 2 19 Ô màu đỏ góc trên bên trái

Hướng được xác định bởi đường nét đứt màu cam, chạy từ trái sang phải, và thuật toán kiểm tra cường độ của các pixel theo hướng này Trong hình 2.19, pixel (i,j) đang được xử lý, cùng với các pixel (i, j-1) và (i, j+1) trên cùng một hướng Nếu pixel (i, j-1) có cường độ cao hơn pixel (i, j) do màu trắng (255) so với màu xám, thì pixel (i, j-1) sẽ được giữ lại và giá trị mật độ của pixel (i, j) sẽ được thiết lập thành 0 Ngược lại, nếu không có pixel nào theo hướng cạnh có giá trị cao hơn, giá trị của pixel hiện tại sẽ được lưu lại.

Hình 2 20 Trọng tâm ô đỏ ở giữa

Thuật toán phát hiện đường thẳng (Hough Transform)

Hình 2 27 Hình ảnh sử dụng phép biến đổi Hough

Biến đổi Hough là một phương pháp hiệu quả để phát hiện các hình dạng toán học như đường thẳng, đường tròn và đường elip trong hình ảnh, được giới thiệu bởi Paul Hough vào năm 1962 Kỹ thuật này xác định các tham số mô tả đường thẳng trong mặt phẳng ảnh, giúp nhận diện các hình dạng thông qua việc phân tích các nhóm điểm trong không gian ảnh Ý tưởng cốt lõi của thuật toán phát hiện đường thẳng Hough Transform là tìm kiếm và xác định các đường thẳng dựa trên các điểm dữ liệu.

Để phát hiện đường thẳng trong ảnh, đầu tiên cần khởi tạo ma trận thống kê với số lượng ô phù hợp với yêu cầu thiết kế Sử dụng kết quả từ phương pháp phát hiện cạnh Canny, ta sẽ kiểm tra từng pixel thuộc cạnh trong ma trận thống kê Mỗi pixel sẽ được thử nghiệm với nhiều phương trình đường thẳng khác nhau, giúp tăng khả năng phát hiện đường thẳng và giảm thiểu việc bỏ sót Mỗi pixel cạnh sẽ "bầu" thêm một giá trị vào ma trận thống kê, từ đó cải thiện độ chính xác trong việc phát hiện các đường thẳng trong ảnh.

Khoa ĐT CLC – ĐHSPKT TP.HCM 22

Sau khi xem xét tất cả các pixel cạnh, chúng ta sẽ áp dụng một giá trị ngưỡng đã được xác định trên ma trận thống kê để nhận diện các phương trình đường thẳng trong ảnh Cuối cùng, các đường thẳng này sẽ được vẽ lên bức ảnh.

Khi sử dụng giải thuật Hough, người dùng cần cung cấp giá trị ρ (rho) và θ (theta) mong muốn Thuật toán sẽ vẽ các đường thẳng ρ * θ lên ảnh và đếm số pixel nằm trên mỗi đường thẳng Mỗi khi tìm thấy một pixel, giá trị tương ứng sẽ được cộng thêm vào ô liên quan đến (ρ, θ).

Công thức hàm được viết trên ngôn ngữ Python là: line = cv2.HoughLinesP(edge,rho, 𝜽=np.pi/180, threshold, minLength, maxGap)

 edge: ảnh ngõ ra sau khi phát hiện cạnh, ở dạng ảnh xám

 rho: khoảng cách của các đường thẳng (pixels)

 theta: khoảng cách góc của các đường thẳng (radians)

 threshold: ngưỡng lọc để phát hiện một đường thẳng

 minLength: độ dài tối thiểu để có thể tạo thành một đường thẳng

 maxGap: khoảng cách tối đa giữa hai điểm xét trên cùng một đường thẳng

Houghline trả về các đường thẳng, với mảng cấu trúc có chiều dài tương ứng với số lượng đường thẳng được phát hiện Mỗi phần tử trong mảng cấu trúc này đại diện cho một đường thẳng đã được tìm thấy.

 point1: hai phần tử vector [x1, y1] xác định tọa độ điểm đầu của đoạn thẳng

 point2: hai phần tử vector [x2, y2] xác định tọa độ điểm cuối của đoạn thẳng

 theta: góc hay hướng vật thể trong Hough

 rho: trục vị trí của biến đổi Hough

2.4.2 Hiện thực Hough Transform phát hiện đường thẳng

Một phương trình đường thẳng được biểu diễn bằng hai tham số chính: khoảng cách ρ (rho) và góc θ (theta) trong khoảng (0 < θ < 180) Khi thử nghiệm các đường thẳng lệch nhau 1 độ, ta có thể tạo ra tối đa 180 đường thẳng khác nhau Tuy nhiên, chỉ có góc θ là chưa đủ để mô tả một đường thẳng; ta cần thêm giá trị khoảng cách ρ Giá trị tối đa của ρ bằng độ dài đường chéo của ảnh (diagonal_length), và ρ có thể mang giá trị âm, do đó khoảng cách ρ nằm trong đoạn [-diagonal_length, diagonal_length] Để đạt được kết quả tốt, ta thiết lập độ khít của ρ là 1 pixel, từ đó tổng số giá trị ρ có thể thử nghiệm sẽ tăng lên đáng kể.

2 * int(diagonal_length/ 𝜌) + 1 (kể cả giá trị 0)

Hình 2 28 Đường thẳng được xác định trong tọa độ cực

Khoa ĐT CLC – ĐHSPKT TP.HCM 23

Để xác định ma trận thống kê, chúng ta khởi tạo các phần tử với giá trị 0, có kích thước bằng số trường hợp 𝜌 nhân với số trường hợp 𝜃 Kích thước mảng lớn hơn sẽ mang lại độ chính xác cao hơn, nhưng đồng thời cũng làm tăng thời gian tính toán Tiếp theo, chúng ta sẽ duyệt qua mỗi pixel cạnh để xác định số lượng phương trình đường thẳng (được xác định bởi cặp số (𝜌, 𝜃)) đi qua pixel đó Cụ thể, đối với mỗi pixel cạnh (x, y), ta sẽ tính giá trị 𝜌 tương ứng cho từng giá trị 𝜃, với tổng cộng 180 giá trị.

Khi áp dụng thuật toán Canny, giả sử có 4000 pixel được phát hiện, ta sẽ thu được 4000 cặp giá trị (x, y), được biểu diễn bằng ma trận A có kích thước [4000, 2] Đối với mỗi cặp giá trị (x, y), chúng ta sẽ thử nghiệm 180 giá trị theta 𝜃 theo phương trình đường thẳng 𝜌.

Để tìm ra 180 giá trị ρ (rho), ta sử dụng công thức x*cos𝜃 + y*sin𝜃 Đầu tiên, chúng ta xây dựng ma trận B có kích thước [2, 180], trong đó dòng đầu chứa giá trị cos𝜃 và dòng thứ hai chứa giá trị sin𝜃 Sau đó, chúng ta thực hiện phép tính tích vô hướng để thu được ma trận C, chứa các giá trị ρ với kích thước tương ứng.

Để thực hiện việc "vote" vào ma trận thống kê, chúng ta chỉ cần duyệt qua từng phần tử của ma trận C và xác định dòng và cột phù hợp để cộng thêm 1 đơn vị Giá trị rho 𝜌 nằm trong khoảng [-num_𝜌, num_𝜌], trong khi chỉ số dòng của ma trận thống kê bắt đầu từ 0 Sau khi hoàn tất việc duyệt, chúng ta sẽ lọc theo ngưỡng đã xác định trước để giữ lại các đường thẳng có trong ảnh, từ đó thu được các giá trị hàng và cột Cuối cùng, các giá trị này sẽ được chuyển đổi về rho 𝜌 và theta 𝜃 (radian) để sử dụng hàm cv2.line vẽ đúng các đường thẳng.

Hình 2 30 Geo_Hough Hình 2 31 Geo_Canny

Khoa ĐT CLC – ĐHSPKT TP.HCM 24

2.4.3 Hiện thực Hough Transform phát hiện đoạn thẳng

Để cải thiện khả năng nhận diện các cạnh của đối tượng trong ảnh, chúng ta sẽ áp dụng bước hậu xử lý nhằm trích xuất các đoạn thẳng từ thông tin đường thẳng đã xác định Điều này được thực hiện bằng cách thống kê các pixel cạnh thuộc về từng đường thẳng (rho 𝜌, theta 𝜃) Quá trình này bao gồm việc duyệt qua từng pixel cạnh, tính toán giá trị rho 𝜌 và so sánh với đường thẳng đang xem xét Nếu có sự khớp, pixel đó sẽ được lưu vào danh sách trong từ điển (Dictionary) của Python.

Để xác định các đoạn thẳng từ các pixel, trước tiên cần kiểm tra mối liên kết giữa các pixel liền kề Nếu các pixel này liền kề, quá trình sẽ tiếp tục, ngược lại, danh sách các pixel đã duyệt sẽ tạo thành một đoạn thẳng Tiếp theo, cần kiểm tra độ dài của đoạn thẳng này xem có vượt qua ngưỡng so với tổng số pixel thuộc đường thẳng đang xem xét hay không Nếu độ dài nhỏ hơn ngưỡng, đoạn thẳng sẽ bị loại bỏ do có thể là nhiễu, còn nếu lớn hơn ngưỡng, đây chính là đoạn thẳng cần tìm.

Hình 2 32 Geo_Shape Hình 2 33 Geo_Canny

Nhận diện vật thể hình vuông

Để nhận diện hình vuông trong ảnh, trước tiên cần chuyển đổi ảnh màu RGB sang ảnh xám Tiếp theo, thiết lập ngưỡng để chuyển đổi ảnh xám thành ảnh nhị phân và nghịch đảo ảnh nhị phân nhằm giảm thời gian xử lý Cuối cùng, áp dụng thuật toán Canny để xác định biên của vật thể.

Sử dụng giải thuật Hough để xác định thuộc tính hình dạng, ta gom các cạnh có khả năng tạo thành hình vuông vào danh sách nhóm Các cạnh này phải nằm gần nhau, song song hoặc vuông góc Sau khi có danh sách, kiểm tra xem có bốn cạnh nào có thể tạo thành hình vuông hay không Nếu có nhiều hơn một tập hợp bốn cạnh, cần xác định xem chúng có tạo thành một hình vuông duy nhất hay không; nếu không, chúng có thể thuộc về một hoặc nhiều hình vuông khác lân cận.

Khoa ĐT CLC – ĐHSPKT TP.HCM 25

Nhận diện màu sắc

Trong bài viết này, chúng tôi trình bày phương pháp nhận diện màu sắc bằng cách tính khoảng cách màu gần nhất thay vì thiết lập giá trị ngưỡng màu trong hệ màu RGB Đầu tiên, chúng tôi chụp hình các khối vật thể có màu đỏ, xanh lục, xanh lam, vàng và đen, sau đó lưu trữ vào danh sách các biến màu mẫu Tiếp theo, chúng tôi tính giá trị màu trung bình để tạo ra danh sách Numpy gồm ba phần tử Red, Green, Blue Việc tính giá trị màu trung bình giúp giảm thiểu ảnh hưởng của các điểm ảnh không đồng đều trong ảnh Sau khi tính toán, giá trị màu được thêm vào danh sách và từ đó, chúng tôi vẽ tọa độ các điểm màu trong không gian màu BGR Cuối cùng, chúng tôi xác định màu sắc của vật thể thực tế bằng cách tính khoảng cách giữa màu vật thể và năm điểm màu mẫu, từ đó gán màu cho vật thể dựa trên sự gần gũi với màu mẫu.

Hình 2 35 Các khối màu thực tế Hình 2 36 Các điểm màu trong không gian màu

Hình 2 34 Quy trình nhận diện

Khoa ĐT CLC – ĐHSPKT TP.HCM 26

Điều khiển chuyển động của Robot

Nhà sản xuất Dobot Magician cung cấp hai phương thức điều khiển cho người dùng: sử dụng ứng dụng Dobot Studio, phù hợp cho giáo dục và ứng dụng đơn giản, và sử dụng thư viện API cho lập trình trên nhiều ngôn ngữ như Java, C#, Python, Qt, và VB, phục vụ cho nghiên cứu phát triển và ứng dụng phức tạp.

Dobot Studio là phần mềm điều khiển cánh tay Dobot Magician, cho phép người dùng thực hiện nhiều ứng dụng như gắp thả vật thể, khắc laser, in 3D, mô phỏng chuyển động, và viết vẽ hình dạng theo lập trình khối Phần mềm còn hỗ trợ hiển thị cảnh báo lỗi cùng hướng dẫn khắc phục, giúp người dùng dễ dàng xử lý sự cố.

Hình 2 37 Giao diện điều khiển của phần mềm Dobot Studio

Teaching & Playback Dạy cho Robot cách di chuyển và lưu lại để có thể chuyển động lặp đi lặp lại

Write & Draw Điều khiển chuyển động để viết, vẽ hoặc khắc vật thể bằng laser

Sử dụng ngôn ngữ lập trình khối tức kéo thả các khối lệnh có sẵn để tạo mã thực thi điều khiển chuyển động của cánh tay

Khoa ĐT CLC – ĐHSPKT TP.HCM 27

Script Điều khiển cánh tay Robot bằng các ngôn ngữ lập trình được hỗ trợ

LeapMotion Điều khiển chuyển động cánh tay Robot bằng thao tác của cánh tay người thực tế

Mouse Điều khiển chuyển động cánh tay bằng chuột máy tính

LaserEngraving Khắc laser lên vật thể

3DPrinter In các khối vật 3D

Example Các ví dụ mẫu của nhà sản xuất

Addmore Thêm các chức năng tùy chỉnh

Bảng 2 1 Chức năng của từng Module trong giao diện điều khiển

Dobot Magician bao gồm 3 chế độ chuyển động đó là Jogging, Point to Point, Arc Jogging: là chế độ dịch chuyển từng điểm nhỏ (di chuyển nhẹ, từ từ)

Hình 2 38 Điều chỉnh trong hệ tọa độ Đề- các

- Nhấn X+ hoặc X- Robot sẽ di chuyển dọc theo trục X theo chiều âm hoặc dương

- Nhấn Y+ hoặc Y- Robot sẽ di chuyển dọc theo trục Y theo chiều âm hoặc dương

- Nhấn Z+ hoặc Z- Robot sẽ di chuyển dọc theo trục Y theo chiều âm hoặc dương

- Nhấn R+ hoặc R- Robot sẽ xoay dọc theo trục R theo chiều âm hoặc dương

Hình 2 39 Điều chỉnh trọng hệ tọa độ khớp xoay

- Nhấn J1+ hoặc J1- Robot sẽ xoay động cơ chân đế theo chiều âm hoặc dương

- Nhấn J2+ hoặc J2- Robot sẽ xoay động cơ khớp RearArm theo chiều âm hoặc dương

- Nhấn J3+ hoặc J3- Robot sẽ xoay động cơ khớp ForeArm theo chiều âm hoặc dương

- Nhấn J4+ hoặc J4- Robot sẽ xoay động cơ Servo theo chiều âm hoặc dương

Khoa ĐT CLC – ĐHSPKT TP.HCM 28

Điều khiển vị trí cánh tay Robot dựa trên nguyên lý điểm tới điểm là phương pháp Point to Point Dobot Magician hỗ trợ ba chế độ chuyển động chính là MOVJ, MOVL và JUMP, giúp tối ưu hóa khả năng hoạt động của robot trong các tác vụ khác nhau.

MOVJ là chuyển động khớp xoay từ điểm A đến điểm B, trong đó mỗi điểm di chuyển từ góc ban đầu đến góc đích của nó mà không phụ thuộc vào quỹ đạo di chuyển Hình 2.40 minh họa rõ ràng quá trình này.

- MOVL: chuyển động thẳng từ điểm A đến điểm B Khớp xoay sẽ thực hiện di chuyển một quỹ đạo thẳng từ điểm A đến điểm B như trên hình 2.40

JUMP là quá trình di chuyển từ điểm A đến điểm B, trong đó khớp xoay hoạt động theo chế độ MOVJ Quá trình bắt đầu từ điểm A, nâng lên đến một độ cao nhất định, sau đó di chuyển ngang Khi đạt đến vị trí hình chiếu của điểm B, khớp sẽ hạ xuống điểm B.

Arc: là chế độ dịch chuyển theo quỹ đạo hình vòng cung, được xác định bởi 3 điểm (điểm đầu A, điểm bất kì B, điểm cuối C).

Khoa ĐT CLC – ĐHSPKT TP.HCM 29

Visual Studio là một môi trường phát triển tích hợp (IDE) nổi tiếng do Microsoft phát triển từ năm 1997 Nó hỗ trợ nhiều ngôn ngữ lập trình như C, C++, VB, C#, Python, Ruby, Javascript, và CSS, cho phép biên tập, sửa lỗi và thiết kế hiệu quả Với khả năng linh hoạt trong việc tích hợp thư viện lập trình và các API bên ngoài, Visual Studio trở thành công cụ không thể thiếu cho lập trình viên và nhà thiết kế website.

Để lập trình điều khiển Robot trên phần mềm Visual Studio bằng ngôn ngữ Python, người dùng cần cài đặt thư viện chứa các hàm và câu lệnh điều khiển do nhà sản xuất Dobot cung cấp Một số câu lệnh chính thường được sử dụng trong quá trình lập trình này.

Hàm điều khiển Chức năng

SetPTPCmd Thực thi lệnh dịch chuyển theo chế độ Point to

Point (điểm tới điểm) SetEndEffectorSuctionCup Thiết lập cơ cấu chấp hành là đầu hút khí nén

SetWAITCmd Lưu chỉ số của lệnh cuối cùng

GetQueuedCmdCurrentIndex Lấy giá trị của lệnh mới được thực hiện gần nhất

Khoa ĐT CLC – ĐHSPKT TP.HCM 30

ConnectDobot Kết nối Dobot Magician với máy tính

SetHOMEParams Thiết lập các thông số tại vị trí Home

SetPTPCoordinateParams Thiết lập các thông số tọa độ

SetPTPCommonParams Thiết lập các thông số chung khi chạy ở chế độ

Point to Point (điểm tới điểm)

SetPTPJumpParams Thiết lập các thông số khi Dobot hoạt động theo chế độ chuyển động JUMP SetHOMECmd Thiết lập lệnh di chuyển về vị trí Home

SetQueuedCmdStartExec Chạy các lệnh đã được đưa vào hàng chờ SetQueuedCmdClear Xóa toàn bộ lệnh trong hàng chờ

SetEMotor Điều khiển động cơ băng chuyền

DisconnectDobot Ngắt kết nối Dobot với máy tính

Bảng 2 2 Các hàm điều khiển của nhà sản xuất Dobot

Khoa ĐT CLC – ĐHSPKT TP.HCM 31

TÍNH TOÁN THIẾT KẾ

Yêu cầu thiết kế

Hình 3 1 Sơ đồ bố trí thiết bị phần cứng

Thiết kế tối ưu cho hệ thống phân loại sản phẩm dựa trên màu sắc cần đảm bảo hoạt động ổn định và tiết kiệm chi phí đầu tư ban đầu, bao gồm năm cụm chính.

Băng tải: vận chuyển các khối vật thể

Bơm khí: nén và xả khí để có thể gắp thả vật thể kích thước 25 x 25mm

Cánh tay Robot: xếp các vật thể từ trên băng chuyền vào kho chứa

Kho chứa bao gồm các khối vật thể có kích thước 4*3*4 (hàng * cột * độ cao), trong đó có 4 hàng tương ứng với 4 màu sắc khác nhau Mỗi hàng màu chứa 3 viên, và từ 3 viên này, ta có thể xếp thêm 4 viên nữa lên trên.

Giá đỡ Camera: dùng để gắn Camera chiếu xuống mặt băng chuyền.

Yêu cầu điều khiển

Để đảm bảo hiệu suất tối ưu trong quá trình hoạt động của hệ thống, cần duy trì tốc độ băng chuyền ở mức hợp lý Tốc độ quá nhanh sẽ khiến camera không kịp phân tích từng khung hình của các khối vật thể, dẫn đến phân loại màu sắc sai lệch Ngược lại, nếu băng chuyền hoạt động quá chậm, năng suất của hệ thống sẽ bị ảnh hưởng tiêu cực.

Các vật thể sau khi được xử lý trên băng chuyền cần được cánh tay Robot xoay theo hướng mong muốn trước khi được xếp vào kho Trong đề tài này, chúng ta sẽ xếp các vật thể vuông góc với kho và cho phép xếp chồng lên nhau theo từng khối màu với kích thước 1*3*4 viên (hàng * cột).

Sau khi gắp thả một vật thể, bộ điều khiển sẽ xóa ô nhớ tại vị trí đó và điều khiển cánh tay Robot di chuyển đến vị trí tiếp theo, nhằm tránh việc xếp chồng vật thể tại cùng một chỗ.

Khoa ĐT CLC – ĐHSPKT TP.HCM 32

Linh kiện phần cứng

Nhà sản xuất Logitech Độ phân giải

Bảng 3 1 Thông số kỹ thuật Camera

Chiều dài băng tải 600mm

Tốc độ tối đa 120mm/s

Kích thước 700mm x 215mm x 60mm

Bảng 3 2 Thông số kỹ thuật băng tải

Khoa ĐT CLC – ĐHSPKT TP.HCM 33

Hình 3 4 Quy cách thiết kế Dobot Magician

Dobot Magician là một cánh tay Robot đa chức năng với 4 bậc tự do (Base, Rear

Robot (Arm, Fore Arm, End-effector) được phát triển nhằm hỗ trợ giảng dạy trong môi trường giáo dục thực tế hơn Thiết bị này có khả năng lập trình bằng nhiều ngôn ngữ khác nhau như Java, C#, Python, Qt, VB, và blockly graphic, đồng thời có thể tích hợp vào các hệ thống nhúng như STM32, Arduino, iOS và Android.

Dobot Magician là một robot linh hoạt với nhiều cơ cấu chấp hành đa dạng, cho phép tùy biến thành máy in 3D, máy khắc laser, máy viết - vẽ chữ, và máy gắp vật thể Hơn nữa, nó được hỗ trợ bởi nhiều giao diện I/O khác nhau, mở ra khả năng sáng tạo không giới hạn cho người dùng.

Hình 3 5 Hệ tọa độ Đề - các

Khoa ĐT CLC – ĐHSPKT TP.HCM 34

Hệ tọa độ Đề-các: các tọa độ được xác định bởi trục đế.

Tọa độ gốc là tâm của 3 động cơ (Base, Rear Arm, Fore Arm).

Hướng trục X vuông góc với đế và hướng về phía trước, trục Y vuông góc với đế và hướng sang bên trái, trong khi trục Z hướng thẳng đứng lên trên, tất cả đều dựa trên quy tắc bàn tay phải.

Trục R là tâm của động cơ Servo liên quan đến tọa độ gốc của cánh tay Robot, với chiều dương quay ngược chiều kim đồng hồ Trục R chỉ xuất hiện khi động cơ Servo được lắp đặt trong cơ cấu chấp hành.

Hình 3 6 Hệ tọa độ khớp xoay

Hệ tọa độ khớp xoay được xác định bởi các khớp chuyển động, trong đó Dobot Magician chỉ có 3 khớp J1, J2 và J3 khi không lắp ráp cơ cấu chấp hành Tất cả các khớp này đều là khớp xoay và chiều dương của chúng quay ngược chiều kim đồng hồ.

Khi động cơ Servo được lắp đặt trong cơ cấu chấp hành như Suction Cup Kit hoặc Gripper Kit, Dobot Magician sẽ có tổng cộng 4 khớp: J1, J2, J3 và J4, tất cả đều là các khớp xoay Chiều dương của các khớp này quay ngược chiều kim đồng hồ.

Khoa ĐT CLC – ĐHSPKT TP.HCM 35

Hình 3 7 Thông số kích thước Hình 3 8 Tầm hoạt động (1)

Tầm hoạt động 320mm Độ lặp vị trí 0.2mm

Giao tiếp truyền thông USB/Wifi/Bluetooth

Kích thước đế 158mm x 158mm

Bảng 3 3 Thông số kỹ thuật Dobot Magician

Khoa ĐT CLC – ĐHSPKT TP.HCM 36

Hình 3 9 Tầm hoạt động (2) Hình 3 10 Tầm hoạt động (3)

Trục Tầm hoạt động Tốc độ

Khớp xoay chân đế (Base) −90 0 ÷ 90 0 320 0 /𝑠 Khớp xoay tay đòn 1 (Rear Arm) 0 0 ÷ 85 0 320 0 /𝑠 Khớp xoay tay đòn 2 (Fore Arm) −10 0 ÷ 95 0 320 0 /𝑠 Khớp xoay cơ cấu chấp hành (Servo) 90 0 ÷ −90 0 480 0 /𝑠

Bảng 3 4 Thông số các góc khớp

Phần mềm điều khiển DobotStudio, Repetier, GrblController3.6

SDK (Bộ phát triển phần mềm) Communication Protocool, Dobot Program

Giao tiếp Input/Output mở rộng 1 I/O x 10 (có thể cấu hình ngõ vào

Analog hoặc ngõ ra PWM)

3 Giao tiếp truyền thông (UART, Reset, Stop, 12V, 5V)

Khoa ĐT CLC – ĐHSPKT TP.HCM 37

3.3.4 Bộ bơm khí nén và đầu hút

Hình 3 11 Bộ bơm khí nén và đầu hút

Phạm vi tác dụng của đầu hút 27.5mm

Loại điều khiển Khí nén

Nguồn cung cấp cho bộ hút 12V

Bảng 3 6 Thông số bộ bơm khí và đầu hút

Khoa ĐT CLC – ĐHSPKT TP.HCM 38

Sơ đồ kết nối phần cứng

Các thiết bị phần cứng được lắp ráp dưới dạng Module bởi khoa Điện – Điện tử, và nhiệm vụ của nhóm là kết nối chúng thành một hệ thống hoàn chỉnh thông qua các giao thức có sẵn dựa trên sơ đồ kết nối phần cứng Tín hiệu từ Camera sẽ được truyền vào máy tính qua cổng kết nối USB, tương tự như cánh tay.

Dobot Magician và máy tính cũng sẽ giao tiếp tín hiệu với nhau thông qua cổng

Kết nối các chân USB ở phần đế của cánh tay Robot với các cơ cấu chấp hành tương ứng theo hướng dẫn của nhà sản xuất, như được mô tả trong hình 3.13 và hình 3.14.

Hình 3 12 Sơ đồ kết nối phần cứng

Hình 3 13 Các giao thức kết nối ở chân đế của Dobot Magician

- GP1: điều khiển bơm khí, cảm biến màu sắc, cảm biến hồng ngoại

- GP2: tương tự như GP1, các chức năng do người dùng tự định nghĩa

- Stepper1: điều khiển động cơ băng tải, động cơ đùn nhựa (chế độ in 3D)

- Stepper2: tương tự như Stepper1, các chức năng do người dùng tự định nghĩa

- SW1: nguồn cấp cho bơm khí, nguồn ra 12V

- USB: giao thức kết nối với máy tính

Để thực hiện việc reset hệ thống, hãy khởi động lại thiết bị Khi quá trình reset bắt đầu, đèn báo sẽ chuyển sang màu vàng Sau 5 giây, nếu đèn chuyển sang màu xanh lá, điều đó có nghĩa là cánh tay đã được reset thành công.

Khoa ĐT CLC – ĐHSPKT TP.HCM 39

- Key: nếu bấm nhanh sẽ chạy chương trình ngoại tuyến, nếu bấm giữ trong 2 giây

Robot sẽ tiến hành lấy vị trí Home

- Communication Interface: giao tiếp UART, kết nối Bluetooth, Wifi

- Power: nguồn cấp đầu vào

Hình 3 14 Các giao thức kết nối trên cánh tay

- GP3: điều khiển tín hiệu động cơ Servo ở cơ cấu chấp hành cuối

- GP4: điều khiển tín hiệu tự động cân bằng

- GP5: điều khiển tín hiệu đầu laser

- SW3: điều khiển tín hiệu đầu nung nhựa (chế độ in 3D)

- SW4: quạt gió (chế độ in 3D), nguồn cấp đầu laser

- Analog: điều khiển tín hiệu điện trở nhiệt

Khoa ĐT CLC – ĐHSPKT TP.HCM 40

THI CÔNG HỆ THỐNG

KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ

Ngày đăng: 27/11/2021, 10:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] PGS.TS Nguyễn Trường Thịnh (2014), “Giáo trình Kỹ thuật Robot”, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Giáo trình Kỹ thuật Robot”
Tác giả: PGS.TS Nguyễn Trường Thịnh
Nhà XB: Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh
Năm: 2014
[2] TS. Nguyễn Thanh Hải (2014), “Giáo trình Xử lý ảnh”, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Giáo trình Xử lý ảnh”
Tác giả: TS. Nguyễn Thanh Hải
Nhà XB: Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh
Năm: 2014
[3] Phạm Trần Lam Hải, Trần Thanh Hùng, Nguyễn Văn Khanh, Lưu Trọng Hiếu (2015), “Ứng dụng xử lý ảnh số trong việc theo dõi sự chuyển động của các Robot di động”, Tạp chí Khoa học Trường Đại học Cần Thơ Sách, tạp chí
Tiêu đề: Ứng dụng xử lý ảnh số trong việc theo dõi sự chuyển động của các Robot di động”
Tác giả: Phạm Trần Lam Hải, Trần Thanh Hùng, Nguyễn Văn Khanh, Lưu Trọng Hiếu
Năm: 2015
[4] Nguyễn Văn Long (2016), “Ứng dụng Xử lý ảnh trong thực tế với thư viện OpenCV” Sách, tạp chí
Tiêu đề: Ứng dụng Xử lý ảnh trong thực tế với thư viện OpenCV
Tác giả: Nguyễn Văn Long
Năm: 2016
[5] Võ Đức Khánh, Hoàng Văn Kiếm (2008), “Giáo trình xử lý ảnh số”, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Giáo trình xử lý ảnh số”
Tác giả: Võ Đức Khánh, Hoàng Văn Kiếm
Nhà XB: Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh
Năm: 2008
[6] Nguyễn Tiến Phúc (2017), “Xử lý ảnh trong phân loại sản phẩm theo màu sắc”, Bài báo nghiên cứu khoa học Trường Đại học Sao Đỏ Sách, tạp chí
Tiêu đề: Xử lý ảnh trong phân loại sản phẩm theo màu sắc”
Tác giả: Nguyễn Tiến Phúc
Năm: 2017
[7] Nguyễn Quang Hoan (2006), “Xử lý ảnh”, Lưu hành nội bộ Học viện công nghệ bưu chính viễn thông Sách, tạp chí
Tiêu đề: Xử lý ảnh”
Tác giả: Nguyễn Quang Hoan
Năm: 2006
[8] Nguyễn Thị Lan (2011), “Tìm hiểu phương pháp BPR cho bài toán tìm xương của ảnh”, Đồ án tốt nghiệp Trường Đại học Dân lập Hải Phòng Sách, tạp chí
Tiêu đề: Tìm hiểu phương pháp BPR cho bài toán tìm xương của ảnh”
Tác giả: Nguyễn Thị Lan
Năm: 2011
[9] Chí Trương (2013), “Một vài khái niệm cơ bản về xử lý ảnh số”, Wordpress vtct.wordpress.com/2013/06/19/mot-vai-khai-niem-co-ban-ve-anh-so-digital-image/ Sách, tạp chí
Tiêu đề: Một vài khái niệm cơ bản về xử lý ảnh số”, "Wordpress
Tác giả: Chí Trương
Năm: 2013
[10] Việt Anh (2018), “Ảnh số và các không gian màu trong xử lý ảnh”, Blog Việt Anhblog.vietanhdev.com/posts/computer-vision/2018-09-19-anh-so-va-cac-khong-gian-mau-trong-xu-ly-anh/ Sách, tạp chí
Tiêu đề: Ảnh số và các không gian màu trong xử lý ảnh”, "Blog Việt Anh
Tác giả: Việt Anh
Năm: 2018
[11] Tạ Hải (2017), “Giới thiệu khái quát về ảnh số”, Blog Lập trình Matlab www.matlabthayhai.info/2015/11/bai-1-gioi-thieu-khai-quat-ve-anh-so.html Sách, tạp chí
Tiêu đề: Giới thiệu khái quát về ảnh số”, "Blog Lập trình Matlab
Tác giả: Tạ Hải
Năm: 2017
[12] Team Việt Dev (2018), “OpenCV là gì? Ứng dụng của nó trong thế giới thực”, Blog Team Việt Devhttps://teamvietdev.com/opencv-la-gi-ung-dung-opencv-trong-the-gioi-thuc/ Sách, tạp chí
Tiêu đề: OpenCV là gì? Ứng dụng của nó trong thế giới thực”, "Blog Team Việt Dev
Tác giả: Team Việt Dev
Năm: 2018
[13] Nguyễn Nghĩa (2016), “Một cái nhìn tổng quản về Visual Studio IDE”, EITGuidehttp://eitguide.net/mot-cai-nhin-tong-quan-ve-visual-studio-ide/ Sách, tạp chí
Tiêu đề: Một cái nhìn tổng quản về Visual Studio IDE”, "EITGuide
Tác giả: Nguyễn Nghĩa
Năm: 2016
[4] R.B Rusu, A. Holzbach, M. Beetz (2009), “Detecting and Segmenting Objects for Mobile Manipulation”, S3DV Workshop of the 12 th International Conference on Computer Vision (ICCV) Sách, tạp chí
Tiêu đề: Detecting and Segmenting Objects for Mobile Manipulation”, "S3DV Workshop of the 12"th
Tác giả: R.B Rusu, A. Holzbach, M. Beetz
Năm: 2009
[5] Gonzalez, RC and Woods, RE (2008), “Digital Image Processing”, Pearson Prentice Hall, Upper Saddle River Sách, tạp chí
Tiêu đề: Digital Image Processing”
Tác giả: Gonzalez, RC and Woods, RE
Năm: 2008
[6] Bhabatosh Chanda, Dwijesh Dutta Maumder (2001), “Digital Image Processing and Analysis”, Prentice Hall of India Sách, tạp chí
Tiêu đề: Digital Image Processing and Analysis”
Tác giả: Bhabatosh Chanda, Dwijesh Dutta Maumder
Năm: 2001
[7] Wilhelm Burger and Mark J. Burge (2009), “Principles of Digital Image Processing”, Fundamental Techniques, Sprigner Sách, tạp chí
Tiêu đề: Principles of Digital Image Processing”
Tác giả: Wilhelm Burger and Mark J. Burge
Năm: 2009
[8] Support Dobot, “Dobot Magician User Guide”, Dobot.cc https://download.dobot.cc/product-manual/dobot-magician/pdf/V1.7.0/en/Dobot-Magician-User-Guide-V1.7.0.pdf Sách, tạp chí
Tiêu đề: Dobot Magician User Guide
[9] Support Dobot, “Dobot Magician Demo Description”, Dobot.cc https://download.dobot.cc/product-manual/dobot-magician/pdf/en/dobot-magician-demo-description.pdf Sách, tạp chí
Tiêu đề: Dobot Magician Demo Description
[10] Support Dobot, “Dobot Magician API Description”, Dobot.cc http://download.dobot.cc/development-protocol/dobot-magician/pdf/api/en/Dobot-Magician-API-DescriptionV1.2.3.pdf Sách, tạp chí
Tiêu đề: Dobot Magician API Description

HÌNH ẢNH LIÊN QUAN

Hình 1. 1 Xử lý ảnh số - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 1. 1 Xử lý ảnh số (Trang 18)
Hình 2. 2 Mô tả điểm ảnh - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 2 Mô tả điểm ảnh (Trang 22)
Hình 2. 3 So sánh độ phân giải ảnh - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 3 So sánh độ phân giải ảnh (Trang 22)
Hình 2. 6 Nhận dạng các vật thể trong ảnh - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 6 Nhận dạng các vật thể trong ảnh (Trang 24)
Hình 2. 9 Không gian màu HSV - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 9 Không gian màu HSV (Trang 26)
Hình 2. 11 Xử lý cạnh dùng hàm Canny - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 11 Xử lý cạnh dùng hàm Canny (Trang 28)
Hình 2. 12 Ảnh gốc (trái) - Ảnh mờ với bộ lọc Gaussian (phải) - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 12 Ảnh gốc (trái) - Ảnh mờ với bộ lọc Gaussian (phải) (Trang 30)
Hình 2. 15 Ảnh mờ (trái) - Ảnh mật độ độ dốc Gradient (phải) - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 15 Ảnh mờ (trái) - Ảnh mật độ độ dốc Gradient (phải) (Trang 32)
Hình 2. 18 Biểu diễn phương pháp NMS - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 18 Biểu diễn phương pháp NMS (Trang 33)
Hình 2. 17 Phương pháp Non-maximum suppression - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 17 Phương pháp Non-maximum suppression (Trang 33)
Hình 2. 24 Kết quả của phương pháp Edge Tracking by Hysteresis - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 24 Kết quả của phương pháp Edge Tracking by Hysteresis (Trang 36)
Hình 2. 25 Ảnh tách biên sử dụng giải thuật AutoCanny - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 25 Ảnh tách biên sử dụng giải thuật AutoCanny (Trang 37)
Hình 2. 27 Hình ảnh sử dụng phép biến đổi Hough - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 27 Hình ảnh sử dụng phép biến đổi Hough (Trang 38)
Hình 2. 37 Giao diện điều khiển của phần mềm Dobot Studio - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Hình 2. 37 Giao diện điều khiển của phần mềm Dobot Studio (Trang 43)
Bảng 2. 2 Các hàm điều khiển của nhà sản xuất Dobot - Ứng dụng dobot magician trong hệ thống phân loại sản phẩm
Bảng 2. 2 Các hàm điều khiển của nhà sản xuất Dobot (Trang 47)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w