1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng xử lý ảnh trong phân loại sản phẩm

84 5 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 Xử Lý Ảnh Trong Phân Loại Sản Phẩm
Người hướng dẫn TS. Lê Đức Hạnh
Thể loại luận văn tốt nghiệp
Định dạng
Số trang 84
Dung lượng 10,63 MB

Cấu trúc

  • CHƯƠNG I: MỞ ĐẦU (8)
    • 1.1. Đặt vấn đề (8)
    • 1.2. Mục tiêu đề tài (10)
    • 1.3. Phương pháp thực hiện (10)
  • CHƯƠNG II: MÃ QR VÀ ỨNG DỤNG TRONG CUỘC SỐNG (11)
    • 2.1. Mã QR là gì ? (11)
    • 2.2. Lịch sử phát triển của mã QR (12)
    • 2.3. Cấu tạo và những thông số kỹ thuật của mã QR code (13)
      • 2.3.1. Cấu tạo của mã QR (13)
      • 2.3.2. Những thông số kỹ thuật của mã QR (15)
    • 2.4. Ứng dụng thực tế của mã QR (15)
  • CHƯƠNG III: LỰA CHỌN PHƯƠNG ÁN (16)
    • 3.1. Lựa chọn phương án phân loại cho mô hình (16)
    • 3.2. Lựa chọn phương án thiết kế cơ khí cho mô hình hệ thống (20)
      • 3.2.1. Lựa chọn phương án thiết kế cơ khí cho băng tải (20)
      • 3.3.2. Lựa chọn động cơ dẫn động cho băng tải (22)
    • 3.3. Lựa chọn camera (25)
    • 3.4. Lựa chọn cánh tay robot (27)
      • 3.4.1. Robot nối tiếp ( Serial Robot ) (27)
      • 3.4.2. Robot song song ( Paralel robot) (29)
      • 3.4.3. Robot tọa độ trụ ( Cylindrical Robot ) (30)
      • 3.4.4. Robot tọa độ cầu ( Spherical/Polar Robot ) (31)
      • 3.4.5. Robot tọa độ vuông góc ( Cartesian robot/ Gantry Robot ) (31)
      • 3.4.6. Robot toàn khớp bản lề (32)
    • 3.5. Lựa chọn cơ cấu gắp hàng cho robot (34)
    • 3.6. Lựa chọn bộ điều khiển (35)
  • CHƯƠNG IV: PHÂN TÍCH ĐỘNG HỌC VÀ ĐIỀU KHIỂN TAY MÁY (39)
    • 4.1. Sơ lược về Robot Nachi MZ07 (39)
    • 4.2. Động học thuận Robot (40)
    • 4.3. Động học ngược robot (43)
    • 4.4. Kiểm tra động học ngược (51)
  • CHƯƠNG V: CALIB CAMERA VÀ XỬ LÝ DỮ LIỆU (52)
    • 5.1. Cấu tạo và thông số kỹ thuật Camera (52)
    • 5.2. Calib thông số đầu tool (52)
    • 5.3. Tìm ma trận chuyển đổi pixel ảnh về tọa độ Robot (54)
    • 5.4. Hiệu chỉnh camera (56)
    • 5.5. Đọc giá trị từ Encoder (60)
  • CHƯƠNG VI: GIAO TIẾP VÀ ĐIỀU KHIỂN ROBOT (62)
    • 6.1. Tổng quan về giao tiếp Robot NaChi MZ07 (62)
    • 6.2. Giới thiệu về Socket Communication (63)
    • 6.3. Điều khiển Robot (67)
  • CHƯƠNG VII: XỬ LÝ ẢNH (70)
    • 7.1. Tổng quan (70)
    • 7.2 Lọc màu (71)
    • 7.3 Openning (72)
    • 7.4 Tìm đường bao và tâm vật thể (74)
    • 7.5 Xác định vùng chứa và đọc dữ liệu QR code (74)
  • CHƯƠNG VIII: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG (76)
    • 8.1. Giới thiệu (76)
    • 8.2. Thiết kế giao diện (76)
  • CHƯƠNG IX: TỔNG QUAN THỰC NGHIỆM, ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN (79)
    • 9.1. Tổng quan thực nghiệm (79)
    • 9.2. Đánh giá kết quả thực nghiệm và hướng phát triển (80)
  • TÀI LIỆU THAM KHẢO (84)

Nội dung

sử dụng camera 2D để xử lý ảnh bằng cách sử dụng thư viện Opencv, ảnh sau khi được phát hiện sẽ dung thuật toán xử lý để tìm vị trí tâm vật thể, biên dạng vật thể và đọc dữ liệu của vật thể thông qua mã QR có trên vật và được xử lý một cách tự động để biết được vị trí trong hệ tọa độ robot, kết hợp với một encoder được đặt ở cuối băng tải để có thể cập nhập vị trí hiện tại của điểm mong muốn. Máy tính và CFD controller của robot Nachi MZ07 sẽ giao tiếp socket với nhau bằng chuẩn truyền ethernet, sau đó tay máy sẽ di chuyển xuống gắp vật vào vị trí mong muốn khi băng tải luôn trong trạng thái hoạt động.

MÃ QR VÀ ỨNG DỤNG TRONG CUỘC SỐNG

Mã QR là gì ?

Mã QR (mã hai chiều) là một mã vạch ma trận (mã vạch hai chiều, mã phản hồi nhanh) có hình một khối ô vuông như hình 2.1 Chúng được phát triển bởi công ty Denso Wave (Nhật Bản) vào năm 1994 Chữ “QR” là cụm từ viết tắt của từ “Quick Response” nghĩa là đáp ứng nhanh, vì mục đích tạo ra nó có ý định cho phép mã được giải ở tốc độ cao nhất có thể Các mã QR được sử dụng phổ biến nhiều nhất ở Nhật Bản, Trung Quốc và hiện trở thành mã hai chiều thông dụng nhất.

Ban đầu, mục đích chính của mã QR chỉ được sử dụng để theo dõi các bộ phận của xe hơi trong quá trình sản xuất, nhưng hiện nay chúng được sử dụng trong nhiều môi trường khác nhau, bao gồm các ứng dụng theo dõi thương mại và các ứng dụng hướng tới sự tiện lợi Mã QR có thể được sử dụng để hiển thị văn bản cho người dùng, thêm vCards vào thiết bị của người dùng, mở URL, viết email, tin nhắn hoặc thậm chí thực hiện thanh toán điện tử Đặc biệt ở Trung Quốc hầu như mọi người đều sử dụng QR để thanh toán điện tử Người dùng có thể tạo và in mã QR của riêng mình để người khác quét và sử dụng để truy cập Hiện nay QR được sử dụng rất phổ biến trong việc lưu thông tin, thanh

Lịch sử phát triển của mã QR

Năm 1970, IBM đã phát triển các ký hiệu UPC bao gồm 13 chữ số để cho phép nhập tự động vào máy tính Các ký hiệu UPC này vẫn được sử dụng rộng rãi cho hệ thống điểm bán hàng (POS) Năm 1974, Mã 39 – mã có thể mã hóa xấp xỉ 30 ký tự chữ và số, đã được phát triển Sau đó, vào đầu những năm 1980, multistaged symbol codes có thể lưu trữ được xấp xỉ 100 ký tự như mã 16K và mã 49 đã được phát triển Khi ngành công nghệ thông tin phát triển nhanh chóng, các yêu cầu được gắn với các ký hiệu có thể lưu trữ được nhiều thông tin hơn và đại diện cho các ngôn ngữ khác ngoài tiếng Anh Để thực hiện được điều này, cần phải có một loại mã ký hiệu có thể chứa nhiều ký tự hơn multistaged symbol codes Kết quả là, mã QR được ra đời và có thể chứa tối đa 7.000 chữ số ký tự bao gồm các ký tự Kanji (ký tự Trung Quốc được sử dụng ở Nhật Bản) được phát triển vào năm 1974 Hình 2.2 mô tả quá trình phát triển của các loại mã.

Hình 2.2: Lịch sử phát triển của các loại mã ký hiệu.

Hình 2.3: Sự phát triển của mã QR.

Trên hình 2.3, mã QR mang lại sự kết hợp hoàn hảo của ba đặc điểm chính gồm:Dung lượng dữ liệu ghi nhớ được lớn, tốc độ đọc cao và giảm thiểu không gian in ấn.

Cấu tạo và những thông số kỹ thuật của mã QR code

2.3.1 Cấu tạo của mã QR.

Hình 2.4: Cấu tạo mã QR

Finder pattern (hoa văn định vị): phát hiện vị trí của mã QR bằng cách đặt chúng ở ba góc của biểu tượng, vị trí, kích thước và góc của biểu tượng có thể được phát hiện Với cấu trúc này, mã QR có thể đọc được từ mọi hướng (360°)

