XGO-Duck の関節には、Feetech のシリアルサーボ HD-1910 を15個使います。シリアルサーボは1本の信号線に複数をつなぎ、ID で区別して動かします。組み立ての前に、すべてのサーボに正しい ID を設定しておく必要があります。
HD-1910 の仕様
| 項目 | 内容 |
|---|---|
| 型番 | HD-1910-C001(HD1910M) |
| 外形 | 34 × 20 × 23 mm |
| 質量 | 21 ± 2 g |
| 動作電圧 | 4〜8.4 V |
| コネクター | AMP2.0-3P |
HD-1910 は、5個から扱っています(1個あたり3,500円・予約受付中)。
ID の割り当て
| ID | 関節 |
|---|---|
| 10〜14 | 左脚 |
| 20〜24 | 右脚 |
| 30〜33 | 首と頭 |
| 34 | 口 |
ランタイムの準備
ID の設定とキャリブレーションには、陸吾(LuwuDynamics)の公式ランタイム xgoduck_runtime_arduino を使います。GitHub の「Code」→「Download ZIP」で zip をダウンロードし、Arduino App Lab の「Apps」横の+から「Import App」で読み込んで「Run」を押します。
新しい UNO Q では、最初に1回だけ準備が必要です(README の「First-time board setup」)。ライブラリのダウンロードが終わったらアプリを止め、App Lab のターミナルでプロジェクトのフォルダに移って、次の2つを実行してから、もう一度「Run」を押します。
python3 tools/prepare-bridge.py
sudo bash tools/router-2m.sh
ブラウザで http://<UNO Q の IP アドレス>:9527 を開くと、ランタイムの画面が表示されます。画面は英語です。以下では、ボタン名を画面の表記のまま書いています。
ID の設定手順
「Servo setup」を開きます。ID を変えるときは、サーボを1つだけつないでください。ID が重複すると、同じ書き込みが複数のサーボに届いてしまいます。
- 「Scan all IDs」を押します。ID 0〜253 を探し、見つかった ID(新品のサーボは ID 1)が表示されます。それを押して選びます。
- 「Change ID to」に新しい番号を入れ、「Change ID」を押します。「ID 1 → 14 · verified」のように表示されたら、もう一度スキャンして新しい ID を選びます。
- 「Set KP/KD」は初期値の 5 と 10 のまま「Set KpKd」を押し、「Read」で KP 5・KD 10 になったことを確かめます。
- サーボ本体に ID のラベルを貼り、次のサーボに進みます。
関節の中心合わせ(「Reset Mid」と同じ命令)は、組み立てたあとの「Calibration」でまとめて行います。
「All-servo voltage / overcurrent protection」では、保護の有効・無効(Enable / Disable)と保護電流(入力欄の初期値 1.5 A、「Set protection current」)を、つながっている全サーボにまとめて設定できます。
キャリブレーション
組み立てが終わったら、ロボットを支えた状態で「Calibration」を開きます。
- 画面を開くと、すべてのサーボの力が抜けます。
- 関節を1つずつ手で機械的な中心に合わせ、その ID の「Set center & hold」を押します。押した関節だけが中心(2048)で止まり、行が緑になります。
- 15個すべてで繰り返します。「Unload all」で全関節の力を抜いて、合わせ直すこともできます。
- 「Exit」で終了します。終了するとまた力が抜けるので、支えたままにします。「Control」の「Default pose」で立ち姿勢を確かめます。
中心はサーボ本体に書き込まれます。以前のランタイムにあった data/zero_pos.json は、現在のランタイムにはありません。
注意点
- テストや調整のときは、サーボをストール(動きを止められた状態)にしないでください。
- キャリブレーションや初めての動作は、ロボットを支えた状態で行います。トルクオフにすると機体が崩れます。
- 異常な動き、引っかかり、発熱があれば、すぐに止めて原因を確認してください。
