Mein Werkzeugkasten

Das sind die Werkzeuge, die ich wirklich benutze. Dazu gibt es sieben interaktive Simulationen, die Sie direkt im Browser ausprobieren können.

Technische Kompetenzen

Fahren Sie über eine Karte, um zu sehen, wofür jedes Werkzeug dient

ROS 2

Robotik-Middleware. Damit strukturiere ich über Nodes, Topics und Services die Kommunikation zwischen Sensoren, Planung und Aktoren.

Python

Meine Hauptsprache für Prototyping, Bildverarbeitung und Regelung, mit NumPy, OpenCV, PyTorch und rclpy.

KiCad

Open-Source-Leiterplattendesign, vom Schaltplan über das Routing bis zur DRC-Prüfung. Jede meiner Platinen läuft darüber.

Autodesk Inventor

Parametrisches CAD. Ich modelliere Teile, Baugruppen und Zeichnungen vor Druck oder Bearbeitung.

Multimaterial-3D-Druck

Multimaterial-Fertigung mit löslichen Stützen und der Mischung aus flexiblen und starren Teilen. Vom Modell zum funktionsfähigen Bauteil an einem Tag.

MoveIt 2

Bewegungsplanung unter ROS 2, inverse Kinematik und Kollisionsvermeidung. Ich nutze es zum Steuern und Simulieren von Manipulatorarmen.

YOLO

Echtzeit-Objekterkennung. Ich trainiere sie auf eigenen Bilddatensätzen für die Robotik-Bildverarbeitung.

FPGA

Rekonfigurierbare Logik in VHDL, für parallele Verarbeitung, die einem klassischen Mikrocontroller zu schnell ist.

PCB Design

Bauteilauswahl, Leiterbahn-Routing, Signal- und Leistungsanforderungen. Meine Illumine-Platine habe ich komplett geroutet.

CAD

3D-Modellierung, Toleranzen und Baugruppen. Sie ist die Grundlage jedes mechanischen Projekts vor der Fertigung.

FEA

Finite-Elemente-Analyse mit Abaqus oder Inventor Nastran. Ich prüfe die Festigkeit eines Teils und untersuche die Netzkonvergenz vor der Fertigung.

C/C++

Echtzeit-Embedded-Programmierung auf Mikrocontrollern, wenn Python zu langsam oder zu indirekt ist.

Konstruktion

CAD, 3D-Modellierung und Strukturoptimierung

Prototyping

Multimaterial-3D-Druck und schnelle Fertigung

Entwicklung

Embedded-Code und Robotik

Die Labor-Ecke

Ich habe sieben Physik- und KI-Simulationen geschrieben, aus Freude daran, Gleichungen in Bewegung zu sehen. Ziehen Sie an den Reglern und beobachten Sie.

Öffnet sich in einem neuen Tab, am Computer am angenehmsten.

Fluid im Paraboloid

Eine in Echtzeit simulierte Flüssigkeit in einem parabolischen Glas. Mit der Maus umrühren, zum Spritzen klicken. Im Panel lassen sich Viskosität (von Wasser bis Honig), Schwerkraft, Farbe und Partikelanzahl einstellen.

Unter der Haube

Rund 900 Partikel laufen in einer SPH-Simulation (Smoothed Particle Hydrodynamics) nach dem Schema „double density relaxation“ von Clavet et al. (2005). Jedes Partikel erfährt Schwerkraft und Viskosität, die als Impulse zwischen Paaren wirken. Eine Dichterelaxation mit doppeltem Druckterm verhindert, dass die Partikel verklumpen. Ein räumliches Hash-Gitter beschleunigt die Berechnung, und Kollisionen werden auf die Wand y = kx² projiziert. Das Rendering macht aus den Partikeln dann eine kontinuierliche Oberfläche. Ein gaußsches Dichtefeld (Metaballs) wird in einem GLSL-Shader schwellwertet, der Normalen, Brechung, Glanzlichter und Fresnel direkt auf der GPU berechnet.

