Musculoskeletal Dynamics Grant Schaffner ATA Engineering, Inc. What is musculoskeletal dynamics? ? Modeling the human body and associated objects as a system of linked rigid segments ? Formulation of the equations of motion for this system ? Computational simulation of motion Z X q 1 q 2 q 3 What is it useful for? 1. Task feasibility ? Range of motion studies ? Strength requirements (joint torques) 2. Joint forces (skeletal loading) 3. Spacesuit design (modeling suit mechanics) 4. Countermeasure evaluation 5. Understanding complex dynamics ? EVA tasks, e.g., Satellite capture, mass manipulation (ISS assembly / ORU replacement) ? Artificial / reduced gravity (* Video *) EVA Mass Manipulation Simulation 02468 10 -80 -60 -40 -20 0 20 40 0246810 -30 -20 -10 0 10 20 30 04812 20 -80 -60 -40 -20 0 20 40 048121620 -30 -20 -10 0 10 20 30 Joint Angle Joint Torque Time [sec] Time [sec] Time [sec] Time [sec] 16 Satellite Capture Simulation -0.05 0.00 0.05 0.10 0.15 0.20 02 5 8 Time (s) L i n ear D i s p l a c em en t ( m ) -1.50 -1.00 -0.50 0.00 0.50 1.00 1.50 A ngul a r D i s pl a c e m e nt ( de g) X-tra ns Y-tra ns Z-trans Ro ll(X) Ya w(Y) Pitch(Z) Y X Z 143769 Technique / Limitations ? Use the simplest possible model that adequately describes the dynamics of interest ? Use open kinematic chains ? Individual segments are rigid bodies Notes Reference Text ? H. Asada and J.-J. E. Slotine, “Robot Analysis and Control”, John Wiley & Sons, 1986 Nomenclature ? Vectors or matrices are denoted by bold script ( ? Scalar values are denoted by regular script ( x R x θ ), ), Part I Musculoskeletal Kinematics Position and Orientation of Rigid Body ? Position of rigid body is represented with reference to coord frame O-xyz by ? ? ? ? ? ? ? ? ? ? = o o o o z y x x ] ? , ? ,?[ btnR = ? Represent orientation of rigid body with coord frame O’-x b y b z b ? Components of unit vectors are direction cosines of each axis ? Combine the three unit vectors into a 3x3 matrix, R, the “Rotation Matrix” (orthonormal matrix) x y z n? t ? b ? b x b z b y O O ′ Coordinate Transformations ? Coords of pt. P wrt fixed frame O-xyz ? ? ? ? ? ? ? ? ? ? = z y x x ? Position of P wrt coord frame fixed to rigid body, O’-x b y b z b b o o b wvu w v u Rxxx btnxx x += +++= ? ? ? ? ? ? ? ? ? ? = ? ? ? x y z n? t ? b ? b x b z b y O O ′ P o x x b x Coordinate Transformations ? Inverse transformation T T o Tb T bT o TT RR RxRxRx RIRR RxRxRxR = ? +?= = += 1 ),( :alsoNote inversenotoftransposeusesonly lorthonormaissince ? Example 1.1 Homogeneous Transformations Goal: ? A coordinate transformation that includes both translational and rotational transformations ? Define 4x1 vectors: and the 4x4 matrix: ? ? ? ? ? ? ? ? ? ? ? ? = 1 z y x X ? ? ? ? ? ? ? ? ? ? ? ? = 1 w v u b X ? ? ? ? ? ? ? ? ? ? ? ? = 10 xR A o b o Rxxx += ? Recall thus b AXX = homogeneous transformation Homogeneous Transformations ? Consecutive coordinate transformations 4x4 matrix associated with homogeneous transformation from frame i to frame i-1 then position vector n is transformed to in frame O by = ?1i i A n X o X nn n XAAAX 11 2 0 1 0 ? = m ? Inverse coordinate transformation XAX 1? = b (Suggested exercise: Derive an expression for in terms of ) 1? A R o x in frame and Open Kinematic Chains ? “Open” chain = no loops ? Serial linkage of rigid bodies connected by moveable joints ? Wish to analyze motion of last link (end effector) in terms of joint motions 0 x 0 y 0 z O n x n z n y n O Joint 1 Base link 1 x 1 y 1 z Joint 2 Joint i Joint i+1 Link i End Effector Link n e x Open Kinematic Chain Denavit-Hartenberg Notation A systematic method of describing the kinematic relationship between a pair of adjacent links involved in an open kinematic chain Denavit-Hartenberg Notation ?H i O i is the common normal to joint axes i and i+1 ? Origin of coord frame O i is located at intersection of joint axis i+1 and the common normal H i O i ? x i axis is directed along the extension line of the common normal ? z i axis is along joint axis i+1 ? y i axis chosen such that O i -x i y i z i forms a RH coord system ? Relative location of the two frames is completely determined by 4 parameters: – length of the common normal – distance between origin O i-1 and point H i – angle between joint axis i and z i axis in RH sense (wrt x i ) – angle between x i-1 axis and common normal H i O i measured about the z i-1 axis in the RH sense = i a = i d = i α = i θ Denavit-Hartenberg Notation ? & are constant parameters determined by geometry ? One of the other 2 parameters, (prismatic vs revolute joint) Kinematic relationship between adjacent links i a i d i α i θ where ii i i XAX 11 ?? = ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? 1000 cossin0 sinsincoscoscossin cossinsincossincos 1 iii iiiiiii iiiiiii i i d a a αα θαθαθθ θαθαθθ A 1?i i A represents the position and orientation of frame i relative to frame i-1 varies as joint moves& Kinematic Equations ? Denote joint displacements (rotation or translation) by i q ii q θ= ii dq = (revolute joint) (prismatic joint) ? The position and orientation of the last link relative to the base frame is given by )()()( 1 2 1 21 0 1 n n n qqq ? = AAAT m matrix44×=T Kinematic Equations Exceptions to the Denavit-Hartenberg notation rule: ? To define a coord frame attached to each link, the common normal between the two joint axes must be determined for the link. No such common normals exist for the first (base) and last links since each has only one joint axis – Last link ? origin at any convenient point of the end effector ? orientation -- x n axis intersects last joint axis at 90° ? α n is arbitrary – Base link ? origin at any arbitrary point on jt axis 1 => z 0 axis parallel to jt axis ? orientation of x 0 and y 0 axes is arbitrary ? Exceptions for intermediate links – 2 joint axes parallel, common normal not unique, choice arbitrary (say d i = 0) – prismatic joints -- only direction is meaningful, position of joint axis is arbitrary Kinematic Equations Examples ? 6 dof manipulator with five revolute joints and one prismatic joint (see Asada & Slotine) ? Successive joint axes intersect (no common normal) (draw skeletal kinematic structure) Differential Motion ? System Jacobian, epresents the infinitesimal relationship between the joint displacements and the end effector location at the present system configuration ? Example, 2 dof system J 0 x 0 y 0 O ? ? ? ? ? ? y x Endpoint 1 l 2 l 1 θ 2 θ ? ? ? ? ? ? = dy dx dx ? ? ? ? ? ? = 2 1 θ θ θ d d d ?Jx dd = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = 21 21 θθ θθ yy xx J dt d dt d ? J x = ?Jv  = )sin(sin )cos(cos 21211 21211 θθθ θθθ ++= ++= lly llx ? ? ? ? ? ? +++? +?+?? = )cos()cos(cos )sin()sin(sin 21221211 21221211 θθθθθ θθθθθ lll lll J , r Differential Motion Generalized System Jacobian ?Linear and angular velocity of end effector (wrt base coord frame) ? ? ? ? ? ? = e e ? v pD qJp DD = ? ? ? ? ? ? ? ? ? ? = n q q D o D D 1 q ? Dimension of Jacobian = 6xn ? First 3 rows associated with linear velocity, ? Last 3 rows associated with angular velocity, e v e ? ? ? ? ? ? ? = AnAA LnLL JJJ JJJ J l l 21 21 Differential Motion ? Linear velocity of end effector nLnLe qq DmD JJv ++= 11 ? ? ? ? ? ? × = ? ? ? ? ? ? ? ?? 1 ,11 i eii Ai Li b rb J J revolute joint ? ? ? ? ? ? = ? ? ? ? ? ? ? 0 b J J 1i Ai Li prismatic joint ? Note: ements ? Direction of joint axis i-1 is given by wrt coord frame i-1 ? is transformed to the base frame by the coord transformation 1?i b ei ,1? r [ T 100=b bRRRb )()()( 1 2 12 1 21 0 11 ? ? ?? = i i ii qqq m b = ?1i b unit vector pointing along joint axis i = ? ei ,1 r vector from joint axis i to end effector are functions of joint displacand ] Differential Motion ? Position vector ei ,1? r )( 1 j j j q ? A [ ( ( XAAXAAX X X )()()()( 1000 14 1 2 11 0 1 1 1 0 1,1 1 1,1 ? ? ? ? ? ? ?= == ×= i i in n nei ,ei- T ,ei-ei qqqq r r hh offramecoordoforigin ofvectoraugmented is computed using ] )) Differential Motion Inverse Kinematics pJq CC 1? = Note: s Test: J 1? J singular?= 0)det(J ? Singular conditions are produced by physical orientations of the system that make motion in a normal dof impossible singular singularok existmust be non-singular, i.e., Differential Motion Redundancy ? When a system has more degrees of freedom than the number required to define the endpoint position and orientation i.e., qJp  = nm×isJ ? When general solution, i.e., there are ? May use an optimal solution, e.g., quadratic cost function mn? mn? mn > J ? Also, Linearized Least Squares J)(JJJ p)(JJJqIW p)J(JWJWq WqWqq ofinverse"pseudo"thecallediswhere toreducesthisIf matrixweightingdefpossymmwhere 1 1 111 )( ? ? ??? == = ×== TT TT TT T nnG CC CChh CCC where variables in the is of full rank, there are and “redundant dof”