Hiện nay phân loại sản phẩm là một công đoạn được sử dụng rất nhiều trong thực tế sản xuất Khi dùng sức người công việc này đòi hỏi sự tập trung cao và có tính lặp đi lặp lại nên người thao tác khó đảm bảo được sự chính xác trong công việc Mặt khác có những yêu cầu phân loại dựa trên nhiều yếu cầu kĩ thuật khác nhau như phân loại theo hình dáng màu sắc kích thước và thậm chí là những yêu cầu phân loại sản phẩm đối với những chi tiết nhỏ mà mắt thường khó có thể nhận biết Điều này ảnh hưởng trực tiếp tới năng suất và chất lượng sản phẩm
Tổng quan về đề tài
Giới thiệu chung
Hiện nay, phân loại sản phẩm là một công đoạn quan trọng trong sản xuất, yêu cầu sự tập trung cao và tính lặp đi lặp lại Các yêu cầu phân loại dựa trên nhiều đặc tính như màu sắc, hình dáng và khối lượng, ảnh hưởng trực tiếp đến năng suất và chất lượng sản phẩm Nhận thức được điều này, nhóm nghiên cứu đã phát triển hệ thống phân loại sản phẩm kết hợp với robot công nghiệp, giúp thay thế con người trong các công việc lặp đi lặp lại với năng suất và độ tin cậy cao Robot công nghiệp chủ yếu được chia thành hai loại: robot chuỗi và robot song song.
Hình 1.1 Robot chuỗi của hãng Kuka
Robot chuỗi nổi bật với độ linh hoạt cao và không gian làm việc rộng rãi, nhưng thường gặp vấn đề về quán tính lớn và độ cứng vững không cao do động cơ gắn trên khâu động Ngược lại, robot song song mặc dù có không gian làm việc hạn chế và xuất hiện các điểm kì dị gây thiếu hoặc thừa bậc tự do, nhưng lại sở hữu độ cứng vững cao nhờ vào sự ràng buộc giữa các khâu trong chuỗi động học kín và khớp truyền động cố định Đặc biệt, robot song song có khả năng thực hiện các chuyển động với vận tốc cao mà không lo ngại về quán tính.
Kể từ khi được phát minh vào năm 1947 bởi tiến sỹ Eric với cấu trúc Hexapod, robot song song đã trải qua một quá trình phát triển đáng kể với nhiều thành tựu nổi bật Các loại robot song song hiện nay đa dạng, từ hai bậc tự do đến sáu bậc tự do Nhờ vào ưu điểm vượt trội về độ cứng vững và khả năng gia công tốc độ cao, robot song song ngày càng thu hút sự quan tâm của các nhà khoa học, được nghiên cứu nhằm ứng dụng trong công nghiệp để thay thế cho hệ thống máy công cụ truyền thống.
Giới thiệu về robot Delta
Robot Delta, được phát minh bởi giáo sư Reymond Clavel vào năm 1985, đã trở thành một trong những loại robot nổi tiếng và được nhiều hãng sản xuất hàng đầu như Fanuc, ABB và Bosch Packaging ứng dụng thành công trong thực tiễn.
Hình 1 2 Hãng Fanuc Hình 1 3 Hãng ABB Hình 1 4 Hãng Omron
The Delta robot employs parallelogram structures and a mobile platform that features three degrees of translational freedom relative to a fixed base.
Robot song song đang thu hút sự quan tâm của nhiều nhà khoa học nhờ vào những ưu điểm vượt trội của chúng Chúng được ứng dụng rộng rãi trong các lĩnh vực như vật lý, cơ khí và quân sự, cho thấy tiềm năng to lớn của công nghệ này trong việc cải thiện hiệu suất và độ chính xác trong nhiều ngành nghề khác nhau.
Một số hình ảnh về ứng dụng của Robot Delta
Hình 1 6 Robot Delta ứng dụng trong dây chuyền đóng gói sản phẩm
Hình 1 7 Robot Delta của hãng FANUC ứng dụng trong lắp ráp cơ khí
Dựa theo đặc tính của khớp ta phân loại Robot Delta theo 2 dạng chính:
Robot delta kiểu ba khớp xoay là một loại robot đã được ứng dụng rộng rãi trong ngành công nghiệp thực phẩm và y học Ban đầu, nó được thiết kế để gắp và thả các thanh sôcôla từ băng chuyền vào hộp đóng gói Hiện nay, robot này còn được sử dụng trong các dây chuyền sản xuất thực phẩm và trong các thiết bị hỗ trợ phẫu thuật.
Robot delta kiểu ba khớp trượt: Loại robot này được sử dụng nhiều trong các loại máy in 3D
1.2.2 Phân tích ưu điểm và nhược điểm
Khả năng chịu tải cao và khối lượng nhẹ nhờ vào các thành phần cấu tạo nhỏ hơn Độ cứng vững được cải thiện nhờ cấu trúc hình học đặc biệt, cho phép chia sẻ đồng đều tất cả các lực tác động lên từng chân Cấu trúc động học của các khớp liên kết giúp chuyển đổi hiệu quả các lực tác dụng thành lực kéo và nén, tối ưu hóa hiệu suất của toàn bộ hệ thống.
Cấu trúc song song cho phép thực hiện các thao tác phức tạp với độ chính xác cao, trong đó sai số chỉ phụ thuộc vào sai số dọc trục của từng cụm cơ cấu chân riêng lẻ mà không bị tích lũy.
Có thể thiết kế với nhiều kích thước khác nhau, giúp đơn giản hóa cơ cấu máy và giảm số lượng linh kiện nhờ vào việc sử dụng các chân và khớp nối được thiết kế sẵn thành các cụm chi tiết tiêu chuẩn Đặc biệt, loại robot này có ưu điểm vượt trội về tốc độ so với robot chuỗi.
Hình 1 10 Tốc độ của Robot
Khoảng không gian làm việc nhỏ và thiết kế khó khăn
Việc giải các bài toán động học, động lực học phức tạp
Có nhiều điểm suy biến (kỳ dị) trong không gian làm việc.
Mục tiêu đề ra
Để nâng cao sản xuất công nghiệp, bài viết tập trung vào việc tối ưu hóa hệ thống phân loại nhờ vào tốc độ vượt trội của Robot Delta Mục tiêu là xây dựng hệ thống phân loại sản phẩm dựa trên màu sắc và hình dáng, với sự hỗ trợ của camera Camera sẽ xử lý hình ảnh và xác định tọa độ của vật thể, sau đó gửi thông tin này đến máy tính Máy tính sẽ điều khiển vi điều khiển để hướng dẫn các cánh tay của Robot Delta đến vị trí chính xác của vật phẩm.
Hình 1 11 Mục tiêu hướng đến đề tài trong tương lai
Cơ sở lí thuyết
Cấu trúc
Robot chuỗi là loại robot có cấu trúc vòng kín, với các khâu dạng thanh được kết nối bằng các khớp động Trong cấu trúc của robot chuỗi, động cơ tay máy hoạt động theo chuỗi nối tiếp từ khâu ra, thực hiện thao tác công nghệ, đến giá cố định Ngược lại, robot song song kết nối khâu cuối với giá cố định qua nhiều mạch động học, hoạt động song song với nhau Sự khác biệt trong sơ đồ động này dẫn đến những đặc điểm khác nhau về động học và động lực học của hai loại robot.
Bài toán động học
Robot delta kiểu ba khớp quay bao gồm ba cánh tay giống nhau, RUU, giúp duy trì sự song song giữa tấm đế cố định và tấm đế di động có gắn khâu chấp hành cuối Các khớp quay trên cùng được dẫn động bởi các cơ cấu chấp hành, tạo ra chuyển động quay thông qua động cơ gắn trên tấm đế cố định.
Chiều dương của các góc 𝜃 𝑖 (với 𝑖 = 1,2,3) được xác định theo quy tắc bàn tay phải, như thể hiện trong hình dưới Góc 𝜃 𝑖 = 0 được xác định khi khâu dẫn động nằm trên mặt phẳng ngang.
Cơ cấu hình bình hành bao gồm bốn thanh và ba khâu dưới, giúp đảm bảo chuyển động tịnh tiến Hệ thống khớp các-đăng (U – Universal) được tạo ra từ ba khớp quay R không nằm cùng một vị trí (non-collocated), bao gồm hai khớp song song và một khớp vuông góc, tạo thành tổng cộng sáu khớp các-đăng.
Robot delta ba bậc tự do có khả năng điều khiển tấm đế di động di chuyển tịnh tiến theo các phương xyz trong vùng làm việc của nó Ba chuỗi RUU giống nhau có cấu trúc tương tự như chân người, với các khớp hông (hip) tại các điểm 𝐵 𝑖 (𝑖 = 1,2,3), khớp gối (knee) tại các điểm 𝐴 𝑖 (𝑖 = 1,2,3), và mắt cá chân (ankle) tại các điểm 𝑃 𝑖 (𝑖 = 1,2,3) Tấm đế cố định có hình dạng tam giác đều với chiều dài cạnh 𝑠 𝐵 và duy trì một chiều giác đều theo hướng không đổi, trong khi hình dạng tam giác của tấm di chuyển được nghịch đảo với hình tam giác của tấm đế cố định.
Các thông số hình học của tấm đế cố định và tấm đế di động, bao gồm khâu chấp hành cuối, được minh họa trong hình 2.2 Ý nghĩa và ký hiệu liên quan được tóm tắt trong bảng dưới đây.
Hình 2 2 Thông số hình học
Bảng 2 1 Bảng kí hiệu hình học
𝑃 𝑖 𝑖 = 1,2,3 điểm nối giữa cánh tay hình bình hành và tấm đế di động
𝑠 𝐵 chiều dài cạnh tam giác đều tấm đế cố định
𝑤 𝐵 khoảng cách từ tâm 𝑂 đến cạnh của tấm đế cố định
𝑢 𝐵 khoảng cách từ tâm 𝑂 đến đỉnh của tấm đế cố định
𝑠 𝑃 chiều dài cạnh tam giác đều tấm đế di động
𝑤 𝑃 khoảng cách từ tâm 𝑃 đến cạnh của tấm đế di động
𝑢 𝑃 khoảng cách từ tâm 𝑃 đến đỉnh 𝑃 𝑖 (𝑖 = 1,2,3) của tấm đế di động
𝑙 chiều dài của mỗi cánh tay hình bình hành
ℎ chiều rộng của mỗi cánh tay hình bình hành
Hệ tọa độ {𝐵} gắn với tấm đế cố định, có gốc tọa độ tại tâm của tam giác đều, trong khi hệ tọa độ {𝑃} gắn vào tấm đế di động cũng có gốc tọa độ tại tâm của tam giác đều tương ứng Hai hệ tọa độ này luôn cùng phương, dẫn đến ma trận quay [𝑅𝑃𝐵] = 𝐼₃ Các biến khớp được biểu diễn bằng Θ = [𝜃₁ 𝜃₂ 𝜃₃]ᵀ, và vị trí của khâu chấp hành cuối 𝑃 trong hệ tọa độ {𝐵} được xác định là 𝑂𝑃⃗⃗⃗⃗⃗/𝐵 = [𝑥 𝑦 𝑧]ᵀ Thiết kế có tính đối xứng cao với ba cánh tay trên có chiều dài 𝐿 và ba cánh tay dưới có chiều dài 𝑙.
Ta nhận thấy rằng các khớp quay 𝐵 𝑖 cố định trong hệ tọa độ {𝐵} và các khớp các- đăng 𝑃 𝑖 cố định trong hệ tọa độ {𝑃}
2.2.1 Xây dựng phương trình động học
Mục tiêu của việc xây dựng các phương trình động học là để hiểu rõ hơn về cách viết phương trình điều khiển và mô phỏng robot một cách hiệu quả.
Từ sơ đồ động học ở Hình 2.1, ta có thể biểu diễn tọa độ của khâu chấp hành cuối (điểm 𝑃) trong hệ tọa độ {𝐵} gắn với khâu chấp hành cuối:
Vì hệ tọa độ {𝐵} và {𝑃} có hướng đồng nhất, ma trận xoay [𝑅𝑃𝐵] sẽ bằng ma trận đơn vị 𝐼₃ Thêm vào đó, với cấu trúc đối xứng của robot và độ dài cạnh các hình bình hành là 𝑙, ta có thể diễn đạt lại như sau:
Để đơn giản hóa quá trình tính toán, chúng ta sẽ bình phương cả hai vế của phương trình (2.12) Hành động này giúp loại bỏ phép tính căn bậc hai khi xác định độ dài của véctơ 𝐴⃗⃗⃗⃗⃗⃗⃗ 𝑖 𝑃 𝑖.
Biến thể hiện vị trí của khâu chấp hành cuối P trong hệ tọa độ Descartes {𝐵} được xác định bởi véctơ 𝑂𝑃⃗⃗⃗⃗⃗ /𝐵 = [𝑥 𝑦 𝑧] 𝑇 Các véctơ vị trí của các điểm 𝐵 𝑖 và 𝑃 𝑖 được mô tả qua các phương trình từ (2.1) đến (2.6) Véctơ 𝐵⃗⃗⃗⃗⃗⃗⃗⃗ 𝑖 𝐴 𝑖 cung cấp thông tin quan trọng về vị trí trong không gian.
/𝐵 phụ thuộc vào các biến khớp
Thay các phương trình từ (2.1) đến (2.6) và (2.14) đến (2.16) vào phương trình (2.11), với 𝑖 = 1,2,3, ta có:
Từ các phương trình (2.13), (2.17), (2.18), (2.19), ta có hệ phương trình động học robot delta kiểu ba khớp quay:
Phần này chứng minh robot delta có 3 bậc tự do Sử dụng công thức tính bậc tự không gian của Kutzbach, ta có:
𝑀 là số bậc tự do (dof – degrees-of-freedom)
𝑁 là số khâu, kể cả đế
𝐽 1 là các khớp có một bậc tự do (khớp quay hoặc khớp trượt)
𝐽 2 là các khớp có hai bậc tự do (khớp các-đăng)
𝐽 3 là các khớp có ba bậc tự do (khớp cầu) Đối với robot delta kiểu ba khớp quay, ta có: 𝑁 = 17, 𝐽 1 = 21, 𝐽 2 = 0, 𝐽 3 = 0 Do đó: 𝑀 = 6(17 − 1) − 5(21) − 4(0) − 3(0) = −9 bậc tự do
Công thức Kutzbach thường dẫn đến kết quả sai, cho rằng robot delta có 3 bậc tự do, nhưng thực tế cho thấy đây là một cấu trúc siêu tĩnh, điều này là không chính xác.
Công thức Kutzbach không áp dụng cho cấu trúc đặc biệt như robot delta, vốn bao gồm ba cơ cấu hình bình hành Nếu loại bỏ một cạnh dài ở mỗi cơ cấu hình bình hành, tức là bỏ hai khớp quay, robot vẫn duy trì động học tương tự như robot delta ban đầu Trong trường hợp này, công thức Kutzbach cho ra kết quả: 𝑁 = 14, 𝐽 1 = 15, 𝐽 2 = 0, 𝐽 3 = 0.
Số bậc tự do của robot delta có thể được tính bằng công thức 𝑀 = 6(14 − 1) − 5(15) − 4(0) − 3(0), cho kết quả là 3 bậc tự do Một phương pháp khác là thay thế ba cơ cấu hình bình hành bằng ba khâu đơn (khâu ảo) và xem xét các khớp các-đăng ở hai đầu của khâu ảo Áp dụng công thức Kutzbach trong trường hợp này, ta cũng nhận được kết quả tương tự: 𝑁 = 8, 𝐽 1 = 3, 𝐽 2 = 6, 𝐽 3 = 0, dẫn đến 𝑀 = 6(8 − 1) − 5(3) − 4(6) − 3(0) = 3 bậc tự do.
Trong bài toán để tìm ra động học nghịch thì ta sử dụng phương pháp giải tích để giải
Bài toán động học ngược của robot delta ba khớp quay được định nghĩa như sau: Dựa trên tọa độ của khâu chấp hành cuối 𝑂𝑃⃗⃗⃗⃗⃗ /𝐵 = [𝑥 𝑦 𝑧] 𝑇, mục tiêu là xác định giá trị của các biến khớp.
Nghiệm bài toán động học ngược của robot song song không phức tạp, với các nghiệm không tầm thường có thể giải được bằng phương pháp tích Theo sơ đồ động học, bài toán này có thể giải độc lập cho mỗi cánh tay RUU Về mặt hình học, nghiệm động học ngược của mỗi cánh tay RUU là giao điểm giữa đường tròn (𝐵 𝑖 , 𝐿) và mặt cầu (𝑃 𝑖 , 𝑙) Ngoài ra, bài toán cũng có thể được giải bằng phương pháp lượng giác.
Khảo sát vùng làm việc
Mục đích của khảo sát vùng làm việc là để xác định ảnh hưởng của các thông số hình học của Robot Delta đến không gian làm việc của nó, từ đó rút ra những kiến thức cần thiết cho việc thiết kế ngược.
Ta thấy rằng vùng làm việc của mỗi cánh tay RUU là vùng bao của một mặt cầu
Điểm 𝐴 𝑖 có tâm trượt trên đường tròn 𝑐 𝑖 với tọa độ được xác định bởi các phương trình (2.31), (2.32) và (2.33) Góc 𝜃 𝑖 nằm trong khoảng [𝜃 𝑖𝑚𝑖𝑛 , 𝜃 𝑖𝑚𝑎𝑥 ], phản ánh phạm vi hoạt động thực tế của mỗi khớp quay 𝐵 𝑖.
Vùng bao này [5] được mô tả như sau:
Nếu 𝐿 > 𝑙: Vùng bao 𝑡 1 là hình xuyến có dạng ring torus (Hình 2.5);
Nếu 𝐿 = 𝑙: Vùng bao 𝑡 2 là hình xuyến có dạng horn torus (Hình 2.6);
Nếu 𝐿 < 𝑙: Vùng bao 𝑡 3 là hình xuyến có dạng spindle torus, bao gồm một vùng lõi trống bên trong (Hình 2.7)
Hình 2 5 Vùng làm việc có dạng ring torus (với 𝐿 1244mm, 𝑙 = 5244mm)
Hình 2 6 Vùng làm việc có dạng horn torus
Hình 2 7 Vùng làm việc có dạng spindle torus (với
Chúng ta đã xác định được vùng làm việc của từng cánh tay RUU, tức là vùng bao của các điểm 𝑃𝑖 Tuy nhiên, điều quan trọng tiếp theo là xác định vùng làm việc của khâu chấp hành cuối, được biểu diễn bởi điểm 𝑃.
Tấm đế di động được coi là một vật rắn, với các chuyển động tịnh tiến theo các trục 𝑥, 𝑦, 𝑧 Véctơ 𝑃⃗⃗⃗⃗⃗ 𝑖 𝑃 có phương và độ lớn không thay đổi trong hệ tọa độ {𝐵} Do đó, vùng làm việc của điểm 𝑃, ký hiệu là 𝑡 𝑖𝑣, chính là vùng làm việc 𝑡 𝑖 của các điểm 𝑃 𝑖 tịnh tiến theo véctơ 𝑃⃗⃗⃗⃗⃗ 𝑖 𝑃.
Hình 2 8 Vùng làm việc của mỗi cánh tay
Vùng làm việc của robot delta ba khớp quay là giao điểm của ba vùng bao hình xuyến 𝑡 𝑖𝑣 (với 𝑖 = 1,2,3) và cũng là vùng bao tập nghiệm của hệ phương trình động học thuận Do cấu trúc của robot delta, chỉ phần giao nhau tương ứng với 𝑧 âm (nằm dưới tấm đế cố định) được chọn Phương trình động học có thể được viết dưới dạng:
Với 𝑥 𝑖 , 𝑦 𝑖 , 𝑧 𝑖 là tọa độ của điểm ảo 𝐴 𝑖𝑣 Phương trình (2.51) là phương trình của 3 mặt cầu tâm 𝐴 𝑖𝑣 và bán kính là 𝑙
Vì tâm mặt cầu nội tiếp nằm trên 𝑧 𝐵 nên phương trình (2.51) được viết lại:
Khi có một điểm mà tại đó 𝑧 1 = 𝑧 2 = 𝑧 3 = 𝑧 𝑖𝑛𝑡, ba hình xuyến sẽ giao nhau tại một mặt cầu 𝑠′ 𝑖𝑛𝑡 có tâm tại 𝐴′ 𝑖𝑛𝑡 (0,0, 𝑧 𝑖𝑛𝑡) và bán kính 𝑟𝑖𝑛𝑡 = 𝑙 Chúng ta sẽ tiến hành xác định mặt cầu này.
Thay 𝑥 𝑖 = 𝑦 𝑖 = 0 vào biểu thức xác định tọa độ các tâm ảo 𝐴 𝑖𝑣 đã xác định ở phần động lực học Ta thu được các phương trình:
𝐿 Các phương trình này có nghiệm với điều kiện 𝐿 ≥ |𝑅 3 |
Suy ra 𝜃 1 = 𝜃 2 = 𝜃 3 , khi đó 𝑧 1 = 𝑧 2 = 𝑧 3 = −𝐿𝑠𝑖𝑛𝜃 𝑖 = 𝑧 𝑖𝑛𝑡 Như vậy ba hình xuyến luôn giao nhau tại một mặt cầu nội tiếp nếu các hình xuyến thỏa mãn điều kiện
𝑅 1 = 𝐿 ≥ |𝑅 3 | Mặt cầu nội tiếp 𝑠′ 𝑖𝑛𝑡 sẽ bao gồm các đường tròn nội tiếp 𝑐 𝑠𝑖𝑛𝑡 có bán kính 𝑟 𝑐𝑠𝑖𝑛𝑡 = √𝑙 2 − (𝑧 𝑃 − 𝑧 𝑖𝑛𝑡 ) 2 tại mặt cắt ngang 𝑧 𝑃
Khi ba hình xuyến giao nhau tại một mặt cầu nội tiếp, bước tiếp theo là lựa chọn một trong mười vùng làm việc đã được nêu trong tài liệu tham khảo.
Hình 2 9 Mười vùng làm việc Việc phân tích chi tiết được nêu ra trong [4] dựa vào các thông số
Tìm mối liên hệ giữa chúng sau đó tìm ra phương án thiết kế dựa theo các thông số cho trước
Cho trước các kích thước 𝑟, 𝑐 và ℎ, mục tiêu là tìm kích thước tối ưu 𝐿, 𝑙, 𝑅 3 Tâm của khối cầu nội tiếp trùng với tâm hình trụ, và hình trụ sẽ xác định duy nhất một khối cầu ngoại tiếp Hình trụ sẽ chiếm thể tích lớn nhất bên trong khối cầu Chọn phương án 1[5].
Trong những năm gần đây, phần cứng máy tính và thiết bị liên quan đã tiến bộ vượt bậc về tốc độ, dung lượng và khả năng xử lý, trong khi giá cả giảm mạnh Điều này đã làm cho máy tính và thiết bị xử lý ảnh không còn là thiết bị chuyên dụng Khái niệm ảnh số đã trở nên phổ biến, và việc thu nhận ảnh số bằng thiết bị cá nhân hay chuyên dụng cùng với xử lý trên máy tính trở nên dễ dàng hơn bao giờ hết.
2.4.1 Khái niệm xử lí ảnh
Con người tiếp nhận thông tin chủ yếu qua các giác quan, trong đó thị giác là quan trọng nhất Gần đây, sự phát triển mạnh mẽ của phần cứng máy tính đã thúc đẩy sự tiến bộ trong xử lý ảnh và đồ họa, mang lại nhiều ứng dụng thiết thực trong cuộc sống hàng ngày.
Xử lý ảnh và đồ họa là yếu tố quan trọng trong tương tác giữa con người và máy móc Quá trình này bao gồm việc thao tác với ảnh đầu vào để đạt được kết quả mong muốn, có thể là một bức ảnh “tốt hơn” hoặc một kết luận cụ thể.
Quá trình xử lý ảnh liên quan đến việc xem ảnh như một tập hợp các điểm ảnh, mỗi điểm ảnh đại diện cho cường độ sáng tại một vị trí cụ thể trong không gian Điều này cho phép hình ảnh được coi như một hàm n biến P (c1, c2, …, cn), biến ảnh thành một đối tượng n chiều trong lĩnh vực xử lý ảnh.
2.4.2 Các vấn đề cơ bản trong xử lí ảnh Ảnh và điểm ảnh Điểm ảnh được xem như là dấu hiệu hay cường độ sáng tại một tọa độ trong không gian của đối tượng và ảnh được xem như là một tập hợp các điểm ảnh Ảnh tĩnh (Still Image): biểu diễn bởi hàm độ chói của các biến tọa độ trong mặt phẳng ảnh
Hình 2 12 Ảnh tĩnh Ảnh tĩnh gồm có:
- Ảnh nhị phân: 1 bit/pixel
Chuỗi ảnh (Sequence of Image): hàm độ chói của các biến tọa độ mặt phẳng và biến thời gian I (x, y, t)
Chuỗi ảnh gồm có video: chuỗi các ảnh (khung hình), quan hệ thời gian giữa các khung hình biểu diễn ảnh động
Mức xám của điểm ảnh là cường độ sáng được gán bằng giá trị nguyên tương ứng với thang đo độ xám
Thang đo độ xám của ảnh phụ thuộc vào số bit được sử dụng để biểu diễn màu sắc của từng điểm ảnh Ảnh nhị phân sử dụng 1 bit, với thang đo độ xám là [0,1] (0: đen, 1: trắng), trong khi ảnh xám sử dụng 8 bit, với thang đo độ xám là [0,255] (0: đen, 255: trắng) Độ phân giải của ảnh cũng ảnh hưởng đến khả năng hiển thị màu sắc.
Là mật độ điểm ảnh được sử dụng để biểu diễn ảnh
Sau khi thu nhận ảnh, hiện tượng nhiễu thường xảy ra với nhiều dạng khác nhau Nhiễu có thể do thiết bị thu ảnh gây ra, chẳng hạn như quang sai của thấu kính hoặc rung động Ngoài ra, nhiễu cũng có thể xuất phát từ các yếu tố ngẫu nhiên và độc lập, như ảnh hưởng của môi trường Bên cạnh đó, nhiễu do vật quan sát, đặc biệt là từ bề mặt bóng gây phản xạ, cũng là một nguyên nhân tạo ra hiện tượng nhiễu lốm đốm trong ảnh.
2.4.3.2Các phương pháp lọc nhiễu
Xứ lí ảnh
3.1.1 Sơ đồ tổng quát hệ thống
Hình 3 1 Sơ đồ tổng quan về hệ thống Nguyên tắc hoạt động:
Camera sẽ xử lý dữ liệu về hình dáng, màu sắc và kích thước của vật trên băng tải, sau đó truyền dữ liệu này về máy tính thông qua phần mềm xử lý ảnh trên giao diện Matlab Tiếp theo, Matlab kết nối với vi điều khiển, từ đó bộ điều khiển sẽ điều khiển các động cơ di chuyển đến vị trí mà camera đã xử lý để gắp vật bằng hệ thống khí nén.
Hệ thống sẽ bao gồm các hệ thống nhỏ khác nhau
- Hệ thống điện điện tử
- Hệ thống lập trình và điều khiển
- Hệ thống xử lí ảnh
Thiết kế
Sơ đồ tổng quan
3.1.1 Sơ đồ tổng quát hệ thống
Hình 3 1 Sơ đồ tổng quan về hệ thống Nguyên tắc hoạt động:
Camera sẽ xử lý dữ liệu của vật trên băng tải, bao gồm hình dáng, màu sắc và kích thước Dữ liệu này sau đó được chuyển về máy tính qua phần mềm xử lý ảnh trên giao diện Matlab Tiếp theo, Matlab kết nối với vi điều khiển, từ đó bộ điều khiển sẽ điều khiển các động cơ đến vị trí mà camera đã xác định để gắp vật bằng hệ thống khí nén.
Hệ thống sẽ bao gồm các hệ thống nhỏ khác nhau
- Hệ thống điện điện tử
- Hệ thống lập trình và điều khiển
- Hệ thống xử lí ảnh
Hình 3 2 Lưu đồ thuật toán
Bắt đầu khởi động, thiết lập ban đầu Matlab sẽ tự kết nối với điều khiển và sau đó trình tự các bước được thiết lập như sau:
Ba cánh tay sẽ chạy về chạm công tắc hành trình để set điểm gốc tại công tắc hành trình
Tiếp theo, di chuyển ba cánh tay về điểm Home, nơi mà các giá trị của 1, 2 và 3 đều bằng 0 Khi đó, ba cánh tay sẽ nằm trong cùng một mặt phẳng với mặt phẳng cố định.
Bấm kết nối Camera để kết nối Camera với Matlab
Bắt đầu Camera sẽ chụp hình trong khung ảnh của Camera
Kiểm tra và xử lý ảnh để xác định sự hiện diện của vật thể Nếu không có vật, màn hình hiển thị sẽ thông báo là "Empty" Ngược lại, nếu phát hiện được vật thể, quá trình xử lý ảnh sẽ tìm ra trọng tâm, màu sắc và hình dáng của vật đó.
Xác định trọng tâm tìm vị trí của vật, offset tọa độ của vật trùng với tọa độ của Robot
Gửi tọa độ dưới dạng String đến vi điều khiển, sau đó tách String để xác định các thông số tọa độ x, y, z Sử dụng x, y, z trong bài toán động học nghịch để suy ra các góc cần thiết cho động cơ di chuyển.
Quá trình di chuyển sẽ khác nhau tùy thuộc vào việc có mang theo bơm hay không Nếu có bơm, mỗi khi đến điểm đích sẽ có một khoảng thời gian delay để hút hoặc nhả vật Ngược lại, nếu không mang bơm, quá trình di chuyển sẽ diễn ra liên tục mà không bị gián đoạn.
Sau khi xác lập hết các điều kiện thì bắt đầu thực hiện di chuyển và cứ tiếp tục lại lại nếu camera bắt được ảnh của vật.
Thiết kế hệ thống cơ khí
Yêu cầu đề ra: hệ thống cơ khí cứng vững để đảm bảo không bị rung lắc khi di chuyển, đảm bảo nguyên tắc khối lượng nhỏ nhất
Sơ đồ khối quá trình thiết kế cơ khí
Hình 3 3 Sơ đồ hệ thống thiết kế cơ khí
Dựa trên các lý thuyết nghiên cứu về động học và vùng làm việc, kích thước tối ưu của vùng làm việc đã được xác định Tiếp theo, thiết kế 3D cho từng chi tiết sẽ được thực hiện trên phần mềm SolidWorks, sau đó tiến hành lắp ráp và mô phỏng.
Quá trình kiểm nghiệm mô phỏng sẽ được thực hiện, và nếu đạt yêu cầu, sẽ tiến hành xuất file gia công Sau đó, tiếp tục đánh giá quá trình gia công; nếu đạt yêu cầu, sẽ tiến hành lắp ráp và thử nghiệm Nếu không đạt, cần kiểm tra và xác định lỗi.
Lỗi gia công thì kiểm tra lại quá trình gia công
Nếu lỗi trong chạy thử mà không đạt yêu cầu so với thực tế thì quay về lại bước thiết kế lại phần 3D
Hình 3 4 Thiết kế lắp ráp trên phần mềm Solidwork
Hình 3 5 Mô phỏng vùng làm việc của Robot
Hình 3 6 Thiết kế gia công
Vật liệu: Nhôm nguyên khối dạng tấm
Vật liệu: Nhôm nguyên khối dạng tấm
Vật liệu: Nhôm nguyên khối dạng trụ
Vật liệu: Nhôm nguyên khối dạng trụ
Hình 3 7 Hộp giảm tốc Thông số chính:
Khi sử dụng động cơ Easy Servo Motor, cần chú ý đến tốc độ hoạt động để tránh hiện tượng chạy quá chậm hoặc vượt quá tốc độ tối đa của hộp giảm tốc Việc này rất quan trọng vì nếu không kiểm soát tốt, có thể gây ra hư hỏng cho bánh răng trong hộp giảm tốc.
Tốc độ tối đa cho phép của động cơ: 2550 RPM.
Thiết kế chọn động cơ
Robot có khả năng làm việc với khối lượng tối đa là 5kg, do đó mỗi cánh tay của robot cần nâng tối đa 5kg.
Theo công thức tính Momen tĩnh:
M: Momen xoắn trên trục động cơ d: Khoảng cách cánh tay đòn i: tỉ số truyền của hộp giảm tốc
Giả sử chọn tốc độ động cơ với 3600 xung/s
Hiệu suất của bộ truyền hộp giảm tốc: 85%
Công suất cần thiết cho động cơ:
Ta cần chọn động cơ thỏa mãn v > 1080 v/p và P > 51 W
Công suất trên các trục
Công suất trên trục động cơ: P1= 0.051 kW
Công suất trên trục công tác: P2= P1.0.85 = 0.043 kW
Tốc độ quay trên trục động cơ: v1= 1080 (vòng/p)
Tốc độ quay trên trục động cơ: v2= 1080/36= 30 (vòng/p)
Momen xoắn trên các trục tính theo công thức:
3.3.2 Động cơ Easy Servo Motor
Hình 3 8 Động cơ easy servo motor Model: ES MH 23480
STT Thông số Đặc điểm Ghi chú
2 Kích thước động cơ NEMA 34 86 mm
3 Nguồn cung cấp cho động cơ
Bảng 3 1 Đặc điểm chính của động cơ ES MH23480
Sơ đồ đấu nối dây
Hình 3 9 Sơ đồ và kí hiệu kết nối dây
Sơ đồ kí hiệu và kết nối với Driver điều khiển
Chân Màu dây Kí hiệu Pha
Bảng 3 2 Sơ đồ đâu dây Đặc điểm nổi bật:
- Tích hợp bộ mã hóa đến 1.000
- Độ chính xác cao, nhiệt thấp, chuyển động mượt
- Ứng dụng rộng rãi trong công nghiệp http://leadshine.com/producttypes.aspx?type=products&categoryy-servo- products&producttypey-servo-motors
Thiết kế hệ thống điện – điện tử
Hình 3 10 Sơ đồ hệ thống điện- điện tử
Sơ đồ khối gồm có 5 khối hoạt động chính:
- Khối nguồn cung cấp nguồn cho động cơ và bộ điều khiển trung tâm
- Khối điều khiển động cơ gồm 3 driver điều khiển động cơ
- Khối điều khiển trung tâm
- Khối thu nhận dữ liệu (Camera)
- Khối xử lí dữ liệu
3.4.1 Thiết kế hệ thống tủ điện
- Nhóm thiết bị điều khiển phải được thành từng nhóm tránh hiện tượng nhiễu khi đặt cùng nhóm động lực
- Nhóm khí cụ điện đóng cắt đặt cùng một hàng phía dưới (Atomat, Contactor, khởi động từ)
- Atomat tổng đặt ở trung tâm hoặc ở trên cùng bên trái tủ điện sao cho dễ vận hành nhất
Contactor là thiết bị điện quan trọng dùng để đóng ngắt các mạch điện động lực, cho phép điều khiển từ xa qua nút bấm hoặc tự động Nó cung cấp nguồn cho các thiết bị công suất lớn như máy lạnh và động cơ kéo tải Khác với rơle, contactor hoạt động với điện áp cao và có thể được điều khiển bằng nam châm điện, thủy lực hoặc khí nén, trong đó loại sử dụng nam châm điện là phổ biến nhất.
Trong ngành công nghiệp, contactor đóng vai trò quan trọng trong việc điều khiển động cơ và thiết bị điện, mang lại sự an toàn và dễ dàng cho người sử dụng thông qua việc nhấn nút mà không cần đến chip xử lý Đây là một giải pháp tự động hóa cơ điện, phù hợp cho những quy trình đơn giản, ổn định và dễ sửa chữa, không yêu cầu chuyên môn cao.
3.4.1.3Bộ lọc nguồn lọc nhiễu (Noise Filter)
Bộ lọc các xung điến áp gây nhiễu các thiết bị Sử dụng cho các bộ nguồn xung, máy hàn, máy tính công nghiệp, Driver Servo…
Nguồn điện ổn định là yếu tố quan trọng trong hệ thống điện từ nhà máy, xí nghiệp, tòa nhà đến hộ gia đình Tuy nhiên, nhiều yếu tố gây ra nhiễu nguồn điện, cả từ bên trong và bên ngoài Các thiết bị như máy cao tần, máy hàn, biến tần, máy biến thế, động cơ điện, bộ chỉnh lưu và motor có thể tạo ra sóng hài (harmonic) trong quá trình khởi động và hoạt động Những sóng này quay ngược lại hệ thống, làm biến đổi biên độ hình sin của nguồn điện và gây ra các xung điện áp không mong muốn.
Khi tín hiệu nguồn hiệu dụng và biên độ giao động điện của các thiết bị thay đổi sẽ gây ra các hiện tượng:
- Làm tăng thêm độ phát nhiệt của các thiết bị;
- Ảnh hưởng đến tuổi thọ và khả năng truyền tải;
Sự ảnh hưởng đến các thiết bị bảo vệ như cầu chì, relay bảo vệ có thể dẫn đến những tác động sai lệch, đồng thời cũng tác động tiêu cực đến các thiết bị đo đếm và cảm biến áp suất, cảm biến siêu âm.
- Ảnh hưởng đến các thiết bị truyền thông
Hình 3 13 Tác dụng của lọc 3P và 1P
3.4.2 Thiết kế mạch điện tử
3.4.2.1Driver điều khiển động cơ
Hình 3 14 Sơ đồ kết nối Nguồn cung cấp: AC 80- 130 V
Hình 3 15 Cách đấu nguồn cho Driver Cách đấu nguồn thực tế
Hình 3 16 Cách đấu nguồn thực tế Kết nối với động cơ
Cách kết nối động cơ với drive cần một cáp nguồn và cáp trả về encorder
Hình 3 17 Kết nối với động cơ
Chú ý: phải kết nối đầy để cả 2 dây cáp dù cable encoder không dung tới nếu không kết nối động cơ sẽ báo lỗi “ERROR P20”
• Kết nối với tín hiệu điều khiển Để điều khiển được động cơ thì cần phải nắm được 3 chân input cơ bản Enable, Pulse, Direction
Tùy thuộc vào loại tín hiệu điều khiển, việc kết nối cần phải được thực hiện cho phù hợp Đối với tín hiệu điều khiển NPN, các chân ENA+, PUL+, DIR+ sẽ được nối với nguồn dương Ngược lại, đối với tín hiệu PNP, các chân ENA-, PUL-, DIR- sẽ được kết nối với nguồn âm.
Hình 3 18 Sơ đồ kết nối với vi điều khiển
Sơ đồ kết nối chân
H2 2206 Tín hiệu điều khiển Màu
Bảng 3 3 Sơ đồ chân và màu trên Driver
Hình 3 19 Sơ đồ kết nối chân với tín hiệu điều khiển
3.4.2.2Cài đặt cấu hình trên Board HMI
Có 2 cách cài đặt cấu hình cho driver:
Cấu hình thông qua máy tính
Để cài đặt cấu hình qua máy tính, bạn cần một cáp để kết nối máy tính với driver và sử dụng phần mềm do nhà sản xuất cung cấp Cáp được sử dụng trong trường hợp này là cáp USB FIREWIRE.
Hình 3 20 Cáp kết nối điều khiển
Giao diện phần mềm nhà sản xuất cung cấp
Hình 3 21 Giao diện phần mềm
Việc kết nối thiết bị rất đơn giản, nhưng cần phải sử dụng đúng loại cáp phù hợp Nhiều trường hợp không thể kết nối với máy tính là do sử dụng cáp có tốc độ truyền không đúng.
Link cài đặt phần mềm: http://leadshine.com/Download.aspx?Type=software
Chọn loại phần mềm phù hợp với loại driver đang sử dụng
Cấu hình trực tiếp trên board HMI Đây là cách điều khiển trực tiếp trên bảng điều khiển của driver
Nó gồm 6 led hiển thị và 5 nút bấm điều khiển các chế độ hoạt động
Hình 3 22 Bảng điều khiển Driver
Có hơn 30 thông số mà ta có thể chỉnh sửa trực tiếp trên board HMI
Cần nắm rõ một số thông số chính trong bảng như sau:
STT Kí hiệu Tên Thông số mặc định
1 PA_07 Pulse/revolution 4000 200-65535 Cài đặt xung đếm để cho motor quay hết một vòng
4000 200-65535 Cài đặt đếm xung cho
1000 1-65535 Cài đặt khi vị trí vượt quá giới hạn này, driver sẽ nhảy vào lỗi cảnh báo giới hạn Bảng 3 4 Thông số cần nắm điều khiển trên board HMI
PA-07 số xung trên một vòng
Trên driver hiện tại cài đặt là 200 xung trên một vòng
PA-08 độ phân giải của encoder
PA-09 Vị trí cảnh báo giới hạn
Và một số thông sô cần nắm như hướng quay, gia tốc, vận tốc
STT Kí hiệu Tên Thông số mặc định
1 0 hoặc 1 0 hoặc 1 thể hiện 2 chiều quay khác nhau( CW/ CCW)
0 0 hoặc 1 0 – Max tần số xung bị giới hạn là 200Khz
1-Max tần số xung bị giới hạn là 500Khz
Gia tốc của sự điều khiển chuyển động được xây dựng sẵn bên trong
4 PA_22 Speed 600 RPM 1-3000 Tốc độ mặc định khi chuyển động thử
100 REV 1-65535 Chuyển động 100 vòng trong chuyển động thử Bảng 3 5 Thông số về chiều, vận tốc, gia tốc
Công thức tính góc và tốc độ
3.4.3 Bảng tính tốc độ và chu kì xung
Xung/vòng Tốc độ (vòng/s) Số xung trên 1 giây (xung/s) Chu kỳ xung (s) Chu kỳ xung (us)
Xung/vòng Tốc độ (vòng/s) Số xung trên 1 giây (xung/s) Chu kỳ xung (s) Chu kỳ xung (us)
Bảng 3 6 Bảng tính tốc độ và chu kì xung
Chọn loại vi điều khiển: Mega 2560
Sơ đồ chân của Arduino mega 2560
Hình 3 24 Sơ đồ chân board mega 2560
Vi điều khiển ATmega2560 Điện áp hoạt động 5VDC
Nguồn ngoài(jack dc) 7-12VDC
Bảng 3 7 Thông số kỹ thuật của Board Arduino Mega
Arduino UNO R3 không có tính năng bảo vệ cắm ngược nguồn, vì vậy bạn cần kiểm tra kỹ các cực âm và dương trước khi kết nối nguồn Việc cấp nguồn sai có thể làm hỏng Arduino, biến nó thành một vật vô dụng Do đó, nếu có thể, bạn nên sử dụng nguồn từ cổng USB để đảm bảo an toàn cho thiết bị.
Các chân 3.3V và 5V trên Arduino được sử dụng để cung cấp nguồn cho các thiết bị khác, không phải là chân cấp nguồn vào Cần lưu ý rằng việc cấp nguồn sai vị trí có thể gây hỏng board, điều này không được nhà sản xuất khuyến khích.
Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board
Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển
Khi sử dụng Arduino UNO, cần lưu ý rằng cường độ dòng điện qua bất kỳ chân Digital hoặc Analog nào không được vượt quá 40mA, vì điều này có thể gây hỏng vi điều khiển Để đảm bảo an toàn, nếu không sử dụng chân để truyền nhận dữ liệu, hãy mắc một điện trở hạn dòng.
Thiết kế phần lập trình cho vi điều khiển
3.5.1 Lưu đồ thuật toán điều khiển
Hình 3 25 Lưu đồ thuật toán điều khiển
3.5.2 Điều khiển động cơ có gia tốc
Mục đích của việc điều khiển tuyến tính là quản lý tốc độ động cơ, bao gồm việc tăng tốc, giảm tốc, xác định tốc độ tối đa và số bước cần thiết để di chuyển đến vị trí đích.
Tại sao cần gia tốc?
Khi di chuyển nếu không có gia tốc lúc động cơ sẽ di chuyển sẽ gặp một số vấn đề như:
Thứ 1: Quá trình lúc khởi động, nếu không có gia tốc sẽ khó có thể đạt tới vận tốc cực đại
Thứ 2: Nếu không có gia tốc khi tới điểm đích, động cơ sẽ dừng lại đột ngột làm có hiện tương rung lắc Nếu chạy vận tốc nhanh mà dừng lại đột ngột sẽ làm cho hộp giảm tốc nhanh bị mòn và dễ rung lắc các bánh răng
Gia tốc là sự thay đổi của vận tốc theo thời gian, giúp đảm bảo an toàn trong quá trình di chuyển Khi sử dụng gia tốc, người lái có thể tránh được tình trạng trượt ngã khi vận chuyển hàng hóa nặng với tốc độ cao.
Giả sử một chiếc xe di chuyển với vận tốc 5 m/s, bạn cảm thấy tốc độ này quá chậm và quyết định tăng tốc độ lên 10 m/s Trong khoảng thời gian 5 giây, vận tốc của bạn đã tăng từ 5 m/s lên 10 m/s Từ đó, gia tốc của bạn được tính là a = (10 - 5)/5.
Khi bạn đạt tốc độ 10 m/s và không muốn tăng tốc độ nữa, gia tốc sẽ trở về 0, dẫn đến chuyển động đều với vận tốc v = 10 m/s.
Gia tốc có chiều, và nếu chiều gia tốc cùng với chiều chuyển động, thì đó là hiện tượng di chuyển nhanh dần đều Ngược lại, nếu gia tốc có chiều ngược với chiều chuyển động, thì đó là di chuyển chậm dần đều.
3.5.3 Phương pháp điều khiển động cơ có gia tốc
3.5.3.1Đặc tính tốc độ của động cơ Servo
Một nhược điểm của động cơ bước là khả năng đáp ứng momen bị hạn chế khi hoạt động ở tốc độ cao Momen của động cơ sẽ giảm khi tốc độ tăng lên, đặc biệt là tại tốc độ cộng hưởng, mà tốc độ này lại phụ thuộc vào tải trọng mà động cơ phải chịu.
Hình 3 26 Mối quan hệ giữa tốc độ và Momen của động cơ ES- MH 23480
Hình 3 27 Mối quan hệ giữa tốc độ và momen
3.5.3.2Phương pháp điều khiển tuyến tính tốc độ Để quay động cơ với tốc độ không đổi, chúng ta phải tạo ra những xung với độ lặp lại là liên tục (Hình 3.23)
Hình 3 28 Tạo xung với tốc độ không đổiv Một khoảng thời gian delay được tạo ra giữa các xung với tần số f [Hz]
Để điều khiển động cơ một cách hiệu quả, việc sử dụng gia tốc là rất quan trọng trong việc bắt đầu và dừng động cơ, đặc biệt trong lĩnh vực robot Hình 3.24 minh họa mối quan hệ giữa gia tốc, vận tốc và vị trí.
Để đạt được gia tốc như trong hình 3.29, khoảng thời gian t cần được tính toán chính xác, nhằm đảm bảo tốc độ di chuyển theo một đường dốc tốc độ.
Hình 3 30 Đặc tính tốc độ và xung điều khiển Theo tài liệu tham khảo [10]
Ta có công thức tính toán khoảng thời gian delay giữa các xung đầu và các tiếp theo đó như sau:
Thời gian delay của bước đầu tiên
𝜔 ′ Thời gian delay của các bước tiếp theo 𝑐 𝑛 = 𝑐 0 (√𝑛 + 1 − √𝑛)
Thiết kế hệ thống khí nén
Hình 3 31 Hệ thống khí nén
Máy khí nén thường chứa nhiều tạp chất và hóa chất, bao gồm dầu tổng hợp, dung môi hữu cơ, muối và khí ăn mòn trong không khí Những yếu tố này có thể gây hư hại và ăn mòn các xilanh, ảnh hưởng tiêu cực đến quá trình hút vật của đầu công tác.
Nếu bơm khí nén bị ô nhiễm bởi chất thải hoặc bột cacbon, điều này có thể gây cản trở cho bộ phận tạo chân không, van solenoid và công tắc áp suất, dẫn đến giảm hiệu suất hoặc gây ra lỗi trong hệ thống khí.
Máy nén khí bộ phận tạo ra nguồn khí cung cấp cho hệ thống
Bộ phận làm khô không khí là một thành phần thiết yếu trong hệ thống khí nén, đảm bảo không khí được xử lý hiệu quả trong mọi điều kiện khí hậu, từ vùng nhiệt đới đến sa mạc Hơi nước có trong không khí nếu không được kiểm soát sẽ chuyển hóa thành trạng thái lỏng, gây ảnh hưởng tiêu cực đến hiệu suất hoạt động của hệ thống và quá trình lọc sau đó.
Sau khi không khí được làm khô, một lượng lớn tạp chất sẽ đi qua bộ phận làm khô Bộ lọc không khí có nhiệm vụ loại bỏ các tạp chất này và thải ra ngoài.
Bộ lọc không khí có nhiệm vụ loại bỏ cặn bẩn và các hóa chất như dung môi hữu cơ, muối, và chất ăn mòn, nhằm tạo ra hệ không khí sạch.
Bộ van điều áp để điều chỉnh áp suất cho hệ thống Van hiển thị có thể hiển thị bằng kim hoặc đồng hồ điện tử
Van điện từ để điều khiển luồng hay đóng mở khí
Bộ chuyển đổi dòng khí
Bộ phận này sẽ chuyển đổi khí nén thành chân không
Bộ phận công tác như hút, tay gắp…
Thiết kế phần xử lí ảnh
Hình 3 32 Lưu đồ thuật toán xử lí ảnh
3.7.2 Xứ lí giao tiếp qua Webcam video = videoinput('winvideo',2); % bật camera vidRes = video.VideoResolution; % trả về độ phân giải video (160*120 px) nBands = video.NumberOfBands; %trả về số lớp ảnh trong video hImage = image( zeros(vidRes(2), vidRes(1), nBands),'Parent', handles.axes3);
% tạo nên một mảng 3 lớp với số cột bằng số pixel theo chiều ngang, số hàng bằng số pixel theo chiều dọc preview(video, hImage); % 160x120
Hình 3 33 Hình ảnh gốc chụp từ Camera
3.7.3 Chuyển ảnh màu dạng RGB sang HSV
Đoạn mã trên thực hiện việc lấy một ảnh từ khung video và chuyển đổi ảnh từ không gian RGB sang HSV Đầu tiên, nó tạo ma trận giá trị Hue bằng cách nhân kênh Hue trong ảnh HSV với 360 và làm tròn kết quả Tiếp theo, nó tách riêng các ma trận giá trị Saturation và Value từ ảnh HSV Cuối cùng, đoạn mã thiết lập ngưỡng cho Saturation (độ bão hòa) và Value (độ sáng) để xác định các pixel có giá trị nằm trong khoảng cho phép.
3.7.4 Loại bỏ các thành phần nhiễu red = medfilt2(red, [3 3]); % lọc trung bình red = bwareaopen(red,200); % loại bỏ các đối tượng nhỏ hơn 200 pixel red = imclearborder(red,8); % xóa các pixel kết nối với viền của hình ảnh bwRed = imfill(red, 'holes'); % lấp đầy các lỗ trong ảnh
3.7.5 Xác định tọa độ âm, và góc nghiêng của vật
Rstats = regionprops(logical(bwRed), 'BoundingBox', 'Centroid',
The code processes objects in an image by calculating their bounding boxes, centroids, and orientations It visually represents these objects by drawing red rectangles around them and marking their centroids with red stars Additionally, it annotates the centroids with their pixel coordinates and orientation angles, using bold Arial font in blue and red colors for clarity The implementation ensures a clear and informative display of object properties within the image.
Hình 3 34 Ảnh tọa độ, màu sắc của vật
3.7.6 Chuyển đổi toạ độ trên khung ảnh sang tọa độ trên mặt phẳng thực tế
Gọi hệ trục tọa độ khung ảnh là O1x1y1, hệ trục tọa độ gắn vào đáy Robot là O2x2y2
Hình 3 35 Chuyển đổi hệ tọa độ
Ta có khung ảnh thu được từ camera có thước 160*120 (pixel) Xét độ dài tia
Tọa độ O1x1 là 160 pixel và O1y1 là 120 pixel Qua việc đo thực tế, ta xác định O1x1 là 99.42 mm, từ đó tính được 1 pixel tương đương 0.621 mm Tiếp theo, chúng ta chuyển đổi từ hệ tọa độ O1x1y1 sang hệ tọa độ O2x2y2, trong đó tọa độ O1 trong hệ O2x2y2 là (117; -157) pixel Giả sử tọa độ A bất kỳ trong hệ O1x1y1 là (xA, yA) pixel Vì O2 là gốc của Robot, để Robot di chuyển đến điểm A, cần tính tọa độ vectơ 𝐴𝑂⃗⃗⃗⃗⃗⃗⃗ 2.
Từ hai hệ trục tọa độ, ta nhận thấy rằng tia O1x1 và tia O2y2 cùng phương, trong khi tia O2x2 và tia O1y1 cũng cùng phương Do đó, vecto 𝐴𝑂⃗⃗⃗⃗⃗⃗⃗ 2 có tọa độ (Px, Py), với Px = 120 – yA (pixel) và Py = 160 - xA (pixel) Ở đây, Px và Py tương ứng với tọa độ vị trí trong phương trình động học nghịch.
Khi chuyển đổi tọa độ sang mặt phẳng thực tế, giá trị Px được tính bằng công thức Px = (120 – yA)/2 (mm) và Py bằng Py = (160 - xA)/2 (mm) Do đề tài chỉ tập trung vào xử lý ảnh 2D, chỉ cần xác định tọa độ Px và Py, trong khi Pz sẽ được giữ cố định Với ba thông số Px, Py, Pz, chúng ta có thể tính toán các góc xoay θ1, θ2, θ3, từ đó điều khiển robot di chuyển đến vị trí mong muốn.
Đánh giá và kết luận
Kết quả
Sau nhiều tháng nỗ lực hoàn thiện và nâng cấp sản phẩm, nhóm đã đạt được một số thành công đáng kể, đúng theo tiến độ đã đề ra.
Hình 4 1 Hoàn thiện sản phẩm Các thông số kĩ thuật chính
Stt Đặc tính Kí hiệu Thông số
5 Tấm đế cố định sB 364 mm
6 Tấm đế di động sP 173 mm
Về giao diện điều khiển:
Trong giao diện này có thể điều khiển robot Delta theo kiểu dạy học hoặc có thể tự động xử lí ảnh và bắt vật
Hình 4 2 Giao diện điều khiển
Về giao diện mô phỏng:
Hình 4 3 Giao diện mô phỏng tính toán động học Thiết kế tủ điện
Có đầy đủ các thành phần bảo vệ nguồn và bảo vệ các driver cho động cơ
Các thiết bị điện được bố trí một cách hợp lí
Có các thành phần lọc nhiễu cho Driver động cơ
Hình 4 4 Thiết kế tủ và sơ đồ đi dây
Đánh giá
Robot Delta hoạt động hiệu quả và ổn định, với thiết kế chắc chắn Tuy nhiên, vẫn còn một số vấn đề cần cải thiện, đặc biệt là mối liên kết giữa các cánh tay và tấm đế.
Phần xử lý ảnh đã được tích hợp thành công vào đồ án, với camera ghi nhận vật thể một cách chính xác và trả về đúng vị trí Tuy nhiên, vẫn còn nhiều vấn đề cần được nâng cấp và cải tiến để nâng cao hiệu quả hoạt động.
Đã hoàn thành việc mô phỏng Robot Delta trên phần mềm Matlab, giải quyết các bài toán động học và tạo ra mô hình mô phỏng Tuy nhiên, cần cải thiện độ chính xác của các bài toán để nâng cao hiệu quả mô phỏng.
Các thành phần bảo vệ nguồn và driver cho động cơ đã được lắp đặt Để cải thiện hiệu suất hoạt động của Robot, cần nâng cấp mạch điều khiển nhằm giảm thiểu nhiễu trong quá trình hoạt động.
Kết luận
Sau nhiều tháng nghiên cứu và phát triển, nhóm tác giả đã hoàn thành dự án đúng tiến độ và đáp ứng yêu cầu thiết kế Việc áp dụng lý thuyết kết hợp với thực tiễn đã giúp nhóm tích lũy nhiều kinh nghiệm trong thiết kế Robot, đặc biệt là Robot Delta.
Về mặt lí thuyết tìm hiểu được quy trình thiết kế một Robot bắt đầu từ việc
1 Tìm hiểu động học của Robot
2 Tìm hiểu được động lực học của Robot
3 Xác định được động học tiếp theo là xác định vùng làm việc của Robot
4 Từ vùng làm việc suy ngược ra các kích thước của Robot (Cánh tay trên, cánh tay dưới, tấm đế di động, tấm đế cố định)
5 Tính chọn được động cơ và từ động cơ chọn được Driver điều khiển cho động cơ
6 Tìm hiểu, sử dụng được các phầm mềm hiện đại được ứng dụng nhiều trong việc thiết kế và lập trình Robot (Matlab, Visual, Solidworks…)
Về mặt thiết kế thực tiễn đây là một trong những kinh nghiệm quý giá khi ra trường
1 Điều khiển một động cơ Servo Motor theo dạng chuẩn công nghiệp
2 Cách sử dụng một máy tính nhúng
3 Gặp các vấn đề trong cơ khí như sai số, dung sai là rất quan trọng trong lắp ghép Nó ảnh hưởng trực tiếp việc di chuyển của Robot
4 Biết được cách thiết kế tủ điện theo dạng chuẩn công nghiệp
5 Biết được hệ thống cơ khí rất quan trọng trong độ cứng vững của Robot
Nhóm tác giả xin gửi lời cảm ơn chân thành tới thầy TS Lê Hoài Nam, cùng các thầy cô trong khoa và công ty điện tử R&P, vì đã hỗ trợ nhóm trong thời gian khó khăn, giúp hoàn thành đồ án một cách tốt nhất.
Xin chân thành cảm ơn!
Mặc dù đã đạt được một số thành công nhất định, nhóm cần nỗ lực hơn nữa để đưa đề tài vào ứng dụng trong công nghiệp Trong tương lai, nhóm đặt ra hai mục tiêu quan trọng để phát triển hơn nữa.
- Ổn định phần cơ khí một cách chắn chắn
- Nghiên cứu sâu vào phần động lực học của Robot Delta
- Thiết kế phần băng tải vào trong hệ thống
- Áp dụng hệ thống nhúng vào trong dây chuyền
- Thiết kế Robot Delta có thể hàn mạch điện tử
- Đa dạng hóa kiểu dáng của Robot Delta từ 3 bậc tự do lên thành 4 bậc
[1] Dangzang, 2010 Parallel Robotic Machine Tool
[2] R Clavel, 1988, “A Fast Robot with Parallel Geometry”, Proc Int Symposium on Industrial Robots, pp 91-100
[3] R Clavel, 1990, “Device for the Movement and Positioning of an Element in Space”, US Patent 4976582 A
In their paper presented at the 4th International Conference on Green Technology and Sustainable Development (GTSD) in 2018, Hoai Nam LE and Xuan Hoang LE explore the geometrical design of a RUU type Delta robot, focusing on its predefined workspace Their research contributes to advancements in robotics, emphasizing sustainable development and innovative design principles.
[5] [Hoai Nam LE and Xuan Hoang LE] Bài toán động học, động lực học và phương pháp thiết kế hình học cho Robot Delta kiểu ba khớp quay
[6] [Nguyễn Vĩnh An] “So sánh một số phương pháp phát hiện biên”, Tạp chí Khoa học ĐHQGHN: Khoa học Tự nhiên và Công nghệ, Tập 31, Số 2 (2015) 1-7
[8] http://www.ia.omron.com
[10] 8 bit AVR Microcontroler of ATMEL
[11] Žlajpah, Leon "Simulation in robotics." Mathematics and Computers in Simulation 79.4 (2008): 879-897
[12] X.-J Liu, J Wang, H Zheng, “Workspace atlases for the computer aided design of the Delta robot”, Proc IMECHE part C: J Mech Engrg Sci., vol 217, pp 861-
1 Code động học viết bằng ngôn ngữ C sử dụng cho vi điều khiển
The specifications for the robotic arm include an end effector with a value of 150, which is crucial for its functionality Additionally, the base is set at 364.41, providing stability to the structure It is important to note that this configuration is based on the triangular geometry of the arm, with key points determined by the lengths of 415 and 150.
*/ const float e = 173.2; // end effector // chu y day la canh cua tam giac// diem noi diem giua gia canh const float f = 364.41; // base const float re = 296; const float rf = 200;
The article discusses key trigonometric constants used in calculations, including the square root of three, the value of pi, and the sine, cosine, and tangent values for angles such as 120 degrees, 60 degrees, and 30 degrees Specifically, it highlights that the sine of 120 degrees equals the square root of three divided by two, the cosine of 120 degrees is negative one-half, and the tangent of 60 degrees equals the square root of three Additionally, it notes that the sine of 30 degrees is one-half, while the tangent of 30 degrees is the reciprocal of the square root of three The article also introduces a function, delta_calcForward, which calculates values based on three angles and outputs coordinates in three-dimensional space.
In this calculation, the variable `t` is determined by the difference between `f` and `e`, adjusted by the tangent of 30 degrees, divided by 2 The angles `theta1`, `theta2`, and `theta3` are converted from degrees to radians The coordinates `y1` and `z1` are computed using the radius `rf` and the cosine and sine of `theta1` For `theta2` and `theta3`, the `y`, `x`, and `z` coordinates are derived similarly, incorporating a sine adjustment and the tangent of 60 degrees The variable `dnm` calculates a determinant based on the differences between the `y` coordinates and the `x` values Finally, the variables `w1`, `w2`, and `w3` are computed as sums of squares of the respective coordinates, providing essential geometric information for further analysis.
// a*z^2 + b*z + c = 0 float a = a1*a1 + a2*a2 + dnm*dnm; float b = 2*(a1*b1 + a2*(b2-y1*dnm) - z1*dnm*dnm); float c = (b2-y1*dnm)*(b2-y1*dnm) + b1*b1 + dnm*dnm*(z1*z1 - re*re);
// discriminant float d = b*b - (float)4.0*a*c; if (d < 0) return -1; // non-existing point z0 = -(float)0.5*(b+sqrt(d))/a; x0 = (a1*z0 + b1)/dnm; y0 = (a2*z0 + b2)/dnm; return 0;
// helper functions, calculates angle theta1 (for YZ-pane) int delta_calcAngleYZ(float x0, float y0, float z0, float &theta) { float y1 = -0.5 * 0.57735 * f; // f/2 * tg 30 y0 -= 0.5 * 0.57735 * e; // shift center to edge
// z = a + b*y float a = (x0*x0 + y0*y0 + z0*z0 +rf*rf - re*re - y1*y1)/(2*z0); float b = (y1-y0)/z0;
// discriminant float d = -(a+b*y1)*(a+b*y1)+rf*(b*b*rf+rf); if (d < 0) return -1; // non-existing point float yj = (y1 - a*b - sqrt(d))/(b*b + 1); // choosing outer point float zj = a + b*yj; theta = 180.0*atan(-zj/(y1 - yj))/pi + ((yj>y1)?180.0:0.0); return 0;
The inverse kinematics function calculates joint angles (theta1, theta2, theta3) based on a given 3D position (x0, y0, z0) It returns a status code: 0 indicates a successful calculation, while -1 signifies a non-existing position The function initializes all angles to zero and first computes theta1 using the delta_calcAngleYZ function If successful, it then calculates theta2 by rotating the coordinates by +120 degrees, followed by theta3 with a -120-degree rotation This systematic approach ensures accurate angle determination for robotic movements.
2 Code phương trình động học nghịch được viết trong Matlab để mô phỏng function calculatinginverse_Callback(hObject, eventdata, handles)
% hObject handle to calculatinginverse (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA) global sBm ; sBm = str2double(get(handles.sB,'string')); global Lm ;
Lm = str2double(get(handles.L,'string'));
%rfm = str2double(get(handles.L,'string')); global lm ; lm = str2double(get(handles.l,'string'));
The code snippet initializes several global variables by retrieving values from user interface elements It calculates parameters such as `y1`, `k`, and `yim1`, and subsequently computes the value of `b` and the discriminant `d` If `d` is negative, it prompts the user to select a different pose to avoid singularities If `d` is non-negative, it calculates the outer point `yj` and derives the angle `theta1`, adjusting it based on the position of `yj` relative to `y1` Finally, it displays the calculated angle in the user interface.
The calculation for the angle theta2 involves transforming coordinates using trigonometric functions, specifically with a rotation of 120 degrees The new coordinates (xim2, yim2, zim2) are derived from the original coordinates (xim, yim, zim), with yim2 adjusted by a constant k The parameters a2 and b2 are computed based on these transformed coordinates, leading to the determination of d2 If d2 is negative, a warning is displayed indicating that the pose is out of range and a different pose should be selected to avoid singularities If d2 is valid, the outer point yj2 is calculated, followed by zj2, and the angle theta2 is derived using the arctangent function If yj2 exceeds y1, theta2 is adjusted by adding 180 degrees, and the final angle is rounded and set in the user interface.
The transformation equations for the coordinates are defined as follows: xim3 = xim * cos(120°) - yim * sin(120°) and yim3 = yim * cos(120°) + xim * sin(120°), with zim3 remaining unchanged After adjusting yim3 by subtracting a constant k, the values of a3 and b3 are calculated based on the modified coordinates The discriminant d3 is evaluated to ensure the pose is within range; if not, a warning is displayed to select a different pose to avoid singularities If the pose is valid, yj3 is determined as the outer point, and zj3 is computed accordingly The angle theta3 is calculated using the arctangent function, with adjustments made if yj3 exceeds y1 Finally, the angle is rounded and displayed in the user interface.
Code phương trình động học thuận được viết trong Matlab để mô phỏng global sBm ; sBm = str2double(get(handles.sB,'string')); global Lm ;
Lm = str2double(get(handles.L,'string'));
%rfm = str2double(get(handles.L,'string')); global lm ; lm = str2double(get(handles.l,'string'));
%rem = str2double(get(handles.l,'string')); global sPm; sPm = str2double(get(handles.sP,'string'));
The code snippet retrieves values from user interface elements, converting them to double precision numbers It assigns these values to global variables: angle1fm, angle2fm, and angle3fm, which correspond to angles input by the user Additionally, it calculates a variable 'k' using the difference between sBm and sPm, divided by twice the square root of three.
A1v=[0;-k-Lm*cos(angle1fm*pi/180);-
Lm*sin(angle1fm*pi/180)]; %x1=0->projsPmction on yz plansPm
A2v=[(k+Lm*cos(angle2fm*pi/180))*cos(30*pi/180);
(k+Lm*cos(angle2fm*pi/180))*sin(30*pi/180);
-Lm*sin(angle2fm*pi/180)];
A3v=[(-k-Lm*cos(angle3fm*pi/180))*cos(30*pi/180);
(k+Lm*cos(angle3fm*pi/180))*sin(30*pi/180);
-Lm*sin(angle3fm*pi/180)];
%proportional constants sBmor sPmnd sPmsBmsBmsPmctor position w1v(1)^2 + A1v(2)^2 + A1v(3)^2; w2v(1)^2 + A2v(2)^2 + A2v(3)^2; w3v(1)^2 + A3v(2)^2 + A3v(3)^2;
To solve the quadratic equation, select smaller negative values for the variables The coefficients are defined as follows: \( a = (a1^2 + a2^2 + 1) \), \( b = 2 \times (a1 \times b1 + a2 \times (b2 - y1) - z1) \), and \( c = (b1^2 + (b2 - y1)^2 + z1^2 - lm^2) \) Using the symbolic variable \( z \), the equation \( a \cdot z^2 + b \cdot z + c = 0 \) is solved for \( z \) The solutions are denoted as \( nghiemz1 = z(1) \) and \( nghiemz2 = z(2) \) If \( nghiemz1 \) is greater than or equal to \( nghiemz2 \) and \( nghiemz2 < 0 \), then the result is \( nghiemz = nghiemz2 \) Conversely, if \( nghiemz1 < nghiemz2 \) and \( nghiemz1 < 0 \), then \( nghiemz = nghiemz1 \) Finally, the result \( zz \) is rounded to two decimal places.
%inssPmrt z into: xx=round((a1*zz+b1), 2) yy=round((a2*zz+b2), 2) set(handles.xf,'String',num2str(xx));