Engineering
Kooperativer Lasttransport
In der Rover-Halle einer Mars-Forschungsbasis bei Sonnenuntergang, das große Tor offen zum roten Regolith, tragen sechs kleine sechsrädrige Roboter, an eine große Kiste mit Solarmodulen angedockt, diese längs einer aufgemalten Linie durch eine Vierteldrehung zu ihrem Stellplatz. Die Coulomb-Reibung des Bodens verlangt mu m g, bevor sich die Kiste überhaupt bewegt; die Räder jedes Roboters geben höchstens mu_w m_r g, so dass die Zahl der benötigten Roboter auf dem Mars und auf dem Mond dieselbe ist und auf der Erde wächst, wo die Motoren begrenzen. Das Team teilt ein Regelgesetz, und jeder Roboter übernimmt seinen Anteil mit minimaler Norm: schalten Sie einen ab und sehen Sie die Kiste gieren, bis die anderen davon erfahren und seine Last übernehmen; nehmen Sie zwei weg, und das Team geht in die Sättigung und die Kiste kriecht nur. Lassen Sie einen einzelnen Roboter die leere Kiste außermittig schieben, und sie dreht sich um den Punkt auf ihrer Längsachse, den die Formel für ein gleichförmiges Rechteck vorhersagt. Jedes Joule, das die Roboter hineingeben, taucht als Wärme im Boden wieder auf.

Was passiert
Eine Kiste von 3,0 × 1,2 m und 300 kg (I = m·(L² + W²)/12 = 261 kg·m²) steht unter Marsschwere, 3,721 m/s², auf stählernen Bodenplatten mit μ = 0.4. Ihr Gewicht drückt gleichmäßig auf die Grundfläche, und die Coulomb-Reibung wirkt auf jede von 24 × 10 Zellen entgegen der eigenen Geschwindigkeit der Zelle, unterhalb ε = 2 mm/s geglättet: bevor die Kiste überhaupt gleitet, müssen die Roboter μ·m·g = 446.5 N schieben. Jeder Roboter von 40 kg ist an eine Längsseite angedockt und schiebt höchstens min(150 N, μ_w·m_r·g) = 104.2 N mit μ_w = 0.7, so dass ceil(μ·m·g/F_max) = 5 Roboter auf dem Mars und auf dem Mond nötig sind - die Traktion fällt mit g wie die Reibung - und 8 auf der Erde, wo die Motoren begrenzen. Die Bahn verläuft 6 m geradeaus, eine Vierteldrehung mit 3,5 m Radius und weitere 5 m bei 0,25 m/s mit 0,1 m/s² Beschleunigung. Das Team teilt eine PID-Dyname auf den Lagefehler (ein dreifacher Pol bei 1,2 rad/s) plus die bekannte Bodenreibung als Vorsteuerung; jeder Roboter übernimmt seinen Anteil minimaler Norm f_i = F/n + ((τ − c×F)/J)·rot90(r_i − c) über die Roboter, die das Team für aktiv hält, und alle Anteile schrumpfen gemeinsam, wenn einer seine Grenze überschreiten würde. Ein ausgefallener Roboter hört sofort auf zu schieben; die anderen erfahren davon nach der Erkennungsverzögerung. Der einzelne Schieber fährt mit 0,1 m/s gegen die Längsseite der leeren Kiste von 80 kg: quasistatisch dreht sich die Kiste um den Punkt auf ihrer Längsachse, an dem die Reibungsresultierende des gleichförmigen Rechtecks - geschlossene Integrale von ρ und w/ρ darüber - auf der Wirkungslinie des Schiebers liegt. Der Bewegungszustand schreitet nach der impliziten Mittelpunktregel fort, Newton auf dem konvexen Dissipationspotential, mit den Kräften der Roboter über jeden Regelschritt von 10 ms festgehalten, so dass die Arbeit der Roboter bis auf Rundung gleich Reibungswärme plus kinetischer Energie ist.
Zum Ausprobieren
Sehen Sie sechs Roboter die Last auf der Geraden gleichmäßig teilen und die Kiste in ihren Stellplatz tragen; lassen Sie einen Roboter ausfallen und beobachten Sie das Gieren und die neuen Anteile; versuchen Sie vier Roboter oder die Erde; wählen Sie den einzelnen Schieber und vergleichen Sie den Drehpunkt mit der Formel; verschieben Sie den Schiebepunkt.
Das Modell und seine Grenzen
Eine starre Kiste auf einem ebenen starren Boden mit gleichmäßigem Druck und unterhalb 2 mm/s geglätteter Coulomb-Reibung - eine unter ihrer Schwelle gehaltene Kiste kriecht daher mit ε·f/√(1 − f²), statt zu haften; Roboter als ideale Kraftquellen an ihren Andockpunkten (ihre eigene Masse und ihr Rollen tragen ihre eigenen Antriebe), ideale gemeinsame Lokalisierung und ein sofortiger Konsens außer der Verzögerung der Ausfallerkennung; keine Nachgiebigkeit in den Greifern, kein Durchrutschen der Räder eines Roboters auf dem Boden über seine Kraftgrenze hinaus.
Gleichungen des Moduls
Gleichungen F_fr = −Σ μ·p·ΔA·u_c/√(|u_c|² + ε²), u_c = V + Ω×r_c, pure translation: |F_fr| = μ·m·g·v/√(v² + ε²) f_i = F/n + ((τ − c×F)/J)·rot90(r_i − c), J = Σ|r_i − c|², |f_i| ≤ min(F_motor, μ_w·m_r·g) n ≥ μ·m·g/F_max, below it: v_creep = ε·f/√(1 − f²), f = n·F_max/(μ·m·g) e = ∫ρ dA/∫(w/ρ) dA + c, F_push = μ·p·∫(w/ρ) dA, W_robots = Q_friction + E_k


