Professional Documents
Culture Documents
Supervised by:
Prof. Dr. Roland Y. Siegwart
Mark Hopflinger
Marco Hutter
Authors:
Max Engensperger
Tobias Peteler
Abstract
This paper covers the derivation of a skating motion on a position controlled
robot using passive wheels while sustaining ground contact.
The work is based on the robot ARAC which is an eight legged walking robot
developed within a focus project at the ETH Zurich. To allow skating locomotion, wheels were implemented on each leg.
The basic assumption of the approach to derive the skating motion is to predefine a velocity in the shoulder and then observe the wheels possible movements.
For the wheels no slip property was assumed, leading to a defined possible
moving direction. To design the trajectories the velocity of the skate in rolling
direction was controlled, yielding to a blurred trajectories shaped like contorted
ellipses.
Acknowledgment
We would like to thank Prof. Dr. Siegwart for offering the thesis and Mark
Hopflinger and Marco Hutter for consultation and supervision during this thesis.
Furthermore we thank all members of the Focus Project ARAC for supporting
us and giving us a solid framework to work with.
III
Contents
1 Introduction
1.1 Motivation . . .
1.2 Background . . .
1.3 Timetable . . . .
1.4 Report Structure
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Concept Process
2.1 The ARAC Robot . . . . . . . . . . . . . . . . .
2.2 Concept Determination . . . . . . . . . . . . . .
2.3 Evaluation Process . . . . . . . . . . . . . . . . .
2.4 Approaches of other Projects . . . . . . . . . . .
2.4.1 Skating with Lifting the Skates . . . . . .
2.4.2 Skating with Sustaining Ground Contact
2.4.3 Selected Method of Skating . . . . . . . .
2.5 Basic Information on the Project . . . . . . . . .
2.5.1 Basic Assumptions . . . . . . . . . . . . .
2.5.2 Conventions . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
2
.
.
.
.
.
.
.
.
.
.
3
3
4
6
7
7
7
8
8
8
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
11
12
13
13
13
13
13
14
15
16
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
18
20
20
20
21
IV
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
23
23
24
25
26
27
27
28
30
Appendix
35
A Time Table
36
B Evaluation
37
C Technical Drawing
38
39
E Matlab Code
40
VI
Abbreviations
ASL
CAD
DOF
ETHZ
ROM
ODE
XML
ZHAW
Symbols
x, y, z
VII
Introduction
1 Introduction
Walking robots have been for long a dynamic and fast developing field of mechatronics. This huge interest not only derives from the obvious fact that the usage
of legs resembles the way of movement of living animals, but also to its great
advantage while moving on a rough, unstructured surface. Due to the possibility to stand on single, well defined points a flexible operation area is achieved.
As a draw back, efficiency and speed are not the strongest qualities of walking
robots. When it comes to flat, even terrain, moving with wheels turns out to
be the faster, more reliable way of locomotion.
1.1 Motivation
To overcome the previously mentioned problematic a practical solution would
be to enable different ways of travelling for one robot, rolling and walking, to
adapted it to a changing environment in an easy way. In this bachelor thesis
this task is realized by implementing feet equipped with passive skates on a
walking robot, deriving a skating trajectory and do first steps into optimization
of this movement. One of the main reasons for this choice was that the robot
stays in the environment it is geared to. Therefore not the whole robot, but
only the feet had to be altered. For a detailed view on the selection process see
Chapter 2.3.
1.2 Background
This paper is based on the ARAC spider robot developed at the Autonomous
System Laboratory (ASL) of the Swiss Federal Institute of Technology Zurich
(ETHZ). It was built by a group of nine mechanical engineering students of
the ETHZ and two electrical engineering students of the Zurich University of
Applied Science (ZHAW) within a two term students project.
One of our tasks within the project was to design the standard feet of the
robot for walking on an even, flat surface. For our bachelor thesis we wanted
to develop more specialized feet to move on a different surface or to travel the
environment by another locomotion principle. Therefore we designed a flexible
plug connection to easily exchange the existing feet.
1.3 Timetable
Since there where only tree months and the work on the ARAC robot had to
be continued in parallel, an elaborated timetable had to be arranged. Starting
off with the rather loose idea of designing specialized feet, an rough concept
Introduction
had to be derived as soon as possible to have sufficient time for looking into
the existing research projects and for the elaboration. After gathering sufficient
background knowledge, the required software code had to be written and the
mechanical component had to be designed and manufactured to finally enable
the implementation on the ARAC robot. For detailed information see Appendix
A.
Concept Process
2 Concept Process
Skating was not the only potential concept that was considered for the thesis.
To judge the feasibility of each one, the initial position of the bachelor project
had to be defined. Subsequently the most promising concepts were evaluated,
leading to the decision to continue on the skating movement. Studies on papers
about existing projects gave inspiration and fundamental information to start
with the enhancement of the selected concept.
Concept Process
Figure 2.1: Possible Concepts: (from left to right) climbing on a grid, brachiation on a girder,
walking on water and skating
Climbing on a Grid
This concept stays closest to the idea of ARAC to imitate a spider by enabling
the robot to move on a defined grid-like structure e.g. a concrete reinforcement.
Moreover it should be possible to change from walking on the floor to climbing
on the grid, which means that both environments could be traveled without
changing the feet would be necessary.
One possible design can be seen in Figure 2.2 which uses a hook made of glass
fiber. The main challenge would have been to detect the grid and the transition
from the floor to the grid.
Concept Process
Brachiation on a Girder
The basic idea of this concept is to enable the robot to brachiate on a girder:
The robot is able to move its legs above its body such as in Figure 2.1, which
is additionally a position, in which the parallel springs almost generating no
torque in the joint. And since the robot only needs the parallel springs for
support when standing , in this concept the robot could move from a standing
position to a hanging position on a girder and then brachiate on it (see Figure
2.3). Like at climbing on a grid challenging topics would have been determining
the position and direction of the girder as well as defining the transition between
walking and brachiation.
http://olegvolk.livejournal.com/657970.html
Concept Process
Walking on Water
For walking on water two different concepts were in mind:
The first would be imitating a water strider (see Figure 2.4 (a)2 ). To create
sufficient buoyancy styrofoam feet could be developed, while for actuation small
aligned panels could be mounted on the rear side of the feet. The focus would
have lied on controlling stability and maybe even float on wavy water. In
addition, the movement of a water strider could be imitated.
The second concept would be imitating a duck (see Figure 2.4 (b)3 ) and design passive feet that would open fan-shaped when moving backwards with the
feet and close when going forward to reduce resistance leading to a complex
mechanical design with regarding fluid dynamics. To create sufficient buoyancy
a polystyrene float could be placed under the body.
Figure 2.4
Skating
In this concept the robot travels a flat, unstructured surface by skating. Each
leg should be equipped with passive wheels on the feet. By moving the feet
in specific way thrust is induced. Designing the specialized feet and deriving a
possible trajectory are the emphases of this approach. The goal would be to
move faster on the floor than with legged locomotion.
http://commons.wikimedia.org/wiki/File:Water-strider-1.jpg
http://riskeverythingfearnothing.tumblr.com/post/3108659084/be-like-a-duck-calm-onthe-surface-but-always
Concept Process
Figure 2.5: Projects using skating with lifting of skates: Human Skating Robot from Tokyo
Electron Tohoku Ltd., Tokyo (left), Skating Robot from GRASP Lab., Pennsylvania University (right)4
4
5
Concept Process
is a hybrid walking robot with four legs that can change its walking feet into
passive wheels and therefore skate.
Figure 2.6: The Roller-Walker from Dept.of Mechano-Aerosp.Eng., Tokyo Institute of Technology6
http://www.techlemming.com/2007/09/04/roller-walker-a-robot-that-skates-or-walksdepending-on-the-situation/
Concept Process
for actuation. The theoretical concept was derived by observing the behavior
of L2. For driving the trajectory of L2 was applied on R2 mirror-wise to the
x-axis(see Figure 3.4).
Yet, the obtained theory remains valid for realizations with different
v body or
pairs of legs in use and can easily be adapted for a more flexible application.
The servomotors integrated in the robot work on a frequency of 400 Hz. Therefore, stepwise calculations on 50 Hz are carried out to compute the position of
the skate which is a trade-off between calculation power and accuracy.
2.5.2 Conventions
For defining the coordinate system of the body and the angles within the legs,
the same declaration as in the focus project was chosen. See Figure 2.8 for
the conventions on the body coordinates and Figure 2.7 for the declaration of
angels of the leg.
Since only skating in x-direction is assumed, this direction is in the following
referred to as the driving direction.
Figure 2.7: Angles describing the leg of the robot: The -angle describes the turning,
the -angle the lifting angle of the leg. The -angle and the -angle are
coupled and describe the angles in the knee and ankle
The initial position of the skates is based on the initial stance of the robot
defined within the focus project. If this position is engaged, all wheels have
to be parallel to the driving direction. To accomplish this, all skates had to
be turned by a specific angle , which equals the value of in initial position.
Furthermore in this stance the two directions for describing the movement of
the skates, the rolling- and the axial direction, are defined (see Figure 2.8).
Concept Process
Figure 2.8: Robot in inital stance with implemeted skates: Declaration of the legs with
body coordinates and driving direction (red arrow) are indicated
Figure 2.9: Conventions for Leg L2 with the angles = (t) and = (t = 0) =
const.. The driving direction (red arrow) and conventions for the skateare
indicated: axial direction(green arrow) and rolling direction (purple arrow)
10
cos() (t)
v = l(t)
l(t) cos
+ vbody cos
+ (t)
2
= 0 (3.1)
11
Figure 3.2: Comparison of a walking to a skating movement with a given vbody (red
arrow):
a) Walking: To avoid slippage the foot has to move exactly contrary to
vbody (orange arrow) relative to the body
b) Skating: To compensate vbody the wheel can move to any position
on the rolling direction (green line) with the most direct solution is the
vperpendicular (yellow arrow)
This is a direct consequence of the properties of perfect skates covered previously. For such an ideal device, all points which are an element of the rolling
direction, are equivalently reachable. Hence, only fraction of the movement in
axial direction has to be carried out, while the distance in rolling direction can
be chosen arbitrarily. The shortest distance the skate has to cover is attained,
if its movement in rolling direction is chosen to be zero, as it can be seen high
lighted in Figure 3.2 b). This so called perpendicular velocity
v perpendicular
will later on be important for describing the skating trajectory.
12
13
Figure 3.3: Display of the influence of the equilibrium line for different positions of the
skate: With vskate in rolling direction (purple), decomposition of vskate in
x- and y-coordinate (pink), ROM (green)and equilibrium line (red)
The great importance of this line can be explained by observing the behavior
of a skate positioned once exactly on the line and once on the left respective
the right of it with a constant velocity of the shoulder.
Starting with the first case: By placing the wheel on the equilibrium line, a
stable state is obtained. To maintain the velocity of the shoulder, the skate
can stay passively on this position (see Figure 3.3 a)). To avoid this deadlockposition, the skate has to be pushed artificially over the line. This is only
possible in x-direction, since the skate constraint blocks the y-direction.
If the skate is now placed on the left of the equilibrium line, a given velocity in
the shoulder requires a relative movement in positive y-direction such the skate
has to move along the rolling direction (see 3.3 b)). Respective, placed on the
right side, the skate has to carry out a motion in negative y-direction (see 3.3
c)). The movement in positive respective negative y-direction is depending on
the total angular deflection measured from the equilibrium line, the so called
deflection angle. The bigger the absolute value of this parameter becomes, the
stronger is the tendency to move in y-direction.
Based on the previous considerations to accomplish a closed movement, the
trajectory has to be positioned around the equilibrium line. A possible solution
is a circular shaped trajectory that has to be travelled clockwise on the left side
and anticlockwise on the right side of the robot (see Figure 3.4).
14
Figure 3.4: Robot with schematic trajectories for L2 and R2: L2 has to travel clockwise,
while R2 travels anticlockwise
3.3.2 Factors of
So far, it was explained how to configure the moving direction of the skate in
y-direction by simply remaining left or right of the equilibrium line. Yet an
instrument for switching between these two sides had to be derived. For this
purpose, considerations from Chapter 3.1.2 were picked up.
f avorite =
v shoulder
a
(3.2)
In this case, the skate observed in shoulder coordinates is only moving in axial direction (see Figure 3.5). In the next step an additional factor gain is
introduced to push the skate in the positive or negative rolling direction.
15
(3.3)
This behavior increases the further the value is departed from one. By adjusting the value of gain the switching between the two sides of the equilibrium
line can be controlled.
For gain times f avourite equals the current rapidity, the total covered distance
of the skate can be calculated by summing up this product for the number of
calculation steps.
Figure 3.6: Illustration of gain : b) gain = 1; c) and d) gain < 1; e) and f) gain > 1
16
In Section 3.3.1 it was shown that for a straight forward movement for L2 a
closed trajectory in clockwise direction is needed. From this consideration and
the properties of gain it can be followed that the maximum of gain has to be
reached at the intersection further away from the joint of the shoulder, while
the minimal value must be reached at the one closer to the joint.
The number of simulation steps, in which the changeover between the maxima
is performed, can be chosen for each side of the equilibrium line separately.
Since the two sides were referred to as sector I for the left side, and sector II
for the right side, the number of steps are called sector factor I for the left,
and sector factor II for the right side. From this declaration, the name of the
approach is derived. (see Figure 3.7).
These two parameters combined with f actor represent the design parameters
of the trajectory.
For stability reasons, an area symmetric to the equilibrium line separating the
two sectors was introduces, in which the current value of gain is maintained.
This way, the skate is pushed artificially over the equilibrium line, avoiding
the possibility of getting stuck on a dead lock position of the equilibrium. To
minimize the impact of this manipulation on the trajectory, only small values
for the angle spanning this surface between 1 to 5 degrees was used (see Figure
3.7.
Figure 3.7: Illustration of Sector I and II (light green) for the leg L2 separated by an
area (yellow) in which gain stays constant.
17
18
MatODE
The free software MatODE, already used in the focus project ARAC, emerged
to be a helpful tool for visualizing the obtained trajectories. By observation of
the behavior of the model of the robo,t errors or violation of constraints could
be detected.
MatODE is a Matlab Interface developed at TU Delft by Wouter Caarls to
the Open Dynamics Engine (ODE) by Russel Smith. It can be used for force
based simulations, but problems occurred at regulating the simulations intern
controllers for each motor. Therefore, the programmed values are not accurate
in terms of force calculations. For further explanation see the report of the
focus project1 .
To implement the skating rolls, the XML-file, which contains the spider for the
simulation, had to be modified. The skates are modeled as flat cylinders (see
Figure 4.2). The friction coefficient between the skates and the floor is set to
2, which is a trade-off between the real and ideal skating properties. The code
can be seen in the Appendix E.
19
20
21
Figure 5.1: Matlab plot with different starting positions of the skate: After a certain level
up phase, the movement stabilizes on the same area
This conclusion is only valid as long as the starting point is close to the equilibrium line, since for remote staring points the motion turns out to be unstable.
22
Results and Possible Further Development 5.1 Results of the Sector Approach
The reason for this restriction is that for starting positions far away from the
equilibrium line the skate already have moved to far away from the stable area
when the equilibrium line is crossed. Therefore, the alteration of gain is not
strong enough to push it towards a stable condition.
Another important aspect of the solution obtained by the sector approach is
that not a single, strictly defined trajectory is gained, but the movement of the
skate is blurred over an area. This observation results from an oscillation of the
amplitude and center point of the circle-like trajectory. This is not a part of
the level off process, for the oscillation persists even for long simulation times.
Until the end of the project, no explanation for this behavior could be found.
23
5.1 Results of the Sector Approach Results and Possible Further Development
Figure 5.2: Matlab plots for different f actor : By increasing of F actor smaller trajectory are
gained.
24
Results and Possible Further Development 5.1 Results of the Sector Approach
Figure 5.3: Matlab plots for different sector factor II: the size of the trajectory increases the
closer sector factor II gets to sector factor I
25
5.1 Results of the Sector Approach Results and Possible Further Development
(see Figure 5.5). This can be explained using Figure 3.6: For a higher
vbody with the same gain , a higher overall vskate in shoulder coordinates
is generated, which means the skate has to travel further in the same
amount of time, leading to a greater trajectory.
It is possible to derive trajectories for high velocities (see 5.6), although
the trajectories become increasingly blurred for velocities over 0,15 m/s.
The reason for this behavior can be found within the stepwise calculation
process: For high velocities, the number of simulation steps per circle
decreases, leading to increasing discontinuities between the single steps
and hence to greater deviations from the actual trajectory.
Figure 5.5: Matlab plots for different vbody : The faster the shoulder is forced, the more the
leg has to move.
26
27
(5.1)
y(t) = b sin(t) + d
(5.2)
The parameters a and b define the shape and c and d the center point of the
ellipse. Additionally, a mapping relation is introduced to contort the ellipse:
x(t) = a cos(t) + c tan( b sin(t))
(5.3)
28
Figure 5.8: Skating with the usage of two pairs of legs (L2, R2, L3, R3) for actuation:
Trajectories separated into parts with great power transmission (dark green) and
small power transmission (light green)
v body .
29
Conclusion
6 Conclusion
In this thesis, a skating motion with passive wheels under sustaining ground
contact is discussed. The basic idea was to predefine a velocity of the robot
and to analyze the resulting motion the skate is forced in. Since the wheels are
modeled as perfect skates, the possible movement is strongly restricted by the
constraint for perfect skates, which forbids movement in axial direction.
By theoretical considerations on this topic, the fundamental influence of the
position of the skate in the ROM on its possible movement direction could be
discovered. Especially the equilibrium line on which the skate is always pointing in the driving direction emerged to be of great importance.
Applying the properties of perfect skates, instruments for controlling the movement were obtained. Using these control factors circle-like trajectories could be
derived.
By evaluating the results of the calculations, some aspects of the theoretical
concept could be validated and possibilities for optimization could be found.
Altogether, the topic of passive skating seemed simple in the beginning, it
turned out to be an interesting and challenging type of locomotion. Since the
behavior of the skate was little intuitive, the major task of the thesis was to
develop a theoretical framework to understand the rules and principles this
motion follows. With more time at hand, an efficient and agile way of travel
could possibly have been developed.
30
Bibliography
Bibliography
Bibliography
[1] Study on Roller-Walker (Basic Characteristics and its Control), Shigeo
Hirose and Hiroki Takeuchi, Tokyo Institute of Technology, Department of
Mechano-Aerospace Engineering, 1996
[2] Study on Roller-Walker (System Integration and Basic Experiments), Gen
Endo and Shigeo Hirose, Toky Institute of Technology, 1999
[3] Study on Roller-Walker (Multi-mode Steering Control and Self-contained
Locomotion), Gen Endo and Shigeo Hirose, Dept. of Mechano-Aerospace
Eng., Tokyo Institute of Technology, 2000
[4] Design and Gait Control of a Rollerblading Robot, Sachin Chitta, Frederik
W. Heger, Vijay Kumar, GRASP Laboratory, University of Pennsylvania,
USA, 2004
[5] Development of a Human Type Legged Robot with Roller Skates, Ken
Itabashi and Masaaki Kumagai, Tohoku Gakuin University, 2010
[6] Final Report ARAC, Autonomous Systems Lab, ETH Zurich,2012
31
List of Figures
List of Figures
List of Figures
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
Possible Concepts . . . . . .
Climbing Feet Concept . . .
Brachiation Concepts . . . .
Walking on Water Concept
Lifting Skates Projects . . .
Roller Walker . . . . . . . .
Overview Angles . . . . . .
Leg Numbering . . . . . . .
Leg Conventions . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 4
. 4
. 5
. 6
. 7
. 8
. 9
. 10
. 10
3.1
3.2
3.3
3.4
3.5
3.6
3.7
No Slip Condition . . . .
Walking vs Skating . . . .
Equilibrium Line . . . . .
Body with Trajectories . .
Result Lambda Constant
Result Lambda Factor . .
Sectors Illustration . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
12
14
15
15
16
17
4.1
4.2
4.3
4.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
19
21
21
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
24
25
25
26
26
28
29
.
.
.
.
.
.
.
A.1 Timeplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
B.1 Evaluation of Concepts . . . . . . . . . . . . . . . . . . . . . . . . 37
C.1 Technical Drawing . . . . . . . . . . . . . . . . . . . . . . . . . . 38
D.1 Parameter Values for the Matlab Plots . . . . . . . . . . . . . . . 39
33
List of Figures
List of Figures
Appendix
35
Time Table
Time Table
A Time Table
Figure A.1: Timetable of the bachelor project: Tasks that could not implemented due
to time restrictions are indicated in light orange.
36
Evaluation
Evaluation
B Evaluation
Figure B.1: Evaluation of the most promising concepts. The circles show the winner
of each category.
37
Technical Drawing
Technical Drawing
C Technical Drawing
Figure C.1: Technical Drawing of the 3D Plotted Mounting Part between the skating
roll and the foot.
38
39
Matlab Code
Matlab Code
E Matlab Code
Main
Run Trajectory
clc
clear all
run skatinganalysis % runs the trajectory determined in the thesis
% for the second leg
% additionally runs parameters
Control loop
n=-1;
q_desd=zeros(8,4);
time=1000;
position=parameter.standard_positions;
for k = 0:step:step*steps
% Simulation loop
t=k;
dt=parameter.dt;
n=n+1; %is zero for first calculation
Insert Trajectory
if n>0000
data_position_real_2(1)=data_position_world_x(2,n)data_position_shoulder_x(2,n)+parameter.mechanics.shoulder(2,1);
data_position_real_2(2)=data_position_world_y(2,n)data_position_shoulder_y(2,n)+parameter.mechanics.shoulder(2,2);
position(2,1)=data_position_real_2(1);
% Insert the skating trajectories into leg L2 and R2 determined in
% papertrajectory or skatinganalysis
position(2,2)=data_position_real_2(2);
position(4+2,1)=data_position_real_2(1);
%leg 2
40
Matlab Code
Matlab Code
position(4+2,2)=-data_position_real_2(2);
position(1,3)=parameter.standard_positions(1,3)-0.05;
%Lift the front and rear legs for a bit to support the skating feet more
position(4,3)=parameter.standard_positions(4,3)-0.05;
position(5,3)=parameter.standard_positions(5,3)-0.05;
position(8,3)=parameter.standard_positions(8,3)-0.05;
end
Skating Analysis
Initial Conditions
clc
clear all
run parameters;
c=0.0;
q=0.1;
simtime=100;
step=1/parameter.frequency;
%Seconds how long a step takes
steps=simtime*50;
% x*50 --> x seconds of simulation
gamma=parameter.gamma;
%Initial Angle of Yaws
position=parameter.standard_positions;
%Old Position of the Leg in worldcoordi
shoulderposition_old=bodyposition(0,parameter);
%Old Position of the Shoulder in w
n=0;
position(2,:)=position(2,:)+[q c 0]; % So the start positions roll direction is not
% parallel to skating direction
Variables
lever=-1;
%switching variable when beeing on the left or the right side of equilibrium line
lambda_gain=0.9;
%fixed gain for lambda_favorite in between angle_neutral_l and angle_neutral_r
dynamic_gain=lambda_gain;
%=1/f for understanding
anglerangemin = -5/180*pi;
anglerangemax = 5/180*pi;
radiusrangemin = 0.2;
radiusrangemax = 0.6;
deflection_max = 40;
41
Matlab Code
Matlab Code
deflection_min = -40;
gain_changer_max=2.105;
gain_changer_min=0.3;
lambda_gain_old = 1;
for t = 0:step:steps*step
n=n+1;
leg_number=2; % TODO: for leg_number=1:1:8
shoulderposition=bodyposition(t,parameter);
%Current Position of the Shoulder in Worldcoordinates
velocityshoulder=shoulderposition-shoulderposition_old;
%Speed of the Shoulder
position_real(leg_number,1:3)=position(leg_number,1:3)
-parameter.mechanics.shoulder(leg_number,1:3); %#ok<SAGROW>
%Calculates position of foot in shouldercoordinates
%Calculate angle of leg
if position_real(leg_number,2)>0
alpha=-atan(position_real(leg_number,1)./position_real(leg_number,2));
else
alpha=atan(position_real(leg_number,1)./position_real(leg_number,2));
end
%Calculate distance to shoulder
radius=sqrt(position_real(leg_number,1)^2+position_real(leg_number,2)^2);
Calculate Lambda
vx=velocityshoulder(leg_number,1);
vy=velocityshoulder(leg_number,2);
ax=cos(alpha+parameter.gamma(leg_number));
ay=sin(alpha+parameter.gamma(leg_number));
lambda_favourite=(vx*ax+vy*ay)/(ax*ax+ay*ay);
%Favourite Lambda for maximum force transfer
deflection=alpha-parameter.standard_alphas(leg_number);
%Angle between position and equilibrium line
%(if <0 on the right side/if >0 on the left side)
42
Matlab Code
Matlab Code
end
if deflection>anglerangemax
dynamic_gain=dynamic_gain+1/150*(gain_changer_max-dynamic_gain);
end
lambda_favourite=lambda_favourite*dynamic_gain;
Lambda Inverse
position(leg_number,1)=position(leg_number,1)-velocityshoulder(leg_number,1)
+lambda_favourite*cos(alpha+parameter.gamma(leg_number));
position(leg_number,2)=position(leg_number,2)-velocityshoulder(leg_number,2)
+lambda_favourite*sin(alpha+parameter.gamma(leg_number));
43
Matlab Code
Matlab Code
44
Matlab Code
Matlab Code
</geom>
45