Cover Sheet 1 Contents Cover Sheet 1 Table of Contents and List of Figures 2 Abstract 3 Introduction 4 Technical Discussion 5 1 Problem Statement 1.1 Background and Related Work 1.1.1 Genetic Algorithms . . 1.1.2 Cost Functions . . . . 1.1.3 Graphics Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Progress Report for Continuation Projects 5 5 5 6 7 8 3 Proposed Work 3.1 Application to the Domain of MEMS Design . . . . . . . . . . . . . . . . . . . . 3.1.1 MEMS Filters for Signal Processing (Prof. S´equin’s Responsibility) . . . . 3.1.2 MEMS Resonators for Energy Scavenging (Prof. Wright’s Responsibility) 3.2 Injection Molding (Prof. McMains’ Responsibility) . . . . . . . . . . . . . . . . . 3.3 Electronic-Mechanical Integration (Prof. Wright’s Responsibility) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Relevance to MICRO 8 8 8 10 11 15 16 List of Figures 1 2 3 4 5 6 7 Molds for an electro-mechanical part . . . . . . . . . . . . . . . . . . . . . . . . . . . . Injection molding terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Two different suspension geometries found by an unsupervised search with a genetic algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . An optimized layout of the suspension system after introducing higher-level primitives suggested by the designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Experimental geometries for improved piezo-electric oscillators . . . . . . . . . . . . . . PicoRadio Test Bed fit test between an injection molded component and a prototype board and casing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preliminary Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . . 4 6 . 9 . 9 . 11 . 12 . 13 Interactive Design Exploration and Optimization Tools Principal Investigators: Sara McMains Department of Mechanical Engineering University of California at Berkeley Berkeley, CA 94720-1740 [email protected] Carlo S´equin Department of Computer Science University of California at Berkeley Berkeley, CA 94720-1776 [email protected] Paul K. Wright Department of Mechanical Engineering University of California at Berkeley Berkeley, CA 94720-1740 [email protected] Cooperating Company: Ford Motor Company Abstract This anticipated multi-year project investigates design practices for electro-mechanical parts and systems. We will develop new algorithms and paradigms for interactive tools that will improve the joint humancomputer design process. The focus will be on self powered (energy harvesting) sensor networks, both their internal micro-electrical components and their injection molded casings. We will explore how to more effectively integrate human design expertise and intelligence into refining the design space searched by genetic algorithms, and how to provide injection molding manufacturability feedback orders of magnitude faster than existing tools in order to provide real-time, automatic feedback to designers. Keywords: CAD/CAM, Design Automation, Optimization, Electro-mechanical Design 3 Interactive Design Exploration and Optimization Tools Introduction Great engineering design requires both innovative “big-picture” ideas and detail-oriented analysis. Most engineering designers prefer to spend their time working on creative new ideas. Happily, as computers become ever more powerful, more and more of the tedious aspects of detailed analysis can be performed by machine. In practice however, designers too often defer analysis if it takes a long time to run and requires manual set-up. We need faster, automated analysis tools. Another issue is that human designers can become fixated on a particular approach and fail to explore a wider range of possible designs. Computer search algorithms such as genetic algorithms are an emerging approach to addressing this problem. The objective of our proposed research is to develop new algorithms and paradigms for interactive tools that will improve the joint human-computer design process. The specific design domain we will focus on is self powered (energy harvesting) sensor networks, both their internal micro-electrical components and their injection molded casings. In the Micro-electrical Mechanical Systems (MEMS) domain, our best conceptual designs have all come from human designers. Up to now, the initial promise genetic algorithms showed for finding inventive new design solutions [Goldberg, 1989] have not produced results superior to initial designs produced by expert human designers. In this project, we will explore how to more effectively integrate human design expertise and intelligence into refining the design space searched by genetic algorithms and more effectively integrating GAs with other computer-aided search and optimization tools such as simulated annealing. For the casings (Figure 1), aesthetic considerations mean humans will need to drive the design process. The primary non-aesthetic considerations include ensuring that the casing continues to interface with the board it contains as the electrical designers revise the board design, and ensuring that the casing geometry can be successfully injection molded at the low cost. To address the former, we will build an object-oriented framework with “cross-couplers” that play an active role in helping designers identify cross-domain design parameters. To address the latter, we will develop new design for manufacturability feedback tools that provide feedback orders of magnitude faster than existing tools and integrate our tools in a solid modeling system to provide continuous, automatic feedback to the designer in Figure 1: Molds for top and bottom housing, the real time. injection molded parts, and assembled electroThe electronics sub-division of Ford Motor Company mechanical product (a fingerprint reader) [Mchas made a long-term commitment to Berkeley’s re- Mains et al., 2001] search in Computer Graphics and Integrated Manufacturing. Accelerating the time-to-market of consumer products containing electronic devices and electro-mechanical components, and which at the same time may require eye-catching designs for maximum consumer appeal, is a key economic concern of many Californian companies. Our joint research brings together advanced techniques in computer graphics and computer aided design (CAD) (S´equin in Computer Science and McMains in Mechanical Engineering), with rapid prototyping and computer aided manufacturing (CAM) (McMains and Wright in Mechanical Engineering). 4 Technical Discussion 1 Problem Statement Many challenging engineering design problems can no longer be solved without computers. From bridges to airplanes to integrated circuits (ICs), engineers have developed powerful programs to assist the designer: for bridges, they range from truss design to earthquake analysis, for airplanes, from wing shapes to engine design, and for ICs, from module placement and routing, to finding critical delay paths, to performance analysis. Most of these programs are analysis programs of fine-grain parametric optimization programs. Noteworthy exceptions are placement and routing programs for ICs which depend on some stochastic search techniques such as simulated annealing or genetic algorithms (GAs) to escape a particular local minimum in solution space and to find better solutions based on layouts that might be quite different from the starting configuration. Computer searches have been less successful in the early conceptual stages of design, where creativity, “gut feelings,” and insightful sparks are needed to come up with truly new approaches. 1.1 Background and Related Work 1.1.1 Genetic Algorithms Among the above mentioned search approaches, genetic algorithms [Kamalian et al., 2002, Narayanan and Azarm, 1999, Zhou et al., 2001] are the most “inventive.” The have been demonstrated in many playful settings and have often produced truly surprising results. However, they very rarely produce practical, usable engineering solutions for real-world problems. The reason is that the possible solution space for such problems is always humongous, and the sampling produced by GA in any finite amount of time is thus only very sparse. Thus any “solution” found by GA, although good enough to beat out the competing machinegenerated solutions, is rarely good enough to meet the stringent engineering requirements of a successful system or consumer product. Because of this, it is advantageous to subject the most promising “solutions” found by GAs to a more narrowly focused search or to a greedy optimization that allows exactly matching some nonnegotiable design requirements and to approach more closely other design objectives. This fine tuning will not typically change the given structure, but will only adjust a few aspects of the current design, and optimize a few pre-defined parameters. The combination of stochastic search and greedy optimization can be quite powerful, if the search domain is kept narrowly enough focused. For the broad-based search in the early stages of design this approach is still not good enough, mostly because of the vastness of the search space and the existence of a huge number of local minima that are quite unrelated to any practical solution. In general GAs waste considerable time producing, evaluating, and refining quite ridiculous design configurations. Here introducing human intellect in the loop could act as a very efficient filter to weed out approaches that have no real chance of evolving into anything usable, and to focus processing effort on other branches in the genealogy that hold more promise. The question is how to best integrate human design knowledge and critical intelligence into this process without forcing a human to sit and monitor the GA doing the entire time. 5 1.1.2 Cost Functions Like all optimization algorithms, GAs require a method to evaluate the cost function to be minimized. For the MEMS domain, we will use the SUGAR simulator [Clark et al., 1998, Lo et al., 1996, SUG, 2005] in the evaluation loop. For the injection-molded casings, costs depend on part size, which is simple to evaluate, and mold complexity and manufacturing cycle time, which cannot be evaluated automatically with existing tools. In molding and casting manufacturing processes, molten raw material is shaped in molds from which the resulting part must be removed after solidification. The most economical reusable mold consists of two rigid halves that meet along a planar “parting surface” and are removed in opposite directions along the “parting direction” (Figure 2a). In order for a part geometry to be de-moldable, it must be oriented relative to the parting direction so that the two mold halves can be removed from the part via translation without colliding with it. Surfaces where collisions occur because the mold extends into the area between the part and the parting surface, preventing extraction of the part, are called undercuts (Figure 2b). Finding an undercut-free orientation for an arbitrary geometry is subject to geometric accessibility constraints; not all geometries admit such an orientation. In order to manufacture these more complex parts using injection molding, additional mold inserts (cores) with different release directions are needed, adding considerably to the cost of the mold and increasing the manufacturing cycle time. parting direction upper mold half part parting surface parting direction lower mold half (a) Injection mold for a simple part in cross section undercuts (b) An orientation of the same part with undercuts Figure 2: Injection molding terminology For determining if there is an undercut-free orientation for a geometry (and thus if it is a candidate for the cheaper 2-part mold), visibility maps that partition the Gaussian sphere are among the most promising approaches [Woo, 1994, Chen et al., 1993, Chen and Chou, 1995, Wuerger and Gadh, 1997a, Wuerger and Gadh, 1997b]. [Rappaport and Rosenbloom, 1994] analyze 2D polygons for 2-moldability, and [McMains and Chen, 2004] analyze 2D curved spline input. [H. K. Ahn et al., 2002a] show that a definitive answer to whether a polyhedron is castable in any direction can be obtained via building an arrangement on a sphere as a function of facet normals and orientations where facets may start to obscure each other. Their implementation, however, only tests a heuristically chosen set of directions because of the complexity of implementation and long running time of the complete algorithm. For curved 3D surfaces, [Elber et al., 2004] describe an algorithm limited to C 3 NURBS surfaces only, and their implementation is not fast enough for interactive feedback. Commercial software for undercut analysis requires the user to choose the parting direction a priori [Cimatron, 2002, SolidWorks Corp., 2004], and in our experience occasionally misses undercuts, classifies non-undercut geometry as problematic, and/or incorrectly highlights whole faces as undercuts even if only a small portion is problematic. The robust algorithms we propose to develop and im6 plement will identify multiple potential parting directions if they exist and will be be completely automated, allowing integration with machine search and optimization. Commercial software is often used for mold flow analysis only after the detail design is complete because of the overhead of running it. The popular C-Mold/Moldflow package [Moldflow Corporation, 2005] analyzes filling, post-filling, and cooling using finite element methods. To run it requires first constructing a mesh, and the user must specify the details of the gate and runner system, an obstacle to full automation. Many of the problems discovered during this detailed analysis, however, could be predicted by checking whether the part geometry violated design rules for injection molding, such as minimizing sharp corners to reduce shear stress by using fillets, keeping the wall thickness uniform as much as possible, avoiding abrupt changes in wall thickness that could lead to unequal shrinkage and adding a slight taper (draft) to vertical walls for easier releasability, since deep holes can be made with straight sides only if they are highly polished, increasing mold finishing costs [Poli and Bergeron, 2004, Olmsted and Davis, 2001]. Our approach will be to develop automated algorithms that check for violations of these design rules in order to achieve interactive speeds for feedback to the designer and allow optimization across a wider range of potential designs. 1.1.3 Graphics Hardware A computer’s central processing unit (CPU) supports a large number of general purpose assembly language instructions. Special purpose hardware, such as floating point co-processors, performs limited operations more rapidly than carrying out the same operations “in software” (where multiple assembly instructions would need to be used instead). Specialized graphics processing hardware that supports the rasterization of a dynamic scene composed of shaded, textured 3D triangles, once available only on high-end graphics workstations, is now ubiquitous even on low-end PCs. While floating point operations are used as building blocks for a large variety of other programs, the applicability of graphics hardware to operations beyond the specialized rendering tasks they were designed for is rarely exploited. Previous applications of graphics hardware to manufacturing and inspection problems used only the hidden surface removal capabilities, but today’s programmable hardware can speed up more complex calculations. We will develop and implement new classes of algorithms that exploit recent advances in programmable graphics hardware (GPUs). While these algorithms will be approximate due to the limited resolution of graphics cards, they have the potential to execute considerably faster than conventional CPU algorithms because they will run on what is essentially a mass-produced, highly specialized, parallel supercomputer. Furthermore, “Moore’s law” seems to apply to GPUs but with an even faster improvement rate than for CPUs over the past decade and half: a speedup of roughly 2.4 times a year for GPUs, compared to a 1.7 times speedup per year for CPUs over the same period [Lin and Manocha, 2003]. If these sustained trends continue, the performance advantage for algorithms that take advantage of the graphics hardware will continue to grow. Until a few years ago, most graphics cards were not user programmable. Today, programmable graphics cards (referred to as Graphics Processing Units or GPUs) allow users to define their own vertex and pixel programs. Vertex programs are run in parallel to transform the coordinates of every vertex describing the input geometry before rendering; pixel programs (formally, “fragment” programs) are then run in parallel for every pixel of the output image. Current GPUs can process hundreds of millions of vertices per second and rasterize billions of pixels per second, orders of magnitude faster than a general purpose CPU could perform the same specialized operations. Although the parallelism of the GPU is confined to these two programs, if a new algorithm can be designed in a way that it can be creatively mapped to vertex and pixel programs, the potential speedup is huge. 7 We believe that GPU-accelerated algorithms have the potential to significantly increase analysis speed, making it possible both to give human designers real-time feedback as they experiment with design changes, and also to increase the size of the searchable design space by making it possible to test many more designs. 2 Progress Report for Continuation Projects Not applicable, since this is a new project, not a continuation project. We do, however, describe some preliminary results that we will build on within the following section. 3 Proposed Work 3.1 Application to the Domain of MEMS Design The combination of exploratory computer search techniques and fine-grained greedy optimization algorithms, controlled in an interactive manner by a human operator with some application domain knowledge and design experience can also be used fruitfully in the design of micro-electromechanical systems (MEMS). These miniaturized mechanical devices and components, often integrated or interfaced with electronics, and fabricated on silicon wafers [Petersen, 1982,Fedder, 1999], have moved from the research laboratories into a wide range of commercial products ranging from automotive engine sensors to medical monitoring devices. Two MEMS applications that are intimately tied to our proposed research concern MEMS resonators that can act as band-pass filters in the communication channels of the distributed sensor network, and MEMS piezo-electric resonators that can act as energy scavenging elements for sensor nodes that need to operate for a long time away from the power grid and where replacing batteries is not an option. Both components offer challenging and quite different design problems that cannot be solved with one single design/synthesis program. 3.1.1 MEMS Filters for Signal Processing (Prof. S´equin’s Responsibility) We have started to do some preliminary experiments involving the design of MEMS resonators for signal filtering applications. The focus on this exercise was on finding the best possible suspension design for some central mass to which are attached two capacitive comb drives, one acting as an input driver, and the other one acting as an output sensor. In most cases that central mass is suspended with four spring-like poly-line beams which at their other ends are anchored to the silicon substrate. Genetic algorithms (GA) were used to discover potentially new and innovative geometries for these suspension springs [Kamalian et al., 2002]. With no extra constraints specified, and thus with a large high-dimensional potential solution space, it takes a very long time for these algorithms to find a layout geometry that gives the desired resonance frequency and at the same time gives a stiffness ratio of at least 10 between the desirable direction of oscillation (in the direction of the comb drive fingers) and the undesirable motion direction perpendicular to it. While the GA search did find solutions that met the above criteria, the crooked legs and asymmetrical layouts are not geometries that one would seriously consider for manufacturing (Figure 3a). Fabrication experience readily tells us that we want to use symmetry to cancel out to first order effects of processing uncertainties and of residual stresses in the surfaces of the suspension beams. Adding these constraints to the GA search roughly reduces the number of parameters that need to be adjusted (and thus the dimension of the search space) by 8 a factor of four. The run-times are dramatically reduced, solutions closer to the desired design goals are found, and the layout geometries are more suitable for manufacturing (Figure 3b) [Zhang et al., 2005]. (a) (b) Figure 3: Two different suspension geometries found by an unsupervised search with a genetic algorithm On the other hand, the open-ended search using GA may find intriguing patterns that trigger some associations in a designer’s brain and may suggest spirals or serpentines or nested frame structures that were not previously in her/his repertoire of known design primitives. While the patterns produced by the GA may only be tenuous, the designer can readily distill out the new concept, and create simpler and more regular spirals, serpentines, or frames that can be characterized with just a few geometric parameters. Such new higher-level primitives can then be added to the library of components from which the GA search or other optimization programs can draw in order to make further improvements to the best designs found so far (Figure 4). We believe that such a symbiosis between computer algorithms and human intelligence can indeed yield a very powerful design environment that can give practical solutions superior to what any single monolithic synthesis or optimization program could yield. Today’s design environment typically do not have these components suitably integrated to make this approach workable in an industrial design environment. The various components often run on different computers and may require significant data conversion and recoding to take a design from one algorithm to the next one. Human input is often limited to explicitly re-programming the core of the genetic algorithm and the cost Figure 4: An optimized layout of the susfunctions in the optimization programs. pension system after introducing higherWe envision a framework where a design engineer obtains visual level primitives suggested by the designer. feedback about the current state of the GA during the process of evolution, including a rank-ordered display of the most promising layouts in the current generation. At the same time, this 9 display is also an input channel through which the designer can exert some control, e.g., eliminating some branches of the genetic population, putting more emphasis on other ones and thus steer the evolutionary process into a more desirable direction. But we want to go even further, and let the designer make explicit changes to any one of the current phenotypes, which then in turn affects the internal genotype, i.e., the encoding of this particular piece of geometry. This will be a particularly challenging part of our research, but one that has potentially a large pay-off. The domain of MEMS design, with the SUGAR simulator [SUG, 2005] in the evaluation loop, is well suited to the exploration of this approach. The SUGAR simulator takes as input a symbolic, sticks-like description of the main features of a MEMS design, representing suspension beams as simple polylines with some attached parameters specifying width and height. Thus the conversion from a graphical sketch by the designer to an internal parametrization should be feasible with an appropriately designed user interface. A further key aspect of the envisioned design framework is the ability to readily forward the most promising designs found in the GA search to one or more optimization packages that will fine-tune the design by a local optimization using conjugate gradient descent or some similar technique. In this phase, the evaluation with respect to the intended task as well as with respect to the devices manufacturability and robustness to design variations will then be carried out much more thoroughly than can be done during the GA phase. Of course, the best designs found in this process can then be recirculated again through a GA phase, but this time more narrowly focused, and perhaps with a newly focused set of evaluation criteria that reflect more closely the most critical selection criteria for a real usable design solution. 3.1.2 MEMS Resonators for Energy Scavenging (Prof. Wright’s Responsibility) Another practical design challenge for which we want to explore this combined approach is the design of a family of resonators for energy scavenging from vibrational sources, ranging from car wheels driving on a rough surface to acoustic noise sources in manufacturing plants. In one of the designs, the basic element is a cantilevered beam with one or two layers of a piezo-electric material, which is fabricated with a photolithographic process such as is used to build integrated circuits or MEMS. To optimize energy pick-up, the beam should have a resonant frequency near the dominant frequencies available in the vibrational energy source. Furthermore, the stresses resulting from any accelerations of the sensor chip should be converted into strains that lie in an optimal operating region and which do not lead to fatigue and eventual self-destruction of the sensor device. Assuming we know the materials properties of the beam, calculating good geometries for such a sensor beam is not a very difficult task, and gradient descent methods can readily be used to fine-tune a design and to optimize it for a particular application. Unfortunately, the materials properties of such piezo-electric sandwich structures are not well known, and are quite unpredictable. The residual stresses resulting from the different thermal expansion coefficients can thwart the use of any well designed geometry. Unless great care is taken in elastic layer selection and thickness, upon release from the growth substrate the residual stress in the thin beams can cause them to twist and curl up to a point where they become non-functional. We hypothesize that this problem can be alleviated if the sensor beams are tied at both ends into a two-dimensional framework. The kind of patterns we are contemplating comprise wheels with several spokes (Figure 5 a), possibly curled up in a spiral pattern (Figure 5 b), serpentine beams tied into frames (Figure 5 c) as well as more complicated lattices or even checkerboard patterns. While the residual stresses may still lift or depress portions of such perforated twomanifolds, and may lead to some noticeable buckling, the overall deformation can probably be be kept in a range where the device is still functional as a basic resonator that can convert vibrations into electrical energy. 10 (a) wheel structure (b) spiral whirl structure (c) serpentine structure Figure 5: Experimental geometries for improved piezo-electric oscillators With such two-dimensional patterns, the range of possible geometries is very much larger than the design variations one can possibly impose on an isolated beam. Thus more extensive search methods as well as more creativity on the part of the designer will be required to find the most promising structures. Also, the evaluation of these two-dimensional geometries will be much more involved and time-consuming and will likely require many hundreds of hours of computer time. An open-ended search through all possible geometries with GA techniques is not likely to produce any viable results, and an extensive optimization of one particular type of design, say a wheel with spokes Figure 5 a, is likely to be too narrowly focused and may well miss potentially much better designs. Thus we have again a situation where we believe that the proper combination of computer algorithms and of tight interactive control by a knowledgeable designer will be needed to find the best designs. Sticking for the moment with the example of the wheel with (possibly spiral) spokes, we can envision a computer search/survey, possibly using genetic algorithms, to identify the approximate design types of this sort that will bring us near the desired device characteristics. We expect a knowledgeable MEMS designer to look at these results and identify certain promising features that are common to the successful designs. The designer may then distill out these features and define them more cleanly and more compactly in a module of procedurally generated geometry that has only a few parameters. The exact values of the best parameter values can then be found with local optimization, e.g., by gradient descent in the height field of a cost function that encodes the design requirements and performance goals. If there is more than one local optimum within the range of the hard design specifications, all of these designs will be presented to the designer for further, more detailed analysis or for a possible selection based on attributes that have not been explicitly stated in the original design specifications. This approach has been proven successful in the automatic optimization of operational amplifiers [Koh et al., 1990]. 3.2 Injection Molding (Prof. McMains’ Responsibility) For evaluating the manufacturability and the cost of the casings for the devices that will use these devices (Figure 6), we will develop and implement efficient new GPU-accelerated 2-moldability testing algorithms using a hierarchical, multi-resolution approach to control accuracy. During conceptual design, for geometries with multiple feasible molding directions, GPU-accelerated cost estimates will be used to suggest the least expensive alternatives. We will integrate incremental versions of these algorithms into a commercial solid modeling package using its API (application program interface) in order to study the effect of providing continuous, real-time feedback to designers while they work. In later years of the project, we will 11 combine the GPU-accelerated approach with accessibility map techniques to calculate manufacturing planning, feasibility, and cost feedback for multi-piece molds with side pulls and internal undercuts. We will also use the GPU as a tool to speed up calculations for warning the user about potential quality issues. Since our manufacturability feedback must be reliable to be of use to the designer, we will also develop mathematical models for calculating reliable bounds on the possible error for these approximate solutions. The manufacturability feedback can then be displayed graphically along with a visualization of the uncertainty. Both the estimates and the uncertainty will be validated against exact arithmetic implementations of the moldability algorithms; we will run these slow but reliable exact algorithms as background processes for quality assurance of the feedback from our fast, approximate algorithms. The comparison data archive thus generated will also guide us as we improve the accuracy of the approximate algorithms. As preliminary work, we have developed a new GPUaccelerated algorithm to test a geometry’s moldability in a two part mold and provide graphical feedback to Figure 6: PicoRadio Test Bed fit test between highlight the undercut features for a given parting direc- an injection molded component and a prototype tion [Khardekar and McMains, 2004, Khardekar et al., board and casing. 2005]. For simplicity, we will describe the algorithm assuming a vertical parting direction. Define a part facet as an “up-facet” if the angle between its outward facing surface normal and the positive (+z) parting direction is less than 90◦ . [Ahn et al., 2002a] proved that a given part geometry is vertically moldable if and only if it is vertically monotone, i.e. there exists no vertical line that intersects the part surface and/or interior in more than one disconnected interval. We observe that as a consequence, for a part that is not moldable and hence not vertically monotone, vertical lines at the non-vertically-monotone locations will intersect at least two up facets. Thus if we project the up facets of the boundary representation of the part orthographically onto a plane normal to the parting direction, the part is moldable in this direction if and only if none of the projections of the up-facets overlap. In our two pass moldability algorithm, we first place the center of projection above the part along the positive parting direction to be tested. For the rendering operations described below, we use orthographic projection in the parting direction. In the first pass, we render the visible (portions of) up facets using the z-buffer visibility capabilities of the graphics card. After this pass, the frame buffer’s pixels corresponding to visible geometry will have been updated, and the z-buffer will hold the distance to the visible up facet for each pixel. In the second pass, we zero the frame buffer but re-use the z-buffer from the first pass. We re-render the geometry, this time setting the depth test function to compare distances to those stored in the z-buffer in the first pass, so that only the (portions of) up facets that were hidden in the first pass will be rendered. Thus if any pixels are rendered in the frame buffer during the second pass, they correspond to overlapping projected up facets, telling us that the object is not moldable in that direction. On the most recent graphics cards, we can efficiently check if any pixels were rendered in this pass by using the graphics card’s occlusion query functionality, rather than reading back the entire frame buffer. Our implementation of this algorithm on a GPU donated by nVidia was able to test the moldability of parts with over 20,000 facets in less than one 12 Milliseconds per direction millisecond per direction tested (Fig. 7), with running time growing only linearly with input size, in contrast to the O(n log n) growth rate of the Ahn et al. algorithm. The running times were over 200 times faster compared to running on the same machine with an older GPU that does not support vertex and fragment programs, since the CPU had to execute them. 1 0.8 0.6 0.4 0.2 0 40 facets 0 Undercuts 20,676 facets 5000 10000 15000 20000 Number of Facets (b) Running times (QuadroFX 3000 (a) Sample parts with undercuts found by our GPU, AMD Athlon 1.8 GHz CPU) algorithm highlighted (vertical removal direction) Figure 7: Preliminary Results We use depth textures to highlight the (portions of) facets that are not moldable in the given direction so that the designer can make the necessary changes to the part geometry. This is analogous to finding the (portions of) facets that would be in shadow if the part were to be illuminated by two light sources located at infinity in the positive and negative parting directions. We generate two depth textures with the graphics card by orthographically rendering the part looking at it from the positive and negative parting directions. The depth texture holds the distance to the part for each pixel of the resulting image, copied from the z-buffer. We can then allow the user to rotate the object and examine the highlighted undercuts in real time, accessing the same two depth textures for each instantaneous viewing direction. We make use of vertex programs and fragment programs executed in parallel on the graphics card. We use a vertex program to transform the vertices of each polygon by the orthogonal viewing transformation associated with the two parting directions in turn, calculating the texture coordinates that the subsequent pixel program will use to check if the transformed depths for each fragment are greater than the depth values stored in the respective depth textures. (Textures are stored in texture memory on the GPU, eliminating the bottleneck of accessing general purpose RAM on the motherboard, but must be accessed in a prescribed manner optimized for texture mapping bitmapped images onto triangular meshes.) If both are greater, we highlight that fragment to indicate to the designer that there is an undercut on that section of the surface. Later, when we consider side pulls, verification of their surface coverage is a natural extension of this algorithm: we add an additional depth texture from the point of view of each side pull. Testing a pre-determined parting direction using the above algorithm will be useful to designers at the stage in detail design where they have begun to add bosses, ribs, and draft to a part, since these operations require knowing the parting direction a priori. (If the user specifies a parting direction, we can also warn the user if minimum draft requirements have not been met by adding a check for facet inclination angle to our pixel program.) But during the conceptual design, we can use this same algorithm as a subroutine for determining if any 2-moldable directions exist, and finding alternate feasible directions if so. Alternate directions allow 13 greater freedom for subsequent design operations, and some directions may allow for more cost-effective molds than others. The efficiency of these algorithms lies in that they identify groups of candidate directions such that if any one direction in the group is not castable, none are, or if any one is castable, all are. We will use the fact that all combinatorially distinct casting directions correspond to 0-, 1-, or 2-cells in an arrangement of great circles on a Gaussian sphere, where the great circles are derived from the faces of the input geometry. In the first year, we will analyze the reliability of this direction testing algorithm, build a multi-resolution version of it, and develop improved algorithms that use it as a subroutine for finding alternate (if any) 2moldable directions. Our proposed multi-resolution algorithm will use a hierarchical refinement approach. We will start by setting the viewing parameters so that the entire projected part fits in the frame buffer, and then if the user requests greater accuracy, we will subdivide this view into quadrants, processing each quadrant sequentially to achieve four times the resolution of the parent. Based on statistics such as the numbers of pixels rendered in each quadrant and their depth complexity, we can make informed decisions about which quadrants are the best candidates for further subdivision. To estimate the impact of this multiresolution approach, we will gather data on how often we obtain different answers about moldability using the the higher resolutions. For determining all feasible releasability directions, we believe that we can obtain speedups by performing incremental calculations. For example, with an extrusion, the valid parting directions will include not only the extrusion direction but also the valid parting directions for the 2D shape extruded. For efficiently analyzing the moldability of a 2D “polygon” bounded by edges that may be curved, without requiring that the shape be first tessellated into approximating straight line segments, we will implement a new algorithm we have developed [McMains and Chen, 2004]. The complexity of our algorithm is O(n), where n is the number of “segments” bounding the input polygon, where we consider either a straight line segment or a curve with G1 continuity and positive or negative signed curvature everywhere to be a segment. For input defined by spline curves with a total of n control points, the running time is thus linear in the number of control points. After looking at efficient moldability analysis for individual design primitives, we will study the effects of combinations of primitives. For example, when multiple additive extrusion operations are combined, performing a Boolean intersection between the individual primitives’ valid parting directions will limit the potential parting directions that need to be considered (a non-empty set is a necessary but not a sufficient condition for a part to be moldable). A Boolean algebra of combinations of different primitive operators’ parting directions can be implemented on a discretized representation of all possible parting directions, using the stencil buffer on the graphics card. In later years of this anticipated multi-year project, there are a variety of directions we hope to pursue. We will incorporate the testbed as a plug-in to a solid modeler that supports notification of model changes. Each time a geometry change is detected, the plug-in will first call our GPU-accelerated algorithms to provide immediate feedback to the user about the moldability of the new geometry (and the size of the potential error in the calculation), then fork a background process to perform slower, non-approximate moldability direction testing. If this calculation obtains a qualitatively different answer, the user will be notified in a pop-up window. The testbed will also link to a relational database where the geometry and the results of both tests will be archived. We will implement reliable exact arithmetic versions of our direction checking algorithms. Recent advances in implementing exact arithmetic packages can fix problems due to round-off errors [cgal.org, 2005], but typically slow down computations by one or two orders of magnitude. Thus exact arithmetic is inappropriate for interactive feedback, but shows promise for the slower, more accurate simulations we will implement 14 to double-check the accuracy of the fast, approximate feedback. We will add cost estimation, taking the [Boothroyd et al., 2002] model as a starting point and developing new GPU algorithms to efficiently estimate costs. We will develop and implement visualizations of the potential errors in our fast feedback (introduced mainly by discretization). We will extend the ideas from our 2-piece mold algorithms to develop multi-piece mold DFM feedback tools. We will develop new design-rule checking tools to analyze quality issues, to replace current tools that rely on finite element methods that are lengthy to run and require manual setup. We believe much more efficient, automated feedback can be provided by using the GPU to build the “skeleton” of the geometry, thus reducing the dimensionality of the problem and significantly speeding up the analysis. The skeleton consists of all points interior to the part that have at least two equi-distant closest points on the surface; these points, together with the distance to the surface for each, comprise the Medial Axis Transform (MAT). We will calculate a discretized approximation to the MAT using the graphics hardware. Then we will use the MAT’s distance information to find large material masses, and combine the distance information with the MAT topology to evaluate the rate of changes in part thickness and the potential for sink defects. We will also build the MAT of the complement of the part to check for cooling problems, which can arise for example when two parallel ribs are close together compared to their wall thickness. 3.3 Electronic-Mechanical Integration (Prof. Wright’s Responsibility) For integrating the electronic and mechanical designs, we will need an interface for constraint specification. During the constraint specification process, designers must differentiate between “local” constraints that affect only the ECAD or only the MCAD side, and “global” cross-coupled constraints. These constraints may be geometric, topological, parametric, or logical. We will study the “as is” design process for the class of electronic-mechanical products, for a better understanding of the inter-dependencies between the design tasks. We will then build an object-oriented framework with “cross-couplers” that play an active role in helping designers identify cross-domain design parameters and relate the two. Unlike the MIT/DICE project [Sriram, 2002], we won’t be developing our integrative environment around an in-house CAD package; we want a scheme that can be integrated with commercial CAD/CAE tools but at a finer level of granularity than provided by commercial product data management (PDM) systems. Thus we are investigating how to represent cross-coupled constraints at an appropriate level of data granularity. This will involve intimate knowledge of ECAD/MCAD file formats so that only key data is used and lower level data remains within the native format. We propose to represent this mixed set of constraints and entities by bipartite graphs [Serrano and Gossard, 1987] where the nodes and arcs are drawn from a standard set of topological, geometric, parametric entities and the relations between them, respectively. Standard algorithms are also available for the decomposition of such graphs [Sedgewick, 1999] into not only strongly connected components, but also into sub-problems that can be sent to different types of solvers. Graph based methods facilitate identification of over, under and improperly constrained conditions, even without solving. This will be used as the basis for constraint specification validation. Many of the symbolic solvers have difficulty with large sets of equations, particularly in the presence of transcendental functions. Additionally, specialized geometric solvers may be more efficient for maintaining geometric constraints, instead of general-purpose equation solvers. DCM3D from D-Cubed is the leading commercial solver now embedded in many MCAD systems [dcu, 1999]. Geometric solvers and solution selectors need to be combined with other types of solvers for our system. 15 4 Relevance to MICRO Particularly in the field of microelectronics, the design process is an iterative one, relying on the interaction between a human designer and computer-aided design and manufacturing tools. Our proposed work in integrating human design expertise into computer-aided search and optimization is thus directly applicable to microelectronics design. Furthermore, the techniques we will develop in the course of this project will have broad applicability in computer science and computer-aided design, not just to the design of the energy harvesting sensor network components we will be using as test cases. Efficient visibility calculations, for example, are a central problem in a number of areas: efficient graphics display of complex virtual scenes, accessibility analysis in manufacturing, local wireless network layout, and 3D scanning, both for inspection and model acquisition. The algorithms, analysis techniques, and implementation methods developed in this project for injection molding will be applicable to many of these other application areas as well. GPUaccelerated algorithms could radically alter the ways in which CAD/CAM/CAE systems are built, expanding search spaces by reducing the cost of generating and testing alternate solutions, adding interactivity where none existed, and making problems that were once considered computationally infeasible tractable after all. Additional Information on Our Sponsor Our collaborators in the Ford Motor Company are establishing a line of products for driver guidance, personal safety, and vehicle systems monitoring. Some of these devices are “wearable, sensor-based computers,” for instance, earrings that monitor body condition and driver alertness. The needs for comfort and reliability present a host of “organic design” problems – designing for the human form – along with the manufacturing challenges that come from creating molds that can fabricate delicate and convoluted structures. The upcoming federally mandated deadlines for incorporating built-in tire pressure monitors in the tires of new vehicles have also resulted in renewed interest in our work on sensors and sensor networks. Ford particularly encourages us to develop design and manufacturing methods that can be used to shorten the time delay from the inception of a design to its realization as a manufacturable product. We meet regularly with representatives from Ford Motor Company, including Russ Saul, the regional manager in San Ramon, CA, and Dr. Liou, our technical liaison. Dr. Liou’s expertise lies in the area of Knowledge Based Engineering software to help designers with issues concerning Design for Manufacturability [Ahn et al., 2002b]. Many new electronic-mechanical, sensor-based devices will thus be developed during our proposed collaboration using our interactive design tools. A variety of products of this nature were developed by student design teams as part of ME 221, High-Tech Product Design and Rapid Manufacturing. For the “Mock Trade Show” interdisciplinary teams of students from different departments (EE, CS, ME, Business) designed and prototyped projects such as: EZ-park, an RF ID tag parking garage parking spot location system; BabyOnBoard, a wireless temperature monitor and key chain alarm system for parents to alert them of potentially dangerous temperatures in their parked cars; BlindSIGHT, a driving aid that detects persons, vehicles, and objects in a driver’s blind spots while driving; SafetyNET, for detecting falls in eldercare environments; Smart Shopper, a hand-held wireless retail platform that assists shoppers with product information, itemization and payment; TheraPad, an ice/heat pack with an attached sensor that monitors how often, how long and at what temperature the patient is taking care of their injury; SmartLock, a bicycle security device that is used to notify people when their bicycles are being tampered with; and CommuniCast, dynamic digital billboards triggered by a wearable wireless device in the form of a key-chain. All these class projects were funded by our sponsor, even though most of the devices designed were not directly related to in-vehicle monitoring. Pushing the state of the art in interactive design tools is of very 16 high interest to the industry, and good techniques are obviously transferable from one application domain to another. References [dcu, 1999] (1999). The 2D DCM Manual Version 3.7.0. D-Cubed Ltd, Cambridge, England. [SUG, 2005] (2005). Simulation Research for MEMS. http://www-bsac.eecs.berkeley.edu/cadtools/sugar/sugar/. [Ahn et al., 2002a] Ahn, H.-K., de Berg, M., Bose, P., Cheng, S.-W., Halperin, D., Matousek, J., and Schwarzkopf, O. (2002a). Separating an object from its cast. Computer-Aided Design, 34:547–59. [Ahn et al., 2002b] Ahn, S. H., Bharadwaj, B., Khalid, H., Liou, S., and Wright, P. (2002b). Web-based Design and Manufacturing Systems for Automobile Components: Architectures and Usability Studies. International Journal of Computer Integrated Manufacturing, pages 555–563. [Boothroyd et al., 2002] Boothroyd, G., Dewhurst, P., and Knight, W. (2002). Product Design for Manufacture and Assembly. M. Dekker. [cgal.org, 2005] cgal.org (2005). Computational Geometry Algorithms Library. http://www.cgal.org. [Chen and Chou, 1995] Chen, L.-L. and Chou, S.-Y. (1995). Partial Visibility for Selecting a Parting Direction in Mold and Die Design. Journal of Manufacturing Systems, 14(5):319–330. [Chen et al., 1993] Chen, L.-L., Chou, S.-Y., and Woo, T. C. (1993). Parting directions for mould and die design. Computer-Aided Design, 25(12):762–768. [Cimatron, 2002] Cimatron (2002). QuickConcept. http://www.cimatron.com. [Clark et al., 1998] Clark, J. V., Zhou, N., and Pister, K. (1998). MEMS Simulation using SUGAR V.0.5. In Proceedings of the Solid-State Sensor and Actuator Workshop, pages 191–196. [Elber et al., 2004] Elber, G., Chen, X., and Cohen, E. (2004). Mold Accessibility via Gauss Map Analysis. In Proceedings of Shape Modeling International, pages 263–72. [Fedder, 1999] Fedder, G. (1999). Structured Design of Microelectromechanical Systems. In Proc. of the IEEE Int. conf. On Microelectromechanical Systems, pages 1–8. [Goldberg, 1989] Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley. [Kamalian et al., 2002] Kamalian, R., Zhou, N., Agogino, A., and Pister, K. (2002). MEMS Synthesis Using Stochastic Optimization. Berkeley Sensor and Actuator Center Researchers’ Industrial Advisory Board. [Khardekar et al., 2005] Khardekar, R., Burton, G., and McMains, S. (2005). Finding Feasible Mold Parting Directions Using Graphics Hardware. In 2005 ACM Symposium on Solid and Physical Modeling, page (to appear), Boston, MA. [Khardekar and McMains, 2004] Khardekar, R. and McMains, S. (2004). Finding Mold Removal Directions Using Graphics Hardware. In ACM Workshop on General-Purpose Computing on Graphics Processors (Poster Session), pages C–19, Los Angeles. [Koh et al., 1990] Koh, H. Y., Squin, C. H., , and Gray, P. R. (1990). OPASYN: A Compiler for CMOS Operational Amplifiers. IEEE Trans. on CAD, 9(2):113–125. [Lin and Manocha, 2003] Lin, M. C. and Manocha, D. (2003). SIGGRAPH 2003 Course Notes, volume 11, chapter Interactive Geometric and Scientific Computations Using Graphics Hardware, pages 1–6. ACM SIGGRAPH. [Lo et al., 1996] Lo, N. R., Berg, E. C., Quakkelaar, S. R., Simon, J. N., Tachiki, M., Lee, H. J., and Pister, K. S. J. (1996). Parameterized Layout Synthesis, Extraction, and SPICE Simulation for MEMS. In Proc. ISCAS, Atlanta, GA. [McMains and Chen, 2004] McMains, S. and Chen, X. (2004). Determining Moldability and Parting Directions for Polygons with Curved Edges. In International Mechanical Engineering Congress and Exposition, pages IMECE2004–62227, Anaheim, CA. ASME. 17 [McMains et al., 2001] McMains, S., S´ equin, C., Smith, C., and Wright, P. (2001). Internet-based Design and Manufacturing. Technical Report Final Report 1999-2000 for MICRO Project 99-106, U.C. Berkeley. [Moldflow Corporation, 2005] Moldflow Corporation (2005). http://www.moldflow.com/stp/english/products/mpi.htm. Moldflow Plastics Insight. [Narayanan and Azarm, 1999] Narayanan, S. and Azarm, S. (1999). On Improving Multiobjective Genetic Algorithms for Design Optimization, Structural Optimization. volume 18, pages 146–155. [Olmsted and Davis, 2001] Olmsted, B. A. and Davis, M. E. (2001). Practical Injection Molding. Marcel Dekker, New York. [Petersen, 1982] Petersen, K. E. (1982). Silicon as a Mechanical Material. Proceedings of the IEEE, 70(5):420–457. [Poli and Bergeron, 2004] Poli, C. and Bergeron, D. (accessed 2004). Design For Manufacturing, Online Edition. http://mielsvr2.ecs.umass.edu/tutors/mainmenu.html. [Rappaport and Rosenbloom, 1994] Rappaport, D. and Rosenbloom, A. (1994). Moldable and castable polygons. Computational Geometry: Theory and Applications, 4:219–233. [Sedgewick, 1999] Sedgewick, R. (1999). Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching. Addison-Wesley. [Serrano and Gossard, 1987] Serrano, D. and Gossard, D. (1987). Constraint Management in Conceptual Design. In Knowledge Based Expert Systems in Engineering: Planning and Design, pages 211–24, Southampton, UK. Comput. Mech. Publications. [SolidWorks Corp., 2004] SolidWorks Corp. (2004). SolidWorks SDK. [Sriram, 2002] Sriram, R. (2002). Distributed and Integrated Collaborative Engineering Design. Sarven, Glenwood, MD. [Woo, 1994] Woo, T. C. (1994). Visibility maps and spherical algorithms. Computer-Aided Design, 26(1). [Wuerger and Gadh, 1997a] Wuerger, D. and Gadh, R. (1997a). Virtual Prototyping of Die Design Part One: Theory and Formulation. Concurrent Engineering : Research and Applications, 5(4):307–315. [Wuerger and Gadh, 1997b] Wuerger, D. and Gadh, R. (1997b). Virtual Prototyping of Die Design Part Two: Algorithmic, Computational, and Practical Considerations. Concurrent Engineering : Research and Applications, 5(4):317–326. [Zhang et al., 2005] Zhang, Y., Kamalian, R., Agogino, A. M., and S´ equin, C. H. (2005). Hierarchical MEMS Synthesis and Optimization. In SPIE Conference on Smart Structures and Materials, San Diego CA. [Zhou et al., 2001] Zhou, N., Zhu, B., Agogino, A., and Pister, K. (2001). Evolutionary Synthesis of MEMS MicroElectronicMechanical Systems Design, Intelligent Engineering System Through Artificial Neural Networks. In Proceedings of the Artificial Neural Networks in Engineering, volume 11, Atlanta, GA. ASME Press. 18
© Copyright 2024