Up 作成するストア 作成: 2026-09-22
更新: 2026-10-01

4足歩行ロボット > 自律型> コンピュータ > プログラミング > 作成プログラム一覧

    実現しようとするデータの流れは,

     ┌─────────────────────┐
     │        歩行脳NN        │
     │     ┌→  ストア ─────┐  │
     │     │          目標電流値│
     │     │←───────────┤  │
     │  ┌──┼─┬────┐     │  │
     │視覚NN 移動覚NN 接地覚NN  │  │
     │ ストア  ストア   ストア   │  │
     │  ↑    ↑    ↑     │  │
     │ カメラ   │    │     │  │
     │ ストア   │    │     │  │
     │  ↑    │    │     │  │
     └──┼────┼────┼─────┼──┘
        │    │I2C │     ↓I2C 
        │  ┌─┼────┼─┐ ┌─┼─┐
        │  │ │    │ │ │ ↓ │
        │  │IMU  接地セ│ │モータ│
        │  │ストア  ストア│ │ストア│
        │  │ ↑    ↑ │ │ │ │
        │  └─┼────┼─┘ └─┼─┘
        │    │    │     ↓  
       カメラ  IMU  接地セ   モータ 


    ここで,3つの枠は,上が SBC,下の2つが MCU。
    「接地セ」 は,「接地センサ」 の略記。
    「モータ」 は,モータドライバIC + モータで,関節の数だけある。──ここでは,3関節/脚 × 4脚 = 12関節。


    歩行脳NN の入力は,
      直近の出力の目標電流値 (12関節分)
    と,その結果ということになるつぎのデータ:
      移動覚,接地覚,視覚のデータ
    歩行脳NN は,これらを関係づけて,つぎの目標電流値を出力する。


    MCU 導入の理由は,
      Linux, ROS2 のプロセスは,非リアルタイム
      これがわざわいになるプロセスは,
      「MCU の CPU で動かす」

    モータ,IMU,接地センサのストアは,これにあたる。

    即ち,モータストアは,モータ電流を目標値に向けて,PI 制御する。
    この処理はリアルタイム性を要する。
    そこで,MCU の CPU でストアを動かす。

    また,IMU と 接地センサのデータに対しては,更新のリアルタイム性を求められる。
    そこで,ストアを,MCU の中に置く。

    一方,運動器系のモータのストアと感覚器系の IMU・接地センサのストアは,処理が異質なものになる。
    こうして,それぞれに1つ MCU をあてがう形になる。


    カメラストアを SBC の中に置くのは,データ量が大きいためである。
    この場合,データを置くバッファメモリは,ROS2 の担当になる。
      動物の進化における眼の意義


    こうして,必要となるプログラムは,
     SBC の中におくもの:
       歩行脳NN ストア
       移動覚NN ストア
       接地覚NN ストア
       視覚NN ストア
       カメラストア
     MCU の中におくもの:
       モータストア
       IMUストア
       接地センサストア

    ただし,今回は 「接地センサ」 が具体的に定まっていないので,接地センサストアは作成から除き,そして 接地覚NNストアは,扱うデータの型を仮想して作成する。