05 ゼロ点校正(矢印キー;DIY ビルドでは必須)
サーボのゼロ点と IMU 加速度のゼロ点は工場で個体ごとにキャリブレーションして書き込み済みのため、完成品ではこのページの作業は不要です。DIY ビルドでは必ずこのページを行ってください:手組みのアームが正確に中心に収まることはほとんどありません。ホーンをファームウェアのゼロ点どおりに取り付けられなかった場合でも、ここで修正できます。矢印キーでアームを目視で垂直にジョグし、z を押して現在の姿勢を q=0 として宣言します。z コマンドは IMU を使わないため、どの姿勢でも、どのホーン歯位置でも動作します。
次の場合に戻ってきてください:ホーンの歯位置を変更した、アームを分解/再組立した、サーボを交換した、IMU を交換/再取り付けした(加速度の再キャリブレーション)、または収納後にアームが目視の中心に戻らなくなった。
zはソフトウェア上のゼロ点を移動するだけです。ホーン歯位置が可動範囲(PWM 500〜2500 µs)をどう 分割するかは変わりません。ゼロ点校正後に片方向が範囲外になる場合(パルスが 500/2500 µs で クランプされ、アームが必要なシーケンス角度に届かない場合)は、ホーンの歯位置を変更し(肩で約 2 歯)、 再度ゼロ点校正してください。
タイミング:ロボットの組立が完了し、メインファームウェアを書き込んだ後です(DIY の経路は 03 → 04 → 05 の順)。
5.1 原理
ファームウェアは q=0 を目視の中心(アーム垂直、両リンクが一直線)として定義します。z コマンドはエンコーダ式のゼロ点合わせで、現在の関節位置を q=0 にし、対応するセンターパルス幅を表示します。
5.2 手順
バッテリーと USB の両方を接続し(サーボに給電)、
SR-Supportフォルダで.venvを有効化して 次を実行します。bashpython tools/hw_shoulder_range.py先にシリアルアシスタント/モニタを閉じてください(ポートを占有します)。下のウィンドウのキーは このツールが読み取るため、シリアルアシスタントは不要です。シリアルツール / Windows 用 UartAssist のダウンロードは 03 ページ 3.3 節にあります。
4 行の固定表示がその場で更新されます。
Up/Dn=BigArm L/R=SmallArm Sh:fast z=SetCenter k=Read n=Home q=Quit SmallArm: +0.000 rad ( +0 deg) BigArm: +0.000 rad ( +0 deg)矢印キーでジョグします:
↑/↓= 大アーム ±0.05 rad、←/→= 小アーム ±0.05 rad (Shift = ±0.20)。アームが垂直で一直線に見えるまで動かします。zを押します。ファームウェアは次のように表示します。textzero set: shoulder XXXX us, elbow XXXX us (current pose is now q = 0)動作確認:
n(ホーム)を押し、少しジョグして再度ホームにします。アームは先ほど定義した目視の 中心に戻る必要があります。
5.3 書き込み(満足したら必ず実施)
z は RAM のみを変更するため、再起動すると古いゼロ点に戻ります。問題なければ:
- 2 つのパルス値を
config.hに書き込みます (SERVO_SHOULDER_CENTER_US/SERVO_CENTER_US)。 EXEC_REF*とtraining/b_line/getup_reference_b39.pyのすべてのウェイポイントを同じ オフセットでシフトします(肩/肘それぞれ −Δ rad)。- 再書き込みし、4 方向すべてを再テストします(07 ページ)。
誤って押しても問題ありません。もう一度ゼロ点校正して上書きしてください。
5.4 関連コマンド
| コマンド | 機能 |
|---|---|
z | 現在の姿勢を両関節の q=0 にする;新しいセンターパルスを表示(RAM のみ) |
k | 現在のセンターパルスを読み取る(肩/肘、µs) |
o / p | 肩センターを ±10 µs ライブトリム(再起動でリセット) |

