KR101048018B1 - Real-Time Collision Detection Method and System Using Conservative Forward Technique - Google Patents

Real-Time Collision Detection Method and System Using Conservative Forward Technique Download PDF

Info

Publication number
KR101048018B1
KR101048018B1 KR1020080135952A KR20080135952A KR101048018B1 KR 101048018 B1 KR101048018 B1 KR 101048018B1 KR 1020080135952 A KR1020080135952 A KR 1020080135952A KR 20080135952 A KR20080135952 A KR 20080135952A KR 101048018 B1 KR101048018 B1 KR 101048018B1
Authority
KR
South Korea
Prior art keywords
boundary volume
time
distance
time step
collision
Prior art date
Application number
KR1020080135952A
Other languages
Korean (ko)
Other versions
KR20100077879A (en
Inventor
김영준
탕민
Original Assignee
이화여자대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이화여자대학교 산학협력단 filed Critical 이화여자대학교 산학협력단
Priority to KR1020080135952A priority Critical patent/KR101048018B1/en
Publication of KR20100077879A publication Critical patent/KR20100077879A/en
Application granted granted Critical
Publication of KR101048018B1 publication Critical patent/KR101048018B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39082Collision, real time collision avoidance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Processing Or Creating Images (AREA)

Abstract

보수적 전진 기법을 이용한 실시간 충돌 검사 방법 및 시스템이 개시된다. 본 발명에 따른 보수적 전진 기법을 이용한 실시간 충돌 검사 방법은 (a) 충돌을 검사하고자 하는 두 모델에 대하여 경계볼륨 계층구조를 형성하는 단계; (b) 최근접 거리 질의를 수행하면서 상기 형성된 경계볼륨 계층구조를 트래버스하되, 그로 인해 얻어지는 일부의 경계볼륨 쌍들에 대하여 보수적 전진 기법을 위한 시간 스텝을 계산하고, 그들 중 최소의 시간 스텝을 구하는 단계; (c) 상기 구해진 최소의 시간 스텝에 따라 상기 두 모델 중 적어도 한 모델을 전진시킨 후 상기 (b) 단계를 반복하는 단계; 및 (d) 상기 반복되는 (b) 단계를 통하여 구해진 시간 스텝들을 합계하여 상기 두 모델의 충돌 시간을 구하는 단계를 포함하는 것을 특징으로 한다. 이러한 본 발명에 의하면 연속적 충돌 검사를 실시간으로 수행할 수 있으며, 처리 속도가 보다 빠르고 폴리곤 수프 모델에 대한 연속적 충돌 검사 속도를 개선할 수 있다.Disclosed are a real-time collision detection method and system using a conservative forward technique. Real-time collision detection method using a conservative forward technique according to the present invention comprises the steps of (a) forming a boundary volume hierarchy for the two models to be examined for collision; (b) traversing the formed boundary volume hierarchy while performing a nearest distance query, calculating a time step for the conservative advance technique for some of the resulting boundary volume pairs, and finding the minimum time step among them; ; (c) advancing at least one of the two models according to the obtained minimum time step and repeating step (b); And (d) calculating the collision times of the two models by summing the time steps obtained through the repeated step (b). According to the present invention, it is possible to perform continuous collision checking in real time, and the processing speed is faster and the continuous collision checking speed for the polygon soup model can be improved.

충돌 검사, continuous collision detection, conservative advancement Collision detection, continuous collision detection, conservative advancement

Description

보수적 전진 기법을 이용한 실시간 충돌 검사 방법 및 시스템{Method and system for continuous collision detection using conservative advancement}Method and system for real-time collision detection using conservative advance technique {Method and system for continuous collision detection using conservative advancement}

본 발명은 실시간 충돌 검사 방법 및 시스템에 관한 것으로, 특히 보수적 전진 기법을 이용한 실시간 충돌 검사 방법 및 시스템에 관한 것이다. The present invention relates to a real-time collision detection method and system, and more particularly, to a real-time collision detection method and system using a conservative forward technique.

충돌과 거리 질의는 로보틱스, 컴퓨터 그래픽, 그리고 기하학적 모델링 등에서 중요한 문제이다. 특히 신뢰성 있고 빠른 충돌 검사 알고리즘은 로봇 모션 플래닝(robot motion planning)과 비침투(non-penetration) 제약 조건을 필요로 하는 동적 시뮬레이션을 위해 요구된다. 충돌 검사 문제는 그 분야의 많은 연구자들에 의해 광범위하게 연구되어 왔다. 충돌 검사에 대한 초기의 접근 대부분은 질의된 오브젝트들이 공간 내에서 정적으로 놓여지는 정적 장면(static scenes)에 초점을 맞추었다. 최근에 연구자들은 오브젝트들이 움직임 가능한 동적 장면((dynamic scenes)에 초점을 맞추고 있다. 몇 가지 동적 시나리오에서는 오브젝트의 전체 모션 궤도(motion trajectory)는 시간의 함수로서 미리 알려질 수 있다. 대부분의 실제 시나리오들에서는 오브젝트의 모션은 선험적으로 알려지지 않고, 몇 개의 샘플된 위치들만이 알려진다. 예를 들어, 샘플링 기반의 로봇 모션 플래닝에서는 로봇 의 충돌 없는 컨피규레이션들을 샘플링하고, 그것들을 초기로부터 최종 컨피규레이션까지의 연속적인 충돌 없는 경로를 계산하는 데 사용한다. Collision and distance queries are important issues in robotics, computer graphics, and geometric modeling. In particular, reliable and fast collision checking algorithms are required for dynamic simulations that require robot motion planning and non-penetration constraints. Collision checking problems have been extensively studied by many researchers in the field. Most of the early approaches to collision checking focused on static scenes in which the queried objects were placed statically in space. In recent years, researchers have focused on dynamic scenes in which objects can move, and in some dynamic scenarios, the entire motion trajectory of an object can be known as a function of time. The motion of an object is not known a priori, only a few sampled positions are known, for example in sampling-based robot motion planning, sampling the robot's collision-free configurations, and then successively colliding them from initial to final configuration. Used to calculate missing paths.

넓은 수준에서 동적 충돌 검사 알고리즘은 불연속과 연속의 두 카테고리로 나누어질 수 있다. 불연속 알고리즘들은 정적 충돌 검사 알고리즘을 사용하여 오직 샘플링된 컨피규레이션들에서 충돌을 검사한다. 그 결과, 정적 충돌 검사 알고리즘은 두 잇따른 컨피규레이션들 사이에서 충돌을 놓칠 수 있다. 이것은 터널링 문제(tunnelling problem)라고도 알려져 있다. 반면에, 연속적 충돌 검사(Continuous Collision Detection, CCD) 알고리즘은, 첫 번째로, 잇따른 컨피규레이션들 사이에서 연속적인 모션 보간(motion interpolation)을 수행하고, 보간된 모션을 사용하여 충돌을 검사함으로써 터널링 문제를 해결할 수 있다. 따라서 CCD는 컨피규레이션들 사이의 어떠한 발생 가능한 충돌이라도 놓치지 않는다. 그러나 CCD 알고리즘의 주된 약점은 불연속 알고리즘보다 일반적으로 느리다는 것이다. 그리고 연속적 충돌 검사에서 대부분의 앞선 연구들은 다면체 모델(polyhedral model) 또는 관절 연결 모델(articulated model)에 제한되며, 이들은 커넥티비티 정보(connectivity information) 또는 토폴로지 정보(topological information)를 고려한다. 이러한 접근 방식은 커넥티비티 정보가 없는 트라이앵글 수프 모델(triangle-soup model)과 같은 폴리곤 수프 모델(polygon-soup model)로 표현되는 일반적인 모델 상에서는 처리가 불가능하다.At a broad level, dynamic collision detection algorithms can be divided into two categories: discontinuous and continuous. Discrete algorithms use a static collision checking algorithm to check for collisions only in the sampled configurations. As a result, the static collision checking algorithm may miss a collision between two subsequent configurations. This is also known as the tunneling problem. On the other hand, Continuous Collision Detection (CCD) algorithms, first of all, perform tunneling problems by performing continuous motion interpolation between subsequent configurations and checking for collisions using interpolated motion. I can solve it. Thus, the CCD does not miss any possible collisions between the configurations. However, the main weakness of CCD algorithms is that they are generally slower than discrete algorithms. And most of the previous studies in the continuous collision test are limited to a polyhedral model or an articulated model, which consider connectivity information or topology information. This approach is intractable on a generic model represented by a polygon-soup model, such as a triangle-soup model without connectivity information.

본 발명이 이루고자 하는 기술적 과제는 연속적 충돌 검사를 실시간으로 수행할 수 있으며, 처리 속도가 빠르고 폴리곤 수프 모델에도 적용 가능한, 보수적 전진 기법을 이용한 실시간 충돌 검사 방법 및 시스템, 그리고 상기 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 데 있다.The technical problem to be achieved by the present invention is to perform a continuous collision check in real time, real-time collision detection method and system using a conservative forward technique, which is fast processing speed and applicable to polygon soup model, and a program for executing the method A computer readable recording medium having recorded thereon is provided.

상기 기술적 과제를 해결하기 위하여 본 발명의 일 태양에 따른 보수적 전진 기법을 이용한 실시간 충돌 검사 방법은, (a) 충돌을 검사하고자 하는 두 모델에 대하여 경계볼륨 계층구조를 형성하는 단계; (b) 최근접 거리 질의를 수행하면서 상기 형성된 경계볼륨 계층구조를 트래버스하되, 그로 인해 얻어지는 일부의 경계볼륨 쌍들에 대하여 보수적 전진 기법을 위한 시간 스텝을 계산하고, 그들 중 최소의 시간 스텝을 구하는 단계; (c) 상기 구해진 최소의 시간 스텝에 따라 상기 두 모델 중 적어도 한 모델을 전진시킨 후 상기 (b) 단계를 반복하는 단계; 및 (d) 상기 반복되는 (b) 단계를 통하여 구해진 시간 스텝들을 합계하여 상기 두 모델의 충돌 시간을 구하는 단계를 포함하는 것을 특징으로 한다.In order to solve the above technical problem, a real-time collision detection method using a conservative forward technique according to an aspect of the present invention, (a) forming a boundary volume hierarchy for the two models to examine the collision; (b) traversing the formed boundary volume hierarchy while performing a nearest distance query, calculating a time step for the conservative advance technique for some of the resulting boundary volume pairs, and finding the minimum time step among them; ; (c) advancing at least one of the two models according to the obtained minimum time step and repeating step (b); And (d) calculating the collision times of the two models by summing the time steps obtained through the repeated step (b).

상기 기술적 과제를 해결하기 위하여 본 발명의 일 태양에 따른 보수적 전진 기법을 이용한 실시간 충돌 검사 시스템은, 충돌을 검사하고자 하는 두 모델에 대하여 경계볼륨 계층구조를 형성하는 경계볼륨 계층구조 형성부; 최근접 거리 질의를 수행하면서 상기 형성된 경계볼륨 계층구조를 트래버스하되, 그로 인해 얻어지는 일부의 경계볼륨 쌍들에 대하여 보수적 전진 기법을 위한 시간 스텝을 계산하고 그들 중 최소의 시간 스텝을 구하며, 모델 전진부에 의해 전진된 모델을 가지고 이를 반복 수행하는 시간 스텝 계산부; 상기 구해진 최소 시간 스텝만큼 상기 두 모델 중 적어도 한 모델을 전진시키는 모델 전진부; 및 상기 시간 스텝 계산부를 통하여 구해진 시간 스텝들을 합계하여 상기 두 모델의 충돌 시간을 구하는 충돌 시간 계산부를 포함하는 것을 특징으로 한다.In order to solve the above technical problem, a real-time collision detection system using a conservative forward technique according to an aspect of the present invention, the boundary volume layer structure forming unit for forming a boundary volume hierarchy for the two models to examine the collision; While traversing the boundary volume hierarchy formed while performing the nearest distance query, the time step for the conservative advance technique is calculated and the minimum time step among them is calculated for some boundary volume pairs obtained. A time step calculator which repeats this with the advanced model; A model advancement unit for advancing at least one of the two models by the obtained minimum time step; And a collision time calculator that calculates the collision time of the two models by summing the time steps obtained through the time step calculator.

상기 기술적 과제를 해결하기 위하여 본 발명의 다른 일 태양에 따른 보수적 전진 기법을 이용한 실시간 충돌 검사 방법은, 최근접 거리 질의를 수행하면서 보수적 전진을 위한 시간 스텝을 구하는 과정을 반복하되, 상기 시간 스텝을 구하는 과정을 위한 입력으로서, 두 모델의 경계볼륨 계층구조의 두 노드와, 앞서 구해진 현재 최근접 거리와, 앞서 구해진 현재 시간 스텝을 입력받고, 상기 시간 스텝을 구하는 과정은, (a) 상기 두 노드가 리프 노드라면 해당 경계볼륨 쌍의 거리를 구하고 상기 구해진 거리를 상기 현재 최근접 거리와 비교하여 그 결과에 따라 상기 현재 최근접 거리를 업데이트하고 상기 해당 경계볼륨 쌍에 대하여 보수적 전진을 위한 시간 스텝을 계산하고 상기 계산된 시간 스텝을 상기 현재 시간 스텝과 비교하여 그 결과에 따라 상기 현재 시간 스텝을 업데이트하는 단계; 및 (b) 상기 두 노드 중 적어도 하나가 리프 노드가 아니라면, 상기 적어도 하나의 노드의 자식 노드 및 다른 노드에 해당하는 경계볼륨 쌍의 거리를 구하고 상기 구해진 거리를 상기 현재 최근접 거리와 비교하고, 그 결과에 따라 선택적으로, 상기 자식 노드 및 상기 다른 노드를 입력으로 하여 재귀적으로 상기 시간 스텝을 구하는 과정을 수행하거나 상기 자식 노드 및 상기 다른 노드에 해당하는 경계볼륨 쌍에 대하여 보수 적 전진을 위한 시간 스텝을 계산하는 단계를 포함하는 것을 특징으로 한다. In order to solve the above technical problem, a real-time collision inspection method using a conservative forward technique according to another aspect of the present invention, while repeating the process of obtaining a time step for conservative forward while performing the nearest distance query, As an input for the obtaining process, receiving the two nodes of the boundary volume hierarchy of the two models, the previously obtained current nearest distance, and the previously obtained current time step, and obtaining the time step may include (a) the two nodes. Is a leaf node, obtains the distance of the boundary volume pair, compares the calculated distance with the current nearest distance, updates the current nearest distance according to the result, and obtains a time step for conservative advancement of the boundary volume pair. Calculate and compare the calculated time step with the current time step and accordingly Updating the current time step; And (b) if at least one of the two nodes is not a leaf node, obtain a distance of a boundary volume pair corresponding to a child node and another node of the at least one node, and compare the obtained distance with the current nearest distance, According to the result, optionally, the child node and the other node are inputted to recursively obtain the time step or to conservatively advance the boundary volume pairs corresponding to the child node and the other node. Calculating a time step.

또한, 상기 기술적 과제를 해결하기 위하여 상기된 본 발명에 따른, 보수적 전진 기법을 이용한 실시간 충돌 검사 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.In addition, the present invention provides a computer-readable recording medium having recorded thereon a program for executing a real-time collision detection method using a conservative forward technique according to the present invention.

상기된 본 발명에 의하면, 연속적 충돌 검사를 실시간으로 수행할 수 있으며, 처리 속도가 보다 빠르고 폴리곤 수프 모델에 대한 연속적 충돌 검사 속도를 개선할 수 있다. According to the present invention described above, the continuous collision check can be performed in real time, the processing speed is faster and the continuous collision check speed for the polygon soup model can be improved.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, substantially the same components are denoted by the same reference numerals, and redundant description will be omitted. In addition, in the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

먼저, 본 발명의 일 실시예에서 채용하는 보수적 전진(conservative advancement) 기법에 관하여 설명하기로 한다. 도 1은 보수적 전진 기법을 설명하기 위한 참고도로서, line swept sphere를 예로 든 것이다.

Figure 112008090069691-pat00001
Figure 112008090069691-pat00002
를 3D 내의 두 폴리곤-수프 모델을 감싸는 컨벡스 경계 볼륨이라고 하고, 여기서
Figure 112008090069691-pat00003
는 강체 변환(rigid transformation) M(t) 하에서 움직일 수 있고,
Figure 112008090069691-pat00004
는 고정되어 있다고 하자.
Figure 112008090069691-pat00005
가 고정되어 있다고 하더라도 일반성을 잃지 않는다. 그리고
Figure 112008090069691-pat00006
의 초기와 마지막 컨피규레이션이 시간 t=0 와 시간 t=1에서 각각
Figure 112008090069691-pat00007
Figure 112008090069691-pat00008
으로 주어진다고 가정하고,
Figure 112008090069691-pat00009
=M(t)
Figure 112008090069691-pat00010
라 정의한다. 그러면 연속적 충돌 검사의 문제는 다음 수학식 1이 비공백(non-empty)인지 검사하는 것으로 공식화될 수 있다.First, a conservative advancement technique employed in an embodiment of the present invention will be described. 1 is a reference diagram for explaining a conservative forward technique, taking a line swept sphere as an example.
Figure 112008090069691-pat00001
Wow
Figure 112008090069691-pat00002
Is called the convex boundary volume that encloses two polygon-soup models in 3D, where
Figure 112008090069691-pat00003
Can move under rigid transformation M (t),
Figure 112008090069691-pat00004
Is fixed.
Figure 112008090069691-pat00005
Even if is fixed, it does not lose its generality. And
Figure 112008090069691-pat00006
The initial and last configuration of are at time t = 0 and time t = 1 respectively
Figure 112008090069691-pat00007
Wow
Figure 112008090069691-pat00008
Assume that given by
Figure 112008090069691-pat00009
= M (t)
Figure 112008090069691-pat00010
It is defined as The problem of continuous collision checking can then be formulated as checking that Equation 1 is non-empty.

Figure 112008090069691-pat00011
Figure 112008090069691-pat00011

나아가, 만일 상기 수학식 1이 비공백이라면, 이식을 만족시키는 t 의 최소 값인 최초 접촉 시간(time of contact, TOC) τ 를 계산한다.Furthermore, if Equation 1 is non-blank, calculate the initial time of contact (TOC) τ, which is the minimum value of t that satisfies the transplant.

보수적 전진 기법은 두 컨벡스(convex) 오브젝트들 사이에서 충돌을 피하는 동안에 반복적으로

Figure 112008090069691-pat00012
를 Δti 만큼
Figure 112008090069691-pat00013
를 향하여 전진시킴으로써 τ 의 하계(lower bound)를 계산하는 단순한 테크닉이다. 도 1을 참조하면, Δti
Figure 112008090069691-pat00014
Figure 112008090069691-pat00015
사이의 가장 가까운 거리
Figure 112008090069691-pat00016
에 대한 하계와 단위 시간당
Figure 112008090069691-pat00017
로 사영되는
Figure 112008090069691-pat00018
의 모션의 상계(upper bound) μ 에 기초하여 계산된다. 즉, 다음 수학식과 같다.Conservative forward techniques repeatedly iterate while avoiding collisions between two convex objects.
Figure 112008090069691-pat00012
By Δt i
Figure 112008090069691-pat00013
It is a simple technique to calculate the lower bound of τ by advancing toward. Referring to Figure 1, Δt i is
Figure 112008090069691-pat00014
Wow
Figure 112008090069691-pat00015
The closest distance between
Figure 112008090069691-pat00016
Summer and unit per hour for
Figure 112008090069691-pat00017
Projected with
Figure 112008090069691-pat00018
Calculated based on the upper bound μ of the motion of. That is, it is as follows.

Figure 112008090069691-pat00019
Figure 112008090069691-pat00019

그러면, 최초 접촉 시간은,

Figure 112008090069691-pat00020
Figure 112008090069691-pat00021
간의 최소 거리인
Figure 112008090069691-pat00022
가 어떤 사용자 지정된 거리 임계값보다 작을 때까지, 전진 시간 스텝(advancement time-step)을 반복하고 그것을 합계함으로써(즉,
Figure 112008090069691-pat00023
) 구해진다.Then the initial contact time is
Figure 112008090069691-pat00020
Wow
Figure 112008090069691-pat00021
Is the minimum distance between
Figure 112008090069691-pat00022
By repeating the advance time-step and summing it up (i. E., Until <
Figure 112008090069691-pat00023
)

도 2는 본 발명의 일 실시예에 따른 보수적 전진 기법을 이용한 실시간 충돌 검사 방법의 흐름도이다. 본 실시예에서는,

Figure 112008090069691-pat00024
의 초기 및 최종 컨피규레이션만이
Figure 112008090069691-pat00025
Figure 112008090069691-pat00026
으로 주어지는 것으로 가정한다. 이 컨피규레이션들을 이용하여
Figure 112008090069691-pat00027
Figure 112008090069691-pat00028
을 보간하기 위하여, 일정한 병진 속도(translational velocity)와 회전 속도(rotational velocity)를 가지는 연속 모션 M(t)를 생성한다. 이에 관하여는 문 헌 [X. Zhang, M. Lee, and Y. J. Kim, "Interactive continuous collision detection for non-convex polyhedra," The Visual Computer, pp. 749??760, 2006.]에 자세히 설명되어 있다.2 is a flowchart of a real-time collision detection method using a conservative forward technique according to an embodiment of the present invention. In this embodiment,
Figure 112008090069691-pat00024
Only the initial and final configuration of the
Figure 112008090069691-pat00025
Wow
Figure 112008090069691-pat00026
Assume that given by Using these configurations
Figure 112008090069691-pat00027
Wow
Figure 112008090069691-pat00028
In order to interpolate, a continuous motion M (t) having a constant translational velocity and a rotational velocity is generated. In this regard, Moon Hun [X. Zhang, M. Lee, and YJ Kim, "Interactive continuous collision detection for non-convex polyhedra," The Visual Computer, pp. 749 ?? 760, 2006.].

도 2를 참조하면, 전처리로서 210단계에서, 충돌을 검사하고자 하는 두 모델에 대하여 경계볼륨 계층구조(bounding volume hierarchy, BVH)를 형성한다. 일 실시예로서, swept sphere volume(SSV) 계층구조를 사용한다. SSV는 이른바 point swept sphere(PSS), line swept sphere(LSS) 그리고 rectangle swept sphere(RSS) 중 하나로 구성되는 경계볼륨이다. SSV 계층구조는 SSV를 노드로 사용하면서 재귀적으로 형성된다. 도 3은 두 모델에 대하여 형성된 경계볼륨 계층구조의 간단한 예를 나타낸다. SSV 계층구조의 형성과 그것을 사용한 거리 및 근접 계산에 관하여는 문헌 [E. Larsen, S. Gottschalk, M. Lin, and D. Manocha, ""Fast proximity queries with swept sphere volumes,"" Department of Computer Science, University of North Carolina, Tech. Rep. TR99-018, 1999.]에 자세히 설명되어 있다.Referring to FIG. 2, in step 210 as a preprocess, a bounding volume hierarchy (BVH) is formed for two models for which collision is to be checked. In one embodiment, a swept sphere volume (SSV) hierarchy is used. SSV is a boundary volume consisting of one of the so-called point swept sphere (PSS), line swept sphere (LSS) and rectangle swept sphere (RSS). SSV hierarchy is formed recursively using SSV as a node. 3 shows a simple example of the boundary volume hierarchy formed for the two models. Formation of SSV hierarchies, distance and proximity calculations using them are described in E. Larsen, S. Gottschalk, M. Lin, and D. Manocha, "" Fast proximity queries with swept sphere volumes, "" Department of Computer Science, University of North Carolina, Tech. Rep. TR99-018, 1999.].

220단계에서는, 상기 형성된 BVH를 가지고, 최근접 거리 질의(closest distance queries)를 수행하면서 BVH를 트래버스(traverse)하되, 그로 인해 얻어지는 일부의 경계볼륨 쌍들에 대하여 보수적 전진 기법을 위한 시간 스텝을 계산하고 그들 중 최소의 시간 스텝을 구한다.In step 220, the BVH is traversed while performing close distance queries with the BVH, and the time step for the conservative forward technique is calculated for some boundary volume pairs. Find the minimum time step among them.

본 단계에서, 보수적 전진의 시간 스텝의 계산은 BVH 내의 노드들에 선택적으로 적용된다. 상기 수학식 2에서 알 수 있듯이, 보수적 전진 기법은 가장 가까운 거리와 모션 바운드의 두 가지 성분을 필요로 한다. 따라서 SSV들 간의 가장 가까운 거리와 모션 바운드를 계산할 필요가 있다. SSV들 간의 가장 가까운 거리는 최근접 거리 질의(closest distance query) 수행 동안에 부산물로서 얻어지나, SSV에 대한 모션의 밀착 상한(tight upper bound) μ 를 계산해야 한다. 이에 관하여는 후술하기로 한다.In this step, the calculation of the time step of conservative advance is optionally applied to the nodes in the BVH. As can be seen from Equation 2, the conservative forward technique requires two components, the closest distance and the motion bound. Therefore, it is necessary to calculate the closest distance and motion bound between SSVs. The closest distance between SSVs is obtained as a byproduct during close distance query performance, but the tight upper bound μ of motion for SSV should be calculated. This will be described later.

또한, 본 단계에서 중요한 계산은 계층구조 내의 어떠한 노드들이 보수적 전진의 시간 스텝의 계산을 위한 후보가 될 것인지 결정하는 것이다. 한 가지 선택은 최근접 질의 동안에 BVH의 트래버스를 멈추는 노드-이들을 프론트 노드(front nodes)라 부른다-로 하는 것이다. 왜냐하면 이 노드들이 다른 노드들보다 τ 를 실현하기에 더 높은 확률을 가지기 때문이다. 그러나 계층구조 내의 프론트 노드들의 깊이는 비교적 깊고 따라서 프론트 노드들의 개수 또한 많다. 연속적 충돌 검사에서는 이 노드들에 반복적으로 보수적 전진 기법을 적용하는 것을 필요로 하기 때문에 프론트 노드들의 깊이 또는 개수는 알고리즘의 성능에 영향을 준다. 따라서 일 실시예에서, 보수적 전진의 반복 동안에 프론트 노드들의 깊이를 조절함으로써 성능을 향상시키는 기법을 제시한다. 이에 관하여도 후술하기로 한다.In addition, an important calculation in this step is to determine which nodes in the hierarchy will be candidates for the calculation of the time step of conservative advancement. One choice is to have nodes that stop traversing the BVH during the nearest query, which are called front nodes. This is because these nodes have a higher probability of realizing τ than other nodes. However, the depth of the front nodes in the hierarchy is relatively deep and therefore the number of front nodes is also large. The depth or number of front nodes affects the performance of the algorithm because successive collision checks require the application of conservative forward techniques repeatedly to these nodes. Thus, in one embodiment, a technique for improving performance by adjusting the depth of front nodes during an iteration of conservative advance is presented. This will also be described later.

도 2를 참조하면, 220단계에서 최소의 시간 스텝이 구해지면 230단계에서는 그 최소 시간 스텝만큼 두 모델 중 어느 한 모델(또는 두 모델을 각각)을 전진시킨다. 그리고 240단계에서 두 모델 간의 최근접 거리(이 거리는 상기 220단계의 최근접 거리 질의를 통해 구해진다)가 사용자 지정된 소정 임계값보다 작은지 검사하고, 그렇지 않다면 다시 220단계로 돌아가서 전진된 모델을 가지고 220단계를 수행 한다. Referring to FIG. 2, when a minimum time step is obtained in step 220, in step 230, one of the two models (or two models respectively) is advanced by the minimum time step. In step 240, the closest distance between the two models (this distance is obtained through the closest distance query in step 220) is less than a predetermined predetermined threshold value, and if not, the control returns to step 220 with the advanced model. Perform step 220.

220 내지 240단계를 다수 회 반복하고 난 뒤에, 240단계에서 두 모델 간의 거리가 상기 소정 임계값보다 작은 것으로 검사되면 250단계로 진행하여 반복된 220단계들을 통하여 구해진 시간 스텝들을 합계하여 두 모델의 충돌 시간(TOC)을 구한다. After repeating steps 220 to 240 a plurality of times, if it is determined in step 240 that the distance between the two models is smaller than the predetermined threshold value, the process proceeds to step 250 and the two models collide by summing the time steps obtained through the repeated 220 steps. Find the time (TOC).

이하, 본 발명의 일 실시예에 따라 SSV에 대한 모션의 밀착 상한 μ 를 계산하는 과정을 설명한다. 여기에서, 경계볼륨과 삼각형 프리미티브에 관한 모션 바운드 μ 를 구하는 방법을 제시한다. 이 프리미티브들은 일정한 병진 속도 v 와 회전 속도 ω 를 가지는 강체 변환 M(t)를 따르는 것으로 가정한다. Hereinafter, a process of calculating the upper limit μ of the motion with respect to the SSV according to an embodiment of the present invention will be described. Here, we present a method for obtaining the motion bound μ for boundary volumes and triangular primitives. These primitives are assumed to follow the rigid body transformation M (t) with a constant translation speed v and rotational speed ω.

먼저, 경계볼륨에 대한 모션 바운드 μ 를 구하는 방법을 설명한다. 본 실시예에서 경계볼륨의 선택은 SSV이다. SSV는 PSS, LSS, 그리고 RSS 로 구성되는데, 이들은 3D 내에서 구(sphere)와 점(point), 직선(line), 그리고 직사각형(rectangle)의 민코우스키 합(Minkowski sum)들로 각각 정의된다. 도 4는 PSS, LSS, 그리고 RSS를 나타낸 도면이다. α 를 모션 바운드를 계산하고자 하는

Figure 112008090069691-pat00029
를 구성하는 경계볼륨 또는 삼각형 프리미티브라 하고 β를
Figure 112008090069691-pat00030
를 구성하는 경계볼륨 또는 삼각형 프리미티브라 하자. 나아가,
Figure 112008090069691-pat00031
를 α 상의 점이라 하고,
Figure 112008090069691-pat00032
을 α, β 사이의 가장 가까운 방향이라 하고,
Figure 112008090069691-pat00033
Figure 112008090069691-pat00034
가 속한 로컬 바디 프레임의(local body frmae)의 원점으로부터
Figure 112008090069691-pat00035
로의 벡터라 하자. 그러면
Figure 112008090069691-pat00036
위로 사영되는 α 의 최대 궤도 길이(또는 모션 바운드)는 다음 수학식과 같다.First, a method of obtaining the motion bound μ for the boundary volume will be described. In this embodiment, the selection of the boundary volume is SSV. SSV is composed of PSS, LSS, and RSS, which are defined as Minkowski sums of spheres, points, lines, and rectangles in 3D, respectively. . 4 is a diagram illustrating a PSS, an LSS, and an RSS. to calculate the motion bound of α
Figure 112008090069691-pat00029
Is the boundary volume or triangle primitive that
Figure 112008090069691-pat00030
Let it be the boundary volume or triangle primitive constituting. Furthermore,
Figure 112008090069691-pat00031
Is a point on α,
Figure 112008090069691-pat00032
Is the closest direction between α and β,
Figure 112008090069691-pat00033
To
Figure 112008090069691-pat00034
From the origin of the local body frame it belongs to
Figure 112008090069691-pat00035
Let's call it a vector. then
Figure 112008090069691-pat00036
The maximum orbital length (or motion bound) of α projected up is given by the following equation.

Figure 112008090069691-pat00037
Figure 112008090069691-pat00037

여기서,

Figure 112008090069691-pat00038
이고,
Figure 112008090069691-pat00039
은 M(t)의 회전 성분이다. 상기 수학식 3에서, 첫 번째 항은 상수이므로, 두 번째 항을 최대화여야 한다. 여기서,
Figure 112008090069691-pat00040
는 동일 평면 상에 있고(coplanar), 노멀(normal)이 ω 인 평면 S를 형성하게 된다. 상기 수학식 3에서 두 번째 항의 극대치는 아래 수학식에 보여지는 바와 같이 평면 S 상으로의
Figure 112008090069691-pat00041
의 최대 투사(maximal projection)에 의해 얻어질 수 있다. 즉, α 를 SSV라 하면, α 의 모션 바운드 μ 는 다음 수학식과 같다.here,
Figure 112008090069691-pat00038
ego,
Figure 112008090069691-pat00039
Is the rotational component of M (t). In Equation 3, since the first term is a constant, the second term should be maximized. here,
Figure 112008090069691-pat00040
Is coplanar and forms a plane S with normal ω. The maximal value of the second term in Equation (3) above the plane S phase as shown in the following equation.
Figure 112008090069691-pat00041
It can be obtained by maximal projection of. That is, if α is SSV, the motion bound μ of α is expressed by the following equation.

Figure 112008090069691-pat00042
Figure 112008090069691-pat00042

여기서,

Figure 112008090069691-pat00043
이고, r 은 SSV를 형성하기 위해 사용되는 구의 반지름이며,
Figure 112008090069691-pat00044
는 SSV의 생성 프리미티브(PSS, LSS 및 RSS의 생성 프리미티브는 각각 점, 직선, 직사각형이다)의 끝점(endpoint)이다. here,
Figure 112008090069691-pat00043
R is the radius of the sphere used to form the SSV,
Figure 112008090069691-pat00044
Is the endpoint of the SSV generation primitives (PSS, LSS and RSS generation primitives are points, straight lines, and rectangles, respectively).

나아가, 모든 세 타입의 SSV에 대하여

Figure 112008090069691-pat00045
라 할 수 있다. 여기서
Figure 112008090069691-pat00046
Figure 112008090069691-pat00047
의 바디 프레임의 원점으로부터 SSV의 생성 프리미티브 상의 한 점으로의 벡 터이다. 그러면 다음 수학식을 얻을 수 있다.Furthermore, for all three types of SSV
Figure 112008090069691-pat00045
It can be said. here
Figure 112008090069691-pat00046
Is
Figure 112008090069691-pat00047
Is the vector from the origin of the body frame to a point on the generation primitive of the SSV. Then we can get

Figure 112008090069691-pat00048
Figure 112008090069691-pat00048

여기서,

Figure 112008090069691-pat00049
Figure 112008090069691-pat00050
의 평면 S 로의 사영이다. here,
Figure 112008090069691-pat00049
Is
Figure 112008090069691-pat00050
Projection to plane S of.

사영 기하 이론에 따르면, 점의 평면으로의 사영은 점이고, 직선의 평면으로의 사영은 직선 또는 점이며, 직사각형의 평면으로의 사영은 사각형 또는 직선이다. 따라서

Figure 112008090069691-pat00051
의 평면 S 로의 사영은 SSV의 생성 프리미티브의 평면 S로의 사영 내에 존재하여야 하고, 다음 수학식을 얻을 수 있다.According to the projection geometric theory, the projection of a point into a plane is a point, the projection of a straight line into a plane is a straight line or a point, and the projection of a rectangular plane into a plane is a rectangle or a straight line. therefore
Figure 112008090069691-pat00051
The projection into plane S of must be within the projection of the generation primitive of SSV into plane S, and the following equation can be obtained.

Figure 112008090069691-pat00052
Figure 112008090069691-pat00052

상기된 수학식 3, 5, 6에 의해 상기 수학식 4가 증명된다.Equation 4 is proved by Equations 3, 5, and 6 described above.

이제 삼각형 프리미티브에 대한 모션 바운드 μ 를 구하는 방법을 설명한다. 삼각형 프리미티브의 모션 바운드는 삼각형의 정점들(vertices)을 사영의 범위의 경계로 사영함으로써 얻을 수 있다. 즉, α 를 삼각형 프리미티브라 하면, α 의 모션 바운드 μ 는 다음 수학식과 같다.We now describe how to find the motion bound μ for a triangular primitive. The motion bound of the triangle primitive can be obtained by projecting the vertices of the triangle to the boundaries of the projection range. That is, if α is a triangular primitive, the motion bound μ of α is expressed by the following equation.

Figure 112008090069691-pat00053
Figure 112008090069691-pat00053

여기서,

Figure 112008090069691-pat00054
이며,
Figure 112008090069691-pat00055
는 α 의 정점들이다. 증명은 상기 수학식 4와 유사하므로 생략한다.here,
Figure 112008090069691-pat00054
Is,
Figure 112008090069691-pat00055
Are the vertices of α. The proof is similar to Equation 4, and is omitted.

이제, 본 발명의 일 실시예에서, 보수적 전진의 반복 동안에 프론트 노드들의 깊이를 조절함으로써 성능을 향상시키는 기법에 관하여 설명한다. 기본적인 아이디어는 초기 몇 번의 보수적 전진의 반복들 동안에는 가장 가까운 거리를 정확하게 계산할 필요가 없다는 것이다. 다만 보수적 전진의 마지막 반복을 향해서는 정확한 거리를 필요로 한다. 거리 근사 정도의 선택이 프론트 노드들의 깊이 또는 그들의 개수를 결정하게 된다. Now, in one embodiment of the present invention, a technique for improving performance by adjusting the depth of front nodes during an iteration of conservative advance is described. The basic idea is that for the first few iterations of conservative advance it is not necessary to accurately calculate the closest distance. Only the correct distance is needed for the final iteration of conservative advancement. The choice of distance approximation will determine the depth of the front nodes or their number.

본 실시예의 설명에 앞서, 실시간 충돌 검사를 수행하기 위한 코스트 함수를 분석하기로 한다. 실시간 충돌 검사의 성능을 측정하기 위한 간단한 공식을 다음 수학식과 같이 나타낼 수 있다.Prior to the description of this embodiment, the cost function for performing the real-time collision check will be analyzed. A simple formula for measuring the performance of the real-time collision check can be expressed as the following equation.

Figure 112008090069691-pat00056
Figure 112008090069691-pat00056

여기서, T는 실시간 충돌 검사에 대한 전체 코스트 함수이며, TBVH 는 각 모델에 대하여 BVH 를 형성하기 위한 코스트이고, Nτ 는 τ 를 찾기 위한 보수적 전진 반복의 총 회수이고, NBV 는 보수적 전진이 적용되는, 즉 시간 스텝을 계산하는 경계볼륨 쌍(pair)들의 개수이고, TCA 는 상기 수학식 2에 의한 보수적 전진 수식을 계산하기 위한 코스트이다. 일반적으로, TBVH 와 TCA는 런타임 동안에는 상수이므로, 성능을 향상시키기 위해서는 Nτ 와 NBV 를 줄일 필요가 있다. Where T is the overall cost function for the real-time collision check, T BVH is the cost to form BVH for each model, N τ is the total number of conservative forward iterations to find τ, and N BV is the conservative forward Is the number of boundary volume pairs applied, i.e., calculates the time step, and T CA is the cost for calculating the conservative forward equation according to Equation 2 above. In general, since T BVH and T CA are constants during run time, it is necessary to reduce N τ and N BV to improve performance.

이미 설명한 바와 같이, 본 실시예에서는 보수적 전진 기법을 최근접 거리 질의 동안에 발견되는 프론트 노드들에 적용한다. 따라서 NBV 는 이 프론트 노드들의 개수에 해당한다. NBV 를 줄이기 위해서, 프론트 노드들의 깊이를 줄이거나 조절할 필요가 있는데, 본 실시예에서는 최근접 거리 질의 동안에 BVH의 트래버스를 일찍 터미네이트함으로써 그렇게 한다. As already explained, this embodiment applies a conservative forward technique to the front nodes found during the nearest distance query. Therefore, N BV corresponds to the number of these front nodes. In order to reduce N BV , it is necessary to reduce or adjust the depth of the front nodes, in this embodiment by doing so by terminating the traverse of BVH early during the nearest distance query.

도 5는 다른 깊이 값들을 가지는 프론트 노드들을 도식화한 그림으로서, 근사적 및 정확한 거리 값을 가지고 최근접 거리 질의 동안에 재귀호출(recursion)을 일찍 터미네이트함으로써 서로 다른 프론트 노드가 얻어짐을 보여 준다. 도 5를 참조하면, 이른 터미네이션의 결과, 일반적으로 실제 최근접 거리보다 작은 단지 근사적인 거리가 도출된다. 따라서

Figure 112008090069691-pat00057
가 원래 나올 값보다 더 작기 때문에 상기 수학식 2에 기초한 전진 시간 스텝 Δti 는 역시 덜 엄격할 것이다. FIG. 5 is a diagram of front nodes with different depth values, showing that different front nodes are obtained by terminating recursion early during the nearest distance query with approximate and accurate distance values. Referring to FIG. 5, the result of the early termination generally yields only approximate distances smaller than the actual nearest distance. therefore
Figure 112008090069691-pat00057
The advancing time step Δt i based on Equation 2 above would also be less stringent because is smaller than the original value.

다만 몇 번의 반복에 대하여 NBV 를 줄임으로써 결국 더 많은 보수적 전진의 반복을 필요로 할 수 있다. 따라서 Nτ 와 NBV를 모두 동시에 줄이는 것은 거의 불가능할 수 있다. 그러므로 코스트 함수를 최소화시키기 위해 Nτ 와 NBV 의 균형을 맞출 필요가 있다. 일 실시예로서, 과도한 보수적 전진의 반복 회수를 방지하기 위하 여, 각 반복에 대하여 근사적인 거리가 어떤 임계값보다 작은지 또는 현재까지의 반복 회수 Nτ 가 너무 크게 되었는지를 검사한다. 만일 그렇다면 BVH 트래버스의 이른 터미네이션을 하지 않고 보통의 최근접 거리 질의 방식으로 돌아간다.Reducing N BV for just a few iterations may eventually require more conservative forward iterations. Therefore, it may be nearly impossible to reduce both N τ and N BV simultaneously. Therefore, it is necessary to balance N τ and N BV to minimize the cost function. As an example, to prevent the number of repetitions of excessive conservative advances, it is checked for each iteration that the approximate distance is less than which threshold or the number of repetitions N τ to date is too large. If so, return to the normal nearest-range query method without early termination of the BVH traverse.

최근접 거리 질의 동안에 이른 터미네이션을 수행하기 위한 방법으로서 일 실시예에서, 거리 질의를 위한 재귀호출(recursive call) 동안에, 앞서 얻어진 현재 최근접 거리보다 작게 수정된 거리(이하, 수정 현재 최근접 거리)를 현재 최근접 거리처럼 가장하여 재귀 함수에게 제공하는 것이다. 이것은 그 재귀가 가장된 현재 최근접 거리 값을 향상시킬 수 없을 때 재귀적인 거리 질의가 일찍 터미네이트되도록 유발한다. 마지막으로, 모든 재귀가 끝나면, 재귀가 중단된 프론트 노드들을 수집하고 그들에 대하여 보수적 전진 작업을 수행한다. 즉, 프론트 노드들에 해당하는 경계볼륨 쌍들에 대하여 보수적 전진을 위한 시간 스텝을 계산한다.In one embodiment, as a method for performing early termination during a nearest distance query, during a recursive call for a distance query, a modified distance (hereinafter, modified current nearest distance) that is smaller than a previously obtained nearest distance. Is supplied to the recursive function by pretending to be the current nearest distance. This causes the recursive distance query to be terminated early when the recursion cannot improve the simulated current nearest distance value. Finally, after all recursions are completed, we collect the front nodes that have stopped recursion and perform conservative forward operations on them. That is, a time step for conservative advancement is calculated for boundary volume pairs corresponding to front nodes.

도 6은 상기 220단계의 구체적인 일 실시예의 수도코드(pseudocode)를 나타낸다. 도시된 수도코드를 편의상 C2A라 칭하기로 한다. 도시된 수도코드는 입력으로서, BVH의 노드들

Figure 112008090069691-pat00058
Figure 112008090069691-pat00059
, 현재 최근접 거리
Figure 112008090069691-pat00060
, 현재 전진 시간 스텝
Figure 112008090069691-pat00061
, 그리고 재귀의 터미네이션을 조절하기 위한 변수 값
Figure 112008090069691-pat00062
를 입력으로 한다. 출력으로는 업데이트된
Figure 112008090069691-pat00063
Figure 112008090069691-pat00064
가 출력되며, 출력된
Figure 112008090069691-pat00065
Figure 112008090069691-pat00066
는 다음 반복을 위한 입력이 된다. 처음 실행에서는 BVH의 루트 노드
Figure 112008090069691-pat00067
Figure 112008090069691-pat00068
, 현재 최근접 거리로서 ∞, 현재 전진 시간 스텝으로서 1, 그리고
Figure 112008090069691-pat00069
(
Figure 112008090069691-pat00070
)가 입력된다. 변수 값
Figure 112008090069691-pat00071
는 사용자에 의해 미리 지정될 수 있다. FIG. 6 illustrates a pseudocode of a specific embodiment of step 220. The illustrated water code will be referred to as C 2 A for convenience. The water code shown is an input, nodes of BVH
Figure 112008090069691-pat00058
Wow
Figure 112008090069691-pat00059
, Current nearest street
Figure 112008090069691-pat00060
, Current forward time step
Figure 112008090069691-pat00061
, And variable values to control recursion termination
Figure 112008090069691-pat00062
As input. Updated as output
Figure 112008090069691-pat00063
And
Figure 112008090069691-pat00064
Is outputted, and
Figure 112008090069691-pat00065
And
Figure 112008090069691-pat00066
Is the input for the next iteration. In the first run, the root node of BVH
Figure 112008090069691-pat00067
Wow
Figure 112008090069691-pat00068
∞ as the current nearest distance, 1 as the current forward time step, and
Figure 112008090069691-pat00069
(
Figure 112008090069691-pat00070
) Is entered. Variable value
Figure 112008090069691-pat00071
May be predefined by the user.

도 6을 참조하면, 우선 라인 1 내지 3에서, 보수적 전진의 반복 회수, 즉 220단계의 반복 회수가 소정 임계값

Figure 112008090069691-pat00072
보다 크거나, 또는 앞선 반복에서 얻어진 현재 최근접 거리
Figure 112008090069691-pat00073
가 소정 임계값
Figure 112008090069691-pat00074
보다 작은지 검사하고, 그렇다면
Figure 112008090069691-pat00075
=1로 리셋한다. 보수적 전진의 반복이 진행될수록 그 반복 회수는 늘어나고
Figure 112008090069691-pat00076
는 작아진다. 따라서 보수적 전진의 초기 일부 반복에서는
Figure 112008090069691-pat00077
가 1보다 작도록 설정되고, 그 후에 보수적 전진 반복의 마지막을 향하여는
Figure 112008090069691-pat00078
가 1로 리셋된다.
Figure 112008090069691-pat00079
가 1보다 작도록 설정되면 후술할 알고리즘 내에서 이른 터미네이션이 일어나고,
Figure 112008090069691-pat00080
가 1로 설정되면 후술할 알고리즘 내에서 보통의 최근접 거리 질의가 수행된다.Referring to Fig. 6, first, in lines 1 to 3, the number of repetitions of conservative advance, that is, the number of repetitions of 220 steps is a predetermined threshold value.
Figure 112008090069691-pat00072
The current nearest distance greater than or obtained from a previous iteration
Figure 112008090069691-pat00073
Is a predetermined threshold
Figure 112008090069691-pat00074
Is less than
Figure 112008090069691-pat00075
Reset to = 1. As the iteration of conservative advances progresses, the number of iterations increases
Figure 112008090069691-pat00076
Becomes smaller. So in some early iterations of conservative advance,
Figure 112008090069691-pat00077
Is set to be less than 1, and then towards the end of the conservative forward iteration
Figure 112008090069691-pat00078
Is reset to 1.
Figure 112008090069691-pat00079
If is set to less than 1, early termination occurs within the algorithm to be described later,
Figure 112008090069691-pat00080
If is set to 1, a normal nearest distance query is performed in the algorithm to be described later.

다음으로 라인 4 내지 10에 관하여 설명한다.Next, the lines 4 to 10 will be described.

노드

Figure 112008090069691-pat00081
Figure 112008090069691-pat00082
가 만일 리프 노드(leaf node)라면
Figure 112008090069691-pat00083
Figure 112008090069691-pat00084
사이의 거리 d 를 계산한다. 이때 PQP(Proximity Query Package) 라이브러리를 사용할 수 있다. 그리고 d가
Figure 112008090069691-pat00085
보다 작다면
Figure 112008090069691-pat00086
를 d로 업데이트한다. 그리고 수학식 2를 사용하여 d,
Figure 112008090069691-pat00087
Figure 112008090069691-pat00088
를 가지고
Figure 112008090069691-pat00089
를 구한(라인 7) 다음,
Figure 112008090069691-pat00090
Figure 112008090069691-pat00091
보다 작다면
Figure 112008090069691-pat00092
Figure 112008090069691-pat00093
로 업데이트한다. 라인 7이 수행될 때
Figure 112008090069691-pat00094
Figure 112008090069691-pat00095
는 프론트 노드가 된다. 마지막으로
Figure 112008090069691-pat00096
Figure 112008090069691-pat00097
값을 리턴한다.Node
Figure 112008090069691-pat00081
Wow
Figure 112008090069691-pat00082
Is a leaf node
Figure 112008090069691-pat00083
Wow
Figure 112008090069691-pat00084
Calculate the distance d between In this case, PQP (Proximity Query Package) library can be used. And d
Figure 112008090069691-pat00085
If less than
Figure 112008090069691-pat00086
Update to d. And using equation 2, d,
Figure 112008090069691-pat00087
Wow
Figure 112008090069691-pat00088
Have
Figure 112008090069691-pat00089
After obtaining (line 7),
Figure 112008090069691-pat00090
end
Figure 112008090069691-pat00091
If less than
Figure 112008090069691-pat00092
To
Figure 112008090069691-pat00093
Update to. When line 7 is performed
Figure 112008090069691-pat00094
Wow
Figure 112008090069691-pat00095
Becomes the front node. Finally
Figure 112008090069691-pat00096
Wow
Figure 112008090069691-pat00097
Returns a value.

다음으로 라인 11 내지 19에 관하여 설명한다.Next, the lines 11 to 19 will be described.

만일

Figure 112008090069691-pat00098
가 리프 노드가 아니라면(라인 11),
Figure 112008090069691-pat00099
의 왼쪽 자식 노드를 A로 하고,
Figure 112008090069691-pat00100
의 오른쪽 자식 노드를 B로 하고,
Figure 112008090069691-pat00101
를 C와 D로 한 다음, A와 C의 거리 d1(즉,
Figure 112008090069691-pat00102
의 왼쪽 자식 노드에 해당하는 경계볼륨과
Figure 112008090069691-pat00103
간의 거리)과 B와 D와의 거리 d2(즉,
Figure 112008090069691-pat00104
의 오른쪽 자식 노드에 해당하는 경계볼륨과
Figure 112008090069691-pat00105
간의 거리)를 계산한다. 만일
Figure 112008090069691-pat00106
가 리프 노드라면(라인 15),
Figure 112008090069691-pat00107
가 리프 노드가 아닐 것이므로,
Figure 112008090069691-pat00108
를 A와 B로 하고,
Figure 112008090069691-pat00109
의 왼쪽 자식 노드를 C로 하고
Figure 112008090069691-pat00110
의 오른쪽 자식 노드를 D로 한 다음, A와 C의 거리 d1과 B와 D와의 거리 d2를 계산한다. if
Figure 112008090069691-pat00098
Is not a leaf node (line 11),
Figure 112008090069691-pat00099
Let A be the left child node of,
Figure 112008090069691-pat00100
Let B be the right child of,
Figure 112008090069691-pat00101
With C and D, then the distance between A and C d 1 (i.e.
Figure 112008090069691-pat00102
The bounding volume corresponding to the left child node of
Figure 112008090069691-pat00103
Distance) and the distance between B and D d 2 (i.e.
Figure 112008090069691-pat00104
The boundary volume corresponding to the right child node of
Figure 112008090069691-pat00105
Distance). if
Figure 112008090069691-pat00106
If is a leaf node (line 15),
Figure 112008090069691-pat00107
Is not a leaf node, so
Figure 112008090069691-pat00108
With A and B,
Figure 112008090069691-pat00109
Let the left child node of C be
Figure 112008090069691-pat00110
One of the right child node, and D, and then calculates the distance d 1 and distance d 2 between B and D in the A and C.

다음으로 라인 20 내지 46에 관하여 설명한다.Next, the lines 20 to 46 will be described.

만일 d2가 d1보다 작다면, 후술할 라인 21 내지 32가 수행되고, 그렇지 않다면, 즉 d2가 d1보다 작지 않다면 후술할 라인 34 내지 45가 수행된다. 즉, 도 5를 참조하면, 먼저 d2와 d1 중 작은 값을 가지고

Figure 112008090069691-pat00111
와 비교하여 그 결과에 따라 C2A의 재귀호출을 하던지 보수전 전진을 위한 시간 스텝을 계산한 후, 다음으로 d2와 d1 중 큰 값을 가지고 마찬가지로
Figure 112008090069691-pat00112
와 비교하여 그 결과에 따라 C2A의 재귀호출을 하던지 보수전 전진을 위한 시간 스텝을 계산한다. 여기서,
Figure 112008090069691-pat00113
가 (
Figure 112008090069691-pat00114
일 때) 상기된 수정 현재 최근접 거리가 된다.If d 2 is smaller than d 1 , lines 21 to 32 to be described below are performed, otherwise, that is, if d 2 is not smaller than d 1 , lines 34 to 45 to be described below are performed. That is, referring to FIG. 5, first of all, a smaller value of d 2 and d 1 is obtained.
Figure 112008090069691-pat00111
As compared to then calculate the time for the former step Either a recursive call of the C 2 A repair advanced with the result, and then to similarly have a larger value of d 2 and d 1
Figure 112008090069691-pat00112
Compute the time step for recursive or precompensation advancement of C 2 A according to the result. here,
Figure 112008090069691-pat00113
(
Figure 112008090069691-pat00114
Is the current closest distance.

d2가 d1보다 작을 때 수행되는 라인 21 내지 32에 관하여 설명한다.The lines 21 to 32 performed when d 2 is smaller than d 1 will be described.

d2

Figure 112008090069691-pat00115
보다 작은지 검사하고(라인 21), 그렇다면 C2A(B, D,
Figure 112008090069691-pat00116
,
Figure 112008090069691-pat00117
,
Figure 112008090069691-pat00118
)를 리턴하는 재귀를 수행한다. 즉, B와 D, 앞서 얻어진 현재 최근접 거리
Figure 112008090069691-pat00119
, 앞서 얻어진 현재 시간 스텝
Figure 112008090069691-pat00120
, 그리고
Figure 112008090069691-pat00121
를 입력으로 하여 C2A를 수행하고 업데이트된 출력값
Figure 112008090069691-pat00122
Figure 112008090069691-pat00123
을 리턴한다(라인 22). d2
Figure 112008090069691-pat00124
보다 작은지 검사했는데, 그렇지 않다면 d2와 B, D를 가지고 시간 스텝
Figure 112008090069691-pat00125
를 계산(라인 24)한 후,
Figure 112008090069691-pat00126
가 앞서 얻어진 현재 시간 스텝
Figure 112008090069691-pat00127
보다 작다면
Figure 112008090069691-pat00128
Figure 112008090069691-pat00129
로 업데이트한다(라인 25). 여기서, d2
Figure 112008090069691-pat00130
를 비교하게 되는데, 만일
Figure 112008090069691-pat00131
가 1보다 작은 값이라면(즉, 이른 터미네이션)
Figure 112008090069691-pat00132
가 1인 경우보다 라인 24가 일찍 수행되므로 재귀호출의 이른 터미네이션, 즉 계층구조 트래버스의 이른 터미네이션이 일어나게 된다. 라인 24가 수행될 때 B와 D가 프론트 노드가 된다.
Figure 112008090069691-pat00133
가 1이라면, 이른 터미네이션을 하지 않고 보통의 최근접 거리 질의가 된다. d 2
Figure 112008090069691-pat00115
Is less than (line 21), then C 2 A (B, D,
Figure 112008090069691-pat00116
,
Figure 112008090069691-pat00117
,
Figure 112008090069691-pat00118
Perform a recursion that returns). Ie B and D, the current nearest nearest distance
Figure 112008090069691-pat00119
, The current time step obtained earlier
Figure 112008090069691-pat00120
, And
Figure 112008090069691-pat00121
C 2 A using as input and updated output
Figure 112008090069691-pat00122
And
Figure 112008090069691-pat00123
Returns (line 22). d 2
Figure 112008090069691-pat00124
If not, check the time step with d 2 and B, D
Figure 112008090069691-pat00125
After calculating (line 24),
Figure 112008090069691-pat00126
Time step obtained earlier
Figure 112008090069691-pat00127
If less than
Figure 112008090069691-pat00128
To
Figure 112008090069691-pat00129
(Line 25). Where d 2 and
Figure 112008090069691-pat00130
Is compared to
Figure 112008090069691-pat00131
Is less than 1 (ie, early termination)
Figure 112008090069691-pat00132
Since line 24 is performed earlier than 1, early termination of the recursive call, that is, early termination of the hierarchical traverse, occurs. When line 24 is performed, B and D become front nodes.
Figure 112008090069691-pat00133
If 1, then the normal nearest distance query is made without early termination.

이제 d1

Figure 112008090069691-pat00134
보다 작은지 검사하고(라인 27), 그렇다면 C2A(A, C,
Figure 112008090069691-pat00135
,
Figure 112008090069691-pat00136
,
Figure 112008090069691-pat00137
)를 리턴하는 재귀를 수행하고(라인 28), 그렇지 않다면 d1과 A, C를 가지고 시간 스텝
Figure 112008090069691-pat00138
를 계산(라인 30)한 후,
Figure 112008090069691-pat00139
가 앞서 얻어진 현재 시간 스텝
Figure 112008090069691-pat00140
보다 작다면
Figure 112008090069691-pat00141
Figure 112008090069691-pat00142
로 업데이트한다(라인 31). 라인 27 내지 32의 취지는 라인 21 내지 26의 취지와 동일하다.Now d 1
Figure 112008090069691-pat00134
Is less than (line 27), and if so C 2 A (A, C,
Figure 112008090069691-pat00135
,
Figure 112008090069691-pat00136
,
Figure 112008090069691-pat00137
Perform a recursion returning () (line 28), otherwise time step with d 1 , A, and C
Figure 112008090069691-pat00138
After calculating (line 30)
Figure 112008090069691-pat00139
Time step obtained earlier
Figure 112008090069691-pat00140
If less than
Figure 112008090069691-pat00141
To
Figure 112008090069691-pat00142
(Line 31). The purpose of lines 27 to 32 is the same as that of lines 21 to 26.

d2가 d1보다 작지 않을 때 수행되는 라인 34 내지 45는 d1과 d2의 순서만 바뀌었을 뿐 상기된 라인 21 내지 32에 관한 설명과 동일하므로 그 설명은 생략하기로 한다. Lines 34 to 45 performed when d 2 is not smaller than d 1 are the same as the description of lines 21 to 32 described above, except that only the order of d 1 and d 2 is changed.

또한, 일 실시예에서 충돌 검사 성능을 보다 향상시키기 위하여 다음과 같은 간단한 기법을 더 채용할 수 있다. 보수적 전진의 i 번째 반복에서, 경계볼륨 쌍에 해당하는 어떤 노드 n 을 방문하였을 때, 그 경계볼륨 쌍의 시간 스텝

Figure 112008090069691-pat00143
가 어떤 상계(upper bound) 값
Figure 112008090069691-pat00144
보다 크다면 해당 노드와 그 자식 노드들을 전지(prune)하는 것이다. 이때 초기적으로
Figure 112008090069691-pat00145
로 설정하고, k 번째 반복에서
Figure 112008090069691-pat00146
로 설정할 수 있다. 왜냐하면
Figure 112008090069691-pat00147
이라는 것은 [0,1] 동안에 그 노드 n 에 대하여 충돌이 없음을 의미하고, k번째 반복에서 구해진 시간 스텝이 1에서 (k-1) 번째 반복까지 더해진 시간 스텝
Figure 112008090069691-pat00148
을 뺀 값보다 크다면 t=1 이 되더라도 충돌이 없을 것이기 때문이다. 따라서 그러한 노드와 그 자식 노드들은 더 이상 검사할 필요가 없다.In addition, in one embodiment, the following simple technique may be further employed to further improve collision detection performance. In the i th iteration of conservative advance, when visiting a node n corresponding to the boundary volume pair, the time step of that boundary volume pair
Figure 112008090069691-pat00143
Is any upper bound value
Figure 112008090069691-pat00144
If it is larger, it prunes the node and its children. At this time
Figure 112008090069691-pat00145
, At the k th iteration
Figure 112008090069691-pat00146
Can be set to because
Figure 112008090069691-pat00147
Means that there is no collision for that node n during [0,1], the time step obtained from the k th iteration plus 1 to the (k-1) iteration
Figure 112008090069691-pat00148
If it is larger than minus, there will be no collision even if t = 1. Therefore, such nodes and their children do not need to be examined anymore.

도 7은 본 발명의 일 실시예에 따른 보수적 전진 기법을 이용한 실시간 충돌 검사 시스템의 블록도이다. 본 실시예에 따른 충돌 검사 시스템은 경계볼륨 계층구조 형성부(710), 시간 스텝 계산부(720), 모델 전진부(730), 충돌 시간 계산부(740)를 포함하여 이루어진다. 도시하지는 않았지만 충돌 검사 시스템은, 충돌을 검사하고자 하는 입력되는 두 모델과, 후술할 모델 전진부(730)에 의해 전진된 모델, 경계볼륨 계층구조, 시간 스텝 계산부(720)에 의해 구해진 시간 스텝 등이 저장되는 메모리를 더 포함할 수 있다. 7 is a block diagram of a real-time collision detection system using a conservative forward technique in accordance with an embodiment of the present invention. The collision inspection system according to the present embodiment includes a boundary volume hierarchy forming unit 710, a time step calculator 720, a model advance unit 730, and a collision time calculator 740. Although not shown, the collision inspection system includes two input models for which collision is to be checked, a model advanced by the model advance unit 730, a boundary volume hierarchy, and a time step calculated by the time step calculator 720. The memory may further include a memory in which the back is stored.

경계볼륨 계층구조 형성부(710)는 충돌을 검사하고자 하는 두 모델을 입력받고, 그에 대하여 경계볼륨 계층구조를 형성한다. 경계볼륨 계층구조 형성부(710)의 동작은 도 2의 210단계에 관련된 설명과 동일하므로 구체적인 설명은 생략한다.The boundary volume hierarchy forming unit 710 receives two models for checking collision, and forms a boundary volume hierarchy therefor. Since the operation of the boundary volume layer structure forming unit 710 is the same as that described in operation 210 of FIG. 2, a detailed description thereof will be omitted.

시간 스텝 계산부(720)는 두 모델에 대하여 최근접 거리 질의를 수행하면서 경계보륨 계층구조를 트래버스하되, 그로 인해 얻어지는 일부의 경계볼륨 쌍들에 대하여 보수적 전진 기법을 위한 시간 스텝을 계산하고 그들 중 최소의 시간 스텝을 구한다. 최근접 거리 질의로 얻어지는 두 모델 간의 현재 최근접 거리

Figure 112008090069691-pat00149
및 구해진 현재 시간 스텝
Figure 112008090069691-pat00150
가 시간 스텝 계산부(720)의 출력이 되며,
Figure 112008090069691-pat00151
는 후술할 모델 전진부(730)와 충돌 시간 계산부(740)로 입력되고,
Figure 112008090069691-pat00152
Figure 112008090069691-pat00153
는 다음 반복을 위하여 시간 스텝 계산부(720)로 다시 입력된다. 시간 스텝 계산부(720)의 동작은 도 2의 220단계에 관련된 설명과 동일하므로 구체적인 설명은 생략한다.The time step calculation unit 720 traverses the boundary volume hierarchy while performing the nearest distance query for the two models, and calculates the time step for the conservative forward technique for some of the boundary volume pairs obtained therefrom, and the minimum of them. Find the time step of. Current nearest distance between two models obtained by nearest distance query
Figure 112008090069691-pat00149
And the current time step obtained
Figure 112008090069691-pat00150
Becomes the output of the time step calculator 720,
Figure 112008090069691-pat00151
Is input to the model advance unit 730 and the collision time calculation unit 740 to be described later,
Figure 112008090069691-pat00152
And
Figure 112008090069691-pat00153
Is input back to the time step calculator 720 for the next iteration. Since the operation of the time step calculator 720 is the same as that described in operation 220 of FIG. 2, a detailed description thereof will be omitted.

모델 전진부(730)는 시간 스텝 계산부(720)에 의해 구해진 시간 스텝

Figure 112008090069691-pat00154
만큼 두 모델 중 어느 한 모델(또는 두 모델을 각각)을 전진시킨다. 전진된 모델은 시간 스텝 계산부(720)로 입력되고, 시간 스텝 계산부(720)는 전진된 모델을 가지고 반복적으로 상기된 동작을 수행하여
Figure 112008090069691-pat00155
Figure 112008090069691-pat00156
를 구한다. The model advance unit 730 is a time step obtained by the time step calculator 720
Figure 112008090069691-pat00154
Advance one of the two models (or two models each). The advanced model is input to the time step calculator 720, and the time step calculator 720 repeatedly performs the above-described operation with the advanced model.
Figure 112008090069691-pat00155
And
Figure 112008090069691-pat00156
.

시간 스텝 계산부(720)와 모델 전진부(730)의 반복적인 동작은 두 모델 간의 최근접 거리가 사용자 지정된 소정 임계값보다 작을 때까지 수행된다. 두 모델 간의 최근접 거리가 상기 소정 임계값보다 작은 것으로 검사되면 충돌 시간 계산부(740)는 그때까지 시간 스텝 계산부(720)로부터 얻은 시간 스텝들을 합계하여 두 모델의 충돌 시간(TOC)을 구한다. The repetitive operation of the time step calculator 720 and the model forwarder 730 is performed until the closest distance between the two models is smaller than a predetermined user specified threshold. If the closest distance between the two models is determined to be smaller than the predetermined threshold value, the collision time calculator 740 sums the time steps obtained from the time step calculator 720 until then to obtain the collision time TOC of the two models. .

상술한 실시예에 의하면, SSV 에 대한 모션 바운드를 효율적으로 계산할 수 있고, 프론트 노드들의 깊이 또는 개수를 조절함으로써 연속적 충돌 검사의 성능을 가속화할 수 있다. 따라서 폴리곤 수프 모델들의 연속적 충돌 검사 속도를 획기적으로 개선할 수 있으며, 이를 실시간 속도로 수행할 수 있고, 모델이 테셀레이트되어되어(tessellated) 있기만 하면, 모델의 기하(geometry)나 위상(topology)에 제약이 없는 연속적 충돌 검사를 가능하게 한며, 종전의 다면체 모델(polyhedral models)에 특화된 연속적 충돌 검사 방법에 비해서도 더 빠른 성능을 가질 수 있다. According to the above-described embodiment, it is possible to efficiently calculate the motion bound for the SSV and to accelerate the performance of the continuous collision check by adjusting the depth or number of front nodes. Therefore, we can dramatically improve the speed of continuous collision checking of polygonal soup models, and we can do this at real-time speed, as long as the model is tessellated, so that it is in the geometry or topology of the model. It enables continuous collision checking without constraints and can have faster performance than continuous collision detection methods specialized for conventional polyhedral models.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본 질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

도 1은 보수적 전진 기법을 설명하기 위한 참고도이다. 1 is a reference diagram for explaining a conservative forward technique.

도 2는 본 발명의 일 실시예에 따른 보수적 전진 기법을 이용한 실시간 충돌 검사 방법의 흐름도이다.2 is a flowchart of a real-time collision detection method using a conservative forward technique according to an embodiment of the present invention.

도 3은 두 모델에 대하여 형성된 경계볼륨 계층구조의 간단한 예를 나타낸다.3 shows a simple example of the boundary volume hierarchy formed for the two models.

도 4는 PSS, LSS, 그리고 RSS를 나타낸 도면이다.4 is a diagram illustrating a PSS, an LSS, and an RSS.

도 5는 다른 깊이 값들을 가지는 프론트 노드들을 도식화한 그림이다.5 is a diagram illustrating front nodes having different depth values.

도 6은 220단계의 구체적인 일 실시예의 수도코드(pseudocode)를 나타낸다.FIG. 6 illustrates a pseudocode of a specific embodiment of step 220.

도 7은 본 발명의 일 실시예에 따른 보수적 전진 기법을 이용한 실시간 충돌 검사 시스템의 블록도이다.7 is a block diagram of a real-time collision detection system using a conservative forward technique in accordance with an embodiment of the present invention.

Claims (24)

보수적 전진 기법을 이용한 실시간 충돌 검사 방법에 있어서,In the real-time collision detection method using a conservative forward technique, (a) 충돌을 검사하고자 하는 두 모델에 대하여 경계볼륨 계층구조를 형성하는 단계;(a) forming a boundary volume hierarchy for the two models for which collision is to be examined; (b) 최근접 거리 질의를 수행하면서 상기 형성된 경계볼륨 계층구조를 트래버스하되, 그로 인해 얻어지는 일부의 경계볼륨 쌍들에 대하여 보수적 전진 기법을 위한 시간 스텝을 계산하고, 그들 중 최소의 시간 스텝을 구하는 단계;(b) traversing the formed boundary volume hierarchy while performing a nearest distance query, calculating a time step for the conservative advance technique for some of the resulting boundary volume pairs, and finding the minimum time step among them; ; (c) 상기 구해진 최소의 시간 스텝에 따라 상기 두 모델 중 적어도 한 모델을 전진시킨 후 상기 (b) 단계를 반복하는 단계; 및(c) advancing at least one of the two models according to the obtained minimum time step and repeating step (b); And (d) 상기 반복되는 (b) 단계를 통하여 구해진 시간 스텝들을 합계하여 상기 두 모델의 충돌 시간을 구하는 단계를 포함하고,(d) calculating the collision time of the two models by summing the time steps obtained through the repeated step (b); 상기 (b) 단계는, 상기 최근접 거리 질의를 수행하면서 얻어지는 경계볼륨 쌍의 거리와 앞서 얻어진 현재 최근접 거리를 비교하고 그 결과에 따라서 상기 경계볼륨 계층구조의 트래버스를 터미네이트하고 그때의 경계볼륨 쌍의 시간 스텝을 계산하되, In the step (b), the distance of the boundary volume pair obtained while performing the nearest distance query is compared with the current nearest distance obtained earlier, and the traverse of the boundary volume hierarchy is terminated according to the result. Calculate the time step of the pair, 적어도 초기 일부 반복의 상기 (b) 단계에서는, 해당 경계볼륨 쌍의 거리와 상기 앞서 얻어진 현재 최근접 거리에 0에서 1 사이의 소정 값을 곱함으로써 얻어지는 수정 현재 최근접 거리를 비교하고 그 결과에 따라서 상기 경계볼륨 계층구조의 트래버스를 터미네이트하고 그때의 경계볼륨 쌍의 시간 스텝을 계산하고,In step (b) of at least the initial partial repetition, the modified current nearest distance obtained by multiplying the distance of the corresponding boundary volume pair by the predetermined value between 0 and 1 and the current nearest nearest distance is compared according to the result. Terminating the traverse of the boundary volume hierarchy and calculating the time step of the boundary volume pair at that time, 상기 앞서 얻어진 현재 최근접 거리가 소정 임계값보다 작거나 상기 (b) 단계의 반복의 회수가 소정 임계값보다 큰 경우, 상기 수정 현재 최근접 거리를 이용하지 않고 상기 해당 경계볼륨 쌍의 거리와 상기 앞서 얻어진 현재 최근접 거리를 비교하고 그 결과에 따라서 상기 경계볼륨 계층구조의 트래버스를 터미네이트하고 그때의 경계볼륨 쌍의 시간 스텝을 계산하는 것을 특징으로 하는 충돌 검사 방법.When the previously obtained current nearest distance is smaller than a predetermined threshold or the number of repetitions of step (b) is larger than a predetermined threshold, the distance of the corresponding boundary volume pair and the boundary without using the modified current nearest distance are determined. And comparing the current nearest distance obtained earlier and terminating the traverse of the boundary volume hierarchy according to the result and calculating the time step of the boundary volume pair at that time. 삭제delete 삭제delete 삭제delete 제1항에 있어서,The method of claim 1, 상기 해당 경계볼륨 쌍의 거리가 상기 수정 현재 최근접 거리 또는 상기 앞서 얻어진 현재 최근접 거리보다 작은 경우에 상기 경계볼륨 계층구조의 트래버스를 터미네이트하는 것을 특징으로 하는 충돌 검사 방법.And terminating the traverse of the boundary volume hierarchy when the distance of the boundary volume pair is smaller than the modified current nearest distance or the previously obtained current nearest distance. 삭제delete 삭제delete 삭제delete 제1항에 있어서,The method of claim 1, 상기 (b) 단계에서 상기 계산된 시간 스텝이 소정 값보다 큰 경우 상기 경계볼륨 계층구조에서 해당하는 노드들 및 그 자식 노드들을 전지하는 것을 특징으로 하는 충돌 검사 방법.And if the calculated time step is greater than a predetermined value in step (b), the corresponding nodes and their child nodes in the boundary volume hierarchy are batteryd. 제1항에 있어서,The method of claim 1, 상기 소정 값은 상기 (b) 단계의 처음 실행에서 1로 설정되고, 다음 반복들에서는 다음 수학식에 따라 설정되는 것을 특징으로 하는 충돌 검사 방법.And the predetermined value is set to 1 in the first execution of the step (b) and in the following iterations according to the following equation.
Figure 712011001565829-pat00157
Figure 712011001565829-pat00157
여기서, k는 상기 반복의 회수를 나타내고,
Figure 712011001565829-pat00158
는 i 번째 반복에서 구해진 상기 최소의 시간 스텝이다.
Where k represents the number of times of said repetition,
Figure 712011001565829-pat00158
Is the minimum time step obtained at the i th iteration.
제1항에 있어서,The method of claim 1, 상기 경계볼륨은 swept sphere volume인 것을 특징으로 하는 충돌 검사 방법.And the boundary volume is a swept sphere volume. 제11항에 있어서,The method of claim 11, 상기 보수적 전진 기법을 위한 시간 스텝은 상기 경계볼륨 쌍 사이의 가장 가까운 거리에 대한 하계와 단위 시간당 상기 가장 가까운 거리로 사영되는 한 경계볼륨의 모션의 상계인 모션 바운드에 기초하여 계산되는 것을 특징으로 하는 충돌 검사 방법.The time step for the conservative advance technique is calculated based on the summer bound for the closest distance between the boundary volume pairs and the motion bound that is the upper bound of the motion of the boundary volume as long as the closest distance is projected per unit time. Collision checking method. 제12항에 있어서,The method of claim 12, 상기 한 경계볼륨 α 가 병진 속도 v 와 회전 속도 ω 를 가지는 강체 변환 M(t)를 따를 때
Figure 112008090069691-pat00159
를 α 상의 점이라 하고,
Figure 112008090069691-pat00160
을 상기 α와 다른 경계볼륨 β 사이의 가장 가까운 방향이라 하고
Figure 112008090069691-pat00161
를 원점으로부터 상기
Figure 112008090069691-pat00162
로의 벡터라 하면,
When the boundary volume α follows a rigid body transformation M (t) having a translational speed v and a rotational speed ω
Figure 112008090069691-pat00159
Is a point on α,
Figure 112008090069691-pat00160
Is the closest direction between α and the other boundary volume β
Figure 112008090069691-pat00161
Recall from origin
Figure 112008090069691-pat00162
A vector of raw,
상기 모션 바운드는,
Figure 112008090069691-pat00163
가 형성하는 평면 S 상으로의 상기
Figure 112008090069691-pat00164
의 최대 투사에 의해 얻어지는 것을 특징으로 하는 충돌 검사 방법.
The motion bound is,
Figure 112008090069691-pat00163
Above on the plane S to form
Figure 112008090069691-pat00164
Collision checking method, characterized in that obtained by the maximum projection of.
제13항에 있어서,The method of claim 13, 상기 모션 바운드는 다음 수학식에 따라 얻어지는 것을 특징으로 하는 충돌 검사 방법.Wherein the motion bound is obtained according to the following equation.
Figure 112008090069691-pat00165
Figure 112008090069691-pat00165
여기서,
Figure 112008090069691-pat00166
이고, r 은 SSV를 형성하기 위해 사용되는 구의 반지름이며,
Figure 112008090069691-pat00167
는 SSV의 생성 프리미티브의 끝점(endpoint)이다.
here,
Figure 112008090069691-pat00166
R is the radius of the sphere used to form the SSV,
Figure 112008090069691-pat00167
Is the endpoint of the generation primitive of the SSV.
제1항에 있어서,The method of claim 1, 상기 (b) 단계는 상기 최근접 거리 질의에 따라 얻어지는 상기 두 모델 간의 최근접 거리가 소정 임계값보다 작을 때까지 반복되는 것을 특징으로 하는 충돌 검사 방법.The step (b) is repeated until the nearest distance between the two models obtained according to the nearest distance query is smaller than a predetermined threshold value. 제1항, 제5항, 제9항, 제10항 내지 제 15항 중 어느 한 항에 기재된 보수적 전진 기법을 이용한 실시간 충돌 검사 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for executing a real-time collision detection method using the conservative advance technique according to any one of claims 1, 5, 9, and 10 to 15. 보수적 전진 기법을 이용한 실시간 충돌 검사 시스템에 있어서,In a real-time collision detection system using a conservative forward technique, 충돌을 검사하고자 하는 두 모델에 대하여 경계볼륨 계층구조를 형성하는 경계볼륨 계층구조 형성부;A boundary volume hierarchy forming unit for forming a boundary volume hierarchy for two models to be examined for collision; 최근접 거리 질의를 수행하면서 상기 형성된 경계볼륨 계층구조를 트래버스하되, 그로 인해 얻어지는 일부의 경계볼륨 쌍들에 대하여 보수적 전진 기법을 위한 시간 스텝을 계산하고 그들 중 최소의 시간 스텝을 구하며, 모델 전진부에 의해 전진된 모델을 가지고 이를 반복 수행하는 시간 스텝 계산부,While traversing the boundary volume hierarchy formed while performing the nearest distance query, the time step for the conservative advance technique is calculated and the minimum time step among them is calculated for some boundary volume pairs obtained. A time step calculator which repeats this with a model advanced by 상기 구해진 최소 시간 스텝만큼 상기 두 모델 중 적어도 한 모델을 전진시키는 모델 전진부;A model advancement unit for advancing at least one of the two models by the obtained minimum time step; 상기 시간 스텝 계산부를 통하여 구해진 시간 스텝들을 합계하여 상기 두 모델의 충돌 시간을 구하는 충돌 시간 계산부를 포함하고,A collision time calculator configured to calculate collision times of the two models by summing time steps obtained through the time step calculator; 상기 시간 스텝 계산부는, 상기 최근접 거리 질의를 수행하면서 얻어지는 경계볼륨 쌍의 거리와 앞서 얻어진 현재 최근접 거리를 비교하고 그 결과에 따라서 상기 경계볼륨 계층구조의 트래버스를 터미네이트하고 그때의 경계볼륨 쌍의 시간 스텝을 계산하되, 적어도 초기 일부의 반복에서는 해당 경계볼륨 쌍의 거리와 상기 앞서 얻어진 현재 최근접 거리에 0에서 1 사이의 소정 값을 곱함으로써 얻어지는 수정 현재 최근접 거리를 비교하고 그 결과에 따라서 상기 경계볼륨 계층구조의 트래버스를 터미네이트하고 그때의 경계볼륨 쌍의 시간 스텝을 계산하고, 상기 앞서 얻어진 현재 최근접 거리가 소정 임계값보다 작거나 상기 반복 수행의 회수가 소정 임계값보다 큰 경우, 상기 수정 현재 최근접 거리를 이용하지 않고 상기 해당 경계볼륨 쌍의 거리와 상기 앞서 얻어진 현재 최근접 거리를 비교하고 그 결과에 따라서 상기 경계볼륨 계층구조의 트래버스를 터미네이트하고 그때의 경계볼륨 쌍의 시간 스텝을 계산하는 것을 특징으로 하는 충돌 검사 시스템.The time step calculation unit compares the distance of the boundary volume pair obtained while performing the nearest distance query with the current nearest distance obtained earlier, and terminates the traverse of the boundary volume hierarchy according to the result, and then the boundary volume pair at that time. Compute the time step of, but at least in the initial partial iteration, compare the modified current nearest distance obtained by multiplying the distance of the corresponding boundary volume pair by a predetermined value from 0 to 1 to the previously obtained current nearest distance and Accordingly, when the traverse of the boundary volume hierarchy is terminated, the time step of the boundary volume pair is calculated, and the previously obtained nearest nearest distance is smaller than a predetermined threshold or the number of times of repeating is larger than a predetermined threshold. The distance of the corresponding boundary volume pair without using the modified current nearest distance Collision detection system, characterized in that for comparing the current closest distance the previously obtained, and the traverse of the terminal carbonate bounding volume hierarchy according to the result and calculate the time step of the bounding volumes of the pair of time. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020080135952A 2008-12-29 2008-12-29 Real-Time Collision Detection Method and System Using Conservative Forward Technique KR101048018B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080135952A KR101048018B1 (en) 2008-12-29 2008-12-29 Real-Time Collision Detection Method and System Using Conservative Forward Technique

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080135952A KR101048018B1 (en) 2008-12-29 2008-12-29 Real-Time Collision Detection Method and System Using Conservative Forward Technique

Publications (2)

Publication Number Publication Date
KR20100077879A KR20100077879A (en) 2010-07-08
KR101048018B1 true KR101048018B1 (en) 2011-07-13

Family

ID=42639174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080135952A KR101048018B1 (en) 2008-12-29 2008-12-29 Real-Time Collision Detection Method and System Using Conservative Forward Technique

Country Status (1)

Country Link
KR (1) KR101048018B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112809682B (en) * 2021-01-27 2022-05-17 佛山科学技术学院 Mechanical arm obstacle avoidance path planning method and system and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080094856A (en) * 2007-02-02 2008-10-27 삼성전자주식회사 Method and apparatus for detecting model collision

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080094856A (en) * 2007-02-02 2008-10-27 삼성전자주식회사 Method and apparatus for detecting model collision

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
김수정외 2인, "Continuous Collision Detection for Adaptive Simulations of Articulated Bodies", The Visual Computer: International Journal of Computer Graphics, Vol. 24, 2008.4.
김수정외 2인, "Continuous Collision Detection for Adaptive Simulations of Articulated Bodies", The Visual Computer: International Journal of Computer Graphics, Vol. 24, Issue 4, 2008.3.
이영호외 5인,"실시간 동적 3차원 환경에서의 효율적인 충돌탐지 알고리즘, 정보과학회논문지(B) 제26권 제2호, 2002.10

Also Published As

Publication number Publication date
KR20100077879A (en) 2010-07-08

Similar Documents

Publication Publication Date Title
CN110806218B (en) Parking path planning method, device and system
Hwang et al. A fast path planning by path graph optimization
US8041141B2 (en) Method and software for shape representation with curve skeletons
Denny et al. Dynamic region-biased rapidly-exploring random trees
Kallmann et al. Navigation meshes and real-time dynamic planning for virtual worlds
KR101697238B1 (en) Image processing apparatus and method
CN109163722B (en) Humanoid robot path planning method and device
US11922574B2 (en) Method and device for determining plurality of layers of bounding boxes, collision detection method and device, and motion control method and device
Tang et al. C 2 A: Controlled conservative advancement for continuous collision detection of polygonal models
CN112432648A (en) Real-time planning method for safe motion trail of mobile robot
CN113359718B (en) Method and equipment for fusing global path planning and local path planning of mobile robot
KR101309988B1 (en) Computation method for penetration depth of polygon model
CN111664851B (en) Robot state planning method and device based on sequence optimization and storage medium
Kallmann Navigation queries from triangular meshes
CN117124335B (en) Improved RRT path planning method based on path marking backtracking strategy
KR101048018B1 (en) Real-Time Collision Detection Method and System Using Conservative Forward Technique
Sarkis et al. Sparse stereo matching using belief propagation
CN116764225A (en) Efficient path-finding processing method, device, equipment and medium
US8497875B2 (en) System, method, and computer program product for determining a translation vector
EP1685509B1 (en) System, method, and computer program product for determining wall thickness in a graphic model
CN112985397B (en) Robot track planning method and device, storage medium and electronic equipment
Opoku et al. The Ar-Star (Ar) Pathfinder
Steinbach et al. Efficient collision and self-collision detection for humanoids based on sphere trees hierarchies
CN112305558A (en) Mobile robot track determination method and device by using laser point cloud data
CN117870653B (en) Method for establishing and updating two-dimensional differential Euclidean symbol distance field map

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170103

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170628

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180703

Year of fee payment: 8