Optimization-based layout design

The layout problem is of importance to ergonomists, vehicle/cockpit packaging engineers, designers of manufacturing assembly lines, designers concerned with the placement of levers, knobs, controls, etc. in the reachable workspace of a human, and also to users of digital human modeling code, where digital prototyping has become a valuable tool. This paper proposes a hybrid optimization method (gradient-based optimization and simulated annealing) to obtain the layout design. We implemented the proposed algorithm for a project at Oral-B Laboratories, where a manufacturing cell involves an operator who handles three objects, some with the left hand, others with the right hand.


INTRODUCTION
The layout design problem is defined as the method whereby positions of target points are specified in the work environment surrounding a human.Given a person's physical dimensions and ranges of motion, the person is required to locate a number of objects in the environment such that a specified cost function is optimized.The problem is of interest to ergonomists, automobile assembling engineers, and designers interested in locating targets (e.g., lever, buttons, control knobs, switches, etc.) within a person's reachable space.Since there are an infinite number of solutions to this problem, the field of optimization presents a viable venue for formulating the problem.
To a certain extent, some researchers have addressed implementing a systematic optimization scheme in ergonomics (Fisher 1993, Pham andOnder 1992).There are also many studies, most of them experimental, that delimit "comfort" and "convenient" reach zones in which objects may be placed to reduce operator effort and to minimize potential operator injuries (Lim andHoffmann 1997, Das andSengupta 1996).
The field of ergonomics received considerable attention after the appearance of digital human modeling software, where digital mannequins are manipulated to answer specific questions such as "Is this target point reachable?Is this load too heavy?Is this posture comfortable?"Whereas this type of software is a valuable tool for ergonomists and designers, it has not been able to provide a best design scenario.
In this paper, we present a method and accompanying code to address the layout problem from an optimization point of view.The general question is where to locate specific target points in the reachable space while optimizing one or more cost functions and while subject to a number of constraints.A global optimization method, simulated annealing, has been used to implement the algorithm and to yield global solutions.Because layout design must take into consideration a relatively large number of issues, some subjective, others more objective, we believe that our proposed optimization-based solution introduces a new method for making more educated design-related decisions.We have implemented this method at Oral-B Laboratories, where a manufacturing cell involves an operator who handles three objects, some with the left hand, others with the right.

HUMAN KINEMATIC MODELING
To establish a systematic method for modeling human anatomy biomechanically, researchers have implemented conventions for representing segmental links and joints.Human anatomy can be represented as a sequence of rigid bodies (links) connected by joints; this serial linkage could be an arm, a leg, a finger, a wrist, or other functional biomechanism.Joints in the human body vary in shape, function, and form, so the complexity offered by each joint must also be modeled, to the extent possible, to enable a correct simulation of the motion.The degree that a model replicates the actual physical model is called the level of fidelity.
Perhaps the most important element of a joint is its function, which may vary according to the joint's location and physiology.Physiology becomes important when we discuss the loading conditions of a joint.In terms of kinematics, the function is addressed in terms of the number of degrees of freedom (DOF) associated with the joint's overall movement.Muscle ligament, tendon, and actions at a joint are also important and contribute to the joint's function.
For example, consider the elbow joint, which is considered a hinge or one DOF rotational joint (e.g., the hinge of a door) because it permits flexion and extension in the sagittal plane (Figure 1), as the radius and ulna rotate about the humerus.We shall represent this joint by a cylinder that rotates about one axis and has no other motions (i.e., one DOF).Therefore, we can now say that the elbow is characterized by one DOF and is represented as a cylindrical rotational joint, as shown in Figure 1.
The torso, shoulder, and arm are modeled using a 15-DOF model (from waist up to the right hand) (Figure 2).The DH Table for the right hand is in Table 1(a).With a symmetric model to that shown in Figure 2 (with axes z 9 , z 10 , z 11 , z 13 , z 14 having opposite directions to those shown in Figure 2), we have a DH  1(b), where joint variables q 16 to q 24 are symmetric to q 7 to q 15 of the right Poin Poin Point of interest Figure 2 A 15-DOF model for upper body from waist up to right hand.

