Zusammenfassung
- Drei Dateien reichen. Die Craft-Datei für die Rakete, ein einzelnes Python-Skript für die Flugsteuerung und eine Zeile
requirements.txtfür die Abhängigkeit. - kRPC ist die Brücke. Ein Mod öffnet in KSP einen lokalen Server, das Python-Skript verbindet sich als Client dazu – Server- und Client-Version müssen exakt übereinstimmen (0.6.0).
- Das Skript liest zuerst, bevor es steuert. Ohne
--executezeigt es nur den erkannten Flugzustand an. Das eignet sich als erster Verbindungstest, ohne dass etwas passieren kann. - Orbit ist der erprobte Teil.
--goal orbit(Standard) bringt die Rakete zuverlässig in den Mün-Orbit. Landung und Rückflug (--goal land/--goal return) sind experimentell, siehe Grenzen.
Downloads
Alle drei Dateien liegen direkt auf diesem Server, keine externen Links außer für den Mod selbst (dazu mehr im nächsten Abschnitt).
| Datei | Inhalt | Größe |
|---|---|---|
| Munfalke-1.craft | Die Rakete selbst: 6 Stufen, 39 Bauteile, ein Sitzplatz. Gehört in den VAB-Ordner eines Spielstands. | 55 KB |
| munfalke_autoflight.py | Der vollständige Steuerungscode, rund 1050 Zeilen, ohne weitere eigene Module. Liegt aus Sicherheitsgründen serverseitig als .txt, kommt aber unter dem Namen munfalke_autoflight.py an. | 51 KB |
| requirements.txt | Eine Zeile: die exakte kRPC-Client-Version für pip install -r. | <1 KB |
Craft und Code sind ein eigener Entwurf und stehen hier zum privaten Nachbauen und Ausprobieren zur Verfügung.
Mod installieren: kRPC
kRPC ist ein KSP-Mod, der einen Server im Spiel öffnet. Ein externes Programm – hier das Python-Skript – verbindet sich per TCP dazu, liest Fahrzeugdaten aus und sendet Steuerbefehle, während KSP normal weiterläuft.[1] Der Mod ist nicht Teil dieser Downloads, sondern kommt direkt vom Projekt selbst:
- kRPC 0.6.0 von der offiziellen Release-Seite herunterladen: github.com/krpc/krpc, Release v0.6.0. Das Archiv enthält einen
GameData-Ordner. - Dessen Inhalt in
<KSP-Installationsordner>/GameDatakopieren. - KSP starten. Im Hauptmenü unter den Add-ons prüfen, ob kRPC geladen ist.
- Einen Spielstand laden oder anlegen, dann über das kRPC-Symbol das Server-Fenster öffnen.
- Protobuf over TCP wählen, Adresse
localhost, Standardports 50000 (RPC) und 50001 (Stream) belassen, dann Start Server anklicken. Die Anzeige wird grün.
Das Skript prüft beim Verbinden ausdrücklich, ob sowohl der Server als auch der installierte Python-Client Version 0.6.0 melden, und bricht sonst mit einer klaren Fehlermeldung ab. Eine neuere kRPC-Version zu installieren reicht also nicht – Server-Mod und Python-Paket müssen dieselbe Versionsnummer tragen.
Python-Umgebung einrichten
Getestet unter Linux (Pop!_OS) und Windows, mit Python 3.13. Eine virtuelle Umgebung ist nicht zwingend, aber empfehlenswert:
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
Das installiert genau ein Paket: den kRPC-Python-Client in Version 0.6.0, passend zum Server-Mod aus dem vorigen Abschnitt.
Die Rakete auf die Startrampe bringen
Das Skript steuert ein Fahrzeug, das bereits auf der Startrampe steht – es startet keine neue Rakete aus der Werkstatt heraus. Dafür muss die Craft-Datei einmal von Hand ins Spiel:
Munfalke-1.craftin denShips/VAB-Ordner des gewünschten Spielstands kopieren, z. B.<KSP>/saves/<Spielstandname>/Ships/VAB/.- In KSP die Fahrzeugmontage (VAB) öffnen, Munfalke-1 laden.
- Auf Launch klicken. KSP weist dabei automatisch einen verfügbaren Kerbal dem freien Sitzplatz zu.
- Auf der Startrampe stehen bleiben (nicht selbst zünden) – von hier übernimmt das Skript.
Der Steuerungscode erkennt den Flugzustand bei jedem Aufruf neu aus Höhe, Bahn, aktueller Stufe und Aufenthaltsort, nie aus einer eigenen Fortschrittsdatei. Steht die Rakete korrekt startbereit auf dem Pad (Stufe 6, „vor dem Start“), erkennt es die Phase launch und übernimmt dort.
Das Skript starten
Erster Aufruf immer ohne --execute – das verbindet sich nur, liest den Zustand aus und steuert nichts:
python munfalke_autoflight.py
Das gibt eine Zeile mit dem aktuell erkannten Flugzustand aus (z. B. „launch“, wenn die Rakete startbereit auf dem Pad steht). Passt das, geht es mit --execute wirklich los:
# Standard: bis in den Mün-Orbit, gut erprobt
python munfalke_autoflight.py --execute
# experimentell: zusätzlich landen
python munfalke_autoflight.py --execute --goal land
# experimentell: landen, wieder starten, zur Kerbin-Landung zurückkehren
python munfalke_autoflight.py --execute --goal return
Weitere Optionen: --address, --rpc-port und --stream-port, falls der kRPC-Server nicht auf dem lokalen Standard läuft. Läuft das Skript einmal mit --execute, warpt es selbstständig durch Wartezeiten, richtet vor jedem Manöver aus, zündet und protokolliert jeden sicherheitsrelevanten Schritt als eine Zeile JSON in logs/munfalke-autoflight-<Zeitstempel>.jsonl – dieselbe Art Protokoll, die dem Datenanalyse-Beitrag zugrunde liegt. Ein Abbruch mit Strg+C versucht, die Triebwerke sauber abzuschalten, statt einfach die Verbindung zu kappen.
Grenzen und Warnungen
- Landung und Rückflug sind weniger erprobt als der Orbit-Teil. Beide sind grundsätzlich geflogen worden, aber mit weniger Wiederholungen als der reine Aufstieg in den Mün-Orbit.
- Keine Bahn-Interpolation, sondern Suche. Der Transfer zum Mün wird nicht exakt vorausberechnet, sondern durch Ausprobieren vieler Zündzeitpunkt-Kombinationen gefunden. Das kostet etwas Zeitraffer-Rechenzeit, ist aber robuster als ein starrer Hohmann-Ansatz.
- Eigener Spielstand empfohlen. Das Skript greift auf den gerade aktiven Kerbin-Spielstand zu und startet/landet Fahrzeuge darin. Für erste Versuche eignet sich ein eigener, nicht wichtiger Spielstand.
- Kein Autopilot-Mod nötig oder unterstützt. Die Steuerung erfolgt ausschließlich über kRPC-Aufrufe aus dem Skript selbst; ein zusätzlicher Autopilot wie MechJeb wird nicht benötigt und sollte während des Skriptlaufs nicht gleichzeitig eingreifen.
Quellen
- kRPC – Fernsteuerung für Kerbal Space Program, Version 0.6.0. github.com/krpc/krpc, Dokumentation unter krpc.github.io/krpc.
- Squad/Private Division: Kerbal Space Program. kerbalspaceprogram.com.
Die Flugdaten und Grundformeln zu einem tatsächlich geflogenen Rundflug mit dieser Rakete und diesem Code stehen im Munfalke-1-Datenbeitrag.