1. Trang chủ
  2. » Tất cả

mo phong chuyen dong cua robot voi opengl

47 12 0

Đ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

Thông tin cơ bản

Tiêu đề Mô Phỏng Chuyển Động Của Robot Với OpenGL
Tác giả Ths. Nguyễn Xuân Hồng
Trường học Đại học Bách khoa Hà Nội
Chuyên ngành Kỹ thuật Robot và Thực tế Ảo
Thể loại Báo cáo thực tập hoặc đề cương dự án
Năm xuất bản 2015
Thành phố Hà Nội
Định dạng
Số trang 47
Dung lượng 3,38 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Theo mặc định, các phần mềm CAD không cho phép xuất ra các tọa độ âm trong file STL. Điều này là để tạo ra các file STL tương thích với các máy in khắc hình (stereolithography). • Nếu phát hiện tọa độ âm, phần mềm sẽ tự động tịnh tiến đối tượng để đảm bảo tọa độ xuất ra không âm. Điều này làm cho việc định vị đối tượng trong chương trình OpenGL có thể bị sai lệch. • Một giải pháp là trong phần mềm CAD, dịch các đối tượng sao cho tọa độ dương, ghi nhận véctơ dịch chuyển, rồi trong chương trình OpenGL sử dụng lớp CSTL_File, truyền thêm tham số véctơ này cho hàm Load() • stl.Load(“cylinder.stl”, Vec3D(1, 1.5, 0));

Trang 1

BÀI 4

MÔ PHỎNG CHUYỂN ĐỘNG CỦA

ROBOT VỚI OPENGL

Ths Nguyễn Xuân Hồng

Trang 2

Sơ đồ quy trình mô phỏng

Vẽ mô hình 3D Inventor

Visual C++

OpenGL DirectX

Thư viện đồ họa

Kích thước, hình ảnh, sơ đồ,…

Data files

STL files

Bắt đầu

Export Import

Load Solve

Connect

Add-in

Robot Simulator Programming

Dimensions

1 2

3

4

4 4

5 6

A

Trang 3

MỤC TIÊU

Có hiểu biết cơ bản về quy trình mô phỏng chuyển động.

Nắm được các kỹ thuật trong mô phỏng chuyển động Robot.

Xây dựng được chương trình mô phỏng chuyển động Robot.

Trang 4

2

3

Quy trình mô phỏng chuyển động Robot

File mô tả mô hình 3d

STL

Xây dựng chương trình

mô phỏng Robot NỘI DUNG

Trang 5

2

3

Quy trình mô phỏng chuyển động Robot

File mô tả mô hình 3d

STL

Xây dựng chương trình

mô phỏng Robot

NỘI DUNG

Trang 6

Quy trình mô phỏng chuyển động Robot

Export

Read Write

Trang 7

2

3

Quy trình mô phỏng chuyển động Robot

File mô tả mô hình 3d

STL

Xây dựng chương trình

mô phỏng Robot

NỘI DUNG

Trang 8

• UINT32 – Số tam giác

• Danh sách tam giác

Trang 9

Cấu trúc file ASCII STL

endfacet

… facet normal 0.0000000e+000 -0.0000000e+000 1.0000000e+000 outer loop

vertex 9.6074598e-002 4.0245494e+000 2.0000001e+001 vertex 9.9039274e+000 4.0245494e+000 2.0000001e+001 vertex 1.0000000e-006 5.0000010e+000 2.0000001e+001

Trang 10

Xuất mô hình 3D ra file STL trong AutoCad

 Sử dụng command STLOUT

Trang 11

Xuất mô hình 3D ra file STL trong SolidWorks

 Sử dụng chức năng SaveAs chọn STL

Trang 12

Sử dụng lớp CSTL_File

• Là một lớp đối tượng C++ dùng để thao tác các tệp STL

• Lấy từ forum của lớp

Trang 13

Nội dung lớp CSTL_File

bool Save ( std :: string filename , bool Binary = true ) const ;

void ComputeBoundingBox ( Vec3D & pmin , Vec3D & pmax );

int Size () const ;

bool Load ( std :: string filename );

bool LoadBinary ( std :: string filename );

bool LoadAscii ( std :: string filename );

