Tải bản đầy đủ (.pdf) (27 trang)

Nghiên cứu một số vấn đề về động lực học chất rắn trong xử lý va chạm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (909.16 KB, 27 trang )

1

2

ĐẠI HỌC THÁI NGUYÊN

ĐẠI HỌC THÁI NGUYÊN

KHOA CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ THÔNG TIN

Vũ Quang Hƣng

VŨ QUANG HƢNG

NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ ĐỘNG LỰC
HỌC CHẤT RẮN TRONG XỬ LÝ VA CHẠM

NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ ĐỘNG LỰC
HỌC CHẤT RẮN TRONG XỬ LÝ VA CHẠM

Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS. Đỗ Năng Toàn


Thái Nguyên – 2009

Thái Nguyên – 2009
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




3

4

LỜI CAM ĐOAN

LỜI CẢM ƠN

Tôi xin cam đoan toàn bộ nội dung bản luận văn này là do tôi tự sưu tầm,
tra cứu và sắp xếp cho phù hợp với nội dung yêu cầu của đề tài.
Nội dung luận văn này chưa từng được công bố hay xuất bản dưới bất kỳ hình

Trong thời gian làm luận văn em đã gặp phải nhiều vấn đề phức tạp, khó xử lý
do đề tài mà em nghiên cứu là khá mới mẻ và đặc biệt lại rất mới mẻ ở Việt nam
nên lại càng gặp nhiều khó khăn hơn nhất là về vấn đề tài liệu.

thức nào và cũng không được sao chép từ bất kỳ một công trình nghiên
Sau một thời gian nghiên cứu và tìm hiểu, giờ thì luận văn của em cũng đã


cứu nào.
Tất cả phần mã nguồn của chương trình đều do tôi tự thiết kế và xây dựng,

được hoàn thành lời đầu tiên em xin được trân thành cảm ơn sự giúp đỡ quí báu, sự

trong đó có sử dụng một số thư viện chuẩn và các thuật toán được các tác giả xuất

hướng dẫn nhiệt tình và sự chỉ bảo tận tụy của thày giáo PGS.TS Đỗ Năng Toàn -

bản công khai và miễn phí trên mạng Internet.

Viện Công nghệ Thông tin thuộc Viện Khoa học và Công nghệ Việt Nam là người
đã trực tiếp hướng dẫn em trong suốt thời gian làm luận văn này.

Nếu sai tôi xin tôi xin hoàn toàn chịu trách nhiệm.

Cảm ơn các thày giáo, cô giáo, các anh, chị công tác tại Phòng VRLAB – Viện
Thái Nguyên, ngày 10 tháng 11 năm 2009
Người cam đoan

Công nghệ thông tin, các thầy cô giáo công tác tại Khoa công nghệ thông tin –
ĐHTN, cùng tập thể các bạn học viên lớp cao học Khóa 6 đã luôn giúp đỡ và nhiệt
tình chia sẻ với em những kinh nghiệm học tập, nghiên cứu trong suốt khoá học.
Xin được cảm ơn Ban lãnh đạo Trường CĐCN Việt đức, cùng toàn thể các

Vũ Quang Hưng

bạn đồng nghiệp trong Khoa CNTT đã nhiệt tình tạo điều kiện giúp đỡ cả về thời
gian, vật chất và tinh thần để tôi hoàn thành được khóa học của mình.


Thái Nguyên, ngày 10 tháng 11 năm 2009
Học viên

Vũ Quang Hƣng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




i

ii

2.2.1.1. Mô ment quán tính ( Moment of Inertia)

32

2.2.1.2. Mô ment quay (Torque)

33

Trang

2.2.1.3. Mối liên hệ giữa mô ment quán tính và mô men quay


34

1

2.2.1.4. Vectơ trạng thái của đối tượng

34

4

2.2.1.5 Tính toán xung và lực ảnh hưởng

36

MỤC LỤC
PHẦN MỞ ĐẦU
Chƣơng 1:
KHÁI QUÁT VỀ THỰC TẠI ẢO VÀ ĐỘNG LƢỢNG HỌC CHẤT RẮN

2.2.2. Xử lý các hiệu ứng về méo mó, biến dạng sau va chạm

38

4

2.2.2..1. Ý tưởng thuật toán

38


1.1.1. Thế nào là thực tại ảo?

4

2.2.2.2. Hàm Open Uniform B-Splines

39

1.1.2. Thực tại ảo và các đặc tính

5

Chương 3:

40

1.1.3. Các thành phần chính trong thực tại ảo:

6

1.1.4 Ứng dụng của thực tại ảo và công cụ phát triển:

8

3.1. Bài toán

40

1.1.5. Công cụ phát triển ứng dụng thực tại ảo:


11

3.2 Xây dựng hệ thống mô phỏng tình huống giao thông

40

13

3.3. Thực nghiệm

42

1.2.1. Va chạm là gì?

13

KẾT LUẬN

44

1.2.2. Động lượng là gì?

15

TÀI LIỆU THAM KHẢO

45

1.2.3. Mối liên quan giữa động lượng và va chạm


15

Chương 2:

16

1.1.

1.2.

Khái quát về thực tại ảo (VR - Virtual Reality)

Động lượng vật rắn trong thực tại ảo:

ỨNG DỤNG THỬ NGHIỆM

MỘT SÔ VẤN ĐỀ VỀ ĐỘNG LƢỢNG HỌC CHẤT RẮN
2.1. Tính toán va chạm

16

2.1.1. Kĩ thuật phát hiện va chạm dựa vào hộp bao AABB

17

2.1.1.1. Định nghĩa hộp bao AABB

17

2.1.1.2. Phát hiện va chạm giữa hai AABB


12

2.1.2. Kỹ thuật hộp bao theo hướng (Oriented Bounding Boxes)

18

2.1.2.1. Định nghĩa hộp bao theo hướng (OBB)

18

2.1.2.2. Kiểm tra nhanh va chạm giữa hai hộp bao OBBs

20

2.1.3. Tìm điểm va chạm

25

2.1.4. Phát hiện va chạm khi các đối tượng di chuyển

31

2.2. Xử lý va chạm

31

2.2.1. Động lực học vật rắn

32


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




iii

iv

DANH MỤC CÁC BẢNG

DANH MỤC CÁC TỪ TIẾNG ANH VIẾT TẮT
VR

Virtual Reality

AABB

Axis-Aligned Bounding Boxes

OBB

Oriented Bounding Boxes

3D


3 Dimensions

Bảng 2.1

Bảng các giá trị R, R0, R1 được tính toán trước.

25

Bảng 2.2

Tính toán sẵn toạ độ của tiếp điểm trong mọi trường hợp

30

Bảng 2.3

Bảng các kí hiệu sử dụng khi xử lý hậu va chạm.

37

DANH MỤC CÁC HÌ NH VẼ
Hình 1.1

Sử dụng tay điều khiển và mũ chụp ảo

5

Hình 1.2


Mô phỏng nội thất 3D

6

Hình 1.3

Mắt kính dùng để xem phim

6

Hinh 1.4

Các trang phuc ảo, găng tay ảo, kính ảo

8

Hình 1.5

Các logo phim dùng 3D ảo

8

I

Imagination, Interactive, Immersion

Hình 1.6

Hệ thống tập lái xe ảo 3D


9

PC

Persional Computer

Hình 1.7

Mô phỏng tim người 3D,

10

Hình 1.8.

Sơ đồ động trình bày một hệ có va chạm đang xảy ra

13

Hình 1.9

Bóng va chạm với vợt, nắm đấm bị núm vào bao cát

14

Hình 2.1

Hộp bao AABB của đối tượng

17


Hình 2.2

Hộp bao OBB của đối tượng

19

Hình 2.3

Hình chiếu của P lên đường thẳng d

20

Hình 2.4

Chiếu 8 đỉnh của hình hộp lên trục cô lập d

21

Hình 2.5

Kết quả chiếu 2 hình hộp lên trục cô lập d

23

Hình 2.6

Tìm điểm va cham khi hai đối tượng tiếp xúc nhau

26


Hình 2.7

Mô ment quán tính của một số đối tượng có hình dạng cơ bản

33

Hình 2.8

Mô ment quay của đối tượng khi có lực tác dụng

34

Hình 3.1

Sơ đồ khối của hệ thống mô phỏng tình huống giao thông

40

Hình 3.2

Các thông tin về vụ va chạm

41

Hình 3.3.

Quang cảnh tình huống giao thông

42


Hình 3.4.

Chuyển động của các phương tiện qua ngã tư giao cắt

43

Hình 3.5.

Va cạnh xảy ra giữa xe con 04 chỗ và xe tải đi ngược chiều

43

CAD

Computer Aided Design

CAM

Computer Aided Manufacturing

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




1


2

công trình xây dựng đúng đắn. Trong giáo dục, những thí nghiệm, những ví dụ

PHẦN MỞ ĐẦU

được mô tả sát thực bằng máy tính giúp cho người học hứng thú hơn, kiến thức

Công nghệ thông tin đã, đang và sẽ tiếp tục trên đà phát triển mạnh mẽ của

được thể hiện rõ hơn, trực quan hơn, đầy đủ hơn.

mình, sự phát triển nhanh chóng ấy đã đem lại những thành tựu đáng kể cho nhiều

Trên thế giới việc ứng dụng công nghệ mô phỏng (thực chất là công nghệ

lĩnh vực như y tế (với các phần mềm quản lý bệnh viện, mô phỏng tim người, cơ thể

thực tại ảo) vào các lĩnh vực đã được triển khai rộng rãi và cũng đã đạt được

người, các mô cơ…), giao thông (các phần mềm trắc nghiệm thi lý thuyết lái xe,

nhiều thành quả. ở nước ta lĩnh vực này còn rất mới mẻ, nên những ứng dụng

phần mềm mô phỏng lái xe ảo, …), giáo dục (hệ thống các phần mềm quản lý, giáo

của nó còn hạn chế, không đáng kể, nó mới được một số đơn vị đầu ngành quan

án, giáo trình điện tử, website đào tạo trực tuyến,….), quốc phòng…..


tâm, tìm hiểu và phát triển trong những năm gần đây và cũng đã đạt được những

Đến nhứng năm gần đây, cũng trên đà phát triển ấy đã xuất hiện một mô hình

thành công nhất định.

phát triển mới, mà phạm vi ứng dụng của nó còn rộng lớn hơn rất nhiều so với

“Thực tại ảo” thực chất là mô phỏng thế giới thực của con người vào máy tính,

trước. Nó dự báo một tương lai có nhiều tiềm năng, một cánh cửa rộng mở, đó

