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

Thiết kế, mô phỏng hệ thống phân loại sản phẩm ứng dụng Robot và xử lý ảnh

73 1 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 đề Thiết Kế, Mô Phỏng Hệ Thống Phân Loại Sản Phẩm Ứng Dụng Robot Và Xử Lý Ảnh
Tác giả Ngũ Thế Bảo
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 2021
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 73
Dung lượng 5 MB

Cấu trúc

  • CHƯƠNG 1 TỔNG QUAN (0)
    • 1.1 Đặt vấn đề (0)
    • 1.2 Mục tiêu đề tài (16)
    • 1.3 Giới hạn đề tài (16)
    • 1.4 Đối tượng nghiên cứu, phạm vi nghiên cứu (16)
      • 1.4.1 Đối tượng nghiên cứu (16)
      • 1.4.2 Phạm vi nghiên cứu (16)
    • 1.5 Phương pháp nghiên cứu (0)
    • 1.6 Giới thiệu nội dung (17)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (18)
    • 2.1 Định nghĩa robot (18)
    • 2.2 Phân loại Robot (18)
      • 2.2.1 Phân loại theo kết cấu (18)
      • 2.2.2 Phân loại theo điều khiển (20)
      • 2.2.3 Phân loại theo ứng dụng (21)
    • 2.3 Động học Robot (23)
      • 2.3.1 Động học thuận cánh tay Robot (23)
      • 2.3.2 Động học nghịch cánh tay Robot (25)
    • 2.4 Quy hoạch quỹ đạo (26)
    • 2.5 Các phương pháp truyền động cho cánh tay Robot (27)
    • 2.5 Tổng quan về xử lý ảnh (0)
      • 2.5.2 Những vấn đề cơ bản trong hệ thống xử lý ảnh (29)
    • 2.6 Phần mềm thiết kế (30)
  • CHƯƠNG 3 THIẾT KẾ MÔ HÌNH (32)
    • 3.1 Yêu cầu thiết kế (32)
    • 3.2 Thiết kế phần cứng (32)
      • 3.2.1 Lựa chọn mô hình Robot 4 bậc tự do (32)
      • 3.2.2 Thiết kế Robot 4 bậc tự do (33)
      • 3.2.3 Lựa chọn và tính toán các cơ cấu truyền động (38)
    • 3.3 Lựa chọn thiết bị (40)
  • CHƯƠNG 4: TÍNH TOÁN, KIỂM CHỨNG VÀ MÔ PHỎNG (46)
    • 4.1 Động học mô hình thiết kế (46)
      • 4.1.1 Đông học thuận cánh tay Robot (46)
      • 4.1.2 Động học nghịch cánh tay Robot (48)
    • 4.2 Kiểm chứng động học cánh tay Robot (50)
      • 4.2.1 Động học thuận (50)
      • 4.2.2 Động học nghịch (52)
    • 4.3 Thiết kế phần mềm (54)
      • 4.3.1 Xây dựng nguyên lý hoạt động (54)
      • 4.3.2 Thiết kế chương trình điều khiển bằng Matlab (54)
      • 4.3.3 Thiết kế chuyển động bằng Solidworks Motion (57)
      • 4.3.4 Thiết kế chương trình phân loại màu sắc trên Matlab (58)
  • CHƯƠNG 5: KẾT QUẢ ĐẠT ĐƯỢC (62)
    • 5.1 Mô hình robot 4 bậc tự do (62)
    • 5.2 Chức năng điều khiển điểm đầu cuối của robot (62)
    • 5.3 Chức năng nhận dạng và phân loại qua màu sắc (63)
    • 5.4 Chức năng mô phỏng trong môi trường thực tế ảo SolidWorks Motion (65)
  • CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (0)
    • 6.1 Kết luận (0)

Nội dung

TỔNG QUAN

Mục tiêu đề tài

Với đề tài “THIẾT KẾ, MÔ PHỎNG HỆ THỐNG PHÂN LOẠI SẢN PHẨM ỨNG DỤNG ROBOT VÀ XỬ LÝ ẢNH ”, mục tiêu đặt ra là:

- Thiết kế và lên bản vẽ mô hình robot 4 bậc tự do phục vụ thi công mô hình thật

- Tính toán động học hoàn chỉnh

- Sử dụng camera định vị trí và phân loại một số màu sắc

- Điều khiển, giám sát và mô phỏng hệ thống để kiểm định tính chính xác

- Mô phỏng chuyển động của hệ thống trong môi trường SolidWorks Motion

Giới hạn đề tài

Đề tài chủ yếu sử dụng mô phỏng động học trên các phần mềm, chưa thể thi công mô hình thực tế do tình hình khó khăn, đề tài cũng có mặt hạn chế là chưa dùng PLC để điều khiển cũng như hoàn thiện thành một hệ thống đồng bộ

Việc ứng dụng các bộ điều khiển như PID, bộ điều khiển Fuzzy một cách chuyên sâu cũng không được đưa vào hệ thống, các kỹ thuật này hiện nằm ngoài phạm vi của đề tài

Mô phỏng quá trình nhận diện màu sắc chỉ thực hiện độc lập, chưa có sự liên kết với Robot

Đối tượng nghiên cứu, phạm vi nghiên cứu

Thiết kế mô hình chi tiết của robot 4 bậc tự do trên SolidWorks

Giao diện điều khiển và lập trình mô phỏng Robot trên Matlab

Mô phỏng chuyển động của hệ thống trên SolidWorks Motion Định vị và phân loại sản phẩm dựa trên một số màu sắc dùng Matlab

Tìm hiểu các loại robot có thực trên thực tế, phân tích và tính toán chi tiết

Thiết kế mô hình robot 4 bậc tự do, điều khiển chính xác thông qua động học

Nghiên cứu quy hoạch quỹ đạo cho robot để robot hoạt động ổn định với cơ cấu đã thiết kế

Nghiên cứu ứng dụng xử lý ảnh, phân loại màu sắc mô phỏng phân loại trên Matlab

Hoàn chỉnh toàn bộ hệ thống Kết luận và rút ra kinh nghiệm cũng như hướng phát triển tương lai

Phần còn lại của đề tài có nội dung như sau:

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

Chương 2 trình bày tổng quan về định nghĩa robot, nguyên lý hoạt động, cơ sở thiết kế mô hình và liệt kê thiết bị được sử dụng

Chương 3: Thiết kế mô hình

Chương 3 trình bày cách thiết kế Robot 4 bậc tự do, tính toán cơ cấu truyền và lên dự toán các thiết bị, vật liệu xây dựng mô hình

Chương 4: Tính toán, kiểm chứng và mô phỏng

Chương 4 trình bày cách nguyên lý hoạt động, tính toán động học cho Robot, xây dựng giao diện mô phỏng động học cho Robot và mô phỏng nhận diện màu sắc

Chương 5: Kết quả đạt được

Chương 5 trình bày các kết quả đã đạt được thông qua quá trình thực hiện đề tài

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

