Engineering
Transport coopératif par robots
Dans le hangar à rovers d’une base de recherche martienne au coucher du soleil, sa grande porte ouverte sur le régolithe rouge, six petits robots à six roues arrimés à une grande caisse de panneaux solaires la portent le long d’une ligne peinte, à travers un quart de tour, jusqu’à sa baie. Le frottement de Coulomb du sol exige mu m g avant que la caisse ne bouge le moins du monde ; les roues de chaque robot donnent au plus mu_w m_r g, si bien que le nombre de robots nécessaires est le même sur Mars et sur la Lune et augmente sur Terre, où les moteurs limitent. L’équipe partage une seule loi de commande et chaque robot prend sa part de norme minimale : coupez-en un et regardez la caisse partir en lacet jusqu’à ce que les autres l’apprennent et reprennent sa charge ; retirez-en deux et l’équipe sature et la caisse ne fait que ramper. Laissez un seul robot pousser la caisse vide hors de son centre et elle tourne autour du point de son grand axe que prédit la formule fermée pour un rectangle uniforme. Chaque joule fourni par les robots réapparaît en chaleur dans le sol.

Ce qui se passe
Une caisse de 3,0 × 1,2 m et 300 kg (I = m·(L² + W²)/12 = 261 kg·m²) repose sur des plaques de sol en acier avec μ = 0.4 sous la gravité martienne, 3,721 m/s². Son poids presse uniformément sur l’empreinte, et le frottement de Coulomb agit sur chacune des 24 × 10 cellules à l’opposé de la vitesse propre de la cellule, lissé sous ε = 2 mm/s : avant que la caisse ne glisse le moins du monde, les robots doivent pousser μ·m·g = 446.5 N. Chaque robot de 40 kg est arrimé à un grand côté et pousse au plus min(150 N, μ_w·m_r·g) = 104.2 N avec μ_w = 0.7, si bien que ceil(μ·m·g/F_max) = 5 robots sont nécessaires sur Mars et sur la Lune - la traction baisse avec g comme le frottement - et 8 sur Terre, où les moteurs limitent. Le trajet compte 6 m en ligne droite, un quart de tour de 3,5 m de rayon et encore 5 m à 0,25 m/s avec 0,1 m/s² d’accélération. L’équipe partage un torseur PID sur l’erreur de pose (un pôle triple à 1,2 rad/s) plus le frottement connu du sol en anticipation ; chaque robot prend sa part de norme minimale f_i = F/n + ((τ − c×F)/J)·rot90(r_i − c) sur les robots que l’équipe croit actifs, et toutes les parts diminuent ensemble quand l’une dépasserait sa limite. Un robot en panne cesse aussitôt de pousser ; les autres l’apprennent après le délai de détection. Le pousseur seul avance contre le grand côté de la caisse vide de 80 kg à 0,1 m/s : de façon quasi statique, la caisse tourne autour du point de son grand axe où la résultante du frottement du rectangle uniforme - intégrales en formule fermée de ρ et de w/ρ sur celui-ci - se trouve sur la ligne du pousseur. Le torseur cinématique avance par la règle du point milieu implicite, Newton sur le potentiel de dissipation convexe, avec les forces des robots tenues sur chaque pas de commande de 10 ms, si bien que le travail des robots égale la chaleur de frottement plus l’énergie cinétique à l’arrondi près.
À essayer
Regardez six robots se partager la charge à parts égales en ligne droite et porter la caisse dans sa baie ; faites tomber un robot en panne et regardez le lacet et les nouvelles parts ; essayez quatre robots, ou la Terre ; choisissez le pousseur seul et comparez le centre de rotation avec la formule fermée ; déplacez le point de poussée.
Le modèle et ses limites
Une caisse rigide sur un sol plan et rigide avec une pression uniforme et un frottement de Coulomb lissé sous 2 mm/s - une caisse tenue sous son seuil rampe donc à ε·f/√(1 − f²) au lieu d’adhérer ; robots en sources de force idéales à leurs points d’arrimage (leur propre masse et leur roulement sont pris en charge par leurs propres entraînements), localisation partagée idéale et consensus instantané hormis le délai de détection des pannes ; aucune souplesse dans les pinces, aucun patinage des roues d’un robot sur le sol au-delà de sa limite de force.
Équations du module
Équations 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


