🧪 新しいチュートリアルを公開中 — ロボットアームからセンサーまで
コンテンツへスキップ

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 手順 ​

  1. バッテリーと USB の両方を接続し(サーボに給電)、SR-Support フォルダで .venv を有効化して 次を実行します。

    bash
    python 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)
  2. 矢印キーでジョグします:↑/↓ = 大アーム ±0.05 rad、←/→ = 小アーム ±0.05 rad (Shift = ±0.20)。アームが垂直で一直線に見えるまで動かします。

  3. z を押します。ファームウェアは次のように表示します。

    text
    zero set: shoulder XXXX us, elbow XXXX us (current pose is now q = 0)
  4. 動作確認:n(ホーム)を押し、少しジョグして再度ホームにします。アームは先ほど定義した目視の 中心に戻る必要があります。

5.3 書き込み(満足したら必ず実施) ​

z は RAM のみを変更するため、再起動すると古いゼロ点に戻ります。問題なければ:

  1. 2 つのパルス値を config.h に書き込みます (SERVO_SHOULDER_CENTER_US / SERVO_CENTER_US)。
  2. EXEC_REF* と training/b_line/getup_reference_b39.py のすべてのウェイポイントを同じ オフセットでシフトします(肩/肘それぞれ −Δ rad)。
  3. 再書き込みし、4 方向すべてを再テストします(07 ページ)。

誤って押しても問題ありません。もう一度ゼロ点校正して上書きしてください。

5.4 関連コマンド ​

コマンド機能
z現在の姿勢を両関節の q=0 にする;新しいセンターパルスを表示(RAM のみ)
k現在のセンターパルスを読み取る(肩/肘、µs)
o / p肩センターを ±10 µs ライブトリム(再起動でリセット)

← チュートリアル目次に戻る