linkedin

Entwicklung von Software

Neben der Entwicklung von Addons für Eisenbahnsimulationen, die ebenfalls umfangreiche Programmierarbeiten beinhalten, erstelle ich auch davon unabhängige Software. An dieser Stelle möchte ich eine Auswahl der Entwicklungen vorstellen:

Filten nach Kategorien:

📷 Anwenderprogramm
💻 Entwicklung
🌐 Multi-language
🎁 Nicht veröffentlicht
Öffentlich erhältlich

Filtern nach Programmiersprache:

Java
🌙 Lua
🛤️ DynaTrax
Diagram
Diagram Diagram Diagram Data table Input format

EROSS

Das Projekt EROSS (Ebrecht's Railway Operation & Simulation Suite) ist ein fortwährend in Entwicklung befindliches, modular aufgebautes Simulationstool. Im Kern handelt es sich um eine fahrdynamische Simulationsumgebung für Schienenfahrzeuge. Unter Nutzung von Fahrzeug- und Streckendaten kann eine Zugfahrt unter physikalischen und energetischen Aspekten simuliert werden. Stapelverarbeitende Simulationsläufe erlauben u.a. die Betrachtung komplexer Netze oder das Variieren von Parametern. Die Ausgabe der Ergebnisse erfolgt grafisch sowie in Protokolldateien, wobei eine automatisierte Auswertung möglich ist. Fahrzeugdaten werden fix definiert, für Infrastrukturdaten gibt es Parser für diverse Datenformate. Hauptanwendung ist bisher die Betrachtung der Antriebsart Batterietriebzug (BEMU, Battery Multiple Electric Unit), für den die Einhaltung von Ladefenstergrenzen und die Nachladung unter Fahrleitung und optionalen Ladestationen implementiert sind. Das Tool wurde bereits für Machbarkeitsstudien sowie Abschlussarbeiten produktiv eingesetzt.

📷 Anwenderprogramm 💻 Entwicklungstool 🎁 Nicht veröffentlicht Java
Pult
Pult HMI ZZA

TTB FlexController

Der FlexController ist eine modular aufgebaute Software, die sich als Hardware-Treiber und Schnittstelle für virtuelle Hardware für verschiedene Eisenbahnsimulationsprogramme versteht. Primär wird die Software genutzt, um reale Führerstands-Hardware für die Nutzung in Bahnsimulationsspielen anzubinden. Das Auslesen von Hardware-Eingaben erfolgt mit jInput unter der Voraussetzung, dass sich die Hardware als Gampad-Gerät identifiziert. Die bidirektionale Kommunikation mit der Spielesoftware geschieht in der Regel über TCP-Schnittstellen. Die modulare Konfigurationsstruktur erlaubt das beliebige "Verdrahten" der realen Hardware mit virtuellen Bedienelementen in der Simulation, d.h. mit verschiedener Hardware können beliebige Fahrzeuge bedient werden. Unter Nutzung von Arduino-Boards können auch Hardware-Ausgaben wie Leuchtmelder und Tachonadeln angesteuert werden. Weiterhin sind exemplarische virtuelle HMIs (Human Machine Interfaces) entstanden, die per Client-Anwendung auf beliebigen Netzwerkrechnern ausgeführt werden können - sie erlauben zusätzliche Bedieneingaben auf (Touch-)Monitoren. Zur Anwendung gekommen ist der FlexController bisher mit dem "Train Simulator Classic" sowie "OpenRails". Angebunden wurden u.a. der Fahrsimulator des Fachgebiets Bahnbetrieb und Infrastruktur (BBI) der TU Berlin sowie ein Fühgrertisch aus der Berliner U-Bahn Typ A3L92.

📷 Anwenderprogramm 💻 Entwicklungstool 🎁 Nicht veröffentlicht Java
Software 1 Main View
Thumbnail 1 Thumbnail 2

TTB SzenarioAnalyse

Im Rahmen der Addon-Produktion für den "Train Simulator Classic" ist die "SzenarioAnalyse" als Zusatztool für Endanwender entstanden. Es erlaubt, sich einen schnellen Überblick über den gesamten, durch das Team veröffentlichten Fuhrpark im "Train Simulator Classic" zu verschaffen: dabei wird die eigene Installation abgeparst und mit einer Datenbank erhältlicher Fahrzeuge abgeglichen. Eine der Hauptanwendungen ist der Abgleich, welche Fahrzeuge bzw. Addons für das Spielen eines öffentlichen, in der Online-Community erhältlichen Szenarios benötigt werden: es ist üblich, dass solche Szenarien (Fahrten nach Fahrplan entlang einer Strecke mit Nutzung bestimmter Fahrzeuge im Spielerzugverband sowie im Verkehrsmuster der entgegenkommenden Züge) von Endandwendern erstellt und veröffentlicht werden. Potentielle Nutzer können installierte Szenarien selektieren und analysieren lassen, ob alle benötigten Fahrzeuge aus dem Fuhrpark des TrainTeamBerlins installiert sind. Ist dies nicht der Fall, erlaubt eine Filterfunktion die schnelle Prüfung, mit welchem zusätzlichen Addon oder Update die fehlenden Fahrzeuge beschafft werden können.

📷 Anwenderprogramm 🌐 Multi-language Öffentlich erhältlich Java
mesfet
mesfet mesfet mesfet mesfet mesfet mesfet

TTB MESFET

Das MESFET (Modular Engine Script Framework for Expert's Simulation and Trainsim Gaming) ist ein modulares Skript-Framework, das ein effizientes Programmieren von Fahrzeugskriptem im "Train Simulator Classic" erlaubt. Der Kernel verfügt über eine generische Sprachauswahl, Options-Loader, seriennummernscharfes, verschlüsseltes DRM, Debugger und Log-Module. Jedes Fahrzeug verfügt darüber hinaus über eine Zugtaufe-Funktion, das relevante Grunddaten zum eigenen Fahrzeug sowie Zugverband zur Verfügung stellt und die Kommunikation mit den weiteren Fahrzeugen im Zugverband etabliert (Master/Slave-Prinzip). Eine beliebige Kombination von Funktions-Modulen erlaubt das spezifische Umseten von Originalfahrzeugen. Zu den bisher umgesetzten Funktionen gehören u.a. eine Traktionskontrolle (mit Tempomat und Schleuder-/Gleitschutz), ein integrierter Bremsrechner (u.a. Bremsblending verschiedener Bremssysteme, integrierte Zwangsbremsverwaltung), ein Fahrgasttürsystem (Türüberwachung, Freigabe- und Schließsystem), verschiedene Abfertigungsmethoden (u.a. ZAT, Zp10/Zp9, Funk), verschiedene Zugsicherungssysteme (u.a. SiFa, Fahrsperre S-Bahn Berlin) sowie ein IBIS-System (mit virtuellem Bedienrechner, hinterlegtem Routen-Dateisystem sowie angebundener Zugzielanzeigen und Ansagensysteme). Das System zielt auch darauf ab, spezifische Funktionseinschränkungen des Hauptspiels "Train Simulator Classic" durch Wrapper aufzubohren und umgehen. Weiterhin wird besonderer Wert auf Atmosphäre stiftende Elemente im Eisenbahnsimulationsspiel gelegt - dazu gehören bspw. funktionsfähige Rollband-Zielanzeiger, verschiedene Störungssituationen und je Fahrzeug versetzt flackernd schaltende Leuchtstoffröhren. Zum Einsatz ist das MESTFET u.a. in den Addons "Die Baureihe 481", Ringbahn Berlinund dem "BR 483/484 ExpansionPack gekommen. Weitere Funktionsmodule sind stetig in Entwicklung.

📷 Anwenderprogramm 🌐 Multi-language Öffentlich erhältlich 🌙 Lua
Screen
screen ingame

TTB Türmonitor

Als öffentliche Auskopplung aus dem "TTB FlexController" ist der "TTB Türmonitor" ein kleines Zusatzprogramm für Nutzer diverser Addons für den "Train Simulator Classic", um den Realitätsgrad zu erhöhen. Es überwacht den Fahrgasttür-Status des Spielerzugverbands inkl- Türschließ- und Abfahrbereitschaft, ohne unrealistische, hauptspiel-interne HUD-Monitore nutzen zu müssen. Die grafische Ausgabe kann als Overlay über das Hauptspiel geblendet oder auf einem separaten Monitor im Sinne eines Human Machine Interfaces (HMI, Führerstandskomponente bei realen Fahrzeugen) dargestellt werden. In Kombination mit einem weiteren Tool ist auch die Übertragung auf das Smartphone denkbar. Technisch meldet sich das Tool als Client beim TCP-Interface "TS-Conductor" für den Train Simulator Classic an, erkennt die gewählte Fahrzeugbauart und fragt den Türstatus fortwährend ab, um entsprechende Grafikausgabn zu generieren.

📷 Anwenderprogramm Öffentlich erhältlich Java
font
screen ingame ingame ingame ingame ingame

TTB FontCreator & TddPrinter

Die Kombination zweiter Helfer-Tools erlaubt das effiziente Erstellen von Grafikvorlagen für Zugzielanzeigen, die auf FlipDot-, LCD- oder LED-Technik basieren. Der "FontCreator" genriert aus Pixel-Matrizen im Textformat und einer Pilot-Pixelgrafilk Bitmap-Alphabete. Dabei können aus Fotovorlagen automatisiert Pixelmasken hefiltert werden. Der "Train Destination Display Printer" nutzt die so entandenen Grafik-Fonts oder wahlweise Vektor-Fonts (auch Kombination möglich), um Zielgrafiken zu generieren. Das geschieht unter Nutzung einer eigenen Skriptsprache stapelverarbeitend. Es können Hintergrundgrafiken eingebunden werden. Auch leuchtend bis in den Nachbarn überstrahlende Pixel bzw. Zeichen können verarbeitet werden. Eine Kurzdoku bietet weitere Einblicke: Vorstellung des Tools im TTB-Forum. Das Tool ist bereits bei zahlreichen Bahnsimulations-Addons produktiv zum Einsatz gekommen, die Bibliothek ist auf knapp 50 Schritarten angewachsen.

💻 Entwicklungstool 🎁 Nicht veröffentlicht Java
bemu
bemu bemu

BEMU Operational Data Evaluator

Das Auswerte-Tool unter dem Arbeitstitel "BemuODE" (BEMU Operational Data Evaluator) ist ein spezifisches Programm aus meiner Tätigkeit für die TU Berlin, das im Rahmen des Forschungs- und Entwicklungsprojekts BEMU (Batterietriebzug für nicht- oder nur teil-elektrifizierte Strecken des Schienenpersonennahverkehrs (SPNV))" entstanden ist. Es führt verschiedene im Fahrgast-Probebetrieb des TALENT 3 BEMU erhobenen Datensätze zusammen: dazu gehören umfangreiche Datensätze vom Fahrzeug-Datenlogger zu den Zugfahrten sowie von DB Regio zugelieferte Auswertungen hinsichtlich Verspätungen und Zugausfällen sowie hinterlegte Soll-Fahrplandaten. Die Daten werden wo nötig mit Korrekturdaten bereinigt und zu Kompakt-Datensätzen je Betriebstag und Zugfahrt zusammengefasst. Anschließend wurden verschiedene Auswertungen bezüglich Energieverbrauch, Nachladeverhalten, Transition zwischen Fahrleitungs- und Batteriebetrieb sowie Verspätungsentwicklung (unter Hinzuziehen von Dieselbetriebs-Vergleichsdaten) durchgeführt. Die Ausgabe erfolgt sowohl grafisch als auch mit Datenlogs.

💻 Entwicklungstool 🎁 Nicht veröffentlicht Java
hvo
hvo

HVO Data Evaluator

Ein weiteres Auswerte-Tool ist bei meiner Tätigkeit für die TU Berlin im Rahmen der wissenschaftlichen Begleitung des HVO100-Probebetriebs bei der Südostbayernbahn (beauftragt durch die Bayerische Eisenbahngesellschaft) entstanden. Im Rahmen des Projekts wurden Dieseltriebzüge der Baureihe 628 für 1 Jahr pilotweise mit dem Biokraftstoff HVO100 betankt. Auf Grund technischer Gegebenheiten musste die Verbrauchsüberwachung indirekt über die Zusammenführung von Betankungs- und Zuglaufdaten erfolgen. Die durch die SOB zugelieferten Datensätze werden mit diesem Tool zusammengeführt, mit Archivdaten des Deutschen Wetterdiensts (DWD) angereichert und automatisiert ausgewertet. Dabei wurde sowohl die Abgabemenge an der Tankstelle, die Verteilung auf die Fahrzeuge als auch die Verbrauchsentwicklung betrachtet. Unter Nutzung von Diesel-Vergleichsdaten aus dem Vorjahreszeitraum wurde - soweit möglich - ein Vergleich des Kraftstoffverbrauchs angestrebt. Generierte Auswertedatensätze im CSV-Format werden so präpariert, dass sie in einer Tabellenkalkulation sehr einfach nachgenutzt und visualisiert werden können.

💻 Entwicklungstool 🎁 Nicht veröffentlicht Java
tram tracks
tram tracks tram tracks tram tracks

TTB TramTracks

Im Rahmen der Addon-Entwicklung für den Microsoft Train Simulator sind verschiedene Skripte für generative 3d-Modelle entstanden: das Programm arbeitet mit statischen Gleis-Modellen, für deren Generierung das Tool "DynaTrax" ein Framework mit Skriptsprache bietet. Auf Basis programmierter Querschnitte mit weiteren Extrusions-Informationen können beliebige (auch mehrgleisige) Schienenmodelle generiert werden. Für das Addon "ProTrain37" sind auf diesem Wege zwei Gleissysteme für Straßenbahn- und schmalspurige Parkeisenbahnstrecken entstanden. Die Modellierung von Weichen erfolgte dabei händisch auf Vorlagen von geraden und gebogenen Gleisstücken.

💻 Entwicklungstool 🎁 Nicht veröffentlicht 🛤️ DynaTrax
Rhode Island
Rhode Island Artefakte Ulm Charlottesville Datenmodell

MatSim GTFS Converter

Das Studium verlangte nach verschiedenen Projektarbeiten. Erwähnenswert ist darunter dieses Projekt: MatSim ist eine makroskopische, multi-agentenbasierte Verkehrssimulation, die maßgeblich am Fachgebiets Verkehrssystemplanung (VSP) der TU Berlin entwickelt wurde. Zum damaligen Zeitpunkt (2013) war der öffentliche Verkehr (ÖPNV bzw. public transport) noch unzureichend im Framework abgebildet. Im Rahmen einer Studienarbeit bestand das Ziel, ÖPNV-Verkehrsdaten im freien GTFS-Format zu nutzen, um weitere Informationen anzureichern und daraus Agenten-Aktivitäten in MatSim abzuleiten. Die Programmierung erfolgte in Java unter Nutzung der "OneBusAway"-Bibliothek. Auf Grund der unterschiedlichen Herangehensweise beider Datenformate waren entstehende Artefakte - soweit im Rahmen der Studenarbeit möglich - abzufangen, wofür teils amgepasste Haltestellen-Datenmodelle eingeführt wurden. Beispielhaft wurden damals vermehrt aufkommende GTFS-Feeds verschiedener Transportgesellschaften zur Umsetzung genutzt, u.a. wurde der ÖPNV von RhodeIsland, Charlottesville und Ulm dargestellt.

💻 Entwicklungstool 🎁 Nicht veröffentlicht Java