# /smash/get/diva2:8900/FULLTEXT01.pdf

TRITA-MEK

ISSN 0348-467X

ISRN KTH/MEK/TR--01/06--SE

## Passive Control of Mechanical Systems

## Bipedal Walking and Autobalancing by

## Jesper Adolfsson

## May 2001

## Technical Reports from

## Royal Institute of Technology

## Department of Mechanics

## S-100 44 Stockholm, Sweden

## Akademisk avhandling som med tillstånd av Kungliga Tekniska Högskolan i

## Stockholm framlägges till offentlig granskning för avläggande av teknologie doktorsexamen fredagen den 11:e maj 2001 kl 11.00 i hörsal M3,

## 64, Kungliga Tekniska Högskolan, Stockholm.

## Brinellvägen

## ãJesper Adolfsson 2001

## Passive Control of Mechanical Systems:

## Bipedal Walking and Autobalancing

## Jesper Adolfsson 2001

Department of Mechanics, Royal Institute of Technology

S-100 44 Stockholm, Sweden

## Abstract

This thesis explores the dynamics of two mechanical systems capable of performing their tasks without the use of active control. The first system is an autobalancer, which can continuously balance rotating machinery. This is accomplished by using compensating masses that move in a viscous media about the axis of rotation. The second system is a passive bipedal walker, capable of human like gait in the absence of external active control. Since there is no control system to suppress errors in the mechanisms it is important to have a detailed knowledge of how parameters influence on these systems.

The dynamics of mechanical models, such as the three dimensional passive walker and autobalancer, are explored and understood using standard dynamical systems methods. This includes calculating the stability of equilibrium positions and limit cycles and creating bifurcation diagrams as parameters of the system are varied. In the case of the autobalancer it is possible to analytically solve for the equilibrium positions. In the passive walker the stability of limit cycles, which corresponds to periodic gaits, are studied. To find these limit cycles a Newton-Raphson root solving scheme is implemented. The model for the autobalancer results in a smooth dynamical system whereas the passive walker includes different kinds of discontinuities. These discontinuities are taken care of by introducing suitable mappings.

Results for the autobalancer include suggestions on how to choose parameters of the systems and how to avoid possible dangerous parameter combinations. It also explains some experimentally observed limit cycles.

In the case of the passive walker, it is shown how the planar passive walker can be extended into a fully three dimensional walker having dynamics in all spatial directions. Many parameter studies are reported which give an insight to the dynamics of the system. The thesis ends with an report on the search for an implementable passive walker.

The methods introduced in this thesis are not limited to the study of autobalancing and passive bipedal walking but are applicable to many mechanical systems with or without discontinuities.

Descriptors: autobalancing, bipedal walking, multibody systems, nonlinear dynamics, stability, bifurcations, limit cycles, variational equations, discontinuities

## Preface

This thesis present studies, made on two di¤erent passive mechanical systems, the Autobalancer, capable of passively balancing rotating unbalance and the passive walker, capable of human like bipedal gait without using active control.

This thesis includes modeling assumptions, simulations, and analysis performed on these systems. It is based on the following papers;

Paper 1 Adolfsson, J.: 1997 ‘A Study of Stability in Autobalancing Systems using Multiple Correction Masses’, Technical Report, KTH, Department of Mechanics

Paper 2 Adolfsson, J.: 2000 ‘A short introduction to walking’, Technical Report, KTH, Department of Mechanics

Paper 3 Adolfsson, J. & Nordmark, A.: 2000 ‘Planar Passive Walkers: Code

Implementation Issues’, Technical Report, KTH, Department of Mechanics

Paper 4 Adolfsson, J., Dankowicz H., & Nordmark, A.: 1998 ‘3-D Stable Gait in Passive Bipedal Mechanisms’, In Proceedings of Euromech 375, Biology and

Technology of Walking, pp 253-259

Paper 5 Adolfsson, J., Dankowicz H., & Nordmark, A.: 2000 ‘3D Passive

Walkers: Finding Periodic Gaits in the Presence of Discontinuities’, In Nonlinear Dynamics, Volume 24, Number 2, February 2001, pp. 205-229

Paper 6 Dankowicz H., Adolfsson, J., & Nordmark, A.: 1998 ‘Existence of

Stable 3D-Gait in Passive Bipedal Mechanisms’, In Journal of Biomechanical

Engineering, Volume 123, Number 1, February 2001, pp. 40-46

Paper 7

Adolfsson, J.: 2000 ‘3D Passive walkers: Code Implementation Issues’, Technical Report, KTH, Department of Mechanics

Paper 8 Adolfsson, J.: 2000 ‘Finding an Implementable 3D Passive Walker using Continuation Methods’, Technical Report, KTH, Department of Mechanics

The papers are here re-set in the present used thesis format. Some of them are published as indicated above.

# Contents

1 Introduction 1

2 AutoBalancing 3

2.1

Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.2

AutoBalancer . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2.3

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

3 3D Passive Walking 9

3.1

Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

3.2

3D passive walker . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.3

Numerical simulation . . . . . . . . . . . . . . . . . . . . . . . . .

12

3.4

Finding an implementable 3D passive walker . . . . . . . . . . .

13

3.5

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

4 Mechanics 15

4.1

Sophia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

5 Analysis methods 21

5.1

Nonlinear dynamics . . . . . . . . . . . . . . . . . . . . . . . . .

21

5.1.1

Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

5.1.2

Limit cycles . . . . . . . . . . . . . . . . . . . . . . . . . .

22

5.1.3

Stability of the dynamical system . . . . . . . . . . . . . .

22

5.1.4

Stability of limit cycles . . . . . . . . . . . . . . . . . . .

23

5.1.5

Finding limit cycles . . . . . . . . . . . . . . . . . . . . .

24

5.1.6

Variational equations . . . . . . . . . . . . . . . . . . . . .

25

5.1.7

Discontinuities . . . . . . . . . . . . . . . . . . . . . . . .

25

5.2

Bifurcations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

5.2.1

Saddle-node bifurcations . . . . . . . . . . . . . . . . . . .

27

5.2.2

Pitchfork bifurcations . . . . . . . . . . . . . . . . . . . .

27

5.2.3

Hopf bifurcations . . . . . . . . . . . . . . . . . . . . . . .

27

5.2.4

Period doubling . . . . . . . . . . . . . . . . . . . . . . . .

28

5.3

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

6 Acknowledgements 31

# Chapter 1

# Introduction

In our everyday life, we are surrounded by mechanisms, which perform many di¤erent tasks. The operation of most of these mechanisms can be understood intuitively by just looking at them. Examples of such mechanisms are wheels, pulleys, chains, link mechanisms, and even devices such as automotive vehicles.

At the time of their invention, most of them have been made to work by cleverness and ingenuity, without a need for deeper theoretical understanding. As the theory of Newtonian mechanics was developed by Newton in 1666, it became possible to re…ne and optimize their operation by making theoretical models of the mechanisms. These theoretical models could now answer questions about the mechanism without constantly having to build new prototype mechanisms.

Thus, greatly enhancing the understanding of the mechanism and thereby increasing the speed of development. However, it was not until the possibility of numerical calculations on modern computers that the major revolution came.

Today, most mechanisms found around us have gone through many theoretical considerations. For example, it is not uncommon that a mechanism design has gone though one or more of the following steps; CAD system, simulation in a dynamics program, solid-mechanics / thermal / magnetic analysis by a …nite element program, and ‡uid dynamics analysis before emerging as a …nal product. Today, all these steps are available through commercial or free computer programs running on standard computers. So how does this relate to the two mechanisms studied in this thesis? Here, we will study two mechanical systems, which have greatly bene…ted from modeling, simulation, and analysis of the dynamics using computers. The two mechanical systems are the autobalancer, capable of continuously balancing rotating unbalances, and the passive bipedal walker, capable of humanlike gait without external control. Both these systems have in common that they are passive by design, thus neither of them requires any active control to function. Since no control systems can suppress errors in the mechanism it is important to have a detailed knowledge of parameters in‡uence on the system. The goal of the two studies is to …nd parameters that are suitable for implementation. However, in this thesis di¤erent approaches have been taken to reach this goal. The autobalancer, which at least dates back to

1

2 CHAPTER 1. INTRODUCTION the 1930’s, was an existing mechanical system that needed better understanding as to how parameters in‡uence the system. Thus, the goal was reached by developing a working mechanism using theoretical modeling, simulation, and analysis. In the case of passive bipedal walking, previous walkers had been constrained to walk in a plane so as to prevent lateral dynamics. Here, the goal was reached by …rst extending previous models into three dimensions having dynamics in all spatial directions using theoretical modeling, simulation, and analysis. When this had been accomplished and implementable parameters had been found, a prototype was to be built to verify the theoretical results. Thus, in the case of the passive walker we did not a priori know that it should work, but relied on advanced mathematical methods to …nd a possible implementation.

The three dimensional passive walker can therefore be seen as an experiment in ultimate virtual prototyping where the functionality was developed theoretically. However, only the simulated walker succeeded in walking passively. The implemented walker had some of the dynamics found in simulations but not all.

It is believed that given enough time and resources, an actual three dimensional passive walker should succeed in walking.

This thesis can therefore be viewed as the study of two systems where the

…rst is an example of traditional analysis, where the system under investigation already exists and works reasonably well and another where we develop a mechanical system from pure theoretical considerations.

In the following chapters short introductions to the autobalancing system and the three dimensional passive walking system will be given. A discussion is then given of the theoretical background and the mathematical methods used to analyze these two mechanical systems.

# Chapter 2

# AutoBalancing

## 2.1

## Background

In 1994, Electrolux wanted to reduce vibrations during spin-drying in washing machines, due to the uneven distribution of wash. The company contacted the

Department of Mechanics at KTH to get some help with the theoretical modeling of such a system. It was known that a Japanese manufacturer of home appliance had, a decade earlier, …led a patent for using autobalancing in washing machines. However, it was not known if any products had been manufactured using this technology. In 1994, there was no widespread use of autobalancers in washing machines and since this application had already been tried, some concerns were raised that there existed some ”hidden” problems with the system.

After the initial success to model the system it was decided to continue with the project. It was decided that a more advanced theoretical model should be developed simultaneously with building a prototype washing machine at Electrolux

Wascator. Due to design issues, it was also decided that a small experimental autobalancer should be built, see Figure 2.1.

This experimental autobalancer was to be used to verify the theoretical model. Autobalancing is not limited to washing machines. Other …elds where it has been used or have been tested are;

² Grinding machines, the Atlas Copco Grinder GTG 40 can be equipped with a SKF autobalancing unit. Vibrations levels have been reduced so that the operator now can use the machine without time restrictions.

² Turning lathes

² Fans, dirt attaches to the blades during operation

² Refrigerator compressors, to reduce noise from piston movements

² Computer CD drives, to reduce vibrations from unbalanced CD’s operating at much higher rotational speeds than originally intended for CDs

3

4 CHAPTER 2. AUTOBALANCING x

2 m

C e

ωt

B

A

M l i i r i i

α i m i x

1

**n**

2

**n**

1 k

1 c

1

Figure 2.1: The left picture shows the experimental autobalancer equipped with two balance rings. Two balance rings are required to balance dynamic unbalance. Two compensating masses and the viscous media can also be seen. The right illustration shows the model used to analyze the autobalancer. By only using one balance ring placed at an approriate location on the axis, the experimental autobalancer is well described by the mathematical model found in equations 2.1-2.3.

The history of autobalancing is quite interesting in itself since it is not clear who the original inventor of the mechanism is. The person who is usually believed to be the inventor is E.L. Thearle, who …led a patent in 1934 describing its use to dynamically balance machine tools, see [38]. However, it has been told that this technique was used at the end of the eighteenth century to balance rotating parts in combustion engines. This was supposedly abandoned since it later became possible to manufacture rotating parts with little inherent imbalance.

## 2.2

## AutoBalancer

The cooperation between Electrolux and the Department of Mechanics resulted in a Master Thesis, see Adolfsson [1], where it is shown that good agreement between the theoretical model and experimental model is possible. Thus, it was decided to continue with the more speci…c parameter investigations. A detailed description of the theory behind autobalancing can be found in Adolfsson [2]

(paper 1). In short, the idea is to have compensating masses, free to move in a circular path about the axis of rotation. At high enough rotational speed, these compensating masses will move to a position so as to reduce the vibration levels

2.2. AUTOBALANCER 5 in the system. The equations of motion used in all parameter studies are, z

M

0

}|

Ä

1

+ c

1

_x

1

+ k

1 x

1

= me!

2

{ cos(!t) + i=1 m i l i

(Ä i sin(® i

) + _®

2 i cos(® i

)); (2.1) z

M

0 x

2

+ c

2

_x

2

+ k

2

}| x

2

= me!

2

{ sin(!t) + i=1 m i l i

(Ä i cos(® i

) ¡ _®

2 i sin(® i

)); (2.2)

(m i

+

I i r

2 i

)l i

Ä i

+ l i

(± i

+

° r i

2 i

)( _® i

¡ !) = m i

(Ä

1 sin(® i x

2 cos(® i

)) (2.3) i = 1; : : : ; n; where the parts corresponding to a simple rotating unbalance are identi…ed, see Figure 2.1 or Table 1 and 2 for a description of the parameters and state variables.

Table 1. Description of the parameters found in the autobalancing system.

Parameter Description

M

0

Total mass of the system

± i

° i

!

m i

I i r i l i k

1;2 c

1;2 m e

Spring constant in vertical and horizontal direction

Viscous damping constant in vertical and horizontal direction

Mass of unbalance

Distance from axis of rotation to c.m. of unbalance

Mass of compensating mass

Moment of inertia of compensating mass

Radius of the compensating mass

Distance from axis of rotation to c.m. position of compensating mass

Viscous damping constant - translation of compensating mass

Viscous damping constant - rotation of compensating mass

Angular velocity of the rotation system

Table 2. Description of the states found in the autobalancing system.

State Description x

1;2

Horizontal and vertical position of the axis of rotation

_x

1;2

Horizontal and vertical velocity of the axis of rotation

Ä

1;2

Horizontal and vertical acceleration of the axis of rotation

® i

Angular position of c.m. of compensating mass, measured relative to unbalance

_® i

® i

Angular velocity of compensating mass

Angular acceleration of compensating mass

6 CHAPTER 2. AUTOBALANCING

Many of the questions answered in Adolfsson [2] (paper 1) are a result from phenomena discovered when working with the experimental autobalancer, and talking with the persons who built the autobalanced washing machine at Electrolux Wascator. For example, the operation of autobalancers requires some viscous media, typically oil, to operate. Due to varying temperature in washing machines, this oil might change its viscosity, potentially resulting in a failure of the autobalancer. Therefore, many of the parameter studies deals with studying the e¤ects of varying the parameters sensitive to temperature changes. Another important questions is what happens when the autobalancer is anisotropically suspended. Typically, a washing machine is suspended in a way that results in di¤erent sti¤ness in the horizontal and vertical directions. For example, it is shown that given enough separation in the horizontal and vertical natural frequency, autobalancing operation is possible in regions between these two frequencies.

Generally, autobalancers require at least two compensating masses to function at varying amounts of unbalance. When using metal balls in a race the con…guration where all metal balls are lined up side by side corresponds to the maximum imbalance load that the system is capable of balancing. By …lling half the race with metal balls the maximum imbalance load is maximized. Adding an additional metal ball will only compensate for an already present metal ball. Thus, using only two metal balls in a race is usually not volume e¢cient since there is always the possibillity of using many smaller metal balls, which will reduce the volume occupied by the race. However, using more than two compensating masses complicates the parameter studies, since a family of equilibriums will result. Hence, the stability of the family of equilibrium positions have to be scanned for safe operation.

Fitting an autobalancer on a rigidly mounted ‡exible shaft will result in equal sti¤ness in all directions. In this isotropic case, it is shown that the equations of motion 2.1-2.3 can be transformed to a time independent form, thus reducing the complexity of stability calculations and reducing the computational cost.

Most studies on the autobalancer were carried out by linearizing the equations of motion about the di¤erent equilibrium positions existing in the system.

This was done to …nd out their stability characteristics. For safe and robust operation it is important that the equilibrium, corresponding to a balanced system, is globally attractive. Since the autobalancer is capable of continuously adjusting to di¤erent imbalance loads, it is important that all imbalance loads result in stable equilibriums. However, this is not always case, and could lead to a problem if not all imbalance loads are tested in a real system. After it has been established that all imbalance loads result in a stable balanced equilibrium, it is important to investigate that these equilibriums are globally attractive. This was checked in three di¤erent systems by performing 30000 simulations, with random initial conditions and random imbalance load. The investigated systems have the same capacity, in terms of imbalance load, but are con…gured di¤erently. The …rst system have heavy compensating masses close to the axis of rotation and the last two have lighter compesating masses far from the axis.

Histograms are presented showing the number of revolutions before the system

2.3. CONCLUSION 7 is satisfactorily balanced. The general result indicates that when the desired equilibrium positions are stable, they are also globally attractive. However, the system with the heavy compensating masses close to the axis balance the system faster than the other two. The local stability of the three systems are also compared and it appears like the local stability can be used as reasonable guide to optimize the system.

Other studies on autobalancing systems have been done by for example

Hedaya et al. [12], which report similar stability results when internal and external damping are varied. These studies have been performed on a system similar to a washing machine. Friction e¤ects and a study of the e¤ects of the eccentricity of the race have been done by Majewski [25] and [26]. In reference

[9], Bövik et al. shows that it is possible to have autobalancing in non-plane rotors by using multiple scale techniques. It is also interesting to note that some early theoretical studies, using simpli…ed models, had come to certain conclusions regarding stability and rotational speed. These result do not seem to agree with experiments and more advanced models, see Kravchenko [18],[20], and [19].

## 2.3

## Conclusion

There still isn’t any widespread use of autobalancing technology, which might be explained by the one big disadvantage of autobalancers. Namely, that they don’t work at rotational speeds lower than the lowest natural frequency of the system, see Adolfsson [2] (paper 1). Sometimes, it can even be disadvantageous to have an autobalancing system at low rotational speeds. Many devices have been developed to overcome this problem, such as clamping the compensating masses at low speeds, only releasing them at high speeds. However, introducing these locking devices removes the attractive simplicity of the mechanism and certainly increase its cost. Despite this, SKF, with its long history of making ball bearings, have developed autobalancing into a commercial product named

DynaSpin, see [36]. They envisage use in washing machines, grinders, centrifuges, and optical storage devices. It will be interesting to see if they succeed in making autobalancing a successful commercial product.

8 CHAPTER 2. AUTOBALANCING

# Chapter 3

# 3D Passive Walking

## 3.1

## Background

The activity of normal walking is something we perceive as requiring very little conscious e¤ort. While on a higher level it is clear that some sort of control is necessary, such as that required for negotiating rough terrain and recovering from large disturbances, on a lower level it has been shown that the ability to walk is largely a consequence of the inertial and geometrical makeup of bipedal mechanisms, see Basmajian and Tuttle [8] and McGeer [28], [27], [29].

The models studied in this paper are usually referred to as passive walkers, see McGeer [28], since the source of energy is gravity alone and no external active control is applied. Sustained gait is realized by letting the walker descend an inclined plane to counteract the energy dissipated in collisions with the ground and in the knees. To accomplish walking on level ground, actuation would be needed. Di¤erent schemes for actuation have been thought of using for example a leaning torso as to provide a torque on the upper legs, see Howell and Baillieul

[14] or impulsive pushing of the hind legs, see McGeer [30].

Most of the previous studied passive walkers have been constrained to move in a plane to prevent lateral dynamics. However, to be successful in a life like environment it is evident that a fully three dimensional walker is needed. Many successful attempts have been made to build active walking mechanisms. The most successful up to date is the Honda Biped [13]. This walker is capable of walking in relatively life like environments, such as climbing stairs. The P1 version weighs about 210kg and can operate for about 10 minutes on its own battery pack. The position of limbs are controlled using electrical direct drive servos. Since electrical motors usually have low torque and high speed, some sort of gearing is necessary. This gearing both ampli…es inertia and friction, thus making it hard to control the actual force output on the limbs. Instead, it is most common to control the position and angle of di¤erent joints. The drawback of this is that it makes it hard to use the natural dynamics available to the mechanism, such as the natural pendulum motion of a swinging leg. In light

9

10 CHAPTER 3. 3D PASSIVE WALKING

Rolling foot to point foot

Extending the toe point to a line toe

Separating the hip

No overlap in the feet

Figure 3.1: The steps taken to extend the planar passive walker into a 3D passive walker.

of this, we decided to try to extend the planar passive walker into a fully three dimensional passive walker, having dynamics in all spatial directions. The idea was to slowly extend previous found planar walkers into a three dimensional con…guration, see Figure 3.1. The planar passive walker, originally devised by McGeer [27], had large radius feet and attempts to directly extend this con…guration into three dimensions had resulted in unstable dynamics of the system, McGeer [30]. Other attempts had succeeded, albeit outside the passive category by using active control to stabilize the swaying motion, Kuo [21]. The

…rst successful experimental attempt was the passive and knee-less Tinkertoy walker, see Coleman et al. [10], which was later modeled and shown stable,

Mombaur et al. [10] [32]. However, it requires masses to be put on extended booms as to obtain the necessary moments of inertia. The path taken here was to add an extra contact point to the foot. This was made possible after realizing that the foot radius could be shrunk to zero, see Adolfsson and Nordmark [5]

(paper 3). By starting with very wide feet, see Figure 3.1, the dynamics would essentially resemble those of the planar walkers. Thus initial conditions and parameters from the planar walker could be utilized. The extension into three dimensions resulted in a lot of new dynamics such as gaits heading obliquely down the plane, see Dankowicz et al. [11] (paper 6) and Piiroinen et al. [33]

[34]. The initial extension was made using direct numerical simulation. Thus, the convergence to periodic gaits were slow. Therefore, a root …nding algorithm was developed to locate periodic gaits, see Adolfsson et al. [6] (paper 5) and

Adolfsson [3] (paper 7). This also made it possible to locate unstable periodic gaits. The reason for studying unstable gaits is that they can turn into stable gaits as parameters of the system are varied. Potentially, …nding new stable gaits, which would have been hard or impossible to locate using direct numerical

3.2. 3D PASSIVE WALKER

T

T cm

U

1

U cm1

U

1

T

N

2

3

1

L

1

L cm1

L

1

L

11

L

12 upper leg knee joint active when in hyperextension lower leg vertical damper active when toe point has a downward velocity free to swing hyperextension

11

Figure 3.2: The di¤erent bodies of the 3D passive walker. Continuous impact dynamics are used in knee and ground plane.

simulation. Initial attempts with the root …nding algorithm looked promising and work started on …nding a 3D passive walker having no overlap in the feet and a geometry resembling a human, see Adolfsson [4] (paper 8).

## 3.2

## 3D passive walker

The mechanical model of the walker consists of …ve rigid bodies connected by hinge joints, as depicted in Figure 3.2. The bodies are the torso, the upper legs, and the lower legs. The walker makes regular contact with the ground plane through its four toe points. The 3D passive walker is modeled as a continuous system, where the impact laws used for the planar walker have been replaced by springs and dampers. These are activated based on the state the walker is in, such as knee-lock and contact with ground, thus avoiding the complexity of treating di¤erent impact sequences. A problem that could occur if impact models were used is that the toe points, representing the contact cylinder, could bounce between its ends in…nitely many times in a …nite time. To handle this would require some extra conditions on the impact models. Thus, the interaction between walker and ground plane is through springs and dampers attached from the initial toe contact point to the toe points. These springs/dampers are active as long as the toe point is below the ground plane, see right pane of Figure 3.2. In human walking, the stance-leg knee is never overstretched. Instead muscles prevent the knee from collapsing, see Inman et al. [15]. To prevent a collapse of the knee in our model, the knee has to be in hyperextension where it rests against a torsional spring/damper. For a detailed description on geometry, kinematics, and forces/torques acting on the walker see Adolfsson et al. [6]

(paper 5) and Adolfsson [3] (paper 7).

12 CHAPTER 3. 3D PASSIVE WALKING

Table 3. Continous and discrete state variables.used in the 3D passive walker

Continous states Description q

1

; q

2

; q

3 q

4

; q

5

; q

6 q

7

; q

9 q

8

; q

10 p

1

; p

3

; p

5

; p

7 p

2

; p

4

; p

6

; p

8 u

1

; u

2

; u

3 u

4

; u

5

; u

6

Discrete states s

1

; s

2 s

3

; s

4 s

5

; s

6

Position of hip point

Angles describing the orientation of the torso

Hip angles

Knee angles

Velocity of hip point

T

Initial toe contact point relative to hip point T

Initial toe contact point relative to hip point T

T

Angular velocities of body

T

Knee 1 and 2 (locked/unlocked)

Toe 1 and 2 of leg 1 (attached/detached)

Toe 2 and 2 of leg 2 (attached/detached)

Table 4. Description of the parametrization of the 3D walker.

Body Parameter description

Torso

Upper legs

Lower legs

Hip joints

Described by a center of mass position, a mass, and six moments of inertia

See above

See above

Position on hip line

Knee joints

Toe points

Relative to hip joint in upper leg direction

Each toe point is described by three coordinates, two toe points on each leg

Knee dynamics A angular knee sti¤ness and damping

Hip damping

Ground plane

Inclination

To resist rotations of the torso

Sti¤ness and damping in three directions

Inclination of the ground plane

Total nr

10

6

1

2

1

48

10

10

1

1

6

## 3.3

## Numerical simulation

In Figure 3.3, a stick animation of the 3D walker is shown, sampled at the di¤erent events for twelve consecutive gait cycles. This particular walker has an overlap in the feet of 0.1m. The walker is started just after the impact of the right leg’s toe points. The events for each toe of the legs are combined into one stick …gure, since the time interval between the successive impacts or successive releases is very short. The event percentage is de…ned relative to the stride

3.4. FINDING AN IMPLEMENTABLE 3D PASSIVE WALKER

Hip center motion

0.67

0.64

-0.02

0 0.02

Lateral deflection (m)

13

Stride time 1.6s

Stride length 0.69m

Inclination 4.6

°

Figure 3.3: Stick animation of an stable periodic gait of the 3D walker. Toe clearance refers to the con…guration having a nonzero local minimum in distance between toe points and the ground plane.

time. With methods described in Adolfsson et al. [6] (paper 5) it can be shown that this choice of parameters and initial conditions result in an stable periodic gait.The butter‡y-shaped orbit of the center of the hip, as displayed in Figure

3.3, shows a similarity with results reported in Rose and Gamble [35].

## 3.4

## Finding an implementable 3D passive walker

Initial attempts to reduce the foot overlap to zero resulted in unstable periodic gaits, see Adolfsson et al. [6] (paper 5). Thus, an extensive parameter search was undertaken to …nd a walker without an overlap. The 3D passive walker is described by 28 state variables and approximately 80 parameters. If the left and right side of the walker are mirrored in the sagittal plane, the number of parameters will be reduced to 48, see Table 4. The sheer number of parameters makes it hard to draw any reasonable conclusions about a particular parameter variation. Typically, the conclusion drawn from a one parameter variation might not hold if one changes the value of another parameter. This emphasizes the importance of having a very clear goal when performing parameter studies, such as …nding an implementable 3D passive walker. Below are the requirements set up for an implementable 3D passive walker.

² The mass distribution should be realizable, thus masses should not have to be placed in awkward positions, such as on long extended booms, to get the required moment of inertia.

² Required friction between toe points and ground plane should be reasonable.

14 CHAPTER 3. 3D PASSIVE WALKING

² There should be an anthropomorphic (human like) look of the 3D passive walker. This means that geometrical measures of the experimental walker should have similar ratios as a human. For example, the ratio of leg length to hip width should be close to the values found in humans.

² No overlap of the feet.

² Insensitive to parameter changes. This is especially important when the parameters are hard to control or measure in an experimental walker. For example, the actual force between ground and toe points might be very hard to model. Thus, a stable gait should exist for reasonable intervals in the parameters associated with the ground plane.

² Initial conditions that is possible to realize and have a reasonable basin of attraction. The latter might be hard to investigate due to the number of states of the walker.

² Be able to carry some payload, however not necessarily with an upright torso, which most likely would require active control.

² Knee mechanism should be possible to implement passively. The current design requires quite large angular motions of the lower legs during the locked state of the knees.

The search to ful…ll these requirements and a presentation of the implemented

3D walker are given in Adolfsson [4] (paper 9).

## 3.5

## Conclusion

It is believed that most of these requirements were ful…lled during the parameter search. However, we were not able to achieve a stable working walker in the laboratory. There are two possible reasons for this, the parameters of the experimental walker didn’t match the parameters used in simulation or the walker was not started in the basin of attraction of found stable gaits. It could also be that it was a combination of these two reasons. But due to the lack of adequate measuring equipment, such as 3D motion measuring system, it is hard to know why it failed. For a more thorough discussion on why it failed and possible suggestions to make it work, see Adolfsson [4] (paper 9). Despite this, it is believed that the results presented here still support the assumption that human gait is largely a consequence of geometry and mass characteristics.

# Chapter 4

# Mechanics

To calculate the motion of a rigid body we use Newton’s equation or the linear momentum principle

N d dt

(mv) = F; (4.1) where N is the inertial reference frame where the time derivative is taken, v is the body center of mass velocity given in the inertial reference frame N , and F is the external force acting on the body. Together with the mass center motion, we also need to know how the orientation of the body evolves in time, which is governed by the angular momentum principle

N d dt

(L) = T; (4.2) where L is the angular momentum of the body and T is the torque acting on the body. Its interesting to note that equation 4.1 and 4.2 does not contain any explicit dependence on the actual position or orientation of the body. This is obvious in equation 4.1, and can be seen in the latter equation by carrying out the di¤erentiation of the angular momentum

N d dt

(L) =

N d dt

(I!) = ! £ I! + I

B d dt

(!); where both the angular velocity vector ! and the moment of inertia dyad I are expressed in the reference frame B attached to the body. However, most forces and torques acting on bodies depends on both position and orientation.

Some of these forces might be a result of constraints applied to the body.

Constraint forces/torques play an important role since they can be viewed as control systems, operating on a much smaller time scale than the rest of the system as to maintain the constraints. Constraints can typically be divided into position/orientation constraints and velocity constraints. All position/orientation constraints (holonomic constraints) can be turned into velocity constraints through di¤erentiation, however not all velocity constraints

15

16 CHAPTER 4. MECHANICS can be turned into coordinate constraints. These, non-integrable constraints are called non-holonomic constraints. Examples of holonomic constraints are; hinges, joints, and guides. Examples of non-holonomic constraints are a skate on ice or a sphere rolling on a plane. Constraints on a mechanism results in forces/torques, therefore one usually divide the right hand side of equations 4.1

and 4.2 into

F = F

C

+ F

A and T = T

C

+ T

A

(4.3) where the division between constraint and applied forces/torques has been made.

Various methods have been developed to either remove or calculate these constraint forces from the equations of motion, such as for example Lagrange’s method and Kane’s method which removes the constraint forces/torques and di¤erential algebraic formulations which calculates them. Naturally, all these techniques result in the same dynamics. However, Kane’s method has proven to be practical in deriving equations of motions for engineering systems where the number of bodies and constraints are not too high.

The method of …nding the equations of motion and stating the constraint forces can be viewed as a two step process. We start by describing the position and orientation of our bodies using generalized coordinates q i

: For free and unconstrained bodies this would require six generalized coordinates for each body. If we have simple constraints, such as hinges, joints and guides and the mechanism does not have any closed loops, it is usually possible to describe the con…guration by using a minimum set of generalized coordinates. Since this is not always possible the second step is therefore to state the additional contraints as relations between the generalized coordinates or its time derivative, the generalized velocities.

Thus, by using generalized coordinates q i we can express the position x j and orientation R j of our bodies as x j

= x j

(q) and

R j

= R j

(q)

(4.4) where the index j runs over the bodies. By di¤erentiation of these relations we velocities v j and !

j

;

2 v

!

T

1

T

1

.

..

3 q i and the physical

(4.5) where the columns of A is a set of basis vectors for the possible motions of the system.

D’Alembert’s principle of ideal constraints now says that the forces/torques acting on the bodies can be written as

[F b

1

; T b

1

; ¢ ¢ ¢ ] =

0

¢ ¢ ¢ ¹

1 b

1

¢ ¢ ¢

¢ ¢ ¢ ¹

2

.

..

b

2

¢ ¢ ¢

1

X i

¹ i b i

= ¹B;

17 where B should satisify BA = 0 and the scalars ¹ i

(t) can be determined. The additional constraints we might have can be described as relations between the generalized coordinates of the mechanism. Thus they can be written as f i

(q) = 0:

By di¤erentiating these constraints with respect to time, we get,

X k

@f

@q k i q _ k

= 0; C ik

=

@f i

@q k

=

0

¢ ¢ ¢

¢ ¢ ¢ c c

..

.

1

2

¢ ¢ ¢

¢ ¢ ¢

1

If we have additional velocity constraints, they can also be added to C ij

. The null space of matrix C ij now represents a subspace of possible motions of the system. A set of basis vectors of this subspace is usually referred to as the tangent vectors ¿ i

,

0 1

C(q)¿ (q) = 0; where, ¿ =

B

@

.

..

.

..

¿

.

..

1

; ¿

.

..

2

; ¢ ¢ ¢

C

A :

The velocity con…guration of the mechanism can be written in the tangent base as,

_ = u i

¿ i

(4.6) where the scalars u i are the coordinates in this base and are named generalized speeds. Our physical tangent vectors ¯ i can be written as

¯ i

= A¿ i by using equation 4.5 in 4.6. D’Alembert’s principle now states that the projection on A of the constraint forces/torques resulting from these constraints can be written as

[F c

1

; T c

1

; ¢ ¢ ¢ ] A =

X

¸ i c i

= ¸C i where ¸ i

(t) are scalars. Taking the dot product between our physical tangent vectors ¯ i and the constraint forces/torques will result in

£

F

C

1

; T

C

1

; ¢ ¢ ¢

¤

¯ =

¡£

F b

1

; T b

1

; ¢ ¢ ¢

¤

+ [F c

1

; T c

1

; ¢ ¢ ¢ ]

¢

¯ =

([¢ ¢ ¢ ] + [¢ ¢ ¢ ]) A¿ = (¹BA + ¸C)¿ = 0:

Thus, by making the division between applied and constraint forces/torques in the right hand side of Newton’s equation and the angular momentum principle we get

N d dt

N d dt

(m j v j

) =

F

A j

(I j

!

j

) = T

A j

+ F

C j

+ T

C j

= F

A j

= T

A j

+ F c j

+ T c j

+ F b j

+ T b j

: and (4.7)

(4.8)

18 CHAPTER 4. MECHANICS

Now, the dot product between the constraint forces/torques and the physical tangent vectors will vanish. Thus, we can take the dot product on the right hand side and left hand side of equation 4.7 and 4.8 to get rid of the constraint forces/torques

·µ

N d dt

(m

1 v

1

) ¡ F

A

1

¶

;

µ

N d dt

(I

1

!

1

) ¡ T

A

1

¶

; ¢ ¢ ¢

¸

¢ ¯ i

= 0; which result in one equation for each ¯ i

.

## 4.1

## Sophia

Sophia is a tool for deriving equations of motion and follows Kane’s method; see

Kane & Levinson [17]. Sophia, originally developed by Lesser [24] and [23], runs in computer algebra programs such as Maple and Mathematica. It contains tools for handling reference frames, rotations, frame-based di¤erentiation, computing tangent vectors, and an implementation of Kane’s method. An export utility, exmex has been developed by Lennartsson [22], which provides functionality for exporting equations of motion for numeric integration in Matlab. It also provides support for forming and exporting variational equations of dynamical systems, which can be used in stability calculations.

The extension to multi-body dynamics is done via a construct called Kvectors, which is a list of ordinary vectors. The velocity con…guration K-vector contains the center of mass velocities and angular velocities of each body,

2 3 v

<

= 6

4

6

6 v

<1

!

<1

.

..

v

<K

!

<K

7

7

5

A similar construct is used to hold the corresponding applied forces/torques on each body in the system,

2 3

R

< a

= 6

4

6

6

F

<1

T

<1

.

..

F

<K

T

<K

7

7

5

:

By expressing the system velocity con…guration v generalized speeds u i

< using a minimum set of

, it is possible to extract the tangent vectors, since v

< can be written as v

<

=

X u i

¯

< i

+ ¯

<

(t): i

4.1. SOPHIA 19

Momentum and angular momentum is obtained by multiplying each row in v

< by either the mass m i or the moment of inertia dyad I i

;

2 3

P

<

= 6

4

6

6 m

1 v

<1

I

1

!

<1

.

..

m

K v

<K

I

K

!

<K

7

7

5

; where K is the number of bodies. Using D’Alembert’s principle it is now possible to get rid of the constraint forces/torques since R

< c

² ¯

< i

= 0, where the fat dot product is an operation where the ordinary dot product between vectors is performed between each row and the result is summed up. By using these tangent vectors on Newton’s equations and the angular momentum principle one gets

P

<

¡ R

< a

) ² ¯

< i

= 0; which results in as many equations as there are ¯

< i with the KDE’s, usually on the form

’s. These equations, together

_q i

= W ij

(q)u j

; can be retained on an implicit form or can put on a …rst order form, q _ i

= g i

(q; u);

_u i

= h i

(q; u; t); since the equations motion are linear in all derivatives. These …rst order form equations are suitable for numerical integration in standard ODE packages.

20 CHAPTER 4. MECHANICS

# Chapter 5

# Analysis methods

## 5.1

## Nonlinear dynamics

Generally, it is not possible to analytically solve nonlinear ordinary di¤erential equations (nonlinear ODEs). We therefore have to resort to numerical methods.

Today, it exists many robust integrators, capable of handling di¤erent types of

ODE’s. In this thesis, all integration has been performed using Matlab’s ODE suite, which range from non-sti¤ to sti¤, low-order to high-order, and variableorder integrators.

A general nonlinear dynamical system is described by a set of di¤erential equations having a nonlinear driving function, this can be written as

_x = f (x): (5.1)

If the system doesn’t explicitly depend on time it is said to be autonomous, otherwise it is said to be non-autonomous. Points x

¤ for which f (x

¤

) = 0 are called equilibrium points of the system. If the system is started at an equilibrium point, it will stay there and x(t) = x

¤ for all times. If all neighboring points are attracted to this point, it is said to be stable. If some neighboring points are repelled, it is said to be unstable, see Figure 5.3 for an illustration of this.

Depending on the complexity of the equations of motion, it can sometimes be convenient to put the equations of motion in the form:

M (x; t) _x = g(x; t); where f = M

¡1 g: (5.2)

This is useful when an explicit inversion of M (x; t) is cumbersome.

5.1.1

Flow

Although it is not possible to generally write a closed form solution to equation

5.1, we can, given the initial condition x(0) = x

0

, formally de…ne the ‡ow of

21

22 CHAPTER 5. ANALYSIS METHODS solutions x(t) = ©(x

0

; t) where © satis…es

@©

= F (©) and

@t

©(x

0

; 0) = x

0

:

5.1.2

Limit cycles

In nonlinear systems, self-sustained oscillations can occur, such as the famous

Van der Pol oscillator, see José and Soletan [16]. These self-sustained oscillations are called limit cycles and are isolated and closed trajectories of the dynamical system. Thus, in terms of the ‡ow a limit cycle has to ful…ll

©(x; t) = ©(x; t + T ); where T 6= 0 is the period time of the limit cycle.

The periodic gait of the passive walker is a limit cycle, since the walker returns to the same con…guration, having the same velocities, after one stride.

Stable limit cycles attract neighboring trajectories, thus if the stable limit cycle is slightly perturbed, the system will asymptotically return to the original limit cycle. Conversely, unstable limit cycles repel some neighboring trajectories.

5.1.3

Stability of the dynamical system

Stability of the equilibrium point x

¤ can be calculated by linearizing the nonlinear dynamical system found in equation 5.1 about the equilibrium point. For a proof that linearization works for hyperbolic equilibrium points, Strogatz [37] gives a reference to Andronov et al. [7]. Introduce a small displacement 4x from x

¤ and Taylor expand the right hand side of equation 5.1

( _x

¤

+ 4 _x) = f(x

¤

) +

@f

@x

4x + O(j4xj

2

):

However, for an equilibrium point _x

¤

= f (x

¤

) = 0 and we are left with

4 _x =

@f

@x

4x; neglecting higher order terms. The matrix @f [email protected] is called the Jacobian of the system and controls how small disturbances about the …x point evolve in time.

The general solution to this linear di¤erential equation is (assuming no repeated eigenvalues of the Jacobian)

4x(t) =

X

® i v i e

¸ i t i where ¸ i are the eigenvalues of the Jacobian, v i are the corresponding eigenvectors, and ® i real part of all ¸ are determined by 4x(0). Hence, 4x(t) will tend to zero if the i s are less than zero. Thus, the equilibrium point is stable if all eigenvalues have a real part less than zero.

5.1. NONLINEAR DYNAMICS 23 x* x k x k+2 x k+1

Figure 5.1: Consecutive intersections of the Poincaré section H(x) = 0 by a trajectory of the dynamical system: The limit cycle starts and ends in the same point x

¤ of the Poincaré section.

5.1.4

Stability of limit cycles

This method is …ne as long as we have equilibrium points of the dynamical system, but what about limit cycles? To study their stability we introduce a

Poincaré surface/section H(x) = 0 into the ‡ow that the limit cycle intersects transversely, see Figure 5.1.

Thus, we can now look at the consecutive points of intersection of this surface. This is called a Poincaré map, x k+1

= f (x k

); (5.3) if all x k belongs to the surface and the intersection x k of this surface is followed by the intersection x k+1

. If we start with a point on the limit cycle and in the

Poincaré section, the same point will be intersected turn after turn, x

¤

= f (x

¤

), x

¤ is said to be a …xed point of the Poincaré map. We are now interested to see how points close to this …xed point map. Introduce a small disturbance d

0 and

Taylor expand the right hand side of equation 5.3 about the …xed point, x

¤

+ d

1

= f (x

¤

+ d

0

) = f (x

¤

) +

@f

@x d

0

+ O(jd

0 j

2

):

However, x

¤

= f (x

¤

); since x

¤ is a …xed point, and the result is, d

1

=

@f

@x d

0

; or more generally, d k+1

=

@f

@x d k

:

24 CHAPTER 5. ANALYSIS METHODS

In a similar fashion to the vector …eld case, @f [email protected] is said to be the Jacobian of the linearized Poincaré map for the …x point x

¤

. Asymptotic decay to x

¤ of all neighboring points is assured as long as the eigenvalues of the Jacobian are all inside the unit circle. This stability criterion can easily be seen if we assume that Jacobian has no repeated eigenvalues. If so, we can express the initial disturbance d

0 using the eigenvectors of the Jacobian, d

0

=

X

® i v i

: i

Inserting this into the linearized Poincaré map we get, d

1

=

@f

@x

X

® i v i

: i

Since the v i

’s are the eigenvectors of Jacobian and therefore @f [email protected] i

= ¸ i v i

.

This results in d k

=

X

(¸ i

) k

® i v i

; i and as long as all j¸ i j < 1; d k will tend to zero as k goes to in…nity.

5.1.5

Finding limit cycles

Much of the work relating to …nding an implementable 3D passive walker has been focused on …nding periodic gaits. Since periodic gaits of the walker correspond to limit cycles of the dynamical system a method of locating limit cycles has been implemented. The problem of …nding limit cycles can be stated as that of …nding x

0 and T

0

6= 0 satisfying

©(x

0

; T

0

) ¡ x

0

= 0: (5.4)

However, the number of unknowns exceeds the number of equations by one (all points on the limit cycle ful…ll equation 5.4 above), so a Poincaré section is used to make the solution locally unique,

H(x

0

) = 0:

If we now have a good initial approximation (x

0

; T

0

) to the solution of the above we can calculate an update ( 4x; 4T ) that will take us closer to the solution by using the Newton-Raphson method,

·

@ x

©(x

0

; T

0

) ¡ I @ t

©(x

0

; T

0

)

@ x

H(x

0

) 0

¸ ·

¢x

¢T

¸

= ¡

·

©(x

0

; T

0

) ¡ x

0

H(x

0

)

¸

(5.5) where I is the identity matrix, see Adolfsson [6] (paper 6).

5.2. BIFURCATIONS 25

5.1.6

Variational equations

The derivative of the ‡ow @ x

©(x

0

; T

0

); found in equation 5.5, can be obtained through the standard variational equations, see Adolfsson et al. [6] (paper 6).

Forming and exporting the variational equations to Matlab code is supported by the exmex package, see Lennartsson [22]. This includes support for using implicit formulations, as in equation 5.2, or explicit formulations, as in equation

5.1.

5.1.7

Discontinuities

Di¤erent types of discontinues can be encountered in engineering systems. For example, force discontinues occur if the Coulomb friction model is used or if a particle goes from one media to another, such as a particle impacting with a water surface. Discontinuities involve the sudden change of state variables and/or their derivatives. This typically occurs in standard impact models, where velocities of the system change discretely according to some impact model. In the 3D passive walker, force discontinues occur when the knee locks or when the foot impacts with the ground. Sudden change of state variables also occur, since the initial foot contact point is stored as a state of the system. Thus, it is discontinuously updated at each foot impact.

The standard use of variational equations has to be suitably modi…ed at a discontinuity. Although a little bit intricate to derive, see Müller [31] or

Adolfsson et al. [6] (paper 6), the resulting discrete Jacobian correction has a simple form

ª = @ x

G +

(F a

¡ @ x

GF b

)@ x

N

;

@ x

N F b where G i !j

is the discrete change in state variables, F a and F b is the vector …eld of the dynamical system just after and just before the discontinuity, and @ x

N is the normal of the impact surface, see Figure 5.2 for an illustration. Applying this discrete Jacobian correction to the derivative of the ‡ow just before the discontinuity will yield the derivative of the ‡ow just after the discontinuity,

@ x

© after

= ª@ x

© b efore

: (5.6)

## 5.2

## Bifurcations

Bifurcations occur when the stability type of the system is changed. The stability type of the system might change as parameters are varied. The parameter value where the system changes stability type is called a bifurcation point. Here, we assume that the crossing occurs transversely. Thus, if we are looking at the variation of a parameter ¹; we assume that

@ Re(¸)

@¹

¯

¯

¯

¯

Re(¸)=0

6= 0

26

©

(x,t)

N x

F b

N(x)=0

CHAPTER 5. ANALYSIS METHODS

G(x)

F b

Figure 5.2: A trajectory of the dynamical system intersects a discontinuity surface N (x) = 0 where the state variables are updated to a new position in state space by the function G(x): The vector …eld is given by F b intersection of the discontinuity surface and F a at the at the new updated position.

unstable equilibrium no equilibrium stable equilibrium stable equilibrium unstable equilibrium stable equilibrium stable equilibrium

Figure 5.3: A bifurcation occurs when a system changes its stability type. Assume that the spheres move on a surface that is lowered into some viscous media.

The equilibrium position of the left bowl will be stable. If the bowl is gradually transformed into the right bowl, the middle position will loose its stabillity and two new stable equilibrium positions are created. This is called a pitchfork bifurcation. The incline illustrates a saddle node bifurcation. No equilibrium exist in the left incline and as it is gradually changed into the right incline, one stable and one unstable equilibrium is created.

for an equilibrium point in a dynamical system and that

@ j¸j

@¹

¯

¯

¯

¯ j¸j=1

6= 0 for a …xed point of the Poincaré map.

Two di¤erent types of bifurcations are illustrated in Figure 5.3, where the stability of a small particle on an incline and in a bowl are shown. The two bifurcations that are illustrated are the saddle-node bifurcation and a super-critical pitchfork bifurcation, however there exists other bifurcations. The bifurcations occurring in the two studied systems are described below. Since stability criterions are di¤erent for equilibrium points of the dynamical system and …xed points of the Poincaré map, they are listed separately.

5.2. BIFURCATIONS 27

5.2.1

Saddle-node bifurcations

Saddle-node bifurcations occur in the passive walker system as the inclination is decreased. At some inclination one stable and one unstable branch are created.

This bifurcation also occur in the autobalancer, for some of the equilibrium positions, as the rotational speed is varied.

Flow: A real valued eigenvalue starts at 0 and either goes to the left half plane (stable branch) or goes to right half plane (unstable branch).

Poincaré map: A real valued eigenvalue starts at 1 and either becomes less than 1 (stable branch) or greater than 1 (unstable branch).

5.2.2

Pitchfork bifurcations

These bifurcations usually occur in systems with symmetry. The 3D walker has a right and left symmetry with respect to the legs. It is the super critical pitchfork bifurcation that usually occurs in the 3D walker. Typically, the gait heading straight down the plane becomes unstable and two oblique gaits emerge.

These two oblique gaits are mirrored in each other, see Piiroinen et al. [33].

This bifurcation has not been observed in the autobalancer due to the lack of symmetry.

Flow: A real valued eigenvalue crosses the border between the right and left half plane.

Poincaré map: A real valued positive eigenvalue goes through the unit circle.

If the two forked solutions are stable, a super critical pitchfork bifurcation is said to occur, if the two forked solutions are unstable a sub critical pitchfork bifurcation is said to occur. The forked stable solutions always occur on the unstable side and vice versa.

5.2.3

Hopf bifurcations

Hopf bifurcation occurs both in the autobalancer and the 3D walker system.

A super critical Hopf bifurcation occurs in the autobalancer if the damping on the compensating masses is decreased or if the suspension damping is increased.

The result is small oscillations of the compensating masses.

Flow: A complex conjugate eigenvalue pair crosses the border between the right half plane and left half plane.

Poincaré map: An eigenvalue pair crosses the unit circle.

If there exist a small stable limit cycle on the unstable side, a super-critical

Hopf bifurcation is said to occur, the amplitude of this oscillation is proportional to the square root of the distance from the bifurcation point. The sub-critical

Hopf bifurcation occurs if there exist a small unstable limit cycle at the stable side. In engineering the sub-critical bifurcation is the most dangerous of the two types, since no stable limit cycle is available after the bifurcation has occurred.

28 CHAPTER 5. ANALYSIS METHODS

5.2.4

Period doubling

Period doubling sequences occur in both systems analyzed in this thesis. In the autobalancer the previous mentioned limit cycles goes through a series of period doublings, eventually resulting in chaotic motion of the compensating masses. This occurs when the damping on the compensating masses are further decreased or if the suspension damping is further increased. In the 3D passive walker this sometimes occurs when varying the inclination of the plane. It always occurs after a pitchfork bifurcation has occurred, creating oblique gaits.

Just after the period doubling has occurred, the limit cycle will take twice the time to return to the same point in the Poincaré map compared to before the period doubling. In the planar walker, a sequence of period doublings is typically followed by chaotic regions.

Poincaré map: An eigenvalue goes through ¡1.

## 5.3

## Conclusion

In this thesis, the dynamics of two di¤erent mechanical models are explored using standard dynamical systems methods. The mechanical models are the autobalancer and the three dimensional passive walker. The two models differ in complexity and details but the analysis methods are similar. The model for the autobalancer results in a smooth dynamical system whereas the passive walker includes di¤erent kinds of discontinuities. These discontinuities are taken care of by introducing suitable mappings. In the case of the autobalancer it is possible to analytically solve for the time independent equilibrium positions.

The equations of motion are then linearized about the equilibrium positions and stability can be assessed. It is not possible to analytically solve for the periodic gaits of the passive three dimensional walker. Hence, a Newton-Raphson root solving scheme for locating periodic gaits was implemented. Periodic gaits correspond to limit cycles of the dynamical system. Since this scheme involves integrating the variational equations of the ‡ow, stability is easily assessed after the root solving scheme has converged to an equilibrium point.

The process of deriving analytical expressions for the equations of motion and the variational equations would not have been practical without symbolical manipulation programs. For example, the compiled C code for calculating the equations of motion of the passive walker are about 90kb and the variational equations is about 300kb.

The methods described in this thesis are not limited to the study of autobalancing and passive bipedal walking but are applicable to many mechanical systems with or without discontinuities.

5.3. CONCLUSION 29

## saddle node pitchfork (super critical)

stable

## pitchfork (sub critical) hopf (super critical)

unstable

## hopf (sub critical) bifurcation point period doubling parameter

Figure 5.4: Illustration of bifurcations occuring in the autobalancing system and the 3D passive walker system. The saddle node bifurcation is characterized by the sudden birth of two solutions, one stable and one unstable. The pitchfork bifurcation is characterized by the creation of two forked solutions at the bifurcation point. Pitchfork bifurcations come in two ‡avors, super- and sub-critical. Hopf bifurcations occur when small limit cycles are born at the bifurcation point. This type of bifurcation can also be sub- or super-critical.

The …nal bifurcation discussed here is the period doubling. These might occur when limit cycles changes their stability in a certain way.

30 CHAPTER 5. ANALYSIS METHODS

# Chapter 6

# Acknowledgements

I would like to express my gratitude to the people at the Department of Mechanics who have made it possible for me write this thesis.

First o¤ all I would like to thank my advisor, Professor Martin Lesser for his support and advice.

I would also like to thank Dr. Arne Nordmark for sharing his knowledge and insights in the …eld of dynamics and mechanics, Dr. Harry Dankowicz for awakening my interest in passive walking and the many valuable and insightful discussions about interpreting research results, and Dr. Anders Lennartsson is gratefully acknowledged for his export routines.

It has also been a pleasure to work with Dr. Hanno Essén, Tekn. Lic. Petri

Piiroinen, Dr. Mats Fredriksson, Gitte Ekdahl, my room-mate Per J. Olsson, and the colleagues and friends at the Department of Mechanics.

Finally, I thank the members of my family and Helena, for their support.

Partial …nancial support from Volvo Research Foundation is gratefully acknowledged.

31

32 CHAPTER 6. ACKNOWLEDGEMENTS

# Bibliography

[1] Adolfsson, J.: 1995, ‘Self Balancing of Rotating Machines: An Experimental and Theoretical Study’. Master’s thesis, KTH, Department of Mechanics.

[2] Adolfsson, J.: 1997, ‘A Study of Stability in Autobalancing Systems using Multiple Correction Masses’. Technical report, KTH, Department of

Mechanics.

[3] Adolfsson, J.: 2000a, ‘3D Passive walkers: Code Implementation Issues’.

Technical report, KTH, Department of Mechanics.

[4] Adolfsson, J.: 2000b, ‘Finding an Implementable 3D Passive Walker using

Continuation Methods’. Technical report, KTH, Department of Mechanics.

[5] Adolfsson, J.: 2000c, ‘Planar Passive Walkers: Code Implementation Issues’. Technical report, KTH, Department of Mechanics.

[6] Adolfsson, J., H. Dankowicz, and A. Nordmark: 2001, ‘3D Passive Walkers: Finding Periodic Gaits in the Presence of Discontinuities’. Nonlinear

Dynamics 24(2), 205–229.

[7] Andronov, A. A., E. A. Leontovich, I. I. Gordon, and A. G. Maier: 1973,

Qualitative Theory of Second-Order Dynamic Systems. Wiley.

[8] Basmajian, J. V. and R. Tuttle: 1973, ‘EMG of Locomotion in Gorilla and

Man’. Control of Posture and Locomotion pp. 599–609.

[9] Bövik, P. and C. Högfors: 1986, ‘Autobalancing of rotors’. Journal of

Sound and Vibration 111(3), 429–440.

[10] Coleman, M. and A. Ruina: 1998, ‘An Uncontrolled Toy That Can Walk

But Cannot Stand Still’. Physical Review Letters 80(16), 3658–3661.

[11] Dankowicz, H., J. Adolfsson, and A. Nordmark: 2001, ‘Existence of Stable 3D-Gait in Passive Bipedal Mechanisms’. Journal of Biomechanical

Engineering 123(1), 40–46.

[12] Hedaya, M. T. and R. S. Sharp: 1977, ‘An analysis of a new type of automatic balancer’. Journal Mechanical Engineering Science 19(5), 221–226.

33

34 BIBLIOGRAPHY

[13] Honda, ‘Honda Bipedal Robot’. http://world.honda.com/robot/.

[14] Howell, G. W. and J. Baillieul: 1998, ‘Simple Controllable Walking Mechanism which Exhibit Bifurcations’. In: IEEE Conf. on Decision and Control,

December 16-18, Tampa, FL. pp. 3027–3032.

[15] Inman, V. T., H. J. Ralston, and F. Todd: 1994, Human Walking, Chapt. 1.

Williams & Wilkins.

[16] José, V. J. and E. J. Saletan: 1998, Classical Dynamics: A Contemporary

Approach. Cambridge University Press.

[17] Kane and Levinson: 1985, Dynamics: Theory and Applications. McGraw-

Hill.

[18] Kravchenko, V. I.: 1983, ‘Stability analysis of a row-type counterbalance’.

Mashinovedenie (1), 25–27.

[19] Kravchenko, V. I.: 1986a, ‘Automatic balancing of rotor of multi-mass system with row-type automatic ball balancer’. Mashinovedenie (2), 95–

99.

[20] Kravchenko, V. I.: 1986b, ‘Improving the dynamic reliability of loaded machinery elements by self balancing’. Tyazheloe Mashinostoenie (5), 19–

21.

[21] Kuo, A. D.: 1999, ‘Stabilization of Lateral Motion in Passive Dynamic

Walking’. The International Journal of Robotics Research 18(9), 917–930.

[22] Lennartsson, A.: 1999, ‘E¢cient Multibody Dynamics’. Ph.D. thesis, KTH,

Department of Mechanics.

[23] Lesser, M.: 1992, ‘A geometrical interpretation of Kane’s equations’. Proc.

R. Soc. Lond. A, 69–87.

[24] Lesser, M.: 1995, The Analysis of Complex Nonlinear Mechanical Systems.

World Scienti…c Publishing Co. Pte. Ltd.

[25] Majewski, T.: 1985, ‘Position error occurrence in self balancers used on rigid rotors of rotating machinery’. Mech. Mach. Theory 23(9), 71–78.

[26] Majewski, T.: 1987, ‘Synchronous vibration eliminator for an object having one degree of freedom’. Journal of Sound and Vibration 112(3), 401–413.

[27] McGeer, T.: 1990a, ‘Passive Bipedal Running’. In: Proceedings of the Royal

Society of London: Biological Sciences, Vol. 240. pp. 107–134.

[28] McGeer, T.: 1990b, ‘Passive Dynamic Walking’. International Journal of

Robotics Research 9, 62–82.

[29] McGeer, T.: 1990c, ‘Passive Walking with Knees’. In: Proceedings of the

IEEE Conference on Robotics and Automation, Vol. 2. pp. 1640–1645.

BIBLIOGRAPHY 35

[30] McGeer, T.: 1993, ‘Dynamics and Control of Bipedal Locomotion’. Journal of Theoretical Biology 163, 277–314.

[31] Müller, P. C.: 1995, ‘Calculations of Lyapunov exponents for dynamic systems with discontiuities’. Chaos, Solitons and Fractals 5, 1671–1681.

[32] Mombaur, K., M. J. Coleman, M. Garcia, and A. Ruina: 2000, ‘Prediction of Stable Walking for a Toy That Cannot Stand’. submitted for publication in PRL.

[33] Piiroinen, P., H. Dankowicz, and A. Nordmark: 2000, ‘Breaking Symmetries and Constraints: Transitions from 2D to 3D in Passive Walkers’. submitted for publication.

[34] Piiroinen, P., H. Dankowicz, and A. Nordmark: 2001, ‘On a Normal-Form

Analysis for a Class of Passive Bipedal Walkers’. International Journal of

Bifurcation and Chaos (11). accepted for publication.

[35] Rose, J. and J. G. Gamble (eds.): 1994, Human Walking. Williams &

Wilkins.

[36] SKF: 2000, ‘DynaSpin’. http://dynaspin.skf.com/.

[37] Strogatz, S. H.: 1994, Nonlinear Dynamics and Chaos. Addison-Wesley

Publishing Company.

[38] Thearle, E. L.: 1934, ‘US Patent: Means for dynamically balancing machine tools’.

# Paper 1

P1

# A Study of Stability in AutoBalancing

# Systems using Multiple Correction Masses

Jesper Adolfsson

Royal Institute of Technology

Department of Mechanics

S-100 44 STOCKHOLM

SWEDEN

January, 1997

Abstract.

The stability of an autobalancing system is investigated. This work is divided into three parts.

The …rst part is concerned with the stability in an isotropic two correction mass autobalancer. By isotropic it is meant that the system has the same sti¤ness and damping in the horizontal and vertical direction. It is shown that the equations of motion can be transformed, in the isotropic case, to a time independat form. This transformation reduces the complexity of the stability computations. The equilibrium positions are calculated. Linear stability analysis is done about these equilibriums.

The in‡uence of di¤erent parameters are investigated, such as the rotational speed, the suspension sti¤ness and damping, internal damping acting on the compensating masses and di¤erent mass con…gurations. It is shown that instability can occur when the rotational speed is above the natural frequency of the system. It is also shown that stabillity can depend on the amount of imbalance load in the system. When the internal damping acting on the correction masses is reduced, a super critical hopf bifurcation occurs.

The second part is concerned with the anisotropic autobalancer, i.e. with di¤erent sti¤ness and damping in horizontal and vertical directions. In this case the equations of motions are time dependant and stability analysis is performed by integrating the variational equations over one half period. It is shown that given enough separation in the horizontal and vertical natural frequency, regions of stability occur when the rotational speed is varied. It is also shown that some of the phenomena occuring in the isotropic autobalancer also occurs in the anisotropic autobalancer.

The third part studies the case when more than two compensating masses are used.

This adds some complexity to the stability calculations since using three compensating masses gives a family of equilibrium positions. This means that the stability has to be calculated for all possible equilibrium con…gurations.

J. Adolfsson

1

## Introduction

Autobalancing of rotating machines using moving correction masses is best accomplished where one wants to correct imbalanced rotation varying in time.

The type of imbalance can be both static, dynamic or a combination of both.

Depending on the design of the autobalancers continuously or discrete balancing can be achieved. The discrete balancing usually involves some sort of locking mechanism of the correction masses. The need of a locking mechanism is due to the fact that continuous balancing can only be achieved when certain system parameters are chosen correctly. The most noticeable system parameter, regarding continuous balancing, is the rotary speed.

The term auto in autobalancing refers to the fact that it is a passive system.

By passive it is meant that no active forces are needed to move the correction masses. Therefore no controllers are needed in the system.

The idea behind autobalancers is old and the …rst patents are from the

1930’s. There is not a widespread use of autobalance although there exist many di¤erent patents on the subject, mostly regarding the design of locking mechanism of the moving correction masses. Why autobalancers have not been used more widely depends on several things. For example the forces that move the correction masses to their proper location is small compared to the normal forces. The normal forces tend to be very high in practical applications which also require high surface …nish and high precision in balance rings and correction masses. However this is not a serious obstacle since ball bearing manufactures have mastered these skills. It therefore seems that the most likely manufacturer of autobalancers will be the ball bearing industry. Another serious drawback is that it does not work at all rotary speeds, and this is here analyzed in greater detail. This means that for some systems, operating at rotary speeds which are not in the autobalancing regime, it is not possible to use this technique. In some system it might still be possible to use it with a locking mechanism of the correction masses. Locking mechanisms have been tested in turning lathes and stationary grinding machines. During normal operation the spindle is rigidly connected to the machine and the correction masses are locked. When imbalance occur one can release the spindle so it is suspended with springs. This allows the machine to enter the autobalancing regime and consequently the corrections masses are released. After autobalancing has occurred the correction masses are locked and the spindle is rigidly connected to the machine again. The locking mechanism is usually a mechanical device but other types exist. For example ‡uids with a melting point so that it is possible to have it solid when the correction masses are locked and melted when they move. The heating needed is usually accomplished by electrical means.

Another important aspect of the problem is how system parameters should be chosen to achieve satisfactory autobalancing. It is commonly believed that the only criterion for autobalancing is that the rotary speed is above the natural

2

A Study of Stability in AutoBalancing frequency of system (see section 3 for an explanation). However this is not true in general and only appears to be one of several requirements on the system, as will be shown later. Theoretical studies in this …eld have been performed to prove this common misbelief. These theoretical studies, see for example V.I.

Kravchenko et al., see [2] [4] [3], have reached this conclusion by simplifying the problem. The nice thing about these studies is that they have obtained analytical results. With some heuristic reasoning one is lead to the same conclusion

(see section 3).

Autobalancers have successfully been used in grinding machines, such as the Atlas Copco Grinder GTG 40 equipped with an SKF Auto-Balancing Unit.

Imbalance occur in grinding machines because of wear. This installation has reduced vibration levels to less than half of the vibrations occurring without the autobalancing unit. This means that the operator now can use the grinding machine without time restrictions. Other successful attempts have been washing machines where the load causes imbalance during spin drying. This has been tested, with good result, by Wascator in their commercial washing machines. Other areas where it has been tested with various results are refrigerator compressors to reduce noise from piston movements, fans operating in environments where dirt attaches to the blades such that when the dirt comes imbalance occurs.

2

## Objectives

This work is mainly focused on how di¤erent parameters in‡uence the autobalancing system. In previous work by the author, see [1] it is shown that a relatively simple analytical model accurately models a real autobalancing system. This was accomplished by numerical simulations and measurements on an experimental autobalancer built by the author, see picture 1. Since the model accurately describes the real system, stability analysis are made on the equations of motion. Calculations are performed on a plane isotropic and anisotropic two-ball balancer. In the last chapter it is shown how calculations on an autobalancer equipped with more than two balls can be made. Equations of motions are linearized and eigenvalues and eigenvectors are calculated about the equilibrium positions. Also normal form calculations are performed to analyze hopf bifurcations.

While working on the experimental machine a self sustained oscillation of the ball bearing balls, about their equilibrium position was found. This was not possible to explain with previous stability analysis. However, it will later be shown that these oscillations can be predicted by analytical/numerical means.

3

## Illustrative model

There are two common designs of autobalancers. The most common design is letting balls move in a circular ring centered about the axis of rotation.

This ring is usually …lled with some viscous media such as oil. It will be

3

J. Adolfsson

Figure 1.

Picture of the experimental machine. The suspension is similar to a washing machine suspension. Two balance rings can be …tted on the axis of rotation. The correction masses are ballbearing balls.

shown later that choosing the right viscosity is of major importance to achieve good performance. This construction is used in the GTG 40 grinding machine mentioned above. The second design is to use pendulum arms mounted on the axis of rotation. This design has been used in turning lathes. There also exist autobalancers where the moving correction masses are small carriages with wheels mounted on them. The reason for using carriages is that it can be designed with a better weight to occupied volume ratio, therefore reducing the volume of the balance rings compared to ball balancers. However, the carriage is a more complex design compared to using balls and is therefore not widely used. However in respect to the models used in this work these designs are mechanically equivalent and can be modelled with the same analytical model.

To get an idea of how autobalancing works consider …gure 2. Assume that the system has low damping compared to the critical damping (for an introduction to basic theory of vibration see for example Thomson, Theory of Vibration with Applications [5]). The behavior to exploit is that we will have a ¼ phase shift when the rotary speed is above the natural frequency of the system.

When the driving angular velocity ! of the system is below the natural frequency of the system we will have zero phase shift between the line AB and

4

A Study of Stability in AutoBalancing

BC in …gure 2. The natural frequency of the system is here de…ned as

!

n

= s k

M + m +

P n i=1 m i

: (1) where M is the system mass and m is the mass of the unbalanced component and m i is the mass of the i’th compensating mass. If m and the m i

’s are normal expression !

n

= p k=M . A small mass on a ring centered about the axis of rotation B would then move, as indicated in the …gure, to the same side as the unbalance. This would increase the amplitude, line AB thus making the vibrations worse. However, when the system rotates at speeds above the natural frequency of the system we will have a ¼ phase shift between the line

AB and BC. A small mass, positioned the same way as before, would then tend to the opposite side of the unbalanced component. Assuming that this quasi static argument holds and that there are at least two masses moving symmetrically about the line BC the amplitude AB would decrease. In this quasi static argument it is assumed that the damping is small compared to the critical damping, which implies a phaseshift of ¼ radians when ! goes from just below to just above the natural frequency. It is also assumed that there are no inertial forces due to the compensating masses acting on the system.

ω < ω n

ω > ω n

2

1

4

3

ωt

B m

C

2

1

4

3

B

A m

ωt

C

1. Centrifugal force

2. Projection of centrifugal force on the normal direction

3. Normal force

4. Driving force

A

M M k c k c

Figure 2.

Figure showing the direction the centrifugal force would move a small imaginary mass on a ring when angular velocity is below and above the natural frequency of the system.

If more damping where present this phase shift would occur through a large region and this analysis would fail since it would not be clear what would happen when ! is in the range around !

n

.

4

## Analytical model

5

x

2

J. Adolfsson m

C e

ωt

B

A

M r i i i m i l i

α i x

1

**n**

2

**n**

1 k

1 c

1

Figure 3.

The auto balancing model.

4.1

Derivation of equations of motion

To investigate the dynamics of autobalancing an analytical model constrained to move in a plane is used. This might appear to be a serious constraint since in most autobalancers the static unbalance is not situated in the same plane as the autobalancer. However, when using a one plane auto balancer one is forced to place the autobalancer as close as possible to the plane of unbalance. Therefore the plane analytical model will closely resemble an actual system, such as a grinding machine equipped with an autobalancer. If it is not possible to put the auto balancer in the plane of static unbalance or if you have dynamical unbalance one could use two auto balancers, letting the static or dynamic unbalance be situated anywhere between the autobalancers. This setup is for example used in washing machines. Actually it is possible to let the plane of static unbalance be situated outside the auto balancers.

In this model (see …gure 3) the mass M is able to move in the n

1 n

2 plane.

Linear springs and a linear viscous dampers are attached to mass M. Springs are considered to work in orthogonal directions to each other, the same applies to the dampers. The springs equilibrium position is the point A, therefore the displacement of mass M is measured from A to B with coordinates x

1 along n

1 and x

2 along n

2

. The rotating mass is divided into two parts, the mass M with centre of mass at B and the mass m with centre of mass at C situated a distance e from B. The point C is assumed to be rotating about the geometrical centre B with angular velocity !. The compensating masses, with mass m i and rotational inertia i i

, are assumed be rotating, without slipping,

6

A Study of Stability in AutoBalancing on a circular path centered about the geometrical centre B. The distance from

B to the centre of mass of the compensating mass is l i and the radius of the compensating masses are r i

. The angular coordinate is ® i

. The forces acting on the compensating masses are assumed to linear in their relative speed compared to the rim. The viscous damping acting on the correction masses will be referred to as internal damping. The viscous damping from dampers will be referred to as external damping. The derivation of the equations of motion was made in Sophia, see [?]. Sophia is a set of routines for doing mechanics in computer algebra packages, such as Maple and Mathematica. Sophia was developed by

Professor Martin Lesser at KTH. The equations of motion are

M

0

Ä

1

+ c

1

_x

1

+ k

1 x

1

= me!

2 cos(!t) + i=1 m i l i

(Ä i sin(® i

) + _®

2 i cos(® i

)); (2)

M

0

Ä

2

+ c

2

_x

2

+ k

2 x

2

= me!

2 sin(!t) + i=1 m i l i

(Ä i cos(® i

) ¡ _®

2 i sin(® i

)); (3)

(m i

+

I r i

2 i

)l i

Ä i

+ l i

(± i

+

° r i

2 i

)( _® i

¡ !) = m i

(Ä

1 sin(® i x

2 cos(® i

)) (4) where M

0 equals (M +m+

P n i=1 m i = 1; : : : ; n; i

) and is introduced since it occurs frequently.

Parameter m is super‡uous since the masses M and m are rigidly connected.

It is introduced since parameter analysis will be simpli…ed by it.

5

## The isotropic case

5.1

Derivation of equations

The isotropic case, where k

1 equals k

2 and c

1 equals c

2 is interesting since it is possible to get the equations of motion in a time independent form. An example of a isotropic system could be an autobalancer mounted on a rotating shaft, where the shaft is stiy mounted. To get the equations in a time independent form is accomplished by expressing the position of point B relative to the point

A with coordinates along the axis a as a substitution

1 and a

2

(see …gure 4). It can be expressed x

1

= q

1 cos(!t) ¡ q

2 sin(!t) ; x

2

= q

1 sin(!t) + q

2 cos(!t) ;

® i

= ¯ i

+ !t ; i = 1; : : : ; n:

(5)

(6)

(7) inserted into equations 2,3,4. Furthermore, since equations 2 and 3 are the projections of the time derivative of the linear momentum along n now need the projections along a

1 and a

2

.

1 and n

2 we

7

x

2

J. Adolfsson

C

β i

ωt q

1

1

**a**

2

**a**

A

ωt q

2

B

α i x

1

**n**

2

**n**

1 k

1 c

1

Figure 4.

Coordinates in the rotating frame.

This is easily accomplished in Sophia since it has the ability to express vectors in all de…ned reference frames. The time independent equations can be written as

· ¸ · ¸ · ¸ · ¸

M

0

0

0 M

0

Ä

1

Ä

2

+ c

2!M

0

¡2!M

0

¡c

_q

1

_q

2

+

· k ¡ !

2 c!

M

0

¡c!

k ¡ !

2

M

0

¸ · q

1 q

2

¸

=

· me!

2

0

¸

+

(8) i=1 m i l i

µ·

( _¯ i i

+ !)

2

( _¯ i

+ !)

2

¯ i

¸ · sin(¯ n

) cos(¯ n

)

¸¶ and

(m i

+

I r i

2 i

)l i

¯ i

+ (± i

+

° r i

2 i

)l i

_¯ i

= m i

¡

(Ä

1

¡ !

2 q

1

¡ 2! _q

2

) sin(¯ i

) + (¡Ä

2

+ !

2 q

2

¡ 2! _q

1

) cos(¯ i

)

¢

(9) i = 1; : : : ; n:

We will …rst study a system with two correction masses. Using more than two correction masses will result in a system with a family of indi¤erent equilibrium positions. See chapter 7 for an explanation.

8

A Study of Stability in AutoBalancing

We will always assume that the correction masses have equal mass and equal distance from the axis of rotation, this will be the case in an autobalancer with two ball bearings in a circular race …lled with some viscous media. We will also assume that the parameters, ± i

; ° i

, regarding the viscous damping acting on the correction masses are equal.

5.2

Equilibrium positions

To …nd the equilibrium positions we …rst rewrite the system of equations in 9 and set all time derivatives to zero, the resulting equations are

¡q

1 sin(¯

1

) + q

2 cos(¯

1

) = 0 ;

¡q

1 sin(¯

2

) + q

2 cos(¯

2

) = 0 : (10)

This can be split into two kinds of solutions. The …rst is when q

1;2 equals zero and ¯

1;2 are given by the system of equations in 8 and can be expressed as

¯

1

¯

2

= ¼ ¡ cos

¡1

( me

2m

1 l

1

);

= ¼ + cos

¡1

( me

2m

1 l

1

) :

(11)

(12)

This is the preferred solution where the system is balanced and no vibrations exists. This is actually two solutions since ¯

1 and ¯

2 can be interchanged to produce a new solution. These solutions only exist when jmej · 2m

1 l

1

: (13)

The absolute value should be interpreted that e, the distance from the geometrical centre to the mass centre of the unbalanced component, can be both positive and negative. Negative e only means that the unbalance is situated at the opposite side of the de…ned positive side in …gure 3. To obtain the other solutions we rewrite the equations in 10 as q

2 q

1 q

2 q

1

= tan(¯

1

) ;

= tan(¯

2

) :

(14)

(15)

This show that if q

1;2 is not equal to zero the solution in terms of ¯

1;2 written as can be

¯

2

= ¯

1

+ n¼; n = 0; 1; ::: (16)

For n = 0, which means that the two correction masses are in the same place, the solution for q

1;2 in term of ¯

1 will be q q

1

2

=

=

(k ¡ !

2

M

0

)(me!

2

+ 2m

1 l

1

!

2 cos(¯

1

)) + 2c!m

1 l

1

!

2

2(k ¡ !

2

M

0

)m

1 l

1

!

2

(k ¡ !

2

M

0

)

2

+ (c!)

2 sin(¯

1

) ¡ c!(me!

2

+ 2m

1 l

1

!

2 cos(¯

1

))

: (18)

(k ¡ !

2

M

0

)

2

+ (c!)

2 sin(¯

1

)

; (17)

Inserting 17 and 18 into 14 will result, after some manipulation in

(k ¡ !

2

M

0

)me sin(¯

1

) + c!me cos(¯

1

) + 2c!m

1 l

1

= 0 (19)

9

J. Adolfsson which has a real solution if

(k ¡ !

2

M

0

)

2

+ (c!)

2

¸ (c!)

2

µ

2m

1 l

1

¶

2 me

: (20)

Fixing all parameters except for !, which we will vary, and letting me < 2m

1 l

1 we see that equation 20 will not have any solution for ! about k=M

0

. The exact bifurcation points can be obtained by solving for the equality in equation

20. Also note that …xing all parameters, except for me, equation 20 won’t have any solutions when me is below some value. The solution of 19 can be found in Appendix A. Equation 19 will, in general, have two solutions in ¯

Now turning back to equation 16 and setting n = 1, which physically means that the correction masses are on opposite sides, and following the same route as before results in

The solution for ¯

1

(k ¡ !

2

M

0

)me!

2 q

1

=

(k ¡ !

2

M

0

)

2

+ (c!)

2

¡c!me!

2 q

2

=

(k ¡ !

2 will then be

M

0

)

2

+ (c!)

2

;

:

(21)

(22)

¯

1

= tan

¡1

µ

¡c!

k ¡ !

2

M

0

¶

: (23)

It is worth noting that equation 21 and 22 will be the equilibrium solution to a simple rotating unbalance isotropically suspended and that equation 23 will be the phase angle as it is usually de…ned. This is also two solutions since ¯

1 and ¯

2 can be interchanged to produce a new solution.

In all the system have six equilibrium positions in this coordinate representation, four of which are physically distinguishable. These four equilibrium positions are schematically drawn in …gure 5 below.

5.3

Linear stability analysis

It is now possible to linearize equation 8 and 9 to study the stability of the four equilibrium positions. The equations of motions are put on the standard form

M (x) _x = f (x): (24) where x = [q

1

; q

2

; ¯

1

; ¯

2

; _

1 q

2

; _¯

1

; _¯

2

]

T

, M (x) and f (x) are easily derived from

8 and 9. We will now study the eigenvalues and eigenvectors for A that control the stability about the equilibrium positions where

A = M

¡1

(x

0;i

)

@f (x

0;i

)

@x

(25) where x

0;i are the four equilibrium positions. A will now be a function of the system parameters. It is possible to derive A analytically and in this case it is done with the help of Maple. However, it is not possible to derive the analytical expression for the eigenvalues and eigenvectors of A (eight order system). We therefore insert numerical values for the parameters and equilibrium positions

10

A Study of Stability in AutoBalancing m

1 m

2

A,B

Equilibrium 1

B m ,m

2

A m ,m

2

B

Equilibrium 2 m

1

B

A m

2

Equilibrium 3 Equilibrium 4

Figure 5.

Schematically showing the 4 physical solutions. A is the centre of rotation.

B is the geometrical centre. This …gure is made for a particular choice of parameters.

Note that all positions depend on the amount of unbalance load.

and calculate the eigenvalues and eigenvectors of A numerically. The criterion for stability is that the eigenvalue of A with the maximum real part is negative.

This would assure asymptotic stability when we are close to the equilibrium position. We therefore de…ne the stability as

!

?

= max i=1::2n real ¸ i where ¸ i are the eigenvalues of A. Thus, if !

?

(26) is negative the equilibrium position is stable and if its positive the equilibrium is unstable. Therefore plotting !

?

as a function of the parameters we are interested in examining will show the stability of selected parameters. Since di¤erent ¸ i will have maximum real part when parameters are varied, !

?

will in genereal be a non-smooth function of the varied parameters.

5.4

Parameter study

What is usually of interest is to vary ! for a given system to see under what rotational speeds the system behaves as desired. It is also important, as we shall see, to investigate di¤erent amounts of unbalance by varying m and e, since we don’t want a system where stability depends on the amount of unbalance.

11

J. Adolfsson

Par c m e

Value

M 1.000

k 1.000

0.700

0.010

1.000

Par m

1

I

1

=r i

2 l

1

±

1

° i

Value

0.010

0.004

1.000

0.005

0.000

Table 1: Parameters used for stability analysis.

These three, or two since it is the product of m and e that is important, are the most critical when one wants to install a predesigned autobalancing device in a pre-existing system without modifying the suspension of the system. We …rst pick some parameter values and compare with a previous stability analysis. By setting M equal to one all other masses will be measured in terms of this unit mass. We also set k and l

1 in terms of l

1 to one. This means that lengths will be measure and spring constants in terms of k

1 factor between natural units of time and common units will be p

M k

¡1

.

In table 1 the rest of the parameters are found. These parameters correspond somewhat to the experimental machine used. By assigning a value to all parameters except for one parameter we can plot the eigenvalue with the maximum real part as a function of the varying parameter.

5.4.1 Stability when the rotational speed is varied

In …gure 6 all parameters are assigned the values in table 1 and ! is varied between 0 and 6. The same plot is done for each equilibrium position.

The left graph in …gure 6 shows, for low values of !, that we have a stable solution for type 3 equilibrium position and the rest of the equilibrium points are unstable. The third equilibrium represents a solution where the correction masses are at the same position and at the same position as the unbalance.

This shows that at low rotational speeds the correction masses will increase the unbalance compared to a system without autobalancing.

The cross indicates the natural frequency of the system as expressed in 1.

According to previous stability analysis made by V.I. Kravchenko et al., see [2]

[4] [3] the region to the left of the cross is stable. In this graph the di¤erence between our stability point, the crossing of zero, and the point obtained in previous work is small. We will however see a greater di¤erence when other parameters are varied. The right picture shows that at higher ! the only stable equilibrium is type 1, which is the desired equilibrium position, for the selected parameters.One of the assumptions in earlier stability analysis is that external damping is small, which corresponds to small c here. Therefore, decreasing c should make the point where stability is attained come closer to the cross. In

…gure 7 the viscous damping c is reduced to 0.1. The result is the opposite of previous analysis. It is possible, by also decreasing the damping on the correction masses, parameter ±

1

, to move the crossing point even further away

12

A Study of Stability in AutoBalancing

0.025

0.02

0.015

0.01

0.005

-0.005

0

-0.01

0

4

3

2

ω n

1

0.5

ω

1 1.5

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0

-0.1

-0.2

0

ω n

4

2

3

2

1

ω

4 6

Figure 6.

The stability as function of !, the rotational speed. The numbers correspond to the equilibrium positions. The cross indicates the natural frequency as de…ned in expression 1.1. Parameters from table 3.1.

13

J. Adolfsson

0.2

3

0.15

0.1

2

4

0.05

2

0

3

1

ω n

-0.05

0 0.2

0.4

0.6

0.8

1

ω

1.2

1.4

1.6

1.8

2

Figure 7.

The result of decreasing c from 0.7 to 0.1 with the rest of the parameters from table 3.1.

from the natural frequency of the system. It is appearant that previous stability analysis oversimpli…ed the problem.

5.4.2 Stability when the imbalance load is varied

Assume that we have a machine with parameters according to table 1 and running it at ! = 5:0 as …gure 6 tells us that this is a stable choice for !

and for the chosen m: It is now important to check stability when we vary the imbalance load. We vary the load by changing me in the range from zero load to 20 percent above the limit given by inequality 13. It is important to see what happens when the load is above the limit given by 13 since the wanted equilibrium position type 1 does not exist in this region. In …gure 8 the result is displayed. At zero load we have an indi¤erent equilibrium since all positions where the compensating masses are at opposite sides are allowed. Note that equilibrium type 1 and 4 are both indi¤erent since they represent the same equilibrium position at zero load.

Close to maximum load, me is somewhat less than 0.002, the stability of equilibrium type 1 is lowered, point A in …gure 8.At maximum load the stability of equilibrium type 1 and 2 coincide. When the load is above the maximum load capacity only equilibrium type 2 is stable. Only looking at equilibrium type 1 and 2 we have two stable and one unstable equilibrium when me is below maximum load (equilibrium type 1 is actually two equilibrium positions since

14

A Study of Stability in AutoBalancing

0

-0.1

-0.2

0

0.3

0.2

0.1

0.8

0.7

0.6

0.5

0.4

1

2

3

Local maxima

4

A

0.005

0.01

0.015

m

0.02

0.025

0.03

Figure 8.

The result of varying the load by changing m. The numbers corresponds to the equilibrium positions. The angular velocity ! = 5. The rest of the parameters from table 3.1.

¯

1 and ¯

2 can be interchanged). When me is above 0.02 only one stable equilibrium exists (equilibrium type 2). We therefore have a supercritical pitchfork bifurcation at m equal to 0.02. This is positive since it means that overloading the autobalancer, at high rotational speeds, will result in that the two correction masses will be at opposite side of the imbalance, ie. the autobalancer will work as well as possible.

The local maxima at me ' 0:014 is interesting since it is possible to let it grow by increasing the external viscous damping and decreasing internal viscous damping. This is accomplished by increasing the external damping from c = 0:7 to c = 2:7 and decreasing the internal damping from ±

1

= 0:005 to ±

1

In …gure 9 the local maxima has grown becoming unstable, since !

?

= 0:002.

is greater than zero. We then have a system where the stability depends on the amount of load. This could potentially be a problem when using an autobalancer if is not tested with all admissible loads. In …gure 9 the local maxima has grown and become unstable.Generally it seems like increased external viscous damping requires increased internal damping . We can test this hypothesis by doing a contour plot of !

?

as function of external damping c and internal damping ±

1

.

In …gure 10 contour plots with di¤erent loads are found, the zero contour line divides the stable region from the unstable. As seen in …gure 10b-d the zero contour line is increasing in internal damping with increasing external damping.

It is worth noting that optimal damping, in terms of linear stability, depends on

15

J. Adolfsson

0.04

0.02

-0.02

0

-0.04

-0.06

unstable

-0.08

0 0.002

0.004

0.006

0.008

0.01

0.012

0.014

0.016

0.018

0.02

m

Figure 9.

By increasing external damping and decreasing internal damping the system will be unstable for certain loads.

the amount of load. Therefore, choosing the right amount of internal damping and external damping has to be a compromise so that su¢cient stability is guaranteed at all amounts of load taken from a …gure such as 10. In …gure 8 we see that the local maxima has a maximum at m ' 0:014. This correspond to an equilibrium position ¯

1

'

3¼

4 and ¯

2

'

5¼

4

. From all contour plots in

…gure 11 we see that the zero contour line has a maximum in ±

1 at m ' 0:014.

Therefore it seems natural to test a two correction mass autobalancer with a load so that the equilibrium positions of the two correction masses will be and

5¼

4

. This test would then assure stability for all other loads.

3¼

4

5.4.3 Varying the mass of the compensating masses

The maximum amount of imbalance the autobalancer can compensate for, with zero resulting amplitude, is equal to 2m

1 l

1 assuming two compensating masses of equal mass and distance from the geometric centre. Assuming that we have limited space available where the autobalancer is mounted we could increase m

1 and decrease l

1 but still keeping two times their product to a constant value given by the maximum imbalance. The dynamics of the system will then change, which can be seen by looking at equations 8 and 9. In equation

8 nothing will be changed since the only place where m i and l i occur is as a product and that is kept constant by our assumption above. However, in equation 9 we will have a term like ± i l i multiplied by _¯ i and the right hand will be multiplied by m i

. Keeping some sort of balance between the viscous forces

16

A Study of Stability in AutoBalancing

0.03

0.025

0.02

0.015

0.01

0.005

0

1

-0.02

2 3 c

0

4

-0.02

5

0.03

-0.05

0.025

0.02

0.015

-0.2

-0.25

0.01

-0.1

-0.15

0.005

0

0

1 2 3 c

4

0.1

5 a c

-0.05

0.05

0.03

0.025

0.02

0.015

0.01

0.005

0

0.03

0.025

0.02

0.015

0.01

-0.05

0.005

0

1 2

-0.2

-0.15

-0.1

-0.2

0

3 c

4 5 b

-0.1

1 2

0

3 c

4

-0.05

5 d

-0.15

Figure 10.

Contour plots of the maximum real part of eigenvalues as function of external damping, parameter c, and internal damping, parameter ±

1

. Parameters from table 3.1 and ! = 5. The load in a m = 0:002, in b m = 0:008, in c m = 0:014 and in d m = 0:019.

and the right hand side forces we expect that increasing m i and decreasing l i will have to be compensated for by increasing ± i

. That this is the case can be seen in …gure 12 where the border line between stable and unstable regions have been plotted for various m

1 and l

1

.cuIt also seems like the border when c is increased tends to some limiting value in ±

1

. This would imply that if ±

1 is chosen above this limiting value stability will not depend on c . One could argue whether this low internal damping actually will occur in a real system. There are a lot of factors which actually could produce a system close to this boundary.

For example in a washing machine with the drum mounted horizontally it is not desirable to activate the compensating masses at revolutions lower than the stable limit given by …gure 6. To activate the compensating masses the viscous force must overcome the force from gravity so that the balls start moving with the outer rim. This might impose a constraint on the viscosity of the oil, lower viscosity will activate the compensating masses at higher revolutions. Another important factor is temperature. In a system which is operating under di¤erent temperature conditions the viscosity of oil might change dramatically, maybe so much that the stability boundary is crossed.

It is also interesting to see how the stability changes when this product,

2m

1 l

1

, is held constant and the mass and length is varied. In …gure 13 two cases are compared. Line one correspond to a system where the compensating

17

J. Adolfsson

0.02

0

0

0.015

0

0.01

0

0.005

0

0

0

0.02

0.015

0

0

0

0.01

0

0

0.005

0

0

0

0

0 a

0

0

-0.2

0

-0.1

0

0

0

0.005

0.01

0.015

0.02

m

-0.1

-0.2

c

0

0

-0.3

0

0

0

0.005

0.01

0.015

0.02

m

0.02

0

0

0.015

0

0

0.01

0

0.005

0

-0.1

-0.2

-0.3

0

0

0.02

0

0.015

0

0.005

0.01

0.015

0.02

m

0 d

0

0.01

0.005

0

0

-0.2

-0.2

0

-0.2

0

0

-0.1

0.005

0.01

0.015

0.02

m b

0

0

0

Figure 11.

Contour plots of the maximum real part of eigenvalues as function of external load, parameter m, and internal damping, parameter ±

1

. Parameters from table 3.1 and ! = 5. The external damping, parameter c equals , in a 0.5, in b 1.0, in c 1.5, in d 2.0.

mass is equal to 0:01. Line two correspond to a mass equal to 0:05. In both systems the product 2m

1 l

1 is held constant and is equal to 0:01. The parameter controlling the viscous damping, ±

1

, is increased in the second system following the reasoning above. As seen in the …gure 13 the increased mass system shows a superior stability over the lower mass system. Also note that the …rst curve segment in the system with a heavier compensating mass decreases earlier and more rapidly than the low mass system. One would then expect that the system with a heavier compensating mass would perform better compared to a system with a lighter compensating mass. In section 5.6 it is shown that this the case.

5.5

Hopf bifurcations and chaos

In …gure 12 the border line between stable and unstable regions are drawn for some di¤erent choices of system parameters. As argued before there might be situations when the internal damping is low, even so low that the border line might be crossed. It is therefore important to know what will happen when crossing the stability boundary.

A bifurcation will occur when a equilibrium point changes stability. For an excellent introduction to bifurcation theory nonlinear dynamics see [?].

18

A Study of Stability in AutoBalancing

0.025

0.02

0.015

0.03

0.02

0.01

0.005

0

0 1 2 3 4 c

5 6

0.01

7

0.005

8 9

Figure 12.

Border line dividing stable from unstable region when the mass and distance from geometrical centre to compensating masses are varied but their product is kept constant and equal to 0.01. Numbers indicating mass m

1

. Regions to the northwest of border line is stable. Parameters taken from table 3.1 except for m

1

= 0:014

19

J. Adolfsson

-0.05

0

-0.1

-0.15

-0.2

-0.25

m =0.05

1

0 0.002

0.004

0.006

0.008

0.01

0.012

0.014

0.016

0.018

0.02

m

Figure 13.

Comparison of stability when the compensating mass is increased. Line

1 m

1

= 0:01 ,l

1

= 1 and ±

1

= 0:005 . Line 2 m

1

= 0:05 ,l

1

= 0:2 and ±

1

= 0:04 . Rest of the parameters from table 3.1.

If two complex conjugate eigenvalues crosses from the left half plane into the right half plane a Hopf bifurcation typically occurs. Since the real part is positive in the right half plane the equilibrium point looses its stability. When crossing the imaginary axis in this way two things can happen. We might see oscillations in the system approching some limiting amplitude resulting in a limit cycle. This is called a supercritical Hopf bifurcation. When the real part is small and positive the limit cycle will be sinusoidal with an angular frequency equal to the imaginary part of the crossing eigenvalues. We might also …nd sinusoidal oscilliations that continues to grow exponentially away from the equlibrium point. In this case local analysis can not tell what will happen.

This is called a subcritical Hopf bifurcation. In engineering this is potentially a an amplitude proportinal to p

¹ ¡ ¹ c

, where ¹ is the bifurcation parameter we are interested in varying and ¹ = ¹ c when crossing the imaginary axis. This applies for small ¹’s. Since our system have four degrees of freedom, which results in eight state variables, there is somewhat more to it. The dynamics of the system will approach a 2-dimensional surface embedded in the eight dimensional state space of our system. This surface is called the centre manifold.

The trajectories approach this centre manifold because the other eigenvalues still have a negative real part. The shape of the surface and the dynamics on this surface depends on the parameters of the system.

20

A Study of Stability in AutoBalancing

If the stability boundary is crossed and a subcritical Hopf bifurcation occur, the system might experience violent vibrations due to the compensating masses movement. However, if there instead will be a supercritical Hopf bifurcation, the result will be a stable limit cycle. This stable limit cycle will manifest itself as small oscillation of the balls about their equilibrium position with resulting small vibrations of the suspended mass.

To examine this a numerical experiment can be made in the stable and the unstable regions. From …gure 12 we have that at ±

1 be in the stable region and that ±

1

= 0:0065 the system will

= 0:0045 it will be in the unstable region for m = 0:02. In …gure 14 the phase portrait of ¯

1;2

±

1 is plotted for various values of

.All trajectories are plotted after the initial transients has dissapeared. Since

¯

1;2 can be interchanged to produce a new solution, both solutions are plotted.

At ±

1

= 0:0065 the system remains at the stable …xpoint. At ±

1

= 0:0045 a 1 periodic limit cycle exists. This limit cycle can be observed in the experimental machine when external damping is high or interal damping is low. There is one noticable feature of this limit cycle, one of the compensating masses has a larger amplitude than the other. This is also observed in the experimental machine.

The time of the oscillations also agrees with the measured. Continuing to lower the internal damping results in period doubling. At ±

1

= 0:0032 we have a 2 periodic limit cycle and at ±

1

= 0:00305 we have a 4 periodic limit cycle. This results at even lower internal damping in a chaotic motion of the compensating masses. When ±

1

±

1

= 0:00302 we have a chaotic motion of the system. At

= 0:003 something interesting happens, the two correction masses start changing positions with each other. This would of course be hard to realize since that would mean that the balls would have to move through each other.

That some sort of Hopf bifurcation occur can be seen in …gure 15 where one pair of eigenvalues are crossing the real axis when the internal damping ±

1 is varied from 0.01 to 0.003.

Using centre manifold theory and normal form analysis it is possible to calculate whether a stable or unstable Hopf bifurcation will occur. This was done for the border in …gure 12 where m = 0:02. These calculations show that a stable Hopf bifurcation will occur for this particular border. This in combination with the experimental machine would indicate that a stable Hopf bifurcation will occur when the internal damping acting on the compensating masses are lowered.

5.6

Numerical experiments

We have employed a local stability analysis, i.e. we examined the stability of the linearized equations of motion about the equilibrium position. It is therefore interesting to examine whether local stability will in‡uence the complete motion. To see this we could devise some rules which determines a good performance from a poor one and run a series of time simulations. These simulations can then be compared to the local stability analysis. As usual the problem is to decide what separates a good performance from a poor one. To the authors knowledge there does not exist any accepted performance test to evaluate

21

J. Adolfsson

5

4.5

4

2.5

2

1.5

3.5

3

1

1 1.5

2 2.5

3

β

1

3.5

4 4.5

5

5

4.5

4

3.5

3

2.5

2

1.5

1

1 1.5

5

4.5

4

3.5

3

2.5

2

1.5

1

1 1.5

2 2.5

3

β

1

3.5

4 4.5

5

2 2.5

3

β

1

3.5

4 4.5

5

3.5

3

2.5

2

5

4.5

4

1.5

1

1 1.5

2 2.5

3

β

1

3.5

4 4.5

5

β

1

5

4.5

4

3.5

3

2.5

2

1.5

1

1 1.5

2 2.5

3

β

1

3.5

4 4.5

5

Figure 14.

Phase portrait of ¯

1;2 when varying the internal damping ± doubling occurs and at low internal damping chaotic motion is found.

1

. Period

22

A Study of Stability in AutoBalancing

2

-2

0

6

4

-4

-6

-1 -0.8

-0.6

-0.4

Re

λ i

-0.2

0 0.2

Figure 15.

Showing the crossing of eigenvalues of the real axis when ±

1 is varied.

Cross indicates ±

1

= 0:01 and ring ±

1

= 0:003 .

autobalancers. The following is proposed as a candidate for such criteria. In most cases an autobalancer is …tted where one can not foresee the amount of unbalance and its position. Therefore the most common situation will be that the autobalancer is compensating for an unbalance and suddenly this amount of unbalance and its position change. A corresponding time simulation will then have initial conditions; all speeds are set to zero and the position of the axis of rotation is at the geometrical centre. The angular position of the correction masses are chosen randomly which corresponds to a system balancing some unbalance at some position. The new unbalance situated at zero angular position is randomly chosen and within the maximum balancing capability. We could then measure the time or number of revolutions until the amplitude of the oscillations are below some speci…ed value. This value could be a fraction of the maximum amplitude in the simulation or some value determined by what is acceptable as amplitude. To test this evaluation method 10000 numerical simulations were made on some di¤erent choices of parameters. The measurement used were the number of revolutions before the amplitude becomes permanently smaller than one …fth of 2m

1 l

1

=M . The amplitude 2m

1 l

1

=M correspond to the amplitude one would have if the unbalance me equals 2m

1 l

1 and the rotary speed ! is much greater than the natural frequency of the system. In …gure

16 the stability of three di¤erent parameter choices is plotted , when the load is varied. The parameters used can be found in table 2. In the left table the parameters that are common to all three system are found. In …gure 17 the

23

J. Adolfsson

Par

M k m e

° i

Value(Common)

1.000

1.000

0 - 0.02

1.000

0.000

Par c

±

1 m

1 l

1

I

1

=r

2 i

1 2 3

1.8

0.7

0.7

0.003

0.005

0.003

0.01

0.01

0,05

1.0

1.0

0.2

0.004

0.004

0.040

Table 2: Parameters used for numerical comparison.

outcome is displayed as a histogram over the number of revolutions. The mean value and standard deviation is also displayed. The …rst system has relatively high external damping c

1 and low internal damping ±

1 compared to system two.

System one has somewhat better stability at low loads but worse at the middle region compared to system two. System one and two have identical compensating masses. System two clearly behaves better than system one, both the mean value and the standard deviation is lower than in system one. Since

…gure 16 only displays the stability of the linearized system there is no reason to expect that the full nonlinear system will behave the same way.We are not even guaranteed that the system will tend to the equilibrium position. However these three histogram display the result of 30000 simulations and not one has not reached the equilibrium position. The idea is that when the system is reaching its equilibrium position it has to spend some time in the region where the linear model accurately models the behavior and therefore it should have some correspondence with the outcome in the histograms. In system three the mass of the compensating mass is increased …ve times over system one and two.

The length l

1 is also reduced to one …fth of system one and two. Following the reasoning in section 5.4.3 the internal damping ±

1 is increased to compensate for the inertial forces due to a heavier mass. As seen in …gure 16 this system show a higher stability than both system one and two. The outcome of the numerical simulations is displayed in histogram three of …gure 17. Parameter set three shows both lower mean value and lower standard deviation than both system one and two. It therefore seems that one should choose heavier compensating masses close to the axis of rotation over lighter masses far from the axis of rotation. It also seems that the local stability tells something about the dynamics of the global system and can be used as a reasonable guide to optimize a system.

6

## Anisotropic case

6.1

Derivation of equations

Most constructions where an autobalancer might …t in is clearly anisotropic.

For example a common use of autobalancers are in washing machines. When spin drying the wash is not evenly distributed and as result of this an unbalance

24

A Study of Stability in AutoBalancing

-0.05

0

-0.1

-0.15

-0.2

-0.25

1

2

3

0 0.002

0.004

0.006

0.008

0.01

0.012

0.014

0.016

0.018

0.02

m

Figure 16.

Stability when the load is varied. The three di¤erent plots correspond to the parameters found in table 3.1.

exist. The suspension in washing machines is not isotropic since the drum is usually standing on or hanging from springs almost vertically mounted. This will give a much lower natural frequency in the horizontal plane than in the vertical plane. It should be noted that using autobalancing techniques in washing machines requires two balancing rings, since the location along the axis of rotation of the unbalance is not static. Also there might exist dynamic unbalance in a washing machine. Using two balance rings solves both these problems.

Another anisotropic case occurs when a grinding machine is operated. When a grinding machine is operated the suspension parameters will depend on the con…guration and whether the grinder is in contact with the work piece or not.

The equations used in the anisotropic analysis are equations 2, 3 and 4 with the substitution 7. Using substitutions 5 and 6 will result in lengthy equations which are more time consuming to compute numerically than equations 2, 3 and 4 with the substitution 7. Substitution 7 is used so that the state, when the system is balanced, will be at zero speed in all state variables. Using substitution 7 the equations of motion will look like

M

0

Ä

1

+c

1

_x

1

+k

1 x

1

= me!

2 cos(!t)+

X m i l i

(Ä i sin(¯ i

+!t)+( _¯ i

+!)

2 cos(¯ i

+!t)); i=1

(27)

25

J. Adolfsson

Figure 17.

The relative frequency of number of turns before the amplitude is below one …fth of the maximum amplitude due to a simple rotating unbalance.

M

0

Ä

2

+c

2

_x

2

+k

2 x

2

= me!

2 sin(!t)+

X m i l i

(Ä i cos(¯ i

+!t)¡( _¯ i

+!)

2 sin(¯ i

+!t)); i=1

(28)

(m i

+

I i r

2 i

)l i

¯ i

+ l i

(± i

+

° r i

2 i

) _¯ i

= m i

(Ä

1 sin(¯ i

+ !t) ¡ Ä

2 cos(¯ i

+ !t)) i = 1; : : : ; n (29) where M

0 equals (M +m+

P n i=1 m i

), as before, and is introduced since it occurs frequently. We we still use the assumption that the parameters describing the compensating masses are equal and that the balancing device is capable of balancing the unbalance, i.e.

me · 2m

1 l

1

:

The only equilibrium position in this coordinate representation will be

(30) q

1

= 0;

¯

1

¯

2 q

2

= 0;

= ¼ ¡ cos

¡1

( me

2m

1 l

1

) ;

= ¼ + cos

¡1

( me

2m

1 l

1

) :

(31)

(32)

(33)

(34)

26

A Study of Stability in AutoBalancing

6.2

Linear stability analysis

We now have an explicit time dependence in the equations of motion. The way to go for calculating the stability of the equilibrium position is to use Poincaré maps. The equations of motions can be written as

M (x; t) _x = f (x; t) (35) where x = [x

1

; x

2

; ¯

1

; ¯

2

; _x

1

; _x

2

; _¯

1

; _¯

2

]

T

. Both M (t; x) and f (x; t) are

2¼

!

periodic, as can be seen from equations 27 to 29. It therefore seems natural to look at the con…guration at intervals of

Poincaré map will then be when t =

2¼

!

2¼

!

in t. The k’th intersection of the k . The Poincaré map is then de…ned by x k+1

= ©(x k

; 2¼=!) (36) where ©(x; t) is the ‡ow of solutions i.e. ©(x; t) represents all solutions to

35 with initial conditions ©(x; 0) = x. If we have a equilibrium x

0

, clearly x

0

= ©(x

0

; 2¼=!). In the general case x may vary with time between the intersections. However, in our case the equilibrium is given by 31 to 34 and does not vary in time. Wheter this equilibrium is stable or not depends on the derivatives of ©(x

0

; 2¼=!) with respect to x. The criterion for a equilibrium position to be stable is that the eigenvalues of © x

(x

0

; 2¼=!) have a magnitude that is less than one. To calculate © x

(x

0

; 2¼=!) we start with inserting ©(x; t) into 35, this gives

M (©; t)© t

= f (©; t):

We then take the implicit derivative with respect to x, which result in,

(37)

M x

(©; t)© x

© t

+ M (©; t)© t;x

= f x

(©; t)© x

(38)

In our case ©(x

0

; t) = x

0

, thus it does not depend on t and its derivative with respect to t is therefore zero. We are then left with

M (x

0

; t)© t;x

= f x

(x

0

; t)© x

:

Changing the order of di¤erentiation of © t;x and inverting M gives

(39)

© x;t

= M

¡1

(x

0

; t)f x

(x

0

; t)© x

: (40) which is a di¤erential equation for © x

. The initial condition for © x comes from di¤erentiating ©(x; 0) = x with respect to x, i.e. © x

(x; 0) = I where I is the identity matrix. This di¤erential equation is, in our case, numerically integrated to produce © x

(x

0

; 2¼=!).

By looking more carefully at equations 27 to 28 we see that there exists a symmetry under the simple substitution t ! t +

¼

;

!

x

1;2

! ¡x

1;2

;

¯

1;2

! ¯

1;2

(41)

(42)

(43)

27

J. Adolfsson

Par m

Value

M 1.000

k c

1

1 k

2 c

2

1.000

0.700

0.500

0.350

0.010

Par e m

1

I

1

=r i

2 l

1

±

1

° i

Value

1.000

0.010

0.004

1.000

0.005

0.000

Table 3: Parameters used for the anisotropic stability analysis.

which will give equations 27 to 28 again. Therefore, we only have to integrate 40 over the interval t : ² : [0; ¼=!] and using the symmetry to calculate

© x

(x

0

; 2¼=!). The symmetry can be written as

2 2

© x

(x

0

; 2¼=!) =

6

6

6

6

6

6

6

6

6

6

6

6

¡1 0 0 0 0 0 0 0

0 ¡1 0 0 0 0 0 0

0 0 1 0 0 0 0 0

0 0 0 1 0 0 0 0

0 0 0 0 ¡1 0 0 0

0 0 0 0 0 ¡1 0 0

0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 1

3 3

7

7

7

7

7

7

© x

(x

0

; ¼=!)

7

7

7

7

5

7

7

2

: (44)

Since stability is governed by the eigenvalues of © x

(x

0

; 2¼=!) we de…ne

!

¤¤

= max i=1::2n j ¸ i j where ¸ i are the eigenvalues of © x

(x

0

; 2¼=!). The stability !

¤¤ is then plotted as a function of the parameters we are interested in varying and when it is below one the equilibrium point is stable. The di¤erence here compared to to the isotropic case, found in section 5.3, is that !

¤¤ will now show the amplitude decay per turn compared to !

¤

, in the isotropic case, which show the exponential decay in time.

6.3

Parameter study

We start our stability examination by varying ! for a system given by parameters from table 3 below. This particular choice of parameters will give a system will be equal to p

2. In …gure 18 ! is varied from zero to seven. Note the similarities compared to …gure 6. In previuos stability analysis the region between the leftmost cross and middle cross was considered stable and the region between the middle and rightmost cross unstable. To the right of the rightmost cross the region was considered stable. By separating the natural frequencies in the horizontal and vertical direction with a higher ratio than given by the parameters in table 3 we will get a stable middle region. In …gure 19 the ratio

28

A Study of Stability in AutoBalancing

0.9

0.85

0.8

0.75

0.7

1.05

1

ω n,vertical

0.95

ω n,rms

ω n,horizontal

0.65

0 1 2 3

ω

4 5 6

Figure 18.

The stability as a function of the rotational speed. The crosses indicate the natural frequencies in the vertical direction and in the the horizontal direction.

The middle cross indicates the rms of the two frequencies. Parameters from table 4.1.

of natural frequency in the horizontal and vertical direction is 10. This explains why it is possible to mount an autobalancer more stiy in one direction compared to the other and run it at a rotary speed between the natural frequencies in horizontal and vertical direction.In this case the previous stability results predicts the middle region quite accurately but fails to predict the stability in the high ! region. In general we will have a stable middle region when we have large separation of natural frequencies and no stable middle region when we have low separation. We can also infer from …gure 19 that we should run an autobalancer with these parameters at ! ' 3:5 if we want maximum decay in amplitude per turn. If instead we are interested in maximum decay in time we can run the autobalancer somewhere between ! ' 3:5 and ! ' 6:3.

6.3.1 Stability when the imbalance load is varied

The anisotropic case with varying load show the same behaviour as the isotropic case. In …gure 20 the load is varied in the range where the autobalancer is capable of balancing. The …gure shows the same features as the …gure in the isotropic case. The local maxima at m ' 0:014 is still present, corresponding to a equilibrium position of the compensating masses where ¯

1

¼

3¼

4 and ¯

2

¼

5¼

4

It is possible by decreasing the viscous damping acting on the compensating

.

masses to let the local maxima grow and become unstable.It is also useful to

29

J. Adolfsson

1.5

1.4

1.3

1.2

1.1

ω n,vertical

1

0.9

ω n,rms

ω n,horizontal

0.8

0 2 4 6

ω

8 10 12 14

Figure 19.

The stability as a function of ! when the spring constant in the horizontal and the vertical direction di¤ers greatly. Parameter values from table 4.1 except for k

2

= 100 , c

2

= 0:7 and m = 0:014.

examine the case when we are running at a rotational speed between the two natural frequencies. In …gure 21 , ! = 5, which is between the two natural frequencies. The stability plot is similar to the other stability plots when m is varied.

7

## Multiple correction masses

7.1

Introduction

Using only two correction masses is usually not volume e¢cient since there will be a lot of unused space in the balance rings. This, of course, depends on the design of the balancing ring, but since most balance rings use ballbearings with a radius which is less than the radius of the balance rings, more than two balls are more volume e¢cient. Using more than two correction masses results in a system capable of correcting for a higher imbalance load. The maximum number of correction masses to use is the amount which …lls half the ring with correction masses.

30

A Study of Stability in AutoBalancing

1.05

1

0.95

0.9

0.85

0.8

0 0.002

0.004

0.006

0.008

0.01

0.012

0.014

0.016

0.018

m

0.02

Figure 20.

The result of varying the unbalance load by changing m. The angular velocity ! = 5. The rest of the parameters from table 4.1.

7.2

Equilibrium positions

An aspect of using more than two correction masses is that we will get a family of equilibrium positions where the compensating masses correct for the unbalance. For example when we have three correction masses we will have a one parameter family of equilibrium positions. Figure 22 show that there will be a combined centre of mass of the unbalance and the third correction mass.

The position of the combined centre of mass is labeled D in …gure 22. We call this the new unbalance. By varying the angular position, angle ¯

3

, of the third correction mass, the point D will take di¤erent positions. In order to calculate the equilibrium position of the two other correction masses the distance from the geometrical centre to the centre of gravity of the new unbalance is needed.

Labeling this distance, in the …gure from B to D, with e

0 it can be expressed as e

0

= p

(m

1 l

1 sin ¯

3

)

2

+ (me + m m + m

1

Now exchanging e for e

0 and m for m + m

1

1 l

1 cos ¯

3

)

2

: (45) the expressions for the equilibrium positions 11-12 are valid with the exception that an angle ® is added to ¯

1 and

¯

2

. This angle compensates for the new angular position of the unbalance, see

…gure 22. Note that ® is the angle between BC and BD and can be expressed as

® = atan2(m

1 l

1 sin ¯

3

; me + m

1 l

1 cos ¯

3

) (46)

31

J. Adolfsson

0.92

0.9

0.88

0.86

0.84

0.82

0.8

0

1

0.98

0.96

0.94

0.002

0.004

0.006

0.008

0.01

0.012

0.014

0.016

0.018

0.02

m

Figure 21.

The result of varying the unbalance load by changing m when running at a revolutionary speed between the two natural frequencies. The angular velocity

! = 5 . Parameters from table 4.1 except k

2

= 100 and c

2

= 0:7 .

where atan2 is the two argument arctangent function. We can not choose any value for ¯

3 since the last two correction masses must be able to corrrect for the new unbalance. This can be stated as

(m + m

1

)e

0

· 2m

1 l

1

:

Inserting the expression for e

0 and equating this for ¯

3 gives

(47) cos ¯

3

·

3(m

1 l

1

)

2

¡ (me)

2

:

2mem

1 l

1

(48)

This shows, as expected, that if the imbalance is less or equal to m

1 l

1 we can freely vary ¯ to vary ¯

3

3

. For the parameter study it is worth observing that we only need in the region 0 to ¼ since it will be symmetric to the region 0 to ¡¼.

In the anisotropic case this equilibrium position will be the only one in this coordinate representation. However, the isotropic case will have some more equilibrium positions. To derive these equilibrium positions we return to equation 9. Setting all time derivatives to zero we get

¡ q

1 sin ¯ i

+ q

2 cos ¯ i

= 0; i = 1; 2; 3:

The solutions of this, in terms of ¯ i are,

¯

2

= ¯

1

+ n¼; : n = 0; 1;

(49)

(50)

32

A Study of Stability in AutoBalancing

α

D

β

3

C

β

2

A,B

β

1

ωt k

1 c

1

Centre of mass of unbalance and the third compensating mass

Compensating for unbalance and third compensating mass

Figure 22.

Using more than two correction masses will, depending on the unbalance load, result in a family of equilibrium positions. The equilibrium positions will therefore be indi¤erent.

33

J. Adolfsson

¯

3

= ¯

1

+ k¼; : k = 0; 1 (51) which corresponds to two physical solutions since n = 0; k = 1 is physically equal to n = 1; k = 0 and n = 1 and k = 1. The two physical solutions are that the correction masses are at the same angular positon ¯

1

= ¯

2

= ¯

3 and that one of the correction masses is at the opposite side ¯

1

= ¯

2

= ¯

3

¡ ¼. If we would have four correction masses we would also have the case where there are two correction masses together on opposite sides. The solutions for q

1 and q

2 can easily be obtained from the equilibrium equations given in section 5.2.

Obtaining the …rst solution when ¯

1

3m

1 in equations 17,18 and results in

= ¯

2

= ¯

3 is done by replacing 2m

1 with q q

1

2

=

=

(k ¡ !

2

M

0

)(me!

2

+ 3m

1 l

1

!

2 cos ¯

1

) + 3c!m

1 l

1

!

2 sin ¯

1

)

; (52)

3(k ¡ !

2

M

0

)m

1 l

1

((k ¡ !

2

M

0

)

2

+ (c!)

2

!

2 sin ¯

1

¡ c!(me!

2

+ 3m

1 l

1

!

2

(k ¡ !

2

M

0

)

2

+ (c!)

2 cos ¯

1

))

: (53)

This will result in, in terms of ¯

1

(k ¡ !

2

M

0

)me sin ¯

1

+ c!me cos ¯

1

+ 3c!m

1 l

1

= 0 which has a real solution if

(k ¡ !

2

M

0

)

2

+ (c!)

2

¸ (c!)

2

µ

3m

1 l

1

¶

2 me

:

(54)

(55)

This shows that depending on the choice of parameter values there might not exist a real solution. Equation 54 has two roots resulting in two physically di¤erent solutions. The next case, when ¯ above except that 3m

1

1

= ¯ has to replaced by m

1

2

= ¯

3

¡ ¼, is similar to the

. The reason why this can be done is that the opposite side correction mass, labeled 3, will compensate for the correction mass labeled 2 leaving only correction mass number 1. This case will also result in two physically di¤erent solutions. All in all we have …ve physically distinguishable solutions. If we were to extend to use greater number of correction masses we would have for four correction masses, six equilibrium positions and …ve would give seven and so on.

These solutions only exists when both q

1 and q

2 are equal to zero. This is important since one could else believe that there exist solutions when ¯

1 and ¯

2

= ®

= ® + ¼. However this is not possible since compensating mass 3, angle

¯

3

, is not rigidly connected to the unbalance and would in this case start to move. This is the case for the other unbalanced solutions as well.

7.3

Linear stability analysis

The stability analysis is performed by linearization of the equations of motion given by equation 8 and 9. The equations of motion are put in the form

M (x) _x = f (x) (56)

34

A Study of Stability in AutoBalancing

Par

M k

1 c

1 k

2 c

2

Value

1.000

1.000

0.700

0.500

0.350

m 0 - 0.03

Par Value e m

1

I

1

=r i

2 l

1

±

1

° i

1.000

0.010

0.004

1.000

0.005

0.000

Table 4: Parameters used for multiple mass stability analysis.

where x now equals [q

1

; q

2

; ¯

1

; ¯

2 now governed by A, which equals

; ¯

3

; _

1

; _q

2

; _¯

1

; _¯

2

; _¯

3

]

T

. The linear stability is

A(x

0;i

) = M

¡1

(x

0;i

)

@f (x

0;i

)

; : i = 1; ::; 5

@x

(57) where x

0;i are the …ve equilibrium positions given in the previous section. A can be derived analytically but the eigenvalues and eigenvectors are calculated numerically. Since the …rst equilibrium position, where the system is balanced and no vibrations exists, is indi¤erent, we expect that one of the eigenvalues of A(x

0;1

) should be zero. The condition for stability is that the rest of the eigenvalues are less than zero. Therefore we de…ne the stability as

!

¤¤¤ j

= max i=1::2n ¡1

Re ¸ i

(58) where ¸ i are the eigenvalues of A(x

0;j

) and ¸

2n is the zero eigenvalue and is therefore removed. It is important to check stability for all admissible values of ¯

3 since x

0;1 is a function of ¯

3 admissible values of ¯

3

. If the stability condition holds for all the system will certainly selfbalance if you are close to the equilibrium position. It is also important to check the stability of the other equilibrium positions since we don’t want them to be stable in the operating region.

7.4

Parameter study

The parameter study is complicated by the fact that we now have to vary not only the parameter we are interested in but also the equilibrium position.

Starting with the parameters found in table 4 where we vary the load between

0 and 0.3 which is the maximum load the system is capable of balancing. The stability !

¤¤¤ j is plotted as a contour plot since this controls the asymptotic behaviour of small disturbances. In …gure 23 the greyed area in the upper left corner corresponds to the condition found in 48 for ¯

3 and ¯

3

. The zero at m = 0:1

= ¼ is the result of another indi¤erent equilibrium position, namely that the balancing mass and correction mass are of equal mass. Since they are on opposite side the two other correction masses they may assume any position where they are on opposite side. From …gure 24, where the stability for the …ve other equilibrium positions are plotted, we see that they are all unstable in the

35

J. Adolfsson regime where the autobalancer is capable of balancing the imbalance. When overloaded the balanced equilibrium cease to exist. Equilibrium type 5 then becomes the only stable one. This equlibrium position physically corresponds to the three compensating masses being at the opposite side of the unbalanced component. This means that the system is working as well as possible when overloaded.

ω β

3

0.025

Unattainable region

-0.15

-0.15

-0.15

0.02

0

-0.12

0.015

0.01

-0.03

-0.09

-0.15

-0.03

-0.09

-0.12

-0.06

-0.15

0.005

0

-0.06

0.5

1 1.5

β

3

2 2.5

3

Figure 23.

Contour plot of stability !

¤¤¤

1 when m is varied from 0 to 0.3 and ¯

3 the range 0 to the value given by equality in 5.4. Parameters from table 5.1.

in

It is also possible to get a system where stability depends on the amount of imbalance. This can be accomplished by lowering the damping acting on the correction masses. In …gure 25 three regions are unstable when we lower

±

1 to 0:0007. For low amount of imbalance, m about 0.002, it does not exist any stable equilibrium. The case for m about 0.02 is somewhat better since there exist stable equilibrium for ¯

3 is some intervals. What might happen in a real system when starting in region 2 and 3 is that the correction masses might move outside the unstable region and stabilize in a stable region. This is somewhat supported by numerical simulations. However, this behaviour is not guaranteed.

8

## Conclusions

This analysis has mainly been concerned with local stability analysis. One of the most important conclusions that one can draw from local analysis is that

36

A Study of Stability in AutoBalancing

0.6

0.4

0.2

0

1

0.8

2

5

4

3

-0.2

0 0.005

0.01

0.015

0.02

m

0.025

0.03

0.035

0.04

Figure 24.

Plot of !

¤¤¤

2::5 when m is varied from 0 to 0.4. Equilibrium position …ve become stable when m is above 0.3, which is the maximum amount of unbalance the system can correct for. This means that the system work as well as possible when overloaded. Parameters from tabel 5.1.

the natural frequency is not the border between stable and unstable balancing operations. However, it seems like running the autobalancer above the natural frequency is a necessary condition for stability.

The local analysis also tells us that the unbalanced equilibrium positions found in the isotropic case are not in general stable in regimes where the balanced equilibrium is stable. This would assure, for example in a system where the unbalance suddenly changes, that the correction masses would not move to an unbalanced equilibrium. The anisotropic case do not show these unbalanced equilibriums.

Another important conclusion is that the autobalancer work as well as possible when overloaded, i.e. all correction masses end up in a stable con…guration at the opposite side of the unbalanced component.

This analysis also tells us something about the e¤ects of internal damping compared to external damping. If we have high external

1 damping and low internal damping the autobalancer might be unstable. This e¤ect is particularly noticeable when using two correction masses situated at an angle §

3¼

4 radians

1

The damping from dampers are referred to as external damping and internal damping is the damping acting on the correction masses.

37

J. Adolfsson

ω β

3

0.025

## Unattainable region

0.02

0

0.015

0

0.01

0

0.005

0

0 0.5

1 1.5

β

3

2 2.5

3

Figure 25.

Contour plot of the stability when m is varied from 0 to 0.3 and ¯

3 in the range 0 to the value given by equality in 5.4. Parameters from table 5.1 except for the damping acting on the correction masses, ±

1

=0.0007. The dashed area are unattainable, see inequality 5.4. The dark grey area is unstable.

from the line connecting the geometrical centre and the centre of mass of the unbalanced component. This unstability results in a periodic motion of the compensating masses about the balanced equilibrium position.

The anisotropic case, where we have a di¤erent spring constant and damping constant in the horizontal and vertical direction, shows a somewhat more complicated stability when the rotational speed is varied. We might then have, depending on the magnitude of separation in horizontal and vertical direction, alternating unstable and stable regions when the rotational speed is varied.

It is also shown that it is possible to extend this local stability analysis when more than two correction masses are used. However, we will then have indi¤erent equilibrium positions. The same instabilities show up in the multiple correction mass case, such as unstabillity due to low internal/high external damping and stability depending on the amount of unbalance.

Although local analysis does not tell what happens when the dynamics are far from the equilibrium position there seems to be a correspondence between the complete dynamics and the local dynamics. This is supported by

38

A Study of Stability in AutoBalancing the numerical simulations. It therefore seems possible to use local analysis for guidance when designing an autobalancing system.

9

## Acknowledgments

I would like to thank professor Martin Lesser for his support and guidance of this work. Without the Sophia code this work had been almost impossible.

I would also like to thank PhD Arne Nordmark for the time he has spent answering questions and explaining things to me about nonlinear dynamics.

I would also like to thank is Anders Lennartsson for using his routines that export Maple code to optimized Matlab code and all the rest of the people at the Department of Mechanics for their interest and suggestions.

Electrolux Research and Innovation let me use my research results obtained while working there and lent us the experimental auto balancer that I built as a part of this work.

Finally I would like to thank the Volvo Research Foundation’s mechatronics grant that helped support this research.

## Appendix A.

9.1

Solution of equation 3.15

Equation 19 can be written as two equations,

(k ¡ !

2

M

0

)me sin(¯

1

) + c!me cos(¯

1

) + 2c!m

1 l

1

= 0 and, sin(¯

1

)

2

+ cos(¯

1

)

2

= 1 to get two well de…ned solutions. The solution can be written as, cos(¯

1

) =

¡bc § p a

4

¡ a

2

(b

2

¡ c

2

)) a

2

+ b

2 and, sin(¯

1

) =

¡b cos(¯

1

) ¡ c a where, a = me(k ¡ !M

0 b = mec!

)

2 c = 2c!m

1 l

1

## Bibliography

(A-1)

(A-2)

(A-3)

(A-4)

(A-5)

[1] Adolfsson, J.: 1995, ‘Self Balancing of Rotating Machines: An Experimental and Theoretical Study’. Master’s thesis, KTH, Department of

Mechanics.

39

J. Adolfsson

[2] Kravchenko, V. I.: 1983, ‘Stability analysis of a row-type counterbalance’.

Mashinovedenie (1), 25–27.

[3] Kravchenko, V. I.: 1986a, ‘Automatic balancing of rotor of multi-mass system with row-type automatic ball balancer’. Mashinovedenie (2), 95–

99.

[4] Kravchenko, V. I.: 1986b, ‘Improving the dynamic reliability of loaded machinery elements by self balancing’. Tyazheloe Mashinostoenie (5), 19–

21.

[5] Thomson, W. T.: 1981, Theory of Vibration with Applications, 2nd edition.

Prentice Hall.

40

# Paper 2

P2

# A short background to arti…cial walking

Jesper Adolfsson

Royal Institute of Technology

Department of Mechanics

S-100 44 STOCKHOLM

SWEDEN

November 20, 2000

Abstract. This short background on arti…cial walking is meant to present some of the ideas that have in‡uenced the author and others regarding arti…cial walking and in particular passive walking. Results from di¤erent …elds of research are given below, which in some cases directly support the idea that human walking is largely a consequence of the geometry and the mass distribution. Some results are just presented because they are interesting in themselves.

These research …elds include medicine, biomechanics, toydesign, and robotics.

1

## Introduction

Upright walking is the natural way of locomotion given to us by nature. The evolution from walking/climbing on all four extremities to walking on our legs freed the upper extremities to deal with other important tasks. Certainly, this gave us advantages compared to species still forced to walk on all four extremities. For example, we could now use our hands while we where moving around, such as hunting with tools in our hands. It was now also possible to cover relatively large distances on land, thus being able to move to new habitats as needed. Footprints and found limbs indicate that the upright posture was quite well established between 3,000,000 to 3,500,000 years ago (encycl.brittan).

The earliest known evidence of bipedal gait are footprints in volcanic ash found in northern Tanzania and is dated 3.6 million years ago. These advantages certainly put an evolutionary pressure on further developing and re…ning our walking system. At …rst sight, it would seem that this change increased the complexity of our locomotion system, such as keeping the upright posture.

J. Adolfsson

However, in some sense the complexity was lowered, such as only having to control two legs instead of four. In addition, as this thesis and other research in the …eld of passive walking all indicate, the complexity of bipedal walking can, to a large extent, be explained by the geometrical makeup of the walking mechanism. Thus, complex control strategies are not needed.

2

## Biology

An indication that human gait is di¤erent from quadruped gait is evident from research in biology. For example, the role of the central pattern generator

(CPG) has been studied extensively by biologists and has been used, for example, as a model for generating gait sequences in quadruped robots. The role of the CPG is to generate the locomotor stepping pattern autonomously. The

CPG can change behaviour depending on speed requirements. In humans, it seems like the role of the CPG has been reduced to generate the …rst stumbling steps of infants, see Gait Analysis [5]. Experiments with cats have shown that it is still possible to generate walking patterns and simple obstacle avoidance after the spinal cord has been transected. However, in paraplegic humans it has not been possible to get the same walking patterns. Thus, it is believed that higher brain centers are responsible for the control of the locomotion in humans.

Thus, it can be speculated that the reduced role of the CPG in humans is a consequence of the human capability of largely generating the walking motion passively. This also indicates that the human capability of bipedal walking is not innate but learned.

The activity of normal walking is something we perceive as requiring very little conscious e¤ort. How is it then that something so deceptively simple as walking still poses such engineering di¢culties? One of the problems is that we don’t really know where to start searching for the answers. Before it was possible to record gait motion researchers where mainly forced to study humans in action. In 1836, the Weber brothers proposed the idea that the motion of the leg, during swing phase, could be explained by the motion of a double pendulum in a gravity …eld, see Human Walking [25]. This was observed by letting a human leg hang freely and releasing it from a pre-swing position and noting the similarities to a leg during normal walking, such as swing time and motion. Since this was before photography was available, the measurements had to be accomplished by using a hand-operated clock.

Some years later this idea was challenged by results from arti…cial stimulation of muscles and the fact that patients with paralysis of the muscles in the leg had to compensate during the swing phase or the foot would hit the ground.

Thus, if the swing phase was purely passive the compensating movement of the hip shouldn’t be necessary. However, it is possible that the relaxed position of the ankle made such a compensating movement necessary.

2

A short background to arti…cial walking

Later in the 19’th century, still photography was used to record the motion of di¤erent subjects, such as animals and humans in action. However, these images were just motion frozen and it was not until Muybridge in 1873 developed his technique of taking pictures in a sequence, that the whole motion could be captured. The original use of the Muybridge technique was to settle a bet whether a horse was completely in the air during gallop or not. By using electrical switches sequentially arranged and connected to a battery of cameras, it was shown that the horse indeed had all its feet in the air. This technique was later used by Marey to record the walking motion of humans. He used his results to calculate the mechanical energy needed for sustained walk for di¤erent walking speeds. The photographic technique was further developed and using stereometry photography, it was possible to study the motion in three dimensions. This technique combined with mass properties measurements of cadavers made it possible to estimate the forces that were needed for propulsion, see Human Walking [25].

One of the reasons for studying walking from a medical point of view comes from the need of di¤erentiating pathological walk from ordinary walk. Thus, large quantities of data have been collected. These data range from foot pressure during the stance phase to the motion of various parts of the human body. This data is then compared with data obtained from patients and gait pathologies can be discovered, see Human Walking [25] and Gait Analysis [5].

Another common use of this data is to estimate the internal forces in humans, such as the forces in the skeleton, tendons, and muscles. This is accomplished by making a mathematical model having the right mass properties and then using the data as input for the motion of the model. From an engineering point of view, this data can be used to compare arti…cial walkers and their movement with real data.

3

## Walking aids

Another driving force in walking research is the construction and development of walking aids. Many di¤erent designs have been implemented as to account for di¤erent kinds of disabilities, such as above- and below-knee amputees, see

Human Walking [25]. Various mechanical designs have been developed, some of them with the intention of functionally duplicating the original limb as close as possible and in some cases as substitutes. From a mechanical engineering point of view some interesting designs are;

² Using four-bar-linkage knee mechanisms give a wide range of stability choices. Thus, the amputee can control the knee collapse.

² Flexible foot to make smoother impacts with the ground.

² Spring mechanisms for running.

It has been common to construct lightweight prosthesis, believing that it would be simpler to handle for the amputee. However, the e¤ect of di¤erent mass properties has been studied by letting subjects walk with their own

3

J. Adolfsson lightweight prosthesis as well as ones with added mass. The result was that the subjects feeling increased when the mass properties were chosen as to resemble those of the original limbs, see Human Walking [25]. This indicates the importance of having the appropriate mass distribution of the walking mechanism.

It is also interesting to mention the device constructed by Nichols and Witt

[20] to help children that had no legs. These children had usually been …tted with swivel-walkers or rockers. This aid consisted of a seat with a pair of pylons attached to it. These pylons had feet that were large enough as to allow the child to stand. The feet attached to these pylons could rotate about a vertical axis. Thus, the children could move forward by rocking the device so that they were standing on one foot and at the same time twist with their upper body as to move the other foot forward. However, the forward motion was slow and Nichols and Witt came up with a device having swinging legs that could increase the forward speed. The new device had legs that used a parallelogram linkage designed as to obtain a heel impact at the end of the swing phase. A crossbar was mounted between the legs so that when one leg swung forward the other one had to swing backwards. This provided the stability needed to stand still. To prevent collapse at the swing phase, a torsion spring was mounted between the crossbar and the seating. This prevented a too large opening angle between the legs. By tuning this spring in relation to the mass of the carrier, di¤erent walking frequencies could be obtained. What is interesting with this device, in relation to walking machines, is that a mechanical torso was built so as to provide the rocking motion. This actually turned the device into a bipedal walker. The walker, with the arti…cial torso, obtained a speed of 0.23m/s compared to 0.33m/s for a human rider. This can be compared to the previous swivel walkers, where speeds of 0.05m/s up to 0.18m/s had been obtained. The power consumption was as low as 4W, disregarding electrical and hydraulic losses.

4

## Merits of walking

There are several merits of walking machines compared to their wheeled counterpart. The most obvious ones relate to the legs capability to avoid obstacles.

The ‡exibility of movement in legs also gives the possibility of putting down the foot at a speci…ed location. This can be favorable in poor ground conditions, such as avoiding soft ground in favor of more solid ground. During slippery conditions, legged vehicles can excel over wheeled ones by taking smaller steps, as to minimize horizontal forces. Depending on the design of the legs, such as the number of degrees of freedom at each joint, gives a great ‡exibility of positioning the body. This can be important in complex environments where di¢cult manipulation tasks have to be accomplished. In addition, using legs can reduce the impact on the surroundings. For example, the forest robot by

Plustech Oy [21] is much gentler on its surroundings than a traditional forest machine using wheels. Thus, there are a several aspects of legged walking that makes it both interesting and preferable over its wheeled counterparts. How-

4

A short background to arti…cial walking

Figure 1.

A picture of a statically stable lego walker. The current support pattern is shown by the brighter triangle. The lighter triangle is the other support pattern.

These two support patterns will suceed each other, hence moving the walker forwards or backwards.

ever, one should not forget that wheels excel when it comes to speed, economy and a much lower complexity in terms of understanding and construction.

5

## Walking machines

Walking machines can roughly be divided into statically stable walkers and dynamically stable walkers. Loosely speaking, statically stable walkers try to keep their projection of the center of gravity within the support pattern, see

Figure 1. As long as they can maintain this condition and have enough traction at each foot, they will function. Their movement is accomplished by going from one stable state to a new stable state. Usually they move at low speeds and can therefore neglect inertial forces that could potentially destabilize the motion.

These walkers come in many di¤erent shapes, everything from quadrupeds to insect like versions with many legs. For a nice introduction to walking machines see for example Todd [26]. For a good overview of recent walking machines, see for example Hardarson [10].

Dynamically stable walkers have the capability of letting the center of gravity move outside its support pattern without loosing stability. Stability is in some cases obtained by using control laws and actuators and in other cases by designing the walker to have inherent stability. The latter are usually referred to as passive walkers. Controlled walkers in this category usually take into account inertial forces occurring as they move. Both dynamically stable bipeds and quadrupeds exist.

5

a

J. Adolfsson b

Figure 2.

Pane (a) shows the design of a toy walker by Fallis. Pane (b) shows the construction of Bechstein and Uhlig that supposedly generated the rocking motion of the toy walker.

6

## Historic and contemporary walking machines

The history of walking machines starts with di¤erent kinds of toy walkers. The toys were usually driven by clockworks that made the toy perform a repetitive motion as to propel it forward. Other toys used weights that were attached to the walker via a string. For example, by hanging the weight over the edge of a table, the force needed to move it forward was obtained. These toys included bipedal as well as quadrupeds and similar toys are still manufactured.

At the end of the 19’th century, toys capable of motion resembling human gait started to appear. One of these toys is described in the patent of Fallis, dated 1888, see reference [6]. This patent describes a toy that uses straight knee-less legs hinged at the shoulders. The feet had gently curved surfaces as to prevent the foot to hit the ‡oor during the other legs swing phase, see Figure

2. The propulsion of this walker came from letting it walk down an inclined plane. In 1912, Bechstein and Uhlig …led a patent, see [2], describing a similar bipedal toy walker. Instead of using gently curved feet, they used a sole, which had di¤erently inclined planes as to generate the side-to-side rocking motion.

This patent later inspired Wisse in 1998 to build a kneed walker that could walk down an incline, see reference [29].

A driving force, partly associated with robotic walking, has been to overcome di¤erent limitations in humans. Such as increasing the strength and endurance of humans and helping people with disabilities. In the early sixties,

General Electric undertook an investigation on how to build a bipedal walking machine capable of carrying a human operator. The idea was to let the operator have full control of the motion of di¤erent parts, such as legs and body. Since the intended size was much larger than a typical human, it was decided that it should be actuated by hydraulics. The operator controlled the hydraulics via force feedback devices. This project was considered possible (at least in the mechanical engineering sense) but it was never implemented due to other designs being more appealing, such as the four legged General Electric

6

A short background to arti…cial walking walking truck. It is unfortunate that this walker never was built since if the operator would have been able to control the biped some interesting data could have been obtained. Such data could have given us the control laws used for keeping the balance, control laws regarding start and stop and so forth. This data seems to be very complicated to obtain from humans. As mentioned before, what was actually implemented by General Electric was the four-legged walking truck. This was controlled in a similar way to the proposed bipedal robot. The hind legs were controlled by the operators legs and the fore legs by the arms of the operator. However, this device put such a control load on the operator, thus, making it possible to operate for only a few minutes.

Another interesting device that was built by General Electric was the Hardy-

Man. It was an exoskeleton capable of amplifying the force generated by the operator. This made it possible to lift heavy things. These three devices had in common that they were completely operator controlled, thus lacking any kind of higher control system to ooad the operator.

Partly building on the experience from the walking truck, the adaptive suspension vehicle was constructed by the Ohio State University in collaboration with Adaptive Machine Technologies and the Stanford University, see reference

[23]. This walker had six legs and walked in a statically stable manor. It had a number of operating modes specialized for di¤erent tasks. In normal operation over smooth terrain, it was possible to control elevation, heading and position in the plane, thus ooading the operator from the complex task of moving each leg to obtain a gait.

In the light of the successful implementation of statically stable walkers using control laws and actuation it is not too far fetched to believe that this would also work for designing dynamically stable walkers. One of the earliest bipedal robots is the Wabot by the Useda University [27] that was constructed in the early seventies. It was capable of walking, although always keeping its center of mass within the support pattern of the foot currently standing on the ground. Its size was comparable to a human and it used hydraulics to move its limbs. The most successful, up to date, is the famous Honda bipedal walking robot [11]. Little is known about this robot since it was developed internally at Honda. It is also believed that it took more than a decade to develop. Nevertheless, watching movies where it performs di¤erent tasks such as walking and climbing stairs is certainly impressive. Both these robots have in common that the limbs are directly controlled by servos, the Honda robot being controlled by direct drive servos. Since electrical motors usually have low torque and high speed, some sort of gearing is necessary. This gearing both ampli…es inertia and friction, thus making it hard to control the actual force output. Instead, it is most common to control position/angles of di¤erent joints.

The drawback of this is that it makes it hard to use the natural dynamics, such as the motion of a swinging leg, available to the mechanism. To address the problem of getting force control, the series elastic actuator was developed, see Williamson et al. [28]. The idea is to connect a servo in series with an elastic element, such as a spring. By controlling the elongation of the spring

7

J. Adolfsson

**g**

a a b a

Figure 3.

The springs represent the virtual force, which is generated at the joints labeled a. The attachment point of the virtual springs is labeled b.

it is possible to generate forces. Thus, turning the force control problem into a position control problem. This gives excellent control over the force but lowers the bandwidth of the controller. At least two planar walkers have been implemented using these actuators, the spring turkey and spring ‡amingo, see

Pratt [22]. The walking motion was generated using something called virtual model control. The idea is to attach virtual springs or force elements between di¤erent parts of the robot and then calculate the corresponding forces/torques that realizes these virtual forces.

7

## Hopping robots

Humans as well as animals usually have di¤erent walking patterns depending on the velocity. At low speeds, the walking gait is usually preferred and can be categorized by having a double support phase. As speed is increased, humans change from walking to running. Running can be described as having no double support phase and periods of no contact with the ground. The velocity at which the transition from walking to running occur can be obtained by theoretical reasoning, see Alexander [1], v transition

< p gl; (1) where l is the length of the extended leg. For an adult human this corresponds to about 3 m/s. However, by moving the hip in an appropriate way, higher walking speeds can be obtained.

Running or hopping robots have been implemented with great success.

These robots were pioneered by Raibert [24]. Starting with the one legged

8

A short background to arti…cial walking

**g**

Figure 4.

Raiberts hopping robot. The arrows show the movement that is controlled.

hopper which was attached to a tether boom so as to prevent lateral dynamics.

Later versions had both two and four legs and were capable of moving in all three dimensions. One interesting aspect of these robots is that the number of controlled degrees of freedom is less than the mechanisms degrees of freedom and that the control does not depend on a reference trajectory.

8

## Passive walkers

At the extreme of little or no control are the mechanisms that are referred to as passive walkers, originally pioneered by McGeer [14],[15],[16], and [17].

Passive walkers completely lack any kind of control and rely completely on the geometry and appropriate mass distribution. By letting the passive walker walk down an inclined plane gravity re-injects the energy lost at various stages of the walking cycle. A typical source of dissipation is the plastic impacts at knee lock and foot impact. A precursor to passive walking is ballistic walking, studied by Mochon et al. [18] and Formal’sky [7] for example. These walkers were usually studied on level ground. The term ballistic is used to describe that no actuation is used during the swing phase of the leg: thus the leg swings freely. One of the motivations for this comes from biological studies showing that muscle activity is very low during swing phase and is concentrated to the double support phase, see Human Walking [25] or Gait Analysis [5]. The task in ballistic walking is to …nd a set of initial velocities that return the walker into the same con…guration after one step (with a switch of stance and swing leg). Since the …nal velocities will not match the initial velocities and impulse is introduced at the double support phase to make up for this. Animations of ballistic walkers produce a very human like walking pattern.

McGeer later showed that the impulse could come from the impact of the swing leg with the ground. This was accomplished by …nding the appropriate mass distribution and geometry, as well as …nding the right inclination of the plane. The …rst passive walker by McGeer was kneeless and constrained to move in a plane so as to prevent lateral dynamics. Since both legs had the

9

J. Adolfsson

**g**

Figure 5.

Some of the studied simple planar passive walkers; McGeers spooked wheel, Ruinas simplest passive walker, McGeers two legged walker having a foot radius equal to the leg length, and a similar walker but the radius is shrunken.

same length, foot scu¢ng at mid swing was neglected. Implemented walkers had devices that could contract the leg slightly so as to prevent the foot scu¢ng.

McGeer later showed that it was possible to add a knee. This gave the walker a more human look and, as it turned out, avoided the foot-scu¢ng problem.

Since simplifying can be a key to understanding, many simple models have been proposed as means to understand walking. Some examples of these are;

² Rimless wheels (McGeer) which models impacts and the up and down motion of the hip.

² The three point mass walker (Garcia [8]). Consisting of one hip mass and two masses situated at the foot. Shows chaotic walking patterns.

² The walking wheel (McGeer), which models the un-actuated swing of the legs.

² Straight legged bipedal walker (McGeer). Similar to the walking wheel but had a shorter foot radius.

Planar passive walkers have been implemented with great success by for example McGeer and Ruina and his group. Usually, lateral dynamics have been suppressed by building legs in pairs. The walker is started in a con…guration where the outer legs move together and the inner legs are mechanically joined.

Sustained passive walking on level ground is not possible unless energy is constantly injected into the system as to counter the energy lost at impacts.

However, one could of course imagine a walker capable of putting down its feet on the ground with zero velocity and having knee lock at zero angular velocity. Blajer and Schiehlen [3] have developed control strategies as to prevent relative velocities at foot impacts. However, the goal was not to minimize energy costs but to stabilize and …nd gentle motion of the walker. It is not at all clear how to mechanically build such a device since it will certainly involve some clever mechanism needed to obtain zero velocity impacts. However, there exists at least one mechanism, albeit not being a walking machine, which have these properties and that is the rolling wheel. In order to obtain walking on level ground some schemes have been proposed which are based on the passive walkers. For example, McGeer used impulsive pushing to model the push of

10

A short background to arti…cial walking the trailing foot. He also suggested length cycling of the leg, as to mimic the push generated by knee ‡exure.

Adding a torso has also been used as a mean of propulsion. McGeer used and upright torso, which kept its position by using a rotational-spring/damper attached to the stance leg. Leaning the torso forward provided the additional torque needed to propel the walker. Where McGeer had studied the e¤ect of di¤erent torso-inclinations, Howell and Baillieul [12] …xed the position of the torso in a bowed position and studied the e¤ects of changing the center of mass position.

A natural next step was to …nd three-dimensional walkers capable of sustained stable gait down an incline. McGeer devised a walker capable of lateral motion but only found unstable periodic gaits. Kuo [13] used one of McGeer’s kneeless designs and extended it laterally by including a hip. However, Kuo only found unstable walkers and proposed several control laws for stabilizing the motion. These control laws have been shown to work in simulations. In

1997, Coleman and Ruina [4] built an unpowered three-dimensional kneeless two-legged walker out of Tinkertoy parts. This walker is apparently stable (as seen in video clips) and has recently been shown to be stable, see [19]. The mass properties of the walker are not very human like, but clearly shows the possibility of passive walking in three dimensions. It is worth mentioning that some researchers in this …eld divide passive walkers into two categories depending on their stability properties. The …rst category includes walkers capable of standing upright when standing still, thus having at least one statically stable con…guration. The second category are the ones that have to constantly move as to obtain stable behavior, such as the Tinkertoy Walker, which only has one contact point per foot. Whether the di¤erence is fundamental or merely esthetical can be debated. One could argue in favor of passive walkers having statically stable equilibrium positions so that a passive walker would be able to stand passively and not have to rely on control and actuation for static equilibrium.

9

## Animation

In most cases the simulation is used as a tool to understand or develop walking machines. However, in some cases a believable simulation is the goal in itself. Today most computer animations of walking are generated by using motion capture devices or keyframing. Motion capture is usually accomplished by putting markers on a person, who then performs the motion that should be recorded. However, this is both time-consuming and sometimes hard to get accuracy in readings, due to markers put on the skin and not on the joints

[9]. Keyframing is accomplished by the animator specifying the geometric con-

…guration at speci…c times and letting the software interpolate the in-between sequence. In addition, it is not possible to just increase the walking speed of a previously captured motion, since the resulting animation will not be believ-

11

J. Adolfsson able. However, simulations of walking and running o¤er a new way of obtaining realistic and believable animations.

## Bibliography

[1] Alexander, R. M.: 1995, ‘Simple models of human movement’. Applied

Mechanical Review 48, no8 .

[2] Bechstein and Uhlig: 1912, ‘Patent: Improvments in and relating to Toys’.

[3] Blajer and Schiehlen: 1992, ‘Walking without impacts as a motion/force control problem’. Journal of Dynamic Systems, Measurement, and Control

114 , 660–665.

[4] Coleman, M. and A. Ruina: 1998, ‘An Uncontrolled Toy That Can Walk

But Cannot Stand Still’. Physical Review Letters 80(16), 3658–3661.

[5] Craik, R. L. and C. A. Oatis (eds.): 1995, Gait Analysis: theory and application. Mosby-Year Book, Inc.

[6] Fallis: 1888, ‘US Patent No. 376,588: Walking Toy’.

[7] Formal’sky, A. M.: 1996, Ballistic Locomotion of a Biped. Design and Control of Two Biped Machines . Udine: CISM Advanced School on Modelling and Simulation of Human and Walking Robots Locomotion.

[8] Garcia, M., A. Chatterjee, A. Ruina, and M. Coleman: 1998, ‘The Simplest

Walking Model: Stability, Complexity, and Scaling’. ASME Journal of

Biomechanical Engineering 120 , 281–288.

[9] H., H. J.: 1998, ‘Animating Human Motion’. Scienti…c American.

[10] Hardarson, F.: 1999, ‘Principles of Legged Robots’. Technical report,

KTH, Mechatronics Lab.

[11] Honda, ‘Honda Bipedal Robot’. http://world.honda.com/robot/.

[12] Howell, G. W. and J. Baillieul: 1998, ‘Simple Controllable Walking Mechanism which Exhibit Bifurcations’. In: IEEE Conf. on Decision and Control, December 16-18, Tampa, FL . pp. 3027–3032.

[13] Kuo, A. D.: 1999, ‘Stabilization of Lateral Motion in Passive Dynamic

Walking’. The International Journal of Robotics Research 18(9), 917–930.

12

A short background to arti…cial walking

[14] McGeer, T.: 1990a, ‘Passive Bipedal Running’. In: Proceedings of the

Royal Society of London: Biological Sciences , Vol. 240. pp. 107–134.

[15] McGeer, T.: 1990b, ‘Passive Dynamic Walking’. International Journal of

Robotics Research 9 , 62–82.

[16] McGeer, T.: 1990c, ‘Passive Walking with Knees’. In: Proceedings of the

IEEE Conference on Robotics and Automation, Vol. 2. pp. 1640–1645.

[17] McGeer, T.: 1993, ‘Dynamics and Control of Bipedal Locomotion’. Journal of Theoretical Biology 163 , 277–314.

[18] Mochon, S. and T. McMahon: 1980, ‘Ballistic Walking: An Improved

Model’. Mathematical Biosciences 52, 241–260.

[19] Mombaur, K., M. J. Coleman, M. Garcia, and A. Ruina: 2000, ‘Prediction of Stable Walking for a Toy That Cannot Stand’. submitted for publication in PRL.

[20] Nichols, G. K. and D. C. Witt, ‘An Experimental Unpowered Walking

Aid’. Engineering in Medicine 1(1).

[21] OY, P., ‘Forrest machine’. http://www.plustech.….

[22] Pratt, J. E.: 1995, ‘Virtual Model Control of a Biped Walking Robot’.

Master’s thesis, MIT, Department of Electrical Engineering and Computer

Science.

[23] Pugh, R., E. Ribble, V. Vohnout, T. Bihari, T. Walliser, M. Patterson, and K. Waldron: 1990, ‘Technical Description of teh Adaptive Suspension

Vehicle’. The International Journal of Robotics Research 9(1).

[24] Raibert, M. H.: 1986, ‘Legged Robots that Balance’. MIT Press, Cambridge, Mass.

[25] Rose, J. and J. G. Gamble (eds.): 1994, Human Walking. Williams &

Wilkins.

[26] Todd, D. J.: 1985, Walking Machines: An Introduction to Legged Robots.

Kogan Page Ltd.

[27] University, W., ‘Wabot’. http://www.humanoid.waseda.ac.jp/index.html.

[28] Williamson, M.: 1995, ‘Series Elastic Actuators’. Technical report, M.I.T.

Department of Electrical Engineering and Computer Science.

13

J. Adolfsson

[29] Wisse, ‘Video of bipedal walker having knees’. http://www.ccmr.cornell.edu/ ruinalab/pdw.html

.

14

# Paper 3

P3

# Planar Passive Walking

Jesper Adolfsson Arne Nordmark

Royal Institute of Technology Royal Institute of Technology

Department of Mechanics

S-100 44 STOCKHOLM

SWEDEN

Department of Mechanics

S-100 44 STOCKHOLM

SWEDEN

July, 2000

Abstract.

The planar passive walker was used as a starting point for the 3D passive walker. This system is modeled as a continuous system, which is regularly interrupted by collisional events such as knee collision and foot impact. Besides the collisional events, events which will terminate the gait sequence are also monitored. Hence, this report contains modelling assumptions for our planar passive walker, which includes geometry, forces and impact models.

Previously presented planar passive walkers had large radius feet, which was not suitable for extension into 3D. This report therefore presents the parameter variations resulting in a planar passive walker suitable for extension into a 3D passive walker.

The linear stability of the system is shown for all parameter variations. The equations of motion have been derived using Sophia and Maple and this code is included.

1

## Introduction

In this text, we show how passive walking of planar mechanisms studied by, for example, McGeer [11],[12],[13], and Ruina and collaborators, see Garcia [6], can be utilized as a starting point for 3D passive walkers, see also Dankowicz et al.[4]. However, it was felt that a thorough understanding of planar passive walking was necessary before modelling and simulating a 3D passive walker.

Therefore, previous work by McGeer and Ruina was recreated using the tools developed at the Department of Mechanics, KTH. These tools include Sophia, which is a set of routines for deriving equations of motion in symbolical algebra programs, see Lesser [9], and the exmex routines used to export the equations of motion to Matlab, see Lennartsson [8].

Since the walker makes regular contact with the ground, impact dynamics is introduced. All impacts are treated as perfectly inelastic collisions, thus the velocities of the impact points are assumed to have zero relative velocity after the impact has occurred. Simulation of the resulting dynamical system

J. Adolfsson was performed in Matlab using it sets of ordinary di¤erential equations (ODE) solvers. The dynamical system is assumed to be continuous between impacts, thus event handling is used to end the simulation as impacts occur. In addition, events that terminate the gait sequence are also monitored, for example such as the hip point hitting the ground. It should be noted that some di¤erences exist between the present model and those studied in the above mentioned references, such as more restrictive criteria for successful gaits. In addition, the release of the hind leg knee occurs after the swing-leg foot has impacted with the ground.

The next section contains a brief overview of our modeling assumptions, impact conditions, impact modelling, and numerical results. In the third section it is shown how linear stability calculations were implemented. In the last section, a parameter variation is shown that ends in a design which is believed to be implementable in a 3D passive walker. The appendix contains the Sophia/Maple code used to derive the equations of motion and impact dynamics.

2

## Modelling

2.1

Geometry

The planar walker, see Figure 1, consists of four bodies constrained to move in a plane. The four bodies are the two identical upper legs and the two identical lower legs. The unconstrained mechanism has 6 degrees of freedom (DOF), labeled q i

, namely, the position of the hip, the two thigh angles and the two knee angles. Associated with each degree of freedom are the generalized velocities u i

.

The generalized coordinates are related to the generalized velocities through q i

= u i

. All bodies are connected via frictionless hinge joints. The knee joints are at point P

3 and P

4 and the hip joint is at P angles are constrained to positive values.

5

. The knee joint

The centers of mass are speci…ed with coordinates along and perpendicular to the lines P

5

P

4

; P

5

P

3 for the thighs and P

4

P

1

; P

3

P

2 for the lower legs. The moments of inertia I i are given relative to the respective bodies centers of mass. The gravity vector is inclined an angle ® as shown in the …gure. Thus, the gravity vector has a positive component in the forward direction n

1

, which will propel the walker forward.

The walker makes regular contact with the ground plane at point C

1 and

C

2 via its circular feet. The circular feet have a radius r f and a center with an o¤set l f from the points P

1 and P

2

. The contact points C

1 and C

2 are situated

-r f n

2 from the foot center positions.

2.2

Impact modelling and Integration

Impacts occurring in the system are treated as perfectly inelastic collisions.

Thus, the relative velocity between the impacting bodies, at the impact point, is zero after the impact has occurred. Generalized impulses are introduced at

2

n

2

Planar Passive Walking

P

5 n

2 l

1

P

2 r f l f

C

2 q

3

P

3 l

2 l

2y q

2 q

1 l

2x m ,i q

6 l

1y

P

4

2

P

1 l

1x l f r f m ,i

1

C

1

£ g

Figure 1.

The geometry of the planar walker.

the instant of impact to bring the relative velocity to zero. At knee locking, an angular impulse is introduced at the knee joint. At foot impact, vertical and horizontal impulses from the plane are used at the initial contact point.

During an ordinary gait cycle, the planar walker goes through two continuous states, as illustrated in Figure 2. The …rst state is the three-link mode, which is ended at knee lock and the walker is transferred into the two-link mode. This mode ends at foot impact and the walker is returned to the threelink mode. At the end of each discrete state, some of the state variables make a discontinuous jump in their values.

In the following paragraphs, a detailed description will be given of the simulation and the impact modeling used in each step. In addition, the necessary checks to make sure that the solution is physically realizable are given and discussed.

Figure 2.

The walker goes through two continous states during an ordinary gait cycles. These two states are connected via impact models.

3

J. Adolfsson

2.3

Transition from two-link mode to three-link mode

The calculations at each impact are simpli…ed by considering the mechanism as having all its six DOF available to it and introducing the appropriate impulses and constraints at each impact. As it turns out, the impact at knee lock can then be described by the same constraint and impulse equations as the impact of the swing-leg foot. However, as can be seen in …gure 3 the geometrical con…guration is di¤erent in the two cases.

Foot impact

P

5

Knee lock

P

5

-Q

2

P

3

Q

2

-Q

1

P

4

Q

1

-Q

1

P

4

Q

1

-Q

2

P

3 Q

2 n

2

P

2

P

2

C

2

P

1

R x

C

1

R y

P

1

R x

C

1

R y

C

2

Figure 3.

Impulses at foot impact and knee impact. Note that it is only the geometrical con…guration that di¤erentiate the two impacts.

Since the walker has di¤erent DOF, depending on its state, it is wise to give the initial conditions in the con…guration having the least DOF. Immediately before foot impact, the state of the walker can be described by one of the leg angles and two angular velocities. Since the impacting-leg knee (soon to be the new stance-leg knee) is locked, only u

2 is needed to describe the stance leg angular velocity. The current stance-leg knee (soon to be new swing-leg knee) is also locked at this instant and therefore only u

1 is needed to describe the swing-leg angular velocity. Since the walker is invariant to translations in the forward direction, q

4 can be chosen at any value, preferably zero. From these four state variables [q

1

; q

4

; u

1

; u

2

] the remaining ones are given by, q

2

= ¡2 arctan((l

1

+ l

2

) = l f

) ¡ q

1

; q

5

= r f

¡ l f sin(q

1

) + (l

1

+ l

2

) cos(q

1

); u

4

= u

1

(¡(l

1

+ l

2

) cos(q

1

) + l f sin(q

1

) ¡ r f

); u

5

= u

1

(¡l f cos(q

1

) ¡ (l

1

+ l

2

) sin(q

1

)); q

3

= q

6

= u

3

= 0;

(1) where the velocities of u

4 and u

5 are given by the rolling constraint of the stance leg (point C

2

). The con…guration of the walker is now given at the foot plane pre-collision instance. We now need to calculate the velocity jump

4

Planar Passive Walking due to the impulses occurring at the foot impact. Since we assume that the mechanism is free at each impact, additional angular impulses are needed to maintain the locked state of the knees. Calculating these constraint impulses gives a possibility to check whether the constraints will be kept or broken. The equations that calculate the velocity jump can be stated as a matrix equation,

M (q)¢v = C(q)r (2) where M (q) is the reduced mass matrix of the system, which is given in the appendix, and ¢v=[v

+

¡ v

¡

] is the resulting velocity jump due to the impulses r . The constraint matrix C(q) relates the impulses at the point C

1 and the rotational impulses at the knees to the generalized velocities. This results in six equations for the ten unknowns (6 velocities and 4 impulses). The remaining

4 equations come from the velocity constraints, namely,

N u

6

= 0; u

3

= 0; d/dt(OC

1

) = 0;

(3) where the raised N indicates that the derivative is calculated in the inertial reference frame N: These velocity constraints are linear in the generalized speeds and expressing the zero velocity contact point constraint in the same directions as the impulses one can write the velocity constraint as,

C(q)

T v

+

= 0 (4) where v

+ is the generalized velocity after the impact. Thus, if put on a matrix form, we can simultaneously solve for the new velocities v

+ and the impulses r , given the pre-collision velocity v

¡

. The matrix equation is given by,

·

M (q) C(q)

C(q)

T

0

¸ · v r

+

¸

=

·

¡M(q)v

0

¡

¸

(5) where C(q i

) has 6x4 components and its non-zero elements equals,

C

11

= l

2 cos(q

1

) + l f sin(q

6

¡ q

1

) + l

1 cos(q

6

¡ q

1

) + r f

;

C

12

= l

2 sin(q

1

) + l f cos(q

6

¡ q

1

) ¡ l

1 sin(q

6

¡ q

1

);

C

61

= ¡l f sin(q

6

¡ q

1

) ¡ l

1 cos(q

6

¡ q

1

) ¡ r f

C

62

= ¡l f cos(q

6

¡ q

1

) + l

1 sin(q

6

¡ q

1

);

C

34

= C

63

= C

41

= C

52

= 1

(6) and r = [R x

; R y

; Q

1

; Q

2

]

T

; v = [u

1

; : : : ; u

6

]

T

: (7)

2.4

Post collision checks

To ensure that the impact solutions are physically realizable, post collision checks are required. After the foot collision, the vertical velocity of the contact point of the new swing leg has to be positive,

N d/dt(OC

2

) ¢ n

2

= l f

(u

2 cos(q

2

) ¡ u

1 cos(q

1

))+

(l

1

+ l

2

)(u

2 sin(q

2

) ¡ u

1 sin(q

1

)) > 0

(8)

5

J. Adolfsson

Additionally, if simple mechanical stops are used, both rotational impulses have to be positive or the knees will collapse. However, in the simulations, only negative angular impulses at the hind-leg knee were found (point P 3 in the left pane of Figure 3). Therefore, the knee is assumed locked until immediately after the foot collision has occurred. This implies a zero angular velocity of u

3 at the start of the swing phase. The …nal check that is made is to ensure that the acceleration of the new swing leg is positive, i.e. the new swing-leg foot should move away from the plane.

2.5

Three-link mode integration

The constraints applied to the free mechanism during the three-link phase consists of the stance leg knee being locked, which can be written as, q

6

= u

6

= 0 (9) and that the stance leg foot should be rolling. The rolling condition implies that the point C

1 should have a zero vertical position and that the horizontal velocity of the current contact point in the foot is zero. Since the position constraint is holonomic, it can be expressed as, q

5

= ¡l f sin(q

1

) + (l

1

+ l

2

) cos(q

1

) + r f

The rolling without slipping constraint is, u

4

= u

1

(¡(l

1

+ l

2

) cos(q

1

) + l f sin(q

1

) ¡ r f

) which can be integrated to a holonomic constraint,

(10)

(11) q

4

= ¡(l

1

+ l

2

) sin(q

1

) ¡ l f cos(q

1

) ¡ r f

¤ q

1

+ const.

(12) where const.

is an integration constant, which can be determined at the start of the integration. The system to integrate now consists of the states

[q

1

; q

2

; q

3

; u

1

; u

2

; u

3

], which is integrated until one of the below conditions occur.

2.6

Checks during three-link integration

In this state, four di¤erent events, which terminate the gait simulation are monitored. Namely, that heel strike shouldn’t occur before the knee locks.

Heel strike occur when l f sin(¡q

3

+ q

2

) ¡ l

2 cos(q

2

) ¡ l

1 cos(¡q

3

+ q

2

)¡ l f sin(q

1

) + (l

1

+ l

2

) cos(q

1

) = 0

(13)

The walker shouldn’t fall back, which occurs when the hip (point P 5) hit the

‡oor. This condition can be expressed as, r f

¡ l f sin(q

1

) + (l

1

+ l

2

) cos(q

1

) = 0 (14)

In addition, to ensure that an over swing of the lower leg doesn’t occur, q

3 has to be less than ¼. The correct termination of this integration is when knee lock

6

Planar Passive Walking occur, q

3

= 0. After the integration has terminated, the states [q can be calculated using equations (10-12)

4

; q

5

; u

4

; u

5

]

To be on the safe side, one could also check that the vertical component

However, all observed gaits have the velocity of the hip below p gl , which is the required velocity to leave the ground (compare the walker to an inverted pendulum), therefore, this was not checked during simulations.

2.7

Transition from three-link mode to two-link mode

As discussed earlier, the same equations as in the foot impact calculations can now be used again. However, as seen in the right pane of Figure 3, the geometrical con…guration is di¤erent.

2.8

Post collision checks

Since it is assumed that the stance leg foot is only constrained by the plane, it is free to move upwards. This implies that the impulse R y has to be positive, or the foot will leave the ground plane. If Coulomb friction laws are valid for impacts, see Brach [3] for a discussion of this topic, one could also make sure that the absolute value of the ratio of horizontal impulse to vertical impulse is below the friction coe¢cient,

¯

¯

¯

¯

R x

R y

¯

¯

¯

¯ < ¹:

(15)

We also have to check that q

1

> q

2 otherwise the knee lock occurred when the swing leg was behind the stance leg. Since both legs are assumed to have equal geometry, the swing cannot take place when both knees are locked. This will eventually result in foot scu¢ng.

2.9

Two-link mode integration

During the two-link mode, both knees are locked, q

3

= q

6

= 0, and consequently both angular knee velocities, u

3 and u

6

, are equal to zero. In addition, the rolling constraint has to be satis…ed, see equation (11). The system to integrate now consists of the state variables [q

1

; q

2

; u

1

; u

2

], which is integrated until one of the below conditions occur.

2.10 Checks during two-link mode integration

Two events, which terminate the gait simulation, might occur in this mode.

The …rst one occurs if the hip hits the ‡oor, see equation (14). The second one occurs if the swing leg rotates back to a con…guration where q

1

= q

2

. The termination that continue the gait cycle takes place when the swing-leg foot impacts with the ground and the legs have an opening angle. This occurs when, q

1

+ q

2

+ 2 arctan((l

1

+ l

2

) = l f

) = 0 (16)

The additional states [q

4

; q

5

; u

4

; u

5

] can now be calculated from equations (10-

12). The walker is now in the pre-foot-collision state and the transition from two-link mode to three-link mode can take place again.

7

J. Adolfsson

3

## Simulation

Simulation of the planar walker was performed in Matlab using the ode45 integrator (Runge-Kutta 45). This integrator is suitable for solving non-sti¤ ordinary di¤erential equations. All integrators in Matlab support event detection, which were used to detect the end of the two continuous integrations.

Both the absolute and relative tolerance was set to 1e-6.

stride time 1.45s, stride length 1.05m, plane inclination 5.16°

15.9 deg

4.74 kgms -1

23.0 deg

0.354kgms

-1

Figure 4.

Simulation of a planar walker during 7 consecutive steps. Parameters and initial conditions can be found in Table I.

Table I. Parameter values and initial conditions used in the simulation found in Figure

4

. Immediately before the double support only three state variables are needed to specify the complete state of the walker. The leg angle q

1

(the opening angle, which equals q

1

¡ q

2

, can be calculated given q

1 and the double support con…guration), the angular velocity of the new stance leg q _

1

, and the angular velocity of the new swing leg

_q

2

.

Param Value m

1 i

1 l

1x l

1y l

1

1.013 kg

0.0393 kg m

2

0.0432 m

0.1663 m

0.3132 m

Param Value m

2 i

2 l

2x l

2y l

2

2.35 kg

0.231

0.0 m

¢

10

¡3

0.091 m

0.35 m kg m

2

Param Value l f r f g

®

0.123 m

0.12 m

9.81 m s

¡2

0.09 rad

State variable

Initial value q

1

-0.5196 rad q _

1

-1.933 rad s

¡1

_q

2

-2.037 rad s

¡1

Parameter values and initial conditions were obtained from previous work of Ruina and Collaborators, see [5]. However, the initial conditions had to be manually tuned before a stable gait was observed in the simulation. This is probably due to some modeling di¤erences between our planar walker and the aforementioned walker. Stability was observed by plotting the three needed state variables [q

1

; u

1

; u

2

] in a three-dimensional diagram at subsequent steps.

A stable gait is observed to converge to a point.

In Figure 4 a simulation of a stable planar walker is shown. The walker is drawn at di¤erent geometrical con…gurations during 7 consecutive steps (a stride consists of two steps, thus the walker is back to its original con…guration

8

Planar Passive Walking after two steps or one stride). The impulses from the plane are shown at foot impact and at knee locking. The impulse angle at foot impact requires a friction coe¢cient of ¹ = 0:28 and at knee impact ¹ = 0:42 or the walker will slip.

The parameters for this particular walker can be found in Table I.

4

## Stability

The stability of the gait was calculated by perturbing the stable periodic solution x

0 in each state variable. The accuracy of the periodic orbit was obtained to 1e-9 (relative and absolute) and the perturbations " are of size 5e-6. By perturbing one state variable at the time and subtracting the periodic solution from the resulting state after one step, the Jacobian J of the system can be approximated,.as indicated below, x

0

+ ["; 0; 0]

T

! integration ! x

1 x

0

+ [0; "; 0]

T

! integration ! x

2 x

0

J '

+ [0; 0; "]

1

"

2

6

4 x

1

T

..

.

¡ x

.

..

0

! integration ! x

3

.

..

..

.

3 x

2

¡ x

.

..

0 x

3

¡ x

..

.

0

7

5

Stability is now given by calculating the eigenvalues of this Jacobian. As long as all eigenvalues are inside the unit circle, the periodic solution is stable. Having access to the Jacobian also makes it possible to implement root-…nding algorithms for locating periodic solutions, both stable and unstable. This approach was used to locate periodic gaits of the passive 3D walker, see Adolfsson [1] and

[2]. However, in this chapter we only study periodic gaits, which are accessible through direct numerical simulation, i.e. stable periodic solutions. In Table

II, the eigenvalues and eigenvectors of the periodic solution found in Table I is given

Table II. Eigenvalues and eigenvectors corresponding to the periodic solution given by the data in Table I.

Eig.Vec.1

Eig.Vec.2

Eig.Vec.3

q

1 u

1 u

2

-0.0343

-0.0433

0.9985

Eig.Val

-0.7034

0.0047

-0.0725

-0.9974

0.0088

0.0017

0.1088

0.9941

0.1060

9

J. Adolfsson

4.1

Parameter study

Many interesting parameter studies have been done on the planar walker. For example, the inclination of the plane has been extensively studied by both

McGeer, see [10],[11],[12], and Garcia, see [7] and [6]. By tuning the mass properties of the walker, Garcia [5], found periodic solutions for arbitrarily small slopes.

Since the goal is to extend the planar walker into three dimensions, a foot design that is suitable for this is needed. The approach taken here is to reduce the foot radius while maintaining an o¤set for the foot radius. In Figure 5, the

0 .6

0 .2

1 8

1 6

4 .6

4 .2

3 .8

0 .0 2

0 .1 0 7

0 .0 4 0 .0 6

0 .1 1 3

0 .0 8 0 .1

0 .1 2 0 foot offset (m)

Figure 5.

Parameter variation showing the stability of the planar walker as the foot is shrunk. Also shown, is the needed impulse and impulse angle at the foot impact.

foot radius is shrunk from 12cm (corresponding to the walker found in Figure

4) to 1cm (corresponding to the walker found in Figure 6). To remain stable, it was noted that the o¤set l f had to be decreased slightly, from 12.3cm to 10.5cm.

In …gure 5 the stability of this particular parameter variation is shown, along with the needed impulse at foot impact. Stability is plotted as the absolute value of the eigenvalues of the Jacobian. As seen in the …gure, it is stable over the whole parameter interval, with maximum stability at f r

¼ 0:05m. The y-shaped crossing at maximum stability is due to a complex-conjugate pair of eigenvalues turning into two real eigenvalues. The impulse from the plane, at foot impact, shows no dramatic change over the interval. Thus, it is expected that if slip does not occur in the large radius foot it will not occur in the small radius foot either.

10

Planar Passive Walking

5

## Conclusions

In Figure 6, the small foot walker is drawn at di¤erent geometrical con…gurations for seven consecutive steps. The trajectories are quite similar to the ones found for the large radius foot, however, a somewhat smoother motion of the foot radius center can be observed. A di¤erence in stride time and stride length can also be observed, which is probably due to the change of the length

(l

1y

+ r f

) of the lower leg.

stride time 1.36s, stride length 0.74m, plane inclination 5.16°

18.3 deg

3.33 kgms -1

35.9 deg

0.118 kgms -1

Figure 6.

Simulation of a planar walker having small feet during 7 consecutive steps.

Although not shown here, it was possible to reduce the foot radius to arbitrarily small values. It was even, although not realizable, possible to use negative values of the foot radius. This suggests that the shape of the foot can be chosen quite freely, as long as the foot design allows for the invertedpendulum motion to take place.

An advantage of this foot design is that it is easier to implement compared to the previous used large radius foot. In addition, it is now possible to extend this construction into three dimensions while guaranteeing the existence of periodic solutions, see Piiroinen [14]. In Figure 7, the path from planar passive walker into a 3D passive walking is shown. The point toe can now be extended into a line foot in three dimensions. By starting the three dimensional passive walker with zero hip distance and symmetrically overlapping feet, the periodic solution will exist. However, the stability characteristics are not known since additional degrees of freedom will be present.

Some comparisons between the planar passive walker and three-dimensional passive walker can be found in Dankowicz et al., see [4].

6

## Appendix

6.1

Maple and Sophia code

This is the Sophia/Maple code for deriving the equations of motion and the impact equations for the planar passive walker. The Sophia package is a useful tool for analysis of multi-body dynamics, vector algebra and calculus, and has application to systems of ordinary di¤erential equations. Sophia is implemented in Maple and has export routines to Matlab, (see Lesser [9] and

11

J. Adolfsson

Rolling foot to point foot

Extending the toe point to a line toe

Separating the hip

Figure 7.

Illustrative picture showing the transition from a planar passive walker into a fully 3D passive walker having dynamics in all spatial directions.

Lennartsson [8]). Sophia uses Lesser’s geometrical interpretation of Kane’s method.

Maple code will be written with this typeface and comments with the ordinary typeface. Sophia can be downloaded at www.mech.kth.se/sophia and the code for deriving the equations of motion can be found at www.mech.kth.se/sophia/passivewalking

The Maple session is started by resetting the workspace and then reading the

Sophia library.

> restart;

> read ‘sophiaV5‘;

6.2

Geometry

We start by de…ning the frame relations where N is the inertial reference frame.

Upper leg 1, reference frame A

> &rot[N,A,3,q1]:

Upper leg 2, reference frame B

> &rot[N,B,3,q2]:

Lower leg 2, reference frame CC

> &rot[B,CC,3,-q3]:

Lower leg 1, reference frame DD

> &rot[A,DD,3,-q6]:

The geometry of the walker is now de…ned and the centers of mass are labeled, refer to Figure 1.

Hip (point P

5

) j > P5 := N &ev [q4,q5,0]:

12

Planar Passive Walking

Upper leg 1 and leg 2 center of mass

> r1 := P5 &++ (A &ev [l2x,-l2y,0]):

> r2 := P5 &++ (B &ev [l2x,-l2y,0]):

Position of the knees, leg 2 & 1 (point P

3 and P

4

)

> P3 := P5 &++ (B &ev [0,-l2,0]):

> P4 := P5 &++ (A &ev [0,-l2,0]):

Lower leg 2 and lower leg 1 center of mass

> r3 := P3 &++ (CC &ev [l1x,-l1y,0]):

> r4 := P4 &++ (DD &ev [l1x,-l1y,0]):

Circle foot contact point for leg 1 and 2 (point C

1 and C

2

)

> C1 := P4 &++ (DD &ev [lf,-l1,0]) &++ (N &ev [0,-rf,0]):

> C2 := P3 &++ (CC &ev [lf,-l1,0]) &++ (N &ev [0,-rf,0]):

6.3

Kinematics

Compute the required center of mass velocities and angular velocities for each body.

Upper leg 1

> v1 := &simp subs(kde6,N &fdt r1):

> w1 := subs(kde6,N &aV A):

Upper leg 2

> v2 := &simp subs(kde6,N &fdt r2):

> w2 := subs(kde6,N &aV B):

Lower leg 2

> v3 := &simp subs(kde6,N &fdt r3):

> w3 := subs(kde6,N &aV CC):

Lower leg 1

> v4 := &simp subs(kde6,N &fdt r4):

> w4 := subs(kde6,N &aV DD):

Use simple kinematical di¤erential equations, i.e. _ i

= u i

.

> &kde(6);kde6:=kde:

Assemble a K-vector of velocities

> vK := &KM[v1,w1,v2,w2,v3,w3,v4,w4]:

Momentum and angular momentum for each body

Upper leg 1

> p1 := m2 &** v1:

> h1 := i2 &** w1:

Upper leg 2

> p2 := m2 &** v2:

> h2 := i2 &** w2:

Lower leg 2

13

J. Adolfsson

> p3 := m1 &** v3:

> h3 := i1 &** w3:

Lower leg 1

> p4 := m1 &** v4:

> h4 := i1 &** w4:

Assemble a momentum K-vector

> pK := &KM[p1,h1,p2,h2,p3,h3,p4,h4]:

Di¤erentiate each component of the momentum K-vector with respect to time to obtain the inertia forces and substitute the kde.

> pKt := &Ksimp subs(kde6, N &Kfdt pK):

6.4

Forces and Torques

The applied forces and torques are now given. Since gravity is the only applied force on the walker, all torques will be zero.

Upper leg 1

> Ra1 := N &ev [m2*g*sin(alpha),-m2*g*cos(alpha),0]:

> Ta1 := N &ev [0,0,0]:

Upper leg 2

> Ra2 := N &ev [m2*g*sin(alpha),-m2*g*cos(alpha),0]:

> Ta2 := B &ev [0,0,0]:

Lower leg 2

> Ra3 := N &ev [m1*g*sin(alpha),-m1*g*cos(alpha),0]:

> Ta3 := CC &ev [0,0,0]:

Lower leg 1

> Ra4 := N &ev [m1*g*sin(alpha),-m1*g*cos(alpha),0]:

> Ta4 := DD &ev [0,0,0]:

Assemble applied forces and torques in a K-vector

> RK := &KM[Ra1,Ta1,Ra2,Ta2,Ra3,Ta3,Ra4,Ta4]:

6.5

Kane’s equations

Compute the tangent vectors. Since the tangent vectors are assumed ”orthogonal” to the constraint forces, they can be used to project away the constraint forces.

> tauK := KMtangents(vK,u,6):

Project the tangent K-vectors on the applied forces K-vector and the inertia forces K-vector

> GAF := tauK &kane RK:

> MGIF := tauK &kane pKt:

Extract Kane’s equations from the Generalized Applied Forces (GAF) and the

Minus Generalized Inertia Forces (MGIF)

> kaneeq := [seq(MGIF[i]-GAF[i],i=1..6)]:

> kaneeq := map(simplify,kaneeq):

14

Planar Passive Walking

> kaneeq := map(combine,kaneeq,trig):

Read the linalg library.

> with(linalg):

Put the equations on the form M _u = F where M is the reduced mass matrix _u is the vector of generalized accelerations, and F is the generalized force vector.

> TOT:=genmatrix(kaneeq,[u1t,u2t,u3t,u4t,u5t,u6t],flag):

> M:=submatrix(TOT,1..6,1..6):

> F:=submatrix(TOT,1..6,7..7):

M is the reduced mass matrix, which is also used in impact calculations.

6.6

Three-link mode

We now derive the equations of motion for the planar passive walker with the stance leg knee locked and the stance leg foot rolling on the plane. The constraints are q

6

= 0 (knee angle), the vertical position of the contact point

C1 must be zero, and the horizontal velocity of the contact point C1 must also be zero. The reduced state of the walker will, in three-link mode, consist of [q

1

; q

2

; q

3

; q

4

; u

1

; u

2

; u

3

], thus, [q

5

; q

6

; u

4

; u

5

; u

6

] can be removed by the constraints.

Generalized coordinate constraints solved for q

5 q

6

(stance leg knee angle).

(vertical position of hip) and

> qconstr3:=solve({(N &to C1) &c 2 = 0, q6=0},{q5,q6}):

The velocity of the instantaneous contact point C

1 is (

N d/dtO P

4

)+!

4

£ P

4

C

1

.

> v_contact1 := &simp (N &to (&simp subs(kde6,N &fdt P4)

&++ (w4 &xx (C1 &-- P4)))):

Di¤erentiate the generalized coordinate constraint with respect to time

> qtconstr3:=map(diffTime,qconstr3):

Combine all generalized velocity constraints and express them as relations between the generalized velocities

> uconstr3:=simplify(subs(qconstr3,solve(subs(kde6, qtconstr3) union {v_contact1 &c 1 = 0},{u4,u5,u6}))):

Compute the generalized acceleration constraints

> aconstr3:=subs(uconstr3,qconstr3,subs(kde6, map(diffTime,uconstr3))):

Kinematical di¤erential equations for three-link mode

> ki := subs(kde6,uconstr3,qconstr3,[q1t,q2t,q3t,q4t]);

> kde3 := {seq(q.i.t=ki[i],i=1..4)};

Velocity K-vector expressed with reduced state

> vK3 := &Ksimp subs(uconstr3,qconstr3,vK):

Compute the tangent K-vectors

> tauK3 := KMtangents(vK3,u,3):

Project the new tangent K-vectors on the applied forces and inertial forces

15

J. Adolfsson

> GAF3 := tauK3 &kane RK:

> MGIF3 := tauK3 &kane pKt:

Substitute for the removed states [q

5

; q

6

; u

4

; u

5

; u

6

] and their derivatives. Extract Kane’s equations from the Generalized Applied Forces (GAF) and the

Minus Generalized Inertia Forces (MGIF)

> ndof := 3:

> kaneeq3 := simplify(subs(aconstr3,uconstr3, qconstr3,[seq(MGIF3[i]-GAF3[i],i=1..ndof)])):

> kaneeq3 := map(simplify,kaneeq3):

> kaneeq3 := map(combine,kaneeq3,trig):

Put the equations on the form M _u = F where M is the reduced mass matrix, _u is the vector of generalized accelerations, and F is the generalized force vector.

> TOT3 := genmatrix(kaneeq3,[u1t,u2t,u3t],flag):

> M3 := submatrix(TOT3,1..3,1..3):

> F3 := submatrix(TOT3,1..3,4..4):

6.7

Two-link mode

In addition to the three-link mode constraints, the swing leg knee is now locked, q

3

= 0 (knee angle). The reduced state of the walker will, in two-link mode, consist of [q

1

; q

2

; q

3

; q

4

; u

1

; u

2

].

> qconstr2 := qconstr3 union {q3=0}:

Di¤erentiate the generalized coordinate constraint

> qtconstr2 := map(diffTime,qconstr2):

Generalized velocity constraint

> uconstr2 := uconstr3 union {u3=0}:

Generalized acceleration constraints

> aconstr2 := aconstr3 union {u3t=0}:

Velocity K-vector expressed with reduced state

> vK2 := &Ksimp subs(uconstr2,qconstr2,vK):

Kinematic di¤erential equations for two-link mode

> ki:=subs(kde6,uconstr2,qconstr2,[q1t,q2t,q4t]):

> kde2:=[q1t=ki[1],q2t=ki[2],q4t=ki[3]]:

Compute the tangent K-vectors

> tauK2 := KMtangents(vK2,u,2):

Project the new tangent K-vectors on the applied forces and inertial forces

> GAF2 := tauK2 &kane RK:

> MGIF2 := tauK2 &kane pKt:

Substitute for the removed states [q

5

; q

6

; u

3

; u

4

; u

5

; u

6

] and their derivatives.

Extract Kane’s equations from the Generalized Applied Forces (GAF) and the

Minus Generalized Inertia Forces (MGIF)

> ndof := 2:

> kaneeq2 := simplify(subs(aconstr2,uconstr2,

16

Planar Passive Walking qconstr2,[seq(MGIF2[i]-GAF2[i],i=1..ndof)])):

Put the equations on the form M _u = F where M is the reduced mass matrix, _u is the vector of generalized accelerations, and F is the generalized force vector

> TOT2 := genmatrix(kaneeq2,[u1t,u2t],flag):

> M2 := submatrix(TOT2,1..2,1..2):

> F2 := submatrix(TOT2,1..2,3..3):

6.8

Impact equations

Both knees are assumed locked and therefore the constraint knee impulses

(Q

1

; Q

2

) are introduced as to maintain the locked state of the knee. We want the equations on this form,

· ¸ · ¸ · ¸

M C

C

T

0 v

+ r

=

¡Mv

¡

0

; where C

T is the transpose of C, v

+ is the generalized velocity vector after impact and v

¡ is the generalized velocity vector before impact.

The impulse from the plane, at point C

1

, on the impacting foot (Lower leg 1) and the knee angular impulse is,

> iRa4 := N &ev [R1,R2,0]:

> iTa4 := &simp ((C1 &-- r4) &xx iRa4 &++

(N &ev [0,0,-Q1])):

Upper leg 2

> iRa2 := N &ev [0,0,0]:

> iTa2 := B &ev [0,0,Q2]:

Lower leg 2

> iRa3 := N &ev [0,0,0]:

> iTa3 := N &ev [0,0,-Q2]:

Upper leg 1

> iRa1 := N &ev [0,0,0]:

> iTa1 := DD &ev [0,0,Q1]:

Assemble the applied impulses and angular impulses in a K-vector.

> iRK:=&KM[iRa1,iTa1,iRa2,iTa2,iRa3,iTa3,iRa4,iTa4]:

Compute the generalized impulses

> genimp := map(combine,map(simplify,tauK &kane iRK),trig):

The generalized impulses are linear in the applied impulses and therefore it can be written as Cr, where r = [R

1

; R

2

; Q

1

; Q

2

]

T

> C := genmatrix(genimp,[R1,R2,Q1,Q2]);

Velocity constraints after impact are obtained from the condition that contact point C

1 should have zero velocity

> v_contact1 := &simp (N &to (&simp subs(kde6,N &fdt P4) &++

(w4 &xx (C1 &-- P4)))):

This constraint is linear in the generalized velocities

17

J. Adolfsson

> CT:=map(combine,genmatrix([v_contact1 &c 1, v_contact1 &c 2,u6=0,u3=0],[u1,u2,u3,u4,u5,u6]),trig);

Since the applied impulses are parallel to the directions of the velocity constraints and applied at the same point C

1

, the transposed C should equal CT .

6.9

Mass matrix and generalized forces

Only non-zero elements of the diagonal and upper right part of the mass matrix is shown,

M

11

= (l

2

2y

+ l i

1

+ i

2

2

2x

)m

2

+ (l

2

1y

+ l

2

1x

+ l

2

2

+ 2l

2 l

1y cos(q

6

) + 2l

1x l

2 sin(q

6

))m

1

+

M

14

= (l

2y cos(q

1

) ¡ l

2x sin(q

1

))m

2

+

(l

1x sin(¡q

1

+ q

6

) + l

1y cos(¡q

1

+ q

6

) + l

2 cos(q

1

))m

1

M

15

= (l

2y sin(q

1

) + l

2x cos(q

1

))m

2

+

M

16

(l

1x cos(¡q

1

+ q

6

) + l

2 sin(q

1

) ¡ l

1y sin(¡q

1

+ q

6

))m

1

= (¡l

1x l

2 sin(q

6

) ¡ l

2

1x

¡ cos(q

6

)l

2 l

1y

¡ l

2

1y

)m

1

¡ i

1

M

22

= (l

2

2y

+ l

2

2x

)m

2

+ (l

2

2

+ l

2

1x

+ l

2

1y

+ 2l

2 l

1x sin(q

3

) + 2l

2 l

1y cos(q

3

))m

1

+ i

1

+ i

2

M

23

= (¡l

2

1x

¡ l

2

1y

¡ l

2 l

1y cos(q

3

) ¡ l

2 l

1x sin(q

3

))m

1

¡ i

1

M

24

= (l

2y cos(q

2

) ¡ l

2x sin(q

2

))m

2

+

(l

2 cos(q

2

) + l

1y cos(¡q

2

+ q

3

) + l

1x sin(¡q

2

+ q

3

))m

1

M

25

= (l

2y sin(q

2

) + l

2x cos(q

2

))m

2

+

(¡l

1y sin(¡q

2

+ q

3

) + l

2 sin(q

2

) + l

1x cos(¡q

2

+ q

3

))m

1

M

33

= (l

2

1y

+ l

2

1x

)m

1

+ i

1

M

34

= (¡l

1x sin(¡q

2

+ q

3

) ¡ l

1y cos(¡q

2

+ q

3

))m

1

M

35

= (¡l

1x cos(¡q

2

+ q

3

) + l

1y sin(¡q

2

+ q

3

))m

1

M

44

= 2m

1

+ 2m

2

M

46

= (¡l

1y cos(¡q

1

+ q

6

) ¡ l

1x sin(¡q

1

+ q

6

))m

1

M

55

= 2m

1

+ 2m

2

M

56

= (l

1y

M

66

= (l

2

1y sin(¡q

1

+ q

6

) ¡ l

1x cos(¡q

1

+ q

6

))m

1

+ l

2

1x

)m

1

+ i

1

The generalized forces equals,

F

1

F

2

= (l

2y sin(® ¡ q

1

) ¡ l

2x cos(® ¡ q

1

))m

2 g +

(l

2 sin(® ¡ q

1

) ¡ l

1x cos(q

6

+ ® ¡ q

1

) + l

1y sin(q

6

+ ® ¡ q

1

))m

1 g +

(¡l

2 sin(q

6

)u

2

6 l

1y

+ 2l

2 sin(q

6

)u

6 u

1 l

1y

¡

2 cos(q

6

)l

2 u

1 u

6 l

1x

+ cos(q

6

)l

2 u

2

6 l

1x

)m

1

= (¡l

2x cos(® ¡ q

2

) + l

2y sin(® ¡ q

2

))gm

2

+

18

Planar Passive Walking

(¡l

1x cos(q

3

+ ® ¡ q

2

) + l

2 sin(® ¡ q

2

) + l l

1y sin(q

3

+ ® ¡ q

2

))m

1 g +

(¡2 cos(q

3

)l

2 u

2 u

3 l

1x

+ cos(q

3

)l

2 u

2

3 l

1x

¡

2 sin(q

3

)u

2

3 l

1y

2l

2 sin(q

3

)u

3 u

2 l

1y

)m

1

F

3

= (¡l

1y sin(q

3

+ ® ¡ q

2

) + l

1x cos(q

3

+ ® ¡ q

2

))m

1 g +

(l

1x cos(q

3

)u

2

2 l

2

¡ l

1y u

2

2 l

2 sin(q

3

))m

1

F

4

= (sin(q

1

)u

2

1 l

2y

+ cos(q

2

)u

2

2 l

2x

+ 2g sin(®) + sin(q

2

)u

2

2 l

2y

+ cos(q

1

)u

2

1 l

2x

)m

2

+ 2m

1 g sin(®) +

(u

2

1 l

1x cos(¡q

1

+ q

6

) ¡ u

2

1 l

1y sin(¡q

1

+ q

6

) ¡ u

2

6 l

1y sin(¡q

1

+ q

6

) ¡ u

2

2 l

1y sin(¡q

2

+ q

3

) + u

2

2 l

1x cos(¡q

2

+ q

3

) + sin(q

1

)u

2

1 l

2

+

2u

3 u

2 l

1y sin(¡q

2

+ q

3

) +

2u

6 u

1 l

1y sin(¡q

1

+ q

6

) ¡ u

2

3 l

1y sin(¡q

2

+ q

3

) ¡ 2u

2 u

3 l

1x cos(¡q

2

+ q

3

) ¡

2u

1 u

6 l

1x cos(¡q

1

+ q

6

) + u

2

3 l

1x cos(¡q

2

+ q

3

) + sin(q

2

)u

2

2 l

2

+ u

2

6 l

1x cos(¡q

1

+ q

6

))m

1

F

5

F

6

= (sin(q

2

)u

2

2 l

2x

¡ cos(q

2

)u

2

2 l

2y

+ sin(q

1

)u

2

1 l

2x

¡ cos(q

1

)u

2

1 l

2y

¡ 2g cos(®))m

2

¡ 2m

1 g cos(®) +

(2u

1 u

6 l

1x sin(¡q

1

+ q

6

) ¡ u

2

6 l

1x sin(¡q

1

+ q

6

) ¡ u

2

2 l

1x sin(¡q

2

+ q

3

) ¡ u

2

2 l

1y cos(¡q

2

+ q

3

) +

2u

6 u

1 u

2

1 l

1x l

1y cos(¡q

1

+ q

6

) + 2u

2 u

3 l

1x sin(¡q

2

+ q

3

) ¡ sin(¡q

1

+ q

6

) ¡ u

2

1 l

1y cos(¡q

1

+ q

6

) ¡ u

2

6 l

1y cos(¡q

1

+ q

6

) ¡ u

2

3 l

1x sin(¡q

2

+ q

3

) ¡ cos(q

1

)u

2

1 l

2

+ 2u

3 u

2 l

1y cos(¡q

2

+ q

3

) ¡ u

2

3 l

1y cos(¡q

2

+ q

3

) ¡ cos(q

2

)u

2

2 l

2

)m

1

= (¡l

1y sin(q

6

+ ® ¡ q

1

) + l

1x cos(q

6

+ ® ¡ q

1

))m

1 g +

(¡l

1y u

2

1 l

2 sin(q

6

) + l

1x cos(q

6

)u

2

1 l

2

)m

1

## Bibliography

[1] Adolfsson, J.: 2000, ‘3D Passive walkers: Code Implementation Issues’.

Technical report, KTH, Department of Mechanics.

[2] Adolfsson, J., H. Dankowicz, and A. Nordmark: 2001, ‘3D Passive Walkers: Finding Periodic Gaits in the Presence of Discontinuities’. Nonlinear

Dynamics 24 (2), 205–229.

19

J. Adolfsson

[3] Brach, R. M.: 1991, Mechanical Impact Dynamics. A Wiley-Interscience

Publication.

[4] Dankowicz, H., J. Adolfsson, and A. Nordmark: 2001, ‘Existence of Stable 3D-Gait in Passive Bipedal Mechanisms’. Journal of Biomechanical

Engineering 123 (1), 40–46.

[5] Garcia, M., A. Chatterjee, and A. Ruina: 1998a, ‘E¢ciency, Speed, and

Scaling of Passive Dynamical Bipedal Walking’. Dynamics and Stability of Systems . submitted for publication.

[6] Garcia, M., A. Chatterjee, A. Ruina, and M. Coleman: 1998b, ‘Passivedynamic Models of Human Gait’. In: Proceedings of the Conference on

Biomechanics and Neural Control of Human Movement . pp. 32–33.

[7] Garcia, M., A. Chatterjee, A. Ruina, and M. Coleman: 1998c, ‘The Simplest Walking Model: Stability, Complexity, and Scaling’. ASME Journal of Biomechanical Engineering 120 , 281–288.

[8] Lennartsson, A.: 1999, ‘E¢cient Multibody Dynamics’.

Ph.D. thesis,

KTH, Department of Mechanics.

[9] Lesser, M.: 1995, The Analysis of Complex Nonlinear Mechanical Systems.

World Scienti…c Publishing Co. Pte. Ltd.

[10] McGeer, T.: 1990a, ‘Passive Bipedal Running’. In: Proceedings of the

Royal Society of London: Biological Sciences , Vol. 240. pp. 107–134.

[11] McGeer, T.: 1990b, ‘Passive Dynamic Walking’. International Journal of

Robotics Research 9 , 62–82.

[12] McGeer, T.: 1990c, ‘Passive Walking with Knees’. In: Proceedings of the

IEEE Conference on Robotics and Automation, Vol. 2. pp. 1640–1645.

[13] McGeer, T.: 1993, ‘Dynamics and Control of Bipedal Locomotion’. Journal of Theoretical Biology 163 , 277–314.

[14] Piiroinen, P.: 2000, ‘Passive Walking: Transition from 2D to 3D’. Technical report, KTH, Department of Mechanics.

20

# Paper 4

P4

Because of the copyright we can not publish this paper on the Internet

# Paper 5

P5

Because of the copyright we can not publish this paper on the Internet

# Paper 6

P6

Because of the copyright we can not publish this paper on the Internet

# Paper 7

P7

# 3D Passive walkers: Implementing code for simulation and stability calculations

Jesper Adolfsson

Royal Institute of Technology

Department of Mechanics

S-100 44 STOCKHOLM

SWEDEN

August, 2000

Abstract.

This text is meant to be an introduction to the implemented code for modelling, simulating, and analyzing the 3D passive walker. Since external force functions are used, special care has to be taken when deriving the variational equations.

The variational equations are used for locating periodic gaits of the walker and to determine the stability of found periodic gaits. However, the standard use has to be modi…ed due to the discontinuities in the 3D passive walker. Numerical computations were performed in Matlab. However, Matlab’s standard ODE-…le format had to be suitably modi…ed to support discontinuity handling and external force functions.

Also reported here are the implemented Matlab code for locating periodic gaits of the walker.

1

## Introduction

Previous studied planar passive walkers were constrained to move in a plane to prevent lateral dynamics, for example see McGeer [10]. McGeer’s original planar passive walker did not have any knees, thus foot scu¢ng was neglected during the swing phase. McGeer later introduced a knee, which solved the foot scu¢ng problem. All impacts were modeled as perfectly inelastic impacts using impact laws resulting in discontinuous jumps in velocity state variables.

Extending such a mechanism into three dimensions presents the modeler with some design decisions, such as the foot design, knee design, and how the two legs should be linked together. Depending on design choices it might be necessary to switch the impact model, such as the replacement of discontinous models with sti¤ springs and dampers. What usually necessitates this switch is the

J. Adolfsson problem of handling multiple contact points, which might result in in…nite many bounces between contact points in …nite time. Thus, most of the 3D walkers using discontinuous impact models have made sure that only one contact point exist at any give time and that the switch of stance leg to swing leg and vice versa will occur at the impact instance. Examples are;

² Keeping the shape of planar walker foot, thus, creating a knife edged foot in three dimensions, see McGeer [11].

² Introducing an additional curvature of the foot, thus, making it a contact surface, see Mombaur et al. [12] and Kuo [7].

² Using a light foot plate that instantaneously levels with the ground at foot impact, see Wisse et al. [18]. The impulse from the ground plane on the foot can therefore be assumed to take place at a single point.

It is worth noting that the two …rst designs, in the ideal case, won’t restrict rotation about the normal direction of the ground plane at the contact point.

However, the foot plate design can, depending on joint design, restrict rotations.

In the …rst two cases, the rolling constraint gets more complicated in three dimensions. The foot surface will introduce some extra design parameters. For example Mombaur et al. [12], used toroidal feet in the successful modeling and simulation of the Tinkertoy walker, thus, only adding one additional parameter to the foot design.

In contrast to the planar knee-less walkers, 3D knee-less passive walkers don’t need to su¤er from foot scu¢ng since they can lean to the opposite side of the swing leg, see Kuo [7], Coleman and Ruina [4], and Nichols and Witt

[13].

The foot design chosen here is to add an additional toe contact point for each foot, which necessitates the switch from discontinuous impact models to continuous impact models. An advantage of this design is that is now possible to start the 3D walker in a con…guration that intuitively should retain the essential dynamics of the planar passive walker. This con…guration is to some extent similar to the ones used for implemented passive walker. Namely, that the mass centers of each body are kept in a plane and the feet are placed symmetrically about this plane. However, as shown in Figure 1, the foot points are placed at the same distance from the sagittal plane.

The remainder of this work has the following form. In section 2, the modelling assumptions are presented and discussed in detail, which includes the kinematical modelling of the 3D passive walker and how forces and torques can be modelled and implemented using external functions. Section 3 deals with the intricacies of exporting the equations of motion and variational equations to the Matlab environment. In section 4, is is shown how the standard Matlab

ODE-…le was altered to support discontinuity handling and variational equa-

2

3D Passive walkers: Implementing code n

2 n

1 n

3

Figure 1.

The toe points make regular contact with the ground plane. The nominal plane is de…ned by the initial hip point position and spanned by the gravity vector and the ground plane normal. The sagittal plane contains the center hip point and has a normal in the hip axis direction.

tions. The paper concludes with a discussion on how this framework can be used for parameter searches.

2

## Modelling

The planar model used di¤erent sets of di¤erential equations, see Adolfsson [2], depending on the state of the walker. Here, these impact models are replaced with linear springs and linear dampers. These springs and dampers are activated/deactivated depending on the current state of the walker, such as a foot point being in contact with ground or not or knee being locked or not. Thus, the same set of di¤erential equations can be used throughout the simulations.

A drawback of this particular way of modeling contact forces is that it introduces extra modeling parameters, see Figure 2. The 3D passive walker was started using initial conditions from the planar passive walker. However, some manual tuning of these initial conditions was required before a gait was observed in the 3D walker. It is interesting to note that the …rst observed simulated gaits of the 3D passive walker didn’t walk straight down the plane.

Thus, the introduction of additional degrees of freedom and the switch to a continuos system introduced new interesting dynamics.

3

J. Adolfsson upper leg knee joint active when in hyperextension lower leg vertical damper active when toe point has a downward velocity free to swing hyperextension

Figure 2.

Sti¤ springs and dampers are used to model the contacts between the toe points and the ground plane. Sti¤ angular springs and dampers are used between the upper leg and lower leg to prevent a collapse of the knee during hyper extension.

2.1

Ground plane modelling

Initially, the ground was modeled with sti¤ springs and high damping, as to mimic the inelastic impacts of the planar walker. This also prevents the toe contact points of having any larger motion while attached to the ground. It is now possible to investigate the e¤ects of di¤erent ground plane characteristics, such as walking on a hard ‡oor versus a soft ‡oor. Additionally, it is straightforward to estimate the required friction coe¢cient by taking the ratio of the horizontal to the vertical force at each instant.

2.2

Knee modelling

Since discontinuos impacts models were discarded in favor of continuos impact models, the inelastic knee impact model was also replaced with a continuous model. Thus, linear angular springs and linear angular dampers are activated/deactivated depending on the position of the knee, see right pane of

Figure 2. In the planar case, the knee is assumed locked just until after the release of the hind leg. To model this in the 3D passive walker, the angular damping of the knee was assumed active in both directions as long as the knee is in hyperextension. In Adolfsson [1], it is shown how this can be passively implemented in an experimental walker.

2.3

Torso

Another major di¤erence between the planar walker and the 3D passive walker is the introduction of a torso. This torso acts as the link between the two legs. The torso was introduced for two reasons, …rstly it was assumed that measurement equipment would have to be used in the experimental walker

4

3D Passive walkers: Implementing code and that the weight of this equipment would not be negligible. Secondly, for practical purposes it is necessary that the walker should be able to carry some payload. Thus, the e¤ects of di¤erent torso mass con…gurations should be possible to investigate. However, there were no plans on using an upright torso with a center of mass situated above the hip line, which would most likely require active control to maintain the upright position. Therefore, most simulations and parameter studies presented here have the center of mass of the torso situated on the hip axis. Positioning of the center of mass on the hip line introduced a new problem. The coupling between the rotational motion of torso and the rest of the walker became too weak, thus potentially creating problems in the search of periodic gaits. To increase the coupling, a rotational damping between the legs and the torso was introduced.

2.4

Simulation and analysis

Using direct numerical simulation, only stable periodic gaits are accessible.

Therefore, a root …nding scheme for the 3D walker was implemented to access unstable periodic gaits. Of course, the stable gaits are of main interest due to their possibility of being implemented passively. However, unstable gaits can turn into stable gaits, as parameters of the system are varied. Therefore, following unstable periodic gaits can expand the number of found solutions.

In addition, it is believed that unstable or weakly unstable solutions are easier to stabilize with active control, compared to actively achieve the motion from ground up. Root …nding is implemented with the Newton-Raphson scheme, which require derivative information. By using the export routine exmex, developed by Lennartsson [8], it is possible to export the variational equations.

Since the 3D walker contains both force discontinuities and impact like changes of the state variables, the standard use of the variational equations needs to be suitably modi…ed. In addition, the derivative information can be used to determine stability characteristics of a found periodic gait.

In the following text, some issues regarding the derivation of the equations of motions and variational equations are discussed. In the …nal chapters, the

Matlab code used for integrating the equations of motion and variational equations is discussed, along with the implemented Newton-Raphson scheme for

…nding periodic gaits. In the appendix, the Sophia/Maple code for deriving the equations of motion and variational equations is given.

2.5

Maple/Sophia

The equations of motion (EOM) were derived with the aid of Sophia, see Lesser

[9]. Sophia is implemented as a set of routines, which can be executed in di¤erent symbolical algebra programs, such as Maple and Mathematica. Sophia includes routines for deriving EOM for mechanical systems using Kane’s method, see Kane and Levinson [6] or Lesser [9]. It is also useful for kinematical analysis of mechanisms. For example, Sophia has been used for deriving EOM in the …eld of robotics at ABB Robotics, vehicle dynamics see Vågstedt [17], pantographs see Drugge [5], and washing machines at Electrolux Research and

5

J. Adolfsson

Innovation AB. It has also been used in education, both in its original form to teach constrained rigid multi-body dynamics and in a revised form, for teaching kinematics. Thus, Sophia is a versatile utility with many applications.

Since the symbolical-algebra programs have rather limited numerical capabilities and performance, the exmex set of routines was developed by Lennartsson

[8]. Exmex is currently only available for Maple. Exmex includes routines for exporting EOM to Matlab. For performance reasons, it exports them as Matlab compatible C …les (mex-…les). The EOM can be on both explicit and implicit form, or a combination of the two. It also includes routines for exporting variational equations (VE), which are here used for locating periodic gaits and stability calculations, see later chapters.

The Sophia/Maple code for deriving the EOM and VE can be found in the

Appendix.

2.6

Kinematics

The passive walker consists of …ve bodies as depicted in Figure 3. The bodies are connected by hinge joints. The bodies are; an upper torso labeled T , two upper legs labeled U

1 and U

2

, and two lower legs labeled L

1 and L

2

. We also consider the ground plane as a body N . The mechanism has ten degrees of freedom. With each body B we associate three basis vectors b

1

; b

2

; b

3

. We also specify a coordinate system for each body based on an origin B. A position of a point in this coordinate system will be labeled [b

1

; b

2

; b

3

]

B

, vectors will use this notation too. Starting from the top, we have the reference point of the torso, labeled T which is given by [q

1

; q

2

; q

3

]

N

. This reference point is situated on the hip line, which connects the two legs. The rotation from N to T is accomplished by rotating an angle q

6 about the 3-direction, an angle q

5 around the new 2-direction into an intermediate body V. Finally, the orientation of body B is accomplished by rotating an angle q

4 around the 1-direction in body

V. All rotations are positive in the sense of the right hand rule. Connected to the torso by the hip hinge joints are the two upper legs. The orientations of the upper legs are given by a rotation from V an angle q

7 respectively q

9 about the 1-direction. Thus, the orientation of the legs doesn’t depend on the angle q

4

. This is di¤erent from the de…nition found in Adolfsson et al. [3] where the orientation of the legs depended on q

4

. The reason for doing this is that under certain parameter choices the dynamics of the walker will be invariant to the orientation of the torso corresponding to the angle q

4

, see later chapters. Thus, q

4 need not to be taken into account in the search for periodic gaits.

The origins of the hip joints are situated on the hip axis. Connected to the upper legs by the knee hinge joints are the lower legs. Their orientations are accomplished by a rotation q

8 respectively q

10 about the 1-direction. The origins of the lower legs are situated on the knee hinge joints. When all angles are zero all body-…xed axes coincide.

We introduce a set of generalized speeds u i

; i = 1; : : : ; 10 corresponding to the generalized coordinates q i described above. The velocity of reference point

6

3D Passive walkers: Implementing code

T

T cm

U

1

U cm1

U

1

T

N

2

3

1

L

1

L cm1

L

1

L

11

L

12

Figure 3.

Illustrative picture of the 3D passive walker where bodies and points are labeled.

T is [u

1

; u

2

; u

3

]

N and the angular velocity of the torso T is given by [u

4

; u

5

; u

6

]

T thus the velocity components will also be independent of the rotation angle q

4

.

,

The angular velocities of the upper legs relative to the torso are given by

[u

7

; 0; 0]

T

[u

8

; 0; 0]

U

1 and [u

9

; 0; 0]

T

. Similarly, the angular velocities if the lower legs are and [u

10

; 0; 0]

U

2 relative to the upper legs. The kinematical di¤erential equations (KDE) relating _ i to u i are,

2 3 2

4

_q

_q

1

2

5 = 4 cos(q

6

) cos(q

5

) ¡ sin(q

6

) cos(q

6

) sin(q

5

) sin(q

6

) cos(q

5

) cos(q

6

) sin(q

6

) sin(q

5

)

3

5

2

4 u u

1

2

3

5

(1)

_q

3

¡ sin(q

5

) 0 cos(q

5

) u

3 for the positions and,

2

4 q _

4 q _

5 q _

6

3

5 =

2

4

1 0 tan(q

5

)

0 1 0

0 0 cos(q

5

)

¡1

3 2

5 4 u

4 u

5 u

6

3

5

(2) for the rotations of the torso. The relation between the hip and knee angles q i

= u i

; i = 7; 8; 9; 10:

Since the forces between the ground plane and the toe points depends on the initial contact point we need to store the corresponding coordinates. One

7

J. Adolfsson possible solution is to add the initial contact points as state variables of the system. Since we are interested in …nding periodic gaits, meaning that the state variables should return to their initial values after one step, we can give the contact coordinates relative to some reference point in the walker, for example

T . At each foot point impact we update the corresponding states p i

; i = 1; : : : ; 8 with the new coordinates, thus a periodic gait will result in a periodic behavior in the impact point states. The di¤erential equations between the discontinuous updates of the contact point states in the 1-direction and 3-direction are,

· p _ i p _ j

¸

=

·

¡ cos(q

6

) cos(q

5

) sin(q

6

) ¡ cos(q

6

) sin(q

5

)

¡ sin(q

5

) 0 cos(q

5

)

¸

2

4 u

1 u

2 u

3

3

5

(3) where i = 1; 3; 5; 7 (1-direction) and j = 2; 4; 6; 8 (3-direction). Since the contact points are given relative to the walker, it follows that changing the initial conditions, which corresponds to moving the walker in the plane (changing q

1 and q

3

), the foot points will follow along. Therefore, the toe force will be independent of q

1 and q

3

. Thus, the dynamics will be indi¤erent to changes in q

1 and q

3 and we do not need to consider those state variables in the search for periodic gaits. If we include q

1 in the search for periodic gaits, we limit ourselves to gaits where the hip point T start and ends in the nominal plane.

In order to study very wide feet, Piiroinen, see [15], expressed the contact point positions in the V reference frame. Thus, the contact points will follow a rotation of the walker.

2.7

State variables

Along with the 28 continuous state variables there are six discrete state variables. These discrete states correspond to the knee being locked or unlocked and the toe contact points being attached/detached from the ground plane.

When certain events occur in the system the discrete states change their values. Two types of events are monitored. A zero crossing of the knee angles

(q

8

; q

10

), positive values correspond to hyperextension of the knee. A zero crossing of the toe points L ij vertical position. For convenience, the 28 continuos and 6 discrete states are listed in Table I. The unlocked knee and the detached foot point state is represented by a zero value and the locked knee and attached foot point state with the value one.

2.7.1 Mass properties

Each physical body has a center of mass labeled B cm

. The position of B cm is given relative to the origo B. The moments of inertia are given about the center of mass and its six components are given relative to the body …xed basis vectors.

2.8

Forces and torques

For modeling reasons, it is advantageous to divide the forces and torques acting on the walker into two categories. Firstly, continuous forces that are always

8

3D Passive walkers: Implementing code present, such as gravity and, secondly, intermittent forces, such as knee torques and toe point contact forces. The always-present forces lend themselves to be incorporated into the equations of motions at the modeling stage whereas the intermittent forces enters as general forces and torques in the modeling stage and are evaluated by external functions.

These external functions can be further divided into functions that have the generalized states as arguments and the functions that have functions of the generalized states as arguments. This can symbolically be expressed as, f

1

= f

1

(q; u; p) f

2

= f

2

(x(q; u; p))

(4)

When deriving the VE, special care has to be taken when the arguments of the functions are functions of the generalized states, since the inner derivative needs to be computed. This dependence is accomplished by explicitly declare that x is a function of (q; u; p). Since Sophia/Maple is aware of this dependency, it can use the chain rule of di¤erentiation to evaluate the derivatives of these force functions with respect to the generalized state. Thus, we only have to specify the derivative of the force functions with respect to the arguments of the function. We can symbolically write the derivatives of f

2 as, df

2 dq

=

@f

2 dx

@x dq

(5)

We supply @f

2

[email protected] as a C function whereas dx=dq is computed by export routine exmex . This provides a numerically e¢cient solution, since all expressions of type dx/dq can be optimized together with the EOM and the VE. Thus, there is no di¤erence in the external C …le between functions that depend directly or indirectly on the generalized states.

The next sections describe how the forces and torques enter the Sophia/Maple code at the modeling stage. Since the same external C-function can be used for calculating forces or torques at di¤erent places, the arguments that di¤erentiate the function calls are shown. For example, di¤erent toe points use the same function to calculate the force. In addition, the C implementation is given.

2.8.1 Gravity

Since the walker is assumed to walk down an incline, gravity is inclined an angle ® with respect to the ground plane normal, as depicted in Figure 1. The plane containing the gravity vector is referred to as the nominal plane. The gravity force, which is acting on all bodies, can be written as,

F i grav

= ¡m i g[0; cos(®); sin(®)]

N

(6) where g is the gravity constant and m i represents the mass of each body. The gravity force is incorporated into the EOM.

9

J. Adolfsson

Table I. Continous and discrete state variables.used in the 3D passive walker

Continous states Description q q

1

4

; q

; q

2

5

; q

; q

3

6 q

7

; q

9 q

8

; q

10 p

1

; p

3

; p

5

; p

7 p

2

; p

4

; p

6

; p

8 u

1

; u

2

; u

3 u

4

; u

5

; u

6

Discrete states s

1

; s

2 s

3

; s

4 s

5

; s

6

Position of hip point

T given in body

N

2

Angles describing the orientation of the torso

Hip angles

Knee angles

Initial toe contact point relative to hip point T (1-dir. in

Initial toe contact point relative to hip point T (2-dir. in

Velocity of hip point

T given in body

V

Angular velocities of body

T given in reference frame

V

N

)

N

)

Knee 1 and 2

Toe 1 and 2 of leg 1

Toe 1 and 2 of leg 2

2.8.2 Hip torque

Torques are introduced between the torso and the upper legs to increase the rotational coupling between the two bodies. These torques are aligned with the hip axis and the torque applied to the torso is,

T torso

= [T e hl

1

+ T e hl

2

; 0; 0]

V

(7) and

T ul

1

T ul

2

= [¡T e hl

1

; 0; 0]

V

= [¡T e hl

2

; 0; 0]

V

(8) for the two upper legs. The actual torques are calculated in an external Cfunction, which returns T e hl

1 and T e hl

2

.

T e hl

1

T e hl

2

= hip(q

4

; q

7

= hip(q

4

; q

9

; u

4

; u

7

; hip_k,hip_delta,hip_d)

; u

4

; u

9

; hip_k,hip_delta,hip_d)

(9)

Thus, the same parameters are used for leg one and two. The corresponding C function, which include support for a hip spring, is found in the code below.

double hip(double torso_q,double leg_q,double torso_u, double leg_u,double hip_k,double hip_delta,double hip_d)

{ return hip_k*(leg_q-torso_q-hip_delta)+ hip_d*(leg_u- torso_u);

}

10

3D Passive walkers: Implementing code

Expressing the necessary derivatives of this function is straightforward and in the code below, the above C function is di¤erentiated with respect to the torso angular velocity.

double hip_torso_u(double torso_q,double leg_q,double torso_u, double leg_u,double hip_k,double hip_delta,double hip_d)

{ return -hip_d;

}

2.8.3 Knee torque

The lower leg is free to swing as long as it is not in hyperextension. However, when the knee is in hyperextension, corresponding to knee angles q

8 and q

10 being positive, a collapse is prevented by an applied torque. This torque is aligned with the hip axis and acts between the upper leg and the lower leg. At the modeling stage, the torque acting on upper leg one is expressed as,

T ul

1

= [T e kl

1

; 0; 0]

UL

1 and the torque acting on lower leg one is accordingly,

(10)

T ll

1

= [¡T e kl

1

; 0; 0]

UL

1

(11)

Similar to the hip case, the actual torque is calculated in an external C function, which return the value for T e kl

1 and T e kl

2

.

T e kl

1

T e kl

2

= knee(s

1

; q

8

= knee(s

2

; q

10

; u

8

; knee_k,knee_d,knee_d_reb)

; u

10

; knee_k,knee_d,knee_d_reb)

The corresponding C function is found below.

(12) double knee(double s, double q,double u,double knee_k, double knee_d, double knee_d_reb)

{ if (s>0.0) return (knee_k*q + (u <= 0.0 ? knee_d*u : knee_d_reb*u)); else return 0.0;

}

The …rst argument of this C function is the discrete state of the knee. A nonzero torque is only returned if the knee is in hyperextension, which corresponds to s

1 and s

2 equal to one. The C function supports di¤erent damping constants,

11

J. Adolfsson depending on the rotational direction of the lower leg. When the rebound damping is positive, the knee will be sticky. When set to zero, the knee torque will model a simple mechanical stop. The derivatives with respect to q and u are given below.

double knee_q(double s, double q,double u,double knee_k, double knee_d, double knee_d_reb)

{ if(s>0.0) return knee_k; else return 0.0;

} double knee_u(double s, double q,double u,double knee_k, double knee_d, double knee_d_reb)

{ if (s>0.0) return (u <= 0.0 ? knee_d : knee_d_reb); else return 0.0;

}

2.8.4 Toe point forces

The interaction between the ground plane and the walker occur at the four toe points L ij

; i = 1; 2 and j = 1; 2. These toe points are situated on the lower legs as shown in Figure 3. The resulting force has components along each of the three basis directions in N . There is no torque at the contact point, which is one of the reasons for using two contact points at each foot. Two contact points will only allow rotation around the axis de…ned by the line going through the two contact points. At the modeling stage, the applied force on lower leg one is given by,

F ll

1

= [f e

11

1

+ f e

12

1

; f e

11

2

+ f e

12

2

; f e

11

3

+ f e

12

3

]

N

:

The torque resulting from this force, acting on the lower leg, equals,

(13)

T ll

1

= [t e

11

1

+ t e

12

1

; t e

11

2

+ t e

12

2

; t e

11

3

+ t e

12

3

]

N

; (14) where t e ij k is computed from the force expression using the common sub expression feature of exmex. Thus,

[t e

11

1

; t e

11

2

; t e

11

3

]

N

= L cm

1

L

11

£ [f e

11

1

; f e

11

2

; f e

11

3

]

N

(15) where the vector from the toe contact point L

11 to the center of mass of the lower leg L cm

1 is expressed in the N reference frame. The forces and torques for the other contact points are calculated in the same way. Since each direction in N is treated independently, three di¤erent function calls are made. The external C function calls to calculate f e

11

1

; f e

11

2

; and f e

11

3 are, f e

11

1

= toefx(s

4

; x; v x

; kX,dX,p

1

) (16)

12

3D Passive walkers: Implementing code f e

11

2 f e

11

3

= toefy(s

4

= toefz(s

4

; y; v

; z; v y z

;

; kX,dX) kX,dX,p

2

) where s

4 re‡ects the discrete state of the toe point being attached/detached to the ground plane. The arguments x; y, and z are the position of the toe point given in reference frame N and vx; vy, and vz are the corresponding velocities. These six quantities, which all depend on the generalized states of the system, are given as common sub expressions in Maple/Sophia. In the C code found below, two functions that models the vertical force di¤erently are given. The …rst one models a ground plane where the damper is only active when the velocity is into the ground plane. Thus, at rebound, the vertical force will only come from the spring. The second force function models a ground plane where the damper and spring are active as long as the force on the toe point is positive.

double toefy(double stat, double y, double vy, double kY, double dY)

{ if(stat>0.0) return -kY*y-(vy<=0.0 ? 1.0 : 0.0)*dY*vy; else return 0.0;

} double toefy(double stat, double y, double vy, double kY, double dY, double dYrebound)

{ double Fy; if(stat>0.0)

{

} else

Fy = -kY*y-(vy<0 ? dY : dYrebound)*vy; return (Fy>0.0 ? Fy : 0.0); return 0.0;

}

The horizontal force functions toefx are given in the code found below, The argument posx is the initial toe contact point coordinate in the n

1

-direction.

It should be noted that with the second vertical force model, it is possible to have forces in the ground plane directions while the vertical force component is zero. This is somewhat unphysical and could be avoided by triggering the detachment of the toe point when the vertical force becomes zero. However, handling a possible reattachment, occurring shortly after the release, would then need some special considerations, such as introducing dynamics for the

13

J. Adolfsson ground plane. It is believed that the success of the passive 3D walker will not depend on the exact form of ground plane model. Below is the needed derivatives with respect to the function arguments given. Note that the derivative with respect to the initial contact coordinate posx is also required, since posx belongs to the states of the system that need to be varied.

double toefx(double stat, double x,double vx, double kX, double dX, double posx)

{ if(stat>0.0) return -kX*(x-posx)-dX*vx; else return 0.0;

} double toefx_x(double stat, double x,double vx, double kX, double dX, double posx)

{ if(stat>0.0) return -kX; else return 0.0;

} double toefx_vx(double stat, double x,double vx, double kX, double dX, double posx)

{ if(stat>0.0) return -dX; else return 0.0;

} double toefx_p(double stat, double x,double vx, double kX, double dX, double posx)

{ if(stat>0.0) return +kX; else return 0.0;

}

2.9

Helper functions

Since the toes initial-contact-point states p i have to be updated at each ground impact, helper functions are used to calculate this initial position. Since these functions return the position of the toe point given the state and parameters of the system, it is necessary that the state variable correspond to an impact con…guration. For e¢ciency, these functions are coded as C functions.

The rotation matrices, which give the directions of the basis vectors of each reference frame, are also exported as C functions. These functions are mainly used by the visualization code, which is described in later sections.

14

3D Passive walkers: Implementing code

3

## Exporting EOM and VE

Exporting the EOM and VE to Matlab C code is accomplished by using the exmex routine, which is developed by Lennartsson [8]. For simulation of the 3D walker, the kinematical di¤erential equations (KDE) and EOM are exported together. For integration of the variational equations the KDE, EOM, and

VE are exported together. Thus, optimization can take place across all the equations.

The KDE are put on explicit form whereas the EOM and VE are put on implicit form due to their complexity. The common subexpression feature of exmex is used to evaluate external function calls (force/torque functions) and the arguments used in these calls, see Figure 4. During derivation of the VE,

Maple needs to know the external functions dependence on state variables.

However, this syntax is not C compatible and a substitution of the VE substitution list is needed to make the functions ”C-friendly”. In Figure 4, an example of the process of exporting the EOM and VE is shown. Before exporting the EOM, the VE substitution list needs to be substituted into the common sub expressions. When generating the VE, this substitution should be delayed until after exmex has internally generated the VE. Therefore, this list is passed as an argument to exmex. Note that the order in the list is important.

Since Maple’s optimize command is used to reduce the computational cost, special care has to be taken when compiling the exported C …le. It seems like

C compilers have trouble when compiling already optimized computational sequences. Therefore, this feature has to be turned o¤ during compilation or the result will be excessively long compilation times, especially when handling large …les such as the VE.

When using Maple’ s ”optimize” command, the resulting size of the compiled …le will be about 300kb. Using the option ”tryhard” in optimize it is possible to further reduce the size to about 70kb. However, it takes Maple about 40 times longer to generate the EOM code using this option and 300 times longer to generate the VE code.

Together with the EOM, the necessary C code to detect the six events is also exported. The produced …le is compatible with all Matlab ODE integrators.

3.1

Discontinuity mappings

If there is a discontinuity associated with an event, during integration of the

VE, a discrete mapping needs to be applied to the derivative of the ‡ow. The derivative of this mapping can be written as,

M a !b

=

@G

@x

¯

¯

¯

¯ x b

+

³

F a

(x a

) ¡

@G

@N

@x

¯

@x

¯ x b

¯

¯ x b

F

F b b

(x

(x b

) b

)

´

@N

@x

¯

¯ x b

(17) where G is the discontinuous jump in state variables, F a and F b is the vector

…eld before respectively after the event and N is the event surface. The subscripts a and b refer to the instant just before the event respectively just after

15

J. Adolfsson the event occurred. For a derivation of this mapping, see Adolfsson et al. [3].

The evaluation of the vector …eld (F a and F b

) is accomplished by calling the exported EOM C …le with the discrete and continuous state corresponding to just before and just after the event occurred. The derivative of the event surface, @[email protected], is derived in Maple by di¤erentiating the function that triggers the event. This derivation is with respect to all state variables. The expressions for the knee events are particularly simple and are not exported as C

…les. The expressions for the toe point events are more complicated and are exported from Maple as C …les. Finally, the quantity @[email protected] only di¤ers from the identity matrix during toe point impact, since at knee locking no jump in the state variables occurs. At toe point impact, the toe point states will be updated with the new impact position. The expression for @[email protected] is derived in Maple and exported as a C function.

4

## Numerical integration and periodic orbit search

4.1

Integration of the EOM

Numerical integration of the EOM is performed in the Matlab environment.

One of the advantages of Matlab is its set of robust direct numerical integrators which range from non-sti¤ to sti¤, low-order to high-order, and variable-order integrators. The speed of these integrators is moderate due to their implementation in Matlab’s own language.

A common interface is introduced for direct numerical integration of dynamical systems containing continuous states, discrete states, and VE. Thus, the structure of Matlab’s ODE …le was suitably modi…ed into a state…le, which include support for discrete states, event response and discontinuity mappings.

In addition, an extra top layer, named state‡ow, was introduced for calling the event response functions and handling the continuous and discrete states, see

Figure 5. The state…le now needs to evaluate the following,

² EOM

² Jacobian of the EOM

² EOM and VE together

² Event detection

² Event response

² @[email protected], @[email protected] where italic text describe the additions compared to Matlab’s original ODE …le.

Since some integrators need to evaluate the Jacobian of the EOM, support for extracting the Jacobian from the VE was also added. As seen in Figure 5, the event response function is called by the state‡ow function. These events are detected by the event trigger function, which terminates the current integration and return execution to state‡ow. Some di¤erences exist when integrating the

VE, see next section. In addition, the event response function prints a status

16

3D Passive walkers: Implementing code message that tells what event occurred and at what time. This can be used to monitor the success of the simulation.

Since Matlab’s integrators does not support discrete states and exmex only export …les compatible with these integrators, the discrete states have to be transferred into the parameter list by the state…le layer.

During integration of the EOM, the ode15s integrator is used because it produces the fastest execution times. The integrator is a variable order integrator for sti¤ di¤erential equations. The 3D walker system is sti¤ due to the high forces associated with the sti¤ness of the ground plane. This integrator requires the evaluation of the Jacobian. This evaluation can be accomplished either numerically or analytically, but the particular choice does not seem to have any larger in‡uence on integration times. In Table II, some statistics regarding code size and execution times are shown. As seen in this table, there is little di¤erence in execution time between the larger and smaller …le. The reason for this is that most of the time is spent in the integrator and not in the function evaluating the derivatives.

Table II. Statistics using a PII 300MHz, Matlab 5.3, all integration tolerances set to 1e-6, and no visualization.

Desc.

EOM

EOM, tryhard

VE

VE, tryhard dll …le size exec. time % in func.

time

200kb

90kb

850kb

312kb

21.8s

18.6s

375s

253s

19

7.6

49

31.6

4.1s

1.4s

181s

80s

4.2

VE Integration

During integration of the VE, an extra layer is introduced between state‡ow layer and state…le layer, see Figure 4. The purpose of this layer is twofold.

Firstly, it calls the event response function, which updates the discrete and continuous states. Secondly, it calls the VE event function, which returns

@[email protected] and @[email protected] With this information and two calls to evaluate the vector

…eld before and after the event (F a and F b

), it is possible to calculate the discrete mapping, equation (17), which is applied to the derivative of the ‡ow.

The ode113 integrator is used for integration of the VE. It is a variable order integrator for non-sti¤ di¤erential equations. A sti¤ solver would have been preferred but all ODE solvers of Matlab require the evaluation of the Jacobian.

Evaluating the Jacobian would be excessively hard due to the number of states associated with integration of the VE (28 states for the EOM plus 28 ¢ 28 states for the VE).

17

J. Adolfsson

EOM in Maple q1t = f q2t = 0

Common Sub Expressions in Maple x = q1+q2 f = f(x(q1,q2))

**exmex**

EOM in C code x = q1+q2; f = f(x); q1t = f; q2t = 0; f(x(q1,q2)) = f(x)

D[1](f)(x(q1,q2)) = f_x(x) diff(x(q1,q2),q1) = dxdq1 diff(x(q1,q2),q2) = dxdq2 x(q1,q2) = x substitute

VE in C code dxdq1 = 1; dxdq2 = 1; dfdx = f_x(x); dq1tdq1 = dfdx*dxdq1; dq1tdq2 = dfdx*dxdq2; dq2tdq1 = 0; dq2tdq2 = 0;

Figure 4.

Showing the processing of the EOM and common subexpression feature to generate both EOM and VE in C code.

initial discrete state initial continuos state parameters integration time initialization of

output vectors integrator ode event trigger function equations of motion event trigger function event

occured t = t end iterate over occurred events event response state transitions state transitions assemble output from integration t < t end t = t end stateflow terminate matlab statefile c-implementation

Figure 5.

The di¤erent layers used during simulation of the EOM.

18

3D Passive walkers: Implementing code initial discrete state initial continuos state parameters integration time initialization of

output vectors integrator ode variational equations event trigger function equations of motion and

variational equations event trigger function event occured event response state transitions state transitions iterate over occurred events t = t end state transitions calculate discontinuity mapping and apply it to the Jacobian discontinuity derivatives discontinuity derivatives assemble output from integration t < t end t = t end terminate stateflow matlab helper file statefile c-implementation

Figure 6.

The di¤erent layers used during integration of the equations of motions

(EOM) and variational equations (VE) together.

4.3

Visualization

During simulation, it is possible to animate the 3D walker. This visualization can provide clues why a certain simulation has failed. During normal parameter variations, it is wise to turn the animation o¤ to reduce the execution time.

There is no mechanism for transferring the parameters of the simulation to the visualization function. Therefore, the parameter set has to be declared global in the Matlab environment.

4.4

Periodic orbit search

The search for periodic orbits uses the Newton-Raphson scheme, which require the integration of the VE. The goal of the search is to …nd an initial condition x

0 x

0 and a integration time T

0 which returns the walker to the same con…guration after integrating the EOM a time T

0

. This search can be written as

©(x

0

; T

0

) ¡ x

0

= 0 (18) where the ‡ow function © satis…es ©(x

0

; t) = x(t) given x(0) = x

0

: Since every point on the trajectory of a periodic solution satisfy the above condition, a

Poincaré section is introduced to make the solution unique,

H(x

0

) = 0: (19)

19

J. Adolfsson

Given a good initial approximation of a periodic orbit (x

0

; T

0

) we would now like to get an update (¢x

0

; ¢T

0

) which takes us closer to the periodic orbit.

Using the Newton-Raphson scheme, the equations to solve are,

"

@©

@x

¯

¯ x

0

@H

@x

¯

¯ 0 x

0

¡ I

@©

@t

¯

¯ x

0

;T

0

0

# ·

¢x

¢T

¸

= ¡

·

©(x

H(x

0

0

; T

)

0

) ¡ x

0

¸

(20) where @©[email protected] is obtained by integrating the VE with the identity matrix as initial condition , @©[email protected] is the vector …eld at the end of the integration. With a su¢ciently good initial approximation, the scheme is expected to converge.

In the implemented code, convergence is said to be reached when the di¤erence between the quadratic norm of two consecutive iterations is below some prede…ned value. Although it is unphysical to compare angles and lengths, this method has proven adequate.

The Poincaré section that is used corresponds to one of the knee angles having a speci…c value. As the parameter is varied during the parameter search, it can happen that an event moves through the Poincaré section. Therefore, an automatic change of Poincaré section was implemented. This works by …nding the con…guration having maximum time distance too any event. In Figure 7, a ‡ow chart is shown which describes the search for periodic orbits.

By using extrapolation, it is possible to speed up the search, requiring less iterations. Termination of the search is done when the end of the parameter path is reached or if the Newton-Raphson iterations doesn’t converge within a speci…ed number of iterations. It is not uncommon that convergence isn’t obtained, Some possible causes are,

² No solution exists for the parameter set. Usually a saddle node or grazing bifurcation has occurred. The grazing bifurcation might be due to foot scu¢ng.

² The extrapolated initial condition and new parameter set is too far from the periodic solution and therefore the walker has fallen during the simulation.

² The extrapolated initial condition and new parameter set is too far from the periodic solution and therefore the Newton-Raphson scheme doesn’t converge.

4.5

Additional notes

To easily store and manage data about found periodic gaits, a Matlab structure was used to organize the information, see below. Among other things, the structure contains information about the state after one stride, y

1

. This can be used to …nd the step length as well as to …nd out if the walker walks at an angle, i.e. doesn’t return to the nominal plane after one stride. Walking at an angle results in di¤erent values in the …rst component of y

0 and y

1

, which corresponds to the hip center position. The threshold value, which is also found in the structure, is used to signal when the Poincaré cut is too close to one

20

3D Passive walkers: Implementing code previous obtained solution parameters initial conditions period time generate parameter path iterate and calculate updates

based on the

Newton-Raphson algorithm use prevoius obtained solution with i’th

parameter set too many iterations difference between newly

iterated solution and

previous solution is below specified norm find new Poincaré section if event is too close to the

Poincaré section store solution terminate use previous solution and

newly obtained solution to extrapolate initial

conditions used in the next parameter run

Figure 7.

Graph showing the main features of the code used for …nding periodic gaits during parameter variations.

21

J. Adolfsson of the event surfaces and therefore needs to be changed. Because of this, the value used for the Poincaré cut is also stored.

Table III. The Matlab structure used to store essential data about a found periodic gait.

ws = ver: ’2.0’ date: ’99-10-07’ time: ’10.50’ auth: ’Jesper Adolfsson’ desc: ’Foot-width test’ y0: [1x28 double]

T0: 1.6230

stat0: [-1 -1 1 1 -1 1] params: [86x1 double]

J1: [28x28 double] y1: [1x28 double] delta_t_thresh: 0.0500

pc_in_y7: 0.3000

version number creation date/time initial condition period time initial discrete state parameters of the system

Jacobian of periodic orbit con…guration after one stride threshold for pc-event currently used Poincaré cut

4.6

Simulation example

Below, the command for invoking a simulation and the resulting output is shown. As simulation is progressing the type and the time an event occurred is printed. If visualization is turned on, the 3D-walker is drawn at the times found in the integration time vector (third argument of state‡ow).

Table IV. The output resulting from an ordinary gait cycle.

Brackets with only numbers represents the toe points and bracket containing k1 an k2 represents the knees. Empty brackets correspond to an unlocked/detached state.

»

[t,y,s,te,ye,ie,se]=stateflow(’ode15s’,’walker_3d_ode’

,

[0:0.05:ws.T0],ws.y0,options,ws.stat0,ws.params);

[ ][ ][k1][k2][22][21] 0.324756(s)

[11][ ][k1][k2][22][21] 0.564310(s)

[11][12][k1][k2][22][21] 0.574678(s)

[11][12][k1][k2][22][ ] 0.582882(s)

[11][12][k1][k2][ ][ ] 0.593838(s)

[11][12][k1][ ][ ][ ] 0.612024(s)

[11][12][k1][k2][ ][ ] 1.136243(s)

[11][12][k1][k2][ ][21] 1.375908(s)

[11][12][k1][k2][22][21] 1.386299(s)

[ ][12][k1][k2][22][21] 1.394484(s)

22

3D Passive walkers: Implementing code

[ ][ ][k1][k2][22][21] 1.405455(s)

[ ][ ][ ][k2][22][21] 1.423651(s)

In Figure 8, the walker is sampled at di¤erent characteristic events, during eleven consecutive steps. In the upper right pane, the butter‡y shaped motion of the hip center point T is shown. From this …gure, it is clear that the mechanism has motion in all spatial directions (cf. Human Walking [16]). The parameters and initial conditions used, result in a weakly asymptotically stable periodic gait. The largest eigenvalue of the linearized system is 0.9685. The parameters and initial conditions of the 3D walker can be found in Table III and IV. Note that this particular walker has an overlap in the feet of 0.10m.

In Figure 9, the time history for the knee and hip angle is shown. In addition, the times for di¤erent events are shown. Note that after knee impact, the knee angle is less than the hip angle, corresponding to a locked knee.

4.7

Stability calculations

The search for periodic gaits are time consuming due to the size of the code that compute the variational equations. Also, as previously mentioned, it is common that the automatic search terminates due to di¤erent reasons, see previous bullet list. Therefore, manual search can sometimes be preferred over automatic search, such as interactively trying new parameter paths to avoid problems. However, a comparably fast computer is needed to perform manual search. The code has been tested on a computer equipped with the Compaq

Alpha EV6 processor yielding good performance when integrating the variational equations, which typically takes 20-30 seconds for one stride. Using this computer, it typically takes a couple of working days to …nd all connected solution branches of a found periodic gait.

5

## Conclusion

The methods and code presented here provide a framework for simulation and

…nding periodic gaits of a 3D passive walker. The methods and implemented code are not only useful for studying 3D passive walking, but could also be adapted for investigating other systems. The developed Matlab framework, which handles continuos and discrete systems and integration of variational equations, provide a good balance between ‡exibility and execution speed. The integration of the variational equations provides improved robustness, speed, and accuracy compared to using numerical derivatives. Using numerical derivatives, one has to assure that the obtained derivatives are accurate. Using integration of variational equations, the accuracy is controlled by the accuracy of the integration. In addition, calculating the Jacobian based on numerical di¤erentiation would require at least 28 integrations (same as the number of states) of the equations of motion. This would approximately take twice the time compared to integrating the variational equations, see Table II.

23

J. Adolfsson

Table V. Parameters used in the simulation of the 3D walker found in Figure

Figure

3 for a description of the mass and point labels used.

moments of inertia (kg m

2

) mass (kg) x y z xy xz

8

. See yz Body

T

U

1

; U

2

L

1

; L

2

0.800

2.354

1.013

2.0000

2.0180

2.4000

0.0

0.0

0.0

0.0080

0.0010

0.0100

0.0

0.0

0.0

0.0393

0.0010

0.0100

0.0

0.0

0.0

Point Label

T cm

U

1

U

2

U cm 1

; U cm 2

L

1

; L

2

L cm 1

; L cm 2

L

11

L

12

L

21

L

22 x (m)

0.0000

-0.1000

0.1000

0.0000

0.0000

0.0000

0.0000

-0.1500

0.0000

0.1500

y (m)

0.0000

0.0000

0.0000

-0.0910

-0.3500

-0.1663

-0.3132

-0.3132

-0.3132

-0.3132

z (m)

0.0000

0.0000

0.0000

0.0000

0.0000

0.0432

0.1050

0.1050

0.1050

0.1050

Ref. frame

T

V

V

U

1

; U

2

U

1

; U

2

L

1

; L

2

L

1

L

1

L

2

L

2

Hip/Knee k knee c knee c hip

Value

500.0 N m rad

¡1

20.0 N m s rad

¡1

0.04 N m s rad

¡1

Plane k x

; k y

; k z c x

; c x

; c x

®

Value

5000 N m

¡1

500 N s m

¡1

0.08 rad

Table VI. Initial condition used for the direct numerical simulation of the 3D passive walker found in Figure

8

.

Con…guration

State Value q

5 q

6 q

7 q

8 q

1 q

2 q

3 q

4

0 m

6.6037

¢

10

¡1 q

9 m

-2.7728

¢

10

1.4256

¢

10

¡1

¡2

¡2

4.9098

¢

10

2.2721

¢

10

¡2

¡1

7.9218

¢

10

4.7757

¢

10

¡2

Velocities

State Value u u u u u

1

2

3

4

5

-1.8026

¢

10

1.6363

¢

10

1.2288

¢

10

¡2

¡3

¡1

¡4

3.6005

¢

10

5.6527

¢

10

¡2 m rad rad rad rad rad rad m s

¡1 m s

¡1 m s

¡1 rad s

¡1 rad s

¡1

State Value q q q q q q q q q

10

11

12

13

14

15

16

17

18

-7.1645

¢

10

1.3116

¢

10

-2.7199

¢

10

¡3

¡1

-2.7171

¢

10

-1.8835

¢

10

¡1

¡2

¡1

-6.5930

¢

10

¡2

7.4855

¢

10

¡2

8.4060

¢

10

¡2

7.4581

¢

10

¡2 rad m m m m m m m m

State Value u u u u u

6

7

8

9

10

1.8713

¢

10

-3.9031

¢

10

-1.5636

¢

10

¡2

¡0

5.2527

¢

10

1.9532

¢

10

¡0

¡1

¡2 rad s

¡1 rad s

¡1 rad s

¡1 rad s

¡1 rad s

¡1

24

3D Passive walkers: Implementing code

0.67

Hip center motion

0.64

-0.02

0 0.02

Lateral deflection (m)

Stride time 1.6s

Stride length 0.69m

Inclination 4.6

°

Figure 8.

Stick animation of a stable periodic gait of the 3D passive walker. Parameters and intial conditions from Table IV and V. Toe clearance refers to the con…guration having nonzero local minimum in the toe point point distance to the ground plane.

5.1

Outlook

One of the goals of the parameter search is to …nd parameter sets that are possible to implement. Note that the parameters used here are hard to realize due to the high moment of inertia radius for the torso, 1.7m. As mentioned before, the parameter path to an implementable con…guration might include many detours in parameter space. Therefore, fast execution of the integration of the variational equations is important. As seen in Table II, most of the execution time is spent in the integrators, thus faster integrators would signi…cantly improve execution speed. This could be accomplished by switching from the integrators implemented in Matlab code to their C versions, which are available in the Matlab C/C++ library. Another speed increase would be to get rid of the extra layers associated with the developed framework. However, this might include major changes of the code and export routines. The time spent in the integrator, during integration of the equations of motion, account for almost 60% of the execution time. Thus, a switch to faster integrators, in combination with using the ’tryhard’ option to optimize could result in almost real-time performance. This could inspire many new interesting studies, such as real-time control by a human operator. In essence, one could learn how to walk, start, and stop in a simulated environment. Since it would be possible

25

J. Adolfsson

0.8

0.4

0

-0.4

0 right foot impact left foot release

10 knee angle hip angle

20 30 40 50 left foot impact right foot release

60 hip angle knee angle

70 80 90 100

Figure 9.

The time evolution for the upper leg and lower leg. Upper leg angle correspond to q

7 and lower leg angle to q

7

+ q

8

: to record the control signals, ideas on how human control their walking might be obtained.

Since the dynamical systems usually undergo bifurcations during parameter searches, an automatic scheme for …nding the resulting solution branches would be desirable. Schemes like this have been implemented in various programs, see Olsson [14].

A database for storing found periodic gaits would be bene…cial in the search for new possible con…gurations. Such a database should store all previous found gaits and be able to answer which of the previous found periodic gaits is closest to the new wanted con…guration, thus simplify the search.

6

## Appendix

6.1

Maple/Sophia code

The Maple sessions is reset and the Sophia library is read:

> restart;

> read ‘sophiaV5‘;

The continuous state variables are declared as being functions of time:

> &kde(10);

> dependsTime(seq(p.g,g=1..8));

6.1.1 Frame relations

Frame relations are de…ned, starting with the rotation from inertial reference frame N to the intermediate frame V and torso reference frame T and continuing with left and right upper and lower legs:

26

3D Passive walkers: Implementing code

> chainSimpRot([N,T1,3,q6],[T1,V,2,q5],[V,T,1,q4]);

> chainSimpRot([V,UL1,1,q7],[UL1,LL1,1,q8]);

> chainSimpRot([V,UL1,1,q7],[UL1,LL1,1,q8]);

6.1.2 Geometry

All relevant points of the walker are de…ned. The absolute positions of the centers of mass are de…ned using partitioned vectors. This reduce the computational complexity during derivation of the equations of motion, see Lennartsson

[8].

> rbody_hip_center:=N &ev [q1,q2,q3];

> r_torso_cm_rel :=B &ev [rx,ry,rz];

> rleg1_jointpos :=V &ev [rl11,0,0];

> rleg2_jointpos :=V &ev [rl21,0,0];

> rleg1_upper_cm_rel:= UL1 &ev [rl1u1,rl1u2,rl1u3];

> rleg2_upper_cm_rel:= UL2 &ev [rl2u1,rl2u2,rl2u3];

> rleg1_upper_jointpos_rel:= UL1 &ev [0,l1u,0];

> rleg2_upper_jointpos_rel:= UL2 &ev [0,l2u,0];

> rleg1_lower_cm_rel:= LL1 &ev [rl1l1,rl1l2,rl1l3];

> rleg2_lower_cm_rel:= LL2 &ev [rl2l1,rl2l2,rl2l3];

> rbody_cm:=mkc(rbody_hip_center,r_torso_cm_rel);

> leg1upper_cm:=mkc(rbody_hip_center, rleg1_jointpos, rleg1_upper_cm_rel):

> rleg2upper_cm:=mkc(rbody_hip_center, rleg2_jointpos,rleg2_upper_cm_rel):

> rleg1lower_cm:=mkc(rbody_hip_center, rleg1_jointpos,rleg1_upper_jointpos_rel, rleg1_lower_cm_rel):

> rleg2lower_cm:=mkc(rbody_hip_center, rleg2_jointpos,rleg2_upper_jointpos_rel, rleg2_lower_cm_rel):

6.1.3 KDE

The KDE is derived by expressing the velocity of the point T in the intermediary reference frame V (no q

4 rotation) and setting the expression for velocities and angular velocitites the generalized speeds and generalized velocities equal.

Note that the KDE for the toe contact points are included in the new KDE:

> v_body_hipcenter:= V &ev [u1,u2,u3];

27

J. Adolfsson

> omega_body:=V &ev [u4,u5,u6];

> v_body_hipcenter_qt:= diffFrameTime(rbody_hip_center,N);

> omega_body_qt:=N &aV B;

> ikde:={seq((V &to v_body_hipcenter &c i) =

(V &to v_body_hipcenter_qt) &c i,i=1..3), seq((V &to omega_body &c i) =

(V &to omega_body_qt) &c i,i=1..3), seq(p.(2*i-1).t=-q1t,i=1..4),seq(p.(2*i).t=-q3t,i=1..4)};

> kde_new := simplify(solve(ikde,

{seq(q.i.t,i=1..6),seq(p.i.t,i=1..8)}) union

{seq(q.i.t=u.i,i=7..10)} );

6.1.4 Velocities and angular velocities

Velocities of the center of mass points and angular velocities expressed in the generalized speeds. Please note the cdft command (frame-based di¤erentiation), which is used on partitioned vectors. The ccpt command is used to remove zero elements in the partioned vectors.

> v_body_cm := ccpt(map(Esimplify,subs(kde_new,cdft(rbody_cm,N)))):

> vleg1upper_cm := ccpt(map(Esimplify,subs(kde_new,cdft(rleg1upper_cm,N)))):

> vleg2upper_cm := ccpt(map(Esimplify,subs(kde_new,cdft(rleg2upper_cm,N)))):

> vleg1lower_cm := ccpt(map(Esimplify,subs(kde_new,cdft(rleg1lower_cm,N)))):

> vleg2lower_cm := ccpt(map(Esimplify,subs(kde_new,cdft(rleg2lower_cm,N)))):

> omega_leg1upper := &simp subs(kde_new,N &aV UL1):

> omega_leg2upper := &simp subs(kde_new,N &aV UL2):

> omega_leg1lower := &simp subs(kde_new,N &aV LL1):

> omega_leg2lower := &simp subs(kde_new,N &aV LL2):

6.1.5 Momentum and angular momentum

The csm command is used to perform scalar multiplication on partitioned vectors. The angular momentum is stated using ordinary Sophia syntax.

> pbody:=csm(m_body,v_body_cm):

> pleg1upper:=csm(ml1u,vleg1upper_cm):

> pleg2upper:=csm(ml2u,vleg2upper_cm):

> pleg1lower:=csm(ml1l,vleg1lower_cm):

> pleg2lower:=csm(ml2l,vleg2lower_cm):

> I_body:=EinertiaDyad(I_B11,I_B22,I_B33,I_B12,I_B13,I_B23,B):

> hbody:=I_body &o omega_body:

28

3D Passive walkers: Implementing code

> I_leg1upper:=EinertiaDyad(I_LU111,I_LU122,I_LU133,

I_LU112,I_LU113,I_LU123,UL1):

> hleg1upper:=I_leg1upper &o omega_leg1upper:

> I_leg2upper:=EinertiaDyad(I_LU211,I_LU222,I_LU233,

I_LU212,I_LU213,I_LU223,UL2):

> hleg2upper:=I_leg2upper &o omega_leg2upper:

> I_leg1lower:=EinertiaDyad(I_LL111,I_LL122,I_LL133,

I_LL112,I_LL113,I_LL123,LL1):

> hleg1lower:=I_leg1lower &o omega_leg1lower:

> I_leg2lower:=EinertiaDyad(I_LL211,I_LL222,I_LL233,

I_LL212,I_LL213,I_LL223,LL2):

> hleg2lower:=I_leg2lower &o omega_leg2lower:

6.1.6 Inertial forces and torques

The inertial forces and torques are transferred into partitioned vectors.

> ptbody :=map(Esimplify,subs(kde_new,cdft(pbody,N))):

> ptleg1upper:=map(Esimplify,subs(kde_new,cdft(pleg1upper,N))):

> ptleg2upper:=map(Esimplify,subs(kde_new,cdft(pleg2upper,N))):

> ptleg1lower:=map(Esimplify,subs(kde_new,cdft(pleg1lower,N))):

> ptleg2lower:=map(Esimplify,subs(kde_new,cdft(pleg2lower,N))):

> htbody:=mkc( &simp subs(kde_new,N &fdt hbody) ):

> htleg1upper:=mkc( &simp subs(kde_new,N &fdt hleg1upper) ):

> htleg2upper:=mkc( &simp subs(kde_new,N &fdt hleg2upper) ):

> htleg1lower:=mkc( &simp subs(kde_new,N &fdt hleg1lower) ):

> htleg2lower:=mkc( &simp subs(kde_new,N &fdt hleg2lower) ):

6.1.7 Velocity K-vector and tangent vector

> vK:=[ v_body_cm, vleg1upper_cm, vleg2upper_cm, vleg1lower_cm, vleg2lower_cm, mkc(omega_body), mkc(omega_leg1upper), mkc(omega_leg2upper), mkc(omega_leg1lower), mkc(omega_leg2lower)]

> tauK:=Kctau(vK,[seq(u.i,i=1..10)]):

6.1.8 Toe forces and torques

Maple procedure for extracting the variables that an expression depends on, given a list of possible variables:

> check_args:=proc(expr,args)

> local temp_args,i;

> temp_args:=[]:

> for i in args do

29

J. Adolfsson

> if depends(expr,i) then temp_args:=[op(temp_args),i]; fi;

> od;

> RETURN(op(temp_args));

> end:

> args:=seq(q.i,i=1..10),seq(u.i,i=1..10);

6.1.9 First foot …rst toe

The position and velocity for the …rst toe point of the …rst foot:

> rtoe11:=&simp (N &to (rbody_hip_center &++ rleg1_jointpos &++ rleg1_upper_jointpos_rel &++ (LL1 &ev [xt11,yt11,zt11])) ):

> vtoe11:=&simp (N &to subs(kde_new,N &fdt rtoe11)):

Find the variables that the above expressions depends on. Since the toe position is given relative to the hip point T , the expressions are subtracted with q q

3 in the appropriate directions.

1 and

> x11_args:=check_args((rtoe11 &c 1)-q1,[args]):

> y11_args:=check_args(rtoe11 &c 2,[args]):

> z11_args:=check_args((rtoe11 &c 3)-q3,[args]):

> vx11_args:=check_args(vtoe11 &c 1,[args]):

> vy11_args:=check_args(vtoe11 &c 2,[args]):

> vz11_args:=check_args(vtoe11 &c 3,[args]):

The torque acting on the lower leg is derived:

> toe11_cmll1_cross_f:=&simp ((N &to ((LL1 &ev [xt11,yt11,zt11])

&-- (LL1 &ev [rl1l1,rl1l2,rl1l3]))) &xx

(N &ev [toefx(stat11,x11(x11_args),vx11(vx11_args),kX,dX,p1), toefy(stat11,y11(y11_args),vy11(vy11_args),kY,dY), toefz(stat11,z11(z11_args),vz11(vz11_args),kZ,dZ,p2)])):

Common sub expressions used later in force calculations:

> toe11_list:=[ x11=(rtoe11 &c 1)-q1, y11=rtoe11 &c 2, z11=(rtoe11 &c 3)-q3, vx11=vtoe11 &c 1, vy11=vtoe11 &c 2, vz11=vtoe11 &c 3, fx11=toefx(stat11,x11(x11_args),vx11(vx11_args),kX,dX,p1), fy11=toefy(stat11,y11(y11_args),vy11(vy11_args),kY,dY), fz11=toefz(stat11,z11(z11_args),vz11(vz11_args),kZ,dZ,p2), tx11=toe11_cmll1_cross_f &c 1, ty11=toe11_cmll1_cross_f &c 2,

30

3D Passive walkers: Implementing code

]: tz11=toe11_cmll1_cross_f &c 3

The VE substitution list associated with this toe is created:

> dset11:=[

D[2](toefx)(stat11,x11(x11_args),vx11(vx11_args),kX,dX,p1)= toefx_x(stat11,x11,vx11,kX,dX,p1),

D[3](toefx)(stat11,x11(x11_args),vx11(vx11_args),kX,dX,p1)= toefx_vx(stat11,x11,vx11,kX,dX,p1),

D[2](toefy)(stat11,y11(y11_args),vy11(vy11_args),kY,dY)= toefy_y(stat11,y11,vy11,kY,dY),

D[3](toefy)(stat11,y11(y11_args),vy11(vy11_args),kY,dY)= toefy_vy(stat11,y11,vy11,kY,dY),

D[2](toefz)(stat11,z11(z11_args),vz11(vz11_args),kZ,dZ,p2)= toefz_z(stat11,z11,vz11,kZ,dZ,p2),

D[3](toefz)(stat11,z11(z11_args),vz11(vz11_args),kZ,dZ,p2)= toefz_vz(stat11,z11,vz11,kZ,dZ,p2),

D[6](toefx)(stat11,x11(x11_args),vx11(vx11_args),kX,dX,p1)= toefx_p(stat11,x11,vx11,kX,dX,p1),

D[6](toefz)(stat11,z11(z11_args),vz11(vz11_args),kZ,dZ,p2)= toefz_p(stat11,z11,vz11,kZ,dZ,p2), seq(diff(x11(x11_args),i)=dx11d.i,i=x11_args), seq(diff(vx11(vx11_args),i)=dvx11d.i,i=vx11_args), x11(x11_args)=x11, vx11(vx11_args)=vx11, seq(diff(y11(y11_args),i)=dy11d.i,i=y11_args), seq(diff(vy11(vy11_args),i)=dvy11d.i,i=vy11_args), y11(y11_args)=y11, vy11(vy11_args)=vy11,

]: seq(diff(z11(z11_args),i)=dz11d.i,i=z11_args), seq(diff(vz11(vz11_args),i)=dvz11d.i,i=vz11_args), z11(z11_args)=z11, vz11(vz11_args)=vz11

6.1.10 First foot second toe

Instead of repeating all the above with parameters relating to the second toe, a reuse of the above list is done and substitutions are made where neccessary.

The toe point dependence on state variables is the same as the …rst toe.

> x12_args:=x11_args:

> y12_args:=y11_args:

> z12_args:=z11_args:

31

J. Adolfsson

> vx12_args:=vx11_args:

> vy12_args:=vy11_args:

> vz12_args:=vz11_args:

Substitution list:

> from_toe11_to_toe12_sset:={ xt11=xt12,yt11=yt12,zt11=zt12, rl1l1=rl1l1,rl1l2=rl1l2,rl1l3=rl1l3, toefx(stat11,x11(x11_args))=toefx(stat12,x12(x12_args)), toefy(stat11,y11(y11_args))=toefy(stat12,y12(y12_args)), toefz(stat11,z11(z11_args))=toefz(stat12,z12(z12_args)), x11=x12,vx11=vx12, y11=y12,vy11=vy12, z11=z12,vz11=vz12, stat11=stat12, p1=p3,p2=p4, seq(dx11d.i=dx12d.i,i=x12_args), seq(dvx11d.i=dvx12d.i,i=vx12_args), seq(dy11d.i=dy12d.i,i=y12_args), seq(dvy11d.i=dvy12d.i,i=vy12_args), seq(dz11d.i=dz12d.i,i=z12_args), seq(dvz11d.i=dvz12d.i,i=vz12_args), fx11=fx12,fy11=fy12,fz11=fz12, tx11=tx12,ty11=ty12,tz11=tz12

}:

This list is now substituted into the position and velocity expression, as well as torque and VE substitution list:

> rtoe12:=subs(from_toe11_to_toe12_sset,rtoe11):

> vtoe12:=subs(from_toe11_to_toe12_sset,vtoe11):

> toe12_cmll1_cross_f:=subs(from_toe11_to_toe12_sset, toe11_cmll1_cross_f):

> toe12_list:=subs(from_toe11_to_toe12_sset,toe11_list):

> dset12:=subs(from_toe11_to_toe12_sset,dset11):

6.1.11 Second foot …rst toe

The toe points of this leg is functions of the angles q

9 and q

10

, thus a state variable substitution has to take place together with the parameter substitution.

> from_leg1_to_leg2:={q7=q9,q8=q10,u7=u9,u8=u10}:

> x21_args:=seq(subs(from_leg1_to_leg2,[x11_args])[i], i=1..nops([x11_args])):

> y21_args:=seq(subs(from_leg1_to_leg2,[y11_args])[i], i=1..nops([y11_args])):

> z21_args:=seq(subs(from_leg1_to_leg2,[z11_args])[i], i=1..nops([z11_args])):

> vx21_args:=seq(subs(from_leg1_to_leg2,[vx11_args])[i], i=1..nops([vx11_args])):

32

3D Passive walkers: Implementing code

> vy21_args:=seq(subs(from_leg1_to_leg2,[vy11_args])[i], i=1..nops([vy11_args])):

> vz21_args:=seq(subs(from_leg1_to_leg2,[vz11_args])[i], i=1..nops([vz11_args])):

> from_toe11_to_toe21_sset:={ xt11=xt21,yt11=yt21,zt11=zt21, rl1l1=rl2l1,rl1l2=rl2l2,rl1l3=rl2l3, rl11=rl21, l1u=l2u, toefx(stat11,x11(x11_args))=toefx(stat21,x21(x21_args)), toefy(stat11,y11(y11_args))=toefy(stat21,y21(y21_args)), toefz(stat11,z11(z11_args))=toefz(stat21,z21(z21_args)), x11=x21,vx11=vx21, y11=y21,vy11=vy21 z11=z21,vz11=vz21, stat11=stat21, p1=p5,p2=p6, seq(dx11d.i=dx21d.i,i=x21_args), seq(dvx11d.i=dvx21d.i,i=vx21_args), dx11dq7=dx21dq9,dx11dq8=dx21dq10, dvx11dq7=dvx21dq9,dvx11dq8=dvx21dq10, dx11du7=dx21du9,dx11du8=dx21du10, dvx11du7=dvx21du9,dvx11du8=dvx21du10, seq(dy11d.i=dy21d.i,i=y21_args), seq(dvy11d.i=dvy21d.i,i=vy21_args), dy11dq7=dy21dq9,dy11dq8=dy21dq10, dvy11dq7=dvy21dq9,dvy11dq8=dvy21dq10, dy11du7=dy21du9,dy11du8=dy21du10, dvy11du7=dvy21du9,dvy11du8=dvy21du10, seq(dz11d.i=dz21d.i,i=z21_args), seq(dvz11d.i=dvz21d.i,i=vz21_args), dz11dq7=dz21dq9,dz11dq8=dz21dq10, dvz11dq7=dvz21dq9,dvz11dq8=dvz21dq10, dz11du7=dz21du9,dz11du8=dz21du10, dvz11du7=dvz21du9,dvz11du8=dvz21du10, fx11=fx21,fy11=fy21,fz11=fz21, tx11=tx21,ty11=ty21,tz11=tz21

}:

> rtoe21:=subs(from_leg1_to_leg2, subs(from_toe11_to_toe21_sset,rtoe11)):

> vtoe21:=subs(from_leg1_to_leg2, subs(from_toe11_to_toe21_sset,vtoe11)):

> toe21_cmll2_cross_f:=subs(from_leg1_to_leg2, subs(from_toe11_to_toe21_sset,toe11_cmll1_cross_f)):

33

J. Adolfsson

> toe21_list:=subs(from_leg1_to_leg2, subs(from_toe11_to_toe21_sset,toe11_list)):

> dset21:=subs(from_leg1_to_leg2, subs(from_toe11_to_toe21_sset,dset11)):

6.1.12 Second foot second toe

See …rst foot second toe for an explanation.

> x22_args:=x21_args:

> y22_args:=y21_args:

> z22_args:=z21_args:

> vx22_args:=vx21_args:

> vy22_args:=vy21_args:

> vz22_args:=vz21_args:

> from_toe21_to_toe22_sset:={ xt21=xt22,yt21=yt22,zt21=zt22, rl2l1=rl2l1,r21l2=rl2l2,rl2l3=rl2l3, toefx(stat21,x21(x21_args))=toefx(stat22,x22(x22_args)), toefy(stat21,y21(y21_args))=toefy(stat22,y22(y22_args)), toefz(stat21,z21(z21_args))=toefz(stat22,z22(z22_args)), x21=x22,vx21=vx22, y21=y22,vy21=vy22, z21=z22,vz21=vz22, stat21=stat22, p5=p7,p6=p8, seq(dx21d.i=dx22d.i,i=x22_args), seq(dvx21d.i=dvx22d.i,i=vx22_args), seq(dy21d.i=dy22d.i,i=y22_args), seq(dvy21d.i=dvy22d.i,i=vy22_args), seq(dz21d.i=dz22d.i,i=z22_args), seq(dvz21d.i=dvz22d.i,i=vz22_args), fx21=fx22,fy21=fy22,fz21=fz22,

}: tx21=tx22,ty21=ty22,tz21=tz22

> rtoe22:=subs(from_toe21_to_toe22_sset,rtoe21):

> vtoe22:=subs(from_toe21_to_toe22_sset,vtoe21):

> toe22_cmll2_cross_f:=subs(from_toe21_to_toe22_sset, toe21_cmll2_cross_f):

> toe22_list:=subs(from_toe21_to_toe22_sset,toe21_list):

> dset22:=subs(from_toe21_to_toe22_sset,dset21):

6.1.13 Knee

Knee torque functions used for both legs and the associated VE substitution list:

> knee1_list:=[Tleg1l=knee(statk1,q8,u8,knee_k,knee_d,knee_d_reb)]:

34

3D Passive walkers: Implementing code

> knee2_list:=[Tleg2l= knee(statk2,q10,u10,knee_k,knee_d,knee_d_reb)]:

> dset_knees:=[ diff(knee(statk1,q8,u8,knee_k,knee_d,knee_d_reb),q8)= knee_q(statk1,q8,u8,knee_k,knee_d,knee_d_reb), diff(knee(statk1,q8,u8,knee_k,knee_d,knee_d_reb),u8)= knee_u(statk1,q8,u8,knee_k,knee_d,knee_d_reb), diff(knee(statk2,q10,u10,knee_k,knee_d,knee_d_reb),q10)= knee_q(statk2,q10,u10,knee_k,knee_d,knee_d_reb),

]: diff(knee(statk2,q10,u10,knee_k,knee_d,knee_d_reb),u10)= knee_u(statk2,q10,u10,knee_k,knee_d,knee_d_reb)

6.1.14 Hip

Hip torque function used for both legs and the associated VE substitution list:

> hip1_list:=[Tleg1=hip(q4,q7,u4,u7,hip_k,hip_delta,hip_d)]:

> hip2_list:=[Tleg2=hip(q4,q9,u4,u9,hip_k,hip_delta,hip_d)]:

> dset_hips:=[ diff(hip(q4,q7,u4,u7,hip_k,hip_delta,hip_d),q4) = hip_q_1(q4,q7,u4,u7,hip_k,hip_delta,hip_d), diff(hip(q4,q7,u4,u7,hip_k,hip_delta,hip_d),q7) = hip_q_2(q4,q7,u4,u7,hip_k,hip_delta,hip_d), diff(hip(q4,q7,u4,u7,hip_k,hip_delta,hip_d),u4) = hip_u_1(q4,q7,u4,u7,hip_k,hip_delta,hip_d), diff(hip(q4,q7,u4,u7,hip_k,hip_delta,hip_d),u7) = hip_u_2(q4,q7,u4,u7,hip_k,hip_delta,hip_d), diff(hip(q4,q9,u4,u9,hip_k,hip_delta,hip_d),q4) = hip_q_1(q4,q9,u4,u9,hip_k,hip_delta,hip_d), diff(hip(q4,q9,u4,u9,hip_k,hip_delta,hip_d),q9) = hip_q_2(q4,q9,u4,u9,hip_k,hip_delta,hip_d), diff(hip(q4,q9,u4,u9,hip_k,hip_delta,hip_d),u4) = hip_u_1(q4,q9,u4,u9,hip_k,hip_delta,hip_d), diff(hip(q4,q9,u4,u9,hip_k,hip_delta,hip_d),u9) = hip_u_2(q4,q9,u4,u9,hip_k,hip_delta,hip_d)

35

J. Adolfsson

]:

6.1.15 Forces and torques

These are the forces and torques applied to the walker:

> Fbody:=N &ev [0, -m_body*g*cos(theta), -m_body*g*sin(theta)]:

> Tbody:=V &ev [Tleg1+Tleg2,0,0]:

> Fleg1upper:=N &ev [0,-ml1u*g*cos(theta),-ml1u*g*sin(theta)]:

> Tleg1upper:=V &ev [-Tleg1+Tleg1l,0,0]:

> Fleg2upper:=N &ev [0,-ml2u*g*cos(theta),-ml2u*g*sin(theta)]:

> Tleg2upper:=V &ev [-Tleg2+Tleg2l,0,0]:

> Fleg1lower:=N &ev [fx11+fx12,fy11+fy12-ml1l*g*cos(theta), fz11+fz12-ml1l*g*sin(theta)]:

> Tleg1lower:=(UL1 &ev [-Tleg1l,0,0]) &++

(N &ev [tx11+tx12,ty11+ty12,tz11+tz12]):

> Fleg2lower:=N &ev [fx21+fx22,fy21+fy22-ml2l*g*cos(theta), fz21+fz22-ml2l*g*sin(theta)]:

> Tleg2lower:=(UL2 &ev [-Tleg2l,0,0]) &++

(N &ev [tx21+tx22,ty21+ty22,tz21+tz22]):

6.1.16 Kane’s method

Assemble the inertial forces and applied forces into K-vectors of partitioned vectors:

> pKt:=[ptbody, ptleg1upper, ptleg2upper, ptleg1lower, ptleg2lower, htbody, htleg1upper, htleg2upper, htleg1lower, htleg2lower]:

> RKt:=[mkc(Fbody),mkc(Fleg1upper),mkc(Fleg2upper),mkc(Fleg1lower), mkc(Fleg2lower), mkc(Tbody),mkc(Tleg1upper),mkc(Tleg2upper), mkc(Tleg1lower),mkc(Tleg2lower)]:

> kane_eq:=map(simplify,ckane(tauK,pKt,RKt)):

6.1.17 Matlab export

The common sub expressions are assembled:

> cse:=[op(toe11_list),op(toe12_list), op(toe21_list),op(toe22_list),op(knee1_list),op(knee2_list), op(hip1_list),op(hip2_list)]:

The VE substitution list is assembled:

> dset:=[op(dset11),op(dset12),op(dset21),op(dset22), op(dset_knees),op(dset_hips)]:

36

3D Passive walkers: Implementing code

> uts := [u1t,u2t,u3t,u4t,u5t,u6t,u7t,u8t,u9t,u10t]:

> kde_new_ordered:=[seq(q.i.t=subs(kde_new,q.i.t),i=1..10), seq(p.i.t=subs(kde_new,p.i.t),i=1..8)]:

> qts := [q1t,q2t,q3t,q4t,q5t,q6t,q7t,q8t,q9t,q10t, p1t,p2t,p3t,p4t,p5t,p6t,p7t,p8t]:

> vars:=[q1,q2,q3,q4,q5,q6,q7,q8,q9,q10, p1,p2,p3,p4,p5,p6,p7,p8,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10]:

The names of the parameters are listed. Note that space is reserved for the discrete states in the parameter list. At simulation time the discrete states are transfered into the parameter list since Matlab’ s ODE solvers does not support discrete states

> para:=[ rx,ry,rz, rl11, rl21, rl1u1,rl1u2,rl1u3, rl2u1,rl2u2,rl2u3, l1u,l2u, rl1l1,rl1l2,rl1l3, rl2l1,rl2l2,rl2l3,

I_B11,I_B22,I_B33,I_B12,I_B13,I_B23,

I_LU111,I_LU122,I_LU133,I_LU112,I_LU113,I_LU123,

I_LU211,I_LU222,I_LU233,I_LU212,I_LU213,I_LU223,

I_LL111,I_LL122,I_LL133,I_LL112,I_LL113,I_LL123,

I_LL211,I_LL222,I_LL233,I_LL212,I_LL213,I_LL223, m_body,ml1u,ml2u,ml1l,ml2l,g,theta, kX,dX,kY,dY,kZ,dZ, knee_k,knee_d,knee_d_reb, hip_k,hip_delta,hip_d, statk1,statk2, xt11,yt11,zt11,stat11, xt12,yt12,zt12,stat12, xt21,yt21,zt21,stat21,

]: xt22,yt22,zt22,stat22

The list contaning the event functions are expressed. The list with all elements set to one, tells Matlab to stop integrating when the corresponding event occurs.

The list of ”stats” tell Matlab to trigger the event on the correct ‡ank.

> b:=[

[

[y11=rtoe11 &c 2,

37

J. Adolfsson y12=rtoe12 &c 2, y21=rtoe21 &c 2, y22=rtoe22 &c 2

],

[y11,y12,y21,y22,q8,q10]

],

[1,1,1,1,1,1],

[stat11,stat12,stat21,stat22,statk1,statk2]

]:

Include …le and the path where …le should be exported:

> inc:=‘includes‘=[‘’’walker_3D_external.c’’‘]:

> path:=‘‘:

6.1.18 Export of equations of motion

This exports the KDE and EOM to a Matlab compatible C …le, which can be used directly by the ODE integrators of Matlab. Note that the VE substitution list dset is substituted into the common sub expression cse as to make them C friendly.

> exmex(‘walker_3D‘,path,[[op(kde_new_ordered)]],

[kane_eq,uts],[op(subs(dset,cse))],

[op(qts),op(uts)],vars,parameters=para,

’v5’=[’events’=b],inc);

6.1.19 Export of variational equations

The option ’variationaleqs’ is used to generate the variation equations. Here, the VE substitution list is given as an argument since the substitution needs to take place after exmex has internally generated the equations.

> exmex(‘walker_3D_stab_1‘,path,[[op(kde_new_ordered)]],

[kane_eq,uts],[op(cse)],[op(qts),op(uts)], vars,variationaleqs,parameters=para, diffset=dset,’v5’=[’events’=b],inc);

6.1.20 Helper functions

Export of functions to calculate the position of the toes and the basis vectors of each frame:

> toe11 := matrix(1,3,[rtoe11 &c 1, rtoe11 &c 2, rtoe11 &c 3]):

> toe12 := matrix(1,3,[rtoe12 &c 1, rtoe12 &c 2, rtoe12 &c 3]):

> toe21 := matrix(1,3,[rtoe21 &c 1, rtoe21 &c 2, rtoe21 &c 3]):

> toe22 := matrix(1,3,[rtoe22 &c 1, rtoe22 &c 2, rtoe22 &c 3]):

> exmat(’pos_toe11’,path,toe11,vars,para,’matlab’);

> exmat(’pos_toe12’,path,toe12,vars,para,’matlab’);

> exmat(’pos_toe21’,path,toe21,vars,para,’matlab’);

> exmat(’pos_toe22’,path,toe22,vars,para,’matlab’);

38

3D Passive walkers: Implementing code

> exmat(’VtoN’,path,Rmx(N,V),vars,’matlab’);

> exmat(’UL1toV’,path,Rmx(V,UL1),vars,’matlab’);

> exmat(’UL2toV’,path,Rmx(V,UL2),vars,’matlab’);

Export of the derivatives of the discontinuous jump in state variables during toe impact:

> G11:=[seq(q.i,i=1..10),(rtoe11 &c 1)-q1,

(rtoe11 &c 3)-q3,p3,p4,p5,p6,p7,p8,seq(u.i,i=1..10)]:

> G12:=[seq(q.i,i=1..10),p1,p2,(rtoe12 &c 1)-q1,

(rtoe12 &c 3)-q3,p5,p6,p7,p8,seq(u.i,i=1..10)]:

> G21:=[seq(q.i,i=1..10),p1,p2,p3,p4,(rtoe21 &c 1)-q1,

(rtoe21 &c 3)-q3,p7,p8,seq(u.i,i=1..10)]:

> G22:=[seq(q.i,i=1..10),p1,p2,p3,p4,p5,p6,

(rtoe22 &c 1)-q1,(rtoe22 &c 3)-q3,seq(u.i,i=1..10)]:

> qus:=[seq(q.i,i=1..10),seq(p.i,i=1..8),seq(u.i,i=1..10)];

> Gx11 := matrix(28,28,[]);

> Gx12 := matrix(28,28,[]);

> Gx21 := matrix(28,28,[]);

> Gx22 := matrix(28,28,[]);

>

> for i from 1 to 28 do

> for j from 1 to 28 do

> Gx11[i,j]:=diff(G11[i], qus[j]):

>

>

Gx12[i,j]:=diff(G12[i], qus[j]):

Gx21[i,j]:=diff(G21[i], qus[j]):

>

> od:

> od;

Gx22[i,j]:=diff(G22[i], qus[j]):

> exmat(’Gx11’,path,Gx11,qus,para,’matlab’);

> exmat(’Gx12’,path,Gx12,qus,para,’matlab’);

> exmat(’Gx21’,path,Gx21,qus,para,’matlab’);

> exmat(’Gx22’,path,Gx22,qus,para,’matlab’);

Derivatives of the discontinuity surfaces associated with toe impacts:

> qus:=[seq(q.i,i=1..10),seq(p.i,i=1..8),seq(u.i,i=1..10)];

> mxtoe11 := matrix(28,1,[]);

> mxtoe12 := matrix(28,1,[]);

> mxtoe21 := matrix(28,1,[]);

> mxtoe22 := matrix(28,1,[]);

> i:=1;

39

J. Adolfsson

> for ii in qus do

> mxtoe11[i,1]:=diff(rtoe11 &c 2, ii);

> mxtoe12[i,1]:=diff(rtoe12 &c 2, ii);

> mxtoe21[i,1]:=diff(rtoe21 &c 2, ii);

> mxtoe22[i,1]:=diff(rtoe22 &c 2, ii);

> i:=i+1;

> od:

> exmat(’Ntoe11’,path,mxtoe11,qus,para,’matlab’);

> exmat(’Ntoe12’,path,mxtoe12,qus,para,’matlab’);

> exmat(’Ntoe21’,path,mxtoe21,qus,para,’matlab’);

> exmat(’Ntoe22’,path,mxtoe22,qus,para,’matlab’);

## Bibliography

[1] Adolfsson, J.: 2000a, ‘Finding an Implementable 3D Passive Walker using

Continuation Methods’. Technical report, KTH, Department of Mechanics.

[2] Adolfsson, J.: 2000b, ‘Planar Passive Walkers: Code Implementation Issues’. Technical report, KTH, Department of Mechanics.

[3] Adolfsson, J., H. Dankowicz, and A. Nordmark: 2001, ‘3D Passive Walkers: Finding Periodic Gaits in the Presence of Discontinuities’. Nonlinear

Dynamics 24 (2), 205–229.

[4] Coleman, M. and A. Ruina: 1998, ‘An Uncontrolled Toy That Can Walk

But Cannot Stand Still’. Physical Review Letters 80(16), 3658–3661.

[5] Drugge, L.: 2000, ‘Modelling and Simulation of Pantograph-Catenary Dynamics’. Ph.D. thesis, LTU, Department of Mechanical Engineering, Division of Computer Aided Design.

[6] Kane and Levinson: 1985, Dynamics: Theory and Applications. McGraw-

Hill.

[7] Kuo, A. D.: 1999, ‘Stabilization of Lateral Motion in Passive Dynamic

Walking’. The International Journal of Robotics Research 18(9), 917–930.

[8] Lennartsson, A.: 1999, ‘E¢cient Multibody Dynamics’.

Ph.D. thesis,

KTH, Department of Mechanics.

[9] Lesser, M.: 1995, The Analysis of Complex Nonlinear Mechanical Systems.

World Scienti…c Publishing Co. Pte. Ltd.

40

3D Passive walkers: Implementing code

[10] McGeer, T.: 1990, ‘Passive Bipedal Running’. In: Proceedings of the Royal

Society of London: Biological Sciences , Vol. 240. pp. 107–134.

[11] McGeer, T.: 1993, ‘Dynamics and Control of Bipedal Locomotion’. Journal of Theoretical Biology 163 , 277–314.

[12] Mombaur, K., M. J. Coleman, M. Garcia, and A. Ruina: 2000, ‘Prediction of Stable Walking for a Toy That Cannot Stand’. submitted for publication in PRL.

[13] Nichols, G. K. and D. C. Witt, ‘An Experimental Unpowered Walking

Aid’. Engineering in Medicine 1(1).

[14] Olsson, A.: 1997, ‘Object-oriented …nite element algorithms’. Technical report, KTH, Department of Structural Engineering.

[15] Piiroinen, P.: 2000, ‘Passive Walking: Transition from 2D to 3D’. Technical report, KTH, Department of Mechanics.

[16] Rose, J. and J. G. Gamble (eds.): 1994, Human Walking. Williams &

Wilkins.

[17] Vågstedt, N.-G.: 1995, ‘On Cornering Characteristics of Ground Vehicle

Axles’. Ph.D. thesis, KTH, Department of Vehicle Engineering.

[18] Wisse, M., A. L. Schwab, and R. Q. vd Linde: 2000, ‘A 3D Passive Dynamic Biped with Yaw and Roll Compensation’. to appear in ROBOTICA.

41

# Paper 8

P8

# Finding an implementable 3D passive walker using continuation methods

Jesper Adolfsson

Royal Institute of Technology

Department of Mechanics

S-100 44 STOCKHOLM

SWEDEN

October, 2000

Abstract.

This text describes some of the parameter searches made to …nd an implementable 3D passive walker. The starting points of the parameter search are previous found 3D walkers, see for example Adolfsson et. al.

[3]

. However, previous found walkers had a number of features not suitable for implementation, which are believed to be corrected by the presented here walker. The parameter search was accomplished by using continuation methods, which makes it possible to locate periodic gaits as parameters of the system are varied, see Adolfsson et. al.

[3] and Adolfsson

[1]

. To be a realizable walker it is important that reasonable margins exists in both parameter space and initial conditions. Thus, a large part of this text is devoted to investigating the in‡uence of parameters that are di¢cult to control in an experimental environment. Also reported here are attempts to develop an experimental 3D walker.

1

## Introduction

The 3D walker consists of …ve bodies, an upper torso, two upper legs, and two lower legs, see Figure 1. The walker makes regular contact with the ground through its four toe points, two on each lower leg. During gait the walker can be seen as a constrained double pendulum (swing leg) attached to an inverted pendulum (stance leg). For a detailed description of the geometry, mass distribution, and forces acting on the 3D passive walker see Adolfsson et al. [3] and Adolfsson [1]. To counteract the energy lost in knee impacts and toe impacts, the walker descends an incline, thus gravity acts as the source of

J. Adolfsson energy. Studies of related passive 3D mechanisms have been done by Mombaur et al. [14], Wisse et al. [16], and Coleman et al. [5].

torso orientation

- q ,q ,q

6 upper leg orient. q

7 q

9 hip center position - q ,q ,q

3 q

10 lower leg orient. q

8

N

2

3

1 t.p. 11 t.p. 12 t.p. 21 t.p. 22 q ,q

16 q ,q

18 q ,q

14 q ,q

12

Figure 1.

The geometry of the 3D walker with state variables. Note that the angle of the upper legs are not given relative to the torso rotation q

4 about the hip axis.

Abrevations: t.p. stands for toe point and i.c.p. stands for initial contact point.

The main goal of the parameter search was to …nd an implementable passive

3D walker, having dynamics in all spatial directions. This was accomplished by using continuation methods, where periodic gaits could be followed while varying the parameters of the system. In some cases, direct numerical simulation was also used. The continuation algorithm uses the Newton-Raphson method to locate periodic gaits of the 3D passive walker. Periodic orbits of the dynamical system correspond to periodic gaits of the 3D passive walker.

For a detailed description of the methods used and the implementation of the methods, see Adolfsson et al. [3] and Adolfsson [1].

The 3D passive walker is described by 28 state variables and approximately

80 parameters. If the left and right side of the walker is mirrored in the sagittal plane, see Figure 2 for a de…nition of planes, the number of parameters will be reduced to about 40. The sheer number of parameters makes it hard to draw

2

Finding an implementable 3D passive walker any decisive conclusions for a particular parameter variation. Typically, the conclusion drawn from a one-dimensional parameter variation might not hold if one changes the value of another parameter. Therefore, the results presented here should be regarded as suggestions or insights, which might or might not work under di¤erent parameter conditions. This emphasizes the importance of having a very clear goal when performing parameter studies, such as …nding an implementable 3D passive walker.

The parameter searches are presented in two di¤erent ways, bifurcation diagrams and goal-oriented diagrams. Bifurcation diagrams are the classical dynamical systems approach where new solutions, born in bifurcations, are followed and classi…ed. The other type of parameter search have a speci…c goal in mind, such as increasing the mass of the torso. This is more of an engineering approach to the problem. However, having decided a particular parameter path to obtain a goal, it might turn out that no periodic solutions exist at some point along the path; therefore a new path in parameter space might be needed. For example, the toe points might hit the ‡oor (foot scu¢ng) during the swing phase as parameters are varied. This usually results in non existence of periodic solutions, see Piiroinen [15] for a study where the periodic solution survives foot scu¢ng. Sometimes a whole new strategy to the problem might be required, such as introducing new forces into the model.

n

2 n

1 n

3

Figure 2.

De…nition of planes. The walker makes regular contact with the ground plane. The nominal plane is de…ned by the initial lateral position of the hip center and spanned by the n

2 and n

3 direction. Thus, a walker heading straight down the plane will start and end in the nominal plane. The sagittal plane is de…ned by the hip center position and the up and forward directions of the walker. Symetric walkers have legs that are mirrored in this plane. Gravity is inclined an angle ®:

3

J. Adolfsson

1.1

Goal

As previously mentioned, a clearly de…ned goal is needed, which in this study is to …nd an implementable passive 3D walker. Below are the requirements listed for an implementable 3D passive walker.

² The mass distribution should be realizable, thus masses should not have to be placed in awkward positions, such as on long extended booms, to get the required moment of inertia.

² There should be an anthropomorphic (human like) look of the 3D passive walker. This means that geometrical measures of the experimental walker should have similar ratios as a human. For example, the ratio of leg length to hip width should be close to the values found in humans.

² No overlap of the feet.

² Insensitive to parameter changes. This is especially important when the parameters are hard to control or measure in an experimental walker. For example, the actual force between ground and toe points might be very hard to model. Thus, a stable gait should exist for reasonable intervals in the parameters associated with the ground.

² Initial conditions that is possible to realize and have a reasonable basin of attraction. The latter might be hard to investigate due to the number of states of the walker.

² Be able to carry some payload, however not necessarily with an upright torso, which most likely would require active control.

² Knee mechanism should be possible to implement passively. The current design requires quite large angular motions of the lower legs during the locked state of the knees.

During the search to ful…ll the above requirements, many stops were made so as to investigate discovered phenomena. This included investigating the e¤ects of letting the toe points being below the ground plane at certain times.

Some of these parameter studies didn’t directly help to reach the goal but gave valuable insights into the dynamics of the system.

The 3D passive walkers studied originate in parameters from a planar passive walker studied by Garcia et al. [9], [8], [7], and [4]. Also see Adolfsson et al.

[2] for a description of the planar passive walker and how to implement code for simulation of planar passive walking. Since the parameters originate from a planar walker, the 3D passive walker was started in a con…guration that mimics the dynamics of the planar passive walker. This con…guration is similar to the walker depicted in Figure 2. The …rst parameter variations were made using direct numerical simulation, thus only stable periodic gaits were accessible. These parameter variations included separating the legs on the hip axis and decreasing the overlap in the feet. However, the need for faster convergence of found stable gaits and the need to access unstable periodic gaits led to the development of a root …nder, see Adolfsson et al. [3]. The implemented

4

Finding an implementable 3D passive walker root …nder uses the Newton-Raphson scheme, which will converge to the periodic solution, given an initial state reasonable close to the periodic solution.

The stable periodic solutions are of main interest due to the possibility of being implemented passively. However, by following unstable periodic solutions, the solution might bifurcate into a stable solution. It has also been argued that unstable solutions might require less active control to stabilize the motion compared to arti…cially generating the walking pattern.

1.2

Interpreting numerical results

Automating the search using a root …nder brings up the important question of whether the obtained numerical results can be understood by some simpler reasoning. For example, it will later be shown that changing the position of the center of mass of the legs seems to require that the moment of inertia be changed in a speci…c way. Could this have been understood by looking at a simple pendulum? Generally, it has been very hard to understand the results by some simpler reasoning and someone using these results should make sure that they are valid for their speci…c system.

The Newton-Raphson root …nder scheme gives the Jacobian of the linearized system as a by-product. The stability characteristics can be obtained by calculating the eigenvalues and eigenvectors of the Jacobian. As long as all eigenvalues have a magnitude less than one, the system is stable. It has been argued that valuable insight can be obtained by looking at the elements of a particular eigenvector. For example, McGeer [10],[11],[12], and [13] give the eigenvectors in the planar passive walker illustrative names, such as speed, totter, and swing.

These names are related to what they are supposed to control. These eigenvectors are given in a speci…c Poincaré section corresponding to the con…guration having the least number of degrees of freedom. For a description of this con…guration see Adolfsson et al. [2]. These eigenvectors might look di¤erent when viewed in a di¤erent Poincaré section. Therefore, to get the whole picture they should at least be viewed over an entire gait cycle.

To investigate if eigenvectors could give valuable insight into the dynamics of the 3D passive walker, animations of eigenvectors were performed on both stable and unstable periodic gaits. This was accomplished by adding the time evolution of a small disturbance to the periodic gait. The disturbance was in the direction of an eigenvector. This can be written as, x anim

(t) = x(t) + J(t)cv i

; (1) where x(t) is the found periodic solution, J(t) is the Jacobian at time t, and cv i is a constant times the i’th eigenvector of the Jacobian. However, no success was made in interpreting the animation x anim

(t) . The animation resulted in very strange walking motion, where legs started to oscillate back and forth together with oscillating motions of the hip. This shows, as can be deduced by looking at the elements of the eigenvector, that strong coupling of the motion takes place over all state variables. In addition, it is hard to draw conclusions

5

J. Adolfsson from comparing angular state variables with positional state variables in the eigenvector, because there is no apparent way of comparing them.

However, in some cases the eigenvectors can be of help. The dynamics of the

3D passive walker are indi¤erent to placement in the plane. Thus, two eigenvalues re‡ect this by being one and the only nonzero element in the corresponding eigenvector is the states that describe the position in the ground plane. In addition, when pitchfork bifurcations occur the corresponding eigenvector pair can be used to give the directions of the newborn solution branches.

2

## Parameter studies

The following sections will present some of the many parameter studies that were carried out to …nd an implementable 3D passive walker. The order they are presented roughly follows the chronological order in which they were carried out.

2.1

Going from 2D to 3D

By taking initial conditions and parameter values from the planar passive walker, see Adolfsson et al. [2], it was possible to start the 3D passive walker in a con…guration similar to the planar walker, see Figure 2. Ground plane sti¤ness was high to mimic the plastic impacts found in the planar walker.

Knee sti¤ness was also high for the same reason. After some manual tuning of initial conditions a gait was observed, which became periodic after transients had settled down. However, an oblique walk resulted, where the hip center did not remain in the nominal plane after one stride. By using direct numerical simulation, it was possible to slowly introduce a hip distance and to shrink the foot width. In Figure 3, a walker with dynamics in all spatial directions is shown, as can be seen it also walks at an angle down the inclination. The overlap in the feet is 0.1m. Walking at an angle results in di¤erent time histories for the two legs. By looking at the horizontal line in Figure 4, this asymmetry can be seen. Since the system is symmetric about the sagittal plane, there must exist an oblique gait mirrored in the nominal plane. Later, it was discovered that by lowering the sti¤ness of the ground plane, the walker headed straight down the plane, thus starting and ending in the nominal plane. From a dynamical systems point of view, a super critical pitchfork bifurcation occurs when increasing the sti¤ness of the plane. Thus, a stable gait heading straight down the plane becomes unstable and two gaits, symmetric with respect to the nominal plane, are born.

In reference Adolfsson et al. [3], a path from an unconstrained 2D walker to a 3D walker having motion in all spatial directions is reported. Only gaits heading straight down the plane were considered in this parameter variation.

At the end of this parameter variation, the toe points are symmetrically placed about the leg, the distance between toe points is only 2.2cm. However, stability was lost before the overlap was reduced to zero. Thus, a restart had to be made to …nd a passive 3D walker without an overlap. An interesting result from this

6

Finding an implementable 3D passive walker

Figure 3.

Walker with overlap in the feet walking obliquely down the incline.

0.8

0.6

0.4

0.2

0 lef knee releasing t le g kn ee

a ng le hip

an gle righ t le g

-0.2

-0.4

156.4

156.6

knee releasing knee locking

156.8

157 time (s)

157.2

157.4

knee locking

157.6

157.8

Figure 4.

Oblique walking result in di¤erent time histories for the two legs. This is evident from the looking at the amplitudes of the hip and knee angles of the two legs.

parameter variation is that the swaying amplitude tends to zero, as the distance between the legs goes to zero, the toe points being placed symmetrically about the legs. In addition, this, essentially 2D symmetric walker, is here unstable.

Thus, there probably exist two stable periodic gaits, mirrored in the nominal plane, walking obliquely.

2.2

Knee modeling in 2D and 3D

The switch from an impact model to a continuous model introduces new dynamics to the system. In the impact model, the knee is released after the hind leg foot has been released from the ground. Thus, the relative angular velocity of the lower leg is always zero at the beginning of the swing phase.

In the continuous model, an angular spring and angular damper is active between the lower leg and upper leg, as long as the knee is in hyperextension.

The result is that the continuous model allows non-zero velocities at the knee

7

J. Adolfsson

1.5

1

0.5

0

2.5

x 10

-3

2

0.075

0.08

α

=0.0805

0.085

0.09

α

=0.105

0.095

t(s)

0.1

1.5

1

0.5

0

-0.5

-1

-1.5

-2

-2.5

2.5

2 x 10

-4

0.07

0.072

0.074

0.076

0.078

0.08

0.082

0.084

t(s)

Figure 5.

Left pane illustrates the di¤erence in angular velocity at knee release for two di¤erent inclinations. The right pane illustrates the same thing, but for di¤erent knee damping. The left pane also show the knee damping e¤ect on stride time.

release which is not possible using the impact models. This is illustrated in the left diagram of Figure 5, where the time history of the lower leg orientation, relative to the upper leg, is shown for two di¤erent inclinations. At the lower inclination, the knee release velocity is almost zero, thus mimicking the impact model. However, when the inclination of the plane is increased, the release velocity is no longer zero. In Dankowicz et al. [6], bifurcation diagrams are drawn for a planar passive walker using impact models and continuous models having similar mass distributions. For low inclinations, the two diagrams are fairly similar, but as the inclination is increased little resemblance is shown. A plausible explanation is the model switch, which can be seen from looking at the stride time for two di¤erent levels of knee damping. Since the inclination of the plane have a large in‡uence on gait speed and stride time it is not wise to compare stride times in the left diagram. However, in the right diagram of

Figure 5, only the knee damping is changed. The result is that at high damping the release velocity is low, whereas it is high for low damping. Looking at the stride times, there is a 10% increase between the lower and higher damping.

Therefore, to mimic the knee release velocity of previous impact models, tuning of the knee sti¤ness and damping might be needed as other parameters of the walker are changed.

As a side note, this is similar to catching a particle with a spring and damper system. To make it behave inelastically, the spring and damping constants will depend on the mass of the caught particle.

2.3

The search for a 3D walker without overlap

Since the initial attempt to reduce the overlap to zero resulted in a highly unstable walker, see Adolfsson et al. [3], a new approach was needed. This included the change of many parameters, such as trying di¤erent centers of

8

Finding an implementable 3D passive walker mass locations for the legs, changing the amount of mass of various parts, and altering the ground plane characteristics. The major parameter changes from the walker reported in Adolfsson et al. [3] and Adolfsson et al. [1] are;

² Increased the hip width from 0.20m to 0.26m.

² Lowered the upper leg center of mass position from 9cm to 14cm below the hip line.

² Moved the lower leg center of mass up from 16cm to 8cm below the knee.

² Major decrease of the torso moment of inertia about all axes, from approximately 2kgm

2 to 0.3kgm

2

.

² Increased the upper leg moment of inertia from 0.008kgm

2 to 0.02kgm

2 about the axis through the upper leg center of mass, parallel to the hip and knee joint axes.

² Decreased the lower leg moment of inertia from 0.04kgm

2

0.012kgm

2 about an axis through the upper leg center of mass, parallel to the hip and knee joint axes.

² Increased the mass of the torso from 0.8kg to 5.0kg

² Lowered the mass of the upper legs from 2.4kg to 2.2kg

² Increased the ground plane sti¤ness in the vertical direction from 5000N/m to 13000N/m and damping from 500Ns/m to 770Ns/m.

² Major decrease of knee sti¤ness, from 500Nm/rad to 100Nm/rad and

20Nms/rad to 1Nms/rad.

² Decreased toe width from 15cm to 8.6cm and reduced the overlap from

10cm to -5.5cm (no overlap).

² Lowered the toe points 3mm and had them at slightly di¤erent height

(1mm)

The motivation for lowering the moment of inertia and increasing the mass overlap con…guration, compared to p p

0:3=5 ¼ 0:24m in the no

2=0:8 ¼ 1:6m in the overlap con…guration.

The increase in ground sti¤ness was …rst made to make up for the increased weight of the walker. However, as the foot width was decreased it was observed that stability could be maintained by increasing the sti¤ness of the ground plane. The major breakthrough came unexpectedly when the knee sti¤ness and damping was reduced considerably. This increased stability and introduced a bounce in the knee, which can be seen in Figure 6. The sustained knee lock (hyperextension) now occurred after the toe points of the swing leg had impacted with the ground. This ”new” knee dynamics once again highlight the importance of the knee modeling on the walker dynamics. The lower sti¤ness and damping in the knee allowed for larger relative motion between the upper leg and lower leg during knee lock. This made it feasible to use the implemented knee locking mechanism, which is described in later sections.

9

J. Adolfsson

0.8

0.6

0.4

0.2

1.6

1.4

1.2

1

0.15

0.1

0.05

0

-0.05

-0.1

swing leg foot impact hind leg foot release maximum penetration

0.4

0.45

0.5

0.55

0.6

0.65

0.7

0 hyperextension

-0.2

0 0.2

0.4

0.6

0.8

1 1.2

t(s)

1.4

Figure 6.

When lowering the knee sti¤ness and knee damping a bounce in the knee occured. The enlargement show that sustained knee lock only occur after the toe points of the swing leg foot have attached to the ground plane.

During these parameter variations, it was observed that the instability occurring, when lowering the lower-legs moment of inertia, could be countered by moving the lower-legs center of mass upwards. A similar observation was made for the upper legs. When the moment of inertia of the upper legs was increased, instability occurred. This was remedied by moving the lower-leg center of mass downwards. This ”rule of thumb” seems to hold and was later used to adjust mass distributions on the upper and lower legs.

In Figure 7 a root locus diagram is shown for the parameter variation starting with the no-overlap walker and ending in with the overlap walker. As seen in the diagram, both the no-overlap walker (large arrow) and overlap walker are stable. However, between the start and end, an unstable region exists. It should be noted that this particular parameter variation is not the one that was used to …nd the no overlap con…guration, since it would have been hard to a priori know that it would end up as a stable con…guration. Instead, e¤ort was spent on gradually changing parameters and keeping stability, to …nd a walker satisfying the previous stated requirements.

As a reference, two extra sets of parameters are included in the root locus diagram. These points correspond to parameters ”beyond” the no-overlap walker.

Since one eigenvalue pair is outside the unit circle, the parameter sets are unstable. Somewhat concerning is the eigenvalues sensitivity to parameter variations for the no-overlap walkers. Potentially this will make it hard to implement the

10

Finding an implementable 3D passive walker

2

1

0

-1

-2 no overlap no overlap overlap overlap

4

3

2

1

-4 -3 -2 -1 0 1 real

2

0

0 10 20 30 40 50 60 70 80 90 100 no overlap overlap

Figure 7.

The right pane show a root locus for a paramter variation from a walker with an overlap in the feet to a walker with no overlap. The points are equally spaced in parameter space. Notice the high parameter sensitivity at the no-overlap point compared to the overlap point. The right pane show the the absolute value of the eigen values for the parameter variation.

walker, since tight tolerances will be needed. This sensitivity is illustrated by the large distance between the points at the no-overlap region compared to the more closely located points at the overlap region. All bifurcations occurring in this parameter variation are Hopf bifurcations. The eigenvalue having the maximum absolute value is 0.942 for the no-overlap walker and 0.937 for the overlap walker.

2.4

Hip and center of mass motion

One characteristic of the 3D passive walker is the lateral swaying motion of the hip center. This can be clearly seen in Figure 8, where the trajectories of the hip center and center of mass for all parts are drawn. Also shown are the toe contact points and the center of mass position at toe impact/release. Shortly after the toe impacts occur, the hind-leg toes release. During the short time interval between to impact and release, the toe points create a support pattern, which would seem to provide static stability, i.e. if all velocities were set to zero the walker would still stand up. However, trying this in a simulation resulted in the walker falling. Drawing a line between the toe points shows a slight toe in. Drawing a line perpendicular to the previous line, starting at the inner toe, show that the center of mass is on the inside of this line at the hind leg toe release.

2.5

Foot scuffing and beyond

At some point, as inclination is decreased, periodic gaits are usually born in a saddle node bifurcation. This can be seen in many references, McGeer

[10],[11],[12],[13], Garcia et al. [9],[8],[7]. This seems to hold for both planar

11

J. Adolfsson

(m)

0.1

0.05

0

-0.05

-0.1

0

3

4 toe contact hip center cm position

0.2

1

2 3

4 walking direction

0.4

1

2

0.103m

0.6

0.086m

0.8

0.335m

1

0.055m

(m)

1.2

Figure 8.

The trajectory of the hip center point and total center of mass for the

3D walker. The numbers correspond to toe impact/release from the ground plane.

First the toes labeled 1 and 2 impact with the ground. The corresponding hip center position is also labeled 1 and 2. Secondly, the toe labeled 3 and 4 release from the ground. The corresponding hip center position is also labeled 3 and 4.

walkers and the here studied 3D passive walkers. In the reference Dankowicz et al. [6], bifurcation diagrams are drawn for planar walkers using impact models, planar walkers using continuous models, and 3D walkers using continuous models. All continuous models have in common that the solution is born in a saddle node bifurcation. However, most of these solutions do not end in a bifurcation as inclination is decreased, but terminate due to foot scu¢ng. Foot scu¢ng is loosely speaking a toe point impact with the ground, during swing phase, at an inappropriate time. By disregarding foot scu¢ng, i.e. allowing the toe point to penetrate the ground plane without applying any force, it is possible to follow the periodic gaits as inclination is further decreased. In Figure 9, a bifurcation diagram for a 3D walker with an overlap is shown. The periodic gait is born in a saddle node bifurcation at inclination 0.112 radians. As the inclination is increased, both solutions terminate in foot scu¢ng, (point A and

E). However, the foot scu¤ occurs at di¤erent walker con…gurations in the two branches. This is illustrated in Figure 10. In the left pane, the time histories for the vertical positions of the toe points are shown for an inclination of 0.08

radians. There are two local minima for the toe points of the swing leg, labeled hind dip and front dip. As inclination is increased, either of these two local minima will touch the ground plane. In the unstable branch, the touch will occur at the front dip and in the stable branch at the hind dip. This is illustrated in the right pane of Figure 10 for the unstable branch. By disregarding this penetration, it possible to follow the periodic gait, as inclination is further decreased. However, at point C, it is not possible to further follow the gaits due to walker not having any toe attachment point. This is illustrated in Figure

11, where the arrow indicates that the attachment point is moving below the ground plane. The next possible attachment point is 0.6s later, which is too much of a jump for the periodic gait to survive. The stable lower branch ends in a similar way, …rst the hind dip moves through the ground plane and …nally there is no attachment point left. However, before this happens, the stable

12

Finding an implementable 3D passive walker

0.08

0.06

0.04

numbers correspond to average velocity

0.56

0.584

unstable

A front dip scuffs

0.52

non-realiz.

0.38

0.457

D

0.195

pitchfork?

Hopf un sta ble

E

C

B

0.02

0 de cr de cr

0.588

0.46

stable

0.56

-0.02

-0.11

-0.1

-0.09

-0.08

-0.07

inclination

Figure 9.

Bifurcation diagram for a 3D walker with an overlap in the feet when varying the inclination of the ground plane. When inclination is decreased beyond point A, in the unstable branch, and point E, in the stable branch, foot scu¢ng occurs. By disregarding the foot scu¢ng, it is possible to follow periodic gaits as inclination is further decreased. The branches terminate when it is no longer possible for the foot points to attach to the ground.

0.05

0.04

0.03

0.02

inner toe

0.01

0 hind dip inner toe

-0.01

-0.02

0 0.1

0.2

0.3

front dip

0.4

leg 2 leg 1

0.5

0.6

0.01

0

0.7

t (s)

0.8

-0.01

0

0.05

0.04

0.03

0.02

leg 2 inner toe leg 1

0.1

0.2

0.3

0.4

inner toe

0.5

t (s)

0.6

Figure 10.

The vertical toe point positions as a function of time for one step. The left pane show the two characteristic dips occuring at an oridnary gait cycle. The right pane shows what happens when the inclination is decreased, one of the toe points will start touching the ground plane. By disregarding this foot scu¢ng, it is possible to follow gaits at further decrease of the inclination. Notice that the vertical positions are shown for one step. Leg one will perform the motion of leg two and vice versa after one step.

13

J. Adolfsson

0.02

0.015

0.01

disregarded interval toe point impact toe release leg 1 disregarded interval

0.005

inner toe

0

-0.005

inner toe leg 2

-0.01

0 0.1

0.2

0.3

0.4

t (s)

0.5

Figure 11.

At some point it is not possible to disregard the scu¢ng since the attachment point will move through the ground plane. The next possible attachment point is too far away for the gait to survive.

branch goes through a super critical Hopf bifurcation at point E and a Hopf bifurcation at point F.

Just before the branch ends, it goes through a saddle node bifurcation.

Thus, in a short inclination interval, there exists three periodic gaits heading straight down the plane. Also shown in Figure 9 is the average velocity at selected inclinations. Note that the maximum velocity does not occur at maximum inclination, but at some lower inclination in the unstable branch. This seems to generally hold for passive walkers. Also note the big di¤erence in gait velocities at the end of the two branches (point C and D). Thus, it is very unlikely that the stable and unstable branches will ever meet.

2.6

Ground plane stiffness

Depending on the foot design, the actual characteristics and dynamics of the ground plane might only be estimated. Thus, it is important that the ground plane model allows for some variance in the parameters describing it. The actual design can be implemented in various ways. For example, the toe points could be …tted with soft soles, to allow some motion at the contact point. In addition, one could instead put small hard spheres at the toe points and walk on a soft ground. Both solutions are believed to work, but might, to some extent, disagree with the model used for the ground plane. These discrepancies include, non-linear e¤ects of the material and slip stick phenomena. It is also possible to reduce uncertainties by clever design of the foot. For example,

14

Finding an implementable 3D passive walker

1700

3

- Stable, straight down

- Stable, heading at an angle

- Unstable, straight down

- Unstable, heading at an angle

1500

H op f

1300 s.

c.

p itc hf or k

4

Hopf

1100 per.doubl.

900

1 s.c

. p itc hf or k

H op f

H op f

2

700

11000 12000 13000 14000 15000 stiffness (N/m)

Figure 12.

Parameter variation to deterimine the stable region in ground plane vertical sti¤ness and damping. Notice that some of the gaits in the middle of the region walk stable at an angle. Note 1: It was not possible to further increase the sti¤ness due to one of the toe points releasing from the ground plane in the middle of the stance phase.

Wisse et al. [16], have devised a light foot, hinged to the lower legs. Thus, the dynamics of the light foot can be disregarded and sti¤ness can be controlled via angular springs and dampers.

In Figure 12, the region of stable periodic gaits are determined in vertical sti¤ness and damping of the ground plane.

This region contains both stable gaits heading straight down the plane and oblique stable gaits. The stable region is surrounded by Hopf bifurcations. It has not been investigated whether these Hopf bifurcations are sub- or supercritical, but experience shows that super-critical Hopf bifurcations only exist in a short parameter interval close to the bifurcation point. The stable gaits heading at an angle exist between two regions of stable gaits heading straight down the plane. At the borders between these two regions super critical pitchfork bifurcations occur. The stable gaits, heading at an angle, go through a period doubling sequence as sti¤ness is increased. The stable range in sti¤ness is about 4000N/m and 500Ns/m in damping. This corresponds to a tolerance of about §15% in sti¤ness and §20% in damping. Note that not all unstable periodic gaits heading straight down the plane were located. However, it is

15

J. Adolfsson

0.68

0.67

2,3

0.66

1,4 mo tion

0.65

-0.06

- outer toe

- inner toe

-0.04

3,4

-0.02

left leg toes dettach

1,2 left leg toes attach

0 0.02

2,3

1,4

Low

High

1 2

4 3

Stiffness

0.04

horizontal displacement (m)

0.06

Figure 13.

Hip center trajectory for four di¤erent ground plane characteristics.

Sti¤ness seems to control the swaying amplitude whereas damping seems to control the height at the middle region.

very likely that there exists such a solution for each found oblique periodic gait.

The period doubling sequence of oblique gaits were not followed. Therefore, the right border, at the arrow indicating period doubling, could probably be moved a little bit to the right, thus increasing the area of the stable region.

This ground plane model assumes that damping is only present during motion into the ground plane. In Adolfsson [1], an alternative ground plane model is discussed, where damping is present during upward motion depending on the upward velocity. That model gives similar results to the present model, although the vertical damping needs to be lower.

To investigate the ground plane characteristics e¤ect on the dynamics of the gait, four di¤erent locations were selected in the stable region, numbers 1-4 in Figure 12 give these locations. The dynamics of the walker was investigated by looking at the hip center trajectory during one stride. In Figure 13, the result is shown. The butter‡y-shaped trajectories are quite similar but some distinct di¤erences exist. At low damping, the walkers have midpoints lower than the high damping walkers. However, the high sti¤ness walkers have larger swaying amplitude, compared to the corresponding low sti¤ness walkers. Thus, the swaying amplitude seems to be controlled by the sti¤ness of the ground.

Also shown in the …gure is the corresponding hip center position when the left legs toe events occur. The toe points attaches to the ground at almost the same hip center position, whereas the detachment occurs at di¤erent positions.

2.7

Knee stiffness

Although the devised design of the knee should agree with the model used, it is good to have some margin against parameter uncertainties. In addition, the knee model does not include dry friction, which is frequently present between sliding surfaces. In Figure 14, a parameter study, similar to the previous study, is shown, where the angular sti¤ness and angular damping of the knee is varied.

The ground plane characteristics is chosen from the lower stable region in Figure

14, being 13500N/m and 800Ns/m in the vertical direction. As can be seen in

16

Finding an implementable 3D passive walker

1.3

1.2

1.1

- Stable, straight down

- Unstable, straight down

- Unstable, heading at an angle

1.0

0.9

0.8

0.7

Hopf

Hopf

0.6

40 60 80 100 120 140 stiffness (Nm/rad)

160

Figure 14.

Parameter study to determine the limits in knee sti¤ness and knee damping for stable periodic gaits.

the …gure, there exists a region of stable gaits, surrounded by Hopf bifurcations, which render the gaits unstable. The gaits found were seen to head straight down the plane, except for one parameter combination (the plus sign in Figure

14). The range in angular sti¤ness is about 40Nm/rad and the range in angular damping is circa 0.4 Nms/rad. This results in similar tolerance percentage as in the ground plane characteristics study, being about §18% in angular sti¤ness and §20% in angular damping.

2.8

Friction levels

In Figure 15, the no slip friction coe¢cients between the toe points and ground plane are plotted for the inner and outer toe. The required combined friction coe¢cient can be written as,

¹ required

= p

(F

11

)

2

+ (F

13

)

2

:

F

12

(2)

For the outer toe, the combined friction coe¢cient is below one for most of the times, except for a short period of time at the end of the contact. At the very end, the required friction level is about 20, which would result in a slip.

However the time spent outside the unit circle is less than 2/100 of a second and is not expected to cause any problem. The inner toe has a local peak in

17

J. Adolfsson

Outer toe point

µ

3

µ

1

Inner toe point

Figure 15.

Required friction levels during the stance phase for the inner and outer toe points. Notice the change of scale inside and outside of the unit circle. The high friction levels are only required for very short intervals of time, typically 10ms. Thus, these peaks are not expected to cause any larger slip at the toe points.

the middle of the contact interval, where the required peak friction level is 1.3.

However, the time spent outside the unit circle only lasts for 3/100 of a second.

2.9

Inclination

The range in inclinations for stable operation of the walker is between 4.3 degrees and 4.7 degrees. At the lower inclination, a Hopf bifurcation occurs. At the higher inclination a super critical pitchfork bifurcation occurs, thus creating two stable branches walking obliquely down the plane. These two branches only remains stable for a short interval and become unstable in a Hopf bifurcation.

3

## Robustness

Equally important as to allow for a reasonable margin in parameter space is to have some margin of error in the initial conditions. Without this, it will be hard to initiate the gait of the walker. It has been demonstrated by both Ruina and McGeer that it is possible, albeit with some practice needed, to manually throw the planar walker down the incline. Thus, it is desirable that the initial condition margin for the 3D passive walker should be similar to those found for planar passive walkers. However, with current computer speed it is not feasible to …nd this margin for all possible combinations of state variables. The search was therefore limited to disturbing one state variable at a time from the found periodic orbit. In addition, these disturbances are not necessarily similar to

18

Finding an implementable 3D passive walker those occurring during an experiment. For example, an error in torso attitude certainly involves some error in the horizontal position of the torso.

The margins were calculated for …ve consecutive con…gurations, equally spaced over one step, as shown in Figure 21 in the appendix. This investigation was done to see if a particular con…guration was more suitable for initiating the gait, i.e. had a larger margin compared to other con…gurations. For comparison, the same study was performed on the 3D walker having an overlap in the feet. Finding the margins were done by …rst …nding a disturbance, which would make the walker fall within 20 strides. After that, interval halving was used to …nd the border between failure and success. These borders were obtained with an relative accuracy of 1%. Of course, it is possible that there exist regions with multiple borders of failure and success. This was also observed when performing the same stability on the next step in the stride. However, the di¤erences between margins were small. In the appendix, a graphical illustration of the robustness study is shown. This illustration was made to visually identify preferable con…gurations for initiation of the gait. However, no outstanding con…guration was visually identi…ed, which would imply that other considerations could be made, such as initiating gait at an easily obtained con…guration.

In Table 1, a statistical comparison between the walker with an overlap in the feet and the walker without overlap is shown. This was calculated by looking at the ratio of state space volume for the two walkers, m j

= t

Y i=s j

¢o i

¢no i

= exp

0

@

1 n

X log

µ

¢o i

¢no i

¶

1

A i=s j

(3) where ¢o i is the range in initial conditions for the walker with an overlap in state i, similarly, ¢no i is the range for the walker without an overlap. The vector s j is a vector of state indices. The mean, m j

, was then averaged over the …ve con…gurations,

M j

= v u

5

Y m j

= exp

Ã

1

5 i=1 log m j

!

: (4) i=1

The standard deviation is calculated on log m j

. In most states, the data have small standard deviation, which indicates that the ratio is fairly similar in the di¤erent con…gurations. The general result is that the walker with an overlap has the larger margin in almost all initial conditions at all con…gurations. For example, the margin in initial velocities of the torso reference point is almost seven times larger in favor of the overlap con…guration. Somewhat surprisingly is the low advantage for the overlap walker in the angular velocities of the torso.

19

J. Adolfsson

Table I. Statistical comparison between a 3D walker with an overlap in the feet and a 3D walker without an overlap. The numbers are calculated by averaging the logarithm of the ratios between maximum possible disturbances in the two walkers. The average is calculated from …ve walker con…gurations equally spaced in time. Thus, a value greater than one means that the overlap walker is less sensitive to disturbances than the no-overlap walker. The standard deviation is given as a factor.

State ( s j

) height (q

2

) orientation (q

5

; q

6

) leg angles (q

7

; q

8

; q

9

; q

10

) toe pos. lateral (q

11

; q

13

; q

15

; q

17

) toe pos. sagital (q

12

; q

14

; q

16

; q

18

) mean std(

¤¥

) median

7.7

8.9

3.0

13.5

9.0

hip center velocity (u

1

; u

2

; u

3

) orient. angular velocities (u

5

; u

6

)

7.0

1.2

leg angular velocities (u

7

; u

8

; u

9

; u

10

)

2.4

2.3

1.1

1.5

1.5

2.1

1.2

1.3

1.5

5.4

8.6

2.7

12.0

11.9

7.1

1.2

2.2

all states except u

4

4.5

1.1

4.6

4

## Implementation

Early walker con…gurations, with an overlap in the feet, had a total mass of

7.5kg. The current design was made to support this weight. However, this design was hard to realize due to the torsos high radius of gyration. The moment of inertia was therefore reduced, which unfortunately resulted in unstable periodic gaits. However, this was possible to correct by increasing the mass of the torso. To retain similar ground plane penetrations, the ground plane sti¤ness had to be increased. The current con…guration, having no overlap, has a total mass of 11.4kg. Since the increase of mass was made at the torso, the legs needed to support this additional mass. The experimental mechanism turned out to be slightly weak to support this added mass. This resulted in too much bending of the legs and hip axis, which resulted in the two legs hitting each other during the swing phase. In Figure 16, a picture of the experimental walker is shown.

4.1

Knee mechanism

To make the implemented knee locking mechanism behave similarly to the modeled knee, the design in Figure 17 was used. This design is passive and only requires a simple link mechanism between the lower leg and upper leg. The upper link is the spring/damper element. Its operation is as follows. When the lower leg is free to swing the spring/damper link will be fully extended and the two links will have negligible in‡uence on the motion. When the lower leg goes into hyperextension, the link mechanism will be constrained by the

20

Finding an implementable 3D passive walker

Figure 16.

Photographs of the experimental walker, which didn’t succed in walking.

The weights on the hip axis are placed at a location to provide for the necessary moment of inertia. The weight of the lower legs made it necessary to put the added weights on booms as to obtain the right moment of inertia.

slot and the spring/damper element will compress. During forward swing, the link mechanism will slide against the surface furthest away. During backward swing, the link mechanism will slide against the opposite surface. To make sure that smooth sliding occurs, the distance between the surfaces is slightly larger than the radius of the sliding bar. With this design, the damper will generate a force, both in forward and backward swing, as long as the link mechanism is constrained. This agrees with the theoretical model.

For a sound operation of the knee, it’s important that there exist su¢cient motion in the slot. Therefore, the angular spring and angular damping should have suitable values as to allow for some motion. Previously presented 3D walkers, see Adolfsson et al. [3], had high knee sti¤ness, resulting in very little motion. However, the current design have a maximum angular hyperextension of about 14 degrees, see Figure 6. This corresponds to a movement in the slot of 24mm. This should be su¢cient for the spring/damper element to perform adequately.

The spring/damper element is a Kyosho ”Turbo Big Shock”, intended for use in radio controlled o¤ road vehicles. The level of damping can be adjusted by changing the viscosity of oil or by changing the diameter of the piston plate hole. Sti¤ness is controlled by a change of springs. The springs can also be preloaded, although that was not tried. Parameters were obtained by the linear

21

J. Adolfsson upper leg lower leg lower leg free to swing knee lock begins knee lock ends sliding against surface 1 sliding against surface 2

Figure 17.

Illustration of the knee mechanism and its di¤erent modes of operation.

The left pane show a lower leg that is free to swing. When the lower leg swings forward, the link mechanism will be guided into the slot, and the spring/damper will start to work (middle and right pane).

model,

I lowerleg

Ä knee

_® + k knee

® = 0 (5) to experimental data. The agreement between measured data and the model was good. Fixating the upper leg and releasing the lower leg, while measuring the angle of the lower leg, gave the needed experimental data. In Figure 18, a picture of the implemented knee mechanism is shown.

4.2

Toe points

It was originally conceived that the walker should have toe lines walking on a soft ground plane. The toe lines were to be implemented with a 10mm bar, thus making it possible to have an overlap in the feet. However, as the con…guration having no overlap was discovered, it was decided to use a hard ground plane and to put the softness in the toes. This design would make it easier to adjust the toe positions and to adjust the compliance of the toe points.

In Figure 19, the design of the toe points is shown. The vertical position can be adjusted by releasing the lock nuts and the horizontal position by releasing the lock ring. Compliance in the toe points are obtained by using a soft foam rubber layer. Below the foam rubber is a rubber layer as to obtain a high levels of friction. All layers are glued together. Foam rubber is a highly nonlinear material, which makes it is quite hard to estimate adequate model parameters.

Sti¤ness was measured by statically loading the toe points and recording the corresponding de‡ection. Damping was not estimated, however, very little bounce was observed when dropping a mass, attached to the toe points, on a hard surface.

22

Finding an implementable 3D passive walker

Figure 18.

Close up of the implemented knee mechanism. The damper is inside the coil spring.

4.3

Mass distribution

The weight of di¤erent parts were obtained by using an accurate scale. The mass centers of the upper and lower legs were found by balancing the parts on a sharp edge at a few di¤erent locations. By …nding the intersection of these edges, the mass center location could be found. When the center of mass position and weight was known, the part was hinged like a pendulum, with the center of mass situated some distance away from the hinge axis. The period times for small oscillations were measured, and from this, the moment of inertia was calculated. Masses were then added at appropriate locations to obtain mass distributions corresponding to the parameters found in Appendix

6.1. With the exception of the lower legs, this extra mass could be …tted naturally on the existing structure. There was little mass to be added at the lower legs and to obtain the right moment of inertia this masses were placed on extended booms, see Figure 18. By redistributing the mass or lightning the structure, it should be possible to remove these extended booms.

4.4

Incline

The ground plane measured 1.5m x 6m and its inclination is adjustable by changing the height at one of the ends, see Figure 20. A safety wire, attached between the ends of the incline, was used to prevent damage if the walker would fall. The walker is attached to the safety wire using a slack rope, attached on the hip axis of the walker, and at a pulley running on the wire. To reduce toe point slip, the incline was covered with a rubber mat. The short range of stable

23

J. Adolfsson lock nut screw lock nut foam rubber rubber

Figure 19.

The implemented toe points are adjustable by releasing the lock nut.

The rubber sole is used to get a high levels of friction. The toe point is also laterally adjustable by releasing and moving the lock ring. Foam rubber is used to get compliance of the toe point.

inclinations, between 4.3 and 4.7 degrees, corresponds to a range in height of

40mm.

4.5

Experiments

Despite many e¤orts to manually throw the experimental walker down the incline in an appropriate way, it was not possible to obtain a sustained gait.

However, after the stance leg foot impacts with the ground, the swing leg release from the ground and performs a motion resembling the simulated motion. The bounce of the lower leg at knee impact was also observed, see Figure 6.

5

## Conclusions and future work

Initially it was believed that initiating the 3D passive walker should only be slightly harder compared to starting the planar passive walkers. This optimistic view was enhanced by watching the success of the small 3D Tinkertoy walker, see Coleman and Ruina [5]. However, this did not prove to be the case and we were forced to seek the cause of this di¢culty. However, why the experimental walker didn’t walk is hard to answer due to the lack of adequate measuring equipment. Either there exists errors in the parameters of the walker, or the gait was not initiated correctly. Of course, it could also be a combination of the two. To investigate this a catapult device for initiating gait could be built. This device should provide for repetitive initial conditions. Secondly, a 3D motion measuring system should be used to compare trajectories of the experimental walker to the simulated trajectories. Using such a system, it should be possible to establish that initial conditions are within the margins given by the robustness study. If the walker still doesn’t walk, the error is probably in parameters or modelling. However, the 3D measuring system at hand was considered not good enough as to provide the needed data and no

24

Finding an implementable 3D passive walker

Figure 20.

The inclined ground plane. The inclination is adjustable by changing the height at one end. The walker is attached to the safety wire via a slack rope and a pulley.

other system was available. Since this part was missing, a catapult device was not built.

However, some issues could have been dealt with if time had been available. This includes improving the construction of the experimental walker.

The structure of the walker needs to be strengthened as to minimize bending and play. In the hip axis, this could be done by replacing the middle part with a tube. This tube should have a appropriate radius as to improve bending sti¤ness over the current design. The knee and hip joints seem to be sti¤ enough, however the toe axis is too weak. As previously mentioned, the structure was too weak to carry its own weight resulting in collision between the

”non-overlapping” toe points. This could be corrected by attaching an element capable of taking compression forces from the end of the toe axis to a point just below the knee.

These suggestions are only small improvements over the current design and it might be necessary to rethink large parts of the design. Such as implementing and simulating contact forces that are easier to model. This could include a foot with a contact patch instead of a line. In addition, a more precise knee locking mechanism might be needed. For example, this mechanism could release the knee after the hind leg has released from the ‡oor. This would however include some mechatronic device to control the knee lock and release.

6

## Appendix

25

J. Adolfsson

6.1

Parameters and initial conditions

Parameters used in the simulation of the no-overlap 3D walker. See Adolfsson et. al. [3] for a detailed description of the mass and point labels used.

Body

T

U

1

; U

2

L

1

; L

2 mass (kg)

5.000

2.200

1.013

x moments of inertia (kg m

2

) y z xy xz

0.3000

0.3000

0.3000

0.0

0.0

0.0

yz

0.0200

0.0010

0.0100

0.0

0.0

0.0

0.0120

0.0010

0.0100

0.0

0.0

0.0

Point Label

T cm

U

1

U

2

U cm 1

; U cm 2

L

1

; L

2

L cm 1

; L cm 2

L

11

L

12

L

21

L

22

Hip/Knee k knee c knee c hip

® x (m)

0.0000

-0.1295

0.1295

0.0000

0.0000

0.0000

-0.0160

-0.1020

0.0160

0.1020

Value

100.0 N m rad

¡1

1.0 N m s rad

¡1

0.04 N m s rad

¡1

0.08 rad y (m)

0.0000

0.0000

0.0000

-0.1400

-0.3500

-0.0800

-0.3164

-0.3174

-0.3164

-0.3174

Plane k x

; k z k y c x

; c z c y z (m)

0.0000

0.0000

0.0000

0.0000

0.0000

0.0432

0.1050

0.1050

0.1050

0.1050

Ref. frame

T

V

V

U

1

; U

2

U

1

; U

2

L

1

; L

2

L

1

L

1

L

2

L

2

Value

6000 N m

¡1

13000 N m

¡1

500 N s m

¡1

770 N s m

¡1

26

Finding an implementable 3D passive walker

Initial conditions used for the direct numerical simulation of the no-overlap 3D passive walker. Toe 21 and 22 are attached to the ground and knee two is locked. Knee two corresponds to leg angles q

9 and q

10

.

Con…guration

State Value q

1 q

6 q

7 q

8 q

9 q

2 q

3 q

4 q

5

0 m

6.5804

¢

10

¡1

0 m

-0.0000

¢

10

4.7396

¢

10

¡0

¡2

¡2

5.5742

¢

10

3.0000

¢

10

¡1

¡1

3.7535

¢

10

4.2700

¢

10

¡2 m rad rad rad rad rad rad

Velocities

State Value u u u u u

1

2

3

4

5

-1.9585

¢

10

1.7444

¢

10

4.0490

¢

10

¡1

¡1

¡1

¡2

4.3913

¢

10

1.5456

¢

10

¡1 m s

¡1 m s

¡1 m s

¡1 rad s

¡1 rad s

¡1

State Value q q q q q q q q q u u u u u

10

11

12

13

14

15

16

17

18

6

7

8

9

10

-1.0255

¢

10

1.4251

¢

10

¡1

¡1

¡1

-2.2477

¢

10

-5.6571

¢

10

¡2

¡1

-2.2798

¢

10

-7.0790

¢

10

1.1198

¢

10

¡2

¡2

¡2

1.5149

¢

10

1.0877

¢

10

¡1

State Value

2.6336

¢

10

-3.0461

¢

10

7.5069

¢

10

¡1

¡0

¡0

¡3

9.6030

¢

10

1.3435

¢

10

¡0 m m m m m m m rad m rad s

¡1 rad s

¡1 rad s

¡1 rad s

¡1 rad s

¡1

27

J. Adolfsson

6.2

Raw data from robustness study.

Numbers show the maximum possible disturbance away from the periodic solution at …ve di¤erent con…gurations. The ”no overlap” and ”overlap” columns refer to the feet con…guration of the studied walkers. Both maximum positive and maximum negative disturbance are listed. For a graphical illustration of this data and the walker con…gurations see Figure 21 and 22. Note that the toe point state variables are removed when the corresponding toe point is not attached to the ground.

con…guration 0 state no overlap overlap q

18 u

1 u

2 u

3 q

2 q

5 q

10 q

15 q

16 q

17 q

6 q

7 q

8 q

9 u

4 u

5 u

6 u

7 u

8 u

9 u

10

0.0008

0.0113

0.0052

0.0174

0.1193

0.0060

0.0080

0.0302

0.0173

0.0108

0.0049

0.0082

0.3016

0.0127

4.2900

0.4281

2.3906

1.8203

3.6719

0.3211

3.3250

0.0039

0.1707

0.0831

0.0445

0.1222

0.0148

0.0284

0.1664

0.0391

0.1186

0.0414

0.2184

1.2609

0.0801

3.5112

1.0193

0.2493

25.7080

10.1404

0.7595

20.3672

no overlap overlap

-0.0006

-0.0022

-0.0161

-0.0094

-0.0858

-0.0231

-0.0140

-0.1490

-0.0027

-0.0210

-0.1252

-0.0118

-0.0084

-0.0283

-0.0227

-0.0102

-0.0083

-0.0071

-0.2984

-0.0239

-0.0127

-0.2664

-0.0208

-0.0413

-0.0126

-0.0754

-0.2598

-0.0338

-2.4150

-0.3047

-1.5078

-0.4297

-3.0156

-0.1934

-2.9625

-2.7094

-0.7483

-0.9565

-0.6790

-2.1797

-0.8168

-9.6797

28

Finding an implementable 3D passive walker con…guration 1 state no overlap overlap q

9 q

10 q

11 q

12 q

13 u

4 u

5 u

6 u

7 q

14 u

1 u

2 u

3 q

2 q

5 q

6 q

7 q

8 u

8 u

9 u

10

0.0023

0.0230

0.0213

0.0104

0.0336

0.0334

0.1031

0.0055

0.0005

0.0049

0.0012

0.0126

0.0309

0.0156

2.9537

0.2083

0.4534

0.4655

11.5811

0.1475

0.3086

0.0141

0.5316

0.0864

0.0608

0.1298

0.1908

0.0871

0.1122

0.0153

0.1097

0.0134

0.2460

0.1785

0.1047

2.9076

0.6330

0.2789

0.9716

21.8473

0.5486

0.9746

con…guration 2 state no overlap overlap u

4 u

5 u

6 u

7 u

8 u

9 u

10 q

14 u

1 u

2 u

3 q

2 q

5 q

6 q

7 q

8 q

9 q

10 q

11 q

12 q

13

0.0010

0.0110

0.0213

0.0295

0.0389

0.0375

0.3447

0.0063

0.0010

0.0053

0.0013

0.0261

0.0729

0.0301

1.2688

0.2997

0.6425

0.7894

25.3687

0.0956

0.2618

0.0425

0.2807

0.1019

0.1091

0.2637

0.0543

0.3914

0.1071

0.0113

0.0852

0.0161

0.2308

0.3932

0.2469

2.4304

0.5546

0.2356

2.0181

26.1237

0.4028

0.6626

no overlap

-0.0053

-0.0406

-0.0150

-0.0165

-0.0158

-0.0197

-0.0547

-0.0029

-0.0005

-0.0078

-0.0010

-0.0115

-0.0387

-0.0272

-2.4075

-0.3266

-0.3618

-0.3073

-11.5093

-0.1445

-0.6194

no overlap

-0.0058

-0.0151

-0.0341

-0.0116

-0.0088

-0.0327

-0.2140

-0.0059

-0.0013

-0.0096

-0.0010

-0.0136

-0.0716

-0.0340

-1.2703

-0.3342

-0.3735

-0.6279

-12.0532

-0.1182

-0.3644

overlap

-0.0083

-0.0988

-0.0825

-0.0208

-0.0412

-0.0405

-0.0820

-0.0288

-0.0041

-0.0276

-0.0071

-0.0654

-0.0850

-0.0351

-2.6648

-0.5720

-0.4222

-1.0381

-11.3384

-0.2410

-0.6967

overlap

-0.0146

-0.1450

-0.0949

-0.0242

-0.0333

-0.0647

-0.1938

-0.0378

-0.0065

-0.0365

-0.0112

-0.0693

-0.3932

-0.0580

-1.9156

-0.5639

-0.4077

-1.4952

-16.5180

-0.1636

-0.4019

29

J. Adolfsson con…guration 3 state no overlap overlap q

9 q

10 q

11 q

12 q

13 u

4 u

5 u

6 u

7 q

14 u

1 u

2 u

3 q

2 q

5 q

6 q

7 q

8 u

8 u

9 u

10

0.0110

0.0122

0.0279

0.0197

0.0163

0.0740

0.0968

0.0083

0.0008

0.0098

0.0020

0.0354

0.0400

0.0549

2.3047

0.2897

0.8744

0.8461

17.7763

0.0887

0.3787

0.0702

0.2698

0.0901

0.1100

0.2186

0.0645

0.1942

0.1239

0.0135

0.0774

0.0181

0.2363

0.3872

0.6018

2.6993

0.5112

0.2317

4.3837

40.0307

0.2864

0.6427

con…guration 4 state no overlap overlap u

4 u

5 u

6 u

7 u

8 u

9 u

10 q

14 u

1 u

2 u

3 q

2 q

5 q

6 q

7 q

8 q

9 q

10 q

11 q

12 q

13

0.0019

0.0150

0.0133

0.0400

0.0760

0.0184

0.0384

0.0083

0.0014

0.0080

0.0048

0.0221

0.0466

0.0238

1.7178

0.1427

0.5331

0.5546

11.0471

0.1718

0.5065

0.0852

0.1569

0.1410

0.0997

0.3483

0.0726

0.1746

1.0993

0.0250

0.0558

0.0241

0.2367

0.2298

0.3550

3.2696

0.5715

0.2426

1.5057

25.5011

0.3444

0.7486

overlap

-0.0122

-0.1671

-0.0748

-0.0366

-0.0472

-0.1992

-0.7493

-0.0541

-0.0083

-0.0717

-0.0105

-0.0649

-0.3401

-0.0983

-2.0653

-0.7465

-0.6359

-2.0433

-32.3564

-0.1504

-0.5296

overlap

-0.0117

-0.1498

-0.0884

-0.0504

-0.0508

-0.0455

-0.1363

-0.0799

-0.0077

-0.0865

-0.0094

-0.0642

-0.2396

-0.1127

-2.7417

-0.4639

-0.4199

-1.5722

-14.4995

-0.1883

-0.7136

no overlap

-0.0056

-0.0228

-0.0265

-0.0220

-0.0107

-0.0410

-0.1139

-0.0069

-0.0017

-0.0205

-0.0011

-0.0155

-0.0583

-0.0569

-1.3896

-0.3260

-0.7588

-0.8207

-18.1475

-0.1339

-0.6655

no overlap

-0.0016

-0.0219

-0.0324

-0.0340

-0.0106

-0.0426

-0.1228

-0.0105

-0.0013

-0.0165

-0.0021

-0.0096

-0.0361

-0.0498

-1.7766

-0.1799

-0.4709

-0.8223

-10.7568

-0.1929

-1.0051

30

Finding an implementable 3D passive walker

6.3

Graphical illustration of robustness data height q

2 orientation q ,q

6

0.02

0

-0.02

-0.04

10

5

0

-5 leg angles q ,q ,

10

0.2

0

-0.2

toepos. lat.

q ,q , q ,q

17

0.02

0

-0.02

toepos. sag.

q ,q , q ,q

18

0.01

0

-0.01

-0.02

velocity u ,u ,u

3

0.2

0

-0.2

orient. a.vel.

u ,u ,u

6

0

-2

4

2 leg ang. vel.

u ,u ,u

9

,u

10

20

10

0

-10 q

6 q ,q

10

0.5

q ,q

8

0 1 2 3 4

Figure 21.

Study of robustness in a 3D passive walker with no-overlap in the feet.

The graphs show the maximum possible disturbance from the stable periodic gait at

…ve di¤erent con…gurations of the walker.

31

J. Adolfsson height q

2 orientation q ,q

6

0.4

0.2

0

-0.2

80

60

40

20

0

-20 leg angles q ,q ,

10

0

-0.5

-1 toepos. lat.

q ,q , q ,q

17

1

0.5

0

-0.5

toepos. sag.

q ,q , q ,q

18

0.04

0.02

0

-0.02

velocity u ,u ,u

3 orient. a.vel.

u ,u ,u

6

2

0

-2

1

0.5

0

-0.5

leg ang. vel.

u ,u ,u

9

,u

10

40

20

0

-20

-40 q

6 q ,q

10

0.5

q ,q

8

0 1 2 3 4

Figure 22.

Study of robustness in a 3D passive walker with overlap in the feet. The graphs show the maximum possible disturbance from the stable periodic gait at …ve di¤erent con…gurations of the walker.

32

Finding an implementable 3D passive walker

## Bibliography

[1] Adolfsson, J.: 2000a, ‘3D Passive walkers: Code Implementation Issues’.

Technical report, KTH, Department of Mechanics.

[2] Adolfsson, J.: 2000b, ‘Planar Passive Walkers: Code Implementation Issues’. Technical report, KTH, Department of Mechanics.

[3] Adolfsson, J., H. Dankowicz, and A. Nordmark: 2001, ‘3D Passive Walkers: Finding Periodic Gaits in the Presence of Discontinuities’. Nonlinear

Dynamics 24(2), 205–229.

[4] Chatterjee, A. and M. Garcia: 1998, ‘Small Slope Implies Low Speed in

Passive Dynamic Walking’. Dynamics and Stability of Systems. submitted for publication.

[5] Coleman, M. and A. Ruina: 1998, ‘An Uncontrolled Toy That Can Walk

But Cannot Stand Still’. Physical Review Letters 80(16), 3658–3661.

[6] Dankowicz, H., J. Adolfsson, and A. Nordmark: 2001, ‘Existence of Stable 3D-Gait in Passive Bipedal Mechanisms’. Journal of Biomechanical

Engineering 123(1), 40–46.

[7] Garcia, M., A. Chatterjee, and A. Ruina: 1998a, ‘E¢ciency, Speed, and

Scaling of Passive Dynamical Bipedal Walking’. Dynamics and Stability of Systems. submitted for publication.

[8] Garcia, M., A. Chatterjee, A. Ruina, and M. Coleman: 1998b, ‘Passivedynamic Models of Human Gait’. In: Proceedings of the Conference on

Biomechanics and Neural Control of Human Movement. pp. 32–33.

[9] Garcia, M., A. Chatterjee, A. Ruina, and M. Coleman: 1998c, ‘The Simplest Walking Model: Stability, Complexity, and Scaling’. ASME Journal of Biomechanical Engineering 120, 281–288.

[10] McGeer, T.: 1990a, ‘Passive Bipedal Running’. In: Proceedings of the

Royal Society of London: Biological Sciences, Vol. 240. pp. 107–134.

[11] McGeer, T.: 1990b, ‘Passive Dynamic Walking’. International Journal of

Robotics Research 9, 62–82.

[12] McGeer, T.: 1990c, ‘Passive Walking with Knees’. In: Proceedings of the

IEEE Conference on Robotics and Automation, Vol. 2. pp. 1640–1645.

33

J. Adolfsson

[13] McGeer, T.: 1993, ‘Dynamics and Control of Bipedal Locomotion’. Journal of Theoretical Biology 163, 277–314.

[14] Mombaur, K., M. J. Coleman, M. Garcia, and A. Ruina: 2000, ‘Prediction of Stable Walking for a Toy That Cannot Stand’. submitted for publication in PRL.

[15] Piiroinen, P.: 2000, ‘Passive Walking: Transition from 2D to 3D’. Technical report, KTH, Department of Mechanics.

[16] Wisse, M., A. L. Schwab, and R. Q. vd Linde: 2000, ‘A 3D Passive Dynamic Biped with Yaw and Roll Compensation’. to appear in ROBOTICA.

34

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project