void Draw ( bool bModelhNormals , bool bShaded );

Trang 14

Nội dung lớp CSTL_File

• Đọc tệp STL vào bộ nhớ

bool Load ( std :: string filename);

• Tìm hình hộp chứa trọn vật thể

void ComputeBoundingBox ( Vec3D & pmin, Vec3D &

pmax);

• Vẽ đối tượng bằng OpenGL

void Draw ( bool bModelhNormals, bool bShaded);

- bModelhNormals = true: vẽ véc-tơ pháp

- bShaded = true: vẽ mặt trơn thay vì khung dây

Trang 15

Sử dụng Lớp CSTL_File để hiển thị đối tượng trong tệp STL

1 Copy 3 file Vec3D.h , STL_File.hSTL_File.cpp vào thư

mục của project

2 Thêm 3 file Vec3D.h , STL_File.hSTL_File.cpp vào

project

3 Thêm dòng #include "STL_File.h" ở đầu chương trình

4 Thêm dòng CSTL_File stl; để khai báo biến stl

5 Thêm dòng stl.Load(“cylinder.stl”); vào trong hàm

InitGraphics() để đọc tệp cylinder.stl

6 Thêm hàm stl.Draw(false, false); để vẽ đối tượng trong

hàm DrawGraphics()

Trang 16

Minh họa sử dụng lớp CSTL_File

Trang 17

Kết quả dùng lớp CSTL_File để hiển thị khối Cylinder

Trang 18

Dùng lớp CSTL_File để vẽ nhiều đối tượng

Nếu có nhiều đối tượng trong các tệp STL khác nhau cần vẽ thì cần khai báo thêm các biến:

Trang 19

Tọa độ âm trong file STL

• Theo mặc định, các phần mềm CAD không cho phép xuất ra các

tọa độ âm trong file STL Điều này là để tạo ra các file STL tương thích với các máy in khắc hình (stereolithography).

• Nếu phát hiện tọa độ âm, phần mềm sẽ tự động tịnh tiến đối tượng

để đảm bảo tọa độ xuất ra không âm Điều này làm cho việc định vị đối tượng trong chương trình OpenGL có thể bị sai lệch.

• Một giải pháp là trong phần mềm CAD, dịch các đối tượng sao cho

tọa độ dương, ghi nhận véc-tơ dịch chuyển, rồi trong chương trình OpenGL sử dụng lớp CSTL_File, truyền thêm tham số véc-tơ này cho hàm Load()

stl.Load(“cylinder.stl”, Vec3D(1, 1.5, 0));

Trang 20

Dịch chuyển đối tượng về tọa độ âm

Trang 21

2

3

Quy trình mô phỏng chuyển động Robot

File mô tả mô hình 3d

STL

Xây dựng chương trình

mô phỏng Robot NỘI DUNG

Trang 22

Xây dựng chương trình mô phỏng Robot

Trang 23

Xây dựng chương trình mô phỏng Robot

Trang 24

Tạo project MFC Application

 Khởi động Visual Studio C++ (Visual Studio 2012)

 Vào File/New Project/MFC Application.

 Đặt tên cho Project là Bai 4.2 RobotSimulator

Trang 25

Chọn loại ứng dụng MFC

 Chọn tùy chỉnh cho Project là Single Document và MFC

Standard Rồi chọn Finish

Trang 26

Xây dựng chương trình mô phỏng Robot

Trang 27

Thêm một số lớp hỗ trợ OpenGL vào project

 Tạo một Filter OpenGL trong project

 Thêm các tệp:

 OpenGLInit.h & OpenGLInit.cpp: Chứa lớp khởi tạo OpenGL

 Color.h & Color.cpp: Chứa lớp biểu diễn màu sắc

 Light.h & Light.cpp: Chứa lớp quản lý ánh sáng

 Material.h & Material.cpp: Chứa lớp quản lý vật liệu

 Vec3D.h: Chứa các lớp tiện ích về vector 3D

Trang 28

Lớp biểu diễn màu sắc: CColor

 Biểu diễn 3 thuộc tính màu cơ bản là: Red, Green, Blue và

thuộc tính Alpha

 Hàm setData để set các giá trị màu: red, green, blue, alpha

 Hàm getData trả ra con trỏ trỏ vào màng giá trị màu

