Das bisher größte Einzelprojekt meiner Computeraktivitääten ist die Implementierung einer eigenen, Multitasking-fähigen Robotersteuerung. Gestartet ist das Projekt als kleiner und einfacher Befehlszeileninterpreter für das Autonome Fahrzeug aus meiner Diplomarbeit. Obwohl die Software dort nie wirklich zum Einsatz kam, ist sie mittlerweile zu einer ausgewachsenen Steuerung für verschiedene Roboter (serielle Manipulatoren) herangereift.
Ihren Haupteinsatz hat die Steuerung heute im "Robotik und Sensorik Praktikum" am Lehrstuhl Angewandte Informatik III (AI-3, Uni Bayreuth), nachdem ich zuvor in den Jahren 2001 bis 2003 mit verschiedenen Versionen der Steuerung das Robotik-Praktikum an der Uni Kaiserslautern, AG-RESY, ausgerichtet hatte.
Momentan kann die Software zwei eigenentworfene Fischertechnik Roboter steuern, ebenso wie einen seriell angeschlossenen Move-Master RM-501 (Fa. Mitsubishi, der MoveMaster EX sollte auch gehen) und einen von zwei Studenten im am Lehrstuhl AI-III im Wintersemenster 2006/07 umgebauten MR-999E-Roboter der Fa. Elekit.
Da die Software vollständig modular aufgebaut ist, lassen sich weitere Roboter leicht über einen Plugin-Mechanismus nachrüsten, ohne den Rest der Steuerung neu kompilieren zu müssen. Die Steuerung selbst besteht aus mehreren flexibel in andere Projekte integrierbaren Komponenten (siehe Abbildung unten) und ist auch ganz ohne Roboter betreibbar, beispielsweise wenn man für irgendetwas nur einen BASIC-ähnlichen, Multitasking bietenden Befehlsinterpreter braucht. Die Modularität macht auch den besonderen Nutzen für die Lehre im Robotik-Praktikum aus: Es lassen sich problemlos Komponenten entfernen, die dann von den Praktikanten neu implementiert werden müssen. Auf diese Art können sich die Praktikanten beispielsweise einerseits auf die Probleme einer Linearbahnsteuerung konzentrieren, und haben andererseits zum Testen ihres Trajektoriengenerators eine vollständige Robotersteuerung zur Verfügung, mit der sie ihre Bahnsteuerung an realen Benchmarks erproben können.
Da die Steuerung am AI-3 in der Lehre genutzt wird, und dort unter anderem die Aufgabe besteht Teile der Steuerung jeweils neu zu implementieren, kann ich hier leider nicht die Quelltexte zur Verfügung stellen - die wären eine ideale Musterlösung.
Eine Binär-Version samt Dokumentation (einschließlich aller für eigene Plugins nötigen Interna) ist allerdings auf Anfrage verfügbar.