### 國立臺灣大學工學院機械工程學研究所 碩士論文

### Department of Mechanical Engineering College of Engineering

### National Taiwan University Master Thesis

### 雙足機器人之控制與自然步態

### Control and Natural Walk of a Biped Robot

### 紀孟谷 Meng-Ku Chi

### 指導教授：黃漢邦 博士 Advisor: Han-Pang Huang, Ph.D.

### 中華民國 100 年 6 月

### June 2011

**誌謝 **

在台大兩年的研究生活中，經歷了很多開心歡笑和痛苦挫折，也因為度過了 這兩年時光，更加磨練了我對團體生活還有獨立研究的看法還和心智。

在很多需要感謝的人之中，首先我要先感謝三位不辭辛勞從外校來幫我做口 試審查的教授：劉正良教授、顏鴻森教授、蔡得民教授；在兩年的時光中，一直 指導我的指導教授：黃漢邦教授，謝謝您這兩年來的指導和愛護，雖然我始終在 面對你時還是有著一份害怕的心態，不過逐漸已經成為尊敬。

在實驗室的同學裡，感謝像哥哥也像老師的嚴舉樓學長，這兩年來受你照顧 太多，不知道要如何感謝您才得體，也許祝福您畢業和身體健康是我不管在哪都 能祝福你的事；也感謝柏霆，子豪，聖諺，毓文，登湖，和相元學長的照顧，沒 有你們，實驗室會少一分色彩；助理潘潘，美足，馨儀在行政和生活上幫助我；

同屆的政修，晞帆，柏緯，宜霖，謝謝您們這兩年來的打氣和努力，也恭喜您們 畢業了；學弟妹們，泓逸！你是最棒的；啓舜，繼續努力加油；聖翔，你的責任 心和努力我都有看到；瑋軒，你也要好好加油；王璟萍，祝妳早日畢業，秀婷和 衍文軟體組靠你們了；朋友方面最要感謝的是台中某隻貓，你的鼓勵和打氣是我 求學過程中最寶貴的；最後要謝謝這兩年依舊一直陪我的女友，妳總是陪在我身 邊，也期待你早日畢業。

紀孟谷/2011/07 於機器人實驗室

i

**中文摘要 **

### 本論文主要是研究人類的走路姿態並且應用在本實驗室開發的人 型機器人。研究主要是建立可應用的零力矩點的軌跡、重心在垂直方 向的軌跡、以及動量補償器。

### 一般應用於人型機器人的零力矩點軌跡集中在腳底板中央，並且在 換支撐腳時軌跡瞬間移動到此支撐腳，因此容易造成速度和加速度不 連續；所以我們提出改善此零力矩點軌跡。藉由改善過後的軌跡可以 讓人型機器人行走時更加穩定。利用 Preview Control 生成的重心軌跡 可以自由地調整重心在垂直方向的位置，使人型機器人不必總是彎著 膝蓋走路，減少能量的消耗。人型機器人的自然步態規劃綜合了上述 的控制器，再對逆運動學的演算法改善。本論文提出兩個方法來達到 腳趾彎曲和腳跟著地，再將兩個方法做模擬和比較。

### 在物理環境模擬方面我們利用 ADAMS 進行，而所有的控制程式皆 在 MATLAB 上撰寫，兩者的連接是用 MATLAB 上的 Simulink。實作 方面，我們也自行開發人型機器人，搭配新設計的腳底板結構。所有 機構皆由 SolidWorks 和 CATIA 來設計並作應力分析。

### 關鍵字: 零力矩點，變化的重心高度，Preview Control，自然步態，逆

### 運動學，腳趾彎曲，腳跟著地

ii

**Abstract **

This thesis examines the walking motion of human beings and applies its findings to a humanoid robot developed by our laboratory. Our goal is to construct the usable Zero Moment Point (ZMP) trajectory, a Center of Gravity (COG) trajectory in the vertical direction, and momentum compensation.

Conventional ZMP trajectories applied to humanoid robots are usually located at the center of each foot pad, shifting instantaneously to the new supporting leg as support changes from one foot to another. Velocity and acceleration become unsmooth. We used Preview Control to generate a COG trajectory with the ability to arbitrarily adjust position in the vertical direction. Observations of human walking motion enabled us to plan COG trajectory with continuous smooth change of velocity and acceleration. The robot now has no need to keep its knee joints constantly bent, and therefore consumes less power. Its natural walk is a result of integrating the adjusting ZMP and COG trajectory controls by using the modified inverse kinematics algorithm. This thesis proposes two methods to derive the toe-off and heel-contact motions necessary for a natural walk. The proposed algorithms are justified through simulation and experiments.

Our simulation physical environment was constructed on MSC ADAMS, and all controlling functions were built in MathWorks MATLAB. The two software environments were connected by Simulink in MATLAB. We also developed a humanoid robot with new foot pads to generate a natural walk. All mechanisms were designed in Dassault Systems SolidWorks, and stress analysis performed using Dassult Systems CATIA.

**Keywords: ZMP, Varying COG Height, Preview Control, Natural Walk, Inverse **
Kinematics, Toe-off Motion, Heel-contact Motion

iii

**Contents **

**中文摘要…… ... i **

**Abstract…….. ... ii **

**List of Tables... ... vi **

**List of Figures ... vii **

**Nomenclature ... x **

**Chapter 1 ** **Introduction ... 1 **

1.1 Motivation ... 1

1.2 Humanoid Robots ... 3

1.2.1 Development of Humanoid Robots ... 4

1.2.2 Stable Walking for Humanoid Robots ... 6

1.2.3 Human-Like Walking ... 7

1.3 Thesis Organization ... 8

1.4 Contributions ... 10

**Chapter 2 ** **Dynamic Walking Generation ... 13 **

2.1 Introduction ... 13

2.2 Forward Kinematics ... 14

2.3 Inverse Kinematics ... 16

2.3.1 COG Jacobian and End-Effector Jacobian ... 17

2.3.2 RDLS: Singularity Avoidance ... 20

2.3.3 WLS: Joint Limitation Avoidance ... 22

2.4 Pattern Generation of Dynamic Walking ... 24

2.4.1 Cart-Table Model with ZMP ... 26

2.4.2 Cart-Table Model with Preview Control ... 29

2.5 Summary ... 32

**Chapter 3 ** **ZMP Analysis and Varying COG ... 34 **

3.1 Introduction ... 34

3.2 Adjusting ZMP Trajectory ... 37

3.2.1 ZMP Trajectory for Single and Double Support ... 38

3.2.2 ZMP Trajectory for Walking Period ... 39

3.2.3 Simulations and Results ... 41

3.3 Varying Height of COG ... 42

3.3.1 Dynamic ZMP Equation with Varying COG ... 42

iv

3.3.2 Human-Like Trajectory of COG ... 43

3.4 Momentum Compensation ... 48