Trang 29

Lớp quản lý ánh sáng: CLight

 Gồm hàm InitLight để khởi tạo các tham số của nguồn sáng

 Khởi tạo chế độ chiếu sáng và khởi tạo nguồn sáng thứ nhất

Trang 30

Lớp quản lý vật liệu: CMaterial

 Lớp chứa các tham số màu sắc vật liệu

 Khởi tạo chế độ chiếu sáng và khởi tạo nguồn sáng thứ nhất

Trang 31

Chỉnh sửa lớp View để gọi mã OpenGL

 Thêm Include tới file OpenGLInit.h

 Khai báo biến thuộc lớp COpenGLInit trong lớp View

 Thêm các hàm xử lý các sự kiện và gọi mã opengl tương ứng:

 Chỉnh sửa nội dung hàm PreCreateWindow

 Thêm hàm xử lý sự kiện OnCreate

 Thêm hàm xử lý sự kiện OnSize

 Thêm hàm xử lý sự kiện OnEraseBkgnd

 Chỉnh sửa nội dung hàm OnDraw

 Thêm hàm xử lý sự kiện OnTimer

 Thêm hàm xử lý sự kiện OnDestroy

Trang 32

Xây dựng chương trình mô phỏng Robot

Trang 33

Thêm lớp đọc file STL vào project

 Thêm các tệp:

 STL_File.h & STL_File.cpp: Chứa lớp đọc file STL

 Vector4D.h: Chứa các lớp tiện ích về vector 4D, matrix 4D

Trang 34

Xây dựng chương trình mô phỏng Robot

Trang 35

Lớp quản lý thông tin mô hình CModel

 Lớp mô tả thông tin thuộc tính của một khâu

 Thuộc tính

 CSTL_File m_stl; Biến lưu trữ dữ liệu đọc từ file STL

 Cmaterial m_Material; Thông tin material của model

 String m_filename; Đường dẫn file STL

 Phương thức

 setModel: Tạo model từ file STL

 drawObject: Vẽ đối tượng vào OpenGL

Trang 36

Lớp quản lý thông tin Robot: CRobot

 Lớp mô tả thông tin thuộc tính của Robot

 InitData: Khởi tạo dữ liệu Robot

 ReadData: Nạp dữ liệu từ file

 CalculateData: Nạp dữ liệu từ tính toán

Trang 37

Thêm lớp CModel, CRobot vào project

 Tạo Filter Robot

 Thêm các file Model.h, Model.cpp, Robot.h, Robot.cpp

 Thêm biến lớp CRobot vào lớp COpenGLInit

 Thêm code InitRobot vào hàm OnCreate

 Thêm code Draw Robot vào hàm OnDraw

Trang 38

Khởi tạo thông tin robot

 Khởi tạo trong hàm InitData

 Nạp kích thước các khâu của robot d i

 Nạp giá trị đầu của các biến khớp q i

 Cài đặt dữ liệu các khâu từ các file STL

 Cài đặt scale cho các khâu từ scale của robot

Trang 39

Vẽ robot

 Vẽ lần lượt từng khâu của robot từ khấu đế, khâu 1, khâu 2, khâu 3

 Gọi hàm drawObject để vẽ khâu tương ứng

Trang 40

Các phép biến đổi tọa độ trong OpenGL

 OpenGL cho phép thực hiện các phép biến đổi tọa độ thông qua

các hàm

Trang 41

Xây dựng chương trình mô phỏng Robot

Trang 42

Đọc dữ liệu từ file text

 Thêm mục Read Data vào menu chính của chương trình

 Thực hiện việc chọn file dữ liệu

 Gọi hàm ReadData của lớp robot

Trang 43

Xây dựng chương trình mô phỏng Robot

Trang 44

Tính toán các biến khớp theo công thức

 Với các mô hình robot đơn giản, số bậc tự do nhỏ thì có thể tính toán

các các giá trị của biến khớp trực tiếp từ các công thức toán học

Trang 45

Quy trình mô phỏng chuyển động Robot

Robot Simulator

Trang 46

Chương trình mô phỏng chuyển động Robot

Ngày đăng: 02/03/2023, 14:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w