# SelSta - A Biologically Inspired Approach for Self-Stabilizing Humanoid Robot Walking

Bojan Jakimovski, Michael Kotke, Martin Hörenz, Erik Maehle

► To cite this version:

Bojan Jakimovski, Michael Kotke, Martin Hörenz, Erik Maehle. SelSta - A Biologically Inspired Approach for Self-Stabilizing Humanoid Robot Walking. 7th IFIP TC 10 Working Conference on Distributed, Parallel and Biologically Inspired Systems (DIPES) / 3rd IFIP TC 10 International Conference on Biologically-Inspired Collaborative Computing (BICC) / Held as Part of World Computer Congress (WCC), Sep 2010, Brisbane, Australia. pp.302-313, 10.1007/978-3-642-15234-4_29 hal-01054490

HAL Id: hal-01054490

https://inria.hal.science/hal-01054490

Submitted on 7 Aug 2014

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>
# SelSta - A Biologically Inspired Approach for Self-Stabilizing Humanoid Robot Walking

Bojan Jakimovski, Michael Kotke, Martin Hörenz, Erik Maehle

Institute of Computer Engineering, University Lübeck, Germany
www.iti.uni-luebeck.de

**Abstract.** In this paper we elaborate a study on self-stabilizing humanoid robot that achieves run-time self-stabilization and energy optimized walking gait pattern parameters on different kinds of flat surfaces. The algorithmic approach named SelSta uses biologically inspired notions that introduce robustness into the self-stabilizing functionality of the humanoid robot. The approach has been practically tested on our S2-HuRo humanoid robot and the results from the tests demonstrate that it can be successfully used on humanoid robots to achieve autonomic optimized stabilization of their walking on different kinds of flat surfaces.

**Keywords:** Self-stabilizing humanoid robot, S2-HuRo, biologically inspired approach, symbiosis, SelSta approach, humanoid robot walking optimization.

## 1 Introduction

In recent years the trend in robotics research has shifted towards service, field, and entertainment robots as market demand continually rises for these types of robots. Different kinds of humanoid robots are developed nowadays with purpose to serve the elderly people or for entertainment purposes like humanoid robots playing soccer games [1]. Humanoid robots are complex robotic systems exhibiting high degrees of freedom (DOF), consisting of different electronic hardware parts and complex software control architectures [2] [3].

Many surveys have been done on mathematical modeling of biped locomotion mechanisms [4] [5]. Most of the mathematical models are related to dynamic walking models and maintaining the zero moment point (ZMP) inside the support region. The ZMP was first introduced in [6] [7] and since then there are many research studies based on the ZMP method and their combinations with other methods [8] [9].

The control algorithms [10] for humanoid robots should be robust in order to achieve stable walking gait and balance of the humanoid robot without compromising the mechanical stability. Some researchers prefer to use simulations [11] - [14] in order to experiment and predict the outcome of their control algorithms applied on the humanoid robots without sacrificing the mechanical integrity of their real robots. The
simulation environments are stated to provide high fidelity rigid body dynamics [15] - [18]. However, the simulation experiments cannot be completely identical with reality experiments because of various factors such as: environmental influences, dynamics, vibrations, sensors noise, etc. present in the second ones. This directly implies that the algorithm developed for the simulation can not be one-to-one mapped to the reality experiments or a lot of work will be spent on "tuning" some parameters in order to mitigate some problems that come from not identical mapping.

For that reason we have planned in advance on how to set and conduct the self-stabilizing humanoid robot walking experiments (without using simulations) so we can assure that the algorithm will function as intended on a real robot under real circumstances.

In this research we also wanted to overcome the cumbersome traditional dynamic model designing that perhaps fits to only one particular robot, but instead to derive a more generic biologically inspired approach that with small or no adjustments can be used in variety of other humanoid robot research projects. In the search for better algorithms and approaches for achieving better locomotion and dynamics of humanoid robots, researchers, besides the classical mathematical modeling approaches, have also tried to use biologically inspired paradigms for this domain [19] - [22].

Some of them are based on spinal central pattern generators (CPGs) in vertebrate systems [19], others use the CPG in relation with modulation of stiffness [20], reflex based stabilization using SMA muscles [21] or coupled oscillators [22].