Giới thiệu nội dung

Phần còn lại của đề tài có nội dung như sau:

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

Chương 2 trình bày tổng quan về định nghĩa robot, nguyên lý hoạt động, cơ sở thiết kế mô hình và liệt kê thiết bị được sử dụng

Chương 3: Thiết kế mô hình

Chương 3 trình bày cách thiết kế Robot 4 bậc tự do, tính toán cơ cấu truyền và lên dự toán các thiết bị, vật liệu xây dựng mô hình

Chương 4: Tính toán, kiểm chứng và mô phỏng

Chương 4 trình bày cách nguyên lý hoạt động, tính toán động học cho Robot, xây dựng giao diện mô phỏng động học cho Robot và mô phỏng nhận diện màu sắc

Chương 5: Kết quả đạt được

Chương 5 trình bày các kết quả đã đạt được thông qua quá trình thực hiện đề tài

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

CƠ SỞ LÝ THUYẾT

Định nghĩa robot

Robot, "Người máy" là một loại máy có thể thực hiện những công việc một cách tự động bằng sự điều khiển của máy tính hoặc các vi mạch điện tử được lập trình Robot là một tác nhân cơ khí, nhân tạo thường là một hệ thống cơ khí - điện tử

Cánh tay robot là một loại máy được lập trình sẵn nhằm thực hiện một công việc nào đó lặp đi lặp lại, tỉ mỉ, tốc độ làm việc cao và độ chính xác của cánh tay robot lớn gấp nhiều lần so với con người Nó hoạt động rất linh hoạt với cơ chế khớp ngón hệt như một con người Thay thế bàn tay của con người trong các công đoạn lắp ráp, sửa chữa, thay thế linh kiện siêu nhỏ trong nhà máy Cơ chế hoạt động của chúng dựa trên liên kết giữa bộ điều khiển và các khớp nối chuyển động

Robot công nghiệp là một cơ cấu máy có thể lập trình sẵn theo một trình tự nhất định và sử dụng mục đích phục vụ công việc lắp ráp, sản xuất hoặc chế biến sản phẩm, có khả năng làm việc một cách tự động không cần sự trợ giúp của con người Đặc biệt là trong những môi trường khắc nghiệt, độc hại và nguy hiểm.

Phân loại Robot

Robot có rất nhiều loại ví dụ: cánh tay Robot, Mobile Robot, Robot điều khiển từ xa,… Nên robot nói chung thì có nhiều cách phân loại tùy theo loại robot và cách sử dụng cho các mục đích khác nhau Nhưng nếu nói về cánh tay robot nói riêng thì nhìn chung robot có thể chia thành ba loại: theo kết cấu, theo phương pháp điều khiển và theo phạm vi ứng dụng của robot

2.2.1 Phân loại theo kết cấu

Theo kết cấu (hình học), người ta thường phân loại robot thành các loại: Descartes, Robot toạ độ trụ (cylindrical robot), Robot toạ độ cầu (spherical robot), SCARA

Tay máy kiểu tọa độ Descartes, còn gọi là kiểu chữ nhật, dùng 3 khớp trượt, cho phép phần công tác thực hiện một cách độc lập các chuyển động thẳng, song song với 3 trục toạ độ Vùng làm việc của tay máy có dạng hình hộp chữ nhật Do sự đơn giản về kết cấu nên độ vững chắc cao, độ chính xác được đảm bảo đồng đều trong toàn bộ vùng làm việc, nhưng ít khéo léo Vì vậy, tay máy kiểu Descartes được dùng để vận chuyển và lắp ráp

Hình 2.1: Tay máy tọa độ Descart

Tay máy kiểu tọa độ trụ khác với tay máy kiểu Descartes ở khớp đầu tiên dùng khớp quay thay cho khớp trượt Vùng làm việc của nó có dạng hình trụ rỗng Khớp trượt nằm ngang cho phép tay máy "thò" được vào khoang rỗng nằm ngang Độ cứng vững cơ học của tay máy trụ tốt, thích hợp với tải nặng, nhưng độ chính xác định vị góc trong mặt phẳng nằm ngang giảm khi tầm với tăng

Hình 2.2: Tay máy tọa độ trụ

Tay máy kiểu tọa độ cầu khác kiểu trụ do khớp thứ hai (khớp trượt) được thay bằng khớp quay Nếu quỹ đạo chuyển động của phần công tác được mô tả trong toạ độ cầu thì mỗi bậc tự do tương ứng với một khả năng chuyển động và vùng làm việc của nó là khối cầu rỗng Độ cứng vững của loại tay máy này thấp hơn 2 loại trên và độ chính xác định vị phụ thuộc vào tầm với Tuy nhiên, loại này có thể "nhặt" được cả vật dưới nền

Hình 2.3: Tay máy tọa độ cầu

SCARA được đề xuất lần đầu vào năm 1979 tại Trường đại học Yamanashi ( Nhật bản) dùng cho công việc lắp ráp Đó là một kiểu tay máy có cấu tạo đặc biệt, gồm 2 khớp quay và 1 khớp trượt, nhưng cả 3 khớp đều có trục song song với nhau Kết cấu này làm tay máy cứng vững hơn theo phương thẳng đứng nhưng kém cứng vững (Compliance) theo phương được chọn (Selective), là phương ngang Loại này chuyên dùng cho công việc lắp ráp (Assembly) với tải trọng nhỏ, theo phương thẳng đứng Từ SCARA là viết tắt của "Selective Compliance Assembly Robot Arm" để mô tả các đặc điểm trên Vùng làm việc của SCARA là một phần của hình trụ rỗng

2.2.2 Phân loại theo điều khiển

Có hai kiểu điều khiển robot: điều khiển vòng hở và điều khiển vòng kín

- Điều khiển hở dùng truyền bước động (động cơ điện hoặc động cơ thủy lực, khí nén, ) mà quãng đường hoặc góc dịch chuyển tỷ lệ với số xung điều khiển Kiểu này đơn giản, nhưng đạt độ chính xác khá thấp

Hình 2.5: Cấu trúc điều khiển vòng hở

- Điều khiển kín (điều khiển kiểu Servo): sử dụng tín hiệu phản hồi vị trí để tăng độ chính xác Có 2 cách điều khiển servo: điều khiển điểm-điểm và điều khiển theo đường (contour)

Hình 2.6: Cấu trúc điều khiển vòng kín

2.2.3 Phân loại theo ứng dụng

Từ khi mới ra đời robot công nghiệp được áp dụng trong nhiều lĩnh vực dưới góc độ thay thế sức người Nhờ vậy các dây chuyền sản xuất được tổ chức lại, năng suất và hiệu quả sản xuất tăng lên rõ rệt Ngày nay, Robot đã được ứng dụng vào rất nhiều trong đời sống củng như sản xuất:

Trong ngành cơ khí, robot được sử dụng nhiều trong công nghệ đúc, công nghệ hàn, cắt kim loại, sơn, phun phủ kim loại, tháo lắp vận chuyển phôi, lắp ráp sản phẩm…

