#include <rdMimic.h>
Inheritance diagram for rdMimic:

Public Member Functions | |
| rdMimic () | |
| Mimic model. | |
| virtual | ~rdMimic () |
| Destructor. | |
| virtual void | setGravity (double aGrav[3]) |
| Set the gravity. | |
| virtual void | getGravity (double rGrav[3]) const |
| Get the gravity. | |
| virtual void | setConfiguration (const double aQ[], const double aU[]) |
| Set the configuration of the model. | |
| virtual void | setConfiguration (const double aY[]) |
| Set the configuration of the model. | |
| virtual int | getGroundID () const |
| Get the body ID of the ground (or inertial) frame. | |
| virtual double | getMass (int aBody) const |
| Get the mass of a body. | |
| virtual int | getInertiaBodyLocal (int aBody, double rI[3][3]) const |
| Get the scalar inertia matrix of a body. | |
| virtual int | getInertiaBodyLocal (int aBody, double *rI) const |
| Get the scalar inertia matrix of a body. | |
| virtual void | getSystemInertia (double *rM, double rCOM[3], double rI[3][3]) const |
| Get the mass, center of mass, and inertia tensor of the whole model. | |
| virtual void | getSystemInertia (double *rM, double *rCOM, double *rI) const |
| Get the mass, center of mass, and inertia tensor of the whole model. | |
| virtual void | getPosition (int aBody, const double aPoint[3], double rPos[3]) const |
| Get the inertial position of a point on a body. | |
| virtual void | getVelocity (int aBody, const double aPoint[3], double rVel[3]) const |
| Get the inertial velocity of a point on a body. | |
| virtual void | getAcceleration (int aBody, const double aPoint[3], double rAcc[3]) const |
| Get the inertial acceleration of a point on a body. | |
| virtual void | getDirectionCosines (int aBody, double rDirCos[3][3]) const |
| Get the body orientation with respect to the ground. | |
| virtual void | getDirectionCosines (int aBody, double *rDirCos) const |
| Get the body orientation with respect to the ground. | |
| virtual void | getAngularVelocity (int aBody, double rAngVel[3]) const |
| Get the inertial angular velocity of a body in the ground reference frame. | |
| virtual void | getAngularVelocityBodyLocal (int aBody, double rAngVel[3]) const |
| Get the inertial angular velocity in the local body reference frame. | |
| virtual void | getAngularAcceleration (int aBody, double rAngAcc[3]) const |
| Get the inertial angular acceleration of a body in the ground reference frame. | |
| virtual void | getAngularAccelerationBodyLocal (int aBody, double rAngAcc[3]) const |
| Get the inertial angular acceleration in the local body reference frame. | |
| virtual void | applyForce (int aBody, const double aPoint[3], const double aForce[3]) |
| Apply a force expressed in the inertial frame to a point on a body. | |
| virtual void | applyForces (int aN, const int aBodies[], const double aPoints[][3], const double aForces[][3]) |
| Apply a set of forces expressed in the inertial frame to a set of bodies. | |
| virtual void | applyForces (int aN, const int aBodies[], const double *aPoints, const double *aForces) |
| Apply forces expressed in the inertial frame to points bodies. | |
| virtual void | applyForceBodyLocal (int aBody, const double aPoint[3], const double aForce[3]) |
| Apply a force expressed in the body-local frame to a point on a body. | |
| virtual void | applyForcesBodyLocal (int aN, const int aBodies[], const double aPoints[][3], const double aForces[][3]) |
| Apply a set of forces to a set of bodies. | |
| virtual void | applyForcesBodyLocal (int aN, const int aBodies[], const double *aPoints, const double *aForces) |
| Apply a set of forces to a set of bodies. | |
| virtual void | applyTorque (int aBody, const double aTorque[3]) |
| Apply a torque expressed in the inertial frame to a body. | |
| virtual void | applyTorques (int aN, const int aBodies[], const double aTorques[][3]) |
| Apply a set of torques expressed in the inertial frame to a set of bodies. | |
| virtual void | applyTorques (int aN, const int aBodies[], const double *aTorques) |
| Apply a set of torques expressed in the inertial frame to a set of bodies. | |
| virtual void | applyTorqueBodyLocal (int aBody, const double aTorque[3]) |
| Apply a torque expressed in the body-local frame to a body. | |
| virtual void | applyTorquesBodyLocal (int aN, const int aBodies[], const double aTorques[][3]) |
| Apply a set of torques expressed in the body-local frame to a set of bodies. | |
| virtual void | applyTorquesBodyLocal (int aN, const int aBodies[], const double *aTorques) |
| Apply a set of torques expressed in the body-local frame to a set of bodies. | |
| virtual void | applyGeneralizedForce (int aU, double aF) |
| Apply a generalized force to a generalized coordinate. | |
| virtual void | applyGeneralizedForces (const double aF[]) |
| Apply generalized forces. | |
| virtual void | applyGeneralizedForces (int aN, const int aU[], const double aF[]) |
| Apply generalized forces. | |
| virtual double | getNetAppliedGeneralizedForce (int aU) const |
| Get the net applied generalized force. | |
| virtual void | computeGeneralizedForces (double aDUDT[], double rF[]) const |
| Compute the generalized forces necessary to achieve a set of specified accelerations. | |
| virtual int | computeAccelerations (double *dqdt, double *dudt) |
| Compute the derivatives of the states. | |
| virtual void | formMassMatrix (double *rI) |
| Form the system mass matrix. | |
| virtual void | formEulerTransform (int aBody, double *rE) const |
| Form the transformation matrix E[3][3] that can be used to express the angular velocity of a body in terms of the time derivatives of the euler angles. | |
| virtual void | formJacobianTranslation (int aBody, const double aBodyPoint[3], double *rJ, int aRefBody=-1) const |
| Form the full Jacobian matrix (J) for the translation of a point on a body. | |
| virtual void | formJacobianOrientation (int aBody, double *rJ0, int aRefBody=-1) const |
| Form the full Jacobian matrix (J0) for the orientation of a body. | |
| virtual void | formJacobianEuler (int aBody, double *rJE, int aRefBody=-1) const |
| Form the full Jacobian matrix (JE) for the orientation of a body expressed in terms of Euler angles. | |
| virtual void | transform (int aBody1, const double aVec1[3], int aBody2, double rVec2[3]) const |
| Transform a vector from one frame to another. | |
| virtual void | convertQuaternionsToAngles (double *q, double *qang) const |
| Convert quaterions to angles. | |
| virtual void | convertAnglesToQuaternions (double *qang, double *q) const |
| Convert angles to quaterions. | |
| virtual void | convertRadiansToDegrees (double *aQRad, double *aQDeg) const |
| Convert the rotational generalized coordinates or speeds from units of radians to units of degrees. | |
| virtual void | convertDegreesToRadians (double *aQDeg, double *aQRad) const |
| Convert the rotational generalized coordinates or speeds from units of degrees to units of radiants. | |
| virtual void | convertAnglesToDirectionCosines (double aE1, double aE2, double aE3, double rDirCos[3][3]) const |
| Convert angles to direction cosines. | |
| virtual void | convertAnglesToDirectionCosines (double aE1, double aE2, double aE3, double *rDirCos) const |
| Convert angles to direction cosines. | |
| virtual void | convertDirectionCosinesToAngles (double aDirCos[3][3], double *rE1, double *rE2, double *rE3) const |
| Convert direction cosines to angles. | |
| virtual void | convertDirectionCosinesToAngles (double *aDirCos, double *rE1, double *rE2, double *rE3) const |
| Convert direction cosines to angles. | |
| virtual void | convertDirectionCosinesToQuaternions (double aDirCos[3][3], double *rQ1, double *rQ2, double *rQ3, double *rQ4) const |
| Convert direction cosines to quaternions. | |
| virtual void | convertDirectionCosinesToQuaternions (double *aDirCos, double *rQ1, double *rQ2, double *rQ3, double *rQ4) const |
| Convert direction cosines to quaternions. | |
| virtual void | convertQuaternionsToDirectionCosines (double aQ1, double aQ2, double aQ3, double aQ4, double rDirCos[3][3]) const |
| Convert quaternions to direction cosines. | |
| virtual void | convertQuaternionsToDirectionCosines (double aQ1, double aQ2, double aQ3, double aQ4, double *rDirCos) const |
| Convert quaternions to direction cosines. | |
Static Public Attributes | |
| const int | GROUND = 0 |
| Body number for ground. | |
Private Member Functions | |
| void | setNull () |
| Set NULL values for all member variables. | |
| void | constructSystemVariables () |
| Construct system variables. | |
| void | constructNames () |
| Construct the names of the model. | |
|
||||||||||||||||
|
Apply a force expressed in the inertial frame to a point on a body.
Implements rdModel. |
|
||||||||||||||||
|
Apply a force expressed in the body-local frame to a point on a body.
Implements rdModel. |
|
||||||||||||||||||||
|
Apply forces expressed in the inertial frame to points bodies.
Implements rdModel. |
|
||||||||||||||||||||
|
Apply a set of forces expressed in the inertial frame to a set of bodies. The body points, aPoint, should be expressed in the body-local frame. The forces, aForce, should be expressed in the inertial frame.
Implements rdModel. |
|
||||||||||||||||||||
|
Apply a set of forces to a set of bodies.
Implements rdModel. |
|
||||||||||||||||||||
|
Apply a set of forces to a set of bodies.
Implements rdModel. |
|
||||||||||||
|
Apply a generalized force to a generalized coordinate. Note that depending on the axis type the generalized force can be a torque or a force.
Implements rdModel. |
|
||||||||||||||||
|
Apply generalized forces. The dimension of aF is assumed to be the number of generalized speeds.
Implements rdModel. |
|
|
Apply generalized forces. The dimension of aF is assumed to be the number of generalized speeds.
Implements rdModel. |
|
||||||||||||
|
Apply a torque expressed in the inertial frame to a body.
Implements rdModel. |
|
||||||||||||
|
Apply a torque expressed in the body-local frame to a body.
Implements rdModel. |
|
||||||||||||||||
|
Apply a set of torques expressed in the inertial frame to a set of bodies.
Implements rdModel. |
|
||||||||||||||||
|
Apply a set of torques expressed in the inertial frame to a set of bodies.
Implements rdModel. |
|
||||||||||||||||
|
Apply a set of torques expressed in the body-local frame to a set of bodies.
Implements rdModel. |
|
||||||||||||||||
|
Apply a set of torques expressed in the body-local frame to a set of bodies.
Implements rdModel. |
|
||||||||||||
|
Compute the derivatives of the states.
Implements rdModel. |
|
||||||||||||
|
Compute the generalized forces necessary to achieve a set of specified accelerations. If any forces have been applied to the model, the balance of generalized forces needed to achieve the desired accelerations is computed. Note that constraints are not taken into account by this method.
Implements rdModel. |
|
|
Construct system variables. The following numbers are initialized by making SD/Fast calls: _nb Number of bodies. _nj Number of joints. _nu Number of degrees of freedom. _nq Number of generalized coordinates (_nu + number of ball joints). Memory allocations are performed for the following data members: _q _u
|
|
||||||||||||||||||||
|
Convert angles to direction cosines.
Implements rdModel. |
|
||||||||||||||||||||
|
Convert angles to direction cosines.
Implements rdModel. |
|
||||||||||||
|
Convert angles to quaterions.
Implements rdModel. |
|
||||||||||||
|
Convert the rotational generalized coordinates or speeds from units of degrees to units of radiants.
Implements rdModel. |
|
||||||||||||||||||||
|
Convert direction cosines to angles.
Implements rdModel. |
|
||||||||||||||||||||
|
Convert direction cosines to angles.
Implements rdModel. |
|
||||||||||||||||||||||||
|
Convert direction cosines to quaternions.
Implements rdModel. |
|
||||||||||||||||||||||||
|
Convert direction cosines to quaternions.
Implements rdModel. |
|
||||||||||||
|
Convert quaterions to angles.
Implements rdModel. |
|
||||||||||||||||||||||||
|
Convert quaternions to direction cosines.
Implements rdModel. |
|
||||||||||||||||||||||||
|
Convert quaternions to direction cosines.
Implements rdModel. |
|
||||||||||||
|
Convert the rotational generalized coordinates or speeds from units of radians to units of degrees.
Implements rdModel. |
|
||||||||||||
|
Form the transformation matrix E[3][3] that can be used to express the angular velocity of a body in terms of the time derivatives of the euler angles. The Euler angle convention is body-fixed 1-2-3.
Implements rdModel. |
|
||||||||||||||||
|
Form the full Jacobian matrix (JE) for the orientation of a body expressed in terms of Euler angles. JE is laid out as follows: dEx/dq1 dEx/dq2 dEx/dq3 ... dEx/dqnu dEy/dq1 dEy/dq2 dEy/dq3 ... dEy/dqnu dEz/dq1 dEz/dq2 dEz/dq3 ... dEz/dqnu where E is the orientation of the body using 1-2-3 body-fixed Euler angles. So, JE should have 3 rows and NU columns. In memory, the column index increments fastest, so the representation is JE[3][NU]. It is assumed that enough space has been allocated at rJO to hold all of the Jacobian elements. The Jacobian elements can be expressed in terms of the ground frame or a particular body frame. By default, the elements are expressed in the ground frame.
Implements rdModel. |
|
||||||||||||||||
|
Form the full Jacobian matrix (J0) for the orientation of a body. Note that J0 is not appropriate for operations when the body orientation is specified in terms of Euler angles. When the body is described in terms of Euler angles, the method formJacobianEuler should be used. J0 is laid out as follows: dOx/dq1 dOx/dq2 dOx/dq3 ... dOx/dqnu dOy/dq1 dOy/dq2 dOy/dq3 ... dOy/dqnu dOz/dq1 dOz/dq2 dOz/dq3 ... dOz/dqnu where O is the orientation of the body. So, JO should have 3 rows and NU columns. In memory, the column index increments fastest, so the representation is JO[3][NU]. It is assumed that enough space has been allocated at rJO to hold all of the Jacobian elements. The Jacobian elements can be expressed in terms of the ground frame or a particular body frame. By default, the elements are expressed in the ground frame.
Implements rdModel. |
|
||||||||||||||||||||
|
Form the full Jacobian matrix (J) for the translation of a point on a body. J is laid out as follows: dPx/dq1 dPx/dq2 dPx/dq3 ... dPx/dqnu dPy/dq1 dPy/dq2 dPy/dq3 ... dPy/dqnu dPz/dq1 dPz/dq2 dPz/dq3 ... dPz/dqnu where P is the point on the body. So, J should have 3 rows and NU columns. In memory, the column index increments fastest, so the representation is J[3][NU]. It is assumed that enough space has been allocated at aJ to hold all of the Jacobian elements. The Jacobian elements can be expressed in terms of the ground frame or a particular body frame. By default, the elements are expressed in the ground frame.
Implements rdModel. |
|
|
Form the system mass matrix.
Implements rdModel. |
|
||||||||||||||||
|
Get the inertial acceleration of a point on a body. Note that the configuration of the model must be set and accelerations of the generalized coordinates must be computed before calling this method.
Implements rdModel. |
|
||||||||||||
|
Get the inertial angular acceleration of a body in the ground reference frame.
Implements rdModel. |
|
||||||||||||
|
Get the inertial angular acceleration in the local body reference frame.
Implements rdModel. |
|
||||||||||||
|
Get the inertial angular velocity of a body in the ground reference frame.
Implements rdModel. |
|
||||||||||||
|
Get the inertial angular velocity in the local body reference frame.
Implements rdModel. |
|
||||||||||||
|
Get the body orientation with respect to the ground.
Implements rdModel. |
|
||||||||||||
|
Get the body orientation with respect to the ground.
Implements rdModel. |
|
|
Get the gravity.
Reimplemented from rdModel. |
|
||||||||||||
|
Get the scalar inertia matrix of a body.
Implements rdModel. |
|
||||||||||||
|
Get the scalar inertia matrix of a body.
Implements rdModel. |
|
|
Get the mass of a body.
Implements rdModel. |
|
|
Get the net applied generalized force. The returned force is the sum of all applied forces plus any forces needed for any prescribed motions. The methods setState() (or equivalent) and computeAccelerations() must be called prior to calling this method for the returned result to be valid.
Implements rdModel. |
|
||||||||||||||||
|
Get the inertial position of a point on a body. Note that the configuration of the model must be set before calling this method.
Implements rdModel. |
|
||||||||||||||||
|
Get the mass, center of mass, and inertia tensor of the whole model.
Implements rdModel. |
|
||||||||||||||||
|
Get the mass, center of mass, and inertia tensor of the whole model.
Implements rdModel. |
|
||||||||||||||||
|
Get the inertial velocity of a point on a body. Note that the configuration of the model must be set before calling this method.
Implements rdModel. |
|
|
Set the configuration of the model.
Reimplemented from rdModel. |
|
||||||||||||
|
Set the configuration of the model.
Reimplemented from rdModel. |
|
|
Set the gravity.
Reimplemented from rdModel. |
|
||||||||||||||||||||
|
Transform a vector from one frame to another.
Implements rdModel. |
1.3