3.4.1 Momentum Derivation ... 49

3.4.2 Momentum of the Fixed Leg ... 51

3.4.3 Adding Momentum Jacobian to Inverse Kinematics ... 53

3.4.4 Simulation with Momentum Compensation... 54

3.5 Summary ... 56

**Chapter 4 ** **Dynamic Locomotion with Natural Walk ... 58 **

4.1 Introduction ... 58

4.2 Landing States and Desired ZMP Trajectory ... 61

4.3 Adding Active Joint to Fixed Leg ... 63

4.4 Toe Motion Without Extra DOFs ... 68

4.4.1 Simulations of Toe Motion Without Extra DOFs ... 70

4.4.2 Results and Comparisons ... 72

4.5 Motion of Heel Contact ... 73

4.6 Summary ... 77

**Chapter 5 ** **Mechanism Design and Mechatronics System ... 81 **

5.1 Introduction ... 81

5.2 Mechanism Design ... 82

5.2.1 Design Specification ... 83

5.2.2 Transmission and Fundamental Settings ... 86

5.2.3 Modified Foot Pad ... 89

5.2.4 Structure Stress Analysis ... 90

5.3 Mechatronic System ... 92

5.4 Summary ... 94

**Chapter 6 ** **Implementations and Experiments ... 96 **

6.1 Hardware Assembly ... 96

6.2 Software and Firmware Setting ... 97

6.3 Experiments ... 100

6.4 Summary ... 103

**Chapter 7 ** **Conclusions and Future Works ... 105 **

7.1 Conclusions ... 105

7.2 Future Works ... 107

**References….. ... 108 **

v

vi

**List of Tables **

Table 4-1 Comparison of methods 1 and 2 ... 73

Table 4-2 Walking speed and leg length of different humanoid robots. ... 79

Table 5-1 Comparison of movable of joints ... 85

Table 5-2 Principal Specification of Voyager ... 85

Table 5-3 Maximum power requirement of each actuator from [5] ... 87

Table 5-4 Strength of aluminum alloy 6061-T6, 7075-T6, and steel alloy 4130 ... 88

Table 5-5 Specification of the proposed foot pad mechanism ... 89

Table 5-6 Specification of applied forces and torques ... 91

vii

**List of Figures **

Figure 1-1 (a) Service humanoid robot, ASIMO [84] (b) PACKBOT [85]: exploring

robot. ... 1

Figure 1-2 Classification of researches for biped locomotion. ... 3

Figure 1-3 Thesis structure. ... 9

Figure 2-1 Dynamic locomotion generation. ... 14

Figure 2-2 The relationship between { }*R* and

### { }

*. ... 16*

^{W}Figure 2-3 Relationship between COP and ZMP. ... 26

Figure 2-4 3D Linear inverted pendulum model [22]. ... 27

Figure 2-5 A cart-table model [19]. ... 29

Figure 2-6 Pattern generation as ZMP tracking control. ... 30

Figure 2-7 Co-simulation overall structure [79] ... 32

Figure 3-1 (a) A robot with effective ZMP (b) A robot with ineffective ZMP. ... 34

Figure 3-2 The shift of COG in human walking. The red line is actual, the yellow line is reference. ... 35

Figure 3-3 The movement comparison between human and biped robot [86]. ... 36

Figure 3-4 Common ideal ZMP trajectory. ... 38

Figure 3-5 Human ZMP trajectory during walking. ... 38

Figure 3-6 Three phases of human walking. ... 39

Figure 3-7 (a) ZMP trajectory in continuous time, (b) ZMP trajectory in discrete time. 40 Figure 3-8 ZMP trajectory with smoothly interpolating points. ... 41

Figure 3-9 Walking motion of the humanoid robot using the common (upper) and smooth (lower) ZMP trajectories. ... 42

Figure 3-10 Input-output relationship of the controller. ... 43

Figure 3-11 Using SolidWorks to calculate the COG of all components. ... 44

Figure 3-12 The human COG trajectory, visualized with OpenSim. ... 44

Figure 3-13 The trajectory of the reference COG in the z-direction. ... 46

Figure 3-14 Simulation of changing COG height for a humanoid robot... 46

Figure 3-15 The angles of the knee joints with and without variant COG. ... 47

Figure 3-16 The power consumptions of the knee joints with and without variant COG. ... 48

Figure 3-17 Scheme for derivation of inertia. ... 49

Figure 3-18 Model of humanoid robot [20]. ... 50

Figure 3-19 The left picture is waist joint of the robot, and the right figure is the trajectory of waist joint of momentum compensation. ... 55

viii

Figure 3-20 Simulations of walking straight with momentum compensation. The

sampling rate is 0.06sec/picture. ... 56

Figure 4-1 Motion of human walking. [83] ... 58

Figure 4-2 Foot rotation at the end of the single support phase. ... 60

Figure 4-3 ZMP trajectory of humanoid robot with flat foot. ... 61

Figure 4-4 ZMP trajectory of humanoid robot with human-like foot. ... 62

Figure 4-5 Three phases of the right foot during its support period. ... 63

Figure 4-6 Switching the IK modes—flow chart. ... 64

Figure 4-7 MATLAB simulation of adding toe joint into fixed leg. ... 65

Figure 4-8 ADAMS simulation of adding toe joint into fixed leg. ... 65

Figure 4-9 Simulation of adding toe joint to fixed leg with varying COG height. ... 67

Figure 4-10 Angles of knees obtained by adding toe joint to fixed leg. ... 67

Figure 4-11 Directions of upper body and walk. ... 68

Figure 4-12 Reference trajectory of the toe joint. ... 71

Figure 4-13 Simulation of toe motion without extra DOFs in ADAMS. ... 71

Figure 4-14 Close-up of the toe-off motion. ... 71

Figure 4-15 Angles of knees by a method without extra DOFs ... 72

Figure 4-16 The contact area of humanoid robots during walk. ... 73

Figure 4-17 Support area during heel-contact phase. ... 74

Figure 4-18 Rotating directions of toe-off and heel-contact motions... 75

Figure 4-19 Recovering heel motion. ... 76

Figure 4-20 Walking motion with heel-contact and toe-off motions. ... 76

Figure 4-21 Close-up of heel-contact motion (robot walking toward the left). ... 77

Figure 4-22 Simulation of natural walk with momentum compensation. Step length is 400mm. ... 78

Figure 4-23 The values of joint trajectories from our humanoid robot. (a) Hip pitch, (b) Hip roll, (c) Hip yaw, (d) Knee pitch, (e) Ankle pitch, (f) Ankle roll. ... 78

Figure 4-24 Simulation of natural walk with walking speed 625mm/s and step length 500mm. ... 79

Figure 4-25 Power consumption of the flat foot and human-like foot at 250mm/step. . 80

Figure 5-1 Overview of the humanoid robot shown in SolidWorks and ADAMS. ... 81

