Hasso-Plattner-Institut Potsdam Operating Systems and Middleware Group at HPI University of Potsdam, Germany
Operating Systems and Middleware Group at HPI

Distributed Control Lab

The Distributed Control Lab is situated at the Operating Systems & Middleware Chair and deals with software paradigms and design patterns that allow an interconnection of middleware-based components and embedded mobile systems. The primary point of interest is how to reach a predictable system behaviour (regarding to timing behaviour, fault tolerance or resource usage) in an unstable environment. The evaluation of the different approaches is done with the help of case studies, one example is a web-based control of mobile robots in the lab.


Publishing experiments over the web causes problems that deal especially with non-functional application properties such as fault tolerance, security or realtime. We developed several methods to deal with these problems. One possible solution is the usage of dynamic reconfiguration as a safe-guard mechanism for user code downloaded from the Internet. Damage to the experiment can be avoided. We are developing such a configuration framework with mechanism for dynamic reconfiguration.

DISCOURSE is a distributed laboratory for distributed computing featuring advanced middleware technology. There are 4 universities (Freie Universität, Technische Universität, Humboldt Universität, Hasso-Plattner-Institut) involved in this project, building a testbed for research and a reference platform for teaching with the help of Microsoft .NET technology. We are working on the integration of the DCL experiments in the DISCOURSE laboratory.

The Foucault's Pendulum experiment consists of a pendulum with an iron ball swinging over an electromagnet. Two orthogonal light barriers provide information about the balls movement. The goal of the experiment is to switch the magnet on or off at the correct moment in time in order to keep the pendulum swinging. Users can practice to find algorithms, optimized for minimum energy consumption or acceleration to a maximum amplitude within a given time.

In order to control the pendulum, a user can write C\# programs, which are executed by a commercial-off-the-shelf x86 PC running the Windows 2000 operating system. Because of real-time constraints of the experiment hardware, which samples the light barriers with a frequency of 23,4 kHz, a custom hardware buffer samples data, which can be transferred into the PC via the Universal Serial Bus interface. A device driver transforms the experiment data into a queue-based structure and is able to generate events for a user control program. The user program itself can switch the magnet by sending events to the device driver.

The Higher Striker is a hard real-time control experiment. In this experiment, a user can write control programs, that accelerate an iron cylinder in a tube of glass, using seven electro magnets, which have been placed along the tube. Six light barriers between the magnets provide position information of the cylinder.

The experiment consists of a custom control hardware connected via the parallel port interface to a control computer, and the physical installation, with electro magnets, light barriers and the described tube. Data from the light barriers and to the electro magnets are sampled with a frequency of 38,4 kHz. A special hardware ensures that the electro magnets can not be activated for longer than 500 ms to avoid heat problems.

Data received from the light barriers and sent to the magnets can be buffered before they are read or written via the computer's parallel port. The user control program can define what amount of buffer memory (up to 256 bytes) should be used. The smaller the buffer size, the faster a control program has to read or write the data. Smaller buffers guarantee faster reaction times onto light barrier events, but demand stricter timing constraints on the control program.

At the start of the DCL project a first version of the Lego Mindstorm Robots had been integrated into the lab. A  user can write C-style programs in order to drive the robot in a predefined operation area. We use the freely available brickOS operating system. We have developed a experiment specific control language for robot control. Within this language we have restricted the usage of pointers and recursion, because of possible damage to robots control software component.

Currently we are going to make Microsofts .NET environment availabe for the Lego Mindstorm Robots. We are implementing a front-end for the GNU compiler collection (gcc). Using this approach we are able to generate native platform code for a lot of processor architecture. Our runtime for small embedded devices makes some restrictions to the available functions of .NET. More detailed information and actual state of the project can be found here


In coordination with the Institute of Computer Science at University of Potsdam we are integrating a Märklin Model Railway into our lab. Within a lab experiment an user can pratice the implementation of parrallel and fault tolerant control applications.


