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

ứng dụng xử lý ảnh và robot phân loại sản phẩm theo màu sắc

90 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 Xử lý Ảnh và Robot Phân Loại Sản Phẩm Theo Màu Sắc
Tác giả Nguyễn Thái Đạt
Người hướng dẫn TS. Trần Mạnh Sơ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 Công nghệ Kỹ thuật Điều khiển và Tự động hóa
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 90
Dung lượng 5,38 MB

Cấu trúc

  • Chương 1. TỔNG QUAN (19)
    • 1.1. ĐẶT VẤN ĐỀ (19)
    • 1.2. MỤC TIÊU (20)
    • 1.3. NỘI DUNG NGHIÊN CỨU (20)
    • 1.4. GIỚI HẠN (21)
  • Chương 2. CƠ SỞ LÝ THUYẾT (22)
    • 2.1. SƠ LƯỢC VỀ HỆ THỐNG ROBOT (22)
      • 2.1.1. Khái niệm cánh tay robot (22)
      • 2.1.2. Bài toán động học thuận (22)
      • 2.1.3. Bài toán động học ngược (23)
      • 2.1.4. Thuật giải bài toán động học thuận (23)
      • 2.1.5. Thuật giải bài toán động học ngược (24)
    • 2.2. Tổng quan về thị giác máy tính (25)
      • 2.2.1. Ý tưởng về hệ thống thị giác máy tính (25)
      • 2.2.2. Các phương pháp được sử dụng (25)
    • 2.3. Khảo sát robot ba bậc tự do (25)
      • 2.3.1. Giải bài toán động học thuận (26)
      • 2.3.2. Giải bài toán động học ngược (28)
  • Chương 3. TÍNH TOÁN VÀ THIẾT KẾ (31)
    • 3.1. Tổng quan về hệ thống (31)
    • 3.2. Thiết kế phần cứng (31)
    • 3.3. Lựa chọn thiết bị phần cứng (32)
      • 3.3.1. Cánh tay robot (32)
      • 3.3.2. Vi điều khiển (33)
      • 3.3.3. Board mở rộng (34)
      • 3.3.4. Driver điều khiển động cơ (34)
      • 3.3.5. Động cơ bước (36)
      • 3.3.6. Nguồn cung cấp (37)
      • 3.3.7. Công tắc hành trình (37)
      • 3.3.8. Webcam (38)
      • 3.3.9. Servo (39)
    • 3.4. Phần mềm sử dụng (40)
      • 3.4.1. Pycharm (40)
      • 3.4.2. Qt Designer (40)
      • 3.4.3. Matlab (40)
      • 3.4.4. Arduino IDE (41)
      • 3.4.5. MySQL workbench (41)
  • Chương 4. THI CÔNG HỆ THỐNG (42)
    • 4.1. Giới thiệu (42)
    • 4.2. Thi công phần cứng (42)
      • 4.2.1. Tổng quan về kết nối hệ thống phần cứng (42)
      • 4.2.2. Sơ đồ kết nối phần cứng (43)
    • 4.3. Lập trình hệ thống (46)
      • 4.3.1. Lập trình điều khiển robot (46)
      • 4.3.2. Giải thuật xử lý ảnh (49)
      • 4.3.3. Gửi thông tin sản phẩm được phân loại lên cơ sở dữ liệu (55)
      • 4.3.4. Xây dựng giao diện người dùng (56)
  • Chương 5. KẾT QUẢ THỰC HIỆN (59)
    • 5.1. Kết quả điều khiển cánh tay robot (59)
    • 5.2. Kết quả phân loại sản phẩm theo màu sắc (61)
  • Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (63)
    • 6.1. Kết luận (63)
      • 6.1.1. Kết quả đạt được (63)
      • 6.1.2. Một số hạn chế (63)
    • 6.2. Hướng phát triển (63)
  • TÀI LIỆU THAM KHẢO (64)
  • PHỤ LỤC (65)

Nội dung

Nội dung thực hiện: - Tham khảo, tìm hiểu các hệ thống phân loại sản phẩm sử dụng cánh tay robot kết hợp thị giác máy tính từ các đồ án trước đó và trong thực tế.. Do đó, hướng phát triể

TỔNG QUAN

ĐẶT VẤN ĐỀ

Hiện nay, hệ thống robot ngày càng phát triển và đóng vai trò rất quan trọng trong cuộc sống hiện đại của chúng ta Ngành công nghiệp robot bao gồm các công nghệ phức tạp, tiên tiến từ cảm biến, máy móc, điện tử, điều khiển tự động và các lĩnh vực khác Đây là ngành công nghệ cao, có tư duy tiến bộ ảnh hưởng tới sự phát triển trong tương lai của nhân loại

Cánh tay robot được ứng dụng trong nhiều dây chuyền sản xuất tự động, từ ngành công nghiệp nặng như sản xuất ô tô cho đến phân loại sản phẩm tiêu dùng Đây được coi là công cụ lao động của tương lai, lực lượng lao động chính trong nhiều lĩnh vực khác nhau Robot hỗ trợ con người rất nhiều trong sản xuất đặc biệt là trong điều kiện môi trường khắc nghiệt hoặc nhiều chất độc hại, nguy hiểm Hiện tại có nhiều loại robot mới xuất hiện trên thế giới, đánh dấu bước đột phá trong phát triển lĩnh vực này giúp các doanh nghiệp tăng doanh thu bằng cách giảm lực lượng lao động, giảm chi phí sản xuất và cải thiện năng suất

Với sự phát triển chóng mặt của khoa học máy tính và trí tuệ nhân tạo, các hệ thống robot ngày càng trở nên thông minh hơn nhờ tích hợp các công nghệ tiên tiến: internet vạn vật (Internet of Things), thị giác máy tính (Computer Vision), nền tảng đám mây (Cloud), dữ liệu lớn (Big Data), từ đó các hệ thống robot có thể thực hiện các tác vụ phức tạp như nhận biết cảm xúc con người, chẩn đoán y tế, truyền động thông minh, Một số tập đoàn lớn trong ngành công nghiệp robot có thể kể đến như: ABB (Thụy Sĩ), Yaskawa (Nhật Bản), FANUC (Nhật Bản), …