Figure 5-2 Front view and back view of the humanoid mechanical structure [5]. ... 82

Figure 5-3 Front view and back view of the new humanoid mechanical structure. ... 83

Figure 5-4 The arrangement of links and joints of ASIMO. ... 84

Figure 5-5 The photo of constructed humanoid robot. ... 86

Figure 5-6 Measuring the torque and power consumption by different motions.[5] ... 87

Figure 5-7 The proximity sensor and limit switch. ... 88

Figure 5-8 The sink and cooling fan for driver. ... 88

ix

Figure 5-9 Mechanisms of foot pads with toe and heel joints ... 90

Figure 5-10 Mechanism design with stress analysis. ... 90

Figure 5-11 Result of the stress analysis in CATIA. ... 91

Figure 5-12 The flowchart of mechanical design ... 92

Figure 5-13 Proposed robot control system with CAN-BUS and USB. ... 94

Figure 5-14 The USB-to-CAN Bus adapter module and the motor controller. ... 94

Figure 5-15 Simulation of new foot pads with toe-off and heel-contact motions. ... 95

Figure 6-1 Front view of humanoid robot. ... 96

Figure 6-2 Back view of humanoid robot ... 96

Figure 6-3 Left side view of humanoid robot ... 97

Figure 6-4 Humanoid robot with new foot pads. ... 97

Figure 6-5 Wiring of humanoid robot... 97

Figure 6-6 The relationship between software and hardware platforms ... 98

Figure 6-7 The GUI program for our robot system ... 99

Figure 6-8 Proposed humanoid robot finite state machine for general operations ... 99

Figure 6-9 Humanoid robot, Voyager, walks with adjusting ZMP trajectory. ... 100

Figure 6-10 Close-up of flat foot walking. ... 100

Figure 6-11 Humanoid robot, Voyager, walks with toe-off and heel-contact motions. 102 Figure 6-12 Close-up of toe-off and heel-contact motions in real humanoid robot. .... 103

x

**Nomenclature **

**Notations **

**Coordinate System **

{ }*R* coordinate system of robot
{*W*} coordinate system of world
**Inverse Kinematics **

*h* threshold value

*x * robot position

*m **i* mass of link i

( )

*H* θ performance criterion

*M* mass

*J **e* Jacobian matrix for each joint

*J**COG* COG Jacobian

*J*^{+} pseudo inverse

*W* diagonal weighting matrix

α positive damping factor

θ joint angle of robot

**ZMP Analysis , Varying COG, Momentum Compensation **
*x**ZMP* ZMP position in x-direction

*y**ZMP* ZMP position in y-direction

*toe* *heel*

*x* *x* positions of toe and heel in x-direction

*toe* y*heel*

*y* positions of toe and heel in y-direction
*COG **Z* COG Height

*J**mom* momentum Jacobian
**Natural walk **

*L* Foot pad length

*J **o* known Jacobian matrix from known trajectory
( )

*z t* position of heel in z-direction at time t

*Rtoe* *Ltoe*

θ^{} θ^{} angular velocity of toe joint

,
*toe t*

θ angle of toe at time t

1

**Chapter 1 Introduction **

**1.1 Motivation **

A humanoid robot, similar in appearance to a human being, can walk with two legs and perform tasks with two arms. They are designed in this way so that they can serve humans in their daily living environment. Such kind of humanoid robots are useful in aging society [14]. Robots are also useful for performing tasks in conditions and environments that are hostile to humans. For example, the 311 earthquake off Japan made the Fukushima Daichi nuclear power station a very hostile radioactive environment in which human beings could work for very short periods. The USA dispatched a robot, PACKBOT [74], to observe the center of the nuclear plant. The National Aeronautics and Space Administration (NASA) also uses robots to search unknown planets.

(a) (b)

Figure 1-1 (a) Service humanoid robot, ASIMO [84] (b) PACKBOT [85]: exploring robot.

Many people ask why robots are designed in the shape of humans. There is need

2

for machines that can perform specific tasks, but their repertoire is very small and their tasks must be known before design starts. A humanoid robot is a general-purpose machine, adaptable to a wide range of tasks that may not even have been thought of when the robot was designed.

Many robots nowadays are humanoid in neither appearance nor motion. They may
be wheeled, quadruped, hexapod, or snake-like, and their high mobility allows them to
perform tasks well. Even so, humans still feel a need, possibly stimulated by movies and
*novels, to humanoid robots. Movies like “The Terminator” and the “Star Wars” series *
*motivate dramatic development of humanoid robots, which spring up like bamboo *
shoots after a spring rain. Ever more impressive and human-like robots appear, like
*those in “Transformer” and “Avatar”. They may be fictitious, but they persuade us to *
believe that they could be developed in real life.

Even given this belief, it is hard to design a humanoid robot with its physical functions exactly equivalent to those of a human. For example, a robot’s walking mechanism must be different from a human’s, because its stability and human-like motion cannot be governed in the absence of the human learning algorithm (generated in the cerebrum) and the human sense of equilibrium (generated in the cerebellum). For robots to walk in a convincing manner, therefore, it is critical to control the high nonlinearity for 30-40 degrees of freedom (DOFs) as well as the inherent instability

3

(inverted pendulum).

**1.2 Humanoid Robots **

To appear like human, robots must walk on two legs; i.e. they must have biped locomotion. Several control methods and algorithms have been developed in this field.

When analyzing biped locomotion, we separate it into four categories- Planning, Stabilization Control, Gait Generation, and Trajectory Generation, as shown in Figure 1-2. This thesis covers the areas shown in blue.

Figure 1-2 Classification of researches for biped locomotion.

High-level planning is mainly concerned with collecting and fixing the pattern of walking. That enables us to plan the path and goal appropriately, so we can take the planned information into the environment. The planning result combines several low-level planning motions, including walking in straight line, in curves, up stairs, with

4

different stride lengths, and at different speeds [32]. The information from high-level planning enables the accomplishment of stable gait generation, thus ensuring that the robot walks with asymptotic stability. The stabilization controller uses several algorithms such as the ankle stabilizer and ZMP limiter. Trajectories such as COG and ZMP for each joint are optimized or fixed, thus enabling the robot to walk more smoothly and stably—more humanly.

**1.2.1 Development of Humanoid Robots **

In 2010, HONDA corporation celebrated birthday of 10 years old humanoid robot

“ASIMO” [12]. ASIMO is one of the successful humanoid robots. Its height is 130 cm and weight is 54 kg, and it has 34 DOFs. This remarkable robot can do lots of human motions including walk, run, waving hands, nod, etc. ASIMO really impresses on most of researchers in robotic territory. HONDA humanoid robot triggered the world’s research on humanoid robots. Therefore, new humanoid robots has been fabricated, such as HRP-2, HRP-3,HRP-4, HUBO [54], WABIAN, and so on.

