Skip to content

Essai GPU T1 (21 h 57) : serrage d'après le poids, pas de traction vers un torse hors d'atteinte, serrage gardé au port - #30

Merged
OS-AXIS merged 3 commits into
mainfrom
serrage-poids-t1
Nov 6, 2026
Merged

OS-AXIS merged 3 commits into
mainfrom
serrage-poids-t1

Conversation

@OS-AXIS

@OS-AXIS OS-AXIS commented Nov 5, 2026

Copy link
Copy Markdown
Owner

Essai GPU T1 du 5 novembre 2026 (21 h 57) : prise parfaite, glissement au port

Constat : prise parfaite, puis le carton glisse au port. L'OS le détecte (« le carton ne pèse plus sur les mains (3.5 N, 11.3 au levage) »), s'arrête proprement, et aucun carton ne tombe au sol. Les lignes de l'essai sont rejouées dans test/test_rejeu_port_t2157.py (test/donnees/t1_prise_20261105_2157.csv, réduit aux colonnes utiles).

Ce que disent les données

  • Poids mesuré par l'OS : 10,6 N en haut du levage, 11,1 N au plus. Le vrai poids est de 9,8 N : l'estimation est 13 % trop haute.
  • Serrage réel (juge) : 6,3 N par main.
  • Marge de frottement μ (N_G + N_D) / poids, avec μ = 0,8 : de 0,8 à 0,9 pendant le port. Le carton glisse de 6 cm dans les mains.
  • Les mains ne s'écartent pas. Les faces mesurées G et D bougent chacune de 5 cm, mais leur écart reste constant à 2 mm près : la marche balance l'ensemble mains et carton (±2,5 cm). Les valeurs 0,127 → 0,131 → 0,139 m concernent une seule main. Les angles des bras varient à peine au port (≤ 0,033 rad) : ni la posture de port ni les poignets figés n'en sont la cause.
  • La consigne qui change : la face commandée de la main droite s'est desserrée de 5 mm pendant le port, et n'a jamais été rendue. Le tangage du poignet droit porte 2,0 à 2,7 N·m, surtout à cause du poids. À chaque pointe au-delà de son plafond (2,5 N·m, la moitié des 5 N·m de l'URDF), _garder_sous_la_limite desserre d'un pas. Bilan : ~1 N de serrage perdu, pour 0,04 N·m de moins au poignet.
  • RAMENER : l'arrêt « contre le torse » à 3 N était une traction. La face arrière du carton était à 33 cm du bassin, le torse attendu à 10 cm : hors d'atteinte.

1. Serrage calculé d'après le poids

  • Réglages (ReglagesPrise) : securite_serrage = 2, frottement_serrage = 0,8 (hypothèse prudente : au banc, le frottement dynamique est de 0,8 pour le carton et 1,0 pour le caoutchouc), marge_serrage_n = 1.
  • Serrage requis par main : securite × poids / (2 μ), avec le plus grand poids mesuré depuis le début du levage. L'OS vise 1 N de plus.
  • Montée du serrage : une fois la prise confirmée, en haut du levage et avant de ramener, le serrage monte d'un pas à la fois. La face commandée peut entrer jusqu'à penetration_poids_max_m = 6 cm dans la face touchée : sur GPU, la raideur au contact est d'environ 300 N/m, et 15 N demandent ~5 cm.
  • Plafonds de couple inchangés. On ne serre plus dès qu'une articulation des deux bras est à moins de 0,3 N·m de son plafond : le serrage d'une main charge aussi l'autre, à travers le carton. Un premier jet ne regardait que le bras de la main qui serre ; le test du plafond abaissé a montré que l'autre bras dépassait alors le sien.
  • Trop lourd : si aucune main ne peut plus avancer pendant duree_serrage_poids_max_s = 3 s sous le serrage requis, le carton est reposé doucement à sa place, mains ouvertes, gains rendus. Message : « trop lourd pour ces mains (serrage insuffisant dans leurs plafonds) : il faudrait … N par main … ».
  • Carton qui cède : si les faces mesurées se rapprochent de plus de 1 cm (cede_max_m), le carton est reposé.
  • Journal : serrage d'après le poids : G … N, D … N par main pour … N de poids (requis …, visé …).
  • Couples non fiables : rien ne change, c'est le serrage en géométrie d'avant.

2. RAMENER sans traction vers un torse hors d'atteinte

Si la cible du retour ne met pas la face arrière du carton au torse, _appui_torse ne s'arrête plus sur un effort vers le robot : le carton est rapproché en position seulement. Le journal l'écrit : « … rapproché en position, sans effort vers le robot, tenu par les mains seules (torse hors d'atteinte) ». Torse atteignable : l'arrêt au toucher reste.

3. Port : la consigne garde le serrage

  • Une consigne desserrée par un plafond (pointe de couple à la marche) est rendue dès que les deux bras ont de la marge.
  • Mains écartées de plus de 5 mm de leur serrage (ecart_face_port_m), ou marge de frottement sous securite_serrage : la base s'arrête (penche) et l'on resserre, dans les plafonds.
    • L'écart se mesure sur la somme des deux mains, consigne contre mesure, avec la taille mesurée des deux côtés : le balancement s'y annule. Sur une main seule, il aurait arrêté la base en permanence (5 cm de course à chaque face).
  • Sans retour en 1 s (duree_resserrage_s) : « serrage perdu au port », à reposer. La façade arrête la base et le signale, comme pour un carton penché.
  • Correction d'inclinaison : son code ne change pas. Sa borne (_delta_max) suit le serrage d'après le poids : plafonnée à l'ancienne borne, elle aurait desserré de plusieurs centimètres.

⚠️ Ce que le rejeu prévoit pour le prochain essai : « trop lourd pour ces mains », de peu

Au point de contact, 11 cm le long de la main, le serrage charge les poignets, surtout le lacet (~0,15 N·m par newton). Pour ce carton (11,1 N mesurés), le serrage requis est de 13,9 N par main. Les poignets y seraient à 2,1 N·m en médiane et 2,6 N·m en pointe, pour un plafond de 2,5 N·m.

Rejoué sur les couples de l'essai, avec la même règle que l'OS (_marge_plafonds), le serrage s'arrête vers 13 N par main : marge de 1,9 au lieu de 2. L'OS reposerait le carton en le signalant. Si le serrage requis était atteint, le port rejoué garderait une marge de 2,15 à 2,26 tout du long.

Je n'ai touché à aucun de ces réglages ; les leviers sont les suivants, à toi de décider :

  • frottement_serrage ;
  • securite_serrage ;
  • le poids estimé, 13 % trop haut sur cet essai ;
  • la part du plafond des poignets (part_couple_garde = 0,5 pour toutes les articulations).

⚠️ Test modifié, plus permissif sur une phase : test_contact_geometrique.py (§6 et §7)

  • Avant : la consigne n'entrait jamais à plus de penetration_max_m (2 cm) + 2 mm dans la vraie face, du toucher jusqu'au port.
  • Maintenant :
    • même borne de 2 cm du toucher jusqu'à la prise confirmée en haut du levage, inchangée ;
    • ensuite (serrage d'après le poids, RAMENER, port) : au plus penetration_poids_max_m (6 cm) + 2 mm.
  • Même intention : les bornes partent des faces mesurées au toucher, quelle que soit l'erreur de perception (carton décalé de 2 ou 3 cm).
  • Plus permissif pour ces phases-là, et je le signale : sans cette borne plus profonde, le serrage demandé ne peut pas dépasser ~6 N sur GPU (2 cm × 300 N/m), et tout carton de 1 kg serait reposé « trop lourd ».
  • Le dépassement reste borné par les plafonds de couple (inchangés) et par le contrôle « le carton cède ». Le serrage d'après le poids ne s'applique jamais en géométrie (couples non fiables).
  • Si tu préfères garder 2 cm pendant tout le port, c'est un réglage (penetration_poids_max_m = penetration_max_m), et le test d'avant repasse tel quel.

Ce qui ne change pas

  • JointSafetyGuard, GardienProximite, VLAService.
  • Le critère « rien entre les mains ».
  • Les contrôles de levée, d'inclinaison et de glissement au port (_surveiller_port).
  • _garder_sous_la_limite et les plafonds de couple.
  • Les gains relevés sont rendus au dépôt, à l'échec (le carton trop lourd reposé compris, testé) et à l'arrêt d'urgence.

Tests

  • Nouveaux (ils échouent sur main) :
    • test_rejeu_port_t2157.py : le constat, les causes, et les corrections rejouées sur les lignes de l'essai ;
    • test_serrage_poids.py (robot simulé, mains du G1) :
      • serrage requis atteint avant de ramener, plafonds tenus ;
      • carton de 1,6 kg reposé, « trop lourd » ;
      • traction de 5 N vers un torse hors d'atteinte sans arrêt ;
      • consigne desserrée par un plafond puis rendue ;
      • marge sous le coefficient : base arrêtée, resserrage, reprise ; ou « serrage perdu au port » ;
      • correction d'inclinaison qui ne desserre pas ;
      • rien entre les mains toujours refusé.
  • Modifié : test_contact_geometrique.py, voir plus haut.
  • test_force_main.py §3 passe sans changement : le refus « trop lourd » contient « serrage insuffisant ».
  • Suite complète : 138 tests passés (136 + 2 nouveaux). gitleaks : aucune fuite.

À vérifier au prochain essai GPU

  • La ligne serrage d'après le poids : … ou trop lourd pour ces mains …, avec les forces obtenues.
  • Au retour : « (torse hors d'atteinte) », sans arrêt « contre le torse ».
  • Au port, s'il a lieu : port : … (resserrage) et marge_frottement.

Generated by Claude Code

…se hors d'atteinte, serrage gardé au port

Essai GPU T1 du 5 novembre 2026 (21 h 57) : prise parfaite, puis le carton
glisse au port. Serré à 6,3 N par main pour 10,6 à 11,1 N de poids mesurés,
la marge de frottement était de 0,9 ; une traction de 3 N vers un torse hors
d'atteinte ; la consigne de la main droite desserrée de 5 mm par le plafond
du poignet, jamais rendue.

- Levage : une fois la prise confirmée, l'OS serre jusqu'au serrage requis
  securite_serrage × poids / (2 frottement_serrage), visé avec
  marge_serrage_n de plus, avant de ramener. Consigne jusqu'à
  penetration_poids_max_m dans la face touchée ; plafonds de couple
  inchangés (aucune articulation des deux bras à moins de 0,3 N·m du sien).
  Bloqué sous le requis pendant duree_serrage_poids_max_s : carton reposé,
  « trop lourd pour ces mains ». Faces qui se rapprochent de plus de
  cede_max_m : « le carton cède sous le serrage », reposé.
- Ramener : torse hors d'atteinte, rapproché en position, sans arrêt sur un
  effort vers le robot.
- Port : la consigne desserrée par un plafond est rendue dès que les bras
  le permettent ; mains écartées de plus de ecart_face_port_m (somme des
  deux mains : le balancement de la marche s'y annule) ou marge de
  frottement sous le coefficient de sécurité : base arrêtée, resserrage ;
  sans retour en duree_resserrage_s, à reposer.
- La borne de la correction d'inclinaison (code inchangé) suit le serrage
  d'après le poids, pour ne jamais desserrer.

test_contact_geometrique.py : la borne de 2 cm dans la vraie face vaut du
toucher à la prise confirmée ; ensuite, celle du serrage d'après le poids.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kd65oQX59GQ8FeKBTHrWbn
…s en simulation

- test_rejeu_port_t2157.py : lignes réelles de l'essai (CSV réduit aux
  colonnes utiles). Constat (marge de frottement 0,9, carton qui glisse),
  causes (balancement des mains et du carton ensemble, consigne desserrée
  par le plafond du poignet, traction vers un torse hors d'atteinte), et
  corrections rejouées : marge au-dessus de 2 pendant tout le port si le
  serrage requis est atteint ; sur ces couples, les poignets l'arrêtent vers
  13 N par main, le carton est reposé, « trop lourd pour ces mains ».
- test_serrage_poids.py : robot simulé, mains du G1 : serrage requis
  atteint dans les plafonds, carton trop lourd reposé, pas d'arrêt sur une
  traction vers un torse hors d'atteinte, consigne rendue au port,
  resserrage ou « serrage perdu au port », correction d'inclinaison qui ne
  desserre pas, rien entre les mains toujours refusé.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kd65oQX59GQ8FeKBTHrWbn
…le rejeu

CHANGELOG et validation_port_carton.md §6 : le constat, ce qui change, et
ce que le rejeu prévoit au prochain essai (ce carton reposé, « trop lourd
pour ces mains », de peu : les poignets plafonnent vers 13 N par main pour
13,9 requis), avec les réglages qui en décident.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kd65oQX59GQ8FeKBTHrWbn
@OS-AXIS
OS-AXIS merged commit 5f22f86 into main Nov 6, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants