# Real-Time FPGA-Based Balance Control Method for a Humanoid Robot Pushed by External Forces
## 4 Experimental Results
### Balance Control with Stepping Backward  
The experimental results of the TKU-X robot being hit from the front by a baseball or a volleyball at 0.75 s when the balance control method is disabled and enabled are respectively shown in Figures 15 and 16. When the balance control method is disabled, the experimental results of the TKU-X robot hit from the front by a baseball and a volleyball are respectively shown in Figure 15a,b. Similarly, the data reveal that the robot wavers back and forth substantially and needs about 0.65 s to converge to the stable state in Figure 15a. To compare Figure 13b with Figure 15b, the TKU-X robot falling down is shown in Figure 13b, but the TKU-X robot taking about 0.97 s to recover the stable state is shown in Figure 15b. The difference between falling and standing is that the upper body of TKU-X robot leans forward about 7\({}^{\circ}\). When the balance control method is enabled, the experimental results of the TKU-X robot hit from the front by a baseball and a volleyball are respectively shown in Figure 16a,b. As shown in Figure 16, because the external force is from the front of the robot, the values of the inclination angle \(\phi\) (pitch-axis) and ZMP (x-axis) decrease from 7\({}^{\circ}\) and 0, respectively. Similarly, when the safety threshold \(\varepsilon\) is exceeded by the inclination angle \(\phi\), a capture point \(x_{Sup}\) is calculated. During the period when the robot stretches out its foot to the capture point, the values of the inclination angle \(\phi\) (pitch-axis) and ZMP (x-axis) increase. Finally, when the robot steps on the capture point, the stable state can be regained; the values of the inclination angle \(\phi\) (pitch-axis) and ZMP (x-axis) return to 7\({}^{\circ}\) and 0, respectively. Because the impact forces produced by the baseball and the volleyball are 0.47 and 0.93 N, the TKU-X robot respectively takes steps backward of about 1.09 cm and 3.88 cm to maintain balance. In this experiment of the TKU-X robot is hit by a baseball and volleyball from the front, the recovery times of the enabled control method are about 0.20 and 0.37 s--3.25 times and 2.62 times, respectively, faster than the disabled control method to return to a stable state. Some experimental results are shown in Table 5 when the proposed balance control method with the stepping backward is enabled or disabled for the TKU-X robot. The video can be viewed on the website: [[https://youtu.be/86](https://youtu.be/86) ITwziQA2I]([https://youtu.be/86](https://youtu.be/86) ITwziQA2I). humanoid robot to regain its balance when a strong enough external force is measured by the proposed external force detection method. Thirdly, a trajectory planning method is designed and combined with the proposed push recovery balance control method so that the capture point can be directly related to the oscillator parameters of the stepping gait, and it can be used simultaneously to execute the stepping trajectories of the forward or backward balance strategies. Then an inverse kinematics method is applied to obtain the joint angles from the proposed trajectory planning method to enable the humanoid robot to stretch out its foot to the capture point. Lastly, a system architecture of the proposed balance control method is implemented on an FPGA chip, which can respond immediately to allow the robot to continue to balance without falling. The proposed balance control method is completely tested on a real small-sized humanoid robot, TKU-X. Several experiments under different forces and directions are presented to verify the performance of the proposed method. A baseball and a volleyball are respectively used to hit TKU-X to produce two difference forces of 0.47 and 0.93 N. Two different kinds of balls not only hit from the front but also from the back. From the experimental results of successful balance, the real-time feasibility of the proposed balance control method is demonstrated. Hence, a stable state can be effectively recovered for the humanoid robot which is pushed by an external force.