The National Institute of Advanced Industrial Science and Technology (AIST) develops the humanoid robots of HRP series. Different from the ASIMO, HRP series adopt the feminine style, and the appearances are similar to the human beings. HRP-2 [24, 26] was a remarkable humanoid robot whose height is 154 cm and weight is 58 kg.

This robot not only has the cooling system for longer motion but also utilize FEM

5

(finite element method) to reduce mechanical resonance. HRP-2 is a prototype for subsequent HRP series robots. HRP-3 [27] was improved some problems of HRP-2, and it had been designed to work outdoors. The latest HRP series was HRP-4C [28] which was designed in 2009. This robot has a fashionable body shape, and its human-like face does impress robotic researchers.

Korea Advanced Institute of Science and Technology (KAIST) developed a humanoid robot, HUBOⅡ [54]. Its appearance is similar to predecessor, HUBO (KHR3), and it has 40 DOFs for various motion. HUBOⅡ only weights 45 kg which is lighter than his brother HUBO (55kg), and capable of walking two times faster (1.4km/h). It also can run up to 3.3 km/h.

WABIAN-2 [49], was designed by Waseda University, and it can walk much like the human beings. Since WABIAN-2 has toe joints and heel joints, it can walk with toe-off and heel-contact. Moreover, WABIAN-2 has additional joint in waist, and make its knee joints more straight during walking period. This robot adopted the genetic algorithm to generate the joint trajectory, and the walking motions are similar to the human beings.

Boston Dynamics designed an anthropomorphic robot, PENTMAN [82], for testing chemical protection clothing. It was used by the US Army. This robot had to be supported mechanically and had a limited repertoire of motion. The predecessor, BIG

6

DOG, was also fabricated for delivering goods and materials during warfare. Although PENTMAN’s robust balance is not as good as BIG DOG, it has a walking speed of up to 7.2 km/h (4.4 mph).

Unlike most of the biped robots, DLR developed a biped robot, DLR-Biped [51], which walked with torque joints. This modular structure, DLR-KUKA Lightweight-Robot (LWR), can keep the development time and cost low. It has 6 degrees-of-freedom each legs, and has a walking speed of up to 0.15m/s.

LOLA is an anthropomorphic autonomous humanoid robot [40] which was developed by Technical University of Munich. This robot has 25 DOFs for performing various tasks. In order to generate high-speed walking, further design goals can be improved, such as high center of mass and low moments of inertia of the leg links. By investment casting, this robot largely reduces the weight, but it still has the humanoid appearance (height :180cm). Although LOLA is fabricated with aluminum, the strength of mechanism is very solid.

**1.2.2 Stable Walking for Humanoid Robots **

Stability is critical for a humanoid robot to walk. Locomotion is governed by a planning process to determine stride length, positions of end-effectors, and stability in motion. Most current researchers believe that a combination of high-level dynamic algorithms and appropriate mechanisms will help achieve stability.

7

The use of a simple model is advantageous as it allows rapid calculation and real-time implementation. Kajita et al. adopted the Linear Inverted Pendulum Model [21, 22, 23] and Minakata et al. proposed the Virtual Inverted Pendulum Method [42]. Both methods can simplify models for easy calculation, however, such simplification may allow modeling errors to render biped robots unstable in certain circumstances. It is therefore necessary to consider the limitations of these models.

Some researchers, lacking the needed stability algorithm, generated locomotion through trial and error. Lee et al. [36] adopted an evolution algorithm (EA) to determine walking parameters, while Kuffner et al. [33] proposed a heuristics search to generate a sequence of footstep locations. Although they are very time-consuming, the contribution made by these heuristics search methods for biped robots is still significant. By constructing a huge database and developing feasible experiences for robots, researchers have enabled robots to perform more actions of different types.

**1.2.3 Human-Like Walking **

In recent years, an ever increasing number of humanoid robots can walk stably, prompting the belief that, just because they are labeled humanoid, they can walk or run just like human beings. They, however, walk with bent knees because of the limitations imposed by modeling or hardware [12, 22, 25, 48]. Sano et al. [59] used the inverted pendulum’s angular momentum to generate ankle torque. This was a start to recognize

8

that human feet are not permanently parallel with the ground during locomotion.

Wikipedia [88] stated that human gait consists of (1) forefoot strike, (2) midfoot strike, and (3) heel strike. This definition separates the foot into toe, midfoot, and heel, each with its own functions Some researchers have therefore begun to study the influence of toe and heel [66, 71], and, unlike earlier researchers, have introduced the viewpoint of using the straight knee for part of the robotic stride [38, 41, 50]. Of the four postures used in human locomotion, only one (midfoot strike) occurs in conventional humanoid robots, whereas forefoot strike (toe-off motion), heel strike (heel-contact motion), and straight knee are all missing.

There are many advantages to implementing natural walking. Stride length, limited in conventional humanoid robots because of their constantly parallel-to-the-ground feet, can be lengthened by adding toe and heel functions. By straightening the knee for part of the stride cycle, power consumption can be reduced.

The disadvantages of adding these functions are potential loss of stability resulting from the small contact area when heel or toe is the only part of the foot on the ground.

This presents a great challenge, in particular maintaining the stability of a walking

robot.

**1.3 Thesis Organization **

This thesis is organized into seven chapters. They are shown in Figure 1-3.

9

Figure 1-3 Thesis structure.

In this chapter, Chapter 1, we have briefly summarized the development of humanoid robots and introduced the challenges to make them walk naturally, as humans do.

Chapter 2 provides the background knowledge needed to overcome the challenge of biped locomotion. It will include the Zero Moment Point (ZMP) method, the Inverse Kinematics (IK) solver, and the preview controller to vary the Center of Gravity (COG).

Chapters 3 and 4 form the kernel of this thesis, describing our results and the simulations we used to prove our method. Chapter 3 explains the need to plan the desired ZMP trajectory for humanoid robots, so they can walk, as humans do, with

10

varying COG height and momentum compensation. Chapter 4 proposes two methods for natural walking. After comparing the results, we adopted the “Toe Motion without Extra DOFs” method to generate toe-off and heel-contact motions.

Our laboratory designed a humanoid robot, Voyager, to implement and test the proposed methods. Its feet consists of specially designed toe and heel joints to enable natural locomotion. The new foot mechanisms were designed with stress analysis. All actuators are communicated through a Controller Area Network (CAN) bus. “Voyager’s”

hardware is discussed in Chapter 5.

Chapter 6 details the experiment and implementation results, while Chapter 7

provides conclusions and some suggestions for future research.

**1.4 Contributions **

A. Since the conventional ZMP trajectory caused discontinuous acceleration or jerk, we modified it to enable us to plan and implement a more natural walk.

B. We also considered the effect of COG on walking. We found that varying the COG height led to a reduction of redundant power consumption. On the other hand, the practice of momentum compensation made our humanoid robot walk much similar to humans.

