Luận văn 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

Tài liệu Luận văn 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: 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 2 ĐẠ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 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 NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS. Đỗ Năng Toàn 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...

pdf54 trang | Chia sẻ: haohao | Lượt xem: 993 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn 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, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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 2 ĐẠ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 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 NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS. Đỗ Năng Tồn 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 tồ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 tố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 hồn tồ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 đã được hồ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ự 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 Tồn - 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. 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 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 khố học. Xin được cảm ơn Ban lãnh đạo Trường CĐCN Việt đức, cùng tồn thể các 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 hồ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 i MỤC LỤC Trang PHẦN MỞ ĐẦU 1 Chƣơng 1: KHÁI QUÁT VỀ THỰC TẠI ẢO VÀ ĐỘNG LƢỢNG HỌC CHẤT RẮN 4 1.1. Khái quát về thực tại ảo (VR - Virtual Reality) 4 1.1.1. Thế nào là thực tại ảo? 4 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 tố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 2.2.1.5 Tính tốn xung và lực ảnh hưởng 36 2.2.2. Xử lý các hiệu ứng về méo mĩ, biến dạng sau va chạm 38 2.2.2..1. Ý tưởng thuật tốn 38 2.2.2.2. Hàm Open Uniform B-Splines 39 Chương 3: ỨNG DỤNG THỬ NGHIỆM 40 3.1. Bài tốn 40 3.2 Xây dựng hệ thống mơ phỏng tình huống giao thơng 40 3.3. Thực nghiệm 42 KẾT LUẬN 44 TÀI LIỆU THAM KHẢO 45 Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên iii 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 I Imagination, Interactive, Immersion PC Persional Computer 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 iv DANH MỤC CÁC BẢNG Bảng 2.1 Bảng các giá trị R, R0, R1 được tính tốn trước. 25 Bảng 2.2 Tính tố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 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 Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 1 PHẦN MỞ ĐẦU Cơng nghệ thơng tin đã, đang và sẽ tiếp tục trên đà phát triển mạnh mẽ của 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 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ể 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, 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 án, giáo trình điện tử, website đào tạo trực tuyến,….), quốc phị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 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 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ở, đĩ 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 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 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à gần gũi, thân thiện với con người hơn, cĩ tính thẩm mỹ cao. 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 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 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ề 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 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ẽ hiểu ngay bản chất của quả tim là như thế nào. 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ĩ 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 tồ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 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 đề 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 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 đổ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 3 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 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…. 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. Luận văn Phần mở đầu, Phần kết luận và 3 chương nội dung, cụ thể: Chương 1: Khái quát về thực tại ảo và động lượng học chất rắn Chương 2: Một số vấn đề về động lượng học chất rắn Chương 3: Ứng dụng và thử nghiệm Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 4 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. 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 con người và sự phát triển chung của thế giới. 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 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 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. Ngồ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 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ĩ 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 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 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. - 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 Hình 1.1 Sử dụng tay điều khiển và mũ chụp ảo Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 6 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 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 hay định vị điểm nhìn của người dùng, kiểm sốt điểm nhìn, hoặc di chuyển trong khắp thiết kế. - Tính tưởng tượng (Imagination): Thực tại ảo khơng chỉ là một hệ thố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 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à 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 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++, 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 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à 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à mở rộng ứng dụng đáng kể. 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: - 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ĩ 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, 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ỹ 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 gian và tiền bạc. 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 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. - Hình 1.6 Hệ thống tập lái xe ảo 3D Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 10 - 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 tố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. - 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 Hình 1.7 Mơ phỏng tim người 3D 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 12 Các đối tượng sau đĩ sẽ được bổ sung thêm xương (nếu cĩ), tính chất bề mặ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 sinh động các thể hiện của đối tượng trong thế giới thực. 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 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. - 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, OpenSceneGraph. Trước đây, chúng ta hay sử dụng các thư viện OpenGL và DirectX, nhưng do mức độ hỗ trợ người lập trình trong các thư viện đĩ chưa cao nên người ta đã mở rộng chúng thành OpenSG, OpenSceneGraph. 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 Hình 1.7 Các khung nhìn khác nhau trong phần mềm Maya 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,... ngồ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. Ngồ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 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. 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 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. Đị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ĩ 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. 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 tốn va chạm một chiều), va chạm hai chiều. Hình 1.9 Bĩng va chạm với vợt Nắm đấm bị núm vào bao cát Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 15 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ỉ 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. 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 tố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 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 tố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 tố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 17 Đố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 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). 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 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 [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ạ độ thấp nhất và cao nhất của hộp bao cĩ tâm C1: Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 18 2 , 2 2 , 2 2 , 2 0 01max 0 01min 0 01max 0 01min 0 01max 0 01min c Cz c Cz b Cy b Cy a Cx a Cx    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)]  (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ì 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 sẽ được trình bày trong phần tiếp theo. 2.1.2. Kỹ thuật hộp bao theo hướng (Oriented Bounding Boxes) 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 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 19 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 hộp bao AABB (Hình 2.2). 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 210 ,, AAA  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à a0 >0, a1>0, a2>0. Khi đĩ, 8 đỉnh của hình hộp sẽ được xác định như sau:    2 0 .2,1,0,1||* i iiii isAasC  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.  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 thứ hai. Từ định lý trên, ta rút ra nhận xét sau cho phép kiểm tra nhanh sự giao nhau 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 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 20 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. 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 hồn tồ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 - 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 ( iA  )  3 trục chỉ hướng của hộp bao thứ hai ( jB  )  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 thuộc hộp bao thứ hai ( ji BA   ). 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 trình như sau: d = 0C  + t*V Trong đĩ, t là tham số. V cĩ thể là ji BA  , hoặc ji BA   với i, j = 0,1,2. 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 C0 sẽ là đoạn thẳng C0H xác định như sau (hình 2.3). || *)( ),( 0 V VCP dPhc     d C0 P H 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 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 C0 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 C0 (hình 2.4), độ dài của mỗi đoạn thẳng được xác định như sau : | || *)**( |),**( 2 0 2 0 0 V VAas dAasChc i iii i iii         (2.1) 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 : r0 = max { | || *)**( | 2 0 V VAas i iii     } Với mọi |si| = 1. Đặt R0 = r0* ||V  , ta cĩ:  R0 = max{ | a0* VA  *0 + a1* VA  *1 + a2* VA  *2 | | a0* VA  *0 + a1* VA  *1 - a2* VA  *2 | | a0* VA  *0 - a1* VA  *1 + a2* VA  *2 | | a0* VA  *0 - a1* VA  *1 - a2* VA  *2 | Hình 2.4 Chiếu 8 đỉnh của hình hộp lên trục cơ lập d Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 22 |-a0* VA  *0 + a1* VA  *1 + a2* VA  *2 | |-a0* VA  *0 + a1* VA  *1 - a2* VA  *2 | |-a0* VA  *0 - a1* VA  *1 + a2* VA  *2 | |-a0* VA  *0 - a1* VA  *1 - a2* VA  *2 | } = a0*| VA  *0 | + a1*| VA  *1 | + a2*| VA  *2 | 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 C0 như sau. | || *)**( | || * ),**( 2 0 2 0 1 V VBbs V DV dBbsChc i iii i iii           (2.2) Với 01 CCD   Chú ý rằng, 8 đoạn thẳng này được nhĩm thành 4 cặp đối xứng nhau qua C1. 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 R1 được xác định như sau : r1 = max { | || *)**( | 2 0 V VBbs i iii     } Với mọi |si| = 1. Đặt R1 = r1* ||V  , tương tự như trên ta suy ra : R1 = b0*| VB  *0 | + b1*| VB  *1 | + b2*| VB  *2 |. Hai khoảng cách trên sẽ khơng giao nhau nếu: C0C1 > r0+r1  ||V  *C0C1 > ||V  *r0 + ||V  *r1  R > R0 + R1 (2.3) Trong đĩ: R = C0C1* ||V  . Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 23 Bây giờ ta sẽ giải cụ thể các phương trình trên. Với mỗi vector iB  ta cĩ thể viết thành: 221100 AcAcAcB iiii   với i = 0,1,2. Đặt : A = (A0, A1, A2) và B= (B0, B1, B2)            222120 121110 020100 ccc ccc ccc C (2.4)  B = C*A  AT*B = C  C = 210 2 1 0 * BBB A A A =           221202 211101 201000 BABABA BABABA BABABA (2.5) Từ (2.4) và (2.5) suy ra: jiij BAc  * , 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 = C T *B  221100 BcBcBcA iiii   Như trong phần đầu đã nĩi, tập các trục cơ lập ứng cử viên V  = { iA  , jB  , ji BA   }với i, j = 0,1,2. Để tính tố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  = iA  và V = ji BA   , các trường hợp cịn lại được tính tốn tương tự. Hình 2.5 Kết quả chiếu 2 hình hộp lên trục cơ lập d Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 24  Xét trường hợp V  = 0A  :  R0 = a0*| VA  *0 | + a1*| VA  *1 | + a2*| VA  *2 | = a0.  R1 = b0*| VB  *0 | + b1*| VB  *1 | + b2*| VB  *2 | = b0*|c00| + b1*|c01| + b2*|c02|.  R = 0A  *D  Xét trường hợp V  = 00 BA   :  R0 = a0*| 000 * BAA   | + a1*| 001 * BAA   | + a2*| 002 * BAA   | Mặt khác : V  = 00 BA   = )( 2201100000 AcAcAcA   = 120210 AcAc    R0 = a1*|c20| + a2*|c10|  R1 = b0*| VB  *0 | + b1*| VB  *1 | + b2*| VB  *2 |.  R = V  * D  = DAcAc  *)( 120210  Ta cĩ viết lại V  dưới dạng: V  = 00 BA   = 0202101000 )( BBcBcBc   = - 10221 BcBc    VB  *0 = )(* 1022010 BcBcB   = 0 VB  *1 = )(* 1022011 BcBcB   = c02 VB  *2 = )(* 1022012 BcBcB   = -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 : Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 25 V  R0 R1 R 0A  a0 b0|c00|+b1|c01|+b2|c02| |.| 0 DA  1A  a1 b0|c10|+b1|c11|+b2|c12| |.| 1 DA  2A  a2 b0|c20|+b1|c21|+b2|c22| |.| 2 DA  0B  a0|c00|+a1|c10|+a2|c20| b0 |.| 0 DB  1B  a0|c01|+a1|c11|+a2|c21| b1 |.| 1 DB  2B  a0|c02|+a1|c12|+a2|c22| b2 |.| 2 DB  00 BA   a1|c20|+a2|c10| b1|c02|+b2|c01| DAcDAc  .... 120210  10 BA   a1|c21|+a2|c11| b0|c02|+b2|c00| DAcDAc  .... 121211  20 BA   a1|c22|+a2|c12| b0|c01|+b1|c00| DAcDAc  .... 122212  01 BA   a0|c20|+a2|c00| b1|c12|+b2|c11| DAcDAc  .... 200020  11 BA   a0|c21|+a2|c01| b0|c12|+b2|c10| DAcDAc  .... 201021  21 BA   a0|c22|+a2|c02| b0|c11|+b1|c10| DAcDAc  .... 202022  02 BA   a0|c10|+a1|c00| b1|c22|+b2|c21| DAcDAc  .... 010100  12 BA   a0|c11|+a1|c01| b0|c22|+b2|c20| DAcDAc  .... 011101  22 BA   a0|c12|+a1|c02| b0|c21|+b1|c20| DAcDAc  .... 012102  Bảng2.1 Bảng các giá trị R, R0, R1 được tính tốn trước. 2.1.3. Tìm điểm va chạm 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 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 Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 26 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 đầ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 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à đ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 - 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 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 đĩ 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 đĩ. 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 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à 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 27 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 = {x0, x1, x2} và y = {y0, y1, y2} sao cho:    2 0 2 0 ** j jj i ii ByDAx  với |xi|  ai, |yj|  bj và i,j = 0,1,2. (2.6) 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.  V  là vector iA  : Nhân hai vế của (6) với iA  ta thu được: xi =    2 0 ** j jiji BAyDA  = Sign( DAi  * )*(R0+R1) +   2 0 * j ijj cy Đặt  = Sign( DAi  * )  xi = *(R0+R1) +   2 0 * j ijj cy . Thay các giá trị của R0, R1 trong bảng 1 ở trên ta được: xi = *(ai +   2 0 ||* j jij cb ) +   2 0 * j ijj cy Nhân cả hai vế với  ta được.  (ai-*xi) +   2 0 ||* j jij cb +   2 0 * j ijj cy = 0  (ai-*xi) + )*)(**(|| 2 0 jij j jij ycSignbc    = 0 (2.7) Ta thấy: (ai-*xi)  0 và )*)(*( jijj ycSignb   0       0*)(* 0* jijj i ycSignb xia   Nếu cij  0       .2,1,0*)(* * jbjcSigny ax ijj ii   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 đĩ, nhân hai vế của (2.6) với jB  ta được: yj = -    2 0 ** k kjkj cxDB  Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 28 )max(||.||.)min( 2 0 2 0 j k kkjjj k kkjji yacDByacDBy     Mặt khác, vì |yj|  bj nên ta cĩ: ],[)]max(),[min( jjjjj bbyyy  . Do vậy, ta chỉ cần chọn một giá trị yj thuộc đoạn trên.  V  là vector iB  : Tương tự như trường hợp trên, ta tính được. Nếu cji  0       .2,1,0*)(* * jacSignx by jjij ii   Nếu cji = 0, nhân hai vế của (6) với iA  ta cĩ:    2 0 . k jkkjj cyDAx  Tương tự như trên, ta cĩ: )max(||.||.)min( 2 0 2 0 j k kjkjj k kjkji xbcDAxbcDAx     Khi đĩ, chọn xj thuộc đoạn sau làm điểm tiếp xúc: ],[)]max(),[min( jjjjj aaxxx   V  là vector ji BA   : Để dễ trình bày, chúng ta sẽ làm minh hoạ cho một trường hợp V  = 00 BA   = 120210 AcAc   = 102201 BcBc   , các trường hợp khác sẽ được tính tương tự. Nhân hai vế (6) với 00 BA   ta được: x2*c10 - x1*c20 = DBA  *)( 00  + )(** 102201 2 0 BcBcBy j jj     x2*c10 - x1*c20 = DBA  *)( 00  + y1*c02 - y2*c01 (2.8) Chú ý rằng, theo hàng 7 trong bảng 1 thì : ||*||*||*||*|*)(||| 0120211022011000 cbcbcacaRRDBAR    } ||*||*||*||*{*)*)(( 01202110220100 cbcbcacaDBASignR   Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 29 Đặt )*)(( 00 DBASign   , ta cĩ (8) tương đương với : x2*c10 - x1*c20 = *( ||*||*||*||* 012021102201 cbcbcaca  ) + y1*c02 - y2*c01 |c20|*(a1+*Sign(c20)*x1)+|c10|*(a2-*Sign(c10)*x2)+|c01|*(b2-*Sign(c01)*y2)+ |c02|*(b1+*Sign(c02)*y1) = 0 (2.9) Nhận thấy: Để tìm x0 và y0, nhân 2 vế của (2.6) với 0A  và 0B  :       00220110000 020210100000 **** **** yDBxcxcxc ycycycDAx   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.                 22011020210100002 00 0 20210122011000002 00 0 **)***(** 1 1 **)***(** 1 1 xcxcycycDAcDB c y ycycxcxcDBcDA c x   Đối với các trường hợp V  ={ 10 BA   , 20 BA   , 01 BA   , 11 BA   , 21 BA   , 02 BA   , 12 BA   , 22 BA   } cũng tính tố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: a1+*Sign(c20)*x1  0 a2-*Sign(c10)*x2  0 b2-*Sign(c01)*y2  0 b1+*Sign(c02)*y1  0 a1+*Sign(c20)*x1 = 0 a2-*Sign(c10)*x2 = 0 b2-*Sign(c01)*y2 = 0 b1+*Sign(c02)*y1 = 0 Từ (9) suy ra: x1 = -*Sign(c20)*a1 x2 = *Sign(c10)*a2 y1 = -*Sign(c02)*b1 y2 = *Sign(c01)*b2  Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 30 V  Tiếp điểm iA  2,1,0)(  jbcSigny jijj  jB  2,1,0)(  iacSignx iiji  00 BA   ))(( 1 1 )(,)(,)(,)( 2021012201100002 00 0 2012102121021201 ycycxcxcDBcDA c x bcSignybcSignyacSignxacSignx       10 BA   ))(( 1 1 )(,)(,)(,)( 20200022111110102 01 0 2002002021121211 ycycxcxcDBcDA c x bcSignybcSignyacSignxacSignx       20 BA   ))(( 1 1 )(,)(,)(,)( 20100022211220202 02 0 1001001021221221 ycycxcxcDBcDA c x bcSignybcSignyacSignxacSignx       01 BA   ))(( 1 1 )(,)(,)(,)( 21211122000001012 10 1 2112112120020200 ycycxcxcDBcDA c x bcSignybcSignyacSignxacSignx       11 BA   ))(( 1 1 )(,)(,)(,)( 21201022100111112 11 1 2102110120120210 ycycxcxcDBcDA c x bcSignybcSignyacSignxacSignx       21 BA   ))(( 1 1 )(,)(,)(,)( 21101022200221212 12 1 1102011020220220 ycycxcxcDBcDA c x bcSignybcSignyacSignxacSignx       02 BA   ))(( 1 1 )(,)(,)(,)( 22202111000002022 0 1 2212122110010100 ycycxcxcDBcDA c x bcSignybcSignyacSignxacSignx       12 BA   ))(( 1 1 )(,)(,)(,)( 22202011100112122 1 1 2202022010110110 ycycxcxcDBcDA c x bcSignybcSignyacSignxacSignx       22 BA   ))(( 1 1 )(,)(,)(,)( 12102011200222222 2 1 1201021010210120 ycycxcxcDBcDA c x bcSignybcSignyacSignxacSignx       Bảng 2.2 Tính tố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 31 Như vậy, trong cả hai mức phát hiện va chạm của thuật tốn thì ta đều lập sẵn được hai bảng chứa các thơng tin của kết quả cần tính tốn. Do vậy, quá trình phát 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 hiện nhanh xem cĩ va chạm nào đang xảy ra hay khơng. Thực nghiệm cho thấy, 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ý 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 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. 2.1.4. Phát hiện va chạm khi các đối tượng di chuyển 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 t0 ta đã cĩ các vector trạng thái của đối tượng, sang thời điểm t1 > t0 vector trạng thái mới của đối tượng cĩ thể được tính tố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. 2.2. Xử lý va chạm 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 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ừ 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ử 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 gây ra. Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 32 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 đĩ 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 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 chính là các động cơ vật lý (Physics Engines). Các Engine vật lý được xây dựng 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. 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 ả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 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 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. Một trong những đại lượng đặc trưng cho yếu tố hình dạng của đối tượng đĩ 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 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 tính tồ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. 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 đị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 33 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 )( 12 1 )( 12 1 )( 12 1 22 22 22 yxzz zxyy zyxx DDMI DDMI DDMI    2 22 12 1 12 1 2 1 MRI HMRII zz yyxx   Khi đĩ, mơ ment quán tính tổng hợp I của đối tượng là:            zz yy xx I I I I 00 00 00 2.2.1.2. Mơ ment quay (Torque) 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 = Fs   (2.10) Trong đĩ: - Torque: là mơ ment quay - F: lực tác dụng lên đối tượng,  là tích cĩ hướng - s: là khoảng cách từ giá của lực tác dụng đến tâm của đối tượng. Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 34 Hình 2.8 Mơ ment quay của đối tượng khi cĩ lực tác dụng 2.2.1.3. Mối liên hệ giữa mơ ment quán tính và mơ men quay 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 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 trục. Mơ ment quay bằng mơ ment quán tính nhân với gia tốc gĩc:  ITorque (2.11) Trong đĩ: - I: là mơ ment quán tính -  : là giá tốc gĩc 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: 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 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 là những giá trị tĩnh nên ta chỉ cần tính tố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 = <p,v,  ,R>. Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 35 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 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 cho tồ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 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 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ố. 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 tố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 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 ứng. Mặt khác, với mỗi đối tượng thì ta hồn tồ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 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 (2.12)  Xác định vận tốc gĩc :    dt d (2.13)  Xác định gia tốc dài: v = m F (2.14)  Xác định vận tốc dài: v dt dv  (2.15)  Vị trí của đối tượng (p): v dt dp  (2.16) Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 36  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 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 đơ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à vận tốc gĩc  = (z,y,z) được liên hệ với nhau theo cơng thức sau [15]: ~*RR  (3.8) với              0 0 0 ~ xy xz yz     Từ các cơng thức trên, ta cĩ thể viết gọn lại như sau:         ~*,*,, 1 RIT m F vQ dt dQ  (2.17) 2.2.1.5 Tính tốn xung và lực ảnh hưởng 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 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 tốn lực tổng hợp, phần này sẽ trình cách tính lực tác dụng tổng hợp thơng qua việc tính tố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 tốn lực tác dụng lên mỗi đối tượng thường cĩ 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 tồn năng lượng và bảo tồn động lượng để tính lực tác dụng hay khơng? Câu 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. Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 37 Kí hiệu Ý nghĩa a Đối tượng a va chạm với đối tượng b b Đối tượng b va chạm với đối tượng a Ma Khối lượng của đối tượng a Mb Khối lượng của đối tượng b 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 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 I Mơ men quán tính của đối tượng theo cả ba trục 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 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 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 e Hệ số đàn hồi của hai đối tượng rắn (0  e  1) Bảng 2.3 Bảng các kí hiệu sử dụng khi xử lý hậu va chạm Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 38 2.2.2. Xử lý các hiệu ứng về méo mĩ, biến dạng sau va chạm 2.2.2..1. Ý tưởng thuật tốn Giả sử ta đang xét trong khơng gian R3, mỗi khi hai đối tượng A, B va chạm 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 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 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à 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à Nu,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 hồ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 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ư 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 liên hệ này để tính tốn độ chuyển dịch cho điểm điều khiển.  Khi đã tính tốn được độ chuyển dịch cho các điểm điều khiển, chúng ta tiếp tục tính tốn sự ảnh hưởng của các điểm thuộc bề mặt đối tượng theo nguyên lý của các hàm B- Splines. Để cĩ thể hiệu rõ thuật tốn bĩp méo tự do sử dụng hàm B-Splines 3D, tuần hồ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 39 2.2.2.2. Hàm Open Uniform B-Splines Trong số các đường cong phổ biến (Beirier, B-Splines,..) thì đường cong B- Splines 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ì tồ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,… Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 40 Chương 3 ỨNG DỤNG THỬ NGHIỆM 3.1. Bài tố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 tố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 41 Hệ thống mơ phỏng thử nghiệm tình huống tham gia giao thơng sử dụng ngơn ngữ lập trình Visual C.Net, thư viện đồ hoạ OpenSG. Trong hệ thống này cĩ sử dụng thư viện mã nguồn mở cài [9] đặt thuật tốn phát hiện va chạm sử dụng hộp 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 Trong sơ đồ này, khối đầu tiên đĩ là khối “Tính tốn vector trạng thái mới” đượ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 đĩ để tính tố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 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 Tồ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 42 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 về vụ va chạm và tính tốn sự thay đổi về các trạng thái mới cho các đối tượng liên 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 các cơ sở vật lý như đã trình bày trong chương 3. Cuối cùng, tồ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 chúng sẽ được hiển thị ra màn hình thơng qua khối “Render”. 3.3. Thực nghiệm Đâ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. 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 43 Hình 3.3 thể hiện tình huống giao thơng tại ngã tư giao cắt, cĩ 03 xe tham gia giao thơng: 01 xe cảnh sát, một xe con 4 chỗ ngồi, 01 xe tải. Xe cảnh sát đi trên hướng đường chính., xe tải và xe con đi ngược chiều nhau trong đường giao cắt. Hình 3.4. Chuyển động của các phương tiện qua ngã tư giao cắt 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 Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 44 KẾT LUẬN Trong quá trình làm luận văn được tìm hiểu, nghiên cứu, thực hiện và đi đến hồn thành luận văn tốt nghiệp này em đã bổ sung thêm cho mình nhiều kiến thức quí giá. Em đã tìm hiểu sâu hơn, đầy đủ hơn về va chạm và xử lý va chạm trong một hệ thống thực tại ảo. Hầu hết các hệ thống thực tại ảo khi phát hiện va chạm đều sử dụng cách tiếp cận hình bao đối tượng, tuỳ từng hệ trường hợp cụ thể mà ta cĩ thể sử dụng kỹ thuật hình bao thích hợp. Sau khi phát hiện va chạm, giai đoạn xử lý hậu va chạm sẽ được thực hiện dựa trên những cơ sở của vật lý mà cụ thể là động lực học vật rắn. Kỹ thuật phát hiện va chạm giữa hộp bao OBB và tam giác cịn được ứng dụng rất hiệu quả trong việc do tìm va chạm giữa đối tượng với mơi trường, địa hình, núi non, hay các chướng ngại vật. Nĩ liên quan đến quá trình phát hiện và xử lý va chạm khi đối tượng di chuyển trên địa hình bằng phẳng và địa hình khơng bằng phẳng. Đối với bài tốn này, người ta thường tối ưu hố quá trình xử lý bằng cách biểu diễn bề mặt địa hình bởi các cây QuadTree hoặc OctTree. Trong luận văn, em chưa trình bày chi tiết về vấn đề này. Trong thời gian làm luận văn tốt nghiệp, mặc dầu bản thân đã rất nỗ lực, cố gắng, đầu tư rất nhiều thời gian, cơng sức cho việc tìm hiểu nghiên cứu đề tài và đã nhận được sự chỉ bảo, định hướng tận tình của thầy giáo hướng dẫn cùng các anh, chị đi trước nhưng do hạn chế về mặt thời gian và khĩ khăn trong việc tìm kiếm tài liệu nên chưa cĩ được kết quả thực sự hồn hảo. Hướng phát triển: Mơ phỏng là một Với kết quả nghiên cứu trên, cộng với sự đầu tư về thời gian và cơng nghệ trong tương lai thì việc thực hiện các mơ phỏng liên quan đến va chạm sẽ khơng cịn là một vấn đề quá khĩ khăn nữa. Chúng ta sẽ rễ dàng thực hiện được việc mơ phỏng chính xác các vụ va chạm và các hiện tượng xảy ra, cũng như xây dựng các phần mềm ứng dụng phục vụ cho từng lĩnh vực, từng ngành nghề cụ thể. Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 45 TÀI LIỆU THAM KHẢO Tiếng Việt [1]. Lê Tấn Hùng, Huỳnh Quyết Thắng (2004), Đồ hoạ máy tính, tr40-50, Nhà xuất bản KHKT 2004. [2]. Nguyễn Văn Trường (2005), “Động lực học cơ hệ nhiều vật trong xây dựng các thiết bị tập lái”. [3]. Lê Huy Vần (2005), Nghiên cứu phát hiện va chạm và ứng dụng, tr 41-50, Khố luận tốt nghiệp, ĐH Cơng nghệ. [4]. Nguyễn Huy Sơn (2005), “VR-Cơng nghệ của tương lai”, Tiếng Anh [5]. Devid Eberly (1999), “Numerical Methods for Ordinary Differential Equations”, [6]. Devid Eberly (1999), “Dynamic Collision Detection using Oriented Bounding Boxes”, [7]. Diego Ruspini and Oussama Khatib (2000), “A Framework for Multi-Contact Multi-Body Dynamic Simulation and Haptic Display”, Proceedings of the 2000 IEEE/RSj International Conference on Intelligent Robots and Systems. [8]. Department of Informatics Umể University S-901 87 UMỂ, Sweden, “Virtual Reality in Medicine: Survey of the State of the Art”. [9]. Eugene Laptev (2002), “Collision Detection - Fastcar”, Oxford Dynamics www.oxforddynamics.co.uk. [10]. Leonard McMillan, Julie Dorsey, Robert Jagnow(2001), “Real-Time Simulation of Deformation and Fracture”, The Eurographics Association. [11]. Martin John Baker (2006), “Physics - Collision in 3 dimensions”, Số hĩa bởi Trung tâm Học liệu – Đại học Thái Nguyên 46 [12]. Marco Monster (1993), “Car Physics for Games”, [13]. M.Müller, J.Dorsey, L.McMillan, R.Jagnow and B.Cutler. “Stale real-time deformations”. Proceedings of ACM SIGGRAPH Symposium onComputer Animation,pp 49-54,2002. [14]. Nick Bobic (2000), ”Advanced Collision Detection Techniques”, [15]. Richard Chaney (1999), “Simulating Single Rigid Bodies”. [16]. Russell Smith (2006), “Open Dynamics Engine”, [17]. Rui Pires, Tiago Rodrigues, José Miguel Salles Dias (2004), "d4md - deformation system for a vehicle simulation game", [18]. Yongchoel Choi and Seungyong Lee (2000), “Injectivity Conditions of 2D and 3D Uniform Cubic B-Spline Functions”, Department of Computer Science and Engineering, Pohang University of Science and Technology (POSTECH), Pohang, 790-784, Korea.

Các file đính kèm theo tài liệu này:

  • pdfLuận văn-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.pdf