FORMULATION
Because many parameters enter into the layout problem and also because it has no single best solution, the problem lends itself to optimization.We shall develop a formulation suitable for implementation into numerical optimization algorithms.To this end, an objective function, also called a cost function, must be optimized (maximized or minimized) subject to imposed constraints.

Problem definition
Given the dimensions and joint ranges of motion of a human situated in a pre-specified position (e.g., seated in the workplace or in the cockpit of an aircraft), a requirement is to determine (or calculate) the coordinates of a number of target points that will be designed into the environment (Figure 3).These target points could be any combination of levers, buttons, control knobs, switches, etc., while optimizing an objective function.

Cost functions and constraints
The cost functions could be discomfort, potential energy, effort, torque, dexterity, or any combination of these functions.The cost functions will first briefly be noted here.Then a multi-objective optimization problem is formed.

Discomfort
Consider a cost function that measures the level of discomfort when a given joint is displaced from its neutral position.Let q N i be the neutral position of a joint measured from the home configuration (i.e., from the position and orientation specified in the DH Table ).The displacement from the neutral position is then given by q i − q N i .Because the discomfort level is usually felt to be higher in some joints, we also introduce a weight function w i to stress the importance of one joint relative to another.The total discomfort of all joints is then characterized by the function where w i is a weight function assigned to each joint for the purpose of giving more importance to joints that are typically more affected than others.

Effort
Effort is measured as the displacement of a joint from its original position.Effort will greatly depend on the initial configuration of the limb, i.e., prior to its moving to another position.For an initial set of joint variables q initial i and for a final set of joint variables q i , a simple measure of the effort is expressed by where γ i is a weight function assigned to each joint.Note that f effort depends on the initial configuration of each joint.

Torque
Stress induced at a joint is a function of torque imposed at that joint due to biomechanical interaction.To overcome a load, a person will generate the torque at a given joint by exerting muscle forces, but the torque is also a function of the position and orientation of the joint during loading.In order to account for all elements that enter into calculating the torque at a given joint, we must employ a systematic formulation.To develop a mathematical expression for the torque, we first introduce a few preliminary concepts.The velocity of a point on the hand is obtained by differentiating the position vector as where the position Jacobian J x (q) = [∂x/∂q] is a (3 × n) matrix and q is the vector of joint velocities.Note that the reach envelope can be determined from analytically stratifying the Jacobian (Abdel-Malek et al 2001).Similarly, the angular velocity can be obtained as where the orientation Jacobian J ω is a (3 × n) matrix.Combining equations ( 5) and (6) into one vector yields where J(q) is the Jacobian of the limb or kinematic structure defined by The goal in this section is to determine the relationship between the generalized forces applied to the hand (e.g., carrying a load) and generalized forces applied to the joints.Let τ denote the (n × 1) vector of joint torques and F the (m × 1) vector of hand forces applied at p, where m is the dimension of the operational space of interest (typically six).
Using the principle of virtual work, we can determine a relationship between joint torques and generalized forces acting on the hand.Since the upper extremity is a kinematic system with time-invariant, holonomic constraints, its configuration depends only on the joint variables q (not explicitly on time).Consider the virtual work performed by the two force systems (joint torques and generalized hand forces).As for the joint torques, their associated virtual work is dW τ = τ T dq. (9) For the hand forces F = [f T m T ] T , comprised a force vector f and moment vector m, the virtual work performed is where dx is the linear displacement and ω dt is the angular displacement.Substituting equations ( 7) and ( 8) into equation ( 10) yields Since virtual and elementary displacements coincide, virtual work associated with the two systems is where δ denotes a virtual quantity.The system is under static equilibrium if and only if which means that the difference between virtual work of the joint torques and virtual work of the hand forces shall be null for all joint displacements.Substituting equations ( 11) and ( 12) into equation ( 13) yields Therefore, the relationship between the joint torques and forces on the hand is given by where the torque vector is τ = [τ 1 , τ 2 , . . ., τ n ] T .Torque cost function comprises the weighted summation of all joint torques where λ i is a weight function used to distribute the importance of the cost function among all joints.

