LỜI CẢM ƠNTrong suốt quá trình thực hiện đồ án tốt nghiệp: “Nghiên cứu thư viện đồ họa OpenGL và ứng dụng trong mô phỏng động học của Robot”, ngoài sự cố gắng hết mình của bản thân, tron
Trang 1LỜI CẢM ƠN
Trong suốt quá trình thực hiện đồ án tốt nghiệp: “Nghiên cứu thư viện đồ họa OpenGL và ứng dụng trong mô phỏng động học của Robot”, ngoài sự cố
gắng hết mình của bản thân, trong quá trình làm đồ án em đã nhận được sự giúp
đỡ tận tình từ phía nhà trường, thầy cô gia đình và bạn bè
Em xin gửi lời cảm ơn sâu sắc đến ThS.Nguyễn Văn Huân mặc dù bậnnhiều công việc nhưng đã dành thời gian hướng dẫn và giúp đỡ em tận tình trongquá trình làm đồ án tốt nghiệp
Em xin chân thành cảm ơn các thầy, cô trường Đại học Công nghệ thôngtin và Truyền thông đã truyền đạt những kiến thức quý báu cho em trong suốt quátrình học tập
Em cũng xin cảm ơn tới gia đình và bạn bè đã luôn quan tâm, động viên,giúp đỡ và tạo điều kiện cho em để em có điều kiện tốt nhất để hoàn thành đồ án này
Trong quá trình thực hiện đồ án, mặc dù em đã có nhiều cố gắng nhưng dohạn chế về thời gian cũng như kinh nghiệm nên đồ án này chắc chắn còn mắc phảinhững thiếu sót, rất mong được sự góp ý kiến của các thầy cô và các bạn để ứngdụng mà đồ án đề cập được hoàn thiện hơn
Em xin chân thành cảm ơn!
Thái nguyên, ngày 16 tháng 06 năm 2012
Sinh viên thực hiện
Cao Thị Lâm
Trang 2LỜI CAM ĐOAN
Để hoàn thành đồ án tốt nghiệp đúng thời gian quy định và đáp ứng đượcyêu cầu của đề tài, bản thân em đã cố gắng tìm hiểu và nghiên cứu, học tập vàlàm việc trong thời gian dài Em đã tham khảo một số tài liệu được nêu trongphần “Tài liệu tham khảo” và các mã nguồn mở được cho phép sử dụng cùng cácdiễn đàn mạng uy tín trên Internet Nội dung đồ án hoàn toàn không sao chép từcác đồ án khác, không vi phạm bản quyền tác giả Toàn bộ đồ án là do bản thân
em nghiên cứu và xây dựng nên
Em xin cam đoan những lời trên là đúng, nếu có thông tin sai lệch em xinhoàn toàn chịu trách nhiệm trước hội đồng
Thái nguyên, ngày 16 tháng 06 năm 2012
Sinh viên thực hiện
Cao Thị Lâm
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
DANH MỤC BẢNG 5
DANH MỤC HÌNH VẼ 6
LỜI NÓI ĐẦU 8
CHƯƠNG 1: TỔNG QUAN VỀ ĐỘNG HỌC VÀ THƯ VIỆN ĐỒ HỌA OPENGL 10
1.1 Giới thiệu chung 10
1.2 Động học 10
1.2.1 Chuyển động cơ bản của vật rắn 11
1.2.2 Động học của Robot 13
1.3 Thư viện đồ họa OpenGL 15
1.3.1 Cơ chế hoạt động của OpenGL 16
1.3.2 Đặc điểm của OpenGL 17
1.3.3 Thư viện hỗ trợ lập trình OpenGL 26
1.3.4 Các bước tổng quan khi xây dựng ứng dụng đồ hoạ với thư viện OpenGL.27 1.4 Ngôn ngữ lập trình Visual C++ và các ứng dụng của MFC 34
CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ BÀI TOÁN MÔ PHỎNG CHUYỂN ĐỘNG CỦA ROBOT 35
2.1 Giới thiệu về Robot KUKA 35
2.2 Cách tạo ra Project MFC để thực hiện quá trình mô phỏng 35
2.3 Khởi tạo và thiết lập các gói thư viện của OpenGL 40
2.4 Thiết kế mô hình Robot trên Solidwork 45
Trang 42.5.1 Phương trình xác định vị trí khâu thao tác (bàn kẹp) của Robot (Bài toán
động học thuận) 49
2.5.2 Bài toán ngược xác định thông số động học Robot 51
2.6 Mô phỏng chương trình trên OpenGL 52
CHƯƠNG 3: CHƯƠNG TRÌNH MÔ PHỎNG 53
3.1 Giao diện tổng quan của chương trình 53
3.2 Robot vẽ theo quỹ đạo đường gấp khúc 3D 54
3.3 Robot vẽ theo quỹ đạo đường cánh hoa 55
3.4 Robot vẽ theo quỹ đạo đường Ellipse 56
3.5 Robot vẽ theo quỹ đạo đường hình Sin 57
3.6 Robot vẽ theo quỹ đạo đường tròn 58
3.7 Robot vẽ theo quỹ đạo đường thằng 59
KẾT LUẬN 61
TÀI LIỆU THAM KHẢO 62
PHỤ LỤC 63
DANH MỤC BẢNG
Trang 5Bảng 1.1: Một số kiểu dữ liệu của OpenGL 17
Bảng 1.2: Các tham số của glBegin() 18
Bảng 1.3: Các ma trận biến đổi hiện hành 31
Bảng 2.1: Bảng thông số Denavit - Hartenberg (DH) 49
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1: Chuyển động tịnh tiến của thùng xe trên đoạn đường thẳng 10
Hình 1.2: Chuyển động của vật rắn quanh trục cố định 11
Hình 1.3: Chuyển động của điểm thuộc vật rắn quanh trục cố định 12
Hình 1.4: Cơ chế hoạt động của OpenGL 15
Hình 1.5: Các đối tượng đồ họa cơ bản 17
Hình 1.6: Quá trình vẽ các Vertex 2D trên OpenGL 18
Hình 1.7: Quá trình Render màu sắc của vật liệu 19
Hình 1.8: Quá trình tạo hiệu ứng ánh sánh cho đối tượng 21
Hình1.9: Quá trình Texture Mapping trên OpenGL 23
Hình 1.10: Quá trình Blending màu sắc của vật liệu trên OpenGL 24
Hình 1.11: Quá trình tạo hiệu ứng sương mù trên OpenGL 25
Hình 1.12: Các đối tượng 3D được xây dựng lại trên OpenGL 29
Hình 1.13: Phép chiếu trực giao 31
Hình 1.14: Phép chiếu phối cảnh 31
Hình 1.15: Hệ tọa độ chuẩn trong OpenGL 32
Hình 1.16: Các phép biến đổi trong OpenGL 33
Hình 2.1: Bắt đầu thiết lập project MFC 35
Hình 2.2: Thiết lập 1 35
Hình 2.3: Thiết lập 2 36
Hình 2.4: Thiết lập 3 36
Hình 2.5: Thiết lập 4 37
Hình 2.6: Thiết lập 5 37
Hình 2.7: Hoàn thành thiết lập Project MFC 38
Trang 7Hình 2.8: Chạy thử Project MFC 38
Hình 2.9: Các lớp ứng dụng trong MFC 39
Hình 2.10: Thiết lập các gói thư viện OpenGL 40
Hình 2.11: Chọn hàm OnCreate() để thiết lập OpenGL 41
Hình 2.12: Chọn hàm OnDestroy() để hủy OpenGL 42
Hình 2.13: Chọn hàm OnSize() để thiết lập các ứng dụng OpenGL 43
Hình 2.14: Chọn hàm OnDraw() để vẽ các đối tượng OpenGL 43
Hình 2.15: Chọn hàm OnInitialUpdadte() để cập nhật sự thay đổi của hệ thống.44 Hình 2.16: Mô hình Robot 45
Hình 2.17: Phần đế robot 45
Hình 2.18: Mô hình khâu 1 của Robot 46
Hình 2.19: Mô hình khâu 2 của Robot 46
Hình 2.20: Mô hình khâu 3 của Robot 47
Hình 2.21: Mô hình và hệ tọa độ Robot ba bậc tự do 48
Hình 3.1: Giao diện tổng quan chương trình 53
Hình 3.2: Robot vẽ đường gấp khúc 3D 55
Hình 3.3: Robot vẽ đường cánh hoa 56
Hình 3.4: Robot vẽ đường Ellipse 57
Hình 3.5: Robot vẽ đường hình Sin 58
Hình 3.6: Robot vẽ đường tròn 59
Hình 3.7: Robot vẽ đường thằng 60
Trang 8LỜI NÓI ĐẦU
Robot công nghiệp là lĩnh vực đã được nghiên cứu và phát triển mạnh trênthế giới Ở nước ta, lĩnh vực này còn mới mẻ, ngày nay trong môi trường sản xuấthiện đại, hầu hết các quy trình được thực hiện bằng các máy chuyên dùng Vớicác phương pháp này, đã làm giảm rõ rệt chi phí sản xuất các sản phẩm côngnghiệp phù hợp với đa số người tiêu dùng Tuy nhiên mỗi máy công cụ được thiết
kế để thực hiện nguyên công cho trước, mỗi khi cần thay đổi kiểu mẫu sản phẩmthì toàn bộ dây chuyền sản xuất phải được cải tạo lại Kiểu tự động hoá này làkiểu tự động hóa cứng và rất tốn kém Do vậy mà trên thế giới có phương phápsản xuất tiên tiến đó là chế tạo ra các loại robot được đưa vào quy trình chế tạo
để thực hiện nhiều nguyên công như: chuyển tải vật tư và các thiết bị trong cácdây chuyền hiện đại, hàn điểm, sơn phun và lắp ráp trong công nghiệp ô tô… Docác cơ cấu hoạt động được điều khiển bằng máy tính hoặc các bộ vi xử lý, chúng
có thể tái lập dễ dàng cho nhiều nguyên công khác nhau, do đó không cần thaycác máy móc này khi thay đổi kiểu mẫu sản phẩm Đây là kiểu tự động hoá linhhoạt và mang lại hiệu quả kinh tế cao và rất cần thiết trong hoàn cảnh của đấtnuớc ta hiện nay đang tiến tới công nghiệp hóa và hiện đại hoá đất nuớc
Robot công nghiệp được ứng dụng rộng rãi trong các dây chuyền sản xuấthiện đại và có sự linh hoạt cao, vì vậy việc nghiên cứu và chế tạo robot là cầnthiết Trong quá trình tính toán, thiết kế và chế tạo robot thì việc mô phỏng cáchoạt động của robot là một phần rất quan trọng Quá trình mô phỏng sẽ cho tathấy được sự hoạt động và quá trình làm việc của robot Với các ý nghĩa đó, trong
Đồ án tốt nghiệp này em đã chọn đề tài “Nghiên cứu thư viện đồ họa OpenGL
và ứng dụng trong mô phỏng động học của Robot”.
Nội dung của đồ án gồm có ba chương như sau:
Chương 1: Tổng quan về động học và thư viện đồ họa OpenGL
Chương 2: Phân tích, thiết kế bài toán mô phỏng hoạt động của Robot
Chương 3: Chương trình mô phỏng
Trang 9CHƯƠNG 1: TỔNG QUAN VỀ ĐỘNG HỌC VÀ THƯ VIỆN ĐỒ
HỌA OPENGL
1 Giới thiệu chung
Ngày nay, Robot công nghiệp có vai trò rất quan trọng và được ứng dụngrộng rãi trong quá trình sản xuất của nền công nghiệp hiện đại Để chế tạo rađược một mô hình robot và đem ra phục vụ cho sản xuất phải trải qua rất nhiềugiai đoạn như: tìm hiểu về các loại robot và các đặc tính hoạt động của nó, tínhtoán một cách chính xác các khâu của các cơ cấu, các phương trình hoạt động vàthiết kế các mô hình 3D sao cho tối ưu và hiệu quả nhất Một mô hình robot hoạtđộng trơn tru và đáp ứng được các yêu cầu kỹ thuật đề ra đòi hỏi việc chế tạo làhết sức tỉ mỉ và chi tiết từng bước một Trong một mô hình robot bao gồm rấtnhiều phần như: cơ khí để chế tạo ra các chi tiết, điện tử để điều khiển các hoạtđộng và tin học để lập trình cho các cơ cấu của robot hoạt động theo các quỹ đạo
và yêu cầu kỹ thuật đề ra Một phần cũng rất quan trọng mà một mô hình robotnào cũng phải thực hiện là mô phỏng quá trình hoạt động của nó
Để lập trình mô phỏng được hoạt động của robot, sau đây em xin giới thiệutổng quan về động học và thư viện đồ họa OpenGL
1.2 Động học
Động học khảo sát chuyển động cơ học của vật thể (chất điểm) về mặthình học, không quan tâm đến nguyên nhân gây chuyển động và biến đổi chuyểnđộng của chúng
Khi vật thể có kích thước rất bé so với quỹ đạo chuyển động của nó hoặc
có thể bỏ qua thì ta coi đó là chất điểm chuyển động, gọi tắt là động điểm
Chuyển động xảy ra trong không gian nhưng hoàn toàn có tính tương đốiphụ thuộc vào vật lấy làm mốc để theo dõi chuyển động Vật lấy làm mốc đượcgọi là hệ quy chiếu
Để tính thời gian ta chọn một thời điểm tuỳ ý làm thời điểm gốc (t0),thường chọn t0 là lúc bắt đầu khảo sát chuyển động
Trang 10Động học được chia làm hai phần chính là “Động học điểm” và “Độnghọc vật rắn” Và để mô phỏng được động học của Robot, dưới đây em xin giớithiệu tổng quan về động học vật rắn hay chuyển động cơ bản của vật rắn Từ đóứng dụng vào tìm hiểu động học của Robot.
1.2.1 Chuyển động cơ bản của vật rắn
1.2.1.1 Chuyển động tịnh tiến của vật rắn
Tính chất của chuyển động tịnh tiến
Trong chuyển động tịnh tiến, mọi điểm thuộc vật chuyển động giống hệtnhau Nghĩa là tại mỗi thời điểm vận tốc và gia tốc của các điểm thuộc vật giốnghệt nhau Quỹ đạo của mọi điểm thuộc vật có thể tịnh tiến để trùng khít lên nhau
Như vậy, có thể thấy:
Khảo sát một số chuyển động tịnh tiến của vật rắn có thể thay bằngkhảo sát chuyển động của một điểm thuộc vật
Trang 11 Lấy tên chuyển động của chất điểm thuộc vật để đặt tên cho chuyểnđộng của vật ấy.
Lấy vận tốc, gia tốc của điểm thuộc vật làm vận tốc, gia tốc của vật
1.2.1.2 Chuyển động của vật rắn quanh trục cố định
Định nghĩa
Nếu trong quá trình chuyển động vật rắn có hai điểm cố định thì vật rắnchuyển động quanh trục cố định đi qua hai điểm ấy
Trục đi qua hai điểm cố định được gọi là trục quay của vật rắn
Phương trình chuyển động của vật rắn quay quanh trục cố định
Dựng hai mặt phẳng П0 và П chứa trục quay của vật, П0 là mặt phẳng cốđịnh còn П là mặt phẳng động gắn với vật rắn Vị trí của mặt phẳng П xác định
vị trí của vật Gọi φ là góc giữa hai mặt phẳng П0 và П, như vậy φ là thông sốxác định vị trí của vật rắn quay quanh trục cố định Ta có phương trình chuyểnđộng của vật rắn:
Trang 121.2.1.3 Chuyển động của điểm thuộc vật rắn quanh trục cố định
Xét chuyển động của điểm M thuộc vật rắn M cách trục quay z là R=IM.Khi vật rắn quay, quỹ đạoM là đường tròn tâm I bán kính R=IM
Hình 1.3: Chuyển động của điểm thuộc vật rắn quanh trục cố địnhKhi đó ta có phương trình chuyển động của điểm thuộc vật được xác địnhnhư sau:
Do đã biết quỹ đạo của M nên ta dùng hệ tọa độ tự nhiên để khảo sát.Chọn O là giao điểm của quỹ đạo điểm M với mặt phẳng П0 làm gốc tọa độ,chọn chiều quay ngựơc chiều kim đồng hồ làm chiều dương Như vậy vị trí của
M được xác định bằng cung S = OM^ Ta có phương trình chuyển động của M:
´S = OM^= R φ (t) ´
1.2.2 Động học của Robot
Về mặt động học, có thể xem tay máy như là một chuỗi động hở với mộtkhâu cố định, gọi là giá, và các khâu động Mỗi khâu động là một vật rắn đượcliên kết hoặc nối động với nhau nhờ các khớp động
Bất kỳ một Robot nào cũng bao gồm các khâu liên kết với nhau thôngqua các khớp Hai chuyển động cơ bản của các khâu thông qua khớp quay vàkhớp tịnh tiến
Để khảo sát chuyển động của các khâu, ta thường dùng phương pháp hệtoạ độ tham chiếu hay hệ toạ độ cơ sở Bằng cách “gắn cứng” lên mỗi khâu độngthứ k một hệ trục toạ độ vuông góc (Oxyz) - còn gọi là các hệ toạ độ tương đối
Trang 13và gắn cứng với giá cố định hệ trục toạ độ vuông góc (Oxyz)0 - còn gọi là hệ toạ
độ tuyết đối, hệ toạ độ tham chiếu hay hệ toạ độ cơ sở, ta có thể khảo sát chuyểnđộng của một khâu bất kỳ trên tay máy hoặc chuyển động của một điểm bất kỳthuộc khâu
Theo đó, toạ độ của điểm M thuộc một khâu bất kỳ, được xác định bởi bánkính vectơ rM(0) Với các thành phần (hình chiếu) của nó trong hệ toạ độ
cơ sở (oxyz)0 lần lượt là xM(0), y M(0), zM(0) được gọi là toạ độ tuyệt đối của điểm M.
Toạ độ của điểm M thuộc khấu thứ k được xác định bởi bán kính vectơ
´
O k M với các thành phần tương ứng của nó trong hệ toạ độ (oxyz), gắn cứng với
khâu lần lượt là xM(k), y M(k), zM(k) được gọi là toạ độ tương đối của điểm
Mếu M là điểm cố định trên khâu thì toạ độ tương đối của M sẽ khôngthay đổi khi khâu chuyển động
Dưới dạng ma trận ta có thể biểu diễn:
Vì vậy, khi khảo sát chuyển động của tay máy, người ta thường quan tâmđến chuyển động của khâu cuối bao gồm quỹ đạo hoặc các vị trí đi qua (hay tổngquát là một đường cong trong không gian ba chiều), vận tốc và gia tốc chuyểnđộng mà không quan tâm nhiều đến chuyển động của các khâu trung gian (gọi
là các khâu thành viên)
Trang 14Từ những khái niệm nêu trên, ở nội dung động học có hai bài toán thườngđược đặt ra như sau: Bài toán động học thuận và bài toán động học ngược (sẽđược trình bày và tính toán chi tiết trong chương tiếp theo).
Bài toán động học thuận: xác định vị trí điểm cuối và hướng tay kẹp màtay máy đạt được khi qui luật thay đổi theo thời gian của các thông số định vị củatay máy là hàm đã biết Bài toán này nhằm phục vụ bài toán xác định phạm vihoạt động của tay máy, bài toán thuận trong động lực học tay máy…
Bài toán động học ngược: xác định qui luật thay đổi theo thời gian của taymáy để nó nắm bắt được vị trí đã cho của đối tượng theo một hướng định trướccủa tay kẹp Bài toán này nhằm phục vụ các bài toán điều khiển qũy đạo, các bàitoán điều khiển tối ưu
1.3 Thư viện đồ họa OpenGL
Để hiểu một cách cụ thể về công cụ đồ họa như OpenGL thì một câu hỏi đượcđặt ra là: OpenGL là gì? Và tại sao lại sử dụng OpenGL cho bài toán mô phỏng?
OpenGL là chữ viết tắt của Open Graphic Library, là một thư viện đồ họatốc độ cao và độc lập với hệ thống giao diện các hệ điều hành Tiền thân củaOpenGL là IRIS GL do hãng Silicon Graphic Library Inc phát triển cho cácWorkStation đồ họa tốc độ cao từ năm 1982 Sau đó từ năm 1992 thì OpenGL đãtrở thành một chuẩn công nghiệp và đặc tính kỹ thuật của OpenGL do ủy ban kỹthuật ARB (Architectural Review Board) phê chuẩn
Công nghệ đồ họa đang ngày càng được ứng dụng trong cuộc sống, vàngày nay, nó đã được phát triển tương đối mạnh mẽ ở Việt Nam Trong kỹ thuậtthì việc sử dụng các ứng dụng của OpenGL cũng như DirectX vào việc mô phỏngcác cơ cấu máy móc, các hoạt động của Robot công nghiệp trước khi đem thửnghiệm bằng mô hình thực là giải pháp mà rất nhiều kỹ sư cơ khí cũng như cũngnhư các viện nghiên cứu lựa chọn do tính ưu việt của nó trong việc thể hiện các
mô hình đồ họa động trong không gian ba chiều (3D) Vì vậy trong phạm vi của
đồ án này em chọn cách sử dụng OpenGL để xây dựng bài toán mô phỏng
Trang 151.3.1 Cơ chế hoạt động của OpenGL
Hình 1.4: Cơ chế hoạt động của OpenGLOpenGL có cơ chế hoạt động theo kiểu ống dẫn, tức là đầu ra của giaiđoạn trước là đầu vào của giai đoạn sau Từ sơ đồ thì các thành phần của cơ chếđược giải thích như sau:
Display List: Là nơi lưu lại một số lệnh để xử lý sau
Evaluator (bộ ước lượng): Xấp xỉ các đường cong và mặt phẳng hìnhhọc bằng cách đánh giá các đa thức của dữ liệu đưa vào
Per- vertex Operations and Primitive assembly: Xử lý các primitive hìnhhọc (điểm, đoạn thẳng, đa giác) được biểu diễn bởi các vertex Các vertex sẽ được
xử lý và các primitive được cắt xén vào viewport để chuẩn bị cho khâu kế tiếp
Rasterization: Tạo ra một chuỗi các địa chỉ bộ đệm khung và các giá trịliên quan bằng cách sử dụng mô tả 2 chiều của điểm, đoạn thẳng hay đa giác Mỗiphần tử (fragment) được sinh ra sẽ đưa vào giai đoạn kế tiếp
Per- fragment operations: Là các thao tác cuối cùng trên dữ liệu, trướckhi lưu trữ dữ liệu dưới dạng các pixel trong bộ đệm khung Các thao tác này baogồm việc cập nhật (có điều kiện) cho bộ đệm khung dựa vào dữ liệu vào và dữliệu được lưu trữ trước đó, thực hiện trộn màu cho các pixel và làm một số thaotác khác
Trong trường hợp dữ liệu vào ở dạng pixel không phải vertex, nó sẽ đưathẳng vào giai đoạn xử lý pixel Sau giai đoạn này, dữ liệu ở dạng pixel sẽ đượclưu trữ như là bộ nhớ texture để đưa vào giai đoạn Per-fragment operation hoặcđưa vào Rasterization như dữ liệu dạng Vertex
Trang 161.3.2 Đặc điểm của OpenGL
OpenGL là một thư viện đồ họa rất lớn gồm khoảng 150 hàm hỗ trợ một
số tính năng cơ bản sau:
1.3.2.1 Thể hiện các đối tượng đồ họa cơ bản
OpenGL không có sẵn các hàm để xây dựng các đối tượng hình học phứctạp, người dùng phải tự xây dựng chúng từ các đối tượng hình học cơ bản màOpenGL hỗ trợ: điểm, đoạn thẳng, đa giác
Mọi đối tượng hình học đều được mô tả cơ bản từ các vertex Vertex cũng
có thể hiểu là một điểm Khai báo một điểm, dùng hàm:
glVertex{234}{sifd}[v] (Tọa độ điểm);
Trong đó:
{234} – Chỉ định số chiều của không gian
{sifd} – Chỉ định kiểu dữ liệu của tọa độ, ý nghĩa được chỉ định trong bảng1.1 như sau:
Bảng 1.1: Một số kiểu dữ liệu của OpenGL
Kí hiệu Kiểu dữ liệu Tên kiểu của OpenGL
s 16 – bit integer GLshort
i 32 – bit integer GLint, GLsizei
f 32 – bit floating – point GLfloat, GLclampf
d 64 – bit floating – point GLdouble, GLclampd
[v] – Nếu tọa độ điểm được truyền từ 1 mảng cho trước
Việc xây dựng các đối tượng hình học khác đều có thể được thực hiện như sau:
glBegin(mode);
/* xác định tọa độ và màu sắc các điểm của hình */
glEnd();
Trang 17Danh sách các mode (tham số) có thể là một trong những giá trị sau:
Bảng 1.2: Các tham số của glBegin()
GL_POLYGON Đa giác lồi
GL_LINE_STRIP Đường gấp khúc không khép kín.GL_LINE_LOOP Đường gấp khúc khép kín
GL_TRIANGLE_STRIP
Một dải tam giác liên kết vớinhau
GL_TRIANGLE_FAN
Các tam giác liên kết theo hìnhquạt
GL_QUAD_STRIP Một dải các tứ giác liên kết với
nhau
Dưới đây là hình minh họa cho các loại mode:
Hình 1.5: Các đối tượng đồ họa cơ bảnNgoài ra còn có một số đối tượng ba chiều cơ bản như: Hình cầu, hình trụ,hình hộp từ đó ta xây dựng được các đối tượng ba chiều phức tạp hơn, thậm chí
có thể tự định nghĩa hay thiết kế các phần mềm hỗ trợ thiết kế ba chiều như
Trang 18Ví dụ: Các lệnh để thực hiện quá trình vẽ các điểm trong môi trường 2Dcủa OpenGL như sau:
Hình 1.6: Quá trình vẽ các Vertex 2D trên OpenGL
1.3.2.2 Quan sát đối tượng
Các đối tượng có thể quan sát từ nhiều góc độ khác nhau thông qua các
Trang 191.3.2.3 Định màu sắc, vật liệu đối tượng
OpenGL có thể thể hiện màu sắc đối tượng một cách đa dạng và đặc biệt làkhả năng thể hiện thuộc tính vật liệu
Để thiết lập màu sắc cho đối tượng, ta dùng hàm : glColor3f() ;
Ví dụ :
glColor3f(0.0, 0.0, 0.0); // black glColor3f(1.0, 0.0, 0.0); // red glColor3f(0.0, 1.0, 0.0); // green glColor3f(1.0, 1.0, 0.0); // yellow glColor3f(0.0, 0.0, 1.0); // blue glColor3f(1.0, 0.0, 1.0); // magenta glColor3f(0.0, 1.0, 1.0); // cyan glColor3f(1.0, 1.0, 1.0); // white
Ví dụ: quá trình Render màu sắc của đối tượng:
Hình 1.7: Quá trình Render màu sắc của vật liệu
1.3.2.4 Tạo hiệu ứng ánh sáng OpenGL trong chương trình mô phỏng
Trang 20Cho phép tạo ra hiệu ứng ánh sáng như trong thực tế tạo nên cảm giác thậtcho các mô hình và khung cảnh ba chiều
glMaterialfv(GL_FRONT, GL_SPECULAR, matSpecular);
glMaterialfv(GL_FRONT, GL_SHININESS, matShininess);
glMaterialfv(GL_FRONT, GL_DIFFUSE, matDiffuse);
glMaterialfv(GL_FRONT, GL_AMBIENT, matAmbient);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient1);
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse1);
glLightfv(GL_LIGHT0, GL_SPECULAR, specular1);
glLightfv(GL_LIGHT0, GL_POSITION, position1);
Trang 21glLightfv(GL_LIGHT1, GL_AMBIENT, ambient2);
glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse2);
glLightfv(GL_LIGHT1, GL_POSITION, position2);
glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, direction2);
glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 15.0f);
glEnable(GL_LIGHT1);
}
Hình 1.8: Quá trình tạo hiệu ứng ánh sánh cho đối tượng
1.3.2.5 Tạo khung cảnh mô phỏng thực tế OpenGL
Hỗ trợ các kỹ thuật tạo các khung cảnh giống với thực tế như: Kỹ thuậtdán ảnh, kỹ thuật sương mù, kỹ thuật pha trộn, kỹ thuật giảm hiệu ứng răng cưa
Kỹ thuật dán ảnh (Texture Mapping)
Đôi khi chúng ta cần thể hiện một đối tượng phức hợp, một trong nhữngcách để làm được điều này là thêm chất liệu (dán ảnh) vào đối tượng và nó đượcgọi là Texture Mapping
Ví dụ, để tạo thành các Texture Mapping thì các lệnh như sau sẽ thực thitrong OpenGL:
void COpenGLView::LoadTexture (CString fileName, int texName)//Load Texture
AUX_RGBImageRec* m_texture;
m_texture = auxDIBImageLoad((const char*)fileName);
Trang 22gluBuild2DMipmaps(GL_TEXTURE_2D, 3, m_texture->sizeX,m_texture->sizeY, GL_RGB, GL_UNSIGNED_BYTE, m_texture->data);
Trang 23Hình1.9: Quá trình Texture Mapping trên OpenGL
Kỹ thuật pha trộn (Blending)
Trang 24Là kỹ thuật kết hợp màu của các pixel nguồn và đích theo các cách khácnhau để tạo thành những hiệu quả đặc biệt Pha trộn thường được sử dụng để tạocác đối tượng trong mờ Khi một đối tượng được pha trộn chồng lên đối tượngkhác thì có thể nhìn xuyên qua đối tượng được bao phủ do màu của đối tượngnguồn kết hợp với màu của pixel được bao phủ tạo ra màu mới.
Với ví dụ trên, ta có quá trình Blending:
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
GLfloat matSpecular[] = { 1.0f, 0.0f, 0.0f, 0.5f};
GLfloat matAmbient[] = { 0.25f, 0.25f, 0.25f, 0.5f};
GLfloat matDiffuse[] = { 0.5f, 0.5f, 0.5f, 0.5f};
Hình 1.10: Quá trình Blending màu sắc của vật liệu trên OpenGL
Hiệu ứng sương mù (Fog)
Cho phép tạo hiệu ứng hình ảnh mờ dần khi đối tượng chuyển động xakhỏi mắt nhìn
Và với ví dụ trên, ta có quá trình tạo hiệu ứng sương mù:
glFogi(GL_FOG_MODE, GL_EXP);
GLfloat fog_color[4] = {0.2f,0.2f,0.2f,0.0f};
glFogfv(GL_FOG_COLOR, fog_color);
glFogf(GL_FOG_DENSITY, 0.25);
Trang 25Hình 1.11: Quá trình tạo hiệu ứng sương mù trên OpenGL
Kỹ thuật giảm hiệu ứng răng cưa (Antialiasing)
Sử dụng các sắc thái màu khác nhau để che dấu cạnh răng cưa của đường thẳng trên màn hình Thực tế Antialiasing chỉ là một kiểu hiệu quả pha trộn OpenGL
1.3.2.6 Cải thiện tốc độ OpenGL
Khi ta có ý định vẽ lại hoặc thay đổi trạng thái nhiều lần một đối tượng, sửdụng Display list để làm tăng khả năng thực thi chương trình Trong OpenGL,dislay list sẽ làm giảm sự hao phí thời gian truyền dữ liệu Ví dụ: muốn vẽ mộtcái ôtô có bốn bánh, thay vì việc phải viết đoạn mã vẽ bánh ôtô bốn lần ta sẽ tạomột danh sách hiển thị làm nhiệm vụ vẽ bánh ôtô và gọi nó bốn lần
1.3.2.7 Chọn các đối tượng đồ họa
Việc cho phép người dùng chọn đối tượng đồ hoạ bằng cách click chuộttrên cửa sổ là một yêu cầu thiết yếu đối với các ứng dụng tương tác Để thực hiệnđược những chức năng như vậy, trong OpenGL có sẵn một chế độ là Selection
Và chế độ này được ứng dụng trong kỹ thuật mô phỏng va chạm của các vật thể
1.3.3 Thư viện hỗ trợ lập trình OpenGL
Ngoài các thư viện chuẩn OpenGL như: GLU32.lib, OpenGL.lib, còn một
số thư viện hỗ trợ lập trình OpenGL Như đã đề cập ở trên OpenGL là một thưviện đồ hoạ đã được chuẩn hoá Vì vậy các chương trình sử dụng các hàmOpenGL cơ bản có khả năng tương thích với các chương trình biên dịch trên các
Trang 26nhiên do OpenGL độc lập với các hệ thống giao diện, nên các chương trình muốn
sử dụng OpenGL trên các hệ điều hành khác nhau thì cần sử dụng các thư viện hỗtrợ giao tiếp giao diện ứng với từng hệ điều hành riêng Ví dụ các chương trình đồhoạ sử dụng OpenGL trên Microsoft Windows phải sử dụng thư viện giao tiếpWGL, trên Apple Macintosh phải sử dụng thư viện AGL, trên Unix / Linux XWindow system phải sử dụng thư viện GLX Phần giao tiếp này phải phù hợpvới từng hệ điều hành khác nhau Một thư viện giao tiếp khác, thư viện GLUT(OpenGL Utility Toolkit của tác giả Mark Kilgard) giúp tạo các ứng dụng đồ hoạ
hỗ trợ các giao diện giao tiếp trên nhiều hệ điều hành như tạo các cửa sổ chươngtrình, menu, xử lý đầu vào: bàn phím, chuột Thư viện này được xây dựng độclập với nhiều hệ điều hành do đó các chương trình đồ hoạ sử dụng OpenGL vàGLUT có khả năng tương thích cao trong các hệ điều hành hỗ trợ GLUT Hiện đã
có phiên bản trên tất cả các hệ điều hành chủ yếu như Microsoft Windows, Unix/Linux, X Window system, Apple Macintosh
Ngoài ra, các thư viện thương phẩm như Open Inventer, Performer đượcxây dựng dựa trên OpenGL cung cấp những thao tác phức tạp hơn như: Tạo cáckhung cảnh (Scene), giao tiếp với người dùng, khả năng trao đổi dữ liệu đồ hoạvới các phần mềm đồ hoạ khác Nhờ vậy việc xây dựng các ứng dụng đồ họa bachiều trở nên nhanh chóng và dễ dàng hơn
1.3.4 Các bước tổng quan khi xây dựng ứng dụng đồ hoạ với thư viện OpenGL 1.3.4.1 Khởi tạo môi trường hỗ trợ cho OpenGL
OpenGL là một thư viện đồ hoạ độc lập với hệ thống giao diện của các hệđiều hành, do đó các ứng dụng đồ hoạ sử dụng OpenGL trên các hệ điều hànhkhác nhau đều phải có một quá trình khởi tạo thích hợp với các hàm xử lý đồ hoạcủa OpenGL Quá trình này được thực hiện bằng việc gọi một số hàm thích hợp
của các thư viện hỗ trợ giao tiếp với OpenGL trong chương trình ứng dụng Quá
trình khởi tạo bao gồm: định nghĩa một kiểu cấu trúc dữ liệu đồ hoạ phù hợp vớiquản lý thông tin về định dạng điểm ảnh và lựa chọn các thông số phù hợp với hệthống Các thông số này bao gồm: kiểu điểm ảnh (RGBA hay color index), bộ
đệm hoán đổi đơn hay kép (single/double buffer), độ phân giải màu sắc, khả năng
Trang 27hỗ trợ bộ đệm chiều sâu (depth buffer), bộ đệm stencil (stencil buffer), bộ đệmtích lũy (accumulation buffer) Dưới đây là kiểu cấu trúc dữ liệu đồ hoạ trên các
hệ điều hành khác nhau:
Điều khiển Rendering (Control Rendering): Sau khi thiết lập và lựachọn định dạng điểm ảnh phù hợp với từng hệ thống, tất cả các hệ thống đều phảithực hiện việc điều khiển quá trình tô vẽ (Rendering) Quá trình này thực hiện cácviệc: Tạo và sử dụng ngữ cảnh tô vẽ (rendering context), thực hiện quá trình đồng
bộ hoá (synchronizing execution), hoán đổi các bộ đệm (swaping buffers), sửdụng các phông hệ thống
Tô vẽ (rendering): là một quá trình tạo và hển thị điểm ảnh hai chiều lêncác thiết bị kết xuất đồ hoạ như: màn hình máy tính, máy in từ các đối tượng đồhoạ ba chiều
Ngữ cảnh (context): Trong OpenGL, ngữ cảnh là một khái niệm chỉ mộttập hợp đầy đủ các biến trạng thái của OpenGL
Biến trạng thái: Các trạng thái trong OpenGL như: định dạng điểm ảnh,màu sắc, ánh sáng đều được điều khiển bằng các biến trạng thái tương ứng
Ngữ cảnh tô vẽ (rendering context): Có thể coi ngữ cảnh tô vẽ củaOpenGL như một cổng mà tất cả các hàm của OpenGL phải đi qua để giao tiếp vớithiết bị đồ hoạ phần cứng Ngữ cảnh tô vẽ tạo ra định dạng điểm ảnh giống hệt vớiđịnh dạng điểm ảnh của ngữ cảnh thiết bị (device context) gắn với nó Một chươngtrình ứng dụng có thể có nhiều ngữ cảnh tô vẽ
Quá trình đồng bộ hoá: Quá trình này buộc các hàm của OpenGL hay cáchàm đồ hoạ của hệ thống phải chờ cho đến khi hàm trước đó được thực hiệnxong Điều này có nghĩa các lệnh của OpenGL ở trước lệnh chờ của hệ thống sẽđược đảm bảo được thực hiện trước các lệnh của hệ thống nằm ở sau lệnh chờ đó.Ngược lại các lệnh của OpenGL ở phía sau lệnh chờ của OpenGL chỉ được thựchiện khi các lệnh của hệ thống nằm ở trước lệnh chờ của OpenGL đã thực hiệnxong
Hoán đổi bộ đệm (Swaping buffer): Mục đích chính của các chương trình
đồ hoạ là thể hiện các hình ảnh trên màn hình Một hình ảnh chuyển động cần có
Trang 2824 hình/giây Các hình ảnh trước khi được đưa lên màn hình vẽ sẽ được vẽ lên bộđệm trung gian, sau đó toàn bộ hình ảnh trên bộ đệm mới được đưa ra màn hìnhcùng một lúc Nếu hệ thống chỉ hỗ trợ một bộ đệm, những phần vẽ đầu của khunghình sẽ tồn tại trong suốt 1/24 giây, nhưng các phần vẽ sau của khung hình sẽ bịxoá ngay khi vừa được vẽ để chuẩn bị cho khung hình tiếp theo Giải pháp đểnâng cao chất lượng điểm ảnh và hạn chế nhược điểm trên là sử dụng bộ đệmkép Khi hình ảnh trên bộ đệm thứ nhất được đưa ra màn hình trong suốt 1/24giây, thì cùng lúc, hình ảnh cho khung hình tiếp theo được vẽ trên bộ đệm kia.Sau 1/24 giây thì các bộ đệm hoán đổi vị trí cho nhau Quá trình liên tục như vậy
sẽ giúp cải thiện chất lượng đồ hoạ
1.3.4.2 Xây dựng các đối tượng ba chiều (3D)
Việc xây dựng đối tượng ba chiều phức tạp bằng OpenGL được thực hiệnnhư sau:
Thiết kế các mô hình ba chiều bằng một phần mềm nhỏ hỗ trợ thiết kếchuyên dùng như AutoCAD hay SolidWork, 3D Max…
Sử dụng các lệnh trong các phần mềm đó để xuất đối tượng ba chiều racác dạng tập tin nhị phân hay ASCII có chứa các thông tin của đối tượng dưới dạng
các đỉnh và quy tắc nối các đỉnh đó thành đa giác Ví dụ các tập tin *.BDF, *.STL,…
Đọc thông tin các đối tượng từ các tập tin đó và sử dụng các hàm vẽđối tượng cơ bản của OpenGL xây dựng lại đối tượng ba chiều cơ bản ban đầu
Vì vậy đây chính là cơ sở để xây dựng các bài toán mô phỏng hoạt độngcủa Robot
Trang 29Hình 1.12: Các đối tượng 3D được xây dựng lại trên OpenGL
1.3.4.3 Quan sát các đối tượng ba chiều
Quan sát các đối tượng là một khái niệm cho phép các đối tượng hình học
ba chiều hiển thị lên màn hình máy tính (hai chiều) với hiệu ứng không gian bachiều Quan sát đối tượng gồm các thao tác: Xác đinh vị trí quan sát, hướng quansát, phạm vi quan sát, xác định vị trí các đối tượng trong không gian ba chiều,chọn các phép chiếu, chọn khung nhìn…vv
Quá trình chuyển đổi các đối tượng ba chiều trong không gian ba chiềuthành các điểm ảnh trên màn hình máy tính có thể chia làm các bước như sau:
Bước 1: Áp dụng các phép biến đổi được biểu diễn bởi các phép nhân
ma trận, bao gồm: phép biến đổi mô hình (Modeling), phép biến đổi điểm nhìn(Viewing) và phép chiếu (Projection) Nhìn chung ta kết hợp một số phép biếnđổi khi đó đối tượng cần vẽ trong không gian 3D được cắt theo một không gianthực, được gọi là Viewing Volume Viewing Volume xác định cách thức mà vậtthể được chiếu lên màn hình là phép chiếu phối cảnh (prespective projection) hayphép chiếu trực giao (Orthographic Projection) và phần nào của đối tượng đượchiển thị
Bước 2: Viewing Volume được chiếu lên một mặt phẳng chiếu hìnhchữ nhật được gọi là khung nhìn (Rectangular window)
Bước 3: Ánh xạ hình ảnh trong khung nhìn thành các điểm ảnh trênmột cửa sổ của màn hình máy tính mà ta gọi đó là cổng nhìn (Viewport)
Trang 30 Chọn các phép biến đổi:
Các phép biến đổi sẽ được thực hiện thông qua các phép toán trên ma trận.Quá trình thực hiện biến đổi sẽ diễn ra như sau: Sau khi ta khai báo vật thể thôngqua các vertex, ta đã có được các điểm trong không gian ba chiều với tọa độ dướidạng vector bốn phần tử Để thực hiện di chuyển, quay, phối cảnh, … ta cần ápvào các thông số như góc quay, độ di rời tương ứng với thay đổi muốn thựchiện OpenGL sẽ dùng các thông số biến đổi mà ta nhập vào (được lưu trữ dướidạng ma trận 4x4) và thực hiện các phép toán biến đổi trên các vector nhập vào.Kết quả là tọa độ các vertex mà chúng ta đã nhập sẽ thay đổi tương ứng
Để chọn ma trận nào sẽ được thay đổi (muốn thực hiện phép biến đổi nào),
ta dùng hàm : glMatrixMode(GLenum mode)
Mode có thể là:
Bảng 1.3: Các ma trận biến đổi hiện hành
GL_MODELVIEW Các phép toán ma trận sau đó sẽ tác động lên ma
Trang 31void glOrtho(GLdouble left, GLdouble right, GLdouble bottom,GLdoubletop, GLdouble near, GLdouble far);
Hình 1.14: Phép chiếu phối cảnhCác tham số có ý nghĩa tương tự như hàm glFrustum()
Phép biến đổi cổng nhìn (Viewport): Viewport là một miền hình chữ
nhật nằm trong cửa sổ (window) đang mở trên màn hình cho phép hiển thị hìnhảnh Hình ảnh của vật thể sau khi được chiếu lên khung nhìn sẽ được ánh xạ lên
Trang 32cổng nhìn Có thể định nghĩa nhiều cổng nhìn để hiển thị nhiều khung cảnh khácnhau trên cửa sổ Định nghĩa cổng nhìn ta dung hàm:
glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
Trong đó, (x, y) xác định tọa độ góc trái dưới phía dưới của cổng nhìn, tọa
độ này là tọa độ trong cửa sổ đang mở Góc trái phía dưới của cửa sổ có tọa độ là(0, 0) Hai tham số width và height xác định kích thước của khung nhìn Ở chế độmặc định, giá trị tham số của khung nhìn là (0,0,winWidth,winHeight), trong đówinWidth và winHeight là kích thước của cửa sổ nơi hiển thị khung nhìn
Sự biến đổi vị trí quan sát và vị trí vật thể
Do sự biến đổi vị trí quan sát và vị trí vật thể có liên quan tương đối vớinhau nên trong OpenGL chúng được gom vào một ma trận biến đổi (chỉ dành chovật thể) Mặc định ban đầu là điểm nhìn và vật thể ở chung một chỗ tại gốc hệtrục tọa độ và phương nhìn theo hướng âm của trục z (hướng vào bên trong mànhình)
Hình 1.15: Hệ tọa độ chuẩn trong OpenGLOpenGL cung cấp ba hàm để thay đổi góc nhìn và hướng nhìn: glTranslate*()(di chuyển), glRotate*() (quay), glScale*() (dùng để kéo dãn hoặc co nhỏ vật thể) Cáchàm này tác động lên tọa độ vật thể
Phép tịnh tiến: glTranslate{fd}(TYPE x,TYPE y,TYPE z); // Tịnh tiến môhình theo vector tịnh tiến (x, y, z)
Phép quay: glRotate{fd}(TYPE angle,TYPE x,TYPE y,TYPE z); // Quay
mô hình một góc angle ngược chiều kim đồng hồ xung quanh tia nối từ gốc tọa
độ đến điểm (x,y,z)
Trang 33Phép tỷ lệ: glScale{fd}(TYPEx,TYPE y,TYPEz); // Biến đổi tỷ lệ mô hìnhvới hệ số tỷ lệ tương ứng với ba trục ox, oy, oz lần lượt là x,y,z.
Hình 1.16: Các phép biến đổi trong OpenGL
Tạo chuyển động cho các đối tượng
Nguyên tắc chung để tạo các hình ảnh chuyển động là vẽ và xoá liên tục
các vị trí khác nhau của đối tượng chuyển động Việc phân tích, tính toán vị trícác vật rắn thuộc cơ hệ phải được thực hiện trước khi mô phỏng Quá trình môphỏng thực hiện vẽ các vị trí đã được tính toán trước Chuyển động của các vậtrắn được cập nhật theo thời gian vì vậy việc tính toán các vị trí cũng phải đượccập nhật theo thời gian
1.4 Ngôn ngữ lập trình Visual C ++ và các ứng dụng của MFC
Visual C++ là một trong các ngôn ngữ lập trình thuộc dòng Visual Studio
Trang 34tượng C++ Visual C++ ra đời khoảng những năm 1990 và ngày càng được sử dụngrộng rãi, nhất là các ứng dụng trong kỹ thuật như là lập trình nhúng, lập trình điềukhiển và lập trình mô phỏng Việc tạo ra các giao diện phức tạp và trình bày đẹpđối với Visual C++ khá là đơn giản, và đây chính là thế mạnh của Visual C++ trongviệc trợ giúp đắc lực cho người lập trình khi xây dựng những dự án lớn hoặctrong kỹ thuật lập trình hệ thống.
MFC là lớp nền tảng của Microsoft (Microsoft Foundation Classes), là mộtcông cụ mạnh trong lập trình ứng dụng cho hầu hết các lĩnh vực vì nó có giaodiện đáp ứng mọi nhu cầu của người sử dụng trong việc thiết kế các giao diện củachương trình mô phỏng
CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ BÀI TOÁN MÔ PHỎNG
CHUYỂN ĐỘNG CỦA ROBOT
2.1 Giới thiệu về Robot KUKA
Robot Kuka là sản phẩm của tập đoàn chuyên chế tạo robot công nghiệpKuka của Cộng Hoà Liên Bang Đức Sau nhiều năm nghiên cứu và chế tạo, đếnnay tập đoàn đã cho ra đời nhiều thế hệ robot công nghiệp Kuka với nhiều tínhnăng thích hợp cho từng công việc trong mỗi nhà máy Robot Kuka thuộc loạirobot nối tiếp gồm nhiều khâu nối tiếp với nhau bằng các khớp quay
Robot Kuka có nhiều chủng loại phong phú có thể làm được nhiều côngviệc khác nhau tuy nhiên chúng cùng được thiết kế trên một cơ sở Trước hết đó
là việc thực hiện bài toán động học thuận và động học ngược, đây là công việc hếtsức khó khăn trong quá trình thiết kế
Việc giải bài toán động học thuận và động học ngược là bước cơ sở choviệc thiết kế sơ bộ robot Kuka, để từ đó giải bài toán điều khiển robot theo cácquỹ đạo Từ đây, có thể có các thông số để điều khiển robot theo một quỹ đạo chotrước ta thu được một quỹ đạo chuyển động nhất định
Trong đồ án này em ứng dụng vào việc mô phỏng chuyển động của RobotKUKA ba bậc tự do với ba khớp quay Các bước mô phỏng chuyển động của
Trang 35 Bước 1: Cách tạo ra project MFC để thực hiện quá trình mô phỏng.
Bước 2: Khởi tạo và thiết lập các gói thư viện của OpenGL
Bước 3: Thiết kế mô hình trên Solidworks
Bước 4: Tính toán động học Robot
Bước 5: Mô phỏng trên OpenGL
2.2 Cách tạo ra Project MFC để thực hiện quá trình mô phỏng
Để tạo một Project MFC trên phần mềm Visual studio 6.0 ta làm như sau:Chọn File → New, sau đó chọn Tab Projects và sẽ hiện ra các Project đượclập trình trên Visual C++ 6.0 Ở đây ta chọn loại MFC AppWizard(exe) TrongProject name ta gõ tên của dự án ở đây là “RobotKUKA”:
Hình 2.1: Bắt đầu thiết lập project MFCCác bước tiếp theo để thiết lập project như sau:
liệu tại một thời điểm, chỉ có một tài liệu được mở và hiện hành, để cho ngườidùng thao tác trên nó.Trong đồ án này chủ yếu là mô phỏng hoạt động của Robotnên ta sử dụng kiểu đơn tài liệu
Trang 36Hình 2.2: Thiết lập 1
Bước 2: Ta chọn như hình vẽ ở dưới và do ứng dụng không xử lý dữ liệu
nên ở Database Support ta chọn None
Hình 2.3: Thiết lập 2
Bước 3: Ta chọn như hình vẽ dưới đây - Chọn None vì trong ứng dụng
không sử dụng tài liệu phức hợp
Trang 37Hình 2.4: Thiết lập 3
Bước 4: Đến bước số bốn ta chọn các thiết lập sau:
Docking Toolbar: Yes - Chọn thanh công cụ có gắn vào cửa sổ
Initial Status Bar: Yes - Chọn thanh trạng thái có gắn vào ứng dụng
Printing and Printer Preview: No – Không in ấn gì
3D controls: Yes – Có điều khiển nổi
Toolbars look: Normal – Dạng thanh công cụ bình thường
Hình 2.5: Thiết lập 4
Bước 5: Chọn thiết lập như sau:
MFC Standard: dạng chuẩn của MFC
Trang 38Hình 2.6: Thiết lập 5