Việt Nam đang trong quá trình hiện đại hóa và hội nhập quốc tế rất mạnh mẽ nên cần nguồn nhân lực lớn cho các ngành công nghiệp tiên tiến đặc biệt là ngành công nghiệp robot Tuy nhiên ở nước ta việc đào tạo ra nhân lực cũng như thực hiện các nghiên cứu trong lĩnh vực này vẫn còn nhiều hạn chế Lượng robot được sản xuất ở nước ta đa phần là sử dụng công nghệ kiểu cũ của thế giới Do đó, xu hướng giáo dục ở các trường đại học hiện nay là đẩy mạnh các nghiên cứu về các công nghệ tiên tiến hơn trong lĩnh vực robot, tiếp cận với nền công nghiệp của các nước phát triển mạnh trong ngành này

thị giác máy tính được ví như "đôi mắt" của robot, giúp chúng dễ dàng và linh hoạt hơn trong hoạt động Nhờ thị giác máy tính, robot có thể xử lý các tác vụ phức tạp, nâng cao hiệu suất, đồng thời giảm thiểu nguy hiểm và rủi ro cho con người Các ứng dụng tiêu biểu của thị giác máy tính bao gồm kiểm soát giao thông, chẩn đoán bệnh từ hình ảnh MRI, xử lý ảnh vệ tinh và hệ thống cảnh báo va chạm trên xe hơi.

Khi kết hợp thị giác máy tính và robot ta sẽ được một hệ thống có khả năng nhận dạng và phân loại các sản phẩm khác nhau dựa vào các đặc trưng, đặc tính của vât bằng cách sử dụng hình ảnh thu được từ camera, sau đó tiến hành phân tích và xử lý để có thể trích xuất ra các thông tin hữu ích cho robot, giúp chúng thực hiện nhiệm vụ cụ thể

Nhận thấy nhu cầu thực tiễn về các hệ thống phân loại sản phẩm ứng dụng cánh tay robot và công nghệ xử lý ảnh, nhóm nghiên cứu đã quyết định thiết kế, thi công mô hình "Ứng dụng robot và xử lý ảnh phân loại sản phẩm theo màu sắc" Mô hình này được xây dựng dựa trên nền tảng kiến thức được trang bị, các kết quả khảo sát và nghiên cứu chuyên sâu nhằm đáp ứng nhu cầu về một hệ thống phân loại sản phẩm hiệu quả, chính xác.

MỤC TIÊU

Để tìm hiểu sâu hơn về việc kết hợp giữa điều khiển robot và kỹ thuật xử lý ảnh, nhóm đã xây dựng một mô hình hệ thống gồm cánh tay robot kết hợp sử dụng camera để phân loại sản phẩm theo màu sắc và cung cấp tọa độ cho robot tiến hành phân loại Một số mục tiêu được đề ra khi xây dựng hệ thống:

 Cánh tay robot hoạt động, di chuyển ổn định khi được điều khiển

 Hình ảnh được truyền từ camera có độ trễ thấp

 Quá trình xử lý ảnh xác định màu và vị trí của sản phẩm nhanh chóng, chính xác

 Dữ liệu màu sắc, thời gian phát hiện sản phẩm được cập nhật chính xác theo thời gian thực

 Xây dựng giao diện điều khiển giúp vận hành hệ thống dễ dàng và trực quan.

NỘI DUNG NGHIÊN CỨU

Đối tương nghiên cứu của đề tài là mô hình cánh tay robot Magician ba bậc tự do sử dụng mạch Arduino để điều khiển Nghiên cứu tổng quan về cấu tạo, nguyên lý hoạt động của cánh tay robot và cách điều khiển Tìm hiểu quá trình truyền nhận, xử lý thông tin giữa vi điều khiển Arduino và giao diện lập trình bằng ngôn ngữ Python, áp dụng xử lý ảnh để lập trình và vận hành điều khiển cánh tay robot.

GIỚI HẠN

Cánh tay robot ba bậc tự do trong đồ án được điều khiển theo kiểu vòng hở bằng các động cơ bước không có encoder hồi tiếp

Các thuật toán xử lý ảnh được lập trình trên ngôn ngữ Python với sự hỗ trợ của thư viện xử lý ảnh OpenCV

Sản phẩm được được phân loại trong đề tài là vật hình trụ tròn màu đỏ, vàng, xanh dương có kích thước cao 10mm và đường kính mặt đáy 10mm.

CƠ SỞ LÝ THUYẾT

SƠ LƯỢC VỀ HỆ THỐNG ROBOT

2.1.1 Khái niệm cánh tay robot

Cánh tay robot là những cỗ máy được dùng trong quá trình sản xuất công nghiệp, chúng có thể hoạt động một cách tự động hoặc được vận hành bởi con người Cánh tay robot được thiết kế linh hoạt theo nhu cầu sử dụng với tốc độ và độ chính xác cao, có thể linh hoạt như cánh tay của con người Robot có thể thay thế con người trong các công việc lắp ráp các linh kiện nhỏ yêu cầu độ chính xác cao hoặc hoạt động trong các môi trường khắc nghiệt, độc hại Với nhiều ưu điểm vượt trội nên ngày càng nhiều chủng loại robot được tạo ra và được ứng dụng trong đa ngành đa lĩnh vực

Cánh tay robot hoạt động dựa trên cơ chế các liên kết từ phần mềm điều khiển đến phần cứng là các khớp của robot kết hợp hợp với nhau để tạo nên chuyển động của chúng Bộ điều khiển trung tâm truyền các lệnh đến các khâu, các khâu này sẽ chuyển động dựa trên bài toán động học đã được tính toán để tạo thành một chuỗi hành động của robot

