Show All

Robotran’s Frequently Asked Questions

Section 1 : General features


1 . Which features does Robotran provide ?

Robotran is designed on the basis of different modules including

  1. Model loading : Loading of the model data from the xml description file (.mbs) to a dedicated structure
  2. Direct dynamics : Time integration of the system direct dynamics.
  3. Inverse dynamics : Computation of the system inverse dynamics.
  4. Equilibrium : Computation of the system equilibrium.
  5. Modal analysis : Computation of the system eigenmodes.
  6. Direct Kinematics : Computation of the direct kinematics of a kinematic chain.
  7. Inverse kinematics : Computation of loop kinematics and of the system inverse kinematics (not yet available for MBsysC).
  8. Coordinate partitioning : Partitioning of the generalized coordinates into independent and dependent variables (for constrained multibody systems only).

Some modules might be not available according to the used language. For more details, check the appropriate documentation.

2 . Is Robotran compatible with Simulink ?

Yes, it is. For more details, see here.

3 . How can I draw/render my system in 3D ?

  • In MBsysPad when creating the model.
    Note: a so-called Tony’s gui option available in MBsysPad allows you to select each joint of your system
    and see the range of motion of this joint
  • During the computation using MBsysC (Real-time Flag ON)
  • After computation, using the animation panel of MBsysPad

4 . Is it possible to linearize the model about a desired position?

Yes, it is possible to linearize the model thanks to the MODAL module. The way it is generated depends on the chosen programming language. For more information, contact us.

5 . How to include actuator systems in my multibody system ?

Use the user functions as described in the tutorial, more precisely in the “User derivatives” part.

6 . What are the different templates ?

For each programming languages, two templates are provided : a simple template and a complete template.
In the simple template, the project is loaded, the coordinate partitioning is done if needed and the direct dynamics of the system is computed.
In the complete template, both loading and coordinate partitioning steps are identical. Then, equilibrium and modal analyses are first computed before the direct dynamics. Finally, an inverse kinematics followed by an inverse dynamics are realized.

Some specific templates are also available for courses and research need.

7 . During the generation of a new project, what does full symbolic option mean?

If you select the full symbolic option, the symbolic generator will put a symbol for all parameters of your model, even if they are zero.
If you do not check this option, the parameters with a zero value are not considered in the symbolic equations, leading to less terms in the equations and thus better performances in terms of computational time. For more information, please refer to this article.

8 . How to model impacts on a multibody system?

For impacts using a penalty approach, contact laws can be implemented in user functions as described in the tutorial in “External forces” part.
For impacts using a non-smooth approach, a coupling with lmgc90 has been developed. More information here (lien web)

9 . How can I define user variables or parameters?

The easiest way is to use a user_model, as described in the tutorial in “Tips and tricks > User models” part. User models can be used as variables or parameters in your code.

Note : if you want to integrate a time-variable value, an elegant way is to use the user derivative functionality (see “User derivatives” in the tutorial).

10 . How can I rename a project? Can I easily rename it by windows interface?

There is no easy way to rename a project. If you want to rename it, change the name file of the .mbs file. In the .mbs file, modify the field “mbsname”. Then, delete the symbolic functions which contain the previous name of your project. Update the project name in the main function. Generate the new symbolic functions.

In Matlab, you can use the function mbs_copy_project that should do all required operations.

11 . How can I retrieve the id of a specific joint / body / link / sensors ?

It depends on the language you use:

  • In Matlab, specific functions to get the id exist. They are explained in the Matlab tutorial, in “Tips and tricks” section.
  • In Python, id’s are stored in dictionaries in the mbs structure. For more details, see the Python tutorial, in “Tips and tricks” section.
  • In C, a specific c-file called “user_all_id.h” is created when generating the c-specific user files. This file defines id’s of all the elements of your MBS system. For more details, see the C tutorial, in “Tips and tricks” section.

12 . How can I visualize the trajectories of my multibody system ?

From MBsysPad GUI, there is an animation feature allowing you to visualize the trajectories of your system. More details are available in the tutorial, more precisely in the “Bodies and Joints” section, Step 5.

13 . How could I add a joint with a viscous damping into the simulation model ?

Whatever the law you want to implement in your joints, it has to be implemented in the user_JointForces function. For more details, see the tutorial, more precisely in the “Bodies and Joints” section, Step 3.

Section 2 : How to … in Matlab


14 . How can I log extra variables ?

In Matlab, extra variables can be stored at each time step in MBS_user and then logged in userfctR/user_DirDyn_io.m file.

A more elegant and more robust solution is to use the user_model structure (see “How can I define user variables or parameters?”).

Section 3 : Known Troubleshootings


15 . How can I check that Robotran is correctly installed on my computer ?

Several fully functional examples are available for testing Robotran. Examples are available either in Robotran itself (Settings > Install Examples) or on the Robotran website (Download > Model Examples).

All examples are available in all languages.

16 . Can Robotran run on 32-bit or 64-bit machines ?

A priori Robotran is only developed to tun on 64-bit machines. However, it might run on 32-bit machines but only with Matlab.

Please prefer to use the 64-bit version to ensure full capacity of Robotran.

17 . What are the useful data structures ?

The main structure describing your multibody system is MbsData. Every analysis module has a dedicated structure, e.g. MbsDirdyn for direct dynamics analysis. The exact naming of structures depends on the chosen programming languages. Please refer to the Doc corresponding to your language if you need more information.

18 . When I write the rotation matrix I get the opposite result of a sensor in Robotran. How is it possible?

You should check the convention that you are using to write your rotation matrix. The convention used in Robotran is described in Robotran Basics (see here).

19 . What are the meaning of the error numbers?

The tree digits XYZ correspond to three stages :

  • X : module in which the error occurred (4 = direct dynamics for example);
  • Y : functions that are present in several modules (5 =closing geometry for example);
  • Z : low-level operations like numerical ones (2 = LU decomposition for example).

Detailed description of errors can be found here and more specifically here.

20 . What does a -452 or -152 error mean ?

It comes from problem during the LU decomposition (XY2) when closing the loops (X5Z). To solve it, check the geometry of your loops (arms lengths, initial conditions, etc.) !

21 . I get the following error : “[-477] qdd is Nan”. What is the problem ?

It means that one of the accelerations from your generalized coordinates is “Not a Number” (i.e. infinite) during the direct dynamics, after the time integration.

Often, this error comes from wrong values in the user files functions. Check the values of your user forces/torques, for example in JointForces/ExtForces/etc.

22 . My error code ends with a 9: is it linked to my files path/name?

Yes ! All errors ending with a 9 (-909, -409, …) are linked to problems with your files names/paths. Check that the paths are correct and the files exist !