|
|
# Description
|
|
|
A new optional feature has been added in the symbolic generator : *OptimSinCos(also known as Rtime)*, a flag that avoid multiple computation of the sin/cos in the symbolic file. More precisely,
|
|
|
1. the independent and driven joints are computed in Mred, Rred and dirdynared
|
|
|
2. the dependent are updated during the loop closure in the symbolic file (qu and qdriven are precomputed)
|
|
|
3. the dependent are fixed after the loops have been closed, for the rest of the simulation.
|
|
|
|
|
|
The "optim" has been made for all modules, but is extensively tested with dirdynared and accelred.
|
|
|
|
|
|
## How to generate
|
|
|
One needs to change the .gen in MBsysPad, and use symbolic-dev server under VPN. The flag replaced "wheels" or "roue" (after "liaisons" and before "decomposition") => put it as "Rtime", and put it to "1"
|
|
|
|
|
|
## Inside the engine
|
|
|
In mbsysC/Py, a new flag is added in `mbs_data`, along with new fields:
|
|
|
- `s->nqrot` => the number of rotational joints
|
|
|
- `s->qrot` => vector containing the indices of the rotational joints
|
|
|
- `s->q_sin` => vector that contains the values of the joint sine (-2.0 if the joint is translational)
|
|
|
- `s->q_cos` => vector that contains the values of the joint cosine (-2.0 if the joint is translational)
|
|
|
- `s->flag_opti_symb_sin_cos` => a flag to activate the feature
|
|
|
|
|
|
## How to use
|
|
|
The user should generate the symbolic files with the OptimSinCos(Rtime) option ON. Besides, the user must put `mbs_data->flag_opti_symb_sin_cos= 1;`just after the loading of the `.mbs` file in the main.c/.py
|
|
|
|
|
|
# Warnings
|
|
|
**Warning, it only works with the corresponding symbolic files (on dev-symbolic for now, should be included in next release)**
|
|
|
**Warning, it only works with C-symbolic files**
|
|
|
**Warning, the user is responsible of the correct value of the sin/cos when calling the mbs_sensor functions !! => This may be changed in the future** |