2.1.2 Bài toán động học thuận

Trong đại đa số các trường hợp, tay máy được cấu tạo bởi các khâu (Links), được nối với nhau nhờ các khớp (Joint) Một đầu của chuỗi nối với giá (Bowse), còn đầu kia nối với phần công tác Mỗi khâu hình thành cùng với khớp phía trước nó một cặp khâu – khớp Tuỳ theo kết cấu của robot mà mỗi loại khớp đảm bảo cho khâu nối sau nó các khả năng chuyển động nhất định

Mỗi khớp (thực chất là cặp khâu – khớp) được đặc trưng bởi 2 loại thông số:

- Các thông số không thay đổi giá trị trong quá trình làm việc của tay máy được gọi là tham số

- Các thông số thay đổi khi tay máy làm việc được gọi là các biến khớp

Hai loại khớp thông dụng nhất trong kỹ thuật tay máy là khớp trượt và khớp quay Chúng đều là loại khớp có một bậc tự do

Bài toán thuận là mô tả vị trí và hướng chuyển động của cơ cấu dưới dạng hàm số của tọa độ khớp Cho trước cấu trúc và quy luật chuyển động được thể hiện bằng tọa độ q, người ta xác định quy luật chuyển động của điểm trên khâu tác động cuối hoặc bất kỳ điểm nào trên một khâu của robot trong hệ trục tọa độ Descartes Nội dung của bài toán động học thuận này gần giống với bài toán phân tích động học cơ cấu.

2.1.3 Bài toán động học ngược

Từ cấu trúc và quy luật chuyển động của một điểm tác động trên khâu cuối (hoặc quy luật chuyển động của khâu cuối bao gồm vị trí và hướng của nó) được biểu diễn trong hệ tọa độ vuông góc, có thể xác định quy luật chuyển động của các khâu thành viên thông qua các tọa độ suy rộng q Trong một số trường hợp, bài toán thực tế được đặt ra tương tự như bài toán tổng hợp động học cấu trúc, có nghĩa là khi bài toán đưa ra yêu cầu hoặc quy luật chuyển động của khâu cuối, cần xác định cấu trúc robot và quy luật chuyển động q của các khâu thành viên.

Thông thường bài toán thuận có một lời giải duy nhất, trong khi đó bài toán ngược lại có vô số lời giải (bài toán vô định) khi cho trước quy luật chuyển động của điểm trên khâu tác động cuối bên trong vùng không gian hoạt động của robot Riêng đối với các vị trí trên biên của vùng không gian hoạt động, trong một số trường hợp ta mới có lời giải duy nhất Nguyên nhân của vấn đề là ở chỗ quan hệ giữa tọa độ một điểm q nào đó trên khâu tác động cuối (Xp, Yp, Zp trong hệ tọa độ vuông góc) với các tọa độ suy rộng q (với i = 1, n khâu động) nghĩa là sự mô tả vị trí tương đối giữa các khâu thành viên chỉ là ánh xạ theo chiều thuận mà không có theo chiều nghịch

Ngoài ra, ở cả 2 bài toán động học, ta không chỉ quan tâm đến tọa độ của một điểm thuộc khâu tác động cuối mà còn quan tâm đến cả vị trí và hướng của nó trong hệ tọa độ vuông góc Do đó, ngoài các thông số tọa độ của một điểm P nào đó thuộc khâu tác động cuối ta còn phải bổ sung ba góc quay Euler quanh ba trục tọa độ để xác định hướng của nó Khi giải quyết vấn đề có nhiều lời giải bài toán ngược người ta đưa ra các ràng buộc về mặt động học đối với các robot hoạt động bên trong của vùng không gian làm việc của nó (gọi là không gian có bậc tự do thừa) hoặc đặt ra vấn đề phải tối ưu hóa hoạt động của robot theo một hàm mục tiêu nào đó để chọn lời giải phù hợp nhất

2.1.4 Thuật giải bài toán động học thuận

Các bước thực hiện giải bài toán động học thuận cho cánh tay robot:

- Xác định số khớp và số khâu

- Gắn các hệ trục tọa độ lên các khâu

- Xác định các biến khớp:

 Khớp quay tương ứng với biến khớp 

 Khớp tịnh tiến tương ứng với biến khớp d

- Xác định quan hệ giữa hai gốc tọa độ i và i-1 (theo quy tắc Denavit – Hartenberg):

- Xác định phương trình động học thuận cho cánh tay robot:

2.1.5 Thuật giải bài toán động học ngược Động học ngược là bài toán xác định góc quay của các khớp khi biết tọa độ điểm đầu cuối của robot, có đặc điểm:

- Không có phương pháp tổng quát

Quy trình giải bài toán động học ngược cho cánh tay robot bao gồm:

- Giải bài toán động học thuận để tìm tương quan giữa vị trí và hướng của cơ cấu chấp hành đầu cuối theo giá trị các biến khớp

- Sử dụng phương pháp hình học (robot có cấu hình đặc biệt), phương pháp đại số (sử dụng các phép biến đổi toán học để đưa ra các phương trình biến khớp dễ dàng) để giải quyết bài toán động học ngược.

Tổng quan về thị giác máy tính

2.2.1 Ý tưởng về hệ thống thị giác máy tính Ý tưởng hệ thống thị giác máy tính được sử dụng trong đồ án là chụp lại một bức ảnh vùng làm việc của robot gọi là ảnh nền Khi camera bắt đầu thu hình ảnh từ vùng làm việc sẽ liên tục thực hiện trừ đi khung hình hiện tại để kiểm tra xem có sản phẩm nào xuất hiện hay không Từ sự khác biệt giữa hai khung hình ta có khung hình mới chứa sản phẩm cần nhận dạng Dựa vào hình này ta sẽ trích xuất được các đặc điểm của sản phẩm để tiến hành phân loại, cụ thể trong đồ án này nhóm lựa chọn phân loại theo đặc trung màu sắc của sản phẩm Về phần lập trình xử lý ảnh, nhóm xử dụng thư viện OpenCV và ngôn ngữ lập trình Python để tạo chương trình nhận dạng màu sắc, phân loại và gửi tọa độ sản phẩm cho robot để thực hiện gắp

