python_simple_mppi
MPPI-Regelung in numpy hergeleitet und implementiert, mit vier ausgearbeiteten Beispielen
Lizenz
MIT
Überblick
Die Model-Predictive-Path-Integral-Regelung zieht tausende zufällige Eingangsfolgen, rollt jede durch ein Dynamikmodell vorwärts, bewertet sie und mischt sie über eine informationstheoretische Gewichtung zu einem einzigen Stellbefehl. Auf dieser Methode beruht ein guter Teil der modernen stichprobenbasierten Regelung, und man begegnet ihr für gewöhnlich entweder als Seite voller Gleichungen oder als Produktionsframework, in dem der Algorithmus vergraben liegt. Dieses Repository ist die fehlende Mitte: vier ausgearbeitete Beispiele — Pfadverfolgung mit kinematischem Einspurmodell, dasselbe mit Hindernisvermeidung, ein aufschwingendes Pendel und ein Wagen-Stab-System — jedes als lauffähiges Skript und dazu ein Jupyter-Notebook, das den Algorithmus Schritt für Schritt in LaTeX herleitet, entlang der Algorithmen 1 und 2 der zitierten Arbeit von Williams et al. Die einzigen Abhängigkeiten sind numpy, matplotlib und notebook.
Der Wert liegt in der Paarung. Jedes Beispiel gibt es zweimal: einmal als Skript, das man laufen lässt, um die Simulation zu sehen, und einmal als Notebook, in dem derselbe Regler neben der Mathematik entsteht, die ihn rechtfertigt — Ziehen der Eingangsfolgen, Vorwärtsrollen der Dynamik, Aufsummieren von Stufen- und Endkosten, Herleitung der Gewichte aus der Informationstheorie und Rückfaltung der gewichteten Stichproben in einen einzigen Befehl. Das eine zu lesen, während das andere läuft, ist etwas anderes als eine Arbeit zu lesen, und genau dafür ist das Repository da. Der Autor sagt es in der Beschreibung unumwunden: um die Grundidee zu verstehen.
Die Zurückhaltung ist Absicht und der Grund, warum es funktioniert. Keine GPU, kein JAX, kein C++-Kern, kein Konfigurationssystem — numpy und matplotlib, ffmpeg nur, wenn man die Animation als mp4 schreiben will. Die Einrichtung ist uv sync oder ein docker compose run, wenn man die eigene Python-Umgebung lieber in Ruhe lässt. Alles, was man im Kopf behalten muss, ist der Algorithmus, und das ist der Punkt; die ganze Implementierung ist klein genug, um sie in einem Zug zu lesen.
Es ist zudem der Einstieg in ein Werk und kein Einzelstück. Derselbe Autor, Forscher am japanischen AIST für Bewegungsplanung und Regelung, hat mppi_swerve_drive_ros veröffentlicht, einen MPPI-Regler für einen Schwenkantriebsroboter von der IROS 2024, außerdem nullspace_mpc, ein mehrzieliges MPC-Framework für Aufgabenprioritäten in ROS, und path_tracking_catalog, eine ebenso aufbereitete Sammlung von Pfadverfolgungsalgorithmen. Wer sich durch dieses Repository arbeitet, weiß, wohin als Nächstes — was für Lehrcode selten gilt.
Warum es wichtig ist
Der Katalog führt die Planer, die Leute einsetzen — MuJoCo MPC, OMPL, MoveIt, NeuPAN — und fast nichts, was erklärt, wie die stichprobenbasierten funktionieren. MPPI erreicht einen gewöhnlich entweder als dichte Arbeit von 2018 oder als optimierte Implementierung, die man benutzen, aber nicht lesen kann. Dies ist die Fassung, die man lesen kann: klein genug, um ihr Zeile für Zeile zu folgen, mit der Herleitung neben dem Code, von jemandem, der seither begutachtete MPPI-Arbeiten auf echten Robotern veröffentlicht hat. Siebenhundert Sterne für ein Lehrrepository sind ein fairer Gradmesser dafür, wie sehr diese Lücke gefüllt gehörte.
Welches Problem es löst
MPPI begegnet einem normalerweise entweder als informationstheoretische Arbeit oder als schnelle Implementierung, in der der Algorithmus in einem Framework versteckt ist — und keines von beidem erklärt, wie er funktioniert. Hier bekommt man den Algorithmus in lesbarer Größe, mit der Herleitung daneben und vier Simulationen, die zeigen, was jeder Teil davon tut.
Wichtigste Punkte
- Vier ausgearbeitete Beispiele: Pfadverfolgung mit kinematischem Einspurmodell, Pfadverfolgung mit Hindernisvermeidung, aufschwingendes Pendel und Wagen-Stab-System
- Jedes Beispiel liegt doppelt vor — als lauffähiges Skript und als Notebook, das den Algorithmus in LaTeX neben demselben Code herleitet
- Die Herleitung folgt den Algorithmen 1 und 2 aus Williams et al., 'Information-Theoretic Model Predictive Control', Notebook und Arbeit lassen sich also nebeneinander lesen
- Abhängigkeiten sind numpy, matplotlib und notebook — mehr braucht nichts davon
- uv sync für eine native Einrichtung oder docker compose run für eine containerisierte; ffmpeg nur für mp4-Ausgabe
- MIT-lizenziert, von einem Forscher am AIST, der seither MPPI-Arbeiten auf der IROS 2024 veröffentlicht hat
- Das Hindernisbeispiel macht den Algorithmus sichtbar: der Fächer gezogener Trajektorien und der gewichtete Befehl mitten hindurch
Für wen
- Alle, die MPPI zum ersten Mal begegnen und es verstehen statt nur aufrufen wollen
- Studierende und Lehrende der optimalen Regelung, die ein ausgearbeitetes Beispiel samt Mathematik suchen
- Forschende, die einen stichprobenbasierten Regler prototypisieren und vor dem Optimieren einen korrekten, lesbaren Ausgangspunkt wollen
- Ingenieurinnen und Ingenieure, die prüfen, ob MPPI zu ihrem Problem passt, und sein Verhalten erst an einem Fahrzeugmodell sehen müssen
Einschränkungen
- Das ist bewusst Lehrcode — die eigene Formulierung des Autors lautet 'um die Grundidee zu verstehen', und es ist nicht für den Einsatz oder Echtzeitgarantien gebaut
- Reines numpy auf der CPU, die Stichprobenzahlen und Horizonte liegen also weit unter dem, was ein eingesetzter MPPI-Regler verwenden würde
- Die Beispiele sind zweidimensionale Spielzeugdynamiken: kein Kontakt, kein 3D, keine Sensormodelle, keine Hardwareanbindung
- Zuletzt im Mai 2026 aktualisiert, mit einer Handvoll offener Issues; es ist fertig statt aktiv entwickelt, was zu einer Referenzimplementierung passt, aber Korrekturen sind nicht zu erwarten
- Zwei Mitwirkende, faktisch einer — das Repository steht und fällt mit der Zeit des Autors
- Skripte und Notebooks statt einer importierbaren Bibliothek, Wiederverwendung heißt also Code herauskopieren
- GitHub weist die Lizenz als unerkannt aus, weil die Datei LICENSE.txt heißt; der Inhalt ist der übliche MIT-Text, Copyright 2023 MizuhoAOKI