mà trong đó con người có thể tương tác và cảm nhận như trong thế giới thực. Một

chính là công nghệ mô phỏng. Các vấn đề trước đây vốn rất khó có thể được trình

trong những vấn đề tương đối phức tạp của việc mô phỏng đó là mô phỏng vật rắn,

bày, được nói, hay diễn tả thì giờ đây nó đã trở nên dễ dàng hơn khi vấn đề đó được

trạng thái của chúng sau khi chịu sự tác động của ngoại lực, chúng sẽ biến đổi như

diễn tả dưới dạng hình ảnh, trực quan, sinh động, chi tiết, dễ hiểu, dễ nắm bắt và

thế nào, ra làm sao, ..đó chính là va chạm:

gần gũi, thân thiện với con người hơn, có tính thẩm mỹ cao.
Va chạm là một vấn đề khó và phức tạp để nghiên cứu, trên thực tế có rất
Hãy tưởng tưởng một ai đó đang cố gắng dùng hết khả năng và kiến thức của


nhiều những vụ va chạm có thể do cố ý (như những vụ thử xe, kiểm tra mức độ an

mình để diễn tả cho bạn về hình dạng, cấu tạo và hoạt động của quả tim. Cho dù anh

toàn của các thiết bị…) hoặc không cố ý (như những vụ tai nan giao thông), nhưng

ta có hết sức cố gắng thì tin chắc rằng bạn cũng không thể nào mà hiểu tường tận về

tất cả đều tạo ra những biến dạng, méo mó không mong muốn… và nhìn chung

vấn đề đó được. Nhưng chắc chắn với kỹ thuật mô phỏng một quả tim sẽ được tạo

chúng đều gây thiệt hại của cải vật chất hay để lại những hậu quả nghiêm trọng.

ra, hiện ngay trước mắt bạn, bạn nhìn thấy nó, với những đặc điểm màu sắc đăc
trưng, các vòng cơ và từng nhịp đập theo đúng chu kỳ. Lúc này chắc chắn bạn sẽ

Giả sử một vụ tai nạn giao thông xảy ra và công an cần dựng lai vụ tai nạn đó,
như vậy họ cần phải có đầu vào là các phương tiện có tham gia trong vụ tai nạn, tiếp

hiểu ngay bản chất của quả tim là như thế nào.

theo họ phải tiến hành thử bằng cách cho các phương tiện đó va chạm với nhau ở
Quá trình “tái tạo” các hiện tượng, sự vật trong thế giới thực trên máy tính có

những cự ly, tốc độ, hướng,…. khác nhau và quá trình ấy có thể sẽ phải diễn ra

rất nhiều tác dụng. Trong giải trí, nó sẽ giúp chúng ta xây dựng được những trò


nhiều lần. Như vậy sẽ rất mất thời gian và tốn kém. Chi bằng nên giải quyết vấn đề

chơi sống động, gần gũi với con người tạo ra sức lôi cuốn mạnh mẽ . Trong xây

theo hướng khác, tức là thay thế các vụ thử thực tế đó bằng các phép thử trên phần

dựng, việc dựng được các mô hình thực tại ảo cho phép chúng ta có cái nhìn trực

mềm máy tính với dữ liệu đầu vào lấy từ hiện trường và dữ liệu đầu vào có thể thay

quan, chính xác để có thể đưa ra những quyết định, những sáng kiến thiết kế về các

đổi được (tương đương với dữ liệu cho các phép thử), ứng với những thay đổi của

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




3

4

dữ liệu đầu vào sẽ cho những kết quả mô phỏng khác nhau. Nếu là như vậy mọi

Chương 1:


chuyện sẽ trở nên đơn giản, tiện lợi, hiệu quả và mức độ tốn kém thì bằng min….

KHÁI QUÁT VỀ THỰC TẠI ẢO VÀ
ĐỘNG LƯỢNG HỌC CHẤT RẮN

Cũng xuất phát từ những nhu cầu của thực tế như vậy và từ những thành quả
đầy hứa hẹn do thực tại ảo mang lại nên tôi đã quyết định lựa chọn đề tài: “Nghiên
cứu một số vấn đề về động lượng học chất rắn trong xử lý va chạm” để làm luận
văn tốt nghiệp.

1.1.

Khái quát về thực tại ảo (VR - Virtual Reality)
Thực tại ảo có tiềm năng ứng dụng vô cùng to lớn trong đời sống xã hội của

Luận văn Phần mở đầu, Phần kết luận và 3 chương nội dung, cụ thể:

con người và sự phát triển chung của thế giới.

Chương 1: Khái quát về thực tại ảo và động lượng học chất rắn

1.1.1. Thế nào là thực tại ảo?
Thực tại ảo ra đời vào khoảng đầu thập kỷ 90 và phát triển tập trung tại các

Chương 2: Một số vấn đề về động lượng học chất rắn

nước phương tây (chủ yếu là Mỹ và Châu âu). Thực tại ảo được định nghĩa theo

Chương 3: Ứng dụng và thử nghiệm


nhiều cách khác nhau. Xét trên phương diện chức năng để đánh giá thì có thể hiểu :
Thực tại ảo là một hệ thống mô phỏng, trong đó đồ họa máy tính được sử dụng để
tạo ra một thế giới "như thật". Hơn nữa, thế giới "nhân tạo" này không tĩnh tại, mà
lại phản ứng, thay đổi theo ý muốn (tức tín hiệu vào) của người sử dụng (nhờ hành
động, lời nói,..). Điều này xác định một đặc tính chính của Thực tại ảo, đó là khả
năng tương tác với thời gian thực (real-time interactivity). Thời gian thực ở đây
được hiểu là máy tính có khả năng nhận biết được tín hiệu vào của người sử dụng
và thay đổi ngay lập tức thế giới ảo. Người sử dụng nhìn thấy sự vật thay đổi trên
màn hình ngay theo ý muốn của họ và bị thu hút bởi sự mô phỏng này.
Tương tác và khả năng thu hút của Thực tại ảo góp phần lớn vào cảm giác
đắm chìm (immersion), cảm giác trở thành một phần của hành động trên màn hình
mà người sử dụng đang trải nghiệm. Nhưng Thực tại ảo còn đẩy cảm giác này
"thật" hơn nữa nhờ tác động lên tất cả các kênh cảm giác của con người. Trong thực
tế, người dùng không những nhìn thấy đối tượng đồ họa 3D nổi, điều khiển (xoay,
di chuyển,..) được đối tượng trên màn hình (như trong game), mà còn sờ và cảm
thấy chúng như có thật. Ngoài khả năng nhìn (thị giác), nghe (thính giác), sờ (xúc
giác), các nhà nghiên cứu cũng đã nghiên cứu để tạo các cảm giác khác như ngửi
(khứu giác), nếm (vị giác) [3],[5],[13].

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




5


6

Từ các phân tích trên, chúng ta có thể thấy định nghĩa sau đây của C. Burdea

khắp nơi một cách độc lập, người ta có thể thiết lập những áp đặt đối với việc truy

và P. Coiffet về Thực tại ảo là tương đối chính xác: VR - Thực tại ảo là một hệ

cập vào các khu vực ảo nhất định, cho phép có được nhiều mức độ tự do khác nhau

thống giao diện cấp cao giữa Người sử dụng và Máy tính. Hệ thống này mô phỏng

hay định vị điểm nhìn của người dùng, kiểm soát điểm nhìn, hoặc di chuyển trong

các sự vật và hiện tượng theo thời gian thực và tương tác với người sử dụng qua

khắp thiết kế.

tổng hợp các kênh cảm giác. Đó là ngũ giác gồm: thị giác, thính giác, xúc giác,
khứu giác, vị giác [4].
1.1.2. Thực tại ảo và các đặc tính
-

Khả năng đắm chìm (Immersion): Một hiệu ứng hết sức mạnh mẽ của

nó là khả năng tập trung sự chú ý của người sử dụng. Sự đắm chìm có nghĩa là ngăn
chặn sự xao nhãng và tập trung một cách có chọn lọc vào chính thông tin với những
Hình 1.2 Mô phỏng nội thất 3D


gì mà ta muốn làm. Khả năng tập trung vào công việc dường như là điều kiện tiên
quyết đối với sự thành công. Một thuộc tính then chốt khác của sự đắm chìm là nó

-

Tính tưởng tượng (Imagination): Thực tại ảo không chỉ là một hệ thống

có thể tác động như một thấu kính mạnh để khai thác kiến thức từ dữ kiện bằng

tương tác Người - Máy tính, mà các ứng dụng của nó còn liên quan tới việc giải

cách biến đổi nó thành kinh nghiệm. Năng lực này chính là lý do khiến cho rất

quyết các vấn đề thật trong kỹ thuật, y học, quân sự,...Các ứng dụng này do các nhà

nhiều ngành công nghiệp đang ráo riết khai phá cách sử dụng các môi trường ảo.

phát triển Thực tại ảo thiết kế, điều này phụ thuộc rất nhiều vào khả năng Tưởng
tượng của con người, đó chính là đặc tính "I" (Imagination) thứ ba của Thực tại ảo.
Do đó có thể coi Thực tại ảo là tổng hợp của ba yếu tố: Tương tác - Đắm chìm Tưởng tượng.

Hình 1.3 Mắt kính dùng để xem phim

Hình 1.1 Sử dụng tay điều khiển và mũ chụp ảo

-

Sự tương tác (Interactive): Có hai khía cạnh là sự điều hướng và động

lực học. Sự điều hướng (navigation) chỉ là khả năng của người dùng để di chuyển

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



1.1.3. Các thành phần chính trong thực tại ảo:
Một hệ thống trong thực tại ảo gồm có các thành phần chính sau [4]:
-

Các ứng dụng (Nghiên cứu – Đào tạo – Thương mại)

-

Mô hình, mô phỏng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




7

-

Phần cứng, phần mềm

-

Mạng liên kết

-


Người dùng

8

Thực tại ảo phải có khả năng mô phỏng động học, động lực học, và mô phỏng ứng
xử của đối tượng.
Nói chung, các hệ thống thực tại ảo phải xử lý mội khối lượng lớn thông tin
(đa phần là các thông tin của các đối tượng 3D do đó tốn bộ nhớ và đòi hỏi thời gian
xử lý là thời gian thực), vì thế nó đòi hỏi một lượng tài nguyên bộ nhớ RAM lớn và

Ở đây chúng ta sẽ tập trung vào tìm hiểu phần cứng và phần mềm của VR