Timing pattern: xác định tọa độ trung tâm của mỗi ô trong mã QR với các mẫu đen và trắng được sắp xếp xen kẽ Nó được sử dụng để sửa tọa độ trung tâm của ô dữ liệu khi ký hiệu nào bị méo hoặc có lỗi đối với độ cao của ô Nó được sắp xếp theo hai hướng dọc và ngang.

Alignment pattern (mô hình căn chỉnh): sửa chữa sự biến dạng của mã QR Nó mang lại hiệu quả cao để sửa chữa những biến dạng phi tuyến Tọa độ trung tâm của mẫu căn chỉnh sẽ được xác định để sửa chữa sự biến dạng của biểu tượng Vì mục đích này, một ô cách ly màu đen được đặt trong mẫu căn chỉnh để giúp phát hiện tọa độ trung tâm mẫu căn chỉnh dễ dàng hơn.

Quiet zone (vùng tĩnh): khoảng trống lề cần thiết để đọc mã QR Vùng tĩnh này giúp dễ dàng phát hiện ký hiệu trong số hình ảnh đọc bởi cảm biến/camera.

Data area (vùng dữ liệu): Dữ liệu mã QR sẽ được lưu trữ (mã hóa) vào vùng dữ liệu Phần màu xám (hình 2.4) đại diện cho vùng dữ liệu Dữ liệu sẽ được mã hóa thành các số nhị phân 0 và 1 dựa theo quy tắc mã hóa Các số nhị phân 0 và 1 sẽ được chuyển thành các ô đen trắng và sau đó sẽ được sắp xếp Vùng dữ liệu sẽ có các mã Reed - solomon được kết hợp cho dữ liệu được lưu trữ và chức năng sửa lỗi.

2.3.2 Những thông số kỹ thuật của mã QR.

Bảng 2.1 Thông số kỹ thuật của mã QR code

Kích thước ký hiệu Min là 21x21 ô vuông, Max là 177x177 ô vuông

Loại thông tin và khối lượng lưu trữ thông tin

Số đơn thuần Tối đa 7.089 ký tự

Số và chữ cái Tối đa 4.296 ký tự

Số nhị phân (8 bit) Tối đa 2.953 byte

Kanji/Kana Tối đa 1.817 ký tự

Chức năng sửa chữa lỗi

Mức L 7% số từ mã (codeword) có thể được phục hồi

Mức M 15% số từ mã có thể được phục hồi

Mức Q 25% số từ mã có thể được phục hồi

Mức H 30% số từ mã có thể được phục hồi

Chúc năng liên kết Một mã QR có thể chia thành tối đa 16 ký hiệu nhỏ, có khả năng liên kết thông tin với nhau

Ứng dụng thực tế của mã QR

Kiểm kê hàng hóa, thông tin sản phẩm, thông tin cá nhân trên card visit.

Lưu trữ URL: sử dụng điện thoại để đọc QR code để lấy URL và tự động mở web trên trình duyệt Hiện nay thường được sử dụng rất nhiều trong việc khai báo y tế nơi công cộng. Ứng dụng tại các bến xe bus, tàu lửa, tàu điện ngầm: người ta sử dụng khi quét mã

QR code của bến xe sẽ biết thông tin về các chuyến xe.

Sử dụng tại các viện bảo tàng: người sử dụng chỉ cần quét mã QR code đặt cạnh vật trưng bày là sẽ biết được thông tin chi tiết về lịch sử của vật trưng bày đó.

Sử dụng tại siêu thị: người sử dụng có thể biết được thông tin, hướng dẫn sử dụng cũng như giá thành của vật đó.

Sử dụng tại các buổi hội thảo, thuyết trình, tổ chức sự kiện, chương trình nhạc hội, live show, để thay cho Business Card của mình.

Hình 2.5: Hình mã QR sử dụng trong khai báo y tế.

LỰA CHỌN PHƯƠNG ÁN

Lựa chọn phương án phân loại cho mô hình

Phương án 1: Sử dụng hệ thống phân loại thủ công.

Dùng mắt thường để đọc thông tin hàng hóa và phân loại sản phẩm theo khu vực.

Hình 3.1: Phân loại hàng hóa thủ công. Ưu điểm:

Cần rất nhiều công nhân để thực hiện.

Về lâu dài sẽ tốn nhiều chi phí thuê công nhân.

Phương án 2: Sử dụng hệ thông phân loại tự động ứng dụng camera và băng tải phân loại.

Camera quan sát là loại camera có khung hình cao có thể bắt được hình ảnh ở tốc độ cao lên đến 840m/phút Camera này giúp phân loại sản phẩm theo mã QR được dán trên sản phẩm.

Băng tải phân loại là một giải pháp lý tưởng để tách sản phẩm khỏi các băng tải trong nguồn cung cấp cho các tuyến vận chuyển, hoạt động, sắp xếp hàng hóa, trạm đóng gói và các ứng dụng phân loại khác.

Hình 3.2: Hệ thống phân loại hàng hóa tự động. Ưu điểm:

Phân loại với độ chính xác cao.

Phạm vi hoạt động hạn chế.

Cần bảo trì sau thời gian nhất định.

Phương án 3: Sử dụng hệ thống phân loại sản phẩm tự động kết hợp giữa camera, băng tại và cánh tay robot.

Camera quan sát là loại camera có khung hình cao có thể bắt được hình ảnh ở tốc độ cao lên đến 840m/phút Camera này giúp phân loại sản phẩm theo mã QR được dán trên sản phẩm.

Băng tải có nhiệm vụ truyền tải sản phẩm giúp di chuyển từ vị trí này sang vị trí khác với tốc độ nhanh, chính xác.

Cánh tay robot giúp thực hiện nhiệm vụ gắp sản phẩm rồi đặt vào các vị trí tương ứng với từng khu vực khác nhau.

Hình 3.3: Cánh tay robot trong phân loại sản phẩm. Ưu điểm:

Làm việc với độ chính xác cao.

Phạm vi hoạt động lớn.

Cần bỏ chi phí lớn để đầu tư hệ thống ban đầu.

Cần bảo trì đình kỳ hàng quý, hàng năm.

=> Chọn phương án sử dụng tay máy trong phân loại sản phẩm.

Lựa chọn phương án thiết kế cơ khí cho mô hình hệ thống

3.2.1 Lựa chọn phương án thiết kế cơ khí cho băng tải.

Băng tải có nhiệm vụ truyền tải sản phẩm đã được đóng gói, giúp di chuyển từ vị trí này sang vị trí khác với tốc độ nhanh, hiệu quả và chính xác Tiêu chí để chọn bộ phận băng tải bao gồm:

 Phạm vi hoạt động tối thiểu 1,5 m.

 Có thể đáp ứng được tốc độ băng tải chính xác.

 Dễ dàng tìm kiếm trên thị trường.

Có 2 phương án cho việc thiết kế cơ khí cho mô hình băng tải:

Phương án 1: Băng tải với cơ cấu bộ truyền động xích.

Hình 3.4: Băng tải với cơ cấu bộ truyền xích. Ưu điểm:

+ Dùng cho tải trọng lớn.

+ Phải thường xuyên bôi trơn khi làm việc.

+ Gây tiếng ồn lớn khi làm việc.

+ Sử dụng lâu ngày sẽ dễ bị mòn, cần bảo trì.

Phương án 2: Băng tải với cơ cấu bộ truyền đai.

Hình 3.5: Cơ cấu bộ truyền đai. Ưu điểm:

+ Đơn giản, dễ kiếm trên thị trường.

+ Hoạt động êm, chịu sốc tốt.

+ Kết cấu đơn giản, dễ bảo trì.

+ Giá thành thấp, tỷ số truyền lớn.

+ Hiệu suất bộ truyền thấp.

+ Tuổi thọ đai không cao.

+ Dùng với vật có tải trọng không quá lớn.

=> Dựa vào tiêu chí đặt ra thì lựa chọn phương án băng tải với cơ cấu bộ truyền đai.

3.3.2 Lựa chọn động cơ dẫn động cho băng tải.

Băng tải dẫn động bằng động cơ điện DC Ta có thể chọn động cơ theo các phương án sau:

Phương án 1: Động cơ DC Động cơ điện một chiều là máy điện chuyển đổi năng lượng điện một chiều sang năng lượng cơ

Hình 3.6: Động cơ DC 24V. Động cơ điện một chiều gồm các thành phần chính sau:

+ Phần tĩnh (Stato): Stato gọi là phần cảm gồm lõi thép bằng thép đúc, vừa là mạch từ vừa là vỏ máy Găn với stato là các cực từ chính có dây quấn kích từ.