Ngoài các phân xưởng, nhà máy, kỹ thuật robot cũng được sử dụng trong việc khai thác thềm lục địa và đại dương, trong y học, sử dụng trong quốc phòng, trong chinh phục vũ trụ, trong công nghiệp nguyên tử, trong các lĩnh vực xã hội

Hình 2.7: Robot láp ráp ô tô

Hình 2.8: Ứng dụng Robot trong nhà bếp-Robot rửa chén

Hình 2.9: Ứng dụng robot trong khai thác khoáng sản

Hình 2.10: Robot đóng gói trong ngành dược phẩm

Động học Robot

Để biểu diễn toán học mô hình robot, hệ trục tham chiếu thường gắn tại một điểm để từ đó có thể xác định mối quan hệ với robot Mỗi khâu của robot được gắn với một hệ trục tham chiếu nhằm mục đích bám theo vị trí, hướng của khâu và mô hình hóa toàn bộ hệ thống robot di chuyển trong không gian mà không quan tâm đến các lực xung quanh tác động Các cảm biến khớp đo góc quay đối với các khớp chuyển động quay hoặc đo khoảng cách trượt đối với các khớp chuyển động tịnh tiến cho phép bộ điều khiển tính toán giá trị điều khiển một cách chính xác để điều khiển các cơ cấu chấp hành

Việc tính toán ma trận vị trí và hướng từ các biến khớp cũng như mối quan hệ này theo chiều ngược lại được gọi là tính toán động học thuận, động học nghịch (còn được gọi là tính toán động học robot)

2.3.1 Động học thuận cánh tay Robot Động học thuận là quá trình tính toán vị trí và hướng của cơ cấu chấp hành cuối khi biết trước tất cả các giá trị biến khớp, mối quan hệ đó biểu diễn như hình 2.12 Để giải được bài toán này thì tuân thủ quy tắc Denavit-Hartenberg (D-H)

Hình 2.11: Cấu trúc động học thuận

Giả sử trong chuỗi động học của tay máy có n khâu, khâu thứ i nối khớp thứ i với khớp thứ i+1

Hình 2.12 Mô hình hóa khâu khớp robot Để mô hình hóa robot với sự biểu diễn D-H, việc đầu tiên cần làm là gắn hệ trục tham chiếu lên mỗi và mọi khớp xoay Tất cả mọi khớp được biễu diển theo trục Z Nếu khớp là khớp quay, trục Z sẽ được định hướng theo hướng dịch chuyển tạo ra sự quay theo quy tắc bàn tay phải Nếu khớp là khớp tịnh tiến, trục Z của khớp dọc theo hướng di chuyển Nếu gọi a biểu diễn khoảng cách đường vuông góc chung giữa trục Z n − 1 và Z n thì hướng của trục x n sẽ dọc theo hướng của đoạn a Hướng của trục y được xác định theo tam diện thuận mà hệ trục tham chiếu có được Từ đó có bảng thông số D-H

 là góc giữa x n − 1 và x n so với Z n − 1

Ma trận chuyển vị từ hệ i đến hệ i-1 được thể hiện ở công thức (2.1), với các thông số được xác định trong bảng D-H:

1 i − T = cos sin cos sin sin cos sin cos os cos sin sin

Ma trận chuyển vị của hệ từ hệ i đến hệ 0 được tính bằng cách nhân các ma trận chuyển vị ở từng khâu lại với nhau như công thức (2.2) như sau:

Kết quả của quá trình này thu được ma trận có dạng như công thức (2.3) như sau:

Trong đó R 3 3 x là ma trận xoay và P 3 1 x là ma trận biểu diễn vị trí của điểm đầu cuối so với tọa độ gốc

2.3.2 Động học nghịch cánh tay Robot

Bài toán động học nghịch là bài toán ngược lại của động học thuận Sự phức tạp của bài toán động học nghịch sẽ phụ thuộc vào cấu trúc của robot đó

Ví dụ,việc tìm lời giải động học nghịch của robot 3 bậc tự do sẽ đơn giản hơn rất nhiều so với robot 6 bậc tự do Nghĩa là robot càng có số bậc tự do cao thì việc tính toán sẽ càng phức tạp

Hình 2.13: Cấu trúc động học nghịch Để tìm được đáp số người thiết kế robot sử dụng một số phương pháp:

- Phương pháp đại số: Ưu điểm: Tìm đầy đủ các nghiệm nên không bị sót nghiệm

Nhược điểm: Nếu robot quá phức tạp việc tính toán hệ phương trình nhiều ẩn sẽ rất khó khăn

- Phương pháp hình học: Ưu điểm: Trực quan, dễ hình dung, dễ hiểu

Nhược điểm: Dễ bị sót nghiệm

- Phương pháp kết hợp đại số và hình học: Ưu điểm: Trực quan, dễ hình dung, dễ hiểu

Nhược điểm: Đòi hỏi cần có kiến thức chắc giữa đại số và hình học.

Quy hoạch quỹ đạo

Quy hoạch quỹ đạo là tạo các tín hiệu vào tham chiếu cho bộ điều khiển robot để robot di chuyển theo quỹ đạo mong muốn Quỹ đạo điểm-điểm là quỹ đạo đi qua hai điểm định trước trong thời gian xác định, quỹ đạo đường là quỹ đạo đi qua nhiều điểm theo một đường liên tục xác định trước Đề tài này sử dụng đa thức bậc ba tạo quỹ đạo cho robot

Muốn đầu công tác đi qua hai điểm xác định trong không gian, từ vị trí đầu và cuối của đầu công tác giải bài toán động học ngược, xác định các giá trị đầu và cuối cho các biến khớp q 0 =q t ( ) 0 , q f =q t ( ) f Xét cho một biến khớp, tìm biểu thức cho q t thỏa mãn điều kiện về vị trí (q) và vận tốc (v) ở thời điểm đầu và cuối Giá trị tại thời điểm t 0:

Từ phương trình (2.6) suy ra :

Nếu chọn vận tốc đầu và cuối là 0 ta được:

Các phương pháp truyền động cho cánh tay Robot

Bảng 2.1: Các phương pháp truyền động

Truyền động Hình ảnh Ưu điểm Nhược điểm

Trực tiếp động cơ tại các khớp

- Thiết kế mô hình đơn giản

- Dễ dàng điều khiển vì đặt trực tiếp tại các khớp, ít sai số hơn khi ta điều khiển

- Đặt động cơ tại khớp làm Robot bị ảnh hưởng bởi trọng lực

- Lựa chọn vật liệu thi công khó hơn

Dây đai - Giảm được sức nặng động cơ

-Dễ dàng tìm kiếm và thiết kế.

- Hao mòn sau thời gian gây ảnh hưởng tới độ chính xác của robot

-Phải thiết kế phù hợp: có hệ thống tăng đơ, nếu không sẽ rất khó để truyền động.