C. We proposed two methods to realize the toe-off motion. After comparing their pros and cons, we selected the better of the two to perform the heel-contact. Since the

11

robot end-effector trajectory is generated by MTS, the dropping value of the swinging leg can be anticipated before contact occur, allowing us to propose a compensatory way to realize the heel-contact motion. Once the toe-off and heel-contact motions had been combined, natural locomotion could be constructed.

D. We designed a new foot pad with toe and heel joints. In order to ensure its strength, we performed stress analysis in CATIA. The stress results give us real hope that we will be able to reduce the weight of the mechanism.

E. To prove our theory, we took the joint trajectories into our humanoid robot, Voyager. The humanoid robot is also loaded with the new foot pads. With the stable robot system, our robot really can realize the toe-off and heel-contact motions.

13

**Chapter 2 Dynamic Walking ** **Generation **

**2.1 Introduction **

This chapter introduces some fundamental concepts of biped humanoid robots.

Walking issues of humanoid robots are different from human walking. However, the human walking motion can help us to construct the biped robot walking system

Previously, biped robot’s locomotion is static walking which the projection of center of gravity (COG) on the ground should be always located inside the foot support area. However, the dynamic walking can be implemented with less motion constraints and let the COG move smoothly. Although the walking speed is increasing, the issue of stability rises.

Among many researches of dynamic walking, the stability is a critical point. To satisfy the stability, Zero-Moment Point (ZMP) is perhaps the most important method for controlling the biped robot walking motion. The basic concept of ZMP method is let ZMP of the biped robot stay inside the support polygon. Then we control the whole motors of the biped robot and change the posture which directly influences the locomotion of the COG and end-effectors. By using the car-table model, we can connect the ZMP and the COG dynamic relationship. Based on ZMP and COG relationship, we

14

plan the COG trajectory via pattern generator using preview control [19].

Kinematics is a method that links the Cartesian space with the joint space, since the end-effectors trajectories are planned in Cartesian space. By solving the inverse kinematics, we can map desired trajectory of COG and footstep to the joint space. Due to some drawbacks in inverse kinematics, we adopted robust damped least square method (RWLS) [79]. The structure of dynamic walking motion generation is shown in Figure 2-1.

Figure 2-1 Dynamic locomotion generation.

**2.2 Forward Kinematics **

Our robot’s movable joints are based on joint space. However, the COG trajectory

15

and end-effector trajectory are established in the task space. Therefore, forward kinematics system and inverse kinematics system must be utilized.

Before we apply the method, we should know how to describe the structure of the robot. Hence, we must construct the parameters of robotic system, which involves the orientation of each joint, the length and angle of each link, and the limited movable range of each joint. Based on Devanit-Hartenberg (DH) [68, 72] representation, we converted four independent parameters into a mathematical formula. By applying this formula, we can find a transformation matrix to establish the structure of robot.

For biped robot, we need to describe the relations between each joint and each end-effector in the given coordinate system

### { }

*on the robot. We make the landing leg as the coordinate origin. By moving the robot’s coordinate system*

^{R}### { }

*, we determine*

^{R}the robot’s pose in the world.

During walking period, the biped robot changes the coordinate system

### { }

^{R}^{ all the }

time. The link between the robot coordinate system

### { }

*and the world, or so-called*

^{R}task space and noted as

### { }

*, is quite important. Thus, we assume that the origin of*

^{W}### { }

*always changes with*

^{R}### { }

*. The relationship between*

^{W}### { }

^{R}^{and }

### { }

*is shown in*

^{W}Figure 2-2.

16

Figure 2-2 The relationship between { }*R* and

### { }

^{W}^{. }

**2.3 Inverse Kinematics **

For describing the position, we usually use the task space. In contrast to forward kinematics, inverse kinematics (IK) is the computation from the motion of the end-effector back to joint angles. In other words, inverse kinematics converts the task space into joint space. The end-effector motions are decomposed to a set of positions which are computed by IK-solver. In order to fit the setting we select the dynamic simulation software ADAMS. Since motions of the end-effector are divided into s set of points, the distance of adjacent points should be close enough. If the distance is not close enough, the IK-solver might spend more computation time and the robot’s motions in simulation might not be smooth. In order to overcome this problem, some interpolation algorithms may be employed, such as polynomial fitting, cubic spline fitting, conventional tension splines (CTS), Lagrange interpolations, Non-uniform rational basis spline (NURBS), and modified tension splines (MTS) [15]. In our

17

research, we apply the MTS developed by our laboratory for the trajectories interpolation of the end-effector.

The IK-solver for computing Jacobian matrix is introduced in Section 2.3.1. To solve the singularity configuration problem in IK, the singularity configuration.

Therefore, we performed singularity avoidance method will be described in Section 2.3.2 to avoid full stretch of the links.

**2.3.1 COG Jacobian and End-Effector Jacobian **

It is required to compute the Jacobian matrix in IK. The end-effector’s position and
orientation *x*∈*R** ^{m}* are described in task space, and the angles of joints θ∈

*R*

*are described in joint space. The relationship between θ and*

^{n}*x*is given in Eq. (2-1). If we differentiate Eq. (2-1) with respect to time, the velocity Jacobian becomes Eq. (2-2).

( )

*x*= *f* θ (2-1)

*e*( )

*x*=*J* θ θ (2-2)

where *J** _{e}*( )θ ∈

*R*

*is the Jacobian matrix. The suffix*

^{mn}*e presents the contribution of*

each joint to the end-effector. When a desired end-effector velocity is given ,we can find the corresponding joint angle velocity.

Only utilizing the end-effector Jacobian is not enough for biped robot. The COG Jacobian must be taken into account. If we do not care about the angle velocity contribution of each joint to the change rate of COG, the robot might fall. In order to

18

match the stable condition, we still can add the influence of COG trajectory into
Jacobian, namely, the Jacobian matrix of COG, *J** _{COG}*( )θ . The detailed introduction of
COG Jacobian matrix is described in [75].

Before combining the COG Jacobain into the IK-solver, we need to realize that there is difference between the swing limbs and the fixed limbs at COG Jacobian matrix.

The limbs include arms, legs, and head. The COG Jacobian matrix of swing limbs,

*limb* *COG*( )

*J* _{→} θ , can be expressed as (2-3).

,

( , ) ^{limb j}

*limb* *COG* *limb j* *j* *j* *j* *COG*

*J* *M* *Z* *r*

θ *M* θ

→ = × → (2-3)

*where M is the mass of the robot, * *M*_{limb j}_{,} indicates a part of mass which will be moved
*when the joint j rotates. The direction vector of the rotating axis of joint j is * *Z*_{j}

,
and the *r*_{j}_{→}_{COG}

* is a vector of rotating joint j* to COG. Note that all the vectors are

computing with respect to world space.

On the other hand, the Jacobian matrix of fixed limb, *J*_{fixed}_{→}* _{COG}*( )θ is different

