ヒューマノイドロボット詳細設計書
[!NOTE] 最新の実装状況は 機能実装ステータス (Remaining Functionality) を参照してください。
このドキュメントは、EvoSpikeNetプロジェクトにおける自立二足歩行ヒューマノイドロボットの設計概要をまとめたものである。センサーとアクチュエータ構成、制御アーキテクチャ、分散脳との統合方式、各部位の機能などを記述する。
0. 分散脳全体構成
ロボットが参加する大規模分散脳システムの構造。主要な皮質領域と相互接続を示す。
0.1 ランク (RANK) とノードタイプ
各プロセスは RANK という数値で脳内ポジションを示し、node_type によって機能カテゴリを指定する。下表は主要な範囲と対応タイプの例である。
| RANK 範囲 | node_type | 機能領域 | 説明 |
|---|---|---|---|
| 0 | executive / pfc | 前頭前野 | 意思決定・実行制御 |
| 1–9 | vision | 視覚野 | 画像処理・パターン認識 |
| 5–15 | auditory | 聴覚野 | 音声/音響処理 |
| 10–12,16–17 | motor / spatial | 運動野・頭頂葉 | 運動計画・空間処理 |
| 18–19 | speech | 言語生成 | ブローカ/ウェルニッケ領域 |
| 20–21 | memory | 記憶 | 海馬・コンテキスト保持 |
| 22–23 | decision | 追加のエグゼクティブ | 高次推論 |
| その他 | general | 汎用 | 特定領域なし |
上記は evospikenet/node_types.py に定義される NODE_TYPE_DEFINITIONS に対応する。
0.2 ランク番号一覧と説明
より細かいランク番号ごとの対応を以下に示す。ノードタイプは重複する場合がある。
| RANK | biological 名称 | node_type | 説明 |
|---|---|---|---|
| 0 | 前頭前野 (PFC) | executive/pfc | 意思決定、計画 |
| 1 | V1 | vision | 初期視覚処理 |
| 2 | V2 | vision | 低次視覚処理 |
| 3 | V4 | vision | 色・形状処理 |
| 4 | IT / language | vision / language | 高次視覚・言語 |
| 5 | A1 | auditory | 音声基礎処理 |
| 6 | A2 | auditory | 二次聴覚 |
| 7 | Dorsal1 | vision | 視覚-空間処理 |
| 8 | Dorsal2 | vision | 視覚-空間処理 |
| 9 | Dorsal3 | vision | 視覚-空間処理 |
| 10 | M1 | motor | 主要運動実行 |
| 11 | Premotor | motor | 運動計画支援 |
| 12 | Cerebellum | motor | 協調・学習 |
| 13 | STG1 | auditory | 高次聴覚 |
| 14 | STG2 | auditory | 高次聴覚 |
| 15 | STG3 | auditory | 高次聴覚 |
| 16 | Parietal1 | spatial | 空間認知 |
| 17 | Parietal2 | spatial | 空間認知 │ |
| 18 | Broca | speech | 言語生成 |
| 19 | Wernicke | speech | 言語理解 |
| 20 | memory | memory | コンテキストストレージ |
| 21 | memory | memory | 長期記憶 |
| 22 | decision | decision | 追加エグゼクティブ |
| 23 | decision | decision | 追加エグゼクティブ |
0.3 ノード間相関表
主要なノードタイプ同士の通信・依存関係を示す。
| 送信元 node_type | 受信先 node_type | 目的・例 |
|---|---|---|
| vision | motor | 視覚入力に基づく運動計画 |
| auditory | motor | 音声コマンドによる運動 |
| executive | motor | 高次決定による制御 |
| motor | vision | 運動予測を視覚にフィードバック |
| motor | auditory | 発話を伴う運動での音声調整 |
| memory | executive | コンテキスト提供 |
0.4 ヒューマノイド固有ノードマッピング
実際にヒューマノイドロボット用に起動されるノードの一覧と、対応するRANK/名前/番号を示す。
| ランク | ノード名 (内部ID) | node_type | 説明 |
|---|---|---|---|
| 0 | node_pfc_main | executive | 中央意思決定パブリックノード |
| 1 | node_v1_frontcam | vision | 前方カメラV1処理 |
| 2 | node_v2_frontcam | vision | 前方カメラV2処理 |
| 3 | node_v4_rearcam | vision | 後方カメラV4処理 |
| 4 | node_it_objdet | vision | 物体認識統合 (IT) |
| 5 | node_a1_mic | auditory | マイク入力A1 |
| 6 | node_a2_mic | auditory | マイク入力A2 |
| 7 | node_dorsal_leg | vision | 脚部視覚-空間 (Dorsal1) |
| 8 | node_dorsal_arm | vision | 腕部視覚-空間 (Dorsal2) |
| 9 | node_dorsal_env | vision | 環境視覚-空間 (Dorsal3) |
| 10 | node_m1_leg_left | motor | 左脚主要運動実行 |
| 11 | node_premotor_leg | motor | 脚運動計画支援 |
| 12 | node_cerebellum | motor | 協調・学習 |
| 13 | node_stg1_audio | auditory | 高次音声処理 |
| 14 | node_stg2_audio | auditory | 高次音声処理 |
| 15 | node_stg3_audio | auditory | 高次音声処理 |
| 16 | node_parietal_nav | spatial | 空間航法 |
| 17 | node_parietal_balance | spatial | バランス空間処理 |
| 18 | node_broca_speech | speech | 発話生成 |
| 19 | node_wernicke_lang | speech | 言語理解 |
| 20 | node_memory_short | memory | 短期記憶ストレージ |
| 21 | node_memory_long | memory | 長期記憶 |
| 22 | node_decision_aux1 | decision | 追加エグゼクティブ1 |
| 23 | node_decision_aux2 | decision | 追加エグゼクティブ2 |
上記マッピングは設定ファイル config/node_assignments.yaml で変更できる。
flowchart TB
subgraph PFC[前頭前野 - Rank 0]
end
subgraph VIS[視覚野 - Ranks 1-9]
V1[V1 (Rank1)]
V2[V2 (Rank2)]
V4[V4 (Rank3)]
IT[IT (Rank4)]
end
subgraph AUD[聴覚野 - Ranks 5-15]
A1[A1 (Rank5)]
A2[A2 (Rank6)]
STG1[STG1 (Rank13)]
STG2[STG2 (Rank14)]
STG3[STG3 (Rank15)]
end
subgraph SOM[体性感覚/頭頂 - Ranks 16-17]
PAR1[Parietal1 (Rank16)]
PAR2[Parietal2 (Rank17)]
end
subgraph MOTOR[運動野/小脳 - Ranks 10-12]
M1[M1 (Rank10)]
PRE[Premotor (Rank11)]
CBL[小脳 (Rank12)]
end
PFC --> VIS
PFC --> AUD
PFC --> MOTOR
VIS --> MOTOR
AUD --> MOTOR
SOM --> MOTOR
MOTOR --> VIS
MOTOR --> AUD
MOTOR --> PFC
1. 目的と範囲
- 自律歩行能力を持ち、環境認識・自己保持・転倒復帰が可能な二足歩行ロボットの構築。
- 分散脳システム(運動野・感覚野ノード)との連携を前提とする。
- 機械構造、センサー、モータ、通信、ソフトウェアの設計指針を示す。
1.1 プロダクト概要図
ロボット全体を構成するハード/ソフト要素を俯瞰した図。
flowchart LR
HW[ハードウェアフレーム]
SW[組み込みソフトウェア]
B[分散脳ネットワーク]
HW --> SW
SW --> B
B --> SW
1.2 機能ブロック図
「感覚」「認知」「運動」「通信」「電源」などの機能領域を示す。
運動野ハブとノード呼応性
運動野は身体部位ごとに複数のハブに分割され、それぞれが関連ノードを管理して協調制御を行う。ノード同士は高頻度で状態を交換し、遅延を最小化するためにZenohトピックで直接接続される。
flowchart TB
subgraph Motor Cortex
HubLeg[脚ハブ]
HubArm[腕ハブ]
HubTrunk[胴体ハブ]
end
HubLeg --> NodeLL[左脚ノード]
HubLeg --> NodeRL[右脚ノード]
HubArm --> NodeLA[左腕ノード]
HubArm --> NodeRA[右腕ノード]
HubTrunk --> NodeWaist[胴体ノード]
NodeLL <--> NodeRL
NodeLA <--> NodeRA
flowchart TB
subgraph センサー群
IMU[IMU]
CAM[カメラ/LiDAR]
MIC[マイク]
ENV[環境センサ]
end
subgraph 認知処理
VIS[視覚野]
AUD[聴覚野]
ENVNODE[環境ノード]
MOTOR[運動野]
end
subgraph 制御系
HUB[運動ハブ]
NODE[運動ノード]
ACT[アクチュエータドライバ]
end
IMU --> VIS
CAM --> VIS
MIC --> AUD
ENV --> ENVNODE
VIS --> MOTOR
AUD --> MOTOR
ENVNODE --> MOTOR
MOTOR --> HUB
HUB --> NODE
NODE --> ACT
2. 機械構造
2.1 自由度(DoF)
| 部位 | 自由度 | モータ数 | 備考 |
|---|---|---|---|
| 股関節(左右) | 3軸(屈伸・内外転・回旋) | 6 | 高速・高トルクが必要 |
| 膝関節(左右) | 1軸(屈伸) | 2 | シンプルなリンク構造 |
| 足首(左右) | 2軸(前後傾・左右傾) | 4 | バランス補正用 |
| 腰/胴体 | 1軸(回転) | 1 | 上半身のねじれ制御 |
| 腕/上肢(左右) | 2–6軸×2 | 4–12 | 把持やバランス補助用 |
合計で 13~25 台 のアクチュエータを目標とし、拡張性を持たせる。
2.2 フレーム・素材
- 軽量アルミ合金/炭素繊維を基本とし、剛性と耐衝撃性を両立。
- 世代ごとにモジュール化可能な脚部・胴体セクションを採用。
3. センサー構成
3.1 姿勢・バランス
- 6軸/9軸IMU(各脚ベース・胴体)
- 足底圧力センサ(フットパッド全周)
- 角加速度センサ/ジャイロ
3.2 関節情報
- 各モータに内蔵エンコーダ(相対/絶対)
- 必要に応じてトルクセンサ付きギア
3.3 環境認識
- 前方ステレオカメラ(障害物検知・距離推定)
- 上部広角カメラ(天井/遠景確認)
- LiDARまたは深度カメラ
- マイクロフォンアレイ(音源定位・コマンド受付)
3.4 内部状態
- 温湿度センサ(バッテリ温度、室内環境)
- 電流・電圧モニタ(各モータドライバ)
4. モータ/アクチュエータ仕様
- ブラシレスDCモータ+高分解能エンコーダ
- トルクギア付き(減速比10–100:1)
- 通信プロトコル:CAN/CANopen または EtherCAT
- 制御周期:最低1 kHz、理想的には2–4 kHzで位置/トルクループを実行
5. 制御アーキテクチャ
5.0 ノード・ドライバ・デバイス構成
分散脳と物理機器を結ぶソフトウェア層を明示する。
flowchart LR
subgraph DistributedBrain
VNode[視覚野ノード]
ANode[聴覚野ノード]
MNode[運動野ノード]
end
subgraph RobotSW
Hub[MotionHub]
MotionNode[MotionNode]
MotorDriver[MotorDriver]
SensorDriver[SensorDriver]
end
subgraph Hardware
Cameras[カメラ/LiDAR]
IMUs[IMU]
Mics[マイク]
Motors[モータ]
GPIOs[GPIO/スイッチ]
end
VNode -->|画像データ| Hub
ANode -->|音声| Hub
MNode -->|運動命令| Hub
Hub --> MotionNode
MotionNode --> MotorDriver
SensorDriver --> Cameras
SensorDriver --> IMUs
SensorDriver --> Mics
MotorDriver --> Motors
SensorDriver --> GPIOs
5.1 階層構造
- 運動ハブ(最上位):運動計画と同期タイムスタンプ発行。
- 運動ノード:脚ごと/胴体ごとに分離してローカル制御。
- モータノード:各アクチュエータを管理する低レイヤライブラリ。
MotionHub
├─ MotionNode_LegLeft
│ ├─ Motor_HipPitch
│ ├─ Motor_HipRoll
│ └─ …
├─ MotionNode_LegRight
│ ├─ Motor_HipPitch
│ └─ …
└─ MotionNode_Waist
└─ Motor_WaistYaw
5.2 センサーフュージョン
- IMU + 足底圧力 + カメラを組み合わせて姿勢推定
- エクステンドカルマンフィルタ(EKF)またはスライディングウィンドウ
5.3 転倒検知と復帰
- 急激な加速度/角速度変化を検出。
- モータトルクをカットし、着地用バッファ(バネ機構)を解放。
- リセット姿勢を計算し、再起動シーケンスを実行。
6. 分散脳との連携
- 【感覚野】ノード群にカメラ画像、音声、IMUデータを送信。
- 【運動野】は軌道生成とZMP計算を行い、運動ハブへ指令を返す。
- ZenohトピックおよびPTPクロック同期を使用。
6.1 データフロー例
- カメラ画像 → 視覚野ノード → 物体検出/地形解析
- 視覚出力 → 運動野 (歩行プラン) → 運動ハブ
- 運動ハブ → 各運動ノード → モータ制御コマンド
- 各ノードから状態/センサーバックをハブ経由で感覚野へ還流
6.2 制御フロー
以下はメインループにおける高レベル制御の順序。
sequenceDiagram
participant Brain as Distributed Brain
participant Hub as MotionHub
participant Node as MotionNode
participant Motor as MotorDriver
participant Sensor as SensorDriver
Brain->>Hub: 歩行目標 / 時刻同期
Hub->>Node: 指令パケット
Node->>Motor: PWM/トルクコマンド
Node-->>Hub: 状態報告(位置、トルク)
Sensor->>Hub: IMU/カメラ/その他センサデータ
Hub->>Brain: センサフィードバック
sequenceDiagram
participant Brain as Distributed Brain
participant Hub as MotionHub
participant Node as MotionNode
participant Motor as MotorDriver
participant Sensor as SensorDriver
Brain->>Hub: 歩行目標 / 時刻同期
Hub->>Node: 指令パケット
Node->>Motor: PWM/トルクコマンド
Node-->>Hub: 状態報告(位置、トルク)
Sensor->>Hub: IMU/カメラ/その他センサデータ
Hub->>Brain: センサフィードバック7. ソフトウェア/通信
- ROS 2互換レイヤまたは軽量カスタムプロトコル(Zenoh)
- 主要プロセスはコンテナ化(Docker/Kubernetes)を想定
- モータドライバはリアルタイムOS(FreeRTOS/NuttX)上で走る
8. 安全とフェイルセーフ
- ハードウェア・インターロック(緊急停止ボタン)
- ソフトウェア側で過電流・過熱保護
- 転倒時の即時シャットダウンと緊急着地動作
9. 拡張性とモジュール性
- 脚部/腕部をホットスワップ可能なモジュールとして設計
- センサやバッテリを容易に交換できるコネクタを配置
10. 参考図
flowchart TB
subgraph 感覚野
V[視覚ノード]
A[聴覚ノード]
E[環境ノード]
end
subgraph 運動野
M[高次生成]
end
subgraph ハブ
H[運動ハブ]
end
subgraph ノード群
N1[運動ノード: 左脚]
N2[運動ノード: 右脚]
N3[運動ノード: 腰]
end
V --> M
A --> M
E --> M
M --> H
H --> N1
H --> N2
H --> N3
本設計書はプロジェクトの基準となるため、新しいセンサーや機体変更があるたびに更新すること。