Thuyết minh này trình bày về vấn đề nghiên cứu thiết kế và chế tạo mô hình cánh tay robot 5 bậc tự do phân loại vật thể trên băng chuyền Đề tài này ứng dụng xử lý ảnh để xác định vị trí góc nghiêng và màu sắc của vật thể Từ đó robot tính toán các góc quay thích hợp để thực thiện gắp vật trên bằng chuyền về các vị trí đặt trước theo đúng màu đúng góc nghiêng Đề tài này sử dụng Arduino kết hợp với Raspberry Pi và ngôn ngữ lập trình Python
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CƠ KHÍ ĐỒ ÁN TỐT NGHIỆP CHUYÊN NGÀNH: KỸ THUẬT CƠ ĐIỆN TỬ ĐỀ TÀI: THIẾT KẾ VÀ CHẾ TẠO CÁNH TAY ROBOT BẬC TỰ DO PHÂN LOẠI VẬT TRÊN BĂNG CHUYỀN Người hướng dẫn : TS LÊ HOÀI NAM Sinh viên thực : ĐINH VĂN TẤN PHẠM QUÂN Số thẻ sinh viên : 101140163 101140160 Lớp : 14CDT1 Đà Nẵng, 06/2019 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CƠ KHÍ 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 ĐỒ ÁN TỐT NGHIỆP Thông tin chung: Họ tên sinh viên: Đinh Văn Tấn Phạm Quân MSSV: 101140163 MSSV: 101140160 Lớp: 14CDT1 Tên đề tài: Thiết kế chế tạo cánh tay robot bậc tự phân loại vật băng chuyền Người hướng dẫn: Lê Hoài Nam Học hàm/ học vị: Tiến sĩ II Nhận xét, đánh giá đồ án tốt nghiệp: Về tính cấp thiết, tính mới, khả ứng dụng đề tài: (điểm tối đa 2đ) ……………………………………………………………………………………… ……………………………………………………………………………………… Về kết giải nội dung nhiệm vụ yêu cầu đồ án: (điểm tối đa 4đ) ……………………………………………………………………………………… ……………………………………………………………………………………… Về hình thức, cấu trúc, bố cục đồ án tốt nghiệp: (điểm tối đa 2đ) ……………………………………………………………………………………… ……………………………………………………………………………………… Đề tài có giá trị khoa học/ có báo/ giải vấn đề đặt doanh nghiệp nhà trường: (điểm tối đa 1đ) ……………………………………………………………………………………… ……………………………………………………………………………………… Các tồn tại, thiếu sót cần bổ sung, chỉnh sửa: ……………………………………………………………………………………… ……………………………………………………………………………………… III Tinh thần, thái độ làm việc sinh viên: (điểm tối đa 1đ) ……………………………………………………………………………………… IV Đánh giá: Điểm đánh giá: …… /10 (lấy đến số lẻ thập phân) Đề nghị: ☐ Được bảo vệ đồ án ☐ Bổ sung để bảo vệ ☐ Không bảo vệ Đà Nẵng, ngày tháng 06 năm 2019 Người hướng dẫn ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CƠ KHÍ 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 PHẢN BIỆN ĐỒ ÁN TỐT NGHIỆP I Thông tin chung: Họ tên sinh viên: Đinh Văn Tấn Phạm Quân MSSV: 101140163 MSSV: 101140160 Lớp: 14CDT1 Tên đề tài: Thiết kế chế tạo cánh tay robot bậc tự phân loại vật băng chuyền Người phản biện: ………………………….………… Học hàm/ học vị: ………… II Nhận xét, đánh giá đồ án tốt nghiệp: TT Các tiêu chí đánh giá Điểm Điểm tối đa đánh giá Sinh viên có phương pháp nghiên cứu phù hợp, giải đủ nhiệm vụ đồ án giao 80 1a - Tính (nội dung ĐATN có phần so với ĐATN trước đây) - Đề tài có giá trị khoa học, cơng nghệ; ứng dụng thực tiễn 15 1b - Kỹ giải vấn đề; hiểu, vận dụng kiến thức bản, sở, chuyên ngành vấn đề nghiên cứu - Chất lượng nội dung ĐATN (thuyết minh, vẽ, chương 50 trình, mơ hình,…) 1c - Có kỹ vận dụng thành thạo phần mềm ứng dụng vấn đề nghiên cứu; - Có kỹ đọc, hiểu tài liệu tiếng nước ngồi ứng dụng vấn đề nghiên cứu; - Có kỹ làm việc nhóm; 15 Kỹ viết: 20 2a - Bố cục hợp lý, lập luận rõ ràng, chặt chẽ, lời văn súc tích 15 2b - Thuyết minh đồ án khơng có lỗi tả, in ấn, định dạng Tổng điểm đánh giá theo thang 100: Quy thang 10 (lấy đến số lẻ) - Các tồn tại, thiếu sót cần bổ sung, chỉnh sửa: ……………………………………… ……………………………………………………………………………………… - Câu hỏi đề nghị sinh viên trả lời buổi bảo vệ: ………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… - Đề nghị: ☐ Được bảo vệ đồ án ☐ Bổ sung để bảo vệ ☐ Không bảo vệ Đà Nẵng, ngày tháng 06 năm 2019 Người phản biện TÓM TẮT Tên đề tài: Thiết kế chế tạo cánh tay robot bậc tự phân loại vật băng chuyền Sinh viên thực hiện: Đinh Văn Tấn Số thẻ SV:101140163 Lớp: 14CDT1 Phạm Quân Số thẻ SV:101140160 Lớp: 14CDT1 Thuyết minh trình bày vấn đề nghiên cứu, thiết kế chế tạo mơ hình cánh tay robot bậc tự phân loại vật thể băng chuyền Đề tài ứng dụng xử lý ảnh để xác định vị trí, góc nghiêng màu sắc vật thể Từ robot tính tốn góc quay thích hợp để thực thiện gắp vật chuyền vị trí đặt trước theo màu, góc nghiêng Đề tài sử dụng Arduino kết hợp với Raspberry Pi ngôn ngữ lập trình Python ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CƠ KHÍ CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP TT Họ tên sinh viên Số thẻ SV Lớp Ngành Đinh Văn Tấn 101140163 14CDT1 Kỹ thuật Cơ điện tử Phạm Quân 101140160 14CDT1 Kỹ thuật Cơ điện tử Tên đề tài đồ án: Thiết kế chế tạo cánh tay robot bậc tự phân loại vật băng chuyền Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ kết thực Các số liệu liệu ban đầu: …………………………………… …………………………………………… …… ………………………………………………………………………………………… … ………………………………….… ……………………… ……………………… Nội dung phần thuyết minh tính tốn: a Phần chung: TT Họ tên sinh viên Đinh Văn Tấn Phạm Quân Nội dung - Lý thuyết tổng quan - Kết luận - Hướng phát triển đề tài b Phần riêng: TT Họ tên sinh viên Nội dung - Thiết kế khí Đinh Văn Tấn Phạm Qn - Tính tốn động lực học, động học robot - Thiết kế hệ thống điều khiển - Xây dựng lưu đồ thuật toán - Giới thiệu xử lý ảnh trình xử lý ảnh - Lập trình xử lý ảnh Các vẽ, đồ thị ( ghi rõ loại kích thước vẽ ): a Phần chung: TT Họ tên sinh viên Đinh Văn Tấn Phạm Quân b Phần riêng: Nội dung - Sơ đồ động - Bản vẽ lắp - Bản vẽ chi tiết A0 A0 A0 TT Họ tên sinh viên Nội dung Đinh Văn Tấn - Mạch điều khiển Phạm Quân - Kiến trúc hệ thống lưu đồ thuật toán A0 Họ tên người hướng dẫn: A0 Phần/ Nội dung: TS Lê Hoài Nam Ngày giao nhiệm vụ đồ án: Ngày hoàn thành đồ án: Trưởng Bộ môn Cơ điện tử …… /……./2019 …… /……./2019 Đà Nẵng, ngày tháng năm 2019 Người hướng dẫn LỜI NĨI ĐẦU Trong nghiệp cơng nghiệp hóa đại hóa đất nước, tự động hóa ngày đóng vai trị quan trọng Với tốc độ phát triển không cần lượng lao động khổng lồ mà đòi hỏi có trình độ, chất lượng tay nghề, kỹ thuật lao động thiết bị sản xuất Mức độ phát triển khoa học kỹ thuật ngày cao vấn đề tự động hoá ngày trọng Tự động hóa q trình sản xuất cho phép cải thiện điều kiện sản xuất Các trình sản xuất sử dụng nhiều lao động sống dễ ổn định giấc, chất lượng gia công suất lao động, gây khó khăn cho việc điều hành quản lý sản xuất Các trình sản xuất tự động cho phép loại bỏ nhược điểm Đồng thời tự động hóa thay đổi tính chất lao động, cải thiện điều kiện làm việc công nhân, khâu độc hại, nặng nhọc, có tính lặp lặp lại nhàm chán, khắc phục dần khác lao động trí óc lao động chân tay Do vậy, ứng dụng robot vào sản xuất tính tất yếu trình tự động hóa Việc áp dụng cánh tay robot vào dây chuyền sản xuất ngày phổ biến Trước thực tế đó, nhóm em định thực đề tài: “Thiết kế chế tạo cánh tay robot bậc tự phân loại vật băng chuyền” Trong thời gian làm đồ án, bảo tận tình thầy TS Lê Hồi Nam với cố gắng hai thành viên nhóm đến đồ án hoàn thành Tuy nhiên với kiến thức hạn chế, kinh nghiệm, kĩ thiếu, có nhiều cố gắng song nhóm em cịn nhiều thiếu sót cần bổ sung, hồn thiện Kính mong thầy thơng cảm góp ý để đề tài nhóm em hồn thiện phát triển, ứng dụng thời gian tới Nhóm em xin chân thành cảm ơn! Đà Nẵng, ngày 25 tháng năm 2019 CÁC THÀNH VIÊN Đinh Văn Tấn Phạm Quân i CAM ĐOAN Chúng xin cam đoan: Những nội dung đồ án thực hướng dẫn trực tiếp Thầy TS Lê Hoài Nam Mọi tham khảo dùng đồ án trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm cơng bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo hay gian dối, chúng tơi xin chịu hồn toàn trách nhiệm Sinh viên thực hiện: Đinh Văn Tấn ii Phạm Quân MỤC LỤC Tóm tắt Nhiệm vụ đồ án Lời nói đầu cảm ơn Lời cam đoan liêm học thuật i ii Mục lục iii Danh sách bảng biểu, hình vẽ sơ đồ v MỞ ĐẦU Chương 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Yêu cầu đề tài phương án thực .2 1.2 Phương trình động học cánh tay máy 1.2.1 Phương trình động học thuận 1.2.2 Phương trình động học nghịch 1.3 Giới thiệu chung xử lý ảnh 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 Khái niệm xử lý ảnh .9 Các vấn đề xử lý ảnh 10 Nhiễu phương pháp lọc nhiễu .11 Mô hình màu HSV (Hue, Saturation, Value) 13 Thư viện OpenCV 14 Chương 2: THIẾT KẾ ROBOT 15 2.1 Thiết kế khí 15 2.2 Tính tốn động lực học 18 2.3 Tính tốn động học 19 2.3.1 Động học thuận 20 2.3.2 Động học nghịch 20 Chương 3: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN 23 3.1 Sơ đồ khối hệ thống nguyên lý hoạt động 23 3.2 Các thành phần chức 23 3.2.1 Arduino Nano 23 3.2.2 3.2.3 3.2.4 3.2.5 Raspberry Pi 25 Camera 25 Driver A4988 26 Nguồn cung cấp .27 iii PHỤ LỤC ▪ Code Arduino nano #include #include #include #define end1 A0 #define end2 A1 #define end3 A2 #define but1 A3 #define but2 A4 #define but3 A5 // input #define dirbt // output #define stpbt #define dir1 #define stp1 #define dir2 #define stp2 #define dir3 #define stp3 #define en 13 #define s0Pin 10 #define s1Pin 11 #define s2Pin 12 #define h1 // home #define h2 110 #define h3 -110 #define h4 #define h5 #define e1 131.3 // endstop #define e2 172.5 #define e3 -164 #define gr0 116 #define gr1 78 // gripper //200*ms*i/360, i1=4, i2=3969/289, i3=2*57/11 #define q1 17.78 //ms8 #define q2 30.52 //ms4 #define q3 23.03 //ms4 //(200*ms*ib3)/(phi52*PI) #define qb 14.69 //ms4 #define vb 30 //mm/s #define td 2000 //ms //#define kd 70 //t-t //parameter DH #define a1 #define d1 105 #define a2 215 #define a3 200 #define d5 130 #define ret 40 // SerialCommand sc; AccelStepper stepbt(1,stpbt,dirbt); AccelStepper step1(1,stp1,dir1); AccelStepper step2(1,stp2,dir2); AccelStepper step3(1,stp3,dir3); Servo sv[3]; bool int m,n,t,r; w,b; float A[5]; float th1,th2,th3,th4,th5; int st1,st2,st3; int v[2],cv[2]; unsigned long tc,tb,tg; const float des[3][4]={{300,-35,75,0},{300,25,75,0},{300,85,75,0}}; // -void setup() { Serial.begin(9600); Serial.println("Arb"); pinMode(end1,INPUT_PULLUP); pinMode(end2,INPUT_PULLUP); pinMode(end3,INPUT_PULLUP); pinMode(but1,INPUT_PULLUP); pinMode(but2,INPUT_PULLUP); pinMode(but3,INPUT_PULLUP); pinMode(en,OUTPUT); digitalWrite(en,1); step1.setMaxSpeed(1000); step2.setMaxSpeed(1000); step3.setMaxSpeed(1000); step1.setAcceleration(4000); step2.setAcceleration(4000); step3.setAcceleration(4000); stepbt.setMaxSpeed(1000); sc.addCommand("on", On); sc.addCommand("off",Off); sc.addCommand("h",Home); sc.addCommand("obj",Obj); sc.addCommand("bt0",bt0); sc.addCommand("bt1",bt1); // sc.addCommand("g",G); // sc.addCommand("g0",G0); // sc.addCommand("g1",G1); sc.addCommand("th",Th); sc.addDefaultHandler(unrecognized); } // -void loop() { sc.readSerial(); step1.run(); step2.run(); step3.run(); runSv(); stepbt.runSpeed(); wait(); grip(); button(); } // -void Obj(){ if(m&&b==1){ updateData(); tb=millis(); w=0; MOVE(); }} void updateData(){ char *arg; for(int i=0;i=td)){ t=0; MOVE(); } } // void Invert(float Px, float Py, float Pz, float Or){ th1=atan2(Py,Px); float n1=Px*cos(th1)+Py*sin(th1)-a1; float n2=Pz-d1+d5; th3=-acos((sq(n1)+sq(n2)-sq(a2*1.0)-sq(a3*1.0))/(2.0*a2*a3)); th2=atan2((n2*(a2+a3*cos(th3))a3*sin(th3)*n1),(n1*(a2+a3*cos(th3))+a3*sin(th3)*n2)); th4=-th2-th3; th1*=180/PI; th2*=180/PI; th3*=180/PI; th4*=180/PI; th5=th1-Or; if (th5>180) th5-=360; else if (th590) th5-=180; else if (th5=180)){ r=0; Mv(); } } void runSv(){ if(n&&(millis()-tc>=15)){ tc=millis(); int ep; for(int i=0;i2){ if(i==0) cv[i]+=(ep/abs(ep)); else cv[i]+=1*(ep/abs(ep)); sv[i].write(cv[i]); } else{ sv[i].write(v[i]); cv[i]=v[i]; if(i) checkPos(); }}}} void checkPos(){ if((step1.distanceToGo()==0)&&(step2.distanceToGo()==0)&&(step3.dist anceToGo()==0)&&(cv[0]==v[0])&&(cv[1]==v[1])){ n=0; if((w!=0)&&(w!=1)) MOVE(); }} // -void On() { m=1; AutoHome(); } void Off(){ m=0; n=0; digitalWrite(en,1); } void AutoHome(){ if(m){ w=0; t=0; th1=h1; th2=h2; th3=h3; th4=h4; th5=h5; convert(); digitalWrite(en,0); sv[0].attach(s0Pin); sv[1].attach(s1Pin); sv[2].attach(s2Pin); sv[0].write(71); sv[1].write(v[1]); sv[2].write(gr0); step2.setSpeed(600); // step3.setSpeed(-600); while(digitalRead(end2)||digitalRead(end3)) { if(digitalRead(end2)) step2.runSpeed(); if(digitalRead(end3)) step3.runSpeed(); } step2.setSpeed(-500); step3.setSpeed(500); for(int i =0;i