from the swing limb. When a joint rotates on the fixed limb, the upper parts of the rotating joints will rotate. And the lower parts do not move. Therefore, the angular velocity direction of this fixed limb joint is opposite to swing limb’s joint. The sign of Jacobian matrix of the fixed leg rather than the swing leg is negative. Here the equation of fixed limb Jacobian matrix is expressed as

19

,

( , ) ^{fixed j}

*fixed* *COG* *fix j* *j* *j* *j* *COG*

*J* *M* *Z* *r*

θ *M* θ

→ = − × → (2-4)

Integrating the Jacobian matix of the fixed limbs, swing limbs, and COG Jacobian matix, we can derive the ideal Jacobian matrix to solve the IK problem. By performing this matrix, we can obtain the relationship between the velocity of the end-effector and the angular velocities of all joints as

*fixed*

*fixed*
*swing*

*swing*
*LArm*

*LArm*
*RArm*

*RArm*
*Head*

*Head*
*COG*

*x*
*x*

*x* *J*

*x*
*x*
*x*

θ θ θ θ θ

=

(2-5)

0 0 0 0

0 0 0

0 0 0

0 0 0

0 0 0

*fixed*

*f* *swing* *swing*

*f* *LArm* *LArm*

*f* *RArm* *RArm*

*Head* *Head*

*fixed* *COG* *swing* *COG* *LArm* *COG* *RArm* *COG* *Head* *COG*

*J*

*J* *J*

*J* *J*

*J* *J* *J*

*J* *J*

*J* *J* *J* *J* *J*

→

→

→

→ → → → →

=

where the suffix *fixed* expresses the fixed leg or landing leg. Note that the limbs
mean the head, arms, and leg here. Hence, the *J*_{f}_{→}* _{limb}* represents the coupling

contribution of fixed leg to other limbs. According to this configuration, the upper body
which involves the arms and the head will affect the COG. However, the*J*_{LArm}_{→}* _{COG}*,

*RArm* *COG*

*J* _{→} , and *J*_{Head}_{→}* _{COG}*are equal to zero. Namely, it can work well without the upper
body influence. Hence, it will save much time and make the computation easier.

We already have the relationship between the velocities of the end-effectors and

*e*( )
*J* θ

20

the angular velocities of all joints. If we give the known the velocity of the end-effector,
we can obtain the angular velocity of joints by inversing *J*( )θ . Nevertheless, the

inversing Jacobian matrix *J*^{−}^{1}( )θ may not exist when the system is a redundant
system. Therefore, we can use pseudo inverse of ^{J}

### ( )

^{θ}to obtain the inverse as

( ) 1

*T* *T*

*J*^{+} =*J* *JJ* ^{−} (2-6)

Although *J*^{+}ensures the inverse when the matrix ^{J}

### ( )

^{θ}is not a square matrix, the high angle velocities of joints may occur. In this singularity condition, we adopt the Robust Damped Least-Square method (RDLS) and Weighted Least-Square method (WLS). In other words, we want to constrain the robot motions to avoid the robot hitting itself. By adopting these methods, we can solve the problem from computing inverse kinematics.

**2.3.2 RDLS: Singularity Avoidance **

In fact, if there is a redundant joint being added to the system, it still exists singular points in some situations [8]. This issue can be solved by minimizing a performance

index Eq. (2-7).

2 2

*P*= *x*−*J*θ +α θ (2-7)

Here we focus on the residual error and angle velocity. The symbol α is a positively
*damping factor, and P is a cost function. Therefore, the formula of DLS becomes Eq. *

(2-8)..

21

( ) 1

*T* *T*

*J*^{+} =*J* *JJ* +α*I**m* ^{−} (2-8)

where *I is an identity matrix (the dimension is m by m). According to this formula, ** _{m}*
the value of damping factor will be very small at nonsingular configuration. On the
contrary, at singular configuration the value of α becomes larger. Thus, the timing of
switching α is quite important. Nakamura et al. [39] proposed an automatically
adjusting method as

0(1 1/ 1) 1 1

0

*s* *s*

*h h* *if h* *h*

*otherwise*

α^{}_{}α ^{−} ^{<}

(2-9)

where

1( ) det( * ^{T}*)

*h* θ = *JJ* (2-10)

the *h*_{1}* ^{s}* indicates a threshold value of the boundary of the neighborhood of singular
points, and α

_{0}is a value of the damping factor when the system’s solution are located

at singular points. From these two equations, the damping factor α will become large
enough to avoid singularity as *h*_{1} is smaller than the threshold value *h*_{1}* ^{s}*. The damping

factor is equal to zero at nonsingular configuration.

In particular, it needs to be mentioned that when *h is larger than *_{1} *h*_{1}* ^{s}*, the value of
α cannot be zero since it will generate some discontinuous condition in some practical

applications. Hence, the value of α need to be chosen as almost zero but not equal to zero.

22

The problem of singularity has been solved. However, some poses does not reach the singularity points ,but the robot maybe knock itself. We adopt a method to solve the problem in next section.

**2.3.3 WLS: Joint Limitation Avoidance **

For a redundant system, there are infinite solutions of joint angles when we give a position and orientation of the end-effector. The system is usually utilized at biped or humanoid robot. And the general formula can be expressed as:

( )

*J x* *I* *J J*

θ= ^{+}+ − ^{+} ϕ (2-11)

where ϕ∈*R** ^{n}* is a vector which we can arbitrarily design. The term of (

*I*−

*J J*

^{+}) is a projection operator which will projects ϕ into the null space of

*J*. Note that the

(*I* −*J J*^{+} )ϕ is a homogeneous solution and *J x*^{+} is a particular solution. We substitute

Eq. (2-8) into Eq. (2-11) to obtain.

1 1

( ) ( ( ) )

*T* *T* *T* *T*

*m* *m*

*J* *JJ* *I* *x* *I* *J* *JJ* *I* *J*

θ= +α ^{−} + − +α ^{−} ϕ (2-12)

For Gradient Projection Method (GPM) the term of ϕ will be substituted by ( )

*H* θ

∇ , and we have

( ) ( )

*J x* *I* *J J* *H*

θ= ^{+}+κ − ^{+} ∇ θ (2-13)

where κ is a real scalar number, and *H*( )θ is a performance criterion. The κ is
chosen as a positive value when *H*( )θ is maximized, and a negative number when

( )

*H* θ is minimized. In this formula of joint limit avoidance, the performance criterion

23

can be defined as Eq. (2-14):

2 ,max ,min

1 ,max ,min

( )

( ) 1

4 ( )( )

*n*

*i* *i*

*i* *i* *i* *i* *i*

*H* θ θ

θ = θ θ θ θ

= −

− −

### ∑

^{(2-14) }

According to this definition, *H*( )θ is a weighting value which can automatically
change. The weighting will be larger when the joints are close to their limits.

