Authentication method changed. UCLouvain users, please use the "UCLouvain SSO" button to connect on the website and use ssh + ssh key (https://git.immc.ucl.ac.be/-/profile/keys) or https + personnal access token (https://git.immc.ucl.ac.be/-/profile/personal_access_tokens) in your git clients.

Commit d9889c67 authored by Nicolas Docquier's avatar Nicolas Docquier
Browse files

Merge branch 'Release_1.9.4' into 'master'

Release 1.9.4



See merge request !91
parents f64deda4 c90ac11c
......@@ -11,3 +11,13 @@ resultsR
SfunctionsR
build
debug
/MBprojects/**/animationR/vrml/*
/MBprojects/**/animationR/vtp/*
/MBprojects/**/animationR/*.pvd
DATBOX
DISPLAY
OUTBOX
POSTPRO
image: habra/ubuntu-robotran:v0
compilation_monolithic_realtimeOFF:
script:
- mkdir ExampleProjects/PendulumSpringC/workR/build
- cd ExampleProjects/PendulumSpringC/workR/build
- cmake -DFLAG_REAL_TIME=OFF ..
- make
compilation_monolithic_realtimeON:
script:
- mkdir ExampleProjects/PendulumSpringC/workR/build
- cd ExampleProjects/PendulumSpringC/workR/build
- cmake -DFLAG_REAL_TIME=ON ..
- make
compilation_separate_realtimeOFF:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/PendulumSpringC/workR/build
- cd ExampleProjects/PendulumSpringC/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
compilation_separate_realtimeON:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=ON ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/PendulumSpringC/workR/build
- cd ExampleProjects/PendulumSpringC/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
tutorial_1_monolithic:
script:
- mkdir ExampleProjects/TutorialProjects/1_Bodies_and_Joints/workR/build
- cd ExampleProjects/TutorialProjects/1_Bodies_and_Joints/workR/build
- cmake ..
- make
- ./exe_Bodies_and_Joints
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
tutorial_1_separate:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/TutorialProjects/1_Bodies_and_Joints/workR/build
- cd ExampleProjects/TutorialProjects/1_Bodies_and_Joints/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
- ./exe_Bodies_and_Joints
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
tutorial_2_monolithic:
script:
- mkdir ExampleProjects/TutorialProjects/2_Links/workR/build
- cd ExampleProjects/TutorialProjects/2_Links/workR/build
- cmake ..
- make
- ./exe_Links
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_2_separate:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/TutorialProjects/2_Links/workR/build
- cd ExampleProjects/TutorialProjects/2_Links/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
- ./exe_Links
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_3_monolithic:
script:
- mkdir ExampleProjects/TutorialProjects/3_Cuts/workR/build
- cd ExampleProjects/TutorialProjects/3_Cuts/workR/build
- cmake ..
- make
- ./exe_Cuts
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_3_separate:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/TutorialProjects/3_Cuts/workR/build
- cd ExampleProjects/TutorialProjects/3_Cuts/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
- ./exe_Cuts
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_4_monolithic:
script:
- mkdir ExampleProjects/TutorialProjects/4_Driven_variable/workR/build
- cd ExampleProjects/TutorialProjects/4_Driven_variable/workR/build
- cmake ..
- make
- ./exe_Driven_variable
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q dirdyn_Qc_ref.res dirdyn_Qc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_4_separate:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/TutorialProjects/4_Driven_variable/workR/build
- cd ExampleProjects/TutorialProjects/4_Driven_variable/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
- ./exe_Driven_variable
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q dirdyn_Qc_ref.res dirdyn_Qc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_5_monolithic:
script:
- mkdir ExampleProjects/TutorialProjects/5_Sensors/workR/build
- cd ExampleProjects/TutorialProjects/5_Sensors/workR/build
- cmake ..
- make
- ./exe_Sensors
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q Vertical_Acc_ref.res Vertical_Acc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_5_separate:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/TutorialProjects/5_Sensors/workR/build
- cd ExampleProjects/TutorialProjects/5_Sensors/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
- ./exe_Sensors
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q Vertical_Acc_ref.res Vertical_Acc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_6_monolithic:
script:
- mkdir ExampleProjects/TutorialProjects/6_External_Force/workR/build
- cd ExampleProjects/TutorialProjects/6_External_Force/workR/build
- cmake ..
- make
- ./exe_External_Force
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q Vertical_Acc_ref.res Vertical_Acc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_6_separate:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/TutorialProjects/6_External_Force/workR/build
- cd ExampleProjects/TutorialProjects/6_External_Force/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
- ./exe_External_Force
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q Vertical_Acc_ref.res Vertical_Acc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_7_monolithic:
script:
- mkdir ExampleProjects/TutorialProjects/7_User_constraints/workR/build
- cd ExampleProjects/TutorialProjects/7_User_constraints/workR/build
- cmake ..
- make
- ./exe_Userconstraints
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q Vertical_Acc_ref.res Vertical_Acc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_7_separate:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/TutorialProjects/7_User_constraints/workR/build
- cd ExampleProjects/TutorialProjects/7_User_constraints/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
- ./exe_Userconstraints
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q Vertical_Acc_ref.res Vertical_Acc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
tutorial_8_monolithic:
script:
- mkdir ExampleProjects/TutorialProjects/8_User_derivatives/workR/build
- cd ExampleProjects/TutorialProjects/8_User_derivatives/workR/build
- cmake ..
- make
- ./exe_Userderivatives
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q Vertical_Acc_ref.res Vertical_Acc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
- diff -q dirdyn_ux_ref.res dirdyn_ux.res
- diff -q dirdyn_uxd_ref.res dirdyn_uxd.res
tutorial_8_separate:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/TutorialProjects/8_User_derivatives/workR/build
- cd ExampleProjects/TutorialProjects/8_User_derivatives/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
- ./exe_Userderivatives
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q Vertical_Acc_ref.res Vertical_Acc.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
- diff -q dirdyn_ux_ref.res dirdyn_ux.res
- diff -q dirdyn_uxd_ref.res dirdyn_uxd.res
tutorial_9_monolithic:
script:
- mkdir ExampleProjects/TutorialProjects/9_Tips/workR/build
- cd ExampleProjects/TutorialProjects/9_Tips/workR/build
- cmake ..
- make
- ./exe_Tips
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
- diff -q Fdamper_ref.res Fdamper.res
- diff -q Fspring_ref.res Fspring.res
tutorial_9_separate:
script:
- mkdir MBsysC/build
- cd MBsysC/build
- cmake -DFLAG_REAL_TIME=OFF ../mbs_common/
- make
- cd ../..
- mkdir ExampleProjects/TutorialProjects/9_Tips/workR/build
- cd ExampleProjects/TutorialProjects/9_Tips/workR/build
- cmake -DFLAG_SEPARATE_BUILD=ON ..
- make
- ./exe_Tips
- cd ../../resultsR
- diff -q dirdyn_q_ref.res dirdyn_q.res
- diff -q dirdyn_qd_ref.res dirdyn_qd.res
- diff -q dirdyn_qdd_ref.res dirdyn_qdd.res
- diff -q dirdyn_Qq_ref.res dirdyn_Qq.res
- diff -q dirdyn_linkF_ref.res dirdyn_linkF.res
- diff -q Fdamper_ref.res Fdamper.res
- diff -q Fspring_ref.res Fspring.res
## Changes for next release
## Robotran v1.9.4
* Add a python interface for driving the simulation via a python script (see MBsysC/readme_aux/interface_python.md and MBsysC/mbs_interface/mbs_python)
* Add the possibility to embed a MBsysC project in a simulink S-function (see example in MBsysC/mbs_interface/mbs_simulink)
* Enable a "separate build" mode for compiling. This enables to compile MBsysC modules only once. Then, only the project specific files (user functions, symbolic functions and main function) must be compiled for each project. The old fashion compiling (i.e. monolithic build) which compiles both MbsysC and project specific files together is still available and set as the default option in the CMakeLists.txt of a nex project. **This requires to adapt existing projects. In particular, CMakeLists.txt are added to userfctR and symbolicR folder. The CmakeLists.txt file in the workR folder is modified. Include in the userfct/realtime files are also modified.**
* Correct a bug that prevent loading *.mbs file after starting 3D visu because the decimal separator may be changed from dot to coma
* Use a uniform syntax for helpful functions that manage arrays and matrices. **This may require to adapt the name of those function if you use it in you user functions**. (see MBsysC/mbs_common/mbs_utilities/useful_functions.h )
* Add new modules for equilibrium and modal analysis
* Add the possiblity to animate auxiliary \*.mbs file in addition to the simulated one. The motion of the auxiliary \*.mbs must be computed by the user. **This modification requires to update the template files user_realtime_options.c and user_realtime_visu.c**
* update the findJNI and findJava CMake file for compatibility with java 8
* Use pre-processor flag LINUX rather than WIN32 for os specific part of code
## Robotran v1.9.3
* possibility to use an adaptative time step integrator (dopri5)
* possibility to define more than one path for MBSysC
* possibility to use hard-coded parameters rather than loading data from the *.mbs file
* adapt code to new conventions for symbolic file name: `mbs_` added before the name (the `link` function was confusing for C++ project) **You just need to generate again your symbolic files to this change to take effect**
* .anim file generated
* user_dirdyn.c: give access to MbsDirdyn structure rather than to MbsAux (MbsAux can be accessed through MbsDirdyn) and add '#include "mbs_dirdyn.h"' instead of '#include "mbs_aux.h"' **Update of template and existing project required**
* user_dirdyn.c: rename the functions by adding the *dirdyn* keyword in the names (so as to avoid confusion with other modules) **Update of template and existing project required**
......@@ -25,4 +36,4 @@
## Robotran v1.9.2
\ No newline at end of file
## Robotran v1.9.2
This subfolder contains the files for animating the 3D view in MBsysPad
<?xml version="1.0" encoding="UTF-8"?>
<mbsDescR7>
<mbsname>MultiplePendulum</mbsname>
<mbsyspad_version>0.0.beta</mbsyspad_version>
<base>
<!--this is the base body-->
<gravity>
<coordinates>
<x>0.0</x>
<y>-10.0</y>
<z>0.0</z>
</coordinates>
</gravity>
<baseBodyName>Body_0</baseBodyName>
<point>
<pointname>Point_0</pointname>
<coordinates>
<x>0.95</x>
<y>0.0</y>
<z>0.03</z>
</coordinates>
<graphics>
<x2D>
<position>
<x>450.0</x>
<y>33.0</y>
</position>
</x2D>
<x3D />
</graphics>
</point>
<graphics>
<x2D>
<position>
<x>398.0</x>
<y>31.0</y>
</position>
<base_body>
<position>
<x>-129.0</x>
<y>-14.0</y>
</position>
<name_pos>
<x>0.0</x>
<y>0.0</y>
</name_pos>
<shape>rectangle</shape>
<size>
<x>280.0</x>
<y>39.0</y>
</size>
<control_points>
<control_point>
<x>151.0</x>
<y>-14.0</y>
</control_point>
<control_point>
<x>151.0</x>
<y>25.0</y>
</control_point>
<control_point>
<x>-129.0</x>
<y>25.0</y>
</control_point>
<control_point>
<x>-129.0</x>
<y>-14.0</y>
</control_point>
</control_points>
<angle>0.0</angle>
</base_body>
</x2D>
<x3D>
<x3D_frame />
<x3D_points />
<x3D_lines />
<x3D_shapes>
<box>
<name>New_Shape</name>
<position>
<x>0.0</x>
<y>0.0</y>
<z>0.0</z>
</position>
<scale>
<x>1.0</x>
<y>1.0</y>
<z>1.0</z>
</scale>
<rotation>
<x>0.0</x>
<y>0.0</y>
<z>0.0</z>
</rotation>
<color R="0" G="0" B="0" />
<transparency>0.4699999988079071</transparency>
<size>
<x>2.0</x>
<y>0.001</y>
<z>1.0</z>
</size>
</box>
</x3D_shapes>
</x3D>
</graphics>
</base>
<bodytree>
<!--this is the body tree-->
<body>
<bodyname>Rod1</bodyname>
<parent>
<bodyname>base</bodyname>
<pointname>Point_0</pointname>
</parent>
<joint>
<jointname>T2_support</jointname>
<type>R3</type>
<nature>independent</nature>
<initialvalue>
<q>0.4</q>
<qd>-0.3</qd>
</initialvalue>
<graphics>
<x2D>
<position>
<x>467.0</x>
<y>125.0</y>
</position>
</x2D>
<x3D>
<x3D_joint />
<x3D_frame />
</x3D>
</graphics>
</joint>
<mass>10.0</mass>
<com>
<coordinates>
<x>0.0</x>
<y>-0.25</y>
<z>0.0</z>
</coordinates>
</com>
<inertia>
<Izz>2.0</Izz>
</inertia>
<point>
<pointname>Point_1</pointname>
<coordinates>
<x>0.0</x>
<y>-0.5</y>
<z>0.0</z>
</coordinates>
<graphics>
<x2D>
<position>
<x>470.0</x>
<y>225.0</y>
</position>
</x2D>
<x3D />
</graphics>
<sensor name="Sensor_4" Pos="true" Rot="true" Vit="true" Om="true" Acc="true" Omp="true" Jac="true" />
</point>
<graphics>
<x2D>
<position>
<x>-18.0</x>
<y>-16.0</y>
</position>
<name_pos>
<x>0.0</x>
<y>0.0</y>
</name_pos>
<shape>rectangle</shape>
<size>
<x>43.0</x>
<y>129.0</y>
</size>
<control_points>
<control_point>
<x>25.0</x>
<y>-16.0</y>
</control_point>
<control_point>
<x>25.0</x>
<y>113.0</y>
</control_point>
<control_point>
<x>-18.0</x>
<y>113.0</y>
</control_point>
<control_point>
<x>-18.0</x>
<y>-16.0</y>
</control_point>
</control_points>
<angle>0.0</angle>
</x2D>
<x3D>
<x3D_com />
<x3D_points />
<x3D_lines />
<x3D_shapes>
<cylinder>
<name>New_Shape</name>
<position>
<x>0.0</x>
<y>-0.25</y>
<z>0.0</z>
</position>
<scale>
<x>1.0</x>
<y>1.0</y>
<z>1.0</z>
</scale>
<rotation>
<x>0.0</x>
<y>0.0</y>
<z>0.0</z>
</rotation>
<color R="0" G="0" B="0" />
<transparency>0.0</transparency>
<radius>0.01</radius>
<height>0.5</height>
</cylinder>
</x3D_shapes>
</x3D>
</graphics>
</body>
<body>
<bodyname>Rod2</bodyname>