Institute of Engineering and Computational Mechanics
Real-Time Simulation of Multibody Systems in a Virtual Reality Environment
Project Description
Virtual Reality Environment
Visualization of a Multibody System Consisting of Rigid and Elastic Elements
Modules of Vranim
Interaction Concept
The major goal of our Virtual Reality (VR) applications is to let the user interact as naturally as possible with spatial mechanical systems. The user interacts with displayed images, moving and manipulating virtual objects, and performs other actions in a way that creates a feeling of actual presence in the simulated environment. The virtual reality area has been subject of extensive research over the past years. The addressed issues in this field reachs from hardware components through software architectures and models to human factors and human computer interaction.
In the present work COVISE is used as a modular visualization software program for virtual reality. COVISE is also using COVER (Covise Virtual Environment Renderer) to support virtual reality input devices, back projection displays and intuitive interaction. It is developed by the VISENSO GmbH for this purpose.
COVISE stands for cooperative visual simulation environment. It is an extendable distributed software environment to integrate simulations, postprocessing and visualization functionalities in a seamless manner.
COVER is a COVISE renderer module with support for virtual reality input devices such ascension motionstar and backprojection displays with stereo projection. COVER can also be started independently of COVISE and just be used as a virtual reality viewer for 3D geometry.
The functionality of COVER can be extended through plugins. A plugin is a dynamic library with a certain interface. During execution for each loaded library COVER executes the functions provided in the dynamic libraries. Plugins can either be used to implement interaction with other COVISE modules (also called feedback), for example for steering a simulation module, or for extending the functionality of COVER as a VR viewer.
The plugin programmer needs to provide at least two functions (one which is called when the plugin is loaded and one when it is unloaded) but can provide up to 12 other functions which are executed during COVER is running.
Vranim is a special plugin especially designed in our institute to visualize multibody systems simulation. It has an object-oriented architecture (C++ programming language) and uses the graphics library OpenGL Performer.
Converter: 
The multibody system software SIMPACK is a general purpose software in the field of multibody dynamics and is being used in the automotive, railway, aerospace and other general mechanical industries. Currently, SIMPACK has the capability of exporting the complete model including geometry of the bodies and simulation data as the result of integration in the format of a SBR (SIMPACK Binary Results) file for further usage in another software for visualization of the results.
Here, in our institute we have developed a converter software in cooperation with the INTEC GmbH (the developer company of the SIMPACK) to convert the exported data of the SIMPACK readable for our Vranim software for visualization in the virtual reality environment. The converter reads a SBR file of a SIMPACK model and generates the required data for visualization in the virtual reality environment.
For a model built in SIMPACK one can generates a SBR file during integration which contains the integration results and geometry of the bodies of that model.
When the integration is finished, SIMPACK writes the SBR file in the output directory of that model. The executable converter file reads the SBR file and extracts all stored information including integration results (depending on the options selected in configuration window of measurements in SIMPACK) and geometry of bodies.
Cosimulation between SIMPACK and Vranim: 
Nowadays, thanks to the vast improvement achieved by the PC performance in calculation as well as in graphics, complex multibody systems can be simulated in real time on simple desktop computers. Real time simulation allows the virtual system to interact with the real world. Many researchers have been using the interaction possibility to develop diverse application for the virtual reality.
The most commonly used model in constructing distributed applications is the client/server one. In this scheme client applications request services from a server process. This implies an asymmetry in establishing communication between the client and server. In our work, SIMPACK acts as a server. So it opens a connection and waits for the interaction process to connect. Then the interaction process will also open a connection and wait for the virtual reality processes to connect and exchange data. In order to have a rapid and well constructed communication each of the processes, the client and the server, have specific tasks to follow. The interaction is based on interprocess communication in a master/slave model. The output data are sent from SIMPACK (slave) to the interaction interface (master) which send them also to the two computers of the virtual reality environment (covise and covise2) to be visualized.
The first part of the communication (SIMPACK-Interface) uses predefined C functions provided from INTEC which are specific to cosimulation in SIMPACK. The second part uses sockets as application programming interface (API) which also include the needed libraries to develop applications in the C programming language. In the other direction of the interaction, inputs given by the user through the virtual reality environment are sent from the computer covise through a sockets based communication to the interaction interface which send them as well to SIMPACK using the U-input vector via IPC. Then SIMPACK performs the numerical integration and sends back the new outputs.