SPH
Metaballs
Three.js
GLSL
Echtzeit
Experiment starten

Geregelte Magnetschwebung

Eine Stahlkugel, die ein geregelter Elektromagnet in der Luft hält. Kp, Ki und Kd live einstellen, die Kugel anstoßen, ihre Masse ändern oder das Sensorsignal verrauschen, dann die Sprungantwort beobachten. Je nach Einstellung stabilisiert sich das System, schwingt oder fällt ab.

Unter der Haube

Die Strecke ist im offenen Kreis instabil, denn die Magnetkraft F = C·(i/x)² wächst, je näher die Kugel kommt. Die Simulation integriert m·ẍ = m·g − F mit 480 Hz. Sie enthält eine Spulenverzögerung erster Ordnung (L/R), Stromsättigung, Messrauschen und eine gefilterte Ableitung. Der PID-Regler arbeitet um den Gleichgewichtsstrom i_eq = x·√(mg/C), mit Anti-Windup durch Integral-Begrenzung. Die linearisierte Analyse liefert eine Stabilitätsbedingung (stabil genau dann, wenn Kp > i_eq/x₀ und Kd > 0), die sich mit den Voreinstellungen live nachprüfen lässt.

PID
Elektromagnetismus
Regelungstechnik
Canvas 2D
Echtzeit
Experiment starten

Rayleigh-Bénard-Konvektion

Eine Fluidschicht wird von unten geheizt und von oben gekühlt. Sie organisiert sich erst in Zellen, dann in turbulente Fahnen. Mit der Maus lokal heizen oder kühlen, Viskosität und Heizleistung verstellen und den vom Strom mitgerissenen Staub verfolgen.

Unter der Haube

Zwei gekoppelte Lattice-Boltzmann-Gitter teilen sich dasselbe Raster. D2Q9 berechnet die Strömung (BGK-Kollision, haftende Wände oben und unten, periodische Ränder). D2Q5 berechnet die Temperatur (Advektion-Diffusion, Platten mit fester Temperatur). Die Boussinesq-Kopplung speist einen vertikalen Auftrieb gβ·(T−T₀) in das Kollisionsgleichgewicht ein. Jenseits der kritischen Schwelle wird die reine Wärmeleitung instabil, und Konvektionszellen entstehen. Tracer werden per bilinearer Interpolation des Geschwindigkeitsfelds advektiert.

Lattice-Boltzmann
Thermik
Multiphysik
Canvas 2D
Echtzeit
Experiment starten

Masse-Feder-Tuch im Wind

Eine Fahne knattert im turbulenten Wind. Greifen Sie zu und ziehen Sie daran (zu stark, und sie reißt). Stellen Sie Windstärke und -richtung, Schwerkraft und Steifigkeit ein und umkreisen Sie dann die 3D-Szene.

Unter der Haube

Das Tuch ist ein Partikelgitter mit Abstandsbedingungen (Kette, Schuss, Scherung). Es wird mit Verlet integriert und anschließend im Stil von Position Based Dynamics projiziert. Der Wind übt auf jedes Dreieck eine aerodynamische Kraft F = n·(n·v_rel)·|v_rel|·k aus, wobei v_rel die Tuchgeschwindigkeit berücksichtigt. Das Knattern der Fahne entsteht von selbst aus dieser Kopplung. Eine über die Schwelle gedehnte Bedingung reißt, und die angrenzenden Dreiecke verschwinden. Der Riss breitet sich dann natürlich aus. Das Rendering nutzt Three.js, mit pro Bild neu berechneten Normalen.

Verlet
PBD
Aerodynamik
Three.js
Echtzeit
Experiment starten

Viertelfahrzeug-Federung

