# Model Predictive Control of Running Biped Robot
## 3 Placement of Landing Foot  
The ZMP is related to motion stability, and it should stay within the sole of the supporting foot. Besides, it also affects the horizontal acceleration and deceleration of the biped robot. Equation (3) indicates that with the COM ahead of the ZMP, i.e., \(x>x_{ZMP}\), the biped robot is accelerated and that with the ZMP ahead of the COM, it is decelerated. This means that the speed of the robot can be controlled by changing the relative horizontal position of the COM with respect to the ZMP. In this paper, the relative position of the COM with respect to the ZMP of the landing foot is determined for desired motion in the horizontal direction. For this, let's assume that the ZMP in a support phase is located at the center of the supporting foot, i.e., \(x_{ZMP}=0\). Then, Equation (3) becomes  
\[\ddot{x}_{i}(t_{i}) = \lambda_{i}^{2}x_{i}(t_{i}),\quad(0\leq t_{i}\leq T_{s}^{i}). \tag{8}\]  
Because \(\lambda_{i}\) is constant during support phase \(i\), the solution to Equation (8) with initial conditions of \(x_{i}(0)=x_{i}^{0}\) and \(\dot{x}_{i}(0)=\dot{x}_{i}^{0}\) is  
\[x_{i}(t_{i}) = B_{x}^{i}e^{\lambda t_{i}}+C_{x}^{i}e^{-\lambda_{i}t_{i}},\quad( 0\leq t_{i}\leq T_{s}^{i}), \tag{9}\]  
and thus  
\[\dot{x}_{i}(t_{i})=\lambda_{i}(B_{x}^{i}e^{\lambda_{i}t_{i}}-C_{x}^{i}e^{- \lambda_{i}t_{i}}),\quad(0\leq t_{i}\leq T_{s}^{i}), \tag{10}\]  
where  
\[B_{x}^{i} = \frac{1}{2}\Bigg{(}x_{i}^{0}+\frac{\dot{x}_{i}^{0}}{\lambda_{i}} \[PERSON]{)},\] \[C_{x}^{i} = \frac{1}{2}\Bigg{(}x_{i}^{0}-\frac{\dot{x}_{i}^{0}}{\lambda_{i}} \Bigg{)}.\]  
Note that the initial horizontal velocity at the support phase \(i\), i.e., \(\dot{x}_{i}^{0}\), should be equal to that at the end of support phase \(i-1\) since it is assumed that there is no horizontal force applied at the robot during flight phase \(i-1\). The initial position of the COM with respect to the supporting foot, i.e., \(x_{i}^{0}\), is computed based on desired horizontal motion in the support phase \(i\). Suppose there is the desired horizontal speed at the end of support phase \(i\), i.e., \(\dot{x}_{i}(T_{s}^{i})=V_{x,d}^{i}\), the initial position of the COM for the desired horizontal motion is computed from Equation (10) as  
\[x_{i}^{0}=\frac{2V_{x,d}^{i}e^{\lambda_{i}T_{s}^{i}}-\dot{x}_{i}^{0}\Big{(}e^ {2\lambda_{i}T_{s}^{i}}+1\Big{)}}{\lambda_{i}\Big{(}e^{2\lambda_{i}T_{s}^{i}} -1\Big{)}}. \tag{11}\]  
If the horizontal speed does not reach the desired at the end of the support phase \(i\), i.e., \(\dot{x}_{i}(T_{s}^{i})\
eq V_{x,d}^{i}\), the initial COM position of the next support phase, \(x_{i+1}^{0}\), is computed to reach the desired velocity in the next support phase based on Equation (11). In this paper, \(x_{i}^{0}\
eq-x_{i}\big{(}T_{s}^{i}\big{)}\), and thus the generated trajectory is asymmetric, which may cause the robot to exceed its workspace. In order to prevent this, the desired horizontal speed of the support phase should be limited. So, suppose there exists a limit in \(x_{i}(T_{s}^{i})\), \(\dot{x}_{i}\), noting that \(x_{i}(t_{i})\) keeps increasing near the end of the support phase. Then,  
\[x_{i}(T_{s}^{i})=B_{x}^{i}e^{\lambda_{i}T_{s}^{i}}+C_{x}^{i}e^{-\lambda_{i}T_ {s}^{i}}\leq\dot{x}_{i}, \tag{12}\]and thus  
\[x_{i}^{0}\leq\frac{2\tilde{x}_{i}e^{\lambda_{i}T_{i}^{i}}}{e^{2\lambda_{i}T_{i}^{i }}+1}+\frac{\dot{x}_{i}^{0}}{\lambda_{i}}. \tag{13}\]  
From Equations (11) and (13), the constraint to the speed due to the limited workspace of the biped robot is obtained:  
\[V_{x,d}^{i}\leq V_{x,max}^{i}\triangleq\frac{\lambda_{i}\Big{(}e^{2\lambda_{i }T_{s}^{i}}-1\Big{)}}{e^{2\lambda_{i}T_{s}^{i}}+1}\tilde{x}_{i}+\dot{x}_{i}^{0} e^{\lambda_{i}T_{s}^{i}}, \tag{14}\]  
where \(V_{x,max}^{i}\) denotes the maximum speed that the biped robot can have at the end of the support phase \(i\). With \(V_{x,d}^{i}\) satisfies the constraint, \(x_{i}^{0}\) can be computed by using Equation (11). However, if the constraint is not satisfied, \(V_{x,max}^{i}\) replaces \(V_{x,d}^{i}\) in computing \(x_{i}^{0}\).