Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Design and Development of Flexi Ankle Minimalist Bipedal Robot with Split Mass Hip
Structure for an Optimal Walk Stability Control
Hudyjaya Siswoyo Jo
Faculty of Engineering, Computing and Science Swinburne University of Technology
Sarawak Campus
Submitted for the degree of Doctor of Philosophy
May 2013
i
Abstract This thesis presents the design and development of flexi-ankle split mass minimalist
bipedal robot. The developed robot introduces the implementation of novel strategy to
achieve stable bipedal walk by decoupling the walking motion control from the sideway
balancing control. This strategy allows the walking controller to execute the walking
task independently while the sideway balancing controller continuously maintains the
balance of the robot. A new approaches of achieving smooth walking motion by
planning the leg movement based on the consideration of the weight distribution and
thus minimum perturbation to the motion (called hip-mass carry strategy) and smooth
trajectory planning of the joint movement with impact-free motion are introduced. This
thesis also presents a minimalist yet low-cost solution for sensing the stability of bipedal
robot. From the design, the mathematical model of the robot is developed and the
viability of the design concept is verified by dynamic simulation. From the model and
simulation results, a minimalist bipedal robot prototype is developed and tested in order
to prove the practicality of the proposed strategies.
ii
Acknowledgement First of all, I would like to express my sincere gratitude to my thesis supervisor Prof.
Nazim Mir-Nasiri for his continuous support towards the research work in this thesis.
His invaluable advices and suggestions have greatly contributed to the success of this
thesis. I would also like to thank my co-supervisor Prof. Anatoli Vakhguelt for his
support and care throughout the years of my postgraduate study.
I also offer my sincere thanks to all my friends and fellow postgraduate students in
Swinburne Sarawak for their friendly helps and delightful discussions that we had
during the years of study. Their friendship and words have given me a strong moral
support in going through all the ups and downs.
I thank my family for their endless support, care and motivation throughout my entire
life, all this would not have been possible without them. Special thanks to my brother
Riady, for generously lending a helping hand during the fabrication and testing of the
prototype.
Last but not least, I would like to thank all the anonymous reviewers for giving their
constructive comments and advices during the reviewing process of the research
publications and fellow scholars whom I met during seminars and conferences for
sparking interesting discussions about the research topic.
iii
Declaration I declare that this thesis contains no material that has been accepted for the award of any
other degree or diploma and to the best of my knowledge contains no material
previously published or written by another person except where due reference is made
in the text of this thesis.
Hudyjaya Siswoyo Jo
iv
Publications Arising from this Thesis 1. H. Siswoyo Jo, N. Mir-Nasiri, E. Jayamani, "Design and Trajectory Planning of
Bipedal Walking Robot with Minimum Sufficient Actuation System", Proceedings
of the International Conference on Control, Automation, Robotics and Vision
Engineering, 2009, pp. 160-166.
2. N. Mir-Nasiri, H. Siswoyo Jo, "Joint Space Legs Trajectory Planning for Optimal
Hip-Mass Carry Walk of 4-DOF Parallelegram Bipedal Robot", Proceedings of the
IEEE International Conference on Mechatronics and Automation, 2010, pp. 616-
621.
3. H. Siswoyo Jo, N. Mir-Nasiri, “A Novel Sideway Stability Control Method for
Bipedal Walking Robot”, Proceedings of the 3rd Global Conference on Power
Control and Optimization, 2010, pp. 130-134.
4. N. Mir-Nasiri, H. Siswoyo Jo, “A Novel Hip-Mass Carrying Minimalist Bipedal
Robot With Four Degrees of Freedom”, Proceedings of the IASTED International
Conference on Robotics and Applications, 2011, pp. 52-59.
5. N. Mir-Nasiri, H. Siswoyo Jo, “Modelling and Control of a Novel Hip-Mass
Carrying Minimalist Bipedal Robot with Four Degrees Of Freedom”, International
Journal of Mechatronics and Automation, 2011, Vol. 1, No.2, pp. 132-142.
6. H. Siswoyo Jo, N. Mir-Nasiri, “Stability Control of Minimalist Bipedal Robot in
Single Support Phase”, Procedia Engineering, 2012, Vol. 41, pp. 113-191.
7. H. Siswoyo Jo, N. Mir-Nasiri, “Dynamic Modelling and Walk Simulation for a
New Four-Degree-Of-Freedom Parallelogram Bipedal Robot with Sideways
Stability Control”, Mathematical and Computer Modelling, 2013, Vol. 57, No.1-2,
pp. 254-269.
v
Contents Abstract ............................................................................................................................. i
Acknowledgement ........................................................................................................... ii
Declaration ...................................................................................................................... iii
Publications Arising from this Thesis .......................................................................... iv
Contents ........................................................................................................................... v
List of Figures ............................................................................................................... viii
List of Tables .................................................................................................................. xi
1. Introduction ............................................................................................................... 1
1.1. Background ........................................................................................................ 1
1.2. Aim and Contributions ....................................................................................... 2
1.3. Thesis Outline .................................................................................................... 2
2. Literature Review...................................................................................................... 4
2.1. Applications of Bipedal Walking Robot ............................................................ 5
2.2. Mechanical Structure ......................................................................................... 5
2.2.1. Minimalist Bipedal Robot ...................................................................... 6
2.2.2. Anthropomorphic Bipedal Robot ........................................................... 8
2.3. Control Strategies ............................................................................................. 10
2.3.1. Open-loop control ................................................................................ 11
2.3.2. Passive Dynamic .................................................................................. 11
2.3.3. Zero Moment Point .............................................................................. 12
2.3.4. Angular Momentum ............................................................................. 15
2.3.5. Foot Placement Estimator .................................................................... 16
2.3.6. Linear Inverted Pendulum Model ........................................................ 17
2.3.7. Hybrid Zero Dynamics ......................................................................... 18
2.3.8. Intelligent Control ................................................................................ 19
2.3.9. Other Approaches................................................................................. 20
2.4. Thesis Relations to Current Research in Bipedal Technology......................... 21
vi
3. Conceptual Design of New Flexi-Ankle and Split-Mass Minimalist Bipedal
Robot ........................................................................................................................ 23
3.1. Motion Transmission and Structural Solution ................................................. 23
3.1.1. Parallelogram Leg Mechanism ............................................................ 24
3.1.2. Flexi-Ankle Structure ........................................................................... 26
3.1.3. Split-Mass Hip Structure ...................................................................... 27
3.2. Hip-Mass Carrying Walking Gaits and Joint-Based Kinematics Trajectory
Planning ........................................................................................................... 30
3.2.1. Hip-Mass Carrying Walking Gaits ...................................................... 30
3.2.2. Joint-Based Kinematics Trajectory Planning ....................................... 31
3.3. Dynamic Modeling and Control of 4-Degrees of Freedom Bipedal Walk ...... 41
3.3.1. Modeling of Forward Stable Walk ....................................................... 42
3.3.2. Modeling of Independent Sideway Stability ........................................ 45
3.3.3. Control of 4-Degrees of Freedom Bipedal Walk ................................. 50
3.4. Summary .......................................................................................................... 53
4. Computer Simulation and Verification of Design Parameters ........................... 54
4.1. Walking Gait Simulation and Results .............................................................. 54
4.1.1. Kinematics Simulation of Walking Gait .............................................. 55
4.1.2. Actuator Response Simulation ............................................................. 59
4.2. Forward Walk Stability Simulation and Results .............................................. 66
4.3. Sideway Balancing Simulation and Results ..................................................... 69
4.4. Discussions ....................................................................................................... 74
5. Physical Robot Built-up and Real Time Tests ...................................................... 75
5.1. Prototype Development and Description ......................................................... 75
5.1.1. Mechanical System .............................................................................. 75
5.1.2. Electronics, Logic and Microcontroller-based Control System ........... 83
5.2. Experimental Results ....................................................................................... 90
5.2.1. Forward Walking Motion Performance ............................................... 90
5.2.2. Sideway Balancing System Performance ............................................ 95
5.3. Results Discussion ........................................................................................... 97
vii
6. Conclusions and Future Works ............................................................................. 99
References .................................................................................................................... 102
Appendix A. Mechanical Drawing ............................................................................ 112
Appendix B. Electronic Circuit Diagram.................................................................. 129
Appendix C. Program Source Code .......................................................................... 130
viii
List of Figures Figure 2.1: Planes of the human anatomy ......................................................................... 6
Figure 2.2: RABBIT prototype attached to its guidance device ....................................... 7
Figure 2.3: 2D bipedal robot developed by Hosoda et al. ................................................. 7
Figure 2.4: Symmetry bipedal robot prototype by Huang and Hase................................. 8
Figure 2.5: Parallel actuated mechanism with three DOF .............................................. 10
Figure 2.6: Parallel ankle joint structure driven by linear actuator ................................. 10
Figure 2.7: Illustration of foot on ground in equilibrium position .................................. 13
Figure 2.8: Illustration of three characteristic cases of ZMP .......................................... 14
Figure 2.9: Schematic of force sensitive resistors attached on the foot sole................... 15
Figure 2.10: Illustration of bipedal robot stepping with respect to the FPE ................... 17
Figure 2.11: LIPM with mass movement restricted along the horizontal plane ............. 18
Figure 3.1: CAD model of FASM bipedal robot ............................................................ 23
Figure 3.2: Side view and 3D view illustration of leg mechanism ................................. 24
Figure 3.3: Flexi ankle structure ..................................................................................... 27
Figure 3.4: Simplified 3-masses model of bipedal robot ................................................ 29
Figure 3.5: Control block diagram for minor balancing mass control ............................ 29
Figure 3.6: Hip-mass carrying walking gait .................................................................... 31
Figure 3.7: Legs posture in single support phase ............................................................ 32
Figure 3.8: Initial position of single support phase ......................................................... 32
Figure 3.9: Final position of single support phase .......................................................... 35
Figure 3.10: Intermediate position of single support phase ............................................ 36
Figure 3.11: Legs posture in of double support phase .................................................... 37
Figure 3.12: Linear segment with polynomial blend ...................................................... 39
Figure 3.13: Side view of bipedal robot in single support phase .................................... 42
Figure 3.14: Front view of bipedal robot in single support phase .................................. 46
Figure 3.15: Block diagram of the FASM bipedal robot controller ................................ 50
Figure 3.16: Logic flowchart of the walking controller program ................................... 51
Figure 3.17: Logic flowchart of the balancing controller program ................................. 52
Figure 4.1: Stick diagram for eight complete steps of walk ........................................... 55
Figure 4.2: Joint position profile for two complete steps of walk .................................. 56
Figure 4.3: Joint velocity profile for two complete steps of walk .................................. 57
Figure 4.4: Joint acceleration profile for two complete steps of walk ............................ 58
ix
Figure 4.5: Position servo motor setup ........................................................................... 59
Figure 4.6: Equivalent circuit of armature controlled DC motor .................................... 60
Figure 4.7: Block diagram of the SIMULINK program for the actuator model ............. 62
Figure 4.8: Measured actuator response for parameter estimation input ........................ 62
Figure 4.9: Trajectory of the PID gain estimation for 17 iterations ................................ 63
Figure 4.10: Response of the simulated actuator model compared to the actual motor
response ...................................................................................................... 64
Figure 4.11: Simulated actuator motion of left hip joint angle ....................................... 64
Figure 4.12: Simulated actuator motion of left knee joint angle..................................... 65
Figure 4.13: Simulated actuator motion of right hip joint angle ..................................... 65
Figure 4.14: Simulated actuator motion of right knee joint angle .................................. 66
Figure 4.15: (a) Resultant reaction force acting within the foot sole (robot stable)
(b) Resultant reaction force acting at the edge of the foot (robot tipping
over) ........................................................................................................... 67
Figure 4.16: Variation of the acting point of resultant reaction force R on the foot sole
during the single support phase .................................................................. 67
Figure 4.17: Size and placement of the foot sole with respect to the ankle .................... 68
Figure 4.18: Forward stability margin during single support phase ............................... 68
Figure 4.19: Control block diagram of sideway stability controller ............................... 70
Figure 4.20: System response of sideway balancing system without external disturbance
.................................................................................................................... 71
Figure 4.21: System response of sideway balancing system without external disturbance
.................................................................................................................... 72
Figure 4.22: System response of sideway balancing system with excessive external
disturbance ................................................................................................. 73
Figure 5.1: CAD model of a fully assembled FASM bipedal robot ............................... 76
Figure 5.2: Prototype of FASM bipedal robot ................................................................ 77
Figure 5.3: CAD model of ankle assembly ..................................................................... 77
Figure 5.4: Tension springs are attached using chain on both side of the ankle ............. 78
Figure 5.5: When the foot is tilted, one side of the spring will be stretched and the one
on the opposite will exert no force ................................................................ 78
Figure 5.6: CAD model of the leg assembly ................................................................... 79
Figure 5.7: Exploded view of the leg link ....................................................................... 79
Figure 5.8: Parallelogram linkage for knee joint actuation ............................................. 80
x
Figure 5.9: Foot orientation at different leg configurations ............................................ 81
Figure 5.10: Hip assembly of the prototype .................................................................... 81
Figure 5.11: CAD model of major balancing mass mechanism ..................................... 82
Figure 5.12: Minor balancing mass mechanism ............................................................. 83
Figure 5.13: System block diagram of the walking controller ........................................ 84
Figure 5.14: Program flowchart of the walking controller ............................................. 86
Figure 5.15: System block diagram of the sideway balancing controller ....................... 88
Figure 5.16: Program flowchart of the sideway balancing controller ............................. 89
Figure 5.17: Control block diagram of the sideway walking controller ......................... 89
Figure 5.18: Snapshot of the robot during forward walking sequence ........................... 91
Figure 5.19: Snapshot of the robot during forward walking sequence (continued) ........ 92
Figure 5.20: Actual joint angle trajectory during the walking cycle .............................. 93
Figure 5.21: Position of force sensors on the foot sole for reaction force measurement 94
Figure 5.22: Distribution of reaction force position during single support phase .......... 94
Figure 5.23: Actual vs simulated stability margin during single support phase ............. 95
Figure 5.24: Force sensor attached at the edge of the hip to measure the magnitude of
the external disturbance.............................................................................. 96
Figure 5.25: The response of the robot in sideway direction when external disturbance is
applied ........................................................................................................ 96
Figure 5.26: The response of the robot in sideway direction when excessive external
disturbance is applied ................................................................................. 97
Figure 6.1: Leg motion sequence for walking in sideways direction ........................... 101
xi
List of Tables Table 3.1: List of variables used in leg posture calculation ............................................ 31
Table 3.2: List of formula for calculating point mass distance on horizontal axis ......... 47
Table 3.3: List of formula for calculating point mass distance to point O...................... 49
1
Chapter 1 Introduction
This chapter presents an introduction of the research work covered in this thesis. First
the background of the study is discussed followed by the aim and contributions of the
research. Finally the outline of the thesis structure is presented.
1.1. Background
In recent years, the applications of machines and robots to assist human in performing
their tasks has become increasingly extensive. In industrial applications, the use of
robotics system has reached the level which surpasses human ability in terms of speed
and accuracy. On the other hand, in the field of domestic robots or service robots, the
developments are still far from perfection. The main factor that distinguishes industrial
robots from service robots is their working environment.
For a service robot to perfectly perform its tasks, it needs to be able to adapt and cope
with the normal human living environment. From the practical point of view, bipedal
robot is the most suitable robot structure due to its similarity of physical configuration
with human especially in terms of locomotion method. However, the realization of
bipedal robot is more challenging compared to other types of mobile robot due to the
unstable nature of bipedal walking. Therefore, many studies have been carried out
especially concerning the stability sensing and control strategies of bipedal robot.
The complexity of the bipedal walking task becomes the major challenge in realizing a
bipedal robot. The walking process itself will inherently create a disturbance to
destabilize the robot. Therefore, the walking algorithm has to be designed to be able to
correct and alter the posture in order to keep the robot stable. This will increase the
complexity of the walking algorithm and requires the decision making process which
involves multivariable parameters.
2
Unlike many other systems or robots which have specific criteria of performance
measure such as accuracy, speed, repeatability, etc. the performance of bipedal robot
mostly judged by the ability of maintaining the stability during the walk.
1.2. Aim and Contributions
The research work of this thesis aims to prove the feasibility of decoupling the walking
task of a bipedal robot from the stability control task. By dividing task and conquering
the problem individually, it is expected that the complexity of the system can be greatly
reduced.
The research is divided into two major components of bipedal walking i.e. to achieve
the walking motion and to maintain the stability of the robot during the walk. The
minimalist structure and algorithm is designed to achieve a forward walking motion
regardless of the disturbance experienced by the robot. The balancing system is mainly
responsible for maintaining the balance of the robot and handles any possible
disturbance experienced by the robot.
The main contribution of this thesis is to design and develop a bipedal robot model that
demonstrate the concept of decoupling the walking and balancing task and to prove the
feasibility of the proposed concept based on theoretical and experimental results.
1.3. Thesis Outline
The content of this thesis starts from the introduction of the thesis and followed by the
following chapters:
Chapter 2 discusses on the current development and advancement of bipedal robots
research based on the review of literature. The discussion covers the review of the topic
on bipedal robots based on their applications, mechanical structures and control
strategies.
Chapter 3 introduces the proposed design concept in details followed by the discussion
on the mathematical model which form the groundwork for the model used in the
computer simulation presented in the following chapter.
3
Chapter 4 presents the computer simulation of the proposed design and algorithm in
order to theoretically prove the feasibility of the proposed concept. This chapter also
discusses on the results obtained from the computer simulation.
Chapter 5 presents the details of the prototype development and experimental results
recorded from the testing of the prototype followed by the discussion on the results
obtained and comparison to the simulation results.
Chapter 6 concludes the content of this thesis by reviewing the contribution of the work
presented and recommendation of future works and possible expansion of the proposed
design concept is presented.
4
Chapter 2 Literature Review
The research in bipedal walking robot is one of the most challenging topics in the area
of robotics research and is greatly pursued by researchers from research institutions as
well as big corporations. This is due to the potential of bipedal walking robot in
performing human-like mobility that enables the robot to directly adapt in human
working environment. However, the realization of a bipedal walking robot is a
challenging task because of its structure complexity, non-linear behavior and
uncontrolled degree of freedom (DOF) between the foot and ground.
The review on the literature shows that over the past three decades, there was a
significant amount of development in bipedal walking robot. Many bipedal walking
robots have been designed and built mainly for the purpose of experimental test bed to
validate the laws and strategies proposed by researchers. The research in this topic fully
covers all aspects in the field of mechatronics which include mechanism design,
dynamic analysis, sensory system, control system and artificial intelligent.
In the early years, the development of bipedal walking robot was first carried out by the
robotics research team of Waseda University in Japan which produced a series of WL
(Waseda Legged) robot family starting from year 1966 [1–5]. The significant result of
the research was shown by the development of the first dynamically balanced robot
WL-10R in 1984 [2]. Since then, the study of bipedal walking robot had attracted the
attention of many robotics researchers all over the world which result in the remarkable
research development in the field [6–15].
Besides contributing to the development of robotics, the research in bipedal walking
robot especially in walking gait also bring advantages to the field of biomedical. There
are some developments of robotics systems as an assistive device to help disabled
individuals in gaining back their ability to walk [5], [16–19].
5
2.1. Applications of Bipedal Walking Robot
The potential of bipedal or humanoid robot in practical application has drawn the
interest of many institutions from different backgrounds to conduct research related to
bipedal or humanoid robot. In general, the application of bipedal walking robot can be
categorized into service robot, entertainment robot and defense robot.
The usage of humanoid robot in the field of service robotics is mainly to assist human
being in performing their daily task. An example of bipedal walking robot working as a
service robot is the bipedal walking chair WL-16 from the Waseda Legged family [5].
WL-16 aimed to help the disabled by replacing the usage of wheelchair with a walking
machine that gives an added advantage by performing human-like movement (e.g.
climbing up and down the staircase).
The existence of bipedal walking robot for entertainment purpose can be seen from the
prototype developed by Sony Corporation [8], [20]. The prototype named “QRIO” is a
small scale bipedal humanoid which is able to walk, sing and dance. The French made
“NAO” is another renowned entertainment bipedal robot produced by Aldebaran-
Robotics [15]. “NAO” is chosen as standard robot platform in the RoboCup (robotic
soccer game) competition.
The most recent development of bipedal walking robot in the field of military is the
utilization of bipedal walking robot in testing the chemical protection clothing used by
the US Army. The bipedal walking robot, PETMAN, is able to perform human-like
walking, crawling and doing a variety of suit-stressing calisthenics during exposure to
chemical warfare agents. PETMAN also simulates human physiology within the
protective suit by controlling temperature, humidity and sweating when necessary [21].
2.2. Mechanical Structure
The structure of bipedal walking robot can be categorized based on its mechanical
complexity and also the ability to travel on three dimensional spaces. Figure 2.1 shows
the way human body is sectioned based on three dimensional planes.
6
Human body is divided into three different planes namely sagittal plane, coronal plane
and transverse plane. Sagittal plane is the longitudinal plane that divides the body into
right and left sections. Coronal plane is the plane parallel to the long axis of the body
and perpendicular to sagittal plane that separates body into front and back sections.
Transverse plane is perpendicular to both the sagittal and frontal plane that divides
human body into upper and lower sections.
Figure 2.1: Planes of the human anatomy [22]
Bipedal walking robot which can only travel in sagittal plane is often referred as two
dimensional or minimalist bipedal robots, whereas bipedal robot which is able to travel
in both coronal and sagittal plane is categorized as three dimensional or
anthropomorphic bipedal robots.
2.2.1. Minimalist Bipedal Robot
In order to be able to walk on the ground without any external support, minimalist
bipedal robots must have at least three actuated DOF on each leg, which located at hip,
knee and ankle joint. Hip and knee actuators are responsible to perform the stepping
motion as well as varying the overall leg length to prevent collision with the ground
surface when the leg is swinging forward or backward. Ankle actuator is responsible in
keeping the upright posture of the robot by exerting the torque at the ankle joint.
7
Due to the lack of flexibility in sideways direction, most of the minimalist bipedal
robots are equipped with extra structure to support the balance in order to keep the robot
from toppling sideways.
Figure 2.2 shows RABBIT, the minimalist bipedal robot developed by a group of
French research laboratories for the experimentation of walking and running gaits. It
make use of a guiding device consists of a radial bar connected to a rotation boom in
order to keep the body upright during walking [23], [24]. The bipedal robot developed
by Hosoda et al. [25] utilizes two pair of legs (one pair at the outer and one pair at the
inner) in order to keep the robot balance when moving forward (Figure 2.3). Huang and
Hase [26] developed a minimalist bipedal robot that is symmetry in sagittal plane by
using two outer legs and one inner leg to prevent the sideways instability during single
support phase (Figure 2.4).
Figure 2.2: RABBIT prototype attached to its guidance device [23]
Figure 2.3: 2D bipedal robot developed by Hosoda et al. [25]
8
Figure 2.4: Symmetry bipedal robot prototype by Huang and Hase [26]
2.2.2. Anthropomorphic Bipedal Robot
Anthropomorphic bipedal is designed with the aim to mimic human walking ability,
thus it must has the flexibility possessed by the human leg. Typical anthropomorphic
bipedal has at least six DOF on each leg. Three DOF are located at the hip joint to
achieve the roll, pitch and yaw motion, one DOF for the pitch motion of the knee joint
and two DOF for the pitch and yaw motion of the ankle joint [27]. Several
anthropomorphic bipeds also include extra DOF at the foot to replicate human toes [28–
30].
Anthropomorphic bipedal named “JOHNNIE” developed by Technical University of
Munich consist 17 joints. Each leg consists of six driven joints, three on the hip (roll,
picth and yaw), one on the knee (pitch) and two (roll and pitch) on the ankle. The upper
and lower body is connected via a rotational joint located on the vertical axis of the
pelvis. Each shoulder is equipped with a pitch and roll joint for the arm movement. The
positioning of the arm also used to compensate the angular momentum about the
vertical axis. The six DOF of each leg allow for an arbitrary control of the upper body’s
posture within the work range of the leg. Hence, such major characteristics of human
gait can be realized. The robot’s geometry corresponds to that of a male human of a
body height of 1.8 m. The total weight is about 40 kg [31].
The well-known ASIMO developed by Honda Motor Co. is a humanoid robot built to
the size of a child measuring 120 cm in height and 52 kg in weight. The power supply
9
and control peripheral are housed inside the body of ASIMO which make it a fully
autonomous and independent humanoid. The walking mechanism of ASIMO is similar
to the typical anthropomorphic biped which consists of three DOF on hip joint, one
DOF on knee joint and two DOF on ankle joint. For the upper body there are total of six
DOF on each side of the arm which composed of three DOF shoulder joint, one DOF
elbow joint, one DOF wrist joint and one DOF finger joint for grasping [7].
Sellaouti et al. [32] presented a new design for controlling three DOF hip joint by using
parallel actuated mechanism. Compare to the serial counterpart, parallel configuration
present an advantage because all actuators are fixed on the base therefore it will be less
moving mass during the movement of the leg which will minimize the dynamic forces.
Figure 2.5 shows the schematic of the mechanism arrangement for the three DOF
parallel actuated mechanism. The mechanism is actuated by two linear actuators (LA1
and LA2) and one rotational actuator (RA), they are all attached on a fix platform. The
two linear actuators (LA1 and LA2) are used to orient a satellite platform via two
intermediate axes (1) and (2) which will in turn rotate q1 and q2 about X and Y axis
respectively. The motion of LA1 and LA2 will cover the conic area centered on its
nominal position. Finally, motion of RA will caused the rotation on q3 which will cover
the total workspace area by rotating the cone about Z axis. The kinematics analysis of
this type mechanism is more complex compared to the serial one but it is claimed to be
more compact and robust.
Wang et al. [33] developed a parallel ankle structure which comprise of a pair of linear
actuator and a hook joint which is designed based on the study of human ankle motion
mechanism. Figure 2.6 shows the ankle joint with two DOF parallel mechanism, the
linear motion of the actuators (not shown) will move the leaders which connected to the
linkages through the sphere joints. The combination of the linear position of both
leaders will create the rotation on the hook joint in both X and Z axis. The experimental
results show that the usage of this mechanism is effective in reducing the peak power
consumed by the actuators which is about half of that consumed by conventional serial
ankle joint.
10
Figure 2.5: Parallel actuated mechanism with three DOF [32]
Figure 2.6: Parallel ankle joint structure driven by linear actuator [33]
2.3. Control Strategies
Control strategy plays an important role in bipedal robot for achieving smooth and
stable walk. One main factor that distinguishes walking robot and conventional robotic
manipulator is the uncontrolled DOF that exists between the robot’s foot and ground
surface. Unlike the normal fixed-base robotic manipulator, every posture and movement
of bipedal robot has to be carefully planned and controlled in order to maintain the foot
and ground contact for the robot to be stable. This is one of the main factors that make
the control of bipedal robot more complicated than normal robotic manipulator. Many
different approaches has been proposed to deal with the bipedal walking and
stabilization task [34–42]. Generally, the existing control strategies can be roughly
grouped by their feedback mechanism.
11
2.3.1. Open-loop control
This type of control is the simplest approach applicable in bipedal robot control. The
stability in this type of robot control is accomplished by careful parameter selection and
building a detailed dynamic model of the moving linkages. In most cases, a large
stability margin can be achieved by choosing relatively large and heavy feet to
compensate for the uncertainty during walking.
Despite the simplicity that it offers, this control approach has several drawbacks. First,
detailed dynamic models are generally complicated to design, build and tune.
Specifying optimal leg vectors for all possible combinations of commanded input
parameters, current postures and desired motions is certainly non-trivial. Second, if
something in the physical system changes, the model may no longer generate suitable
movement. Linkages and motors deteriorate, circuits behave differently with variations
in temperature or battery voltage, and environmental conditions of a robot could be
subject to uncontrollable change. Third, a solution developed for a given machine could
be difficult to adapt to a robot of a new and different design [43].
2.3.2. Passive Dynamic
Passive dynamic bipedal is a form of bipedal walking robot that inspired by the natural
dynamic model of human walking which is one of the widely explored areas in recent
years [44–49]. The initial work of McGeer [44], the pioneer of passive bipedal robot
successfully proven that a properly tuned mechanical model was able to walk stably
without any feedback mechanism. With the help of gravitational force, the passive
bipedal is able to walk down a slope without any actuators, sensors and control system.
It is also shown that with an accurately tuned parameters, the walking robot consume
less energy as compare to human.
Following the development of passive bipedal, there are several works that suggest the
fusion between passive and powered bipedal robot known as quasi-passive bipedal
which mainly motivated by the walking efficiency demonstrated by passive bipedal
[50–55].
12
Wisse and Frankenhuyzen [56] introduces MIKE, a 2D autonomous biped that walks
based on passive dynamic walking principle. To be able to walk on level ground it is
compulsory to have an external energy sources to compensate for the energy losses
caused by the friction and foot impact. The prototype of MIKE was developed based on
the specification of McGeer’s passive dynamic walker.
To provide the energy for propulsion and control, the hip and knee joints are actuated by
McKibben muscles to eliminate the need for a slope and provide an enhanced stability.
One on the factors that must be considered in this case is the addition of actuators
should not interfere with the passive swinging motion of the legs. Unlike normal
electrical motors or fluidic actuators, a non-pressurized McKibben muscle only requires
a very small back-driving force. The McKibben muscle only operated in to two discrete
states (i.e. active and non-active) and the control of the walking step is empirically
adjusted through the muscle activation based on the duration of the valve opening. With
the supply of 86 grams of pressurized CO2 stored in its onboard canister, MIKE was
able to walk for 3.5 minutes on a level ground.
Takuma et al. [50] extend the work of Wisse by adding a feedback mechanism in the
actuator control loop. Instead of controlling the valve opening by a fixed duration, it is
controlled based on the pressure reading in the actuator and the angular position of the
respective joint. Experimental result shows that the robot was able to maintain the
walking cycle in different terrain condition with feedback mechanism which cannot be
achieved by purely time-based valve control.
2.3.3. Zero Moment Point
The concept of Zero Moment Point (ZMP) was first introduced by Vukobratović and
Juricic [57] in 1968, however during that time, the term ZMP was not explicitly
mentioned. In the subsequent publication by Vukobratović [58] in 1972, the term ZMP
was officially introduced. Since then, the theory has been widely studied and applied by
many researchers that lead to the development of several successful walking robots [59–
63]. The first practical application of ZMP was shown by WL-10RD bipedal developed
by Waseda University which is 16 years after the ZMP concept was introduced. The
stability control of bipedal by Honda and Sony [62], [63] are also achieved by utilizing
13
the ZMP feedback concept. ZMP is defined as the point on the ground at which the net
moment of the inertial forces and the gravity forces has no component along the
horizontal axes. In application, the position of ZMP reflects the level of balance of the
robot in motion. From the point of view of control, this measure is used as feedback
mechanism to ensure that the robot will stay in stable region throughout the entire
walking gait.
Generally, for a robot to be stable, the vertical projection of the CoM must fall inside
the area of the support polygon. However when there is fast motion, the dynamic forces
has to be taken into account when measuring the balance of the robot. With the
consideration of dynamic forces, the dynamic stability is better measured by the
position of the ZMP. In more recent publications, Vukobratović and Borovac [64]
further explained the difference between CoP and ZMP.
As illustrated in Figure 2.7, assuming there is no foot rotation and slip between the foot
and ground surface and the force and moment acting on the ankle is known.
Mathematically, the position of the ZMP (point P) can be computed as follows:
Ay x s x Az z Axx
Az s
M G m g A F A FP
F m g− + − +
=−
(2.1)
Ax y s y Az z Ayy
Az s
M G m g A F A FP
F m g− + −
=−
(2.2)
Figure 2.7: Illustration of foot on ground in equilibrium position [64]
Figure 2.8 illustrates the three characteristic cases that clearly distinguish the differences
of ZMP and CoP and their relationship. The pressure between the foot and ground can
14
be represented by the resultant force acting on the CoP. When the reaction force
balances all the external forces acting on the mechanism during the motion the
mechanism is said to be stable. Therefore, in a stable mechanism the position of ZMP
and CoP coincide (Figure 2.8(a)). In the case when the mechanism is tipping over about
the foot edge, ZMP does not exist but the CoP exist at the foot edge. To further extend
the analysis for the unstable case, a new notion termed fictitious zero moment point
(FZMP) was introduced. The distance of the FZMP from the foot edge represents the
intensity of the perturbation moment that caused the mechanism to be unstable (Figure
2.8(b)). It is possible for the mechanism to stand on the foot edge without tipping over.
In this condition, the ZMP is located at the tip of the foot and coincide with the CoP,
this posture is known as “balletic motion” (Figure 2.8(c)).
Figure 2.8: Illustration of three characteristic cases of ZMP [64]
The feedback control of this approach can be achieved with many different methods.
The simplest method is to generate the joint trajectories based on the pre-planned
walking gait while maintaining the ZMP at the given references [65], [66]. There are
several works that attempt to achieve natural human-like walking by measuring the
ZMP trajectory of human subject during walking [67–71]. The measured trajectory is
then fed into the controller as the reference for the desired ZMP trajectory. Another
possible method is to utilize real-time ZMP measurement using sensory system and
feeding the information to an online trajectory generator to compensate for the
disturbance [41], [72], [73].
Many researches specifically focus on the techniques to monitor the ZMP condition
from the physical system as the feedback component [74–80]. Takanishi and Kato [76]
proposed a method to monitor the ZMP position by measuring the force and moment
acting on the robot’s shank. The force and moment data are provided by the universal
15
force-moment sensor mounted on the shank of the robot. Force and moment above the
sensor can be directly measured but the rest of the components below the sensor (foot
and ankle weight) have to be modeled mathematically in order to obtain the measured
ZMP position.
Erbatur et al. [78] equipped the robot’s foot with series of sensors to measure the
reaction force of the foot. Four force sensitive resistors are attached at every corner of
the rectangular shape foot. Based on the measured forces and the location of the sensors
(Figure 2.9), the ZMP position can be calculated as follows:
x xZMP
x
f rx
f= ∑∑
(2.3)
y yZMP
y
f ry
f= ∑∑
(2.4)
Figure 2.9: Schematic of force sensitive resistors attached on the foot sole
2.3.4. Angular Momentum
Another approach of stability measurement for bipedal robot is by using the angular
momentum information of the system. This approach has been increasingly explored in
the past few years [81–85]. The usage of angular momentum was first introduced and
demonstrated in a physical bipedal robot prototype by Sano and Furusho [81]. The
motion control in sagittal plane is achieved by controlling the ankle torque of the
supporting leg in order to follow the provided reference function of angular momentum.
16
The reference function is designed based on the changes in angular momentum
undergone by an inverted pendulum in the earth's field of gravity. For lateral plane, the
motion is formulated as a simple regulator with two equilibrium states which is a
repetition of tilting the body to place the centre of gravity to the left or right supporting
leg alternately.
Goswami and Kallem [86] introduce the term zero rate of change of angular momentum
(ZRAM) based on the consideration of fundamental principle of mechanics which states
that the resultant external moment on a system, computed at its CoM is equal to the rate
of change of its centroidal angular momentum. For a bipedal robot to be stable, the
resultant of external forces and moments about the CoM has to be zero. Hence, this
leads to a condition that as long as the ZRAM state is met, the robot will stay in a stable
gait.
Recent publication by Lee and Goswami [87] proposed a method of balance
maintenance by controlling both linear and angular momenta. First, the desired value for
rate of change of linear and angular momenta to maintain the balance is defined. Second,
the allowable value of the momenta are calculated based on the constraint of ground
friction and foot contact maintenance. Finally, the joint torques is computed to achieve
the desired momenta rate changes. This momentum-based balance control has an
advantage over the ground-contact-based balance control e.g. ZMP, FRI, etc. The
momentum-based control purely looks at the rotational instability and does not affected
by the ground contact condition, therefore it can be applied on the case of walking on
non-level and non-stationary ground.
2.3.5. Foot Placement Estimator
Experimental study by biomechanists has shown that foot placement is a contributing
factor for human in achieving smooth and stable walk [88–90]. When subject to external
disturbance, human will response by executing certain stepping strategies in order to
prevent falling [91]. Drawing inspiration from this phenomenon, Wight et al. [92]
introduces a measure called foot placement estimator (FPE) to restore balance of an
unbalance system. The FPE is the contact location where the biped’s post-contact
system energy is equal to its peak potential energy.
17
Figure 2.10 shows the illustration of simplified bipedal robot model taking steps to
better explain the FPE measure. When the robot takes a very short step, the kinetic
energy after the landing impact goes beyond the peak potential energy. This cause the
robot to rotates about the tip of the impact foot and fall forward (Figure 2.10(a)). When
the robot takes a long step, the kinetic energy after the landing impact is less than the
peak potential energy, therefore the robot will fall back onto the swing leg and stay
stable (Figure 2.10(b)). If the robot steps at the location where the kinetic energy after
the landing impact is exactly equal to the peak potential energy, the particular stepping
location is define as FPE location. In this condition the robot will come to a rest at a
balance position (Figure 2.10(c)).
Figure 2.10: Illustration of bipedal robot stepping with respect to the FPE [92]
Yun and Goswami [93] extended the study by introducing generalized foot placement
estimator (GFPE) which can be utilized for both level and non-level ground. The GFPE
reference point is generated by modeling the robot as a rimless wheel with two spokes.
The GFPE is chosen so that the center of mass will stop vertically upright over the
stepping location after the robot takes a step. This stepping controller is responsible to
maintain the balance when the robot is subject to an external disturbance or push.
2.3.6. Linear Inverted Pendulum Model
The concept of linear inverted pendulum model (LIPM) was first introduced and
implemented by Kajita and Tani [94]. LIPM works by simplifying the complex shape of
18
the robot model into a single concentrated mass at the CoM. The concentrated mass is
linked to a contact point on the ground via a massless rod, which is represented by the
supporting leg. The linear model of the pendulum is achieved by applying constraint
control so that the body of the robot is restricted to move in a straight line. During single
support phase the COM of the robot is restricted to move along constraint line and the
posture is kept upright. The constraint is implemented by controlling the knee and the
hip joint of the support leg.
Erbatur [65] extend the study by implementing the LIPM method to the 3D bipedal
robot model for the generation of ZMP reference. The robot model has six DOF on each
leg which enables it to manipulate the COM along the restricted plane (Figure 2.11).
This method gives an advantage to the dynamic analysis of the bipedal robot due to its
simplicity and linearity. However, because this modeling technique works based on the
assumption that the legs of the robot is massless and the robot’s body is approximated
as a point mass, the stability of walk tends to degrade when it is applied to the physical
robot especially ones with heavy legs.
Figure 2.11: LIPM with mass movement restricted along the horizontal plane [65]
2.3.7. Hybrid Zero Dynamics
Bipedal walking model can be viewed as the repetition of two different phases which
are the swinging phase (leg swinging from back to front) and the impact phase. This
approach was first introduced by Grizzle et al. [95] and further developed by Westervelt
[96] by incorporating the impact model at the end of each swinging phase which makes
19
the system hybrid. The main concept behind the hybrid zero dynamics approach is to
formulate the biped model as a nonlinear system with impulse effects.
The swinging phase is modeled using ordinary differential equation and the impact
when the swinging leg touches the ground is modeled by a discrete map. The zero
dynamics for the swinging phase is implemented by encoding the desired posture of the
robot into the set of outputs in such a way that nulling the output is equivalent to
achieving the desired posture. The impact between the swinging leg and the ground is
modeled as a contact between two rigid bodies. The stability of the system is analyzed
using Poincaré sections method.
One important remark regarding the implementation of this approach is that it is only
applicable for the case of robot with point foot (no foot sole) which will be difficult if
this strategy is to be applied to the case of 3D walking. Sabourin [97] also pointed out
that the foot/ground contact is modeled as rigid bodies which might not be applicable
for the non-rigid foot/ground impact. Besides, the trajectory generation requires a heavy
computing power and time consuming which is not favorable in the case of real time
control.
2.3.8. Intelligent Control
There are numbers of works that focus on the implementation of artificial intelligent
computing approach in bipedal robot control [97–104]. This approach is credited due to
the advantages that it can be applied with minimal knowledge of the kinematic or
dynamic model of the robot. This section will discuss about the existing application of
intelligent control techniques (neural networks, fuzzy logic and genetic algorithm) in the
area of bipedal walking robot.
The application of real-time neural network control was demonstrated by Miller [99] on
a ten axis bipedal robot with foot force sensing. The walking gait control system
consists of a fixed gait generator and three cerebellar model arithmetic computer
(CMAC) neural networks. The fixed gait generator module receive the input command
from the external supervisory control and generate hip and knee position reference
command for each control cycle.
20
The Right/Left Balance CMAC neural network is used to predict the correct knee
extension required to achieve sufficient lateral momentum in order to lift the
corresponding foot for the desired length of time. The Front/Back Balance CMAC
neural network is used to provide for front/back balance during standing, swaying and
walking. The Closed-Chain Kinematics CMAC neural network is used to learn
kinematically consistent robot postures. The CMAC networks are trained based on the
information gathered from the foot sensors.
Choi et al. [103] proposed the application of fuzzy logic algorithm to control the robot
posture in order to maintain the balance during walking. The robot is equipped with
ZMP measurement sensor on each foot to provide a real time ZMP measurement to the
controller. The ZMP must exist within the 'desired area' for the robot to be stable. If the
ZMP does not exist in the 'desired area’, robot has to move the ZMP to the 'desired area'.
The task of the fuzzy algorithm is to compensate the coordinate of the trunk to move the
measured ZMP into the ‘desired area’.
Udai [105] proposed a method of hip trajectory generation using genetic algorithm. The
goal of the trajectory generation is to minimize the deviation of ZMP from the support
polygon during the robot movement in single support phase. A real coded genetic
algorithm (RCGA) is used to determine the hip trajectory for each via point of the
swinging leg. The simulation result shows that after 472 generations, the generated hip
trajectory is able to keep the ZMP deviation to be around the geometrical centre of the
foot.
2.3.9. Other Approaches
There are several other approaches introduced to tackle the problem of bipedal stability
control, but they cannot be grouped into categories discussed in the previous sections.
Some research utilizes the central pattern generator (CPG) method [106] which is
inspired by the finding of biological studies [107]. The existence of CPG was proposed
by Grillner [107] who found that the spinal cord of a cat generates the required signal
for the muscles to perform coordinated walking motion.
21
Hashimoto et al. [108] proposed a method to prevent the robot from falling when
making a sudden stop. Instead of using a control algorithm to maintain the balance, the
falling avoidance mechanism is achieved by only using hardware. The support polygon
expansion foot mechanism will be activated when an emergency stop signal is received.
The mechanism consists of four expansion arms attached at the corners of the foot sole
which is initially folded and hold by a set of latches. When the trigger signal is received,
the latches will release the expansion arms and therefore increase the support area of the
foot.
Figliolini [109] solved the problem by eliminating the uncontrolled DOF between the
foot and ground surface. The robot foot is attached with suction cups which are
activated when the foot is in contact with the ground. By having a rigid connection
between the foot and ground, the problem with dynamic disturbance and instability can
be totally excluded.
2.4. Thesis Relations to Current Research in Bipedal Technology
The extensive review on the literature suggests that the implementation of feedback
system in bipedal robot control gives more advantages compare to the open-loop
counterpart. The control strategy combined with proper sensing of physical parameters
is able to achieve stable bipedal walking. However, most of the existing strategies work
by modifying the prescribed walking gait and body posture in order to achieve stable
walking. This type of stability control will add more complexity to the system where the
joint movement has to work simultaneously to achieve the desired walking pattern and
also to execute the corrective action to compensate for the instability.
Drawing inspiration from the LIPM method, this thesis introduces a novel minimalist
bipedal robot construction and control strategy with the main objective of decoupling
the walking and balancing system. In coronal plane, the robot is modeled as a complex
shape inverted pendulum with a pivot point located at the ankle. At the tip of the
pendulum, there are set of moveable masses which will react to any imbalance torque
detected by the angular sensor at the ankle. In sagittal plane, the joint angle is controlled
22
based on the polynomial blended trajectory in order to minimize the dynamic effect of
the leg movement. By separating the walking and balancing task into two individual
subsystems, the task of walking control can be simplified. Due to its simplicity, the
decoupling technique will give an advantage to the practical implementations of bipedal
walking control.
23
Chapter 3 Conceptual Design of New Flexi-Ankle and Split-Mass Minimalist Bipedal Robot This chapter discusses on the conceptual design of the Flexi Ankle Split Mass (FASM)
bipedal robot and specifically highlights on the novel strategies developed by this study.
The proposed approaches focus on achieving stable bipedal walking with a simple
mechanism and control strategies. This distinguishes the proposed approaches from
most of the existing bipedal robots which employ complex mechanism and require
heavy computing power in order to achieve a stable walk.
3.1. Motion Transmission and Structural Solution
Figure 3.1 shows the FASM bipedal robot model developed for the experimental
platform in this study. The overall dimension of the robot measures 650mm x 900mm x
150mm (width x height x depth) with length for both thigh and shank of 300mm. The
locomotion system of the robot consists of a pair of 2-DOF legs which allow the robot
to achieve the motion in two-dimensional plane. The balancing system comprise of a
combination of the flexible ankle to facilitate the stability sensing and a pair of
balancing masses to perform the corrective action. Both locomotion and balancing
system are designed to work independently on a separate controller to reduce the
computing complexity and enhance the system response.
Figure 3.1: CAD model of FASM bipedal robot
24
3.1.1. Parallelogram Leg Mechanism
The schematic diagram of the single leg is shown in Figure 3.2. The leg mechanism is
constructed by a series of linkage to control the leg motion and also to serve as the leg
structure. Angle θ1 and θA are applied by the actuators to control the angular position of
the hip and knee joints respectively. The linkage can be divided into three sets of
parallelogram mechanism and their kinematics can be analyzed individually. The first
two set of parallelogram mechanism are OCFG and CDEF which are used to control the
position of the foot link. The third set of parallelogram mechanism is OABC which is
used to control the position of the shank link.
Figure 3.2: Side view and 3D view illustration of leg mechanism
Unlike conventional bipedal robot configuration, the ankle joint of FASM bipedal robot
is not actuated by any actuators but instead it utilizes a series of parallelogram
mechanism to passively control the ankle joint in order to maintain the orientation of the
foot. The usage of parallelogram mechanism provides an essential benefit due to
reduction of actuators that is required to drive the leg which in turn, results in the
simplification of the overall mechanical design and reduction of the robot’s weight.
25
For the leg structure shown in Figure 3.2, links OG, CF and DE have equal lengths.
Links OC and CD are the thigh and shank segments of the leg respectively and they
have lengths equal to links FG and EF. Considering the linkage OCFG, links OG and
CF will always be aligned in parallel at any angle of θ1, due to the characteristics of
parallelogram mechanism. Similarly, parallelogram linkage CDEF will force link DE to
be always in parallel with link CF regardless of the applied angle θ2. At any applied
angle of θ1 and θ2, links OG, CF and ED always remain parallel, therefore the
orientation of the foot will always remain parallel to the horizontal ground surface.
The knee joint of FASM bipedal robot is controlled by an actuator with the power
transmitted through an additional linkage mechanism. This configuration allowed the
actuator to be placed at the stationary platform on the hip plane which gives several
advantages to the design. Firstly, by placing the actuator away from the leg, the total
weight of the leg can be greatly reduced which in turn minimizes the dynamic forces
created when the leg is moving. Secondly, the angular position of the knee angle is
always referenced to the fixed vertical axis of the stationary world coordinate frame
regardless of the position of the hip angle. In this case, during the lifting of the leg only
the hip joint needs to be actuated, whereas in the case of conventional serial leg
structure both joints need to be manipulated in order to provide some ground clearance
for the foot.
From schematic diagram in Figure 3.2, link OA is attached to the knee actuator at point
O and it has the same length with link BC. Link OC is the thigh segment of the leg and
it is separately actuated by the hip actuator attached at point O, this link has the same
length as link AB. The motion of the knee actuator will create an angular displacement
of θA in link OA and since the linkage OABC is a parallelogram mechanism, angle θB
will be equal to angle θA. The link BCD is a ternary link with BC perpendicular to CD,
therefore –θB and φ are complimentary and –θ2 and φ are also complimentary. The
relationship of θB and θ2 can be expressed as follows:
290 ; 90Bθ ϕ θ ϕ− + = ° − + = ° (3.1)
hence:
2 Bθ θ= (3.2)
26
3.1.2. Flexi-Ankle Structure
In order to perform a stable walk, ideally the robot has to be immune towards any sort
of disturbance that might occur during the walking cycle. However in reality, every
system has its own limitation in reacting to the disturbance mostly due to the physical
constraints of the system. One of important factors is the ability of the system in
detecting the disturbance and correctly interprets the nature of the disturbance.
For the robot to be able to handle the disturbance, the controller has to be provided
immediately with accurate information on the stability state of the system. Therefore, it
is necessary to have a proper sensing system that can provide that information to the
controller. Furthermore, the information provided by the sensing system has to be easily
interpreted and processed by the controller. Many works have reported the usage of
Inertial Measurement Unit (IMU) which is the combination of Micro Electro
Mechanical System (MEMS) accelerometer and gyroscope to sense the tilt angle of the
robot body [63], [110]. The information of the tilt angle is then used as the measure of
the robot stability. However, the information provided by the IMU does not directly
reflect on the tilt angle of the body, but instead it provides the information on the
acceleration and the rate of change of the angle which needs to be processed further.
The signal processing of the sensor information requires considerable amount of time
and computing power which might lead to slow response of the system.
The concept of using body tilt angle to determine the level of instability is also
employed in this work. However, the design utilizes quite different approach of such
measurement to achieve faster response and to obtain the information in a direct way.
The FASM bipedal robot utilizes a new approach of sensing the instability by
introducing an additional degree of freedom to the leg structure in sideway direction
next to the ankle joint. This sensing ability significantly improves the sideway stability
control of the robot. In this study, the stability control is only implemented in sagittal
plane but the concept can be further extended to the case of three-dimensional plane by
having an additional set of identical mechanism working in coronal plane.
Figure 3.3 shows the structure of the additional degree of freedom where the free rotary
joint O on the frontal plane is placed at the ankle between the foot and ankle joint.
27
When there is a disturbance either due to the walk or some other external disturbance,
the unconstrained robot body is able to freely tilt in sideway (sagittal) direction. The
body tilt angle can be then measured directly using a simple rotary sensor on the free
joint and the controller is able to instantly detect this instability and react immediately to
restore the sideway balance.
In order to maintain the horizontal orientation of the foot plane while the leg takes a step,
a pair of tension springs is attached on both sides of the free rotary joint. One end of the
spring is anchored to the foot plane while another end is anchored to the leg through the
chain. When the robot is standing upright (θ = 0) (Figure 3.3(a)), both springs do not
exert any force (F1 = F2 = 0). When the robot is tilted to one side (θ ≠ 0) (Figure 3.3(b)),
one of the spring (F1) is stretched and exerts a force while the other (F2) remains un-
stretched due to the slack of the chain. Therefore, when the leg is hanging (foot is
floating) the foot plate is kept horizontal. In this application, the tension of the spring is
chosen to be only sufficient to restore the foot to its neutral position without adding
unnecessary rigidity to the free ankle joint.
Figure 3.3: Flexi ankle structure
3.1.3. Split-Mass Hip Structure
The walking cycle of bipedal robot consists of single leg support phase and double leg
support phase which are executed in sequence and repeatedly. In single leg support
phase, the robot is standing on one leg while another leg is transferred forward. During
this phase, the robot body will be tilted sideways due to the unbalanced torque created
by the weight of the lifted leg and the dynamic forces generated due to the leg
28
movement. Besides, during the single leg support phase, any unknown disturbance that
occurs might destabilize the robot and causes it to tip over. In order to maintain the
stability, it is necessary to perform a corrective action to counterbalance against the
disturbance detected. Typically, the corrective action is performed by modifying the
physical configuration (posture) of the robot. This can be achieved by altering the step
size, foot placement or the speed of leg swing in order to recover the stability state of
the robot. These actions will lead to the alteration of the pre-computed walking
trajectory that was initially planned to be achieved by the robot. Therefore, any
disturbance that occurs during the walking cycle will result in the delay of the robot in
getting to its destination.
This work proposed a different from conventional approach in dealing with the
disturbance by performing the corrective action without altering the existing walking
cycle of the robot. This is achieved by adding a separate mechanism to deliberately
execute the corrective action whenever instability is detected either due to walk or
external disturbance. This strategy allows the walking subsystem to work independently
in executing the planned walking trajectory while the balancing subsystem continuously
maintains the balance of the robot. This divide and conquer approach is believed to be
more efficient because each subsystem is allowed to perform its own tasks without
interference from other.
The design of the balancing mechanism is realized by a set of counterbalance masses
located at a specific position to compensate the unbalanced mass of the lifted leg and
other possible disturbance respectively. Figure 3.4 shows the simplified 3-masses model
of bipedal robot where mL represents the lumped mass of the hanging leg, mB1
represents the major balancing mass, mB2 represents the minor balancing mass and r
represents the length of the leg.
Major balancing mass is mainly used to compensate for the weight of the lifted leg. This
mass is positioned at the pre-calculated position ds in order to balance the torque created
by the mass of the lifted leg mL. The minor balancing mass mB2 is designated to
compensate for any unknown disturbance occurs to the system during the single leg
support phase. The position a of this mass is dynamically changed based on the sensor
data and command from the controller.
29
Figure 3.5 shows the control block diagram for the minor balancing mass control. The
PID controller constantly monitors the tilt angle (θ) from the ankle joint sensor and
compares the sensor reading with the desired angle. If there is a disturbance in the
sideways direction, the body will be tilted around the ankle joint. When the controller
detects any non-zero value on the tilt angle (θ ≠ 0), it will actuate the balancing mass to
the opposite direction in order to restore the balance and keep the robot standing in
upright position.
The use of two separate counterbalance masses provides several advantages such as:
• Faster response time can be achieved by only moving small inertia counterbalancing
mass instead of moving a larger one,
• Energy efficiency can be improved by reducing load of the motor that drives a
smaller inertia counterbalancing mass.
Figure 3.4: Simplified 3-masses model of bipedal robot
Figure 3.5: Control block diagram for minor balancing mass control
30
3.2. Hip-Mass Carrying Walking Gaits and Joint-Based Kinematics Trajectory Planning
For every type of legged robot, the locomotion is achieved by the movement of the legs
to create a stepping motion. When the stepping motion is executed alternately by
different legs, it results in the movement of the robot body. This sequence of legs
motion that moves the robot body is defined as walking. In general, the walking motion
of FASM bipedal robot can be divided into two phase namely single support phase and
double support phase. Single support phase is the instance when the robot is standing on
the ground with one leg while the other leg moves forward. Double support phase is the
instance when the robot is standing on the ground with both legs while the hip is being
pushed forward creating a complete step. This sequence is executed alternately for both
left and right legs to achieve the forward walking.
3.2.1. Hip-Mass Carrying Walking Gaits
In order to minimize the impact force during foot landing, the leg trajectories are
designed to hold the major mass of the robot body (hip mass M) in stationary position
and its gravity force Mg to be vertically aligned with the center of standing foot F
during the single support phase (Figure 3.6(a)). At this stage the other leg swings
forward to take the necessary step. The transfer of hip mass M in forward direction only
occurs when both legs are in touch with the ground, i.e. during the double support phase.
This hip-mass carrying strategy for the robot gaits planning offer a great advantage in
contrast to the conventional compass-like walking gait [111] (Figure 3.6(b)). In this case
the largest robot body mass M will neither contribute to the impacting forces during the
landing on the foot nor contribute to the inertia and other perturbation forces that tend to
overturn the body in forward or backward directions. The selected strategy significantly
simplifies the controller design and does not require any balancing action to maintain
the robot stability in forward or backward directions.
31
Figure 3.6: Hip-mass carrying walking gait
3.2.2. Joint-Based Kinematics Trajectory Planning
To achieve a smooth and impact free walking motion on a legged robot, the legs motion
has to be carefully planned based on the walking speed, step size, mechanical structure
etc. Each stage of the motion starts with an initial posture and ends with a final posture.
The configuration of the posture mainly depends on the requirement of the step length
and also the hip height during walk. For every initial and final posture, the angular
position of each joint is calculated based on the geometry of the robot. Table 3.1
describes the list of variable used in mathematical modeling of the angular position for
the leg posture.
Table 3.1: List of variables used in leg posture calculation Variable Description
l1=l2=l Length of thigh and shank section of the leg
θLH Angular position of the left leg hip joint
θLK Angular position of the left leg knee joint
θRH Angular position of the right leg hip joint
θRK Angular position of the right leg knee joint
s Step length
D Step height
H Hip height
h Distance from foot to ankle joint
T Duration of a full step
32
Single Support Phase
Figure 3.7 shows the initial, intermediate and final position of the legs posture on the
FASM bipedal robot during the single support phase. The initial position of the single
support phase is the default posture of the robot where the right leg is the standing leg
and the left leg is the swinging leg.
Figure 3.7: Legs posture in single support phase
The boundary conditions of the joint angle for each joint in the initial position (Figure
3.8) can be calculated based on the requirements of step length (s) and hip height (H).
Figure 3.8: Initial position of single support phase
33
Standing Leg
Hip Joint
Taking z-component:
cos cosRH RKl l H hθ θ+ = − (3.3)
Taking y-component:
sin sin 0
sin sinRH RK
RH RK
l lθ θθ θ
+ == −
(3.4)
For -90º≤ θRH ≤ 90º and -90º≤ θRK ≤ 90º:
RH RKθ θ= − (3.5)
Substituting (3.5) into (3.3) gives:
1
cos cos( )2 cos
cos2
cos2
RH RH
RH
RH
RH
l l H hl H h
H hlH h
l
θ θθ
θ
θ −
+ − = −= −−
=
− =
(3.6)
Knee Joint Substituting (3.6) into (3.5) gives:
1cos2RK
H hl
θ − − = −
(3.7)
Swinging Leg
Hip Joint Deriving the angle and length of line segment R:
1
2tan
2tan
R
R
sH h
sH h
θ
θ −
=− = −
(3.8)
( ) ( )2 22R H h s= − + (3.9)
34
Using cosine rule, angle α can be derived as follows:
2 2 2
1
2 cos2 cos
cos2
cos2
l l R lRl R
RlRl
αα
α
α −
= + −=
=
=
( ) ( )2 2
1 2cos
2H h s
lα −
− + =
(3.10)
Based on θR and α, θLH can be derived as follows: LH Rθ α θ= −
( ) ( )2 2
1 12 2cos tan2LH
H h s sl H h
θ − − − + = − −
(3.11)
Knee Joint For β = α and R // R’, θLK can be derived as follows: LK Rθ β θ= +
( ) ( )2 2
1 12 2cos tan2LK
H h s sl H h
θ − − − + = − − −
(3.12)
The final position of the single support phase is achieved when the foot of the swinging
leg is advanced from the back of the hip to the front of the hip for the distance s taking a
step. The boundary conditions for the joint angle for each joint in this posture (Figure
3.9) can be calculated based on the requirements of step length s and hip height H.
35
Figure 3.9: Final position of single support phase
Swinging Leg
Hip Joint Deriving the angle and length of line segment R:
( ) ( )
1
2 2
2tan
2tan
2
R
R
sH h
sH h
R H h s
θ
θ −
=− = −
= − +
(3.13)
Using cosine rule, angle α can be derived as follows:
( ) ( )
2 2 2
1
2 2
1
2 cos2 cos
cos2
cos2
2cos
2
l l R lRl R
RlRl
H h sl
αα
α
α
α
−
−
= + −=
=
=
− + =
(3.14)
36
Based on θR and α, θLH can be derived as follows: LH Rθ α θ= +
( ) ( )2 2
1 12 2cos tan2LH
H h s sl H h
θ − − − + = + −
(3.15)
Knee Joint
For β = α and R // R’, θLK can be derived as follows:
( ) ( )2 2
1 12 2cos tan2
LK R
LK
H h s sl H h
θ β θ
θ − −
= − +
− + = − + −
(3.16)
The intermediate position is executed between the initial and final position to provide
enough ground clearance for the foot during the walk. The posture in this position
(Figure 3.10) is modified from the posture of the final position. In this posture, the angle
of the hip joint in the final position is added with an offset angle in order to lift the foot
above the ground. Therefore, the joint angle for this posture is the same with the one
from the final position except for the hip joint of the swinging leg which can be derived
based on the step height h.
Figure 3.10: Intermediate position of single support phase
37
Swinging Leg
Hip Joint
Taking θLK from (3.16), θLH can be derived as follows:
1
cos
cos
LH LK
LHLH
h H D h lh
l
θ
θ −
= − − −
=
1 coscos LKLH
H D h ll
θθ − − − − =
(3.17)
From the initial position, both hip and knee joint of the swinging leg are actuated to
achieve the posture set on the intermediate position in order to lift the foot above the
ground. From the intermediate position, the hip joint of the swinging leg is actuated to
descend the foot onto the ground, creating a touch down motion.
Double Support Phase
Figure 3.11 shows the initial and final position of the legs posture on the FASM bipedal
robot during the double support phase. The initial position of double support phase is
equivalent to the final position of the previous single support phase and the final
position of double support phase is equivalent to the initial position of the following
single support phase. Therefore, the complete walking cycle can be executed by
alternating the sequence of single and double support phase on both left and right legs.
Figure 3.11: Legs posture in of double support phase
38
In double support phase, the legs posture change from initial to final position by moving
the hip horizontally while both legs stand steadily on the ground. In this phase, the
standing status is switched from right leg to left leg and vice versa. In order to achieve
the horizontal motion of the hip, all four actuators have to be actuated at the same time
and the required angle of each joint can be derived as follows:
for i ft t t< <
( ) 1cos2RH i
H htl
θ − − =
(3.18)
( )2 2
1 1( ) / 2 / 2cos tan2RH f
H h s stl H h
θ − − − + = − −
(3.19)
The angular positions of the remaining three joints θRK, θLH and θLK in double support
phase motion are functions of θRH.
( ) ( )1 coscos RH
RK
H h l tt
lθ
θ − − − = −
(3.20)
( )1 ( )( ) cos2LH R
R tt tl
θ θ− = +
(3.21)
( )1 ( )( ) cos2LK R
R tt tl
θ θ− = − +
(3.22)
Where R(t) and θR(t) can be derived as follows:
( ) ( )( )2 2( ) ( / 2) sin sin ( )RH RKR t s l t l t H hθ θ= + + + − (3.23)
( ) ( ) ( )( )1 ( / 2) sin sintan RH RK
R
s l t l tt
H hθ θ
θ − + +
= − (3.24)
The joints trajectory of the legs movement from one posture to another are planned
based on the linear segment with fourth order polynomial blending method [112]. This
method of joint space trajectory planning will produce smoother motion on the actuators
since they are operating on nominal constant speed most of the time. Moreover, the
order of the polynomial curve is lesser as compared to the single polynomial function
trajectory which results in less complex trajectory generation algorithm.
39
Figure 3.12: Linear segment with polynomial blend
Selection of linear segments blended with fourth order polynomial sections will smooth
the transition between the trajectory intervals at points A and B at least to the
acceleration level.
The angular boundary conditions for the actuator shaft are:
(0) ; ( )
(0) 0 ; ( ) 0
(0) 0 ; ( ) 0
i f f
f
f
t
t
t
θ θ θ θ
θ θ
θ θ
= =
= =
= =
(3.25)
The fourth order polynomial and derivatives are as follow:
2 3 40 1 2 3 4
2 31 2 3 4
22 3 4
1 1 1( )2 3 4
( )
( ) 2 3
t c c t c t c t c t
t c c t c t c t
t c c t c t
θ
θ
θ
= + + + +
= + + +
= + +
(3.26)
Substituting the initial boundary condition (3.25) to the polynomial gives:
3 43 4
2 33 4
23 4
1 1( )3 4
( )
( ) 2 3
it c t c t
t c t c t
t c t c t
θ θ
θ
θ
= + +
= +
= +
(3.27)
40
Figure 3.12 shows angular motion of the actuator designed as linear segment blended
with fourth order polynomial sections at the beginning and the end of the motion period.
Matching the first and second derivatives of the polynomial with constant speed ω and
zero acceleration to the linear segment of the trajectory yields the following expression:
2 33 4A b bc t c tθ ω= + = (3.28)
23 42 3 0A b bc t c tθ = + = (3.29)
Solving equations (3.28) and (3.29) simultaneously gives:
3 2
3
b
ctω
= (3.30)
4 3
2cbtω
= − (3.31)
Matching the boundary angular values for polynomial and linear segments gives:
3 43 4
1 13 4
( 2 )
A i b b
B A f b
c t c t
t t
θ θ
θ θ ω
= + +
= + −
3 43 4
3 43 4
( )
( 2 ) ( )
2 ( 2 )
1 12 23 42 12 23 2
f B A i
f A f b A i
f A i f b
f i b b i f b
f i b b i f b
t tt t
c t c t t t
c t c t t t
θ θ θ θ
θ θ ω θ θ
θ θ θ ω
θ θ θ ω ω
θ θ θ ω ω
= + −
= + − + −
= − + −
= + + − + −
= + + − + −
(3.32)
Substituting (3.30) and (3.31) to the above equation gives:
3 42 3
2 3 1 22 23 2
2 2 2
f i b b i f bb b
f i b b i f b
i f fb
t t t tt t
t t t tt
t
ω ωθ θ θ ω ω
θ θ ω ω θ ω ω
θ θ ωω
= + + − − + −
= + + − + −
− +=
(3.33)
41
The motion of the actuator for three separate time segments can be expressed as:
3 42 3
2 32 3
22 3
for 0
1( )2
3 2( )
6 6( )
b
ib b
b b
b b
t t
t t tt t
t t tt t
t t tt t
ω ωθ θ
ω ωθ
ω ωθ
< ≤
= + +
= −
= −
(3.34)
for ( )
( )( ) 0
A B
A
t t tt t
tt
θ θ ω
θ ω
θ
< ≤= +
=
=
(3.35)
3 42 3
2 32 3
22 3
for
1( ) ( ) ( )2
3 2( ) ( ) ( )
6 6( ) ( ) ( )
B f
f f fb b
f fb b
f fb b
t t t
t t t t tt t
t t t t tt t
t t t t tt t
ω ωθ θ
ω ωθ
ω ωθ
< ≤
= − − + −
= − − −
= − − + −
(3.36)
3.3. Dynamic Modeling and Control of 4-Degrees of Freedom Bipedal Walk
This section discusses the optimal strategy in controlling the stability of FASM bipedal
robot during the walking cycle. In double support phase, when the robot is standing on
two legs, the area of the support polygon is wide enough for the robot to stay stable.
However, during the single support phase, the stability of the robot is not guaranteed.
Therefore there is a need to model the stability condition of the robot during the single
support phase.
In order to simplify the control strategy, the stability of the robot in single support phase
can be analyzed in separately for sagittal (forward) and coronal (sideway) stability. For
forward stability, the robot is modeled to stand on a single leg while the other leg is
taking a step. During the stepping process all the static and dynamic forces created by
42
the leg structure are taken into account. Based on the model, the minimum required size
of the foot and the margin of stability can be determined.
For sideway stability, the robot is modeled as a complex shape inverted pendulum with
the ankle of the standing leg acting as the pivot. The stability of the robot in sideway
direction is measured by the tilt angle of the body. Ideally the robot has to be able to
stand in upright posture. In order to maintain the posture, there are set of balancing
masses that are dynamically positioned to compensate for any unknown disturbance.
By decoupling the walking and stability control tasks, the controller can be divided into
two individual units with a minimum dependency to each other. The walking task
controller will execute the motion based on the planned trajectory to achieve the desired
walking gait. Similarly, the stability task controller will monitor the stability state of the
robot and execute any necessary task in order to keep the robot stable in sideway
direction.
3.3.1. Modeling of Forward Stable Walk Figure 3.13 shows the side view of the robot in single support phase taking a forward
step by performing a stepping motion on the swinging leg from the back to the front of
the hip. When standing on one leg, there is a possibility that the robot will lost its
balance and fall forward due to the forces created by the swinging leg.
Figure 3.13: Side view of bipedal robot in single support phase
43
Assuming that there is no slip between the foot and the ground surface, the stability of
the robot during this phase can be determined by taking into account all the static and
dynamic forces acting on the leg structure. Static forces come from the weight of the
robot’s body parts and the dynamic forces can be calculated from the planned
trajectories of the legs motion as described in the previous chapter. The acceleration of
the knee and the ankle mass for the swinging leg are as follows:
( )2
sin
cos
cos sin
RK RH
RK RH RH
RK RH RH RH RH
y l
y l
y l
θ
θ θ
θ θ θ θ
=
=
= −
(3.37)
( )2
cos
sin
cos sin
RK RH
RK RH RH
RK RH RH RH RH
z H l
z l
z l
θ
θ θ
θ θ θ θ
= −
=
= +
(3.38)
( )2
sin
cos
cos sin
RA RK RK
RA RK RK RK
RA RK RK RK RK RK
y y l
y y l
y y l
θ
θ θ
θ θ θ θ
= +
= +
= + −
(3.39)
( )2
cos
sin
cos sin
RA RK RK
RA RK RK RK
RA RK RK RK RK RK
z z l
z z l
z z l
θ
θ θ
θ θ θ θ
= −
= +
= + +
(3.40)
where:
, andRK RK RKy y y are the horizontal position, velocity and acceleration for point mass
mRK
, andRK RK RKz z z are the vertical position, velocity and acceleration for point mass mRK
, andRA RA RAy y y are the horizontal position, velocity and acceleration for point mass
mRA
, andRA RA RAz z z are the vertical position, velocity and acceleration for point mass mRA
In order for the robot to stay stable, the position of the resultant reaction forces between
the foot and the ground R should always falls inside the foot area. From Figure 3.13 it is
clear that the robot may only rotate about the front edge of the foot in clockwise
direction if and only if the net torque from all the forces acting on the body with respect
to that point is not zero and negative (clockwise direction). On the other hand, if the net
44
torque from all the forces with respect to the edge point is not zero but positive
(counterclockwise direction) the robot will maintain stability while moving in forward
direction.
In the latter case the resultant torque can be securely balanced by the foot reaction
forces because the resultant force falls within the foot area. Therefore, the forward
stability condition is solely depends on the position of the resultant force R which
changes dynamically based on the position and movement of the leg. If the resultant
force is always located within the area of the foot then the robot is able to maintain its
stability. Based on this concept, the distance d from the position of the resultant R to the
ankle center point O can be used to indicate the degree of stability of the robot while
walking in forward direction.
Based on the diagram on Figure 3.13, taking the net torque balance about point O yields
the following:
( ) ( )0
0
O
LK LK RK RK RK RA RA RA RK RK RK
RA RA RA
T
m g y m g z y m g z y m y zm y z R d
=
− ⋅ − + − + + ⋅ ⋅
+ ⋅ ⋅ + ⋅ =
∑
(3.41)
The total of vertical force acting on R:
( ) ( )LA LK RK RK RA RAR m g Mg m g m g z m g z= + + + + + + (3.42)
Substituting (3.42) into (3.41) yields:
( ) ( )( ) ( )
LK LK RK RK RK RA RA RA RK RK RK RA RA RA
LA LK RK RK RA RA
m gy m g z y m g z y m y z m y zd
m g Mg m g m g z m g z+ + + + − −
=+ + + + + +
(3.43)
If DF is the actual length of the foot in front of the ankle, the forward balance conditions
for the robot can be defined as follows:
When d<DF robot is stable
d=DF robot is critically stable
d>DF robot is unstable
The stability of the robot while walking in forward direction can be measured by the
stability margin SM, which is the ratio of the reaction force position d and the actual
45
length of the foot in front of the ankle DF. The stability margin SM can be derived as
follows:
FM
F
D dSD−
= (3.44)
The stability margin SM is the dimensionless value that can be used to measure the
stability state of the robot. The value close to one indicates that the robot is in a stable
condition and the value close to zero indicates that the robot is approaching the critically
stable condition.
3.3.2. Modeling of Independent Sideway Stability
Figure 3.14 shows a simplified model of the FASM bipedal robot in single support
phase. The robot is modeled as an inverted pendulum with multiple lumped masses that
represent the masses of each joint of the leg structure where the links are assumed to be
massless. The joint’s mass, the mass of the hip platform and the balancing mass are also
taken into account. The inverted pendulum is free to rotate about point O which
represents the one DOF rotary joint located above the foot plane introduced in this
design.
During the single support phase, the movement of the swinging leg creates both static
and dynamic force that generate torque about the free rotary joint (point O) which will
cause the robot to tilt sideways (angle θ). In order to maintain the robot in upright
posture during the single support phase, the static and dynamic forces have to be
compensated by the designated balancing masses. The FASM bipedal robot has two
separate balancing mass namely the major balancing mass and minor balancing mass.
The major balancing mass (mB1) is position at the fix location and mainly works to
compensate for the gross static force. The minor balancing mass (mB2) works to
compensate for the dynamic and unknown disturbance force (Tdist) and its position is
dynamically regulated based on the robot tilt angle.
46
Figure 3.14: Front view of bipedal robot in single support phase
Based on Figure 3.14, taking the net torque of all the gravitational, inertial and
disturbance force with respect to point O yields the following expression:
2 2 2 1 1
O dist A RA K RK H RH M
H LH K LK B B B B B
K RK A RA
T T m g x m g x m g x M g xm g x m g x m a r m g x m g x
m z d m z d c kθ θ
= + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅
+ ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ − ⋅ ⋅ − ⋅ ⋅
− ⋅ ⋅ − ⋅ ⋅ − ⋅ − ⋅
∑
(3.45)
47
where:
mA - is the point mass of the ankle joint
mK - is the point mass of the knee joint
mH - is the point mass of the hip joint
M - is the total of the hip platform
mB1 - is the major balancing mass placed at the fix location
mB2 - is the minor balancing mass which position changes dynamically to maintain the
balance
c and k - are the damping and spring coefficients of the components associated to rotary
joint O
The projection of the point masses distance from point O on the horizontal axis can be
calculated from the formula listed in Table 3.2.
Table 3.2: List of formula for calculating point mass distance on horizontal axis Variable Formula
1Bx cos sind rs θ θ−
2Bx cos sina rθ θ−
LKx ( )sinLKr z θ−
LHx sinr θ
Mx ( )2 cos sind rθ θ+
RAx cos ( ) sinRAd r dθ θ+ −
RKx cos ( ) sinRKd r dθ θ+ −
RHx cos sind rθ θ+
Substituting the formula from Table 3.2 into (3.45) gives:
( )( ) ( )( )( ) ( )( ) ( )( )( ) ( ) ( )2 2 1
cos sin cos sin
cos sin 2 cos sin sin
sin cos sin cos sin
O dist A RA K RK
H H
K LK B B B S
K RK A RA
T T m g d r z m g d r z
m g d r Mg d r m g r
m g r z m ar m g a r m g d r
m z d m z d c k
θ θ θ θ
θ θ θ θ θ
θ θ θ θ θ
θ θ
= + + − + + −
+ + + + +
+ − + − − − −
− − − −
∑
(3.46)
48
Rearranging the above equation gives:
( ) ( ) ( )()
2 1
2 1 2
cos2
sin
O dist A K H B B S
A RA K RK H H K LK
B B B K RK A RA
MT T g d m m m m a m d
g m r z m r z m r Mr m r m r z
m r m r m ar m z d m z d c k
θ
θ
θ θ
= + + + + − − + − + − + + + + −
+ + + − − − −
∑
(3.47)
Since the major balancing mass mB1 is designated to compensate for the static force
created by the mass of the hip and the swinging leg, the distance of the major balancing
mass dS can be derived as follows:
1
1
1
1
0
02
2
2
2
O
A K H B S
A K H B S
B S A K H
A K H
SB
Tdm g d m g d m g d M g m g d
Mm m m g d m g d
Mm d m m m d
Mm m m dd
m
=
⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ − ⋅ ⋅ =
+ + + ⋅ = ⋅ ⋅
= + + +
+ + + =
∑
(3.48)
Substituting dS from (3.48) into (3.47) gives:
( ) ( )(
( ) )2
2 1 2
cos sin
2O dist B A RA K RK
H K LK B B B K RK A RA
T T m g a g m r z m r z Mr
m r m r z m r m r m ar m z d m z d c k
θ θ
θ θ
= − ⋅ ⋅ + − + − +
+ + − + + + − − − −
∑
(3.49)
49
Table 3.3 provides the formula for calculating the distance from each of the point mass
to the pivot point O.
Table 3.3: List of formula for calculating point mass distance to point O
Variable Formula
2Br 2 2r a+
1Br 2 2sr d+
Mr ( )22 2r d+
RHr 2 2r d+
RKr 2 2( )RKr d d− +
RAr 2 2( )RAr d d− +
The dynamic equation of motion of the FASM bipedal robot in single support phase can
be derived based on Newton’s second law of motion about point O as follows:
( )( )2 2 2 2 2 2 2 22 2 1 1
O
O K LK H M H RH K RK A RA B B B B
T I
T m r z m r Mr m r m r m r m r m r
θ
θ
=
= − + + + + + + +
∑∑
(3.50)
Substituting ∑TO from (3.49) to the above equation gives:
( ) ( )(( ) )
( )( )
2
2 1 2
2 2 2 2 2 2 2 22 2 1 1
cos sin
2dist B A RA K RK A
H K LK B B B K RK A RA
K LK H M H RH K RK A RA B B B B
T m g a g m r d m r d m r Mr
m r m r z m r m r m ar m z d m z d c k
m r z m r Mr m r m r m r m r m r
θ θ
θ θ
θ
− ⋅ ⋅ + − + − + +
+ + − + + + − − − − =
− + + + + + + +
(3.51)
Rearranging the above equation gives:
( ) ( )(( ) )
( )( )( )
2
2 1 2
2 2 22
2 2 2 2 2 22 1 1
cos sin
2dist B A RA K RK A
H K LK B B B K RK A RA
B A RA K RK
K LK H M H RH B B B
T m g a g m r d m r d m r
Mr m r m r z m r m r m ar m z d m z d
m a m r m r
m r z m r Mr m r m r m r c k
θ θ
θ
θ θ θ
− ⋅ ⋅ + − + − +
+ + + − + + + − −
− + + =
− + + + + + + +
(3.52)
50
The differential equation above has two distinct parts. The right hand side consists of
the ordinary differential equation with constant time invariant coefficients and the left
hand side presents all other remaining components of the equation which includes:
• Non-linear trigonometric functions of the main dependent argument θ i.e. sin θ and
cos θ
• Additional but independent from the main argument θ time varying parameter a and
its derivatives, due to the linear independent motion of the minor balancing mass
• The parameters that comprises both a and θ arguments, namely 22Bm a θ
• Time varying kinematics parameters of the swinging leg lumped masses ma and mk
3.3.3. Control of 4-Degrees of Freedom Bipedal Walk
Figure 3.15 shows the overview of the controller design for FASM bipedal robot. The
controller consists of two separate subsystems namely walking controller and balancing
controller. The walking controller handles the task of controlling the joint actuators
based on the prescribed trajectory in order to achieve the forward walking. The
balancing controller is handling the task of monitoring the stability of the robot and
dynamically controls the minor balancing mass distance a in order to keep the robot in
stable position.
Figure 3.15: Block diagram of the FASM bipedal robot controller
51
The walking controller is programmed to perform the sequential task in actuating the
joints according to the planned trajectory. Besides, the walking controller also sends a
command to the balancing controller to update the information of the current standing
leg (left or right). The logic flowchart of the walking controller is shown in Figure 3.16.
Figure 3.16: Logic flowchart of the walking controller program
52
Figure 3.17 shows the logic flowchart of the balancing controller program. The
balancing controller constantly monitors the “Standing Leg” signal from the walking
controller. When the robot is standing on both leg (double support phase), the balancing
controller is not required to perform any action. In this phase, the balancing mass will
be position at the center of the hip. When the “Standing Leg” signal is set to “Left” or
“Right” it indicates that the robot is currently in the single support phase. In this phase,
the balancing mass is positioned right on the top of the respective standing leg and the
controller is reading the body tilt angle from the standing leg angle sensor.
Figure 3.17: Logic flowchart of the balancing controller program
During the single support phase, the balancing controller is running on the closed-loop
mode which constantly monitors the body tilt angle and making adjustment on the
balancing mass position to maintain the balance. The reading from the tilt angle sensor
53
is compared with the desired value (θ = 0). The difference (error) between the desired
and the feedback value is then fed into the PID controller to control the position of the
balancing mass in order to keep the robot stable.
3.4. Summary
This chapter comprehensively discussed on the proposed design for the mechanical
system, walking, balancing and control strategy. The system is designed with a
simplistic approach with the aim to produce a less complex yet reliable system. The
system modeling discussed in this chapter provides a theoretical groundwork for the
design verification through computer simulation in the following chapter.
54
Chapter 4 Computer Simulation and Verification of Design Parameters Prior to the implementation of the conceptual design and algorithm in the form of
physical prototype, it is necessary to estimate and verify the design parameters in
simulation environment by taking into account the physical parameters and the
limitation of the components. The simulation results also help to identify any possible
problems which results in the reduction of time and cost spent on the iterative correction
during the physical implementation of the prototype.
However for the system with such level of complexity, certain important physical
parameters have to be predefined before the system can be properly simulated. In this
work, the physical parameters used in the simulation are taken from the model designed
based on the availability of off-the-shelf parts and author’s previous experience in
developing similar system. After going through several revisions on the design, the
latest version of the model is presented in this work.
4.1. Walking Gait Simulation and Results
The simulation of the walking gait is divided into two subsequent stages. Firstly, the
walking gait is graphically simulated in the form of stick diagrams to ensure that the
generated walking patterns correspond to the parameters assigned. The position,
velocity and acceleration of each joint angle during the walk are calculated and plotted
to verify that joint motion are within the achievable range of the actuator and the
smooth profile with acceleration matching is achieved in order to minimize the dynamic
forces due to the leg movement. Lastly, the actuator mathematical model is developed
based on the parameters of the available physical actuator and the planned trajectory for
each joint is fed into the actuator mathematic model to confirm the capability of the
actuator in coping with the planned trajectory.
55
4.1.1. Kinematics Simulation of Walking Gait
The walking gait is simulated in MATLAB environment based on the algorithm
developed in Chapter 3. The simulation is conducted to check for the consistency
between the assigned parameters and the simulated stick diagram model. The initial and
final position for each joint in both single and double support phase are computed based
on the boundary condition formulas (equation (3.3) - (3.24)) derived in previous chapter.
From the boundary conditions, the joint trajectories are generated based on the linear
segment with polynomial blending method as derived in equation (3.34) – (3.36) Based
on the generated joint trajectory, the leg movement is plotted in the form of stick
diagram to provide the dynamic visualization of the links movement throughout the
walk and to confirm the proper walking pattern of the robot. In addition, the trajectory
of each joint is differentiated with respect to time to obtain the plot of the joint
velocities and accelerations throughout the walking cycle.
Figure 4.1 shows the simulated stick diagram for the walking gait for eight complete
steps with step length s of 10 cm, hip height H of 66 cm, step height D of 2 cm and
length for each thigh l1 and shank link l2 is 30 cm (Figure 3.8 and Figure 3.10). The foot
movement of the swinging leg in single support phase is marked by the dotted plot and
the leg movement in double support phase is marked by the line plot.
-10 0 10 20 30 40 50 60-10
0
10
20
30
40
50
60
70
Step (cm)
Hei
ght (
cm)
Figure 4.1: Stick diagram for eight complete steps of walk
56
Figure 4.2, Figure 4.3 and Figure 4.4 show the plot of joints position θ , velocity θ and
acceleration θ for all the four joints during two complete steps of motion.
Figure 4.2: Joint position profile for two complete steps of walk
57
Figure 4.3: Joint velocity profile for two complete steps of walk
58
Figure 4.4: Joint acceleration profile for two complete steps of walk
The simulation of the stick diagram in Figure 4.1 shows that during the single support
phase (Figure 3.10), the foot of the swinging leg is lifted away from the ground creating
some ground clearance for the foot to step forward. The amount of the lifting is
59
controlled by the step height parameters D as defined in the boundary condition formula
(equation (3.17)). In double support phase (Figure 3.11), the body is moved forward by
the movement of all the joints which create a horizontal motion of the hip in forward
direction and at the meantime maintaining the hip height at a constant level.
From the position (Figure 4.2) and velocity plot (Figure 4.3), it is confirmed that the
movement of the joints are within the actual range of the actuator and the required
velocity is achievable by the actuator which will be further verified by detail analysis in
the following section. The acceleration plot (Figure 4.4) shows a smooth profile of the
joints acceleration transition throughout the movement of the leg both in single and
double support phase.
4.1.2. Actuator Response Simulation
For the joints actuation, Robotis Dynamixel RX-64 [113] actuator is chosen due to its
light and compact structure and rich features such as built-in position sensor,
communication module, etc. Robotis Dynamixel RX-64 has integrated speed reducer,
driver and position servo controller all built into one body. The actuator can be modeled
as position servo motor which consists of conventional DC motor with gear reduction
and position sensor as a feedback to the controller (Figure 4.5). The parameters of the
DC motor and gear reduction ratio is known from the product datasheets [114], however
the parameters of the controller are unknown.
Figure 4.5: Position servo motor setup
The model of the DC motor can be derived from the equivalent circuit of armature
controlled DC motor and the mechanical model shown in Figure 4.6 [115].
60
Figure 4.6: Equivalent circuit of armature controlled DC motor
Based on Kirchoff’s law the relationship between current and voltage can be derived as
follows:
( ) ( ) ( )di tV t Ri t L e
dt= + + (4.1)
Taking Laplace transform from the above equation yields:
( ) ( ) ( )V s RI s LsI s e= + +
( )( )
1I sV s e Ls R
=− +
(4.2)
The back emf generated e by the motor rotation is related to the motor constant Ke by
the following equation:
( ) ( )ee t K tω= (4.3)
Taking Laplace transform from the above equation yields:
( ) ( )eE s K s= Ω
( )( ) e
E sK
s=
Ω (4.4)
The torque generated T by the motor can be calculated based on the current flow i and
armature constant KT as follows:
( ) ( )TT t K i t=
61
Taking Laplace transform from the above equation yields:
( ) ( )TT s K I s=
( )( ) T
T sK
I s= (4.5)
Based on Newton’s law, the relationship between torque and speed can be derived as
follows:
( ) ( ) ( )d tT t J B t
dtω
ω= + (4.6)
Taking Laplace transform from the above equation yields:
( ) ( ) ( )T s Js s B s= Ω + Ω
( )( )
1sT s Js BΩ
=+
(4.7)
In order to construct the full model of the actuator in the simulation environment, the
controller is assumed to be a Proportional-Integral-Derivative (PID) controller which is
commonly used in servo application. The gain for the PID controller is estimated using
SIMULINK “Parameter Estimation” function available in “Simulink Design
Optimization” toolbox. The “Parameter Estimation” function works by estimating and
tuning the unknown model parameters using numerical optimization based on the
information of measured input-output data from the hardware.
First, the full model of the actuator has to be constructed in the SIMULINK
environment as shown in Figure 4.7. The DC motor is constructed based on the model
derived in equation (4.1) – (4.7) and the gain for the PID controller is initially assigned
to zero. Next, the response of the actuator (Figure 4.8) has to be measured in order to
obtain the input-output relationship (desired position vs actual position) of the system.
Based on the constructed model and measured response of the hardware, the function
will run an iterative test by varying the value of the unknown PID gain (Figure 4.9) and
matching the output of the simulated model with the one measured from the hardware.
62
Figure 4.7: Block diagram of the SIMULINK program for the actuator model
0 0.5 1 1.5 2 2.5 3 3.50
20
40
60
80
100
120
140
160
Time (s)
Ang
le (d
eg)
Output AngleInput Angle
Figure 4.8: Measured actuator response for parameter estimation input
DC Motor
Gear Reduction Controller
63
0
0.005
0.01
0.015
0.02
0.025
0.03
Kd
0
0.02
0.04
0.06
0.08
Ki
0 2 4 6 8 10 12 14 16 180
1
2
3
4
Iterations
Kp
Figure 4.9: Trajectory of the PID gain estimation for 17 iterations
After running for 17 iterations, the PID gains obtained are Kp=3.684, Ki=0.043 and
Kd=0.022. With the given PID gains, the model is simulated by feeding in different set
of input signal and comparing the simulated output with the physical hardware response
for verification purpose (Figure 4.10). When the complete actuator model is developed,
the joint trajectory is fed into the input of the model with the sampling rate of 100 Hz
which correspond to the sampling rate of the physical controller. Figure 4.11, Figure
4.12, Figure 4.13 and Figure 4.14 show the simulated actuators response to the
generated joint trajectory input for all four joints.
64
0 1 2 3 4 5 6 7 8 9 10-50
0
50
100
150
200
250
300
350
Time (s)
Ang
le (d
eg)
Input SignalSimulated OutputExperimental Output
Figure 4.10: Response of the simulated actuator model compared to the actual motor
response
0 1 2 3 4 5 6 7 85
10
15
20
25
30
Time (s)
Ang
le (d
eg)
Output AngleInput Angle
Figure 4.11: Simulated actuator motion of left hip joint angle
65
0 1 2 3 4 5 6 7 8-18
-16
-14
-12
-10
-8
-6
Time (s)
Ang
le (d
eg)
Output AngleInput Angle
Figure 4.12: Simulated actuator motion of left knee joint angle
0 1 2 3 4 5 6 7 85
10
15
20
25
30
Time (s)
Ang
le (d
eg)
Output AngleInput Angle
Figure 4.13: Simulated actuator motion of right hip joint angle
66
0 1 2 3 4 5 6 7 8-18
-16
-14
-12
-10
-8
-6
Time (s)
Ang
le (d
eg)
Output AngleInput Angle
Figure 4.14: Simulated actuator motion of right knee joint angle
4.2. Forward Walk Stability Simulation and Results
The simulation of the forward walk stability is developed based on the forward walk
dynamic model derived in Section 3.3.1. The derived model leads to equation (3.43)
which calculates the distance d of the point R (where the resultant reaction force is
acting on the ground) from the ankle point (Figure 3.13). The distance d and the size of
the foot sole are major contribution factors to the forward stability of the robot
especially during the single support phase.
During the movement of the swinging leg, if the resultant reaction force acts within the
area of the standing foot sole (Figure 4.15(a)), the robot will be stable and not tip over.
However, if the resultant reaction force is acting at the edge of the foot (Figure 4.15(b)),
the robot will create a moment about the tip of the foot and tip over. Therefore, in order
to ensure the stability of the robot during the forward walk, the size of the foot sole has
to be long enough to cover the area where the resultant reaction force is acting. The
acting point of the resultant reaction force R is varying over time due to the dynamic
forces created by the movement of the swinging leg.
67
Figure 4.15: (a) Resultant reaction force acting within the foot sole (robot stable) (b)
Resultant reaction force acting at the edge of the foot (robot tipping over)
Figure 4.16 shows the plot of the distance d (equation (3.43)) from the ankle to the
acting point of R (Figure 4.15) where the reaction force is acting on the standing foot
while the other leg is swinging over.
0 0.5 1 1.5 2 2.5d (cm)
Figure 4.16: Variation of the acting point of resultant reaction force R on the foot sole
during the single support phase
As shown in Figure 4.16, the acting point of the resultant reaction force during the
forward walk span from 0.3 cm to 2.4 cm. This indicates that the length of the foot has
to be longer than 2.4 cm in order for the robot not to tip over while making a step. The
size of the foot sole on the physical robot is designed to the proportion of the leg size
based on the measurement of human limb. The total length of the foot sole is 20 cm
with the 16 cm from front edge to the ankle point and 4 cm from the ankle point to the
rear edge (Figure 4.17).
(a) (b)
68
Figure 4.17: Size and placement of the foot sole with respect to the ankle
From the data obtained and plotted in Figure 4.16, the forward walk stability margin SM
of the robot can be computed by taking the ratio of the foot length versus the position of
the total reaction force acting point (equation (3.44)).
Figure 4.18 shows the plot of stability margin SM of the robot in forward direction
throughout the execution of single support phase. The stability margin is a
dimensionless measure of the robot stability state in forward direction. The higher
margin value indicates that the robot is in stable state and the value close to zero
indicates that the robot is going towards critical region in terms of stability, i.e. towards
the edge of the foot sole.
0 0.5 1 1.5 2 2.5 3 3.50.86
0.88
0.9
0.92
0.94
0.96
0.98
Time (s)
Sta
bilit
y M
argi
n (SM
)
Figure 4.18: Forward stability margin during single support phase
69
4.3. Sideway Balancing Simulation and Results
During single support phase, the stability control of the robot in sideway direction is
completely decoupled from the stability control in forward direction. The sideway
stability sensing and balancing control of the robot body is implemented by the
combination of the flexible ankle structure as the sensing system and the split balancing
mass to perform the corrective action against the system disturbance (Figure 3.4). The
simulation of the sideway balancing system in this section is performed in SIMULINK
environment based on the mathematical models developed in Section 3.3.2 and equation
(3.31).
Figure 4.19 shows the overall control block diagram of the sideway balancing control
system. There are three main components in the system namely the leg structure, the
minor balancing mass and the swinging leg trajectory blocks. The leg structure block
contains the dynamic equation of the leg model as describe in equation (3.52). This
block receives the input from swinging leg trajectory block which provides the
information of the swinging leg movement during single support phase as simulated in
section 4.1. The swinging leg movement block when combined with the leg’s mass will
create the dynamic forces which becomes a disturbance for the system.
When the system experiences any disturbance caused by the leg movement or when it
comes from unknown external source, the flexible ankle joint will allow the body to tilt
freely in sideway direction θ and it is then immediately sensed by the angular sensor on
the joint (Figure 3.3). The amount of the body tilt is then fed into the PID controller to
control the movement a of the minor balancing mass in order to restore the balance. The
minor balancing mass block contains a model of linear position servo which controls the
position of the minor balancing mass based on the output from the PID controller.
Figure 4.20, Figure 4.21 and Figure 4.22 show the simulation result of the system under
three different conditions. Figure 4.20 shows the system response when no external
disturbance is applied and the system is only subject to the internal disturbance created
by the movement of the swinging leg. Figure 4.21 shows the system response to the
internal disturbance due to the swinging leg plus some additional external disturbances
applied intermittently. Figure 4.22 shows the result when an excessive external
70
disturbance is applied to the system which causes it to fails due to the limited mass of
the minor balancing mass.
Figure 4.19: Control block diagram of sideway stability controller
In Figure 4.20, the robot motion is simulated with in single support phase condition
when it is standing on one leg and the swinging leg is moved forward to create a step.
The dynamic force that is created by the swinging leg contributes to the tilting of the
body but with a very small amount due to the smooth acceleration profile of the joints
movement. Figure 4.21 shows the same scenario as the test in Figure 4.20 but with
additional external disturbances to test the ability of the minor balancing mass to
recover stability despite of the external disturbance applied.
71
0 1 2 3 4 5 6 7 8 9 10
-0.2
-0.1
0
0.1
0.2
0.3Ti
lt A
ngle
θ (
deg)
0 1 2 3 4 5 6 7 8 9 10-4
-3
-2
-1
0
1
2
3
Mas
s D
ista
nce a
(mm
)
0 1 2 3 4 5 6 7 8 9 10-1
-0.5
0
0.5
1
Time (s)
Dis
turb
ance
Tdist
(Nm
)
Figure 4.20: System response of sideway balancing system without external disturbance
72
0 5 10 15 20 25 30-1.5
-1
-0.5
0
0.5
1
1.5Ti
lt A
ngle
θ (
deg)
0 5 10 15 20 25 30-100
-50
0
50
100
Mas
s D
ista
nce a
(mm
)
0 5 10 15 20 25 300
0.5
1
1.5
Time (s)
Dis
turb
ance
Tdist
(Nm
)
Figure 4.21: System response of sideway balancing system without external disturbance
73
0 1 2 3 4 5 6-5
0
5
10
15
Tilt
Ang
le θ
(de
g)
0 1 2 3 4 5 6-50
0
50
100
150
200
250
Mas
s D
ista
nce a
(mm
)
0 1 2 3 4 5 6 70
1
2
3
4
5
6
Time (s)
Dis
turb
ance
Tdist
(N
m)
Figure 4.22: System response of sideway balancing system with excessive external
disturbance
74
4.4. Discussions
The simulation is conducted based on the parameters which are similar to the design of
the robot prototype. The results from the walking simulation prove that the joint based
trajectory planning is capable of generating smooth walking motion within the limits of
actuator capacity. The dynamic simulation results of the forward walking suggest that
the robot is operating within the stable region throughout the entire walking cycle. The
balancing system in sideway direction works soundly in maintaining the balance during
the walk and is able to handle the external disturbance applied to the system up to
certain level. In general, the simulation results demonstrate that the new approaches and
algorithm proposed in Chapter 3 can be used to achieve a stable forward walk and
maintain the sideway stability.
However, there are few parameters on the design which are ignored in the simulation
model such as friction, material rigidity, etc. In order to further verify the feasibility of
the proposed conceptual design, a physical prototype will be built and tested for the
same set of conditions used in the simulation work to prove the viability of the design
concept of working under real physical conditions. Further details and discussion of the
prototype development and testing will be presented in the following chapters of this
thesis.
75
Chapter 5 Physical Robot Built-up and Real Time Tests
The simulation results in Chapter 4 indicate that the design and algorithm proposed in
Chapter 3 is viable and able to achieve stable walking as expected. In order to further
clarify the proposed concept, a physical prototype of FASM bipedal robot was built and
tested based on the configuration and algorithm discussed in Chapter 3.
5.1. Prototype Development and Description
In order to design a bipedal robot, the knowledge and intuition in multi-disciplinary
engineering are highly required. In some scenario the trial and error process is inevitable,
however it can be greatly reduced by the utilization of computer aided design and
simulation software. The availability of off-the-shelf components is one of the critical
deciding factors. When there is no suitable off-the-shelf components available, custom
fabricated parts are required where the design and fabrication process is time consuming
and more prone to error and discrepancy.
Due to cost constraint in the development of this laboratory prototype, the performance
and quality requirement of the components used have to be reduced in order to complete
the prototype within the available budget.
5.1.1. Mechanical System
In the design stage, every mechanical component was designed and modeled in
Solidworks CAD software. The components were then assembled together as an
assembly in Solidworks (Figure 5.1). By forming the assembly, any possible
interference or mismatch in dimension can be identified and corrected before the parts
are fabricated.
76
Figure 5.1: CAD model of a fully assembled FASM bipedal robot
The overall height of the robot is 0.9 m with the total weight of 7 kg. The length for
both thigh and shank are 0.3 m and the spacing between two legs is 0.15 m. The
prototype of FASM bipedal robot was mainly constructed from aluminum as it is light
weight and easy to machined (Figure 5.2). The leg links and hip section of the robot
were fabricated using the extruded aluminum profile which is available off-the-shelf
with a standard sizes and shapes. The sections of the links were connected together
using the custom fabricated parts to form the joints. Basically, the prototype can be
divided into three different assemblies namely the foot assembly, the leg assembly and
the hip assembly. All the detail mechanical drawings for each components and the
assembly drawing for the assembly can be found in Appendix A.
77
Figure 5.2: Prototype of FASM bipedal robot
The Foot Assembly
The foot assembly mainly consists of the foot plate, flexible ankle and the sensing
mechanism which is used to detect the sideways instability of the robot (Figure 5.3).
The foot plate was constructed from a 3mm thick aluminum plate with a layer of
neoprene rubber sheet attached at the bottom surface to increase the friction between the
foot and the walking surface.
Figure 5.3: CAD model of ankle assembly
78
The flexible ankle joint was constructed from a custom fabricated nylon block as the
ankle link and an aluminum bracket as the foot link (Figure 5.3). The ankle link acts as
the base of the flexible ankle joint and the foot link with a revolute joint rotates with
respect to the ankle link. The body of the rotary sensor was attached to the foot link and
the sensing shaft of the rotary sensor was connected to the ankle link via a fix shaft.
With this arrangement, the rotary sensor is able to sense the angular displacement
between the ankle link and the foot link which reflects the body tilt angle in sideways
direction.
In order to reset the angle of the rotary joint to its original position (perpendicular to the
ankle link) when the foot is not in contact with the ground, a pair of tension springs
were attached on both sides of the joint connecting the foot link and the ankle link
(Figure 5.4). The spring was connected through a series of chain so that when the foot
link is tilted to one side (clockwise or counterclockwise), only one spring will
experience tension and exert force and the one on the other side will not experience any
force (Figure 5.5).
Figure 5.4: Tension springs are attached using chain on both side of the ankle
Figure 5.5: When the foot is tilted, one side of the spring will be stretched and the one
on the opposite will exert no force
79
The Leg Assembly
The structure of the leg assembly of FASM bipedal robot consists of thigh link, shank
link, hip joint, knee joint, ankle joint and also the foot assembly (Figure 5.6). The thigh
and shank link are built from square hollow section extruded aluminum profile. Both
ends of the links are attached to the custom fabricated bracket with a ball bearing to
form the revolute joint (Figure 5.7).
Figure 5.6: CAD model of the leg assembly
Figure 5.7: Exploded view of the leg link
80
The motion of the hip joint is actuated directly by the actuator attached to the rotational
axis of the hip joint. The knee joint is actuated by the actuator located at the hip and the
motion of the actuator is transmitted to the knee joint by using a parallelogram
mechanism (Figure 5.8). The main purpose of placing the actuator at the hip plane is to
reduce the overall weight of the moving leg which in turns will minimize the dynamics
forces generated during the leg movement.
Figure 5.8: Parallelogram linkage for knee joint actuation
As discussed in chapter 3, the motion of the ankle joint of the leg is not actuated by any
actuator. In order to control the motion of the ankle joint, a pair of parallelogram
mechanism is used to actuate the ankle joint based on the motion of the hip and knee
joint. The parallelogram mechanism is arranged in such a way that it will maintain the
foot position to be always parallel to the hip plane at any configuration of the leg. The
ankle joint is connected to the ankle link of the foot assembly mentioned in the previous
section. Therefore, the orientation of the foot assembly will remain unchanged
regardless of the leg configuration (Figure 5.9).
81
Figure 5.9: Foot orientation at different leg configurations
The Hip Assembly
The hip assembly is the major part in the FASM bipedal robot assembly that houses two
leg assemblies for the right and left leg, major and minor balancing mass mechanism
and the electronics hardware for the control circuit (Figure 5.10). The base of the hip
assembly is also constructed from the hollow section extruded aluminum profile to
reduce the overall weight of the robot.
Figure 5.10: Hip assembly of the prototype
The major balancing mass is placed at the pre-calculated position for the purpose of
balancing the weight of the swinging leg when the robot is standing in single support
phase. Therefore, there is a need to have a mechanism to move the balancing mass to
the opposite position and back when the standing leg is changing from one leg to
another. With the major balancing mass placed in the correct position, ideally the robot
will be able to stand on one leg without falling or tipping over.
82
However, if there is any unknown external disturbance applied to the robot, it will cause
the robot to lose its stability. In order to compensate for the instability introduced by the
unknown external disturbance, the minor balancing mass is used. The position of the
minor balancing mass is dynamically changed based on the amount of the body tilt
angle which indicated the instability of the robot. With the smaller and lighter load, the
minor balancing mass is able to react faster to restore the balance.
The major balancing mass mechanism is fully constructed and housed inside the hollow
casing of the hip section which makes it invisible from the exterior of the robot. The
mechanism consist of the mass, linear slide, DC geared motor and pulley and belt
system for driving the mass (Figure 5.11). The mass is fabricated from cast lead with
custom shape in order to maximize the space available inside the hollow casing, another
reason to use lead as the material is because it has the highest specific weight and is
available with reasonable cost. The mass is mounted to the linear journal bearing and
attached on the linear slide to restrict the motion only to the linear axis and to achieve
smooth sliding motion of the mass.
Figure 5.11: CAD model of major balancing mass mechanism
To vary the linear position of the mass, a combination of pulley and belt system
actuated by a DC geared motor is used. In order to achieve a symmetrical weight
distribution, the motor has to be positioned at the middle of the hip which makes it
different from the conventional pulley and belt arrangement. The motor with the drive
pulley is attached at the center of the assembly and two snub pulleys are placed on each
side of the drive pulley to increase the angle of wrap on the drive pulley. Two idler
pulleys are attached at each end of the belt to form a closed loop and to keep the belt in
tension (Figure 5.11).
83
The minor balancing mass mechanism is constructed on the top side of the hip base
which is located on the layer above the major balancing mass mechanism. The
mechanism consists of the mass, linear slide, servo motor and pulley and belt system for
driving the mass (Figure 5.12). The working principle and the driving mechanism of the
minor balancing mass are identical to the one of the major balancing mass.
Figure 5.12: Minor balancing mass mechanism
5.1.2. Electronics, Logic and Microcontroller-based Control System
The electronics and control system of the FASM bipedal robot is fully stand alone and
contained within the robot body. In contrast to some bipedal robots which require a vast
amount of hardware and processing power, this design provides the advantages in terms
of system complexity and cost reduction. This is achievable due to the simplification of
the control strategy by decoupling the task of walking motion control and the robot
balancing control.
For this prototype, the walking motion controller and the balancing controller are
physically separated and run independently on different sets of program. The walking
motion is controlled by a microcontroller which controls the leg actuators motion to
create the walking pattern and also controls the positioning of the major balancing mass
based on the current standing leg. The balancing control is handled by a separate
microcontroller which is responsible for maintaining the sideway balance of the robot
84
during single support phase by varying the position of the minor balancing mass based
on the robot tilt angle.
The Walking Controller
Figure 5.13 shows the block diagram of the walking controller. The 8-bit Microchip
PIC18F2550 microcontroller is used as the main controller. This microcontroller is
equipped with a comprehensive peripheral such as pulse width modulation (PWM)
generator, timer interrupt, analog to digital converter (ADC) and universal
asynchronous receiver transmitter (UART) module. The built-in features of the
microcontroller help to reduce the requirement of using external components and hence
reduce the complexity of the electronics circuit and overall size of the control circuit
hardware. The complete electronics schematic of the walking controller can be found in
Appendix B.
Figure 5.13: System block diagram of the walking controller
The major task of the walking controller is to control the motion of the leg actuators to
achieve the walking motion. The actuators used for actuating the leg are Dynamixel
85
RX-64 Smart Actuator from Robotis. This actuator combines the motor, drive and
control electronics, sensor and communication module in one package. The on-board
controller of the actuator is capable of performing closed-loop position control based on
the reference angle sent from the microcontroller.
The communication between the actuator and the microcontroller is using RS-485
protocol which allows more than one device to be controlled by a single host using the
daisy chain network. In order for the microcontroller to be able to communicate with the
actuator, a RS-485 host has to be setup on the microcontroller side. The microcontroller
does not have a built-in RS-485 communication interface hardware. Therefore, the RS-
485 communication is achieved by converting UART (RS-232) protocol to RS-485
protocol. On the software side, the data streams of RS-485 are still similar with the
native UART protocol with an addition of preceding byte to indicate the address of the
target device in the daisy chain. For the hardware side, the logic level of RS-485 and
UART are different. UART is using full duplex communication with the common
ground as the voltage reference for the signal and RS-485 is using half duplex
differential signal for the data transmission. In order to match the signal requirement of
RS-485 protocol, a logic level converter chip MAX485 from Maxim is used to convert
the UART signal from microcontroller to RS-485 signal to be sent to the actuator.
Besides controlling the motion of the leg actuators, the walking controller is also
responsible for controlling the position of the major balancing mass. The position of the
major balancing mass depends on the side of the standing leg. In order to be able to
accurately position the mass, a quadrature encoder is attached on the driving motor to
count the number of revolution of the driving pulley. At both end of the sliding rail, a
limit switch is attached to prevent the mass from overshooting and also acts as a homing
switch for the encoder to start the count.
Figure 5.14 shows the logic flowchart of the program on the walking controller. Once
started, the controller will initialize the communication with the leg actuators and set the
joints angle to standing position and move the major balancing mass to the middle
position. Next, the controller will start sending position data to the leg actuators to
perform the walking pattern. The position data is generated based on the polynomial
blending algorithm discussed in Chapter 3. The position data is calculated separately
86
using MATLAB and is transferred and stored in the microcontroller code in the form of
lookup table. The position data is generated with the sampling period of 10ms and the
position command to the actuator is updated regularly by the microcontroller on every
timer interrupt with the period of 10ms. The full program code of the controller can be
found in Appendix C.
Figure 5.14: Program flowchart of the walking controller
87
When the robot is standing on both legs, the major balancing mass will be positioned at
the middle of the hip. Before the right leg is lifted, the mass will be moved to a preset
position at the left side of the hip. Hence when the right leg is lifted and the robot is
standing only on the left leg, the balancing mass will compensate for the weight of the
hanging right leg. This sequence is executed repeatedly for the right and left standing
leg throughout the walking cycle.
The Sideway Balancing Controller
The sideway balancing controller is a secondary controller which is dedicated to handle
the task of maintaining the sideway balance of the robot by controlling the position of
the minor balancing mass. The controller receives input from the potentiometer which
measures the amount of tilt angle of the robot body and will try to maintain the body to
be always in upright position by moving the mass accordingly.
Figure 5.15 shows the block diagram of the sideway balancing controller. The
microcontroller used in the balancing controller is Microchip PIC18F2550 similar to the
one used for the walking controller. Two potentiometers are connected to the ADC port
of the microcontroller to provide continuous measurement of the tilt angle from both
left and right ankle. Another potentiometer is used for measuring the current position of
the minor balancing mass. The potentiometer used is a multi-turn potentiometer which
is connected parallel to the shaft of the driving pulley. Therefore by knowing the
diameter and the angular position of the pulley, the linear position of the mass can be
calculated by the controller.
In order to drive the mass, a DC motor with the gear reduction from the servo motor is
used. The rotation of the DC motor is controller directly by the microcontroller via a
motor driver. The sideway balancing controller also receives signals from the walking
controller which indicates the status of the standing leg. The complete electronics
schematic of the sideway balancing controller can be found in Appendix B.
88
Figure 5.15: System block diagram of the sideway balancing controller
Figure 5.16 shows the logic flowchart programmed into the sideway balancing
controller. At the beginning, the program will check for the status signal from the
walking controller. The status signals are sent via two digital inputs indicating the
current state of the legs. The signals are sent in the form of Boolean logic, one for the
left leg and one for the right leg. If the current standing leg is left leg and right leg is
hanging, the data sent will be ‘1’ for left signal and ‘0’ for right signal. If the current
standing leg is right leg and left leg is hanging, the data sent will be ‘0’ for left signal
and ‘1’ for right signal. If both leg is standing (during double support phase), both left
and right signals will be ‘1’. If both signals are ‘0’, it indicates that the walking
controller is at stopping state and the sideway balancing controller should not perform
any task.
When the current standing leg is left leg, the controller will move the minor balancing
mass above the left leg, read the sensor from the left ankle and start the closed-loop
balancing control. When the current standing leg is right leg, the controller will move
the minor balancing mass above the right leg, read the sensor from the right ankle and
start the closed-loop balancing control. When the robot is standing on both legs, the
controller will move the mass to the middle of the hip and turn off the closed loop
control since during double support phase the robot is stable by default.
89
Figure 5.16: Program flowchart of the sideway balancing controller
Once activated, the closed-loop system (Figure 5.17) will continuously monitor the
reading from the rotary sensor of the standing leg’s ankle joint. If the angle detected is
not equal to the set point (θ=0º) the PID control will actuate the motor to move the mass
in order to tilt the body back to the upright position. The closed-loop systems for the left
and right standing leg are identical except the input of the actual tilt angle is read from
different sensors depending on which leg the robot is standing.
Figure 5.17: Control block diagram of the sideway walking controller
90
5.2. Experimental Results
With the fully assembled prototype, each and every individual system of the FASM
bipedal robot is tested and checked for any fabrication discrepancy. After repeated
testing and fine tuning the hardware, the systems show a satisfactory performance and
consistency. The calibration process consumed a considerable amount of time especially
in getting the accurate reference angle for each joint versus the ADC count from the
joint sensor of the motor. A standalone data acquisition system is also setup to log the
information required for performance recording and analysis during the robot operation.
5.2.1. Forward Walking Motion Performance
During the testing, the FASM bipedal robot shows the ability to walk in a straight
direction on a flat ground with an average speed of 0.02 m/s with and average energy
consumption of 36 W measured from the power consumed by all the actuators. It also
demonstrates the ability of maintaining the forward balance during the single support
phase. The physical measurements of the step length taken by the robot agree with the
results shown in the simulated walking trajectory.
Figure 5.18 and Figure 5.19 show the sequential snapshots of the robot when
performing a forward walking motion. The snapshots are taken at the following
sequence of the motion, foot lifting, foot landing, and hip push and it repeats for the
motion of the other leg. The test shows that the robot is able to walk in forward
direction for indefinite distance.
The actual joint angle measurement is carried out in order to confirm that the leg
actuators are able to cope with the trajectory assigned to the joints. During the walking
motion, the actual joint position of each joint is read and logged. Figure 5.20 shows the
plot of the actual joint position compare to the simulated joint trajectory for each joint
when performing two steps of walk.
91
Figure 5.18: Snapshot of the robot during forward walking sequence
92
Figure 5.19: Snapshot of the robot during forward walking sequence (continued)
93
Figure 5.20: Actual joint angle trajectory during the walking cycle
The reliability of the forward walking stability has been proven by the result of the
simulation in previous chapter based on the calculation of foot reaction force position.
Due to the proper positioning of the dominant hip mass during the single support phase,
the stability margin in forward direction only varies between 87-98% throughout the
walking cycle. In order to further verify this condition, the actual reaction force on the
94
foot of the physical robot is measured during the walk. The measurement is achieved by
attaching a series of force sensors at each corner of the foot (Figure 5.21) and by
recording the force of each sensor, the position of the reaction force from the ankle can
be calculated as follows:
1 2 3 4
1 2 3 4
( )( ) ( )( )( )
R FF F x F F xdF F F F
+ − + +=
+ + + (5.1)
Figure 5.21: Position of force sensors on the foot sole for reaction force measurement
Figure 5.22 shows the distribution of the reaction force position during the single
support phase while the swinging leg is moved forward to make a step. Figure 5.23
shows the plot of actual stability margin calculated from the measured reaction force
and the simulated stability margin during single support phase. There is a slight
difference between the simulated results and the actual results obtain from the prototype.
The possible cause of this discrepancy is because in the simulation, the mass of the links
are assumed to be point mass in order to reduce the complexity of the calculation, where
in reality the mass of links are distributed. However, the range of stability margin
between the actual and simulated results is still considerably close.
0 0.5 1 1.5 2 2.5d (cm)
Figure 5.22: Distribution of reaction force position during single support phase
95
0 0.5 1 1.5 2 2.5 3 3.50.86
0.88
0.9
0.92
0.94
0.96
0.98
Time (s)
Sta
bilit
y M
argi
n (SM
)
simulatedactual
Figure 5.23: Actual vs simulated stability margin during single support phase
5.2.2. Sideway Balancing System Performance
The sideway balancing system has been proven to be able to handle the small
disturbance created by the dynamic forces of the swinging leg during the forward
walking experiment. The balancing system is working independently to adjust the
position of the mass in order to maintain the standing posture of the robot throughout
the entire walking cycle.
The robustness of the sideway balancing system is further tested by applying an external
disturbance while the robot is standing in the single support phase. The disturbance is
created by applying a quick push on the side of the hip to simulate an impulse input that
will destabilize the robot in sideway direction. The magnitude of the pushing force is
measured by a force sensor attached at a fixed point on the hip plane (Figure 5.24).
Based on the measured force, the disturbance torque about the ankle joint can be
calculated by multiplying the force with the horizontal distance from the fixed point to
the standing leg.
96
Figure 5.24: Force sensor attached at the edge of the hip to measure the magnitude of
the external disturbance
Figure 5.25 shows the plot of the body tilt angle θ, minor balancing mass distance a and
the sideway disturbance applied to the robot body Tdist. The disturbance is applied
manually by human in a random manner. Once the disturbance is applied, the robot
body starts to rotate sideway about the flexible ankle joint. The amount of rotation is
sensed by the rotary sensor and sent to the sideway balancing controller which will
control the position of the minor balancing mass in order to restore the balance. The
results from several trials show that the robot is able to cope with the disturbance less
than 1Nm (5N push at the edge of the hip).
0 5 10 15 20 25 30 35-2
-1
0
1
2
Tilt
Ang
le θ
(de
g)
0 5 10 15 20 25 30 350
20
40
60
Mas
s D
ista
nce a
(mm
)
0 5 10 15 20 25 30 35-0.5
0
0.5
1
Time (s)
Ext
erna
l Dis
turb
ance
Tdist
(Nm
)
Figure 5.25: The response of the robot in sideway direction when external disturbance is
applied
97
The plot shown in Figure 5.26 records the event when the disturbance of more than
1Nm is applied to the robot. It can be seen that the controller is reacting to correct the
disturbance by moving the mass, but the weight of the mass is not enough to create
sufficient counter torque to rotate the robot back to upright position.
0 5 10 15 20 25 30 35 40 45-5
0
5
10
Tilt
Ang
le θ
(de
g)
0 5 10 15 20 25 30 35 40 45-100
0
100
200
300
Mas
s D
ista
nce a
(mm
)
0 5 10 15 20 25 30 35 40 45-2
0
2
4
Time (s)
Ext
erna
l Dis
turb
ance
T dist (N
m)
Figure 5.26: The response of the robot in sideway direction when excessive external
disturbance is applied
5.3. Results Discussion
The proposed design of the FASM bipedal robot is successfully implemented in the
form of physical prototype. This prototype is mainly developed only as a platform to
verify the design and strategy proposed in this work. Throughout the development of the
prototype, fabrication of parts is the greatest challenge especially when all parts have to
be fabricated using manual machining tools. As an experimental platform, the prototype
successfully performs the tasks as expected in the proposed design.
From the experimental results, it is proven that the concept of decoupling the walking
and balancing tasks is feasible. The experiment on forward walking shows that the
98
walking task can be performed independently based on the preplanned trajectory while
the sideway balancing controller continuously compensate for any possible disturbance
to maintain the standing posture of the robot. A separate experiment is carried out in
order to further verify the capability of the robot in handling external disturbance. The
results of the experiments conclude that the system is able to handle and correct the
unknown external disturbance up to certain intensity. This limitation is expected as the
parameters of the hardware such as the weight of the balancing mass and the motor
response time have certain limit.
During the experiment, the author observed some minor issues which affect the
performance of the robot. There is a slight backlash on one of the leg actuator which
possibly caused by the wear and tear of the internal gear trains due to the intensive
testing. The backlash contributed to the error of the joint angle which directly affects the
step length taken by the robot. Although it is not consistent, from several rounds of
experiment conducted, the error of step length is around 5mm for a step length of
100mm.
Another issue is the noise captured by the controller which affects the accuracy of the
sensors reading. Further investigation reveals that the noise is originated from the motor,
since the motor and the rest of the circuits are sharing the same power supply, the noise
is distributed throughout the entire circuit. Separating the power supply for the motor
and the remaining part of the circuit rectify this problem.
Overall, the results of the experiment agree with the simulation results which modeled
are constructed based on the mathematical model developed in chapter 3. There are
some slight discrepancies between the simulated and experimental results which are
mainly due to the un-modeled parameters and assumptions made during the simulation.
99
Chapter 6 Conclusions and Future Works
In this thesis, the design and algorithm of flexi ankle split mass minimalist bipedal robot
is proposed. The emphasis is on the minimalist sensing and balancing approach and the
decoupling of the walking and stability control algorithm. The unique mechanical
design of the leg actuation system eliminates the requirement of having an actuator at
the ankle joint. The actuation on the ankle joint is achieved by a series of parallelogram
mechanism which controls the motion of the ankle joint based on the position of the leg
links.
The novel design concept has leads to following design merits:
• The usage of parallelogram mechanism to actuate the ankle joint reduces the
complexity of the mechanical design and number of actuators required by the
robot and in turns greatly reduces the total weight of the robot which is the
major issue in bipedal robot design.
• The implementation of hip-mass carrying strategy in planning the walking gait is
proven to be effective in minimizing the perturbation and foot landing impact
during the single support phase. Furthermore, this strategy also contributes to the
preservation of the stability margin in forward walking due to the precise
distribution of weight.
• The polynomial trajectory planning of the joint angles works efficiently in
providing a smooth motion of the leg and also minimizes the dynamic forces
that will contribute as a disturbance to the system.
• Unlike conventional minimalist bipedal robot which needs an external structure
to keep the robot balance in sideway direction, FASM bipedal robot is able to
walk independently in a free space without requiring any extra structure to
maintain the sideway balance.
• The strategy of decoupling the walking and balancing system simplifies the real-
time control tasks by delegating the walking and balancing process into two
100
different controllers. This implementation reduces the requirements of
computing power and the complexity of the control system.
The mathematical model of the proposed walking and balancing algorithms are derived
and the feasibility of these algorithms are tested and proven to be viable based on the
simulation results. A physical prototype is constructed based on the model and
simulation developed in order to prove the practicality of the algorithms proposed. The
prototype is experimentally tested for walking in normal walking environment and also
to handle any unknown external disturbance. The results of the experiment show that
the robot is able to perform stable walk without requiring any external assistance and is
able to dynamically maintain the balance even when the disturbance is applied.
Throughout the research process, it comes to realization of the author that there is
several potential direction of future research that can be expanded from the findings of
this research work.
Extension of Balancing and Sensing Mechanism in Coronal Direction
Practically, for a bipedal robot to be able to maneuver around human working
environment, the robot has to be able to locomote around three-dimensional space. In
the current design of FASM bipedal robot, the coronal balance of the robot is achieved
by ensuring the total reaction force of the robot to always fall inside the area of the
support polygon (Section 3.3). However, this method will only be able to handle the
amount of disturbance up to certain level depending on the size of the foot.
The concept of stability detection using flexible ankle joint and performing corrective
actions by positioning the balancing mass can also be extended to handle the stability
control on coronal plane. This implementation is expected to improve the disturbance
immunity in coronal plane. The results gathered from this research also suggest the
possibility to implement the decoupling strategy and stability control algorithm in a full
scale humanoid robot with a torso and utilizing the weight of the torso as a counter
balance to compensate for the disturbance.
101
Mechanism and Gait for Three-Dimensional Walking
The minimalist four degree-of-freedom walking mechanism introduced in this work is
only able to provide the walking motion in two-dimensional (forward-backward)
direction. The two-dimensional walking gait exhibited by the FASM bipedal robot can
be perfected by adding the capability to walk in three-dimensional direction. Walking in
three-dimensional direction can be achieved by the FASM bipedal robot with an
additional degree-of-freedom on each leg.
Figure 6.1 shows the different sequence combination of leg roll angle in order to
achieve the walking motion in sideways direction. The sequence starts by lifting one leg
and roll the leg with a small angle (5-10 degrees) and set the foot down to touch the
ground (Figure 6.1 (a)-(d)). Next, the other leg is lifted and the roll joint of the standing
leg is actuated to turn the hip plane to make both feet parallel (Figure 6.1 (e)-(f)). By
executing the sequence repeatedly, the robot can achieve the walking in three-
dimensional space.
Figure 6.1: Leg motion sequence for walking in sideways direction
102
References
[1] H.-ok Lim and A. Takanishi, “Biped walking robots created at Waseda University: WL and WABIAN family.,” Philosophical transactions. Series A, Mathematical, physical, and engineering sciences, vol. 365, no. 1850, pp. 49-64, Jan. 2007.
[2] A. Takanishi, M. Ishida, Y. Yamazaki, and I. Kato, “The realization of dynamic walking by the biped robot WL- 10RD,” in Proceedings of the 1985 International Conference on Advanced Robotics, 1985, pp. 459-466.
[3] A. Takanishi, H. Lim, M. Tsuda, and I. Kato, “Realization of dynamic biped walking stabilized by trunk motion on a sagittally uneven surface,” in Proceedings of the 1990 IEEE International Workshop on Intelligent Robots and Systems, 1990, pp. 323–330.
[4] J.-ichi Yamaguchi, A. Takanishi, and I. Kato, “Development of a biped walking robot compensating for three-axis moment by trunk motion,” in Proceedings of the 1993 IEEE/RSJ International Conference on Intelligent Robots and Systems, 1993, pp. 561–566.
[5] Y. Sugahara, T. Hosobata, Y. Mikuriya, H. Sunazuka, H. Lim, and A. Takanishi, “Realization of dynamic human-carrying walking by a biped locomotor,” in Proceedings of the 2004 IEEE International Conference on Robotics and Automation, 2004, pp. 3055–3060.
[6] K. Hirai, M. Hirose, Y. Haikawa, and T. Takenaka, “The development of Honda humanoid robot,” in Proceedings of the 1998 IEEE International Conference on Robotics and Automation, 1998, pp. 1321–1326.
[7] Y. Sakagami, R. Watanabe, C. Aoyama, S. Matsunaga, N. Higaki, and K. Fujimura, “The intelligent ASIMO: System overview and integration,” in Proceedings of the 2002 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2002, pp. 2478–2483.
[8] T. Ishida, “Development of a small biped entertainment robot QRIO,” in Proceedings of the 2004 International Symposium on Micro-Nanomechatronics and Human Science and The Fourth Symposium of Micro-Nanomechatronics for Information-Based Society, 2004, pp. 23–28.
[9] R. Kurazume, S. Tanaka, M. Yamashita, T. Hasegawa, and K. Yoneda, “Straight legged walking of a biped robot,” in Proceedings of the 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2005, pp. 337–343.
[10] K. Kaneko et al., “Design of prototype humanoid robotics platform for HRP,” in Proceedings of the 2002 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2002, pp. 2431–2436.
[11] K. Kaneko et al., “Humanoid robot HRP-2,” in Proceedings of the 2004 IEEE International Conference on Robotics and Automation, 2004, pp. 1083-1090.
103
[12] K. Nishiwaki, J. Kuffner, S. Kagami, M. Inaba, and H. Inoue, “The experimental humanoid robot H7: a research platform for autonomous behaviour.,” Philosophical transactions. Series A, Mathematical, physical, and engineering sciences, vol. 365, no. 1850, pp. 79-107, Jan. 2007.
[13] I. W. Park, J. Y. Kim, S. W. Park, and J. H. Oh, “Development of humanoid robot platform KHR-2 (KAIST Humanoid Robot-2),” in Proceedings of the 4th IEEE/RAS International Conference on Humanoid Robots, 2004, pp. 292–310.
[14] I. W. Park, J. Y. Kim, J. Lee, and J. H. Oh, “Mechanical design of humanoid robot platform KHR-3 (KAIST Humanoid Robot - 3 : HUBO),” in Proceedings of the 5th IEEE-RAS International Conference on Humanoid Robots, 2005, pp. 321–326.
[15] D. Gouaillier et al., “Mechatronic design of NAO humanoid,” in Proceedings of the 2009 IEEE International Conference on Robotics and Automation, 2009, pp. 769–774.
[16] ReWalkTM Bionics Research Inc., “ReWalkTM U.S. - the wearable bionic suit,” 2012. [Online]. Available: http://www.rewalk.us/. [Accessed: 15-Feb-2012].
[17] Y. Takahashi et al., “Robotic assistance for aged people,” in Proceedings of the 37th SICE Annual Conference International Session Papers, 1998, pp. 853–858.
[18] J. Lee et al., “Development of a humanoid robot platform HUBO FX-1,” in Proceedings of the 2006 SICE-ICASE International Joint Conference, 2006, pp. 1190-1194.
[19] Toyota Motor Corporation, “Expo 2005 aichi | TOYOTA MOTOR CORPORATION GLOBAL WEBSITE,” 2005. [Online]. Available: http://www.toyota-global.com/innovation/partner_robot/aichi_expo_2005/index03.html. [Accessed: 16-Feb-2012].
[20] L. Geppert, “Qrio, the robot that could,” IEEE Spectrum, vol. 41, no. 5, pp. 34–37, 2004.
[21] Boston Dynamics, “Boston dynamics: dedicated to the science and art of how things move,” 2009. [Online]. Available: http://www.bostondynamics.com/robot_petman.html. [Accessed: 15-Feb-2012].
[22] Y. Mrabet, “File:Human anatomy planes.svg - Wikipedia, the free encyclopedia,” 2008. [Online]. Available: http://en.wikipedia.org/wiki/File:Human_anatomy_planes.svg. [Accessed: 14-Feb-2012].
[23] C. Chevallereau and P. Sardain, “Design and actuation optimization of a 4-axes biped robot for walking and running,” in Proceedings of the 2000 IEEE International Conference on Robotics and Automation, 2000, pp. 3365–3370.
104
[24] V. Lebastard, Y. Aoustin, and F. Plestan, “Estimation of absolute orientation for a bipedal robot: experimental results,” IEEE Transactions on Robotics, vol. 27, no. 1, pp. 170-174, Feb. 2011.
[25] K. Hosoda, T. Takuma, and A. Nakamoto, “Design and control of 2D biped that can walk and run with pneumatic artificial muscles,” in Proceedings of the 6th IEEE-RAS International Conference on Humanoid Robots, 2006, pp. 284-289.
[26] Q. Huang and T. Hase, “Energy-efficient trajectory planning for biped walking robot,” in Proceedings of the 2006 IEEE International Conference on Robotics and Biomimetics, 2006, pp. 648-653.
[27] E. Choong, C.-meng Chew, A.-neow Poo, and G.-soon Hong, “Mechanical design of an anthropomorphic bipedal robot,” in Proceedings of the First International Conference on Humanoid, Nanotechnology, Information Technology, Communication and Control Environment and Management (HNICEM), 2003.
[28] M. Kumagai and T. Emura, “Sensor-based walking of human type biped robot that has 14 degree of freedoms,” in Proceedings of the Fourth Annual Conference on Mechatronics and Machine Vision in Practice, 1997, pp. 112–117.
[29] D. Tlalolini, C. Chevallereau, and Y. Aoustin, “Human-like walking: optimal motion of a bipedal robot with toe-rotation motion,” IEEE/ASME Transactions on Mechatronics, vol. 16, no. 2, pp. 310-320, Apr. 2011.
[30] T. Takahashi and A. Kawamura, “Posture control using foot toe and sole for biped walking robot ‘Ken’,” in Proceedings of the 7th International Workshop on Advanced Motion Control, 2002, pp. 437-442.
[31] F. Pfeiffer, K. Loffler, and M. Gienger, “The concept of jogging johnnie,” in Proceedings of the 2000 IEEE International Conference on Robotics and Automation, 2002, pp. 3129–3135.
[32] R. Sellaouti, A. Konno, and F. B. Ouezdou, “Design of a 3 dofs parallel actuated mechanism for a biped hip joint,” in Proceedings of the 2002 IEEE International Conference on Robotics and Automation, 2002, pp. 1161–1166.
[33] L. Wang, Z. Yu, and H. Li, “Study on optimal design for two DOF parallel ankle joint mechanism of a biped robot,” in Proceedings of the 2008 IEEE International Conference on Mechatronics and Automation, 2008, pp. 155–160.
[34] S. Kajita and K. Tani, “Adaptive gait control of a biped robot based on realtime sensing of the ground profile,” in Proceedings of the 1996 IEEE International Conference on Robotics and Automation, 1996, pp. 570-577.
[35] T. C. F. Wong and Y. Hung, “Stabilization of biped dynamic walking using gyroscopic couple,” in Proceedings of the 1996 IEEE International Joint Symposia on Intelligence and Systems, 1996, pp. 102–108.
105
[36] N. M. Mayer, F. Farkas, and M. Asada, “Balanced walking and rapid movements in a biped robot by using a symmetric rotor and a brake,” in Proceedings of the 2005 IEEE International Conference on Mechatronics & Automation, 2005, pp. 345–350.
[37] T. Lee, P. Jeng, and W. A. Gruver, “Control of a 5-link biped robot for steady walking,” in Proceedings of the 1988 IEEE International Symposium on Intelligent Control, 1988, pp. 484-489.
[38] S. Kim and T. Yang, “Control system design of pelvis platform for biped stability,” in Proceedings of the 2007 International Conference on Control, Automation and Systems, 2007, pp. 988-993.
[39] S. Anderson, C. G. Atkeson, and J. K. Hodgins, “Coordinating feet in bipedal balance,” in Proceeidngs of the 6th IEEE-RAS International Conference on Humanoid Robots, 2006, pp. 624–628.
[40] J. H. Kim, J. Y. Kim, and J. H. Oh, “Adjustment of home posture of a biped humanoid robot using an inertial sensor and force torque sensors,” in Proceedings of the 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2007, pp. 2223–2229.
[41] Y. Okumura, T. Tawara, K. Endo, T. Furuta, and M. Shimizu, “Realtime ZMP compensation for biped walking robot using adaptive inertia force control,” in Proceedings of the 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2003, pp. 335–339.
[42] K. Hashimoto et al., “Avoidance behavior from external forces for biped vehicle,” in Proceedings of the 2010 IEEE International Conference on Robotics and Automation, 2010, pp. 4715-4720.
[43] G. Mann, “Stability control in an actively balanced bipedal robot,” in Proceedings of the Australian Conference on Robotics and Automation, 2000, pp. 191–195.
[44] T. McGeer, “Passive dynamic walking,” The International Journal of Robotics Research, vol. 9, no. 2, pp. 62–82, 1990.
[45] T. McGeer, “Passive walking with knees,” in Proceedings of the 1990 IEEE International Conference on Robotics and Automation, 1990, pp. 1640–1645.
[46] M. Garcia, A. Chatterjee, A. Ruina, and M. Coleman, “The simplest walking model: stability, complexity, and scaling,” Journal of biomechanical engineering, vol. 120, no. 2, pp. 281-8, Apr. 1998.
[47] Y. Hanazawa, H. Suda, Y. Iemura, and M. Yamakita, “Active walking robot mimicking flat-footed passive dynamic walking,” in Proceedings of the IEEE International Conference on Robotics and Biomimetics, 2012, pp. 1281-1286.
106
[48] J. Zhao, X. Liu, X. Zang, and X. Wu, “A PD control scheme for passive dynamic walking based on series elastic actuator,” in Proceedings of the International Conference on Mechatronics and Automation, 2012, pp. 255-260.
[49] Y. Jeon, Y.-sik Park, and Y. Park, “A study on stability of passive dynamic walking model with flat feet,” in Proceedings of the SICE Annual Conference, 2012, pp. 564-565.
[50] T. Takuma, K. Hosoda, M. Ogino, and M. Asada, “Stabilization of quasi-passive pneumatic muscle walker,” in Proceedings of the 4th IEEE/RAS International Conference on Humanoid Robots, 2004, pp. 627–639.
[51] A. D. Kuo, “Energetics of actively powered locomotion using the simplest walking model,” Journal of Biomechanical Engineering, vol. 124, no. 1, p. 113, 2002.
[52] S. Anderson, M. Wisse, C. Atkeson, J. Hodgins, G. Zeglin, and B. Moyer, “Powered bipeds based on passive dynamic principles,” in Proceedings of the 5th IEEE-RAS International Conference on Automatic Control, 2005, pp. 110–116.
[53] M. Wisse, G. Feliksdal, J. Van Frankkenhuyzen, and B. Moyer, “Passive-based walking robot,” IEEE Robotics and Automation Magazine, vol. 14, no. 2, IEEE, pp. 52–62, 2007.
[54] T. Takuma, K. Hosoda, and M. Asada, “Walking stabilization of biped with pneumatic actuators against terrain changes,” in Proceedings of the 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2005, pp. 4095–4100.
[55] Y. Cao, S. Suzuki, and K. Fang, “A rocking period control method for a biped quasi passive walker using a mechanical oscillator,” in Proceedings of the IEEE International Conference on Information Theory and Information Security, 2010.
[56] M. Wisse and J. V. Frankenhuyzen, “Design and construction of MIKE ; a 2D autonomous biped based on passive dynamic walking,” in Proceedings of the International Symposium of Adaptive Motion and Animals and Machines, 2003.
[57] M. Vukobratovic and D. Juricic, “Contribution to the synthesis of biped gait,” IEEE Transactions on Biomedical Engineering, vol. 16, no. 1, pp. 1-6, Jan. 1969.
[58] M. Vukobratović, “Contribution to the study of anthropomorphic systems,” Kybernetika, vol. 8, no. 5, pp. 404–418, 1972.
[59] Q. Huang, “An improved ZMP trajectory design for the biped robot BHR,” in Proceedings of the 2011 IEEE International Conference on Robotics and Automation, 2011, pp. 569-574.
[60] H. Wongsuwarn and D. Laowattana, “Experimental study for a FIBO humanoid robot,” in Proceedings of the 2006 IEEE Conference on Robotics, Automation and Mechatronics, 2006, pp. 1–6.
107
[61] Y. Chang, Y. Oh, and D. Kim, “Balance control in whole body coordination framework for biped humanoid robot MAHRU-R,” in Proceedings of the 17th IEEE International Symposium on Robot and Human Interactive Communication, 2008, pp. 401-406.
[62] T. Yoshikawa and O. Khatib, “Compliant humanoid robot control by the torque transformer,” in Proceedings of the 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2009, pp. 3011-3018.
[63] T. Ishida and Y. Kuroki, “Development of sensor system of a small biped entertainment robot,” in Proceedings of the 2004 IEEE International Conference on Robotics and Automation, 2004, pp. 648–653.
[64] M. Vukobratović and B. Borovac, “Zero-moment point-thirty five years of its life,” International Journal of Humanoid Robotics, vol. 1, no. 1, pp. 157–173, 2004.
[65] K. Erbatur and O. Kurt, “Humanoid walking robot control with natural ZMP references,” in Proceedings of the 32nd Annual Conference on IEEE Industrial Electronics, 2006, pp. 4100-4106.
[66] H.-ok Lim, S. A. Setiawan, and A. Takanishi, “Balance and impedance control for biped humanoid robot locomotion,” in Proceedings of the 2001 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2001, pp. 494-499.
[67] P. Sardain and G. Bessonnet, “Zero moment point-measurements from a human walker wearing robot feet as shoes,” IEEE Transactions on Systems, Man and Cybernetics, Part A: Systems and Humans, vol. 34, no. 5, pp. 638–648, 2004.
[68] L. Liu, M. Zhao, D. Lin, J. Wang, and K. Chen, “Gait designing of biped robot according to human walking based on six-axis force sensors,” in Proceedings of the 2003 IEEE International Symposium on Computational Intelligence in Robotics and Automation, 2003, pp. 360–365.
[69] D. Surdilovic, Z. Jinyu, and R. Bernhardt, “Gait phase and centre of pressure measuring system,” in Proceedings of the 2nd IEEE International Conference on Industrial Informatics, 2004, pp. 331–334.
[70] D. Che, O. Kwon, and J. Shim, “Design of multipurpose sensing system for human gait analysis,” in Proceedings of the 2006 SICE-ICASE International Joint Conference, 2006, pp. 1168–1173.
[71] L. Zhang and C. Zhou, “Human and humanoid robot interaction using 6-Axis force torque sensors,” in Proceedings of the 7th IEEE Conference on Industrial Electronics and Applications, 2012, pp. 1274-1278.
[72] J. H. Park and H. Chung, “ZMP compensation by online trajectory generation for biped robots,” in Proceedings of the 1999 IEEE International Conference on Systems, Man, and Cybernetics, 1999, pp. 960–965.
108
[73] R. Kurazume, T. Hasegawa, and K. Yoneda, “The sway compensation trajectory for a biped robot,” in Proceedings of the 2003 IEEE International Conference on Robotics and Automation, 2003, pp. 925-931.
[74] K. Loffler, M. Gienger, F. Pfeiffer, and H. Ulbrich, “Sensors and control concept of a biped robot,” IEEE Transactions on Industrial Electronics, vol. 51, no. 5, pp. 972–980, 2004.
[75] S. Kagami, Y. Takahashi, K. Nishiwaki, M. Mochimaru, and H. Mizoguchi, “High-speed matrix pressure sensor for humanoid robot by using thin force sensing resistance rubber sheet,” in Proceedings of the 2004 IEEE Conference on Sensors, 2004, pp. 1534–1537.
[76] A. Takanishi and I. Kato, “A biped walking robot having a ZMP measurement system using universal force-moment sensors,” in Proceedings of the 1991 IEEE/RSJ International Workshop on Intelligent Robots and Systems, 1991, pp. 1568-1573.
[77] A. Kalamdani, C. Messom, and M. Siegel, “Robots with sensitive feet,” IEEE Instrumentation and Measurement Magazine, vol. 10, no. 5, IEEE, pp. 46–53, 2007.
[78] K. Erbatur, A. Okazaki, K. Obiya, T. Takahashi, and A. Kawamura, “A study on the zero moment point measurement for biped walking robots,” in Proceedings of the 7th IEEE International Workshop on Advanced Motion Control, 2002, pp. 431–436.
[79] J. Yamaguchi and A. Takanishi, “Multisensor foot mechanism with shock absorbing material for dynamic biped walking adapting to unknown uneven surfaces,” in Proceedings of the 1996 IEEE/SICE/RSJ International Conference on Multisensor Fusion and Integration for Intelligent Systems, 1996, pp. 233–240.
[80] G. Kinoshita, C. Oota, H. Osumi, and M. Shimojo, “Acquisition of reaction force distributions for a walking humanoid robot,” in Proceedings of the 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2004, pp. 3859–3864.
[81] A. Sano and J. Furusho, “Realization of natural dynamic walking using the angular momentum information,” in Proceedings of the 1990 IEEE International Conference on Robotics and Automation, 1990, pp. 1476–1481.
[82] S. Kajita et al., “Resolved momentum control: humanoid motion planning based on the linear and angular momentum,” in Proceedings of the 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2003, pp. 1644-1650.
[83] A. Takhmar, M. Alghooneh, K. Alipour, S. Ali, and A. Moosavian, “MHS measure for postural stability monitoring and control of biped robots,” in Proceedings of the 2008 IEEE/ASME International Conference on Advanced Intelligent Mechatronics, 2008, pp. 400–405.
109
[84] C. Tang, G. Yan, and Z. Lin, “Walking control for compass-like biped robot with underactuated ankle,” in Proceedings of the 10th World Congress on Intelligent Control and Automation, 2012, pp. 3852-3857.
[85] B. Ugurlu and A. Kawamura, “Bipedal trajectory generation based on combining inertial forces and intrinsic angular momentum rate changes: eulerian ZMP resolution,” IEEE Transactions on Robotics, vol. 28, no. 6, pp. 1406-1415, Dec. 2012.
[86] a. Goswami and V. Kallem, “Rate of change of angular momentum and balance maintenance of biped robots,” in Proceedings of the 2004 IEEE International Conference on Robotics and Automation, 2004, pp. 3785-3790 Vol.4.
[87] S.-H. Lee and A. Goswami, “Ground reaction force control at each foot: A momentum-based humanoid balance controller for non-level and non-stationary ground,” in Proceedings of the 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2010, pp. 3157-3162.
[88] D. N. Lee, J. R. Lishman, and J. a. Thomson, “Regulation of gait in long jumping.,” Journal of Experimental Psychology: Human Perception and Performance, vol. 8, no. 3, pp. 448-459, 1982.
[89] A. E. Patla and J. N. Vickers, “How far ahead do we look when required to step on specific locations in the travel path during locomotion?,” Experimental brain research, vol. 148, no. 1, pp. 133-8, Jan. 2003.
[90] A. E. Patla, S. D. Prentice, S. Rietdyk, F. Allard, and C. Martin, “What guides the selection of alternate foot placement during locomotion in humans,” Experimental Brain Research, vol. 128, no. 4, pp. 441-450, 1999.
[91] F. B. Horak and L. M. Nashner, “Central programming of postural movements: adaptation to altered support-surface configurations,” Journal of Neurophysiology, vol. 55, no. 6, pp. 1369–1381, 1986.
[92] D. L. Wight, E. G. Kubica, and D. W. L. Wang, “Introduction of the foot placement estimator: a dynamic measure of balance for bipedal robotics,” Journal of Computational and Nonlinear Dynamics, vol. 3, no. 1, p. 011009, 2008.
[93] S.-kook Yun and A. Goswami, “Momentum-based reactive stepping controller on level and non-level ground for humanoid robot push recovery,” in Proceedings of the 2011 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2011, pp. 3943-3950.
[94] S. Kajita and K. Tani, “Study of dynamic biped locomotion on rugged terrain-derivation and application of the linear inverted pendulum mode,” in Proceedings of the 1991 IEEE International Conference on Robotics and Automation, 1991, pp. 1405-1411.
110
[95] J. W. Grizzle, G. Abba, and F. Plestan, “Asymptotically stable walking for biped robots: analysis via systems with impulse effects,” IEEE Transactions on Automatic Control, vol. 46, no. 3, pp. 513-513, Mar. 2001.
[96] E. Westervelt, J. Grizzle, and D. E. Koditschek, “Hybrid zero dynamics of planar biped walkers,” IEEE Transactions on Automatic Control, vol. 48, no. 1, pp. 42–56, 2003.
[97] C. Sabourin and O. Bruneau, “Robustness of the dynamic walk of a biped robot subjected to disturbing external forces by using CMAC neural networks,” Robotics and Autonomous Systems, vol. 51, no. 2-3, pp. 81-99, May 2005.
[98] P. I. Doerschuk, W. E. Simon, V. Nguyen, and A. Li, “A modular approach to intelligent control of a simulated jointed leg,” IEEE Robotics and Automation Magazine, vol. 5, no. 2, pp. 12-21, Jun-1998.
[99] W. T. Miller, “Real-time neural network control of a biped walking robot,” IEEE Control Systems Magazine, vol. 14, no. 1, pp. 41-48, 1994.
[100] A. L. Kun and W. T. Miller, “Control of variable speed gaits for a biped robot,” IEEE Robotics and Automation Magazine, vol. 6, no. 3, pp. 19-29, 1999.
[101] J. Hu, J. Pratt, and G. Pratt, “Stable adaptive control of a bipedal walking; robot with CMAC neural networks,” in Proceedings 1999 IEEE International Conference on Robotics and Automation (Cat. No.99CH36288C), 1999, pp. 1050-1056.
[102] L. Y. Wang, Z. Liu, X. J. Zeng, and Y. Zhang, “Gait control of humanoid robots via fuzzy logic and iterative optimization,” in Proceedings of the 30th Chinese Control Conference, 2011, pp. 3931–3936.
[103] K. C. Choi, H. J. Lee, and M. C. Lee, “Fuzzy posture control for biped walking robot based on force sensor for ZMP,” in Proceedings of the 2006 SICE-ICASE International Joint Conference, 2006, pp. 1185–1189.
[104] H.-M. Wu and C.-L. Hwang, “Trajectory-based control under ZMP constraint for the 3D biped walking via fuzzy control,” in Proceedings of the 2011 IEEE International Conference on Fuzzy Systems, 2011, pp. 706-712.
[105] A. D. Udai, “Optimum hip trajectory generation of a biped robot during single support phase using genetic algorithm,” in Proceedings of the 2008 First International Conference on Emerging Trends in Engineering and Technology, 2008, pp. 739-744.
[106] C. Li, R. Lowe, B. Duran, and T. Ziemke, “Humanoids that crawl: comparing gait performance of iCub and NAO using a CPG architecture,” in Proceedings of the IEEE International Conference on Computer Science and Automation Engineering, 2011, pp. 577-582.
111
[107] S. Grillner, “Locomotion in vertebrates: central mechanisms and reflex interaction.,” Physiological reviews, vol. 55, no. 2, pp. 247-304, Apr. 1975.
[108] K. Hashimoto et al., “A fall avoidance foot mechanism for a biped locomotor,” in Proceedings of the 2006 IEEE International Conference on Robotics and Automation, 2006, pp. 1219–1224.
[109] G. Figliolini and M. Ceccarelli, “Climbing stairs with EP-WAR2 biped robot,” in Proceedings of the 2001 International Conference on Robotics and Automation, 2001, pp. 4116-4121.
[110] T. H. S. Li, Y. T. Su, C. H. Kuo, C. Y. Chen, C. L. Hsu, and M. F. Lu, “Stair-climbing control of humanoid robot using force and accelerometer sensors,” in Proceedings of the 2007 SICE Annual Conference, 2007, pp. 2115–2120.
[111] E. R. Dunn and R. D. Howe, “Foot placement and velocity control in smooth bipedal walking,” in Proceedings of the 1996 IEEE International Conference on Robotics and Automation, 1996, pp. 578–583.
[112] S. B. Niku, An introduction to robotics analysis, systems, applications. Prentice Hall PTR, 2001, p. 349.
[113] “ROBOTIS - Closer to real,” 2012. [Online]. Available: http://www.robotis-shop-en.com/shop/step1.php?number=765.
[114] Robotis, “User’s manual,” in Dynamixel RX-64, 2006.
[115] K. Ogata, Modern control engineering, 4th ed. Prentice Hall PTR, 2002, p. 964.
112
Appendix A. Mechanical Drawing
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Appendix B. Electronic Circuit Diagram
130
Appendix C. Program Source Code /******************************************************************/ /* Source code for FASM Bipedal Robot Walking Controller Firmware */ /* */ /* Author: Hudyjaya Siswoyo Jo */ /******************************************************************/ #include <main.h> #define rs485dir PIN_C5 #define runSwitch PIN_B1 #define stopSwitch PIN_B2 #define leftSwitch PIN_B3 #define rightSwitch PIN_B4 #define motorRight PIN_C0 #define motorLeft PIN_C1 #define massCenter 227 #define stopWalking 0 #define rightLeg 1 #define leftLeg 2 #define bothLeg 3 #define SSPhase 0 #define DSPhase 1 #define rightStand PIN_A0 #define leftStand PIN_A1 unsigned char servoID1 = 0x01; unsigned char servoID2 = 0x02; unsigned char servoID3 = 0x03; unsigned char servoID4 = 0x04; unsigned int16 home1=420; unsigned int16 home2=593; unsigned int16 home3=570; unsigned int16 home4=533; unsigned int16 encoderCount=0; unsigned int16 pointCount=0; unsigned int8 standingLeg=0; unsigned int1 phase=0; signed int16 swingingTrajectoryHip[]=26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 31, 31,31, 32, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 41, 41, 42, 42, 43, 44, 44, 45, 46, 46, 47, 47, 48, 48, 49, 50, 50, 51, 51, 52, 53, 53, 54, 54, 55, 55, 56, 57, 57, 58, 58, 59, 60, 60, 61, 61, 62, 63, 63, 64, 64, 65, 65, 66, 67, 67, 68, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 74, 75, 75, 76, 77, 78, 78, 79, 79, 80, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 91, 91, 91, 91, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 93, 93, 93, 93, 93, 93, 92, 92, 92, 92, 91, 91, 90, 90, 90, 89, 89, 88, 87, 87, 86, 86, 85, 84, 83, 83, 82, 82, 81, 81, 80, 79, 79, 78, 78,
131
77, 76, 76, 75, 75, 74, 73, 73, 72, 72, 71, 71, 70, 69, 68, 67, 67, 66, 65, 65, 64, 64, 63, 63, 63, 62, 62, 62, 61, 61, 61, 61, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60; signed int16 swingingTrajectoryKnee[]=-61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -60, -60, -60, -60, -60, -60, -59, -59, -59, -58, -58, -57, -57, -57, -56, -56, -55, -54, -54, -53, -53, -52, -51, -51, -50, -50, -49, -48, -48, -47, -47, -46, -45, -45, -44, -44, -43, -42, -42, -41, -41, -40, -40, -39, -38, -38, -37, -37, -35, -35, -34, -34, -33, -33, -32, -32, -31, -31, -30, -30, -29, -29, -29, -29, -28, -28, -28, -28, -28, -28, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27; signed int16 pushingSwingTrajectoryHip[]=60, 60, 60, 60, 60, 60, 59, 59, 59, 59, 59, 58, 58, 58, 57, 57, 56, 56, 55, 55, 55, 54, 54, 53, 53, 53, 52, 52, 51, 51, 50, 49, 49, 49, 48, 48, 47, 47, 47, 47, 47, 46, 46, 46, 46, 46, 46, 46; signed int16 pushingSwingTrajectoryKnee[]=-27, -27, -27, -28, -28, -28, -28, -28, -29, -29, -30, -30, -31, -32, -32, -33, -34, -35, -35, -36, -37, -37, -38, -39, -39, -40, -40, -41, -41, -42, -42, -44, -44, -45, -45, -45, -46, -46, -46, -47, -47, -47, -47, -47, -47, -47, -47, -47; signed int16 pushingStandTrajectoryHip[]=46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 44, 44, 43, 43, 42, 42, 41, 40, 39, 39, 38, 38, 37, 36, 36, 35, 35, 34, 34, 33, 32, 31, 30, 30, 29, 29, 28, 28, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26; signed int16 pushingStandTrajectoryKnee[]=-47, -47, -47, -47, -47, -47, -48, -48, -48, -49, -49, -49, -50, -50, -51, -51, -52, -53, -53, -53, -54, -54, -55, -55, -55, -56, -56, -57, -57, -57, -58, -59, -59, -59, -59, -60, -60, -60, -60, -60, -61, -61, -61, -61, -61, -61, -61, -61; void initServo (unsigned char servoID); void moveServo1 (unsigned int16 legAngle, unsigned int16 moveSpeed); void moveServo2 (unsigned int16 legAngle, unsigned int16 moveSpeed); void moveServo3 (unsigned int16 legAngle, unsigned int16 moveSpeed); void moveServo4 (unsigned int16 legAngle, unsigned int16 moveSpeed); void setStanding (int leg); void swingLeg(); void pushHip();
132
//Timer ISR for trajectory execution #int_TIMER0 void TIMER0_isr(void) if(phase==SSPhase) //execute the trajectory of single support phase //if standing leg is right leg, swing left leg if(standingLeg==rightLeg) //hold right leg in constant position moveServo1(pushingSwingTrajectoryHip[47],100); moveServo3(pushingSwingTrajectoryKnee[47],100); //swing left leg based on trajectory moveServo2(swingingTrajectoryHip[pointCount],100); moveServo4(swingingTrajectoryKnee[pointCount],100); //if standing leg is left leg, swing right leg else if(standingLeg==leftLeg) //hold left leg in constant position moveServo2(pushingSwingTrajectoryHip[47],100); moveServo4(pushingSwingTrajectoryKnee[47],100); //swing left leg based on trajectory moveServo1(swingingTrajectoryHip[pointCount],100); moveServo3(swingingTrajectoryKnee[pointCount],100); pointCount++; else if(phase==DSPhase) //execute the trajectory of double support phase //if standing leg is right leg if(standingLeg==rightLeg) moveServo1(pushingStandTrajectoryHip[pointCount],100); moveServo3(pushingStandTrajectoryKnee[pointCount],100); moveServo2(pushingSwingTrajectoryHip[pointCount],100); moveServo4(pushingSwingTrajectoryKnee[pointCount],100); //if standing leg is left leg else if(standingLeg==leftLeg) moveServo2(pushingStandTrajectoryHip[pointCount],100); moveServo4(pushingStandTrajectoryKnee[pointCount],100); moveServo1(pushingSwingTrajectoryHip[pointCount],100); moveServo3(pushingSwingTrajectoryKnee[pointCount],100); pointCount++; //External Interrupt ISR for quadrature encoder pulse counting #int_EXT void EXT_isr(void) encoderCount++;
133
void main() //microcontroller initialization port_b_pullups(TRUE); setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_OFF); setup_spi(SPI_SS_DISABLED); setup_wdt(WDT_OFF); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DIV_BY_16,249,13); setup_timer_3(T3_DISABLED|T3_DIV_BY_1); setup_ccp1(CCP_PWM); set_pwm1_duty(1023); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); enable_interrupts(GLOBAL); disable_interrupts(INT_TIMER0); enable_interrupts(INT_EXT); //initialize servo communication initServo(servoID1); initServo(servoID2); initServo(servoID3); initServo(servoID4); //set balancing mass to left position for encoder count reset while(input(leftSwitch)) set_pwm1_duty(1023); output_low(motorRight); output_high(motorLeft); output_low(motorRight); output_low(motorLeft); //set balancing mass to middle based on encoder count encoderCount=0; while(encoderCount<massCenter) set_pwm1_duty(1023); output_high(motorRight); output_low(motorLeft); output_low(motorLeft); output_low(motorRight); //wait for "Run Switch" to be pressed while(runSwitch); //run loop infinitely until "Stop Switch is pressed" while(stopSwitch) //set "Standing Leg" to "Right" setStanding(rightLeg); //set balancing mass to right position while(input(rightSwitch)) set_pwm1_duty(1023); output_high(motorRight);
134
output_low(motorLeft); output_low(motorRight); output_low(motorLeft); //swing left leg swingLeg(); //set "Standing Leg" to "Both" setStanding(bothLeg); //set balancing mass to middle based on encoder count encoderCount=0; while(encoderCount<massCenter) set_pwm1_duty(1023); output_high(motorLeft); output_low(motorRight); output_low(motorLeft); output_low(motorRight); //push hip pushHip(); //set "Standing Leg" to "Left" setStanding(leftLeg); //set balancing mass to left position while(input(leftSwitch)) set_pwm1_duty(1023); output_high(motorleft); output_low(motorRight); output_low(motorleft); output_low(motorRight); //swing right leg swingLeg(); //set "Standing Leg" to "Both" setStanding(bothLeg); //set balancing mass to middle based on encoder count encoderCount=0; while(encoderCount<massCenter) set_pwm1_duty(1023); output_high(motorRight); output_low(motorLeft); output_low(motorRight); output_low(motorLeft); //push hip pushHip(); //set "Standing Leg" to "Stop"
135
setStanding(stopWalking); //initialize servo routine void initServo (unsigned char servoID) int16 checksum_ACK; unsigned char notchecksum; checksum_ACK = servoID + 0x04 + 0x03 + 0x18 + 0x01; notchecksum = ~checksum_ACK; output_high(rs485dir); // notify max485 transciever to accept tx delay_ms(1); putc(0xFF); // start message putc(0xFF); // start message putc(servoID); //servo ID putc(0x04); // string length putc(0x03); // write putc(0x18); // start add putc(0x01); //torque on putc(notchecksum); // notchecksum delay_ms(3); output_low(rs485dir); //write desired angle to servo 1 void moveServo1 (unsigned int16 legAngle, unsigned int16 moveSpeed) unsigned char servoID = 1; unsigned int16 checksum_ACK; unsigned char notchecksum; unsigned int16 goalPos; goalPos = home1 + legAngle; if(goalPos > (home1+100)) goalPos = home1+100; if(goalPos < (home1-100)) goalPos = home1-100; checksum_ACK = servoID + 0x07 + 0x03 + 0x1E + make8(goalPos,0) + make8(goalPos,1) + make8(moveSpeed,0) + make8(moveSpeed,1); notchecksum = ~checksum_ACK; output_high(rs485dir); // notify max485 transciever to accept tx delay_ms(1); putc(0xFF); // start message putc(0xFF); // start message putc(servoID); //servo ID putc(0x07); //string length putc(0x03); // write putc(0x1E); // start add putc(make8(goalPos,0)); putc(make8(goalPos,1)); putc(make8(moveSpeed,0)); putc(make8(moveSpeed,1)); putc(notchecksum); //notchecksum
136
delay_ms(3); output_low(rs485dir); //write desired angle to servo 2 void moveServo2 (unsigned int16 legAngle, unsigned int16 moveSpeed) unsigned char servoID = 2; unsigned int16 checksum_ACK; unsigned char notchecksum; unsigned int16 goalPos; goalPos = home2 + legAngle; if(goalPos > (home2+100)) goalPos = home2+100; if(goalPos < (home2-100)) goalPos = home2-100; checksum_ACK = servoID + 0x07 + 0x03 + 0x1E + make8(goalPos,0) + make8(goalPos,1) + make8(moveSpeed,0) + make8(moveSpeed,1); notchecksum = ~checksum_ACK; output_high(rs485dir); // notify max485 transciever to accept tx delay_ms(1); putc(0xFF); // start message putc(0xFF); // start message putc(servoID); //servo ID putc(0x07); //string length putc(0x03); // write putc(0x1E); // start add putc(make8(goalPos,0)); putc(make8(goalPos,1)); putc(make8(moveSpeed,0)); putc(make8(moveSpeed,1)); putc(notchecksum); //notchecksum delay_ms(3); output_low(rs485dir); //write desired angle to servo 3 void moveServo3 (unsigned int16 legAngle, unsigned int16 moveSpeed) unsigned char servoID = 3; unsigned int16 checksum_ACK; unsigned char notchecksum; unsigned int16 goalPos; goalPos = home3 + legAngle; if(goalPos > (home3+100)) goalPos = home3+100; if(goalPos < (home3-100)) goalPos = home3-100; checksum_ACK = servoID + 0x07 + 0x03 + 0x1E + make8(goalPos,0) +
137
make8(goalPos,1) + make8(moveSpeed,0) + make8(moveSpeed,1); notchecksum = ~checksum_ACK; output_high(rs485dir); // notify max485 transciever to accept tx delay_ms(1); putc(0xFF); // start message putc(0xFF); // start message putc(servoID); //servo ID putc(0x07); //string length putc(0x03); // write putc(0x1E); // start add putc(make8(goalPos,0)); putc(make8(goalPos,1)); putc(make8(moveSpeed,0)); putc(make8(moveSpeed,1)); putc(notchecksum); //notchecksum delay_ms(3); output_low(rs485dir); //write desired angle to servo 4 void moveServo4 (unsigned int16 legAngle, unsigned int16 moveSpeed) unsigned char servoID = 4; unsigned int16 checksum_ACK; unsigned char notchecksum; unsigned int16 goalPos; goalPos = home4 + legAngle; if(goalPos > (home4+100)) goalPos = home4+100; if(goalPos < (home4-100)) goalPos = home4-100; checksum_ACK = servoID + 0x07 + 0x03 + 0x1E + make8(goalPos,0) + make8(goalPos,1) + make8(moveSpeed,0) + make8(moveSpeed,1); notchecksum = ~checksum_ACK; output_high(rs485dir); // notify max485 transciever to accept tx delay_ms(1); putc(0xFF); // start message putc(0xFF); // start message putc(servoID); //servo ID putc(0x07); //string length putc(0x03); // write putc(0x1E); // start add putc(make8(goalPos,0)); putc(make8(goalPos,1)); putc(make8(moveSpeed,0)); putc(make8(moveSpeed,1)); putc(notchecksum); //notchecksum delay_ms(3); output_low(rs485dir);
138
//Update standing leg status pin and state variable void setStanding (int leg) if(leg==stopWalking) standingLeg=stopWalking; output_low(leftStand); output_low(rightStand); else if(leg==rightLeg) standingLeg=rightLeg; output_low(leftStand); output_high(rightStand); else if(leg==leftLeg) standingLeg=leftLeg; output_high(leftStand); output_low(rightStand); else if(leg==bothLeg) standingLeg=bothLeg; output_high(leftStand); output_high(rightStand); //enable interrupts for SSPhase trajectory execution and keep counting void swingLeg() phase=SSPhase; pointCount=0; enable_interrupts(INT_TIMER0); while(pointCount<339); disable_interrupts(INT_TIMER0); //enable interrupts for DSPhase trajectory execution and keep counting void pushHip() phase=DSPhase; pointCount=0; enable_interrupts(INT_TIMER0); while(pointCount<48); disable_interrupts(INT_TIMER0);
139
/******************************************************************/ /*Source code for FASM Bipedal Robot Balancing Controller Firmware*/ /* */ /* Author: Hudyjaya Siswoyo Jo */ /******************************************************************/ #include <main.h> #define motorCW PIN_C0 #define motorCCW PIN_C1 #define rightStand PIN_B3 #define leftStand PIN_B2 #define potMass 0 #define potRight 1 #define potLeft 2 #define rightLimit 810 #define leftLimit 350 #define K_p 1.0 #define K_d 8.0 #define potLeftHome 613 #define potRightHome 690 #define massLeft 391 #define massRight 613 #define massCenter 502 signed int16 error=0,prev_error=0; signed int16 d_error=0; signed int16 pos_measured; signed int16 leftValue; signed int16 rightValue; float appliedOut=0.0; //Move balancing mass position void motorOut(signed int16 sp) if(sp<-5) sp-=50; else if(sp>5) sp+=50; if(sp<-255) sp=-255; else if(sp>255) sp=255; //turn CCW if(sp<-5 && pos_measured>=leftLimit) set_pwm1_duty((unsigned int8)(-1*sp));
140
output_high(motorCCW); output_low(motorCW); //turn CW else if(sp>5 && pos_measured<=rightLimit) set_pwm1_duty((unsigned int8)(sp)); output_high(motorCW); output_low(motorCCW); else set_pwm1_duty(0); output_low(motorCW); output_low(motorCCW); void main() //microcontroller initialization port_b_pullups(TRUE); setup_adc_ports(AN0_TO_AN4|VSS_VDD); setup_adc(ADC_CLOCK_INTERNAL); setup_spi(SPI_SS_DISABLED); setup_wdt(WDT_OFF); setup_timer_0(RTCC_INTERNAL); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DIV_BY_16,255,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1); setup_ccp1(CCP_PWM); set_pwm1_duty(127); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); output_low(motorCW); output_low(motorCCW); while(1) //when standing leg is right leg, run closed-loop while(!input(leftStand)&&input(rightStand)) set_adc_channel(potMass); delay_us(100); pos_measured = read_adc(); set_adc_channel(potRight); delay_us(100); rightValue=read_adc(); prev_error=error; error = potLeftHome - rightValue; d_error = error-prev_error; appliedOut = K_p * (float)error + K_d * (float)d_error; if(appliedOut>=255.0) appliedOut=255.0; else if(appliedOut<=-255.0)
141
appliedOut=-255.0; motorOut((signed int16)(appliedOut)); delay_ms(50); //when standing leg is left leg, run closed-loop while(input(leftStand)&&!input(rightStand)) set_adc_channel(potMass); delay_us(100); pos_measured = read_adc(); set_adc_channel(potLeft); delay_us(100); leftValue=read_adc(); prev_error=error; error = potLeftHome - leftValue; d_error = error-prev_error; appliedOut = K_p * (float)error + K_d * (float)d_error; if(appliedOut>=255.0) appliedOut=255.0; else if(appliedOut<=-255.0) appliedOut=-255.0; motorOut((signed int16)(appliedOut)); delay_ms(50); //when both leg is standing set mass to center while(input(leftStand)&&input(rightStand)) set_adc_channel(potMass); delay_us(100); pos_measured = read_adc(); prev_error=error; error = massCenter - pos_measured; d_error = error-prev_error; appliedOut = K_p * (float)error + K_d * (float)d_error; if(appliedOut>=255.0) appliedOut=255.0; else if(appliedOut<=-255.0) appliedOut=-255.0; motorOut((signed int16)(appliedOut)); delay_ms(50);
142
//when stop walking, do nothing while(!input(leftStand)&&!input(rightStand));