The practical usefulness of bio-inspired paradigms in robotic domain has encouraged us to apply biologically inspired notions of mutual interactions seen by biological species for achieving self-stabilizing robot walking over different kinds of flat surfaces (carpets, different types of floors, etc.).

The structure of the paper is organized as follows: In the second chapter we describe our humanoid robot demonstrator S2-HuRo. In the third chapter we describe the self-stabilizing approach SelSta in details. There, we explain also its relation to the biologically inspired notions of mutual interactions seen by biological species. In the fourth chapter we present the experimental test setup and results of experiments done on our humanoid robot demonstrator. In the fifth chapter we give out a conclusion about the research presented in this paper.

## 1.1 S2-HuRo (Self-Stabilizing Humanoid Robot)

We have used the humanoid robot named S2-HuRo (Fig.1) as robot demonstrator in order to test the self-stabilizing algorithm that we have developed for humanoid robot walking stabilization.

The humanoid robot is based on the “Robonova” [23] humanoid robot platform with ATmega servo controller. It has been additionally modified by excluding some arm servos (to reduce the weight) and including some other components such as: an embedded system, two dual-axis gyroscopes, voltage convertors, batteries, three contact sensors per foot, etc. Its height is 35 cm, its weight is 1.8 kg.
<figure><img src="image_2.png" /><figcaption>Fig.1. S2-HuRo (Self-Stabilizing Humanoid Robot).</figcaption></figure>

The contact sensors on the feet are used to acquire information whether the robot
leg is touching the ground surface or not. They are also used to detect if the robot has
fallen while walking, which is needed for evaluation within self-stabilizing walking
experiments.

3 SelSta – A Self-Stabilizing approach for humanoid robot walking

**3.1 SelSta approach - overview**

Here we elaborate an approach named as *SelSta* which we found will be very useful for the domain of humanoid robots self-stabilized walking. Namely, the research on humanoid robot walking usually is concentrated on finding a control algorithm for humanoid robot walking where the characteristics of the surface on which the robot is walking are often overlooked. However, the surface on which the robot is walking indeed brings different dynamics to humanoid robot walking stability. Here by surface we mean a flat surface from some material like linoleum floor, different types of carpets (soft, medium, hard) and the like. It is often very important that the humanoid robot walking is optimally stabilized and energy-efficient for a particular walking surface. This may also mean difference between the winner and the looser in some RoboCup [1] humanoid robot match. This research objective is how to develop a robust automated method that will achieve optimal and energy efficient stabilized walking of humanoid robots for any kind of flat surface with different material characteristics in a relatively short time.

The *SelSta* method was designed to function under real circumstances on a real robot, since no simulation can replace or perfectly represent the different surface
dynamics introduced to a humanoid robot walking on different types of surfaces. It is built as an add-on module to the already developed humanoid robot walking algorithm (not strictly optimized for walking on some particular surface) with some predefined non-optimal walking gait. In a calibration phase, the humanoid robot using *SelSta* first finds the best walking parameters so that the robot can achieve the best performance in stability, speed, and energy consumption over some given surface. After that, in its normal run, the robot is run with the best found walking parameters.

## 3.2 SelSta approach details

The *SelSta* approach is based on biological inspiration from symbiosis [24] which can be associated to some sort of mutual interaction between biological species from which the both species have benefit. This mapped to our approach is described with “mutual” interaction between robot’s lateral and longitudinal (or sagittal) axis stability. Those stabilities are estimated from both gyros axes values and the robot’s servos accumulated load during the robot’s walking. Before describing the details on how this “mutual” interaction was practically realized in the *SelSta* approach, we are going to describe what the *SelSta* approach consists of. The *SelSta* approach comprises the SymbScore evaluation that codes the “mutual” interaction of the robot’s axes (explained later in this chapter), combined with a genetic algorithm that generates lateral and longitudinal balancing movement parameters for the robot’s feet - represented with two real type genes. We have chosen a genetic algorithm for optimization purposes, but in general other optimization approaches (PSO, Ant Colony Alg., etc.) can be also considered in combination with SymbScore. The balancing movement action of the robot’s “ankles” takes place only when the leg starts with its stance phase (foot on the ground). In that impulsive movement the foot moves from its neutral position, assumed with 0 degrees when the foot is parallel to the ground, to some other degree values independently chosen for lateral and sagittal directions. These values are chosen by the genetic algorithm in range from -5 to 5 degrees (with resolution 0.5), where forward and right from robot’s point of view there are positive values and in other directions there are negative values. Such impulsive movement takes place in the middle of each stance phase. After this movement, the foot is set back to 0 degrees in lateral and sagittal planes. The balancing movement is represented with double sided arrow lines in Fig.2 and Fig.3.

