Nội dung thực hiện: - Tham khảo, tìm hiểu các hệ thống phân loại sản phẩm sử dụng cánh tay robot kếthợp thị giác máy tính từ các đồ án trước đó và trong thực tế.. - Thiết kế sơ đồ khối c
TỔNG QUAN
Đặt vấn đề
Hiện nay, hệ thống robot ngày càng phát triển và đóng vai trò rất quan trọng trong cuộc sống hiện đại của chúng ta Ngành công nghiệp robot bao gồm các công nghệ phức tạp, tiên tiến từ cảm biến, máy móc, điện tử, điều khiển tự động và các lĩnh vực khác Đây là ngành công nghệ cao, có tư duy tiến bộ ảnh hưởng tới sự phát triển trong tương lai của nhân loại.
Cánh tay robot được ứng dụng trong nhiều dây chuyền sản xuất tự động, từ ngành công nghiệp nặng như sản xuất ô tô cho đến phân loại sản phẩm tiêu dùng. Đây được coi là công cụ lao động của tương lai, lực lượng lao động chính trong nhiều lĩnh vực khác nhau Robot hỗ trợ con người rất nhiều trong sản xuất đặc biệt là trong điều kiện môi trường khắc nghiệt hoặc nhiều chất độc hại, nguy hiểm Hiện tại có nhiều loại robot mới xuất hiện trên thế giới, đánh dấu bước đột phá trong phát triển lĩnh vực này giúp các doanh nghiệp tăng doanh thu bằng cách giảm lực lượng lao động, giảm chi phí sản xuất và cải thiện năng suất.
Với sự phát triển chóng mặt của khoa học máy tính và trí tuệ nhân tạo, các hệ thống robot ngày càng trở nên thông minh hơn nhờ tích hợp các công nghệ tiên tiến: internet vạn vật (Internet of Things), thị giác máy tính (Computer Vision), nền tảng đám mây (Cloud), dữ liệu lớn (Big Data), từ đó các hệ thống robot có thể thực hiện các tác vụ phức tạp như nhận biết cảm xúc con người, chẩn đoán y tế, truyền động thông minh, Một số tập đoàn lớn trong ngành công nghiệp robot có thể kể đến như: ABB (Thụy Sĩ), Yaskawa (Nhật Bản), FANUC (Nhật Bản), ….
Việt Nam đang trong quá trình hiện đại hóa và hội nhập quốc tế rất mạnh mẽ nên cần nguồn nhân lực lớn cho các ngành công nghiệp tiên tiến đặc biệt là ngành công nghiệp robot Tuy nhiên ở nước ta việc đào tạo ra nhân lực cũng như thực hiện các nghiên cứu trong lĩnh vực này vẫn còn nhiều hạn chế Lượng robot được sản xuất ở nước ta đa phần là sử dụng công nghệ kiểu cũ của thế giới Do đó, xu hướng giáo dục ở các trường đại học hiện nay là đẩy mạnh các nghiên cứu về các công nghệ tiên tiến hơn trong lĩnh vực robot, tiếp cận với nền công nghiệp của các nước phát triển mạnh trong ngành này.
Cùng với sự phát triển của ngành công nghiệp robot, thị giác máy tính cũng là một lĩnh vực được xem là xu hướng của tương lai Thị giác máy tính được ví như đôi mắt của robot, giúp chúng hoạt động dễ dàng và linh hoạt hơn, giúp xử lý được các tác vụ phức tạp, nâng cao hiệu suất hoạt động, giảm thiểu nguy hiểm và rủi ro cho con người Một số ứng dụng tiêu biểu của thị giác máy tính có thể kể đến như: kiểm soát giao thông, chẩn đoán bệnh từ hình ảnh MRI, xử lý ảnh từ vệ tinh, hệ thống cảnh báo va chạm trên xe hơi,
Khi kết hợp thị giác máy tính và robot ta sẽ được các hệ thống có khả năng nhận dạng và phân loại các vật thể khác nhau dựa vào màu sắc, hình dạng, kích thước, Bằng cách sử dụng hình ảnh từ camera, tiến hành phân tích và xử lý để có thể trích xuất ra các thông tin hữu ích cho robot, giúp chúng thực hiện nhiệm vụ cụ thể Từ đó ta thấy được việc lập trình điều khiển, tính toán, xử lý hình ảnh và thực hiện giao tiếp giữa máy tính và robot là vô cùng cần thiết và quan trọng.
Thông qua những khảo sát và những nhu cầu thực tế về các hệ thống phân loại sản phẩm bằng robot Cùng với việc vận dụng những kiến thức đã được trạng bị và sự tìm tòi nghiên cứu, nhóm đã quyết định sẽ thực hiện nghiên cứu, thiết kế và thi công một hệ thống phân loại sản phẩm sử dụng cánh tay robot đồng thời kết hợp với ứng dụng của công nghệ xử lý ảnh để xây dựng nên một mô hình với tên gọi là
“Điều khiển cánh tay robot phân loại sản phẩm ứng dụng thị giác máy tính”.
Mục tiêu đề tài
Để hiểu sâu hơn về việc kết hợp việc điều khiển robot và kỹ thuật xử lý ảnh trong thị giác máy tính, nhóm đã xây dựng một mô hình hệ thống bao gồm cánh tay robot sử dụng camera để nhận dạng và phân loại các vật chuyển động trên băng tải. Một số yêu cầu của đề tài:
Hệ thống thị giác máy tính đóng vai trò quan trọng trong quá trình xử lý hình ảnh từ camera, nhận dạng và theo dõi chuyển động của vật thể trên băng tải Hệ thống này có khả năng trích xuất thông tin đặc trưng của vật thể cụ thể như màu sắc, mã QR và gửi thông tin này cho robot để tiến hành gắp và phân loại sản phẩm.
- Điều khiển cánh tay robot có thể dựa vào những thông tin nhận được gắp chính xác được vật, và phân loại nó theo thông tin nhận được từ máy tính.
- Xây dựng giao diện điều khiển giúp cho người dùng quản lý hệ thống dễ dàng và trực quan.
Giới hạn đề tài
Trong quá trình vận hành băng tải tốc độ cao, robot gặp khó khăn trong việc hút vật thể do thời gian xử lý không đủ để tiến hành truy vấn thông tin sản phẩm.
- Khi các sản phẩm để quá gần nhau thì robot chỉ hút được vật đến trước, còn vật phía sau thì không thể phân loại được.
Để phân loại sản phẩm chính xác và ổn định, điều kiện chiếu sáng là yếu tố tiên quyết Khi chất lượng camera không đủ tốt, sự thay đổi đáng kể về điều kiện ánh sáng sẽ làm nhiễu quá trình xác định vị trí, dẫn đến robot gắp hàng sai vị trí dự định.
Nội dung nghiên cứu
Hệ thống robot sử dụng thị giác máy tính mà nhóm xây dựng được chia làm ba phần chính:
+ Lập trình trên Arduino điều khiển các khớp của cánh tay của robot, giải quyết bài toán động học thuận và ngược.
+ Xây dựng giải thuật gắp và phân loại vật.
- Hệ thống thị giác máy tính:
+ Lập trình xử lý các khung ảnh nhận được từ camera, xác định vị trí và thông tin vật thể cần thiết để phân loại.
+ Từ các thông tin nhận được, thực hiện chuyển đổi thông tin hệ tọa độ đã chọn trong camera sang hệ tọa độ robot.
- Hệ thống giao tiếp giữa robot và thị giác máy tính:
+ Tính toán, xử lý các thông tin nhận được từ hệ thống này sang hệ thống còn lại, để có thể tiến hành gắp và phân loại vật.
+ Lập trình giao diện, có thể nhận thông tin từ cả hai hệ thống để người dùng dễ quan sát và vận hành.
CƠ SỞ LÝ THUYẾT
Sơ lược về hệ thống robot
2.1.1 Khái niệm cánh tay robot
Cánh tay robot là những cỗ máy được dùng trong quá trình sản xuất công nghiệp, chúng có thể hoạt động một cách tự động hoặc được vận hành bởi con người.Cánh tay robot được thiết kế linh hoạt theo nhu cầu sử dụng với tốc độ và độ chính xác cao, có thể linh hoạt như cánh tay của con người Robot có thể thay thế con người trong các công việc lắp ráp các linh kiện nhỏ yêu cầu độ chính xác cao hoặc hoạt động trong các môi trường khắc nghiệt, độc hại Với nhiều ưu điểm vượt trội nên ngày càng nhiều chủng loại robot được tạo ra và được ứng dụng trong đa ngành đa lĩnh vực.
Cánh tay robot hoạt động dựa trên cơ chế các liên kết từ phần mềm điều khiển đến phần cứng là các khớp của robot kết hợp hợp với nhau để tạo nên chuyển động của chúng Bộ điều khiển trung tâm truyền các lệnh đến các khâu, các khâu này sẽ chuyển động dựa trên bài toán động học đã được tính toán để tạo thành một chuỗi hành động của robot.
1 Hệ tọa độ cơ bản (The base coordinate system): được đặt tại vị trí gốc của robot Hệ tọa độ cơ bản có điểm Zero tại gốc của robot, làm cho các chuyển động có thể dự đoán được đối với robot cố định Do đó rất hữu ích cho việc di chuyển từ vị trí này sang vị trí khác.
Quy tắc bàn tay phải (dùng để xác định phương, chiều của các trục x, y, z). Dùng bàn tay phải nắm 2 ngón út và áp út lại, còn 3 ngón : ngón cái, ngón trỏ và ngón giữa xòe ra sao cho vuông góc từng cặp với nhau Khi đó ngón cái chỉ phương và chiều của trục Z thì ngón trỏ chỉ phương, chiều trục X, ngón giữa chỉ phương chiều trục Y.
Hình 2 1: Bàn tay phải xác định phương triều các trục
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2 Hệ tọa độ đối tượng công việc (word object coordinate system): với các mục tiêu và đường dẫn khi lập trình cho robot mang lại rất nhiều lợi thế.
Khi định vị lại phần công việc của robot trong dãy băng chuyền, ta chỉ cần thay đổi vị trí của hệ tọa độ đối tượng công việc và khi đó tất cả các đường dẫn sẽ được cập nhật cùng một lục.
Cho phép làm việc trên các phần công việc được di chuyển bởi các trục bên ngoài hoặc các băng chuyền, vì toàn bộ công việc đối tượng với các đường dẫn của nó có thể được di chuyển.
3 Hệ tọa độ công cụ (The tool coordinate system): Xác định vị trí của công cụ mà robot sử dụng khi thực hiện các mục tiêu được lập trình Hệ tọa độ công cụ có vị trí gốc O ở điểm giữa của công cụ Nó xác định vị trí và hướng của dụng cụ.
4 Hệ tọa độ thế giới (The world coordinate system): Dùng để xác định robot cell, tất cả các hệ tọa độ khác đều có sự liên quan đến hệ toạ độ World theo cách trực tiếp hoặc gián tiếp Đây là hệ tọa độ rất hữu ích cho việc xử lý một số robot hoặc khi robot di chuyển bởi theo các trục bên ngoài.
5 Hệ tọa độ người dùng (The user coordinate system): Hệ tọa độ người dùng có thể được sử dụng để đại diện cho các thiết bị cố định như sàn làm việc Điều này hữu ích cho việc robot cầm nắm di chuyển hàng hóa.
Hình 2 2: Các hệ trục tọa độ 2.1.2 Bài toán động học thuận
Trong đại đa số các trường hợp, tay máy được cấu tạo bởi các khâu (Links),
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT còn đầu kia nối với phần công tác Mỗi khâu hình thành cùng với khớp phía trước nó một cặp khâu – khớp Tuỳ theo kết cấu của robot mà mỗi loại khớp đảm bảo cho khâu nối sau nó các khả năng chuyển động nhất định.
Mỗi khớp (thực chất là cặp khâu – khớp) được đặc trưng bởi 2 loại thông số:
- Các thông số không thay đổi giá trị trong quá trình làm việc của tay máy được gọi là tham số.
- Các thông số thay đổi khi tay máy làm việc được gọi là các biến khớp.
Hai loại khớp thông dụng nhất trong kỹ thuật tay máy là khớp trượt và khớp quay Chúng đều là loại khớp có một bậc tự do.
Bài toán thuận nhằm mô tả thế (vị trí và hướng) của phần công tác dưới dạng hàm số của các biến khớp Cho trước cơ cấu và quy luật của các yếu tố chuyển động thể hiện bằng các tọa độ suy rộng q ta phải xác định quy luật chuyển động của điểm trên khâu tác động cuối nói riêng hoặc của điểm bất kỳ trên một khâu nào đó của robot nói chung trong hệ trục tọa độ vuông góc (hệ trục tọa độ Descartes) Bài toán động học thuận ở robot có nội dung gần giống như bài toán phân tích động học cơ cấu.
Các bước thực hiện giải bài toán động học thuận cho cánh tay robot:
- Xác định số khớp và số khâu.
- Gắn các hệ trục tọa độ lên các khâu.
- Xác định các biến khớp:
Khớp quay tương ứng với biến khớp.
Khớp tịnh tiến tương ứng với biến khớp d.
- Xác định quan hệ giữa hai gốc tọa độ i và i-1 (theo quy tắc Denavit– Hartenberg):
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
- Xácđịnh phương trìnhđộng học thuận cho cánh tay robot:
Cho trước cơ cấu và quy luật chuyển động của điểm trên khâu tác động điểm đầu cuối (hoặc quy luật chuyển động của khâu cuối bao gồm vị trí và hướng của nó) được biểu diễn trong hệ trục tọa độ vuông góc, ta phải xác định quy luật chuyển động của các khâu thành viên thể hiện qua các tọa độ suy rộng q. Đôi khi, bài toán trong thực tế được đặt ra gần như là một bài toán tổng hợp động học cơ cấu, nghĩa là bài toán cho truớc yêu cầu hoặc quy luật chuyển động của khâu cuối, ta phải xác định cấu tạo robot và quy luật chuyển động q của các khâu thành viên.
Thông thường khi giải bài toán thuận, ta sẽ chỉ tìm ra duy nhất một đáp án Ngược lại, nếu giải bài toán ngược lại, ta sẽ thấy vô số đáp án (bài toán vô định) khi được đưa sẵn quy luật chuyển động của điểm trên khâu tác động cuối nằm trong vùng không gian hoạt động của robot Trong một số trường hợp, nếu điểm trên biên của vùng không gian hoạt động thì đáp án mới chỉ có một Nguyên nhân là do mối quan hệ giữa tọa độ điểm q trên khâu tác động cuối (Xp, Yp, Zp trong hệ tọa độ vuông góc) với tọa độ suy rộng q (với i = 1, n khâu động) được mô tả theo chiều thuận, không có chiều nghịch, nghĩa là vị trí tương đối giữa các khâu thành viên chỉ được ánh xạ theo một chiều.
Ngoài ra, ở cả 2 bài toán động học, ta không chỉ quan tâm đến tọa độ của một điểm thuộc khâu tác động cuối mà còn quan tâm đến cả vị trí và hướng của nó trong hệ tọa độ vuông góc Do đó, ngoài các thông số tọa độ của một điểm P nào đó thuộc
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT xác định hướng của nó Khi giải quyết vấn đề có nhiều lời giải bài toán ngược người ta đưa ra các ràng buộc về mặt động học đối với các robot hoạt động bên trong của vùng không gian làm việc của nó (gọi là không gian có bậc tự do thừa) hoặc đặt ra vấn đề phải tối ưu hóa hoạt động của robot theo một hàm mục tiêu nào đó để chọn lời giải phù hợp nhất. Động học ngược là bài toán xác định góc quay của các khớp khi biết tọa độ điểm đầu cuối của robot, có đặc điểm:
- Không có phương pháp tổng quát.
Quy trình giải bài toán động học ngược cho cánh tay robot bao gồm:
- Giải bài toán động học thuận để tìm tương quan giữa vị trí và hướng của cơ cấu chấp hành đầu cuối theo giá trị các biến khớp.
Khảo sát robot 3 bậc tự do
Ở trong đồ án này, nhóm quyết định khảo sát và sử dụng cánh tay robot ba bậc tự do có cấu hình của robot Magician do đây là loại robot được phát triển để phục vụ cho mô hình giáo dục và giảng dạy vì thế sẽ có nhiều nguồn tài liệu dễ dàng tiếp cận và nghiên cứu Ngoài ra một đặc điểm của cánh tay robot Magician là cơ cấu chấp hành ở điểm đầu cuối luôn song song với mặt phẳng nằm ngang phù hợp với mục tiêu của đề tài là gắp các sản phẩm đứng trên một mặt phẳng.
2.2.1 Giải bài toán động học thuận
Gắn hệ tọa độ cho các khớp của robot theo phương pháp Denavit – Hartenberg, hệ tọa độ thứ 0 có gốc tọa độ được gắn ở mặt đáy tại đế của robot có tọa độ (0;0;0)
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2 3: Gắn hệ trục tọa độ lên các khớp robot
- Dựa vào hệ trục tọa được gắp trên các khớp của robot ta thu được bảng D-H:
Trong đó: ai là khoảng cách từziđến zi+1theo trục xi. αilà góc tạo bởi zivà zi+1theo trục xi. dilà khoảng cách từ xitới xi+1theo trục zi.
� � là góc tạo bởi xivà xi+1theo trục zi.
Sử dụng công thứcDenavit – Hartenberg:
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Ta thu được các ma trận chuyển đổi hệ tọa độ:
Ma trận chuyển đổi hệ toạ độ thứ 1 sang hệ tọa độ thứ 0:
Ma trận chuyển đổi hệ toạ độ thứ 2 sang hệ tọa độ thứ 1:
Ma trận chuyển đổi hệ tọa thứ 3 sang hệ tọa độ thứ 2:
Ma trận chuyển đổi hệ tọa độ thứ 4 sang hệ tọa độ thứ 3:
Ma trận chuyển đổi hệ tọa độ thứ 5 sang hệ tọa độ thứ 4:
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Từ các ma trận đã tính ở trên ta tính được tọa độ điểm đầu cuối của robot so với gốc tọa độ tại để robot:
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2 5: Tư thế của robot ứng với góc
Hình 2 6: Tư thế của robot ứng với góc 1 45 , 2 90 , 3 135
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2 7: Tư thế của robot ứng với góc 1 90 , 2 120 , 3 135
2.2.2 Giải bài toán động học nghịch
Sau khi có tọa độ điểm đầu cuối ta áp dụng phương pháp đại số để giải bài toán động học ngược cho robot để tìm ra giá trị các biến khớp Từ phương trình đã tính toán ở phần động học thuận ta có tọa độ điểm đầu cuối là:
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Ta thu được 2 nghiệm góc 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Ta thu được 2 nghiệm góc 2.
Sau khi giải bài toán động học ngược cho robot ta thu được hai bộ nghiệm các biến khớp, tuy nhiên do thiết kế cơ khí của cánh tay robot dạng cấu hình robot Magician nên ta chỉ chọn sử dụng bộ nghiệm có góc3âm Do đó bộ nghiệm các biến khớp được sử dụng trong mô hình này là:
Tổng quan về hệ thống thị giác máy tính
2.3.1 Ý tưởng về hệ thống thị giác máy tính Ý tưởng hệ thống thị giác máy tính được sử dụng trong đồ án là chụp lại một bức ảnh vùng làm việc của robot gọi là ảnh nền Khi camera bắt đầu thu hình ảnh từ vùng làm việc sẽ liên tục thực hiện trừ đi khung hình hiện tại để kiểm tra xem có sản phẩm nào xuất hiện hay không Từ sự khác biệt giữa hai khung hình ta có khung hình mới chứa sản phẩm cần nhận dạng Dựa vào hình này ta sẽ trích xuất được các đặc điểm của sản phẩm để tiến hành phân loại, cụ thể trong đồ án này nhóm lựa chọn phân loại theo đặc trung màu sắc của sản phẩm Về phần lập trình xử lý ảnh, nhóm xử dụng thư viện OpenCV và ngôn ngữ lập trình Python để tạo chương trình
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.3.2 Các phương pháp sử dụng
Phần thị giác máy tính có nhiệm vụ xác định tọa độ sản phẩm theo pixel Sau đó máy tính sẽ chuyển sang hệ tọa độ robot để thục hiện gắp Do đó, camera cần nhận diện được sản phẩm trên khung hình, xác định được tọa độ tâm của sản phẩm.
Hệ thống theo dõi sản phẩm dựa trên việc xác định vị trí của các sản phẩm cần phân loại bằng camera Sau khi nhận dạng thành công, hệ thống sẽ tiến hành cập nhật liên tục tọa độ của sản phẩm ở từng khung hình trong quá trình di chuyển.
Tracking vật thể được thực hiện khi hệ thống camera có thể nhận dạng được vật thể cần được phân loại, sau đó hệ thống sẽ liên tục cập nhật tọa độ của vật qua mỗi khung hình.
Ta sẽ chọn một khoảng cố định mà khi tọa độ của vật theo phương ngang nằm trong khoảng đó thì tiến hành chụp ảnh vật bằng camera, sau đó gửi thông tin tọa độ và thông tin phân loại cho robot.
Sử dụng hai tiêu chí để phân loại vật thể trên băng tải
+ Phân biệt các màu sắc cơ bản: đỏ, vàng, xanh Do mắt người nhìn thấy màu sắc của vật theo không gian màu HSV (Hue, Saturation, Value) nên các màu sắc khác nhau sẽ có các giá trị này khác nhau, ta có thể dựa vào không gian màu này để xác định màu sắc của vật.
+ Mã QR (Quick Response) là mã vạch ma trận (hay mã vạch hai chiều) phát triển bởi công ty Denso Wave của Nhật Bản vào năm 1994 Đây là loại mã cho phép người dùng giải mã ở tốc độ cao, do đó mã QR được sử dụng rất phổ biến trong cuộc sống hiện đại ngày nay.
+ Mã QR còn được gọi là mã vạch ma trận (matrix - barcode) là mã vạch dạng hai chiều có thể được đọc bởi máy đọc mã vạch, hay smartphone sử dụng camera hoặc ứng dụng dùng để quét mã vạch.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Trong quá trình phân loại sản phẩm, mã QR trên mỗi sản phẩm chứa thông tin chi tiết Khi giải mã các mã QR này, ta thu được thông tin cần thiết về sản phẩm, từ đó phân loại chúng vào nhóm phù hợp.
TÍNH TOÁN VÀ THIẾT KẾ
Tổng quan về hệ thống
Hình ảnh từ webcam sẽ được máy tính đọc về, sau đó thực hiện các giải thuật để phát hiện và phân loại vật thể (theo màu sắc, hình dạng, mã QR) đồng thời xác định tọa độ của của vật thể chuyển động Khi vật thể nằm trong một khoảng cách đặt trước thì tiến hành tính toán động học ngược cho robot và sau đó gửi các giá trị biến khớp xuống Arduino Arduino sẽ thực hiện điều khiển động cơ bước gắn trên các khớp của robot đến vị trí mong muốn thông qua driver A4988 và Cnc shield V3.
Thiết kế phần cứng
Trong đồ án này sẽ sử dụng một webcam đóng vai trò cập nhật và truyền hình ảnh vùng làm việc về cho máy tính để thực hiện các thuật toán xử lý ảnh, webcam được kết nối với máy tính thông qua cổng USB tích hợp sẵn của webcam.
Tại máy tính sau khi tiến hành xử lý xong sẽ truyền tín hiệu điều khiển cho một khối điều khiển thông qua truyền thông UART, trong khối bao gồm vi điều khiển sử dụng thêm board mở rộng kết nối với các driver điều khiển động cơ.
Khối điều khiển thực hiện nhiệm vụ điều khiển tốc độ và chiều quay của động cơ bước, giúp cánh tay robot hoạt động theo ý muốn Bên cạnh đó, tín hiệu điều khiển cũng được truyền đến cơ cấu gắp-thả ở điểm cuối của cánh tay để điều khiển chuyển động gắp và thả vật thể thông qua cơ chế servo.
Nguồn nuôi động cơ được sử dụng bởi một bộ nguồn chuyển đổi từ dòng điện
AC sang DC, còn nguồn cấp cho khối điều khiển và wecam sẽ lấy từ máy tính thông qua cáp USB.
Hình 3 1: Sơ đồ khối thiết kế phần cứng hệ thống
CHƯƠNG 3.TÍNH TOÁN VÀ THIẾT KẾ
Lựa chọn thiết bị phần cứng
Magician là cánh tay robot để bàn đa chức năng hoàn hảo cho phục vụ giáo dục công nghệ Được cài đặt với nhiều công cụ cuối khác nhau, Magician có thể thực hiện nhiều chức năng thú vị như in 3D, khắc laser, viết và vẽ, …
Hình 3 2: Cánh tay robot magician basic
Sau khi tham khảo và xem xét nhóm đã quyết định sẽ sử dụng cánh tay robotMagician với việc dùng động cơ bước điều khiển các khớp quay để mô hình hoạt động chính xác và ổn định, ở điểm cuối robot có gắn một cơ cấu hút– nhả Phần khung của robot được lựa chọn in 3D để tối ưu hóa chi phí.
CHƯƠNG 3.TÍNH TOÁN VÀ THIẾT KẾ
Bảng 3 1: Kích thước các khâu của cánh tay robot Magician in 3D
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR (ATmega8, ATmega168, ATmega328) để xử lý các tác vụ đơn giản như điều khiển led nhấp nháy, xử lý tín hiệu xe điều khiển từ xa, đo nhiệt độ độ ẩm, hiển thị LCD….Trong đồ án này vi điều khiển được sử dụng là Arduino UNO R3 (sử dụng ATmega328).
Hình 3 4: Board Arduino UNO R3 Bảng 3 2: Thông số cơ bản Arduino UNO R3
Vi điều khiển ATmega328 (8bit) Điện áp hoạt động 5VDC
Tần số hoạt động 16MHz
Dòng tiêu thụ 30mA Điện áp vào khuyên dùng 7 – 12VDC Điện áp vào giới hạn 6 – 20VDC
Số chân Digital I/O 14 (6 chân PWM)
Dòng tối đa trên mỗi I/O 30mA
Dòng ra tối đa (5V) 500mA
Dòng ra tối đa (3V) 50mA
Bộ nhớ flash 32KB (ATmega328) với 0.5KB dùng bởi bootloader
CHƯƠNG 3.TÍNH TOÁN VÀ THIẾT KẾ
CNC Shield V3 là board mở rộng của Arduino UNO R3 dùng để điều khiển các máy CNC mini Board có 4 vị trí để cắm các mô đun điều khiển động cơ bước A4988, khi đó board có thể điều khiển 3 trục XYZ và thêm một trục thứ tư tùy chọn.
Một số đặc điểm nổi bật:
- Tương thích với GRBL (mã nguồn mở chạy trên Arduino UNO R3 để điều khiển CNC mini).
- Hỗ trợ điều khiển lên tới 4 trục (X, Y, Z và 1 trục tùy chọn).
- Hỗ trợ tới 2 Endstop (cảm biến đầu cuối) cho mỗi trục.
- Điều khiển Spindle, điều khiển dung dịch làm mát khi máy hoạt động.
- Thiết lập độ phân giải các bước động cơ bằng jump đơn giản.
- Điện áp nguồn cấp đa dạng 12-36V.
3.3.4 Driver điều khiển động cơ
Trong tất cả máy in 3D, máy cnc, máy khác laser… Thì không thể nào thiếu động cơ bước Tuy nhiên động cơ bước có khuyết điểm là nếu bị mất bước thì sản phẩm làm ra sẽ không được chính xác Để khác phục điều này thì buộc phải dùng những động cơ servo, tuy nhiên động cơ servo thì có giá thành rất đắt khoảng gấp
CHƯƠNG 3.TÍNH TOÁN VÀ THIẾT KẾ động cơ servo cho giá thành rẻ mà lại chính xác Thì Hãng Makerbase cho ra sản phẩm MKS SERVO42C là một board mạch được gắn đằng sau động cơ bước. Board được lập trình trên vi điều khiển SMT32 và driver động cơ là TMC2209 được tích hợp trên board.
Hình 3 6: Mạch điều khiển động cơ bước MKS Servo42C Bảng 3 3: Thông số cơ bản của MKS Servo42C
Tần số cập nhật Vị trí: 10kkHz
Tốc độ: 10kHz Moment xoắn: 20kHz
Chế độ điều khiển PID Incremental
Driver 4 driver half-bridge và 8 mosfet
Màn hình hiển thị OLED Điện áp hoạt động 7~28VDC
Khoảng điều chỉnh dòng điện 0~3A
USART Có Điều khiển FOC Có Độ phân giải góc 0.08°
Tốc độ tối đa 1000RPM
CHƯƠNG 3.TÍNH TOÁN VÀ THIẾT KẾ
- MKS Servo42C bao gồm hai thành phần chính: encoder và bộ điều khiển servo. + Encoder trong MKS Servo42C là một thiết bị cảm biến, có nhiệm vụ đo vị trí góc của trục động cơ.
+ Bộ điều khiển servo (Servo Controller):
Bộ điều khiển servo nhận tín hiệu từ encoder và điều chỉnh dòng điện gửi tới động cơ bước (stepper motor) để kiểm soát chuyển động của nó.
Bộ điều khiển này thường sử dụng một vi điều khiển (microcontroller) để xử lý thông tin từ encoder và thực hiện các thuật toán điều khiển servo.
- Quá trình hoạt động của mạch MKS Servo42C:
+ Thu Thập Dữ Liệu Từ Encoder: Encoder đo lường vị trí hiện tại của trục động cơ và gửi tín hiệu về vi điều khiển.
+ Xử Lý Tín Hiệu và Tính Toán: Vi điều khiển nhận tín hiệu, chuyển đổi và tính toán các tham số điều khiển cần thiết dựa trên thuật toán FOC.
+ Gửi Lệnh Điều Khiển:Vi điều khiển gửi tín hiệu điều khiển tới driver Mosfet để điều chỉnh dòng điện trong các pha của động cơ.
Động cơ điều chỉnh là bộ phận đảm bảo động cơ hoạt động mượt mà và chính xác theo lệnh điều khiển Nó đóng vai trò điều chỉnh vị trí, tốc độ và mô-men xoắn của động cơ, giúp hệ thống vận hành trơn tru.
- Driver Mosfet: Gồm 4 cầu H nửa (Half-Bridge) với 8 MOSFET, cho phép điều khiển động cơ với hiệu suất cao và khả năng tản nhiệt tốt, giúp giảm độ ồn, độ rung và nhiệt lượng phát sinh trong quá trình hoạt động.
- Thuật toán điều khiển theo hướng từ trường (Field-Oriented Control - FOC) là một phương pháp tiên tiến để điều khiển các động cơ điện, đặc biệt là động cơ đồng bộ từ trường vĩnh cửu (Permanent Magnet Synchronous Motors - PMSM) và động cơ không đồng bộ (Asynchronous Motors) FOC cho phép điều khiển động cơ một cách hiệu quả, mượt mà và chính xác.
- Bộ điều khiển của MKS Servo42C có vai trò quan trọng trong việc quản lý và điều khiển động cơ bước để đạt được hiệu suất và độ chính xác cao Dưới đây là các chức năng chính của bộ điều khiển:
CHƯƠNG 3.TÍNH TOÁN VÀ THIẾT KẾ
+ Điều khiển vòng kín (Closed-loop Control): đảm bảo rằng động cơ đạt được vị trí, tốc độ và mô-men xoắn chính xác như yêu cầu, ngay cả khi gặp phải tải biến đổi, nhờ vào hệ thống phản hồi từ encoder từ tính 14bit.
Quản lý và điều chỉnh dòng điện (Current Management) cho phép điều chỉnh dòng điện từ 0-3000mA để đáp ứng yêu cầu cụ thể của ứng dụng Tính năng này giúp tăng hiệu quả và bảo vệ động cơ, phù hợp cho các ứng dụng yêu cầu kiểm soát dòng điện chặt chẽ như xe nâng điện, xe điện và robot.
+ Giao tiếp và điều chỉnh thông số (Communication and Parameter Adjustment): hỗ trợ giao tiếp qua cổng serial, cho phép người dùng kết nối với máy tính để điều chỉnh và kiểm tra các thông số vận hành của động cơ.
+ Bộ Mạch Điều Khiển (Driver Circuit): sử dụng 4 driver cầu nửa với 8 MOSFET để điều khiển các pha của động cơ, đảm bảo hiệu suất cao và ổn định.
Phần mềm sử dụng
PyCharm là một môi trường phát triển tích hợp (IDE) được JetBrains phát triển riêng cho ngôn ngữ lập trình Python Phần mềm này được sử dụng tại nhiều công ty lớn như Facebook, Pinterest và Amazon PyCharm có thể chạy trên các hệ điều hành Windows, Linux và macOS Ngoài ra, PyCharm còn có các mô-đun giúp tăng tốc quá trình phát triển phần mềm bằng Python, đồng thời giảm thiểu công sức cần thiết Người dùng cũng có thể tùy chỉnh PyCharm theo nhu cầu cụ thể của mình.
Các tính năng nổi bật của Pycharm có thể kể đến như trình sửa chửa chương trình thông minh, lược đồ màu cho các từ khóa, lớp và hàm, tính năng hoàn thiện và sửa lỗi dễ dàng ,…
Qt Designer là một công cụ dùng để nhanh chóng xây dựng một giao diện người dùng đồ họa với các widget từ khung Qt GUI Nó cung cấp cho người dùng một giao diện kéo thả đơn giản để bố trí các thành phần như nút nhấn, văn bản, hộp tổ hợp và nhiều hơn thế nữa.
Qt Designer tạo ra các tệp ui, đây là một định dạng dựa trên XML đặc biệt để lưu trữ các widget dưới dạng cây Người dùng có thể tải các tệp này trong thời gian chạy hoặc dịch chúng sang ngôn ngữ lập trình khác như C++ hay Python.
Matlab (tên viết tắt của Matrix laboratory) là một phần mềm cung cấp môi trường tính toán và lập trình do công ty MathWorks tạo ra Matlab cho phép tính toán số học với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện các thuật toán, tạo giao diện người dùng và liên kết với những chương trình viết trên nhiều ngôn ngữ lập trình khác.
Arduino IDE là phần mềm mã nguồn mở, cho phép người dùng dễ dàng viết và biên dịch chương trình cho các board mạch Arduino Arduino IDE tích hợp phần cứng với hơn 300.000 board mạch được thiết kế sẵn, đi kèm với nhiều cảm biến và linh kiện điện tử Sự kết hợp này giúp người dùng tận dụng tối đa các linh kiện, tùy chỉnh linh hoạt để phù hợp với mục đích sử dụng của mình.
Arduino IDE sử dụng ngôn ngữ lập trình C/C++ rất phổ biến trong lập trình.Bất kì một đoạn chương trình nào của C/C++ thì Arduino đều có thể nhận dạng
CHƯƠNG 3.TÍNH TOÁN VÀ THIẾT KẾ
Arduino IDE tích hợp hơn 700 thư viện được viết và chia sẻ bởi nhà phát hành Arduino Software và các thành viên trong cộng đồng Arduino Chúng ta có thể tận dụng chúng cho các dự án riêng mà không phải bỏ ra bất kì chi phí nào.
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (RelationalDatabase Management System – RDBMS) hoạt động theo mô hình client – server.RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữ liệu theo hình thức quản lý các mối liên hệ giữa chúng.
THI CÔNG HỆ THỐNG
Giới thiệu
Chương này sẽ trình bày về hai nội dung chính gồm thi công phần cứng và lập trình chương trình cho hể thống Thi công phần cứng bao gồm lắp ráp linh kiện, nối dây, sắp xếp các linh kiện và thiết bị vào khung mô hình Thiết kế phần mềm bao gồm lập trình điều khiển robot, thu thập và xử lý hình ảnh, thu thập cơ sở dữ liệu,tạo giao diện người dùng.
Thi công phần cứng
4.2.1 Tổng quan về kết nối hệ thống phần cứng
Hình 4 1: Tổng quan sơ đồ kết nối phần cứng của hệ thống
Hình ảnh từ webcam sẽ được máy tính đọc về, sau đó thực hiện các giải thuật để phát hiện và phân loại vật thể (theo màu sắc, hình dạng, mã QR) đồng thời xác định tọa độ của của vật thể chuyển động Khi vật thể nằm trong một khoảng cách đặt trước thì tiến hành tính toán động học ngược cho robot và sau đó gửi các giá trị biến khớp xuống Arduino Arduino sẽ thực hiện điều khiển động cơ bước gắn trên các khớp của robot đến vị trí mong muốn thông qua driver A4988 và Cnc shield V3.
4.2.2 Sơ đồ kết nối phần cứng
CNC shield V3 là board mở rộng của Arduino UNO R3 nên nó được thiết kế để kết hợp với Arduino UNO R3 rất dễ dàng thông qua cắm các chân Pin Đồng thời nó cũng được thiết kế để tương thích với Driver MKS Servo42C nên có thể lắp ráp dễ dàng.
CHƯƠNG 4 THI CÔNG HỆ THỐNG shield v3 Các công tắc hành trình trên khớp số 1, 2, 3 của robot dùng để xác định giá trị các biến khớp ban đầu của robot được kết nối lần lượt với chân z - limit switch, x - limit switch, y - limit switch của cnc shield v3 Hai chân kích relay IN1 và IN2 của mạch 2 relay opto thì được nối vào chân Spn En và Spn Dir
Hình 4 2: Sơ đồ kết nối Arduino UNO R3 với driver MKS Servo42C và CNC
Mạch module 2 relay được cấp nguồn 12V từ nguồn tổ ong, chân SpnDir và chân SpnEn của cnc shield v3 được kết nối với chân tín hiệu trên relay dùng để điều khiển bơm chân không On/Off bằng cách đóng ngắt relay.
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4 3: Sơ đồ kết nối điều khiển On/Off end-effector của robot
Hình 4 4: Sơ đồ kết nối điều khiển động cơ kéo băng tải
- Sau khi lắp ráp, nối dây xong phần thiết bị, linh kiện điện tử ta tiến hành gắn cố định các thành phần nguồn, bộ điều khiển, webcam, robot cùng các phần khác lên một bảng gỗ để hoàn thiện mô hình.
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Lập trình hệ thống
4.3.1 Lập trình điều khiển robot
4.3.1.1 Chương trình xử lý trên máy tính
Máy tính thực hiện tính toán động học thuận từ tọa độ đầu cuối, sau đó gửi các giá trị biến khớp θ1, θ2, θ3 xuống vi điều khiển Vi điều khiển sử dụng các giá trị này để điều khiển động cơ bước tại các khớp đến vị trí mong muốn.
4.3.1.2 Chương trình xử lý trên vi điều khiển
Trong luận văn này, nhóm sẽ trình bày phương pháp để điều khiển các khớp của robot đồng thời từ đó giúp cho robot hoạt động linh hoạt hơn và tối ưu thời gian điều khiển.
Phương pháp điều khiển động cơ bước bằng xung cho phép điều khiển động cơ đến vị trí mong muốn Chương trình điều khiển được lập trình bằng ngôn ngữ C trong môi trường Arduino IDE Động cơ bước đầu tiên sẽ điều khiển khớp 1 của robot, với tỷ số truyền giữa bánh răng tại khớp và bánh răng tại trục động cơ được xác định.
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Gear (4.1) Động cơ bước thứ nhất sẽ điều khiển khớp 1 của robot, quay với tỉ số truyền giữa bánh răng tại khớp của robot so với bánh răng tại trục động cơ là:
Gear (4.2) Động cơ bước thứ nhất sẽ điều khiển khớp 1 của robot, quay với tỉ số truyền giữa bánh răng tại khớp của robot so với bánh răng tại trục động cơ là:
Driver MKS Servo42C được cấu hình vi bước ở mode 1/16, do đó số xung để điều khiển động cơ bước quay một góc(độ) là:
Giả sử ban đầu các giá trị biến khớp robot lần lượt là 1,2,3, ta cần thực hiện điều khiển robot đến vị trí 1 , 2 , 3 Khi đó số xung cần để điều khiển các động cơ bước là:
Do phần thiết kế cơ khí của robot, khi khớp số 2 quay mà vẫn để đảm bảo giá trị khớp số 3 không đổi thì cả hai động cơ 2 và 3 phải cùng quay một góc 2 Như vậy số xung cần để cấp cho động cơ 1, 2, 3 lần lượt là Pulse1, Pulse2,Pulse3+Pulse2.
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4 6: Thứ tự động các cơ bước trên robot
Quỹ đạo di chuyển của robot khi hút sản phẩm xong và sau khi thả sản phẩm đã phân loại vào ô phân loại sẽ được điều khiển về vị trí home ( 1 0 , 2 80 , 3 115 ) làm vị trí trung gian trước khi thực hiện các bước di chuyển tiếp theo nhằm tránh một vài trường hợp gây va chạm làm lệch bước quay của động cơ bước.
4.3.2 Giải thuật xử lý ảnh nhận dạng và theo dõi vật thể
OpenCV là viết tắt của Open Source Computer Vision Library Là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (Computer Vision) và học máy (Machine Learning) và hiện có thêm tính năng tăng tốc GPU cho các hoạt động theo thời gian thực.
Thư viện OpenCV được phát hành theo giấy phép BSD, cho phép sử dụng miễn phí cả cho mục đích học tập và thương mại OpenCV tương thích với các giao diện C++, C, Python, Java và hỗ trợ nhiều hệ điều hành như Windows, Linux, Mac OS, iOS và Android Thư viện này được tối ưu hóa để hỗ trợ các ứng dụng thời gian thực, tận dụng sức mạnh xử lý của bộ xử lý đa lõi khi viết bằng C/C++.
Một số tính năng và mô đun phổ biến của OpenCV:
- Xử lý và hiển thị hình ảnh/video.
- Ứng dụng trong thị giác máy tính, học máy, học sâu.
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Thư viện OpenCV có thể hỗ trợ nhiều ngôn ngữ lập trình khác nhau như C++, Python, … Tùy theo ứng dụng và bài toán cụ thể mà ta chọn ngôn ngữ lập trình thích hợp để sử dụng.
4.3.2.2 Sơ đồ khối giải thuật nhận dạng và phân loại sản phẩm
Hình 4 7:Lưu đồ thuật toán phân loại màu sắc
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4 8: Lưu đồ thuật toán phân loại theo mã QR
Thuật toán xử lý từng khung hình bằng cách trừ ảnh foreground (ảnh từ camera) với ảnh background (ảnh chụp khi không có vật thể) để xác định vật thể Vùng băng tải được chọn làm vùng quan tâm để thu hẹp phạm vi tìm kiếm và loại bỏ nhiễu Sau khi xác định được vật thể, tâm và đường bao của vật sẽ được tìm thấy Dựa vào các đặc điểm (màu sắc hoặc mã QR), vật thể sẽ được phân loại Cuối cùng, tọa độ vật thể được chuyển đến hệ tọa độ robot và gửi đến Arduino để thực hiện thao tác gắp vật.
CHƯƠNG 4 THI CÔNG HỆ THỐNG
Hình 4 9:Quá trình xử lý ảnh cần phân loại
4.3.2.3 Giải thuật nhận dạng vật thể
Background substraction hay còn gọi là trừ nền, là kỹ thuật xử lý ảnh được dùng nhiều trong việc xác định các vật thể di chuyển từ hình ảnh mà một camera tĩnh thu được Khi thực hiện việc trừ nền cho ảnh có vật thể và ảnh nền, ta sẽ xác định được vị trí của vật trên khung hình Từ đó có thể nhận diện được màu sắc, hình dạng và theo dõi chuyển động của vật Thuật toán này được thực hiện với ảnh đầu vào là ảnh xám. Để thực hiện được thuật toán trên đầu tiên ta cần làm lấy ảnh background (nền) khi chưa có vật thể và chuyển ảnh này thành ảnh xám.
Khi thu được ảnh chứa vật thể ta cũng chuyển ảnh thu được thành ảnh xám, sau đó thực hiện trừ từng pixel của ảnh xám chứa vật cho ảnh xám nềm, ta sẽ thu được ảnh chỉ chứa vật thể cần xác định Để thuật toán hoạt động tốt ta thực hiện như sau:
- Áp dụng bộ lọc Gaussian cho ảnh xám background và foreground, nhằm làm mịn hai hình này.
- Trừ từng pixel của anh foreground cho ảnh background, ta thu được ảnh mới chứa vị trí của vật thể (cần lấy trị tuyệt đối của hiệu từng pixel do giá trị mức xám luôn trong khoảng từ [0:255]).
KẾT QUẢ VÀ ĐÁNH GIÁ
Kết quả thực hiện
5.1.1 Lập trình điều khiển cánh robot Magician
- Nắm được các thông số đặc trưng của mô hình cánh tay robot Magician, giải quyết bài toán động học ngược để điều khiển robot đến vị trí mong muốn.
- Hiểu được cách thức điều khiển động cơ bước, từ đó có thể điều khiển được cái khớp chuyển động đồng thời.
Nhóm đã tiến hành đo đạc và tính toán để so sánh tọa độ điểm đầu cuối mong muốn với tọa độ thực tế bằng thước thẳng Bảng số liệu thu được không có tính chính xác tuyệt đối do thiếu thiết bị đo chuyên dụng.
Bảng 5 1: Vị trí của điểm đầu cuối mong muốn điều khiển và vị trí của điểm đầu cuối đo được từ thực tế
Vị trí của end-effector mong muốn Vị trí của end-effector đo được Sai số
CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ
Do không được đo bằng thiết bị chuyên dụng nên kết quả đo không được chính xác tuyệt đối Từ bảng 5.1 ta tính được trung bình sai số của tọa độ điểm đầu cuối của robot lần lượt là:
5.1.2 Thiết kế giao diện người dùng kết hợp hệ thống robot và hệ thống thị giác máy tính
- Sử dụng giao thức UART để kết nối máy tính với robot, từ đó có thể gửi các thông tin đã tính toán xuống Arduino điều khiển xuất xung cho động cơ bước, thực hiện quay các khớp của robot.
- Hình ảnh camera được truyền về máy tính bằng cổng usb có sẵn từ Logictech thông qua driver do hãng cung cấp.
- Thiết kết giao diện trực quan dễ sử dụng, hiển thị đầy đủ những thông tin cần thiết của hệ thống.
Kết nối với cơ sở dữ liệu MySQL để thu thập và lưu trữ dữ liệu về thời gian, màu sắc, hình dạng và giá cả của các vật phẩm Ngoài ra, giao diện người dùng cho phép đọc các thông tin này.
- Khi phân loại sản phẩm theo mã QR, robot gần như có thể bắt trúng được các vật, độ lệch giữa tâm vật thể và end-effector của robot nằm trong khoảng0.5 (cm).
Hình 5 1: Giao diện robot ở chế độ Manual
CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ
Hình 5 2: Robot gắp vật theo mã QR
Khi tiến hành phân loại sản phẩm dựa trên đặc điểm màu sắc, độ nhiễu và độ sáng thay đổi mạnh mẽ ảnh hưởng đến thuật toán nhận dạng đối tượng, gây nên tình trạng robot bắt trúng vật thể với tỉ lệ thấp hơn.
CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ
Dữ liệu sau khi thực hiện phân loại được gửi lên cơ sở dữ liệu
Hình 5 4: Thông tin trên cơ sở dữ liệu
Hình 5 5: Kết quả thông tin đọc về từ cơ sở dữ liệu
CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ
5.1.3 Kết quả phân loại sử dụng giải thuật đã xây dựng
Hiểu và lập trình được các giải thuật xử lý ảnh để phân loại màu và tracking theo sản phẩm để gửi tọa độ cho cánh tay robot thực thi di chuyển đến và tiến hành hút nhả Nhóm đã thực hiện cho tiến hành phân loại sản phẩm trong điều kiện môi trường ánh sáng đầy đủ và ánh sáng yếu để đánh giả khả năng của hệ thống.
5.1.3.1 Kết quả phân loại theo màu sắc
Bảng 5 2: Kết quả phân loại sản phẩm theo màu sắc
Số sản được đưaphẩm vào phân loại đúng
Số sản phẩmđược phân loại đúng
Tỉ lệ chính xác Ghi chú
1 Tốt 30 29 96.67% - Trường hợp gắp cả 3 màu
2 Tốt 30 29 96.67% - Trường hợp gắp cả 3 màu
3 Tốt 30 30 100% - Trường hợp gắp cả 3 màu
4 Tốt 10 10 100% - Trường hợp chỉ gắp màu xanh lam trong 3 màu
5 Tốt 10 10 100% - Trường hợp chỉ gắp màu vàng trong 3 màu
6 Tốt 10 9 90% - Trường hợp chỉ gắp màu đỏ trong 3 màu
- Trường hợp gắp cả 3 màu
- Không nhận dạng được 1 lần
8 Kém 30 29 96.67% - Trường hợp gắp cả 3 màu
- Trường hợp gắp cả 3 màu
- Không nhận dạng được 2 lần
- Trường hợp gắp cả 3 màu
CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ
Nhận xét: Thuật toán nhận diện màu và vị trí sản phẩm phụ thuộc nhiều vào yếu tố nguồn sáng, cần duy trì một nguồn sáng vừa đủ và ôn định để hệ thống phân loại được hoạt động tốt nhất.
Hình 5 6: Phân loại màu sắc trong điều kiện ánh sáng kém
Hình 5 7: Phân loại màu sắc trong điều kiện ánh sáng tốt
CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ
5.1.3.2 Kết quả phân loại theo mã QR
Bảng 5 3: Kết quả phân loại sản phẩm theo mã QR
Số sản được đưaphẩm vào phân loại đúng
Số sản phẩmđược phân loại đúng
Tỉ lệ chính xác Ghi chú
- Trường hợp gắp cả 3 mã
QR- Sai 1 lần do không nhận dạng được mã QR
- Trường hợp gắp cả 3 mã
QR- Sai 2 lần do không nhận dạng được mã QR
3 Tốt 30 30 100% - Trường hợp gắp cả 3 mã
4 Tốt 10 10 100% - Trường hợp chỉ gắp 1 mã
5 Tốt 10 9 90% - Trường hợp chỉ gắp 1 mã
6 Tốt 10 9 90% - Trường hợp chỉ gắp 1 mã
- Trường hợp gắp cả 3 mã
- Không nhận dạng được 3 lần
- Trường hợp chỉ gắp 1 mã
- Không nhận dạng được 3 lần
- Trường hợp gắp cả mã QR
- Không nhận dạng được 3 lần
- Trường hợp gắp cả 3 màu
CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ
Hình 5 8: Phân loại mã QR trong điều kiện ánh sáng kém
Hình 5 9: Phân loại mã QR trong điều kiện ánh sáng tốt
CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ
Đánh giá
5.2.1 Thuật toán điều khiển robot hút và phân loại vật
- Do thiết kế cơ khí và chất lượng in 3D chưa tốt, cùng với sai số khi truyền động từ bánh răng gắn ở trục động cơ bước đến bánh răng gắn ở các khớp của robot đã dẫn đến sai số trên Sai số điều khiển theo trục x, y, z lần lượt xấp xỉ 0.3 (cm), 0.4 (cm), 0.3 (cm) là có thể chấp nhận được.
- Tỉ lệ bắt trúng vật của robot khá cao, tùy thuộc vào tọa độ vật thể mà camera phát hiện được và độ ổn định của tốc độ băng tải.
- Thực hiện điều khiển 3 khớp của robot một cách đồng thời giúp tăng thời gian phân loại sản phẩm hơn là điều khiển từng khớp.
5.2.2 Thuật toán phân loại vật sử dụng thị giác máy tính
- Thuật toán nhận dạng được màu sắc của vật thể, tìm thấy được mã QR gắn lên trên vật và giải mã thông tin từ chúng.
- Tracking được vật thể, tìm được tọa độ theo pixel và chuyển chúng sang tọa độ của robot, tính toán góc quay của các khớp gửi cho Arduino.
* Các yếu tố ảnh hưởng đến kết quả:
- Do làm tròn trong quá trình tìm tọa độ vật, cộng với sai số trong lúc tính toán có thể dẫn đến tọa độ tâm khi gửi cho robot bị sai số tích lũy.
- Chất lượng camera còn chưa tốt nên khi có sự thay đổi đáng kể về độ sáng của môi trường việc xác định vị trí của vật bị nhiễu dẫn đến robot gắp sai vị trí.
- Tốc độ truyền frame còn chậm nên việc tracking vật thể chưa ổn định.