2.2.2 Các phương pháp được sử dụng

2.2.2.1 Nhận diện và theo dõi sản phẩm

Phần thị giác máy tính có nhiệm vụ xác định tọa độ sản phẩm theo pixel Sau đó máy tính sẽ chuyển sang hệ tọa độ robot để thục hiện gắp Do đó, camera cần nhận diện được sản phẩm trên khung hình, xác định được tọa độ tâm của sản phẩm

Theo dõi sản phẩm trong hệ thống thị giác máy tính là quá trình nhận dạng sản phẩm mục tiêu bằng camera, sau đó hệ thống sẽ liên tục cập nhật tọa độ sản phẩm trong mỗi khung hình video.

2.2.2.2 Phân loại sản phẩm theo tiêu chí màu sắc

Trong đồ án này sẽ tiến hành phân loại ba màu sắc cơ bản: đỏ, vàng, xanh dương Do mắt của con người nhìn thấy màu sắc theo không gian màu HSV (Hue, Saturation, Value) vì thế các màu khác nhau sẽ có giá trị này khác nhau, ta có thể dựa vào đặc điểm của không gian màu này để xác định màu sắc của sản phẩm.

Khảo sát robot ba bậc tự do

Ở trong đồ án này, nhóm em quyết định khảo sát và sử dụng cánh tay robot ba bậc tự do có cấu hình của robot Magician do đây là loại robot được phát triển để phục vụ cho mô hình giáo dục và giảng dạy vì thế sẽ có nhiều nguồn tài liệu dễ dàng tiếp cận và nghiên cứu Ngoài ra một đặc điểm của cánh tay robot Magician là cơ cấu chấp hành ở điểm đầu cuối luôn song song với mặt phẳng nằm ngang phù hợp với mục tiêu của đề tài là gắp các sản phẩm đứng trên một mặt phẳng

2.3.1 Giải bài toán động học thuận

Gắn hệ tọa độ cho các khớp của robot theo phương pháp Denavit – Hartenberg, hệ tọa độ thứ 0 có gốc tọa độ được gắn ở mặt đáy tại đế của robot có tọa độ (0;0;0)

Hình 2.1 Gắn hệ trục tọa độ lên các khớp robot

Theo sơ đồ ta thu được bảng D-H

Trong đó: ai là khoảng cách từ zi đến zi+1 theo trục xi αi là góc tạo bởi zi và zi+1 theo trục xi di là khoảng cách từ xi tới xi+1 theo trục zi

i là góc tạo bởi xi và xi+1 theo trục zi

Sử dụng công tức Denavit – Hartenberg:

Ta thu được các ma trận chuyển đổi hệ tọa độ:

Ma trận chuyển đổi hệ tọa độ thứ 1 sang hệ tọa độ thứ 0:

Ma trận chuyển đổi hệ tọa độ thứ 2 sang hệ tọa độ thứ 1:

Ma trận chuyển đổi hệ tọa độ thứ 3 sang hệ tọa độ thứ 2:

Ma trận chuyển đổi hệ tọa độ thứ 4 sang hệ tọa độ thứ 3:

Ma trận chuyển đổi hệ tọa độ thứ 5 sang hệ tọa độ thứ 4:

Từ các ma trận đã tính ở trên ta tính được tọa độ điểm đầu cuối của robot so với gốc tọa độ tại đế robot:

Hình 2.2 Hình dạng cấu trúc của robot ở các bộ biến khớp  khác nhau

2.3.2 Giải bài toán động học ngược

Sau khi có tọa độ điểm đầu cuối ta áp dụng phương pháp đại số để giải bài toán động học ngược cho robot để tìm ra giá trị các biến khớp Từ phương trình đã tính toán ở phần động học thuận ta có tọa độ điểm đầu cuối là:

Ta thu được 1 nghiệm góc 1

Ta thu được 2 nghiệm góc 3

Ta thu được 2 nghiệm góc 2

Sau khi giải bài toán động học ngược cho robot ta thu được hai bộ nghiệm các biến khớp, tuy nhiên do thiết kế cơ khí của cánh tay robot dạng cấu hình robot Magician nên ta chỉ chọn sử dụng bộ nghiệm có góc 3 âm Do đó bộ nghiệm các biến khớp được sử dụng trong mô hình này là:

TÍNH TOÁN VÀ THIẾT KẾ

Tổng quan về hệ thống

Máy tính sẽ đọc hình ảnh được truyền về từ camera, sau đó tiến hành các giải thuật để phát hiện và phân loại sản phẩm theo màu sắc, đồng thời xác định tọa độ của sản phẩm để truyền cho cơ cấu gắp vật Khi sản phẩm nằm trong vùng làm việc thì tính toán động học ngược rồi sau đó gửi các giá trị biến khớp xuống vi điều khiển Vi điều khiển sẽ thực hiện điều khiển động cơ tại các khớp của robot đến vị trí mong muốn và tiến hành gắp – thả sản phẩm.

Thiết kế phần cứng

Trong đồ án này, webcam được sử dụng để truyền hình ảnh khu vực làm việc về máy tính, qua cổng USB tích hợp sẵn Webcam đóng vai trò cập nhật và truyền dữ liệu hình ảnh, tạo cơ sở để máy tính thực hiện xử lý ảnh bằng các thuật toán chuyên biệt.

Quá trình xử lý của máy tính được tiến hành thông qua truyền thông UART, kết nối đến khối điều khiển bao gồm vi điều khiển và board mở rộng Khối này sẽ truyền tín hiệu điều khiển đến các driver điều khiển động cơ, giúp vận hành và kiểm soát hoạt động của chúng.

