This project consists of finding a solution to keep a robot stable while it is walking implying the analysis of some stability criteria applied to bipedal locomotion. My research is mainly about how to use the arms efficiently to stabilize the robot. The reason I have chosen these parts of the body comes from natural observations (intuitively, the human babies tend to stabilize themselves notably with their arms when they first try to walk) and also from the fact that they are not directly involved in the bipedal locomotion (in comparison with the legs for instance).

My practical work can be separated in two main parts. Firstly, the construction of a stabilization algorithm handling the arms for quasi-static situations (when the robot does not move) and secondly, the same but for dynamic cases. For the latter, I also implemented (and optimized) an open-loop robot controller managing the walk of the robot.

Technically, for the first part, I implemented a controller to stabilize the HOAP-2 robot (a humanoid robot realized by Fujitsu) that was standing on an oscillating platform. For this, my strategy is to predict the next position of the center of mass (according to its velocity and acceleration) in order to evaluate the stability of the robot and to move the arms (if necessary) to adjust its position (according to some margins). For the second part, I implemented a CPG-based controller integrating a direct feedback control that managed the bipedal locomotion of the humanoid robot, namely the walk, on horizontal surfaces.

### EPCM: a stability criterion for dynamic situations

This support point is introduced and used in this project.

The *EPCM* is a generic way to predict the next position of the center of mass (*CoM*) or more exactly its projection on the ground (*PCM*).

Its definition is the following:

The *EPCM* of an object *o* is the extrapolation of its *PCM* according to the position, velocity and acceleration of the *PCM*. In simple words, the *EPCM* is used to predict the next position of the center of mass in taking into account some information about its position, speed and acceleration.

Concretely at time *t*:

* EPCM(t) = PCM(t) + k _{v}* v_{PCM}(t) * Δt + k_{a} * ½ * a_{PCM}(t) * Δt^{2} ≈ PCM(t+Δt)*, where:

*PCM*is the*COM*‘s projection on the ground*k*is the coefficient factor of the velocity_{v}- v
_{PCM}is the velocity of the*PCM* *k*is the coefficient factor of the acceleration_{a}*a*is the acceleration of the_{PCM}*PCM*and*Δt*is the timestep.

The robot is then considered stable if its *EPCM* remains in the convex hull formed by the contact points.

### Robot Stabilization

The following graph shows the prediction’s quality δ of the *EPCM* according to its parameters, namely *k*_{v} and *k*_{a}. The less is δ, the better is the prediction. We can see that an optimal solution exists for the HOAP-2 robot.

### Walking Robot

The next figures and videos show the HOAP-2 robot walking on horizontal surfaces. The controller is based on *Central Pattern Generators* (*CPGs*).

The first video shows the robot walking without balance control but with a rhythmic pattern for the arms (the robot falls at the end). And by contrast, in the second video, the arms control the balance of the walk (like on the oscillating platform) so that the robot does not fall while it is walking.