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.

architectural overview of the Distributed Control 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 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

Experiments

Foucault's Pendulum

pendulum with light barriers

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.

Higher Striker

picture of higher striker hardware setup

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.

Lego Mindstorm Robots

picture of driving LEGO robot

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.

Märklin Model Railway

picture of Märklin model train

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.

Fischertechnik

a miniature production line built with Fischertechnik

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).

Lab Safety

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.

Publications

  • Andreas Rasche, Frank Feinbube, Peter Tröger, Bernhard Rabe, and Andreas Polze. Predictable Interactive Control of Experiments in a Service-based Remote Laboratory. In Proceedings of the 1st international conference on PErvasive Technologies Related to Assistive Environments, 1–7. 2008. [ PDF | ]
    ×
    @inproceedings{rasche2008predictable,
    author = {Rasche, Andreas and Feinbube, Frank and Tr{\"o}ger, Peter and Rabe, Bernhard and Polze, Andreas},
    title = "{Predictable Interactive Control of Experiments in a Service-based Remote Laboratory}",
    tags = "andreas.rasche,frank.feinbube,peter.troeger,bernhard.rabe,andreas.polze,dcl",
    booktitle = "Proceedings of the 1st international conference on PErvasive Technologies Related to Assistive Environments",
    pages = "1--7",
    year = "2008",
    isbn = "978-1-60558-067-8",
    pdf = "https://dl.acm.org/doi/pdf/10.1145/1389586.1389664"
    }
  • Peter Tröger, Andreas Rasche, Frank Feinbube, and Robert Wierschke. SOA Meets Robots – A Service-based Software Infrastructure for Remote Laboratories (Extended Version). International Journal of Online Engineering, 2008. [ PDF | ]
    ×
    @article{Tröger2008soaextended,
    author = {Tr{\"o}ger, Peter and Rasche, Andreas and Feinbube, Frank and Wierschke, Robert},
    title = "{SOA Meets Robots -- A Service-based Software Infrastructure for Remote Laboratories (Extended Version)}",
    tags = "peter.troeger,andreas.rasche,frank.feinbube,robert.wierschke,dcl",
    journal = "International Journal of Online Engineering",
    volume = "4",
    number = "2",
    issn = "1861-2121",
    year = "2008",
    pdf = "https://www.online-journals.org/index.php/i-joe/article/download/507/414"
    }
  • Andreas Rasche, Bernhard Rabe, Martin von Löwis, Jan Möller, and Andreas Polze. Real-time Robotics and Process Control Experiments in the Distributed Control Lab. IEEE Proceedings-Software, 152(5):229–235, 2005. [ PDF | ]
    ×
    @article{rasche2005real,
    author = {Rasche, Andreas and Rabe, Bernhard and von L{\"o}wis, Martin and M{\"o}ller, Jan and Polze, Andreas},
    title = "{Real-time Robotics and Process Control Experiments in the Distributed Control Lab}",
    tags = "andreas.rasche,bernhard.rabe,martin.vonloewis,jan.moeller,andreas.polze,dcl",
    journal = "IEEE Proceedings-Software",
    volume = "152",
    number = "5",
    pages = "229--235",
    year = "2005",
    pdf = "https://sci-hub.wf/10.1049/ip-sen:20045025",
    publisher = "IET"
    }
  • Andreas Rasche, Bernhard Rabe, Peter Tröger, and Andreas Polze. Distributed Control Lab. In VIRTUAL-LAB, 150–159. 2004. [ PDF | ]
    ×
    @inproceedings{rasche2004distributed,
    author = {Rasche, Andreas and Rabe, Bernhard and Tr{\"o}ger, Peter and Polze, Andreas},
    title = "{Distributed Control Lab}",
    tags = "andreas.rasche,bernhard.rabe,peter.troeger,andreas.polze,dcl",
    booktitle = "VIRTUAL-LAB",
    pages = "150--159",
    year = "2004",
    isbn = "972-8865-14-7",
    pdf = "https://www.academia.edu/18082055/Distributed\_Control\_Lab"
    }
  • 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 2003), 299. IEEE, 2003. [ PDF | ]
    ×
    @inproceedings{rasche2003foucault,
    author = {Rasche, Andreas and Tr{\"o}ger, Peter and Dirska, Michael and Polze, Andreas},
    title = "{Foucault's Pendulum in the Distributed Control Lab}",
    tags = "andreas.rasche,peter.troeger,michael.dirska,andreas.polze,dcl",
    booktitle = "Proceedings of Workshop on Object-oriented Dependable Real-time Systems (WORDS 2003)",
    pages = "299",
    year = "2003",
    pdf = "https://www.researchgate.net/profile/Andreas\_Polze/publication/221189033\_Foucault\%27s\_Pendulum\_in\_the\_Distributed\_Control\_Lab/links/09e4150fdb569e082f000000.pdf",
    organization = "IEEE"
    }
  • Andreas Rasche and Andreas Polze. Configuration and Dynamic Reconfiguration of Component-based Applications with Microsoft .NET. In Sixth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 2003., 164–171. IEEE, 2003. [ PDF | ]
    ×
    @inproceedings{rasche2003configuration,
    author = "Rasche, Andreas and Polze, Andreas",
    title = "{Configuration and Dynamic Reconfiguration of Component-based Applications with Microsoft .NET}",
    tags = "andreas.rasche,andreas.polze,dcl",
    booktitle = "Sixth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 2003.",
    pages = "164--171",
    year = "2003",
    pdf = "https://ieeexplore.ieee.org/stampPDF/getPDF.jsp?tp=\&arnumber=1199251",
    organization = "IEEE"
    }
  • Wolfgang Schult and Andreas Polze. Aspect-oriented Programming with C# and .NET. In Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002, 241–248. IEEE, 2002. [ PDF | ]
    ×
    @inproceedings{schult2002aspect,
    author = "Schult, Wolfgang and Polze, Andreas",
    title = "{Aspect-oriented Programming with C\\# and .NET}",
    tags = "wolfgang.schult,andreas.polze,loom,dcl",
    booktitle = "Proceedings Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISIRC 2002",
    pages = "241--248",
    year = "2002",
    pdf = "https://www.researchgate.net/profile/Andreas\_Polze/publication/3948612\_Aspect-Oriented\_Programming\_with\_C\_andNET/links/0046352a03e8893c39000000/Aspect-Oriented-Programming-with-C-andNET.pdf",
    organization = "IEEE"
    }

Resources

Documents

Movies

Selected Wallpapers

Software