Documentos de Académico
Documentos de Profesional
Documentos de Cultura
J.J.P.A. Willems
CST 2011.089
Masters thesis
Coach(es):
Supervisor:
Committee:
Abstract
The Dynamical Systems Design department at the Eindhoven University of Eindhoven is actively
researching the design and control of robotic systems. Examples are Amigo, the service robot
competing in the RoboCup @home league, the mid-size league soccer robots of Tech United and
the Tulip which is the humanoid robot competing in the RoboCup humanoid adult league. One
of the new research activities is the hexapodal robot, a legged robot which eventually should participate in the RoboCup Middle Size League. Therefore the final goal in the development of the
robot should be to make it run.
A first prototype is developed that is used as a testbed. The hexapod has 3 degrees-of-freedom per
leg where each rotational joint is separately actuated so that the robot has 18 actuators. The torque
of the actuator is transmitted to the joint using a torsional spring transmission. The introduced
compliance improves the impact safety of the hardware and can decrease energy consumption
when correctly exploited. The hexapod is equipped with an inertial measurement unit and each
joint and actuator has a position encoder.
A software structure is developed to control the motion of the hexapod. The control is developed
in open-source software, mainly in Orocos. To control the hexapod the controller is divided in
two main functions. The first controls the leg in joint space when it is positioned in the air by
using SISO control techniques. The second controls the body by using linear virtual actuators in
combination with the joint space controllers. The resulting forces of the virtual actuators determine the torques on the joints using a force distribution algorithm.
The results of the overall performance as well as of individual components are presented. Although some improvements can still be made, the robot is able to walk. Using more advanced
control techniques like learning could improve the walking speed. Exploiting the compliant dynamics and a redesign of the hardware eventually should result in a running hexapod.
ii
Contents
Abstract
1
Introduction
1.1 Motivation and background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Problem statement and objective . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
3
2 Literature survey
2.1 Gait generation and control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Compliant walking robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
7
Hardware design
4 System modeling
4.1 Leg kinematics . . . . . . . . . . . . . . . . .
4.2 Leg velocity kinematics . . . . . . . . . . . .
4.3 Leg dynamics . . . . . . . . . . . . . . . . . .
4.3.1 Actuator and transmission dynamics .
4.3.2 Mechanical dynamics . . . . . . . . .
4.4 Body dynamics . . . . . . . . . . . . . . . . .
5
13
.
.
.
.
.
.
13
15
16
16
16
17
Walking algorithm
5.1 Gait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Leg trajectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
6 Software architecture
6.1 ROS . . . . . . .
6.2 Implementation
6.2.1 Reference
6.2.2 Control .
6.2.3 Robot . .
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
21
.
.
.
.
.
21
22
23
24
25
Hexapod control
7.1 Leg control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1 Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.2 Joint control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
29
30
CONTENTS
7.2
7.3
30
31
34
37
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
38
38
39
Bibliography
41
A Kinematics
A.1 Forward kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2 Inverse kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
45
46
B Dynamics
47
49
iv
CONTENTS
Eindhoven University of
Technology Walking Robot
CONTENTS
vi
Chapter 1
Introduction
1.1
For several years walking robots are an active research topic in academic areas [16]. The difference
between a legged robot and a wheeled robot is the method of locomotion. A legged robot has several advantages over a wheeled robot. An overview of these advantages is depicted in Fig. 1.1. A
legged robot has a better mobility, it can easier bypass obstacles and it can maintain its orientation
while moving over irregular terrain. Walking does not have the disadvantage of slippage when
moving over soft terrain. The environmental damage is also minimized because it does not leave
tracks. On an irregular terrain the speed of a walking robot is superior with respect to a wheeled
robot. Walking robots have a lot of possibilities, they can for example be used for the inspection
of power plants, exploration of an unknown type of terrain and many more applications [55].
Since 2005 Eindhoven University of Technology is successfully participating in the RoboCup
Middle Size League (MSL) [1] with Tech United Eindhoven [2]. Tech United won the unofficial
European Championship 3 times and was 4 times in a row runner-up at the World Championship. Since 2011 Tech United expanded its team to compete in the @home league with the
service robot called Amigo. In the MSL the research is focused on full autonomy and cooperation
at plan and perception level. Therefore robots are used to play autonomous soccer in teams of
five. The official goal of RoboCup is
By mid-21st century, a team of fully autonomous humanoid robot soccer players shall win the soccer
game, comply with the official rule of the FIFA, against the winner of the most recent World Cup.
At the moment the MSL soccer field is a flat carpet such that wheeled robots can be used. Taking the main goal of RoboCup in mind, the MSL should switch to a real grass field in the (near)
future. To respond to this foreseeing a legged robot, a hexapod, is developed within the Control
System Technology department at the faculty of Mechanical Engineering.
1.2
The development and control of a walking robot is a complex challenge with a broad spectrum
of topics. The legs of a walking robot are connected to one another through the body and also
through the ground, forming closed kinematic chains. Forces and moments propagate through
the kinematic chain from one leg to another, and therefore dynamic coupling exists. With respect
to these issues, there are several aspects in this project that need to be investigated. These aspects
CHAPTER 1. INTRODUCTION
1.3. OUTLINE
are
the design of a software architecture for the robot,
the design of a walking pattern, i.e. a gait,
the control of the legs,
the control of the body.
Therefore the objective of the work described in this report is
Design and implement a software structure that controls the hexapodal robot in real-time such
that it is able to walk.
To fulfill this objective, first the necessary drivers need to be developed to communicate with
the hardware. A software design has to be developed, that translates the general objective into
practical implementations. In this implementation the encoders of the joints and actuators and
the orientation of the hexapod have to be processed. A controller for the legs and body has to be
developed and needs to be implemented with a walking procedure. Finally the hexapod has to be
tested to validate its ability to walk.
1.3
Outline
In this report first a brief overview of literature about walking robots is given. The hardware
design will be discussed in Chapter 3. The modeling of the hexapodal robot will be presented
in Chapter 4. In Chapter 5 the used gait will be given. The software architecture, the used
software and components, will be discussed in Chapter 6. In Chapter 7 the controller architecture
and results will be discussed. In the final chapter the conclusions and recommendations are
presented.
CHAPTER 1. INTRODUCTION
Chapter 2
Literature survey
Due to the variety of research topics on walking robots a brief literature survey is performed to get
familiar with the possibilities. Research topics that apply are for instance gait generation, force
distribution and leg control. Of course there is a lot of overlap between these topics.
2.1
Denition 1. A gait is dened by the time and the location of the placing and lifting of each
foot, coordinated with the motion of the body in its six degrees of freedom, in order to move
the body from one place to another.
as it is defined by Song and Waldron [16]. At the moment the research on gaits can be divided
in two classes [16] namely (i) periodic and (ii) non-periodic gaits. The periodic gaits can be divided
in continuous and discontinuous gaits. The main difference between these gaits is that in the
continuous gait the legs and body are constantly moving. With the discontinuous gait the motion
is sequential such that the legs are transferred and when all legs are positioned the body is moved
forward. The non-periodic walking is often used for terrain negotiating such that it is able to walk
on a highly irregular environment.
Periodic gaits
The common used gait in the animal world is the periodic-continuous gait.
Different type of gaits exist depending on the number of legs. Common gaits for quadrupeds are
bounding, trot, pace, gallop. The common gaits for a hexapod are the tripod gait and wave gait.
Non-periodic gaits Non-periodic gaits, also called free gaits, are used on highly irregular terrains. Mostly the algorithms for free gaits use logic and check the stability per step and which
leg to move next [33, 16]. Currently a lot of research to non-periodic gaits is on The Little Dog
robot [36]. The robot often is used at academic universities for research on rough-terrain locomotion [28, 49]. In the case of Little Dog visual information is used to determine the positioning of
the feet.
2.1.1 Control
Due to the large diversity of control structures this subsection only will give a brief overview of the
possibilities with respect to control of quadruped and hexapod robots. Most of the studies focus
on the combination of control and coordination of the legs because these are closely related.
Force distribution
A walking robot consists of a body with a mass which has to be distributed over several legs.
Several researchers investigated the force distribution problem which they applied on different
robot configurations. This force distribution problem is applied on a quadruped [59, 30, 18], a
hexapod [31], a octopod [57]. The force and moments on the body are related to the forces acting
on the tips of the legs or manipulators which are in contact with a surface. Constraints are added
such that no slip should occur and the torque of the actuators are limited. Because the solution
of the inverse dynamics is not unique an optimization is used. For this optimization, an objective
function is defined where most often the required torques and thus the energy consumption is
minimized. As stated in [37] for optimization quadratic programming is preferred in these type
of cases.
Control architectures
In cases where a walking robot has to deal with an irregular terrain, more advanced architectures
are used. In [15] the walking robot SILO6, used for humanitarian-demining uses 4 levels of
control. The basic control level uses a PID controller at each joint. The second level is the reactive
control which anticipates on the environment by using the joint positions and foot forces. The
third is the deliberative control level which plans the robot motion. The last level, the supervisor
control level, selects the type of gait and generates the robot trajectory, i.e. the navigation. In [13]
Nature inspired engineers to use compliant legs because of impact safety. Another advantage of
compliant legs is the reduction of energy consumption when the dynamics are exploited correctly.
A large diversity of legged robots currently exists, monopods, bipeds, quadrupeds, hexapods and
many other configurations, A few are depicted in Fig. 2.2 Marc Raibert, one of the leading experts on walking robots, built one-, two- and four-legged hydraulically actuated robots based on
prismatic compliant legs [43, 44]. Using compliant legs, complex dynamical behavior can be
achieved by relatively simple control algorithms. First a one-legged robot with a compliant leg
was controlled. To use the same algorithms on biped and quadruped robots, Raibert introduced
the concept that multiple legs are acting as one leg, i.e. virtual legs are used [43]. A well-known
compliant robot is RHEX [47, 26]. RHEX is designed using the principle of a Spring-Loaded
Invertible Pendulum (SLIP). SLIP represents locomotion as a mass attached to a spring as depicted in Fig. 2.1. Exploiting the dynamics results in running and hopping robots. SCOUT and
(a) 3D Hopper
(c) RHEX
(d) PAW
(e) Cheetah
Chapter 3
Hardware design
This chapter describes the first hardware design of Tech United Eindhoven hexapod, a photo
is depicted in Fig. 3.1. The hexapod is eventually meant for RoboCup soccer, therefore it is de-
10
Hexapodal speed
v2
gl
(3.1)
v denotes the velocity, g the gravitational constant and l the length of the leg.
This implies for the hexapod that at approximately 0.9 m/s this transition occurs.
11
12
Chapter 4
System modeling
This chapter describes the system modeling of the hexapodal robot. First the kinematics of the
leg will be explained. Then the velocity kinematics and dynamics of the leg will be discussed. The
last section will discuss the body dynamics.
4.1
Leg kinematics
When modeling in robotics, generally two spaces can be distinguished namely the operational
space and the joint space.
The operational space, induced by the Cartesian coordinates of the tip of the leg with respect
to the center of the body:
T
xB
k = xk = xk yk zk
(4.1)
(4.2)
It should be noted that a distinguishment is made between the kinematic 3,i and dynamic 3,i
angle where the dynamic angle is defined as
3,k = 2,k + 3,k
(4.3)
Using this distinguishment the third joint is decoupled from the second joint because the third
joint is remotely driven using a steel cable, a figure visualizing this distinction is depicted in
Fig. 4.1. The leg consists of three links as can be seen in Fig 4.2a. Using the Denavit-Hartenberg [51,
55] frame assignment, the frames for one leg are obtained as in Fig. 4.2b. The position and orientation of coordinate frame i with respect to the previous coordinate frame (i 1) can be specified
by the homogeneous transformation matrix A
i1
Ri (qi ) oi1
(qi )
i1
i
Ai (qi ) =
(4.4)
0T
1
where Rii1 SO(3) is a rotation matrix, and the vector oii1 R3 denotes the position coordinates from frame i with respect to frame i 1. The hexapod legs are identical open kinematic
Figure 4.1: Schematic overview of the dierence of a geometric 2 and dynamic 2 angle.
y2
x2
y1
z2
z0
y0
2
x1
1
x0
y3
z1
z3
x3
R01 o02
= T
A23
0
1
| {z }
(4.5)
A0
2
14
(4.6)
With the use of this, positions of the robot tip in operational space can be calculated from robot
T
configurations in joint space. For example q 0 = 0 0 0 corresponds with the configuration
when the leg is fully stretched. The corresponding position of the tip of the leg with respect to o0
(4.7)
T
o30 (q 0 ) = a1 + a2 + a31 0 a32
The solution for the inverse kinematics can be found in Appendix A.2.
4.2
The velocity kinematic relationship of a serial chain is determined by the Jacobian which is
(4.8)
= J(q)q
where
v0
= 30
3
J
and J = v
J
(4.9)
v 03 denotes the linear velocity vector of the tip and 03 the angular velocity vector. Both are defined
with respect to the root of the leg.
The linear velocity of the end effector, i.e. the foot, is o 30 so
J vi =
o30
qi
(4.10)
(4.11)
T
i is 1 for a revolute joint and 0 for a prismatic joint and k = 0 0 1 . However in this case,
due to the remote driven link, the second column is 031 because the third link does not depend
on the rotation of the second link.
The complete Jacobian is
0
a 2 C2
a31 C3 a32 S3
J =
0
0
S1
0
0
C1
1
0
0
(4.12)
15
Leg dynamics
The dynamics of the leg can be distinguished into two part, (i) the actuator dynamics and (ii) the
load dynamics. The complete derivation of the dynamics can be found in Chapter B.
(4.13)
where s is the torque exerted by the torsional springs, which is assumed to be a linear function
s = ks (, ) = ks ( )
(4.14)
(4.15)
M is the inertia matrix, C contains the centrifugal and Coriolis terms and g is the gravity vector.
When the leg is in the air there is no ground contact thus f = 0. However when the leg touches
the ground (4.15) becomes undetermined. In this case the equation should be solved in one of
the following ways [16]:
Using Lagrange multipliers to minimize some energy function.
Modeling foot/terrain interaction.
Using force sensors to measure f .
A systematic derivation of the Euler-Langrange equations can be found in B. In this case a simplification is used which regards the load as a mass such that the system is a 2-mass-spring-damper
model. This results in the following equation of motion
+ s = 0
Jl + bs ( )
16
(4.16)
Body dynamics
Since there is no relative motion between the hips and the body, it can be considered that the
exerted force acts at mass center of the object [29, 37]. The force and moment vector, resulting
from gravity and the external force acting on the hexapod, are shown in Fig. 4.4. For simplicity,
only the forces on the foot are presented and the torques are neglected.
T
T
R3 denote the robot body force
R3 and M = Mx My Mz
F = Fx Fy Fz
p
X
fk
(4.17)
xk f k
(4.18)
k=1
M=
p
X
k=1
Where p is the number of legs on the floor, f k is the force acting on the tip of leg k and xk is the
position of the tip. Both equations can be rewritten to matrix form as
(4.19)
F = JF f
f
.1
= I3 . . . I3 ..
fp
(4.20)
f1
0
xz,1 xy,1 . . .
0
xz,p xy,p
0
xx,1 . . . xz,p
0
xx,p ...
= xz,1
xy,1 xx,1
0
. . . xy,p xx,p
0
fp
(4.21)
(4.22)
17
(4.23)
with
T
JFM = JF T JM T R63p
T
W = FT MT R6
W denotes the wrench. To determine the requested forces on the tip of the legs JFM has to
brought to the right handside using the pseudo-inverse
f = JFM + W
(4.24)
The system is under-determined and the solution of (4.24) is not unique. A solution can be to
use optimization techniques with additional constraints to solve the actuator redundancy [38, 37].
The torques on the joints can then be determined by using the transpose of the Jacobian as
k = JT f k
(4.25)
However because the wrench acting on the body is determined with respect to the world, the
force has to transformed to the body using RW
B such that the equation becomes
W
k = JT RB
0,k RB f k
(4.26)
The rotation RB
0,k transforms the force vector from the body frame to the frame of the root of leg
k. This is done because the Jacobian is defined with respect to this frame.
18
Chapter 5
Walking algorithm
5.1
Gait
A continuous gait is the most used gait by animals. A gait can be characterized by several parameters [16] namely
the cycle time, tc , also called the period, is the time it takes for a leg to perform a full step,
the duty factor of leg k, k , is the fraction of the cycle time a leg is on the ground,
the phase of leg k, k , is the normalized phase lag with respect to zero lag,
the leg stroke R, is the distance which a foot is moved relative to the body. In combination
with the cycle time this will determine the speed of the robot.
The duty factor and phase determine the type of gait. Several type of gaits exist for an insect such
as the tripod gait, which is known as the fastest insect gait. In the tripod gait three legs, the front,
back and middle of the other side, support the body and the other three are in the flight phase [11].
The slowest gait is the wave gait at which one leg moves at a time.
5.2
The trajectory used is generated for simplicity. It is assumed that every leg will perform the same
step in a specified direction. Therefore the trajectory of a leg is generated in a 2D fashion as
shown in Fig 5.1. Using a transformation the trajectories of the legs can be altered to move in any
direction. The trajectories are generated with respect to the frame of the body (B), this is done by
using an offset of the transformed trajectory.
The trajectory of the leg is generated using a sinusoid and a linear function, depending on the
state of the leg i.e. lifted in the air or standing on the ground. The result of the generation of
this trajectory is that it is not continuous differentiable. However this discontinuity occurs at the
transfer between the states thus an impact is expected. The trajectory is created as following, the
leg index is omitted for readability
1. The time within the trajectory is determined because the phase per leg can vary.
t = t + (1 )tc
(5.1)
if t tc
if t > tc
(5.2)
2. Then the 2D position of the tip of the leg is determined depending on the state, i.e. is it in
the support or flight phase
Rt R
if t tc (1 )
2
tc (1)
(5.3)
x =
t
h sin t (1)
+ z else
c
(
(ttc (1))
R
cos
if t tc (1 )
tc
z = 2
(5.4)
z
else
The trajectory is depicted in left figure of Fig. 5.1. h denotes the height of the step and z
denotes the offset with respect to the body frame in z direction
3. The x-position x is transformed to a x and y position with respect to the body
xx = x cos( ) + r cos (k 1)
3
xy = x sin( ) + r sin (k 1)
3
xz = z
(5.5)
(5.6)
(5.7)
denotes the angle the trajectory has to be turned around the z-axis. This defines the
direction of walking. r denotes the radius at which the trajectories will be positioned.
This results in the real-time trajectory which can be seen in 5.1. In the left part the 2D-trajectory
is shown and in the right the transformed trajectories are shown. The trajectory for turning the
2D leg trajectory
0.15
0.155
0.15
0.165
0.16
0.17
0.17
z[m]
z[m]
0.16
0.175
0.18
0.18
0.19
0.185
0.2
0.4
0.19
0.2
0.195
0.4
0.2
0.2
0.2
0.04 0.03 0.02 0.01
0
x [m]
0.01
0.02
0.03
0.04
y[m]
0.2
0.4
0.4
x[m]
20
Chapter 6
Software architecture
This chapter describes the software architecture of the hexapod robot. All software used in this
project is free and open-source. For the operating system Ubuntu 10.04 LTS was used.
6.1
ROS
The Robot Operating System (ROS) [6] is an open-source framework which provides a structured
communication layer [42]. ROS is designed with the following goals in mind: (i) peer-to-peer,
(ii) tools-based, (iii) multi-lingual, (iv) thin and (v) free and open-source. The advantage is that
at the moment a large community exists and is collaborating on packages or tools for ROS. Due
to the communication network these tools can be (re)used by users as requested. In our case
several tools are used which are incorporated in ROS, the following will be briefly explained
RVIZ, Gazebo and Orocos-RTT.
Orocos-RTT Orocos-RTT stands for the Open RObot COntrol Software - Real-Time Toolkit [53].
Orocos is a C++ framework for constructing complex component based robotic systems. Orocos
is developed with the following goals in mind [12]: (i) open source, (ii) modular and flexible, (iii)
independent and (iv) component based. This design has the advantage that several computations
can be divided over several components keeping the software complexity low. All Orocos components are made configurable such that parameters easily can be altered without editing the
source-files, and thus no need to re-compile the code. Orocos is currently used as a soft real-time
implementation. A hard real-time implementation could be used by using a real-time operating
system.
Furthermore an integration with EtherCAT exists using a wrapper for SOEM, This implies that
only a driver needs to be written to get EtherCAT working.
RVIZ
RVIZ is a 3D visualization environment for robots using ROS. The joint positions and
IMU orientation are published out of Orocos to a ROS-topic. RVIZ is subscribed to this topic
such that it is able to visualize the data. If data is recorded it can be used as a tool to replay the
data giving a better insight of the state of the hexapod. RVIZ obtains the kinematic structure out
of a URDF (Unified Robot Description Format) [7]. URDF is an XML format for representing
robot models. This is done by defining the kinematic chains. It is also possible to assign dynamic
properties like masses and inertias to the model such that it can be used for dynamic simulation
Gazebo
Gazebo [27] is a 3D rigid body simulation package for robots, part of the Player project [3].
Gazebo uses the Open Dynamics Engine (ODE) [5] to simulate physics. ODE consists out of two
main components i.e. a rigid-body dynamics and a collision detection engine. Gazebo is developed such that it trades off accuracy for speed. The rendering engine used within Gazebo is
Ogre3D [4] which is an Object-Oriented Graphics Rendering Engine.
To communicate with the Orocos layer, Gazebo publishes data to topics which are read by an
interface component. This interface component makes the data available for the Orocos components. The interface also reads the torques output of the controller, then the interface publishes
the torques to a topic such that they can be used in Gazebo.
As a torsional spring was not present as a transmission this is developed by the ROS-community
on request. To verify the transmission a setup of a 2-mass-spring model was designed. The frequency response were measured which satisfied the expected result, a description can be found
in Chapter C.
6.2
Implementation
Several Orocos components are written to control the hexapod. The components are structured
such that it can be regarded as a standard feedback-control structure as depicted in Fig. 6.2. This
structure has the advantage that it is well-known and modular. Therefore several control structures can be easily tested. The components are also designed such that they are configurable and
22
6.2. IMPLEMENTATION
thus parameters can easily be altered. In Fig. 6.2 dashed arrows indicate that the reference generator and controller also use additional information from the hexapod. The component diagram of
Reference
Control
Robot
6.2.1 Reference
The top layer as depicted in Fig. 6.3 is the reference layer. The reference layer as in Fig. 6.4
generates the trajectories for the legs. Using inverse kinematics of KDL the joint references are
obtained. Besides these outputs the reference layer also generates a reference for the hexapod
body in terms of the height, roll and pitch (h, , ).
23
Gait
As can be seen in Fig. 6.4 the gait consists out of three components. These component generate
the reference for the tip of the leg.
Position
This component retrieves the current tip position of the leg and generates a linear
trajectory to the requested position within a given duration.
Continuous gait
The continuous gait generates a reference for the tip of the leg as described
in Chapter 5. Currently two continuous gaits exist, one for walking in a specified direction and
one for turning around the hexapods z-axis. The gait can be altered by editing the configuration
parameters.
Inverse kinematics
The inverse kinematics determines the joint angles of the leg from a given position of the tip. The
inverse kinematics are using the Kinematics and Dynamics Library (KDL) of the Orocos Project.
The implemented algorithm is based on Newton-Raphson iterations. Furthermore joint limits
into account and the number of iterations and precision is configurable. To seed the algorithm the
previous solution of the inverse kinematics is used to decrease the number of iterations needed.
6.2.2 Control
The second layer is the control layer. The overview of the control structure is depicted in Fig. 6.5.
The theory behind the controller part is extensively described in Chapter 7.
Controller components
The controller components developed within the RoboEarth [58] project are used, the description
of the components can be found in [35]. The controller components used are PD for the virtual
24
6.2. IMPLEMENTATION
Control Supervisor
The Control Supervisor is responsible for selecting the appropriate control signals. This depends
on the request and state of legs. If there is no particular request the control signals are forwarded
depending on their state, i.e. in the air or on the ground. Currently no requests are implemented
and the control supervisor simply acts as an addition of both control signals.
Force distribution
The Force distribution distributes the forces that should act on the body to the legs. In Fig. 6.5 this
component represented by JF+M . The algorithm used is described in Section. 4.4. To solve these
equations the C++ linear algebra library Eigen is used. Because the solution of equation (4.24)
is non-unique because the system is under-determined, it is calculated using the singular value
decomposition. The returned solution is guaranteed to minimize the Euclidean norm ||JFM f
W|| and thus distributes the body force equally to the leg forces.
Jacobian
The Jacobian component determines the torques on the joints depending on the requested force,
W in Fig. 6.5. First the forces with respect to the world
the component is represented by J T R0B RB
frame are transformed to the body frame. Then using the Jacobian, which is implemented as
derived in (4.12), these forces are translated to the torques needed for the joints.
6.2.3 Robot
The robot is regarded as the drivers needed to communicate with the robot, a safety component
and some virtual encoders. The robot implementation scheme is depicted in Fig. 6.6, this scheme
consists of the bottom two layers as shown in Fig. 6.2 i.e. the virtual hardware and hardware layer.
25
Safety
This component acts as an emergency button on a software level such that the robot does not
damages itself. The component can disable actuators and overrule the control signal. It also check
the initialization of the actuator encoders such that they do not differ from the joint encoders.
Furthermore the safety checks whether a cable is assumed to be broken or that a joint ranges out
of its safety limits.
Hardware interfaces
The hardware interfaces, i.e. the actuator, encoder and IMU interface, are responsible for the initialization of the corresponding hardware. Also it converts counts and voltages to usable positions
and orientation angles.
Ground contact
The ground contact determines whether a leg is standing on the ground or not. The robot does
not have force or touch sensors such that this has to be indicated using a virtual sensor. This
virtual sensor is obtained using the difference between the actuator and joint position from the
second joint. Then it is checked if the difference exceeds a specified threshold, which is assumed
to be caused by a force acting on the leg. In Fig. 6.7 the method is demonstrated, as can be seen
at 32.4 seconds the leg touches the ground.
Forward kinematics
The forward kinematics calculates the position of the tip of a leg with respect to body frame, this
information is extracted from the URDF of the robot. The forward kinematics are implemented
26
6.2. IMPLEMENTATION
0.3
0.25
0.2
0.15
0.1
0.05
0
Scaled contact
joint actuator
0.05
10
15
20
25
30
Time [s]
35
40
45
50
Height
The height of the body is determined under the assumption that the hexapod stands on a flat
surface. The height is obtained by averaging the z-position of the tips, transformed to the world
coordinate frame.
h=
p
1 X W
RB (xi + z) z
n
(6.1)
i=1
Where p is the number of legs on the ground and z is the distance from the frame of the body
to its bottom. The [. . .]z denotes that the z is taken for the summation. If none of the legs are on
the ground the height is equal to 0.
27
28
Chapter 7
Hexapod control
Two main situations for control can be distinguished namely (i) the leg is lifted in the air and
(ii) the leg is standing on the ground. In the first situation the leg can be regarded as a RRRmanipulator, the control objective in this case is to control the position of the tip. The second can
be regarded as a situation in which several manipulators are performing cooperative manipulation namely on the body. In this case the control objective changes to the orientation and height
of the body.
7.1
Leg control
7.1.1 Identication
To identify the system, the equations of motion ((4.16), (4.13)) in time domain can be rewritten
to the frequency domain using Laplace
Jm s2 = Tm + (ks + bs )( )
Jl s2 = (ks + bs )( )
(7.1)
(7.2)
Rewriting both equations results in two transfer functions, one for the collocated case and one
for the non-collocated case.
Hnon-collocated = /Tm =
Jm Jl
s4
bs s + ks
+ (Jm + Jl )bs s3 + (Jm + Jl )ks s2
(7.3)
Each joint is actuated by a motor. Since the third degree of freedom is coupled to the second,
this degree of freedom is decoupled using (4.3). Using a frequency response measurement,
the system can be identified in closed loop. Indirect identification is performed by measuring
the frequency response from wi (t) to vi (t). This is the frequency response function (FRF) of the
sensitivity function Si (= 1/(1 + Hi Ci )) of the feedback loop in the ith joint. Using the identified
sensitivity, for a known controller, the plant may be obtained via
Hi (j) =
1 Si (j)
Ci (j)Si (j)
(7.4)
The obtained frequency response functions are depicted in Fig. 7.2. The frequency response
of the actuators clearly show a minus 2 slope which indicates a mass system. The FRF of the
Joint 2
Joint 3
0
Joint
100
Magnitude (dB)
Magnitude (dB)
50
50
100
50
100
150
180
150
180
90
90
90
90
180
0
10
Phase (deg)
150
180
Phase (deg)
Phase (deg)
Magnitude (dB)
Actuator
90
10
Frequency (Hz)
10
180
0
10
90
10
Frequency (Hz)
10
180
0
10
10
Frequency (Hz)
10
30
Joint 2
5.0
1.7
15.0
25.0
3.2
5.9
39.5
7.9
Joint 3
-5.0
1.7
15.0
25.0
3.3
6.0
36.9
38.5
During the tracking experiment the joint has to follow a second-order trajectory while the leg is in
the air. Using a second-order trajectory the velocity and acceleration references are also available
to use for feedforward control. The first experiment uses a trajectory which can be related to 1
step per 2 seconds (0.5 Hz). It can be seen in Fig. 7.5 that the trajectory is tracked with an average
absolute error of 0.033 rad when only using feedback. Adding feedforward improves the tracking
sufficiently with an average absolute error of 0.010 rad. The peaks in the error are caused when
the direction of the joint is changed. This can be explained to the compliance between the actuator
and joint and the backlash caused by the gearbox. To investigate the maximum stepping size the
step frequency is increased to 1.5 steps per second. It can be seen in Fig. 7.6 that the controller
is not able to track the trajectory, the actuator even saturates. Using feedforward the tracking
is greatly improved as expected and no more saturation occurs. Looking at the control signal it
can be seen that the actuator is almost working at its hardware limit (-5 till 5 A) and probably no
greater speed can be achieved. This test was conducted outside the continuous operation of the
actuator with additional cooling. Noting that the leg was lifted in the air, it can be expected that
when the foot is positioned at the ground not the same speed can be achieved.
7.2
Body control
In the second case the principle of virtual actuator control [41] is used. By using virtual components such as spring and dampers the requested forces on the hexapod body are determined. The
advantage of using virtual actuators is that a simple linear control structure can be used. Furthermore the positioning of the leg is relatively simple because when standing on an obstacle the tip
of the position does not have to be adjusted because the forces are simply altered.
A distinghuisment is made between the hexapod body and world variables. The body variables
are the height and orientation of the robot (h, , ), the following can be used
kh (hd ha ) bh h a + g
k (d a ) b a
k (d a ) b a
WB
(7.5)
31
Joint 1
Joint 2
Joint 3
50
50
Magnitude (dB)
Magnitude (dB)
50
50
50
100
180
100
180
90
90
90
Phase (deg)
100
180
Phase (deg)
Phase (deg)
Magnitude (dB)
50
90
90
180
0
10
10
90
180
0
10
Frequency (Hz)
180
0
10
10
Frequency (Hz)
10
Frequency (Hz)
Position [rad]
1
0.5
0
Reference
0.5
Position
1
1.5
2.5
3.5
4.5
3.5
4.5
Time [s]
Error [rad]
1
1.5
2.5
3
Time [s]
Joint 1
Error [rad]
0.1
0.05
0
0.05
0.1
10
11
12
13
14
15
11
12
13
14
15
Joint 2
Error [rad]
0.2
0.1
0
0.1
0.2
10
Joint 3
0.05
Error [rad]
FB
FB+FF
0
0.05
10
Time [s]
11
12
13
14
15
Error joint 1
0.8
5
FB
FB+FF
0.6
4
3
0.4
2
Control [A]
Error [rad]
0.2
0
0.2
1
0
1
2
0.4
3
0.6
0.8
4
5
5
8
Time [s]
10
10
Time [s]
33
bx (x d x a )
by (y d y a )
WW =
(7.6)
0
b ( d a )
W W is the wrench acting on the body depending on the velocities of the hexapod. These velocities
should be generated using a trajectory planner. As can be seen W W does not depend on the
position in the world frame. The force distribution algorithm is used to obtain the control signal
for the motors. Using the motor torque constant kt and the gear ratio n the needed current or
control signal can be determined by
I=
1
d
kt n
(7.7)
It should be noted that there is no torque feedback in the body controller. Furthermore the torque
is applied at the motors and not directly at the joints. However in the static case the torque on the
actuators is equal to the torque on the joints.
7.3
Hexapod control
The joint control and body control is combined in one control scheme. This control scheme is
used for the locomotion of the hexapod. In the hexapod control the joint control and body control
are added together. This results that W W is not used because the locomotion of the legs should
take care of propelling the body forward. The disadvantage of the current method is that the
hexapod is only able to walk on a sufficiently flat surface. To overcome obstacles force feedback
is needed such that the position control signal is counteracted. Another possibility is to adapt the
gait of the leg which is positioned at an obstacle. Using this control scheme the hexapod is able to
walk and turn. Low obstacles are counteracted using the posture controller and compliance. As
can be seen in Fig. 7.7 the hexapod is not able to walk at the requested height. However it does
maintain a constant height. The peaks in the figure indicate that legs are being positioned on the
ground, resulting in some additional force. Investigating the roll and pitch during walking shows
that the hexapod is able to maintain its orientation. From the body coordinates it can be concluded
that the movement is periodic, which can be expected due to the references. Looking at the joint
errors during walking, as shown in Fig. 7.8 it can be seen that these are also periodic. The error
of the first joint, the joint which is responsible for propelling the body forward, increases when
in the standing phase. For the second and third joint peaks in the error occur at the moment
of lifting the leg. This is caused by the different goals of the controllers. At the moment the
leg needs to be lifted, the body controller still pushes the leg down. If the error becomes large
enough, the leg is released due to the leg controller. A possible solution can be implementing
a transition in the body controller, such that the force is decreased when it receives a request to
release a leg.
34
Height [m]
0.06
Measurment
Reference
0.04
0.02
215
220
225
230
220
225
230
225
230
Roll [rad]
0.1
0
0.1
215
Pitch [rad]
0.05
0
0.05
215
220
Time [s]
Error joint 1
Error joint 2
0.1
0.5
0.05
0.4
0.3
0.05
0.2
0.1
0.1
0.15
0.2
0.1
Error joint 3
0.3
Error [rad]
0.2
0.1
0.1
0.25
215
220
225
Time [s]
230
0.2
215
220
225
Time [s]
230
0.2
215
220
225
Time [s]
230
35
Switching
Using virtual actuator control on the body, i.e. switching between joint and body
control was also tested. The advantage is that the tips are not position controlled when standing
and thus standing on an object does not influence the body of the hexapod. The downside of
switching is that it is difficult to propel the body forward because the velocities of the body were
not available, i.e. not implemented. This also results in the case that the position of the tip is
not tracked when standing on the ground such that when it needs to be lifted, tracking control is
turned on, resulting in a step of the position of the tip. It is questionable if the switching results
in a stable system because it may cause undesired impulses, this is however not investigated.
36
Chapter 8
Conclusions
The control of a walking robot is more complex then the control of a wheeled robot. Multiple
legs should follow a trajectory while keeping the body balanced. A walking robot is sensitive to
contact forces with the ground. The effect of the contact forces in the robot are enhanced due to
a relative high center of gravity of the hexapod and compliance in the legs.
The goal in this report was to develop and implement a software structure that enables the hexapod to walk. The exact goal that described this project was
Design and implement a software structure that controls the hexapodal robot in real-time such
that it is able to walk.
This goal is achieved as the hexapod is able to walk.
A software architecture was developed containing, drivers, forward and inverse kinematics
and many more components,
a leg controller was developed and implemented,
a body controller was developed and implemented.
An important aspect is the body controller using a force distribution algorithm in combination
with virtual actuators. This enables the hexapod to maintain its orientation while walking. Due to
the hexapod design it is sensitive to tilt depending on the foot placement. The force distribution
is able to counteract this effect by applying a moment in the opposite direction. During walking
the roll and pitch stay within a range of 0.05 [rad]. A challenge remaining is to extend the functionality of the force distribution with respect to phase transitions. The force transition for the
leg from swing to stance phase and vice versa could be smoothed. This would decrease the joint
errors for the second and third joint and the height of the hexapod would be more constant.
Besides the control the other important aspect is the gait. The gait designed is relative simple
but functional. It is able to move in different directions and the parameters, such as the step size
and step height, are configurable. However to change these parameters and change the direction
the gait first have to finish its step and be reconfigures. So this can not be changed on the fly.
Recommendations
The goal of this project is achieved however there are a lot of possibilities to increase the performance of the hexapod. These recommendations range from several research topics to practical
implementations.
8.2.1 Hardware
It is recommended to evaluate the hardware taking in mind that the final goald will be a running
hexapod.
Actuation
Compliant legs
Force sensors
The walking robot would also benefit using force sensors. This should be able
by using the torsional springs however this did not succeed. Further investigation is required to
38
8.2. RECOMMENDATIONS
obtain a force measurement. Using force sensors would enable the advantage of force feedback
and thus the robot can better react to obstacles.
8.2.2 Software
The software structure is a first set-up therefore some basic and practical implementations are
made. These can be improved by the following recommendations.
Odometry
The velocities of the robot are currently not determined. These could be obtained
by using the data of the IMU. The IMU returns are very noisy measurement using appropriate
filter techniques and sensor fusion of the tip positions accurate velocities can be obtained. Using
these velocities, the position of the body also can be defined such that planning can be used.
Dynamics
The torsional springs in the system should be exploited to reduce energy consumption, especially when the robot starts to run. As in [9] the passive dynamics of a one-legged
compliant robot were used which resulted in energy savings of 95%. The dynamics can be investigated using the prototype leg and additional force sensors.
Gait generation The gait used in this project is a relative simple continuous gait. The gait can
be improved especially at the point of touch down and release of the tip of the leg. This transition
is currently not smooth resulting in an higher impact then necessary.
Stability margins should also be investigated when walking such that legs can be adapted to
maintain stability. Stability margins for future running do not apply.
A practical implementation for the current gaits would be a smooth transition between different
gaits.
39
40
Bibliography
[1] Robocup. http://www.robocup.org.
[2] Tech united eindhoven. http://www.techunited.nl.
[3] Gazebo, the player project. http://playerstage.sourceforge.net/, 2011.
[4] Ogre 3d. http://www.ogre3d.org/, 2011.
[5] Open dynamics engine. http://www.ode.org/, 2011.
[6] Ros.org. http://www.ros.org/wiki/, 2011.
[7] Ros.org urdf package. http://www.ros.org/wiki/urdf, 2011.
[8] MSL Technical Committee 1997-2011. Middle size robot league rules and regulations for
2011. Technical report, RoboCup, December 2010.
[9] M. Ahmadi and M. Buehler. A control strategy for stable passive running. In Intelligent
Robots and Systems 95. Human Robot Interaction and Cooperative Robots, Proceedings. 1995
IEEE/RSJ International Conference on, volume 3, pages 152157 vol.3, aug 1995.
[10] Beckhoff. EtherCAT, Ultra high-speed communication, 2011.
[11] Randall D. Beer, Roger D. Quinn, Hillel J. Chiel, and Roy E. Ritzmann. Biologically inspired
approaches to robotics: what can we learn from insects? Commun. ACM, 40:3038, March
1997.
[12] H. Bruyninckx. Open robot control software: the orocos project. In Robotics and Automation,
2001. Proceedings 2001 ICRA. IEEE International Conference on, volume 3, pages 25232528
vol.3, 2001.
[13] J. Buchli, M. Kalakrishnan, M. Mistry, P. Pastor, and S. Schaal. Compliant quadruped locomotion over rough terrain. In Intelligent Robots and Systems, 2009. IROS 2009. IEEE/RSJ
International Conference on, pages 814820, oct. 2009.
[14] S.K.-K. Chu and G.K.-H. Pang. Comparison between different model of hexapod robot in
fault-tolerant gait. Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE Transactions on, 32(6):752756, nov 2002.
[15] P. Gonzalez de Santos, E. Garcia, and J. Estremera. A control architecture for humanitariandemining legged robots. In Proceedings of the 6th International Conference on Climbing and
Walking Robots (CLAWAR), pages 383390, September 2003.
BIBLIOGRAPHY
[16] Pablo Gonzalez de Santos, Elena Garcia, and Joaquin Estremera. Quadrupedal Locomotion;
An Introduction to the Control of Four-legged. Springer, 2006.
[17] C. Ferrell. Robust and adaptive locomotion of an autonomous hexapod. In From Perception
to Action Conference, 1994., Proceedings, pages 6677, sept. 1994.
[18] Jose A Galvez, Joaquin Estremera, and Pablo Gonzalez de Santos. A new legged-robot configuration for research in force distribution. Mechatronics, 13(8-9):907932, 2003.
[19] Jianjuen Hrr, J. Pratt, Chee-Meng Chew, H. Herr, and G. Pratt. Adaptive virtual model
control of a bipedal walking robot. In Intelligence and Systems, 1998. Proceedings., IEEE International Joint Symposia on, pages 245251, may 1998.
[20] F. Iida. Cheap Design Approach to Adaptive Behavior: Walking and Sensing through Body
Dynamics. International Symposium on Adaptive Motion of Animals and Machines, 2005.
[21] F. Iida, G. Gomez, and R. Pfeifer. Exploiting body dynamics for controlling a running
quadruped robot. In Advanced Robotics, 2005. ICAR 05. Proceedings., 12th International Conference on, pages 229235, july 2005.
[22] A. Ijspeert. Central pattern generators for locomotion control in animals and robots: A
review. Neural Networks, 21(4):642653, May 2008.
[23] D. Jansen and H. Buttner. Real-time ethernet the ethercat solution. Computing Control
Engineering Journal, 15(1):1621, feb.-march 2004.
[24] Mrinal Kalakrishnan, Jonas Buchli, Peter Pastor, Michael Mistry, and Stefan Schaal. Learning, planning, and control for quadruped locomotion over challenging terrain. The International Journal of Robotics Research, 30(236), 2010.
[25] C.A. Klein and S. Kittivatcharapong. Optimal force distribution for the legs of a walking machine with friction cone constraints. Robotics and Automation, IEEE Transactions on, 6(1):73
85, feb 1990.
[26] Daniel E. Koditschek, Robert J. Full, and Martin Buehler. Mechanical aspects of legged
locomotion control. Arthropod Structure & Development, 33(3):251272, 2004. Arthropod
Locomotion Systems: from Biological Materials and Systems to Robotics.
[27] N. Koenig and A. Howard. Design and use paradigms for gazebo, an open-source multirobot simulator. In Intelligent Robots and Systems, 2004. (IROS 2004). Proceedings. 2004
IEEE/RSJ International Conference on, volume 3, pages 21492154 vol.3, sept.-2 oct. 2004.
[28] J. Zico Kolter and Andrew Y. Ng. The stanford littledog: A learning and rapid replanning
approach to quadruped locomotion. The International Journal of Robotics Research, 30(2):150
174, February 2011.
[29] Woong Kwon and Beom Hee Lee. A new optimal force distribution scheme of multiple
cooperating robots using dual method. J. Intell. Robotics Syst., 21:301326, April 1998.
[30] Hongyi Liu and Bangchun Wen. Force distribution for the legs of a quadruped walking
vehicle. Journal of Robotic Systems, 14(1):18, 1997.
42
BIBLIOGRAPHY
[31] C. Mahfoudi, K. Djouani, S. Rechak, and M. Bouaziz. Optimal force distribution for the
legs of an hexapod robot. In Control Applications, 2003. CCA 2003. Proceedings of 2003 IEEE
Conference on, volume 1, pages 657663 vol.1, june 2003.
[32] Eve Marder and Dirk Bucher. Central pattern generators and the control of rhythmic movements. Current Biology, 11(23):R986R996, 2001.
[33] Robert B. Mcghee and Geoffrey I. Iswandhi. Adaptive locomotion of a multilegged robot
over rough terrain. Systems, Man and Cybernetics, IEEE Transactions on, 9(4):176182, april
1979.
[34] D. Micci-Barreca and H. Ogmen. A central pattern generator for insect gait production. In
From Perception to Action Conference, 1994., Proceedings, pages 348351, sept. 1994.
[35] B. Mrkajic. Systems and control library development. Masters thesis, Eindhoven University
of Technology, August 2011.
[36] Michael P. Murphy, Aaron Saunders, Cassie Moreira, Alfred A. Rizzi, and Marc Raibert. The
littledog robot. The International Journal of Robotics Research, 30(2):145149, February 2011.
[37] M.A. Nahon and J. Angeles. Real-time force optimization in parallel kinematic chains under
inequality constraints. Robotics and Automation, IEEE Transactions on, 8(4):439450, aug
1992.
[38] R. Prajoux and L. de S.F. Martins. A walk supervisor architecture for autonomous fourlegged robots embedding real-time decision-making. In Intelligent Robots and Systems 96,
IROS 96, Proceedings of the 1996 IEEE/RSJ International Conference on, volume 1, pages 200
207 vol.1, nov 1996.
[39] G.A. Pratt and M.M. Williamson. Series elastic actuators. Intelligent Robots and Systems,
IEEE/RSJ International Conference on, 1:399, 1995.
[40] Jerry Pratt, Peter Dilworth, and Gill Pratt. Virtual model control of a bipedal walking robot.
In IEEE Conference on Robotics and Automation, pages 193198, 1997.
[41] Jerry Pratt, Ann Torres, Peter Dilworth, and Gill Pratt. Virtual actuator control. In IEEE
International Conference on Intelligent Robots and Systems, pages 12191226, 1996.
[42] Morgan Quigley, Ken Conley, Brian P. Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob
Wheeler, and Andrew Y. Ng. Ros: an open-source robot operating system. In ICRA Workshop
on Open Source Software, 2009.
[43] M. Raibert, M. Chepponis, and H. Jr. Brown. Running on four legs as though they were one.
Robotics and Automation, IEEE Journal of, 2(2):7082, jun 1986.
[44] Marc H. Raibert. Trotting, pacing and bounding by a quadruped robot. Journal of Biomechanics, 23(Supplement 1):7981, 1990.
[45] CH Robotics. CHR-6d Digital Inertial Measurement Unit, product datasheet - rev. 1.4 edition.
43
BIBLIOGRAPHY
[46] S. Rutishauser, A. Sprowitz, L. Righetti, and A.J. Ijspeert. Passive compliant quadruped
robot using central pattern generators for locomotion control. In Biomedical Robotics and
Biomechatronics, 2008. BioRob 2008. 2nd IEEE RAS EMBS International Conference on, pages
710715, oct. 2008.
[47] Uluc Saranli, Martin Buehler, and Daniel E. Koditschek. Rhex: A simple and highly mobile
hexapod robot. The International Journal of Robotics Research, 20(7):616631, 2001.
[48] A. Seyfarth, H. Geyer, R. Blickhan, S. Lipfert, J. Rummel, Y. Minekawa, and F. Iida. Running
and walking with compliant legs. In Moritz Diehl and Katja Mombaur, editors, Fast Motions
in Biomechanics and Robotics, volume 340 of Lecture Notes in Control and Information Sciences,
pages 383401. Springer Berlin / Heidelberg, 2006.
[49] Alexander Shkolnik, Michael Levashov, Ian R. Manchester, and Russ Tedrake. Bounding on
rough terrain with the littledog robot. The International Journal of Robotics Research, December 2010.
[50] Bruno Siciliano and Oussama Khatib, editors. Springer Handbook of Robotics. Springer, 2008.
[51] Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, and Giuseppe Oriolo. Robotics Modelling,
Planning and Control. Advanced Textbooks in Control and Signal Processing. Springer, 2009.
[52] James Andrew Smith. Galloping, Bounding and Wheeled-Leg Modes of Locomotion on Underactuated Quadrupedal Robots. PhD thesis, McGill University, November 2006.
[53] P. Soetens. A software framework for real-time and distributed robot and machine control. PhD
thesis, Katholieke Universiteit Leuven, May 2006.
[54] Yurak Son, Takuya Kamano, Takashi Yasuno, Takayuki Suzuki, and Hironobu Harada. Generation of adaptive gait patterns for quadruped robot with cpg network including motor dynamic model. Electrical Engineering in Japan, 155(1):3543, 2006.
[55] Mark W. Spong, Seth Hutchinson, and M. Vidyasagar. Robot Modeling and Control. John
Wiley & Sons, Inc., 2006.
[56] Ann Torres. Virtual model control of a hexapod walking robot, December 1996.
[57] R. Vidoni and A. Gasparetto. Efficient force distribution and leg posture for a bio-inspired
spider robot. Robot. Auton. Syst., 59:142150, February 2011.
[58] M. Waibel, M. Beetz, J. Civera, R. DAndrea, J. Elfring, D. Galvez-Lopez, K. Haussermann,
R. Janssen, J.M.M. Montiel, A. Perzylo, B. Schiessle, M. Tenorth, O. Zweigle, and R. van de
Molengraft. Roboearth. Robotics Automation Magazine, IEEE, 18(2):6982, 2011.
[59] Debao Zhou, K. H. Low, and Teresa Zielinska. An efficient foot-force distribution algorithm
for quadruped walking robots. Robotica, 18:403413, July 2000.
44
Appendix A
Kinematics
A.1
Forward kinematics
The homogeneous transformation matrices for the leg as depicted in Fig. 4.2b are
C1
S1
A01 =
0
0
C2
S2
A12 =
0
0
C3
S3
2
A3 =
0
0
0 S1 a1 C1
0 C1 a1 S1
1
0
0
0
0
1
S2 0 a2 C2
C2 0 a1 S2
0
1
0
0
0
1
0 a31 C3 a32 S3
0 a31 S3 + a32 C3
1
0
0
1
S3
C3
0
0
(A.1)
(A.2)
(A.3)
T01 = A01
T02
T03 =
A01 A12
0
R1 o02
A23
0
(A.4)
(A.5)
(A.6)
APPENDIX A. KINEMATICS
The origin of the frames can be described as follows, note that o03 is not affected by 2 because the
link is remotely driven.
0
o0 = 0
(A.7)
0
a1 C1
o01 = a1 S1
(A.8)
0
a1 C1 + a2 C1 C2
(A.9)
o02 = a1 S1 + a2 S1 C2
a2 S2
a1 C1 + a2 C1 C2 + C1 (a31 C3 a32 S3 )
o03 = a1 S1 + a2 S1 C2 + S1 (a31 C3 a32 S3 )
(A.10)
a2 S2 + a32 C3 + a31 S3
The following for zi
T
z0 = 0 0 1
T
z1 = S1 C1 0
T
z2 = S1 C1 0
A.2
(A.11)
(A.12)
(A.13)
Inverse kinematics
The inverse kinematics from the tip to the root of the leg is [16]
(A.14)
1 = atan2(y, x)
p
2 = atan2(B, A) + atan2 D, A2 + B 2 D2
(A.15)
3 = atan2(z a2 S2 , B a2 C2 ) 2 E
(A.16)
with
A = z
B = a1 (xC1 + yS1 )
B 2 + a23 a22 z 2
2a2
E = atan2(a32 , a31 )
q
a3 = a231 + a232
D=
(A.17)
(A.18)
(A.19)
(A.20)
(A.21)
Note that the E and a3 terms are caused by the offset from the third joint to the feet of the leg.
46
Appendix B
Dynamics
Because flexibility has to be taken into account there are 2N generalized coordinates with N the
number of joints.
T
(B.1)
q = qL qM
T
= 1 2 3 1 2 3
(B.2)
qL are the generalized coordinates of the joint positions and qM are the corresponding motor
positions. Note the third term 3 , this is due the fact that the link is remotely driven. The
Lagrangian [55, 51, 50], which is the difference of the kinetic and potential energy, of a system is
given by
L(q, q,
t) = T (q, q,
t) U (q, t)
(B.3)
where T and U respectively denote the kinetic and potential energy. The Euler-Langrange equation is
d L
L
dt qi qi
T
U
d T
=
+
dt qi qi
qi
i =
(B.4)
(B.5)
Potential energy
The total potential energy consists out of the gravity and the elastic energy. The gravitational
energy can be calculated using
Ugrav =
n
X
mi g T rci
(B.6)
i=1
T
The vector g is the vector giving the direction of gravity in the inertial frame thus g = 0 0 g
and the vector r ci gives the coordinates of the center of mass of link i.
Ugrav (q L ) = m2 gac2 S2 + m3 g [a2 S2 + ac32 C3 + ac31 S3 ]
= (m2 ac2 + m3 a2 )gS2 + m3 g(ac32 C3 + ac31 S3 )
(B.7)
(B.8)
APPENDIX B. DYNAMICS
Using the assumption that the torsional spring behaves linearly, the elastic energy can be calculated as
1
Uelas = (q L q M )T K(q L q M )
(B.9)
2
1
1
1
= K1 (1 1 )2 + K2 (2 2 )2 + K3 (3 3 )2
(B.10)
2
2
2
Kinetic energy
The total kinetic energy consists of contributions of the links and rotors.
T = Tlink + Trotor
(B.11)
1
Tlink = q TL DL (q L )q L
2
(B.12)
n
X
mi Jvi (q L )T Jvi (q L ) + Ji (q L )T Ri (q L )Ii Ri (q L )T Ji (q L )
(B.13)
i=1
N
X
Trotori
i=1
N
X
i=1
1
1
mri vrTi vri + rTi Imi ri
2
2
(B.14)
(B.15)
(B.16)
Equations of motion
Using (B.5) the equations of motion can be obtained. For the motors this result in the following
1 = Im1zz 1 K1 (1 1 )
2 = Im2zz 2 K2 (2 2 )
3 = Im3zz 3 K3 (3 3 )
(B.17)
(B.18)
(B.19)
The equations of motion for the links are given as the Newton-Euler representation.
e JT f = D(q l )
q l + C(q l , q l ) + g(q l )
(B.20)
Where the vector e are the torsional spring torques, the matrix C contains the centrifugal and
Coriolis terms, the matrix is defined as
n
X
dki dij
1 dkj
+
qi
(B.21)
Ckj =
2 qj
qj
qk
i=1
48
Appendix C
40
70
60
80
100
80
90
100
50
100
110
1
10
10
Frequency [Hz]
10
120
0
10
10
10
Frequency [Hz]
150
0
10
10
200
200
100
150
100
100
200
0
10
Phase [deg]
200
Phase [deg]
Phase [deg]
120
0
10
Magnitude [dB]
60
Magnitude [dB]
Magnitude [dB]
100
50
10
10
Frequency [Hz]
10
0
0
10
10
10
Frequency [Hz]
10
100
10
10
Frequency [Hz]
10
200
0
10
10
10
Frequency [Hz]
10