Enhancing digital human motion planning of assembly tasks through dynamics and optimal control Available online at www.sciencedirect.com 2212-8271 © 2016 The Authors. Published by Elsevier B.V. This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/). Peer-review under responsibility of the organizing committee of the 6th CIRP Conference on Assembly Technologies and Systems (CATS) doi: 10.1016/j.procir.2016.02.125 Procedia CIRP 44 ( 2016 ) 20 – 25 ScienceDirect 6th CIRP Conference on Assembly Technologies and Systems (CATS) Enhancing digital human motion planning of assembly tasks through dynamics and optimal control Staffan Björkenstama,*, Niclas Delfsa, Johan S. Carlsona, Robert Bohlina, Bengt Lennartsonb aFraunhofer-Chalmers Centre, Chalmers Science Park, SE-412 88 Göteborg, Sweden bAutomation Research Group, Department of Signals and Systems, Chalmers University of Technology, SE-412 96 Göteborg, Sweden ∗ Corresponding author. Tel.: +46-31-772-4284; fax: +46-31-772-4260. E-mail address: staffan@fcc.chalmers.se Abstract Better operator ergonomics in assembly plants reduce work related injuries, improve quality, productivity and reduce cost. In this paper we investigate the importance of modeling dynamics when planning for manual assembly operations. We propose modeling the dynamical human motion planning problem using the Discrete Mechanics and Optimal Control (DMOC) method, which makes it possible to optimize with respect to very general objectives. First, two industrial cases are simulated using a quasi-static inverse kinematics solver, demonstrating problems where this approach is sufficient. Then, the DMOC-method is used to solve for optimal trajectories of a lifting operation with dynamics. The resulting trajectories are compared to a steady state solution along the same path, indicating the importance of using dynamics. c© 2016 The Authors. Published by Elsevier B.V. Peer-review under responsibility of the organizing committee of the 6th CIRP Conference on Assembly Technologies and Systems (CATS). Keywords: Assembly; Digital human modeling; Ergonomy; Dynamics; Optimal control 1. Introduction Although the degree of automation is increasing in manu- facturing industries, many assembly operations are performed manually. To avoid injuries and to reach sustainable production of high quality, comfortable environments for the operators are vital, see [1] and [2]. Poor station layouts, poor product de- signs or badly chosen assembly sequences are common sources leading to unfavorable poses and motions. To keep costs low, preventive actions should be taken early in a project, raising the need for feasibility and ergonomics studies in virtual environ- ments long before physical prototypes are available. Today, in the automotive industries, such studies are con- ducted to some extent. The full potential, however, is far from reached due to limited software support in terms of capability for realistic pose prediction, motion generation and collision avoidance. As a consequence, ergonomics studies are time con- suming and are mostly done for static poses, not for full assembly motions. Furthermore, these ergonomic studies, even though performed by a small group of highly specialized simulation engineers, show low reproducibility within the group [3]. To describe operations and facilitate motion generation, it is common to equip the manikin with coordinate frames attached to end-effectors like hands and feet. The inverse kinematic problem is to find joint values such that the position and orientation of hands and feet matches certain target frames. For the quasi-static inverse kinematics this leads to an underdetermined system of equations since the number of joints exceeds the end-effectors constraints. Due to this redundancy there exist a set of solutions, allowing us to consider ergonomics aspects, collision avoidance, and maximizing comfort when choosing one solution. The dynamic motion planning problem is stated as an optimal control problem, which we discretize using discrete mechanics. This results in an optimization problem, which can be solved using standard nonlinear programming solvers. Furthermore, this general problem formulation makes it fairly easy to include very general constraints and objectives. In this paper we show, using a couple of case studies, where the quasi-static solver is sufficient, and where the DMOC solver could improve the solution. The paper extends the work pre- sented in [4] and [5], and is a part of Cromm (Creation of Muscle Manikins) project [6]. 2. Background 2.1. Manikin Model In this section we present the manikin model and the inverse kinematic problems, both quasi-static and with dynamics. © 2016 The Authors. Published by Elsevier B.V. This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/). Peer-review under responsibility of the organizing committee of the 6th CIRP Conference on Assembly Technologies and Systems (CATS) 21 Staffan Björkenstam et al. / Procedia CIRP 44 ( 2016 ) 20 – 25 2.2. Kinematics The manikin model is a tree of rigid bodies connected by joints. Each body has a fixed reference frame and we describe its position relative to its parent body by a rigid transformation T (q), where q is the coordinate of the joint. To position the manikin in space, i.e. with respect to some global coordinate system, it has an exterior root as the origin and a prismatic joint and a rotation joint as exterior joints as opposed to the interior links representing the manikin itself, see [4]. Together, the exterior links mimic a rigid transformation that completely specifies the position of the lower lumbar. In turn, the lower lumbar represents an interior root, i.e. it is the ancestor of all interior joints. Note that the choice of the lower lumbar is not critical. In principal, any link could be the interior root, and the point is that the same root can be used though a complete simulation. No re-rooting or change of tree hierarchy will be needed. Now, for a given configuration of each joint, collected in the joint vector q = [qT 1 , . . . , qTn ] T , we can calculate all the relative transformations T1, ,Tn, traverse the tree beginning at the root and propagate the transformations to get the global position of each body. We say that the manikin is placed in a pose, and the mapping from a joint vector into a pose is called forward kinematics. Furthermore, a continuous mapping q(t), where t ∈ R, is called a motion, or a trajectory of the system. 2.3. Quasi Static Inverse Kinematics In order to facilitate the generation of realistic poses that also fulfill some desired rules we add a number of constraints on the joint vector. These kinematic constraints can for example restrict the position of certain links, either relative to other links or with respect to the global coordinate system or ensure the manikin is kept in balance, see section 2.3.2. All the kinematic constraints can be defined by a vector valued function g such that g(q) = 0 (1) must be satisfied at any pose. Finding a solution to equation 1 is generally referred to as inverse kinematics. Often, in practice, the number of constraints is far less than the number of joints of the manikin. Due to this redundancy there exist many solutions, allowing us to consider ergonomics aspects and maximizing comfort when choosing solution. To do so, we introduce a scalar comfort function h(q) (2) capturing as many ergonomic aspects as desired. The purpose is to be able to compare different poses in order to find solutions that maximize comfort. The comfort function is a generic way to give preference to certain poses while avoiding others. Typically h considers joint limits, distance to surrounding geometry in order to avoid collision, magnitude of contact forces, forces and torques on joints, see section 2.3.3. Furthermore, by combining equation 1 and 2 we can formulate the inverse kinematic problem as max q h(q) subject to g(q) = 0. (3) 2.3.1. Collision Avoidance While some contact with the environment may be intended, e.g. grasping of objects and leaning, and contribute to the force and moment balance. Other contacts, for example, collisions, are undesired. The comfort function offers a convenient way to include a simple, yet powerful, method penalizing poses close to collision. In robotics this method is generally known as Repulsive Potential [7][8]. The underlying idea is to define a barrier, say, around the obstacles increasing the discomfort towards infinity near collision. This method does not address the problem of escaping an already occurring collision. The idea is merely that if the manikin starts in a collision-free pose, then the repulsive potential prevents the manikin from entering a colliding pose. Note: It is common to think of the repulsive potential or rather its gradient field as a force field pushing an object away from obstacles. In this work, we do not want such artificial forces to contribute to the force balance. To avoid confusion with real contact forces we will not use that analogy. 2.3.2. Balance and Contact Forces One important part of g is ensuring that the manikin is kept in balance. For this, the weight of links and objects being carried, as well as external forces and torques due to contact with the floor or other objects, must be considered. The sum of all forces and torques are g f orce(q) = m g + ∑ j∈J fi, gtorque(q) = mc × m g + ∑ j∈J pj × f j +τ j, where m is the total body mass, g is the gravity vector, mc is the center of mass, f j and τ j are external force and torque vectors at point pj and J is the index set. Note that the quantities may depend on the pose, but this has been omitted for clarity. In general, external forces and torques due to contacts are unknown. For example, when standing with both feet on the floor it is not obvious how the contact forces are distributed between the feet. In what follows we let f and t denote the unknown forces and torques, and we stack them into the vector x = [qT f T τT ]T . Then we can rephrase (3) as follows: max x h(x) subject to g(x) = 0. (4) 2.3.3. Joint Torque The joint loads are key ingredients when evaluating poses from an ergonomic perspective [9]. Furthermore, research shows that real humans tend to minimize the muscle strain, i.e. mini- mize the proportion of load compared to the maximum possible load [10], so by normalizing the load on each joint by the muscle strength good results can be achieved. In this article we choose the function ht = n∑ i=1 w2i τ 2 i where τi is the torque in joint i, and wi is the reciprocal of the joint strength. Note that it is straightforward to propagate the external forces and torques and the accumulated link masses trough the manikin in order to calculate the load on each joint. 22 Staffan Björkenstam et al. / Procedia CIRP 44 ( 2016 ) 20 – 25 2.4. Discrete mechanics and optimal control 2.4.1. The constrained discrete Euler-Lagrange equations Consider the mechanical system specified by a configuration manifold Q ⊆ Rnq and Lagrangian L : T Q → R, where T Q is the tangent bundle of the configuration manifold. Furthermore, suppose the motion of the system is constrained by the equation φ(q) = 0 ∈ Rm to lie in the constraint manifold C =φ−1(0) ⊂ Q. Let U ∈ Rnu be the set of admissible controls and F : T Q×U → T∗Q the external force acting on the system, where T∗Q is the cotangent bundle of the configuration manifold. Introducing the multiplier λ(t) ∈ Rm the Lagrange- d’Alembert principle states that trajectories of the system satisfy δ ∫ t2 t1 L(q(t), q̇(t)) +φT (q(t))λ(t)dt + ∫ t2 t1 F(q(t), q̇(t),u(t)) ·δqdt = 0, (5) where variations are taken with respect to q, fixed at the end- points, and with respect to λ. Integration by parts and the fundamental lemma of calculus of variations give the following differential algebraic equations, known as the constrained Euler Lagrange equations of motion: ∂L ∂q (q(t), q̇(t)) − d dt ∂L ∂q̇ (q(t), q̇(t)) + F(q(t), q̇(t),u(t)) +ΦT (q(t))λ(t) = 0, (6a) φ(q(t)) = 0, (6b) where Φ denotes the Jacobian of the constraint function. The key idea of variational integrators is to directly approx- imate the variational principle (5) rather than the equations of motion (6). We now discretize q(t) in [t1, t2] using a fixed time step h = (t2 − t1)/N so that q(k) is an approximation of q(t1 + kh) for k = 0, . . . , N. Furthermore, we discretize the control such that u(k) is an approximation of u(t1 + (k + 12 )h) for k = 0, . . . , N − 1. We are now ready to replace the continuous state space, T Q, with the discrete state space, Q × Q, and construct a discrete Lagrangian Ld : Q × Q ×R → R such that Ld (q(k), q(k+1),h) ≈ ∫ t1+(k+1)h t1+kh L(q(t), q̇(t))dt. Introducing left and right discrete forces, F+d and F − d , and discrete multipliers, λ (k) d for k = 0, . . . , N, a discrete variational principle corresponding to (5) can be formulated as δ N−1∑ k=0 (Ld (q(k), q(k+1),h) + 1 2 φT (q(k))λ(k)d + 1 2 φT (q(k+1))λ(k+1)d ) + N−1∑ k=0 (F−d (q (k), q(k+1),u(k),h) ·δq(k) + F+d (q (k), q(k+1),u(k),h) ·δq(k+1)) = 0 (7) for all variations δλ (k) d and δq (k) with δq(0) = δq(N) = 0. This principle is equivalent to the discrete Euler-Lagrange equations: D2 Ld (q(k−1), q(k),h) + D1 Ld (q(k), q(k+1),h) + F+d (q (k−1), q(k),u(k−1),h) + F−d (q (k), q(k+1),u(k),h) +Φ T (q(k))λ(k)d = 0, (8a) φ(q(k+1)) = 0, (8b) where D1 Ld and D2 Ld are the slot derivatives with respect to the first and second argument. These equations define the varia- tional integrator by implicitly mapping (q(k−1), q(k),u(k−1),u(k)) to (q(k+1),λ(k)d ). Please refer to [11] for a thorough introduction to discrete mechanics and [12,13] for more on discrete mechanics and optimal control of multibody systems. A reasonable trade-off between accuracy and performance, is to use the the midpoint rule to approximate the relevant integrals. The discrete Lagrangian then becomes Ld (q0, q1,h) = hL (q0 + q1 2 , q1 − q0 h ) . (9) Thus D1 Ld (q0, q1,h) = h 2 ∂L ∂q (q0 + q1 2 , q1 − q0 h ) −∂L ∂q̇ (q0 + q1 2 , q1 − q0 h ) and D2 Ld (q0, q1,h) = h 2 ∂L ∂q (q0 + q1 2 , q1 − q0 h ) + ∂L ∂q̇ (q0 + q1 2 , q1 − q0 h ) . Furthermore, it is then natural to use the following discrete forces: F+d (q0, q1,u0,h) = F − d (q0, q1,u0,h) = = h 2 F (q0 + q1 2 , q1 − q0 h ,u0 ) . (10) This discretization scheme results in a second order accurate integrator. 2.5. Optimal control problem We consider the following optimal control problem: Mini- mize J = χ(q(t f ), q̇(t f )) + ∫ t f t0 L(q(t), q̇(t),u(t))dt (11a) subject to ∂L ∂q (q(t), q̇(t)) − d dt ∂L ∂q̇ (q(t), q̇(t)) + F(q(t), q̇(t),u(t)) +ΦT (q(t))λ(t) = 0, (11b) φ(q(t)) = 0, (11c) g(q(t), q̇(t),u(t)) ≥ 0, (11d) ψ0(q(t0), q̇(t0)) = 0, (11e) ψ f (q(t f ), q̇(t f )) = 0 (11f) 23 Staffan Björkenstam et al. / Procedia CIRP 44 ( 2016 ) 20 – 25 for t ∈ [t0, t f ]. Thus, we want to minimize a performance index (11a), con- sisting of the terminal cost, χ, and the integral of the control Lagrangian, L, along the trajectory, while satisfying the dynam- ics (11b)-(11c), path constraints (11d), and boundary conditions (11e)-(11f). It is well known that the discrete mechanics formulation of the equations of motion show excellent conservation of quanti- ties, such as momenta and energy, conserved by the continuous system. This will enable us to take larger time steps and still get physically meaningful results [14]. There is, however, yet another computational advantage when used in optimal control. Namely, since there are no explicit references to velocities in the discrete equations of motion, the resulting optimization problem can be formulated using fewer variables, compared to standard discretizations of trajectories on T Q. Approximating the objective using the midpoint rule and en- forcing the path constraints at the midpoints we get the following discrete optimal control problem: Minimize Jd = χ(q(N), q̇(N)) + N−1∑ i=0 hL ( q(i) + q(i+1) 2 , q(i+1) − q(i) h ,u(i) ) (12a) subject to D2 L(q(0), q̇(0)) + D1 Ld (q(0), q(1),h) + F−d (q (0), q(1),u(0),h) + 1 2 Φ T (q(0))λ(0)d = 0, (12b) D2 Ld (q(k−1), q(k),h) + D1 Ld (q(k), q(k+1),h) + F+d (q (k−1), q(k),u(k−1),h) + F−d (q (k), q(k+1),u(k),h) +ΦT (q(k))λ(k)d = 0, (12c) −D2 L(q(N), q̇(N)) + D2 Ld (q(N−1), q(N),h) + F+d (q (N−1), q(N),u(N−1),h) + 1 2 Φ T (q(N))λ(N)d = 0, (12d) φ(q(k)) = 0, (12e) g ( q(k) + q(k+1) 2 , q(k+1) − q(k) h ,u(k) ) ≥ 0, (12f) ψ0(q(0), q̇(0)) = 0, (12g) ψ f (q(N), q̇(N)) = 0, (12h) h = t f − t0 N , (12i) h ≥ 0, (12j) where q̇(0), q̇(N) are the initial and terminal velocities. The con- tinuous optimal control problem (11) has now been transcribed into a nonlinear programming (NLP) problem of the form: Find the vector x minimizing the scalar objective function f (x) (13a) such that the constraints cl ≤ c(x) ≤ cu (13b) and simple bounds xl ≤ x ≤ xu (13c) (a) Start (b) Enter (c) Finishing (d) End Fig. 1: Automatic tunnel bracket assembly are fulfilled. An optimization problem of this form can be solved using nonlinear programming. Here we use the interior point solver IPOPT[15]. 3. Quasi-static case studies 3.1. Tunnel bracket assembly The first case is to install a tunnel bracket with the help of an auxiliary tool. The tunnel bracket and the auxiliary tool is connected by a rotation joint. The case is provided by Volvo Cars. The manikin starts outside the car with the tool and tunnel bracket already connected. The manikin grasps the tool with the left hand on a bar where the direction of the grasp is free and the right hand is connected with the fingertips to the tunnel bracket. After the setup, the assembly is completely automatic and guarantees that the motion is collision-free, except for the grasping hands, and that the manikin is in balance for each time step. The motion can be seen in figure 1. The simulation take 5.1 seconds to compute on a Intel i7 2600 computer. The forces required to move the tunnel bracket is quite low and the precision required for the final assembly step and thereby slow motion makes this a good case for the quasi-static solver. 3.2. Washer placing The second case is to place washers inside the trunk of a car, this case is also provided by Volvo Cars. The case can be divided into two steps: first place the washers, and then to mount the bolts. Since both steps require the same reachability and force we choose to simulate only the washer placing. The manikin uses the left hand as support on the trunk floor to extend the reach, and the hand is free to rotate on that surface. The case is tried with 8 different manikins to cover the anthropometric variables length and weight, and also both sexes. 24 Staffan Björkenstam et al. / Procedia CIRP 44 ( 2016 ) 20 – 25 (a) Start (b) Second washer (c) Third washer (d) End Fig. 2: Placing of multiple washers for the 90 percentile male manikin Fig. 3: Top: The reachability for the shortest manikin is insufficient Bottom: The end is in reach for the manikin (a) (b) Fig. 4: Weight positions: (a) start, (b) finish In figure 2, we see the 90 percentile male manikin perform the placing without any reachability issues. In figure 3, we see the difference between 5 percentile lady versus 50 percentile male where the lady can not reach all the way. This simulation takes an average of 14.5 seconds for all eight manikins on a Intel i7 2600 computer. The washers only weigh a few grams each and the precision in which they need to be assembled, and thereby the slow motion, makes this a good case for the quasi-static solver. 4. Dynamic case study Here we compute trajectories for the manikin using the opti- mal control approach described Section 2.4. We then compute quasi-static solutions along the optimal paths, and compare the results. To make the problem more computationally attractive, we reduce the manikin model to a mechanical model of 40 de- grees of freedom. This is done by removing joints, primarily in the spine and hands. The example we study is a lifting operation using both hands, moving a weight from one predefined position to another, starting and ending at rest. We chose the height of the initial position of the weight to be 0.5 m above the ground plane and place the finish position at 1.8 m, while orientation and horizontal positions are identical, the positions can be seen in Figure 4. The weight is modeled as a rigid body, adding another six degrees of freedom to the system. To model contact, rigid constraints are added between the weight and the two hands, and also between the feet and ground. The reaction forces from the ground are, however, only allowed to push on the manikin, and must also fulfill Coulomb friction conditions. The resulting discrete optimal control problem has the structure of (12) with: χ(q, q̇) = 0 L(q, q̇,u) = uT u ψ0(q, q̇) = q̇ ψ f (q, q̇) = q̇ where the control signal, u, is chosen to be the normalized actuator torque. The problem is then solved for both a 10 kg and 25 Staffan Björkenstam et al. / Procedia CIRP 44 ( 2016 ) 20 – 25 0 0.2 0.4 0.6 0.8 1 0 1 2 3 ‖ u ‖ t [s] Dynamic Quasi-static (a) 0 0.2 0.4 0.6 0.8 1 0 1 2 3 ‖ u ‖ t [s] Dynamic Quasi-static (b) Fig. 5: Control effort in weight lifting example: (a) 10 kg, (b) 20 kg a 20 kg weight using techniques from [16]. This results in two optimal trajectories for the system: the trajectory for the 10 kg weight with a duration of 0.92 s, and the trajectory for the 20 kg weight, which has a duration of 1.05 s. The quasi-static control signal, {u(i)s }Ni=1, is then computed as the steady state solution with minimum norm along the discrete trajectory, {q(i)}Ni=1, i.e. for each i = 1, . . . , N: Minimize (u(i)s ) T u(i)s subject to ∂L ∂q (q(i),0) + F(q(i),0,u(i)s ) +Φ T (q(i))λ(i)s = 0, where u(i)s and λ (i) s are decision variables. In Figure 5, we compare the control signal magnitudes for the dynamic and quasi-static solutions. As expected the dynamic solutions, on average, require more control effort than the quasi- static solutions. In particular in the beginning of the lift, where a considerable effort is needed to accelerate both the weight and the manikin itself. It is interesting to note that in the end of the lift the dynamic solutions actually require less torque. This is explained by the fact that the direction of the lift is upward, hence the gravitational pull helps the deceleration. 5. Conclusions In this paper we showed the importance of modeling dynam- ics when planning for manual assembly operations. Two case studies where performed on industrial cases, giving examples of where the quasi-static solution is sufficient. To demonstrate the dynamic effects, a third test case was studied, which indi- cates the importance of modeling dynamics in lifting operations. There is still work to be done before the dynamic solver reaches the maturity of the quasi-static solver. In particular, the solver needs to be equipped with collision avoidance and a comfort function. Acknowledgements This work was carried out within the Wingquist Laboratory VINN Excellence Centre, supported by the Swedish Govern- mental Agency for Innovation Systems (VINNOVA). It is also part of the Sustainable Production Initiative and the Production Area of Advance at Chalmers University of Technology. References [1] A.-C. Falck, R. Örtengren, D. Högberg, The impact of poor assembly ergonomics on product quality: A costbenefit analysis in car manufacturing, Human Factors and Ergonomics in Manufacturing & Service Industries 20 (1) (2010) 24–41. [2] A.-C. Falck, M. Rosenqvist, A model for calculation of the costs of poor as- sembly ergonomics (part 1), International Journal of Industrial Ergonomics 44 (1) (2014) 140–147. [3] D. Lämkull, L. Hanson, R. Örtengren, Uniformity in manikin posturing: A comparison between posture prediction and manual joint manipulation, International Journal of Human Factors Modelling and Simulation 1 (2008) 225–243. [4] R. Bohlin, N. Delfs, L. Hanson, D. Högberg, J. Carlson, Unified solution of manikin physics and positioning - exterior root by introduction of extra parameters, Proceedings of DHM, First International Symposium on Digital Human Modeling. [5] N. Delfs, R. Bohlin, S. Gustafsson, P. Mårdberg, J. S. Carlson, Automatic creation of manikin motions affected by cable forces, Procedia CIRP 23 (2014) 35–40. [6] H. L. B. R. Högberg, D., J. Carlson, Creating and shaping the dhm tool imma for user-centred product and production design, International Journal of the Digital Human (IJDH). [7] J.-C. Latombe, Robot motion planning, Vol. 124, Springer Science & Busi- ness Media, 2012. [8] S. M. LaValle, Planning algorithms, Cambridge university press, 2006. [9] R. Westgaard, A. Aarås, The effect of improved workplace design on the de- velopment of work-related musculo-skeletal illnesses, Applied Ergonomics 16 (2) (1985) 91–97. [10] J. Rasmussen, M. Damsgaard, E. Surma, S. T. Christensen, M. de Zee, V. Vondrak, Anybody-a software system for ergonomic optimization 4. [11] J. E. Marsden, M. West, Discrete mechanics and variational integrators, Acta Numerica 2001 10 (2001) 357–514. [12] S. Leyendecker, J. Marsden, M. Ortiz, Variational integrators for constrained dynamical systems, ZAMM 88 (9) (2008) 677–708. [13] S. Leyendecker, S. Ober-Blöbaum, J. E. Marsden, M. Ortiz, Discrete me- chanics and optimal control for constrained systems, Optimal Control Ap- plications and Methods 31 (6) (2010) 505–528. [14] A. Lew, J. E. Marsden, M. Ortiz, M. West, An overview of variational integrators. [15] A. Wächter, L. T. Biegler, On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming, Mathematical Programming 106 (1) (2006) 25–57. [16] S. Björkenstam, J. S. Carlson, B. Lennartson, Exploiting sparsity in the discrete mechanics and optimal control method with application to human motion planning, in: Automation Science and Engineering (CASE), 2015 IEEE International Conference on, IEEE, 2015, pp. 769–774.