bộ xử lý cùng các thiết bị vào ra có tốc độ cao. Vì vậy mặc dù bắt đầu nghiên cứu từ
khá lâu, xong trong một số năm gần đây thực tại ảo mới có được sự phát triền và

* Phần cứng:

mở rộng ứng dụng đáng kể.

+ Máy tính (PC hay Workstation với cấu hình đồ họa mạnh).
+ Các thiết bị đầu vào (Input devices): Bộ dò vị trí (position tracking) để xác
định vị trí quan sát. Bộ giao diện định vị (Navigation interfaces) để di chuyển vị trí

1.1.4. Ứng dụng của thực tại ảo và công cụ phát triển:
* Ứng dụng: Thực tại ảo có rất nhiều ứng dụng trong hầu như tất cả các lĩnh vực:

người sử dụng. Bộ giao diện cử chỉ (Gesture interfaces) như găng tay dữ liệu (data
-


glove) để người sử dụng có thể điều khiển đối tượng.

Giải trí: Với sự phát triển của kỹ thuật và công nghệ mô phỏng người ta

+ Các thiết bị đầu ra (Output devices): gồm hiển thị đồ họa (như màn hình,

đã có thể xây dựng các bộ phim hoạt hình 3D, mô phỏng hình dạng cây cối, đồ vật,

HDM,..) để nhìn được đối tượng 3D nổi. Thiết bị âm thanh (loa) để nghe được âm

cử động của con người kết nối với các nhân vật ảo trong máy tính, tạo dựng các kỹ

thanh vòm (như Hi-Fi, Surround,..). Bộ phản hồi cảm giác (Haptic feedback như

xảo điện ảnh, các cảnh quay sống động, chân thật mà giảm bớt được rất nhiều thời

găng tay,..) để tạo xúc giác khi sờ, nắm đối tượng. Bộ phản hồi xung lực (Force

gian và tiền bạc.

Feedback) để tạo lực tác động như khi đạp xe,...
* Phần mềm:
+ Phần mềm luôn là linh hồn của Thực tại ảo cũng như đối với bất cứ một hệ
thống máy tính hiện đại nào. Ta có thể dùng bất cứ ngôn ngữ lập trình hay phần
mềm đồ họa nào để mô hình hóa (modelling) và mô phỏng (simulation) các đối
tượng của VR. Ví dụ: như các ngôn ngữ (có thể tìm miễn phí) OpenGL, C++,

Hinh 1.4 Các trang phuc ảo, găng tay ảo, kính ảo

Java3D, VRML, X3D, ...hay các phần mềm thương mại như WorldToolKit,

PeopleShop,...
+ Phần mềm của bất kỳ Thực tại ảo nào cũng phải bảo đảm 2 công dụng
chính: Tạo hình và Mô phỏng. Các đối tượng của Thực tại ảo được mô hình hóa
nhờ chính phần mềm này hay chuyển sang từ các mô hình 3D (thiết kế nhờ các
phần mềm CAD khác như AutoCAD, 3D Studio,3D max, ..). Sau đó phần mềm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Hình 1.5 Các logo phim dùng 3D ảo

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




9

-

10

Giáo dục: Mô phỏng các thí nghiệm, các phản ứng hóa học. Xây dựng

các phần mềm mô phỏng như phần mềm tạp lái ôtô 3D, tạo cho người học có
được những cảm giác như khi lái xe thật, xử lý các tình huống thông thường, qua
đó sẽ học hỏi được các kinh nghiệm, tránh được các rủi do không mong muốn
khi đi xe thật.


Hình 1.6 Hệ thống tập lái xe ảo 3D

-

Hình 1.7 Mô phỏng tim người 3D

Y học: Việc tìm kiếm các mẫu, mô hình làm thí nghiệm (nhất là đối với

cơ thể người) là vấn đề khó khăn, do kinh phí dắt, hoặc do không có các bộ phận,
hoặc về vấn đề văn hóa dân tộc…nên việc lập các chương trình, phần mềm để mô
phỏng các bộ phận cơ thể người, các quá trình giải phẫu, các bệnh là một nhu cầu
rất cần thiết, nó không chỉ cung cấp thư viện thông tin dữ liệu cần thiết mà thông
qua đó cũng giúp cho không chỉ sinh viên, bác sĩ, mà ngay cả những người bệnh

-

Xây dựng: Người ta cũng có thể thiết kế các tòa nhà, các cao ốc, các khu

thể thao hay các khu du lịch sinh thái, hay trang bị cho bạn một hệ thống tiện nghi,
mời bạn đi thăm thú các nơi trong tòa nhà tương lai của mình, hay tính toán chi tiết
một công trình xây dựng, hoặc mô phỏng các sự cố, hiện tượng có thể xảy ra đối với
nhà của bạn trên máy tính. Đưa cho bạn những lựa chọn, hay những lời khuyên về
công trình của bạn.

nếu muốn cũng có thể tìm hiểu, vì vấn đề được trực quan hóa nên dễ hiểu và dễ
-

được nắm bắt.

Quốc phòng: Để binh lính không bị xa lạ, bỡ ngỡ với chiến trận thì cần


phải thường xuyên có những lần tập trận, mà chi phí cho việc đó là rất cao. Nếu sử
dụng các mô hình thay thế, kèm theo âm thanh và tiếng động cũng có thể tạo ra

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




11

12

được một trận tập kích mà hiểu quả đạt được là như thật và chi phí thì rất ít. Bên

Các đối tượng sau đó sẽ được bổ sung thêm xương (nếu có), tính chất bề mặt

cạnh đó, để cho binh lính có thể tiếp xúc và hiểu biết về các máy móc và thiết bị đắt

(như màu sắc, da, tóc, mắt …) và được tạo các chuyển động mô phỏng một cách

tiền thì nên xây dựng các mô hình về thiết bị đó, máy móc đó như vậy sẽ đảm bảo

sinh động các thể hiện của đối tượng trong thế giới thực.

được tính phổ dụng rộng rãi.


Khi làm việc với các phần mềm ta sẽ thao tác trên 4 khung nhìn khác nhau

Nhìn chung, với các ứng dụng đa dạng về nhu cầu thực tế công nghệ mô
phỏng đang ngày càng phát triển mạnh mẽ hơn thu hút sự quan tâm của mọi người

của đối tượng, 4 khung nhìn này sẽ cho ta nhìn được đối tượng đồng thời ở các góc
độ khác nhau.

nhất là những ai quan tâm đến sự phát triển của công nghệ nói chung và công nghệ
tin học nói riêng. Hiện nay lĩnh vực này đã bắt đầu phát triển ở nước ta; nên việc
nghiên cứu và phát triển về vấn đề này sẽ đem lại nhiều kết quả hứa hẹn trong
tương lai.
1.1.5. Công cụ phát triển ứng dụng thực tại ảo:
- Các phần mềm xây dựng mô hình:
Phần quan trọng nhất trong các hệ thống thực tại ảo chính là mô hình, mô
hình mô tả, biểu diễn một đối tượng trong thế giới thực bao gồm hình dạng bề mặt
và hoạt động của đối tượng. Ví dụ trong các phim hoạt hình 3D, mô hình là các
nhân vật, môi trường cảnh quan, động vật, rừng núi, sông nước, ...

Hình 1.7 Các khung nhìn khác nhau trong phần mềm Maya

Hiện nay, có rất nhiều phần mềm tạo mô hình ba chiều như Maya, 3DS Max,
LightWare,…song hai phần mềm phổ biến nhất là Maya và 3DS Max. Ở Việt Nam,
3DS Max quen thuộc hơn Maya. Nhưng xu thế trên thế giới các công ty chuyển
sang Maya mạnh hơn. Mô hình với Maya cho kích thước nhẹ hơn so với 3DS Max.

-

Các công cụ lập trình:


Công cụ lập trình trong các ứng dụng Thực tại ảo thường là các thư viện đồ
hoạ 3D được xây dựng sẵn, miễn phí như DirectX, OpenGL, OpenSG,

Cũng như các phần mềm tạo mô hình ba chiều khác thì Maya và 3DS Max

OpenSceneGraph. Trước đây, chúng ta hay sử dụng các thư viện OpenGL và

giúp tạo mô hình 3 chiều để mô phỏng thế giới thực. Nó có các đối tượng nguyên

DirectX, nhưng do mức độ hỗ trợ người lập trình trong các thư viện đó chưa cao

thuỷ như hình cầu, hình trụ, hình hộp, mặt phẳng, đường cong,…Từ các đối tượng

nên người ta đã mở rộng chúng thành OpenSG, OpenSceneGraph.

nguyên thuỷ này ta sử dụng các thao tác như dịch chuyển, xoay, co giãn cùng với
các kỹ thuật chỉnh sửa như cắt xén, mở rộng, thêm bớt … để tạo nên đối tượng
mong muốn trong thế giới thực.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Hai thư viện lập trình OpenSG, OpenSceneGraph được xây dựng trên nền
tảng OpenGL và đưa vào khái niệm rất mới đó là “Đồ thị ngữ cảnh” – Scene
Graphs. Theo đó, mỗi đối tượng được biễu diễn như là một cây ngữ cảnh, mỗi nút



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





13

14

có một nhân (core), nhân của mỗi nút có thể là một đối tượng geometry, đối tượng
transform, ánh sáng (light)...Việc Render một đối tượng xuất phát từ nút gốc, đi đến

Đường biên của hệ, bao quanh các vật trong các hình ấy cho ta biết rằng
trong một va chạm lý tưởng, chỉ có các nội lực (giữa các vật) là có tác dụng.

từng nút lá và thực hiện các hành động tương ứng trong quá trình duyệt cây.
Trong OpenSG hỗ trợ các hàm và các đối tượng đồ hoạ cơ sở như Light,
Geometry, Transform, Material, Windows, Viewport,... ngoài nó còn hỗ trợ cơ chế
đa luồng, lập trình hiển thị stereo. Để sử dụng được thư viện OpenSG, bạn cần dùng
bộ biên dịch FrameNet, thông thường OpenSG hay dùng với ngôn ngữ lập trình
Visual C.Net. Để biết thêm về thư viện đồ hoạ OpenSG, bạn có thể tìm hiểu và
download miễn phí OpenSG tại địa chỉ: .
1.2.

Động lượng vật rắn trong thực tại ảo:
Hình 1.9 Bóng va chạm với vợt

Nắm đấm bị núm vào bao cát

1.2.1. Va chạm là gì?
Khi một cây vợt đập vào quả bóng thì lúc bắt đầu và lúc kết thúc thực sự va
Trong ngôn ngữ hàng ngày va chạm xảy ra khi một vật va vào một vật khác,