Potential energy
The third objective function represents the potential energy of an arm.Often with upper body motion, the change in height for the torso's center of gravity, and thus the change in potential energy, is relatively small.In addition, minimizing the torso's potential energy is not as crucial in dictating natural postures as minimizing the arm's potential energy.Consequently, in initial studies, only the potential energy of the arm has been considered.Each link (e.g., the forearm) has a specified center of mass.The vector from the origin of a link's local coordinate system to the center of mass is given by r i , where the i r ( )

Local coordinate system-i
Figure 4 Illustration of the potential energy of the forearm.
subscript indicates the relevant local coordinate system, as illustrated in Figure 4.
In order to determine the position and orientation of any part of the arm, we use the transformation matrices (i −1) A i , which are 4 × 4 matrices that relate one part to another part.Consequently, r i is actually an augmented 4 × 1 vector, rather than a 3 × 1 vector typically used with Cartesian space.g is the augmented gravity vector.Then, for the first body part in the chain, the potential energy is P 1 = m 1 g T 0 A 1 r 1 .The potential energy for the second body part is The total potential energy is the total potential energy for all of the links of both body parts under consideration.Thus, for the complete chain, the total potential energy is given by where k is the number of lumped masses, g = [0 0 −g 0] T is the gravity vector and P i is the potential energy for link-i.Because the actual value of potential energy is negative, the objective function, which is minimized, is defined as follows: In a layout problem, it is usual for the positions of some target points to be constrained to some subregion, e.g., a line, a surface, or some specified region.We will, therefore, have target-region constraints to constrain each target point to some specified space.Some target points are also required to be near each other, and are formulated as distance constraints.In the process of optimizing the positions of several target points, we also need to constrain them not to overlap.Moreover, each target point needs to be reachable with each joint within its joint limits.Typically, we have the following types of constraints: 1. Target-region constraints where R i is a subregion within the Cartesian space, p i , i = 1, 2, 3, . . ., m , are m target points.

Distance constraints
where d k is some positive number, p j are m target points.3. Overlapping constraints where µ k is some positive number.4. Reachability constraints where ε i is some small positive number.5. Joint ranges of motion where the superscripts L and U denote the lower and upper limits, respectively, where n = number of DOF.
The above constraints are enforced on different design variables during the optimization.For example, constraints shown in equations ( 19)-( 21) are constraints on target-point positions, while equations ( 22) can be constraints on the target-point positions and constraints on joint variables.Equation ( 23) are constraints only on joint variables.The multi-objective optimization problem can be defined as Find q ∈ R DOF .

