Tính toán va chạm sử dụng kỹ thuật hộp bao theo hướng và ứng dụng trong tuyên truyền giao thông

pdf 9 trang ngocly 60 Free
Bạn đang xem tài liệu "Tính toán va chạm sử dụng kỹ thuật hộp bao theo hướng và ứng dụng trong tuyên truyền giao thông", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdftinh_toan_va_cham_su_dung_ky_thuat_hop_bao_theo_huong_va_ung.pdf

Nội dung text: Tính toán va chạm sử dụng kỹ thuật hộp bao theo hướng và ứng dụng trong tuyên truyền giao thông

  1. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 TÍNH TOÁN VA CHẠM SỬ DỤNG KỸ THUẬT HỘP BAO THEO HƢỚNG VÀ ỨNG DỤNG TRONG TUYÊN TRUYỀN GIAO THÔNG Đỗ Năng Toàn1, Nông Minh Ngọc2* 1Viện Công nghệ thông tin, 2Đại học Thái Nguyên TÓM TẮT Va chạm là vấn đề không thể thiếu trong bất kỳ một hệ thống thực tại ảo nào (VR). Do đó, nghiên cứu các phƣơng pháp phát hiện va chạm là một mục tiêu hàng đầu mà các hệ thống thực tại ảo quan tâm. Bài báo này trình bày một kỹ thuật phát hiện va chạm dựa trên việc tính toán các hộp bao theo hƣớng (Oriented Bounding Boxes) và có cải tiến để phát hiện va chạm. Kỹ thuật nghiên cứu đã đƣợc áp dụng vào hệ thống “Giúp bạn đi an toàn” - một hệ thống thực tại ảo mô phỏng giao thông. Hệ thống có thể trợ giúp con ngƣời biết cách đi nhƣ thế nào để an toàn khi tham gia giao thông. Từ khóa: Phát hiện va chạm, OBBs, AABB, Thực tại ảo. GIỚI THIỆU* KỸ THUẬT HỘP BAO THEO HƢỚNG Phát hiện va chạm là một trong những vấn đề (ORIENTED BOUNDING BOXES) trọng tâm của mỗi hệ thống thực tại ảo. Các Định nghĩa hộp bao theo hƣớng (Oriented đối tƣợng trong mỗi hệ thống đồ hoạ có Bounding Boxes-OBBs) những chuyển động riêng của nó, trong khi Trong phần này, tất cả các vectors đƣợc hiểu chuyển động đó có thể va chạm với đối tƣợng là trong không gian R3. khác, hoặc có thể va chạm với môi trƣờng, Một hình hộp OBB bao gồm một tâm C, ba chƣớng ngại vật, vector A0 , A1 , A2 chỉ hƣớng của hình hộp và Đối với phƣơng pháp phát hiện va chạm theo 3 hệ số độ dài tƣơng ứng với kích thƣớc của các hộp bao thì ta có hai kỹ thuật khác nhau hình hộp là a0 >0, a1>0, a2>0. Khi đó, 8 đỉnh đó là sử dụng hộp bao có các cạnh song song của hình hộp sẽ đƣợc xác định nhƣ sau: với các trục toạ độ (axis-aligned bounding 2 boxes - AABBs) hoặc là hộp bao theo hƣớng C si ai * Ai | si | 1,i 0,1,2. (1) của đối tƣợng (Oriented Bounding Boxe - i 0 OBBs ). Việc phát hiện va chạm giữa các hộp Kỹ thuật phát hiện hộp bao theo hƣớng đƣợc bao AABBs đƣợc thực hiện nhanh chóng chia làm hai mức. Mức một là kiểm tra nhƣng sai số lớn, trong khi đó phát hiện va “nhanh” xem có va chạm nào xảy ra không? chạm giữa các hộp bao OBBs tuy phức tạp Nếu không có va chạm nào xảy ra thì hệ hơn nhƣng lại cho sai số nhỏ hơn nhiều. thống vẫn làm việc bình thƣờng, có ít nhất một va chạm xảy ra thì sẽ chuyển sang mức Bài báo này sẽ trình bày kỹ thuật phát hiện va hai là tìm chính xác điểm va chạm của các chạm dựa vào các hộp bao OBBs và đƣa ra hộp bao. một cải tiến để giảm thời gian xử lý các hộp Định lý: Việc kiểm tra hai khối đa diện lồi bao. Cuối cùng, chúng tôi đã áp dụng kỹ thuật không giao nhau nếu có thể cô lập đƣợc trên vào hệ thống “Giúp bạn đi an toàn khi chúng bằng một mặt phẳng P thoả mãn một tham giao thông ” - một hệ thống thực tại ảo mô trong hai điều kiện sau: phỏng các tình huống giao thông nhằm tuyên truyền, trợ giúp ngƣời dùng biết cách đi nhƣ thế - P song song với một mặt nào đó của một nào để an toàn nhất khi tham gia giao thông. trong hai khối đa diện. - Hoặc là P chứa một cạnh thuộc đa diện thứ * Tel: 0968 595888 nhất và một đỉnh thuộc đa diện thứ hai. 161
  2. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 Từ định lý trên, ta rút ra nhận xét sau cho P phép kiểm tra nhanh sự giao nhau của hai hai d 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 H không là kiểm tra giao nhau giữa các hình chiếu của chúng lên đƣờng thẳng vuông góc C0 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 Hình 1. Hình chiếu của P lên đường thẳng d 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 để Nhƣ vậy, khi chiếu 8 đỉnh của hộp bao thứ kiểm tra va chạm giữa chúng. 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 Phƣơng pháp kiểm tra va chạm giữa hai nằm về hai phía so với C (hình 2), độ dài của hộp bao OBBs 0 mỗi đoạn thẳng đƣợc xác định nhƣ sau : Cho hai hình bao OBBs xác định bởi các 2 thông số [C0,A0,A1,A2,a0,a1,a2] và ( s * a * A ) *V 2 i i i i 0 [C1,B0,B1,B2,b0,b1,b2]. Ta thấy rằng các tình hc(C0 si * ai * Ai ,d) | | huống mà hai OBBs tiếp xúc với nhau (không i 0 |V | cắt nhau) chỉ có thể là một trong 6 trƣờng hợp (2) 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 ( A ) i - 3 trục chỉ hƣớng của hộp bao thứ hai ( B j ) - 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 ( Ai B j ). Mặt khác, ta biết rằng nếu một trục là trục cô Hình 2. Chiếu 8 đỉnh của hình hộp lên trục cô lập d 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 Nhƣ vậy, khoảng cách nhỏ nhất chứa 8 đoạng thẳng (2) sẽ có tâm có tâm là C và bán kính ta sẽ gọi trục cô lập có vector chỉ phƣơng là V 0 r0 đƣợc xác định nhƣ sau : và đi qua tâm C0 của hộp bao thứ nhất, do vậy 2 nó có phƣơng trình nhƣ sau: ( si * ai * Ai ) *V d = C + t*V i 0 0 r0 = max {| | } |V | Trong đó: t là tham số. V là Ai hoặc B j hoặc A B với i, j = 0,1,2. Với mọi |si| = 1. (3) i j Gọi P là một điểm bất kỳ, hình chiếu của P Đặt R0 = r0*|V |, ta có: lên đƣờng thẳng d với gốc C0 sẽ là đoạn thẳng C0H xác định nhƣ sau : R0 = max{| a0* A0 *V + a1* A1 *V + (P C ) *V a2* A2 *V | hc(P,d) 0 |V | | a0* + a1* - a2* A2 *V | 162
  3. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 Giải cụ thể các phƣơng trình trên. Với mỗi | a0* A0 *V - a1* A1 *V + a2* A2 *V | vector Bi ta có thể viết | a0* - a1* - a2* | thành: Bi c0i A0 c1i A1 c2i A2 với i = |-a0* + a1* + a2* | 0,1,2. Đặt : A = (A , A , A ) và B= (B , B , B ) |-a0* + a1* - a2* | 0 1 2 0 1 2 c00 c01 c02 |-a0* - a1* + a2* | C c10 c11 c12 (6) |-a0* - a1* - a2* |} c c c 20 21 22 T = a0*| A0 *V | + a1*| A1 *V | + a2*| A2 *V | B = C*A A *B = C C = Tƣơng tự, ta xác định hình chiếu 8 đỉnh của A0 A0 B0 A0 B1 A0 B2 hộp bao thứ hai lên d với gốc C0 nhƣ sau. A1 * B0 B1 B2 = A1B0 A1B1 A1B2 (7) 2 ( s *b * B ) *V A2 A2 B0 A2 B1 A2 B2 2 V * D i i i hc(C s *b * B ,d)  | i 0 | 1 i i i Từ (6) và (7) suy ra: cij Ai * B j , hay cij i 0 |V | |V | chính là tích vô hƣớng của hai vector Ai, Bj. (4) T Mặt khác, từ B = C*A A = C *B Với D C1 C0 Ai ci0 B0 ci1B1 ci2 B2 Chú ý rằng, 8 đoạn thẳng này đƣợc nhóm Nhƣ trong tập các trục cô lập ứng cử viên V 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 (4) = { Ai , B j , Ai B j }với i, j = 0,1,2. Để tính sẽ có tâm là C1 và bán kính R1 đƣợc xác định toán các hệ số R0, R1, R ở trên thì ta sẽ làm nhƣ sau : minh họa cho hai trƣờng hợp = và 2 ( si *bi * Bi )*V = , các trƣờng hợp còn lại đƣợc tính i 0 r1 = max {| | } Với mọi toán tƣơng tự. |V | - Xét trƣờng hợp = A0 : |si| = 1. + R0 = a0*| | + a1*| | + Đặt R1 = r1*|V |, tƣơng tự nhƣ trên ta suy ra : a *| | = a . 2 0 R1 = b0*| B *V | + b1*| B *V | + + R1 = b0*| | + b1*| | + 0 1 b2*| | = b0*|c00| + b1*|c01| + b2*|c02|. b2*| B2 *V |.  Hai khoảng cách trên sẽ không giao nhau nếu: + R = * D - Xét trƣờng hợp = A B : 0 0 C0C1 > r0+r1 |V |*C0C1 > *r0 + + R0 = a0*| A * A B | + 0 0 0 *r1 R > R0 + R1 (5) a1*| A1 * A0 B0 | + a2*| A2 * A0 B0 | Trong đó: R = C0C1* . d Mặt khác : = A B = 0 0 C R1 A (c A c A c A ) = 1 0 00 0 10 1 20 2 R0 C0 c10 A2 c20 A1 R0 = a1*|c20| + a2*|c10| Hình 3. Kết quả chiếu 2 hình hộp lên trục cô lập d + R = * = (c10A2 c20A1 )* D 163
  4. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 Đối với hai hộp bao, nếu chúng va chạm với + R1 = b0*| B *V | + b1*| B *V | + 0 1 nhau ở dạng đỉnh - đỉnh, đỉnh - cạnh, cạnh - b2*| B2 *V |. 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 Ta có viết lại V dƣới dạng: mặt - mặt, cạnh - mặt thì sẽ có vô số điểm V = A0 B0 = tiếp xúc, khi đó chúng ta chỉ cần đƣa ra một điểm bất kỳ là đƣợc. (c00B0 c01B1 c02B2 ) B0 = - Ý tưởng để tìm thời điểm va chạm như sau: c01B2 c02B1 Mỗi khi ta thực hiện công việc kiểm nhanh va B0 *V = B0 *( c01B2 c02B1 ) = 0 chạm ở mức thứ nhất, nếu tìm đƣợc một trục B *( c B c B ) cô lập thì ta sẽ ghi lại nhãn thời gian cho trục B1 *V = 1 01 2 02 1 = c02 cô lập đó. Nếu không tìm đƣợc một trục cô B2 *V = B2 *( c01B2 c02B1 ) = -c01 lập nào thì có nghĩa là hai hộp bao đã va R1 = b1*|c02|+ b2*|c01| chạm với nhau, khi đó nhãn thời gian đƣợc Tiếp tục, ta xây dựng đƣợc bảng các giá trị gán cho trục cô lập ở lần kiểm tra liền trƣớc cho R, R0, R1 nhƣ thể hiện tại bảng 1. sẽ là thời điểm đầu tiên mà hai hộp bao va Tính toán điểm va chạm giữa hai OBBs chạm nhau, gọi T là nhãn thời gian đó. Khi Khi có va chạm giữa các OBBs xảy ra, ta sẽ đó, ta có thế coi nhƣ R = R0+R1(thời điểm hai thực hiện việc tìm chính xác điểm va chạm. hình hộp tiếp xúc nhau). Bảng 1. Các giá trị R, R0, R1 164
  5. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 Gọi P là điểm tiếp xúc của hai hộp bao thì suy 2 yj = - B j * D xk *ckj ra tồn tại một vector x = {x0, x1, x2} và y = k 0 {y0, y1, y2} sao cho: 2 2 xi * Ai D y j * B j với |xi| ai, |yj| i 0 j 0 Mặt khác, vì |yj| bj nên ta có: bj và i,j = 0,1,2. (8) 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ố Do vậy, ta chỉ cần chọn một giá trị yj thuộc đoạn trên. 15 trục cô lập ứng cử viên. Ta xét 3 trƣờng hợp sau. là vector B :Tƣơng tự nhƣ trƣờng hợp i trên, ta tính đƣợc. V là vector Ai :Nhân hai vế của (8) với ta thu đƣợc: Nếu cji 0 2 yi *bi xi = Ai * D y j * Ai B j = j 0 x j * Sign(c ji ) * a j j 0,1,2. 2  Nếu cji = 0, nhân hai vế của (6) với Ai ta có: Sign( Ai * D )*(R0+R1) + y j *cij j 0 Đặt = Sign( A * D ) x = *(R +R ) + i i 0 1 2 Tƣơng tự nhƣ trên, ta có: y j *cij . Thay giá trị các R0, R1 tại bảng 1: j 0 2 2 x = *(a + b *| c |) + y *c Nhân i i j i j j ij Khi đó, chọn x thuộc đoạn sau làm điểm tiếp j 0 j 0 j xúc: cả hai vế với ta đƣợc. 2 (a - *x ) + b * | c | + = 0  i i j i j là vector A B : Để dễ trình bày, j 0 i j chúng ta sẽ làm minh hoạ cho một trƣờng (ai- *xi)  2 hợp = A B = c A c A = 0 0 10 2 20 1 + | cij | *(b j * Sign(cij )* y j ) = 0 (9) j 0 c01B2 c02B1 , các trƣờng hợp khác sẽ đƣợc tính tƣơng tự. Ta thấy: (ai- *xi) 0 và  (b *Sign(c )* y ) 0 Nhân hai vế (8) với A B ta đƣợc: j ij j 0 0 ai * xi 0 x2*c10 - x1*c20 = (A0 B0 )* D + 2 b j * Sign(cij ) * y j 0 y j * B j * ( c01B2 c02B1) j 0 Nếu cij 0 x *c - x *c = (A B )* D + y *c - x * a 2 10 1 20 0 0 1 02 i i y *c (10) 2 01 y j * Sign(cij ) *bj j 0,1,2. Chú ý rằng, theo hàng 7 trong bảng 1 thì: Nếu cij = 0 (ứng với trƣờng hợp cạnh va chạm | R | | (A0 B0 ) * D | R0 R1 mặt, mặt va chạm mặt). Khi đó, nhân hai vế a1*| c20 | a2*| c10 | b1*| c02 | b2*| c01 | của (8) với B j ta đƣợc: 165
  6. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169     R Sign((A B ) * D) *{ a * A B , A B , A B , A B , 0 0 1 0 2  1 0  1 1 1 2 | c20 | a2*| c10 | b1*| c02 | b2*| c01 | } A B , A B , A B } cũng tính 2 0 2 1 2 2 toán tƣơng tự nhƣ trên để tìm điểm tiếp xúc. Đặt Sign((A0 B0 )* D) , ta có (10) tƣơng đƣơng với : 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 (bảng 2). x2*c10 - x1*c20 = *( Nhƣ vậy, quá trình phát hiện va chạm đƣợc a1*| c20 | a2 *| c10 | b1*| c02 | b2 *| c01 |) thực hiện nhanh chóng, ở mức thứ nhất cho + y1*c02 - y2*c01 phép phát hiện nhanh các va chạm. Việc phân |c20|*(a1+ *Sign(c20)*x1)+|c10|*(a2- chia các mức phát hiện va chạm nhƣ trên là *Sign(c10)*x2) rất hợp lý, dựa trên nhận xét là trong một hệ + |c01|*(b2- *Sign(c01)*y2)+ thống đồ hoạ 3D có rất nhiều đối tƣợng thì |c |*(b + *Sign(c )*y ) = 0 (11) 02 1 02 1 không phải lúc nào các đối tƣợng cũng va Nhận thấy: chạm nhau, thậm chí là số lần va chạm có thể a + *Sign(c )*x 0 1 20 1 rất thƣa. a - *Sign(c )*x 0 2 10 2 Kỹ thuật phát hiện va chạm với các tƣợng b - *Sign(c )*y 0 2 01 2 di chuyển b1+ *Sign(c02)*y1 0 Giả sử hai đối tƣợng (mà ta coi nhƣ là các Từ (11) suy ra: hình hộp) C0 và C1 chuyển động với gia tốc a1+ *Sign(c20)*x1 = 0 khác nhau. Ta xây dựng một lớp hình hộp a2- *Sign(c10)*x2 = 0 chứa các thông tin cần thiết về đối tƣợng nhƣ: b2- *Sign(c01)*y2 = 0 toạ độ tâm hình hộp, 3 vector chỉ hƣớng, độ b1+ *Sign(c02)*y1 = 0 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 x1 = - *Sign(c20)*a1 x = *Sign(c )*a hộp, Những thông số này còn đƣợc gọi là 2 10 2 y = - *Sign(c )*b các thông số trạng thái của đối tƣợng. Khi đó 1 02 1 y2 = *Sign(c01)*b2 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ó Để tìm x0 và y0, nhân 2 vế của (6) với A0 và các vector trạng thái của đối tƣợng, sang thời B : 0 điểm t1 > 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 x0 A0 * D c00 * y0 c01 * y1 c02 * y02 pháp lấy tích phân số gần đúng. Có hai c00 * x0 c10 * x1 c20 * x2 B0 * D y0 phƣơng pháp tính tích phân số hay đƣợc dùng Giải hệ phƣơng trình trên, cùng với các hệ số đó là phƣơng pháp Euler và Runge–Kutta y1, y2, x1, x2 ở trên 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 1 A0 * D c00 *( B0 * D c10 x0 2 lớn, ngƣợc lại khi t bé thì phƣơng pháp 1 c00 * x1 c20 * x2 ) c01 * y1 c02 * y2 Runge–Kutta Fourth 4 lại cho độ chính xác 1 B * D c *(A * D c cao hơn. Sau đây chúng tôi sẽ trình bày y 0 00 0 01 0 2 phƣơng pháp lấy tích phân số Runge–Kutta 1 c00 * y1 c02 * y2 ) c10 * x1 c20 * x2  Fourth 4, là phƣơng pháp mà đã đƣợc sử Đối với các trƣờng hợp V ={ A0 B1 , dụng trong ứng dụng của chúng tôi. 166
  7. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 Bảng 2. Toạ độ của tiếp điểm trong các trường hợp Gọi Sn là vector trạng thái của đối tƣợng ở đối tƣợng ở thời điểm mới này với các hộp thời điểm tn, để tính vector trạng thái Sn+1 ở bao mới cập nhật. thời điểm tiếp theo tn+1 bằng phƣơng pháp ỨNG DỤNG VÀO BÀI TOÁN AN TOÀN Runge–Kutta Fourth 4 nhƣ sau: GIAO THÔNG. Đặt h = tn+1 - tn. An toàn giao thông là vấn cấp thiết của mỗi Gọi F(Sn, tn) là đạo hàm của Sn ở thời điểm tn quốc gia, đặc biệt trong điều kiện Việt Nam với hệ thống giao thông còn chƣa hoàn thiện, Tính A1 = F(Sn, tn) ý thức của ngƣời dân khi tham gia giao thông Tính A2 = F(Sn + h*A1/2, tn + h/2) còn yếu kém và bản thân vẫn chƣa có các hệ Tính A = F(S + h*A /2, t + h/2) 3 n 2 n thống giám sát và cảnh báo giao thông hiệu Tính A4 = F(Sn + h*A3, tn+ h/2) quả. Thực tại ảo là một lĩnh vực nghiên cứu Khi đó: mới trong công nghệ thông tin và đã tỏ ra h hiệu quả trên nhiều lĩnh vực. Trong đó, lĩnh S S *(A 2* A 2* A A ) n 1 n 6 1 2 3 4 vực liên quan đến an toàn giao thông là một Nhƣ vậy, sau khi tính toán đƣợc vector trạng ví dụ. thái mới cho đối tƣợng, chúng ta sẽ cập nhật Viện CNTT đã và đang nghiên cứu về thực tại đƣợc vị trí và hƣớng ở thời điểm mới. Sau đó ảo và các ứng dụng của nó. Việc ứng dụng sẽ làm lại thủ tục phát hiện va chạm cho các công nghệ thực tại ảo vào an toàn giao thông 167
  8. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 là một trong những hƣớng nghiên cứu trọng xem thấy nó “không thật” bởi các lý do an điểm. Một trong những phƣơng pháp hữu toàn khi đóng phim. Do vậy, hiệu quả tuyên hiệu để làm giảm thiểu tai nạn giao thông đó truyền không cao. là tuyên truyền, phổ biến và cảnh báo hậu quả Sử dụng công nghệ thực tại ảo kết hợp với của tai nạn giao thông đến cho mỗi ngƣời để các kết quả nghiên cứu va chạm ở trên, chúng nâng cao ý thức chấp hành luật lệ giao thông. tôi xây dựng hệ thống “Giúp bạn đi an toàn Do đó, việc nghiên cứu các kỹ thuật va chạm khi tham gia giao thông” để mô phỏng các trong các hệ thống thực tại ảo nhằm ứng dụng vào mô phỏng các tình huống giao thông tính huống giao thông thƣờng xảy ra trong thƣờng nhật để tuyên truyền, trợ giúp ngƣời thực tế. Mỗi tính huống sẽ dạy cho bạn biết tham gia giao thông biết cách đi nhƣ thế nào cách đi nhƣ thế nào để an toàn nhất khi bạn để an toàn nhất. gặp tình huống tƣơng tự Tại Việt Nam, việc tuyên truyền về an toàn Hiện tại, chúng tôi đã xây dựng đƣợc một tình giao thông đã đƣợc quan tâm thông qua các huống đó là “Đỗ đúng phần đường quy định”, chƣơng trình truyền hình: “Tôi yêu Việt một tình huống mà theo các báo cáo về tai Nam”, “Dạy và học luật giao thông” Tuy nạn giao thông là thƣờng xảy ra nhất. nhiên, những chƣơng trình này có nhƣợc điểm cố hữu đó là chúng đƣợc xây dựng bởi Một số cảnh của tình huống này đƣợc demo những diễn viên thật cho nên nhiều khi ngƣời bên dƣới. Hình 4. Các phương tiện giao thông Hình 5. Chiếc xe máy đỗ sai làn đường Hình 6. Một chiếc xe tô không kịp phanh đã đâm Hình 7. Mở rộng mô phỏng với phương tiện ôtô vào xe máy đỗ sai đường đó tham gia giao thông 168
  9. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 KẾT LUẬN 2. Devid Eberly, “Dynamic Collision Detection using Oriented Bounding Boxes”, Va chạm là vấn đề không thể thiếu trong bất ,1999 kỳ một hệ thống thực tại ảo nào. Do vậy, đã 3. Eugene Laptev, “Collision Detection - Fastcar”, có rất nhiều kết quả nghiên cứu về vấn đề này Oxford Dynamics”, www.oxforddynamics.co.uk, và hầu nhƣ các nghiên cứu đó đều tập trung 2002. 4. Diego Ruspini, Oussama Khatib, “A Framework vào các phƣơng pháp phát hiện gần đúng va for Multi-Contact Multi-Body Dynamic Simulation chạm dựa vào các hình bao. Bài báo này trình and Haptic Display”, Proceedings of the 2000 bày một kỹ thuật phát hiện va chạm dựa trên IEEE/RSj International Conference on Intelligent việc tính toán các hộp bao theo hƣớng Robots and Systems, 2000. (Oriented Bounding Boxes -OBBs). Việc áp 5. Nick Bobic,”Advanced Collision Detection Techniques”, 2000. dụng kỹ thuật phát hiện va chạm dựa vào các 6. Russell Smith, “Open Dynamics Engine”, hộp bao OBBs vào hệ thống “Giúp bạn đi an 2006. toàn khi tham gia giao thông” cho thấy kỹ 7. WANG Xiao-rong, WANG Meng, Li Chun-gui, thuật này đảm bảo các yêu cầu về tốc độ (tính “Research on Collision Detection Algorithm Based thời gian thực) và đặc biệt là độ chính xác. on AABB”, 2009 Fifth International Conference on Natural Computation, pp 422-424, 2009. 8. Hu Songhua, Yu Lizhen, “Optimization of TÀI LIỆU THAM KHẢO Collision Detection Algorithm based on OBB”, 1. David Eberly, “Dynamic Collision Detection International Conference on Measuring using Oriented Bounding Boxes”, Geometric Technology and Mechatronics Automation, Tools, Inc, 1999. pp853-855, 2010. SUMMARY THE COLLISION CALCULATION BASED ON OBBS TECHNIQUE APPLIED FOR A VIRTUAL REALITY SYSTEM SIMULATED TRAFFIC Do Nang Toan, Nong Minh Ngoc* Institute of Information Technology, Thai Nguyen University Collision is an indispensable issue in any virtual reality (VR) system. Therefore, the research on collision detection is a top target that the virtual reality system to pays attention. This paper presents a collision detection technique based on the calculation of the oriented bounding box (OBB) and the improvement of it for collision detection. Its result has been applied to our system is "Helping you in safety traffic" - a virtual reality system simulated traffic. It can be helps human been know how to safely in traffic Keywords: Collision Detection, OBBs, AABB, VR Ngày nhận bài:08/5/2014; Ngày phản biện:20/5/2014; Ngày duyệt đăng: 09/6/2014 Phản biện khoa học: TS. Vũ Vinh Quang – Trường Đại học Công nghệ Thông tin & Truyền thông - ĐHTN * Tel: 0968 595888 169