本文へ移動

制御パラメーターの調整と検証

確認済み 2026-11-01

結果: は、1 つの成功した動きではなく、測定された基準に対する設定を受け入れます。まず、キャリブレーション、初期動作パス、プロファイル、および重力モデルを検証します。

1. 基本計画を準備する

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

tools/tuning/plan.local.json で、 config を controller.local.json に、 stage を baseline に、 candidates を [] に設定します。ソース例には PID 候補が含まれています。ベースライン測定として変更せずに実行しないでください。

コントローラーのポートとプロファイルを設定し、以下を含めますすべてのサポートモーターでjointsとして{"followerId": ID}。コピーしたものを削除するdurationMs: 計画のbatch.maxDurationMs期間予算を所有します。

計画フィールド 走る前の決断
probeId 動かすモーター
poses.screen、poses.validate スクリーニングと検証のために許可されるさまざまなエンドポイントのペア。物理的な位置を確認せずにサンプルカウント 2000 / 2050 をコピーしないでください。
motion.speeds 検討した負荷に適した速度
limits エラー、温度、電圧制限のフォロー/サポート
acceptance エラー、オーバーシュート、セトリング、飽和の基準
batch リピート、保留期間、総予算

位置は補正されたエンコーダ数です。再キャリブレーション後は、同じ数字が異なる物理位置を表す場合があります。サポートジョイントは既存のホールドターゲットを維持します。このツールはアーム全体の位置を自動的に変更しません。

2. 3 つのコマンドを分離します。

ファイルを検査し、 を接続せずに を使用するバスを推定します。

macOS / Linux
npm run tune -- inspect tools/tuning/plan.local.json
Windows PowerShell
npm.cmd run tune -- inspect tools/tuning/plan.local.json

モーターを変更せずにファームウェア、キャリブレーション、制限、プロファイル を読み取る :

macOS / Linux
npm run tune -- preflight tools/tuning/plan.local.json
Windows PowerShell
npm.cmd run tune -- preflight tools/tuning/plan.local.json

動作 を使用してバッチ を実行します。

macOS / Linux
npm run tune -- run tools/tuning/plan.local.json
Windows PowerShell
npm.cmd run tune -- run tools/tuning/plan.local.json

プリフライトで、予期せずクリップされたターゲット、モデル エラー、または 1 つの位置に折りたたまれたエンドポイント ペアが明らかになった場合は、実行しないでください。バッチは probeId を移動します。他のモーターは、見直した支持姿勢を保持する必要があります。

3. 順番にチューニングする

  1. ベースライン: 候補のない の最初の動きとホールド。再現性を確立し、アラームを調査します。
  2. 重力: ポーズ、方向、少なくとも 2 つの速度にわたってモデルをチェックします。この段階では、ゲインを変更せずにデータを収集します。
  3. 速度: は、定常的な動きを使用した方向性フィードフォワードを比較します。
  4. PID : 負荷全体にわたる P、D およびフィルタリングを比較します。発振を明らかにするには、より長いホールドを使用します。
  5. Integral: は永続的なエラーの場合にのみ導入されます。小さな反転を含めて、ゲインとリミットを一緒にテストします。
  6. モーション: は、加速度とランプ時間を比較する際にゲインを固定します。
  7. 組み合わせモーション: 腕全体のパスを再生します。単独の関節調整では、連動した動きは検証されません。
  8. 検証: 設定を凍結し、必要な速度、加速度、ペイロード、拡張ホールドを確認します。

ステージにより候補フィールドが制限されます。ベースライン、重力、および検証では設定は変更されません。合計出力制限は、自動的に調整されるのではなく、明示的に設定されたままになります。

4. 結果の解釈

各 tools/tuning/logs/<run>/ ディレクトリには、 events.ndjson および summary.json が含まれます。完了ステータス、バッチ前後のベースライン、独立した検証ペア、およびすべての合格基準を確認します。不完全または失敗したバッチには推奨事項はありません。ベースラインのドリフトにより、比較が決定的ではなくなる可能性があります。

メトリクスには、移動追跡 RMS、定常誤差とスパン、オーバーシュート、整定時間、合計応答時間、飽和率が含まれます。セトリングには帯域内で連続した間隔が必要です。早めの横断では不十分です。短いホールドでは、低速振動が存在しないことを確認できません。

正常終了時は設定済みの基準設定に戻り、位置保持を継続します。調整中の Ctrl+C は、Extension 再生とは異なり、トルクの無効化を試みます。中断する前に機構を支えてください。プロセスの強制終了やバスの切断では、それまでの位置保持が継続する場合があります。

5. 受け入れた設定を保存する

このツールは、優勝候補を自動的にインストールしません。レビュー後、ローカル プロファイルを更新し、キャリブレーション、モデル、ペイロード/取り付けの詳細、検証ログとともに保管します。以下のエクスポートでは、最初のモーション ガイドの名前付きポーズ コントローラーを使用します。プロファイルを受け入れられた値に更新します。 apply を使用するには、まずこのトップレベルの joints プロパティを tools/poses/controller.local.json に追加し、物理的な腕に一致するように ID を調整します。

"joints": [
  {"followerId": 1}, {"followerId": 2}, {"followerId": 3},
  {"followerId": 4}, {"followerId": 5}, {"followerId": 6}
]

これはプロパティのフラグメントであり、完全な JSON ファイルではありません。ファイルと隣接するプロパティの間にカンマを追加します。モーターに接続せずに新しいディレクトリにエクスポートします。

macOS / Linux
npm run tune -- export tools/poses/controller.local.json accepted-controller
Windows PowerShell
npm.cmd run tune -- export tools/poses/controller.local.json accepted-controller

まだ存在しないディレクトリを使用してください。エクスポートでは設定が保証されません。エクスポートされたコントローラーをリプレイなしで適用するには、すべてのフォロワーに対して joints が含まれている必要があります。このコマンドは制御を変更し、ホールドを有効にします。

macOS / Linux
npm run tune -- apply accepted-controller/controller.json
Windows PowerShell
npm.cmd run tune -- apply accepted-controller/controller.json

プロファイルを変更すると、トルクが一時的に解放される場合があります。通常の再生では独自の構成が適用されるため、別の apply コマンドは必要ありません。


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