Khối điều khiển sẽ xuất xung tín hiệu điều khiển tốc độ cũng như chiều quay của các động cơ bước tại các khớp cánh tay robot Đồng thời cũng sẽ có tín hiệu điều khiển cơ cấu gắp-thả tại điểm đầu cuối của cánh tay robot thông qua điều khiển servo

Nguồn nguôi động cơ được sử dụng bởi một bộ nguồn chuyển đổi từ dòng điện AC sang DC, còn nguồn cấp cho khối điều khiển và wecam sẽ lấy từ máy tính thông qua cáp USB

Hình 3.1 Sơ đồ khối thiết kế phần cứng hệ thống

Lựa chọn thiết bị phần cứng

Magician là cánh tay robot để bàn đa chức năng hoàn hảo cho phục vụ giáo dục công nghệ Được cài đặt với nhiều công cụ cuối khác nhau, Magician có thể thực hiện nhiều chức năng thú vị như in 3D, khắc laser, viết và vẽ, …

Hình 3.2 Cánh tay DOBOT Macigian - Basic

Sau khi tham khảo và xem xét nhóm đã quyết định sẽ sử dụng cánh tay robot Magician với việc dùng động cơ bước điều khiển các khớp quay để mô hình hoạt động chính xác và ổn định, ở điểm cuối robot có gắn một cơ cấu kẹp – thả Phần khung của robot được lựa chọn in 3D để tối ưu hóa chi phí

Hình 3.3 Cánh tay robot Magician in 3D Bảng 3.1 Bảng kích thước các khâu của cánh tay robot Magician in 3D d1 a2 a3 a4 a5

Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR (ATmega8, ATmega168, ATmega328) để xử lý các tác vụ đơn giản như điều khiển led nhấp nháy, xử lý tín hiệu xe điều khiển từ xa, đo nhiệt độ độ ẩm, hiển thị LCD….Trong đồ án này vi điều khiển được sử dụng là Arduino UNO R3 (sử dụng ATmega328)

Hình 3.4 Board Arduino UNO R3 Bảng 3.2 Thông số cơ bản Arduino UNO R3

Vi điều khiển ATmega328 (8bit) Điện áp hoạt động 5VDC

Tần số hoạt động 16MHz

Dòng tiêu thụ 30mA Điện áp vào khuyên dùng 7 – 12VDC Điện áp vào giới hạn 6 – 20VDC

Số chân Digital I/O 14 (6 chân PWM)

Dòng tối đa trên mỗi I/O 30mA

Dòng ra tối đa (5V) 500mA

Dòng ra tối đa (3V) 50mA

Bộ nhớ flash 32KB (ATmega328) với 0.5KB dùng bởi bootloader

CNC Shield V3 là board mở rộng của Arduino UNO R3 dùng để điều khiển các máy CNC mini Board có 4 vị trí để cắm các mô đun điều khiển động cơ bước A4988, khi đó board có thể điều khiển 3 trục XYZ và thêm môt trục thứ tư tùy chọn

Một số đặc điểm nổi bật:

- Tương thích với GRBL (mã nguồn mở chạy trên Arduino UNO R3 để điều khiển CNC mini)

- Hỗ trợ điều khiển lên tới 4 trục (X, Y, Z và 1 trục tùy chọn)

- Hỗ trợ tới 2 Endstop (cảm biến đầu cuối) cho mỗi trục

- Điều khiển Spindle, điều khiển dung dịch làm mát khi máy hoạt động

- Thiết lập độ phân giải các bước động cơ bằng jump đơn giản

- Điện áp nguồn cấp đa dạng 12-36V

3.3.4 Driver điều khiển động cơ

A4998 Driver là mạch điều khiển động cơ bước nhỏ gọn, hỗ trợ nhiều chế độ làm việc, điều chỉnh được dòng ra cho động cơ và tự động ngắt khi quá nhiệt

Hình 3.6 A4998 Driver Bảng 3.3 Thông số cơ bản của A4998 Driver Điện áp cấp tối thiểu 8V Điện áp cấp tối đa 35V

Dòng cấp liên tục cho mỗi pha 1A (không cần tản nhiệt, làm mát)

Để hoạt động hiệu quả, 2A yêu cầu giải pháp tản nhiệt Các tín hiệu điều khiển cần nằm trong phạm vi 3V đến 5,5V Động cơ bước này hỗ trợ nhiều độ phân giải vi bước: 1, 1/2, 1/4, 1/8, 1/16 Độ phân giải mong muốn được thiết lập thông qua các chân MS1, MS2 và MS3 Để driver hoạt động ở chế độ Full Step, hãy giữ cả ba chân này không tải.

Bảng 3.4 Cấu hình vi bước cho A4998 Driver

MS1 MS2 MS3 Microstep Resolution

Low Low Low Full step

High Low Low Half step

Low High Low Quarter step

High High Low Eighth step

High High High Sixteenth step

3.3.5 Động cơ bước Động cơ bước 127K38200 chuyên được dùng trong các trục truyền động của máy in 3D, máy khắc laser hay những ứng dụng liên quan đến điều khiển chuyển động Sử dụng động cơ bước trong quá trình sản xuất sẽ đảm bảo máy móc được vận hành êm và mượt hơn

Hình 3.7 127K38200 stepper motor Bảng 3.5 Thông số cơ bản của động cơ bước 127K38200

Góc bước 1.8 o Điện áp pha 2.6VDC

Dòng điện pha 1.7A Điện trở trên mỗi pha 1.5Ω ± 10%

Momen xoắn 43Ncm Đường kính trục 5mm

Nguồn tổ ong 12V – 10A được thiết kế để chuyển đổi từ nguồn điện xoay chiều 180V – 240V thành nguồn một chiều 12VDC để cung cấp cho các thiết bị hoạt động

Hình 3.8 Nguồn tổ ong 12V – 10A Bảng 3.6 Thông số cơ bản của nguồn tổ ong 12V – 10A Điện áp đầu vào 180 – 240VAC Tần số hoạt động 50 – 60Hz

