Contents // 1 Introduction... 1 // 2 Kinematics... 19 // 2.1 Coordinate Transformations... 19 // 2.1.1 World Coordinates... 19 // 2.1.2 Local Coordinates and Homogeneous // Transformations... 20 // 2.1.3 Local Coordinate Systems Local to Local // Coordinate Systems... 23 // 2.1.4 Homogeneous Transformations // and Chain Rules... 25 // 2.2 Characteristics of Rotational Motion... 25 // 2.2.1 Roll, Pitch and Yaw Notation... 26 // 2.2.2 The Meaning of Rotation Matrices... 27 // 2.2.3 Calculating the Inverse of a Rotation Matrix... 28 // 2.2.4 Angular Velocity Vector... 29 // 2.2.5 Differentiation of the Rotation Matrix and // Angular Velocity Vectors... 32 // 2.2.6 Integration of the Angular Velocity Vector and // Matrix Exponential... 34 // 2.2.7 Matrix Logarithm... 35 // 2.3 Velocity in Three Dimensional Space... 36 // 2.3.1 The Linear and Angular Velocity // of a Single Object... 36 // 2.3.2 The Linear and Angular Velocity // of Two Objects... 38 // 2.4 Robot Data Structure and Programming... 40 // 2.4.1 Data Structure... 40 // 2.4.2 Programming with Recursions... 42 // 2.5 Kinematics of a Humanoid Robot... 45 // 2.5.1 Creating the Model ... 45 // XII // Contents // 2.5.2 Forward Kinematics: Calculating the Position of // the Links from Joint Angles... 47 // 2.5.3 Inverse Kinematics: Calculating the Joint Angles // from a Link’s Position and Attitude... 49 // 2.5.4 Numerical Solution to Inverse Kinematics... 53 // 2.5.5 Jacobian... 57 // 2.5.6 Jacobian and the Joint Velocity...
59 // 2.5.7 Singular Postures... 62 // 2.5.8 Inverse Kinematics with Singularity Robustness... 63 // 2.5.9 Appendix: Supplementary Functions... 65 // 3 ZMP and Dynamics... 69 // 3.1 ZMP and Ground Reaction Forces... 69 // 3.1.1 ZMP Overview... 69 // 3.1.2 2D Analysis... 71 // 3.1.3 3D Analysis... 73 // 3.2 Measurement of ZMP... 77 // 3.2.1 General Discussion... 77 // 3.2.2 ZMP of Each Foot... 79 // 3.2.3 ZMP for Both Feet Contact... 82 // 3.3 Dynamics of Humanoid Robots... 83 // 3.3.1 Humanoid Robot Motion and Ground Reaction // Force... 83 // 3.3.2 Momentum ... 85 // 3.3.3 Angular Momentum... 87 // 3.3.4 Angular Momentum and Inertia Tensor of Rigid // Body... 89 // 3.3.5 Calculation of Robot’s Center of Mass... 92 // 3.3.6 Calculation of Link Speed and Angular // Velocity ... 93 // 3.3.7 Calculation of Robot’s Momentum... 94 // 3.3.8 Calculation of Robot’s Angular Momentum... 94 // 3.4 Calculation of ZMP from Robot’s Motion... 95 // 3.4.1 Derivation of ZMP... 95 // 3.4.2 Calculation of ZMP Using Approximation... 97 // 3.5 Some Notes for ZMP ... 98 // 3.5.1 Two Explanations... 98 // 3.5.2 Does ZMP Exist Outside the Support Polygon // due to the Acceleration of the Center of Mass? ... 98 // 3.5.3 Limitation of ZMP... 101 // 3.6 Appendix: Convex Set and Convex Hull... 102 // Contents // XIII // 4 Biped Walking... 105 // 4.1 How to Realize Biped Walking?... 105 // 4.2 Two Dimensional Walking Pattern Generation... 107 // 4.2.1 Two Dimensional Inverted Pendulum... 107 // 4.2.2
Behavior of Linear Inverted Pendulum... 108 // 4.2.3 Orbital Energy... 112 // 4.2.4 Support Leg Exchange... 113 // 4.2.5 Planning a Simple Biped Gait... 115 // 4.2.6 Extension to a Walk on Uneven Terrain... 116 // 4.3 3D Walking Pattern Generation... 120 // 4.3.1 3D Linear Inverted Pendulum... 120 // 4.3.2 Natures of the 3D Linear Inverted Pendulum... 122 // 4.3.3 3D Walking Pattern Generation ... 126 // 4.3.4 Introducing Double Support Phase... 133 // 4.3.5 From Linear Inverted Pendulum to Multi-body // Model... 135 // 4.3.6 Implementation Example... 137 // 4.4 ZMP Based Walking Pattern Generation... 138 // 4.4.1 Cart-Table Model... 138 // 4.4.2 Off-Line Walking Pattern Generation... 140 // 4.4.3 On-Line Walking Pattern Generation... 142 // 4.4.4 Dynamics Filter Based on Preview Control... 147 // 4.4.5 Advanced Pattern Generators... 149 // 4.5 Stabilizer... 149 // 4.5.1 Principles of Stabilizing Control... 150 // 4.5.2 Stabilizing Control of Honda Humanoid Robot... 154 // 4.5.3 Advanced Stabilizers... 155 // 4.6 Pioneers of Dynamic Biped Walking Technology... 155 // 4.7 Additional Methods for Biped Control... 156 // 4.7.1 Passive Dynamic Walk... 157 // 4.7.2 Nonlinear Oscillator and Central Pattern // Generators... 158 // 4.7.3 Learning and Evolutionary Computing ... 158 // 5 Generation of Whole Body Motion Patterns... 159 // 5.1 How to Generate Whole Body Motion... 159 // 5.2 Generating Rough Whole Body Motion... 160 // 5.2.1 Using Motion Capture... 162 // 5.2.2 Using a Graphical
User Interface... 163 // 5.2.3 Using High Speed Multivariate Search Methods ... 164 // 5.3 Converting Whole Body Motion Patterns to Dynamically // Stable Motion ... 165 // 5.3.1 Dynamics Filter... 165 // 5.3.2 Auto Balancer... 166 // 5.3.3 Strict Trunk Motion Computation Algorithm... 167 // XIV // Contents // 5.4 Remote Operation of Humanoid Robots with Whole // Body Motion Generation... 169 // 5.4.1 Remote Generation of Whole Body Motion // Using the Operation Point Switching Method... 170 // 5.4.2 Full Body Motion Generation of Stable Motion // Using Split Momentum Control... 172 // 5.4.3 Application and Experiments with the // Humanoid Robot HRP-2... 174 // 5.5 Reducing the Impact of a Humanoid Robot Falling // Backwards... 177 // 5.6 Making a Humanoid Robot Get Up Again... 180 // 6 Dynamic Simulation... 183 // 6.1 Dynamics of Rotating Rigid Body... 184 // 6.1.1 Euler’s Equation of Motion... 184 // 6.1.2 Simulation of Rigid Body Rotation... 185 // 6.2 Spatial Velocity... 186 // 6.2.1 Speed of Rigid Body... 186 // 6.2.2 Integration of Spatial Velocity... 188 // 6.3 Dynamics of Rigid Body... 189 // 6.3.1 Newton-Euler Equations... 189 // 6.3.2 Dynamics by Spatial Velocity... 191 // 6.3.3 Rigid Body Simulation Based on Spatial // Velocity... 192 // 6.3.4 Simulation of a Spinning Top... 193 // 6.4 Dynamics of Link System... 196 // 6.4.1 Forward Kinematics with Acceleration... 196 // 6.4.2 Inverse Dynamics of Link System... 197 // 6.4.3 Forward Dynamics of Link System... 200
6.4.4 Feardierstone’s Method... 203 // 6.5 Background Material for This Section... 205 // 6.6 Appendix... 206 // 6.6.1 Treatment of Force and Moment... 206 // 6.6.2 Subroutines... 207 // References... 211 // Index // 221