Ein Rad, eine Feder, ein Dämpfer und ein Viertel Karosserie auf einer vorbeiziehenden Straße. Steifigkeit und Dämpfung einstellen, den Belag wechseln, ein Schlagloch einwerfen und das Urteil ablesen. Filtert die Karosserie die Straße? Probieren Sie auch die Voreinstellung „toter Dämpfer“.

Unter der Haube

Das ist das klassische Viertelfahrzeugmodell mit 2 Freiheitsgraden. Die gefederte Masse (Karosserie) ruht auf einer Feder ks und einem Dämpfer cs. Die ungefederte Masse (Rad) ruht auf der Reifensteifigkeit kt. Die Gleichungen sind um das statische Gleichgewicht formuliert und semi-implizit mit 960 Hz integriert, weil der Reifen steif ist. Das Straßenprofil zieht mit der gewählten Geschwindigkeit unter dem Rad durch, mit vier Profilarten: sinusförmiges Kopfsteinpflaster, gefiltertes Value-Noise, gaußsche Bremsschwellen und Halbkosinus-Schlaglöcher. Die Kennwerte werden live berechnet: Eigenfrequenz f₀ = √(ks/ms)/2π, Dämpfungsgrad ζ = cs/2√(ks·ms) und RMS der Karosseriebeschleunigung als Komfortkriterium.

Fahrzeugdynamik
2 FG
Resonanz
Canvas 2D
Echtzeit
Experiment starten

Chaotisches Doppelpendel

Zwei gelenkig verbundene Stäbe werden zusammen losgelassen, dazu ein Schwarm blasser Pendel, die haargenau daneben starten. Sie bleiben erst deckungsgleich und laufen dann schlagartig auseinander. Greifen Sie die Massen mit der Maus, ändern Sie Längen, Massen und Schwerkraft und verlangsamen Sie die Zeit.

Unter der Haube

Das Doppelpendel folgt seinen vollständigen Lagrange-Gleichungen, integriert mit einem Runge-Kutta-Verfahren vierter Ordnung bei 480 Hz. Ohne Reibung bleibt die Energie erhalten, was die Anzeige live prüft (nahezu keine Drift). Es ist ein nichtlineares Hamilton-System, deterministisch und doch chaotisch. Rund fünfzehn Kopien starten weniger als ein Tausendstel Radiant voneinander entfernt, und ihr Abstand wächst exponentiell. Das ist das Kennzeichen eines positiven Lyapunov-Exponenten. Der Graph unten zeichnet diesen Abstand in logarithmischem Maßstab. Er bildet eine steigende Gerade, bis das Chaos alles dekorreliert hat.

Chaos
Lagrange
Runge-Kutta 4
Canvas 2D
Echtzeit
Experiment starten

Metronome, die sich synchronisieren

Fünf Metronome werden in beliebigem Takt auf einem Brett gestartet, das auf Rollen liegt. Ohne Zutun schlagen sie am Ende gemeinsam. Blockieren Sie das Brett, und sie werden wieder unabhängig. Verstimmen Sie sie, und die Synchronisation bricht ab.

Unter der Haube

Jedes Metronom ist ein durch eine Hemmung angetriebenes Pendel, nach Pantaleone mit einem Van-der-Pol-Term modelliert, der die Amplitude des Tickens festlegt. Die einzige Kopplung läuft über das bewegliche Brett. Schiebt ein Pendel zur Seite, weicht das Brett zurück und zieht alle anderen mit. Die N Pendel und das Brett bilden ein Gleichungssystem, das explizit gelöst und dann mit Runge-Kutta 4 bei 480 Hz integriert wird. Aus beliebigen Phasen konvergiert das Ganze zu einem gemeinsamen Takt. Der Kuramoto-Ordnungsparameter r misst diese Konvergenz, von 0 (Unordnung) bis 1 (Synchronisation), und wird live gezeichnet.

Synchronisation
Gekoppelte Oszillatoren
Van der Pol
Kuramoto
Canvas 2D
Experiment starten