One robot’s walking period takes 6 robot steps (Fig.2) from which the first and the last steps are “start of walking” and “stop of walking” respectively. The whole evaluation period duration is 4 robot steps. Just for better understanding, this process is sketched in Fig.2. In that period averaged gyro values from both robot’s axes and accumulated robot’s servo loads are measured. At the end of the robot’s walking period a *SelSta* symbiosis score - *SymbScore* is computed which states how stable and optimal the robot’s walking was. The *SymbScore* therefore “guides” the optimization, so the robot maintains greater stability while walking. While the robot is standing between two evaluation walking periods a genetic algorithm is run to compute the lateral (A) and longitudinal (B) balancing movement parameters for the next evaluation period of the robot’s walking. This computation time for generating the
next generation is rather small and can be neglected. The score - *SymbScore* is used in the genetic algorithm's objective function to select the next better generation of parameters for balancing the movement of the foot. In each self-stabilizing run, there may be several such evaluation periods up to

<figure><img src="image_3.png" /><figcaption>Fig.2. Evaluation period and the swing and stance phases of the robot's legs; Double sided arrow lines represent the balancing movement of the robot foot during each stance phase; L and R represent the left and right robot's foot on the ground; Right foot (R) in this case is in its swing phase (not on the ground) therefore not shown.</figcaption></figure>

<figure><img src="image_4.png" /><figcaption>Fig.3. Balancing movement of the robot's foot during each stance phase; (a) Situation where the robot is better balanced and has smaller load on the servos; (b) Situation where the robot is more unstable and has higher load on the servos.</figcaption></figure>

the moment where enough optimized self-stabilizing walking of the robot is generated for a particular surface. The parameters for genetic algorithm are presented in Fig. 4. The “Number of generations” and the “Population size parameters” have been experimentally found, so the approach can be still fast and at the same time enough robust to find the optimal solutions. The other GA parameters are selected by default. “Tournament selection” was used for selecting the individuals in the population. Each individual in the population of the genetic algorithm has the following format:

<table><tr><td>A</td><td>B</td></tr></table>
Where A, B represent: lateral (A) and longitudinal (B) leg positioning from the normal robot still standing position and range from -5 to 5 degrees, with resolution 0.5.

<table><caption>Fig.4. Genetic algorithm parameters.</caption><thead><tr><th colspan="2">Genetic Algorithm Parameters</th></tr></thead><tbody><tr><td>number of generations</td><td>15</td></tr><tr><td>population size</td><td>10</td></tr><tr><td>replacement percentage</td><td>0.5</td></tr><tr><td>convergence percentage</td><td>0.99</td></tr><tr><td>crossover probability</td><td>0.6</td></tr><tr><td>mutation probability</td><td>0.05</td></tr></tbody></table>

The resolution can be decreased if needed. The A, B parameters for standing still position are defined as 0, 0. The genetic algorithm is a single point crossover. The replacement percentage is 0.5, meaning one half of the population in every cycle is replaced with a new one.

The genetic algorithm finishes with its search either when the number of generations reaches 15 or the convergence percentage is 0.99. At the end, optimized parameters for balancing movement for robot walking on the particular surface are found.

The symbiosis score - *SymbScore* computation practically is implemented as cascaded fuzzy logic rule base computation (Fig.5) that at the end generates a *SymbScore* value between 0 and 1, a score approaching 1 is the better score, meaning the parameters chosen for the robot's balancing movement action are the best ones for some particular robot walking.

<figure><img src="image_5.png" /><figcaption>Fig.5. SymbScore computation - implemented as cascaded fuzzy logic rule base computation.</figcaption></figure>