Within a bachelor project we are focusing on the integration of an industrial control scenario into the lab. We have a Fischertechnik model of an industrial control line. in coorperation with an industrial partner we connect the model plant to a programmable logic controller (PLC).

Publishing experiments over the Internet bears the risk that malicious code from unknown sources can possibly damage physical experiment equipment. Within the Distributed Control Lab, we investigate and implement techniques that prevent malicious code from damaging the experiments. We have investigated and implemented several strategies for dealing with possibly malicious code - depending on the experiments' specific requirements.

In the Foucault's Pendulum experiment we rely on the concept of  analytic redundancy - user control components are observed during runtime by a so-called safety controller. In case of abnormal behavior, the user's control algorithm can be replaced by our verified safety controller using dynamic reconfiguration. The pendulum experiment is controlled by a x86-PC running Windows 2000 as operating system. 
Real-Time requirement of the physical experiment are being met by using the real-time scheduling class of the Windows 2000 scheduler in conjunction with external custom hardware. This powerful execution environment allows us to rely on the concept of .NET's code access security to implement a secure runtime environment for user control components very easily.

Within the Lego.Net project we investigate the transformation of ECMA compliant IL-code to native Renesas/Hitachi H8/300  microcontroller instructions for our Lego Mindstorm robots. The type safety of the .NET platform allows to deal with various potential sources of errors on the level of the compiler. Within our lab users can implement control algorithms using every available .NET language. However, because of restricted resources on the target system, only a limited subset of .NET features can be implemented on the H8/300 microcontroller.

Within an earlier version of the robotics experiment, we have applied source code analysis techniques to detect malicious code. In order to detect certain error classes, we have also introduced experiment-specific programming languages that forbid usage of pointers and recursion - mechanisms that could easily be used to attack our experiments. 

The Higher Striker experiment hardware requests more stringent real-time characteristics from the control computer than the other two experiments. Therefore, we are running Windows CE.NET to control the experiment and are currently investigating the usability of the .NET Compact Framework for experiment control.

Andreas Rasche, Frank Feinbube, Peter Tröger, Bernhard Rabe and Andreas Polze. Predictable Interactive Control of Experiments in a Service-Based Remote Laboratory. to appear in the Proceedings of the Workshop on Pervasive Technologies in e/m-Learning and Internetbased Experiments (PTLIE), Athens, Greece 18 July 2008

Peter Tröger, Andreas Rasche, Frank Feinbube and Robert Wierschke. SOA Meets Robots - A Service-Based Software Infrastructure For Remote Laboratories. In Proceedings of 2nd International Workshop on e-learning and Virtual and Remote Laboratories 2008,  ISBN 978-3-940793-17-1, February 14-15 2008, Hasso-Plattner-Institut Potsdam

Andreas Rasche, Bernhard Rabe, Peter Tröger, and Andreas Polze,
Distributed Control Lab
in Proceedings of The 1st International Workshop on e-learning and Virtual and Remote Laboratories (VIRTUAL-LAB'2004), 
Setúbal, Portugal, 24.-25. August 2004, pp. 150-160, ISBN 972-8865-14-7, INSTICC Press, 2004

Andreas Rasche, Peter Tröger, Michael Dirska, and Andreas Polze,
Foucault's Pendulum in the Distributed Control Lab
in Proceedings of Workshop on Object-oriented Dependable Real-time Systems (WORDS 2003F), Capri Island, Italy, October 2003, IEEE Computer Society Press, 2003.

Andreas Rasche and Andreas Polze
Configuration and Dynamic Reconfiguration of Component-based Applications with Microsoft .NET
in Proceedings of International Symposium on Object-oriented Real-time distributed Computing (ISORC) 2003.

Movies about the Distributed Control Lab

Visual Studio 2003.NET DCL-Frontends (2 Versions)

Selected Wallpapers

Andreas Rasche