Ứng dụng thư viện đồ họa OpenGL trong mô phỏng động học của rô-bốt

MỤC LỤC

Thư viện đồ họa OpenGL

  • Đặc điểm của OpenGL
    • Các bước tổng quan khi xây dựng ứng dụng đồ hoạ với thư viện OpenGL .1 Khởi tạo môi trường hỗ trợ cho OpenGL

      Trong kỹ thuật thì việc sử dụng các ứng dụng của OpenGL cũng như DirectX vào việc mô phỏng cá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ũng như 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). Tuy nhiê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. 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ương trình, menu, xử lý đầu vào: bàn phím, chuột.

      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ành khá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. • Điều khiển Rendering (Control Rendering): Sau khi thiết lập và lựa chọ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ải thự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ác việ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.

      Nếu hệ thống chỉ hỗ trợ một bộ đệm, những phần vẽ đầu của khung hì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. • Sử dụng các lệnh trong các phần mềm đó để xuất đối tượng ba chiều ra cá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. Quan sát đối tượng gồm các thao tác: Xác đinh vị trí quan sát, hướng quan sá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.

      Viewing Volume xác định cách thức mà vật thể được chiếu lên màn hình là phép chiếu phối cảnh (prespective projection) hay phép chiếu trực giao (Orthographic Projection) và phần nào của đối tượng được hiển thị.

      Hình 1.4: Cơ chế hoạt động của OpenGL
      Hình 1.4: Cơ chế hoạt động của OpenGL

      PHÂN TÍCH, THIẾT KẾ BÀI TOÁN MÔ PHỎNG CHUYỂN ĐỘNG CỦA ROBOT

      • Tính toán động học Robot

        Bước 1: Chọn Single Document Interface : đây là loại giao diên đơn tài 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ười dùng thao tác trên nó.Trong đồ án này chủ yếu là mô phỏng hoạt động của Robot nên ta sử dụng kiểu đơn tài liệu. 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. Sau khi khởi tạo xong ta chạy thử chương trình thì thu được giao diện của một project MFC cơ bản như hình vẽ dưới đây.

        Mặc dự chưa xõy dựng code chương trình nhưng MFC đã cung cấp sẵn giao diện của một ứng dụng chuẩn trong môi trường Windows. Mà Visual C++ là một ngôn ngữ lập trình hướng đối tượng, cho nên mọi ứng dụng đều được xây dựng trên cơ sở của các lớp. • CView: là lớp hiển thị của ứng dụng (View Class), có nhiệm vụ cung cấp một hay nhiều View (khung) cho tài liệu.

        Trong chương trình mô phỏng ta sẽ cần sử dụng rất nhiều trong lớp này để khởi tạo cho OpenGL và các thao tác vẽ lại trên lớp này. • CMainFrame: là lớp khung (Frame Class) của ứng dụng và có nhiệm vụ hiển thị và truyền lệnh của người dùng. Mục đích chính của chương trình là mô phỏng quá trình hoạt động của Robot, vì vậy cần thiết phải có một môi trường đồ họa.

        Khi mới tạo ra một dự án MFC thì ứng dụng chỉ cung cấp cho ta khung giao diện chuẩn dạng cửa sổ, và môi trường làm việc chủ yếu là thao tác với cơ sở dữ liệu. Để tạo được ngữ cảnh biểu diễn của OpenGL thì trước tiên ta phải include tất cả các tập thư viện của OpenGL vào trong Project này đó là: “opengl32.lib glu32.lib glut32.lib”. Như vậy ta đã tiến hành xong quá trình khởi tạo, tại ra môi trường đồ họa để có thể thực hiện các thao tác mô phỏng.

        Sau khi thực hiện các thao tác trên, nếu chạy chuơng trình thì vẫn chưa có gì mặc dù OpenGL đã được khởi tạo. Đó là một số hàm được sử dụng trong khởi tạo và thiết lập các gói thư viện của OpenGL trên ứng dụng MFC, bước tiếp theo là chúng ta phải đi vào xây dựng chương trình mô phỏng của Robot sau khi đã thiết kế mô hình trên Solidworks và vẽ lại trên OpenGL theo quỹ đạo đã được tính toán và số hóa. Sau khi thiết kế xong lưu các file dưới dạng *.STL và lưu trong thư mục Model để quản lý và sử dụng trong chương trình mô phỏng.

        Tính toán động học ngược Robot, mục đích của bài toán này là từ tọa độ của một điểm trong không gian làm việc cần phải tính ra vị trí các khâu để tay máy với tới được điểm đó (cụ thể là tính ra các góc thêta). Sau khi thực hiện xong các bước ở trên như khởi tạo một Project MFC và include các gói thư viện của OpenGL em đã xây dựng được chương trình mô phỏng hoạt động của Robot với các giao diện được đưa ra ở chương 3.

        Hình 2.1:  Bắt đầu thiết lập project MFC Các bước tiếp theo để thiết lập project như sau:
        Hình 2.1: Bắt đầu thiết lập project MFC Các bước tiếp theo để thiết lập project như sau:

        CHƯƠNG TRÌNH MÔ PHỎNG

        Giao diện tổng quan của chương trình

        • Chọn một trong các phương trình quỹ đạo như: Gap khuc 3D, Canh hoa, Ellipse, Hinh Sin, Hinh tron, Duong thang. • Có thể thay đổi các tham số a, b, c tương ứng trong các phương trình quỹ đạo để thay đổi quỹ đạo chuyển động.

        Robot vẽ theo quỹ đạo đường gấp khúc 3D