Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

rebot_devarm_leader: add a 'calibrate' subcommand to measure sign/offset_rad (leader/follower zeroing is never cross-verified)

Aperta
#734 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
42/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
robotics

Direzione di ricerca

Inizia individuando l’implementazione di rebot_devarm_leader e il relativo sottocomando probe esistente, quindi segui il modo in cui il file di calibrazione memorizza i valori sign e offset_rad per ogni giunto. Definisci il flusso guidato di chiusura e conferma, la persistenza e il controllo della convenzione del follower usando le evidenze del gripper avvolto e il comportamento di recupero B601 esistente. Il lavoro è completato quando calibrate misura lo zero e la direzione, scrive i valori di calibrazione e rifiuta esplicitamente una mancata corrispondenza della convenzione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Context

The rebot_devarm_leader calibration file format supports sign and offset_rad per joint — but no tool measures them. The leader's zero comes from the vendor/motor flash (Damiao) while a follower's zero is set manually in its own calibration flow: two zeroing procedures that nothing cross-verifies. Any constant delta or sign flip between them appears directly as a command at t=0.

Evidence

  • A physically closed gripper read +6.227 rad (i.e., −0.056 + 2π) after a power cycle — the Damiao multi-turn counter is volatile, and with 6.8 rad of travel (> 2π) the reading is ambiguous in software (modulo folding is unrecoverable). Confirmed via two independent decode paths (C++ plugin probe and the motorbridge Python stack).
  • Commanding "open" from the wrapped branch drove ~13 rad into the mechanical stop and silently latched over-temperature faults (0xC) in the firmware.
  • PR #729 added wrap detection (probe exit code 3; per-joint valid=false streaming) — but detection without a measurement/recovery flow still leaves the operator stranded.

Proposal

Add a calibrate subcommand next to probe:

  1. Guided flow ("fully close the gripper and press ENTER") measures the actual zero and direction,
  2. Writes sign/offset_rad to the calibration file,
  3. Optionally cross-checks against the follower's convention and errors out loudly on mismatch instead of letting the first teleop frame slam.

Precedent: the same measure-don't-assume approach fixed the mirrored-gripper class in LeRobot (huggingface/lerobot#3942 → measured drive_mode in calibrate(), following the OMX fix in huggingface/lerobot#2815).

On our side, the B601 daemon now refuses /enable on a wrapped gripper and offers POST /rehome_gripper (close-until-stall) — verified live on hardware. The plugin-side calibrate would make that recovery generic.


Part of the field-integration feedback series (SO-101 + reBot DevArm, June 29 – July 6). Priority suggestion: P1.

Lingua principale
Python
Stelle
403
Fork
94
Merge medio
2g 17m
PR unite (30g)
121

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di NVIDIA/IsaacCapture

Tutte le issue di NVIDIA/IsaacCapture

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.