- Không cần đặt trực tiếp các động cơ ở các khớp

-Thiết kế khá khó khăn

Tổng quan về xử lý ảnh

cơ sở khác nhau nên người nghiên cứu xử lý ảnh cần phải trang bị các khiến thức như: xử lý tín hiệu chung, biến đổi Fourier, biến đổi Laplace,…ngoài những phép biến đổi trên chúng ta còn có mạng nơron nhân tạo để hỗ trợ cho quá trình phân tích và nhận dạng.

Hình 2.14: Sơ đồ các bước trong xử lý ành

2.5.2 Những vấn đề cơ bản trong hệ thống xử lý ảnh

Khái niệm về ảnh số: Ảnh số là tập hợp hữu hạn nhiều phần tử điểm ảnh với mức xám phù hợp để tạo nên ảnh gần giống với ảnh thật Số điểm ảnh là thành phần xác định độ phân giải của ảnh Ảnh có độ phân giải càng cao sẽ thể hiện rõ nét nó trở nên thực tế và sắc nét hơn Điểm ảnh (Picture Element):

Một Pixel hay còn gọi là điểm ảnh là phần tử của ảnh số có toạ độ (x, y) với mức độ xám hoặc màu nhất định Mỗi phần tử trong ma trận được gọi là một phần tử ảnh Độ phân giải: Độ phân giải ảnh là lượng thông tin được chứa trong một tập tin ảnh kỹ thuật số và nó sẽ hiển thị trên các thiết bị hoặc được in ra, thông thường được đo bằng pixel Sao cho mắt người có thể nhìn thấy ảnh một cách liên tục, độ phân giải của ảnh sẽ được phân bố theo hay chiều x và y trong không gian

Phân loại ảnh: bao gồm ảnh màu, ảnh nhị phân và ảnh xám

Phần mềm thiết kế

Sau khi lên ý tưởng về thiết kế robot, việc thiết kế robot để tiến đến công đoạn gia công được thực hiện hoàn toàn trên phần mềm Solidworks Solidworks là phần mềm chuyên thiết kế 3D được sử dụng rộng rãi trong các lĩnh vực cơ khí, chế tạo…Phần mềm này cho phép thiết kế từng chi tiết nhỏ và lắp ráp chúng lại và mô phỏng như một mô hình thực tế, dựa vào đó có thể xem trước được kết cấu hệ thống đã ổn định hay chưa

Phần mềm còn cho phép người thiết kế lưu file với nhiều định dạng khác nhau để phù hợp với việc gia công bằng các chất liệu khác nhau, điển hình như file STL có thể dùng cho việc in 3D với chất liệu nhựa, file STEP có thể dùng cho việc gia công tự động trên máy CNC, ngoài ra phần mềm còn có thể cho người dùng xuất file 2D để có thể gia công thủ công nếu muốn

Sau khi đã thiết kế xong mô hình Robot trên Solidworks ta có thể dùng Matlab để tính toán và kiểm nghiệm các phương trình động học của cánh tay Robot Ta còn cần liên kết Matlab với Solidworks bằng Simcape Multibody để có thể xây dựng giao diện để điều khiển mô phỏng hoạt động của Robot

THIẾT KẾ MÔ HÌNH

Yêu cầu thiết kế

Hệ thống robot 4 bậc tự do phân loại sản phẩm ứng dụng xử lý ảnh đòi hỏi:

- Cơ cấu sử dụng chất liệu nhôm chắc chắn để đáp ứng được khả năng làm việc nhanh chóng cũng như sự ổn định cho hệ thống

- Robot với khả năng đáp ứng nhanh từ 4s đến lâu hơn, hoạt động chính xác đi đến các vị trí mong muốn

- Có thể giám sát trạng thái và thao tác điều khiển robot ngay trên màn hình

- Mô phỏng thực tế ảo để tăng thêm độ tin cậy trước khi áp dụng vào thực tế

- Một trong những công việc cần làm khi tính toán động học của robot là đặt hệ trục toạ độ tối ưu nhất có thể cho robot và lập bảng DH chính xác, tối ưu.

Thiết kế phần cứng

3.2.1 Lựa chọn mô hình Robot 4 bậc tự do

Hình 3.1: Mô hình robot ABB IRB 6620

Trong quá trình nghiên cứu mô hình robot và áp dụng kiến thức môn Kỹ thuật robot nói riêng và kiến thức tổng hợp, em đã không chọn robot 3 bậc mà chọn robot 4 bậc theo mô hình đơn giản hoá robot 6 bậc của ABB để có thể gắp vật dễ dàng hơn so với robot 3 bậc Cùng với việc nghiên cứu, em cũng thiết kế lại để tối ưu trọng lượng của robot trong khả năng cho phép của em

19 hộp đế để tạo nên điểm tựa vững chắc cho robot hoạt động

3.2.2 Thiết kế Robot 4 bậc tự do

Hình 3.2: Tổng quan mô hình

Hình 3.3:Cánh tay Robot khi vươn cao nhất

Hình 3.4: Cánh tay Robot khi vươn xa nhất

Dây đai truyền động giữa các bánh răng được căng đai giữa trục kéo của động cơ với trục quay khớp 1 của cánh tay.

Khớp 2 là khớp truyền động phải chịu tải nặng trên robot, nó gánh tất cả các khớp phía sau nên đòi hỏi mặt cơ khí phải chắc chắn, tránh bị rơ ảnh hưởng gây ra sai số nên khớp 2 sử dụng vật liệu hoàn toàn từ nhôm, cũng do là khớp chịu tải nặng nhất nên đòi hỏi động cơ kèm cơ cấu giảm tốc phải đáp ứng tốt Do đó ở khớp 2 này, em sử dụng AC servo 200w kết hợp cả hộp số 1:10 và truyền động qua bánh răng GT2 tỉ lệ 1:5 với tổng tỉ lệ truyền 1:50

Dây đai truyền động trên khớp 2 được căng đai theo phương pháp trượt động cơ cùng với sử dụng trục bulong M8 được gắn cố định đủ căng giúp cơ cấu chắc chắn và hoạt động ổn định

Việc thiết kế khớp 2 đã được tính toán kĩ, tối ưu không gian, tối ưu khối lương robot bớt nặng nề để các chi tiết hoạt động mượt mà, không bị vướng hay va chạm

Khớp 3, khớp chịu lực nặng xếp sau khớp 2 nên cũng cần phải chắc chắn, chất liệu sử dụng cũng là kim loại nhôm thông qua gia công, phần động cơ cùng cơ cấu truyền động được đặt trực tiếp trên khớp 2 thông qua khớp nói sẽ truyền động qua khớp 3

Với việc sử dụng AC servo 100w truyền động qua hộp số 1:10 sau tính toán đủ đáp ứng cho khớp 3 hoạt động tốt và mượt mà

