[0001] This application is a Continuation of co-pending International Application No. PCT/US99/30753, filed on Dec. 23, 1999, which is a Continuation-in-Part of U.S. patent application No. 60/113,629, filed on Dec. 23, 1998, priority of the filing dates of which is hereby claimed under 35 USC §§120 and 119, respectively. Each of these applications is incorporated herein by reference.
[0002] This utility patent application relates generally to the field of virtual reality (VR), and more specifically, to employing a virtual reality environment integrated with a computer aided design (CAD) system to simulate the virtual assembly of a finished product.
[0003] Modern computer graphics began in the 1960s, when a “Sketchpad” application program was created and its possible uses for computer aided design were demonstrated. During the past several decades, computer aided design/computer aided manufacturing (CAD/CAM) technology has evolved from only being able to represent two-dimensional (2D) geometry to being able to display fully shaded detailed three-dimensional (3D) models. With the rapid increase in computing power and the continuing reduction in hardware cost, CAD/CAM is being used almost in every stage of product design and manufacturing and it has tremendously increased the productivity of many industries.
[0004] However, current CAD/CAM systems are still quite limited in their capabilities. Most CAD systems are limited in the design process due to an inability to enable interactive simulation and dynamic review of a product design. Moreover, it is increasingly apparent that there is a long felt need for a simpler way for an entire enterprise, i.e., management, engineering, manufacturing, maintenance and suppliers, to view and interact with a proposed design for a product. Historically, when an engineer wanted to further investigate the relationships between a proposed design model or a procedure of how to carry out the assembly or manufacture of the product, he used tools that were extensions of a traditional CAD/CAM system. For example, the engineer might use interactive visualization tools which can turn CAD data into functioning, interactive virtual products. These tools helped the engineer to understand the functionality, scale, clearances, ergonomics, and aesthetics of a new design.
[0005] Several advanced 3D visualization and digital prototyping tools are available on the market for use with CAD/CAM technology, e.g., VisMockUpTM from Engineering Animation Inc. and dVrealityTM from Division Inc. These high-speed, integrated 3D visualization tools are used across the conceptual, design, analysis and manufacturing phases of product development. Additionally, these visualization tools help facilitate a concurrent engineering process and reduce the amount of time necessary to introduce new products by reducing the number of physical prototypes that must be created. In this way, the engineering and design teams can more easily visualize their products, see the effects of changes and then communicate these effects in real time to others. Also, manufacturers can create, interact with, share, manipulate and analyze new designs prior to creating the physical prototype. The use of visualization tools with CAD/CAM technology increases interaction between different groups in an enterprise and helps to reduce the total time it takes for a new product to move from an initial concept to final manufacture.
[0006] Although the use of visualization tools with CAD/CAM technology is prevalent in many industries to improve design and manufacturing methods, the application of VR in the field of engineering is relatively new. However, the recent development of affordable and sophisticated VR hardware, i.e. tracking devices, displaying devices and tactile devices, has fueled the creation of VR applications for improving engineering design and manufacturing assembly tasks.
[0007] VR is a synthetic or virtual environment that gives a user a sense of reality, even though the virtual images of the environment may or may not exist in the real/physical world. VR employs an immersive user interface with real-time simulation and interactions through one or more sensorial channels, including visual, auditory, tactile, smell and taste. Additionally, virtual environment systems differ from traditional simulation systems in that they are much more flexible and reconfigurable because they rely much less on a physical mock-up/prototype for creating a realistic simulation. Also, virtual environment systems differ from other previously developed computerized systems in the extent to which real time interaction is facilitated, the perceived visual space is 3D rather than 2D, the user interface may be multi-modal, and the user is immersed in a computer generated virtual environment.
[0008] In the past, several attempts have been made to combine VR technology with traditional CAD/CAM system in different stages of product development from ergonomic studies, to design, assembly simulation, tele-operation and training applications. However, attempts to improve manufacturing planning with computer aided assembly planning systems have not, in general, been successful even when the design has been carried out using a CAD system. One of the main reasons for this lack of success is that assembly is dependent on a great deal of expert knowledge which is very difficult to formalize. Also, new products need to be more thoroughly analyzed for productability, quality and maintainability before committing the high capital required to produce physical prototypes of the new products.
[0009] Traditional automatic assembly planning methods have used the process of studying the disassembly process on the assumption that “if you can disassemble a part, you can assemble it, and vice versa”. In a real-world physical situation, this may not be true due to irreversible fastening processes. Also, for a given product, the number of feasible assembly sequences explodes exponentially as the number of components (parts) increases. In addition, choices of an optimal plan for disassembly may not represent the best plan for assembly. However, the present invention's use of VR opens up a powerful array of tools to solve this problem. Instead of abstract algorithmic assembly planning, an engineer can perform the assembly intuitively in a virtual environment using VR hardware and software. Also, the information generated by in a virtual assembly can be used for relatively precise assembly planning and verification in the real/physical world for a prototype of a new product.
[0010] In accordance with the invention, a method is provided for a virtual environment for simulating the arranging of a plurality of parts into an assembly. A model is created in a design environment for each part. Each model corresponds to the geometry of a part and is translated into a virtual part in the virtual environment. The design environment is integrated with the virtual environment. Each virtual part can be positioned in the virtual environment. The positioning of each virtual part enables a simulation to be performed for arranging the plurality of parts into the assembly. The simulation can be modified which can enable another simulation to be performed. When the modification causes a change in the virtual part, the corresponding model automatically includes the change to the virtual part.
[0011] In accordance with additional aspects, the invention provides for enabling the automatic translation of different types of data from a computer aided design (CAD) system to a virtual assembly design environment (VAE) system. Assembly trees, assembly constraints, and geometry of the parts and subassemblies can be automatically translated from a parametric CAD system to the virtual environment provided by the Invention.
[0012] In accordance with yet other additional aspects, the invention provides for enabling the creation of a realistic virtual environment with an initial location of virtual parts that can be selected by a user. Also, the user can specify the type of assembly environment, which can be defined in the CAD system or imported from another system using any one of many standard file formats. The initial location and orientation of the virtual parts in the virtual environment can be specified by creating coordinate systems in the CAD system and transferring this coordinate information to the virtual environment.
[0013] In accordance with still other additional aspects, the invention provides for creating one or more virtual hands in the virtual environment that correspond to the real hands of a user and which are capable of one handed and/or two handed assembly of virtual parts and dexterous manipulations of these parts. In one embodiment, one of a pair of virtual hands that are provided in the virtual environment can be capable of dexterous manipulations that are controlled with a glove virtual reality device such as the CYBERGLOVE. The other one of the pair of virtual hands can be relatively non-dexterous and only capable of gross grabbing and manipulation movements of a “base” sub-assembly on to which virtual parts are to be assembled by the more dexterous virtual hand. Algorithms are used that allow the dexterous virtual hand to realistically grip 3D virtual parts using physics-based modeling and perform fine motor manipulations of a 3D virtual part. Additionally, the invention can produce different types of haptic feedback for a user including force, sound and temperature.
[0014] In accordance with other additional aspects, the invention provides for capturing constraint information employed by the user of the CAD system to create a 3D model of a part/assembly. This constraint information is employed to determine how the user probably intended the 3D models to be assembled. The constraint information is used to constrain and create kinematic motions for virtual parts during virtual assembly in the virtual environment. Also, the constraint information is used to create a suggested assembly sequence of the virtual parts to the user of the invention.
[0015] In accordance with yet other additional aspects, the invention provides for simulating the interaction between multiple virtual parts using constrained motions along determined and/or selected axes and planes. The virtual parts may be planar or axisymmetric. Also, the constraint information captured from the CAD system may be used to determine the axes and/or planes for constrained motion. This feature enables simulation of different motions such as sliding and rotating without having to employ computationally intensive numerical methods.
[0016] In accordance with still other additional aspects, the invention provides for interactive dynamic simulation of parts in a virtual environment using physically-based modeling information obtained directly from a CAD system that is used to create a 3D model. This information is used to enable collision detection in real time, simulation of dynamic behaviors of the parts held in a virtual hand controlled by the user, dynamic interactions between the virtual hand, part(s) held by the virtual hand, a base assembly, objects disposed in the virtual environment, simulation of ballistic motion of each object in space, and simulation of dynamic behaviors of the parts while constrained on the base assembly.
[0017] In accordance with other additional aspects, the invention provides for enabling a user to record the swept volume and trajectory of a virtual part as it is assembled in the virtual environment. The trajectory can be edited within the virtual environment. Also, the swept volume of the virtual part can be viewed in the virtual environment. The swept volume is created using numerical methods and this volume can be sent back to the CAD system.
[0018] In accordance with yet other additional aspects, the invention provides for parametric modifications of virtual parts in the virtual environment. Specific parameters for a 3D model can be tagged in the CAD system and these tagged parameters are extracted from the CAD system for display in the virtual environment as selectable options. When these tagged parameters are selected for modification in the virtual environment, the modifications are sent back to the CAD system where the 3D model of the virtual part is regenerated using all of the variational and parametric relations. The regenerated 3D model is reloaded from the CAD system into the VAE system for display as a virtual part with the selected modifications in real-time without the user ever having to leave the virtual environment. In this way, quick design changes and “what-if” evaluations during the assembly evaluation process can be performed.
[0019] In accordance with the invention, all of the above-described aspects can function individually or in any combination together. Constrained motion simulation is usually the default mode since it is the basic functionality for guiding assembly operation. Other aspects, such as swept volume generation, trajectory editing, collision detection, design modifications, and dynamic simulation are optional and the user can switch these features on and off as desired.
[0020] In accordance with yet still other additional aspects, the invention provides for the use of swept volume and collision detection together to determine whether a virtual part can be assembled safely (no collisions) without interfering with other parts or environment objects and where any interferences will occur in assembly (swept volumes). The combined use of the swept volume and collision detection features enables a user to identify the exact instances in the trajectory path of a virtual part that is colliding with other parts or environment objects. These exact instances can be employed to identify solutions and for editing the trajectory of the virtual part.
[0021] In accordance with other additional aspects of the invention, a system which implements substantially the same functionality in substantially the same manner as the methods described above is provided.
[0022] In accordance with yet other additional aspects of this invention, a computer-readable medium that includes computer-executable instructions may be used to perform substantially the same methods as those described above is provided.
[0023] The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079] The invention is directed to a method and system for a Virtual Assembly Design Environment (VAE) that enables users to evaluate, analyze, and plan the assembly/disassembly of parts for mechanical systems. The invention employs an immersive virtual reality (VR) environment that is tightly coupled to a computer aided design (CAD) system. The Invention includes: (1) data integration (two-way) with a parametric CAD system; (2) realistic 3D interaction of an avatar such as a virtual hand with virtual parts in the VR environment; (3) creation of valued design information in the VR environment; (4) reverse data transfer of the created design information from the VR environment to the CAD system; (5) significant interactivity in the VR environment between the virtual hand and virtual parts; (6) collision detection between virtual parts; and (7) physical world-based modeling of the interactivity between the virtual hand and the virtual parts.
[0080] The mechanical system of parts for an assembly is designed using a parametric 3D CAD system such as Pro/Engineer™. In one embodiment, a user selects an option in the CAD system that calls the VAE system to automatically export the data necessary to recreate 3D virtual parts in a virtual environment. Next, the user engages one or more VR peripheral devices to enter the virtual environment where the user is presented with a virtual assembly scene. The invention is capable of supporting a variety of virtual reality peripheral devices, e.g., a CYBERGLOVE by Virtual Technologies Inc. and a head mounted display. The various 3D virtual parts are initially located where they would be in a real assembly plant as defined by the user, which can then perform the assembly of the parts in the virtual environment.
[0081] In the virtual environment, the user can make decisions, design changes and perform a host of other engineering tasks. During this process, the virtual environment maintains a link with the CAD system and uses the capabilities of the CAD system wherever required as described in greater detail below. However, the operation of the virtual environment by the invention is not limited by the level of the interactivity with the CAD system. At the end of the VAE session, the user will have generated valued design information which is then automatically made available to the user in the CAD system.
[0082]
[0083] In
[0084]
[0085]
[0086]
[0087]
[0088]
[0089] The invention can perform and/or assist a user in assembly design evaluation, analysis, and assembly sequence planning at all product realization stages: assembly plan verification (pre-product evaluation), maintenance verification, and alternative plan searching (post-production evaluation).
[0090] In the assembly plan verification stage, the Invention enables assembly to be performed in a pre-defined sequence. The user can assemble virtual parts one by one in the virtual environment using constrained motion, swept volume and collision detection. If there is any interference detected during the assembly process, the user can try to find a way to get around it in the virtual environment.
[0091] The maintenance verification stage enables the user to check disassembly of a particular part. If a part needs to be taken out of a larger assembly for maintenance, e.g. change a spark plug or an oil filter, the invention can be employed to ensure a clear trajectory path for disassembly. In one embodiment, the user removes a virtual part from its final position in a larger assembly of virtual parts and the invention checks for collision detection during the disassembly process. In another embodiment, a swept volume of the trajectory path is created during the disassembly process for a particular virtual part. This swept volume is checked for interference with other virtual parts in the larger assembly of virtual parts. By observing the disposition of the swept volume, the invention can determine how much space is available to perform a disassembly operation.
[0092] Sometimes it is necessary to find alternative plans or sequences for operations that are already being carried out in a workshop with real parts. It is also common to post-evaluate an assembly operation. Stopping the assembly line to perform the testing is not always economically feasible and often very few alternatives can be tried out in the limited time available. The invention provides a viable alternative where assembly experts can try various alternatives, choose the best one, suggest design changes, suggest fixturing changes and perform ergonomic evaluations of the assembly/disassembly process. The results of these evaluations in the VAE system can be automatically transferred back to the original CAD system so that a user can quickly perform design changes without any other data translation.
[0093] From the invention test data, several observations have been made: (1) Pure assembly time in a virtual environment is lower than actual assembly time (about 10-15%), which can be attributed to the lack of fastening operations in the virtual environment; (2) Pure assembly time for each virtual part in the assembly increases with the physical size of the part because the difficulty to handle a part appears to increase with its size; (3) Average gripping time for each part in the assembly remains almost the same for different sizes of parts and mainly depends on a user's practice and experience in the virtual environment, whereas gripping difficulty depends on the shape of the part (a thin, long shaft is more difficult to grab than a cubic block); and (4) When considering the relationship of pure assembly time and total assembly time, the correlation coefficient is low for large assembly (0.9 for small assembly, 0.98 for half size large assembly and 0.7 for large assembly), which indicates that human considerations start influencing the assembly time for larger models, e.g., moving some distance to grab the part, finding a better viewing position to look at the part and aligning the parts.
[0094] Besides quantitative information, the invention enables qualitative information to be obtained. For example, a full-size assembly in a virtual environment provides intuitive and valuable information that is impossible to obtain from conventional assembly modeling by a CAD system. The invention test data also illustrated other potential capabilities such as training, work space study and operation time study.
[0095] With the assistance of all the capabilities of the invention, a user can perform assembly design evaluation, maintenance verification, alternative assembly plan searching, and part design modification as described above. Also, since the invention involves the experience and actions of the user, the assembly plans generated by the invention automatically include input from the knowledge of experienced users.
[0096] Additionally, since the invention is typically presented in a full immersion mode using a head mounted display, it can be tiring to put the user in the environment for a long period of time. However, combining parts into sub-assemblies has been found to reduce the amount of time a user spends in the virtual environment.
[0097] Virtual assembly evaluation and planning is particularly suited for complex assembly operations that involve a person. Also, automatic assembly planning systems are well suited for assembly models with a large number of parts that require relatively simple assembly operations (involve translation and one axis rotation) which are often performed by robots. In some cases, a combination of virtual and automatic assembly evaluation can be the best solution. For example, the automatic assembly planning system could be used to find some feasible assembly process plans. Next, the user could then enter the virtual assembly environment (VAE) for evaluation, verification, consideration of practical problems related to the realization of the assembly design and optimization.
[0098] In the sections below, several aspects of the invention are explained in greater detail, including: (1) enhanced constrained motion simulation; (2) physically based modeling of a virtual environment; (3) generation of swept volumes and interactive swept volume trajectory editing; (4) parametric design modification; and (5) finger twirling.
[0099] From the CAD system, constraints are obtained and transferred to the VAE system. For axis constraints, two points in space defining the ends of the graphical line representing the axis are obtained. For plane constraints, three unit vectors and the origin defining the plane are obtained. One of the unit vectors is the normal vector for that plane, starting at the origin of the plane. In both cases, the type of constraint (align or mate) and the offset, if any, between the two axis or planes under consideration are also obtained.
[0100] Additionally, during the assembly process, the geometry representation of the constraints of the base part and the constraints of the part being assembled are transformed into the same coordinate system to check for closeness. If a constraint meets certain criteria, it is applied and the part's motion is limited to the constrained space. For example, if the part is constrained on an axis of the base part, the part can only slide along the axis and rotate about the axis. Alternatively, if the part is constrained on a plane of the base part, the part's motion is limited to the plane.
[0101] Although the above method can correctly map the physical constraints in the virtual environment, it only works for one constraint at a time. In some cases, using the above methods will result in the loss of previously applied constraints. For example, in
[0102]
[0103] Referring to the scene graph in
[0104] Then, in the global coordinate system, the geometry pairs of axis or plane constraints are compared to check for align or mate status. If certain tolerance values are satisfied, they are said to be constrained and equation (2) is used to apply the axis constraint.
[0105] Where [sv_NegXform] takes the part's axis to the origin of the part. Next [axisRotate] makes sure that the two axis under consideration are parallel. Finally [partTranslationXform] snaps the part's axis on to the base part's axis so that they are aligned and constrained. After the axial constraint is applied, the allowable motions are along that axis and about the axis.
[0106] Equation (3) is used to apply the plane constraint where [p_originNegXform] moves the origin of the plane on the part to the origin of the part coordinate system, [normalRotate] makes sure the two planes are parallel. Then [p_originXform] takes the origin of the part plane back to its original position. Finally [distance_bp_normalXform] snaps and constrains the two planes together by moving the part plane in the required direction.
[0107] In axis and plane constraints, there is axis align (inserting), plane or surface align, and plane or surface mate, as shown in
[0108] When checking the align or mate status, differentiating them can be complex especially for plane constraints. However, the plane normals on the part and the base part are in the same direction if they are aligned. An inaccurate way to differentiate is to check that the dot product of n
[0109] From the CAD system, for a plane constraint, a point, Ori, is obtained as the origin of the plane, as well as three unit vectors that are mutually perpendicular to each other. The information is in the part coordinate system. The corresponding information on the base part is obtained by the final transformation (the transformation matrix when the part is finally assembled onto the base part) between them. This is shown in
[0110] In the equation (4), [TransformMat] is the transformation matrix between the part and the base part when the part is assembled to it's final location. The normal on the base part is defined in base part DCS, while the normal on the part is defined in part DCS. However, when the normal vectors need to be checked, they need to be checked in the same coordinate system. When checking the constraints in the part DCS, transform nb is transformed from base part DCS to part DCS using equation-5 (nb
[0111] The normal vectors look opposite to each other, however, that is because they are viewed in different coordinate systems. For example, if a point is transformed to get a point in another coordinate system, when it is transformed back, it is still the same point, therefore, if viewed in the same coordinate system, e.g. in the part coordinate system, the two normal vectors are exactly the same.
[0112] Therefore, when align status of two axes or two planes is checked, the dot product of the two axis vectors or two normal vectors are checked to be near +1. When the plane mate status is checked, the dot product of the two normals is also checked to be near +1. No −1 should be involved at all.
[0113] Another useful observation can be made from the above discussion: since the constraints on the base part are defined by the constraints on the part, the constraints on the part can be defined in an arbitrary way without affecting the final location of the part when it is assembled on to the base part. Therefore, some complicated or abstract types of constraints can be replaced with simple types of constraints. For example, a coordinate system constraint can be replaced with three axis constraints. This step simplifies the simulation task in some cases.
[0114] Axis and plane (or surface) constraints are the most frequently used constraints in assembly operations to fix a part on a base part or a subassembly. In CAD systems, the user is allowed to pick any number of axis or plane constraints as long as they are not in conflict with each other. This, however, gives rise to some redundant information in the assembly operation. In CAD systems, the final position of the part is important, the order is not. However, in real and virtual assembly, the ordering of parts does matter. By analyzing all of the possible combinations of axis and plane constraints, invention can determine which set of axis and plane constraints are enough and which are redundant.
[0115] An exemplary result is listed in a table in
[0116] Careful observation of
[0117] Second, if two parallel axes are used, any third axis parallel to one of them is redundant. Further more, any plane parallel to them is also redundant.
[0118] Third, if a plane is used, any other plane parallel to it is redundant. If a plane and an axis parallel to it are applied, any axis parallel to the plane or the previous axis is redundant, and any plane parallel to the plane is redundant. If two planes are used, any axis parallel to the intersection line of the two planes is redundant.
[0119] From the three conclusions discussed above, it is understood that at most three constraints are needed to fix the part and only the first one needs to be maintained. In some situations, just using equations (2) and (3) will do the work. For example,
[0120] Case
[0121] In this case, the snapping method is used to snap Ap
[0122] As shown in
[0123] where “x” denotes cross product and “•” denotes dot product.
[0124] The transformation matrix is calculated for rotating the part about axis Ab by angle θ, [rotate_matrix_Ab_axis]. The final transformation of the part in the PalmDCS will be
[0125] where [part_matrix_A
[0126] Case
[0127] In the second case, the invention also uses the snapping method to snap Ap to Ab by equation (2). Equation (1) is still used to check the align status Pp and Pb. If the condition is satisfied, a transform matrix is formed by rotating about Ab by an angle. The angle is calculated as shown in
[0128] The final transform of the part in the PalmDCS will be
[0129] where [part_matrix_A
[0130] Case
[0131]
[0132] In Case
[0133] The vector translation of Case
[0134] next, the invention calculates the translation direction vector t
[0135] t
[0136] The vector tr is the translation vector used to form a translation matrix [translation_along_plane], putting the above calculations together
[0137] where [part_matrix_P
[0138] The three special cases described above are situations where special methods are needed for accuracy. In other situations, the simple snapping method can be used.
[0139] With the help of above conclusions and methods, the invention can simulate the constraints during the assembly process. The redundant constraints are processed during the constraint checking process. A work flow chart
[0140] In one embodiment, global position and orientation tracking is done by the Ascension Flock of Birds™ system with an Extended Range Transmitter (ERT). This transmitter employs a pulsed, DC magnetic field and is capable of determining 6 DOF information from each of its receivers. Three receivers are used in this system, one to track the head so that the user can ‘look around’, another to track the right hand and the last one is held in the left hand facilitating assembly operations.
[0141] In one embodiment, the CYBERGLOVE is used to monitor the finger and wrist movements of a user. This
[0142] In one embodiment, the graphical basis for the invention is created with a Silicon Graphics IRIS Performer™ Library. IRIS Performer™ is a software toolkit for the development of real-time 3D graphics, visualization, and simulation applications. Performer™ sits “on top” of Silicon Graphics OpenGL™ libraries. It also has better optimization of its own functions and in turn allowed better performance when using complex models.
[0143] Pro/ENGINEER™ can be used for the creation of the CAD models for use in the invention. Also, Pro/DEVELOP™ is a developer's toolkit for Pro/ENGINEER™, which is designed to be used as a means to access the Pro/ENGINEER™ database. The Pro/DEVELOP™ module automates and simplifies data exchange between the CAD system and the VAE system.
[0144] Object-oriented methods are used to abstract and represent the constraints in the invention. Humans learn about objects by studying their attributes and observing their behaviors. Object-oriented programming models real-world objects with software counterparts. Using object-oriented technologies, the invention can take advantage of object relationships where objects of a certain class have the same characteristics i.e. inheritance. Considering the constraints used in the virtual assembly processes, even though the representations of the constraints are different, they all share the same behaviors: a checking process and an application process. This becomes a typical inheritance situation. According to the analysis and abstraction of real world constraints, The invention employs a Constraint class
[0145] In
[0146] A ConstraintManager class
[0147] The constraint information exchanging between the ConstraintManager
[0148] As discussed above, the graphical structure of the system is represented by the scene graph shown in
[0149] In the equation, [partLocationXform] is the transformation from the part DCS
[0150] If, at some time, the user releases the part while the part is constrained, the invention wants the part to stay on the base part and move with the base part. The relative location of the part to the base part at the time of release can be calculated by equation (2.2).
[0151] At the same time, the initial scene graph is changed by moving the part DCS
[0152] When the user releases the part in his/her hands, if none of the constraints have been applied, the part DCS
[0153] The problem finding where the part is attached becomes easy by noticing the difference between the two situations: if the part is constrained before it is released, the AppliedList
[0154] After re-grabbing, the scene graph goes back to
[0155] Mechanical system assembly designs consist of many parts. During the assembly process, the parts can be in various stages in the environment: maybe only one axis constraint is applied, maybe only one plane constraint is applied, or maybe two axis constraints are applied, or maybe the part just lies on the table. So the constraint status of different parts are different. When the user grabs a part, the invention knows the status of the constraint information of that part: which one has been applied; the location of the part relative to the base part, etc. When the part is released from the user's hand, the invention remembers the current constraint status at that time. When several parts are involved, the invention keeps track of the constraint linked lists in every part
[0156] Additionally, there are bi-directional relationships between the parts
[0157] In
[0158] In the assembly process, the user may want to reassemble a part even after it is placed on to the base part already. The user perhaps wants to try out some other sequences, or he/she may want to assemble the part after some other parts have been assembled. The invention also provides the functionality for disassembly of assembled parts.
[0159] When the invention performs disassembly, the constraints in the part need to be rearranged. When the part is placed, the applied constraints are stored in the AppliedList
[0160] When the user tries to grab the part out from the base part, the invention finds out where the part is. As discussed above, the invention can use the AppliedList
[0161] Another problem in disassembly is that when the user grabs the part, the system will begin checking the constraints. Since all the constraints are close to their counterpart ones in the base part when the part is in the close vicinity of its final location, the part may be constrained right after the user grabs the part. This may not be what the user wants to do. To solve this problem, the invention sets a time lag for checking for constraints if the user wants to do disassembly. The invention begins checking constraints five seconds after the user disassembles the part.
[0162] If multiple parts are involved, especially when a new assembly model is loaded in to the environment, the user may not know how to assemble it. Just letting the user try the possibilities makes the system unfriendly.
[0163] It is desirable to have a guiding mechanism in the system that can provide assembly instructions to assist the assembly. The instructions should be simple, intuitive and easy to follow. First, the user needs to know where a part needs to go onto the base part when he/she picks up the part, then he/she needs to be given instructions of how to assemble the part step by step. Since the user may release the part during the assembly process, the system needs to remember the current constrained status of the part. When the user re-grabs the part, the system needs to provide hints on the next step operation based on the constrained status. Further, if the user wants to do disassembly, the system needs to remember the sequence of the previous operation and pass the information to the user to remind him/her of the previous operation sequence.
[0164] To fulfil the requirements listed above, constraint displaying functionality is provided. The geometry of the constraints are displayed when the user grabs the part: for axis, a line is displayed; for planes, a rectangle near the contact is displayed. When several constraints are involved, different colors are used. This gives the user a very intuitive feel for the assembly process. Further more, the constraints are displayed according to the status of the constraints. If one axis constraint is applied and the user lets the part follow the base part, next time when the user grabs the part again, the applied axis will not be displayed. If a redundant constraint is detected, it will not be displayed anymore. When the part is taken away from the base part, the next time when the user wants to reassemble it, all the constraints come back again except the redundant ones.
[0165] Although the requirements of the guiding mechanism are complicated, the task is not that complex because the invention recalls the information stored in the constraint lists. The method of handling this task is to make use of the constraint lists, the AppliedList
[0166] A detailed scenario is presented above for managing constraints in the virtual assembly environment. The system can efficiently manipulate multiple parts for assembly evaluations. When several constraints need to be applied, all of the constraints are applied in conjunction with the previous ones. When multiple parts are involved, each part moves observing its own constraint set.
[0167] The scene graph method provides an intuitive way to represent the hierarchical relationships between the objects in the virtual world (usually the relationships between different dynamic coordinate systems). More importantly, it provides a way to edit and modify the relationships between the objects in the virtual world.
[0168] One important feature of the invention is constrained motion simulation. The constraint information is extracted from CAD system and each independent constraint satisfied will reduce the number of allowable movements of the objects relative to each other. The invention can simulate axial and planar constraints during assembly design process in any kinds of order and combination. The invention employs methods that can simulate physical constraints commonly used in assembly design without using computationally expensive collision detection.
[0169] In physically based modeling, the basic equations of motion for rigid bodies used to set up the simulation model are the Newton-Euler's equations, which are as follows:
[0170] Where F is the external force; M is the total mass of the system; V′ is the linear acceleration of the center of the mass of the system; dL/dt is the time derivative of angular momentum in the space frame( which is equal to external torque N); I is the 3×3 inertia matrix and ω′ is the angular acceleration; ω×L is the cross product of angular velocity vector and angular momentum vector. In order to solve for the acceleration, velocity and displacement of the system, the mass properties are needed, i.e. mass and inertia matrices of the part or the system.
[0171] The invention gets around calculating mass properties of polyhedral objects by getting the information directly from the CAD system when the model is designed. The mass and inertia matrices are defined (unless the object is broken or deformed) once the model is designed. After investigating the available information which can be queried from CAD systems (e.g. ProEngineer™), the developer's toolkit (e.g. ProDevelop™) can be used to extract the information. When the model geometry and constraint information are written out, the mass properties are written into a property file for each part (or subassembly if subassemblies are used) of the model. The file format and content are illustrated in
[0172] When the invention loads the model into the virtual environment, it also loads the property of the parts or subassemblies at the same time. The information can be queried from the part whenever it is needed during the simulation.
[0173] Assembly models differ tremendously in terms of size and numbers of parts, from tiny motors to large aircraft. In the assembly operations for the different models, human functionality is different. For some small assemblies, assemblers may use their bare hands with assistance from tools. For large assemblies, they depend on tools, e.g. hoists, to lift some big parts and put the parts in their final locations.
[0174] In the VAE system, this fact is taken into consideration. It is easy to use one hand to grab and lift a several hundred pound truck engine in the virtual environment. But this will result in loss of feeling of realism, or even trust in the system. So the inention distinguishes and categorizes the assembly models according to human being's behaviors and abilities.
[0175] The criterion that the invention uses is the strength survey data of human beings. For workers on the assembly lines, if he/she can lift the part with one hand or both hands without difficulty, he/she will lift the part and carry the parts to the assembly. This comes from the observation of real world operations and from the concerns of productivity of industry. The invention can categorize a part into three categories by it's weight: (1) being able to be lifted by one hand; (2) being able to be lifted by two hands; or (3) need to be lifted by a tool. If the part can be lifted by one hand, when the user tries to grab the part, he/she can grab it and move it normally. If the part needs to be lifted by two hands and the user tries to grab and lift it with only one hand, the invention can inform the user that the part is too heavy for one hand lifting and suggest he/she lift it with two hands or get help from some tools. For parts that are too heavy to be lifted by assembler's bare hands, the invention can notify the user to use a tool. Although this kind of categorization is crude and simple, it can represent the real world situation. One interesting observation is that novice users tend to reach out his/her hands to pick up relatively small parts even before any explanation is provided on how to grab the parts in the environment. If he/she is put into the environment with a large part in front of him/her, the user usually stays static and waits for instructions.
[0176]
[0177] As described above, constrained motion simulation is used to simulate physical constraints in the virtual environment. Although the invention can simulate physical constraints by constrained motion without using collision detection, collision detection is still a critical aspect to verify and validate assembly sequences and orders. Further, since the invention can simulate dynamic behaviors of the parts in the virtual environment, the invention can be used to determine if these behaviors improve the reality feeling in the virtual environment and help the assembly planning process.
[0178] The simple categorization of the parts in the assembly models enables the invention to define the scope of dynamic simulation of the parts in the virtual environment. In one embodiment, the invention implements dynamic simulation in cases where the models are small and the parts are not heavy, i.e., in the range of “being handled by one hand”. For larger models and parts, it is not applied since these kinds of behaviors and motions are not allowed in real industrial world anyway because of safety concerns.
[0179] During the assembly process planning of operation, certain behaviors such as object bouncing are not of major concern because the invention can assume the user will behave rationally in the assembly operation. He/she may hit a part with a hammer to adjust its shape, but will not unnecessarily hit a part with the base part or other parts. The invention can model the behavior of the part in the user's hand and on the base part. In the virtual environment, first time users may try to throw a part away to see what a virtual reality system is, but an experienced user who wants to verify his/her design would rarely behave in this way. Thus, the Invention provides models for dynamic behaviors on the part while the part is held in the user's hand and while the part is constrained on the base part.
[0180] There are three kinds of physical motions for an object discussed in detail below: (1) free motion in space; (2) translation on a plane and along an axis; and (3) rotation about an axis.
[0181] Free motion in space of an object is the simplest physical motion to model. An object just follows a ballistic trajectory as described in elementary physics texts. The equations of motion are shown in equations 3.2.1 and 3.2.2. In the equations, t is the time of motion, V