Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#734 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
42/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
python
領域
robotics

調査の方向性

まず rebot_devarm_leader の実装と既存の probe サブコマンドを特定し、次にキャリブレーションファイルが各ジョイントの sign と offset_rad の値をどのように保存しているかを追跡します。ラップされたグリッパーの証拠と既存の B601 リカバリ動作を使って、ガイド付きの閉じて確認するフロー、永続化、および follower の規約チェックを定義します。calibrate がゼロ点と方向を測定し、キャリブレーション値を書き込み、規約の不一致を明確に拒否すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Python
スター
412
フォーク
97
平均マージ
2日 3時間
マージ済み PR(30日)
141

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

NVIDIA/IsaacCapture のほかの issue

NVIDIA/IsaacCapture の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。