Up MCU の調整 作成: 2026-06-02
更新: 2026-06-02


    歩行 NN (Jetson / FPGA) とロボット身体との通信は,MCU (STM32 / C2000) がインタフェースとして中継する。

      センサ 
       ↓
      MCU (NN入力用モジュール) 
       ↓
       NN 
       ↓(トルク指令)
      MCU (NN出力用モジュール)
       ↓(電流制御)
      モータ


    仮想現実で訓練された NN の Reality Gap は,MCU の調整で埋めていくことになる。
    即ち,MCU の調整で,つぎの事態を解決する:
      実機でのセンサ値は,MCU が変換して,NN に入力する。
      センサ値にはノイズがあるが,ノイズも MCU にとってはデータのうちである。
      そして,センサ値は遅延して NN に入ることになる。
      この結果,NN は間違ったトルクを,「最適解」 として出力する。
      MCU は,さらにこれを丸めて出す。
      ここにも,遅延が生ずる。
      そして,モータがこれに遅れて反応。
      結果は,ロボットがバランスを崩して転倒。


    ① 遅延(Latency)
    入出力共通の遅延
      通信に遅延
      MCU の制御周期(1ms)
      NN (Jetson) の推論時間(5〜20ms)

    入力に関するその他の遅延
      センサ値の読み取りで,遅延
      NN が処理する「今の状態」は,数ミリ秒前の状態

    出力に関するその他の遅延
      モータの応答遅れ


    ② ノイズ(Noise)
    入力
      IMU(姿勢センサ)はノイズだらけ
      足裏の接地判定は誤差が大きい
      これが MCU を経て NN に入る

    出力
      NN の運動系への指令は,そのままでは通用しない
      モータは熱で特性が変わる
      地面は滑る・柔らかい・傾いている


    ③ 帯域幅(Bandwidth)
    NN と MCU の通信は,主に CAN バス で行われる。
    CAN 通信は 1Mbps 程度
       I2C は遅い
       Wi-Fi は不安定

    CAN 通信の特徴:
      帯域幅:1Mbps 程度
      遅延:0.5〜1ms
      パケットは小さい(8バイト)
      信頼性が高い
      自動車でも使われる堅牢な規格

    そしてこの場合:
      遅延がある
      ノイズが乗る
      NN のトルク指令が丸められる
        たとえば,「トルク 0.1234 Nm」 は,
        MCU が「0.12 Nm」に丸めてしまう
      MCU が安全制御で勝手に制限する


    註:「帯域幅」
    通信速度の表現としての 「クロック数」 に対し,「帯域幅」 のことばが使われることがある。
    通信速度は 「単位時間あたりの通信量」 であり,そして
      「情報単位の移動速度が同じなら,
      帯域幅が広い方が,通信量が多い」
    からである。
    「帯域幅」 の語のこの使い方は間違いであるが,既に常用されている。
    ここでは,この 「常用」 に倣ってみた。