Công suất 150W Điện áp đầu ra 9 – 14VDC Dòng điện tối đa 10A

Công tắc hành trình JL012 là một thiết bị cơ điện dùng để phát hiện vị trí hoặc sự hiện diện của một vật, đóng vai trò như một cảm biến tiếp xúc.

Hình 3.9 Công tắc hành trình JL012 Bảng 3.7 Thông số cơ bản của công tắc hành trình JL012 Điện áp định mức 125V

Cấp độ bảo vệ IP40

Webcam Logitech C310 là dòng camera được phát triển bởi Logitech có độ phân giải tối đa 720p, tốc độ 30fps, thích hợp sử dụng trong các mô hình về thị giác máy tính đơn giản nhờ giá thành rẻ và cấu hình phù hợp

Bảng 3.8 Thông số cơ bản của webcam Logitech C310

Kích thước (bao gồm đế kẹp) 71.15 x 31.1 x 25.95 mm Độ phân giải tối đa 720p/30fps

Cổng kết nối USB type A

Hỗ trợ hệ điều hành Window 8 trở lên, MAC OS, …

3.3.9 Servo Động cơ RC Servo MG90S có các bánh răng được làm từ kim loại cho độ bền cao, lực kéo khỏe Có cách sử dụng đơn giản, thích hợp cho các ứng dụng cánh tay robot, các khớp chuyển động, robot nhện, máy bay mô hình…

Hình 3.11 Động cơ RC Servo MG90S Bảng 3.9 Thông số cơ bản của Servo MG90S Điện áp hoạt động 4.8 – 6VDC

Kích thước 23 x 12x 28.5mm Độ dài dây 30cm

Phần mềm sử dụng

Pycharm là một nền tảng kết hợp được JetBrains phát triển như một IDE cho các ứng dụng lập trình trong Python Một số ứng dụng như Facebook, Pinterest, Amazon sử dụng Pycharm để làm IDE Python Pycharm có thể chạy trên các hệ điều hành Window, Linux hoặc MAC OS Ngoài ra nó còn chứa các mô đun giúp phát triển các phần mềm bằng Python trong thời gian ngắn và ít công sức hơn Và hơn nữa nó cũng có khả năng tùy chỉnh theo yêu cầu của nhà phát triển

Các tính năng nổi bật của Pycharm có thể kể đến như trình sửa chửa chương trình thông minh, lược đồ màu cho các từ khóa, lớp và hàm, tính năng hoàn thiện và sửa lỗi dễ dàng, …

Qt Designer là một công cụ dùng để nhanh chóng xây dựng một giao diện người dùng đồ họa với các widget từ khung Qt GUI Nó cung cấp cho người dùng một giao diện kéo thả đơn giản để bố trí các thành phần như nút nhấn, văn bản, hộp tổ hợp và nhiều hơn thế nữa

Qt Designer tạo ra các tệp ui, đây là một định dạng dựa trên XML đặc biệt để lưu trữ các widget dưới dạng cây Người dùng có thể tải các tệp này trong thời gian chạy hoặc dịch chúng sang ngôn ngữ lập trình khác như C++ hay Python

Matlab là phần mềm tính toán số học với ma trận, vẽ đồ thị và biểu đồ, thực hiện thuật toán, tạo giao diện người dùng do MathWorks phát triển Với khả năng này, Matlab có thể liên kết với các chương trình viết trên nhiều ngôn ngữ lập trình khác, cho phép người dùng thực hiện các phép tính phức tạp và tạo ra các đồ họa trực quan hiệu quả.

Arduino IDE là một phần mềm với mã nguồn mở, được sử dụng chủ yếu để viết và biên dịch chương trình cho Arduino Nó bao gồm phần cứng với 300,000 board mạch được thiết kế sẵn với các cảm biến và linh kiện điện tử Phần mềm giúp người dùng có thể sử dụng các link kiện điện tử một cách linh hoạt, phù hợp với mục đích sử dụng

Arduino IDE sử dụng ngôn ngữ lập trình C/C++ phổ biến, cho phép lập trình viên tận dụng các đoạn lệnh C/C++ để điều khiển mạch Arduino dễ dàng.

Arduino IDE tích hợp hơn 700 thư viện được viết và chia sẻ bởi nhà phát hành Arduino Software và các thành viên trong cộng đồng Arduino Chúng ta có thể tận dụng chúng cho các dự án riêng mà không phải bỏ ra bất kì chi phí nào

MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database Management System – RDBMS) hoạt động theo mô hình client – server RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữ liệu theo hình thức quản lý các mối liên hệ giữa chúng.

THI CÔNG HỆ THỐNG

Giới thiệu

Chương này sẽ trình bày về hai nội dung chính gồm thi công phần cứng và lập trình chương trình cho hể thống Thi công phần cứng bao gồm lắp ráp linh kiện, nối dây, sắp xếp các linh kiện và thiết bị vào khung mô hình Thiết kế phần mềm bao gồm lập trình điều khiển robot, thu thập và xử lý hình ảnh, thu thập cơ sở dữ liệu, tạo giao diện người dùng.

Thi công phần cứng

4.2.1 Tổng quan về kết nối hệ thống phần cứng

Hình 4.1 Tổng quan sơ đồ kết nối phần cứng của hệ thống

Hình ảnh từ webcam sẽ được máy tính đọc về, sau đó thực hiện các giải thuật xử lý ảnh để phát hiện và phân loại sản phẩm theo màu sắc, đồng thời xác định tọa độ của sản phẩm Khi sản phẩm nằm trong vùng hoạt động của hệ thống thì tiến hành tính toán động học ngược cho robot sau đó gửi các giá trị biến khớp xuống Arduino Arduino sẽ thực hiện điều khiển các động cơ bước gắn trên các khớp của robot đến vị trí mong muốn thông qua driver A4998 và CNC Shield V3 Sau đó tiến hành gắp sản phẩm bằng servo MG90S thông qua một cơ cấu gắp

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

