Forschung an künstlicher DNA für selbstbauende eingebettete Systeme

Durch die zunehmende Komplexität der Hardware stehen zum Aufbau verteilter eingebetteter Systeme immer mehr Prozessoren bzw. Prozessorkerne zur Verfügung. Zukünftig werden hier mehrere hundert Kerne denkbar. Dadurch wird es möglich, immer komplexere eingebettete Systeme zu bauen. Die Entwicklung, die Optimierung und der Betrieb solcher Systeme ist mit konventionellen Mitteln nur noch schwer möglich. Als eine Lösung für dieses Problem wurde im DFG Schwerpunktprogramm 1183 "Organic Computing" der Einsatz selbstorganisierender Systeme vorschlagen und erforscht. Damit wird es möglich, Systeme zu entwickeln, die sich zur Laufzeit selbst konfigurieren, optimieren oder heilen.

Ein weiterhin bestehendes Problem ist jedoch, dass die Mechanismen zur Selbstorganisation eine Richtlinie, sozusagen einen Bauplan, benötigen um ein System nach den Zielvorgaben der Anwendung entstehen zu lassen. In der Biologie übernimmt diese Aufgabe die DNA. Sie ist der in jeder Zelle eines biologischen Systems gespeicherte Bauplan, welcher die Selbstorganisations-mechanismen leitet und so das biologische System entstehen lässt. Für technische Systeme, insbesondere für eingebettete Systeme, ist dieses Prinzip noch wenig erforscht.  Durch unsere Arbeiten sollen daher selbst-bauende eingebettete Systemen auf Grundlage einer künstlichen DNA erforscht und realisiert werden.

Die Grundidee der künstlichen DNA (KDNA) beruht darauf, dass jeder Rechenknoten (Prozessorkern) eines eingebetteten Systems über den kompletten Bauplan des Gesamtsystems verfügt und sich dadurch dieses System zur Laufzeit selbst aufbaut und sich im Fall von Ausfällen bzw. Änderungen bei den Rechenknoten autonom selbst wieder herstellt bzw. anpasst. Es ist möglich den Bauplan eines eingebetteten Systems sehr kompakt darzustellen, da hier immer wiederkehrende Bausteine (wie z.B. Regler, Filter, Rechenwerke, etc.) und Entwurfsmuster Verwendung finden. Um zu zeigen, dass dieses Konzept bei realen Anwendungen effizient und unter Einhaltung von Echtzeitanforderungen funktioniert, wurde eine erste prototypische Implementierung des KDNA-Konzepts durchgeführt und anhand eines am Lehrstuhl entwickelten Roboterfahrzeugs evaluiert. Das Fahrzeug besitzt einen Differentialantrieb und zahlreiche Sensoren (Ultraschallentfernungssensore, 3D-Gyroskope und Beschleunigungssensoren, etc.) und ist mit drei Raspberry Pi-Prozessoren ausgerüstet. Insgesamt stehen 9 Kerne als DNA-Prozessoren zur Verfügung. Zur Realisierung von Ausfällen können ferngesteuert einzelne Kerne deaktiviert oder durch Abschalten der Stromversorgung auch ganze Raspberry Pis abrupt außer Funktion gesetzt werden. Das Fahrzeug kann wahlweise zweirädrig (balancierend wie ein Segway) oder mittels ausklappbarer Stützräder vierrädrig genutzt werden. Die jeweils auf die DNA-Prozessoren geladene KDNA bestimmt, was aus dem Fahrzeug wird.

Das oben stehende Video zeigt Experimente, bei denen verschiedene KDNAs das Verhalten des Fahrzeugs bestimmen. Es zeigt wie sich funktionsfähige System zur laufzeit aufbauen, Echtzeitanforderungen einhalten und wie das Fahrzeug auf Ausfälle von Prozessoren reagiert.