Technische Kompetenzen
Fahren Sie über eine Karte, um zu sehen, wofür jedes Werkzeug dient
Robotik-Middleware. Damit strukturiere ich über Nodes, Topics und Services die Kommunikation zwischen Sensoren, Planung und Aktoren.
Meine Hauptsprache für Prototyping, Bildverarbeitung und Regelung, mit NumPy, OpenCV, PyTorch und rclpy.
Open-Source-Leiterplattendesign, vom Schaltplan über das Routing bis zur DRC-Prüfung. Jede meiner Platinen läuft darüber.
Parametrisches CAD. Ich modelliere Teile, Baugruppen und Zeichnungen vor Druck oder Bearbeitung.
Multimaterial-Fertigung mit löslichen Stützen und der Mischung aus flexiblen und starren Teilen. Vom Modell zum funktionsfähigen Bauteil an einem Tag.
Bewegungsplanung unter ROS 2, inverse Kinematik und Kollisionsvermeidung. Zum Steuern und Simulieren von Manipulatorarmen.
Echtzeit-Objekterkennung. Ich trainiere sie auf eigenen Bilddatensätzen für die Robotik-Bildverarbeitung.
Rekonfigurierbare Logik in VHDL, für parallele Verarbeitung, die einem klassischen Mikrocontroller zu schnell ist.
Bauteilauswahl, Leiterbahn-Routing, Signal- und Leistungsanforderungen. Meine Illumine-Platine habe ich komplett geroutet.
3D-Modellierung, Toleranzen und Baugruppen. Grundlage jedes mechanischen Projekts, bevor die Fertigung startet.
Finite-Elemente-Analyse mit Abaqus oder Inventor Nastran. Ich prüfe die Festigkeit eines Teils und untersuche die Netzkonvergenz vor der Fertigung.
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
Sieben Physik- und KI-Simulationen, geschrieben aus Freude daran, Gleichungen in Bewegung zu sehen. Regler ziehen und beobachten.
Ö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, klicken zum Spritzen, und alles im Panel einstellen: Viskosität (von Wasser bis Honig), Schwerkraft, Farbe, Partikelanzahl …
Unter der Haube
Unter der Oberfläche laufen ~900 Partikel in einer SPH-Simulation (Smoothed Particle Hydrodynamics, „double density relaxation“ nach Clavet et al., 2005): Schwerkraft, paarweise Viskositätsimpulse, Dichterelaxation mit doppeltem Druckterm (gegen Verklumpung), beschleunigt durch ein räumliches Hash-Gitter, plus Kollisionen, die auf die Wand y = kx² projiziert werden. Das Rendering macht aus den Partikeln dann eine kontinuierliche Oberfläche: ein gaußsches Dichtefeld (Metaballs), das ein GLSL-Shader schwellwertet und daraus Normalen, Brechung, Glanzlichter und Fresnel direkt auf der GPU ableitet.
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, und die Sprungantwort beobachten: das System stabilisiert sich, schwingt … oder fällt ab.
Unter der Haube
Ein echtes Mechatronik-Problem: Die Strecke ist im offenen Kreis instabil (die Magnetkraft F = C·(i/x)² wächst, je näher die Kugel kommt). Die Simulation integriert m·ẍ = m·g − F mit 480 Hz, mit Spulenverzögerung erster Ordnung (L/R), Stromsättigung, Messrauschen und gefilterter Ableitung. Der PID-Regler arbeitet um den Gleichgewichtsstrom i_eq = x·√(mg/C), mit Anti-Windup durch Integral-Begrenzung. Die linearisierte Analyse (stabil gdw. Kp > i_eq/x₀ und Kd > 0) lässt sich mit den Voreinstellungen live nachprüfen.
Rayleigh-Bénard-Konvektion
Eine Fluidschicht, 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: D2Q9 für die Strömung (BGK-Kollision, haftende Wände oben/unten, periodische Ränder) und D2Q5 für 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.
Masse-Feder-Tuch im Wind
Eine Fahne, die im turbulenten Wind knattert. Greifen Sie zu, ziehen Sie daran (zu stark, und sie reißt), stellen Sie Windstärke und -richtung, Schwerkraft und Steifigkeit ein … und umkreisen Sie die 3D-Szene.
Unter der Haube
Das Tuch ist ein Partikelgitter mit Abstandsbedingungen (Kette, Schuss, Scherung), integriert mit Verlet und projiziert im Stil von Position Based Dynamics. 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, die angrenzenden Dreiecke verschwinden: Risse breiten sich natürlich aus. Three.js-Rendering mit pro Bild neu berechneten Normalen.
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? Die Voreinstellung „toter Dämpfer“ lohnt sich.
Unter der Haube
Das klassische Viertelfahrzeugmodell mit 2 Freiheitsgraden: gefederte Masse (Karosserie) auf Feder ks + Dämpfer cs, ungefederte Masse (Rad) auf der Reifensteifigkeit kt, Gleichungen um das statische Gleichgewicht formuliert und semi-implizit mit 960 Hz integriert (der Reifen ist steif). Das Straßenprofil zieht mit der gewählten Geschwindigkeit unter dem Rad durch: sinusförmiges Kopfsteinpflaster, gefiltertes Value-Noise, gaußsche Bremsschwellen, Halbkosinus-Schlaglöcher. Kennwerte live: Eigenfrequenz f₀ = √(ks/ms)/2π, Dämpfungsgrad ζ = cs/2√(ks·ms), und RMS der Karosseriebeschleunigung als Komfortkriterium.
Chaotisches Doppelpendel
Zwei gelenkig verbundene Stäbe, 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, 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 Kennzeichen eines positiven Lyapunov-Exponenten. Der Graph unten zeichnet diesen Abstand in logarithmischem Maßstab, eine steigende Gerade, bis das Chaos alles dekorreliert hat.
Metronome, die sich synchronisieren
Fünf Metronome, in beliebigem Takt gestartet, auf einem Brett, 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, gemessen vom Kuramoto-Ordnungsparameter r (von 0, Unordnung, bis 1, Synchronisation), live gezeichnet.