các vật va chạm có thể là những quả bi a, một cái búa và cái đinh, một quả bóng
chày và chày đập bóng, và quá trình thường xuyên nũa là giữa các ô tô…
Vậy, va chạm là một sự kiện riêng lẻ trong đó một lực tương đối mạnh tác
dụng vào từng vật, trong hai hoặc hơn hai vật va chạm, trong một thời gian tương

chạm có thể xác định được chính xác thời gian tiếp xúc vợt – bóng (chừng 4ms) là
ngắn so với thời gian mà bóng bay tới vợt và từ vợt bay đi. Hình 1.9 cho thấy lực
tác dụng vào bóng là đủ lớn làm cho bóng bị biến dạng tạm thời. Trong va chạm
giữa nắm đấm và bao cát thì thời gian lâu và dài hơn, ta trông thấy rõ sự biến dạng
trên bao cát, và bằng cảm giác chồn của nắm tay và cánh tay dưới.

đối ngắn. Ngoài ra, có thể nêu sự rõ ràng giữa các thời gian trước, trong và sau va
chạm.

Định nghĩa chính thức của ta về va chạm không đòi hỏi sự phá vỡ không
chính thức của ta. Khi một trạm thám sát đến gần một hành tinh lớn, quay quanh nó

Biên giới của hệ

và rồi lại tiếp tục hành trình của nó với một tốc độ tăng thêm (cuộc chạm chán kiểu
ná cao su) thì đây cũng là một va chạm. Trạm thám sát và hành tinh không thực sự
“chạm vào nhau” nhưng, va chạm không đòi hỏi phải có tiếp xúc và một lực va
chạm không cần phải là một lực tiếp xúc, nó có thể đơn thuần là một lực hấp dẫn.

Trước

Đang

Sau


Hình 1.8. Sơ đồ động trình bày một hệ có va chạm đang xảy ra

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Trong vật lý có nhiều kiểu va chạm: như va chạm đàn hồi một chiều, va
chạm không đàn hồi một chiều (trong bài toán va chạm một chiều), va chạm hai
chiều.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




15

16

Chương 2:

1.2.2. Động lượng là gì?
Động lượng là một từ có nhiều nghĩa trong ngôn ngữ hàng ngày, nhưng chỉ

MỘT SÔ VẤN ĐỀ VỀ ĐỘNG LƯỢNG HỌC CHẤT RẮN

có một nghĩa chính xác trong vật lý, động lượng (p) là một vectơ và được xác định
bởi khối lượng (m) và vận tốc (v), thông thường người ta bỏ đi chữ tuyến tính và nó
được dùng để phân biệt với động lượng góc, do m là một đại lượng vô hướng,
dương nên p và v có cùng hướng.


2.1. Tính toán va chạm
Phát hiện va chạm là một trong những vấn đề trọng tâm của mỗi hệ thống
thực tại ảo. Các đối tượng trong các hệ thống thực tại ảo có những chuyển động

1.2.3. Mối liên quan giữa động lượng và va chạm

riêng của nó. Trong khi chuyển động đối tượng có thể va chạm với đối tượng khác,

Trên thực tế động lượng có ảnh hưởng trực tiếp tới chuyển động của vật, bởi lẽ
khi một vật chuyển động thì nó liên quan tới hai yếu tố đó là khối lượng và vận tốc
mà khối lượng và vận tốc lại chính là động lượng.

hoặc có thể va chạm với môi trường, chướng ngại vật,... Do vậy, mỗi hệ thống thực
tại ảo đều phải có khả năng phát hiện khi nào thì có va chạm xảy ra và có những đối
tượng nào tham gia trong lần va chạm để có những xử lý hậu va chạm thích hợp.
Trong luận văn này, tôi xem xét các đối tượng trong không gian ba chiều nên

Một vật đang chuyển động, hay đứng yên khi xảy ra va chạm thì đều làm cho
động lượng của chúng thay đổi. Sự thay đổi này còn phụ thuộc vào khối lượng của
vật và các vật trong một hệ vật. Khi xảy ra va chạm thì độ biến thiên động lượng
của vật hoặc hệ vật lại phụ thuộc vào xung lượng của lực tác dụng, ca hai vectơ này
có cùng đơn vị và cùng thứ nguyên.

khi nói đến va chạm có nghĩa là va chạm trong không gian ba chiều. Một cách đơn
giản nhất để phát hiện va chạm giữa hai đối tượng đó là kiểm tra từng mặt của đối
tượng này có cắt một mặt nào đó của đối tượng kia, cách này có ưu điểm là cho ta
chính xác điểm va chạm.
Tuy nhiên vì mỗi đối tượng 3D được tạo thành từ rất nhiều các mặt (thông
thường là các tam giác) cho nên chi phí để kiểm tra giao nhau của từng cặp mặt như

vậy là rất tốn kém về mặt thời gian, nhất là ta luôn phải đảm bảo tính thời gian thực
trong các hệ thống thực tại ảo.
Do vậy, hầu hết các hệ thống thực tại ảo đều sử dụng phương pháp gần đúng
để phát hiện va chạm, phương pháp gần đúng hay được sử dụng đó là phương pháp
dùng các hình bao quanh đối tượng [13]. Với mỗi đối tượng, ta tìm một hình bao
“thích hợp” quanh nó, việc phát hiện va chạm bây giờ được đưa về bài toán phát
hiện va chạm giữa các hình bao. Việc sử dụng hình bao gì cho đối tượng là tuỳ
thuộc vào từng hệ thống, để giảm độ phức tạp khi tính toán thì người ta hay sử dụng
các hình bao là các hình elipsoid, hình hộp, hoặc là hình cầu...

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




17

18

Đối với phương pháp phát hiện va chạm theo các hộp bao thì ta lại có hai kỹ
thuật khác nhau đó là sử dụng hộp bao có các cạnh song song với các trục toạ độ
(Axis-Aligned Bounding Boxes - AABBs) hoặc là hộp bao theo hướng của đối
tượng (Oriented Bounding Boxes - OBBs). Việc phát hiện va chạm giữa các hộp
bao AABBs được thực hiện nhanh chóng nhưng sai số lớn, trong khi đó phát hiện
va chạm giữa các hộp bao OBBs tuy phức tạp hơn nhưng cho sai số nhỏ hơn nhiều.


2.1.1. Kĩ thuật phát hiện va chạm dựa vào hộp bao AABB
2.1.1.1. Định nghĩa hộp bao AABB

a0
a
, x max 1  C 0  0
2
2
b0
b0
y min1  C 0  , y max 1  C 0 
2
2
c0
c0
z min1  C 0  , z max 1  C 0 
2
2
xmin1  C 0 

Tương tự, ta tính được (xmin2, ymin2, zmin2), (xmax2, ymax2, zmax2) là toạ độ thấp
nhất và cao nhất của hộp bao xác định bởi tâm C2. Hai hộp bao AABB va chạm
nhau nếu xảy ra một trong bốn điều kiện sau:
 (xmin1, ymin1, zmin1)  [(xmin2, ymin2, zmin2), (xmax2, ymax2, zmax2)]

AABB là hộp bao có dạng hình hộp chữ nhật có các cạnh (trục)song song với
các trục toạ độ tương ứng và bao lấy vật thể (hình 2.1).

 (xmax1, ymax1, zmax1) [(xmin2, ymin2, zmin2), (xmax2, ymax2, zmax2)]
 (xmin2, ymin2, zmin2)  [(xmin2, ymin2, zmin2), (xmax2, ymax2, zmax2)]

 (xmax2, ymax2, zmax2)  [(xmin2, ymin2, zmin2), (xmax2, ymax2, zmax2)]
Để tìm điểm va chạm, chúng ta có chọn điểm va chạm là đỉnh tương ứng với
một trong bốn trường hợp trên.
Hộp bao này rất đơn giản, dễ tạo ra và thao tác trong kiểm tra va chạm cũng
rất dễ dàng. Tuy nhiên hộp bao AABB cũng tạo ra nhiều khoảng trống giữa vật thể
và hộp bao. Khi vật thể không nằm song song với các trục toạ độ và có dạng dài thì

Hình 2.1 Hộp bao AABB của đối tượng
Hộp bao AABB bao gồm một tâm C, ba hệ số a0, a1, a2 tương ứng là độ dài

khoảng trống này càng lớn. Thực tế trong các hệ thống thực tại ảo, người ta chỉ sử
dụng kĩ thuật hộp bao AABB để giới hạn vùng va chạm, sau đó để kiểm tra và tìm
điểm va chạm chính xác hơn, người ta sẽ sử dụng kĩ thuật hộp bao theo hướng OBB

theo ba trục toạ độ của hình hộp.

sẽ được trình bày trong phần tiếp theo.

2.1.1.2. Phát hiện va chạm giữa hai AABB

2.1.2. Kỹ thuật hộp bao theo hướng (Oriented Bounding Boxes)

Cho hai hộp bao AABB xác định bởi [C1, a0, a1, a2] và [C2, b0, b1, b2] với giả
sử ai>0, bj>0, i,j = 0,1,2. Để kiểm tra va chạm, chúng ta xác định toạ độ cao nhất và
thấp nhất của mỗi hộp bao. Kí hiệu (xmin1, ymin1, zmin1), (xmax1, ymax1, zmax1) là toạ độ

2.1.2.1. Định nghĩa hộp bao theo hướng (OBB)
OBB là hộp bao AABB nhưng trục có hướng bất kỳ. OBB có ưu điểm hơn
AABB đó là giảm không gian trống giữa vật thể và hộp bao. Tuy nhiên việc tạo ra


thấp nhất và cao nhất của hộp bao có tâm C1:

và thao tác trên hộp bao loại này phức tạp hơn loại AABB nhiều, mặc dù vậy người
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




19

20

ta vẫn dùng loại hộp bao này nhiều hơn vì nó cho độ chính xác cao hơn nhiều so với

thẳng vuông góc với mặt phẳng P ở trên, đường thẳng này được gọi là trục cô lập.

hộp bao AABB (Hình 2.2).

Ta thấy rằng các hộp bao OBBs là những khối đa diện lồi, bởi vậy ta hoàn toàn có
thể áp dụng định lý trên để kiểm tra va chạm giữa chúng.

2.1.2.2. Kiểm tra nhanh va chạm giữa hai hộp bao OBBs
Cho hai hình bao OBBs xác định bởi các thông số [C0,A0,A1,A2,a0,a1,a2] và
[C1,B0,B1,B2,b0,b1,b2]. Ta thấy rằng các tình huống mà hai OBBs tiếp xúc với nhau
(không cắt nhau) chỉ có thể là một trong 6 trường hợp sau đây: mặt - mặt, mặt -