+ Phần quay (Roto): Roto gọi là phần ứng bao gồm lõi thép, dây quấn ứng, cổ góp và chổi than.

Khi cho điện áp một chiều U vào hai dây chổi than tiếp xúc với hai phiến góp 1 và

2, trong dây quấn phần ứng có hai thanh dẫn có dòng điện nằm trong từ trường sẽ chịu lực tác dụng làm cho roto quay, chiều lực quay xác định theo quy tắc bàn tay trái Khi phần ứng quay được nửa vòng, vị trí hai thanh dẫn và hai phiến góp 1 và 2 đổi chỗ cho nhau, đổi chiều dòng điện trong các thanh dẫn và chiều lực tác dụng không đổi cho nên động cơ có chiều quay không đổi Khi động cơ quay, các thanh dẫn cắt từ trường và sinh ta sức điện động cảm ứng Eư trong dây quấn roto.

Phương trình điện áp động cơ điện một chiều: U = Eư + Rư Iư Ưu điểm:

+ Đáp ứng chậm trong khi mạch điều khiển lại phức tạp.

+ Phải có mạch phản hồi thì mới nâng cao được độ chính xác.

Phương án 2: Động cơ bước.

Hình 3.7: Động cơ bước. Động cơ bước thực chất là một động cơ đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển động của roto và có khả năng cố định roto vào những vị trí cần thiết Động cơ bước làm việc được là nhờ có bộ truyền mạch điện tử đưa ra các tín hiệu điều khiển vào stato theo một thứ tự và tần số nhất định Tổng số góc quay của rotto tương ứng với số lần chuyển mạch, cũng như chiều quay và tốc độ quay của roto, phụ thuộc vào thứ tự chuyển đổi và tần số chuyển đổi Khi một xung điện áp đặt vào cuộn dây stato (phần ứng) của động cơ bước thì roto (phần cảm) của động cơ bước sẽ quay đi một góc nhất định, góc ấy là một bước quay của động cơ Khi các xung điện áp đặt vào các cuộn dây phần ứng thay đổi liên tục thì roto sẽ quay liên tục. Ưu điểm: Điều khiển vị trí tốc độ chính xác, không cần mạch phản hồi.

Thường sử dụng trong các loại mách CNC.

=> Với yêu cầu tải hàng có độ chính xác không quá cao, giá thành hợp lý và dễ điều khiển nên em chọn động cơ DC có gắn encoder để làm động cơ dẫn động cho băng tải.

Lựa chọn camera

Dựa trên phương án xây dựng 1 hệ thống phân loại sản phẩm tự động do đó cẩn một camera để thực hiện chức năng thu nhận ảnh Việc lựa chọn camera cho mô hình sẽ dựa trên tiêu chí sau:

 Camera có độ phân giải cao do điều kiện ánh sáng không ổn định lớn hơn 5MP.

 Camera có thể chụp ảnh màu vì trên khối hàng có rất nhiều màu và việc căn chỉnh dựa vào đường line cũng có rất nhiều màu.

 Tốc độ ghi hình lớn hơn 10 FPS vì camera cần chụp được ảnh lúc khối hàng đang di chuyển.

 Có khả năng focus để hạn chế bị nhòe ảnh lúc khối hàng đang chuyển động.

 Giá thành phù hợp với mô hình.

Phương án 1: Dùng camera công nghiệp. Ưu điểm:

+ Tốc độ ghi hình cao ( thường là 30 FPS ).

+ Độ phân giải cao 8MP ghi hình chuẩn 1920x1080 (1080p) + Tản nhiệt tốt.

+ Chụp hình ổn định do được chuẩn hóa.

+ Có các camera chuyên dụng cho từng ứng dụng ví dụ như Area camera,linescan camera.

+ Cần board xử lý ảnh để nhận ảnh hoặc cần phần mền chuyên dụng để lấy được thông tin ảnh.

Hình 3.9: Webcam Logitech. Ưu điểm:

+ Nhỏ gọn, dễ lắp đặt lên khung.

+ Dễ tìm kiếm trên thị trường.

+ Có độ phân giải 5MP ghi hình chuẩn 1080p.

+ Tốc độ ghi hình đạt 30fps.

+ Không cần board nhận ảnh hay phần mềm chuyên dụng.

+ Dễ bị mất nét ảnh.

+ Chỉ phù hợp với mô hình nhỏ vì không có khả năng chống nhiễu tốt.

=> Dựa trên quy mô mô hình và giá thành không quá lớn nhưng vẫn đáp ứng đủ các tiêu chí phục vụ đề tài nên em lựa chọn Webcam 2D logitech.

Lựa chọn cánh tay robot

Thực tế ngày nay có rất nhiều loại robot khác nhau tùy theo nhu cầu sử dụng người ta có thể phân loại robot theo các hướng như sau :

+ Theo không gian làm việc.

Trong phạm vi đề tài, em sẽ chỉ tìm hiểu về một số dạng robot được ứng dụng phổ biến trong việc sử dụng để gắp và phân loại sản phẩm.

3.4.1 Robot nối tiếp ( Serial Robot ). Đây là dạng phổ biến nhất của robot công nghiệp Thường có cấu trúc giống cánh tay người, là một chuỗi các khâu rắn liên kết với nhau bằng các khớp (joints) có dạng như vai, khuỷu tay và cổ tay Robot này có ưu điểm chính là vùng làm việc rộng và rất linh động.

Hình 3.10: Serial Robot hãng ABB.

Bộ phận chính của một robot công nghiệp :

+ Cấu trúc cơ khí : Gồm các khâu (links) và các khớp (Joins).

+ Cơ cấu chấp hành : Tác động tại các khớp làm tay máy chuyển động.

+ Cảm biến : Dùng để đo lường các trạng thái của tay máy và trạng thái của môi trường xung quanh.

+ Hệ thống điều khiển : Dùng để điều khiển và giám sát hoạt động của tay máy. Nhược điểm :

+ Đặc điểm cố hữu là độ vững thấp để tạo ra một cấu trúc động học.

+ Sai số tích lũy được khuếch đại từ khâu trước sang khâu sau.

+ Do phải mang và chuyển động cùng các bộ dẫn động ( động cơ ) có khối lượng lớn nên tốc độ làm việc không cao.

Robot loại này yêu cầu phải có ít nhất 6 BTD trong không gian (ứng với 6 BTD của đối tượng làm việc) để có thể tiếp cận được đối tượng ở vị trí bất kì với khả năng định hướng trong miền làm việc của nó Chính vì vậy chủ yếu là robot có 6 khớp, như các loại robot Stanford (RRTRRR), KUKA (6R), Elbow (6R), Puma (6R) …với ứng dụng chính trong công nghiệp hiện nay là lắp ráp, vận chuyển phôi và sản phẩm trong quá trình sản xuất.

3.4.2 Robot song song ( Paralel robot).

Loại robot song song điển hình thường có bàn chân di chuyển được nối với giá cố định bằng một số nhánh hay chân Do vậy, các khâu chỉ chịu lực kéo hoặc lực nén, không phải chịu uốn Thường số chân chính bằng số BTD, các chân được điều khiển bằng một nguồn phát động đặt trên giá cố định hoặc ngay trên thân của chân.

Hình 3.11: Parallel Robot của hãng ABB. Ưu điểm :

+ Khả năng chịu tải lớn vì tải trọng được chia cho các chân.

+ Tốc độ cao hơn và chính xác hơn, cấu trúc gọn nhẹ hơn.

+ Do tốc độ cao và chính xác cao nên có thể ứng dụng gắp sản phẩm để đóng gói rất nhanh và năng suất cao.

Nhược điểm : Tuy nhiên vì gặp phải một số trở ngại như không gian làm việc nhỏ, các chân có thể va chạm lẫn nhau cũng như việc thiết kế rất khó khăn.

3.4.3 Robot tọa độ trụ ( Cylindrical Robot ).

Trong ba chuyển động chính , robot được trang bị hai chuyển động tịnh tiến và một chuyển động quay.

Sử dụng trong công nghệ lắp ráp, cầm nắm các máy công cụ, hàn điểm Loại robot này, trục có dạng hệ tọa độ trụ.

Hình 3.12: Cylindrical Robot. Ưu điểm :

+ Có khả năng chuyển động ngang và sâu vào trong các máy sản xuất. + Cấu trúc theo chiều dọc của máy để lại nhiều khoảng trống cho sàn.

+ Kết cấu vững chắc, có khả năng mang tải lớn.

+ Khả năng lặp lại tốt.

Nhược điểm : Nhược điểm duy nhất là giới hạn tiến về phía trái và phía phải do kết cấu cơ khí và giới hạn các kích cỡ của cơ cấu tác động theo chiều ngang.

3.4.4 Robot tọa độ cầu ( Spherical/Polar Robot ).

