Mô phỏng là làm giống như, bắt chước như… một đối tượng, hiện tượng nào đó
phục vụ được cho rất nhiều mục đích sửdụng.
Mô phỏng song song phân tán là công nghệcho phép một chương trình giảlập có
thể được thực thi song song hoặc phân tán trên một hệthống máy tính với nhiều máy tính
kết nối với nhau. Chương trình mô phỏng trên máy tính là sựtính toán đểmô tảcác thể
hiện của hệthống thật hoặc giảlập. Ngày nay, mô phỏng được ứng dụng rộng rãi trong
các nhiều mặt của cuộc sống, nhưgiáo dục, giao thông, y tế…
Với mô phỏng phân tán và mô phỏng song song, một chương trình mô phỏng có thể
thực thi trên một máy tính có nhiều bộvi xửlý nhưPC.Độlớn và phức tạp của các
chương trình giảlập ngày càng tăng theo thời gian. Trong một chương trình mô phỏng
phân tán lớn với nhiều đối tượng, một PC có thểkhông đủbộnhớvà khảnăng tính toán
đểthực hiện. Việc phân tán thực thi trên nhiều máy tính có thểgiúp tăng hiệu quảxửlý
và lưu trữhơn là làm trên một máy nhưtrên. Các máy tính có thể được phân tán trong các
vùng địa lý khác nhau, ví dụnhưtrong các phòng của một tòa nhà, trong một thành phố,
hoặc rộng hơn là trên toàn thếgiới.
143 trang |
Chia sẻ: nhungnt | Lượt xem: 3048 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
CHƯƠNG 1. Đỗ Thế Chuẩn
XÂY DỰNG HỆ THỐNG MÔ PHỎNG VÀ THỰC TẠI ẢO
SỬ DỤNG NGÔN NGỮ WAVE
XÂY DỰNG HỆ THỐNG THỰC TẠI ẢO
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
2
MỤC LỤC
CHƯƠNG 1. GIỚI THIỆU........................................................................................... 10
1.1. Giới thiệu về mô phỏng ........................................................................................10
1.2. Công nghệ WAVE ................................................................................................11
CHƯƠNG 2. NGÔN NGỮ WAVE.............................................................................. 14
2.1. Giới thiệu về ngôn ngữ Wave ...............................................................................14
2.2. Node, Link và Không gian phân tán : Knowledge Network (KN).......................14
2.3. Tổ chức chung của ngôn ngữ Wave......................................................................16
2.4. Cấu trúc dữ liệu cơ bản của Wave ........................................................................17
2.5. Biến Spatial và kiểu ..............................................................................................18
2.5.1. Task variables.................................................................................................18
2.5.2. Environment variables ...................................................................................18
2.6. Các hành động – ACTS ........................................................................................19
2.6.1. Control acts ....................................................................................................19
2.6.2. Fusion acts: Các phép toán hợp nhất..............................................................22
2.7. Rules – Các luật trong Wave ................................................................................23
2.8. Wave và mô hình lập trình truyền thống ..............................................................26
2.8.1. Sơ đồ luồng (SD)............................................................................................26
2.8.2. Wave và mô hình lập trình song song............................................................28
2.8.3. Wave và mô hình lập trình tuần tự.................................................................30
CHƯƠNG 3. CÁC BÀI TOÁN MÔ PHỎNG CƠ BẢN VÀ ĐỒ HỌA 2D ................ 38
3.1. Cách tạo thực địa...................................................................................................38
3.1.1. Thuật toán tạo lưới đơn hướng.......................................................................39
3.1.2. Thuật toán tạo lưới trên máy khác .................................................................40
3.1.3. Thuật toán tạo lưới đa hướng .........................................................................41
3.2. Các phép di chuyển cơ bản ...................................................................................43
3
3.2.1. Di chuyển tự do ..............................................................................................43
3.2.2. Di chuyển tránh chướng ngại vật ...................................................................44
3.2.3. Di chuyển vòng quanh chướng ngại vật.........................................................46
3.2.4. Nhìn trong không gian với độ sâu cho trước..................................................48
3.3. Các mô phỏng tương tác cơ bản ...........................................................................50
3.3.1. Đuổi bắt trong không gian..............................................................................50
3.3.2. Di chuyển cùng nhau kiểu tịnh tiến ...............................................................53
3.4. Hiển thị trong Java2D ...........................................................................................56
3.4.1. Giới thiệu về Java 2D.....................................................................................56
3.4.2. Giới thiệu một vài đối tượng đồ họa trong Java2D........................................57
3.4.3. Tương tác giữa chương trình hiển thị và Wave .............................................62
3.4.4. Tạo lưới ..........................................................................................................64
3.4.5. Tạo chướng ngại vật.......................................................................................69
3.4.6. Di chuyển .......................................................................................................71
CHƯƠNG 4. CÁC BÀI TOÁN MÔ PHỎNG PHỨC TẠP......................................... 75
4.1. Bài toán “Hồng cầu, Bạch cầu, Virus” .................................................................75
4.1.1. Mô tả chung....................................................................................................75
4.1.2. Hồng cầu ........................................................................................................75
4.1.3. Bạch cầu .........................................................................................................76
4.1.4. Virus ...............................................................................................................77
4.2. Bài toán “Rầy nâu” ...............................................................................................79
4.2.1. Mô tả chung....................................................................................................79
4.2.2. Chi tiết bài toán ..............................................................................................83
CHƯƠNG 5. 3D VÀ THỰC TẠI ẢO.......................................................................... 87
5.1. Giới thiệu công nghệ 3D.......................................................................................87
5.1.1. Công nghệ 3D ................................................................................................87
5.1.2. Giới thiệu về Java 3D.....................................................................................88
5.2. Chương trình GnuPlot...........................................................................................88
4
5.3. Ngôn ngữ VRML..................................................................................................90
5.3.1. Khái niệm VRML và các phiên bản của VRML ...........................................90
5.3.2. Ngôn ngữ VRML ...........................................................................................92
5.4. Sử dụng Wave và GnuPlot....................................................................................94
5.4.1. Giới thiệu chung.............................................................................................94
5.4.2. Đọc file và tạo KN .........................................................................................95
5.4.3. Cập nhật dữ liệu .............................................................................................95
5.4.4. Duyệt KN và tạo file đầu vào cho GnuPlot ...................................................95
5.5. Thực tại ảo ............................................................................................................95
5.5.1. Giới thiệu chung.............................................................................................95
5.5.2. Đọc file và tạo KN .........................................................................................96
5.5.3. Cập nhật VRML...........................................................................................103
5.5.4. Duyệt KN và tạo file VRML........................................................................104
5.5.5. Thay đổi cách nhìn .......................................................................................105
5.5.6. Hiển thị trên nhiều máy tính.........................................................................107
CHƯƠNG 6. CÀI ĐẶT VÀ THỬ NGHIỆM............................................................. 112
6.1. Cài đặt .................................................................................................................112
6.1.1. Các yêu cầu về phần cứng............................................................................112
6.1.2. Các yêu cầu về phần mềm............................................................................112
6.2. Thử nghiệm.........................................................................................................113
6.2.1. Sử dụng chương trình...................................................................................113
6.2.2. Tạo lưới thực địa ..........................................................................................115
6.2.3. Di chuyển tự do ............................................................................................116
6.2.4. Di chuyển tránh chướng ngại vật .................................................................118
6.2.5. Di chuyển vòng quanh chướng ngại vật.......................................................120
6.2.6. Di chuyển cùng nhau kiểu tịnh tiến .............................................................124
6.2.7. Hiển thị hình ảnh 3D động bằng GnuPlot....................................................124
6.2.8. Hiển thị hình ảnh 3D của tệp tin VRML......................................................126
5
6.2.9. Hiển thị hình ảnh 3D với các góc nhìn khác nhau .......................................126
6.2.10. Hiển thị hình ảnh 3D VRML trên nhiều máy...........................................128
CHƯƠNG 7. PHỤ LỤC A – WAVE CODE ............................................................. 130
7.1. Tạo lưới đơn hướng ............................................................................................130
7.2. Tạo lưới theo đa hướng.......................................................................................132
7.3. Di chuyển tự do...................................................................................................133
7.4. Di chuyển tránh chướng ngại vật ........................................................................134
7.5. Di chuyển vòng quanh chướng ngại vật .............................................................136
7.6. Nhìn trong không gian với độ sâu cho trước ......................................................138
7.7. Di chuyển cùng nhau kiểu tịnh tiến ....................................................................139
7.7.1. Chuỗi wave chạy theo ..................................................................................139
7.7.2. Chuỗi wave dẫn đầu .....................................................................................140
CHƯƠNG 8. PHỤ LỤC B – TÀI LIỆU THAM KHẢO ........................................... 142
6
MỤC LỤC HÌNH VẼ
Hình 1-1.Mô hình Wave.....................................................................................................13
Hình 2-1.Knowledge Network ...........................................................................................16
Hình 2-2.Thành phần của Spread Diagrams ......................................................................27
Hình 2-3.Tự động tách trong chuỗi Wave..........................................................................28
Hình 2-4.Một số trường hợp xử lý song song ....................................................................29
Hình 2-5.Wave xử lý song song có kèm theo Rule............................................................30
Hình 2-6.Xử lý tuần tự không Rule và có Rule..................................................................31
Hình 2-7.Wave xử lý tuần tự có Rule.................................................................................32
Hình 2-8.Một số trường hợp với mệnh đề If – else............................................................33
Hình 2-9.Một số trường hợp với mệnh đề If – else............................................................33
Hình 2-10.Else – if với filter ..............................................................................................34
Hình 2-11.Else – if parallel ................................................................................................34
Hình 2-12.Else – if với Rule...............................................................................................35
Hình 2-13.Switch................................................................................................................35
Hình 2-14.Câu lệnh lặp sử dụng Repetition .......................................................................36
Hình 2-15.Câu lệnh lặp sử dụng Recursion........................................................................37
Hình 3-1.Lưới thực địa .........................................................................................................1
Hình 3-2.Tạo lưới đơn hướng...............................................................................................1
Hình 3-3.Tạo lưới đa hướng .................................................................................................1
Hình 3-4.Di chuyển tự do .....................................................................................................1
Hình 3-5.Di chuyển tránh chướng ngại vật ..........................................................................1
Hình 3-6.Di chuyển vòng quanh chướng ngại vật................................................................1
7
Hình 3-7.Nhìn trong không gian với độ sâu cho trước ........................................................1
Hình 3-8.Đuổi bắt trong không gian.....................................................................................1
Hình 3-9.Di chuyển cùng nhau kiểu tịnh tiến ......................................................................1
Hình 3-10.Giao diện người dùng........................................................................................56
Hình 3-11.Hệ tọa độ màn hình .............................................................................................1
Hình 3-12.Vẽ đường thẳng...................................................................................................1
Hình 3-13.Vẽ hình chữ nhật .................................................................................................1
Hình 3-14.Vẽ hình elip .........................................................................................................1
Hình 3-15.Vẽ hình tròn.........................................................................................................1
Hình 3-16.Sự liên hệ giữa WAVE và chương trình hiển thị ................................................1
Hình 3-17.Lưới thực địa quy ước.........................................................................................1
Hình 3-18.Lưới thực địa trong chương trình đồ họa ..........................................................65
Hình 3-19.Lưới thực địa với gốc là tọa độ (6-1) ..................................................................1
Hình 3-20. Chướng ngại vật tại tọa độ (4,4) ......................................................................70
Hình 3-21. Chướng ngại vật được tạo liên tiếp ..................................................................71
Hình 3-22. Tạo node với tọa độ (1-1) và màu đỏ ...............................................................73
Hình 3-23.Tạo node với tọa độ (3-2) và màu xanh ............................................................73
Hình 3-24. Di chuyển node trên lưới thực địa....................................................................74
Hình 5-1.Xe đạp được thể hiện với công nghệ 2D.............................................................87
Hình 5-2.Xe đạp được thể hiện với công nghệ 3D.............................................................88
Hình 5-3.Đồ thị hàm sin(x) ................................................................................................89
Hình 5-4.Đồ thị hàm x2 + y2 hiển thị 3D............................................................................90
Hình 5-6.Khối cầu với bán kính 10 trong VRML..............................................................93
8
Hình 5-5.Tọa độ trong VRML..............................................................................................1
Hình 5-7.KN dạng cây của file VRML ................................................................................1
Hình 5-8.Sơ đồ khối thuật toán Parser .................................................................................1
Hình 5-9.Sơ đồ khối thuật toán kiểm tra một file có phải là VRML hay không..................1
Hình 5-10.KN sau khi thêm node mới .................................................................................1
Hình 5-11.Hai cách nhìn khác nhau trong VRML ...............................................................1
Hình 5-12.Cách nhìn ban đầu...............................................................................................1
Hình 5-13.Một cách nhìn khác .............................................................................................1
Hình 5-14.Hiển thị trên nhiều máy tính ...............................................................................1
Hình 5-15.Mỗi máy tính hiển thị một khu vực khác nhau ...................................................1
Hình 5-16. Đặt nút start tại một node khác node gốc...........................................................1
Hình 6-1. Chương trình hiển thị khi mới được chạy ........................................................113
Hình 6-2. Chương trình WAVE khi bắt đầu chạy...........................................................114
Hình 6-3. Lưới 5x5 ...........................................................................................................115
Hình 6-4. Cửa sổ output của Netbeans.............................................................................115
Hình 6-5. Vị trí đầu tiên 1-1 .............................................................................................116
Hình 6-6. Chạy ngẫu nhiên tới vị trí tiếp theo..................................................................116
Hình 6-7. Các bước chạy ngẫu nhiên tiếp theo ....................................................................1
Hình 6-9. Dừng khi chạy tới đích.....................................................................................118
Hình 6-8. Tiếp tục chạy ngẫu nhiên .....................................................................................1
Hình 6-10. Di chuyển qua chướng ngại vật..........................................................................1
Hình 6-11. Vượt qua chướng ngại vật và về đến đích..........................................................1
Hình 6-12. Di chuyển vòng quanh chướng ngại vật.............................................................1
9
Hình 6-13. Vòng quanh chướng ngại vật 1 vòng thì dừng...................................................1
Hình 6-14. Di chuyển tịnh tiến cùng nhau ...........................................................................1
Hình 6-15. Hình ảnh 3D trên máy thứ nhất sử dụng GnuPlot..........................................125
Hình 6-16. Hình ảnh 3D trên máy thứ hai sử dụng GnuPlot............................................125
Hình 6-17. Tệp tin VRML được hiển thị sau khi được tạo bởi KN .................................126
Hình 6-18. Các đối tượng hiển thị theo cách khác thi thay đổi Transform......................127
Hình 6-19. Một cách nhìn khác thi thay đổi Transform................