Hình 4.2 Sơ đồ kết nối Arduino UNO R3 với CNC Shield V3 với Driver A4988

CNC shield V3 là board mở rộng của Arduino UNO R3 nên nó được thiết kế để kết hợp với Arduino UNO R3 rất dễ dàng thông qua cắm các chân Pin Đồng thời nó cũng được thiết kế để tương thích với Driver A4988 nên có thể lắp ráp dễ dàng

Hình 4.3 Sơ đồ kết nối nguồn, phần cứng điều khiển vị trí 3 động cơ bước và cơ cấu gắp của robot

Hình 4.4 Sơ đồ nguyên lý Board mở rộng CNC Shiels V3 Bảng 4.1 Bảng kết nối dây phần cứng khối điều khiển điều khiển vị trí động cơ

GND COM COM COM GND

CNC Shield V3 được cấp nguồn 12V – 10A thông qua một nguồn tổ ong Động cơ bước trên các khớp số 1, 2, 3 của robot được kết nối lần lượt với các trục X,

Y, Z trên CNC Shiled V3 Các công tắc hành trình trên các khớp được dùng để xác định các giá trị biến khớp ban đầu của robot được kết nối lần lượt với các chân x – limit switch, y – limit switch, z – limit switch trên CNC Shield V3 Servo MG90S cũng được nối với chân cấp tín hiệu và nguồn VCC trên Shield V3 để thực hiện gắp – thả sản phẩm

Sau khi hoàn thành lắp ráp và đấu nối dây điện cho các thiết bị và linh kiện điện tử, bước tiếp theo là cố định các thành phần nguồn, bộ điều khiển, webcam, robot và các phần khác lên một tấm ván gỗ để hoàn thiện mô hình Việc cố định này giúp đảm bảo các thành phần được sắp xếp hợp lý, an toàn và hoạt động ổn định trong toàn bộ hệ thống.

Hình 4.5 Mô hình sau khi hoàn thiện

Thông số mô hình sau khi hoàn thiện:

- Kích thước khung bao: 600 x 500 x 430mm

Lập trình hệ thống

4.3.1 Lập trình điều khiển robot

4.3.1.1 Chương trình xử lý trên máy tính

Từ tọa độ đầu cuối máy tính sẽ thực hiện tính bài toán động học thuận, sau đó gửi các giá trị biến khớp 1, 2, 3 xuống tới vi điều khiển để tiến hành điều khiển động cơ bước tại các khớp đến vị trí mong muốn

4.3.1.2 Chương trình xử lý trên vi điều khiển

Trong phần này, phương pháp điều khiển các khớp của robot đồng thời đã được trình bày Phương pháp này cho phép robot hoạt động linh hoạt và tối ưu thời gian điều khiển, góp phần cải thiện hiệu suất hoạt động của robot.

Phương pháp điều khiển là cấp xung để điều khiển các động cơ bước đến vị trí mong muốn Chương trình điều khiển được viết bằng ngôn ngữ C với sự hỗ trợ của phần mềm Arduino IDE Động cơ bước thứ nhất sẽ điều khiển khớp 1 của robot, quay với tỉ số truyền giữa bánh răng tại khớp của robot so với bánh răng tại trục động cơ là:

Gear ratio  20  (4.1) Động cơ bước thứ hai sẽ điều khiển khớp 2 của robot, quay với tỉ số truyền giữa bánh răng tại khớp của robot so với bánh răng tại trục động cơ là:

Gear ratio  20  (4.2) Động cơ bước thứ ba sẽ điều khiển khớp 3 của robot, quay với tỉ số truyền giữa bánh răng tại khớp của robot so với bánh răng tại trục động cơ là:

Driver A4988 được cấu hình vi bước ở mode 1/16, do đó số xung để điều khiển động cơ bước quay một góc  (độ) là:

Pulse  Gear ratio       Gear ratio  

Giả sử ban đầu các giá trị biến khớp robot lần lượt là 1, 2, 3, ta cần thực hiện điều khiển robot đến vị trí 1’, 2’, 3’ Khi đó số xung cần để điều khiển các động cơ bước là:

Pulse  Gear ratio     Gear ratio  (4.5)

Pulse  Gear ratio     Gear ratio  (4.6)

Pulse  Gear ratio     Gear ratio  (4.7)

Để đảm bảo khớp số 3 không đổi khi khớp số 2 quay, động cơ 2 và 3 phải cùng quay một góc 2 Do đó, số xung cần cấp cho động cơ 1, 2, 3 lần lượt là: Pulse1, Pulse2, Pulse3 + Pulse2.

Hình 4.6 Thứ tự các động cơ trên robot

Quỹ đạo di chuyển của robot khi gắp sản phẩm xong và sau khi thả sản phẩm đã phân loại vào ô phân loại đều sẽ được điều khiển về vị trí home (

       ) làm vị trí trung gian trước khi thực hiện các bước di chuyển tiếp theo nhằm tránh một vài trường hợp gây va chạm làm lệch bước quay của các động cơ bước

Hình 4.7 Lưu đồ giải thuật khối điều khiển xử lý và truyền tín hiệu

4.3.2 Giải thuật xử lý ảnh

OpenCV là viết tắt của Open Source Computer Vision Library Là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (Computer Vision) và học máy (Machine Learning) và hiện có thêm tính năng tăng tốc GPU cho các hoạt động theo thời gian thực

OpenCV được phát hành theo giấy phép BSD do đó nó miễn phí cho cả học tập và với mục đích thương mại Nó có trên các giao diện C++, C, Python, Java và hỗ trợ Window, Linux, Mac OS, IOS và Androi OpenCV được thiết kế để hỗ trợ hiệu quả về tính toán và chuyên dùng cho các ứng dụng thời gian thực Nếu được viết trên C/C++ thư viện này có thể tận dụng được bộ xử lý đa lõi (multi-core processing)