Robot loại này được bố trí có ít nhất hai chuyển động quay trong ba chuyển động định vị Dạng robot này là dạng sử dụng điều khiển servo sớm nhất. Được sử dụng để cầm nắm các dụng cụ, hàn điểm, đánh bóng, hàn hơi hoặc hàn theo cung Trục của robot tạo thành hệ tọa độ cầu.

Hình 3.13: Robot tọa độ cầu.

3.4.5 Robot tọa độ vuông góc ( Cartesian robot/ Gantry Robot ).

Robot hoạt động trong hệ tọa độ này được minh họa như hình vẽ gồm ba chuyển động định vị X,Y,Z theo các trục tọa độ vuông góc:

Loại robot này thích hợp với công việc gắp vật thể và đặt chúng vào vị trí khác Các ứng dụng có thể là đóng gói, lắp ráp máy móc, cầm nắm các máy công cụ hoặc hàn theo hình cung Đối với loại robot này, cánh tay được tạo thành từ 3 khớp trượt mà trục của chúng trùng với hệ trục tọa độ Đê-các.

Hình 3.14: Robot tọa độ vuông góc. Ưu điểm :

+ Không gian làm việc lớn, có thể dài đến 20m.

+ Đối với loại gắn trên trần sẽ tiết kiệm diện tích sàn cho các công việc khác.

+ Hệ thống điều khiển đơn giản.

Nhược điểm : Việc thêm vào các loại cần trục hay các loại thiết bị vận chuyển vật liệu khác trong không gian làm việc của robot không được thích hợp lắm.Việc duy trì vị trí của các cơ cấu dẫn động và các thiết bị dẫn động điện đối với loại trên đều gặp nhiều trở ngại.

3.4.6 Robot toàn khớp bản lề.

Loại cấu hình dễ thực hiện nhất được ứng dụng cho robot là dạng khớp nối bản lề và kế đó là dạng ba trục thẳng, gọi tắt là dạng SCARA (Selective Compliance Assembly RobotArm) Dạng này và dạng tọa độ trụ là phổ cập nhất trong ứng dụng công nghiệp bởi vì chúng cho phép các nhà sản xuất robot sử dụng một cách trực tiếp và dễ dàng các cơ cấu tác động quay như các động cơ điện, động cơ dầu ép, khí nén Được sử dụng để gắp nhả vật, đóng gói, lắp ráp hay cầm nắm máy công cụ Robot có 2 khớp xoay song song với nhau cho phép thao tác trên mặt phẳng.

Hình 3.15: Scara Robot. Ưu điểm :

+ Mặc dù chiếm diện tích làm việc ít song tầm vươn khá lớn, tỉ lệ kích thước - tầm vươn được đánh giá cao.

+ Về mặt hình học, cấu hình dạng khớp nối bản lề với ba trục quay bố trí theo phương thẳng đứng là dạng đơn giản và có hiệu quả nhất trong trường hợp yêu cầu gắp đặt và đặt chi tiết theo phương thẳng Trong trường hợp này bài toán tọa độ hoặc quỹ đạo chuyển động đối với robot chỉ cần giải quyết ở hai phương x và y còn lại bằng cách phối hợp ba chuyển động quay quanh ba trục song song với trục z.

Nhược điểm: Giới hạn không phương chuyển động của đầu tool, chỉ có thể gắp vật di chuyển dọc hoặc xoay theo trục z.

=> Dựa trên yêu cầu đặt ra của đề tài cần dùng đến tay máy có khả năng chuyển động linh hoạt, không gian làm việc lớn và gắp được vật có khối lượng tương đối cao thì em lựa chọn loại tay máy Serial robot với 6 bậc tự do.

Lựa chọn cơ cấu gắp hàng cho robot

Phương án 1: Gắp bằng tay kẹp.

Hình 3.16: Tay gắp robot. Ưu điểm:

+ Nhỏ gọn, dễ lắp trên khung.

+ Dễ tìm thấy trên thị trường.

+ Nếu tính toán không kỹ dễ dẫn đến bóp méo sản phẩm.

+ Hiệu quả với vật có hình dạng ổn định.

Phương án 2: Gắp bằng giác hút chân không.

Hình 3.17: Giác hút chân không. Ưu điểm:

+ Nhỏ gọn dễ lắp đặt trên Robot.

+ Dễ dàng tìm thấy trên thị trường.

+ Khi hút sẽ không làm bóp méo sản phẩm.

+ Thích hợp với các sản phẩm có bề mặt phẳng hoặc không quá cong.

=> Dựa trên nhu cầu về sản phẩm là hàng hóa hình hộp chữ nhật có kích thước thay đổi nên em sẽ lựa chọn phương án 2 là dùng giác hút chân không để gắp vật.

Lựa chọn bộ điều khiển

Phương án 1: Dùng vi điều khiển.

Hình 3.18: Mạch điều khiển Arduino. Ưu điểm:

+ Giá thành rẻ, dễ dàng tìm kiếm và thay thế.

+ Có tích hợp sẵn các modun phù hợp cho điều khiển động cơ và đọc cảm biến.

+ Kết nối với máy tính và nạp chương trình dễ dàng.

+ Khả năng chống nhiễu và độ chính xác không cao.

+ Chỉ áp dụng cho các mô hình nhỏ, lẻ.

Hình 3.19: PLC mitsubishi. Ưu điểm:

+ PLC là thiết bị dùng trong công nghiệp với nhiều đặc tính thiết kế để hạn chế nhiễu trong các nhà xưởng, công ty.

+ Sử dụng ngôn ngữ lập trình cấp cao như Ladder, SFC, ST.

+ PLC hỗ trợ debug tốt hơn vì khi hoạt động có thể hiển thị các biến hoạt động người dùng có thể theo dõi và chỉnh sửa.

+ PLC hỗ trợ người dùng truy cập tới thanh ghi từ bên ngoài do đó dễ dàng trong việc cài đặt giá trị.

+ Có tính ổn định cao, dễ dàng mở rộng Input và Ouput thông qua các modun mở rộng.

+ Giá thành tương đối cao.

+ Kích thước PLC lớn hơn rất nhiều so với 1 bộ vi điều khiển.

+ Thay thế linh kiện khó khăn và giá thành cao.

=> Với mục đích đề tài muốn nghiên cứu và có thể đọc được tốc độ băng tải phục vụ đồng bộ tốc độ giữa tay máy và băng tải nên em sẽ chọn vi điều khiển làm bộ điều khiển tốc độ băng tải trong phạm vi đề tài.

PHÂN TÍCH ĐỘNG HỌC VÀ ĐIỀU KHIỂN TAY MÁY

Sơ lược về Robot Nachi MZ07

Nachi MZ07 là Robot nối tiếp 6 bậc tự do được phát triển và phân phối bởi hãng Nachi Robotics (Nhật Bản) Thuộc dòng robot công nghiệp phát triển cho các ứng dụng ngắn gọn Tải trọng tối đa cho phép là 7 kg Nachi MZ07 sử dụng bộ điều khiển CFG của hãng Nachi Robotics.

Hình 4.2: Không gian làm việc của Nachi MZ07.

Bảng 4.1: Các thông số cơ bản của Robot Nachi MZ07.

Động học thuận Robot

Phân tích động học thuận là đi tìm biểu diễn toán học vị trí và hướng của tay máy khi đã biết trước giá trị của các khớp góc.

Tay máy NACHI MZ07 gồm 6 khớp xoay với hệ trục tọa độ được đặt như sau:

Hình 4.3: Hệ tọa độ tay máy Nachi MZ07.

Bảng 4.2: Thông số Denavit-Hartenberg.

Bảng 4.3: Kích thước Robot Nachi MZ07.

Ma trận chuyển đổi từ khớp 𝑖 sang khớp 𝑖 – 1 có dạng tổng quát:

T=[ cos sin 0 0 θ θ i i −sin cos sin θ θ i 0 i cosα α cos i α i i −cos sin θ i θ sin cos i sin 0 1 α α α i i i α d α i i cos i sin θ θ i i ] i i−1 Đặt sin θ i =s i , cos θ i =c i , sin (θ ¿¿ i+θ j )=s ij ¿ , cos (θ¿¿ i +θ j )=c ij ¿

Sử dụng chương trình MATLAB để tính toán các ma trận, ta có:

Ma trận chuyển đổi tọa độ từ khâu tác động về tọa độ gốc tay máy:

Từ ma trận trên ta có: x=d 6 r 13 +p x y=d 6 r 23 +p y z=d 6 r 33 +p z

Vậy tọa độ khâu tác động cuối có thể được biểu diễn bởi ma trận:

Như vậy bài toán động học thuận đã được giải xong.

Động học ngược robot