Optimization algorithm
We use a combination of a gradient-based optimization method, Broydon-Fletcher-Goldfarb-Shanno (BFGS) method, global optimization method, and simulated annealing, to obtain an optimal layout.Simulated annealing (SA) is a popular global optimization method.Similar to the genetic algorithm that we used in Mi et al (2002), it is an iterative random search procedure with adaptive moves along coordinate directions (Corana et al 1987).It permits uphill moves under the control of a probabilistic criterion, thus tending to avoid the local minima encountered.The SA optimization algorithm can be considered analogous to the physical process by which a material changes state while minimizing its energy.A slow, careful cooling brings the material to a highly ordered, crystalline state of lowest energy, whereas a rapid cooling yields defects and glass-like intrusions inside the material.As shown in Figure 5 (main loop is simulated annealing), this algorithm proceeds iteratively: starting from a given point q 0 , it generates a succession of points: q 0 , q 1 , . . ., q i , . . .tending to the global minimum of the cost function.Applying random moves along each coordinate direction, in turn, new candidate points are generated around the current point q i .The new coordinate values are uniformly distributed in intervals centered on the corresponding coordinates of q i .Half the size of these intervals along each coordinate is recorded in the step vector v.If the point falls outside the defined domain of the cost function f (q), a new point is randomly generated until a point belonging to the defined domain is found.A candidate point q is accepted or rejected according to the Metropolis criterion: If f ≤ 0, then accept the new point: q i +1 = q else accept the new point with probability: where f = f (q ) − f (q i ) and T is a parameter called temperature.
The SA algorithm starts at some "high" temperature T 0 given by the user.A sequence of points is then generated until an "equilibrium" is approached; that is, a sequence of points q i whose average value of f reaches a stable value as i increases.During this phase, the step vector v m is periodically adjusted (every N s cycles) to better follow the function behavior.The best point reached is recorded as q opt .After thermal equilibration, the temperature T is reduced (every N T steps) and a new sequence move is made starting from q opt , until thermal equilibrium is reached again, and so on.The process is stopped at a temperature low enough that no more useful improvement can be expected, according to a stopping criterion.
The combination of SA and BFGS is as follows: in SA (main loop), design variables are the positions of target points; for each iteration in SA, a set of positions of target points are generated within the target region (ranges of design variables).If some of them do not satisfy the overlapping constraints, a large penalty value is given to the cost function.If they do not overlap, the target points are given as the input of the posture prediction algorithm (BFGS optimization method for fast prediction as developed in Mi (2003), while combining discomfort and distance as a single cost function, joint limits as constraints with the reach envelope divided into 16 sections and an initial point within each section pre-calculated using a GA).If the target is reachable, a set of joint variables is found and corresponding discomfort, potential energy can be calculated; a weighted summation of each measurement along with distance to the target point is evaluated as the cost function in SA.If the posture prediction algorithm finds the target is not reachable, another large penalty value is given to the cost function.SA is thus used to find an optimized layout

Metropolis criterion:
If ∆f ≤ 0, then q i+1 = q' else accept q' with probability: of target points globally, whereas BFGS (posture prediction algorithm) is used to find a natural posture associated with reaching specific target.Although BFGS is itself a local optimization method, since we already picked an initial posture globally, it can provide a fast and near global solution.

Comparison of GA and SA algorithms
Since genetic algorithms (GA) and simulated annealing (SA) have both been used to solve optimization problems (Mi et al 2002), this section will briefly compare these two popular global optimization methods.
Theoretically, SAs and GA are quite close relatives, and much of their difference is superficial.The two approaches are usually formulated in ways that look very different and using very different terminology.With SA, one usually talks about solutions and their costs, neighbors, and moves; while with a GA, one talks about individuals (or chromosomes) and their fitness, selection, crossover, and mutation.In a GA, a chromosome is thought of as a "genotype" that only indirectly expresses a solution that has traditionally been specific to a GA, although there is no reason why a similar approach could not be applied in SA as well.
Basically, SA can be thought of as a GA, but with a population size of only one.The current solution is the only one individual in the population; since there is only one individual, there is no crossover, only mutation.This characteristic without crossover is, in fact, the key difference between SA and a GA.Whereas SA creates a new solution by modifying only one solution with a local move, a GA creates solutions by combining two different solutions.Whether this different method to obtain the new solution actually makes the algorithm better or worse, depends on the problem and the representation.
It should be noted that SAs and GAs both share the fundamental assumption that good solutions are most likely found "near" already known good solutions than by randomly selecting them from the whole solution space.If this were not the case with a particular problem or representation, then GAs and SAs would perform no better than random sampling.What a GA does differently here is treat combinations of two existing solutions as being "near ", making the assumption that such combinations (children) meaningfully share the properties of their parents, so that a child of two good solutions is probably better than a child of a random solution.Again, if, for a particular problem or representation this is not the case, then a GA will not provide an advantage over SA.
It should also be noted that the relative weight given to mutation and recombination is a crucial parameter affecting what a GA actually does.If mutation is the dominant way of creating new solutions, then a GA in fact acts as a paralleled version of SA, where several solutions are being independently improved.From a practical viewpoint, it should be noted that for some problems, evaluating solutions that are near an existing solution may be very efficient, which may give a big performance advantage to SA, when compared to a GA, if evaluating recombined solutions is not so efficient.A more practical, empirical comparison should be performed when solving the same problem given the same execution time, which is not conducted here.

