Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
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
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Thái Nguyên – 2009
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
LỜI CAM ĐOAN
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
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
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,
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
bản công khai và miễn phí trên mạng Internet.
Nếu sai tôi xin tôi xin hoàn toàn chịu trách nhiệm.
Thái Nguyên, ngày 10 tháng 11 năm 2009
Người cam đoan
Vũ Quang Hưng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4
LỜI CẢM ƠN
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.
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 đã
1.1.2. Thực tại ảo và các đặc tính 5
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
1.1.5. Công cụ phát triển ứng dụng thực tại ảo: 11
1.2. Động lượng vật rắn trong thực tại ảo: 13
1.2.1. Va chạm là gì? 13
1.2.2. Động lượng là gì? 15
1.2.3. Mối liên quan giữa động lượng và va chạm 15
Chương 2:
MỘT SÔ VẤN ĐỀ VỀ ĐỘNG LƢỢNG HỌC CHẤT RẮN
16
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
ii
2.2.1.1. Mô ment quán tính ( Moment of Inertia) 32
2.2.1.2. Mô ment quay (Torque) 33
2.2.1.3. Mối liên hệ giữa mô ment quán tính và mô men quay 34
2.2.1.4. Vectơ trạng thái của đối tượng 34
CAM Computer Aided Manufacturing Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
iv
DANH MỤ C CÁ C BẢNG
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
Hình 1.6 Hệ thống tập lái xe ảo 3D 9
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
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ò
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
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
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
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
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ụ
đượ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 thể hiện rõ hơn, trực quan hơn, đầy đủ hơn.
Trên thế giới việc ứng dụng công nghệ mô phỏng (thực chất là công nghệ
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
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
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
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
thành công nhất định.
“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,
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
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,
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ư
thế nào, ra làm sao, ..đó chính là va chạm:
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
nhiều những vụ va chạm có thể do cố ý (như những vụ thử xe, kiểm tra mức độ an
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
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
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.
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
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 ở
những cự ly, tốc độ, hướng,…. khác nhau và quá trình ấy có thể sẽ phải diễn ra
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
5
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
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ệ
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
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
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
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.
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
Hình 1.3 Mắt kính dùng để xem phim
Hình 1.2 Mô phỏng nội thất 3D
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
Ở đâ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
* Phần cứng:
+ 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í
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.
+ Các thiết bị đầu ra (Output devices): gồm hiển thị đồ họa (như màn hình,
HDM,..) để nhìn được đối tượng 3D nổi. Thiết bị âm thanh (loa) để nghe được âm
thanh vòm (như Hi-Fi, Surround,..). Bộ phản hồi cảm giác (Haptic feedback như
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
Hình 1.5 Các logo phim dùng 3D ảo
Hinh 1.4 Các trang phuc ảo, găng tay ảo, kính ảo
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
- 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.
- 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
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
đượ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ạ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
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
được tính phổ dụng rộng rãi.
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
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, ...
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ũng như các phần mềm tạo mô hình ba chiều khác thì Maya và 3DS Max
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
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
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
13
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
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:
1.2.1. Va chạm là gì?
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
đố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.
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
Biên giới của hệ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
Đường biên của hệ, bao quanh các vật trong các hình ấy cho ta biết rằng
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.
1.2.3. Mối liên quan giữa động lượng và va chạm
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.
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.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16
Chương 2:
MỘT SÔ VẤN ĐỀ VỀ ĐỘNG LƯỢNG HỌC CHẤT RẮN
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
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,
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
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
2
tương ứng là độ dài
theo ba trục toạ độ của hình hộp.
2.1.1.2. Phát hiện va chạm giữa hai AABB
Cho hai hộp bao AABB xác định bởi [C
1
, a
0
, a
1
, a
2
] và [C
2
, b
0
, b
1
, b
2
] với giả
sử a
i
>0, b
j
>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 (x
min1
, y
min1