The inputs to the *SymbScore* computation are the two axes gyro values. The gyro values range from -66 to +66 units, and their absolute values were considered for computation. These values are associated to lateral and longitudinal movement; and the averaged accumulated load of all the servos and their values in range from 0 to 70 units. The "rule base 1" and "rule base 2" (Fig.6) have identical rules and compute the "stability_x" and "stability_y" related to robot stability on longitudinal (or sagittal) and lateral axis. Those are intermediate normalized outputs ranging from 0 to 1. Each
computed value gives the relationship between the present load on the robot's servos and one axis gyro values. A value closer to 1 means stability computed for that particular axis is better. Those two intermediate values get further "fuzzified" into the "rule base symbiosis" (Fig.7) that computes the *SymbScore* result value between 0 and 1. An exception is when the robot has fallen during the evaluation period, in which case the *SymbScore* is set to 0. The *SymbScore* value is computed continuously.

<table><caption>Fig.6. Fuzzy logic rule base for "stability_x" and "stability_y" computation; DoS is degree of support for fuzzy rules and is set to 1.</caption><thead><tr><th>#</th><th>IF<br>GYRO_X_LON</th><th>LOAD</th><th>THEN<br>DoS</th><th>STAB_X_LON</th></tr></thead><tbody><tr><td>1</td><td>small</td><td>small</td><td>1.00</td><td>stable</td></tr><tr><td>2</td><td>medium</td><td>small</td><td>1.00</td><td>medstable</td></tr><tr><td>3</td><td>big</td><td>small</td><td>1.00</td><td>nonstable</td></tr><tr><td>4</td><td>small</td><td>medium</td><td>1.00</td><td>medstable</td></tr><tr><td>5</td><td>medium</td><td>medium</td><td>1.00</td><td>medstable</td></tr><tr><td>6</td><td>big</td><td>medium</td><td>1.00</td><td>nonstable</td></tr><tr><td>7</td><td>small</td><td>big</td><td>1.00</td><td>medstable</td></tr><tr><td>8</td><td>medium</td><td>big</td><td>1.00</td><td>medstable</td></tr><tr><td>9</td><td>big</td><td>big</td><td>1.00</td><td>nonstable</td></tr></tbody></table>

<table><caption>Fig.7. Fuzzy logic rule base for SymbScore computation with highlighted rules 3 and 7 representing the "mutual" relationship between the two axes stabilities; DoS is degree of support for fuzzy rules and is set to 1.</caption><thead><tr><th>#</th><th>IF<br>STAB_X</th><th>STAB_Y</th><th>THEN<br>DoS</th><th>SYMB SCORE</th></tr></thead><tbody><tr><td>1</td><td>small</td><td>small</td><td>1.00</td><td>small</td></tr><tr><td>2</td><td>medium</td><td>small</td><td>1.00</td><td>medium</td></tr><tr><td>3</td><td>big</td><td>small</td><td>1.00</td><td>small</td></tr><tr><td>4</td><td>small</td><td>medium</td><td>1.00</td><td>medium</td></tr><tr><td>5</td><td>medium</td><td>medium</td><td>1.00</td><td>medium</td></tr><tr><td>6</td><td>big</td><td>medium</td><td>1.00</td><td>big</td></tr><tr><td>7</td><td>small</td><td>big</td><td>1.00</td><td>small</td></tr><tr><td>8</td><td>medium</td><td>big</td><td>1.00</td><td>big</td></tr><tr><td>9</td><td>big</td><td>big</td><td>1.00</td><td>big</td></tr></tbody></table>

In Fig.7 the rules numbered 3 and 7 represent the "mutual" relationship between "stability_x" and "stability_y" - intermediate computed stabilities for two robot's axes. The meaning of these rules can be interpreted as follows: only when both of their values are *not* drastically different, the computed *SymbScore* can be bigger (closer to 1), i.e. indicating more stable and more energy efficient robot walking. The overall robot's stable walking depends both on the robot's stability in its longitudinal (sagittal) and lateral axis.
# 4 Experiments and results of SelSta approach for Self-Stabilizing humanoid robot on different kinds of surfaces

## 4.1 Experimental test setup

For performing the experiments with the S2-HuRo we have prepared the following setup as can be seen of Fig.8. The surface on which the robot walks is replaced with another one in every experiment. Therefore we have experimented with self-stabilizing behavior on different kinds of flat surfaces (carpets). For our experiments we have chosen 4 different types of surfaces: hard linoleum surface, soft green carpet, hard green carpet, and orange soft carpet, on which we have tested the *SelSta* method. In each of these tests the robot is connected to power supply cables and a serial connection to PC.

