Cover Sheet 1

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