Hình 3.8: Khớp 4 Điểm đặc biệt trên cơ cấu thiết kế là đưa khớp 3 và 4 thẳng hàng Việc thiết kế khớp này cần sự tối ưu về khối lượng và kích thước Do đó nhóm đã thiết kế tối ưu cơ cấu sử dụng kim loại nhôm theo ý tưởng của mình Làm cho các khớp hoạt động mượt mà, ổn định nhất có thể

Khớp 4, khớp truyền động cuối cùng của robot, ít chịu lực nên sử dụng động cơ step Nema 14 truyền động trực tiếp để tối ưu khối lượng và kích thước cho robot

Hình 3.9: Băng tải vận chuyển

Hệ thống băng tải được thiết kế dựa nhiều vào ý tưởng thực tế, đáp ứng tốt quá trình vận chuyển sản phẩm vào trong hệ thống

Băng tải có kích thước là 1200x234x300 mm

3.2.3 Lựa chọn và tính toán các cơ cấu truyền động

Robot được thiết kế gần như hoàn toàn bằng nhôm và bắt chặt vào nhau thông qua ốc vít và đai ốc, giữa các khớp truyền động với nhau theo cách linh hoạt sử dụng bánh răng và hộp số (gắn trực tiếp vào động cơ hoặc truyền trung gian) để đảm bảo robot hoạt động ổn định, chắc chắn, đáp ứng được tốc độ làm việc nhanh hơn Để đáp ứng được khả năng làm việc của robot cùng với việc robot hoàn toàn bằng nhôm, đòi hỏi động cơ cần phải có moment cao cùng với tốc độ cũng phải cao cũng như có các chế độ phù hợp việc thu phát xung điều khiển

Qua quá trình tìm hiểu, em nhận thấy AC servo đáp ứng được hết các tiêu chí về moment, tốc độ, tích hợp encoder và driver dễ kết nối phù hợp việc thu phát xung điều khiển khi có thể thi công mô hình Trên thị trường tồn tại rất nhiều chủng loại AC servo, phù hợp với nhu cầu cùng điều kiện, em sử dụng AC servo của Mitsubishi do mẫu mã khá đa dạng, dễ dàng tìm được trên thị trường và có mức giá khá ổn, tùy chịu tải từng khớp mà sử dụng từng servo có công suất khác nhau từ 100w cho đến 200w và 400w

Hình 3.10: AC Servo Mitsubishi HG-KR43

3.2.3.2 Tính toán cơ cấu truyền

Dự toán khối lượng từng khớp theo thiết kế để tính toán cơ cấu hợp lí nhất cho cánh tay Robot

Bảng 3.1: Bảng dự toán khối lượng từng khớp:

-Step Motor : 0.2Kg Khớp 4 -Tay hút : 0.2Kg 0.2kg

Việc lựa chọn động cơ phù hợp cho từng khớp nếu truyền động trực tiếp thì vẫn chưa đủ nên cần thêm truyền qua hộp số, kết hợp việc truyền qua bánh răng để tăng tỉ lệ truyền giúp robot hoạt động tốt nhất

Tính toán lựa chọn Tỉ lệ cho Pully khi truyền động bằng đai cho từng khớp của cánh tay Robot:

Khoảng cách từ trục động cơ tới trọng tâm: d 1 0cm

Moment cần là T 1 =9.4*30*0.0982'.7Nm Động cơ AC Servo 400w: T in =1.3Nm qua Hộp số 1:10 được: T out =8.84Nm

Với tỉ lệ truyền khi qua Hộp số là 0.68

Với 0.8 là hệ số khi truyền động qua dây đai

Chọn Pully có Tỉ lê truyền là 1 : 4 kết hợp với hộp số 1:10 ta được tổng tỉ lệ là 1:40

Với khoảng cách tới trọng tâm d 2 0cm và Động cơ AC Servo 200w có T in =0.64Nm và Hộp số 1:10 Tương tự ta tính được N= 4.39

Chọn Pully có tỉ lệ truyền 1:5 kết hợp với hộp số 1:10 ta được tổng tỉ lệ truyền là 1:50

Với khoảng cách tới trọng tâm d 3 cm và Động cơ AC Servo 100w có T in =0.32 và Hộp số 1:10 Tương tự ta tính được N  1

Ta lựa chọn truyền động trực tiếp

Với khối lượng 0.2kg không đáng kể, ta lựa chọn sử dụng động cơ Step Nema có T=0.28Nm

Khi truyền động bằng bánh răng, ngoài việc lựa chọn bánh răng để có tỉ lệ truyền đáp ứng yêu cầu thì còn phải tính toán kích thước dây đai truyền động để sử dụng cho việc lên bảng vẽ thiết kế robot tối ưu kích thước và khả năng hoạt động Kích thước dây đai được tính toán theo công thức:

L: chiều dài dây curoa a : khoảng cách tâm của 2 bánh răng d 1 : đường kính của bánh răng 1 d 2 : đường kính của bánh răng 2

Hình 3.11: Pully GT2 và dây đai

Lựa chọn thiết bị

Dựa trên động cơ có sẵn, đề tài sẽ chọn các thiết bị cơ khí phù hợp với động cơ đó như Bảng 3.2 sau:

Bảng 3.2: Vật liệu phần cứng Robot

- Được sản xuất từ vật liệu hợp kim nhôm

- Pully GT2 12 răng có đường kính trong 5mm

- Đường kính ngoài 19.96mm - Chiều cao

- Sử dụng cho dây đai GT2 bước răn 2mm

- Sử dụng để truyền động cho các Động cơ AC Servo

- Sử dụng để gửi tín hiệu về cho Encoder

- Được sản xuất từ vật liệu hợp kim nhôm

- Pully GT2 48 răng có đường kính trong 12mm

- Đường kính ngoài 30mm - Chiều cao 12mm

- Sử dụng cho dây đai GT2 bước răng 2mm

-Sử dụng để truyền động cho khớp 1

- Được sản xuất từ vật liệu hợp kim nhôm

- Pully GT2 60 răng có đường kính trong 12mm

- Đường kính ngoài 42mm - Chiều cao 16mm

- Sử dụng cho dây đai GT2 bước răng 2mm

-Sử dụng để truyền động cho khớp 2

- Được sản xuất từ vật liệu hợp kim nhôm

Nối trục động cơ với các khâu của Robot

- Được sản xuất từ vật liệu hợp kim nhôm

-Đỡ trục cố định và làm khớp quay truyền đông khớp 2

8 Vòng bi - Được sản xuất từ vật liệu hợp kim nhôm

- Vòng bicó đường kính trong 8mm

- Sử dụng làm khớp quay truyền động cho khớp 3 và 4

- Được sản xuất từ vật liệu cao su

- Chu vi 100mm - Rộng 6mm

- Sử dụng để truyền động đai ở các khớp

Bảng danh sách 3.3 sẽ liệt kê một số thiết bị điện sẽ được sử dụng khi có thể thi công mô hình thật:

Bảng 3.3: Thiết bị thi công phần điện

STT Tên thiết Hình ảnh Thông số kĩ Chức