Hình 2.2 Hộp bao OBB của đối tượng


 

Một hình hộp OBB bao gồm một tâm C, ba vector A0 , A1 , A2 chỉ hướng của
hình hộp và 3 hệ số độ dài tương ứng với kích thước của hình hộp là a 0 >0, a1>0,
a2>0. Khi đó, 8 đỉnh của hình hộp sẽ được xác định như sau:

C   si ai * Ai
2

i 0

cạnh, mặt - đỉnh, cạnh - cạnh, cạnh - đỉnh, đỉnh - đỉnh. Do vậy, tập ứng cử viên các
trục cô lập chỉ tối đa là 15 trục sau:


 3 trục chỉ hướng của hộp bao thứ nhất ( Ai )


 3 trục chỉ hướng của hộp bao thứ hai ( B j )

| si | 1, i  0,1,2.

 9 trục tạo bởi tích có hướng của một trục thuộc hộp bao thứ nhất và một trục

Kỹ thuật phát hiện hộp bao theo hướng được chia làm hai mức [6]. Mức một
là kiểm tra “nhanh” xem có va chạm nào xảy ra không? Nếu không có va chạm nào
xảy ra thì hệ thống vẫn làm việc bình thường, ngược lại nếu ở mức một phát hiện có

ít nhất một va chạm xảy ra thì sẽ chuyển sang mức hai đó là tìm chính xác điểm va
chạm. Ở mức một, ta có thể kiểm tra nhanh xem có va chạm nào xảy ra không nhờ
dựa vào định lý sau đây.
Định lý 2.3.1 Hai khối đa diện lồi không giao nhau nếu có thể cô lập được chúng
bằng một mặt phẳng P thoả mãn một trong hai điều kiện sau:
 P song song với một mặt nào đó của một trong hai khối đa diện.





thuộc hộp bao thứ hai ( Ai  B j ).
Mặt khác, ta biết rằng nếu một trục là trục cô lập thì khi tịnh tiến đến vị trí
nào, nó vẫn là trục cô lập. Bởi vậy, không mất tính tổng quát ta sẽ gọi trục cô lập có
vector chỉ phương là V và đi qua tâm C0 của hộp bao thứ nhất, do vậy nó có phương






nhau hay không là kiểm tra giao nhau giữa các hình chiếu của chúng lên đường

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





Gọi P là một điểm bất kỳ, hình chiếu của P lên đường thẳng d với gốc C 0 sẽ là

đoạn thẳng C0H xác định như sau (hình 2.3).

P
d

thứ hai.

của hai khối đa diện lồi: Điều kiện cần và đủ để kiểm tra hai khối đa diện lồi có giao



với i, j = 0,1,2.

 Hoặc là P chứa một cạnh thuộc đa diện thứ nhất và một đỉnh thuộc đa diện

Từ định lý trên, ta rút ra nhận xét sau cho phép kiểm tra nhanh sự giao nhau

 

trình như sau: d = C 0 + t* V Trong đó, t là tham số. V có thể là Ai , B j hoặc Ai  B j

hc( P, d ) 

 

( P  C0 ) *V

|V |

H

C0
Hình 2.3 Hình chiếu của P lên đường thẳng d

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




21

22

Như vậy, khi chiếu 8 đỉnh của hộp bao thứ nhất lên trục cô lập d với gốc C 0 thì
sẽ thu được 4 cặp đoạn thẳng có độ dài bằng nhau nằm về hai phía so với C 0 (hình





















































|-a0* A0 * V + a1* A1 * V - a2* A2 * V |

2.4), độ dài của mỗi đoạn thẳng được xác định như sau :


( si * ai * Ai ) * V
2



hc(C 0   si * ai * Ai , d )  | i 0
|
|V |
i 0



|-a0* A0 * V + a1* A1 * V + a2* A2 * V |

|-a0* A0 * V - a1* A1 * V + a2* A2 * V |

2

(2.1)


|-a0* A0 * V - a1* A1 * V - a2* A2 * V |
}








= a0*| A0 * V | + a1*| A1 * V | + a2*| A2 * V |
Tương tự, ta xác định hình chiếu 8 đỉnh của hộp bao thứ hai lên d với gốc C 0 như
sau.
2


 
( si * bi * Bi ) * V
2


V *D

hc(C1   si * bi * Bi , d )    | i 0
|
|V |
|V |
i 0






(2.2)



Với D  C1  C 0
Hình 2.4 Chiếu 8 đỉnh của hình hộp lên trục cô lập d

Chú ý rằng, 8 đoạn thẳng này được nhóm thành 4 cặp đối xứng nhau qua C 1.
Do vậy, khoảng cách nhỏ nhất chứa 8 đoạng thẳng (2.2) sẽ có tâm là C1 và bán kính

Như vậy, khoảng cách nhỏ nhất chứa 8 đoạng thẳng (2.1) sẽ có tâm là C0 và
bán kính r0 được xác định như sau :

R1 được xác định như sau :
2


( si * bi * Bi ) * V

r1 = max { | i 0
| } Với mọi |si| = 1.
|V |

2


( si * ai * Ai ) * V


r0 = max { | i 0
| } Với mọi |si| = 1.
|V |



Đặt R1 = r1* | V | , tương tự như trên ta suy ra :





Đặt R0 = r0* | V | , ta có:












 R0 = max{ | a0* A0 * V + a1* A1 * V + a2* A2 * V |






























Hai khoảng cách trên sẽ không giao nhau nếu:

 
 

 
| a0* A0 * V + a1* A1 * V - a2* A2 * V |






R1 = b0*| B0 * V | + b1*| B1 * V | + b2*| B2 * V |.

C0C1 > r0+r1







 | V | *C0C1 > | V | *r0 + | V | *r1  R > R0 + R1 (2.3)



Trong đó: R = C0C1* | V | .

| a0* A0 * V - a1* A1 * V + a2* A2 * V |
| a0* A0 * V - a1* A1 * V - a2* A2 * V |

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




23

24





























 Xét trường hợp V = A0 :
 R0 = a0*| A0 * V | + a1*| A1 * V | + a2*| A2 * V | = a0.
 R1 = b0*| B0 * V | + b1*| B1 * V | + b2*| B2 * V | = b0*|c00| + b1*|c01| + b2*|c02|.




 R = A0 * D












 Xét trường hợp V = A0  B0 :













 R0 = a0*| A0 * A0  B0 | + a1*| A1 * A0  B0 | + a2*| A2 * A0  B0 |

















 R0 = a1*|c20| + a2*|c10|















 R1 = b0*| B0 * V | + b1*| B1 * V | + b2*| B2 * V |.

viết thành: Bi  c0i A0  c1i A1  c 2i A2 với i = 0,1,2.
Đặt :





Mặt khác : V = A0  B0 = A0  (c00 A0  c10 A1  c20 A2 ) = c10 A2  c 20 A1

Bây giờ ta sẽ giải cụ thể các phương trình trên. Với mỗi vector Bi ta có thể







Hình 2.5 Kết quả chiếu 2 hình hộp lên trục cô lập d











 R = V * D = (c10 A2  c20 A1 ) * D

A = (A0, A1, A2) và B= (B0, B1, B2)
c00 c01 c02 
C  c10 c11 c12 
c 20 c 21 c 22 



(2.4)

Ta có viết lại V dưới dạng:










V = A0  B0 = (c00 B0  c01 B1  c02 B2 )  B0 = - c01 B2  c02 B1

A0

 A0 B0 A0 B1 A0 B2 

 B = C*A  AT*B = C  C = A1 * B0 B1 B2 =  A1 B0 A1 B1 A1 B2 
A2



(2.5)

 A2 B0 A2 B1 A2 B2 

 
Từ (2.4) và (2.5) suy ra: cij  Ai * B j , hay cij chính là tích vô hướng của hai




vector Ai, Bj. Mặt khác, từ B = C*A  A = CT*B  Ai  ci 0 B0  ci1 B1  ci 2 B2

Như trong phần đầu đã nói, tập các trục cô lập ứng cử viên
  



V = { Ai , B j , Ai  B j }với i, j = 0,1,2. Để tính toán các hệ số R0, R1, R ở trên thì ta sẽ





làm minh họa cho hai trường hợp V = Ai và V = Ai  B j , các trường hợp còn lại









 B0 * V = B0 * (c01 B2  c02 B1 ) = 0


  
B1 * V = B1 * (c01 B2  c02 B1 ) = c02




 
B2 * V = B2 * (c01 B2  c02 B1 ) = -c01

 R1 = b1*|c02|+ b2*|c01|

Tiếp tục làm cho các trường hợp còn lại, ta xây dựng được bảng các giá trị cho
R, R0, R1 như sau :

được tính toán tương tự.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




25

26


V

R0

R1

R


A0


a0

b0|c00|+b1|c01|+b2|c02|

 
| A0 .D |


A1

a1

b0|c10|+b1|c11|+b2|c12|

 
| A1 .D |

đầu tiên mà các đối tượng va chạm nhau, nghĩa là thời điểm mà các đối tượng đó
tiếp xúc nhau. Điều này cũng đúng trong thế giới thực, khi mà các đối tượng va


A2

a2

b0|c20|+b1|c21|+b2|c22|

 
| A2 .D |



B0

a0|c00|+a1|c10|+a2|c20|

b0

 
| B 0 .D |

hợp kết quả mức thứ nhất cho ta biết là có va chạm xảy ra thì ta phải chuyển sang
mức hai để tìm chính xác điểm va chạm [9].
Trong các hệ thống thực tại ảo, phần lớn chúng ta chỉ quan tâm đến thời điểm

chạm nhau thì hậu quả va chạm sẽ xảy ra ngay khi chúng vừa “chạm” vào nhau. Do
vậy, chúng ta chỉ cần quan tâm đến thời điểm mà các đối tượng tiếp xúc nhau và


B1

a0|c01|+a1|c11|+a2|c21|

b1

 
| B1 .D |


B2


a0|c02|+a1|c12|+a2|c22|

b2

 
| B2 .D |



A0  B0

a1|c20|+a2|c10|

b1|c02|+b2|c01|

 
 
c10 . A2 .D  c 20 . A1 .D



A0  B1

a1|c21|+a2|c11|

b0|c02|+b2|c00|

 
 
c11 . A2 .D  c21 . A1 .D




A0  B2

a1|c22|+a2|c12|

b0|c01|+b1|c00|

 
 
c12 . A2 .D  c 22 . A1 .D



A1  B0

a0|c20|+a2|c00|

b1|c12|+b2|c11|

 
 
c 20 . A0 .D  c 00 . A2 .D

 
A1  B1

a0|c21|+a2|c01|


b0|c12|+b2|c10|

 
 
c 21 . A0 .D  c 01 . A2 .D

 
A1  B2

a0|c22|+a2|c02|

b0|c11|+b1|c10|

 
 
c 22 . A0 .D  c 02 . A2 .D



A2  B0

a0|c10|+a1|c00|

b1|c22|+b2|c21|

 
 
c 00 . A1 .D  c10 . A0 .D




A2  B1

a0|c11|+a1|c01|

b0|c22|+b2|c20|

 
 
c 01 . A1 .D  c11 . A0 .D

cạnh, cạnh - cạnh, đỉnh - mặt thì điểm tiếp xúc là duy nhất. Nhưng nếu chúng va

b0|c21|+b1|c20|

 
 
c 02 . A1 .D  c12 . A0 .D

chạm với nhau ở dạng mặt - mặt, cạnh - mặt thì sẽ có vô số điểm tiếp xúc, khi đó



A2  B2

a0|c12|+a1|c02|

Bảng2.1 Bảng các giá trị R, R0, R1 được tính toán trước.

điểm tiếp xúc đó (hình 2.6).


Hình 2.6 Tìm điểm va cham khi hai đối tượng tiếp xúc nhau
Đối với hai hộp bao, nếu chúng va chạm với nhau ở dạng đỉnh - đỉnh, đỉnh -

chúng ta chỉ cần đưa ra một điểm bất kỳ là được. Ý tưởng để tìm thời điểm va chạm
đầu tiên như sau. Mỗi khi ta thực hiện công việc kiểm tra nhanh va chạm ở mức thứ
nhất, nếu tìm được một trục cô lập thì ta sẽ ghi lại nhãn thời gian cho trục cô lập đó.

2.1.3. Tìm điểm va chạm

Nếu không tìm được một trục cô lập nào thì có nghĩa là hai hộp bao đã va chạm với

Phát hiện va chạm trong mức thứ nhất chỉ trả lời được câu hỏi có hay không

nhau, khi đó nhãn thời gian được gán cho trục cô lập ở lần kiểm tra liền trước sẽ là

một va chạm xảy ra mà không đưa ra được chính xác điểm va chạm. Trong trường

thời điểm đầu tiên mà hai hộp bao va chạm nhau, gọi T là nhãn thời gian đó. Khi
đó, ta có thế coi như R = R0+R1(thời điểm hai hình hộp tiếp xúc nhau).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





27

28

  2
  2
 min( y i )   B j .D   | c kj | a k  y j   B j .D   | c kj | a k  max( y j )

Gọi P là điểm tiếp xúc của hai hộp bao thì suy ra tồn tại một vector x = {x 0,

k 0

x1, x2} và y = {y0, y1, y2} sao cho:
2

x
i 0

i


 2

* Ai  D   y j * B j với |xi|  ai, |yj|  bj và i,j = 0,1,2.


Việc tìm điểm va chạm sẽ phụ thuộc vào trục cô lập V ở thời điểm T là trục

nào trong số 15 trục cô lập ứng cử viên. Ta xét 3 trường hợp sau.





Nhân hai vế của (6) với Ai ta thu được:

  2
 
 
xi = Ai * D   y j * Ai B j = Sign( Ai * D )*(R0+R1) +
j 0





Đặt  = Sign( Ai * D )  xi = *(R0+R1) +

2

y
j 0

j

2

b * | c
j

j 0


|) +