<figure><img src="image_6.png" /><figcaption>Fig.8. One of the four test setups - S2-HuRo self-stabilization experiment on orange soft carpet.</figcaption></figure>

This was chosen only for performing the data logging (which on PC is 2 times faster than on the robot's embedded system) and used for starting/stopping the robot walking. The robot is hung on a steel cable via metal rings. The rings give the robot enough space for performing its walking actions without influencing the walking movement itself. On the other hand, they give support when the robot is falling (due to some improper walking behavior or poorly generated balancing parameters). When this happens a human operator puts the robot to standard standing position first. Then via PC command the robot is instructed to continue with a new cycle of balancing movement parameter generation till the optimal parameters for balancing movements are found. We chose the steel wire rope support approach since we expected a lot of robot falls, however that was probably overcautious.

## 4.2 Results from experiments

The experiments were performed on 4 different kinds of surfaces and on each surface (floor or carpet) self-stabilization was performed for 3 different robot walking
speeds (slow, medium and fast). Although the speed of the robot is not an objective of an optimization function, we have observed the robustness of our SelSta approach when the robot is trying to get self-stabilizing walking with different walking speeds. The 3 initial robot walking gaits & speeds were manually predefined (but not optimized for any particular surface). During the experiments the *SelSta* approach tried to find the optimal balancing parameters for each of those speeds for every kind of surface on which the robot was walking. The self-stabilizing approach for every evaluation walking section produces a lot of data that can be analyzed later and from where the success of this approach can be recognized. Due to the limited space in this paper, we represent here only a selection of results from the acquired data of all the self-stabilizing experiments on different flat surfaces. The results are related to self-stabilizing experiment by fast speed robot walking on green soft carpet. The results from measurements for this particular surface can be seen as examples on how the results from other self-stabilization runs on other surfaces look like (Fig.9, Fig.10). In Fig.9 the symbiosis score - *SymbScore* generated by *SelSta* approach for 15 generations (evaluation walking sections) is represented. The other two lines in the same figure represent the other types of *SymbScores* evaluated for walking robot stability by standard setup and manual setup for the balancing parameters.

<figure><img src="image_7.png" /><figcaption>Fig.9. SymbScore values by self-stabilization by fast walking speed on green soft carpet - 15 generations.</figcaption></figure>

They are given here just for comparison purposes with the value that is reached by the self-stabilization approach, where its value is distinctly better than by the standard and manual setup approaches. In this figure it can be also seen that sometimes the manual setup can be very subjective and not always better performing than the standard setup values. It has to be also kept in mind that manual setup is done once for a particular terrain and that the speed of the robot also has influence on how “performing” are the setup values. Fig. 10 represents data logged by only one walking evaluation section by self-stabilizing fast speed robot walking on green soft carpet. One walking section contains 4 robot steps, therefore there are a lot of such walking sections within one self-stabilizing walking trial. The “Mode” line on that graph represents the stance and swing phases of the robot’s legs and has two values: -25 and
+25. The other lines are named as "Gyro_X" with range -66 to +66, "Load" with range 0 to 70, "Stability_X", "SymbScore" varies in range from 0 to 1 and is computed as previously described. For better clarity of the figure the values for "Gyro_Y" and "Stability_Y" were omitted and values for "Stability_X" and "SymbScore" are normalized between 0 and 20.

<figure><img src="image_8.png" /><figcaption>Fig. 10. Representation of data logged for section number 36 out of many walking evaluation sections for each generation by self-stabilizing fast speed robot walking on green soft carpet.</figcaption></figure>

<table><thead><tr><th colspan="12">Surface</th></tr><tr><th colspan="12">Green Carpet (Hard)</th></tr><tr><th colspan="12">Method</th></tr><tr><th colspan="12">Autonomous Self-Stabilizing</th></tr><tr><th colspan="12">Manual Values</th></tr><tr><th colspan="12">Standard Values</th></tr></thead><tbody><tr><th colspan="12">Walking Speed</th></tr><tr><th>Foot axis (X-Longitudinal; Y-Lateral)</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th></tr><tr><th>Stabilization parameters (axis degrees)</th><td>3.5</td><td>1</td><td>3</td><td>0.5</td><td>0.5</td><td>-3</td><td>1</td><td>4</td><td>1</td><td>4</td><td>1</td><td>4</td></tr><tr><th>Self-Stabilization approach duration</th><td>13 min</td><td>10 min</td><td>11 min</td><td colspan="4">10-14 hrs</td><td colspan="4">/</td></tr><tr><th>SymbScore (average of 5 test sections)</th><td>0.8</td><td>0.51</td><td>0.66</td><td>0.72</td><td>0.42</td><td>0.56</td><td>0.69</td><td>0.11</td><td>0.63</td><td colspan="4"></td></tr><tr><th>SymbScore (best of 5 test sections)</th><td>0.65</td><td>0.53</td><td>0.72</td><td>0.86</td><td>0.46</td><td>0.65</td><td>0.82</td><td>0.34</td><td>0.71</td><td colspan="4"></td></tr><tr><th>Robot fallings (in 5 test sections)</th><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>3</td><td colspan="4"></td></tr></tbody></table>

<table><thead><tr><th colspan="12">Surface</th></tr><tr><th colspan="12">Green Carpet (Soft)</th></tr><tr><th colspan="12">Method</th></tr><tr><th colspan="12">Autonomous Self-Stabilizing</th></tr><tr><th colspan="12">Manual Values</th></tr><tr><th colspan="12">Standard Values</th></tr></thead><tbody><tr><th colspan="12">Walking Speed</th></tr><tr><th>Foot axis (X-Longitudinal; Y-Lateral)</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th></tr><tr><th>Stabilization parameters (axis degrees)</th><td>1.5</td><td>0.5</td><td>2</td><td>4</td><td>0.5</td><td>-4.5</td><td>1</td><td>4</td><td>1</td><td>4</td><td>1</td><td>4</td></tr><tr><th>Self-Stabilization approach duration</th><td>16 min</td><td>14 min</td><td>12 min</td><td colspan="4">10-14 hrs</td><td colspan="4">/</td></tr><tr><th>SymbScore (average of 5 test sections)</th><td>0.8</td><td>0.28</td><td>0.65</td><td>0.72</td><td>0.3</td><td>0.54</td><td>0.73</td><td>0.22</td><td>0.6</td><td colspan="4"></td></tr><tr><th>SymbScore (best of 5 test sections)</th><td>0.65</td><td>0.56</td><td>0.74</td><td>0.79</td><td>0.42</td><td>0.58</td><td>0.83</td><td>0.36</td><td>0.62</td><td colspan="4"></td></tr><tr><th>Robot fallings (in 5 test sections)</th><td>0</td><td>1</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td colspan="4"></td></tr></tbody></table>

<table><thead><tr><th colspan="12">Surface</th></tr><tr><th colspan="12">Linoleum Surface (Hard)</th></tr><tr><th colspan="12">Method</th></tr><tr><th colspan="12">Autonomous Self-Stabilizing</th></tr><tr><th colspan="12">Manual Values</th></tr><tr><th colspan="12">Standard Values</th></tr></thead><tbody><tr><th colspan="12">Walking Speed</th></tr><tr><th>Foot axis (X-Longitudinal; Y-Lateral)</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th></tr><tr><th>Stabilization parameters (axis degrees)</th><td>-0.5</td><td>-0.5</td><td>2.5</td><td>-0.5</td><td>2.5</td><td>-1</td><td>1</td><td>4</td><td>1</td><td>4</td><td>1</td><td>4</td></tr><tr><th>Self-Stabilization approach duration</th><td>11 min</td><td>12 min</td><td>11 min</td><td colspan="4">10-14 hrs</td><td colspan="4">/</td></tr><tr><th>SymbScore (average of 5 test sections)</th><td>0.82</td><td>0.62</td><td>0.72</td><td>0.76</td><td>0.62</td><td>0.71</td><td>0.78</td><td>0.61</td><td>0.66</td><td colspan="4"></td></tr><tr><th>SymbScore (best of 5 test sections)</th><td>0.66</td><td>0.64</td><td>0.75</td><td>0.85</td><td>0.71</td><td>0.75</td><td>0.81</td><td>0.73</td><td>0.73</td><td colspan="4"></td></tr><tr><th>Robot fallings (in 5 test sections)</th><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td colspan="4"></td></tr></tbody></table>

<table><caption>Fig. 11. Results from humanoid robot self-stabilizing experiments done on different kinds of surfaces, with different testing parameters and three different walking speeds.</caption><thead><tr><th colspan="12">Surface</th></tr><tr><th colspan="12">Orange Carpet (Medium Soft)</th></tr><tr><th colspan="12">Method</th></tr><tr><th colspan="12">Autonomous Self-Stabilizing</th></tr><tr><th colspan="12">Manual Values</th></tr><tr><th colspan="12">Standard Values</th></tr></thead><tbody><tr><th colspan="12">Walking Speed</th></tr><tr><th>Foot axis (X-Longitudinal; Y-Lateral)</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th><th>Slow</th><th>Medium</th><th>Fast</th></tr><tr><th>Stabilization parameters (axis degrees)</th><td>1</td><td>2.5</td><td>1.5</td><td>4</td><td>1.5</td><td>0</td><td>1</td><td>4</td><td>1</td><td>4</td><td>1</td><td>4</td></tr><tr><th>Self-Stabilization approach duration</th><td>16 min</td><td>14 min</td><td>11 min</td><td colspan="4">10-14 hrs</td><td colspan="4">/</td></tr><tr><th>SymbScore (average of 5 test sections)</th><td>0.68</td><td>0.36</td><td>0.72</td><td>0.63</td><td>0.24</td><td>0.59</td><td>0.58</td><td>0.09</td><td>0.65</td><td colspan="4"></td></tr><tr><th>SymbScore (best of 5 test sections)</th><td>0.77</td><td>0.57</td><td>0.78</td><td>0.72</td><td>0.46</td><td>0.71</td><td>0.67</td><td>0.27</td><td>0.7</td><td colspan="4"></td></tr><tr><th>Robot fallings (in 5 test sections)</th><td>0</td><td>1</td><td>0</td><td>0</td><td>2</td><td>0</td><td>0</td><td>4</td><td>0</td><td colspan="4"></td></tr></tbody></table>
The results of the tests are shown in Fig. 11. They also include data from performance tests done on 5 walking test sections (each section is 6 robot walking steps as described earlier) of the best found balancing parameters and direct comparison to tests done with manual set values for the balancing parameters and standard set values (feet longitudinal and lateral degree is 0). The comparison includes number of robot fallings by that final evaluation approach.

In comparison with manual set up values, the self-stabilizing *SelSta* approach generates in a relatively short time a more stable, energy efficient walking of the humanoid robot on different kinds of surfaces. This can be clearly seen when comparing the values in rows: *SymbScore* (average of 5 test sections), *SymbScore* (best of 5 test sections) for “Autonomous Self-Stabilizing”, “Manual Values” setup, “Standard Values” setup. The bigger values by *SymbScore* indicate more stable and energy efficient walking. Quantitatively and qualitatively better values with Autonomous Self-Stabilizing category in comparison with the “Manual” and “Standard” Values setup categories, indicate that the autonomously found parameters using our biologically inspired approach are better. With this the *SelSta* approach has clearly reached its main projected goals.

# 5 Conclusion

In this paper we have explained the *SelSta* approach that we have created for self-stabilizing humanoid robot walking on different specific kinds of flat surfaces. The *SelSta* approach is robust since it is built on a modular basis as an addition to the already built control algorithm for humanoid walking. Thus, it can be easily adopted to other humanoid robots and also for creating more optimally stabilized humanoid robots that play soccer on RoboCup[1] matches. Further research will be done on transferring the functionality of this method to stabilize the humanoid robot walking over rough terrains.

# Appendix

More info, results, and movies about *SelSta* research and self-stabilizing robot S2-HuRo can be found on our web site: www.iti.uni-luebeck.de in sub-section robotics.

# References

1. www.robocup.org

2. Kopacek, P., Schierer, E., Wuerzl, M.: A Controller Network for a Humanoid Robot. Lecture Notes in Computer Science, Computer Aided Systems Theory – EUROCAST 2005, Vol. 3643, pp. 584–589 (2005).

3. Tsay, T.I.J., Lai, C.H.: Design and Control of a Humanoid Robot. Intelligent Robots and Systems, 2006 IEEE/RSJ International Conference on, vol.9, pp. 2002–2007 (2006).
4. Vukobratovic, M., Borovac, B., Surla, D., Stokic, D.: Biped Locomotion, Dynamics, Stability, Control and Application, Springer, Berlin (1990).

5. Yang, D.C., Liu, L.: Kinematic Analysis of Humanoid Robot. Chinese J. of Mechanical Engineering 39, pp. 70--74 (2003).

6. Vukobratovic, M., Juricic, D.: Contribution to the synthesis of biped gait. IEEE Trans. Bio-Med. Eng., vol. BME-16, no. 1, pp. 1--6 (1969).

7. Vukobratovic, M.: How to control artificial anthropomorphic system. IEEE Trans. Syst. Man. Cyb., vol. SMC-3, no. 5, pp. 497--507 (1973).

8. Lee, B., Stonier, D., Yong-Duk, K., Jeong-Ki, Y., Jong-Hwan Kim, K.: Modifiable walking pattern generation using real-time ZMP manipulation for humanoid robots. Intelligent Robots and Systems, IROS 2007. IEEE/RSJ International Conference, pp. 4221--4226 (2007).

9. Cuevas, E., Zaldivar, D., Tapia, E., Rojas, R.: An Incremental Fuzzy Algorithm for the Balance of Humanoid Robots. Humanoid Robots: New Developments (2007).

10. Lei, X., Su, J.: Feedback Control of Humanoid Robot Locomotion. Lecture Notes in Computer Science, Fuzzy Systems and Knowledge Discovery, pp. 890--899 (2005).

11. Qing, T., Rong, X., Yong, L., Jian, C.: HumRoboSim: An Autonomous Humanoid Robot Simulation System. Cyberworlds, 2008 International Conference on, pp. 537--542 (2008).

12. Friedmann, M., Petersen, K., von Stryk, O.: Tailored Real-Time Simulation for Teams of Humanoid Robots. Lecture Notes in Computer Science, RoboCup 2007: Robot Soccer World Cup XI, vol. 5001, pp. 425--432 (2008).

13. Calderon, C.A.A., Mohan, R.E., Zhou, C.: Virtual-RE: A Humanoid Robotic Soccer Simulator. Cyberworlds, 2008 International Conference on, pp.561--566 (2008).

14. Deng, X., Wang, J., Xiang, Z.: The Simulation Analysis of Humanoid Robot Based on Dynamics and Kinematics. Lecture Notes In Artificial Intelligence, Proceedings of the First International Conference on Intelligent Robotics and Applications, vol. 5314, pp. 93--100 (2008).

15. www.cyberbotics.com/products/webots/

16. http://playerstage.sourceforge.net/gazebo/gazebo.html

17. http://msdn.microsoft.com/en-us/robotics/default.aspx

18. http://sourceforge.net/projects/usarsim

19. Bartsch, S., Kirchner, F.: Robust control of a humanoid robot using a bio-inspired approach based on central pattern generators, reflexes, and proprioceptive feedback. IEEE International Conference on Robotics and Biomimetics, pp. 1547--1552 (2006).

20. Kim, H. K., Kwon, W., Roh, K. S.: Biologically Inspired Energy Efficient Walking for Biped Robots. IEEE International Conference on Robotics and Biomimetics, pp. 630--635 (2006).

21. Kratz, R., Klug, S., Stelzer, M., von Stryk, O.: Biologically Inspired Reflex Based Stabilization Control of a Humanoid Robot with Artificial SMA Muscles. IEEE International Conference on Robotics and Biomimetics, pp.1089--1094 (2006).

22. Morimoto, J., Endo, G., Nakanishi, J., Cheng, G.: A Biologically Inspired Biped Locomotion Strategy for Humanoid Robots: Modulation of Sinusoidal Patterns by a Coupled Oscillator Model. Robotics, IEEE Transactions on, vol. 24, pp. 185--191 (2008).

23. www.hitecrobotics.com

24. Ahmadjian, V., Paracer, S.: Symbiosis: an introduction to biological associations, Oxford, Oxford University Press (2000).