ILLUSTRATIVE EXAMPLE
We now consider the layout of target points in the reachable workspace of a human.These target points could be the placement of control knobs in an aircraft, levers in a tank, or knobs in a vehicle.In this example, we have a manufacturing cell involving an operator who handles three objects: tuff bin, button, and pliers.As shown in Figure 6, the operator will be sitting in the chair and handle the products passing by on a conveyer belt on the table.During the operation, the operator needs to press the button, to pick up the parts from a tuff bin, and to get pliers to assembly parts on the unfinished products as they pass by.The tuff bin is supposed to be reached by the left hand, while the button and pliers are to be reached by the right hand.We shall calculate the spatial positions of the tuff bin, button, and pliers (shown in the table of Figure 7) in  the reachable workspace of a human, while minimizing a cost function comprised discomfort, potential energy, and reachability.
The table is 152 cm long, 62 cm wide, and the height is 107 cm from the floor and 11 cm from the waist of the operator.The operator (waist) is 15 cm away (horizontally) from the table's edge.The origin of the coordinate system is located at the center of the table.There are several target region constraints: since there is a conveyer belt on the table, the tuff bin has to be in the space above the table.And also because the tuff bin is to be reached by the left hand, it is constrained to the left half of the space.The button and pliers are required to be on the top of the table in front of the operator and reachable by the right hand, so they are constrained to the right half of the table top.The distance between button and pliers must be no less than 10 cm (an overlapping constraint).We have a total of five design variables for SA, which are the x, y, z coordinates of the bin, y coordinate of the button, and pliers with the where f i discomf , f i potential , f i effort , f i torque and distance i are the discomfort, potential energy, effort, torque, and distance to the specific target of each posture reaching bin, button, and pliers respectively.
Results of this layout design are shown in Figure 8 where w 1 = w 3 = w 2 = w 4 = 1, and .3940, 40.1072, 28.The postures reaching the tuff bin and button are shown in Figure 8 and Figure 9, respectively.It is observed that each object can be touched easily and comfortably, and a numerical optimization algorithm has created a successful layout design.

CONCLUSIONS
A rigorous formulation for optimization-based layout has been presented.The layout problem occurs in the field of ergonomic design and encompasses many solution sets, one of which is to be selected.We have presented a method for calculating a best solution based on minimizing or maximizing a cost function or a combination of cost functions.
This formulation was shown to be implementable in computer code.Indeed, we believe this type of formulation augments capabilities digital human modeling software offers, where it facilitates digital prototyping, shortens lead times, and saves costs.
Figure 3 A layout problem.

For
of random moves, each along one coordinate direction.Accept or reject each point q' according to the Metropolis criterion.Record the optimum point reached so far

Figure 6
Figure 6 A manufacturing cell.
Bin x ≤ 31 0 ≤ Bin y ≤ 76 28 ≤ Bin z ≤ 48 −76 ≤ Button y ≤ 0 −76 ≤ Pliers y ≤ 0 P Button − P Pliers ≥ 10 (25) where P Bin = (Bin x , Bin y , Bin z ) T , P Button = (−31, Button y , 0) T , and P Pliers = (−31, Pliers y , 0) T are the positions of bin, button, and pliers, respectively.In each iteration, when the new design variables attempted satisfy the constraints of equation (25), the positions of these three objects are sent to the posture prediction algorithm as target points, where design variables are the 15 joint variables, either with right arm or left arm.Postures with minimized distance to the target and minimized discomfort are predicted, and the values of associated distance to the target, discomfort, and potential energy are returned to SA.Now SA is able to evaluate its cost function, a combination of distance, discomfort, and potential energy, etc. (values returned by the posture prediction algorithm), where the reachability constraints have been enforced by converting them to distance measurements and including them in a cost function with the following format: