Abstract [en]

To decrease the costs and the time it takes to develop and test new products, computer simulations are very helpful. Product models can be simulated, and their behavior can be examined. This applies not only to hardware, but even to software products that are composed of several components, so that their cooperative behaviour is simulated in a virtual environment. Some components of this environment can later be replaced by physical, real world devices. Some other components can be just prototypes, which are later replaced by more complex and realistic software components. In any case the idea is to construct a model and simulate both software and hardware before the actual production starts. In the WITAS project there is a need to develop a system which contains helicopters, robots and various control software and hardware. In particular there is a need to simulate the dynamic behavior of an autonomous aircraft within a virtual environment. There is a need to simulate a service environment, where robots can interact with the landed helicopter.

In this report a study of object-oriented modeling of mechanical systems using Modelica is presented with applications to autonomous helicopters and robots. Mechanical features of an autonomous helicopter have been modeled in order to verify the control system. As the result the control system has been tested and tuned. However, the flight still is not stable in the cases when flight mission directions change too often.

A robot which is able to grab, move, and release objects using automatic or manual control have been modeled. The problem of inverse geometry (and inverse kinematics) can be solved for robots using our approach. The robot models can be controlled interactively.

The geometry and dynamic structure of these systems has been designed in CAD tools and later integrated with control systems for steering these devices. The simulation has been performed in Modelica.

Engelson, Vadim

Abstract [en]

Mathematical models used in scientific computing are becoming large and complex. In order to handle the size and complexity, the models should be better structured (using objectorientation) and visualized (using advanced user interfaces). Visualization is a difficult task, requiring a great deal of effort from scientific computing specialists.

Currently, the visualization of a model is tightly coupled with the structure of the model itself. This has the effect that any changes to the model require that the visualization be redesigned as well. Our vision is to automate the generation of visualizations from mathematical models. In other words, every time the model changes, its visualization is automatically updated without any programming efforts.

The innovation of this thesis is demonstrating this approach in a number of different situations, e.g. for input and output data, and for two- and three-dimensional visualizations. We show that this approach works best for object-oriented languages (ObjectMath, C++, and Modelica).

In the thesis, we describe the design of several programming environments and tools supporting the idea of automatic generation of visualizations.

Tools for two-dimensional visualization include an editor for class hierarchies and a tool that generates graphical user interfaces from data structures. The editor for class hierarchies has been designed for the ObjectMath language, an object-oriented extension of the Mathematica language, used for scientific computing. Diagrams showing inheritance, partof relations, and instantiation of classes can be created, edited, or automatically generated from a model structure.

A graphical user interface, as well as routines for loading and saving data, can be automatically generated from class declarations in C++ or ObjectMath. This interface can be customized using scripts written in Tcl/Tk.

In three-dimensional visualization we use parametric surfaces defined by object-oriented mathematical models, as well as results from mechanical simulation of assemblies created by CAD tools.

Mathematica includes highly flexible tools for visualization of models, but their performance is not sufficient, since Mathematica is an interpreted language. We use a novel approach where Mathematica objects are translated to C++, and used both for simulation and for visualization of 3D scenes (including, in particular, plots of parametric functions).

Traditional solutions to simulations of CAD models are not customizable and the visualizations are not interactive. Mathematical models for mechanical multi-body simulation can be described in an object-oriented way in Modelica. However, the geometry, visual appearance, and assembly structure of mechanical systems are most conveniently designed using interactive CAD tools. Therefore we have developed a tool that automatically translates CAD models to visual representations and Modelica objects which are then simulated, and the results of the simulations are dynamically visualized. We have designed a high performance OpenGL-based 3D-visualization environment for assessing the models created in Modelica. These visualizations are interactive (simulation can be controlled by the user) and can be accessed via the Internet, using VRML or Cult3D technology. Two applications (helicopter flight and robot simulation) are discussed in detail.

The thesis also contains a section on integration of collision detection and collision response with Modelica models in order to enhance the realism of simulations and visualizations.

We compared several collision response approaches, and ultimately developed a new penalty-based collision response method, which we then integrated with the Modelica multibody simulation library and a separate collision detection library.

We also present a new method to compress simulation results in order to reuse them for animations or further simulations. This method uses predictive coding and devilers high compression quality for results from ordinary differential equation solvers with varying time step.