Đồ án lập trình mô phỏng hoạt động của rôbốt scara 4 bậc tự do

86 611 1
Đồ án lập trình mô phỏng hoạt động của rôbốt scara 4 bậc tự do

Đ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

ĐỒ ÁN TỐT NGHIỆP TRƢỜNG ĐHBKHN CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CƠ KHÍ Độc lập - Tự - Hạnh phúc - - *** NHIỆ V THIẾT KẾ ĐỒ ÁN *** NH C Họ tên sinh viên: NGUYỄN ĐỨC NHIÊN Khoa: Cơ khí ớp: Cơ điện tử – K49 Giáo viên hƣớng dẫn: TS Bộ môn: Cơ học ứng dụng PHAN BÙI KH I Đầu đề thiết kế ập trình mô hoạt động cuả rôbốt Scara bậc tự Các số liệu ban đầu Nội dung thuyết minh tính toán Đồ án gồm phần sau: A Mục đích đồ án tin học ứng dụng Tìm hiểu - Tìm hiểu robot cụ thể sử dụng công nghiệp(Robot Scara) - Tìm hiểu cấu hoạt động Robot – khâu hoạt động Rôbốt - Tìm hiểu động học mô hình 3D Robot mô hoạt động Robot - Tìm hiểu cách xây dựng chƣơng trình điều khiển cho robot B Nhiệm vụ em đồ án tin học ứng dụng xây dựng chƣơng trình mô hoạt động robotScara bậc tự Ket-noi.com Ket-noi.com kho kho tai tai lieu lieu mien mien phi phi ĐỒ ÁN TỐT NGHIỆP + Các công cụ để xây dựng toán mô - Ngôn ngữ lập trình C++(Xây dựng giao diện MFC,xây dựng chƣơng trình dọc file liệu có dạng *BDF *STL) - Lập trình đồ họa OPEN GL để xây dựng khối đồ họa để mô (Tìm hiểu kỹ gói thƣ viện OPEN GL) - Các công cụ cần để xây dựng Visual C++ 6.0 (tạo Project với Visual C++) C Kết đạt đƣợc qua đồ án - Hiểu đuợc nguyên lý hoạt động Robot công nghiệp qua chƣơng trình mô - Có chƣơng trình cụ thể để mô - Tìm hiểu lập trình MÔ PHỎNG với openGL - Tìm hiểu phần mền lập trình Visual C++ 6.0 - Tìm hiểu ngôn ngữ lập trình VC++ Yêu cầu chung - N m vững kiến thức sở Cơ học để khảo sát toán t nh học - Sử dụng thành thạo phần mềm thiết kế, n m vững kiến thức tính toán thiết kế chi tiết máy, truyền động khí - Các phần thuyết minh gồm Trang bìa, Nhiệm vụ thiết kế, mục lục, giới thiệu, nội dung (đ t toán, thực hiện, kết luận), tài liệu tham khảo - Phần đ t vấn đề cần cụ thể, r ràng, ch đƣợc mục đích, nhiệm vụ, kết mong muốn Phần thực trình bày sở lý thuyết khảo sát, tính toán, thiết kế C : y , ĐỒ ÁN TỐT NGHIỆP , Các kết nhận đƣợc thể dƣới dạng đồ th , bảng số, ho c ghi file kết quả, phần mềm đƣợc xây dựng, - Thuyết minh đồ án đƣợc trình bày 20 trang khổ giấy A4, soạn thảo b ng máy tính, cở chữ 13-14, 1.5 line, font tiếng Việt (Times New Roman), lề dƣới 2cm, trái 3cm, phải 2cm In m t, đóng thành hoàn thành nộp cho giáo viên hƣớng d n thời hạn để đƣợc duyệt cho ph p bảo vệ kết trƣớc hội đồng chấm đồ án môn học Ngày hoàn thành nhiệm vụ Ngày 09 tháng 11 năm 2008 Chủ nhiệm môn Giáo viên hƣớng d n Sinh viên hoàn thành (v ộ ả ế ế Ngày 09 tháng 11 năm 2008 Ket-noi.com Ket-noi.com kho kho tai tai lieu lieu mien mien phi phi ĐỒ ÁN TỐT NGHIỆP MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU GIỚI THIỆU TỔNG QUAN VỀ ROBOT CÔNG NGHỆP VÀ MÔ PHỎNG HOẠT ĐỘNG 11 CHƢƠNG I: CÁC C NG C ĐỂ XÂY DỰNG BÀI TOÁN PHỎNG HOẠT ĐỘNG CỦA ROBOT 13 1.1 Giới thiệu Open GL 13 14 1.1.1.Đ c điểm OpenGL 1.1.2 Các thƣ viện hỗ trợ lập trình OpenGL 20 1.1.3 Các bƣớc tổng quan xây dựng ứng dụng đồ họa với OpenGL 21 1.1.4 Xây dựng đối tƣợng chiều 1.1.5 Quan sát đối tƣợng chiều 23 24 ĐỒ ÁN TỐT NGHIỆP 1.2.Giới thiệu VisualC++ ứng dụng MFC 27 1.3 Tìm hiểu phần mềm thiết kế VS 6.0 AutoCAD , SolidWorks 28 CHƢƠNG II: CÁC BƢỚC XÂY DỰNG BÀI TOÁN 2.1 Cách tạo project MFC để mô phỏn 2.2 Khởi tạo thiết lập gói thƣ viOpenGL PHỎNG ……32 32 39 2.3 Thiết kế mô hình Robot SolidWork 2007 58 2.4 Xây dựng module đọc file *STL *BDF 61 2.4.1 Xây dựng module đọc file *STL 61 2.4.2 Xây dựng module đọc file *BDF 2.5 Mô chƣơng trình OpenGL CHƢƠNG III: CHẠY CHƢƠNG TRÌNH 65 74 PHỎNG 75 KẾT LUẬN 81 Tài liệu tham khảo 83 Ket-noi.com Ket-noi.com kho kho tai tai lieu lieu mien mien phi phi ĐỒ ÁN TỐT NGHIỆP DANH C CÁC HÌNH VẼ TRONG ĐỒ ÁN H 1.1 : Mộ ố OpenGL .16 ỗ H : Mộ ố OpenGL 16 H :M .17 H ố :M .18 H 1.5: M OpenGL….19 ấ ợ ơ ố x ộ ằ ợ ể ả ằ vẽ ợ q ằ S q ể H 2.1 : Bắ ầ …………………………………………………………….….33 S vẽ H 1.9 : G d ổ AutoCAD……………………………………………… 30 T ế ố ợ H 1.7 : C ọ ố 2007……………………………………….28 H 2.2 : ….… 34 d H :M OpenGL……………………………… 20 H 1.10: G d ổ MFC………………………………… 31 ỏ v v v ằ ợ : H 1.8 :Mộ ………………………………… 29 ả ế ế dw dWorks ể vẽ j MFC …………………………………………………………………… H 2.3 : T ế 2………………………………………………………………………… …34 H 2.4 : T ế 3…………………………………………………………………………… 35 H 2.5 :T ế …………………………………………………………………………… 36 ĐỒ ÁN TỐT NGHIỆP H 2.6 : T ế 5………………………………………………………………………………37 H 2.7 : H MFC……………………………………………….…37 ế P j H 2.8 : C y MFC…………………………………………………………….…38 H 2.9 : C MFC…………………………………………………….…39 P j dụ H 2.10 : T ế OpenGL…………………………………………… ….40 H 2.11 : C ọ ………………………………… …45 O ể H 2.12 : C ọ …………………………………………47 H 2.13 : C ọ ………………….… 48 H 2.15 : C y H 2.16 : T ê H 2.17 : C ọ H 2.18 : T ế ể ế y ể ế O P j ế v O D s O Sz H 2.14 : C ọ ……………………………50 v ể vẽ ố O GL y O GL dụ O GL ợ O GL O GL ………………………………………………………53 P j MFC ………………………………………………….…54 O T ể O T ế y O GL…………… ……55 ……………………………………………….……56 H 2.19 : T ế Symbol………………………………………………………… … 57 H 2.20 : C y ử1 N w OpenGL…………………………………………………57 H 2.21 : Vẽ ầ ……………………………………………………… ……58 ế R H 2.22 : Vẽ â R ………………………………………………………… ……59 H 2.23 : Vẽ â R ………………………………………………………… ……59 H 2.24 : 3………………………………………………………………………………60 K â Ket-noi.com Ket-noi.com kho kho tai tai lieu lieu mien mien phi phi ĐỒ ÁN TỐT NGHIỆP H 2.24 : 3…………………………………………………………………………….…60 H 2.25 : M 2007.61 R ã ợ ắ K â v ê S H 2.26 : C yể File.*STL………………………………………………………… …62 H 2.27 : C yể ầ *STL………………………………………… 63 H 2.28 : C ọ ị ASCII……………………………………… 64 H 2.29 : C yể *STL………………………………………65 H 2.30: C X W s s ế R d ế f v dW s * â STL s f y………………………………………………… …66 H 2.31 : T XchangeWorks…………………………………………………….66 H 2.32: P ầ 2000………………………………………… ……….…….67 H 2.33: Hộ H 2.34 : I H 2.35: Hộ H 2.36: T H 2.37 : K ố L d/U /X dA ụ ề A CAD …………………………………… ……….68 ………………………………………………………………….….68 O f *.s d FF ê …………………………………………………….…69 ố ợ 3D……………………………………………70 ả s …………………………………………………….……71 H 2.38 : M OpenGL……… 74 R S ã ợ vẽ ê H 3.1 : R y q ỹ ấ ỳ ……………………… ……75 H 3.1 : R y q ỹ ấ ỳ ………………………….…76 H 3.2 : R y q ỹ H 3.3 : R y q ỹ H 3.4 : R y q ỹ H 3.5 : R y q ỹ ò …………………………………… 77 E s ……………………………….….78 S ………………………………….79 …………………… 80 ĐỒ ÁN TỐT NGHIỆP Ket-noi.com Ket-noi.com kho kho tai tai lieu lieu mien mien phi phi ĐỒ ÁN TỐT NGHIỆP ỜI NÓI ĐẦU Robot công nghiệp l nh vực đƣợc nghiên cứu phát triển mạnh giới.Ở nƣớc ta l nh vực mẻ ngày môi trƣờng sản xuất đại, hầu hết quy trình đƣợc thực b ng máy chuyên dùng Với phƣơng pháp này, làm giảm r rệt chi phí sản xuất sản phẩm công nghiệp phù hợp với đa số ngƣời tiêu dùng Tuy nhiên máy công cụ, đƣợc thiết kế để thực nguyên công cho trƣớc, cần thay đổi kiểu m u sản phẩm, toàn dây chuyền sản xuất phải đƣợc cải tạo lại Việc sửa đổi tốn k m Kiểu tự động hoá kiểu tự động hoá cứng tốn k m Do vậy, mà giới có phƣơng pháp sản xuất tiên tiến tiến chế tạo loại Robot đƣợc đƣa vào quy trình chế tạo để thực nhiều nguyên công nhƣ: chuyển tải vật tƣ thiết b dây chuyền đại, hàn điểm, sơn phun l p ráp công nghiệp ô tô Do cấu hoạt động đƣợc điều khiển b ng máy tính ho c vi xử lý, chúng tái lập dễ dàng cho nhiều nguyên công khác nhau, không cần thay máy móc thay đổi kiểu m u sản phẩm Đây kiểu tự động hoá linh hoạt mang lại hiệu kinh tế cao cần thiết hoàn cảnh đất nuớc ta tiến tới công nghiệp hóa đại hoá đất nuớc Robot công nghiệp đƣợc ứng dụng rộng rãi dây truyền sản xuất đại có linh hoạt cao việc nghiên cứu chế tạo rô bốt cần thiết Trong trình tính toán thiết kế chế tạo Rôbốt việc mô hoạt động Rôbốt phần quan trọng Quá trình mô cho ta thấy đƣợc hoạt động trình làm việc Rôbốt Với ý ngh a môn học Đồ án tin học ứng dụng với hƣớng d n thầy giáo TS Phan Bùi Khôi em chọn đề tài “Xây dựng chƣơng trình mô hoạt động Robot Scara bậc tự do” 10 Ket-noi.com Ket-noi.com kho kho tai tai lieu lieu mien mien phi phi ĐỒ ÁN TỐT NGHIỆP H 2.29 : C yể ếv â s f *STL 2.4.2.Cấu trúc File *.STL + Phân tích cấu trúc File *STL solid CT1 facet normal 0.000000e+000 outer loop vertex 2.000000e+001 vertex 6.657395e+001 vertex 1.732051e+001 endloop endfacet facet normal 0.000000e+000 outer loop vertex 1.732051e+001 vertex 6.657395e+001 vertex 5.663119e+001 endloop endfacet facet normal 0.000000e+000 outer loop vertex 1.732051e+001 vertex 5.663119e+001 0.000000e+000 1.000000e+000 7.347881e-015 5.200000e+002 2.163119e+001 5.200000e+002 1.000000e+001 5.200000e+002 0.000000e+000 1.000000e+000 1.000000e+001 5.200000e+002 2.163119e+001 5.200000e+002 4.114497e+001 5.200000e+002 0.000000e+000 1.000000e+000 1.000000e+001 5.200000e+002 4.114497e+001 5.200000e+002 72 ĐỒ ÁN TỐT NGHIỆP vertex 1.000000e+001 endloop endfacet facet normal 0.000000e+000 outer loop vertex 1.732051e+001 vertex 6.657395e+001 vertex 2.000000e+001 endloop endfacet 1.732051e+001 5.200000e+002 0.000000e+000 1.000000e+000 -1.000000e+001 5.200000e+002 -2.163119e+001 5.200000e+002 7.347881e-015 5.200000e+002 File *.STL có cấu trúc nhƣ sau : Cứ sau dòng File lại có cấu trúc lại l p lại từ đầu Dòng File *.STL tên chi tiết mà vẽ ta đ t Solidworks.Sau đến Vector pháp tuyến bề m t cần vẽ tọa độ đ nh.Nhƣ File *.STL số hóa chi tiết thành nhiều bề m t nhỏ đ nh tƣơng ứng với nó.Từ ta có sở để xây dựng Module đọc File *.STL phục vụ trình mô 2.4.3.Xây dựng hàm đọc file *.ST + Chƣơng trình đọc File *.STL Trong Module em xin trình bày cách để đọc File *.STL vẽ lại môi trƣờng đồ họa OpenGL Cách 1: Trong cách hàm ReadModel(GLint &model, string filename) lƣu toàn thông tin vector pháp tuyến đ nh vào glGenLists(1) vẽ lại với chu trình điểm vẽ thành bề m t chu trình vẽ đƣợc đ t vòng l p while đọc hết File *.STL vẽ hoàn ch nh bề m t chi tiết thôi.Tuy nhiên,cách với số lƣợng file *.STL nhiều làm cho chƣơng trình b nên em xin giới thiệu cách thứ hai #ifndef _READ_FILE_STL_H_ #define _READ_FILE_STL_H_ //#include "stdlib.h" #include "string" #include "fstream" using namespace std; 73 Ket-noi.com Ket-noi.com kho kho tai tai lieu lieu mien mien phi phi ĐỒ ÁN TỐT NGHIỆP void ReadModel(GLint &model, string filename) { model = glGenLists(1); if(model !=0) { GLdouble n[3], v[3][3]; ifstream ifs(filename.c_str()); // ifs.setmode(filebuf::binary); string str1, str2; //Start READ STL FILE getline(ifs, str1);//"solid " glNewList(model, GL_COMPILE); glBegin(GL_TRIANGLES); while(1) { //'face' OR 'endsolid' ifs>>str1; if(str1 == "endsolid") break; //n[0] n[1] n[2] ifs>>str1>>n[0]>>n[1]>>n[2]; getline(ifs, str1); //outer loop getline(ifs, str1); //Vertex1, Vertex2, Vertex3 for(int i=0; i>str1>>v[i][0]>>v[i][1]>>v[i][2]; getline(ifs, str1); } //Draw a triangle glNormal3dv(n); glVertex3dv(v[0]); glVertex3dv(v[1]); glVertex3dv(v[2]); //end loop getline(ifs, str1); //end face getline(ifs, str1); } glEnd(); glEndList(); ifs.close(); } } #endif _READ_FILE_STL_H_ Cách : Trong cách ta viết hàm để đọc file *.STL Đoạn đầu hàm ReadFileSTL() khai báo biến cục bộ, tiếp sau đến dòng lệnh : f=fopen("ROBOT.txt","rt"); 74 ĐỒ ÁN TỐT NGHIỆP H 2.29 : C yể ếv â s f *STL Đây file *.txt chứa thƣ mục chƣơng trình nội dung file chứa danh sách chi tiết vẽ Solidwork chuyển sang file *.STL để trình mô vẽ lại mô hình Robot Tiếp theo câu lệnh if else while để tiến hành kiểm tra file đọc file *.STL Nếu việc mở File thành công chƣơng trình tiến hành đọc đọc tên tệp số liệu và lƣu vào mảng filechitiet[] Kết thúc việc đọc File ROBOT.txt biến số chi tiết đƣợc gán giá tr cho tổng số file cần nạp Tiếp theo lệnh lisct = glGenLists(SOCHITIET) lệnh khởi tạo môt danh sách list gồm có số phần tử b ng số chi tiết.Mục đích tạo list để thực thao tác vẽ lƣu vào mảng danh sách.Trong trình mô phỏng,ch cần gọi mà không cần tiến hành vẽ lại.Nhƣ tối ƣu cho trình mô phỏng,sau 75 Ket-noi.com Ket-noi.com kho kho tai tai lieu lieu mien mien phi phi ĐỒ ÁN TỐT NGHIỆP chƣơng trình thực mở file số liệu đƣợc lƣu mảng filechitiet[].Nếu trình mở file thành công,quá trình việc nạp vẽ lại chi tiết đƣợc thực theo lệnh sau : glNewList(listct+loop,GL_COMPILE) lệnh tạo list để lƣu trình vẽ chi tiết cần nạp.Chƣơng trình đọc số liệu theo cấu trúc tệp số liệu phân tích trên.Tiếp theo đó, lệnh Vemat() hàm thực chức vẽ m t, với tham số đầu vào vector chứa tọa độ đ nh.Các lệnh hàm Vemat() nhƣ sau: void CMophongView::Vemat(float *p1, float *p2, float *p3) { glVertex3f(p1[0],p1[1],p1[2]); glVertex3f(p2[0],p2[1],p2[2]); glVertex3f(p3[0],p3[1],p3[2]); } Tất mã lệnh hàm đọc File *.STL nhƣ dƣới void CMophongView::ReadFileSTL() //Ham co chuc nang la doc File *STL { unsigned int SOCHITIET; FILE *f; char st[216]=""; char filechitiet[100][256]; char xaudoc[216]=""; float dinh[1000][3]; float d1,d2,d3; //Toa cac dinh cua moi facet float i1,i2,i3; //Vecto phap tuyen tuong ung unsigned int i,j; unsigned int loop; char catbo[20]=""; f=fopen("ROBOT.txt","rt"); if(f==NULL) { MessageBox("Khong tim thay file chua danh sach cac chi tiet!\n","Thong bao"); ExitThread(0); } else { loop=0; while(!feof(f)) { fscanf(f,"%s",st); sprintf(filechitiet[loop],"%s.STL",st); loop++; 76 ĐỒ ÁN TỐT NGHIỆP } fclose(f); srand((unsigned) time(NULL)); SOCHITIET=loop; for (i=0;i

Ngày đăng: 30/05/2017, 15:03

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan