Rolling Optimization Method for Humanoid Robots

ABSTRACT: In this paper, a method of optimizing the rolling amplitude needed for a stable and smooth walking movement of a humanoid robot is considered. The optimization algorithm was based on minimizing a cost function defined by the rolling overshoot. The amplitude of the rolling during locomotion was calculated using the lateral zero moment point (ZMP) position. The initial value of the rolling was the static rolling that corresponds to the position of the ZMP at the center of the support polygon. The algorithm consisted of performing a ZMP calculation at two points that correspond to single support phases. Simplifying the robot as an inverted pendulum, the gyro feedback controller parameters were tuned to have a passive-like walking motion and a faster response of the robot state to the equilibrium point at single support phase. Experimental results, using HOAP-3 of Fujitsu, showed that the algorithm was successfully implemented along with the locomotion controller. With the optimal rolling technique, the humanoid robot could exhibit a stable and smooth walking movement.


Introduction
n recent years, a humanoid robot, particularly the biped robot has been drawing attention of many researchers.The majority of researches regarding the biped robot simplifies it as an inverted pendulum [1] and uses zero moment point (ZMP) [2][3][4][5][6], and controls the ZMP to keep it inside the supporting polygon.In this approach, a humanoid robot and the surrounding environment of the robot are accurately modeled and differential equations are solved.However, the modeling becomes difficult if there is an unknown element such as gear backlash, belt tension changes etc.Moreover, since solving differential equations consumes time, it is difficult to perform real-time control.More recently, biologically inspired control strategies have been proposed to generate autonomously adaptable rhythmic movement.These are based on a neural network, termed as central pattern generator (CPG) [7][8][9][10][11][12][13][14][15][16] that is capable of generating a rhythmic pattern of motor activity in the absence of sensory input signals.Taga [8,9] has demonstrated that bipedal locomotion can be realized as a global limit cycle generated through entrainment between the neural network consisting of a neural oscillator, and the physical system.These approaches aim to efficiently control the robot so as to allow the humanoid robot to perform various motions with stability, while eliminating the need for modeling a humanoid robot or the surrounding environment.However, these control approaches suffer a lack of stability robustness since no sensory feedback has been used other than that used for the CPG entrainment.In other words, any small disturbance acting on the humanoid robot during locomotion may risk its falling.To face these problems, the I robot walking control includes feedback control based on the rotation angle or gyro sensor placed on the upper side of the robot.To find the proper parameters of the gyro feedback loop, details of the robot model should be provided as mentioned in [1,2].Some trial in dealing with the locomotion controller using piecewise linear oscillator has been proposed [17][18][19].However, the rolling has been not optimized and therefore a rolling overshoot during locomotion can be observed.In this paper, therefore, the proposed approach consists of reducing the control input by tuning the amplitude of the rolling during locomotion.Indeed, by reducing the fluctuation or overshooting of the ZMP attributed to the feedback control, it becomes possible to improve the walking performance of a robot.The impact of reducing the feedback control to its minimum can be seen in the improvement of robot walking performance.Moreover, if the feedback control frequently causes fluctuation or overshooting of the ZMP, the motors used in the walking control get exhausted.Thus, reducing the feedback control as much as possible is also a key to the reduction of motor fatigue.
The rest of this paper is organized as follows.Section 2 describes the locomotion controller, Section 3 presents the method of adjusting the rolling amplitude, Section 4 describes the optimization algorithm, Section 5 presents the experimental results, and Section 6 is the conclusion.

Locomotion Controller
The structure of the humanoid robot considered in this paper is made by Fujitsu Laboratories Ltd. [20,21], there being 6 actuated joints at each leg, and one at the torso, as is shown in Figure 1.The Gyro sensor is placed at the upper side of the robot and 4 force sensors are placed under the sole plate of each leg. Figure 2 shows the implementation of the gyro sensor in a feedback loop that controls the hip and ankle joints.


The controller is of a proportional derivative (PD) type, which may be classed as a damper spring system.On the other hand, to ensure a smooth landing of each leg with a flat foot on a flat ground, the swing leg should touch the ground softly.To satisfy this condition instead of using an impact model, we simply use two PDs controllers that work as spring and damper, and get inputs from the force sensors located under each leg.The outputs of these PDs are fed to the hip, knee, and ankle joints of the landing leg.For this, consider the mass spring damper model that can be expressed by the following: where b s is the coefficient of friction, k s is the coefficient of spring, y is the displacement of the mass m along the vertical axis, and F y is the external force acting on the supporting leg.To satisfy the constraint of parallel landing of the sole plate on the flat ground, and under the assumption that the thigh and shank of the robot have the same length, and with respect to the angles definition in [20], this condition can be satisfied as follows: where p am  , km  , and p hm  are the pitching motor commands to the ankle, the knee and the hip, respectively.The overall control structure is depicted in Figure 3. Figure 5 shows the state flow of the stepping motion, which consists of three sequential phases; rolling, lifting, and landing.The locomotion pattern is designed based on the rolling motion pattern: the robot starts rolling toward one of its legs, then lifts the other leg and moves it forward to make the stride.Once the swing leg lands on the ground the robot rolls towards the other leg and repeats the same sequence.It is assumed that the landing of each leg is accomplished with a flat foot on flat ground.At the end of the single support, the swing leg should touch the ground softly.To satisfy this condition, instead of using an impact model, two oscillators that work as dampers and get inputs from the force sensors located under each leg are used.The outputs of these oscillators are fed to the hip, knee, and ankle joints of the landing leg.The compliance controllers C i and the gyro feedback G stabilizing the movement are designed for each phase of the walking.Both feedback controllers and motion phases are switched simultaneously, such that the overall stability of the robot is maintained.

Method of Adjusting the Rolling Amplitude
Figure 6 explains how the rolling amplitudes are adjusted.At the time of shifting from the lifting motion to the landing motion; the rolling to left and right becomes the maximum, that is, the rolling amplitudes are a l and a 2 .The rolling amplitude adjusting (RAA) unit tunes the rolling amplitudes a 1 and a 2 so that the gyro feedback control at those points of time when the rolling to left and right reaches its maximum is reduced as much as possible.Figure 7 illustrates a relationship between a sideways moving amount X ZMP and a sideways moving velocity V ZMP of the ZMP. Figure 7-a represents a case when the rolling amplitudes are not adjusted and Figure 7-b represents a case when the rolling amplitudes are adjusted to optimum values.When the rolling amplitudes are not adjusted, fluctuation or overshoot occurs in X ZMP due to the gyro feedback control performed at the point of time of X ZMP = a 1 or X ZMP = a 2 .In comparison, as illustrated in Fig. 7-b; because of the optimum adjustment of the rolling amplitudes, the need to perform gyro feedback control at the point of time of X ZMP = a 1 or X ZMP = a 2 is eliminated.More particularly, the RAA unit calculates the value of a cost function J that represents the amount of gyro feedback control for the rolling motion of each single cycle and then adjusts the rolling amplitudes so that the value of the cost function J becomes the minimum.The cost function J is defined as follows: where X av represents the average value of X ZMP , t l represents the point of time at which the maximum rolling occurs, and t 2 represents the point of time at which the rolling starts to decrease.Moreover, t 1 and t 2 can be determined according to the cycle of the rolling motion.Figure 8 is a graph for explaining the fluctuation of the rolling during locomotion and Figure 9 illustrates the cost function J and explains its minimization procedure, where α represents an adjustment amount calculated for each cycle by the RAA unit.The adjustment amount α is defined as below.where V max represents the maximum value of the sideways moving velocity of the ZMP, V(roll max ) represents the sideways moving velocity of the ZMP at that point of time at which the maximum rolling occurs (roll max ), and β represents an experimentally obtained constant number having the default value of 1.In this way, the RAA unit calculates the cost function J and the adjustment amount α for the rolling motion of each single cycle, and then adjusts the rolling amplitudes so that the value of the cost function J is minimized.This enables achieving a reduction in the gyro feedback control at the points of time when the rolling to left and right is at its maximum.The correcting unit in Figure 4 is a processing unit that corrects, by using the output of the compliance control unit and the feedback control unit, the start time of the rolling angle.

Optimization Algorithm
Figure 10 represents a flowchart for explaining a sequence of operations of the rolling amplitude adjustment process performed by the RAA unit.This adjusting unit calculates the sideways moving amount X ZMP using the force sensor data (Step S1) and calculates the value of the cost function J (Step S2).Then, the RAA unit calculates the sideways moving velocity V ZMP (Step S3) and calculates the adjustment amount at Step S4.Subsequently, the RAA unit determines whether the calculated value of the cost function J is smaller than a value J O of the cost function that was calculated for the cycle of the previous rolling motion (Step S5).If the value of the cost function J is not smaller than the value J O , then the RAA unit inverts the sign of α (Step S6).Meanwhile, the initial value of J O is the value of the cost function J calculated for the first cycle.Then, the RAA unit corrects the rolling amplitudes a 1 and a 2 by subtracting from it the adjustment amount α (Step S7) and notifies the corrected rolling amplitudes a 1 and a 2 to the motion generating unit (Step S8).Upon receiving the corrected rolling amplitudes a 1 and a 2 , the motion generating unit reflects the corrected rolling amplitudes a 1 and a 2 in the control information generated for the subsequent cycle.Subsequently, the RAA unit determines whether the robot has come to a halt (Step S9).If the robot has not come to a halt, then the RAA unit sets the value of the cost function J calculated for the current cycle as the value J O (Step S10) and returns to Step S1 to perform the rolling amplitude adjustment for the subsequent cycle.On the other hand, if the robot has come to a halt, then the process is terminated.In this way, since the RAA unit performs the rolling amplitude adjustment for each cycle of rolling motion, it becomes possible to reduce the gyro feedback control.As described above, in the present embodiment, the motion generating unit generates the control information with respect to a walking motion having no movement in the front-back direction; the compliance control unit performs the compliance  control based on the force sensor data; and the feedback control unit performs the ZMP feedback control based on the force sensor data and performs the gyro feedback control, based on the gyro sensor data, at the points of time when the rolling to left and right becomes the maximum.Then, the RAA unit calculates the value of the cost function J and the adjustment amount α for each cycle of rolling motion, and adjusts the rolling amplitudes so that the value of the cost function J becomes smaller.The motion generating unit reflects the changes of the rolling amplitudes in the control information for the subsequent motion cycle.Such a configuration enables achieving reduction in the gyro feedback control and achieving improvement in the robot's walking while reducing the motor exhaustion.According to an embodiment, motors are switched less often in a gyro feedback control.