Một số tính năng và mô đun phổ biến của OpenCV:

- Xử lý và hiển thị hình ảnh/video

- Ứng dụng trong thị giác máy tính, học máy, học sâu

Thư viện OpenCV có thể hỗ trợ nhiều ngôn ngữ lập trình khác nhau như C++, Python, … Tùy theo ứng dụng và bài toán cụ thể mà ta chọn ngôn ngữ lập trình thích hợp để sử dụng

4.3.2.2 Sơ đồ khối giải thuật nhận dạng và phân loại sản phẩm

Hình 4.8 Lưu đồ thuật toán xử lý ảnh

Giải thuật xử lý theo từng khung ảnh được gửi về liên tục từ webcam Khi xác định được có sản phẩm thì tiến hành tìm tâm và đường bao của sản phẩm, sau đó dựa vào đặc trưng màu sắc để phân loại Cuối cùng chuyển tọa độ sản phẩm sang hệ tọa độ robot và gửi xuống Arduino để tiến hành gắp sản phẩm

Hình 4.9 Quá trình xử lý ảnh sản phẩm cần phân loại

4.3.2.3 Các giải thuật nhận dạng và phân loại sản phẩm được sử dụng a Không gian màu HSV

Trong công nghệ ảnh số hiện nay, không gian màu RGB (Red – Green – Blue) được sử dụng rất phổ biến Tuy nhiên khi giải quyết các bài toán về nhận dạng màu sắc ngoài thực tế thì không gian màu HSV thích hợp được sử dụng rộng rãi hơn

Không gian màu HSV gồm ba thành phần: Hue (màu), Saturation (độ bão hòa) và Value (độ sáng) Trong đó tầm giá trị của Hue từ 0 o đến 360 o , tầm giá trị của Saturation và Value đều từ 0% đến 100%

Hình 4.10 Không gian màu HSV

OpenCV hỗ trợ chuyển ảnh từ không gian màu RGB sang không gian màu HSV thông qua hàm cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) Các giá trị H,

S, V trong thư viện này được chuẩn hóa khác đi so với giá trị lý thuyết: Hue từ 0 –

KẾT QUẢ THỰC HIỆN

Kết quả điều khiển cánh tay robot

Nắm được thông số của mô hình cánh tay robot Magician, giải được bài toán động học thuận, động học ngược để có thể điều khiển robot đến vị trí mong muốn Lập trình được điều khiển robot di chuyển bằng các khớp quay bởi động cơ bước Nhóm đã thực hiện đo đạc, tính toán và so sánh giữa tọa độ điểm đầu cuối mong muốn và thực tế được thể hiện dưới bảng sau:

Bảng 5.1 Tọa độ điểm đầu cuối mong muốn và thực tế thu được (đơn vị cm)

Tọa độ điểm đầu cuối mong muốn

Tọa độ điểm đầu cuối thực tế

Px Py Pz Px’ Py’ Pz’ ePx ePy ePz

Do không được đo bằng thiết bị chuyên dụng nên kết quả đo không được chính xác tuyệt đối Từ bảng 5.1 ta tính được trung bình sai số trung bình của tọa độ điểm đầu cuối của robot lần lượt là:

Px Py Pz e cm e cm e cm

Bảng 5.2 Thử nghiệm tính năng Set Position trong giao diện Manual

Lần thử Tọa độ mong muốn (x; y; z) (cm) Kết quả gắp sản phẩm

Trong quá trình điều khiển cánh tay robot đến điểm tọa độ mong muốn, hệ thống đạt được độ chính xác cao với sai số nhỏ Tuy nhiên, một nhược điểm là hệ thống vận hành lâu sẽ dẫn đến sai số tích lũy tăng lên Nguyên nhân do động cơ quá nóng, gây trượt bước ảnh hưởng đến độ chính xác của phép tính.

Kết quả phân loại sản phẩm theo màu sắc

Hiểu và lập trình được các giải thuật xử lý ảnh để phân loại màu và tracking theo sản phẩm để gửi tọa độ cho cánh tay robot thực thi di chuyển đến và tiến hành gắp thả Nhóm đã thực hiện cho tiến hành phân loại sản phẩm trong điều kiện môi trường ánh sáng đầy đủ và ánh sáng yếu để đánh giả khả năng của hệ thống

Bảng 5.3 Kết quả phân loại sản phẩm dựa vào đặc tính màu sắc

Lần thử Điều kiện sáng

Số sản phẩm được đưa vào phân loại

Số sản phẩm được phân loại đúng

1 Tốt 30 29 96.67% - Trường hợp gắp cả 3 màu

2 Tốt 30 29 96.67% - Trường hợp gắp cả 3 màu

3 Tốt 30 30 100% - Trường hợp gắp cả 3 màu

4 Tốt 10 10 100% - Trường hợp chỉ gắp màu xanh lam trong 3 màu

5 Tốt 10 10 100% - Trường hợp chỉ gắp màu vàng trong 3 màu

- Trường hợp chỉ gắp màu đỏ trong 3 màu

- Trường hợp gắp cả 3 màu

- Không nhận dạng được 1 lần

8 Kém 30 29 96.67% - Trường hợp gắp cả 3 màu

- Trường hợp gắp cả 3 màu

- Không nhận dạng được 2 lần.

- Trường hợp gắp cả 3 màu

- Không nhận dạng được 3 lần.

Nhận xét: Thuật toán nhận diện màu và vị trí sản phẩm phụ thuộc nhiều vào yếu tố nguồn sáng, cần duy trì một nguồn sáng vừa đủ và ôn định để hệ thống phân loại được hoạt động tốt nhất

Hình 5.1 Hệ thống hoạt động trong điều kiện ánh sáng tốt

Hình 5.2 Hệ thống hoạt động trong điều kiện ánh sáng kém

Ngày đăng: 26/09/2024, 12:20

w