Tổng quan về đề tài
Giới thiệu chung
Phân loại sản phẩm hiện nay 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à thường xuyên lặp lại Việc 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ấy đ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 những 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 có độ linh hoạt cao và không gian làm việc rộng, 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 có không gian làm việc hạn chế và có thể xuất hiện các điểm kỳ dị, nhưng lại sở hữu độ cứng vững cao nhờ cấu trúc ràng buộc giữa các khâu trong chuỗi động học kín Điều này cho phép robot song song thực hiện các chuyển động với vận tốc cao mà không bị hạn chế bởi quán tính.
Kể từ khi ra đời vào năm 1947 nhờ phát minh của tiến sỹ Eric, 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 Với ư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, nhằm ứng dụng trong công nghiệp và 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 công nghệ quan trọng trong ngành công nghiệp Nhiều hãng sản xuất robot nổi tiếng như Fanuc, ABB và Bosch Packaging đã thành công trong việc chế tạo và ứng dụng robot Delta vào 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 linkages and features a mobile platform with three degrees of translational freedom relative to a fixed base.
Robot song song đang ngày càng thu hút sự quan tâm của các nhà khoa học nhờ vào những ưu việt của chúng Chúng được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau, bao gồm vật lý, cơ khí và quân sự.
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 ba khớp xoay là loại robot đượ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 Loại robot này sau đó đã được ứng dụng rộng rãi trong các dây chuyền sản xuất thực phẩm và trong lĩnh vực y học, đặc biệt là 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ỏ hơn của các thành phần cấu tạo giúp tăng cường độ cứng vững Cấu trúc hình học đặc biệt cho phép chia sẻ đồng thời tất cả các lực tác động giữa các chân, trong khi thiết kế động học của các khớp liên kết chuyển đổi các lực này thành lực kéo và nén hiệu quả.
Các thao tác phức tạp có thể được thực hiện với độ chính xác cao nhờ vào cấu trúc song song, trong đó sai số chỉ phụ thuộc vào sai số dọc trục của các cụm cơ cấu chân riêng lẻ mà không bị tích lũy.
Thiết kế có thể được thực hiện ở nhiều kích thước khác nhau, giúp đơn giản hóa các cơ cấu máy và giảm số lượng thành phầ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 thiết kế này mang lại ư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 năng suất trong ngành công nghiệp, hệ thống phân loại sản phẩm sẽ được tối ưu hóa nhờ vào tốc độ vượt trội của Robot Delta Mục tiêu chính là xây dựng một hệ thống phân loại dựa trên màu sắc và hình dáng, sử dụng camera để xử lý hình ảnh Camera sẽ xác định tọa độ của vật thể và gửi thông tin này đến máy tính, từ đó máy tính sẽ điều khiển vi điều khiển để định vị chính xác các cánh tay của Robot Delta.
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, trong đó các khâu dạng thanh được kết nối bằng các khớp động Sơ đồ động cơ của robot chuỗi bao gồm chuỗi nối tiếp các khâu động, 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 có khâu cuối nối với giá cố định qua nhiều mạch động học, cho phép hoạt động song song Sự khác biệt trong sơ đồ động này tạo ra nhiều đặc điểm khác nhau về động học và động lực học.
Bài toán động học
Robot delta kiểu ba khớp quay có cấu trúc gồm ba cánh tay giống nhau, giúp duy trì sự song song giữa tấm đế cố định và tấm đế di động với 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 Các biến khớp trong thiết kế này đóng vai trò quan trọng trong việc điều khiển hoạt động của robot.
Chiều dương của góc 𝜃 𝑖 (với 𝑖 = 1,2,3) được xác định theo quy tắc bàn tay phải, như mô tả trong hình dưới đây Góc 𝜃 𝑖 = 0 được thiết lập 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 bên dưới, đảm bảo chuyển động tịnh tiến hiệu quả Hệ thống khớp các-đăng (U – Universal) được hình thành từ ba khớp quay R không nằm cùng một vị trí (non-collocated), trong đó có 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 trong không gian ba chiều (xyz) của vùng làm việc Cấu trúc của robot bao gồm ba chuỗi RUU giống nhau, mô phỏng chân người với các khớp hông (𝐵𝑖), khớp gối (𝐴𝑖) và mắt cá chân (𝑃𝑖) Tấm đế cố định có hình dạng tam giác đều với chiều dài cạnh là 𝑠𝐵, trong khi tấm di chuyển có hình dạng tam giác đều được nghịch đảo theo phương không đổi.
Các thông số hình học của tấm đế cố định và tấm đế di động (chứa khâu chấp hành cuối) được minh họa trong hình 2.2, với các ký hiệu và ý nghĩa đượ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 độ {𝐵} được gắn với tấm đế cố định, có gốc tọa độ tại tâm của tam giác đều tấm đế này, trong khi hệ tọa độ {𝑃} gắn vào tấm đế di động với gốc tọa độ là tâm của tam giác đều tấm đế di động Hai hệ tọa độ {𝐵} và {𝑃} luôn cùng phương, do đó ma trận quay [𝑅𝑃𝐵] = 𝐼₃ Các biến khớp được biểu diễn bởi Θ = [𝜃₁ 𝜃₂ 𝜃₃]ᵀ, và vị trí của khâu chấp hành cuối 𝑃 trong hệ tọa độ {𝐵} được biểu diễn là 𝑂𝑃⃗⃗⃗⃗⃗ /𝐵 = [𝑥 𝑦 𝑧]ᵀ Thiết kế có sự đố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 các phương trình điều khiển và mô phỏng Robot.
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:
Do hướng của hệ tọa độ {𝐵} và {𝑃} là đồng nhất, ma trận xoay [𝑅𝑃𝐵] bằng với ma trận đơn vị 𝐼₃ Hơn nữa, cấu trúc của robot có tính đối xứng với độ dài cạnh của các hình bình hành là 𝑙.
Để đơ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ả chi tiết trong các phương trình từ (2.1) đến (2.6) Véctơ 𝐵⃗⃗⃗⃗⃗⃗⃗⃗ 𝑖 𝐴 𝑖 cũng đóng vai trò quan trọng trong việc phân tích vị trí này.
/𝐵 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ả không chính xác, cho rằng robot delta có 3 bậc tự do, nhưng thực tế lại cho thấy robot này là một cấu trúc siêu tĩnh, điều này là sai.
Công thức Kutzbach không áp dụng cho cấu trúc đặc biệt như robot delta, 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à giảm hai khớp quay ở mỗi cơ cấu, robot vẫn duy trì hoạt động động học tương tự như robot delta ban đầu Trong trường hợp này, công thức Kutzbach cho 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 ba cơ cấu hình bình hành bằng ba khâu đơn (khâu ảo), trong đó cần xem xét các khớp các-đăng ở hai đầu khâu ảo Áp dụng công thức Kutzbach, ta cũng nhận được kết quả tương tự: 𝑁 = 8, 𝐽 1 = 3, 𝐽 2 = 6, 𝐽 3 = 0 và 𝑀 = 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: Given the end-effector coordinates 𝑂𝑃⃗⃗⃗⃗⃗ /𝐵 = [𝑥 𝑦 𝑧] 𝑇, 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 được xác định bởi các nghiệm không tầm thường (khác 0) và có thể giải bằng phương pháp tích Theo sơ đồ động học, bài toán này có thể được giải độc lập cho mỗi cánh tay RUU Về mặt hình học, nghiệm 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, phương pháp lượng giác cũng có thể được áp dụng để giải bài toán này.
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à để hiểu rõ ả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ừ đó có thể áp dụng vào thiết kế ngược một cách hiệu quả.
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
Tâm 𝐴 𝑖 của điểm 𝑠 𝑖 (𝐴 𝑖 , 𝑙) di chuyển trên đường tròn 𝑐 𝑖 (𝐵 𝑖 , 𝐿) Tọa độ của các điểm 𝐴 𝑖 được xác định thông qua các phương trình (2.31), (2.32) và (2.33), với góc 𝜃 𝑖 nằm trong khoảng [𝜃 𝑖𝑚𝑖𝑛 , 𝜃 𝑖𝑚𝑎𝑥 ] Khoảng này đại diện cho 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 vừa xác định được vùng làm việc của mỗi cánh tay RUU, tức là vùng bao quanh các điểm 𝑃 𝑖 Bước tiếp theo là tìm kiếm 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, có khả năng 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 độ {𝐵} Vì vậy, 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 𝑃 𝑖 di chuyể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 𝑡 𝑖𝑣 (𝑖 = 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 trưng của robot delta, chỉ phần giao nhau tương ứng với 𝑧 âm, tức là nằm dưới tấm đế cố định, được chọn làm vùng làm việc Phương trình động học của robot có thể được diễn đạ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 ba hình xuyến giao nhau tại một điểm 𝑧 𝑖𝑛𝑡, chúng tạo thành một mặt cầu 𝑠′ 𝑖𝑛𝑡 có tâm tại 𝐴′ 𝑖𝑛𝑡 (0,0, 𝑧 𝑖𝑛𝑡) và bán kính 𝑟𝑖𝑛𝑡 = 𝑙 Mục tiêu là 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à ℎ, nhiệm vụ là tìm kích thước tối ưu 𝐿, 𝑙, 𝑅 3 Tâm của khối cầu nội tiếp sẽ trùng với tâm của 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ụ 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, sự tiến bộ vượt bậc của phần cứng máy tính và thiết bị liên quan đã cải thiện tốc độ tính toán, dung lượng lưu trữ và khả năng xử lý, đồng thời giá cả đã giảm đáng kể Điều này khiến máy tính và thiết bị xử lý ảnh không còn là những thiết bị chuyên dụng Khái niệm ảnh số đã trở nên quen thuộc với nhiều người, 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 việc xử lý trên máy tính đã trở nên đơn giản 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, với thị giác là giác quan quan trọng nhất Trong những năm gần đây, sự phát triển mạnh mẽ của phần cứng máy tính đã thúc đẩy lĩnh vực xử lý ảnh và đồ họa, tạo ra nhiều ứng dụng thiết thực trong đời 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 liên quan đến 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 được cải thiện hoặc một kết luận cụ thể.
Quá trình xử lý ảnh liên quan đến việc hiểu ả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 hoặc một đặc trưng tại vị trí cụ thể trong không gian Điều này cho phép chúng ta coi ảnh như một hàm n biến P (c1, c2, …, cn), từ đó hình ảnh được xem như là 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 sử dụng để biểu diễn màu sắc của điểm ảnh Cụ thể, ảnh nhị phân sử dụng 1 bit với thang đo độ xám từ 0 đến 1, trong đó 0 đại diện cho màu đen và 1 cho màu trắng Đối với ảnh xám, thang đo độ xám mở rộng từ 0 đến 255, với 0 là đen và 255 là trắng.
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ể xuất phát từ thiết bị thu ảnh như quang sai của thấu kính và rung động, hoặc từ các yếu tố ngẫu nhiên và độc lập do môi trường Ngoài ra, nhiễu cũng có thể đến từ vật quan sát, chẳng hạn như bề mặt bóng gây phản xạ, dẫn đến hiện tượng nhiễu lốm đốm.
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 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 được chuyển về máy tính để phân tích thông qua phần mềm xử lý ảnh trên giao diện Matlab Sau đó, Matlab kết nối với vi điều khiển, từ đó đ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
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 về hình dáng, màu sắc và kích thước của vật trên băng tải Dữ liệu này sau đó được chuyển về máy tính thông qua phần mềm xử lý ảnh trên giao diện Matlab Matlab kết nối với vi điều khiển, từ đó bộ điều khiển điều khiển các động cơ đế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
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
Để di chuyển 3 cánh tay về điểm Home, cần thiết lập các giá trị của chúng sao cho 1=0, 2=0, và 3=0 Khi đó, 3 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, hệ thống sẽ phân tích để tìm 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 di chuyển cho động cơ.
Quá trình di chuyển sẽ bị ảnh hưởng bởi việc mang theo bơm 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 của vùng làm việc đã được tối ưu Tiếp theo, thiết kế 3D 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 lại toàn bộ hệ thống.
Quá trình mô phỏng cần được kiểm nghiệm kỹ lưỡng; nếu đạt yêu cầu, tiến hành xuất file gia công để thực hiện Sau đó, tiếp tục đánh giá quá trình gia công; nếu đạt tiêu chuẩn, tiến hành lắp ráp và chạy thử nghiệm Trong trường hợp không đạt, cần kiểm tra và khắc phục 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 lưu ý đến tốc độ hoạt động để tránh tình trạng chạy quá chậm hoặc vượt quá tốc độ tối đa của hộp giảm tốc, điều này có thể gây ra hư hỏng cho bánh răng bên 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 phải 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 dùng để đóng, ngắt các mạch điện động lực một cách thường xuyên, có thể điều khiển từ xa, bằng tay hoặc tự động Nó được sử dụng để 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 lớn Khác với rơle, contactor hoạt động với nguồn điều khiển xoay chiều điện áp cao Việc đóng cắt contactor thường được thực hiện bằng nam châm điện, bên cạnh các phương pháp khác như thủy lực hoặc khí nén.
Trong ngành công nghiệp, contactor đóng vai trò quan trọng trong việc điều khiển hoạt động của động cơ và thiết bị điện Với thiết kế đơn giản, người dùng có thể dễ dàng vận hành bằng cách 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 không quá phức tạp, đảm bảo tính ổn định cao, dễ sửa chữa và 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à cho đến hộ gia đình Tuy nhiên, nhiều yếu tố gây nhiễu nguồn điện, cả từ nội bộ lẫn bên ngoài, có thể ảnh hưởng đến chất lượng điện năng 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, trong quá trình khởi động và hoạt động, sẽ phát sinh sóng hài (harmonic) quay ngược lại hệ thống, dẫn đến sự thay đổi liên tục biên độ hình sin của nguồn điện và tạo ra các xung điện áp.
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;
Ảnh hưởng đến các thiết bị bảo vệ có thể gây ra tác động sai lệch đối với cầu chì, relay bảo vệ, và các thiết bị đo đếm như cảm biến áp suất và 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 được thực hiện cho phù hợp Đối với tín hiệu NPN, các chân ENA+, PUL+, DIR+ được kết nối với nguồn dương Ngược lại, với tín hiệu PNP, các chân ENA-, PUL-, DIR- sẽ được 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 sử dụng cho kết nối 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
Kết nối giữa thiết bị và máy tính diễn ra dễ dàng, nhưng cần đảm bảo sử dụng đúng loại cáp phù hợp Nhiều trường hợp không thể kết nối thành công do sử dụng cáp không tương thích với tốc độ truyền dữ liệu.
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 trang bị bảo vệ chống cắm ngược nguồn, vì vậy bạn cần kiểm tra kỹ các cực âm - dương trước khi cấp nguồn Việc kết nối sai nguồn có thể làm hỏng board mạch, khiến nó trở thành một vật vô dụng Do đó, nếu có thể, hãy sử dụng nguồn từ cổng USB để đảm bảo an toàn cho Arduino UNO.
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 để cấp nguồn vào 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
Cường độ dòng điện tối đa cho phép qua các chân Digital hoặc Analog của Arduino UNO là 40mA; nếu vượt quá mức này, vi điều khiển sẽ bị hỏng Vì vậy, khi không sử dụng để truyền nhận dữ liệu, bạn cần lắp một điện trở hạn dòng để bảo vệ thiết bị.
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à kiểm soát tốc độ động cơ, bao gồm việc tăng tốc, giảm tốc, thiết lập tốc độ tối đa và xác định 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 tăng cường an toàn khi di chuyển Sử dụng gia tốc hợp lý sẽ giảm nguy cơ trượt chân 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 chạy nhanh hơn để đạt vận tốc 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 Do đó, gia tốc của bạn được tính bằng công thức a = (10 - 5)/5.
Khi bạn đạt tốc độ 10m/s và không muốn tăng tốc nữa, gia tốc của bạn sẽ trở về 0, dẫn đến chuyển động đều với vận tốc v = 10m/s.
Gia tốc có hướng, và nếu hướng của gia tốc trùng với hướng 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ó hướng ngược với hướng 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 vận hành ở tốc độ cao Khi tăng tốc độ, momen của động cơ sẽ giảm, đặc biệt là tại tốc độ cộng hưởng, 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ơ trong robot một cách mượt mà, việc sử dụng gia tốc là rất quan trọng Hình 3.24 minh họa mối quan hệ giữa gia tốc, vận tốc và vị trí, giúp hiểu rõ hơn về quá trình bắt đầu và dừng động cơ.
Gia tốc, vận tốc và vị trí có mối quan hệ chặt chẽ, như thể hiện trong hình 3.29 Để đạt được gia tốc như trong hình, khoảng thời gian t cần được tính toán chính xác, nhằm đảm bảo rằng 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 với các dung môi hữu cơ, muối và khí ăn mòn 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.
Bơm khí nén có thể gặp vấn đề nếu chứa nhiều chất thải hoặc bột cacbon, gây ảnh hưởng đến 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 lỗi 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 phần thiết yếu trong hệ thống khí nén, đóng vai trò quan trọng trong việc duy trì hiệu suất hoạt động Dù ở vùng nhiệt đới hay sa mạc, không khí luôn chứa một lượng hơi nước nhất định Khi hơi ẩm không được kiểm soát, nó sẽ chuyển thành trạng thái lỏng, gây ảnh hưởng tiêu cực đến toàn bộ quá trình hoạt động, đặc biệt là trong giai đoạn lọc tiếp theo.
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ó vai trò quan trọng trong việc loại bỏ các tạp chất này và thải chúng ra bên ngoài.
Bộ lọc không khí đóng vai trò quan trọng trong việc loại bỏ cặn bẩn và các hóa chất độc hại như dung môi hữu cơ, muối và chất ăn mòn Sau khi xử lý, bộ lọc này đảm bảo cung cấp một hệ thống không khí sạch, an toàn cho sức khỏe và môi trường.
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
Để xử lý video, đầu tiên, ta lấy một ảnh từ khung video bằng cách sử dụng hàm `getsnapshot(video)` Sau đó, ảnh này được chuyển từ không gian RGB sang HSV thông qua hàm `rgb2hsv(I)` Tiếp theo, ta tính toán giá trị Hue của ảnh bằng cách nhân kênh Hue với 360 và làm tròn giá trị, lưu trữ trong ma trận `hueI` Các giá trị Saturation và Value cũng được trích xuất từ ảnh HSV và lưu vào các ma trận `satI` và `valI` Cuối cùng, ta thiết lập ngưỡng cho Saturation và Value để lọc các giá trị trong khoảng nhất định, bằng cách sử dụng biểu thức logic để tạo ra ma trận `threshI`.
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 script processes each object in the Rstats array to extract its bounding box, centroid coordinates, and orientation angle It visually represents the object by drawing a red rectangle around it and marking its centroid with a red star Additionally, it displays the centroid's pixel coordinates and the object's orientation angle in a bold Arial font, with the coordinates in blue and the angle in red The script concludes by releasing the hold on the current plot.
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
Trong bài viết này, chúng ta xác định kích thước pixel với O1x1 = 160 pixel và O1y1 = 120 pixel, qua đo thực tế, ta có O1x1 = 99.42 mm, từ đó suy ra 1 pixel = 0.621 mm Tiếp theo, chúng ta chuyển đổi từ hệ tọa độ O1x1y1 sang hệ tọa độ O2x2y2, với tọa độ O1 tương ứng là (117; -157) pixel Giả sử tọa độ A bất kỳ trong hệ O1x1y1 là (xA, yA) pixel, và để Robot di chuyển đến điểm A, cần tính tọa độ vector 𝐴𝑂⃗⃗⃗⃗⃗⃗⃗ 2.
Từ hai hệ trục tọa độ, ta nhận thấy tia O1x1 và tia O2y2 có cùng phương, trong khi tia O2x2 và tia O1y1 cũng tương tự Do đó, vector 𝐴𝑂⃗⃗⃗⃗⃗⃗⃗ 2 sẽ có tọa độ là (Px, Py), với Px = 120 - yA (pixel) và Py = 160 - xA (pixel) Ở đây, Px và Py chính là tọa độ vị trí trong phương trình động học nghịch.
Khi chuyển đổi sang tọa độ mặt phẳng thực tế, giá trị Px và Py được tính bằng công thức Px = (120 – yA)/2 (mm) và Py = (160 - xA)/2 (mm) Do đề tài chỉ tập trung vào xử lý ảnh 2D, việc xác định tọa độ Px và Py là đủ, trong khi Pz sẽ được gán một hằng số cố định Từ ba thông số Px, Py, Pz, chúng ta có thể tính toán các giá trị góc xoay θ1, θ2, θ3, giúp 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 cải tiến và nâng cấp sản phẩm, nhóm đã đạt được những thành công nhất định, đú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à ít gặp sự cố Mặc dù thiết kế của nó khá chắc chắn, nhưng vẫn còn nhiều điểm cần cải thiện, đặc biệt là trong việc liên kết giữa các cánh tay và các tấm đế.
Phần xử lý ảnh trong đồ án đã được triển khai thành công, với khả năng camera nhận diện vật thể một cách chính xác và trả về vị trí đúng Tuy nhiên, vẫn còn nhiều vấn đề cần được nâng cấp và cải tiến để tối ưu hóa hiệu suất.
Đã 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 nâng cao độ chính xác của các bài toán để cải thiện kết quả.
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 vận hành.
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 đủ các yêu cầu thiết kế Kết hợp lý thuyết với thực tiễn, nhóm đã tích lũy được 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, những người đã 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 nhiều 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ấn đấu.
- Ổ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 2018 paper presented at the 4th International Conference on Green Technology and Sustainable Development (GTSD), Hoai Nam LE and Xuan Hoang LE focus on the geometrical design of a RUU type Delta robot, emphasizing the importance of its predefined workspace Their research contributes to advancements in robotics and sustainable technology.
[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 plastic arm include an end effector measurement of 150 units, with a base measurement of 364.41 units Additionally, the dimensions of the triangular arm are defined by a length of 415 units for one side and 150 units for another.
*/ 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;
In trigonometric calculations, key constants include the square root of three (approximately 1.732), the value of pi (3.141592653), and specific sine, cosine, and tangent values for common angles: sine of 120 degrees is √3/2, cosine of 120 degrees is -0.5, tangent of 60 degrees equals √3, sine of 30 degrees is 0.5, and tangent of 30 degrees is 1/√3 The function `delta_calcForward` computes values based on three angles, theta1, theta2, and theta3, and returns the results through reference parameters x0, y0, and z0.
The calculations involve determining the values of float variables based on angles and trigonometric functions Initially, the variable `t` is computed using the difference between `f` and `e`, multiplied by the tangent of 30 degrees, divided by 2 The angles `theta1`, `theta2`, and `theta3` are converted from degrees to radians Subsequently, the coordinates `y1`, `z1`, `y2`, `x2`, `z2`, `y3`, `x3`, and `z3` are derived using trigonometric functions involving `rf` and the angles Finally, the variable `dnm` is calculated to represent a determinant, while `w1`, `w2`, and `w3` are computed as sums of squares of the respective coordinates, aiding in further geometric 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 function `delta_calcInverse` computes the inverse kinematics for a robotic arm, converting Cartesian coordinates (x0, y0, z0) into joint angles (theta1, theta2, theta3) It initializes the angles to zero and calculates the first angle using the `delta_calcAngleYZ` function If successful, it then computes the second angle by rotating the coordinates by +120 degrees and checks for errors Finally, it calculates the third angle by rotating the coordinates by -120 degrees, ensuring all calculations are performed accurately to determine the robotic arm's position The function returns a status code indicating success or failure in finding a valid position.
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'));
In this code snippet, we retrieve and convert user inputs from the GUI to numerical values, including parameters such as sPm, xim, yim, and zim We calculate y1 and k based on sBm and sPm, respectively, and then determine yim1 by adjusting yim with k The variable b is computed using the difference between y1 and yim1 divided by zim A discriminant d is calculated to check if the pose is valid; if d is negative, an error message prompts the user to select a different pose If valid, yj is determined using the quadratic formula, and theta1 is computed using the arctangent function, adjusting for the quadrant if necessary Finally, the calculated angle theta11 is rounded and displayed in the GUI.
The calculations for the angle theta2 involve transforming coordinates using trigonometric functions, specifically a rotation of 120 degrees The new coordinates, xim2 and yim2, are derived from the original values with a shift applied to yim2 The parameters a2 and b2 are computed based on these new coordinates, and if the derived value d2 is negative, a warning is displayed indicating that the pose is out of range and a different pose should be selected Otherwise, the outer point yj2 is calculated, followed by zj2, leading to the determination of theta2 If yj2 exceeds y1, an adjustment of 180 degrees is made to theta2, which is then rounded and displayed in the user interface.
The calculations for the transformation of coordinates involve determining new values for \( xim3 \), \( yim3 \), and \( zim3 \) using trigonometric functions based on a rotation of 120 degrees The adjusted \( yim3 \) is computed by subtracting a constant \( k \) Subsequently, parameters \( a3 \) and \( b3 \) are derived from the transformed coordinates, which are essential for assessing the pose's validity If the calculated discriminant \( d3 \) is negative, a warning is issued to select a different pose to avoid singularities If valid, the outer point \( yj3 \) is calculated, followed by \( zj3 \) and the angle \( theta3 \), which is adjusted based on the position of \( yj3 \) relative to \( y1 \) Finally, the result is rounded and displayed in the designated 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'));
To calculate the values of angle1fm, angle2fm, and angle3fm, retrieve their corresponding string inputs and convert them to double using the str2double function Additionally, compute the variable k by subtracting sPm from sBm and dividing the result by twice the square root of 3.
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, we define the coefficients 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 symbolic computation, we solve for \( z \) in the equation \( a \times z^2 + b \times z + c = 0 \) The roots are assigned as \( nghiemz1 = z(1) \) and \( nghiemz2 = z(2) \) We then determine the appropriate root based on their values, selecting \( nghiemz2 \) if it is negative and greater than or equal to \( nghiemz1 \); otherwise, we choose \( nghiemz1 \) if it is negative Finally, the result is rounded to two decimal places as \( zz = round((double(nghiemz)), 2) \).
%inssPmrt z into: xx=round((a1*zz+b1), 2) yy=round((a2*zz+b2), 2) set(handles.xf,'String',num2str(xx));