230V -Công suất đầu ra : 400W -Tốc độ định mức :

3000Rpm -Torque định mức : 1.3Nm -Trọng lượng:

230V -Công suất đầu ra : 200W -Tốc độ định mức :

3000Rpm -Torque định mức : 0.64Nm -Trọng lượng:

12V -Cường đô dịnh mức: 1.2A -Torque định mức : 0.26Nm -Góc quay mỗi bước 1.8 0 -Trọng lượng:

400xung/vòng -Trục encoder: trục 6mm -Loại output:

-Gửi tín hiệu hồi tiếp về

TÍNH TOÁN, KIỂM CHỨNG VÀ MÔ PHỎNG

Động học mô hình thiết kế

4.1.1 Đông học thuận cánh tay Robot

Từ thiết kế cơ khí mô hình, đặt hệ được hệ trục tọa độ , sau đó chuyển về sơ đồ đơn giản hơn để phân tích Các hệ trục tọa độ được gắn từ hệ trục tọa độ gốc cho tới hệ trục tọa độ của điểm công tác (điểm cuối) trên robot 4 bậc tự do Trong đó trục Z trùng khớp các khớp xoay, trục X là đường vuông góc chung giữa hai trục Z liên tiếp và có hướng của khâu trước

Hình 4.1 Cấu trúc mô hình cánh tay robot 4 bậc tự do

Khi có được mô hình biểu diễn dưới dạng hình học đơn giản hơn như hình 4.2 , thông số D-H được xác định như Bảng 4.1:

Bảng 4.1 Bảng thông số DH của cánh tay robot 4 bậc tự do: i a  d 

33 d là khoảng cách giữa x n − 1 và x n so với Z n − 1

 là góc giữa x n − 1 và x n so với Z n − 1

Theo lý thuyết D-H ma trận tổng quát động học:

− = cos sin cos sin sin cos sin cos os cos sin sin

Do đó ma trận chuyển đổi từ hệ tọa độ điểm công tác (điểm cuối) về hệ tọa độ 0 (hệ tọa độ gốc) là:

4 T = 1 T T T T 2 3 4 (4.2) Với 0 1 T , 1 2 T , 2 3 T , 3 4 T được tính toán như sau:

1 2 cos sin 0 cos sin cos 0 sin

2 3 cos sin 0 cos sin cos 0 sin

3 4 cos sin 0 cos sin cos 0 sin

Từ phương trình (4.2) tìm được 0 4 T như sau:

Trong đó R 3 3 x là ma trận xoay, gồm các thành phần sau:

2 3 4 2 3 4 cos( ) cos sin( ) cos sin cos( ) sin sin( ) sin cos sin( ) cos( ) 0

Và P 3 1 x là ma trận vị trí, gồm các thành phần sau

1 3 2 3 2 2 4 2 3 4 cos ( cos( ) cos cos( )) sin ( cos( ) cos cos( )) sin( ) sin sin( ) x x y z p L L L

4.1.2 Động học nghịch cánh tay Robot Ở đề tài này, em đã sử dụng phương pháp tính toán đại số để tính toán Dựa vào các đáp số của phương trình động học thuận để tìm ra kết quả của phương trình động học nghịch như sau:

Từ (4.9) kết quả  1 được tìm thấy như sau:

Tu hai các phương (4.11) và (4.12) với nhau sẽ được phương trình (4.13):

Mặt khác, từ phương trình (4.9) biến đổi thành phương trình (4.14):

4 sin( 2 3 4 ) 1 3 sin( 2 3 ) 2 sin 2 p z − L    + + = L + L   + + L  (4.15) Khi đó từ ma trận (4.9) các thành phần đã tìm được ở động học thuận là

1 2 3 cos( ) o z =    + + , n z = sin(    1 + 2 + 3 ), khi đó thay o z , n z vào phương trình (4.13), (4.14), (4,15) sẽ được lần lượt các phương trình (4.16) và (4.17), (4.18) sau đó đặt các thành phần bên vế trái của (4.16) là A 1 , (4.17) là B 1 , (4.18) là C 1 và thành phần vế phải (4.16) là A 2 , (4.17) là B 2 , (4.18) là C 2 ta được

Bình phương hai vế và cộng các phương trình (4.16), (4.17) và (4.18) sẽ được phương trình :

Từ phương trình (4.15) ta tính được :

4 sin( 2 3 4 ) 1 cos 2 sin 3 3 sin 2 ( 2 3 cos 3 ) p z − L    + + − L =   L +  L + L 

Ta đặt các giá trị a = L 3 sin  3 , b = L 2 + L 3 cos  3 và r = a 2 + b 2 kế hợp với

C 1 trong phương trình (4.18) ta tính được giá trị 2 :

Mà dựa vào ma trận xoay (4.8), biết được hướng của điểm đầu cuối tuân thủ phương trình:

 = − + (4.21) Vậy kết quả động học nghịch tóm lại là:

