メインコンテンツまでスキップ
ステージ 2 · 第 7 章 · 実践

7. サーボデバッグツールの使い方

Seeed_RoboController サーボデバッグツールを使ってサーボ状態の検出、サーボ ID の再設定、ニュートラル値の書き込み、個別サーボ制御と電圧・温度・速度・負荷・電流の読み取りを行います。

7.1 このツールの用途​

概要

7.1 このツールの用途

サーボデバッグツール(Seeed_RoboController)は、LeRobot / SO-ARM ロボットアーム向けのグラフィカルデバッグツールです。このツールで次のことができます:

  • サーボ状態の素早い検出;
  • 重複・誤ったサーボ ID の再設定;
  • ニュートラル(中間位置)値の書き込み;
  • 個別サーボの制御と、電圧・温度・速度・負荷・電流の読み取り;
  • 高度なサーボレジスタデータ・ボーレート・工場出荷時リセットの管理。

Windows・Ubuntu・Mac で動作し、アームの動作がおかしいときの最初の頼みの綱です — 再キャリブレーションや再組み立て、サーボ故障の断定の前に、まずこれで確認しましょう。

7.2 インストール​

インストール

7.2 インストール

1. リポジトリをクローン:

git clone https://github.com/Seeed-Projects/Seeed_RoboController.git

2. 依存関係をインストール。 第 5 章の LeRobot conda 環境内にインストールするのが推奨です。スタンドアロンにしたい場合は、システム Python を汚さないよう新しい仮想環境を作ってください:

pip install -r requirements.txt

3. 環境を確認。 [OK] Environment check passed と出れば準備完了です:

python setup.py

4. ツールを起動:

python -m src.gui.factory_calibration_tool

対話的なポート選択が始まります。(任意)ポートが占有されている場合は手動指定:

python -m src.gui.factory_calibration_tool --port1 /dev/ttyUSB0 --port2 /dev/ttyUSB1

7.3 サーボが正常か確認​

検出

7.3 サーボが正常か確認

まずシリアルポート選択で対応するポートを選びます。サーボ 1〜6 がすべて検出されれば、サーボは正常に認識され基本機能が動いています。

6 つのサーボがすべて検出

サーボが未検出と表示される場合:

  1. 配線が正しいか確認し、ページを閉じて開き直します;
  2. それでも未検出なら、サーボ ID が重複している可能性があります — 例えばアームのキャリブレーションコマンドを誤ってサーボ個別のキャリブレーションとして実行した場合など。この場合、それらのサーボ ID を再設定します(次節)。
サーボ未検出

7.4 サーボ ID の再設定​

ID 修正

7.4 サーボ ID の再設定

第 4 章の通り:全サーボがバスを共有するため、ID の書き込みはその ID を持つすべてのサーボに影響します。そのため、他のサーボをすべて外し、1 個ずつ再設定する必要があります。

ステップ 1 —— サーボ間のワイヤハーネスを外す。グリッパからベースに向かって順に:

サーボ 6 と 5 の間を切断
サーボ 1 と制御ボードの間を切断

ステップ 2 —— 1 個ずつ接続。 制御ボードには 1 個のサーボだけを接続します。例えば下図のように 6 番サーボをドライバーボードに接続します — 他のサーボも同様なので、アームを分解せずに ID を直せます。

単一サーボを制御ボードに接続

ステップ 3 —— ID を書き戻す。 下の例では 4 番サーボだけが認識されていますが、実際に接続しているのは 6 番 — ID が間違っており、6 に戻す必要があります。

誤った ID を検出

4 番サーボをクリックし、ID を 6 に変更します。他のサーボも同様に繰り返します。

サーボ ID を書き換え

サーボ ID の修正が終わったら、ワイヤを 1 本ずつ挿し戻して完了です。

7.5 サーボにニュートラル値を書き込む​

ニュートラル

7.5 サーボにニュートラル値を書き込む

ニュートラル(中間)位置は、後のすべてのキャリブレーションの基準となる「まっすぐ」の姿勢です — 内部的には値 2048 に対応します。

参考ニュートラル姿勢
  1. シリアルポート ニュートラルテストをクリックし、アームのニュートラル位置が上の参考とおおむね一致するか確認します。一致していればニュートラル値は正常です;
  2. 一致しない場合は、アームをニュートラル位置に動かしてシリアルポート ニュートラルキャリブレーションをクリック — 現在位置がニュートラル値としてサーボに書き込まれます;
  3. シリアルポート モーター無効化をクリックするとアームは脱力します — 手で支えてください。
ニュートラルテストとキャリブレーションのボタン
ヒント

これは LeRobot のエラー Magnitude 30841 exceeds 2047 (max for sign_bit_index=11) の解決策でもあります:このメッセージはサーボのゼロオフセット異常を意味します。ここで中間位置キャリブレーションを行い(または同リポジトリの servo_middle_calibration.py スクリプトを使用)、第 10 章でアーム全体のキャリブレーションをやり直してください。

7.6 個別サーボ制御とステータス​

制御

7.6 個別サーボ制御とステータス

ページ上の全サーボはデフォルトでニュートラル位置にあります。

全サーボがニュートラル

1. トルクを有効にして 1 個のサーボを動かす。 ワンクリックで全トルクを有効化、または単一サーボを有効化し、スライダーで動かします。ゆっくり動かすこと:プリント部品が特定の位置で物理的に干渉するため、スライダーを 0 や最大まで動かさないでください。トルクを無効にするとアームは脱力します。

トルク有効化後にサーボが移動

2. サーボ単位のメンテナンス。 単一サーボのニュートラルキャリブレーションや、内部のニュートラル・最大・最小位置のクリアができます。

3. サーボステータスパネルの読み方:

項目意味
Pos位置
V電圧
T温度
Spd速度
Loadトルク
Cur電流
Mov動作状態
Model型番、権限
Status正常 / 過電流 / 過負荷

長時間のテレオペレーション後、フォロワーの温度が負荷とともに上がるのは正常です。静止時に 過電流 過負荷 が続く場合は、関節の引っかかりかニュートラル値の誤りの可能性が高いです。

7.7 高度なツール​

高度

7.7 高度なツール

さらに深いデバッグでは、生のレジスタデータの読み書き、ボーレートの変更、工場出荷時設定への復元が可能です。

高度なツールパネル
警告

レジスタへの書き込みや工場リセットは、闇雲に行うとサーボ設定を使えなくする恐れがあります。ガイド付き機能(7.3〜7.6 節)を優先し、生レジスタは意味を明確に把握している場合のみ触ってください。

7.8 まとめ​

まとめ

7.8 まとめ

  • サーボデバッグツールはサーボバスのメンテナンスコンソール:検出、ID 修正、ニュートラル設定、単独制御、ステータス読み取り;
  • サーボ ID は常に「接続した 1 個のサーボ」ずつ書き込みます;
  • 正しいニュートラル値(2048)は、その後のすべてのキャリブレーションの基盤です。

両アームの組み立てが済み、全サーボの検証が終われば、ステージ 2 は完了です。ステージ 3 は「ロボットアームはなぜ学習を必要とするのか」の説明から始まり、続いて SO-ARM でデータ収集とポリシー訓練を行います。

Loading Comments...