After deciding the performance criterion, we need to know how to decide the value of the κ. Nevertheless, it is difficult to determine the value of κ since the oscillation

occurs at large κ value and the convergent rate will be quite slow at a small value of κ. Furthermore, most often a κ value may suit with a configuration, but fail for

another configuration. Therefore, many researches have been performed about the automatic adjustment of the scalar number κ. In these researches, the methods of choosing a suitable κ are applied case by case. Finally, some researches started to focus on the method of weighted least-square (WLS).

The scheme of a weighted least-square (WLS) for avoiding the joint limits was proposed by Dubey et al. [3]. The issue of κ value is settled in this method. The solution of WLS can be expressed as:

( 1/ 2 )

*W* *W*

*J x* *W* *J* *J* *x*

θ= ^{+}+ ^{−} ^{+} − ^{+} (2-15)

where

1/ 2

*J**W* =*JW*^{−} (2-16)

24

the *W* is a diagonal weighting matrix (*n n*× ) shown in Eq. (2-17) *and the ith element *
is the diagonal part. The equation of *W is defined as Eq. *(2-18):

1

2

0 0

0

0

0 0 _{n}

*w*
*w*
*W*

*w*

=

(2-17)

1 ( )

*i*

*w* *H* θ

θ

= + ∂

∂ (2-18)

It should be mentioned that ∂*H*( ) /θ *∂ , is equal to zero if the ith joint is the *θ* _{i}*
middle of its working range, and moves to infinity at either limit. If a joint moves close
to its limit, the value of the weighting factor gets high, and it causes reduction in its
motion. In other words, since the weighting factor is closed to infinity, the

corresponding joint will virtually stop and joint limit avoidance is guaranteed.

**2.4 Pattern Generation of Dynamic Walking **

We can roughly classify the walking pattern generation into two categories: with and without the ZMP stability criterion. The definition of ZMP given in [70] by Vokobratovic et al. is as follows:

*ZMP is defined as that point on the ground at which the net moment of the inertial *

*forces and the gravity forces has no component along the horizontal axes. *

Pattern generation controllers with ZMP were widely applied to robot’s stability [13], [27, 26, 54], including active and passive mechanisms.

25

ZMP is a key for biped robot, and it plays different roles in several researches.

Some researchers utilized pattern generation with ZMP as an inverse problem. Takanishi et al. [64] solved this with Fourier transformation. The main idea is what kind of motion can get the desired trajectory. Therefore, the Fast Fourier Transformation (FFT) is applied to the ZMP reference, and the ZMP equations can be solved in the frequency domain. By adopting the inverse FFT, the ZMP equation can be derived as COG trajectory in time domain. Nishiwaki et al. [17] used this result and computed the ZMP in discrete time. If the reference data of size N are given, They demonstrated that the ZMP equations can be discretized as a trinomial equation and efficiently solved by an algorithm of O(N).

For other researches, some researchers use the ZMP as the only constraint to judge if the biped robot is falling over in a series of learning period to obtain the proper motion. Therefore, so long as the ZMP is not located out of the supporting area, the robot will not fall.

Above methods were proposed as batch processes. In order to generate the corresponding COG trajectory, they utilized a ZMP reference of a certain period. If they want to generate a proper walking pattern for a long period, they need to calculate the entire trajectory offline or must connect a pieces of the trajectories which are computed from the ZMP reference divided into short parts. For generating online biped walking

26

control, Nishiwaki et al. [48] updated the motion pattern contributions to maintain balance in a long time. Next section, we will introduce the cart-table robot model with the pattern generator using preview control which was proposed by Shuuji Kajita et al.

[27] to solve this problem of pattern generation.

**2.4.1 Cart-Table Model with ZMP **

ZMP is a criterion of walking stability and has been widely used in the control and
*gait planning of biped robots. ZMP is the point where Mx=0 and My=0. The Mx and My *
*express moments generated by reaction force. The suffices x and y represent the x-axis *
(sagittal direction) and y-axis (lateral direction), respectively. Vokobratovic who
originally introduced the ZMP concept pointed that the COP (center of pressure) and
ZMP are the same point under the gait in dynamical balance. The COP is caused by the
ground reaction force. It is a point when weight of robot pressures into the foot. It is a
point when the weight of the robot pressures into the foot. The schematic diagram is
shown in Figure 2-3.

Figure 2-3 Relationship between COP and ZMP.

According to the definition, the ZMP equation can be expressed as:

27

### { }

1

( ) ( )

*N*

*i* *Gi* *Gi* *i* *i* *i* *i* *i* *Z*

*i*

*m p* *ZMP* *p* *g* *I*ω ω *I*ω *n*

=

− × + + + × =

### ∑

^{}

^{}

^{(2-19) }

*Z* 0

*n* × = *g* (2-20)

*where m*_{i}* is the mass of link i ; N is number of all links, and P** _{Gi}* ≡

### [

*x*

_{Gi}*y*

_{Gi}*z*

_{Gi}### ]

*is*

^{T}*the center of gravity of the link i; ZMP*≡

### [

*ZMP*

*x*

*ZMP*

*y*

*ZMP*

*z*

### ]

*is the position of ZMP;*

^{T}*g*^{≡}

### [

^{0}

^{0}

^{−}

^{g}### ]

*is the acceleration of the gravity; ω*

^{T}

_{i}*is angular velocity of link i; and*

### [

*n*

*Zx*

*n*

*Zy*

*n*

*Zz*

### ]

^{T}*n*≡ is the moment around ZMP.

To easily implement the model, the dynamic model of the biped robot which uses
ZMP can be simplified. A novel method is to derive its 3D Linear Inverted Pendulum
Mode (3D-LIPM) [22], as shown in Figure 2-4 Eq. (2-19) can be simplified while the
constant COG height *z** _{c}* is given by:

( * _{ZMP}*)

*c*

*Mx* *Mg* *x* *x*

= *z* −

(2-21)

( * _{ZMP}*)

*c*

*My* *Mg* *y* *y*

= *z* −

(2-22)

Figure 2-4 3D Linear inverted pendulum model [22].

*where M is the mass of the biped robot. It should be mentioned that the simplifying *
equation ignores the inertia terms. However, the inertia terms will generate another
effect with respect to the COM. The simplified equation might lead to some error

28

especially in the case of high angular velocity motion. To avoid this condition, one researching group used another model, which is basic 3D linear inverted pendulum model with a fly wheel [56]. It modeled the robot as two separate inverted pendulum models which included the fixed leg and the swing leg [55]. For our robot, we use the momentum compensation to reduce the error. According to the 3D linear inverted pendulum model, we rewrite Eqns. (2-21) and (2-22). The ZMP terms are moved to the left hand side and used as the output. The ZMP equations are shown in the Eqns. (2-23)

and (2-24).

*c*
*ZMP*

*x* *x* *z* *x*

