Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 107 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
107
Dung lượng
4,39 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN VIỆT HÙNG ỨNG DỤNG MẠNG NƠRON ĐỂ GIẢI BÀI TOÁN ĐỘNG HỌC NGƯỢC CHO TAY MÁY S K C 0 9 NGÀNH: KỸ THUẬT CƠ KHÍ- 60520103 S KC 0 Tp Hồ Chí Minh, tháng năm 2014 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN VIỆT HÙNG ỨNG DỤNG MẠNG NƠRON ĐỂ GIẢI BÀI TOÁN ĐỘNG HỌC NGƯỢC CHO TAY MÁY NGÀNH: KỸ THUẬT CƠ KHÍ - 60520103 Hướng dẫn khoa học: TS LƯƠNG HỒNG SÂM Tp Hồ Chí Minh, tháng 04 / 2013 Luan van LÝ LỊCH KHOA HỌC I LÝ LỊCH SƠ LƯỢC: Họ & tên: Nguyễn Việt Hùng Giới tính: Nam Ngày, tháng, năm sinh: 20/04/1985 Nơi sinh: Đăk Lăk Quê quán: Hƣng Tây - Hƣng Nguyên - Nghệ An Dân tộc: Kinh Chỗ riêng địa liên lạc: 209/6/7 Nguyễn Văn Lƣợng, Phƣờng 10, Quận Gị Vấp, Tp Hồ Chí Minh Điện thoại quan: Điện thoại nhà riêng: Fax: E-mail:Rocketb72@gmail.com II QUÁ TRÌNH ĐÀO TẠO: Cao đẳng: Hệ đào tạo: Chính quy Thời gian đào tạo từ 09/2003 đến 03/2007 Nơi học: Trƣờng Cao đẳng Kỹ thuật Vinhempich, TP Hồ Chí Minh Ngành học: Cơ khí chuyên dùng Đại học: Hệ đào tạo: Chính quy Thời gian đào tạo từ 09/2009 đến 04/2011 Nơi học: Trƣờng Đại học Sƣ phạm Kỹ thuật TP Hồ Chí Minh Ngành học: Cơng nghệ chế tạo máy Tên đồ án: Xây dựng phần mềm thí nghiệm ảo trang bị điện máy công nghiệp Nơi bảo vệ đồ án:Trƣờng Đại học Sƣ phạm Kỹ thuật TP Hồ Chí Minh Ngƣời hƣớng dẫn: ThS Trần Thanh Lam III Q TRÌNH CƠNG TÁC CHUN MƠN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC: Thời gian Nơi công tác Từ năm 2011 đến Trƣờng Đại học Trần Đại Nghĩa Luan van Công việc đảm nhiệm Giáo viên LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu Các số liệu, kết nêu luận văn trung thực chƣa đƣợc cơng bố cơng trình khác Tp Hồ Chí Minh, ngày 01 tháng 4năm 2014 Nguyễn Việt Hùng ii Luan van CẢM TẠ Để hoàn thành luận văn này, em xin chân thành cảm ơn quý thầy cô Trƣờng Đại học Sƣ phạm Kỹ thuật tạo điều kiện giúp đỡ trình học tập nghiên cứu Em xin đặc biệt chân thành cảm ơn Thầy TS Lƣơng Hồng Sâm nhiệt tình hƣớng dẫn truyền đạt kiến thức quý báuđểem hoàn thành luận văn Cuối cùng, xin cảm ơn Ban giám hiệu, quý thầy cô, đồng nghiệp Trƣờng Đại học Trần Đại Nghĩa giúp đỡ tạo điều kiện thuận lợi cho em suốt trình học tập thực luận văn Mặc dù có nhiều cố gắng trình thực luận văn, song kiến thức thời gian nghiên cứu hạn chế nên khơng thể tránh đƣợc sai sót, kính mong nhận đƣợc ý kiến đóng góp quý Thầy Cô độc giả Xin chân thành cảm ơn! iii Luan van TĨM TẮT Giải tốn động học ngƣợc sở để điều khiển tay máy theo quỹ đạo cho trƣớc Nhiệm vụ toán động học ngƣợc từ thơng số vị trí hƣớng bàn kẹp (điểm tác động cuối) tay máy cần phải xác định giá trị biến khớp qi Cho đến nay, chƣa có phƣơng pháp chung để giải toán động học ngƣợc cách hiệu nhất, đặc biệt tay máy có bậc tự lớn Để giải vấn đề này, tác giả nghiên cứu, ứng dụng mạng nơron nhân tạo với giải thuật Levenberg-Marquardt để giải toán động học ngƣợc cho tay máy bậc tự Scorbot ER7 Hơn nữa, để mạng nơron có khả nhận biết tốt liệu huấn luyện, nhƣ để so sánh kết phƣơng pháp so với phƣơng pháp giải tích, tác giả sử dụng hai mạng nơron để giải cho vùng làm việc cụ thể tay máy Mạng Net1_1 tƣơng ứng với vùng cấu hình tay máy; mạng Net2_1 tƣơng ứng với vùng cấu hình Để khẳng định tính đắn mạng đƣợc luyện, tác giải tiến hành giải tốn động học ngƣợc với số vị trí cho trƣớc, nằm vùng huấn luyện mạng Kết giải mạng nơron gần nhƣ trùng khớp với kết giải phƣơng pháp giải tích Điều cho thấy tính đắn hiệu qủa phƣơng pháp giải toán động học ngƣợc mạng nơron iv Luan van ABSTRACT Solve the inverse kinematics problem is fundamentals of manipulator control following a given trajectory The task of inverse kinematics is from location and orientation parameters of the manipulator clamp ( the end point of impact ) obtains the values of the joint variables qi So far, there is no general method to solve the inverse kinematics problem most efficiently, especially for manipulators have more than degrees of freedom To solve this problem, we studied application of artificial neural network with Levenberg - Marquardt algorithm to solve inverse kinematics for a manipulator with degrees of freedom Scorbot ER7 Moreover, to neural networks have good ability to recognize the training data, as well as to compare the results of this method to analytical methods, we have used two neural networks to solve for two working regions of the specific manipulator Network Net1_1 corresponds to the region and configuration of the robot arm 1; Net2_1 network corresponds to the region and configuration To confirm the correctness of the network has been trained, we solved the inverse kinematics problem for several pre-defined locations in the training area of network Results of neural network method almost coincide with the results solved by analytical methods, and show the correctness and effectiveness of the method solved v Luan van MỤC LỤC Trang tựa TRANG Quyết định giao đề tài Lý lịch khoa học i Lời cam đoan ii Cảm tạ iii Tóm tắt iv Mục lục vi Danh sách kí hiệu khoa học ix Danh sách chữ viết tắt ix Danh sách bảng vii Danh sách hình viii Chƣơng TỔNG QUAN 1.1 Đặt vấn đề 1.2 Giới thiệu chung robot công nghiệp 1.2.1 Các phận cấu thành công nghiệp 1.2.2 Bậc tự tay máy 1.2.4 Tổng quan tình hình nghiên cứu toán động học ngƣợc 1.3Mục đích đề tài 1.4 Nhiệm vụ đề tài giới hạn đề tài 1.5Phƣơng pháp nghiên cứu Chƣơng CƠ SỞ LÝ THUYẾT 2.1 Động học tay máy 2.1.1 Bài toán động học thuận tay máy 2.1.1.1 Quy tắc Denavit - Hartenberg 2.1.1.2 Mơ hình biến đổi 10 2.1.1.3 Các bƣớc để thiết lập hệ phƣơng trình động học cho tay máy 11 2.1.2 Bài toán động học ngƣợc tay máy 11 2.2 Lý thuyết mạng nơron 12 2.2.1 Lịch sử phát triển mạng nơron nhân tạo 13 vi Luan van 2.2.2 Mơ hình nơron sinh học 13 2.2.3 Phần tử xử lí 14 2.2.3.1 Tín hiệu vào (Inputs) -ra (Output) 15 2.2.3.2 Bộ cộng 15 2.2.3.3 Hàm chuyển đổi 16 2.2.4 Các loại mơ hình cấu trúc mạng nơron 19 2.2.5 Các tính chất mạng nơron 20 2.2.6 Các luật học 20 2.2.7 Thuật toán Backpropagation 22 2.2.7.1 Chế độ ho ̣c tƣ̀ng mẫu 23 2.2.7.2 Chế đô ̣ ho ̣c theo nhóm mẫu 23 2.2.8 Giải thuật Levenberg-Marquardt 24 2.2.8.1 Luâ ̣t câ ̣p nhâ ̣t tro ̣ng số 25 2.2.8.2 Tính tốn ma trận jacobian 26 2.2.8.3 Quá trình huấn luyện 31 Chƣơng XÂY DƢ̣NG BỘ DƢ̃ LIÊU ̣ HUẤN LUYÊN ̣ ĐỂ GIẢI BÀI TOÁN ĐỘNG HỌC NGƢỢC CHO TAY MÁY SCORBOT ER7 BẰNG MẠNG NƠRON 3.1 Giải toán động học thuận tay máy Scorbot ER7 35 3.2 Giải toán động học ngƣợc cho tay máy Scorbot ER7 37 3.3 Xây dƣ̣ng bô ̣ mẫu để huấ n luyê ̣n mạng giải toán động học ngƣơ ̣c cho tay máy Scorbot ER 40 Chƣơng HUẤN LUYÊN ̣ MẠNG NƠRON VÀPHÂN TÍCH KẾT QUẢ 4.1 Huấ n luyê ̣n ma ̣ng Net1_1 45 4.1.1 Xác định cấu trúc mạng 45 4.1.2 Huấ n luyê ̣n ma ̣ng 46 4.1.3 Đánh giá thông tin huấ n luyê ̣n và kế t qủa mô phỏng 53 4.1.4 Ứng dụng mạng Net1_1 để điều khiển tay máy theo quỹ đạo cho trƣớc 54 4.2 Huấ n luyê ̣n ma ̣ng Net2_1 60 4.2.1 Xác định cấu trúc mạng 60 vii Luan van 4.2.2 Huấ n luyê ̣n ma ̣ng 60 4.2.3 Đánh giá thông tin huấ n luyê ̣n kết qủa mô phỏng mạng Net2_1 64 4.2.4 Ứng dụng mạngNet2_1 để điều khiển tay máy theo quỹ đạo cho trƣớc 65 Chƣơng KẾT LUẬN VÀ KIẾN NGHỊ 71 TÀI LIỆU THAM KHẢO 74 PHỤ LỤC 76 viii Luan van 11 Raşit Kokưr & Cemil Ưz, Tarik Çakar, Hüseyin Ekiz, A Study of Neural Network Based Inverse Kinematics Solution for a Planar Three Joint Robot , Sakarya University, 2003 12.Alavandar S and Nigam M J Neuro-Fuzzy based Approach for Inverse Kinematics Solution of Industrial Robot Manipulators, Int J of Computers, Communications & Control, ISSN 1841-9836, E-ISSN 1841-9844 Vol III ,2008, pp 224-234 13.Jolly Shah and S.S.Rattan and B.C.Nakra, Kinematic Analysis of a Planer Robot Using Artificial Neural Network, International Journal of Robotics and Automation (IJRA) Vol.1, 2012, pp 145 - 151 14.Raşit Kokör, A neuro-genetic approach to the inverse kinematics solution of robotic manipulators,Scientific Research and Essays Vol 6, 2011, pp 2784-2794 15.Bogdan M Wilamowski and J David Irwin, The Industrial lectronics Handbook, Second Edition, 2011, pp 12-1 – 12-16 16 Howard Demuth and Mark Beale , Neural Network Toolbox User’s Guide,Version 3.0,MathWorks,1998 17 Martin T.Hagan and Howard B.Demuth and Mark Beale, Neural Network Design, PWS Publishing Company, 1996 18 Joe Zhizhong, Application of Force Control on a Robot, M.S Thesis, National Central University established Mechanical Engineering Research Institute, China, 2001 19 Panchanand Prediction of Jha, Novel Artificial Neural Network Application for Inverse Kinematics of Manipulator,M.S Thesis,Department of Mechanical Engineering National Institute of Technology Rourkela, India, 2009 20 Scorbot ER user’s manual, catalog #100017, Eshed Robotec,1998 21 C.S.G.Lee and M.Ziegler, A geometric approach in solving the inverse kinematics of puma robots, University of Michigan,1983 75 Luan van PHỤ LỤC PHỤ LỤC 1: Chương triǹ h lấ y mẫu huấ n luyê ̣n kiểm tra ma ̣ng Net 1_1 format long fileID1 = fopen('teta_HL11.txt','a'); fileID= fopen('vitri_HL11.txt','a'); for i=1:3000 x1 =-125*pi/180.0; y1 =0 ; th1= x1 + (y1-x1) *rand; %lấy giá trị ngẫu nhiên khoảng x1-y1 x4 = -20*pi/180; y4 = 0; th4=x4 + (y4-x4) *rand; x2 = -90*pi/180 ; y2 =0 ; th2=x2 + (y2-x2) *rand; th3= -th4-th2; th5 = th1; an1=-pi/2; an2=0; an3=0; an4=-pi/2; an5=0; a1=50; a2=300; a3=350; a4=0; a5=0; d1=385.5; d2= -40; d3=0; d4=0; 76 Luan van d5=251; A1=[cos(th1) -sin(th1) a1*cos(th1); sin(th1) cos(th1) a1*sin(th1); -1 d1; 0 1]; A2=[cos(th2) -sin(th2) a2*cos(th2); sin(th2) cos(th2) a2*sin(th2); 0 d2; 0 1]; A3=[cos(th3) -sin(th3) a3*cos(th3); sin(th3) cos(th3) a3*sin(th3); 0 0; 0 1]; A4=[cos(th4) -sin(th4) 0; sin(th4) cos(th4) 0; -1 0; 0 1]; A5=[cos(th5) -sin(th5) 0; sin(th5) cos(th5) 0; 0 d5; 0 1]; T5=A1*A2*A3*A4*A5; C=[th1,th2,th3,th4,th5]; th1d=th1*180/pi; th2d=th2*180/pi; th3d=th3*180/pi; th4d=th4*180/pi; th5d=th5*180/pi; D=[th1d,th2d,th3d,th4d,th5d]; B=[T5(1,4), T5(2,4), T5(3,4)]; fprintf(fileID,'%2f %14f %16f\n',B); fprintf(fileID1,'%2f %12f %10f %14f %14f\n',D); end fclose(fileID); fclose(fileID1); 77 Luan van PHỤ LỤC 2: Chương trình lấ y mẫu huấ n luyê ̣n ma ̣ng Net 2_1 format long fileID1 = fopen('teta_HL21.txt','a'); fileID= fopen('vitri_HL21.txt','a'); for i=1:3000 x1 =0; y1 =125*pi/180.0 ; th1= x1 + ((y1-x1) *i)/3000; x4 = -20*pi/180; y4 = 0; th4= x4 + (y4-x4) *rand; x2 = -90*pi/180 ; y2 =0 ; th2= x2 + (y2-x2) *rand; th3= -th4-th2; th5 = th1; an1=-pi/2; an2=0; an3=0; an4=-pi/2; an5=0; a1=50; a2=300; a3=350; a4=0; a5=0; d1=385.5; d2= -40; d3=0; d4=0; d5=251; A1=[cos(th1) -sin(th1) a1*cos(th1); sin(th1) cos(th1) a1*sin(th1); -1 d1; 0 1]; A2=[cos(th2) -sin(th2) a2*cos(th2); sin(th2) cos(th2) a2*sin(th2); 0 d2; 0 1]; A3=[cos(th3) -sin(th3) a3*cos(th3); sin(th3) cos(th3) a3*sin(th3); 0 0; 0 1]; A4=[cos(th4) -sin(th4) 0; sin(th4) cos(th4) 0; -1 0; 0 1]; A5=[cos(th5) -sin(th5) 0; sin(th5) cos(th5) 0; 0 d5; 0 1]; T5=A1*A2*A3*A4*A5; C=[th1,th2,th3,th4,th5]; th1d=th1*180/pi; th2d=th2*180/pi; th3d=th3*180/pi; th4d=th4*180/pi; th5d=th5*180/pi; 78 Luan van D=[th1d,th2d,th3d,th4d,th5d]; % tinh theo B=[T5(1,4), T5(2,4), T5(3,4)]; fprintf(fileID,'%2f %14f %16f\n',B); fprintf(fileID1,'%2f %12f %10f %14f %14f\n',D); end fclose(fileID); fclose(fileID1); PHỤ LỤC 3: Chương triǹ h lấ y mẫu kiểm tra ma ̣ng Net 2_1 format long fileID1 = fopen('teta_KT21.txt','a'); fileID= fopen('vitri_KT21.txt','a'); for i=1:1000 x1 =0; y1 =125*pi/180.0 ; th1= x1 + ((y1-x1) *i)/1000; x4 = -20*pi/180; y4 = 0; th4= x4 + (y4-x4) *rand; x2 = -90*pi/180 ; y2 =0 ; th2= x2 + (y2-x2) *rand; th3= -th4-th2; th5 = th1; an1=-pi/2; an2=0; an3=0; an4=-pi/2; an5=0; a1=50; a2=300; a3=350; a4=0; a5=0; d1=385.5; d2= -40; d3=0; d4=0; d5=251; A1=[cos(th1) -sin(th1) a1*cos(th1); sin(th1) cos(th1) a1*sin(th1); -1 d1; 0 1]; A2=[cos(th2) -sin(th2) a2*cos(th2); sin(th2) cos(th2) a2*sin(th2); 0 d2; 0 1]; A3=[cos(th3) -sin(th3) a3*cos(th3); sin(th3) cos(th3) a3*sin(th3); 0 0; 0 1]; 79 Luan van A4=[cos(th4) -sin(th4) 0; sin(th4) cos(th4) 0; -1 0; 0 1]; A5=[cos(th5) -sin(th5) 0; sin(th5) cos(th5) 0; 0 d5; 0 1]; T5=A1*A2*A3*A4*A5; C=[th1,th2,th3,th4,th5]; th1d=th1*180/pi; th2d=th2*180/pi; th3d=th3*180/pi; th4d=th4*180/pi; th5d=th5*180/pi; D=[th1d,th2d,th3d,th4d,th5d]; % ttính theo độ B=[T5(1,4), T5(2,4), T5(3,4)]; fprintf(fileID,'%2f %14f %16f\n',B); fprintf(fileID1,'%2f %12f %10f %14f %14f\n',D); end fclose(fileID); fclose(fileID1); PHỤ LỤC 4: Chương trình giải tốn động học ngược cho vị trí đường trịn nằm vùng huấn luyện mạng Net1_1 a1=50; a2=300; a3=350; a4=0; a5=0; d1=385.5; d2=-40; d3=0; d4=0; d5=251; load dt1_1.txt %vị trí đường tròn fileID = fopen('teta_dt11.txt','a'); for i=1:30 px=dt1_1(i,1); py= dt1_1(i,2); pz= dt1_1(i,3); k= sqrt(px^2+py^2-(d2+d3)^2) ; th1 = atan2(py*k-px*(d2+d3), px*k + py*(d2+d3)) ; if th1>0 k= -sqrt(px^2+py^2-(d2+d3)^2) ; th1 = atan2(py*k-px*(d2+d3), px*k + py*(d2+d3)) ; th234=0 %(3.4); th5=th1; 80 Luan van th3=abs( acos(((k-a1)^2+(d1-pz- d5)^2- a2^2-a3^2)/(2*a2*a3 ))); sth2 = ( (- pz+d1 - d5)*(a2+a3*cos(th3))-(k - a1)*a3*sin(th3) )/((ka1)^2+(d1+d5-pz)^2 ); cth2= ( ((k - a1 )*(a2+a3*cos(th3))+ (- pz+d1- d5)*a3*sin(th3)))/((ka1)^2+(d1+d5-pz)^2 ); th2 = atan2(sth2,cth2); th4=th234-th2-th3; end th234=0 %(3.4); th5=th1; th3=abs(acos(((k-a1)^2+(d1-pz- d5)^2- a2^2-a3^2)/(2*a2*a3 ))); sth2 = ( (- pz+d1 - d5)*(a2+a3*cos(th3))-(k - a1)*a3*sin(th3) )/((ka1)^2+(d1+d5-pz)^2 ); cth2= ( ((k - a1 )*(a2+a3*cos(th3))+ (- pz+d1- d5)*a3*sin(th3)))/((ka1)^2+(d1+d5-pz)^2 ); th2 = atan2(sth2,cth2); th4=th234-th2-th3; B=[th1,th2,th3,th4,th5]; th1d=th1*180/pi; th2d=th2*180/pi; th3d=th3*180/pi; th4d=th4*180/pi; th5d=th5*180/pi; D=[th1d,th2d,th3d,th4d,th5d ]; % Tinh theo fprintf(fileID,'%2f %12f %10f %14f %14f\n',D); end fclose(fileID); PHỤ LỤC 5: Chương trình giải tốn động học ngược cho vị trí đường trịn nằm vùng huấn luyện mạng Net2_1 a1=50; a2=300; a3=350; a4=0; a5=0; d1=385.5; d2=-40; d3=0; d4=0; d5=251; load dt2_1.txt fileID = fopen('teta_dt21.txt','a'); %vị trí đường trịn 81 Luan van for i=1:15 px=dt2_1(i,1); py= dt2_1(i,2); pz= dt2_1(i,3); k= sqrt(px^2+py^2-(d2+d3)^2) ; th1 = atan2(py*k-px*(d2+d3), px*k + py*(d2+d3)) ; if th1