🧪 新しいチュートリアルを公開中 — ロボットアームからセンサーまで
コンテンツへスキップ

ステージ2:ハンドとアームのキャリブレーション(Windows) ​

本ステージでは 3 つのデバイスをキャリブレーションします:リーダーアーム、フォロワーアーム、AmazingHand ハンド。キャリブレーションは遠隔操作の正確性の前提であり、本ステージを完了しないと遠隔操作に進めません。

キャリブレーション順序:リーダーアーム → フォロワーアーム+ハンド → ハンド角度。各ステップでターミナル対話(物理操作 + キー入力)が必要です。

⚠️ 共通の注意:本ページのコマンド内のシリアルポート引数は例示のプレースホルダーであり、必ずあなたのマシンの実際の COM 番号に置き換える必要があります(ステージ1 で記録したシリアルポートを参照)。


前提条件 ​

  • ステージ1:環境構築 を完了している

  • conda 環境 lerobot が有効化されている

Plain
# 環境の有効化
conda activate lerobot

# lerobot に移動
cd ../lerobot
  • 3 台のデバイスのシリアルポートを記録済み

  • デバイスに電源を投入済み、独立給電


ステップ 1:リーダーアームのキャリブレーション ​

PowerShell
lerobot-calibrate --teleop.type=so101_leader --teleop.port=<leader_arm_com> --teleop.id=amazing_hand_leader

<leader_arm_com> をあなたのマシンの実際の COM 番号に置き換えてください(例 COM54)。

操作手順:

  1. リーダーアームのすべての関節を中間位置に移動し、Enter を押す

  2. 各関節を順に最大/最小範囲まで動かし、完了したら Enter を押す

検証:キャリブレーションファイルは自動的に以下に保存されます C:\Users\<ユーザー名>\.cache\huggingface\lerobot\calibration\teleoperators\so_leader\amazing_hand_leader.json

⚠️ 注意 1(グリッパーは必須):6 番グリッパーサーボの範囲が gripper.pos(0~100)の正規化基準となります。グリッパーは必ず全開から全閉まで動かし、確実にキャリブレーションしてください。そうしないと後続のハンド開閉比率が歪みます。

⚠️ 注意 2(自由回転):キャリブレーション時はアームが自由に回転できる必要があります。サーボが無負荷であることを確認してください。

⚠️ 注意 3(キャリブレーションファイルの場所):Windows ではパスはユーザーディレクトリ %USERPROFILE%\.cache\huggingface\lerobot\calibration\ です。


ステップ 2:フォロワーアームのキャリブレーション(ハンドを同時接続) ​

PowerShell
lerobot-calibrate --robot.type=so101_amazing_hand --robot.port=<follower_arm_com> --robot.hand_port=<hand_com> --robot.id=amazing_hand_follower

<follower_arm_com> / <hand_com> を実際の COM 番号に置き換えてください(例 COM58 / COM11)。

操作手順:

  1. フォロワーアームの5 つの関節(6 番なし)を中間位置に移動し、Enter を押す

  2. 各関節を全行程動かし、Enter を押す

検証:キャリブレーションファイルは以下に保存されます C:\Users\<ユーザー名>\.cache\huggingface\lerobot\calibration\robots\so101_amazing_hand\amazing_hand_follower.json

⚠️ 注意 1(ハンドトルクの自動有効化):このコマンドは接続時に8 つのハンドサーボのトルクを自動的に有効化します(ログに enabling AmazingHand torque と表示されます)。キャリブレーション終了時にハンドが開くのは正常な現象です。

⚠️ 注意 2(ハンド GUI は表示されない):ハンド角度は lerobot の RangeFinderGUI を使用しません。フォロワーアームのキャリブレーションが終われば完了です。ハンド角度にはステップ 3 の専用ツールを使用します。

⚠️ 注意 3(シリアルポートの占有):このステップはハンドのシリアルポートを占有します。該当シリアルポートを占有する他のプロセスを同時に実行しないでください。


ステップ 3:ハンド角度 + グリッパー方向のキャリブレーション(専用 GUI) ​

PowerShell
lerobot-calibrate-amazing-hand --hand_port <hand_com> --leader_port <leader_arm_com>

<hand_com> / <leader_arm_com> を実際の COM 番号に置き換えてください(例 COM11 / COM54)。--leader_port はグリッパー方向を同時にキャリブレーションするために使用します(下記参照)。

GUI 操作:

  1. 4 本の指のスライダー(index/middle/ring/thumb)をドラッグし、ハンドを完全に開いた状態にして Save Open をクリック

  2. スライダーをドラッグしてハンドを完全に握り込んだ状態にし、Save Close をクリック

  3. リーダーアームのグリッパーを開き、Capture Open をクリック(GUI は gripper.pos をリアルタイム表示します。開いたときは 100 に近いはずです)

  4. リーダーアームのグリッパーをつまみ、Capture Close をクリック(つまんだときは 0 に近いはずです)

  5. 自動保存:上記 4 つの値をすべて設定すると、ウィンドウ上部に緑色のバナー AUTO-SAVED to ...\hand_angles.json が表示され、ターミナルにもパスが出力されます

  6. ウィンドウを閉じる(ハンドのトルクが自動的に解除されます)

検証:角度とグリッパーのマッピングは以下に保存されます C:\Users\<ユーザー名>\.cache\huggingface\lerobot\calibration\robots\so101_amazing_hand\hand_angles.json

⚠️ 注意 1(必ずキャリブレーション):新しい PC/新しいハンドごとに本ステップを実行する必要があります。config 内の角度は AmazingHand 公式の汎用デフォルトで、あくまでフォールバックです。hand_angles.json が存在する場合はあなたの実測値が優先して読み込まれます。キャリブレーションしないと開閉方向/範囲が誤る可能性があります。

⚠️ 注意 2(自動読み込み):ロボットは起動のたびに hand_angles.json(gripper_open_pos/gripper_close_pos を含む)を読み込み、config のデフォルト値を上書きします。コードを変更する必要はありません。グリッパー方向はリーダーアームによって異なるため、一度キャリブレーションすれば済みます。

⚠️ 注意 3(スライダーの意味):スライダーを + 方向に動かすと、その指の m1 は +angle に、m2 は -angle に動きます(ミラー)。ハンドの実際の姿勢で開き/握りを判断し、角度の数値は気にしなくて構いません。

⚠️ 注意 4(正確なキャリブレーション):キャリブレーションは"完全に開く"際に過度にしないこと(指の歪み/開きすぎ)、"完全に握る"際に過度に押し込まないこと(サーボが継続的に加圧)。そうしないと遠隔操作時に開閉が行き過ぎます。

⚠️ 注意 5(Capture の順序):Capture Open / Capture Close はリーダーアームのグリッパーの開閉に対応し、ハンドの指ではありません。ハンドの開く方向が逆の場合は、たいていここで逆にキャリブレーションしたかハンド角度を逆にキャリブレーションしたためで、再キャリブレーションすれば直ります。

⚠️ 注意 6(GUI が開かない):pygame(amazinghand extra に含まれる)がインストールされているか確認してください。それでも開かない場合は、グラフィカルデスクトップ環境があるか確認してください。


再キャリブレーション ​

一部だけ再キャリブレーションしたい場合:

  • ハンドだけ再キャリブレーション → ステップ 3 のみ実行

  • フォロワーアームだけ再キャリブレーション → ステップ 2 のみ実行(ついでにハンドトルクも有効化されます)

  • すべて再キャリブレーション → ステップ 1 → 2 → 3

⚠️ 注意:ステップ 2 とステップ 3 は同時に実行できません(どちらもハンドのシリアルポートを占有します)。


本ステージを完了したら、ステージ3:遠隔操作 に進みます。


トラブルシューティング ​

現象原因解決
リーダーアームのキャリブレーションで 2307 型番エラーアームバスが汚染/シリアルポート競合
ハンドのシリアルポートを同時接続していないことを確認;本プロジェクトのハンドは rustypot 経由のため回避済み
キャリブレーション時にハンドの GUI が表示されない誤ったコマンドを使用必ず lerobot-calibrate-amazing-hand を使用する(lerobot-calibrate ではない)
ハンドドライバが Operation timed out を報告シリアルポートがビジー/タイミングハンドのシリアルポートが占有されていないことを確認し、再試行
キャリブレーションファイルが見つからないパスが違う
%USERPROFILE%\.cache\huggingface\lerobot\calibration\ を確認
シリアルポートが開けないCOM 番号が誤りlerobot-find-port で再確認