Phân tích động học ngược là bài toán đi tìm và biểu diễn toán học giá trị các khớp góc khi biết trước được vị trí và hướng của khâu tác động cuối Việc phân tích động học ngược có tính phi tuyến cao, nhiều nghiệm thỏa mãn và nhiều trường hợp ngoại lệ Có nhiều phương pháp giải động học ngược khác nhau, dưới đây trình bày kỹ thuật Inverse Transformation bằng cách nhân lần lượt các ma trận nghịch đảo ( i−1 i T

Sử dụng MATLAB để tính các ma trận, ta thu được:

Tạm thời bỏ qua tác động của khâu tịnh tiến d 6:

- j, k lần lượt là chỉ số của phần tử hàng j cột k của ma trận V n

- M có giá trị phụ thuộc vào k:

Nhân ma trận nghịch đảo ( 1 T

Nhân ma trận nghịch đảo ( 2 T

Nhân ma trận nghịch đảo ( 3 T

Nhân ma trận nghịch đảo ( 4 T

Nhân ma trận nghịch đảo ( 4 T

Nhân ma trận nghịch đảo ( 5 T

[ M Y X Z ] = [ s c 1 1 U U 211 211 U − + 0 221 s c 1 1 U U 421 421 s c 1 1 U U 212 212 U −c + 0 222 s 1 1 U U 422 422 s c 1 1 U U 213 212 U −c + 0 223 s 1 1 U U 423 423 c s 1 1 U U U 214 214 214 1 + + + a a d 1 1 1 c s 1 1 ] θ 1 được tìm khi giải hệ V 014 =U 114 và V 024 =U 124 :

Giải θ 2 : θ 2 được tìm khi giải V 1 =U 2 :

Chuyển a 2 c 2 qua bên trái mỗi phương trình, bình phương hai vế cộng lại: c 2 V 114 +s 2 V 124 =a 2 2 −d 4 2 −a 3 2 +V 114 2 +V 124 2

2a 2 Đặt V 114=r sinφ và V 124=r cosφ(r>0), ta có: r=√ V 114

Thế vào công thức: cos( θ 2−φ)= a 2

Tương tự thì θ 3 được tìm khi giải V 2=U 3 :

{ V V 224 214 =−d =d 4 4 s 3 s +a 3 +a 3 c 3 c 3 3 Đặt: a 3=r sinφ và d 4=r cosφ(r>0) ¿>r=√ a 3 2 +d 4 2 và φ =arctan 2 (a 3 , d 4 )

{ −c s 3 3 co sφ+ cosφ+ c s 3 3 sinφ=sin sinφ=−cos ( φ + ( φ+ θ 3 ) θ = 3 ) V = r 214 V r 224 ¿>θ 3 =arctan 2( V 214 ,−V 224 )−arctan 2(a 3 , d 4 )

Tương tự thì θ 4 được tìm khi giải V 3=U 4 :

Nếu s 5=0, không định nghĩa được θ 4, lúc đó giá trị V 313 và V 323 có thể sử dụng được là:

Tương tự θ 5 được tìm khi giải V 4 =U 5 :

Tương tự θ 5 được tìm khi giải V 5 =U 6 :

Trong quá trình giải động học ngược đã không xét đến d6 (chỉ ảnh hưởng lên vị trí của end-effector), từ phương trình động học thuận đã giải ở phần 1, vị trí của end-effector [q x q y q z ] T được xác định từ vị trí của cổ tay máy [x y z] T như sau:

Hướng của end-effector được mô tả bằng 3 góc roll – pitch – yaw được ký hiệu lần lượt là ϕ r , ϕ p , ϕ y là các góc xoay hệ trục tọa độ end-effector lần lượt theo các trục x,y và z của gốc tọa độ robot.

Cho ϕ r , ϕ p , ϕ y ta có thể xác định được ma trận R 6:

R 6 =[ r r r 11 21 31 r r r 12 22 32 r r r 13 23 33 ] Đặt: s r =sinϕ r ⁡; c r =cosϕ r s p =sinϕ p ; c p =cosϕ p s y =sinϕ y ⁡; c y =cosϕ y Đồng hóa các vị trí của phương trình ma trận, ta thu được giá trị các góc roll, pitch, yaw:

Kiểm tra động học ngược

Để kiểm tra động học ngược, ta cho trước tọa độ điểm tại một vị trí xác định, đọc giá trị tọa độ và các góc từ Tech pendant sau đó kiểm tra lại bằng Matlab các công thức đã xác định ở 4.3 Bảng 4.2 bên dưới cho giá trị các góc khớp thực và giá trị tính toán được:

Tọa độ (x, y, z, roll, pitch, yaw)

Bảng 4.2: Kết quả kiểm nghiệm động học ngược Robot Nachi MZ07.

Kết quả kiểm nghiệm cho thấy tọa độ tính toán sai số nhỏ => Kết quả động học nghịch là đáng tin cậy.

CALIB CAMERA VÀ XỬ LÝ DỮ LIỆU

Cấu tạo và thông số kỹ thuật Camera

Trong phạm vi đề tại luận văn sử dụng Webcamera Logitech 2D có các thông số như sau:

+ Độ phân giải camera đạt HD 1080p.

+ Loại tiêu cự: Lấy nét tự động.

+ Micro tích hợp: Đơn âm.

Calib thông số đầu tool

TCP (Tool Center Point) trong Robot được định nghĩa là là điểm trung tâm tiếp xúc với vật cần thao tác.TCP là tâm của hệ tọa độ tool được gắn với Robot TCP là điểm được Robot dùng để di chuyển trong không gian, ví dụ khi muốn Robot di chuyển theo đường thẳng thì các khớp của của Robot sẽ chuyển động sao cho TCP di chuyển trong không gian để tạo thành một đường thẳng.

Hình 5.2: TCP trong robot. Đề tài có sử dụng thêm đầu tool là một cơ cấu tool hút nên cần hiệu chỉnh đầu tool để có thể đưa tọa độ của đầu tool về tọa độ của Robot Ma trận chuyển tọa độ như sau:

Các giá trị x, y, z là các thông số chuyển dịch của đầu công tác so với vị trí tâm của khớp thứ 6 của cánh tay robot Các giá trị này có được sau quá trình calibration đầu công tác bằng cách :

+ Chọn một điểm cố định, mà xung quanh điểm đó ta sẽ tiến hành cân

+ Di chuyển robot xung quanh vị trí đó 10 lần với các thông số 6 khớp (

+ Sử dụng tính năng Tool Length Setting của robot để tìm thông số (x, y, z) trong ma trận tool 6 T.

+ Kết quả calibration đầu công tác: x=0,3mm ; y=1,1mm ; z 0,6mm ¿>T= tool 6 ¿[ 1 0 0 0 1 00 0 1 200,60,3 1,1

Ma trận chuyển tọa độ từ đầu công tác về khâu cơ sở được tính như sau:

Tìm ma trận chuyển đổi pixel ảnh về tọa độ Robot

Trong đề tài khi sử dụng camera 2D xử lý ảnh sẽ trả về tọa độ pixel và hướng của đối tượng Tuy nhiên để điều khiển đầu tool đến chính xác được tọa độ cần đề hút vật ta cần phải thực hiện phép chuyển đổi từ tọa độ pixel đọc được của camera thành tọa độ robot.

Một điểm 3 chiều khi được chuyển về tọa độ Robot sẽ được chuyển đổi theo ma trận: robot P

Trong đề tài sử dụng camera và quá trình xử lý ảnh sẽ trả về tọa độ pixel nên ta sẽ chuyển đổi về tọa độ robot để Robot có thể hiểu được giá trị này. robot P

+ robot P : Là tọa độ của vật đối với robot.

+ checker robot T : Là ma trận chuyển đổi từ hệ tọa độ bàn cờ sang hệ tọa độ của robot.

+ checker P : Là tọa độ của pixel hình ảnh trong hệ tọa độ bàn cờ.

Khi calib thông số đầu tool thành công, ta sủ dụng bàn cờ để tiến hành chuyển tọa độ của pixel ảnh về tọa độ robot bằng cách sử dụng bàn cờ và xác định tọa độ bàn cờ trong tọa độ robot Điểm đầu tiên (P1) sẽ là gốc của bàn cờ theo quy ước hiệu chỉnh máy ảnh, các điểm thứ 2 (P2) và thứ 3 (P3) là các điểm nằm trên trục x, y tương ứng của bàn cờ.

Hình 5.3: Hình ảnh bàn cờ dùng để calib camera.

Tọa độ bàn cờ sẽ được tính theo công thức sau:

⃗z c h ecker = robot ¿ robot ⃗x c h ecker × robot ⃗y ch ecker ¿

+ P 1: Là gốc của bàn cờ.

+ P 2: Là điểm nằm trên trục X.

+ P 3: Là điểm nằm trên trục Y.

Ma trận chuyển đổi từ tọa độ bàn cờ sang tọa độ robot: c h ecker T robot

=[ robot ⃗ x 0 c h ecker robot ⃗ y 0 c h ecker robot ⃗ z 0 c h ecker P 1 1 ]

Hiệu chỉnh camera

Để Robot có thể di chuyển tới chính xác điểm trên tọa độ bàn cờ thì ta cần chuyển tọa độ pixel ảnh trên bàn cờ về tọa độ robot và hiệu chỉnh camera là quá trình chuyển tọa độ pixel ảnh trên bàn cờ về tọa độ robot và so sánh với các giá trị đã biết trước đó trên bàn cờ để xác minh tính chính xác.

Hình 5.4: Phép chiếu cơ bản.

Công thức chuyển đổi từ tọa độ pixel ảnh về tọa độ X, Y, Z của Robot: s [ u 1 v ] = [ f 0 0 x f 0 0 y c c 1 x y ] [ r r r 11 21 31 r r r 12 22 32 r r r 13 23 33 t t t 1 2 3 ] [ Y X Z 1 ]

+ s : Là hệ số tỉ lệ Chọn s= 1.

+ u , v : Là tọa độ pixel của điểm ảnh.

+ [ f 0 0 x f 0 0 y c c 1 x y ] : Là ma trận thông số nội của camera.

+ [ r r r 11 21 31 r r r 12 22 32 r r r 13 23 33 t t t 1 2 3 ] : Là ma trận thông số ngoại của camera.

+ X, Y, Z : Là tọa độ pixel sau khi được chuyển về tọa độ Robot.

Sau khi biến đổi, công thức trên có dạng:

+ R: là ma trận thông số nội.

+ A, t: là các thành phần trong ma trận thông số ngoại, với A là ma trận xoay của camera so với hệ tọa độ bàn cờ, t là ma trận chuyển đổi từ camera về hệ tọa độ bàn cờ.

Thực hiện quá trình calib camera bằng MATLAB:

+ Dùng function “calib” để lấy các ảnh đã được chụp để tiến hành calib từ computer.

Hình 5.5: Ảnh bàn cờ được đọc từ Matlab.

+ Chọn 4 điểm tại các góc của bàn cờ để tiến hành xác định các ô bàn cờ.

Hình 5.6: Các ô vuông bàn cờ đã xác định.

+ Thực hiện tương tự với các hình còn lại để MATLAB tính toán ra ma trận thông số nội của camera.

Hình 5.7: Xuất ma trận thông số nội bằng matlab.

+ Sau khi có được ma trận thông số nội, tiến hành đặt bàn cờ lên bề mặt cần chuyển từ tọa độ pixcel về tọa độ robot để tiến hành tìm ma trận thông số ngoại.

Hình 5.8: Hình ảnh được dùng để tìm ma trận thông số ngoại.

+ Tương tự như tìm ma trận thông số nội sau khi lấy hình ta sẽ lấy 4 góc của bàn cờ thì dùng MATLAB để tính toán ma trận thông số ngoại (gồm 2 thành phần Tc_ext vàRc_ext).

Hình 5.9: Kết quả xác định ô bàn cờ sau khi chọn 4 góc bàn cờ.

+ Sử dụng MATLAB tính toán ra ma trận thông số ngoại.

Hình 5.10: Kết quả ma trận thông số ngoại trả về từ matlab.

Đọc giá trị từ Encoder

Encoder hay còn gọi là Bộ mã hóa quay hoặc bộ mã hóa trục, là một thiết bị cơ điện chuyển đổi vị trí góc hoặc chuyển động của trục hoặc trục thành tín hiệu đầu ra analog hoặc kỹ thuật số Encoder được dùng để phát hiện vị trí, hướng di chuyển, tốc độ… của động cơ bằng cách đếm số vòng quay được của trục.

Trong phạm vi luận văn đã dùng PIC18F4331 để đọc giá trị từ encoder nhằm tính toán và điều khiển tốc độ băng tải để đáp ứng nhu cầu xử lý ảnh và gắp vật một cách chính xác Giá trị encoder được gửi về máy tính thông qua cổng COM3 của máy tính sử dụng giao tiếp UART.

Hình 5.11: Kiểm tra đọc giá trị encoder được gửi về bằng phần mềm Hercules.

GIAO TIẾP VÀ ĐIỀU KHIỂN ROBOT

Tổng quan về giao tiếp Robot NaChi MZ07

Bộ điều khiển được sử dụng cho Robot Nachi MZ07 là CFD Controller Bộ điều khiển này được hãng Nachi Robotics hỗ trợ 2 phương thức giao tiếp là sử dụng thư viện OpenNR và Socket Communication.

Là một thư viện mạnh được hãng Nachi Robotics thiết kế dành riêng cho việc điều khiển Robot bằng máy tính Thư viện hỗ trợ nhiều tính năng như giám sát, điều khiển tọa độ Robot, giám sát Torque, kết hợp điều khiển, nhận và truyền dữ liệu từ một số ngoại vi bên thứ 3 như camera, cảm biến,… thư viện hỗ trợ các ngôn ngữ như C, C++, C# với các câu lệnh đơn giản, trực quan Tuy nhiên, để sử dụng được thư viện này cần có bản quyền cấp phép từ hãng và chỉ sử dụng được cho duy nhất một máy tính được chỉ định dựa trên địa chỉ MAC.

CFD Controller hỗ trợ thêm một phương thức giao tiếp cho người dùng tùy chỉnh là Socket Communication Socket Communication trên CFD Controller hỗ trợ cả 2 protocol là TCP và UDP Chức năng chính của Socket Communication trên CFD Controller là dùng để giám sát tọa độ, I/O, Torque,… bằng máy tính, nhưng có thể sử dụng giao thức này truyền nhận dữ liệu để điều khiển Robot.

Do giới hạn về bản quyền phần mềm nên đề tài sử dụng Socket Communication để truyền và nhận dữ liệu điều khiển Robot.

Giới thiệu về Socket Communication

Socket là một dạng giao diện lập trình ứng dụng (API – Application Programming Interface) Nó được giới thiệu lần đầu tiên trong ấn bản UNIX – BSD 4.2 dưới dạng các hàm hệ thống theo cú pháp ngôn ngữ C (socket(), bind(), connect(), send(), receive(), read(), write(), close(),…) Ngày nay, Socket hỗ trợ trong hầu hết các hệ điều hành như

MS Windowns, Linux và được sử dụng trong nhiều ngôn ngữ lập trình khác nhau như: C, C++, Python, Java, Visual Basic, Visual C++,… Có hai kiểu Socket:

+ Socket kiểu AF_UNIX chỉ cho phép giao tiếp giữa các quá trình trong cùng một máy tính.

+ Socket kiểu AF_INET cho phép giao tiếp giữa các quá trình giữa các máy tính khác nhau trên mạng.

Các khái niệm cần thiết:

Internet Protocol (IP) và Packet: IP là một giao thức truyền tải các gói (Packet) giữa các điểm IP sẽ sử dụng các địa chỉ IP (IP address) để nhận dạng các thiết bị đầu cuối Packet là gói dữ liệu được truyền tải, gồm 2 phần:

+ Header: Chứa các thông tin dùng để điều khiển như phiên bản (IPv4/Ipv6), độ dài dữ liệu, kiểu protocol (TCP, UDP, …), địa chỉ đích/nguồn, checksum,…

+ Body: Dữ liệu cần truyền đi (video, voice, string,…).

TCP/UDP: là những quy ước truyền nhận dữ liệu, giao thức trung gian nằm giữa

Application và IP, nằm trên IP:

+ TCP (Transmission Control Protocol): phát hiện các lỗi khi truyền tải dữ liệu của IP Khi hoàn thành việc nhận các gói dữ liệu nó sẽ sắp xếp lại và chuyển lên lớpApplication, nếu có một gói bị hỏng hoặc chưa được truyền, TCP sẽ yêu cầu gửi lại duy nhất gói đó, giúp giảm sự quá tải trong mạng Trong quá trình truyền tải dữ liệu đòi hỏi sự kết nối liên tục Do đó, TCP được gọi là giao thức đáng tin cậy (reliable) và hướng kết nối (connection-oriented) Ưu điểm về độ đáng tin cậy của TCP cũng chính là nhược điểm của nó trong tốc độ truyền dữ liệu chậm, không phù hợp truyền tải dữ liệu tức thời như VoIP hay Video stream.

+ UDP (Uer Datagram Protocol): truyền tải dữ liệu qua mạng thông qua các Datagram, khác với TCP, giao thức này không quan tâm việc dữ liệu có truyền đến đích và theo thứ tự hay không Thay vào đó, tốc độ của nó sẽ nhanh hơn TCP nhiều Vì thế UDP phù hợp với truyền tải dữ liệu không đòi hỏi sự an toàn, chính xác nhưng cần tốc độ cao như Video stream, VoIP, game online data Do không cần phải duy trì kết nối như TCP nên UDP được gọi là giao thức hướng kết nối (Connectionless hoặc Stateless).

Unicast, Broadcast, Multicast và Anycast: Mô hình phân loại dựa trên số điểm đầu cuối nhận được dữ liệu truyền đi đồng thời:

+ Unicast: truyền tải thông tin chỉ xảy ra giữa hai điểm Rất hạn chế trong truyền nhận dữ liệu giữa nhiều máy vì phải thiết lập nhiều kết nối và truyền nhiều lần.

+ Broadcast: truyền dữ liệu đến tất cả các điểm Rất lãng phí băng thông vì không phải điểm nào cũng cần dữ liệu.

+ Multicast: truyền dữ liệu đến một nhóm điểm được chỉ định là cần dữ liệu, không phải tất cả các điểm.

Như vậy, dễ dàng thấy TCP bị giới hạn trong Unicast, UDP ngược lại có thể thiết lập tất cả các mô hình trên Ngoài ra còn có mô hình Anycast, dữ liệu truyền đi giống như Broadcast hoặc Mulicast nhưng chỉ truyền đến điểm gần nhất.

Port Number: Để thực hiện giao tiếp, một trong 2 quá trình phải công bố số hiệu cổng socket mà mình đang sử dụng Mỗi cổng thể hiện một địa chỉ xác định trong hệ thống Ngoài số hiệu cổng, các điểm giao tiếp cần phải biết đến address của nhau (cùng số hiệu cổng nhưng khác address thì đích đến dữ liệu là khác nhau), các address có thể là IP address hoặc Domain address.

Hình 6.2: Mối liên hệ giữa Port và Address.

Số hiệu cổng được lưu trữ trong một số 16 bit (0 – 65535) Các cổng được chia thành 3 loại phạm vi:

Khi sử dụng các port cho mục đích truyền dữ liệu người dùng tự định nghĩa, nên tránh sử dụng các port đã được gắn chức năng sẵn.

Socket: làm một điểm kết thúc (endpoint) trong tiến trình truyền tải dữ liệu 2 chiều giữa hai socket Các thông tin socket phải bao gồm:

+ Address và Port cục bộ (của bản thân nó).

+ Address và Port kết nối (Client cần biết address của Sever nhưng Sever không cần quan tâm tới address của Client).

+ Giao thức: TCP, UDP, raw IP,…

Mô hình OSI và mô hình TCP/IP: Các mô hình mạng máy tính được thiết lập nhằm tạo ra các quy chuẩn chung trong giao tiếp máy tính.

Hình 6.3: Tương quan giữa mô hình TCP/IP và mô hình OSI.

+ OSI (Open Systems Interconnection): được đưa ra vào năm 1971, mục đích là để phá vỡ thế độc quyền của các hãng máy tính trong kết nối dữ liệu và tạo cơ sở cho việc chuẩn hóa cho lĩnh vực viễn thông, năm 1984 mô hình tham chiếu OSI được giới thiệu và theo tiêu chuẩn ISO/IEC 7498 – 1 Mô hình OSI gồm 7 phân lớp đảm nhiệm các nhiệm vụ khác nhau, bao gồm: Physical, Data – link, Network, Transport, Sestion, Presentation, Application Các lớp đảm nhiệm các nhiệm vụ khác nhau, có thể phối hợp tất cả các lớp hoặc một số lớp để tạo thành các kiểu truyền dữ liệu khác nhau.

+ TCP/IP: ra đời dựa trên đơn đặt hàng của Bộ quốc phòng Hoa Kỳ để chuẩn hóa mạng lưới truyền thông quốc phòng Mô hình này càng trở nên phổ biến trên thế giới. TCP/IP ngắn gọn hơn OSI, gồm 4 phân lớp: Network Interface, Internet, Transport, Application Có một vài biến thể của mô hình này (mô hình 5 lớp,…) để phù hợp với ứng dụng thực tế.

CFD Controller cung cấp giao tiếp Socket Communication dựa trên mô hình TCP/IP

Điều khiển Robot

Trong bộ điều khiển CFD, tồn tại hai loại chương trình, một là chương trình điều khiển hoạt động của robot gọi là Robot Language Program (RLP), hai là chương trình giám sát truyền nhận dữ liệu gọi là USERTASK.

Robot Language Program (RLP): Chương trình/hàm người dùng định nghĩa cho bộ điều khiển CFD biện dịch và chạy dựa trên các câu lệnh cung cấp sẵn như di chuyển robot, kích I/O, kích valve khí nén có sẵn trong robot, chạy internal PLC,…Do yêu cầu về giám sát và an toàn, RLP chỉ cho phép chạy tuần từ và chỉ chạy được duy nhất một RLP tại một thời điểm (việc gọi một RLP từ một RLP khác vẫn được xem như là việc chạy tuần tự một chương trình vì luồng điều khiển chỉ theo một hướng) cho đến khi RLP đó kết thúc mới cho phép chạy RLP khác.

USERTASK: Chương trình cho bộ điều khiển CFD biên dịch và chạy dựa trên các câu lệnh cung cấp sẵn ( trừ lệnh di chuyển cho robot,I/O,internal PLC) USERTASK được viết bằng robot language sau đó biên dịch sang dạng thực thi Chương trình chạy độc lập xung đột sẽ ưu tiên USERTASK có ưu tiên cao hơn Chức năng chính của các USERTASK dùng để tạo dao diện dám sát và xử lý lỗi trên teach pendant Các câu lệnh khởi tạo giao tiếp socket và truyền nhận dữ liệu chỉ có thể được gọi từ các USERTASK. Một số câu lệnh liên quan đến phương thức giao tiếp socket được sử dụng Cấu trúc các lệnh này được viết trong robot language.

Tên hàm Chức năng Thông số

SOCKCLOSE P1 Đóng socket P1: Socket number

SOCKBIND P1,P2 Tạo cổng chờ kết nối

P1: Socket number P2: Port number (1 đến 65535)

P1: Socket number P2: Socket wait number (1 đến 16)

P1,P2,P3,P4 Kết nối đến server socket

Truyền data dạng chuỗi P1: Socket number

Chương trình robot và USERTASK sử dụng chung các biến toàn cục, nên các biến này có thể dùng giao tiếp giữa hai loại chương trình trên.

Hình 6.2 Quá trình giao tiếp socket

Luận văn sử dụng Robot mà cụ thể là bộ điều khiển CFD dưới vai trò là server, khởi tạo socket và chờ kết nối từ client là máy tính.

Chương trình trên máy tính có nhiệm vụ xứ lý hình ảnh thu được từ camera, khởi tạo socket với vai trò là client và kết nối với server là bộ điều khiển CFD, gửi dữ liệu đến cho bộ điều khiển CFD hoặc nhận dữ liệu từ bộ điều khiển CFD để xử lý USERTASK dùng để khởi tạo socket trên bộ điều khiển CFD với vai trò là server và chờ kết nối từ client là máy tính, nhận và gửi dữ liệu về máy tính.

XỬ LÝ ẢNH

Tổng quan

Trong phạm vi đề tài sử dụng một camera 2D có độ phân giải Full HD để nhận dữ liệu hình ảnh vật di chuyển và xử lý dữ liệu ảnh dựa trên những đặc trưng của vật

Mục tiêu của quá trình xử lí ảnh là tìm được trọng tâm pixels, hướng, góc xoay của vật và đọc được dữ liệu từ mã QR gắn trên vật để phân loại dựa vào thông tin đã đọc được.

Do đó, việc sử dụng OpenCV (Thư viện Thị giác Máy tính Nguồn mở) là rất tiện lợi và đáp ứng được các mục đích xử lý ảnh Hình dưới đây cho thấy một sơ đồ khối của các tác vụ xử lý hình ảnh tổng thể:

Hình 7.1 Chương trình xử lý ảnh tổng quan.

Lọc màu

Thông thường, OpenCV đọc một hình ảnh trong không gian màu RGB và phương pháp phân đoạn đơn giản nhất là lập ngưỡng Từ một hình ảnh trong không gian màu RGB, được chuyển đổi sang màu xám và sau đó sử dụng thao tác phân ngưỡng để phát hiện Tuy nhiên, phương pháp này vẫn bị nhiễu quá nhiều cũng như phát hiện màu sắc không tốt vì chỉ sử dụng kênh xám Để trích xuất một đối tượng có màu, sử dụng không gian màu HSV và tạo ngưỡng ảnh HSV cho dải màu này là một phương pháp hiệu quả vì HSV dễ biểu diễn màu hơn không gian màu RGB. Đây là phương pháp:

 Chuyển đổi từ BGR sang không gian màu HSV.

 Tìm giá trị HSV đến ngưỡng.

 Định ngưỡng hình ảnh HSV để có dải màu trắng.

 Lọc vật thể màu trắng.

Hình 7.3: Hình ảnh chụp từ camera.

Hình 7.4: Hình sau khi lọc màu có nhiễu

Openning

Sau quá trình lọc màu, một phương pháp biến đổi hình thái được sử dụng để có được kết quả tốt hơn (loại bỏ nhiễu) trước khi phát hiện đường viền của đối tượng Các phép biến đổi hình thái được chọn vì nó thường được thực hiện trên ảnh nhị phân Hai toán tử hình thái cơ bản là openning và dilation Dạng openning chỉ là một tên gọi khác của erosion theo sau là dilation, và được sử dụng trong tình huống này vì nó là một cách hiệu quả để loại bỏ nhiễu.

Hình 7.5: Kết quả của lọc HSV

Hình 7.6: Kết quả của phương pháp Openning

Kết quả tốt hơn so với chỉ lọc HSV, ta có thể tìm được toàn bộ vùng trắng của mặt trước điều này rất có lợi trong việc tìm biên dạng cũng như tính toán các đặc tính của vật.

Tìm đường bao và tâm vật thể

Để tính toán trọng tâm của đối tượng và hướng, nhiệm vụ tìm đường bao phải được thực hiện Nhiệm vụ này có thể được giải thích đơn giản là một đường cong nối tất cả các điểm liên tục (dọc theo đường biên), có cùng màu hoặc cường độ Đường bao là một công cụ hữu ích để phân tích hình dạng, phát hiện và nhận dạng đối tượng Sử dụng hàm findContours () của OpenCV trả về danh sách tất cả các đường bao trong hình ảnh Từ kết quả của bước tìm đường bao, điều cần thiết là chỉ lấy được một đường bao từ hình ảnh Vì vậy, ý tưởng là sử dụng chu vi của đường viền để lựa chọn Với hàm arcLength () và thiết lập một phạm vi vùng, đường viền của đối tượng dễ dàng được chia nhỏ.

Hình 7.7: Kết quả của tìm tâm và đường bao vật thể.

Xác định vùng chứa và đọc dữ liệu QR code

Việc xác định vùng đọc mã QR sẽ được xác định bằng cách kết hợp điều kiện nằm trong vùng đường bao của vật thể và kết hợp với việc xác định các Finder pattern (hoa văn định vị) Sau đó sử dụng thư việc của python là “pyzbar” với function Decode để có thể đọc và giải mã được dữ liệu của mã QR.

Mã QR được xác định:

Hình 7.8: Ảnh mã QR được phát hiện.

Hình ảnh chạy thực nghiệm và kết quả trả về của quá trình xử lý ảnh:

Hình 7.9: Ảnh vật được phát hiện và xử lý bởi camera.

THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG

Giới thiệu

Giao diện người dùng là nơi diễn ra các tương tác giữa con người và máy móc Nó cho phép người dùng vận hành máy một cách hiệu quả để hoàn thành nhiệm vụ hoặc đạt được một mục tiêu cụ thể Chẳng hạn như tắt / bật hệ thống, đọc và truyền tải dữ liệu cho hệ thống.

Hình 8.1: Ví dụ về một giao diện guide điều khiển tay máy.

Thiết kế giao diện

Trong đề tài với mục đích điều khiển tay máy kết hợp với xử lý ảnh và đọc mã QR nên đã thiết kế một giao diện cho phép START / STOP tay máy kết hợp với các thanh trượt có thể điều chỉnh các thông số cần thiết để xử lý ảnh tốt hợp và có thêm vùng hiển thị thông tin vật thể và dữ liệu được phát hiện khi đọc mã QR trên vật thể.

Khối CONTROL PANEL : Cho phép người dùng điều khiển hệ thống hoạt động (START) , Dừng hệ thống (STOP) hoặc cho tay máy di chuyển về vị trí home để tiếp tục xử lý ảnh (HOME) Các thanh trượt HSV cho phép chỉnh giá trị HSV cho ảnh cần xử lý để phát hiện vật, các thanh trượt Srow, Erow cho phép điều chỉnh kích thước khung ảnh.

Khối CAMERA: Hiển thị ảnh vật được phát hiện và các tọa độ tâm, pixcel của vật.

Khối DATA: Hiển thị các thông tin liên quan đến trạng thái Robot (run / stop / home), trạng thái khí nén, trạng thái băng tải và các thông tin liên quan đến vật thể có trong mã QR code, current time.

Tổng quan Guide được sử dụng trong hệ thống:

TỔNG QUAN THỰC NGHIỆM, ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN

Tổng quan thực nghiệm

Hình dưới đây thể hiện tổng thể hệ thống của đề tài tại phòng thí nghiệm MITSUBISHI của trung tâm đào tạo SHTP Hệ thống bao gồm các thành phần sau:

 Cánh tay robot Nachi MZ07 với bộ gắp khí nén.

 Động cơ điều khiển tốc độ AC USM315-402W2

 Encoder và Vi điều khiển.

Hình 9.1: Tổng thể thực nghiệm. Định hướng của băng tải: Các mặt phẳng bên của băng tải được đặt song song với mặt phẳng YZ của robot Nachi.

Hướng hoạt động chính: Y + hướng trong robot Nachi.

Chiều quay của động cơ: Cùng chiều kim đồng hồ.

Encoder được gắn ở cuối băng tải để đọc vị trí của vật.

PC và bo mạch vi điều khiển được đặt gần Encoder.

Webcam HD Logitech C615 và máy tính được sử dụng trong luận văn này cho vai trò đọc và xử lý hình ảnh.

Đánh giá kết quả thực nghiệm và hướng phát triển

Trong xử lý ảnh đã được trình bày ở chương 7, thì ta thấy quá trình cho được kết quả khá tốt Tuy nhiên, trong một vài trường hợp khi ánh sáng thay đổi sẽ làm ảnh hướng đến quá trình lọc màu HSV lúc này ta lại phải tìm lại giá trị HSV sao cho tìm được vật.

Do đó để khắc phục điều này ta phải đảm bảo làm sao ánh sáng không bị thay đổi trong quá trình thực nghiệm Vì vậy quá trình này nên được thực hiện trong những nhà máy hoặc phòng thí nghiệm để đảm bảo sự ổn định.

Sau khi thiết lập ánh sáng môi trường, mẫu vật lớn được đặt ở tư thế ngẫu nhiên để kiểm tra các tác vụ xử lý hình ảnh và xác nhận kết quả là tọa độ (pixel ) và hướng Sau một số thử nghiệm, kết quả được thể hiện trong hình dưới đây:

Hình 9.2: Kết quả xử lý ảnh

Dữ liệu sau mỗi lần gắp sản phẩm sẽ được ghi lại vào các file txt và được biểu diễn thành đồ thị thể hiện tọa độ tâm tìm được dưới dạng pixcel và so sánh giữa tọa độ robot mong muốn với tọa độ robot đọc về khi robot di chuyển tới tâm của vật thể bằng matlab:

Hình 9.3: Đồ thị biểu thị tọa độ robot.

Kết quả cho Hệ thống tuy có thể vận hành khá tốt sau khi căn chỉnh ánh sáng và các thông số xử lý ảnh, tốc độ băng tải nhưng vẫn chưa hoạt động tốt trong môi trường có nhiều thay đổi về các thông số từ bên ngoài gây ảnh hưởng tới việc xử lý của camera.

Video kết quả thực nghiệm: https://youtu.be/bNR2FT8ro4w

Thực nghiệm mới chỉ test trong trường hợp có một sản phẩm chạy trên băng tải trong cùng một thời gian nhưng nếu để nhiều vật thể cùng một lúc sẽ gây ra lỗi và không thể phát hiện ra vật thể hoặc bị bỏ qua một hoặc nhiều vật thể khác.

=> Hướng phát triển cho vấn đề trên có thể sử dụng camera cố định hoặc thêm những cảm biến để xác định số lượng vật có trên băng tải.

Vì là sử dụng camera 2D nên hệ thống chỉ có thể phát hiện ra vật thể có những hình dạng khác nhau ( tam giác, tứ giác, …) và gắp đúng tâm của vật thể khi vật thể có chiều cao là như nhau gây ra hạn chế đối với những vật thể có chiều cao thay đổi.

=> Hướng phát triển có thể sử dụng đến camera 3D như Kinect để có thể phát hiện và xử lý được tất cả các vật thể khác nhau mà không bị giới hạn về chiều cao.

Ngày đăng: 27/05/2023, 23:12

w