Ing. R. Woering
CST 2010.075
Masters thesis
Committee: Coaches
Supervisor
Dr. ir. D. Kostic
The constants, variables with their SI units, general sub and superscripts, and abbreviations used in
this thesis are listed in the following tables.
Constants
Variables
A Homogeneous matrix
Angle Angle the leg to the body
ai Link length m
a Acceleration m/s2
Ci Cosines of angle i
d Damping N s/m
d Link oset m
e Error m, rad
f Frequency rad/s
Fc Feet clearance m
Fn Normal force N
Fw Friction force N
HB Body height m
j Jerk m/s3
J Mass moment of inertia kgm2
J Jacobian matrix
k Stiness N/m, N m/rad
Kt Kinetic energy translation J = kgm2 /s2
Kr Kinetic energy rotation J = kgm2 /s2
l Length m
Ls Step size m
M, m Mass kg
n Leg number
Nl Number of legs
q generalized coordinates
p Point in space
r Rotation rad
1
Nomenclature Nomenclature
s Snap m/s4
R Leg stroke m
R Rotation matrix
Si Sinus of angle i
t time s
tS Support phase snorm
tT Transfer phase snorm
tn Normalized time []
T Cycle time s
v Velocity m/s
v Linear velocity of the end eector m/s
Vf forward speed of the robot m/s
x Cartesian xcoordinate
y Cartesian ycoordinate
z Cartesian zcoordinate
Link twist rad
Duty factor rad
Leg return time s
Joint angle rad
Angular velocity vector rad
Subscripts
2D Two dimensional
3D Three dimensional
a Amplier
b Bandwidth
CoM Center of mass
DH DenavitHartenberg
d Disturbance
e Error
DOF Degrees of freedom
fb feedback
ff feed forward
max Maximum
n Number of legs
nom Nominal
r Rotational
r Relative
rx rx rotation
ry ry rotation
rz rz rotation
ref reference
x Cartesian xcoordinate
y Cartesian ycoordinate
z Cartesian zcoordinate
2
2.1 Legged robot configurations 2 Literature
Potential use for walking robots is based on their advantages over wheeled vehicles. An walking plat
form can exploring rough terrain with obstacles where an wheeled vehicle does not has that exibility
like a forrest or rocky environment. Thus, there are some advantages for using legged robots in tradi
tional vehicle applications, such as military missions, inspection of complex or dangerous scenarios,
terrestrial, forestry and agricultural tasks and civil projects for example. Nevertheless, legged robots
are also used for experimental studies on the behavior of living animals and for testing Articial
Intelligence (AI) techniques.
The available options in legged robots are enormous, conguration from 2 legged (Humanoid),
4 legged (Quadrupeds), 6 legged (Hexapod) and the 8 legged (Octopod) conguration like spiders.
Because the design of the new TechUnited robot will be a 6 legged circular robot, only the 4 and 6
legged are studied. The 6 legged robot has more static stable walking patterns then a 4 legged robot
due to the wider choice of leg combinations, which will be explained in the next paragraph.
Stability is fundamental to the performance of robotic locomotion. Duty factors (the fraction of time
that a leg spends on the ground relative to the stride period) decreased to 0.5 and below with an
increase in speed [51].
Stability is in short words the balancing of the robot. There are 2 types if stability: static and
dynamic. Static stability applies when there are no extra movements or forces needed to prevent the
robot from falling over. The Center of Mass (CoM) of the robots is at all time within the support
pattern of the legs which have ground contact, see Figure 2.2.
Dynamic stability is needed when the CoM is outside or on the border of the the support pattern.
When the CoM is outside the support pattern the robot will fall over when no additional forces and
movement are made with the legs (balancing)[27, 53].
Figure 2.2: Support polygon (support pattern) of a multi legged robot with the CoM (Center of Mass)
above [69]. This means that when the CoM is above the support polygon the robot is static balanced.
A hexapod provides better static stability than a quadruped because of the larger amount of legs
which increase the support pattern. Hexapods can perform static walking by supporting the robots
body on ve legs at any time, while quadrupeds can only walk statically on a minimum of three legs.
This feature makes hexapods much more stable than quadrupeds, since they can use a bigger support
polygon [40].
6
2.1 Legged robot configurations 2 Literature
Speed is also an extremely important factor for robot locomotion. Research showed that the speed of
a legged robot Vn with n the amount of legs, performing a wave gait depends on the step size Ls , the
cycle time T , and the duty factor , which directly depends on the number of legs [79]. The transfer
phase (the time that the leg is in the air in order to make the next "step") tT = (1)T and the support
phase (the time the leg touches the ground and moves the robot forward) tS = T are derivatives of
the cyclic time and the duty factor.
( )
Ls Ls 1
Vn = = (2.1)
T tT
The minimum duty factor of a nlegged robot is n = 3/n [79]. Therefore, the robots speed is
determined by V4 = 0.333(Ls /tT ), V6 = (Ls /tT ) and V8 = 1.6(Ls /tT ). Hexapods can therefore
achieve higher speeds than quadrupeds, and octopods are even faster in ideal and static stable walking
gaits. For the hexapod simulated in this report the values are around Ls = 0.2[m] and tT = (1)T =
(1 0.5)0.5 = 0.25[s] which result in a speed of V6 = (0.2/0.25) = 0.8[m/s]. The values of Ls , and
T are determined in chapter 3.
After creating a walking mechanism, it is necessary to perform a leg and body motion sequence
to make the mechanism walk. This sequence is known as the gait. The gait has been researched for
many years; however, for a long time on surfaces with very favorable conditions: at and level terrain
[40].
Looking at animals in the nature with comparable size and weight comparable to our football robot
those animals have always 4 legs. Therefore, it is important to investigate the possibilities of a 4 legged
design.
The 4 legged robot (quadruped) has commonly legs at the corners of the body. In order to number
the legs, let us index the left legs and the right legs by odd numbers 1, 3, .., 2n 1 and even numbers
2, 4, .., 2n, respectively. Following this rule, the legs of a quadruped robot are numbered as shown in
Figure 2.3.
A quadruped robot must lift and place only one leg at each step to achieve static stability. Such a
pattern is called creeping gait. The possible creeping gaits of a quadruped robot can be expressed by a
series of leg numbers to show the order of foot placing. Always choosing leg 1 as the rst swing leg,
we can distinguish (4 1)! = 6 dierent gaits. As shown in Figure 2.4, where creeping gaits a and
7
2.1 Legged robot configurations 2 Literature
d gives medium stability and are suitable for turning sideways around the center of the robot. The
b and e are creeping gaits for walking along the xdirection, and is called the crawlgait which give
maximum stability. For walking along the ydirections the c and f can be used. Simulations and more
research are found in [4] were are a lot simulations and dierent wave gaits are tested.
Figure 2.4: Quadruped creeping gaits show dierent sequence of foot placing in order to move [69].
Figure 2.5 is a gait diagram to describe the gait sequence of a multi legged robot, in this case 4
legged. The horizontal axis indicates the time normalized by walk cycle time T . The line segment
associated with each leg starts from the touchdown and ends at lifto. Therefore, the length of the
line segment indicates the period of the support phase tS .
Figure 2.5: Gait diagram and parameters showing quadruped walk gait with tS = T is the ground
contact time of a leg cycle time [69].
Other dierent walking gaits for the quadruped robot are the Trot gait shown in Figure 2.6 and
Figure 2.7. These gaits are more advanced because they move in 2 pairs of legs at each time while
keeping 2 on the ground. The static stability is not applicable in these gaits. The support polygon
is just straight line between the two legs touching the ground. The robot should have an advance
balancing algorithm in order to prevent falling over.
The main focus, in particular on quadrupeds robots, is walking under static stability, i.e. machines
with four legs that exhibit some special features and use specic control algorithms [40]. The ad
vantage is that this robot have to walk in dierent stiles to be as most eective with its energy. This
also give the disadvantage because the ground will then not always be touched with 3 legs, which is
required to achieve some of its static stability [48].
8
2.1 Legged robot configurations 2 Literature
Figure 2.6: Trot gait, moving two legs at the same time 1 and 4 or 2 and 3 [69].
Figure 2.7: Another dynamic gait of quadrupeds, two legs moving at the same time but in dierent order
sequence [69].
For robots with 6 legs (hexapod) there are a lot of combinations of leg placements and leg designs.
The legs can be congured for example 3 legs on each side (rectangular) but also in a circle around the
robot or more complex design to increase leg freedom [29]. Most literature give wave gait examples
of a rectangle shaped robots [48]. Rectangular designs are more naturale designs by looking at ani
mals. This design is fast in forward direction but les exible in turning, moving sideways or moving
backwards. By placing the legs in a circle around the robot results in having non natural gaits but
ecient movement in all direction with the same speed. The gaits for rectangular are applicable to the
circular design, but not always vice versa. A circular robot design has legs which can make the same
step size forward, backwards and sideways, where a rectangular is commonly designed to make large
steps forwards and not sideways. The static stability between those two designs are in general equal
when the rectangular is close to a square design.
There are much more wave gaits for a 6 legged robot then for a 4 legged because the combination
options to move a single leg or pairs are larger. Insects walk with a variety of dierent patterns of
leg movements or gaits at dierent speeds of locomotion. By insects, these gaits typically have the
property of static stability, that is, the polygon of support formed by connecting all of the supporting
legs always contains the center of mass of the body. The movement of each leg can be divided into
a support phase, in which a leg is providing support and propelling the body, and a transfer phase,
in which the leg is lifted from the ground and swinging forward in order to begin another support
9
2.1 Legged robot configurations 2 Literature
phase. Given the fundamental importance of the relative timing of swing phases (since a swinging leg
provides no support to the body), the dierent gaits observed in insects can be described by displaying
the times at which each leg swings (Figure 2.8). Insect gaits range from the wave gait at slow speeds
of walking, in which only one leg swings at a time, to the tripod gait at high walking speeds, in which
the front and back legs on each side of the body step in unison with the middle leg on the opposite
side [65].
1{
2{
3{
4{
Figure 2.8: A selection of four insectlike gaits. Black bars represent the support phase of a leg and the
space between bars represents its stance phase [65]. The leg labeling conventions are shown at the top.
The gait presented at the top is the static stable tripod gait, the other three are natural gaits observed
from animals like cockroaches, which are dynamic gaits. Gaits 2,3 and 4 are unstable gaits due to the
fact that only 2 legs are in contact with at any time, the other legs are in transfer phase. The dierences
between 2,3 and 4 are the leg placement sequences.
Another example of a wave gait for the hexapod robot is shown in Figure 2.9. In this example 4
legs are in the support phase at all times, leaving 2 legs in the transfer phase. This is still a static stable
gait and faster as only lifting one leg at a time.
Figure 2.9: Wave gait of a hexapod robot moving two legs at each time while keeping stability [69].
Figure 2.10 shows a wave gait with = 12 , which is the most important for hexapod robots. From
the constraint [44], this is the smallest duty factor for hexapods and thus results in the fastest walking
speed while keeping static stability. This gait is called a tripod gait since a robot is supported by the
three legs 1,4,5 or 2,3,6.
10
2.2 Examples of existing legged robots 2 Literature
Figure 2.10: Tripod gait of a hexapod robot, here three legs move at the same time while keeping static
stability [69].
There are several designs of 4 legged robot. The most impressive is the BigDog design. The Most
Advanced RoughTerrain Robot on Earth [1]. It is a roughterrain robot that walks, runs, climbs and
carries heavy loads. The BigDog is powered by an engine that drives a hydraulic actuation system.
BigDog has four legs that are actuated like an animal, with compliant elements to absorb shock and
recycle energy from one step to the next. BigDog is the size of a large dog or small mule; about 0.9
meter long, 0.75 meter tall and weighs 110 Kg. In separate tests BigDog runs at 6.4 km/h, climbs
slopes up to 35 degrees, walks across rubble, climbs a muddy hiking trail, walks in snow and water,
and carries a 154 Kg load. BigDog set a worlds record for legged vehicles by traveling 15 km without
stopping or refueling. In Figure 2.11 some images are shown of the BigDog robot.
Figure 2.11: The BigDog robot design. This robot can travel speed for the crawl is about 0.2 m/s, for the
trot is about 1.6 m/s, for the running trot is about 2 m/s and in laboratory conditions it has exceeded
3.1 m/s [1].
Another very famous design of a four legged robot is the AIBO. The AIBO has been used as an
inexpensive platform for articial intelligence research, because it integrates a computer, vision sys
tem, and articulators in a package vastly cheaper than conventional research robots. The RoboCup
autonomous soccer competition had a "RoboCup FourLegged Robot Soccer League" in which numer
ous institutions from around the world participated. Competitors would program a team of AIBO
robots to play games of autonomous robot soccer against other competing teams [77]. The 4 legged
AIBO has been studied a lot and gait optimization Using an estimation of distribution algorithm lets
the robot walk faster in static stable gaits [18]. In Figure 2.12 two designs of the AIBO are shown.
The robot shown in Figure 2.13 is the RollerWalker, a fourlegged robot which can either walk
11
2.2 Examples of existing legged robots 2 Literature
Figure 2.12: The AIBO has seen use as an inexpensive platform for articial intelligence research. The
RoboCup autonomous soccer competition had a "RoboCup FourLegged Robot Soccer League" in which
numerous institutions from around the world would participate. The robot can walk up to 2.3 cm/s [77].
conventionally or skate on retractable wheels. At the end of each leg there is a wheel which can turn
90 degrees to act as a foot. On rough surfaces the robot walks, but if it comes across a smoother
surface then it swings out its wheels and skates in a weirdly graceful swimming motion, just like a
lycra clad rollerblader [34].
Figure 2.13: The RollerWalker is a new passive wheel type legwheeled hybrid mobile robot based on
surface motion principle. A passive wheel is installed at the end of the parallel mechanism structured leg
connecting with the framebody to make the wheel vertical to the ground at any time. Walking speed up
to 1.7 m/s and rolling with rolling up to 3.3 m/s [34].
A lot of examples can be found of the 6 legged robot design, the most referred is the Rhex on the
internet and journals. This robot has a very simple but eective design to walk over very rough terrain
and can even walk up and down stairs [22, 66]. In Figure 2.14 some examples of the Rhex design are
shown. The problem with specic this design is that it has is not capable to turn the robot, it can only
go "straight" ahead. In a TV show called Prototype This! an attempt is made to make a full scale all
terrain robot with 6 legs using the Rhex leg design. They failed to do it in 2 weeks time, but show the
problems by scaling this concept [12]. Ampliers, batteries and controllers can not handle the motion
of the 450 Kg vehicle.
A other simple and good design is presented in [5]. Using only 14 RCservo motors in total. De
tailed photos of webx robot are shown in Figure 2.15 from the leg and main body structure. A similar
design as the webx is the so called eggshell robot [6]. This robot also uses simple RCservo motors
and shows some very promising walking behavior. Figure 2.16a shows a picture of the eggshell robot.
A dierent design approach is shown in Figure 2.16b, where the legs of the robot are placed com
plete around the robot (circular body). This has the advantage of being more exible and in moving
12
2.2 Examples of existing legged robots 2 Literature
Figure 2.14: Rhex hexapod design, the robot swings his legs circular around and therefor only needs one
motor for each leg. The robot can only walk forward and walk with static stable gaits. RHex achieves
fast and robust forward locomotion traveling at speeds up to one body length per second (0.5 [m/s]) [22].
This is a simple and ecient design of a hexapod but not suitable for the RoboCup challenge.
and achieving the same walking speeds in all directions [7] which is needed for the RoboCup robot.
This Hexateuthis can turn around his axis at a high velocity. An interesting internet site for robots is:
http://www.robotsdreams.com/ where new designs are posted and demonstrated.
Figure 2.15: The robot designed at webx. This is an hobby project found on the internet, showing that
with some RC components and a Atmel AT90S8515 processor at 8 Mhz an walking robot can be designed
[5].
13
2.3 Leg trajectory planning 2 Literature
Figure 2.16: Some hexapod robots found on the internet which are made with RCservos and other hobby
electronics.
At the California Institute of Technology a circular jumping robot is designed [83]. The hopping
robot has six legs consisting of structural links with integrated springs to store hopping and landing
energy, which are compressed using a motorized spool, as shown in Figure 2.17a. The robot has
six legs the added stability and reduction of the forces needed to be transmitted during hopping and
landing. An internal gyro is designed into the base of the robot to provide stabilization and reduce the
eects of disturbances and uneven force distribution between hopping and landing. The robot has
berglass springs which are attached to the upper and lower shafts of the legs with hinges. Hopping
tests were performed with this robot and it achieved an approximately 35 cm vertical hopping jump.
Angled at 30 , the robot hopped 30 cm high and a distance of 50 cm. The hopping robot design is
shown in Figure 2.17.
The most impressive 6 legged robot produced by Plustech [8]. The goal of product development
was to create a machine that has the best possible working stability and minimum impact on the
terrain. In Figure 2.18 this machine is shown. This is an industrial experiment vehicle for working in
forrest and carrying heavy loads. The walking machine adapts automatically to the forest oor. Moving
on six articulated legs, the harvester advances forward and backward, sideways and diagonally. It can
also turn in place and step over obstacles. Depending on the irregularity of the terrain, the operator
can adjust both the ground clearance of the machine and the height of each step.
The walking algorithm determine the robots movement, the load of the robot engine, the dynamics
of power consumption, torque of the separate reductors, etc. The way of moving the leg is therefor
very important. There is a lot of literature the leg trajectory algorithms, they vary from cyclic genetic
algorithms to relative simple cycloid functions. The easiest way for a leg trajectory generation is that
from the Rhex robot [66] with the "half" wheel design. The leg can spin quickly circular in the transfer
phase to get back in the support phase [47].
For the general 3DOF leg a dierent approach is needed. The pathway of the arms are prescribed in
order to a movement. First the leg inverse kinematic model should be designed where the joint angles
are set as a function of the leg tip. Assuming that the robot walks in the tripod gait, every leg makes
the exact same path, only one group of legs is half a period delayed in time. One group is standing on
the ground and pushes the legs backwards, and the others are in liftedup position and move forward
(assuming the robot walks forward) [52]. This basic approach can then later be optimized for faster,
stable and exible walking, which then also inuence the eciency of the power consumption. A
2DOF model on straight forward model for kinematic trajectory planning is shown in [70], where a
14
2.3 Leg trajectory planning 2 Literature
(b) Leaning left. (c) Standing in neutral position. (d) Leaning right.
Figure 2.17: A prototype of a steerable sixlegged hopping robot for exploring lowgravity environments
was designed, built, and tested. A 35 cm vertical hop was achieved, motorized steering of all six legs was
demonstrated over a 40 range, and angled hopping was performed at a xed 60 angle. Gyro stabilization
was demonstrated through a hopping simulation of a modeled hopping robot with a controllable ywheel
in lunar gravity [83].
15
2.3 Leg trajectory planning 2 Literature
Figure 2.18: The plustech walking machine or called Timberjack. The machines nerve center is an
intelligent computer system that controls all walking functions, including the direction of movement, the
traveling speed, the step height and gait, and the ground clearance [8].
(a) The trajectory of a leg. (b) Presentation of the robot link motion and the corre
sponding link numeration.
Figure 2.19: The "basic" leg trajectory motion for a leg motion [46].
constant speed robot body speed is set and the legs follow a cyclic function.
The leg trajectories are also studied from animals. By linking the biology and technical application
[32]. Walking insects and most sixlegged robots requires simultaneous control of up to 18 joints. A
simple model of a stick insect leg consist of four functional segments: the coxa, the femur, the tibia
and the foot. When the joint of the foot and the foot itself are neglected for simplicity, a stick insect
leg can be modeled as a manipulator with three hinge joints resulting in 3DOF, which commonly the
same as a hexapod robots leg.
For the optimization of the leg trajectories dierent techniques are found. The FIR lter approach
explained in [46]. A nite impulse response (FIR) lter is a type of a discretetime lter. With the use
of this lter the motion gets more smoother and therefore also more ecient shown in Figure 2.19.
More literature for optimization of the leg trajectory is found with the use of genetic algorithms
[39]. A quick and converging algorithm suitable for anytime learning [43]. Cyclic genetic algorithms
are developed with four variations, with one variation that produces an optimal tripod gait which is
robust enough to adapt to signicant changes in the capabilities of the robot model [38].
The optimization can also be achieved by soft computing techniques [41].
Further studies are based on point to point trajectory planning and the and how to make adapt
trajectories so that the hexapod follows a certain line [68]. Even when joint failure happens and a
joint is locked the robot can still walk [82]. Or adapting the center of gravity position of the robot
with respect to the feet placement in order to stabilize the hexapod [24, 64]. And of course optimized
16
2.4 Robot control 2 Literature
In the last years there has been a growing interest in the area of legged robots. Especially in the gait
generation mechanism and control of this mechanism. One of the aspects related with the control of
legged robots that has received more attention is that of statically stable gaits. The task of such a gait
generation mechanism can be dened as appropriate sequence of leg and body movements so that the
robot moves in the desired speed and direction to reach his target. The control of the robot is therefor
directly connected to the leg trajectory planning therefor a lot of literature is found for both.
In the literature of legged robots there are many dierent approaches to implement controllers for
wave gait generation. A gait is dened as a sequence of leg motions coordinate with a sequence of
body motions for moving the overall body of the robot in the desired direction and orientation from
one place to another. Some examples found in the literature are for instance the periodic gaits [35],
free gaits [55] or a combination of both approaches [26]. A gait is called periodic when similar states
of the same leg during successive strokes occur at the same interval for all legs [62]. The free gait
or also called nonperiodic gait is when each leg can move on a free chosen interval and own stroke
algorithm.
Periodic gaits are suitable for smooth terrain and they have been studied by several investigators,
some which are worth mentioning are: Song and Waldron [72], Zang and Song [84]. The free gait on
the other hand, are much more eective on rough terrain with obstacles. A lot of research is done on
free gaits to nd graphical and analytical methods. The diculty with these methods is the complexity
and interactions. Therefor genetic algorithms (GAs) are mostly used for free gait implementation. GA
are populationbased search and optimization techniques which work on Darwins principle of natural
selection [39]. GA has shown to be a powerful tool for global optimization and has been used as a key
elements in many learning techniques [31]. Another way then using GA is a fuzzy logic controller
(FLC), a potential tool for handing imprecision and uncertainty [50].
The robots leg also has a separate control for the dynamics of footground interaction [70]. Here
an algorithm is adopted with footforce feedback control for the robots locomotion. The division of
the legs pathway can be optimized by FIR ltering so that the leg pathway gets a more ecient
trajectory generation [46, 73]. Also using the techniques of soft computing will improve the leg speed,
this is done by online trajectory generation, see chapter 7 [40]. Most of the studies focused on the
control at the leg level and leg coordination using neural networks [76], fuzzy logic [20, 76], hybrid
force/position control [74] and subsumption architecture [23, 80]. The control at the joint level is
almost always implemented using a PID scheme.
A semi autonomous sixlegged walking machine with hexagonal architecture has been developed
for research on gait control is described. The machine weighs 13 kg; each leg has three d.o.f. with
closedloop kinematics. The kinematics is designed to achieve gravitational decoupling, which sim
plies considerably the velocity control of the legs. The control architecture is decentralized, each leg
being controlled by a separate micro controller [63].
Most often dynamical systems are controlled by control laws designed according to the methods of
classical and modern control. These methods are applicable if a relative precise model of the dynamic
system being controlled is available [37, 71]. Planned jointed trajectories constitute the reference for
the robot control system. Therefor a inverse dynamic model can be formulated [70]. The general
control architecture of the multi legged locomotion system is shown in Figure 2.20. The trajectory is
planning is held in the Cartesian space, but the control is performed in the joint space, which requires
17
2.4 Robot control 2 Literature
the integration of the inverse kinematic model in the forward path. The control algorithm consider
an external postilion and velocity feedback and an internal feedback loop with information of the foot
ground interaction force [36].
Figure 2.20: A possible control architecture for a hexapod, adopted for the calculation of the transfer
function [70].
An alternative approach is to use controllers that adapt their structure and control laws so that their
performance increases with time. These adaptive controllers can be simply parameterized versions of
classical controllers that adjust their parameters in order to achieve better control. Learning Control
comes in many avors; avors, which dier mainly in the way they represent knowledge (e.g. using
neural networks or other data structures) as well as in how they update the stored information. A con
trol strategy that can be used is Iterative Learning Control (ILC) Figure 2.21, this is a control method
designed to exploit repetitiveness in various control situations. For systems that perform repetitive
tasks (like the leg movements of the robot), a high performance feedforward signal can be derived us
ing Iterative Learning Control (ILC). The feedforward signal is updated through successive iterations
[57]. Its purpose is to enhance performance, using a mechanism of trial and error [78]. Supposedly,
the method would have considerable potential to eect this legged robot purpose.
Another approach is for repetitiveness movement is repetitive control [54, 56]. A combination of
adaptive and repetitive control for dynamic control of robot manipulators is introduced. The repetitive
controller is a plugin controller for connection to an existing modelreference adaptive controller. The
input to the repetitive controller is the same as the adaptation error signal for the adaptive controller. In
this scheme, desired trajectories and external disturbance are assumed to be periodic. Global stability
for this control system is achieved and disturbance is rejected successfully [75].
Neural networks have been used in many control problems. Supervised learning is employed when
the correct output for a given state of the system is known and can be given as an example to the
network [81]. The supervised learning approach, can be augmented with stochastic behavior on part of
the network, which will let it learn the correct output even when only a single scalar variable is available
to the network instead of a whole output vector [25]. As long as this variable reacts how appropriate
the output of the network was. This variable is called reinforcement and the method correspondingly
reinforcement learning.
The incremental evolution of neural networks to control hexapod robot locomotion can be sepa
rated into two main parts: the evolution of leg controllers the cycle action of single legs (leg cycles) and
the evolution of the coordination of these individual leg controllers to produce a gait. In this paper,
we use a genetic algorithm to do the rst of these steps, to evolve the structure of an articial neural
network that produces leg cycles for a hexapod robot [61].
18
2.4 Robot control 2 Literature
Figure 2.21: Schematic of Standard ILC. The future input fk+1 is constructed from the current input fk
and the current error ek [57].
Fuzzy logic is another important tool for building controllers [49]. The operation of fuzzy logic control
systems are viewed as an extension to the rulebased architectures of classical AI. Rulebased systems
employ a set of rules that prescribe how the system should react to a particular input. When the rule
will act is determined by the antecedent of the rule which is usually a logical expression that is true only
for some values of the input. If rulebased systems are to be used to the ends of control, there should
be a rule for every possible value of the input to the system. On the other hand, if precise control has
to be exercised, each rule should re for a small set of inputs. Together these two requirements result
in a huge number of rules for any control problem of nontrivial complexity [19].
The kinematics analysis of one leg is presented and used to generate data for black box identica
tion using fuzzy systems and neural networks: the direct kinematics is used to generate the training
data and the inverse kinematics is used to generate the testing data. Two fuzzy systems and a neural
network are used as general black box methods to solve the inverse kinematics problem in robots leg
control. Results have shown that reasonable precision can be achieved with low computational cost
[59].
A genetic algorithm (GA) is a search technique for nding optimal solutions for analytical problems.
The term genetic algorithm is based on is evolutionary approach of reaching the solution. The algo
rithm will "punish" wrong trials and reward attempts which come closer to the desired result. Genetic
algorithms are a particular class of evolutionary algorithms (EA) that use techniques inspired by evo
lutionary biology such as inheritance, mutation, selection, and crossover [28, 33, 42]. Cyclic Genetic
Algorithms are designed for the cyclic decision problems like the adaptive gait development for hexa
pod robots. The approach is to develop a model capable of representing all states of the robot and use
a cyclic genetic algorithm to train the model to walk forward [38].
19
2.5 Summary 2 Literature
2.5 Summary
In literature a huge amount of information on robot waling algorithms and correlated subjects is
found. The interne is also a great place to nd a good overview of concepts and ideas how to design
and build a robot [9]. Even youtube shows movies which are linked by this site show a competition
of 4 and 6 legged robots. Those robots have to walk as fast as possible on a curvy uneven track. It
shows the complexity and possibilities of running mechanism with dierent wave gaits for walking
and ecient walking [60].
This report will stick to the 6 legged design (hexapod) and its locomotion. There are so many
literatures of learning algorithms and optimized walking gaits that this report will only show the rst
steps of the algorithm design for static stable walking patterns. The robot will have a periodic gaits
design this means that we rst select an order of the sequence of foot placing. Further more the
control of the foot placing will be done with force / position dynamic control [37, 70].
(x,y,z,) direc on
Gait selector
Trajectory
generator
PHd(t)
PFd(t)
Inverse
Kinema cs
d(t)
+ e(t) Joints angles
Controller Environment
in the leg

(t)
Figure 2.22: The schematic overview of the locomotion control of the hexapod robot.
In order the give a overview of the report and way of approach, the control system that will be
implemented is shown in gure 2.22. The user will give an desired [x, y, z, ] and walking gait which
is the input for the trajectory generator. The [x, y, z, ] are normalized directions in which the robot
has to move. The trajectory send the leg coordinates to the inverse kinematic model for each leg with
the PH d is the hip connection coordinates and the PF d are the corresponding feet coordinates. So that
the leg tip gets the coordinates of the to follow trajectory. The inverse kinematic model recalculates
those given coordinates in to its angular coordinates for all the joints. The outcome of the inverse
kinematic model are the joint angles which will then enter the control loop. The choice for the joint
control is a SISO controller in order to keep the system as simple as possible to achieve a quick and
good result.
20
Chapter 3
This chapter describes the process of implementing a hexapod robot in the Matlab simulation environ
ment. A 3D mathematical model of the robot is designed. This mode is able to give leg tip positions
of each of the robots six legs with respect to the center of the body. The leg tips are also known as
feet. Each leg has three Degrees Of Freedom (3 DOF), allowing the robot to move in both lateral and
rotational directions. The model is kinematic, meaning that there are no dynamics involved like mass,
friction and gravity.
The model is based on the single leg prototype which is delivered at the university in January 2010.
From this rst prototype the leg dimensions are taken and implemented as xed parameters of the
model (see Table 3.1). The parameters can still be updated for future work but are kept constant to have
a starting point for simulations. The design of the hexapod robot body is chosen so that the complete
robot size will be within the RoboCup regulations. This means that the complete robot should t in a
box of 50 cm x 50 cm x 80 cm (length x width x height).
Leg Kinematics, Leg: 4
0.2
a1
a2
0.15
a1 0.03[m] a3
floor
a2 0.125[m] 0.1
Z (cm)
a3 0.175[m] 0.05
R 0.22[m]
0
0.05
0.2 0.25 0.3 0.35 0.4
X (cm)
Table 3.1: The leg parameters of the TechUnited single leg prototype. On the left the basic platform
dimensions parameters of the hexapod robot. And on the right gure shows a graphical representation of
a single leg with the corresponding leg parts.
Figure 3.1 shows the robots design, leg numbering and its leg parts a1 , a2 and a3 . The legs are
equiradially disturbed around the robot. The forward direction is in the direction of the positive yaxis.
The angular position of the legs are measured from this forward direction, turning clockwise gives a
positive angle. This results in leg 1 at 330 , leg 2 at 30 , leg 3 at 270 , leg 4 at 90 , leg 5 at 210 and leg
6 at 150 . The whole code is written with those parameters so should for some reason in the future
the legs be placed at other angles the whole algorithm will adapt to it and the simulation will still work
including the leg trajectory. The shoulder part of the leg a1 is 3cm meaning that the radius of the robot
R can only be (50 2 3)/2 = 22cm in order to stay within the regulation dimensions. The other
leg parts a2 and a3 are assumed to be straight up or down during the measurements this results in a
larger surface on the body for electronics.
21
3.1 Analyzing the 3DOF leg 3 Kinematic Model Simulation
0.2
1 2
0.1
Center (0,0,0)
4
Y (m)
0
3 a1 a2 a3
0.1
0.2
0.3 5 6
0.4
0.5
0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5
X (m)
Figure 3.1: Top view of the hexapod robot with the leg placing and parameters.
In order to start the analyze of the 3DOF leg some mathematical terms need to be explained. The
forward and inverse kinematic model. The kinematic model describes the relationship between the
joint variables of the leg, (q1, q2, q3)T , and foot position and orientation, (x, y, z, r, p, y)T . In our
model the orientation (r, p, y)T is irrelevant. The kinematic model of an openloop chain can be
divided into two problems: forward kinematic problem and inverse kinematic problem. The forward
kinematics problem is the to nd a correlation between the joint angles and the position of the end
eector (the leg tip). This gives the position of the leg tip, (x, y, z)T , in terms of the joint angle
variables, (q1, q2, q3)T . The commonly used convention for selecting frames reference in robotic
application is the DenavitHartenberg convention. The complete derivation for the 3DOF leg can be
found in: the book of Gonzales de Santos et al. (Quadrupedal Locomotion) [40] chapter 6.2.1., but the
nal equation is shown in Equation 3.11 .
The inverse kinematics consists in determining the joint variables (q1, q2, q3)T in terms of the
set leg tip position. The leg tip coordinates will be set to follow a certain trajectory and therefor
the joint coordinates need to be calculated because only those are measured and controllable. The
complete derivation of the inverse kinematic of a 3DOF leg is Gonzales de Santos et al. (Quadrupedal
Locomotion) [40] chapter 6.2.2. but the main part is represented in Equation 3.2, with a1 , a2 and a3
the lengt of the robots leg parts. The arctan 2(y, x) denition is presented in Equation 3.3.
1 The following notation is assumed: Si = sin(i ), Ci = cos(i ), Sij = sin(i + j ) and Cij = cos(i + j )
22
3.1 Analyzing the 3DOF leg 3 Kinematic Model Simulation
A = z
B = a1 (xC1 + yS1 )
2a1 (xC1 + yS1 ) + a23 a22 a21 z 2 (xC1 + yS1 )2
D=
2a2
1 = arctan 2(y, x)
2 = arctan 2(B, A) + arctan 2(D, A2 + B 2 D2 )
3 = arctan 2(z a2 S2 , xC1 + yS1 = a2 Cs a1 ) 2 (3.2)
arctan( xy ) x>0
+ arctan( xy ) y 0, x < 0
+ arctan( xy ) y < 0, x < 0
arctan 2(y, x) = (3.3)
2 y > 0, x = 0
2
y < 0, x = 0
undened y = 0, x = 0
The rst goal is to determine the total working area of the leg. The mechanical limits of the joints
are given in Table 3.2. In order to keep the simulation as real as possible a 10 degrees boundary for
each joint is set to prevent reaching the mechanical boundaries of the joints by an overshoot.
Table 3.2: Maximum and minimum angle for the joints physical boundaries.
To get a good impression of the working area of a leg, the working area of a leg is put in the robot
plot in Figure 3.4.
Figure 3.2 shows the 3D graph of the working area in with the leg tip can be placed. The angles
steps for the joints are set from 1 = 90 to 90 and 2 = 90 to 90 and 3 = 135 to 45 with
all steps of 10 in between. The 3D graph is represented in a 2D view (side view and top view) to get
a better overview of the working area of the leg, Figure 3.3. From this we can see that the maximum
achievable height is 0.4[m] with the initial body height 0.1[m]. Lowest point is 0.2[m]. The range
in x and y directions are each 0.35[m], only when the leg is going underneath the robot y < 0.25 the
range changes.
From these graphs it is possible to obtain the optimal body height with the largest ground contact
and enough margin in the zdirection so that it is also possible to go lower or higher for the leg tip.
The ground contact surface is the robots projection of the feet on the horizontal plane z = 0. Possible
ground contact locations are plotted in Figure 3.5. These contact surface shows that the area where
the leg tip can touch the ground varies a lot with the robot body height. From z = 0.14[m] the contact
surface does not change a lot when the body height is increased more. In Appendix A the complete
plot of all ground contact surfaces are shown with respect to the robots body height.
The total support pattern as shown in Figure 3.5 is not in total suitable for support because when
the angle the joint 3 is larger then 45 with respect to the ground the forces are not large enough to
support the robot. If the leg is fully stretched it has a large range but it is not likely that the joints have
enough power to lift the body. To prevents this the range for the angle for joint 3 is set to 135 to 45 .
Within this range it is assumed that the leg has still enough power to lift the robot. Figure 3.6 shows
the ground support pattern with limited range of joint 3. This new support pattern looks dierent
23
3.1 Analyzing the 3DOF leg 3 Kinematic Model Simulation
0.6
Z (m) 0.4
0.2
0.2
0.4
0.2
0.6
0 0.5
0.4
0.2 0.3
0.2
Y (m) 0.4 0.1 X (m)
Figure 3.2: 3D view of the leg tip with angles from 1 = 90 to 90 , 2 = 90 to 90 and 3 = 135
to 45 with steps of 10 in between.
0.2
Y (m)
0.2
0.4
0 0.1 0.2 0.3 0.4 0.5 0.6
X (m)
Sideview grid of the possible leg tip positions
0.4
0.2
Z (m)
0.2
Figure 3.3: Side view of the leg tip with angles from 1 = 90 to 90 , 2 = 90 to 90 and 3 = 135
to 45 with steps of 10 in between.
then the full support pattern, meaning that the support phase of the leg trajectory coordinates need to
be taken into account with these limitations.
From Figure 3.6 it can be seen that the initial body height of 0.14[m] is good starting point to begin
simulation because of the largest ground contact surface. In Appendix A the complete range from 0 to
0.28[m] of body heights is shown. From this the legoset can be determined. The legoset is the leg
tip neutral position perpendicular the leg attachment of the body. This is done to have the same step
size in x and y direction. The leg oset point is the center of a circle with radius 0.2[m] which is drawn
in the ground contact with the ground contact, shown in Figure 3.7. This results then in an legoset
o 0.12[m] to reach the center of the "circle". The diameter of the circle is 0.4[m], which results in the
maximum ideal step size is 0.4[m].
24
3.1 Analyzing the 3DOF leg 3 Kinematic Model Simulation
0.4
0.3
0.2
0.1
Y (m)
0.1
0.2
0.3
0.4
0.5
0.4 0.2 0 0.2 0.4 0.6
X (m)
Figure 3.4: Top view of the leg tip range on the robot for leg nr. 4.
Y (m)
0 0
0.5 0.5
0.2 0.3 0.4 0.5 0.6 0.2 0.3 0.4 0.5 0.6
X (m) X (m)
z=0 @ bodyheight = 0.14 z=0 @ bodyheight = 0.21
0.5 0.5
Y (m)
Y (m)
0 0
0.5 0.5
0.2 0.3 0.4 0.5 0.6 0.2 0.3 0.4 0.5 0.6
X (m) X (m)
Figure 3.5: Top view of the leg ground contact surface for dierent body heights for the full range of joint
3. The complete ground contact surface plot for all heights is presented in Appendix A.
25
3.1 Analyzing the 3DOF leg 3 Kinematic Model Simulation
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Figure 3.6: Top view of the full range in which the leg is able to touch the ground with dierent body
heights with limitations on joint 3 with 138 to 45 to joint 2.
26
3.1 Analyzing the 3DOF leg 3 Kinematic Model Simulation
0.5
0.4
0.3
0.2
0.1
Y (m)
0.1
0.2
0.3
0.4
0.5
Figure 3.7: Legoset point set as the center of the ground contact circle. The circle shows the places
where all the feed can stand in order the make a walking movement.
27
3.1 Analyzing the 3DOF leg 3 Kinematic Model Simulation
28
Chapter 4
The robot motion is characterized in terms of several locomotion variables. The leg trajectory will be
explained in this section. All individual leg trajectories will be combined later into a walking gait in
the next section. The leg trajectory describes the position of the leg tip as a function of time in the
local coordinate system of the leg. The leg trajectory parameters are: Cycle time T , Duty factor ,
Step size Ls , Body height HB and Foot clearance Fc . These parameters determine the body velocity
Vn = Ls /T ,the transfer phase tT = (1 )T and the support phase tS = T .
Cycle time This is dened as the time for a complete cycle of the leg locomotion of a periodic gait.
Transfer phase The transfer phase of a leg is the period during which the foot is in the air (no
ground contact).
Support phase The support phase of a leg is the period during which the foot is on the ground and
supports the robot.
Duty factor Is the ratio of the support phase and the transfer phase with respect to the Cycle time.
All legs have the same leg trajectory algorithm and therefor make the same steps size etc. There are
two small dierences vary the legs. First is the phase of the cycle in which each leg states, this phase
is due to the selected walking gait (see section 4.3). The second small dierence is that leg trajectories
are projected parallel to the robots leg attachment point o the body in local coordinates (ydirection
is parallel, xdirection is perpendicular). In order to let all legs move in the same global direction a
transformation is used, Equation 4.1, where n = [330 ; 30 ; 270 ; 90 ; 210 ; 150 ] representing the
angles in which the legs are mounted to the body. In the next paragraphs the trajectory algorithm will
be explained.
The feet trajectory algorithm will be explained for the Ylocal direction because the step size is identical
to the Xlocal direction therefor it is the same. The local to global transformation in Equation 4.1 will
29
4.1 Leg trajectory x and y direction 4 Leg trajectory algorithm
nally make make the leg trajectory correct for the global coordinates so that the legs move in the right
direction.
In order to design an algorithm for the leg trajectory some assumptions are made.
1. The robots body has to move with constant speed in any direction.
2. The complete trajectory should be continuously dierentiable between switching from the sup
port phase to the transfer phase and vice versa for position, velocity and acceleration.
3. The trajectory of the feet should be continuously dierentiable in each phase.
4. The velocity of the feet trajectory should also be continuously dierentiable in each phase.
5. The acceleration trajectory should be continuously without shocks or steps in the function. The
reason for this is to overcome shocks in the motor which powers the joints so that they can
operate smooth even when the rotation direction is turned.
6. The highest speed of the leg in transfer phase should be in the in the middle between and 1 of
the normalized cycle time.
7. Variables which inuence the trajectory should be parametric, Step size Ls , Cycle time T , Step
size Ls , Foot clearance Fc and Duty factor where the duty factor is not free to choose because
it depends on the walking gait.
In order to achieve assumptions 2, 3, 4 and 5 the choice for the trajectory will be polynomial for the
transfer phase and linear between in the support phase. To make the transfer phase polynomial the
trajectories of the position, velocity and acceleration can be "connected" (continuously dierential) in
order to overcome a shocking walking pattern.
The normalized time tn is the normalization of the cycle time T to 1 and subtracting the complete
periods represented in Equation 4.4. The divides the tn in 2 parts, one part before (support
phase)and the second part after (transfer phase) Equation 4.5. The tp is the time containing the
duty cycle . The tt represents a complete cycle time (0 to T ) during the transfer phase Equation 4.6.
This is used especially for the legs zdirection to perform a complete cosinus. To prevent jumps and
shocks, it is important that the trajectory and its time derivative should be continuously dierentiable
between support and transfer phase. The leg speed and position at the beginning and ending of the
support phase should therefore be the same as at the ending and beginning of the transfer phase.
= 2T (4.2)
t
N complete = : R Z (4.3)
T
t
tn = N complete (4.4)
T
1 tn
tn
2
tp = t 1 (4.5)
21 n +1 tn >
(1 )
1
tt = 2(tp )T (4.6)
2
The leg trajectory will be described for forward motion of the robot (ydirection), walking to the
right would be the same but only then for the xdirection. In this direction the leg tip can support the
robot from y = 0.1[m] to y = 0.1[m]. During the support phase of the leg trajectory the ycoordinate
of the leg tip is a linear function of time. Because the coordinatesystem is connected to the robot, the
30
4.1 Leg trajectory x and y direction 4 Leg trajectory algorithm
legs will have to move in to the opposite direction to the direction of movement of the robot. Meaning
that the leg starts at F2s = +0.1[m] to F2 = 0.1[m] over one cycle time. Therefor the slope of the
s
1st order is not possible because Y will the not be continuously dierentiable.
3th order is possible but not desired because Y will have a step which will result in shocking move
ments of the leg.
5th order is good because Y ,Y and Y are continuously dierentiable and therefor result in a smooth
leg trajectory.
The 5th order function for the trajectory has six parameters, the three zero crossing points of the
second derivative, one point in the rst derivative and two points in the general function. The zero
crossing point at Y () = +1
2 is chosen to be placed in between the and 1 in order the have the
same accelerate and decelerate "time" for the leg motion. This results in a 6 equations with 6 variables
which is solvable shown in Figure 4.1 with numbers 1 to 6.
The rst points to use in order to nd the function of Y are the zero cross points of Y (tn ):
Y () = 0, Y () = +1
2 and Y () = 1.
+1
Y (tn ) = a(tn )(tn )(tn 1)
( 2 )
1 3 3 1 1
=a tn ( + 1)tn 2 + ( 2 + 4 + 1)tn ( + 1) (4.7)
4 2 2 2
Integrating function 4.7 result in the Y (tn ) with integration constant C1 . The point to use is
Y () = Fs . (Y (1) = Fs would give the same result.)
( )
1 4 1 1 1
Y (tn ) = a tn ( + 1)tn 3 + ( 2 + 4 + 1)tn 2 ( + 1)tn + C1
4 2 4 2
1 2
= a( ) + C1
4
1
= a( 2 ) + C1 (4.8)
4
1 Fs
Y () = Y (1) = a( 2 ) + C1 = (4.9)
4
Fs 1 2 1 2 Fs
C1 = + a = a (4.10)
4 4
31
4.1 Leg trajectory x and y direction 4 Leg trajectory algorithm
Y 6
0.5*Ls
Y: 5e orde
Beta 1
0
0
tn
0.5*Ls
5
Y: 4e orde
tn
Ls/Beta
4
Y: 3e orde
3
1 2 tn
Y(3)
Y(4)
tn
t t=0 t t =T
(1 )
Y (tn ) = a 4 tn
4
12 ( + 1)tn 3 + 14 ( 2 + 4 + 1)tn 2 21 ( + 1)tn + 41 2 Fs
(4.11)
32
4.1 Leg trajectory x and y direction 4 Leg trajectory algorithm
( )
1 5 1 1 1 1 Fs
Y () = a ( + 1) 4 + ( 2 + 4 + 1) 3 ( + 1) 2 + 2 + C2
20 8 12 4 4
1 5 1 1
= a( 4 + 3 ) Fs + C2
120 24 12
= aD Fs + C2 (4.13)
( )
1 1 1 1 1 Fs
Y (1) = a ( + 1) + ( 2 + 4 + 1) ( + 1) + 2 + C2
20 8 12 4 4
1 1 1
= a( 2 + ) Fs + C2
12 24 120
= aE Fs + C2 (4.14)
F2s (D+E)Fs ( D
E) (240 Fs )
Subtracting Equation 4.14 gives that C2 = ED and a = (DE)
Fs
= (1)
2
5.
To get a clear overview in Equation 4.22 all the formulas for the transfer phase in normalized time
are represented.
(240 F2s )
a= (4.15)
(( 1)5 )
1 5 1 1
D= 4 + 3 (4.16)
120 24 12
1 2 1 1
E= + (4.17)
12 24 120
(Fs ) (60 F2s ) (60 F2s )
C1 = (4.18)
( 1)4 ( 1)5
Fs
2 (
5
3 4 + 10 2 + 5 1)
C2 = (4.19)
( 1)5
1 1 1 1 1 Fs
Y (tn ) = a( tn 5 ( + 1)tn 4 + ( 2 + 4 + 1)tn 3 ( + 1)tn 2 + 2 tn ) tn + C2
20 8 12 4 4
(4.20)
1 1 1 1
Y (tn ) = a( tn 4 ( + 1)tn 3 + ( 2 + 4 + 1)tn 2 ( + 1)tn ) + C1 (4.21)
4 2 4 2
+1
Y (tn ) = a((tn )(tn )(tn 1)) (4.22)
2
The results of Equation 4.22 are shown in Figure 4.2 where cycle time is set to 2 seconds, = 0.7,
Fs = 0.2. It shows that the leg movement is continuously dierentiable which results in a smooth
walk.
The lifting part of the trajectory zdirection should also be smooth. In the support phase the leg should
be on the ground with z = 0 and in the transfer phase the leg should lift with the height of the foot
clearance FC . In order the have a smooth and soft start with the start and ending of the transfer phase
a (1cos) function picked, represented in Equation 4.23. The walking algorithm zdirection is smooth
and represented in Figure 4.3. The complete overview of the leg motion is shown in Figure 4.3. The
next step is to check whether the joint angles are also smooth without steps, because the robot will
walk on the controller of the joints. The angles as function of time is shown in Figure 4.4 for a leg
33
4.1 Leg trajectory x and y direction 4 Leg trajectory algorithm
y vs time
0.2
y [m]
0
0.2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time [s]
v vs time
2
1
v [m/s]
1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time [s]
a vs time
20
a [m/s2]
20
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time [s]
Jerk vs time
1000
J [m/s3]
500
500
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time [s]
4 Snap vs time
x 10
2
S [m/s4]
2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
time [s]
Figure 4.2: Leg trajectory movement for the y or x versus time with = 0.7, Fs = 0.2, T = 2.0 and
Fc = 0.1.
walking in ydirection and xdirection walk. In order to make a complete cosinus cycle in the transfer
phase, tt is introduced as can be seen in Equation 4.4.
{ }
0 tn <
Z(tn ) = (4.23)
1
2 Fc (1 cos(tt )) tn
yz cycle
0.1
0.08
0.06
z
0.04
0.02
0
0.1 0.05 0 0.05 0.1 0.15
y
z vs time y vs time
0.2
0.1
0.1
0
z
0.05
0.1
0.2
0
0 0.5 1 1.5 2 2.5 0 0.5 1 1.5 2 2.5
time time
Figure 4.3: Leg trajectory movement for the yz with = 0.7, Fs = 0.2 and Fc = 0.1.
34
4.1 Leg trajectory x and y direction 4 Leg trajectory algorithm
degrees
0 0
50 1
0 1 2 3 4 5 0 1 2 3 4 5
time time
Joint2 walk in ydirection Joint2 walk in xdirection
100 100
degrees
degrees
50
50
0
0 50
0 1 2 3 4 5 0 1 2 3 4 5
time time
Joint3 walk in ydirection Joint3 walk in xdirection
100 50
degrees
degrees
120 100
140 150
160 200
0 1 2 3 4 5 0 1 2 3 4 5
time time
Figure 4.4: Joint angles for leg nr. 4 with = 0.7, Fs = 0.2 and Fc = 0.1 for walking in x and y direction.
Ydirection is forward walking and walking in positive xdirection represents walking to the right.
20
0
degrees
0
20
40
50 60
0 1 2 3 4 5 0 1 2
10 10 10
time Frequency (Hz)
Joint2 walk in ydirection Welch PSD Estimate Joint 2
80 40
Power/frequency (dB/Hz)
20
60
0
degrees
40
20
20
40
0 60
0 1 2 3 4 5 0 1 2
10 10 10
time Frequency (Hz)
Joint3 walk in ydirection Welch PSD Estimate Joint 3
100 50
Power/frequency (dB/Hz)
110
120
degrees
0
130
140
150 50
0 1 2 3 4 5 0 1 2
10 10 10
time Frequency (Hz)
Figure 4.5: Joint angles for leg nr. 4 with T = 2.0, = 0.7, Fs = 0.2 and Fc = 0.1 with the corresponding
PSD for forward walking. The PSD shows that frequencies up to 5 Hz are mainly present in the forward
motion.
The PSD (power Spectral Density) for the joint motions for forward and side ways motion are
presented in Figure 4.5 and 4.6. The PSD shows that for = 0.7, Fs = 0.2 and Fc = 0.1 the
35
4.2 Wave gait implementation 4 Leg trajectory algorithm
Power/frequency (dB/Hz)
0.8
0.5
degrees 0.6
0
0.4
0.5
0.2
1 0
0 1 2 3 4 5 0 1 2
10 10 10
time Frequency (Hz)
Joint2 walk in xdirection Welch PSD Estimate joint 2
100 40
Power/frequency (dB/Hz)
20
50
0
degrees
20
0
40
50 60
0 1 2 3 4 5 0 1 2
10 10 10
time Frequency (Hz)
Joint3 walk in xdirection Welch PSD Estimate joint 3
50 50
Power/frequency (dB/Hz)
100
degrees
150
200 50
0 1 2 3 4 5 0 1 2
10 10 10
time Frequency (Hz)
Figure 4.6: Joint angles for leg nr. 4 with T = 2.0, = 0.7, Fs = 0.2 and Fc = 0.1 with the corresponding
PSD for sideways walking. As the forward motion PSD showed, also the side ways motion has mainly
frequencies up to 5 Hz in the signal.
frequencies up to 5 Hz are mainly present in the signals. Frequencies above 5 Hz are also in the
signal at very low density. By decreasing the cycle time the frequency will change range will shift to
higher frequencies or visa versa. The step size, feet clearance are correlated to the amplitude of the
PSD, by increasing the amplitude will also increase. The PSD can therefor only be used as a guideline
for the controller design because for every walking gait the leg has a dierent cycle time and duty
factor which inuences the PSD frequency range.
The conclusion is that there is a smooth walking algorithm to walk in ydirection and xdirection
which has as parameters the cyclic time T , duty factor and step size Fs . With this the robot is be
able to perform a continuously dierentiable motion without any shock in the trajectory. Optimizing
the algorithm for jumping, is for future work. The next important subject in order to make the robot
walk is the gait generator, this is the algorithm which coordinates which leg should move at what time
and how fast. This will be discussed in the next paragraph.
The are a lot of dierent types of wave gaits for a hexapod. Most commonly used is the tripod gait
where the six legs are divided into two sets of "triangles" and are used for alternate support. In the
tripod gait the duty factor = 0.5. With this information the tripod gait is not more then a phase
delay between the two sets of legs. The movement can be divided in three kind of situations in line
with the duty factor.
1. = 0.5: while one group is in the transfer phase touching the ground the other group immedi
ately lifts up.
36
4.3 Walking with the ball 4 Leg trajectory algorithm
2. > 0.5: There is a overlapping time between transport phase and support phase between the
groups of legs.
3. < 0.5: In this condition the robot can move faster (running), but there are moments that
the robot has a non static balance ground contact combination. This results in unstable static
walking meaning that dynamic stability is required. This is not in the scope op this thesis.
The implementation of the wave gait is done by a lookup table where n is delay of the leg in
normalized time. And in the end of each line in the lookup table is the duty factor for this specic
wave gait shown in Equation 4.24. Where in the Table F ASE(j, n) the j is the specic gait number
and n represents the leg number. The for each gait selected by F ASE(j, 7).
[ ]
F ASE(j, n) = 1 2 3 4 5 6 (4.24)
In Table 4.1 the most common known static stable wave gaits of the hexapod are represented. The
rst two gaits are very slow walking gaits where only one leg is in the transfer phase and the rest are
on the ground. The dierence between the rst two is the order in which the legs are moved. The
third gait is a also a slow gait but a bit faster then the rst two, this can be seen at the duty factor of
2
3 meaning that the support phase is shorter then the other rst two. The third gait is a sort of spider
walk, meaning the order of leg placements. The fourth gait is the well known tripod gait the fastest
stable gait where no extra balancing is need to prevent falling over. The last gait in the table is a gait
found in the literature, it is a combination of tripod gait for legs 1 to 4 and legs 5 and 6 give extra
balance.
5 4 3 2 1 9
6 6 6 6 6 0 10
9
5 2 4 1 3
0 10
6 6 6 6 6
2
F ASE6 (j, n) = 3
4 3 2 1 5
0 (4.25)
6 6 6 6 6
1 1
2 0 0 1 1
0 2
2 2
3 3 9 9 6 9
12 12 12 12 0 12 12
Table 4.1: The lookup table for the hexapod gaits. Each row represents a walking gait. The rst six
columns are n for the respectively legs and at column 7 is the corresponding to this particular gait.
The algorithm for the wave gait is rst tested in the kinematic models before implementing it in
SimMechanics. The mcode simulator (kinematic) is a visual simulator to test if the algorithm works
correctly and makes the correct motion. In the next chapter the SimMechanics model is explained
where the motion is tested in the dynamic environment with ground contact and the robot gets some
weight. Furthermore in the dynamic model, a controller is implemented to control the joint move
ments to achieve a correct motion of the legs.
The hexapod needs to do more then just walk in the RoboCup environment. The robot should also
be able to accept, hold and shoot the ball. In order to do this the robot will then have the "haveball"
mode walk instead of 6 legs only on 4 legs. The 2 legs which are supernumerary will then be used
to play with the ball. Because of the circulair symmetric shape of the robot the robot can use any two
legs as an arm and does not have to turn around. In the algorithm a heading programmed to have an
orientations. By turning the heading plus or minus 60 changes the leg pairs which can hold the ball.
In Figure 4.8 a drawing of the robot is shown with 2 legs in the air for ball handling.
37
4.3 Walking with the ball 4 Leg trajectory algorithm
3D Robot View
0.2
Z (cm)
0.1 0.5
0 0
0.5
0 0.5
0.5 Y (cm)
Body Kinematics X (cm) Leg Kinematics, Leg: 4
0.5 0.2
0.15
Z (cm)
Y (0)
0 0.1
0.05
0.5 0
0.5 0 0.5 0.2 0.3 0.4
X (cm) X (cm)
Figure 4.7: Mcode simulator to test leg trajectory and wave gait implementation.
3D Robot View
0.5
0.2
Z (cm)
0.1
0
0
0.4
0.2
0
0.2 Y (cm)
0.4 0.5
X (cm)
The walking algorithm implementation for the hexapod on 4 legs is the same as walking on 6
legs, only an other lookup table is made to give the legs the right phase and duty factor for the walk,
represented in Table 4.2. The lookup table for walking gaits on 4 legs with ball handling. With leg 1
and leg 2 are in this example for ball handling. The stability which will be discussed in next paragraph
is more critical then if the robot walks on 6 legs. The rst gait is the slowest gait for walking, secondly
the trot gait, the third gait is the pace gait and as last the bound gait. The rst two legs parameters are
left 0 but are later available for the ball handling algorithm. In the simulation they are placed with a
xed position: x = 0.05[m], y = 0.1[m] and z = 0.15[m]. This simulation only works in the kinematic
model because the robot should have a balancing algorithm and this is not investigated in this thesis.
An other problem that needs some reassure is how to make a ball handling algorithm. Having two
legs with 3DOF each should be able to intercept, kick and hold the ball.
38
4.3 Walking with the ball 4 Leg trajectory algorithm
1 1 3 3
free free 0 8 4 4 4
free free 0 1 1
0 1
2 2 2
F ASE4 (j, n) = (4.26)
free free 0 1
0 1 1
2 2 2
1 1 1
free free 0 0 2 2 2
Table 4.2: The lookup table for the hexapod for a "haveball" gait. In this gait the leg numbers 1 and
2 are free and can be programmed to hold the ball for example. The other 4 legs are then still used for
walking etc, where each row represents a walking gait. Columns 3 to 6 are n for the respectively legs
and at column 7 is the corresponding to this particular gait.
39
4.3 Walking with the ball 4 Leg trajectory algorithm
40
Chapter 5
In order to make a dynamic simulation the SimMechanics toolbox of Matlab Simulink is used. Sim
Mechanics extends Simscape with tools for modeling threedimensional mechanical systems within
the Simulink environment. The SimMechanics toolbox oers multi body simulation tools to build a
model composed of bodies, joints, constraints, and force elements that reects the structure of the
system [14]. SimMechanics generates a 3D animation of the designed system dynamics. The model
has in comparison with the kinematic model now mass, inertia, constraint, and 3D geometry. The
model is made as exible as possible, in the meaning o the length of the leg components and placing
of the body. Therefor the kinematic model variables (body position, joint positions) are loaded in the
SimMechanics model. To make the legs controllable and move in the desired way, the actuator of each
joints can be controlled separately for each leg (SISO control).
The dynamic model is based on the kinematic model. Meaning that the assumed variable like length
of the legs and radius of the robot are parametric programmed in the dynamic model. The masses
of the leg parts and robot body are guessed on intuition because the robot was changing in material
and design. The masses are as the length of the robot parts parametric programmed in the model
so that they can be change without redesigning the complete model. The parametric parameters are
represented in Table 5.1.
a1 0.03[m] 0.1[Kg]
a2 0.125[m] 0.3[Kg]
a3 0.175[m] 0.4[Kg]
R 0.25[m] 10.0[Kg]
An other assumption for the dynamic model is that the leg will move with xed preset body height
of the robot. The kinematic model has also a preset body height and this height is used in a open loop
for the leg trajectory. The height can me measured and be used as an input in order to determine the
leg angles but this stabilizing behavior is neglected because the robot will only be simulated for stable
walks. Dynamic stable gaits (walking gaits which cause falling over when the robot does not balance
itself) can be tested in this model, but there is no balancing feedback algorithm implemented which
balances the robot in order to prevent is from falling over.
41
5.2 SimMechanics model 5 Dynamic Model Simulation
The SimMechanics model is build in the same order as the control scheme shown in Figure 5.1. The
trajectory generator prescribes the leg tip movement with respect to the initial "xed" body height.
The inverse kinematic model calculates the angles of each joint in order to follow the trajectory of the
leg tip. This given angles and are forwarded to the controller of the joints (SISO). And as shown in the
Figure 5.1 the robot leg get the force from the controller to move the leg in the desired position. The
angle is measured with the sensor and gives the output (joint angles) back in to the controller.
(x,y,z,) direc on
Gait selector
Trajectory
generator
PHd(t)
PFd(t)
Inverse
Kinema cs
d(t)
+ e(t) Joints angles
Controller Environment
in the leg

(t)
Figure 5.1: The schematic overview of the hexapod motion and control structure.
Implementing Figure 5.1 in Simulink is done in the same blocks represented in Figure 5.2. The
"General Path planner" is not included because this path planner only has as input the direction and
rotation in which the robot has to walk. Therefor the input to the "Trajectory Generator" is a global
variable preset in the mcode.
The Simulink block "hexapod" is where the robot is modulated. The xyz coordinate frame is
rst set in the Machine environment. Giving the right hand rule with positive z direction upwards,
positive x to the right and positive y forward. This choice to implement the coordinate frame like this is
because of the other robot of Tech United so that they are compatible. Furthermore at z = 0 the ground
is identied with a xed ground surface. The robots body is "connected" with 6 degrees of freedom to
the ground meaning that the robot is completely free to move in all rotations and translations. Later
in this chapter the ground contact will be explained to prevent the robot to fall through the surface. All
legs are identical in dimensions and mass, the only dierence between them is the connection point
to the main body. The degrees of freedom of the legs are already explained in the kinematic chapter,
but will be beely be explained here in the dynamic model.
The legs of the hexapod consist out of three bodies with three joints. All joints have only one
degree of freedom which result in a 3DOF movement of the leg shown in Figure 5.4. From the body
the hip part a1 is connected by joint1 which can move around the zaxis.
42
5.2 SimMechanics model 5 Dynamic Model Simulation
Figure 5.2: Complete overview of the Simulink environment for the dynamic simulation of the hexapod
robot. Control "wire" to the robot and the feedback is not drawn in this picture but are linked between
each other. The environment forces acting on the robot are within the hexapod block. This overview is a
representation of the schematic overview of the hexapod motion and control structure 5.1
Figure 5.3: The SimMechanics model of the hexapod robot with in the center the body and the six legs.
The ground is xed at z = 0 and the position of the robot connected with 6 DOF to the ground.
Figure 5.4: The build SimMechanic structure of a leg. All legs are build the same way with at the end a
ground contact model so that there will be an interaction with the ground surface when the leg touches
the ground.
43
5.2 SimMechanics model 5 Dynamic Model Simulation
The leg dynamic behavior needs to be identied in order the design a stable controller for the leg. The
leg consist out of 3 masses and 3 joints. To angle of the joints are controlled with a motor within the
joints. The rst joint has a rotation around the zaxis where joint 2 and 3 rotate around the yaxis.
A schematic representation of the leg control loop is shown in Figure 5.5. The joint identication
is done for each joint separately, but with dierent angle oset positions. First measurement is in
fully stretched out positions as shown in Figure 5.6a, the second measurement is done in "neutral"
stationary standing position but without ground contact Figure 5.6b and the last is done with joint 3
in 90 and the rest stretched.
H1
C1 C2 C3
Z Y Y
H2
C1 C2 C3
Z Y Y
H3
C1 C2 C3
Z Y Y
Figure 5.5: The schematic representation of the leg with the control loops. In the upper scheme the process
H1 which is controlled by joint 1. The scheme in the center shows the process H2 which is controlled by
joint 2. And joint 3 is a joint between 2 masses (without spring damper) but controls angle between the
the tibia and femur.
The system identication is done in closed loop with noise injection between the controller and
system. The PD controller for the closed loop testing is intuitive chosen shown in Table 5.2. The
reason for a PD control design is that the system will most likely behave as a single mass system for
each joint. Therefore a PD is implemented in the simulator to be stabilize the close loop system for
small movements in order to identication the legs system. The rst joint is a SISO system, but joint
2 and joint 3 are linked due to the fact that they rotate in the same direction and are therefore MIMO.
The system identication for joint 2 and joint 3 are also done in SISO style because the noise that
will be implemented for identication has a variants of 1 and the systems react on each other as a low
disturbance. The measurements show that joint 2 and joint 3 are also mass systems and this proofs
that a SISO measurement is correct way to identify the system.
u(t) 1 y(t) H
By measuring the sensitivity S w(t) = 1+CH and the process sensitivity P S w(t) = 1+CH . By
44
5.2 SimMechanics model 5 Dynamic Model Simulation
Joint Kp Kd
1 100 1
2 31 1
2 17 1
Table 5.2: PD parameters for joints 1,2 and 3 for system identication with noise injection.
Leg2
Leg1
Leg2
Leg4
Leg1
Leg4
Leg3
Leg6 Leg3
Leg6
Leg5
Leg5
Figure 5.6: The two of the three initial condition of the robot FRF measurement, stretched in the air
(0.15[m] and standing in neutral position)
Figure 5.7: Scheme of the closed loop system with noise injection at w(t).
dividing the process sensitivity and the sensitivity an estimate is obtained of each system 5.1 [21].
H
PS 1+CH
H= = 1 (5.1)
S 1+CH
The Bodediagram and coherence of the Sensitivity and Process sensitivity are represented in Fig
ures 5.10 and 5.9 of the stretched FRF (Frequency Response Function) measurements. The measure
ment is done with a sampling time of 1[mS] for 100 seconds, the noise injection has a variance of
1. The plots are represented until 500[hz] which the half of the sample frequency. By dividing the
process sensitivity with the sensitivity the system can be identied. The Bodediagrams of the system
for all three conditions is presented in Figure 5.8. More Bodediagrams of the system are presented in
Appendix B.
The controller design is based on the Bodediagrams of Figure 5.8. The systems can be seen as a
s z0
one mass system so that a simple P with LeadLag controller for each joint with C = should t
s p0
for the simulation environment.
Designing a LeadLag controller for each joint is done by the basic rules. First by lifting the pro
portional action to the zero [dB] line at the desired bandwidth frequency and next at phase margin to
the bandwidth by a LeadLag action, resulting in a simple stable controller. The leadlag controller the
z is the zero frequency and p is the pole frequency. In general the placements for the zero and pole
45
5.2 SimMechanics model 5 Dynamic Model Simulation
Magnitude (dB)
Magnitude (dB)
100 100 100
Phase (degrees)
50 50 50
0 0 0
50 50 50
Figure 5.8: The Bodediagram of the three systems within a leg. Each of the three systems are identied
with 3 measurements where the legs oset positions is set to fully stretched, joint 3 90 bended and
neutral standing positions. The biggest inuence of an dierent angular measurement position is in joint
2 where probably the moment of the tibia eects the measurements. The system is as expected behaving
as a single mass system, showing the general constant negative slope of 40[dB/Dec].
Joint P fb
1 1000 15
2 316 8
2 177 5.5
The coordinate system in the simulator is in the beginning directly linked to the neutral point in the
frame (0, 0, 0), meaning that the robot starts with a preset body height directly centered above the
zero frame point. The legs of the robot are connected to the body frame and to the robots coordinate
system. On the contrary the feet of the robot are observed in the world coordinate system to determine
the the world z. If the z is zero or smaller as zero means that there a contact with the ground and
the forces of the ground should reect to the feet shown in Figure 5.11. The ground is modeled as a
spring damper contact. The values for the spring and damper are iteratively chosen and work correctly
with Kcontact = 1500[N/m] and Dcontact = 50[N s/m] so that the robot stands quickly stable without
ground contact oscillation. With implementation of the damper and spring the robot can stand at the
ground at level z = 0.
46
5.2 SimMechanics model 5 Dynamic Model Simulation
Magnitude
Magnitude
0.9 0.6 0.6
0.75 0 0
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
Magnitude (dB)
0
5 5
10
10 10
20
30 15 15
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
1
Figure 5.9: Sensitivity plot of S1 , S2 and S3 (S = ).
1 + CH
0.9
0.8 0.8
0.8
Magnitude
Magnitude
0.6 0.6
0.7
0.4 0.4
0.6
0.2 0.2
0.5
0.4 0 0
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
Magnitude (dB)
80
100 100
100
120
150 150
140
H
Figure 5.10: Process sensitivity plot of P S1 , P S2 and P S3 (P S = ). The coherence stays high at
1 + CH
higher frequencies due to the fact that it is measured in simulation environment. In the simulator there
is no sensor noise which would normally cause a coherence drop at higher frequencies.
47
5.2 SimMechanics model 5 Dynamic Model Simulation
Figure 5.11: The ground contact model which determines if the leg is on the ground or in the air. Only
when the leg is in contact with the ground the reaction forces will have react on the leg.
In order to let the robot walk in a given direction, friction has to be introduced when the feet
touches the ground. Friction depends on speed and the force in the zdirection and the speed of the
motion in x and or y direction. Basically Fw = V Fn , with Fn = z Kcontact and V a Sigmoid step
function (1+e210x ) of the depending of the contact speed but with a (0, 0) crossing [30, 67]. Where
is the friction coecient in x and y direction for the ground contact.
{ }
z Kcontact z Kcontact if z 0
Fn = (5.2)
0 otherwise
{ }
( (1+e210x ) 1) Fn if z 0
Fwx = (5.3)
0 otherwise
{ }
( (1+e210y ) 1) Fn if z 0
Fwy = (5.4)
0 otherwise
The SimMechanics model is tested with all stable walking gates. The most common used gaits (ex
plained in Chapter 3) is represented in Table 5.4. The oset in the walking directions seen in the
Figures 5.12, 5.13, 5.14 and 5.15 is caused by the initial condition of the robot changing to a walking
behavior. The robot starts the simulation in start position (Hb = 0.14 and Ls = 0.15 from this point
on the walking gait is started and the legs will move directly to the start position of the walking cycle.
There is no smooth transition implemented to change from start to a gait or change between gaits.
This sort of chock gives the robot an angle oset in which it will start to walk. This could be solved by
a feedback of the robots position or by a smooth transition between states of the robot but this is for
future work.
The walking gures show a large amplitude in the zcoordinate when the simulation is started.
This is due to the impulse start of the simulator. The whole leg trajectory itself is very smooth but the
to go from start (standing in neutral position) to a walking occurs in a "shock". There is no smooth
transition between changing states.
The lines of the gures of the robots walking x, y, z coordinate are no straight lines due to the
fact that the robot is static balanced and the momentum force of the leg which are in contact with the
48
5.2 SimMechanics model 5 Dynamic Model Simulation
P arameter Value
T 2 [sec]
Ls 0.25 [m]
Hb 0.14 [m]
Fc 0.1 [m]
1 []
Legoset 0.15 [m]
Xbody Xbody
0.9 Ybody 0.9 Ybody
Zbody Zbody
0.8 0.8
0.7 0.7
0.6 0.6
distance (m)
distance (m)
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
0.1 0.1
0 1 2 3 4 0 1 2 3 4
time (s) time (s)
Figure 5.12: The body xyz plot of the hexapod gait 1. This is one of the slowest gait (identical as gait 2)
but with maximum stability due that 5 of the 6 legs are always on the ground. The speed with the preset
mentioned parameters is about 0.13[m/s].
ground. This action force with the ground makes the robot walk but also twist the robot a small bit.
With the trajectory generator is design to make the robot walk with a constant speed and this seems
the show in the gures.
Figure 5.16 shows the fastest walk of the hexapod with a static stable gait (tripod gait). The robot
can walk up to 1[m/s] in the simulator. This gives a good perspective for the future. The limitations for
fast walking in static stable gait are the physical dimensions of the leg which determine the maximum
step size. The fastest period time is intuitively chosen to be 0.5[s], this is correlated to the electric
engines which power the leg but this is not researched because masses are guessed from the one leg
prototype.
49
5.2 SimMechanics model 5 Dynamic Model Simulation
Xbody Xbody
0.9 Ybody 0.9 Ybody
Zbody Zbody
0.8 0.8
0.7 0.7
0.6 0.6
distance (m)
distance (m)
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
0.1 0.1
0 1 2 3 4 0 1 2 3 4
time (s) time (s)
Figure 5.13: The body xyz plot of the hexapod gait 2. Achieving the same speed as in gait 1 but with a
dierent leg placement order also results in 0.13[m/s].
Xbody Xbody
0.9 Ybody 0.9 Ybody
Zbody Zbody
0.8 0.8
0.7 0.7
0.6 0.6
distance (m)
distance (m)
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
0.1 0.1
0 1 2 3 4 0 1 2 3 4
time (s) time (s)
Figure 5.14: The body xyz plot of the hexapod gait 3. In this gait the robot 4 of the 6 legs are always on
the ground, this still gives a good static stability and the robot walking speed results in 0.18[m/s].
50
5.2 SimMechanics model 5 Dynamic Model Simulation
Xbody Xbody
0.9 Ybody 0.9 Ybody
Zbody Zbody
0.8 0.8
0.7 0.7
0.6 0.6
distance (m)
distance (m)
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
0.1 0.1
0 1 2 3 4 0 1 2 3 4
time (s) time (s)
Figure 5.15: The body xyz plot of the hexapod gait 4. This gait is the well know tripod gait in which
the robot walks in a 33 leg order. (three legs in support phase and 3 legs in transfer phase) this results
in the fastest static stable wave gait. The speed for the robot is with the pre mentioned parameters is up
to 0.23[m/s].
Fastest forward walk with gait 4 Fastest sideways walk with gait 4
5 5
Xbody Xbody
4.5 Ybody 4.5 Ybody
Zbody Zbody
4 4
3.5 3.5
3 3
distance (m)
distance (m)
2.5 2.5
2 2
1.5 1.5
1 1
0.5 0.5
0 0
0 1 2 3 4 0 1 2 3 4
time (s) time (s)
Figure 5.16: The body xyz plot of the fastest hexapod gait, the tripod gait, using = 0.5, Fs = 0.25
,Fc = 0.1 and T = 0.5. This results in a walking speed up to 1.0[m/s].
5.2.4 Jumping
Although the designed algorithm is designed of static stable walking gaits. The dynamic model is also
tested for a jumping algorithm. There is no balancing algorithm implemented for this test, but just a
51
5.2 SimMechanics model 5 Dynamic Model Simulation
dierent gait. The gait designed is is shown in Equation 5.5. All legs have the same phase and move
simultaneously with = 0.9. Figure 5.17 shows that the robot can jump forward and sideways on a
smooth surface. The body height of the robot oscillates with the jumping this is shown in Figure 5.18.
The position the body is between 0.09[m] and 0.134[m] from the ground. The angle of the robots
body can be measured as well with the simulation program but this is not implemented because this
angle information is not used. The body angle information can be used in later study for dynamic
stabilization of the hexapod robot.
Other jumping algorithms where not all legs move at the same time are not suitable for testing in
this static stable algorithm due to the fact that algorithm is not designed for jumping. For jumping
extra force should be introduced to lift the robot in order to jump. The gait used for jumping here is
just test but not really a jump.
[ ]
2 3 4 5 6
F ASEjump = 1 (5.5)
0 0 0 0 0 0 0.9
Xbody Xbody
1.8 Ybody 1.8 Ybody
Zbody Zbody
1.6 1.6
1.4 1.4
1.2 1.2
distance (m)
distance (m)
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
0.2 0.2
0 1 2 3 4 0 1 2 3 4
time (s) time (s)
Figure 5.17: The body xyz plot of a jumping hexapod gait, using = 0.9, Fs = 0.25 ,Fc = 0.1 and
T = 0.5. The speed reached with jumping is about 0.5[m/s].
52
5.2 SimMechanics model 5 Dynamic Model Simulation
0.14
0.13
distance (m)
0.12
0.11
0.1
0.09
0.08
0 1 2 3 4 5
time (s)
Figure 5.18: The body height plot of a jumping gait, using = 0.9, Fs = 0.25 ,Fc = 0.1 and T = 0.5, the
body height oscillates between 0.09[m] and 0.132[m].
53
5.2 SimMechanics model 5 Dynamic Model Simulation
54
Chapter 6
Conclusions
The hexapod robot simulations show that a hexapod might be an option for a new type of football
robots. Using six legs instead of the omniwheel conguration, which is used now, gives more freedom
in walking over dierent surfaces. The algorithm presented in this master thesis shows that there are
several ways of walking (called gaits), and each gait has its advantages. Only stable gaits (static walking)
are tested and implemented to ensure the stability of the robot during walking. In the future static
unstable gaits (dynamic walking) can be implemented, to let the robot jump or run.
The legs are all individual controlled, but since the robot legs are equally constructed in shape,
size and mass, all the six controllers are identical. A LeadLag controller has been used. The height
of the robots body and or tilting of the body is not implemented as an input for the controller. The
robots body is stable, because only static stable gaits are implemented.
The hexapod is modeled and programmed in Matlab Simmechanics. The kinematic program is
used to see if the robot legs and body are correctly dened and to test the algorithm in a quick way.
The Simmechanics toolbox of Simulink is used to model the robots dynamic behavior implementing
the kinematic algorithm. In the dynamic environment gravity and mass are eecting the model and
the model gets more realistic. The dynamic model has a ground contact model in order to make the
robot stand. Friction is implemented to give the feet a reaction force to the ground to make to robot
move in the desired direction.
In general a complete hexapod simulator is build to test all the robots walking algorithms and the
corresponding stability. In the simulation environment there is no limit in the power consumption
in the joint engines, because of this the cycle time can be theoretically be reduced to almost zero.
From the literature in chapter s a cycle time of 0.5[s] seems to be the minimal achievable. Using
this cycle time the hexapod is able to walk up to 1.0[m/s] in the fastest stable gait using = 0.5,
Fs = 0.25[m] and Fc = 0.1[m]. Using a dynamic gait instead of a static stable gait will make the robot
walk faster. The goal to make a hexapod robot as fast moving as the TechUnited robot of 2010 on a
carpet (4.0[m/s]) is not achieved, but it is capable to walk over a smooth surface in simulations and on
a non smooth grass surface such as a football eld which was demonstrated in Singapore [13].
With these simulators (kinematic and dynamic) and the gait algorithms a walking hexapod sim
ulator is created for future research. The algorithm is build pragmatically which means that all pa
rameters are programmed in one le which both simulators use. Therefor design changes and more
important new (dynamic) wave gaits can be implemented very easy. The simulator in this thesis is a
good starting point for further developing of the walking platform in the RoboCup midsize league.
55
6 Conclusions and recommendations
Recommendations
To further develop the simulation programs described in this thesis toward an autonomous walking
platform for the RoboCup league the following development steps are needed:
The algorithm used to process the images taken by the camera on top of the robot needs the
camera to be very stable. An tilted camera gives a wrong localization of the robot on the playing
eld which eects the robots football game. It is therefor important to make a stabilizing con
troller for the robots body or a localization algorithm has to be designed that can handle large
tilting of the camera.
To achieve higher walking speeds it is necessary to investigate the dynamic jumping and running
algorithms. Walking in in static stable gaits, the tripod gait is the fastest walking gait (with the
leg cycle time and step size the same for each gait type). A higher walking speed can be achieved
by reducing the leg cycle time and / or increasing the step size. The step size is determent by the
robots legs and the leg cycle time is determent by the maximum power of the joint motors. The
leg construction in the simulation is copied from the prototype leg (length and masses of the leg
parts and maximum rotation in the joints). The limited power of the joint motors is simulated
by limiting the leg cycle time to a minimal of 0.5[s].
In this thesis the power of the electric engines is not investigated due the fact that masses and
dimensions of the robot are only guessed from the demo leg. The electric power of the engines
needs the be investigated.
In the future it is necessary for the robot to hold, kick and dribble a ball using one ore more legs.
Only in this way the robot can play football and participate in the team. These extra features will
reduce the balance the robot so it is necessary to investigate dynamic balancing algorithms.
To evaluate the possibilities of walking on a non smooth grass surface, this surface has to be
implemented in the simulation or tests have to be performed with the 6 legged prototype un
such a surface.
Using the simulations it is possible to investigate the inuences of dierent mass conguration
on top of the robot like camera and batteries. The masses and their positions of those parts
inuence the robots center of gravity which inuences the balance of the robot during dynamic
walking.
To investigate whether the simulations and reality correspond it is necessary to implement the
simulink program of the walking algorithm in the real robot.
At the end of my graduation research period in summer 2010 the real hexapod robot has just been
delivered at the university and has been demonstrated in Singapore at the RoboCup free challenge.
Unfortunately there was no time to test the algorithms on the real robot. Also the real robot and the
simulated robot (based on estimations) are not identical. To improve this the following points need to
be implemented:
Implement the new masses and dimensions of the robot and its legs in the simulation model.
With this the engine powers can be observed and the controller for the joints can me optimized
in simulation.
The springs in the real robot legs need to be implemented in the simulation model.
Determine the real robots legs system FRF response in order to design a stable joint controller.
Design an algorithm for the general path planner in order to make the robot walk a desired
trajectory.
56
Chapter 7
Dankwoord
Wetenschap is een raar vak. Aan de ene kant moet alles vereenvoudigd worden tot een simpel model,
en aan de andere kant kan het nooit complex genoeg zijn. Het blijft dus schipperen. Een eenduidig
antwoord vinden is dan ook bijna nooit mogelijk. Geeft dit wel voldoening? Hoe kan dat? Welnu,
behalve de fascinatie van het puzzelen en het gevoel met iets nieuws bezig te zijn, ligt het antwoord
vooral in dit dankwoord. De collegialiteit, de begeleiding, de support van familie en vrienden, ik heb
het allemaal erg gewaardeerd.
Daarom wil ik op deze plaats graag iedereen bedanken die op n of andere manier heeft geholpen
bij de uitvoering van mijn afstudeerproject. Enkele personen wil ik uitlichten voor de enorme steun
en aanmoediging tijdens de laatste loodjes. In de eerste plaats mijn begeleiders (Michael Ronde en
Rene v/d Molengraft) die mij veel vrijheid hebben gegeven in het onderzoek, dat tot dit resultaat geleid
heeft.
In het bijzonder wil ik mijn ouders (Chris en Marion Woering) bedanken voor alle steun die ik
van hen heb gekregen. Nooit hebben ze getwijfeld aan mijn kunde. Ze hebben me in alle opzichten
gesteund in het afronden van mijn beide studies. Verder hebben mijn twee zusjes (Veronique en
Anika) altijd klaar gestaan voor een opbeurend woord als het even tegen zat. Ook mijn opa en oma
Hoofs zijn er altijd geweest om mij aan te moedigen.
De open discussies in de Tribolab koe hoek (Cees Meesters, Harrie van Leeuwen, Rob Petterson
en Jan de Vries) hebben altijd gezorgd voor een gezellige tijd in de pauzes. Zij hebben mij enorm
geholpen door mee te denken en problemen op te lossen. Toch wil ik Rob extra bedanken voor zijn
inbreng in mijn verslag en het verzorgen van een logeerbed. Verder wil ik enkele vrienden bedanken
waaronder; Roel Huijnen, Ralph Vondenho, Maurice van Beurden, Martijn Hamers en Maarten
Braem voor alle steun en de gezelligheid aan de bar na de waterpolo wedstrijden (verloren of gewon
nen). Natuurlijk mag Jeroen van der Wielen niet ontbreken in dit lijstje van vrienden. Hij heeft er
voor gezorgd dat . . . . . ;)
Ook wil ik mijn vriendin (Marloes van Harsselaar) bedanken voor haar steun en aanmoediging.
De laatste twee jaar van mijn studie heb ik haar leren kennen en zij heeft het beste in mij naar boven
gehaald, waardoor ik tot dit resultaat ben gekomen. Natuurlijk heb ik met nog veel meer mensen
gesproken en gediscussieerd en zijn meer hand en spandiensten verricht. Allen die mij, op welke
manier dan ook hebben geholpen en hier niet zijn genoemd, wil ik hierbij alsnog bedanken.
57
7 Dankwoord
58
Appendix A
The 3DOF of a leg are investing in order to determine the step size and corresponding body height
of the robot. The body height of the robot directly eects the plane where the foot of the robot can
be places. To achieve the highest walking speed corresponds with a large step size and cycle time.
The cycle time depends on the power of the motors, but the step size is inuenced by the robots body
height.
Figure A.1 and A.2 who the area where the foot of the robot can touch the ground with respect to
the body height. The optimal shape of the feet contact area is circular because of the position of all
six legs of the robot. If the shape is circular or a large circle can be drawn in the contact surface, this
circle diameter represents then the maximum step size for the robot in all directions.
From body height of 0.14[m] the shape is the optical "largest", seeing that at 0.18[m] the area is
decrease. Therefor the body preset height is set to 0.14[m].
59
A Appendix  Ground contact plots
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Figure A.1: Ground contact surface model with limitations on joint 3, so that the angle stays between
138 and 45 of the femur and tibia.
60
A Appendix  Ground contact plots
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
Y (m)
Y (m)
0 0 0
0.5
0
0 0.5 1
X (m)
61
A Appendix  Ground contact plots
62
Appendix B
The system identication is needed in order to design a controller for the leg joints. The identication
is done with noise injection in closed loop. The controller in de closed loop is a simple PD controller
parameters shown in Table B.1. The system showed to be stable in simulation which is good to start
the system identication. By measuring the noise w, output y and the signal between the process and
the controller u the Sensitivity and Process Sensitivity are determent of the system. By dividing the
Process Sensitivity by the Sensitivity the Process H can be found.
Joint Kp Kd
1 100 1
2 31 1
2 17 1
Table B.1: PD parameters for joints 1,2 and 3 for system identication with noise injection.
Fully stretched, meaning the the robots leg are stretched fully out when noise is injected for each
joint separately per measurement.
Bended, joint number 3 is set to 90 pointing downwards and also each joint is measured as
in fully stretched separately.
Initial positioned, the position where the robot stands still in neutral position, but without
ground contact and each joint is again measured separately.
All at once, meaning that that all joint at the same time are identied with the same noise
injection. The robot is in fully stretched position.
With these condition the Bodeplots of the systems are made. Figure B.1 shows the Bodeplot of all
measurements combined and Figure B.2, B.5 and B.8 who the same measurements but separately in
order to get a better look. As can be seen in de Bodeplots, the systems behave as a one mass system
system SISO.
63
B Appendix  FRF measurements
Magnitude (dB)
Magnitude (dB)
100 100 100
Phase (degrees)
50 50 50
0 0 0
50 50 50
Figure B.1: All Bodeplots of all the measurements combined, performed on the robots leg.
50 50 50
Magnitude (dB)
Magnitude (dB)
Magnitude (dB)
Phase (degrees)
Phase (degrees)
0 0 0
Figure B.2: The Bodeplot of three joints in fully stretched condition of the leg.
64
B Appendix  FRF measurements
0.95 0.95
0.95
0.9 0.9
0.85 0.85
Magnitude
Magnitude
0.9
0.8 0.8
0.85 0.75 0.75
0.7 0.7
0.8
0.65 0.65
0.75
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
Magnitude (dB)
0 4
5
10 6
8
10
20
10
30 12 15
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
Figure B.3: The Sensitivity plot of three joints in fully stretched condition of the leg.
Magnitude
0 0 0
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
50 50 50
Magnitude (dB)
Magnitude (dB)
Figure B.4: The Process Sensitivity plot of three joints in fully stretched condition of the leg.
65
B Appendix  FRF measurements
50 50 50
Magnitude (dB)
Magnitude (dB)
100 100 100
Phase (degrees)
0 0 0
Magnitude
0 0 0
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
Magnitude (dB)
0
5 5
10
10 10
20
30 15 15
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
Figure B.6: The Sensitivity plot of three joints with joint 3 set to 90 .
66
B Appendix  FRF measurements
Magnitude
Magnitude
0.6 0.6 0.6
0 0 0
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
50 50 50
Magnitude (dB)
Magnitude (dB)
100 100 100
Figure B.7: The Process Sensitivity plot of three joints with joint 3 set to 90 .
50 50 50
Magnitude (dB)
Magnitude (dB)
Phase (degrees)
0 0 0
Figure B.8: The Bodeplot of three joints in neutral standing position without ground contact.
67
B Appendix  FRF measurements
Magnitude
Magnitude
0.9 0.6 0.6
0.75 0 0
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
Magnitude (dB)
0
5 5
10
10 10
20
30 15 15
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
Figure B.9: The Sensitivity plot of three joints in neutral standing position without ground contact.
0.9
0.8 0.8
0.8
Magnitude
Magnitude
0.6 0.6
0.7
0.4 0.4
0.6
0.2 0.2
0.5
0.4 0 0
0 1 2 0 1 2 0 1 2
10 10 10 10 10 10 10 10 10
Frequency (Hz) Frequency (Hz) Frequency (Hz)
Magnitude (dB)
80
100 100
100
120
150 150
140
Figure B.10: The Process Sensitivity plot of three joints in neutral standing position without ground
contact.
68
Bibliography
69
BIBLIOGRAPHY BIBLIOGRAPHY
[22] M.K. Smith D. McMordie C. Prahacs, A. Saunders and M. Buehler. Towards legged amphibious
mobile robotics. In The Inauural Canadian Design Engineering Network Design Conference, 2004.
[23] E. Celaya and J. M. Porta. Control of a sixlegged robot walking on abrupt terrain. In Proc. Conf.
IEEE Int Robotics and Automation, volume 3, pages 27312736, 1996.
[24] Wenjie Chen, K. H. Low, and S. H. Yeo. Adaptive gait planning for multilegged robots with an
adjustment of centerofgravity. Robotica, 17(4):391403, 1999.
[25] H. J. Chiel, R. D. Beer, R. D. Quinn, and K. S. Espenschied. Robustness of a distributed neural
network controller for locomotion in a hexapod robot. Robotics and Automation, IEEE Transactions
on, 8(3):293303, 1992.
[26] B.S. Choi and S.M. Song. Fully automated obsticlecrossing gaits for walking machines. IEEE
International Conference on, 18(6):952964, 1988.
[27] Mark R. Cutkosky, Scott L. Delp, and Kenneth J. Waldron. Design, simulation, and stability of a
hexapedal running robot, 2004.
[28] L. D. Davis and Melanie Mitchell. Handbook of Genetic Algorithms. Van Nostrand Reinhold, 1991.
[29] P. Gonzalez de Santos, E. Garcia, and J. Estremera. Improving walkingrobot performances by
optimizing leg distribution. Autonomous Robots, 23(4):247258, November 2007.
[30] M.H.P. Dekker. Advice and implementation of a friction model in simmechics, 2010.
[31] M. Dorigo and U. Schnepf. Geneticsbased machine learning and behaviorbased robotics: a new
synthesis. IEEE Transactions on Systems Man and Cybernetics, 23:141153, 1993.
[32] Volker Drr, Josef Schmitz, and Holk Cruse. Behaviourbased modelling of hexapod locomotion:
linking biology and technical application. Arthropod Structure & Development, 33(3):237 250,
2004. Arthropod Locomotion Systems: from Biological Materials and Systems to Robotics.
[33] E. J. P. Earon, T. D. Barfoot, and G. M. T. DEleuterio. The Evolution of Hexapod Walking Gaits by
a Genetic Algorithm, volume 1801/2000. Springer Berlin / Heidelberg, 2000.
[34] G. Endo and S. Hirose. Study on rollerwalker  adaptation of characteristics of the propulsion
by a leg trajectory . In Proc. IEEE/RSJ Int. Conf. Intelligent Robots and Systems IROS 2008, pages
15321537, 2008.
[35] C. Ferrell. Robust agent control of an autonomous robot with many sensors and actuators. Ad
vances in Automation and Robotics, MIT AI Lab. Technical Report 1443:1100, 1993.
[36] M. R. Fielding, R. Dunlop, and C. J. Damaren. Hamlet: force/position controlled hexapod walker
 design and systems. In Proc. IEEE Int. Conf. Control Applications (CCA 01), pages 984989,
2001.
[37] Gene F. Franklin. Feedback Control of Dynamic Systems. AddisonWesley Longman Publishing
Co., Inc., Boston, MA, USA, 2002.
[38] Parker G., Braun D.W., and Cyliax I. Evolving hexapod gaits using a cyclic genetic algorithm.
In Proceedings of the IASTED International Conference on Articial Intelligence and Soft Computing
(ASC97), pages 141144, 1997.
[39] David E. Goldberg. Genetic algorithms in search, optimization, and machine learning. Addison
Wesley Longman Publishing Co., Inc., Upper Saddle River,NJ, USA, 1989.
[40] Garcia E. Gonzalez de Santos, P. and J. Estremera. Quadrupedal Locomotion. Springer, 2006.
[41] P. Gonzalezde Santos. Using soft computing techniques for improving foot trajectories in walk
ing machines. Journal of Robotic Systems, 18(7):343356, July 2001.
70
BIBLIOGRAPHY BIBLIOGRAPHY
[42] Keith Grant. An introduction to genetic algorithms, volume 13. CMP Media, Inc., , USA, 1995.
[43] Grefenstette, Ramsey, and Connie Loggia Ramsey. An approach to anytime learning. In Proceed
ings of the Ninth International Conference on Machine Learning, pages 189195. Morgan Kaufmann,
1992.
[44] K. Hattori H. Hirukawa and S. Harada. A universal stability criterion of the foot contact of legged
robots. In IEEE International Conference on Robotics and Automation, pages 19761983, 2006.
[45] K. Ichiryu and D. Kawashima. Development of landmines detecting and clearing robot. Advances
in Automation and Robotics, October:6266, 2005.
[46] I. Kecsks and P. Odry. Walk optimization for hexapod walking robot. International Symposium
of Hungarian Researchers on Computational Intelligence and Informatics, 10th:413419, 2009.
[47] Sangbae Kim, Jonathan E. Clark, and Mark R. Cutkosky. isprawl: Design and tuning for high
speed autonomous openloop running. Int. J. Rob. Res., 25(9):903912, 2006.
[48] Tsuchiya O. Ishiguro A. Kimura, B. and H. Witte. Adaptive Motion of Animals and Machines.
Springer, 2006.
[49] Bart Kosko. Neural networks and fuzzy systems: a dynamical systems approach to machine intelligence.
PrenticeHall, Inc., Upper Saddle River, NJ, USA, 1992.
[50] M. Kosko. Neural Networks and Fuzzy Systems. PrenticeHall, New Delhi, India, 1994.
[51] R. Blickhan amd R. J. Full L. H. Ting. Dynamic and static stability in hexapdal runners. J. exp.
Biology, 197:251269, 1994.
[52] BoHee Lee and InKu Lee. The implementation of the gaits and body structure for hexapod robot.
In Proc. IEEE Int. Symp. Industrial Electronics ISIE 2001, volume 3, pages 19591964, 2001.
[53] T.T. Lee, C.M. Liao, and T. K. Chen. On the stability properties of hexapod tripod gait. Robotics,
4(4):427434, 1988.
[54] Richard W. Longman. Iterative learning control and repetitive control for engineering practice.
International Journal of Control, 73:930954, 2000.
[55] R.B. McGhee and G.I. Iswandhi. Adaptive locomotion of a multilegged robot over rouch terrain.
IEEE Transactions on Systems Man and Cybernetics, SMC9(4):176182, 1979.
[56] R. Merry, D. Kessels, R. van de Molengraft, and M. Steinbuch. Repetitive control applied to a
walking piezo actuator. In Proc. IEEE Int. Conf. Control and Automation ICCA 2009, pages 854
859, 2009.
[57] R. Merry, R. van de Molengraft, and M. Steinbuch. The inuence of disturbances in iterative
learning control. In Proc. IEEE Conf. Control Applications CCA 2005, pages 974979, 2005.
[58] S. Miao and D. Howard. Optimal tripod turning gait generation for hexapod walking machines.
Robotica, 18(6):639649, 2000.
[59] S. M. C. Netto, A. Evsuko, and M. Suell Dutra. Fuzzy systems to solve inverse kinematics
problem in robots control: application to an hexapod robots leg. In Proc. Sixth Brazilian Symp.
Neural Networks, pages 150155, 2000.
[60] R. Ponticelli P. Gonzalez de Santos, E. Garcia and M. Armada. Minimizing energy consumption
in hexapod robots. Advanced Robotics, 23(2):681704, 2009.
[61] G. B. Parker and Zhiyi Lee. Evolving neural networks for hexapod leg controllers. In Proc.
IEEE/RSJ Int. Conf. Intelligent Robots and Systems (IROS 2003), volume 2, pages 13761381, 2003.
71
BIBLIOGRAPHY BIBLIOGRAPHY
[62] D.K. Pratihar and A. Ghosh. Optimal path and gait generations simultaneously of a sixlegged
robot using a gafuzzy approuch. Elsevier Robotics and Autonomous Systems, 41(120):120, 2002.
[63] Andr Preumont. An investigation of the kinematic control of a sixlegged walking robot. Mecha
tronics, 4(8):821 829, 1994.
[64] Marc H. Raibert. Legged robots that balance. Massachusetts Institute of Technology, Cambridge,
MA, USA, 1986.
[65] R.D. Randall and R.D Quin. Biologically inspired approaches to robotics. Communications of the
ACM, March:3140, 1997.
[66] Uluc Saranli, Martin Buehler, and Daniel E. Koditschek. Rhex: A simple and highly mobile
hexapod robot. I. J. Robotic Res., 20(7):616631, 2001.
[67] Weiwei Shang, Shuang Cong, and Yaoxin Zhang. Nonlinear friction compensation of a 2dof
planar parallel manipulator. Mechatronics, 18(7):340 346, 2008. Special Section of Revised
Papers from the 8th International IFAC Symposium on Robot Control, 8th International IFAC
Symposium on Robot Control.
[68] W. L. Xu Shigang Yue, Dominik Henrich and S. K. Tso. Pointtopoint trajectory planning of
exible redundant robot manipulators using genetic algorithms. Journal of Robotica, 20:269
280, 2002.
[69] B. Siciliano and O. Khatib. Handbook of Robotics. Springer, 2008.
[70] M. F. Silva, J.A.T. Machado, and R. S. Barbosa. Complexorder dynamics in hexapod locomotion.
Signal Processing, 86(10):2785 2793, 2006. Special Section: Fractional Calculus Applications in
Signals and Systems.
[71] S. Skogestad and I. Postlethwaite. Multivariable Feedback Control: Analysis and Design. John Wiley
& Sons, Inc., New York, NY, USA, 2005.
[72] S.M. Song S.M. and K.J. Waldron. An analytical approach for gait study and its applications on
wave gaits. International Journal of Robotics Research, 6:6071, 1987.
[73] Mustafa Suphi Erden and Kemal Leblebiciolu. Analysis of wave gaits for energy eciency. Auton.
Robots, 23(3):213230, 2007.
[74] ChauRen Tsai, TsuTian Lee, and ShinMin Song. Fuzzy logic control of a planetary gear type
walking machine leg. Robotica, 15(5):533546, 1997.
[75] M.C. Tsai and M. Tomizuka. Model reference adaptive control and repetitive control for robot
manipulators. In Proc. Conf. IEEE Int Robotics and Automation, pages 16501655, 1989.
[76] C.R. Tsaj and T.T. Lee. A study of fuzzyneural force control for a quadrupedal walking machine.
J. Dynamic Systems Measurement Control, 120:124133, 1998.
[77] Manuela Veloso, Scott Lenser, Douglas Vail, Paul Rybski, Nick Aiwazian, Sonia Chernova, and
Thanks James Bruce. Cmrobobits: Creating an intelligent aibo robot class. In 2004 AAAI Spring
Symposium on Accessible Handson Articial Intelligence and Robotics Education, 2004.
[78] M. H. A. Verwoerd. Iterative learning control : a critical review. PhD thesis, University of Twente,
Enschede, 2005.
[79] K. Waldron and R. McGhee. The adaptive suspension vehicle. Control Systems Magazine, IEEE,
6(6):712, 1986.
[80] David Wettergreen. Robotic Walking on Natural Terrain: Gait planning and behaviorbased control
for staticallystable walking robots. PhD thesis, Robotics Institute, Carnegie Mellon University,
Pittsburgh, PA, December 1995.
72
BIBLIOGRAPHY BIBLIOGRAPHY
[81] B. Widrow and M. E. Ho. Adaptive switching circuits, 1960. Reprinted in Neurocomputing
(MIT Press, 1988).
[82] JungMin Yang. Gait synthesis for hexapod robots with a locked joint failure. Robotica, 23(6):701
708, 2005.
[83] P. Younse and Hrand Aghazarian. Steerable hopping sixlegged robot. Space Exploration Tech
nologies, 6960(1):69600H, 2008.
[84] C.D. Zhang and K.J. Song. Stability analysis of wavecrab gaits of a quadrupped. Journal of Robotic
Systems, 7:243276, 1990.
73