2

y

 (ai-*xi) +  b j * | ci j | +
j 0

y
j 0

j

j 0

j

j  0,1,2.



2
 
x j  A j .D   y k c jk

* cij . Thay các giá trị của R0,

k 0


  2
  2
min( xi )   A j .D   | c jk | bk  x j   A j .D   | c jk | bk  max( x j )

* cij Nhân cả hai vế với  ta được.

k 0

j 0

j

* cij = 0

x j [min( x j ), max( x j )]  [a j , a j ]

(2.7)

j 0







 V là vector Ai  B j : Để dễ trình bày, chúng ta sẽ làm minh hoạ cho một trường















hợp V = A0  B0 = c10 A2  c 20 A1 =  c01 B2  c02 B1 , các trường hợp khác sẽ được

Ta thấy: (ai-*xi)  0 và (b j   * Sign(cij ) * y j )  0





tính tương tự. Nhân hai vế (6) với A0  B0 ta được:

ai   * xi  0
 
b j   * Sign(cij ) * y j  0
 xi   * a i
Nếu cij  0  
 y j   * Sign(cij ) * bj

k 0


Khi đó, chọn xj thuộc đoạn sau làm điểm tiếp xúc:

2

y

 (ai-*xi) +  | cij | *(b j   * Sign(cij ) * y j ) = 0







x2*c10 - x1*c20 = ( A0  B0 ) * D +




2

y
j 0

j





* B j * (  c01 B2  c02 B1 )



 x2*c10 - x1*c20 = ( A0  B0 ) * D + y1*c02 - y2*c01

j  0,1,2.

Nếu cij = 0 (ứng với trường hợp cạnh va chạm mặt, mặt va chạm mặt). Khi đó,

(2.8)

Chú ý rằng, theo hàng 7 trong bảng 1 thì :


nhân hai vế của (2.6) với B j ta được:


Tương tự như trường hợp trên, ta tính được.

Nếu cji = 0, nhân hai vế của (6) với Ai ta có:

* cij

2






Tương tự như trên, ta có:
2

ij



 V là vector Bi :

2

