CHANGELOG.md 9.9 KB
Newer Older
1
## Changes for next release
2 3 4 5
 * [New] error management in mbs load, part and dirdyn (not yet in Real Time, equil and modal)
   See the wiki in gitlab for the corresponding pptx
 * [New] CI automatic tests added for equil module + file tree of example project remodeled.
 * ? Coupling VPM branch merge : Filtering is active if the flag dirdyn->filt=1. Otherwise, we do as usual.
6 7


Nicolas Docquier's avatar
Nicolas Docquier committed
8
## Robotran v1.11.0
9
 * Windows 32 bit is no longer supported. An error message is shown when the user try to execute cmake with 32 bit and the process stops.
Olivier Lantsoght's avatar
Olivier Lantsoght committed
10 11
 * __Change to existing function(s):__
   * `set_output_value` : `val_index` now start at 1 to be coherent with all user indexing.
Nicolas Docquier's avatar
Nicolas Docquier committed
12 13 14 15
 * Add new time integrators for the DIRDYN module. Available integrators are now: RK4, Dopri5, Rosenbrock, EulerEx, Eulaire, EulerIm, Bader, WMethods + possibility to implement custom integrator still available.
 * Improvement of integrators:
   * possibility to freeze JAcobian matrix for implicit integrators
   * option to specify whether the model must be re-computed between 2 consecutive time-steps
Nicolas Docquier's avatar
Nicolas Docquier committed
16
 * Remove dependency on lapacke by calling directly lapack function
Nicolas Docquier's avatar
Nicolas Docquier committed
17 18
 * Redefinition of `set_output_value` to save custom quantities in a vector: indices in the saved vector start at 1 and not at 0 (see doc for details)
 * Other small corrections and changes
Nicolas Docquier's avatar
Nicolas Docquier committed
19 20

## Robotran v1.10.0
Sebastien Timmermans's avatar
Sebastien Timmermans committed
21 22 23 24 25 26
 * Change the call structure for integrators in dirdyn module. The integrators are now chosen thanks to a key-word and their calls are formated :
        -> 3 functions specifics for each integrator (init, loop and finish integrator) are implemented
        -> these functions are automatically called thanks to 3 pointors of functions
        -> Euler Explicit is availlable by not yet tested (RK4 still by default)
        -> all the integrators have the same options (but warnings are printed when unused options are changed by user)
        -> a custom integrator could be designed by the developper (files to do so are already there)
Nicolas Docquier's avatar
Nicolas Docquier committed
27 28
 * Update initialization of result and animation buffers ==> this simplify the settings of respath and animpath options
 * Enrich the OpenDL 3D lib to add "camera sensors". This enable screen capturing that can be outputed to files (image, video) or other flux (openCV...)
29 30 31
 * Remove dependancy over GSL by using the LAPACKE:
     * Windows: No change for user, compiled libraries are provided
     * Ubuntu: `sudo apt-get install liblapacke-dev`
Olivier Lantsoght's avatar
Olivier Lantsoght committed
32
 * User can now set vector as output variable:
33
    * Initialization: with function `define_output_vector(char* label, int size)` define the label and the size of each vector in _user_dirdyn.c_ file inside the `user_dirdyn_init` function.
Olivier Lantsoght's avatar
Olivier Lantsoght committed
34 35 36
    * Setting vector value: in the same place where you can call `set_output` function you can also call:
       * `set_output_vector(double *v_ptr, char* label)` to save the content of the specified vector (`v_ptr`) in the output identified by the label.
       * `set_output_value(double value, int index, char* label)` to set element _index_ of the vector identified by the label at the specified value.
37
 * Python interface: possibility to retrieve point id with function `mbs_get_point_id(self, bodyName, pointName)` 
38 39 40

## Robotran v1.9.7
 * BugFix in equilibrium module (result vector was freed before being printed leading in some case to incoherent value)
41
 * Add an integrator (Rosenbrock) dedicated to stiff problems: simply set the flag to use rosenbrock in dirdyn option to ON: `mbs_dirdyn->options->rosenbrock->flag_use = 1;` (same as for Dopri5)
42 43
 * Add an application to generate VTK/ParaView output files. This required some adaptation of OpenGL 3D visu of NVdN (see merge request !135 for details). Requirements:
   * Ubuntu: `sudo apt-get install libvtk6-dev libproj-dev`
44
 * Remove deprecated headers, MBSdataStructR7.h and MBSfunR7.h. **If some old symbolic routines still use these headers, they can be re-generated from MBsysPad to get the proper headers.**
Nicolas Docquier's avatar
Nicolas Docquier committed
45
 * Remove nwheel and rnom fieds from the MbsData structure. If necessary, those values should be defined via a user model.
Nicolas Docquier's avatar
Nicolas Docquier committed
46
 * Add the possibility to load vrml files in the OpenGL 3D view
47

48 49 50 51
## Robotran v1.9.6
 * Add the possibility to access and modify user_model parameters via the python interface. **This requires to generate again the UserModel.c/.h files (via MBsysPad: menu Tools=>Generate C-specific user files=>User model files)**
 * Add the possibility to use user model parameters of type *integer* (those parameters can be defined from MBsysPad)

52
## Robotran v1.9.5
Timothee Habra's avatar
typos  
Timothee Habra committed
53
 * All modules (MBsysC, interfaces, add-ons) are compiled from the same CMakeLists. The optional modules are activated with corresponding FLAG (`FLAG_INTERFACE_SIMULINK`, `FLAG_INTERFACE_PYTHON`, `FLAG_IPY_WITH_MBS_LMGC` and `FLAG_ADDON_MBSLMGC`).
Nicolas Docquier's avatar
Nicolas Docquier committed
54 55 56
 * Simulink interface: a (simple) interface between MBsysC is created, involving the following changes
 * Definition of new optinal user files:
   * user\_equil.c: is required for equilibrium module.
Timothee Habra's avatar
typos  
Timothee Habra committed
57
   * user\_load.c: enables to execute specific code after loading the project (useful for Simulink since there is no main function to do it in Simulink)
Nicolas Docquier's avatar
Nicolas Docquier committed
58
   * template files are available in mbs\_workspace\_template and are added automatically if the files are not in the project. **Project update required: Either update userfctR\CMakeLists for backward compatibility (add call to `increment_void_user( ${PROJECT_SOURCE_DIR} )` just after increment_src) or copy/paste the new files from the template.**
Olivier Lantsoght's avatar
Olivier Lantsoght committed
59 60 61
 * User specific output: the name of the file now have the resfilename as prefix.
 * User model generation: the generation of the user_model files for mbs without defined user model is now compatible with Visual studio (structure is no more empty)
 * M_PI is accessible on windows for all files that include math.h in the template.
62 63 64 65 66 67 68 69 70 71 72
 * user\_all\_id.h: the id of cuts are generated.  
 * Add openGL
   * Adapt CMakeLists.txt of workR folder. Replace  
```
file(RELATIVE_PATH BUILD_PATH ${PROJECT_SOURCE_DIR} ${PROJECT_BINARY_DIR})
```
   by  
```
set(BUILD_PATH ${PROJECT_BINARY_DIR})
file(RELATIVE_PATH BUILD_PATH_REL ${PROJECT_SOURCE_DIR} ${PROJECT_BINARY_DIR})
```
Olivier Lantsoght's avatar
Olivier Lantsoght committed
73

Nicolas Docquier's avatar
Nicolas Docquier committed
74 75 76 77 78 79 80 81
## 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
Nicolas Docquier's avatar
Nicolas Docquier committed
82
* 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**
Nicolas Docquier's avatar
Nicolas Docquier committed
83 84 85
* 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

86 87 88 89 90
## 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
Nicolas Docquier's avatar
Nicolas Docquier committed
91
* 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**
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
* .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**
* accelred: add the possibilty to run a direct dynamic simulation using the accelred symbolic files (symbolic reduction of equation of motion)
* user_dirdyn update: pass MbsDirdyn as argument instead of MbsAux *WARNING: template update*
* fix a viewpoint bug when going backward in the 3D view of a real-time simulation
* user_realtime_plot.c: _#include "user_realtime.h"_ instead of _#include "plot_sdl.h"_, _#include "set_plot.h"_. The manual provided as a function comment was also modified. **Update of template and existing project required**
* user_realtime_visu.c: _#include "user_realtime.h"_ instead of _#include "java_functions.h"_ **Update of template and existing project required**
* user_realtime_events.c: _#include "user_realtime.h"_ instead of _#include "plot_sdl.h"_ **Update of template and existing project required**
* user_realtime_options.c: remove _options->nb_viewpoints_ **Update of template and existing project required**
* workR/CMakeLists.txt: new organization, especially for the separate build **Update of template and existing project required**
* computation of Lagrange mulitpliers (lambda) for systems with constraints
* MacOS: realtime 3D animation enabled
* nbody: depict the number of physiscal bodies
* user_all_id.h: joint id start at 1 instead of 0



Nicolas Docquier's avatar
Nicolas Docquier committed
110
## Robotran v1.9.2