Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 99 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
99
Dung lượng
2,49 MB
Nội dung
ĐẠI HỌC BÌNH DƯƠNG KHOA ĐIỆN – ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: THIẾT KẾ & THI CÔNG CÁNH TAY ROBOT PHÂN LOẠI SẢN PHẲM THEO MÀU SẮC GVHD: ThS HỒ THANH TUẤN SVTH: ĐẶNG MINH TUẤN LỚP: 19DT01 MSSV: 16020062 Bình Dương- 2022 Đồ án tốt nghiệp Khoa điện-điện tử BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG Độc lập – Tự – Hạnh phúc Bình Dương, Ngày tháng năm 2022 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên: Đặng Minh Tuấn MSSV:16020062 Hệ: Đại học Mở đầu đồ án: …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………… Nhiệm vụ: …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… ………… Ngày giao nhiệm vụ đò án: 18/07/2022 Ngày hoàn thành nhiệm vụ (Nộp đồ án tốt nghiệp): 10/10/2022 Giảng viên hướng dẫn ♦ Th.S Hồ Thanh Tuấn GV HƯỚNG DẪN SVTH:Đặng Minh Tuấn Phần hướng dẫn TRƯỞNG KHOA I Đồ án tốt nghiệp Khoa điện-điện tử BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT CỦA ĐỒ ÁN TỐT NGHIỆP (Dành Cho Cán Bộ Hướng Dẫn) Họ tên SV: Đặng Minh Tuấn Mã số SV: 16020062 Lớp: 19DT01 Ngành: Điện – Điện Tử Tên đề tài: Thiết kế & thi công cánh tay Robot phân loại sản phẳm theo màu sắc Người hướng dẫn (tên đầy đủ): ThS.Hồ Thanh Tuấn Nội dung đồ án a Nhận xét hình thức báo cáo : Số trang ……… Số chương…………… Số bảng số liệu ……… Số hình vẽ …………… Số tài liệu tham khảo ……… Sản phẩm…………… b Nhận xét nội dung (kiến thức, phương pháp mà sinh viên tìm hiểu, nghiên cứu nhận xét ưu điểm hạn chế) Ý nghĩa đồ án SVTH:Đặng Minh Tuấn II Đồ án tốt nghiệp Khoa điện-điện tử Nhận xét đồ án (nhận xét kiến thức, phương pháp mà sinh viên tìm hiểu, nghiên cứu, việc xây dựng ứng dụng demo, thái độ, ưu điểm, hạn chế sinh viên tham gia) a Ưu điểm: b Hạn chế: Đề xuất, đánh giá Đủ tiêu chuẩn bảo vệ Chưa đủ tiêu chuẩn bảo vệ Đánh giá chung: NỘI DUNG Điểm tối đa 10 Hướng nghiên cứu (cách tiếp cận đề tài, trình thực phương pháp nghiên cứu điều tra, khảo sát) 1.5 Nội dung trình bày từ hướng nghiên cứu (đặt vấn đề, giải vấn đề) 1.0 Sự phù hợp phương pháp (giá trị khoa học, thực tiển kết nghiên cứu) 3.0 SVTH:Đặng Minh Tuấn III Điểm Đồ án tốt nghiệp Khoa điện-điện tử Phạm vi phân tích (tính mới, tính sáng tạo, độc đáo đề tài) 2.0 Kết đạt kiến nghị (kết nghiên cứu, tóm tắt, kiến nghị đề tài) 1.0 Hình thức (định dạng, cấu trúc, nội dung, mục lục tài liệu tham khảo) 1.5 CB HƯỚNG DẪN SVTH:Đặng Minh Tuấn IV Đồ án tốt nghiệp Khoa điện-điện tử BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT CỦA ĐỒ ÁN TỐT NGHIỆP (Dành cho Cán Bộ Phản Biện) Họ tên SV:Đặng Minh Tuấn Mã số SV:16020062 Lớp: 19DT01 Ngành: Điện-Điện Tử Tên đề tài: Thiết kế & thi công cánh tay Robot phân loại sản phẳm theo màu sắc Người phản biện (tên đầy đủ): ThS.Hồ Thanh Tuấn Nội dung đồ án c Nhận xét hình thức báo cáo : Số trang ………… Số chương ………… Số bảng số liệu ………… Số hình vẽ ………… Số tài liệu tham khảo ………… Sản phẩm …………… d Nhận xét nội dung (kiến thức, phương pháp mà sinh viên tìm hiểu, nghiên cứu nhận xét ưu điểm hạn chế) Ý nghĩa đồ án SVTH:Đặng Minh Tuấn V Đồ án tốt nghiệp Khoa điện-điện tử Nhận xét đồ án (nhận xét kiến thức, phương pháp mà sinh viên tìm hiểu, nghiên cứu, việc xây dựng ứng dụng demo, thái độ, ưu điểm, hạn chế sinh viên tham gia) a Ưu điểm: b Hạn chế: Đề xuất, đánh giá Đủ tiêu chuẩn bảo vệ Chưa đủ tiêu chuẩn bảo vệ 10 Câu hỏi (phản biện đặt 02 câu hỏi): Đánh giá chung: NỘI DUNG Điểm tối đa 10 SVTH:Đặng Minh Tuấn VI Điểm Đồ án tốt nghiệp Khoa điện-điện tử Hướng nghiên cứu (cách tiếp cận đề tài, trình thực phương pháp nghiên cứu điều tra, khảo sát) 1.5 Nội dung trình bày từ hướng nghiên cứu (đặt vấn đề, giải vấn đề) 1.0 Sự phù hợp phương pháp (giá trị khoa học, thực tiển kết nghiên cứu) 3.0 Phạm vi phân tích (tính mới, tính sáng tạo, độc đáo đề tài) 2.0 Kết đạt kiến nghị (kết nghiên cứu, tóm tắt, kiến nghị đề tài) 1.0 Hình thức (định dạng, cấu trúc, nội dung, mục lục tài liệu tham khảo) 1.5 CB PHẢN BIỆN SVTH:Đặng Minh Tuấn VII Đồ án tốt nghiệp Khoa điện-điện tử LỜI CAM ĐOAN Kính gửi: Ban giám hiệu Trường Đại học Bình Dương, Khoa Kỹ thuật Điện – Điện Tử Trường Đại học Bình Dương, Hội đồng chấm khóa luận tốt nghiệp Em Tên Là: Đặng Minh Tuấn, Lớp 19DT01, MSSV:16020062, sinh viên khoa Điện – Điện Tử, Trường Đại học Bình Dương, khóa 2016-2020 Em xin cam đoan đề tài “Thiết kế & thi công cánh tay Robot phân loại sản phẳm theo màu sắc” thân em thực Các số liệu, kết nêu đồ án trích từ tài liệu, giáo trình sách tính tốn xác Bình Dương,ngày tháng năm 2022 Sinh viên Đặng Minh Tuấn SVTH:Đặng Minh Tuấn VIII Đồ án tốt nghiệp Khoa điện-điện tử LỜI CẢM ƠN Trong thời gian học trường Đại học Bình Dương, em học tiếp thu nhiều kiến thức từ bảo tận tình q thầy khoa Điên – Điện Tử, giúp đở bạn bè Đây khoản thời gian đầy ý nghĩa, đồ án tốt nghiệp trường tảng quang trọng đánh dấu bước ngoặc đời em Do thời gian kiến thức hạn hẹp, em cố gắng hoàn thành đồ án tốt nghiệp thời hạn Nên khơng tránh khỏi thiếu sót mong q thầy/cô thông cảm Em mong nhận ý kiến đóng góp tận tình q thầy/cơ bạn Em xin chân thành cảm ơn Th.s: Hồ Thanh Tuấn tận tình hướng dẫn, phát triển đồ án thực tế hơn, hỗ trợ tài liệu Trong suốt trình làm đồ án tốt nghiệp Em xin chân thành cảm ơn Thầy Sinh viên Đặng Minh Tuấn SVTH:Đặng Minh Tuấn IX Đồ án tốt nghiệp Khoa điện-điện tử • Object Detection (objdetect) – phát đối tượng mô hàm định nghĩa sẵn – predefined classes (vd: khuôn mặt, mắt, cốc, người, xe hơi,…) • High-level GUI (highgui) – giao diện dễ dùng để thực việc giao tiếp UI đơn giản • Video I/O (videoio) – giao diện dễ dùng để thu mã hóa video • GPU – Các thuật tốn tăng tốc GPU từ modun OpenCV khác • … số module hỗ trợ khác, ví dụ FLANN Google test wrapper, Python binding, v.v 6.1.2.4 Ngôn ngử OpenCV: OpenCV hỗ trợ nhiều ngôn ngữ, ngơn ngữ mạnh riêng, tùy theo nhu cầu mà chọn ngôn ngữ cho phù hợp C++: Đây ngôn ngữ phổ biến nhanh, nhiều option, bạn có IDE Visual Studio tốt Các thiết lập hữu ích cho sản phẩm sau này, ban đầu đụng tay phức tạp Python: Ngôn ngữ dùng nhiều để demo / test OpenCV tính ngắn gọn, phải thiết lập Bên cạnh đó, dùng Python code nhiều hệ điều hành Android: Hiện tích hợp sẵn camera, tiện lợi nên sớm trở thành xu hướng OpenCV Java: Nhanh đa tảng, tương tự C++ C#: Code tiện lợi, dễ dàng, có thư viện đa tảng EmguCV hỗ trợ Có điểm trừ EmguCV yêu cầu người dùng phải copy toàn file *.dll lib kèm với ứng dụng nên làm ứng dụng nặng Tùy theo nhu cầu tính chất cơng việc / dự án mà bạn chọn ngơn ngữ phù hợp Ví dụ xử lý hình ảnh C++, thiết kế UX / UI chuyển sang C# cho dễ thiết kế Riêng demo chương trình chạy Python android Ngơn ngữ có điểm cộng điểm trừ, cân nhắc tuỳ project cho phù hợp 6.1.3 Phát đối tượng: Phát đối tượng phân loại nhiệm vụ quan trọng thách thức thị giác máy tính Nó phần quan trọng nhiều ứng dụng tìm kiếm hình ảnh, hiểu biết cảnh, vv Tuy nhiên vấn đề mở đa dạng phức tạp lớp đối tượng hình SVTH:Đặng Minh Tuấn 64 Đồ án tốt nghiệp Khoa điện-điện tử Cách đơn giản để phát phân khúc đối tượng từ hình ảnh phương pháp dựa màu sắc Các đối tượng có khác biệt đáng kể màu sắc sử dụng phương pháp phân loại dựa màu sắc để phân loại vật.Tuy nhiên phương pháp có số hạn chế tùy vào môi trường ,cảm biến, ánh sáng mà màu sắc thu nhận khác 6.1.4 Phương pháp phân loại dựa màu sắc: Như phần lý thuyết chương giới thiệu, với ảnh chụp thu thập từ camera cho không gian màu ảnh RBG, để thuận tiện cho việc phân loại màu sắc ta phải chuyển sang không gian màu HSV Hình Lưu đồ giải thuật nhận dạng màu SVTH:Đặng Minh Tuấn 65 Đồ án tốt nghiệp Khoa điện-điện tử 6.2 Lưu đồ giải thuật chương trình: Bắt đầu Chạy băng tải Camera Thu ảnh Chuyển sang HSV Xác định màu N Y Gửi dử liệu xuống VĐK Điều khiển cánh tay Robot gắp hàng Kết thúc Hình Lưu đồ giải thuật chương trình SVTH:Đặng Minh Tuấn 66 Đồ án tốt nghiệp Khoa điện-điện tử 6.3 Lập trình: OpenCV hỗ trợ hàm thu nhận ảnh từ file từ camera thư viện Thu nhận ảnh từ webcam: Khơng gian màu RGB khơng thích hợp cho việc nhận dạng màu sắc, để phân biệt màu sắc người ta thường dùng không gian màu HSV Trong OpenCV, H (Hue) có giá trị khoảng (0, 179) mang thơng tin màu sắc S (Saturation) có giá trị (0, 255) cho thông tin độ khiết màu V (Value) có giá trị (0, 255) cho biết độ sáng điểm ảnh Chuyển đổi không gian màu từ RGB sang HSV: Ví dụ : Màu đỏ thường thành phần H có giá trị khoảng (0 - 7) & (174 - 179) Các thành phần S V thường chọn lân cận 100 tùy theo điều kiện ánh sáng môi trường yêu cầu độ khiết màu SVTH:Đặng Minh Tuấn 67 Đồ án tốt nghiệp Khoa điện-điện tử Hình Giao diện xử lý ảnh SVTH:Đặng Minh Tuấn 68 Đồ án tốt nghiệp Khoa điện-điện tử CHƯƠNG : KẾT QUẢ THỰC TẾ & NHẬN XÉT 7.1 Kết chạy thử: 7.1.1 Kiểm tra khả nhận dạng màu chương trình xử lý ảnh: Hình Giao diện xử lý ảnh Khả nhận diện màu hệ thống xác, nhận diện màu sắc nhanh 7.1.2 Kiểm tra khả gắp sản phẳm cánh tay Robot: 7.1.2.1Kiểm tra khả gắp vật đến vị trí cánh tay: Lần thực Tọa độ đặt vật Tọa độ đến cánh tay 135 135 90 90 85 85 100 95 35 35 50 50 145 145 180 175 20 20 10 45 45 Bảng 7: Kiểm tra khả gắp vật đến vị trí cánh tay Có thể thấy cánh tay có khả gắp thả vật đến vị trí quy định có độ xác cao, sai số nhỏ SVTH:Đặng Minh Tuấn 69 Đồ án tốt nghiệp Khoa điện-điện tử 7.1.2.2Kiểm tra khả nhận dạng màu gắp xác robot: Gắp màu đỏ Gắp màu vàng Gắp màu xanh Chạy lần S Đ Đ Chạy lần Đ Đ Đ Chạy lần Đ Đ Đ Chạy lần Đ Đ Đ Chạy lần Đ S Đ Chạy lần Đ Đ Đ Chạy lần Đ Đ Đ Chạy lần Đ Đ Đ Chạy lần Đ Đ Đ Chạy lần 10 Đ Đ Đ Bảng 8: Kết chạy thử mơ hình ( Đ gắp đặt vị trí màu, S gắp đặt sai vị trí màu) Nhìn bảng số liệu ta thấy mơ hình cịn sai sót lỗi thả vật có màu khơng vị trí Gắp màu đỏ có độ sai số 0.1, gắp màu vàng có độ sai số 0.1, gắp màu xanh có độ sai số Hình Chạy thử lần 7.2 Nhận xét; Sau tháng tìm hiểu, nghiên cứu chế tạo cánh tay robot thực yêu cầu nhận dạng màu sắc vật thực gắp thả vật theo màu sắc với vị trí đặt Mơ hình chế tạo gọn gàng đẹp mắt 7.2.1 Ưu điểm: SVTH:Đặng Minh Tuấn 70 Đồ án tốt nghiệp Khoa điện-điện tử Hệ thống bật ứng dụng xử lý ảnh để điều khiển cánh tay robot, nhận dạng tất vật, xử lý nhanh, có độ xác cao 7.2.2 Các hạn chế cánh tay Robot - Cánh tay hoạt động rung, giật kết cấu khí chưa vững - Chỉ gắp vật hình vng có kích thước đến 4cm, trọng lượng khơng q 50 gam - Cánh tay thiết kế hoạt động khớp nên chưa linh hoạt - Khơng thể gắp vật có vị trí bị lệch cánh tay tùy chỉnh tọa độ theo vật gắp 7.3 Hướng phát triển đề tài: Sau thực đề tài, với số thiếu sót giới hạn phía người thực yếu tố kỹ thuật thiết bị Để đề tài thực tốt đem lại kết cao cần phát triển số vấn đề sau: - Cải tiến kỹ thuật phần cứng nâng cao chất lượng thu nhận ảnh dùng thiết bị có độ phân giải cao - Nhận dạng vật thể nhiều hình dạng phức tạp đa màu sắc - Nhận dạng tọa độ vật gắp để gắp xác 7.4 Ý nghĩ ứng dụng xử lý ảnh để điều khiển robot phân loại sản phẩm: Tơi tìm hiểu nghiên cứu ứng dụng xử lý ảnh điều khiển cánh tay robot kết trình học tập Tôi mong muốn khai thác sử dụng mơ hình cánh tay robot cách thật hiệu Những vấn đề trình bày đồ án tơi hi vọng người tiếp tục tìm hiểu nghiên cứu để cánh tay robot hoàn thiện tìm nhiều ứng dụng hiệu việc áp dụng xử lý ảnh Điều giúp cho phát triển khoa học công nghệ áp dụng vào đời sống sản xuất, giảm sức lao động người SVTH:Đặng Minh Tuấn 71 Đồ án tốt nghiệp Khoa điện-điện tử PHẦN CODE *Code điều kiển cánh tay robot: #include #define SERVO_1 #define SERVO_2 #define SERVO_3 #define SERVO_4 #define SERVO_5 #define SERVO_6 #define relay Servo gServo1; Servo gServo2; Servo gServo3; Servo gServo4; Servo gServo5; Servo gServo6; void setup () { // put your setup code here, to run once: Serial.begin(9600); gServo1.attach(SERVO_1); gServo2.attach(SERVO_2); gServo3.attach(SERVO_3); gServo4.attach(SERVO_4); gServo5.attach(SERVO_5); gServo6.attach(SERVO_6); ban_dau(); pinMode (relay, OUTPUT); digitalWrite(relay, LOW); Serial.println("Camera dang xu ly "); } int ban_dau() { gServo1.write(6); SVTH:Đặng Minh Tuấn 72 Đồ án tốt nghiệp Khoa điện-điện tử delay(50); gServo2.write(180); delay(50); gServo3.write(90); delay(50); gServo4.write(5); delay(50); gServo5.write(90); delay(50); gServo6.write(180); delay(50); } int gap_vat() { gServo1.write(6); // GAP delay(500); gServo2.write(140); delay(500); for (int i = 90; i < 180; i++){ gServo5.write(i); delay(5); } gServo3.write(145); delay(500); gServo6.write(180); delay(500); gServo2.write(120); delay(500); } int di_chuyen_di() { // DI CHUYEN DI gServo6.write(100); delay(500); gServo2.write(180); delay(500); for (int i = 180; i > 90; i ){ gServo5.write(i); delay(5); } SVTH:Đặng Minh Tuấn 73 Đồ án tốt nghiệp Khoa điện-điện tử gServo3.write(80); delay(500); } int tha_vat() { // THA VAT for (int i = 90; i < 180; i++) { gServo5.write(i); delay(5); } gServo2.write(75); delay(500); gServo3.write(100); delay(500); gServo6.write(180); delay(500); } int di_chuyen_ve() { gServo6.write(180); // DI CHUYEN delay(500); gServo2.write(180); delay(500); for ( int i = 180; i > 90; i ) { gServo5.write(i); delay(5); } gServo3.write(90); delay(500); gServo1.write(6); delay(500); } void loop() { // put your main code here, to run repeatedly: String dulieu = ""; while (Serial.available() > 0) { char c = Serial.read(); dulieu = dulieu + c; delay(1); SVTH:Đặng Minh Tuấn 74 Đồ án tốt nghiệp Khoa điện-điện tử } dulieu.trim(); // Gap mau if (dulieu == ("RED")) { digitalWrite(relay, HIGH); gap_vat(); di_chuyen_di(); gServo1.write(135); delay(500); tha_vat(); di_chuyen_ve(); digitalWrite(relay, LOW); } // Gap mau xanh if (dulieu == ("BLUE")) { digitalWrite(relay, HIGH); gap_vat(); di_chuyen_di(); gServo1.write(85); delay(500); tha_vat(); di_chuyen_ve(); digitalWrite(relay, LOW); } // Gap mau vang if (dulieu == ("YELLOW")) { digitalWrite(relay, HIGH); gap_vat(); di_chuyen_di(); gServo1.write(110); delay(500); tha_vat(); di_chuyen_ve(); digitalWrite(relay, LOW); SVTH:Đặng Minh Tuấn 75 Đồ án tốt nghiệp Khoa điện-điện tử } } *Code xử lý ảnh: import cv2 import serial cap = cv2.VideoCapture(0) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 720) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720) Arduino_Serial = serial.Serial('COM10', 9600) Arduino_Serial.readline() while True: _, frame = cap.read() hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) height, width, _ = frame.shape cx = int(width / 2) cy = int(height / 2) #Pick pixel value pixel_center = hsv_frame[cy, cx] hue_value = pixel_center[0] color = "Undefined" if hue_value < 15: color = "RED" elif hue_value >15 and hue_value < 25: color = "ORANGE" elif hue_value > 25 and hue_value < 45: color = "YELLOW" elif hue_value > 95 and hue_value < 120: color = "BLUE" elif hue_value > 125 and hue_value < 170: color = "VIOLET" SVTH:Đặng Minh Tuấn 76 Đồ án tốt nghiệp Khoa điện-điện tử pixel_center_bgr = frame[cy, cx] b, g, r = int(pixel_center_bgr[0]), int(pixel_center_bgr[1]), int(pixel_center_bgr[2]) cv2.putText(frame, color, (10, 70), 0, 1.5, (b, g, r), 2) cv2.circle(frame, (cx, cy), 5, (25, 25, 25), 3) input_data = color if (input_data == 'RED'): Arduino_Serial.write('RED'.encode()) if (input_data == 'YELLOW'): Arduino_Serial.write('YELLOW'.encode()) if (input_data == 'BLUE'): Arduino_Serial.write('BLUE'.encode()) if (input_data == 'VIOLET'): Arduino_Serial.write('VIOLET'.encode()) if (input_data == 'ORANGE'): Arduino_Serial.write('ORANGE'.encode()) cv2.imshow("FRAME", frame) key = cv2.waitKey(1) if key == 27: break cap.release() cv2.destroyAllWindows() SVTH:Đặng Minh Tuấn 77 Đồ án tốt nghiệp Khoa điện-điện tử TÀI LIỆU THAM KHẢO [1] Reza N.Jazar, Theory of Applied Robotics [2]GS.TSKH.NGND Nguyễn Thiện Phúc, Robot công nghiệp, nhà xuất khoa học kỹ thuật [3]Nguyễn Văn Ngọ, Giáo trình xử lý ảnh [4]Nguyễn Văn Long, Ứng dụng xử lý ảnh thực tế với thư viện OpenCV [5]Tài liệu thí nghiệm Tự động hóa, Đại học Bách Khoa Thành phố Hồ Chí Minh [6]https://www.youtube.com/watch?v=t71sQ6WY7L4 SVTH:Đặng Minh Tuấn 78