Experiment
Instead of writing equilibrium equations of forces and moments acting on the robot body, the analysis simply utilizes the sole reaction forces measured by sole sensors as shown in Figure .11.The idea is based on the evaluation of the shift in the ZMP position, using foot force sensor data.Let D(x m ,y m ) be the ZMP.At any arbitrary point M(x i ,y i ) inside the supporting polygon, the reaction torque T(T x T y ) for one foot can be written as follows.
) where all forces are defined in Figure .11.If we consider the supporting polygon for the two feet, then we have where r i F represents the sole reaction force applied on the right foot and l i F represents the sole reaction force applied on the left foot, and i varies from 1 to 4. Therefore, the ZMP is calculated during normal condition (no large perturbation is present).The data has to be recorded at each single support phase.A perturbation is considered large when the deviation in the angular velocity exceeds a threshold that is defined experimentally, using gyro sensor data.On the other hand, four postures are defined (learned in advance) to which the robot will shift its pose, when it stops walking.These postures consist of moving the leg to front, back, right, or left, according to the ZMP position.Then, a feedback controller will be activated at the final posture controlling the waist joint and the legs of the robot.The experiment is conducted using the humanoid robot HOAP-3 of Fujitsu [20], which has 28 degrees of freedom and is 60 cm tall and weighs 8.8kg.The real-time control algorithms are implemented in real-time threads running in the RT-Linux kernel space, as shown in Figure 12.Kernel mode shared memory (SM) is constructed for the communication between real-time threads.The control period is 1 ms, and the interface between the motion pattern generator and the robot uses a real-time USB driver thread.Figure 13 shows the ZMP location during walking of HOAP-3 in the absence of disturbance, which is calculated using (7) and (8). Figure 14 plots the hip rolling joint output and sole reaction force acting on the left leg.It shows how the robot starts lifting using the virtual spring energy.Moreover, here it can be seen that, when the robot is lifting, the rolling angle is almost zero.It is also zero at the landing time.The robot, when landing, relies on gravity only.There are no constraints on the ZMP to be satisfied.Figure 15 shows the gyro sensor output, which represents the oscillation speed of the upper body of the humanoid robot.The upper graph (a) shows the case before using the proposed optimization algorithm, while the lower graph (b) shows the case when using the algorithm.In contrast to the result proposed in [17][18][19], where the locomotion controller was designed using a piecewise linear oscillator, the attenuation of the oscillation of the upper body was not discussed and therefore a rolling overshoot during locomotion has been observed.

Conclusion
The rolling amplitude needed for a stable locomotion of a humanoid robot was obtained by minimizing its rolling overshoot.The amplitude of the rolling during locomotion was calculated using the lateral ZMP position.The optimization algorithm consisted of performing a ZMP calculation at two points that correspond to single support phases, and when the rolling is at its maximum value.As a result, the robot could roll and walk with the minimum gyro feedback control.Experimental results, using HOAP-3 of Fujitsu, showed that the algorithm was successfully implemented along with the locomotion controller.The robot had a passive-like walking motion.

Figure 3 .Figure 4 .Figure 5 .
Figure 3. Overall control system of the robot locomotion.The optimization algorithm is implemented in the central control unit, which takes input from the gyro sensor and force sensor control unit as well as commands from upper level control via the communication interface unit.A detailed diagram of the central control unit, in which there is a motion generating unit and rolling amplitude adjustment unit, is illustrated in Figure4.The latter unit calculates the optimized rolling value and adapts the motion generator accordingly.

Figure 6 .
Figure 6.Method of adjusting rolling amplitude by a gyro sensor feedback.

Figure 8 .
Figure 8. Fluctuation of the rolling motion during locomotion.

Figure 11 .
Figure 11.Sole reaction forces on the foot and ZMP.

Figure 12 .
Figure 12.Structure of the motion control system.

Figure 13 .
Figure 13.Plot of the ZMP during normal walking.