(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy

104 4 0
(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy(Luận văn thạc sĩ) Ứng dụng mạng Nơron để giải bài toán động học ngược cho tay máy

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 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 q Thầy Cơ độc giả Xin chân thành cảm ơn! iii TÓM TẮT Giải toá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 toá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 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 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 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 toá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 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 DANH SÁCH KÝ HIỆU KHOA HỌC qi: Biếnkhớp Pi : Số khớp loại i ai: độ dài đƣờng vng góc chung trục khớp động i+1 i αi góc quay quanh trục xi trục zi-1 zi di khoảng cách đo dọc trục khớp động i từ đƣờng vng góc chung trục khớp động i-1 với trục khớp động i đến đƣờng vng góc chung khớp động i trục khớp động i +1 θi góc quay quanh trục zi trục xi-1 xi Ai: ma trận tổng hợp mơ tả vị trí hƣớng khâu thứ i so với khâu thứ i-1 i Tn: Ma trận mơ tả vị trí hƣớng khâu thứ n so với khâu thứ i p: vectơ định vịcủa khâu tác động cuối n, s, a: vectơ phƣơng khâu tác động cuối xi: Tín hiệu vào nơron thứ i yi: Tín hiệu racủa nơron thứ i Wij: Trọng số liên kết nơron thứ j với nơron thứ i bi: Thành phần dịch chuyển bias vi = neti: Tổng trọng số a(neti) =a(vi): Hàm chuyển đổi : Hệ số độ dốc hàm chuyển đổi xk: vector trọng số bias gk: gradient k: hằ ng số họctheo qui tắ c giảm dố c nhấ t E: tổ ng biǹ h phƣơng sai số ep,m: sai lê ̣ch của tín hiê ̣u m duyê ̣t mẫu p d: vectơ tín hiê ̣u mong ḿ n : ̣ số ho ̣c giải thuật Levenberg-Marquardt i, j, k: số lặp ix J: ma trâ ̣n jacobian ni: số nơron lớp vào n1: số nơron ở lớp thƣ́ nhấ t n2: số nơron ở lớp thƣ́ hai nQ: số nơron ở lớp zj,i: tín hiệu vào thứ i nơron j zj: tín hiệu nơron j sj: Độ dốc hàm chuyển đổi nơron thứ j : tín hiệu lan truyền ngƣợc sai lê ̣ch x DANH SÁCH CHỮ VIẾT TẮT ANN: Artificial Neural Network MLP: Multilayer perceptrons PPN: Polynomial Pre-Processor NN: Neural Network ANFIS: Artificial Neuro- Fuzzy Inference System DH:Denavit – Hartenberg ci: biểu thị cho cosθi si: biểu thị cho sinθi cij…: biểu thị chocos(θi+ θj+…) xi 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 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 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 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 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 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 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 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

Ngày đăng: 16/12/2022, 19:20