#include <suPreTrackContact.h>
Public Member Functions | |
| suPreTrackContact (rdUTWalking8 *aModel, rdStorage *aGenCrds, rdStorage *psdStates, rdStorage *aKinetics, rdStorage *aSprings) | |
| Construct a preTrackContract analysis based on an rdUTWalking8 model and the generalized coordinates, pseudostates, and kinetics corresponding to the motion to be processed. | |
| virtual | ~suPreTrackContact () |
| Destructor. | |
| rdStorage * | getGenCrdStorage () |
| Get a pointer to the rdStorage containing the new generalized coordinates. | |
| rdStorage * | getPsdStateStorage () |
| Get a pointer to the rdStorage containing the new pseudostates. | |
| void | compute (double aT, int aTIndex) |
| Compute the states and psuedo-states that are consistent with the contact contraints. | |
| int | suComputeVertPerformance (double *x, double *p) |
| Compute performance given x. | |
| int | suComputeVertPerformanceGradient (double *x, double *dpdx) |
| Compute performance gradient given x. | |
| int | suComputeVertConstraint (double *x, int ic, double *c) |
| Compute a constraint given x. | |
| int | suComputeVertConstraintGradient (double *x, int ic, double *dcdx) |
| Compute constraint gradient given x. | |
| int | suComputeHorizPerformance (double *x, double *p) |
| Compute performance given x. | |
| int | suComputeHorizPerformanceGradient (double *x, double *dpdx) |
| Compute gradient of performance given x. | |
| int | suComputeHorizConstraint (double *x, int ic, double *c) |
| Compute a constraint given x. | |
Protected Attributes | |
| double | _wXS |
| Performance criterion weight for the spring forces. | |
| double | _wExpTight |
| Performance criterion weight for the accurate experimental data. | |
| double | _wExpLoose |
| Performance criterion weight for the poor experimental data. | |
Private Member Functions | |
| void | setNull () |
| Set NULL values for all member variables. | |
| int | initializeVertControls () |
| Initialize vertical control values to initial values of the generalized coordinates. | |
| int | updateGenCoords (double *x) |
| Update the generalized coordinates based on the current controls. | |
| int | appendGenCoords () |
| Update the generalized coordinates based on optimized controls. | |
| int | updatePsdStates (double *x) |
| Update the generalized coordinates based on the current controls. | |
| int | updateModel () |
| Update the model based on the current controls so that spring positions and forces can be evaluated. | |
| double | getSprForce (int direction, int spring) |
| Given the spring number and direction return the force in the spring. | |
| double | getSprPos (int direction, int spring) |
| Given the spring number and direction return the position of the spring. | |
| double | getSumSprForce (int direction, int startSpring, int endSpring) |
| Given the starting spring number and the ending spring number and a direction return the sum of the forces in the springs in that direction. | |
| double | getSprPosRelToAnkle (int direction, int spring) |
| Given a direction and the spring number, return the position of the spring relative to the ankle in the specified direction. | |
| int | getNumSpringsInContact (int startSpring, int endSpring) |
| Count the number of springs in contact with the ground. | |
Private Attributes | |
| int | _counter |
| Counter for number of times that compute has been called. | |
| rdUTWalking8 * | _model |
| Pointer to the model. | |
| int | _nvControls |
| Number of vertical controls. | |
| int | _nhControls |
| Number of horizontal controls *. | |
| int | _nvConstraints |
| Number of vertical constraints *. | |
| int | _nhConstraints |
| Number of horizontal constraints *. | |
| double | _spos [rdUTWalking8_NS][3] |
| Positions of all spring points *. | |
| double | _svel [rdUTWalking8_NS][3] |
| Velocities of all spring points *. | |
| double | _sfrc [rdUTWalking8_NS][3] |
| Forces at all spring points *. | |
| double * | _xVertLast |
| Last good values of the controls. | |
| double * | _xVert |
| Controls for vertical force oprimization *. | |
| rdStorage * | _expKineticsStore |
| The experimental kinetics *. | |
| rdStorage * | _qOrigStore |
| The rdStorage of original genCoords to be processed *. | |
| rdStorage * | _ypOrigStore |
| The original pseudo states to be processed *. | |
| double * | _expKinetics |
| Array containing the experimental kinetic data *. | |
| double * | _qOrigRad |
| Array containing the original generalized coordinates in radians. | |
| double * | _qOrig |
| Array containing the original genCoords in quaternions. | |
| double * | _q |
| Array containing the gen coords in the process of being altered. | |
| double * | _u |
| Array of generalized speeds. | |
| double * | _yp |
| Array containing the psuedo states in the process of being altered *. | |
| rdStorage * | _newGenCrds |
| The consistent genCoords post-optimization. | |
| rdStorage * | _newPsdStates |
| The consistent pseudo-states post-optimization. | |
| double * | _springInContact |
| Pointer to storage for spring contact array *. | |
| double | _time |
| The time for which the contact consistency is being evaluated *. | |
| suContactTargetVertical * | _vertContTarg |
| The vertical optimization target *. | |
| suContactTargetHorizontal * | _horizContTarg |
| The vertical optimization target *. | |
| rdFSQP * | _sqpVert |
| The vertical optimization target *. | |
| rdFSQP * | _sqpHoriz |
| The horizontal optimization target *. | |
| double ** | _dcdxVertPast |
| Vector to hold past vertical contraint gradients. | |
| double * | _dpdxVertPast |
| Vector to hold past vertical performance gradients. | |
| int | _vStatus |
| Return status of the optimization problem. | |
| rdStorage * | _springStore |
| rdStorage with optimal walking data * | |
| double * | _controls |
| double * | _states |
|
|
Get a pointer to the rdStorage containing the new generalized coordinates.
|
|
|
Get a pointer to the rdStorage containing the new pseudostates.
|
|
||||||||||||
|
Given a direction and the spring number, return the position of the spring relative to the ankle in the specified direction. Location is returned relative to ankle in global coordinates. |
|
||||||||||||
|
Compute gradient of performance given x. CURRENTLY NOT USED - GRADIENTS ARE CALCULATED NUMERICALLY |
|
|
Array containing the gen coords in the process of being altered. * |
|
|
Array containing the original genCoords in quaternions. * |
|
|
Array containing the original generalized coordinates in radians. * |
|
|
Array of generalized speeds. * |
1.3