4 2 3 tan 2( , p ) tan 2(C , ) atan 2(a, b) cos cos(

Kiểm chứng động học cánh tay Robot

Sau khi tính toán các giá trị của động học cánh tay Robot thì em sử dụng phần mềm Matlab để kiểm nghiệm lại tính đúng sai:

Bảng 4.1: Thông số các khớp ví dụ 1

Hình 4.2: Động hoc thuận ví dụ 1

Bảng 4.2: Thông số các khớp ví dụ 2

Khớp Giá trị Đơn vị

Hình 4.3: Động học thuận ví dụ 2

Bảng 4.3: Thông số toạ độ ví dụ 1

Tọa độ Thông số Đơn vị p x 703.92 mm p y 201.12 mm p z 746.6 mm

Kết quả mô phỏng như hình:

Hình 4.4: Động học nghịch ví dụ 1

Kết quả mô phỏng như hình 4.5:

Hình 4.5: Động học nghịch ví dụ 2 Đúng với kết quả ở động học thuận ở ví dụ 2

Thiết kế phần mềm

4.3.1 Xây dựng nguyên lý hoạt động

Hình 4.6 Lưu đồ giải thuật của hệ thống

Hệ thống hoàn chỉnh sẽ hoạt động dựa vào các giá trị vị trí x, y, z được gửi về thông qua quá trình xử lý của camera trên các sản phẩm với màu sắc khác nhau, sau đó dữ liệu về vị trí và màu sắc sản phẩm sẽ được gửi đến bộ xử lý, tính toán từ vị trí được gửi đến và tiến hành quy hoạch quỹ đạo điều khiển robot đến đúng vị trí, nhận biết màu sắc và phân loại sản phẩm vào đúng vị trí mong muốn

4.3.2 Thiết kế chương trình điều khiển bằng Matlab

Sau khi thiết kế mô hình Robot trên SolidWorks thì em sẽ sử dụng phần mềm Matlab để tiến hành tính toán động học kết hợp mô phỏng động học cánh tay Robot

Ta sẽ kết nối SolidWorks với Matlab bằng Toolbox Simscape multibody, công cụ của MatLab cho phép người dùng mô hình hóa được các chi tiết cơ khí, từ đó xây dựng

Hình 4.7: Các khối của robot

Sau khi các khối của cánh tay Robot đã được kết nối với Simulink Để điều khiển quá trình mô phỏng hoạt đông của Robot ta sẽ sử dụng giao diện GUI (Graphical User Interface) trên Matlab

GUI là giao diện đồ họa có điều khiển bởi nhiều thanh công cụ, được người lập trình tạo dựng, thực hiện và tương tác với người dùng là giao diện chương trình

GUI bao gồm đầy đủ các chương trình hỗ trợ như thực hiện các phép toán LOGIC, mô phỏng không gian 2D, 3D, đọc hiển thị dữ liệu,…giao tiếp với người dùng qua hình ảnh, các nút nhấn thực thi,

Hầu hết GUI chỉ thực hiện (trả lời) lệnh người dùng thông qua các tác động của con người lên giao diện, người sử dụng không cần biết cấu trúc chương trình vẫn có thể thực hiện được GUI được thực hiện thông qua các hàm CALLBACK Khi người dùng tác động lên giao diện bằng các cách khác nhau, hàm CALLBACK sẽ được gọi để thực thi

Hình 4.8: Một giao diện GUI

Trong giao diện có sẽ có các ô chức năng để ta có thể lập trình: Push Button, Slider, Check Box, Edit Text,Static Text,… Giúp chúng ta dễ dàng điều khiển và thao tác cánh tay Robot

Hình 4.9: Giao diện Matlab Guide

Sau khi kết nối SolidWorks với Malab thì khi điều khiển mô hình cánh tay Robot thì ta chạy Simulink và được kết quả như hình 4.10:

Hình 4.10 Mô hình cánh tay Robot trên Matlab

Hình 4.11 Giao diện điều khiển

4.3.3 Thiết kế chuyển động bằng Solidworks Motion

Sau khi thiết kế mô hình trên SolidWorks, để thuận lợi cho quá trình quan sát và nắm bắt về hệ thống thì ta sẽ sử dụng chức năng Solidworks Motion để mô phỏng chuyển động của cánh tay robot trong thực tế

Hình 4.12 Hình ảnh chuyển động Solidworks Motion

4.3.4 Thiết kế chương trình phân loại màu sắc trên Matlab

Yêu cầu về chương trình mô phỏng nhận diện màu sắc

- Tìm hiểu về ảnh số

- Tìm hiểu thư viện xử lý ảnh Digital Image Processing trên Matlab

- Tìm hiểu cách nhận dạng màu sắc trên nền Matlab, thư viện Digital Image Processing trên Matlab

- Viết phần mềm mô phỏng nhận diện màu sắc của vật thể từ cacmera trên nền Matlab

Hình 4.13: Sơ đồ giải thuật

Phương pháp được chia thành bốn phần: Input từ camera, Nhận dạng các vật có màu sắc từ camera, Nhị phân hóa hình ảnh Xuất ra kết quả

Video được input vào từ những camera kỹ thuật số Các vật có các màu sắc được đưa vào camera

Bước tiền xử lý được dùng để làm tăng tốc độ xử lý của của video làm tăng độ tương phản và giảm nhiễu trong video

-Nhận các vật có các màu sắc

Camera sẽ nhận các vật được người dùng đưa vào Chương trình bắt đầu phân tích là dùng ảnh xám từ ảnh gốc trừ những vùng có các màu đỏ, xanh lá, xanh dương

-Nhị phân hóa hình ảnh

Các hình ảnh trong video được lọc bằng bộ lọc để tạo ra một hình ảnh bằng cách tính toán mức ngưỡng Tìm các giá trị nhỏ nhất và lớn nhất của pixel từ video

Quá trình này chuyển tất cả pixel của video sang dạng 0-1 và làm cho các bước xử lý sau dễ dàng hơn Khi đó các màu đỏ, xanh lá, xanh dương được đặt giá trị ở mức 1 Còn lại tất cả các màu khác ở mức 0 Chương tình sẽ xuất ra các giá trị ở mức 1 được phân tích ra màn hình

` Nhận dạng và cho ra kết quả các vật có các màu sắc như: đỏ, xanh lá và xanh dương từ các vật bất kì mang những màu sắc trên

Hình 4.14: Giao diện chương trình Matlab

Quá trình nhận diện Màu sắc của em chỉ dựa trên mô phỏng nên chỉ sử dụng camera lấy ra từ Laptop để kết nối với chương trình trong Matlab để nhận diện được màu sắc

Quá trình nhận diện và phân biệt màu sắc trong đề tài chỉ dùng lại ở phân loại các vật thể có chứa các màu đỏ, xanh và xanh dương

Hình 4.16: Các vật có màu sắc đưa vào cho camera nhận diện

KẾT QUẢ ĐẠT ĐƯỢC

Mô hình robot 4 bậc tự do

Xây dựng được một mô hình cánh tay Robot với đầy đủ các chức năng để có thể thi công trong thực tế và đưa vào thử nghiệm

Hình 5.1 Mô hình robot hoàn thiện

Chức năng điều khiển điểm đầu cuối của robot

Thông qua Matlab xây dựng được một chương trình mô phỏng động học của Robot từ đó lên kế hoạch trong việc xậy dựng một chương trình điều khiển hoạt động được khi thi công mô hình trên thực tế

Hình 5.2 Giao diện điều khiển điểm đầu cuối của robot

Chức năng nhận dạng và phân loại qua màu sắc

Hình 5.3 Nhận dạng, xác định vị trí màu đỏ

Hình 5.4 Nhận dạng và xác định vị trí màu xanh

Hình 5.5 Nhận dạng và xác định số lượng vật thể.

• Màu sắc nhận diện được đúng theo yêu cầu đã đề ra

• Do sử dụng camera nên khoảng cách nhận diện có giới hạn

• Phụ thuộc vào điều kiện môi trường và ánh sáng

• Chỉ nhận diện được các màu trên nền RGB.

Chức năng mô phỏng trong môi trường thực tế ảo SolidWorks Motion

Qua xây dựng hệ thống bằng chức năng Solid Motion thì đề tài củng đã có được một quá trình mô phỏng hoạt động của hệ thống thông qua đó lên nhiều ý tưởng hơn khi xây dưng mô hình thực tế

Hình 5.6 Gắp vật thể từ băng tải

Hình 5.7 Đưa vật phẩm vào băng tải phân loại

53 học nghịch từ mô hình đã thiết kế

- Mô phỏng, kiểm tra được tính chính xác của thuật toán trên phần mềm Matlab Simulink Giao diện đáp ứng được các nhu cầu điều khiển

- Mô phỏng được chuyển động của robot trên phần mềm SolidWorks Motion

- Sử dụng xử lý ảnh nhận diện và phân loại được sản phẩm theo màu sắc

Tuy em cảm thấy đề tài còn rất đơn giản với rất nhiều điểm thiếu sót nhưng với cố gắng em cảm thấy đã xây dựng được những yếu tố cơ bản nhất để hoàn thành được “Thiết kế, mô phỏng hệ thống phân loại sản phẩm ứng dụng robot và xử lý ảnh”

Trong tương lai để hoàn thiện đề tài còn có những hướng phát triển sau:

- Thi công robot từ mô phỏng thành mô hình thực từ chất liệu nhôm

- Phát triển thêm phần điều khiển thực từ PLC kết nối với Servo, và kết nối sử dụng xử lý ảnh ra môi trường thật

- Thêm phần quy hoạch quỹ đạo và các bộ điều khiển cho robot hoàn thiện hơn

- Ứng dụng thêm màn hình HMI để tăng tính thẩm mỹ, linh động cho robot

[1] 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

[2] Nguyễn Thị Phương Hà, Huỳnh Thái Hoàng (2005) Lý thuyết điều khiển tự động, Nhà xuất bản Đại học Quốc gia TP Hồ Chí Minh, Hồ Chí Minh

[3] Amin A Mohammed and M Sunar (2015) Kinematics Modeling of a 4-DOF

Robotic Arm 2015 International Conference on Control, Automation and Robotics, DOI: 10.1109/ICCAR.2015.7166008

[4] Võ Đức Khánh, Hoàng Văn Kiếm Giáo trình xử lý ảnh số Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chi Minh

T2 = [ cos(theta2) -sin(theta2) 0 l2*cos(theta2); sin(theta2) cos(theta2) 0 l2*sin(theta2);

T3 = [ cos(theta3) -sin(theta3) 0 l3*cos(theta3); sin(theta3) cos(theta3) 0 l3*sin(theta3);

T4 = [ cos(theta4) -sin(theta4) 0 l4*cos(theta4); sin(theta4) cos(theta4) 0 l4*sin(theta4);

%toa do ðiem cuoi px=T(1,4) py=T(2,4) pz=T(3,4)

Code động học nghịch clc; clear all; syms px py pz l1 l2 l3 l4 a b c r A B C l1 = 408 ; l2 = 400; l3 = 400; l4 = 38; px=0; pyi2.8203; pz70.0000 ; theta234=-90; %thanh phan trong matran Rotation theta1=atan2d(py,px);

A=px-l4*cosd(theta1)*cosd(theta234);

B=py-l4*sind(theta1)*cosd(theta234);

C=pz-l1-l4*sind(theta234); theta3=-acosd((A*A+B*B+C*C-l2*l2-l3*l3)/(2*l2*l3));a=l3*sind(theta3);

56 b=l2+l3*cosd(theta3); c=pz-l1-l4*sind(theta234); r=sqrt(a*a+b*b); theta2=atan2d(c,sqrt(r*r-c*c))-atan2d(a,b); theta4=theta234-theta2-theta3;

Code mô phỏng nhận diện màu sắc trên Matlab

%% Initialization redThresh = 0.24; greenThresh = 0.05; blueThresh = 0.15; vidDevice = imaq.VideoDevice('winvideo', 1, 'YUY2_640x480', % khoi tao video tu camera may tinh

'ReturnedColorSpace', 'rgb'); % tra hinh anh ve khong gian mau RBG vidInfo = imaqhwinfo(vidDevice); % Acquire input video property/ nhan dien thong tin thiet bi hblob = vision.BlobAnalysis('AreaOutputPort', false, % Set blob analysis handling

'MinimumBlobArea', 600, %dien tich dom mau hien thi nho nhat

'MaximumBlobArea', 3000, %dien tich dom mau hien thi lon nhat

'MaximumCount', 10); % so dom mau hien thi toi da hshapeinsBox = vision.ShapeInserter('BorderColorSource', 'Input port', % Set box handling

'FillColorSource', 'Input port', 'Opacity', 0.4); htextinsRed = vision.TextInserter('Text', 'Red : %2d', % Set text for number of blobs

'FontSize', 14); htextinsGreen = vision.TextInserter('Text', 'Green : %2d', % Set text for number of blobs

'FontSize', 14); htextinsBlue = vision.TextInserter('Text', 'Blue : %2d', % Set text for number of blobs

57 rgbFrame = flipdim(rgbFrame,2); diffFrameRed = imsubtract(rgbFrame(:,:,1), rgb2gray(rgbFrame)); diffFrameRed = medfilt2(diffFrameRed, [3 3]); binFrameRed = im2bw(diffFrameRed, redThresh); diffFrameGreen = imsubtract(rgbFrame(:,:,2), rgb2gray(rgbFrame)); diffFrameGreen = medfilt2(diffFrameGreen, [3 3]); binFrameGreen = im2bw(diffFrameGreen, greenThresh); diffFrameBlue = imsubtract(rgbFrame(:,:,3), rgb2gray(rgbFrame)); diffFrameBlue = medfilt2(diffFrameBlue, [3 3]); binFrameBlue = im2bw(diffFrameBlue, blueThresh);

[centroidRed, bboxRed] = step(hblob, binFrameRed); centroidRed = uint16(centroidRed);

[centroidGreen, bboxGreen] = step(hblob, binFrameGreen); centroidGreen = uint16(centroidGreen);

[centroidBlue, bboxBlue] = step(hblob, binFrameBlue); centroidBlue = uint16(centroidBlue); rgbFrame(1:50,1:90,:) = 0; vidIn = step(hshapeinsBox, rgbFrame, bboxRed, single([1 0 0])); vidIn = step(hshapeinsBox, vidIn, bboxGreen, single([0 1 0])); vidIn = step(hshapeinsBox, vidIn, bboxBlue, single([0 0 1])); for object = 1:1:length(bboxRed(:,1)) centXRed = centroidRed(object,1); centYRed = centroidRed(object,2); vidIn = step(htextinsCent, vidIn, [centXRed centYRed], [centXRed-6 centYRed-9]); end for object = 1:1:length(bboxGreen(:,1)) centXGreen = centroidGreen(object,1); centYGreen = centroidGreen(object,2); vidIn = step(htextinsCent, vidIn, [centXGreen centYGreen],

[centXGreen-6 centYGreen-9]); end for object = 1:1:length(bboxBlue(:,1)) centXBlue = centroidBlue(object,1); centYBlue = centroidBlue(object,2); vidIn = step(htextinsCent, vidIn, [centXBlue centYBlue], [centXBlue-6 centYBlue-9]);

58 end vidIn = step(htextinsRed, vidIn, uint8(length(bboxRed(:,1)))); vidIn = step(htextinsGreen, vidIn, uint8(length(bboxGreen(:,1)))); vidIn = step(htextinsBlue, vidIn, uint8(length(bboxBlue(:,1)))); step(hVideoIn, vidIn); nFrame = nFrame+1; end release(hVideoIn); release(vidDevice); clear all; clc;

Ngày đăng: 25/02/2024, 15:01

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

TÀI LIỆU LIÊN QUAN

w