R1 trong bảng 1 ở trên ta được:
xi = *(ai +

chỉ cần chọn một giá trị yj thuộc đoạn trên.

 yi   * bi
Nếu cji  0  
 x j   * Sign(c ji ) * a j



 V là vector Ai :

Mặt khác, vì |yj|  bj nên ta có: y j [min( y j ), max( y j )]  [b j , b j ] . Do vậy, ta

(2.6)

j 0


k 0




| R || ( A0  B0 ) * D | R0  R1  a1 * | c20 |  a 2 * | c10 | b1 * | c02 | b2 * | c01 |

2

yj = - B j * D   xk * ckj






R  Sign(( A0  B0 ) * D) * { a1 * | c 20 |  a 2 * | c10 | b1 * | c02 | b2 * | c01 | }

k 0

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




29





30



Tiếp điểm

x2*c10 - x1*c20 = *( a1 * | c 20 |  a 2 * | c10 | b1 * | c02 | b2 * | c01 | ) + y1*c02 - y2*c01


V

Ai

|c20|*(a1+*Sign(c20)*x1)+|c10|*(a2-*Sign(c10)*x2)+|c01|*(b2-*Sign(c01)*y2)+


Bj

xi  Sign(cij )ai

|c02|*(b1+*Sign(c02)*y1) = 0

 
A0  B0

x1  Sign(c20 )a1 , x2  Sign(c10 )a 2 , y1  Sign(c02 )b1 , y 2  Sign(c01 )b2

 
 
1
x0 
( A0  D  c00 ( B  D  c10 x1  c20 x2 )  c01 y1  c02 y 2 )
2
1  c00

 
A0  B1

x1  Sign(c 21 )a1 , x 2  Sign(c11 )a 2 , y 0  Sign(c02 )b0 , y 2  Sign(c00 )b2
 
 
1
x0 
( A0  D  c01 ( B1  D  c11 x1  c 21 x 2 )  c00 y 0  c02 y 2 )
2
1  c01

 
A0  B2

x1  Sign(c22 )a1 , x2  Sign(c12 )a 2 , y 0  Sign(c01 )b0 , y1  Sign(c00 )b1
 
 
1
x0 
( A0  D  c02 ( B2  D  c12 x1  c22 x2 )  c00 y 0  c01 y 2 )
2

1  c02

 
A1  B0

x0  Sign(c20 )a0 , x2  Sign(c00 )a 2 , y1  Sign(c12 )b1 , y 2  Sign(c11 )b2
 
 
1
x1 
( A1  D  c10 ( B0  D  c00 x0  c20 x2 )  c11 y1  c12 y 2 )
1  c102

 
A1  B1

x0  Sign(c21 )a0 , x2  Sign(c01 )a 2 , y1  Sign(c10 )b1 , y 2  Sign(c10 )b2
 
 
1
x1 
( A1  D  c11 ( B1  D  c01 x0  c21 x2 )  c10 y0  c12 y 2 )
1  c112

 
A1  B2

x0  Sign(c22 )a0 , x2  Sign(c02 )a 2 , y0  Sign(c11 )b0 , y 2  Sign(c10 )b1
 
 

1
x1 
( A1  D  c12 ( B2  D  c02 x0  c22 x2 )  c10 y0  c11 y 2 )
1  c122

 
A2  B0

x0  Sign(c10 )a0 , x1  Sign(c00 )a1 , y1  Sign(c22 )b1 , y 2  Sign(c21 )b2
 
 
1
x1 
( A2  D  c20 ( B0  D  c00 x0  c10 x1 )  c21 y 0  c22 y 2 )
2
1  c20

 
A2  B1

x0  Sign(c11 )a0 , x1  Sign(c01 )a1 , y0  Sign(c22 )b0 , y 2  Sign(c20 )b2
 
 
1
x1 
( A2  D  c21 ( B1  D  c01 x0  c11 x1 )  c20 y 0  c22 y 2 )
2
1  c21

 

A2  B2

x0  Sign(c12 )a0 , x1  Sign(c02 )a1 , y0  Sign(c21 )b0 , y1  Sign(c20 )b1
 
 
1
x1 
( A2  D  c22 ( B2  D  c02 x0  c12 x1 )  c20 y 0  c21 y1 )
2
1  c22

Đặt   Sign(( A0  B0 ) * D) , ta có (8) tương đương với :

Nhận thấy:

(2.9)

a1+*Sign(c20)*x1  0
a2-*Sign(c10)*x2  0 Từ (9) suy ra:
b2-*Sign(c01)*y2  0

a1+*Sign(c20)*x1 = 0
a2-*Sign(c10)*x2 = 0
b2-*Sign(c01)*y2 = 0

b1+*Sign(c02)*y1  0

b1+*Sign(c02)*y1 = 0

x1 = -*Sign(c20)*a1

x2 = *Sign(c10)*a2
y1 = -*Sign(c02)*b1
y2 = *Sign(c01)*b2





Để tìm x0 và y0, nhân 2 vế của (2.6) với A0 và B0 :

 
 x0  A0 * D  c00 * y 0  c01 * y1  c02 * y 02
 

c00 * x0  c10 * x1  c 20 * x 2  B0 * D  y 0

Giải hệ phương trình trên, cùng với các hệ số y1, y2, x1, x2 ở trên Ta tìm x0, y0.









 
 
1


 x0  1  c 2 A0 * D  c00 * ( B0 * D  c10 * x1  c 20 * x 2 )  c01 * y1  c02 * y 2

00

 
 
y  1  B * D  c *(A * D  c * y  c * y )  c * x  c * x
0
00
0
01
1
02
2
10
1
20
2
2
 0 1  c00
























Đối với các trường hợp V ={ A0  B1 , A0  B2 , A1  B0 , A1  B1 , A1  B2 ,

 



A2  B0 , A2  B1 , A2  B2 } cũng tính toán tương tự như trên để tìm điểm tiếp xúc.

Cuối cùng ta có bảng tổng hợp về toạ độ của tiếp điểm trong mọi trường hợp sau:

y j  Sign(cij )b j

j  0,1,2
i  0,1,2

Bảng 2.2 Tính toán sẵn toạ độ của tiếp điểm trong mọi trường hợp
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




31

32

Như vậy, trong cả hai mức phát hiện va chạm của thuật toán thì ta đều lập sẵn

Bên cạnh những yếu tố về thẩm mỹ và nội dung thì một phần không thể thiếu

được hai bảng chứa các thông tin của kết quả cần tính toán. Do vậy, quá trình phát

đó là tính thực trong mỗi hệ thống thực tại ảo, nghĩa là các hành động tương tác

hiện va chạm được thực hiện nhanh chóng, đặc biệt là ở mức thứ nhất cho phép phát

trong hệ thống càng giống với thế giới thực càng tốt và cơ sở để tạo nên tính thực

hiện nhanh xem có va chạm nào đang xảy ra hay không. Thực nghiệm cho thấy,

chính là các động cơ vật lý (Physics Engines). Các Engine vật lý được xây dựng

việc phân chia các mức phát hiện va chạm như trên cải thiện đáng kể hiệu quả xử lý


càng chi tiết thì càng làm tăng tính thực của hệ thống khi tương tác.

bởi vì trong một hệ thống thực tại ảo có rất nhiều đối tượng thì không phải lúc nào

Vì vậy, trong một số bài báo gần đây đã có nhận xét rằng tương lai của thực tại

các đối tượng cũng va chạm nhau, thậm chí là số lần va chạm có thể rất thưa.

ảo chính là vật lý, phần nhân của một hệ thống thực tại ảo chính là các động cơ vật

2.1.4. Phát hiện va chạm khi các đối tượng di chuyển

lý. Cơ sở vật lý hay được dùng nhất trong các hệ thống thực tại ảo đó là động lực

Giả sử hai đối tượng (mà ta coi như là các hình hộp) C0 và C1 chuyển động với
gia tốc khác nhau. Ta xây dựng một lớp hình hộp chứa các thông tin cần thiết về đối
tượng như: toạ độ tâm hình hộp, 3 vector chỉ hướng, độ dài của 3 chiều hình hộp,
gia tốc chuyển động, vận tốc chuyển động, trọng lượng hình hộp,…Những thông số
này còn được gọi là các thông số trạng thái của đối tượng. Khi đó các đối tượng
chuyển động với các thông số riêng của nó. Giả sử ở thời điểm t 0 ta đã có các vector
trạng thái của đối tượng, sang thời điểm t 1 > t0 vector trạng thái mới của đối tượng
có thể được tính toán bằng các phương pháp lấy tích phân số gần đúng [5]. Có hai
phương pháp tính tích phân số hay được dùng đó là phương pháp Euler và Runge–
Kutta Fourth 4. Phương pháp Euler đơn giản, sai số lớn và chỉ cho độ chính xác tốt
khi t = t1 - t0 lớn, ngược lại khi t bé thì phương pháp Runge–Kutta Fourth4 lại
cho độ chính xác cao hơn.

học vật rắn [2, 16]. Phần tiếp theo đây sẽ trình bày tổng quan về động lực học vật
rắn và ứng dụng để xậy dựng một module vật lý để mô phỏng các hậu quả xảy ra
khi hai đối tượng rắn (ô tô, xe máy,..) va chạm nhau.


2.2.1. Động lực học vật rắn
2.2.1.1. Mô ment quán tính ( Moment of Inertia)
Khi hai đối tượng rắn va chạm nhau, sẽ có một số hiệu ứng xảy ra, chẳng hạn
hai đối tượng bị bắn ra theo các hướng và vận tốc khác nhau. Tuy nhiên, bằng cảm
nhận trực quan, chúng ta thấy rằng không phải mọi đối tượng khi va chạm đều bị
ảnh hưởng như nhau, ví dụ như ảnh hưởng của hai viên bi tròn sau va chạm sẽ khác
ảnh hưởng của một viên bi tròn với một khối hộp chữ nhật. Điều đó nói lên rằng,
đặc trưng hình dạng là một nhân tố quan trọng tạo nên sự ảnh hưởng phong phú của
các đối tượng khi va chạm.

2.2. Xử lý va chạm

Một trong những đại lượng đặc trưng cho yếu tố hình dạng của đối tượng đó

Khi đã phát hiện ra có va chạm xảy ra và tìm được điểm va chạm, bước tiếp

chính là môment quán tính. Xét một đối tượng rắn có khối lượng M, mô ment quan

theo đó là xử lý hậu va chạm. Đối với hầu hết các hệ thống thực tại ảo, ngoại trừ

tính của đối tượng tính theo trục toạ độ X, Y, Z kí hiệu là Ixx, Iyy, Izz. Mô ment quán

một số ứng dụng liên quan đến vấn đề xây dựng, tái tạo và duy trì các di tích lịch sử

tính toàn phần của đối tượng (I) sẽ là tổ hợp của các mô ment quán tính thành phần.

thì phần quan trọng nhất vẫn là phát hiện va chạm và xử lý các hiệu ứng do va chạm

Hai đối tượng có hình dạng khác nhau sẽ có mô ment quán tính khác nhau. Hình 2.1


gây ra.

định nghĩa mô ment quán tính của một số đối tượng có hình dạng cơ bản [12, 16].

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




33

34

Hình 2.7 Mô ment quán tính của một số đối tượng có hình dạng cơ bản
Hình 2.8 Mô ment quay của đối tượng khi có lực tác dụng
1
2
2
M ( D y  Dz )
12
1
2
2
I yy  M ( Dx  Dz )
12

1
2
2
I zz  M ( Dx  D y )
12
I xx 

I xx  I yy 
I zz 

2.2.1.3. Mối liên hệ giữa mô ment quán tính và mô men quay

1
1
MR 2  H 2
2
12

Mối liên hệ giữa mô ment quán tính và mô ment quay khá giống với mối liên

1
MR 2
12

hệ giữa lực và gia tốc của Newton. Người ta thường ví mô ment quán tính tương tự
như khối lượng của vật, còn mô ment quay tương tự như lực tác dụng lên vật. Cụ
thể, mối liên hệ đó chính là phương trình chuyển động quay của vật rắn quanh một
 I xx



Khi đó, mô ment quán tính tổng hợp I của đối tượng là: I   0
0


0
I yy
0

0 

0 
I zz 

trục. Mô ment quay bằng mô ment quán tính nhân với gia tốc góc:
Torque  I 

(2.11)

Trong đó: - I: là mô ment quán tính

2.2.1.2. Mô ment quay (Torque)

-  : là giá tốc góc

Mô men quay là đại lượng đặc trưng cho chuyển động quay của đối tượng khi
có lực tác dụng (hình 2.8). Định nghĩa hình thức của mô ment quay là:





Torque = s  F

(2.10)

2.2.1.4. Vectơ trạng thái của đối tượng
Mỗi đối tượng sẽ được mô tả bởi một vector trạng thái bao gồm các thuộc tính:

Trong đó: - Torque: là mô ment quay

khối lượng (m), mô ment quán tính (I), vận tốc góc (  ), gia tốc góc (  ), vận tốc

- F: lực tác dụng lên đối tượng,  là tích có hướng

dài (v), gia tốc dài ( v ), vị trí (p) và hướng (R) của đối tượng. Vì các đại lượng m, I

- s: là khoảng cách từ giá của lực tác dụng đến tâm của đối tượng.

là những giá trị tĩnh nên ta chỉ cần tính toán cho những đại lượng còn lại, kí hiệu Q
là vector trạng thái của đối tượng, ta có : Q = .

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




35


36

Tại mỗi thời điểm, mỗi đối tượng được xác định bởi vector trạng thái của riêng

 Hướng của đối tượng R: Để biểu diễn hướng của đối tượng, ta sử dụng một

mình, xác định vector trạng thái cho các đối tượng chính là xác định được trạng thái

ma trận R có kích thước 33, trong đó mỗi hàng của ma trận biễu diễn một vector

cho toàn hệ thống. Nếu như không có va chạm nào xảy ra thì do vector trạng thái

đơn vị và 3 hàng của R phải vuông góc với nhau từng đôi một. Ma trận hướng R và

của đối tượng thay đối tuyến tính theo thời gian nên nếu biết được tổng lực tác dụng

vận tốc góc  = ( z, y, z) được liên hệ với nhau theo công thức sau [15]:

lên mỗi đối tượng thì việc xác định vector trạng thái tiếp theo cho mỗi đối tượng
được thực hiện dễ dàng bằng các phương pháp tích phân số.

R  R * ~

Tuy nhiên, khi có va chạm xảy ra, do sự ảnh hưởng của ngoại lực tác dụng lên
các đối tượng tham gia va chạm nên vector trạng thái của chúng sẽ không còn biến
đổi tuyến tính. Khi đó, tính toán vector trạng thái mới cho các đối tượng tham gia va
chạm trở nên phức tạp hơn nhiều. Chúng ta phải dựa vào các quy luật vật lý, mà cụ
thể là các định luật của động lực học vật rắn như đã trình bày ở trên và một số định


 0  z  y 


(3.8) với ~    z 0  x 
  y  x 0 



Từ các công thức trên, ta có thể viết gọn lại như sau:
dQ   F

 Q  v, , T * I 1 , R * ~ 
dt
 m


(2.17)

luật vật lý cơ bản khác. Từ công thức (2.10) ta thấy nếu xác định được tổng lực tác
dụng F lên mỗi đối tượng thì ta sẽ xác định được giá trị mô ment quay (T) tương

2.2.1.5 Tính toán xung và lực ảnh hưởng

ứng. Mặt khác, với mỗi đối tượng thì ta hoàn toàn có thể xác định được ngay giá trị
mô ment quán tính cho nó, bởi vậy từ (2.11) ta sẽ xác định được gia tốc góc mới
cho đối tượng. Biết được gia tốc góc mới, ta lần lượt xác định được các trạng thái

d
 Xác định vận tốc góc :
 

dt

 Xác định vận tốc dài:

(2.12)
(2.13)

dv
 v
dt

(2.15)

dp
v
dt

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

một thắc mắc đó là chúng ta có thể sử dụng các định luật quen thuộc như định luật
bảo toàn năng lượng và bảo toàn động lượng để tính lực tác dụng hay không? Câu

(2.14)

 Vị trí của đối tượng (p):

dụng tổng hợp thông qua việc tính toán xung tác dụng lên mỗi đối tượng tham gia
va chạm [7]. Liên quan đến việc tính toán lực tác dụng lên mỗi đối tượng thường có

F

m

 Xác định gia tốc dài: v =

tượng sau va chạm thì ta có thể tính được vector trạng thái của các đối tượng. Có
nhiều cách tiếp cận để tính toán lực tổng hợp, phần này sẽ trình cách tính lực tác

còn lại của đối tượng theo các định luật sau:
 Xác định gia tốc góc :  = T*I-1

Như đã nói ở trên, nếu chúng ta biết được lực tổng hợp tác dụng lên mỗi đối

trả lời là không, trước khi giải tại sao lại như vậy, chúng ta quy ước các kí hiệu sử
dụng trong phần này như sau.

(2.16)



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




37

38

Ý nghĩa


2.2.2. Xử lý các hiệu ứng về méo mó, biến dạng sau va chạm

a

Đối tượng a va chạm với đối tượng b

2.2.2..1. Ý tưởng thuật toán

b

Đối tượng b va chạm với đối tượng a

Kí hiệu

Giả sử ta đang xét trong không gian R3, mỗi khi hai đối tượng A, B va chạm

Ma

Khối lượng của đối tượng a

nhau, bằng cách sử dụng kỹ thuật phát hiện OBB để phát hiện va chạm và lấy thông

Mb

Khối lượng của đối tượng b

tin về điểm va chạm, tiếp theo chúng ta cần phải xứ lý thêm hiệu ứng méo mó, biến

Vaix, Vafx


Vận tốc dài theo trục x của đối tượng a trước và sau va chạm

dạng của các đối tượng tham gia va chạm. Một cách tiếp cận cho vấn đề này đó là

Vaiy, Vafy

Vận tốc dài theo trục y của đối tượng a trước và sau va chạm

Vaiz, Vafz

Vận tốc dài theo trục z của đối tượng a trước và sau va chạm

Vbix, Vbfx

Vận tốc dài theo trục x của đối tượng b trước và sau va chạm

Vbiy, Vbfy

Vận tốc dài theo trục y của đối tượng b trước và sau va chạm

Vbiz, Vbfz

Vận tốc dài theo trục z của đối tượng b trước và sau va chạm

Iaxx, Iayy, Iazz

Mô men quán tính của đối tượng a theo các trục xx, yy, zz

Ibxx, Ibyy, Ibzz


Mô men quán tính của đối tượng b theo các trục xx, yy, zz
Mô men quán tính của đối tượng theo cả ba trục

I

sử dụng kĩ thuật bóp méo tự do [10, 17] (Free Form Deformation).
Với mỗi đối tượng, tìm một hình bao AABB bao quanh nó
 Trên hình bao AABB này, ta lập một lưới (lattice) các điểm điều khiển. Số
lượng các điểm điều khiển trên mỗi chiều là tuỳ ý, giả sử chúng là N u,Nv,Nw
 Tổng số điểm điều khiển N = Nu*Nv*Nw
 Từ các điểm điều khiển này, ta xây dựng một đường bao B-Splines 3D, đều,
tuần hoàn đi qua các điểm điều khiển trên.
 Với mỗi đối tượng, bổ sung một thuộc tính về độ cứng của chúng (stiff)
 Khi hai đối tượng A, B va chạm nhau, ta sẽ lấy được thông tin về điểm va

Waix, Wafx

Vận tốc góc theo trục x của đối tượng a trước và sau va chạm

Waiy, Wafy

Vận tốc góc theo trục y của đối tượng a trước và sau va chạm

Waiz, Wafz

Vận tốc góc theo trục z của đối tượng a trước và sau va chạm

Wbix, Wbfx

Vận tốc góc theo trục x của đối tượng b trước và sau va chạm


Wbiy, Wbfy

Vận tốc góc theo trục y của đối tượng b trước và sau va chạm

mối quan hệ giữa lực với độ cứng của lò xo. Vì vậy, ta có thể áp dụng mối

Wbiz, Wbfz

Vận tốc góc theo trục z của đối tượng b trước và sau va chạm

liên hệ này để tính toán độ chuyển dịch cho điểm điều khiển.

chạm và xung ảnh hưởng lên mỗi đối tượng. Từ điểm va chạm, ta tìm các
điểm điều khiển gần điểm va chạm trong phạm vị bán kính R. Sau đó xác
định độ chuyển dịch cho các điểm điều khiển này dưới tác dụng của xung
vừa tính được. Mối liên hệ giữa xung và độ cứng của đối tượng tương tự như

F

Lực tác dụng lên đối tượng sau va chạm

J

Xung tác dụng lên đối tượng sau va chạm

tục tính toán sự ảnh hưởng của các điểm thuộc bề mặt đối tượng theo nguyên

e


Hệ số đàn hồi của hai đối tượng rắn (0  e  1)

lý của các hàm B- Splines.

 Khi đã tính toán được độ chuyển dịch cho các điểm điều khiển, chúng ta tiếp

Bảng 2.3 Bảng các kí hiệu sử dụng khi xử lý hậu va chạm

Để có thể hiệu rõ thuật toán bóp méo tự do sử dụng hàm B-Splines 3D, tuần
hoàn, phần tiếp theo ta sẽ đi giới thiệu chi tiết về các loại hàm B-Splines [1, 18].

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




39

40

Chương 3

2.2.2.2. Hàm Open Uniform B-Splines

ỨNG DỤNG THỬ NGHIỆM


Trong số các đường cong phổ biến (Beirier, B-Splines,..) thì đường cong BSplines có nhiều ứng dụng nhất. Với một tập các điểm điều khiển cho trước, chỉ duy
nhất đường cong B-Splines có tính chất thay đổi cục bộ, nghĩa là khi ta dịch chuyển
một điểm điều khiển nào đó thì chỉ một số đoạn cong liền kề bị thay đổi, đối với các
đường cong khác, khi thay đổi điểm điều khiển thì toàn bộ đường cong đều bị thay
đổi. Vì tính chất mềm dẻo như vậy nên đường cong B-Splines rất hay được dùng
trong các kỹ thuật xử lý ảnh như bóp méo, biến đổi Morphing,…

3.1. Bài toán
Trong phần này luận văn xây dựng một chương trình mô phỏng một tình hống
giao thông đường bộ trong đó có các đối tượng tham gia giao thông cùng qua một
ngã tư
Trong ứng dụng mô phỏng này ta cần sử dụng các mô hình
- Mô hình về hạ tầng giao thông đường bộ
- Mô hình về các phương tiện tham gia giao thông trong bài toán:
+ Mô hình xe cảnh sát
+ Mô hình xe tải
+ Mô hình xe con 04 chỗ ngồi

3.2 Xây dựng hệ thống mô phỏng tình huống giao thông

Hình 3.1 Sơ đồ khối của hệ thống mô phỏng tình huống giao thông

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





41

42

Hệ thống mô phỏng thử nghiệm tình huống tham gia giao thông sử dụng ngôn

Khối thứ ba là khối “Xử lý va chạm”, khối này nhận đầu vào là các thông tin

ngữ lập trình Visual C.Net, thư viện đồ hoạ OpenSG. Trong hệ thống này có sử

về vụ va chạm và tính toán sự thay đổi về các trạng thái mới cho các đối tượng liên

dụng thư viện mã nguồn mở cài [9] đặt thuật toán phát hiện va chạm sử dụng hộp

quan đến vụ va chạm. Trong khối này cài đặt các hàm xử lý hậu va chạm sử dụng

bao OBB. Các mô hình ô tô được lấy từ [12]. Sơ đồ khối của hệ thống mô phỏng
các tình huống giao thông như hình 3.1

các cơ sở vật lý như đã trình bày trong chương 3. Cuối cùng, toàn bộ thông tin về
trạng thái hiện thời của các đối tượng cùng với những dữ liệu về hình dạng 3D của

Trong sơ đồ này, khối đầu tiên đó là khối “Tính toán vector trạng thái mới”

chúng sẽ được hiển thị ra màn hình thông qua khối “Render”.

được cài đặt các phương pháp tính tích phân gần đúng bằng hai phương pháp Euler
và Runge Kutte 4. Ta có thể sử dụng một trong hai hàm đã được cài đặt trong khối


3.3. Thực nghiệm

đó để tính toán vector trạng thái mới từ tập vector trạng thái hiện tại.
Khối thứ hai là khối “Dò tìm va chạm” cài đặt phương pháp phát hiện va chạm
bằng hộp bao OBB (Object Boungding Boxes). Nếu không có va chạm nào ra thì
khối này trả về giá trị FALSE, ngược lại khối trả về giá trị TRUE đồng thời cung

Đây là giao diện chính của chương trình thử nghiệm mô phỏng tình huống
giao thông tại ngã tư giao cắt. Chương trình sẽ mô phỏng quá trình va chạm giữa xe
tải và xe con 04 chỗ trong một khung cảnh đã tạo sẵn.

cấp một số thông tin về vụ va chạm như sau:
 Hai đối tượng va chạm nhau: body0, body1.
 Điểm tiếp xúc của va chạm (contactPoint): là điểm đầu tiên mà hai đối
tượng va chạm nhau.
 Vector pháp tuyến normal có gốc là điểm tiếp xúc, hướng từ body0 sang
body1 và vuông góc với mặt va chạm của body0.
 Khoảng cách mà hai đối tượng thâm nhập vào nhau: penatrate > 0
Toàn cảnh thông tin về vụ va chạm được biễu diễn như trong hình 4.2

Hình 3.2 Các thông tin về vụ va chạm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



Hình 3.3. Quang cảnh tình huống giao thông

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





×