|
|
|
|
|
|
|
|
|
Optimization
|
|
Error Function | |
Go to Matlab code for optimization Go to |
We want to solve for the vector of system parameter X, that will result in simulated behavior of the model that is of the same type as that observed in the kinematic data.
In the Spacetime Constraints-derived framework of Popovic and Witkin (1999), the function to minimize would be the error between the kinematic motion and the motion resulting from a simulation of the system, given the system parameters X. In this approach, however, I minimize a different error between two quantities:
This error is squared and summed over each "pose" or capture-frame in the entire trajectory. The final value f that is minimized is a weighted sum of the errors in the X and Y directions and the Moment. For the results shown in this document, the weights used were [1 1 100] respectively. |
Motivation for this approach lies in that we don't necessarily want to achieve the same motion as the kinematic data, but rather infer the same basic dynamic properties. Moreover, the kinematic data is not regular and may not represent a nominal locomotion cycle.
Although for each pose the solution for the vector X is under-determined, the problem becomes over-constrained when summing over all of the poses in the trajectory. |
|
Optimization Results | |
The two results presented here are the results of the optimization for two different initial guesses for X. The first, termed lo_hipK contained estimated values for the stiffnesses, damping coefficients and nominal lengths loosely based on leg force data found in Kubow and Full (1999) and inferred from the kinematic data. The second, termed hi_hipK is identical to the previous except with higher hip stiffnesses. |
|
lo_hipK | |
Figure 9 Optimization History for lo_hipK (click for movie, then step through it) Figure 10 |
Figure 9 shows the history of the optimization after every 100 iterations.
Figure 10 shows the history of the nominal leg positions after every 100 iterations. The initial discontinuities in the data are due to the legs lifting off and touching down. However, as can be seen, after 100 iterations, new discontinuities are introduced. I believe this occurs when the error between the hip angles and the nominal hip angles exceeds 180degrees because this situation was not accounted for in the model. This situation arises when the optimization procedure tries to increase the hip torques. In doing so, it increases the hip stiffness and the nominal hip angle, eventually reaching a point where the nominal hip angles are excessive. However, as seen in the next section, even after 100 iterations, this solution results in dynamically-stable motion similar to the kinematic data. |
hi_hipK | |
Figure 11 Optimization History for hi_hipK (click for movie, then step through it) Figure 12 |
Figures 11 and 12 show the optimization history for this new initial guess after every 100 iterations. As can be seen, the resulting nominal position seem more reasonable. |