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
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 mỗi hệ thống đồ hoạ có
những chuyển động riêng của nó, trong khi
chuyển độ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,.
Đối với phƣơng pháp phát hiện va chạm theo
các hộp bao thì ta 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 Boxe -
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 lại cho sai số nhỏ hơn nhiều.
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 hãy click vào nút Download ở trên
Tóm tắt nội dung 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
Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 161 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* 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 mỗi hệ thống đồ hoạ có những chuyển động riêng của nó, trong khi chuyển độ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,... Đối với phƣơng pháp phát hiện va chạm theo các hộp bao thì ta 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 Boxe - 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 lại cho sai số nhỏ hơn nhiều. Bài báo này sẽ trình bày kỹ thuật phát hiện va chạm dựa vào các hộp bao OBBs và đƣa ra một cải tiến để giảm thời gian xử lý các hộp bao. Cuối cùng, chúng tôi đã áp dụng kỹ thuật trên vào hệ thống “Giúp bạn đi an toàn khi tham giao thông ” - một hệ thống thực tại ảo mô 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ế nào để an toàn nhất khi tham gia giao thông. * Tel: 0968 595888 KỸ THUẬT HỘP BAO THEO HƢỚNG (ORIENTED BOUNDING BOXES) Định nghĩa hộp bao theo hƣớng (Oriented Bounding Boxes-OBBs) Trong phần này, tất cả các vectors đƣợc hiểu là trong không gian R 3 . 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 (1) Kỹ thuật phát hiện hộp bao theo hƣớng đƣợc chia làm hai mức. 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, 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 của các hộp bao. Định lý: Việc kiểm tra 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. Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 162 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 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 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 hoàn toàn có thể áp dụng định lý trên để kiểm tra va chạm giữa chúng. Phƣơng pháp kiểm tra 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 là iA hoặc jB 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 : || *)( ),( 0 V VCP dPhc 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), độ 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) Hình 2. Chiếu 8 đỉnh của hình hộp lên trục cô lập d 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à 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. (3) Đặ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 | d C0 P H Hình 1. Hình chiếu của P lên đường thẳng d Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 163 | 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 | |-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 (4) 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 (4) 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 (5) Trong đó: R = C0C1* ||V . 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 (6) B = C*A AT*B = C C = 210 2 1 0 * BBB A A A = 221202 211101 201000 BABABA BABABA BABABA (7) Từ (6) và (7) 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 = CT*B 221100 BcBcBcA iiii Nhƣ trong 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 toán các hệ số R0, R1, R ở trên thì ta sẽ làm minh họa cho hai trƣờng hợp V = iA và V = ji BA , các trƣờng hợp còn lại đƣợc tính toán tƣơng tự. - 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| + R = V * D = DAcAc *)( 120210 C0 C1 R1 R0 d Hình 3. Kết quả chiếu 2 hình hộp lên trục cô lập d Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 164 + R1 = b0*| VB *0 | + b1*| VB *1 | + b2*| VB *2 |. Ta có viết lại V dƣới dạng: V = 00 BA = 0202101000 )( BBcBcBc = - 102201 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, ta xây dựng đƣợc bảng các giá trị cho R, R0, R1 nhƣ thể hiện tại bảng 1. Tính toán điểm va chạm giữa hai OBBs Khi có va chạm giữa các OBBs xảy ra, ta sẽ thực hiện việc tìm chính xác điểm va chạm. Đố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 như sau: Mỗi khi ta thực hiện công việc kiểm 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). Bảng 1. Các giá trị R, R0, R1 Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 165 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. (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ố 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 (8) 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 giá trị các R0, R1 tại bảng 1: 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 (9) 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 (8) với jB ta đƣợc: yj = - 2 0 ** k kjkj cxDB Mặt khác, vì |yj| bj nên ta có: 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ó: Tƣơng tự nhƣ trên, ta có: Khi đó, chọn xj thuộc đoạn sau làm điểm tiếp xúc: V là vector ji BA : Để dễ trình bày, chúng ta sẽ làm minh hoạ cho một trƣờng hợpV = 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ế (8) 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 (10) Chú ý rằng, theo hàng 7 trong bảng 1 thì: ||*||*||*||* |*)(||| 012021102201 1000 cbcbcaca RRDBAR Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 166 } ||*||*||*|| *{*)*)(( 01202110220 100 cbcbcac aDBASignR Đặt )*)(( 00 DBASign , ta có (10) 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 (11) Nhận thấy: Từ (11) suy ra: Để tìm x0 và y0, nhân 2 vế của (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 2201102021 010000 2 00 0 2021012201 100000 2 00 0 **)** *(** 1 1 **)** *(** 1 1 xcxcycy cDAcDB c y ycycxcx cDBcDA 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 toán tƣơng tự nhƣ trên để tìm điểm tiếp xúc. Cuối cùng ta có bảng tổng hợp về toạ độ của tiếp điểm trong mọi trƣờng hợp sau (bảng 2). Nhƣ vậy, quá trình phát hiện va chạm đƣợc thực hiện nhanh chóng, ở mức thứ nhất cho phép phát hiện nhanh các va chạm. Việc phân chia các mức phát hiện va chạm nhƣ trên là rất hợp lý, dựa trên nhận xét là trong một hệ thống đồ hoạ 3D 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. Kỹ thuật phát hiện va chạm với các 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 toán bằng các phƣơng pháp lấy tích phân số gần đúng. 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 Fourth 4 lại cho độ chính xác cao hơn. Sau đây chúng tôi sẽ trình bày phƣơng pháp lấy tích phân số Runge–Kutta Fourth 4, là phƣơng pháp mà đã đƣợc sử dụng trong ứng dụng của chúng tôi. x1 = - *Sign(c20)*a1 x2 = *Sign(c10)*a2 y1 = - *Sign(c02)*b1 y2 = *Sign(c01)*b2 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 Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 167 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 ở thời điểm tn, để tính vector trạng thái Sn+1 ở thời điểm tiếp theo tn+1 bằng phƣơng pháp Runge–Kutta Fourth 4 nhƣ sau: Đặt h = tn+1 - tn. Gọi F(Sn, tn) là đạo hàm của Sn ở thời điểm tn Tính A1 = F(Sn, tn) Tính A2 = F(Sn + h*A1/2, tn + h/2) Tính A3 = F(Sn + h*A2/2, tn + h/2) Tính A4 = F(Sn + h*A3, tn+ h/2) Khi đó: )*2*2(* 6 43211 AAAA h SS nn Nhƣ vậy, sau khi tính toán đƣợc vector trạng thái mới cho đối tƣợng, chúng ta sẽ cập nhật đƣợc vị trí và hƣớng ở thời điểm mới. Sau đó sẽ làm lại thủ tục phát hiện va chạm cho các đối tƣợng ở thời điểm mới này với các hộp bao mới cập nhật. ỨNG DỤNG VÀO BÀI TOÁN AN TOÀN GIAO THÔNG. An toàn giao thông là vấn cấp thiết của mỗi 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, ý thức của ngƣời dân khi tham gia giao thông còn yếu kém và bản thân vẫn chƣa có các hệ thống giám sát và cảnh báo giao thông hiệu quả. Thực tại ảo là một lĩnh vực nghiên cứu mới trong công nghệ thông tin và đã tỏ ra hiệu quả trên nhiều lĩnh vực. Trong đó, lĩnh vực liên quan đến an toàn giao thông là một ví dụ. Viện CNTT đã và đang nghiên cứu về thực tại ảo và các ứng dụng của nó. Việc ứng dụng công nghệ thực tại ảo vào an toàn giao thông Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 168 là một trong những hƣớng nghiên cứu trọng điểm. Một trong những phƣơng pháp hữu hiệu để làm giảm thiểu tai nạn giao thông đó là tuyên truyền, phổ biến và cảnh báo hậu quả của tai nạn giao thông đến cho mỗi ngƣời để nâng cao ý thức chấp hành luật lệ giao thông. Do đó, việc nghiên cứu các kỹ thuật va chạm 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 thƣờng nhật để tuyên truyền, trợ giúp ngƣời tham gia giao thông biết cách đi nhƣ thế nào để an toàn nhất. Tại Việt Nam, việc tuyên truyền về an toàn giao thông đã đƣợc quan tâm thông qua các chƣơng trình truyền hình: “Tôi yêu Việt Nam”, “Dạy và học luật giao thông” Tuy 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 những diễn viên thật cho nên nhiều khi ngƣời xem thấy nó “không thật” bởi các lý do an toàn khi đóng phim. Do vậy, hiệu quả tuyên truyền không cao. Sử dụng công nghệ thực tại ảo kết hợp với các kết quả nghiên cứu va chạm ở trên, chúng tôi xây dựng hệ thống “Giúp bạn đi an toàn khi tham gia giao thông” để mô phỏng các tính huống giao thông thƣờng xảy ra trong thực tế. Mỗi tính huống sẽ dạy cho bạn biết cách đi nhƣ thế nào để an toàn nhất khi bạn gặp tình huống tƣơng tự Hiện tại, chúng tôi đã xây dựng đƣợc một tình huống đó là “Đỗ đúng phần đường quy định”, một tình huống mà theo các báo cáo về tai nạn giao thông là thƣờng xảy ra nhất. Một số cảnh của tình huống này đƣợc demo 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 vào xe máy đỗ sai đường đó Hình 7. Mở rộng mô phỏng với phương tiện ôtô tham gia giao thông Đỗ Năng Toàn và Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 120(06): 161 – 169 169 KẾT LUẬN 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. Do vậy, đã có rất nhiều kết quả nghiên cứu về vấn đề này và hầu nhƣ các nghiên cứu đó đều tập trung vào các phƣơng pháp phát hiện gần đúng va chạm dựa vào các hình bao. 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 -OBBs). Việc áp dụng kỹ thuật phát hiện va chạm dựa vào các hộp bao OBBs vào hệ thống “Giúp bạn đi an toàn khi tham gia giao thông” cho thấy kỹ thuật này đảm bảo các yêu cầu về tốc độ (tính thời gian thực) và đặc biệt là độ chính xác. TÀI LIỆU THAM KHẢO 1. David Eberly, “Dynamic Collision Detection using Oriented Bounding Boxes”, Geometric Tools, Inc, 1999. 2. Devid Eberly, “Dynamic Collision Detection using Oriented Bounding Boxes”, ,1999 3. Eugene Laptev, “Collision Detection - Fastcar”, Oxford Dynamics”, www.oxforddynamics.co.uk, 2002. 4. Diego Ruspini, Oussama Khatib, “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, 2000. 5. Nick Bobic,”Advanced Collision Detection Techniques”, 2000. 6. Russell Smith, “Open Dynamics Engine”, 2006. 7. WANG Xiao-rong, WANG Meng, Li Chun-gui, “Research on Collision Detection Algorithm Based on AABB”, 2009 Fifth International Conference on Natural Computation, pp 422-424, 2009. 8. Hu Songhua, Yu Lizhen, “Optimization of Collision Detection Algorithm based on OBB”, International Conference on Measuring Technology and Mechatronics Automation, 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
File đính kèm:
- tinh_toan_va_cham_su_dung_ky_thuat_hop_bao_theo_huong_va_ung.pdf