Go to the source code of this file.
Functions | |
int | dirdynared (MbsAux *mbs_aux, MbsData *s) |
Compute the joint accelerations of the system in the current configuration. More... | |
int | invdynared (MbsAux *mbs_aux, MbsData *s) |
Compute the required forces ont the actuated joints in a configuration. More... | |
int | mbs_Mred (MbsAux *mbs_aux, MbsData *s) |
compute Mr, the reduced mass matrix [nqu x nqu] obtained after the 2 consecutive reductions (Robotran Basics). More... | |
int | mbs_Rred (MbsAux *mbs_aux, MbsData *s) |
compute Rred, the reduced equations of motions on a residual form [nqu x 1] obtained after the 2 consecutive reductions (Robotran Basics). More... | |
int | mbs_Rred_core (MbsAux *mbs_aux, MbsData *s) |
Compute the residual force on independant joints and required force in driven joints. More... | |
int | mbs_comp_LUdcmp_mJv (MbsData *s, MbsAux *mbs_aux) |
compute and update (!) the mJv matrix, decomposing it to the LU format mbs_aux->mJv[i][j] = -mbs_aux->Jac[s->hu[i]][s->qv[j]]; return ludcmp(mbs_aux->mJv, s->nqv, mbs_aux->ind_mJv, &d); More... | |
int | mbs_close_geo (MbsData *s, MbsAux *mbs_aux) |
compute a position of the multibody system which solves the constraints More... | |
int | mbs_step_close_geo (MbsData *s, MbsAux *mbs_aux) |
compute an iteration of the position of the multibody system to solve the constraints More... | |
int | mbs_anim_close_geo (MbsData *mbs_data, MbsAux *mbs_aux) |
Generate the animation for failed Newton-Raphson procedure. More... | |
void | mbs_close_kin (MbsData *s, MbsAux *mbs_aux) |
compute the dependent velocities that solves the constraints. More... | |
int | mbs_calc_hJ (MbsData *s, MbsAux *mbs_aux) |
compute the current value of the constraints ( ) and the constraint Jacobian matrix ( ). More... | |
int | mbs_calc_jdqd (MbsData *s, MbsAux *mbs_aux) |
compute the quadratic term of the constraints at acceleration level: More... | |
int | mbs_calc_force (MbsData *s) |
compute the force and torques applied on the multibody system. More... | |
int dirdynared | ( | MbsAux * | mbs_aux, |
MbsData * | s | ||
) |
Compute the joint accelerations of the system in the current configuration.
The current configuration must be considered after the following updates:
[in,out] | mbs_aux | the local computation structure, where the result is stored in the variable Mr. |
[in,out] | s | the MbsData of the system, where q(iqv),qd(iqv) and qdd(iqv) are updated. |
MBS_INFO_SUCCESS
in case of success, any other value in case of error. int invdynared | ( | MbsAux * | mbs_aux, |
MbsData * | s | ||
) |
Compute the required forces ont the actuated joints in a configuration.
[in,out] | mbs_aux | the local computation structure, where the result is stored in the variable Mr. |
[in,out] | s | the MbsData of the system, where q(iqv),qd(iqv) and qdd(iqv) are updated. |
MBS_INFO_SUCCESS
in case of success, any other value in case of error. case 1 : UNconstrained system
case 2 : UNconstrained system, fully driven
case 3 : constrained system with u : no actuated driven, overactuation possible
case 4 : constrained fully driven : actionnement sur c ou v
int mbs_anim_close_geo | ( | MbsData * | mbs_data, |
MbsAux * | mbs_aux | ||
) |
Generate the animation for failed Newton-Raphson procedure.
[in,out] | mbs_data | the MbsData structure. |
[in] | mbs_aux | the mbs_aux structure of the failed process. The initial coordinates vector values are stored in MbsAux::q_save. |
int mbs_calc_force | ( | MbsData * | s | ) |
compute the force and torques applied on the multibody system.
Set the matrices MbsData::frc and MbsData::trq at zero, then compute the contribution of:
[in,out] | s | the MbsData structure. |
MBS_INFO_SUCCESS
if everything went well, <0 if an error has occured int mbs_calc_hJ | ( | MbsData * | s, |
MbsAux * | mbs_aux | ||
) |
int mbs_calc_jdqd | ( | MbsData * | s, |
MbsAux * | mbs_aux | ||
) |
int mbs_close_geo | ( | MbsData * | s, |
MbsAux * | mbs_aux | ||
) |
compute a position of the multibody system which solves the constraints
The algorithm calls a Newton/Raphson procedure which solves the equation: .
Robotran Basics Eq(17), chapter 3.2.1, pp. 12
[in,out] | s | the MbsData structure. |
[in,out] | mbs_aux | the MbsAux structure related to the MbsData structure. |
void mbs_close_kin | ( | MbsData * | s, |
MbsAux * | mbs_aux | ||
) |
int mbs_comp_LUdcmp_mJv | ( | MbsData * | s, |
MbsAux * | mbs_aux | ||
) |
compute and update (!) the mJv matrix, decomposing it to the LU format mbs_aux->mJv[i][j] = -mbs_aux->Jac[s->hu[i]][s->qv[j]]; return ludcmp(mbs_aux->mJv, s->nqv, mbs_aux->ind_mJv, &d);
! modify the field mbs_aux->mJv
[in,out] | s | the MbsData structure. |
[in,out] | mbs_aux | the MbsAux structure related to the MbsData structure. |
int mbs_Mred | ( | MbsAux * | mbs_aux, |
MbsData * | s | ||
) |
compute Mr, the reduced mass matrix [nqu x nqu] obtained after the 2 consecutive reductions (Robotran Basics).
necessary for
[in,out] | mbs_aux | the local computation structure, where the result is stored in the variable Mr. |
[in,out] | s | the MbsData of the system, where q(iqv),qd(iqv) and qdd(iqv) are updated. |
MBS_INFO_SUCCESS
in case of success. int mbs_Rred | ( | MbsAux * | mbs_aux, |
MbsData * | s | ||
) |
compute Rred, the reduced equations of motions on a residual form [nqu x 1] obtained after the 2 consecutive reductions (Robotran Basics).
necessary for
[in,out] | mbs_aux | the local computation structure, where the result Rred is stored. |
[in,out] | s | the MbsData of the system, where q(iqv),qd(iqv) and qdd(iqv) are updated. |
MBS_INFO_SUCCESS
in case of success. int mbs_Rred_core | ( | MbsAux * | mbs_aux, |
MbsData * | s | ||
) |
Compute the residual force on independant joints and required force in driven joints.
This function is the computationnal core of Rred and Invdynared computations. This function assumes that all independent joints and all driven joints are up-to-date (coordinates, velocities and accelerations).
[in,out] | mbs_aux | the local computation structure, where the result Rred and Qc are stored. |
[in,out] | s | the MbsData of the system, where q[qv], qd[qv], qdd[qv] and Qc are updated. |
int mbs_step_close_geo | ( | MbsData * | s, |
MbsAux * | mbs_aux | ||
) |
compute an iteration of the position of the multibody system to solve the constraints
The algorithm is one step of a Newton/Raphson procedure which solves the equation: .
Robotran Basics Eq(17), chapter 3.2.1, pp. 12
[in,out] | s | the MbsData structure. |
[in,out] | mbs_aux | the MbsAux structure related to the MbsData structure. |