【溫馨提示】 dwg后綴的文件為CAD圖,可編輯,無(wú)水印,高清圖,,壓縮包內(nèi)文檔可直接點(diǎn)開(kāi)預(yù)覽,需要原稿請(qǐng)自助充值下載,請(qǐng)見(jiàn)壓縮包內(nèi)的文件及預(yù)覽,所見(jiàn)即可所得,請(qǐng)細(xì)心查看有疑問(wèn)可以咨詢QQ:414951605或1304139763
ORIGINAL ARTICLE Fast collision detection approach to facilitate interactive modular fixture assembly design in a virtual environment Gaoliang Peng the objects not Int J Adv Manuf Technol (2010) 46:315–328 DOI 10.1007/s00170-009-2073-0 G. Peng (*) : X. Hou : T. Jin : X. Zhang School of Mechanical and Electrical Engineering, Harbin Institute of Technology, Harbin, China e-mail: pgl7782@ C. Wu School of Management, Harbin Institute of Technology, Harbin, China penetrating into others must be guaranteed. Therefore, a fast interactive collision detection (CD) algorithm is fundamen- tal in such a VR system. However, collision checking for a complex VE is computationally intensive. Researchers have addressed some “universal” algorithms to reduce the computational costs. But these algorithms often need auxiliary data structures and require intensive preprocessing time cost. In addition, the implementation of such algorithm is very complicated. Therefore, based on the well study of modular fixture characteristics and practical requirements, we develop a “special” CD algorithm to keep the associated costs as low as possible for VR-based modular fixture assembly design. The paper is organized as follows. A review of related work of the existing CD algorithms is presented in Section 2. Section 3 gives an overview of our proposed algorithm. In Section 4, we describe the space subdivision model used in our algorithm. Section 5 provides the details about the broad phase of our proposed algorithm, in which irrelevant objects are discarded and a set of objects that can possibly collide are determined. The narrow phase for exact polygon based overlap tests is described in Section 6. Section 7 presents some experimental results of our algorithm, and finally, in Section 8, we give concluding remarks and outline directions for future extensions of this work. 2 Related work During the past few years, a great deal of effort has been made to solve the CD problem for various types of interactive 3D graphics and scenarios. For a workspace filled with n objects, the most obvious problem is the O(n 2 ) problem of detecting collisions between all objects, which is time consuming and not bearable if the number n is large. Thus, some necessary techniques are needed to reduce the computational costs. Generally, a CD algorithm consists of two main steps, namely broad phase and narrow phase [9]. The first phase aims to filter out pairs of objects which are impossible to interact and determine which objects in the entire workspace potentially interact. The second phase is to perform a more accurate test to identify collision between those selected object parts in the first phase, moreover if necessary, to find the pairs of contacting primitive geometric elements (polygons), and to calculate the overlapping distance. For a CD algorithm, it is critical to reduce the number of pairs of objects or primitives that need to be checked. Therefore, a number of different techniques have been used to make coarse grain detection, among which space decomposition and bounding volumes is most popular. In space decomposition methods, the environment is subdivided into space grids using hierarchical space subdivision. Objects in the environment are clustered hierarchically according to the regions that they fall into. These objects are then checked for intersection by testing for overlapping grid cells exploiting spatial partitioning methods like Octrees [10, 11], BSP-trees [12], k-d trees [13], etc. Using such decompositions in a hierarchical manner can further speed up the collision detection process but leads to extremely high storage requirements. Bounding volume (BV) approach is used in previous computer graphics algorithms to speed up computation and rendering process. The BVof a geometric object is a simple volume enclosing the object. Typically, BV types are axis- aligned boxes (AABBs) [14], spheres [15], and oriented bounding boxes (OBB) [16]. Since AABBs method is simple to compute and allows efficient overlap queries, it is often used in hierarchy, but it also may be a particularly poor approximation of the set that they bound, leaving large “empty corners.” The systems utilizing AABBS include I-COLLIDE [17], Q- COLLIDE [18], and SOLID [19], etc. Bounding sphere is another natural choice to approxi- mate an object as it is particularly simple to test pairs for overlap, and the update for a moving object is trivial. However, spheres are similar to AABBs as they can be poor approximations to the convex hull of contained objects. In comparison, an OBB is a rectangular bounding box at arbitrary orientations in 3D space. In an ideal case, the OBB can be repositioned such that it is able to enclose an object as tightly as possible. In other words, the OBB is the smallest possible bounding box of arbitrary orientation that can enclose the geometry in question. This approach is very good at performing fast rejection tests. A system called RAPID [20] for interference detection based on OBB has been built, which approximates geometry better than AABBs. The shortcomings of OBB-tree against sphere tree lie in its slowness to update and orientation sensitive [9]. Most CD-related researches are involved in “universal” algorithms, and few literatures are found to develop CD approach in a special application like virtual assembly. Actually, a fast and interactive collision detection algorithm is fundamental to a virtual assembly environment, which allows designers to move parts or components to perform assembly and disassembly operations. Figueiredo [21] presented a faster algorithm for the broad and narrow phases of the collision detection algorithm of determining precise collisions between surfa- ces of 3D assembly models in virtual prototype environ- ments. The algorithm used the overlapping AABB and the R-tree data structure to improve performance in both the broad and narrow phases of the collision detection. This approach is for such a VE with objects dispersed in the 316 Int J Adv Manuf Technol (2010) 46:315–328 space. In addition, the R-tree data structure is very memory intensive. Stephane [22] worked on continuous collision detection methods and constraints to deal with rigid polyhedral objects for desktop virtual prototyping. Whereas such a 4D method is only useful for handling the path of known moving objects. Especially, the algorithm is so computa- tionally intensive that it has to run on high-end computers. Collision detection is a critical problem in multi-axis numerical control (NC) machining with complex machining environments. There has been much previous work on interference detection and avoidance in NC machining simulation. Wang [23] developed a graphics-assisted collision detection approach for multi-axis NC machining. In this method, a combination of machining environment culling and a two-phase collision detection strategy was used. Researches surveyed above provided various efficient techniques to carry out collision detection for polygonal models. However, these popular algorithms aimed at general polygonal models, most of which need expensive pretreatments or large system memory or both of them in order to improve the performance and meet real-time requirements. Therefore, when these algorithms are utilized in desktop VR application system such as modular fixture design, the requirement of real time cannot be well guaranteed. Few CD researches can be found in the area of computer-aided fixture design. Hu [24]presentedan algorithm of fast interference checking between the machining tool and fixture units, as well as between fixture units, to replace the visually checked method. Moreover, in Kumar’s work [25], in order to automate interference-free modular fixture assembly design, the machining interference detection is accomplished through the use of cutter-swept solid based on cutter-swept volume approach. However, these algorithms are only capable of static interference checking and applied in CAD software packages. The research presented in this paper makes a solution to these issues by addressing a “special” collision detection algorithm for VR-based modular fixture design. The proposed algorithm uses the hybrid approach of space decomposition and bounding volume method to get high performance. 3 Algorithm overview 3.1 Requirements for proposed algorithm We aimed to develop a desktop VR-based modular fixture assembly design system, in which the designer can select suitable fixture elements and put them together to generate a fixture structure, like “building blocks.” Without physical fixture elements, he/she can test different structure schemes and finally design a feasible fixture configuration that meets the fixturing function requirements. In order to retain high degree of “reality” in engineering application, there are three main requirements for a CD algorithm to perform modular fixture configuration design: 1. Precise and fast: During the simulation of assembly and disassembly operations, finding precise collisions is an important task for achieving realistic behavior [26]. When the user interactively assembles a part or a component, the “flying” object may collide with static models, thus the system must find out the “colliding” event immediately. The interval between two checking points should be near enough to achieve better performance. Otherwise, when objects move very fast, they may appear before checking, which will reduce the immersive feelings. Therefore, the proposed system carries out a CD checking task in each rendering loop of VE. In addition, in modular fixture assembly design process, the designer selects elements and assembles them to right position or disassembles them to change the fixture configuration. Once an element is assembled or disassembled, the “static” environment models are updated. Accordingly, the CD checking model needs restructure. So the preprocess should not take too long; otherwise, the performance of proposed system will be impaired severely for certain “smooth feel” cannot be achieved. 2. Low system requirements: Finding collisions in a 3D environment is time-consuming. In some cases, it can easily consume up to 50% of the total run time [21]. However, in modular fixture design workspace, there are some other time-consuming tasks, such as design process control and reasoning, automatic geometric constraints recognition and solving, etc. In spite of the complexity of the 3D virtual prototypes due to thousands of polygons, the designed CD checking procedure must be done in real time with relatively low system resource demands. 3. Low hardware cost: In order to achieve wider engi- neering applications, the proposed modular fixture assembly system is designed to run on common PC like popular CAD commercial software. Although much research has engaged in developing hardware- accelerated CD algorithms, which utilize special graph- ic hardware, like graphics processing unit, to deal with the computing collisions, thus the system’s CPU can be freed. Nevertheless, we did not plan to adopt this kind of method and optimize performance only from software implementation. The objective of this research is to develop a CD algorithm Int J Adv Manuf Technol (2010) 46:315–328 317 Taking into account all above requirements, unfortunate- ly, these objectives usually are in conflict. To meet the precise demand, we must increase checking frequency which will enormously increase the computational com- plexity and the memory bandwidth requirement. So, how can a balance be reached with regard to these? In other words, how can the utilization of system resources be minimized yet the performance optimized without the help of extra hardware? It is the start point of our algorithm. 3.2 Modular fixture analysis The objective of this research is to develop a CD algorithm for assisting in modular fixture assembly design operations in VE. To simplify the algorithm and to gain high performance, the characteristics of modular fixture should be well studied. 1. Process of modular fixture assembly design: The tasks of modular fixture assembly design are to select the proper fixture elements and assemble them to a configuration one by one according to the designed fixturing plan. Thus, the CD problem in VR-based modular fixture assembly design can be stated as: the intersection checking between one moving object (assembling element or unit) with the static environ- ment objects (assembled elements) at discrete time. 2. Fixture element shape: Modular fixture elements with regular shape can be classified into three types, namely, block, cylinder, and block-cylinder [27]. Other compli- cated assembly units can be regarded as compositions of these three meta-elements. It is well known that the OBB is tighter than the AABB and sphere. Moreover, when an object changes its position and orientation in VE, its OBB does not need to rebuild. Therefore, we can construct OBBs of modular fixture elements off- line and store them as attributes of element models. During the assembly design process, such attributes can be retrieved directly; thus, complex work for construct- ing bounding volume in run time can be avoided. 3. Fixture element layout: A modular fixture system often consists of supporting units, locating units, and clamp- ing units. These units lie out on the base plate and provide corresponding functions at certain positions. As Fig. 1 shows, in the projection view parallel to the base plate, the units are arranged in some kind of “regions.” In addition, to meet the height requirement of fixturing point, a unit often utilizes a number of supporting elements severed as blocking up objects. Therefore, at the direction perpendicular to the baseplate, the elements lay out hierarchically. Accordingly, we can decompose the space with regard to elements layout feature. 3.3 Algorithm flowchart According to the above characteristics of modular fixture, the proposed algorithm is designed to decrease the complexity and meet the requirements of VR-based modular fixture assembly design. As Fig. 2 shows, at the preprocessing stage, once an element or component is assembled or disassembled, the Layer-based Projection Model (LPM) is established in terms of OBBs of those assembled elements. Such an LPM is used for the CD checking when a new object is assembled. Just like the traditional CD method, proposed algorithm consists of two steps, namely, broad phase and narrow phase. The broad phase is responsible for filtering pairs of objects that cannot intersect. At this stage, it determines pairs of objects in the same subspace, whose silhouettes in LPM overlap and their OBBs intersect. These pairs of objects are candidates for exact polygon-based collision tests in the next narrow phase. During the broad phase, the (a)default view (b)downtown view Fig. 1 Modular fixture structure 318 Int J Adv Manuf Technol (2010) 46:315–328 test may cease at any time if no intersection is found, which helps to reject many noncollision or trivial collision cases. In the narrow phase, the collision detection algorithm will calculate detailed intersection between geometrical meshes of the objects. If no intersection polygons are found, the collide will not occur, and the active object can keep on moving. Otherwise, whenever overlaps are detected, related reactions (for proposed system, it highlights objects and does back-tracking) may arise. 4 Space decomposition for identifying neighboring objects Considering the fact that most regions of the “universe” are occupied by only a few objects or left empty, it means that collision only happens among objects that are close enough. So we can use this phenomenon to filter out most of “far- away” objects. Space decomposition is the common approach to be used for this intention. It first splits the “universe” into cells and then does further collision tests for objects in the same cell. In order to keep generality, most of existing space subdivision approaches are based on a set of polygons. Such a “polygon-oriented” approach is so computationally intensive to deal with large number of polygons. Since standard components are almost with relatively regular shapes, we plan to develop an “object- oriented” space decomposition method. 4.1 Space decomposition model After the baseplate is arranged, the remaining work is to assemble the fixture elements or units onto the baseplate. As the assembling elements or units move to the assembled position, collisions may happen between active object and the assembled elements that have been fixed in the space around the baseplate. Hence, the CD checking process needs start-up only after the active object enters into this space. Firstly, as Fig. 3a shows, we define a valid collision space noted as Ω, which is a cuboid whose bottom face is decided by the baseplate, and its height would change along with the assembling operation. The top of Ω is determined by the vertex coordinates of OBBs. Ω is defined to guarantee that all the assembled elements are inside. After the checking space is identified, we need to decompose the space into a number of cells. How can we organize these cells into proper structure and represent the relevant information to facilitate interaction checking? In literature, some kinds of hierarchical data structure, like R- tree structure [21], have been used to help find neighbors. In complex environment with lots of dispersed objects, this complicated data structure is useful. For modular fixture assembly design, the element models are relatively central- ized, and the number of objects is not so much. Conse- quently, the complex data structure is not needed as constructing such a model is time-consuming. We propose a novel data model to represent partition of the checking space. The model gets the advantages of easy intersection tests and simple information representation. As Fig. 3b shows, the checking space is decomposed into several layers along the axis vertical to the baseplate. Each layer can be represented as a 4-turple L i ={h 1 , h 2 , V, B}, where h 1 is the start height, h 2 is the end height, V is the grid information of this layer, and B describes the projection of elements’ OBBs belonging to this layer. For each layer, the stored information is illustrated in Fig. 3c. Easy to overlap checking, we orthogonally project the bounding box onto the x, y axis (convenient for illustration and does not lose universality). Then, with these projections, intervals are formed on each axis for each object. We construct one list for each axis. Each list contains the coordinate value of the endpoints of the interval on the corresponding axis. By comparing the endpoints, the corresponding pair of objects that are in contact may be determined. If the intervals do not overlap, the corresponding two objects are not in contact and can be discarded. Fig. 2 Overview of collision detection algorithm Int J Adv Manuf Technol (2010) 46:315–328 319 4.2 Space decomposition model construction The above section gives the representation of our space decomposition model; this section will discuss how to construct and reconstruct this model. Most existing space partition methods decompose an entire space into cells in terms of primitive geometric elements (polygons), by computing the position of each polygon and assigning them into corresponding cells, which are often organized into a hierarchical data structure. Despite the data structure remarkably speeding up the CD checking procedure, the establishment of such structure is a complex process and time-consuming. In a situation that the objects in an environment are uniform or the environment models do not change frequently, the cost for preprocessing may be bearable. However, during the modular fixture virtual assembly process, objects within the checking space are changed with time. Therefore, the space composition model must be rebuilt once