# Precise Calculation of Inverse Kinematics of the Center of Gravity for Bipedal Walking Robots
## 3 Results  
Two simulations that use the same walking parameters are run. The CCG algorithm is used in the first simulation. Joint angles are calculated with the CCG algorithm for precise CoG tracking in each position in the trajectory. In the second simulation, the CoG is calculated before the movement starts. The vector is assumed to be constant between the pelvis and the CoG. The CCG algorithm is compared to the method given in [9]. Other methods restrict the movement of the robot and require additional trajectories. Both simulations are run as an open loop. Neither a balancer nor a controller is used.  
The timespan of the simulation is divided into 10 equal intervals, as shown in both Figure 7a,b. A screenshot of the simulation is taken and overlaid on the previous moment at the start of the intervals. The leftmost pose is the starting pose of the simulation in each panel in Figure 7. The robot moves forward in the positive \(x\) direction, which is represented by the red arrow in Figure 7.  
The poses of the robot with and without CCG are presented in Figure 7. As seen in (a), the robot is able to follow the trajectory without falling when CCG is used. When CCG is not used, as shown in (b), the robot is unable to preserve its stance and falls by losing its balance after taking its fourth step. The fall of the robot in the fourth step can be seen as an inverted robot pose in (b).  
Figure 8 shows the reference ZMP and CoG trajectory, as well as a comparison of the trajectories of the CoG obtained with and without CCG. While the result of the simulation run with CCG is compatible with the reference CoG, the trajectory calculated without CCG starts to deviate after the second step and results in the robot falling in the fourth step. The starting points of motion are very close to each other. There is sliding in the feet during motion as only four points contact the floor. This explains the errors observed in the trajectories along the \(x\) and \(y\) axes.  
\begin{table}
\begin{tabular}{l c c c} \hline \hline
**Parameter** & **Value** & **Unit** & **Explanation** \\ \hline \(s_{x}\) & 0.3 & m & Step length \\ \(s_{y}\) & 0.065 & m & Distance between feet \\ \(h_{s}\) & 0.075 & m & Step height \\ \(r_{sphere}\) & 0.01 & m & Contact sphere radius \\ \(k_{contact}\) & \(6.00\times 10^{4}\) & N/m & Contact rigidity \\ \(b_{contact}\) & \(6.00\times 10^{3}\) & Ns/m & Contact dampening ratio \\ \(G_{prec}\) & 0.001 & m & Precision of calculation \\ \(\beta\) & 0.001 & & Unit vector magnitude coefficient \\ \hline \hline \end{tabular}
\end{table}
Table 4: Study parameters.  
Figure 6: Simulink model diagram.  
The ZMP values and CoG trajectory are in good agreement, as shown in Figure 9, which presents the result of the simulation run with CCG. Due to the hysteresis in contact forces, there are deviations in the ZMP values. However, because these values remain within the support geometry, the robot does not fall and can complete its walk.  
On the other hand, in the result of the simulation run without CCG in Figure 10, the CoG and ZMP values are compatible during the first two steps but deviate afterwards, and the trajectory showing the robot fall is seen in the fourth step as a result of the disruption of this compatibility in the third step.  
In addition, CoG tracking error values of the CCG algorithm are illustrated in Figure 11.  
Figure 11 displays the errors between the calculated and simulated CoG values. The greatest error value was 0.0559 m, the smallest error value was 9.6353 \(\times\) 10\({}^{-4}\) m, and the average error value was 0.0238 m.