= − *g* (2-23)

*c*
*ZMP*

*y* *y* *z* *y*

= − *g* (2-24)

These can be illustrated using a cart-table model [19] ,as shown in Figure 2-5. Eqns.

(2-23) and (2-24) show the relation between the ZMP position and the COG position.

The cart is heavy enough mass, and the cart is supported by a table. If the cart stays on
the edge of the narrow table, the table is hard to hold the cart for a while. However, we
can adopt proper acceleration *x*, and the cart will not fall. By using this model, the
moving cart which is like our biped robot can be properly controlled.

29

Figure 2-5 A cart-table model [19].

**2.4.2 Cart-Table Model with Preview Control **

Before we introduce the control for biped robot, we must construct the dynamic model of the cart-table. In this model, the ZMP velocity is the system input.

*x**ZMP* =*v* (2-25)

Then we can combine the results of Eq. (2-23) with Eq. (2-24). The system dynamic equation is given as

### [ ]

0 1 0

0

0 0

0 0 0 1

0 0 1

*COG* *COG*

*COG* *COG*

*c* *c*

*ZMP* *ZMP*

*COG*

*ZMP* *COG*

*ZMP*

*x* *x*

*d* *g* *g*

*x* *x* *v*

*dt* *Z* *Z*

*x* *x*

*x*

*x* *x*

*x*

−

= +

=

(2-26)

We can use a flow chart to construct the walking pattern generator as a ZMP tracking control system, as shown in Figure 2-6. The input is the reference ZMP trajectory, and the output is the desired COG trajectory. Through the dynamic ZMP equation, the actual output ZMP might not equal to the reference ZMP trajectory. We use a feedback control

30

to suppress the error so that actual ZMP trajectory will close to the reference.

Figure 2-6 Pattern generation as ZMP tracking control.

In Figure 2-6, the servo controller is based on linear quadratic (LQ) optimal control [11, 29, 62, 67], which is a discrete mode of preview control. Thus, we can rewrite Eq.

(2-26) in discrete time with sampling period T as

1

*k* *k* *k*

*k* *k*

*x* *Ax* *Bu*

*p* *Cu*

+ = +

=

(2-27)

where

( )

( ) , ( ), ( )

( )

*COG*

*k* *COG* *k* *k* *ZMP*

*ZMP*

*x* *k T*

*x* *x* *k T* *u* *v k T* *p* *x* *k T*

*x* *k T*

∆

≡ ∆ ≡ ∆ ≡ ∆

∆

(2-28)

1 0

0

0 , 0 , [0 0 1]

0 0 0

*c* *c*

*T*

*g* *g*

*A* *B* *C*

*Z* *Z*

*T*

= − ≡ ≡

(2-29)

Since we use the optimal control system, a performance index is defined as

31

### {

^{(}

^{i}

^{ref}

^{i}^{)}

^{2}

^{i}^{2}

### }

*i*

*J* *Q p* *p* *Ru*

=

### ∑

∞ − +^{(2-30) }

*where Q is a weighting value of symmetric positive semi-definite matrix, R is a *
symmetric positive definite matrix, and *p*_{i}* ^{ref}* and

*p*

*are reference ZMP point and actual ZMP point in discrete time, respectively. In order to generate a much stable*

_{i}*walking pattern generation, we choose the Q matrix larger than R for tracking*performance. In other words, we care about the ZMP tracking error rather than the effect of input. The optimal controller can be obtained as

### [ ]

1

2

1 2

*ref*
*k*
*ref*
*k*

*k* *k* *N*

*ref*
*k N*

*p*

*u* *Kx* *f* *f* *f* *p*

*p*

+ +

+

= − +

(2-31)

*where K and f**i* are expressed as:

( * ^{T}* ) 1

^{T}*K* ≡ *R*+*B PB* ^{−} *B PA*

1 ( 1)

( * ^{T}* )

*( )*

^{T}

^{T}

^{i}

^{T}*f**i* ≡*K* ≡ *R*+*B PB* ^{−} *B* *A*−*BK* ^{× −} *C Q*

*Using the Riccati equation to find the solution P as *

( ) 1

*T* *T* *T* *T* *T*

*P*=*A PA C QC*+ −*A PB R*+*B PB* ^{−} *B PA*

By using the preview control, we can find the desired COG trajectory, and the COG will not be constant. The changing height of COG will be described in next chapter. Furthermore, for the robustness of the preview controller, we can give a desired ZMP trajectory to make the robot walk more smoothly. The details will be described in

32

Chapter 3.

**2.5 Summary **

After setting the IK-solver with RWLS and using preview control to generate the pattern, the simulation structure with ADAMS and MATLAB can perform dynamic locomotion in an offline way , as shown in Figure 2-7.

Figure 2-7 Co-simulation overall structure [79]

In simulation, the biped robot can walk at a speed of 0.8 second per step (limited by the current configuration). To maintain ZMP tracking performance, the preview control needs future information about the next two steps (at least), but even with this provision, the result is still valuable. In fact, the variation of COG height during

33

locomotion is based on this preview control structure. Without using the simplified ZMP model, the COG height will be varied with time

.

34

**Chapter 3 ZMP Analysis and Varying ** **COG **

**3.1 Introduction **

This chapter introduces the influences of ZMP location, COG distribution, and the conservation of momentum on a biped robot’s locomotion. We shall discuss each in turn.

To achieve our target of a human-like walking posture, we need to change the ZMP location from the one used by conventional flat-footed robots. The ZMP method, introduced in Section 3.2, shows us that the ZMP trajectory must always locate inside the support polygon. Note also that arbitrary assignment of the speed of change of ZMP is impossible because of the difficulty of limiting ZMP in the narrow areas of the toes and heels. We must therefore choose a ZMP trajectory that will not lead to the robot’s falling. Figure 3-1 compares the effects of correct and incorrect ZMP positioning.

(a) (b)

Figure 3-1 (a) A robot with effective ZMP (b) A robot with ineffective ZMP.

35

Shimmyo and Ohnishi describe a nested preview control that uses a virtual plane for biped pattern generation, including COG up-down motion [63]. Other researchers, noting that the ZMP trajectory directly affects the walking motion of biped robots, have made different proposals [60, 61, 78, 81], most attempting to deliver smoother ZMP and COG trajectories.

The variation of COG is the second influence discussed in this chapter. Some researchers [58] have discovered that COG height varies with time during the human walking cycle, which is as shown in Figure 3-2. Earlier biped robot control has usually adopted a constant COG height to avoid the singular condition. This results in a squatting posture for part of the cycle—a posture not adopted by humans and one which consumes a great deal of power when used by robots. The second part of this chapter covers the generation of a suitable up-down motion of COG.

Figure 3-2 The shift of COG in human walking. The red line is actual, the yellow line is reference.

Kobayashi et al. proposed the automatic navigation of COG in the sagittal and