BÀI 3 MÔ PHỎNG CHUYỂN ĐỘNG CỦA ROBOT VỚI OPENGL
lượt xem 87
download
Trong bài này, các kỹ thuật sau sẽ được giới thiệu – Đọc và hiển thị các tệp STL (được xuất ra từ AutoCAD, Solidworks…) – Sử dụng ma trận đồng nhất để hiển thị vị trí các đối tượng hình học trong không gian 3 chiều – Mô phỏng chuyển động của robot bằng OpenGL 2 .Nội dung 1. Đọc và hiển thị các tệp STL • Cấu trúc file ASCII STL • Lớp CSTL_File • Hiển thị đối tượng trong tệp STL 2. Sử dụng ma trận • Mô hình hệ mặt trời-trái đất-mặt trăng • Ma trận chuyển vị đồng nhất đồng nhất...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: BÀI 3 MÔ PHỎNG CHUYỂN ĐỘNG CỦA ROBOT VỚI OPENGL
- BÀI 3 MÔ PHỎNG CHUYỂN ĐỘNG CỦA ROBOT VỚI OPENGL 1
- Tóm tắt Trong bài này, các kỹ thuật sau sẽ được giới thiệu – Đọc và hiển thị các tệp STL (được xuất ra từ AutoCAD, Solidworks…) – Sử dụng ma trận đồng nhất để hiển thị vị trí các đối tượng hình học trong không gian 3 chiều – Mô phỏng chuyển động của robot bằng OpenGL 2
- Nội dung • Cấu trúc file ASCII STL 1. Đọc và hiển thị • Lớp CSTL_File các tệp STL • Hiển thị đối tượng trong tệp STL 2. Sử dụng ma trận • Mô hình hệ mặt trời-trái đất-mặt trăng đồng nhất trong • Ma trận chuyển vị đồng nhất mô phỏng • Sử dụng các phép dịch chuyển đơn lẻ 3. Mô phỏng • Các bước thực hiện chuyển động của • Minh họa: Mô phỏng cơ cấu 4 khâu robot bằng OpenGL • Bài tập: Mô phỏng robot Scorbot 3
- Cấu trúc file ASCII STL solid AutoCAD facet normal 1.0000000e+000 0.0000000e+000 0.0000000e+000 facet normal 0.0000000e+000 0.0000000e+000 1.0000000e+000 outer loop outer loop vertex 1.0000010e+000 1.0000000e-006 1.0000000e-006 vertex 1.0000010e+000 1.0000010e+000 1.0000010e+000 vertex 1.0000010e+000 1.0000010e+000 1.0000000e-006 vertex 1.0000000e-006 1.0000010e+000 1.0000010e+000 vertex 1.0000010e+000 1.0000010e+000 1.0000010e+000 vertex 1.0000010e+000 1.0000000e-006 1.0000010e+000 endloop endloop endfacet endfacet endsolid AutoCAD … 4
- Cấu trúc file STL Dạng văn bản Dạng nhị phân • solid name • UINT8[80] – Tiêu đề • Danh sách tam giác • UINT32 – Số tam giác – facet normal ni nj nk • Danh sách tam giác – outer loop – REAL32[3] – véc-tơ pháp • vertex v1x v1y v1z – REAL32[3] – Đỉnh 1 • vertex v2x v2y v2z – REAL32[3] – Đỉnh 2 • vertex v3x v3y v3z – REAL32[3] – Đỉnh 3 • endloop – UINT16 – Thuộc tính – endfacet • endsolid name 5
- 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ừ project AMF tại http://amff.wikispaces.com/STL+to+AMF+converter • Các thao tác chính – Đọc file STL (nhị phân & văn bản) vào bộ nhớ – Tính toán hình hộp bao – Vẽ đối tượng bằng các lệnh OpenGL 6
- Lớp CSTL_File class CSTL_File int Size() const; { bool Load(std::string filename); public: bool LoadBinary(std::string CSTL_File(void); filename); ~CSTL_File(void); bool LoadAscii(std::string bool Save(std::string filename); filename, bool Binary = true) void Draw(bool const; bModelhNormals, bool void ComputeBoundingBox bShaded); (Vec3D& pmin, Vec3D& pmax); }; 7
- Lớp CSTL_File • Đọc tệp STL vào bộ nhớ • Vẽ đối tượng bằng OpenGL bool Load(std::string filename); void Draw(bool bModelhNormals, bool bool LoadBinary(std::string bShaded); filename); bool LoadAscii(std::string filename); bModelhNormals = true: vẽ véc-tơ pháp • Tìm hình hộp chứa trọn bShaded = true: vẽ mặt vật thể trơn thay vì khung dây ComputeBoundingBox (Vec3D& pmin, Vec3D& pmax); 8
- 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.h và STL_File.cpp vào thư mục project 2. Thêm 3 file Vec3D.h, STL_File.h và STL_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(“sphere.stl”); vào trong hàm InitGraphics() để đọc tệp sphere.stl 6. Thêm hàm stl.Draw(false, false); để vẽ đối tượng 9
- Kết quả 10
- 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: – CSTL_File stl1, stl2, stl3; hoặc – CSTL_File stl[3]; 11
- 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(“sphere.stl”, Vec3D(100, 20, 50)); 12
- Câu hỏi?
- Nội dung • Cấu trúc file ASCII STL 1. Đọc và hiển thị • Lớp CSTL_File các tệp STL • Sử dụng lớp CSTL_File 2. Sử dụng ma trận • Mô hình hệ mặt trời-trái đất-mặt trăng đồng nhất trong • Ma trận chuyển vị đồng nhất mô phỏng • Sử dụng các phép dịch chuyển đơn lẻ 3. Mô phỏng • Các bước thực hiện chuyển động của • Minh họa: Mô phỏng cơ cấu 4 khâu robot bằng OpenGL • Bài tập: Mô phỏng robot Scorbot 14
- Mô hình hệ mặt trời-trái đất-mặt trăng 15
- Làm thế nào?
- Sử dụng ma trận chuyển vị đồng nhất 17
- Sử dụng ma trận chuyển vị đồng nhất 4x4 • Vẽ mặt trời glMultMatrixf( mSunMatrix.m ); glColor4f( 1.0f, 1.0f, 0.0f, 1.0f ); renderWireSphere( 1.0f, 20, 20 ); • Vẽ trái đất glMultMatrixf( mEarthMatrix.m ); glColor4f( 0.0f, 0.0f, 1.0f, 1.0f ); renderWireSphere( 1.0f, 10, 10 ); 18
- Vẽ mặt trời matrix4x4f mSunMatrix; mSunMatrix.rotate_y ( fSunSpin ); glPushMatrix(); { glMultMatrixf( mSunMatrix.m ); glColor4f( 1.0f, 1.0f, 0.0f, 1.0f ); renderWireSphere( 1.0f, 20, 20 ); } glPopMatrix(); 19
- Vẽ trái đất matrix4x4f mEarthMatrix = mEarthTranslationToOrbit; mEarthOrbitRotation * mEarthTranslationToOrbit * matrix4x4f mEarthSpinRotation; mEarthSpinRotation; matrix4x4f mEarthOrbitRotation; matrix4x4f mEarthMatrix; glPushMatrix(); { mEarthSpinRotation.rotate_y( glMultMatrixf( mEarthMatrix.m ); fEarthSpin ); glColor4f( 0.0f, 0.0f, 1.0f, 1.0f ); mEarthTranslationToOrbit.translate( vector3f(0.0f, 0.0f, -12.0f) ); renderWireSphere( 1.0f, 10, 10 ); } mEarthOrbitRotation.rotate_y( glPopMatrix(); fEarthOrbit ); 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
thiết kế phương pháp điều khiển robot tự hành dựa trên cơ sở logic mờ, chương 11
8 p | 350 | 171
-
Bài giảng Lập trình mô phỏng robot và hệ cơ điện tử ME4291: Bài 3 - PGS. Phan Bùi Khôi, TS. Phan Mạnh Dần
51 p | 166 | 33
-
Thiết kế, mô phỏng, chế tạo và điều khiển cánh tay robot 3 bậc tự do
8 p | 204 | 18
-
Hướng dẫn thực hành UNIBEST-CL+
34 p | 126 | 13
-
Bài giảng lý thuyết điều khiển tự động - Thiết kế hệ thống điều khiển liên tục part 3
8 p | 72 | 12
-
Xây dựng mô đun tính toán dòng chảy trong mô hình mô phỏng quá trình vận chuyển bùn cát trên lưu vực vừa và nhỏ (Áp dụng cho lưu vực suối sập thuộc tỉnh Sơn La)
6 p | 123 | 9
-
Nghiên cứu công nghệ sản xuất giấy chống thấm dầu mỡ, ứng dụng làm bao gói thực phẩm dạng khô
5 p | 33 | 6
-
Một phương pháp nâng cao chất lượng hệ điều khiển tay máy 3 thanh nối
6 p | 55 | 5
-
Phân tích động học và mô phỏng cơ cấu tay máy dạng chuỗi 7 bậc tự do có cấu hình linh hoạt ứng dụng trong lắp ghép cơ khí
8 p | 68 | 4
-
Kỹ thuật điều khiển dự báo cho bộ biến tần 3 - pha 3 - bậc diode kẹp
8 p | 16 | 3
-
Kết hợp phương pháp RRT và Stanley cho ô tô tự hành vào bãi đậu xe
5 p | 35 | 3
-
Thực tiễn triển khai nền tảng số hóa tập trung tại mỏ hải thạch - mộc tinh
10 p | 38 | 3
-
Ứng dụng PLC để thiết kế bộ điều khiển bám tín hiệu mô phỏng hàng hải của tổ hợp drive/động cơ servo
6 p | 38 | 2
-
Nghiên cứu thiết kế sàn dao động 3 bậc tự do cho thiết bị mô phỏng lái xe
7 p | 44 | 2
-
Lập trình mô phỏng điều động tàu biển cho phộp thử Turning Circle và Zig-zag theo tiêu chuẩn IMO
4 p | 61 | 2
-
Nghiên cứu, dự đoán cấu trúc trong quá trình đông đặc hợp kim nhôm A356 bằng mô hình MCA 2 - D & 3 - D
16 p | 24 | 1
-
Mô phỏng dòng chảy nhớt không nén được trong một miền vuông chứa vật cản trụ tròn ở tâm miền tính toán
8 p | 5 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn