本文へ移動

遠隔操作とセッションの再生

確認済み 2026-11-01

結果: チェックされたジョイント マッピングにより、リーダーがフォロワーを制御できるようになり、保存されたセッションはリーダーなしで再生できます。

バスを2台用意する

リーダーとフォロワー、1 – 6 ジョイント ペア、保存された空でない制限、通常の位置モード、および単位分解能に個別のシリアル アダプターを使用します。リーダーは工場出荷時のファームウェアを使用する場合があります。フォロワーには Extension v9 が必要です。

各バスには、構成された ID が正確に含まれている必要があります。リーダー トルクを事前に無効にします。ツール はリーダー に書き込みません。フォロワー設定は、レガシー書き込みを遅延させずにロックする必要があります。 構成ガイド を使用して、プロファイルと、必要に応じて重力モデルを準備します。

ファイルを設定する

macOS / Linux
cp tools/teleoperation/example.json tools/teleoperation/controller.local.json
Windows PowerShell
Copy-Item tools/teleoperation/example.json tools/teleoperation/controller.local.json

個別の leaderPort および followerPort 、ボーレート、およびすべての joints ペアを設定します。ソース例には 1 つのペアが含まれています。実際の腕に合わせて展開します。各フォロワーに、コントローラー ファイルへの相対パスを含むプロファイルを与えます。

{"leaderId": 1, "followerId": 1, "mapping": "angle", "direction": 1}

これは 1 つの joints 配列エントリであり、完全なファイルではありません。マッピングオプション:

フィールド 意味
mapping: "angle" 保存された制限の中点からのカウント変位を保持します。互換性のあるエンコーダスケールとギアを前提としています
mapping: "range" リーダーの移動の各半分を対応するフォロワーの半分にスケールし、さまざまなグリッパーに役立ちます
direction 1 または − 1
leaderMiddle、followerMiddle range のみのオプションのセンター、厳密にそれぞれの制限内

制限の中点は、参照カウント 2048 と異なる場合があります。したがって、制限が非対称である場合、キャリブレーション ポーズの一致はターゲットの一致を保証しません。ターゲットはフォロワーの制限に制限されています。

プレビューして開始

このコマンドは、設定を変更せずに、両方のバスを読み取り、マッピングをプレビューします。

macOS / Linux
npm run teleoperate -- tools/teleoperation/controller.local.json
Windows PowerShell
npm.cmd run teleoperate -- tools/teleoperation/controller.local.json

報告された位置とターゲットを物理的なセットアップと比較し、各ペアの方向を確認します。両方のメカニズムをサポートし、フォロワーがリーダーのポーズに近づくためのスペースを残します。次に、明示的に制御を開始します。

macOS / Linux
npm run teleoperate -- tools/teleoperation/controller.local.json --run
Windows PowerShell
npm.cmd run teleoperate -- tools/teleoperation/controller.local.json --run

要求された hz の範囲は 1 ~ 60 Hz で、デフォルトは 60 です。実際のレートは、バス、コンピュータ、フィードバック、ロギングによって異なります。欠落した期間は、キャッチアップ バーストで送信されるのではなく、スキップされます。同じバス上で別のコントローラーを実行しないでください。

チェック: に古いフレームやフィードバック エラーがないこと、正しい方向と予想される移動制限があること。正常に完了し、Ctrl+C はパワードホールドを保持します。重力モデルでは、完成は休息を待ちます。これがないと、モーターが最後のターゲットに向かって続行している間にプロセスが終了する可能性があります。このツールはアームを駐車ポーズに自動的に移動しません。

リーダーなしでリプレイ

ログは logs/motion/ に保存されます。プリフライト リーダー制限とその後のコマンド イベントを含むマッピングを含む SESSION.ndjson を選択します。現在のコントローラー ファイルで同じジョイント マッピングを維持します。リプレイではフォロワーのみが開きます。

macOS / Linux
npm run replay -- tools/teleoperation/controller.local.json SESSION.ndjson
Windows PowerShell
npm.cmd run replay -- tools/teleoperation/controller.local.json SESSION.ndjson
macOS / Linux
npm run replay -- tools/teleoperation/controller.local.json SESSION.ndjson --run
Windows PowerShell
npm.cmd run replay -- tools/teleoperation/controller.local.json SESSION.ndjson --run

最初のコマンドはプレビューを表示します。 2番目の動き。再生では、記録されたリーダーの位置と制限、 現在のフォロワー制限 、現在のプロファイル、および現在の重力が使用されます。歴史的な成果やモーター出力指令を再現するものではありません。記録された一時停止は残ります。処理は、キャッチアップ バーストを発行するのではなく、ストレッチ時間を遅らせます。

意図したコマンドを表すログ記録は、モーターが受け入れられたことを証明するものではありません。失敗したセッションを確認するときは、意図したコマンド、実際の送信、およびフィードバックを比較してください。


ドキュメント ホーム · ソース リビジョン: a995f77 。 Extension 9.0 。