Skip to content

ディレクトリ構成

リポジトリの全体構造と各ディレクトリの役割を説明します。

トップレベル構成

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
unitree_rl_lab/
├─ deploy/                                                 # 学習後の検証/実機化( Sim2Sim → Sim2Real )で使うC++コントローラ群
│  └─ robots/
│     └─ go2/                                              # Go2向けコントローラ
│        ├─ config/
│        │  └─ config.yaml                                 # 状態機械(FSM)用のYAML設定
│        ├─ include/
│        ├─ src/
│        ├─ CMakeLists.txt
│        └─ main.cpp
│
├─ doc/
│  └─ licenses/                                            # ライセンス表記関係
│
├─ docker/                                                 # Docker でIsaac Lab+依存一式を再現するための設定
│                                                          # 参照: ルート一覧(Docker関連フォルダの存在)
│
├─ scripts/                                                # 学習・推論の実行スクリプト置き場
│  ├─ mimic/
│  │  ├─ csv_to_npz.py                                     # CSVからnpzへの変換スクリプト
│  │  └─ replay_npz.py                                     # モーションデータの再生
│  ├─ rsl_rl/
│  │  ├─ train.py                                          # 学習の実行スクリプト
│  │  ├─ play.py                                           # 学習済みポリシーの再生
│  │  └─ cli_args.py                                       # コマンドライン引数のパーサー
│  └─ list_envs.py
│                                                          # 使い方例:
│                                                          #   python scripts/rsl_rl/train.py --headless --task Unitree-Go2-Velocity
│                                                          #   python scripts/rsl_rl/play.py  --task Unitree-Go2-Velocity
│                                                          #   (同等のショートカットは unitree_rl_lab.sh 経由でも可)
│                                                          # 参照: README の Installation/Verify/Running の例コマンド
│
├─ source/
│  └─ unitree_rl_lab/
│     ├─ config/
│     │  └─ extension.toml
│     ├─ docs/
│     └─ unitree_rl_lab/
│        ├─ assets/
│        │  └─ robots/
│        │     ├─ unitree.py                               # モデル参照パスの設定スクリプト
│        │     │                                           #   ・USD を使う場合: UNITREE_MODEL_DIR を設定(Hugging Faceのunitree_modelを取得)
│        │     │                                           #   ・URDFを使う場合: UNITREE_ROS_DIR を設定(unitree_rosを取得; IsaacSim 5.0+ 推奨)
│        │     │                                           #   ・必要に応じて spawn 設定をURDFモードに切替
│        │     │                                           #   参照: README の「Download unitree robot description files」節
│        │     └─ unitree_actuators.py                     # アクチュエーターモデルの定義
│        ├─ tasks/
│        │  ├─ locomotion/                                 # ロコモーションタスク(速度追従など)
│        │  │  ├─ agents/
│        │  │  │  └─ rsl_rl_ppo_cfg.py                     # PPOアルゴリズムの設定
│        │  │  ├─ mdp/
│        │  │  │  ├─ commands/                             # コマンド生成関数
│        │  │  │  ├─ rewards.py                            # 報酬関数の定義
│        │  │  │  ├─ observations.py                       # 観測関数の定義
│        │  │  │  └─ curriculums.py                        # カリキュラム学習の定義
│        │  │  └─ robots/
│        │  │     ├─ go2/
│        │  │     │  └─ velocity_env_cfg.py                # Go2の速度追従環境設定
│        │  │     ├─ h1/
│        │  │     │  └─ velocity_env_cfg.py                # H1の速度追従環境設定
│        │  │     └─ g1/
│        │  │        └─ 29dof/
│        │  │           └─ velocity_env_cfg.py             # G1 29DOFの速度追従環境設定
│        │  └─ mimic/                                      # モーショントラッキングタスク
│        │     ├─ agents/
│        │     │  └─ rsl_rl_ppo_cfg.py                     # PPOアルゴリズムの設定
│        │     ├─ mdp/
│        │     │  ├─ commands.py                           # モーションコマンド生成
│        │     │  ├─ rewards.py                            # 報酬関数の定義
│        │     │  ├─ observations.py                       # 観測関数の定義
│        │     │  ├─ terminations.py                       # 終了条件の定義
│        │     │  └─ events.py                             # イベントハンドラ
│        │     └─ robots/
│        │        └─ g1_29dof/
│        │           ├─ gangnanm_style/
│        │           │  ├─ tracking_env_cfg.py             # 江南スタイルのトラッキング環境設定
│        │           │  └─ G1_gangnam_style_V01.bvh_60hz.npz  # モーションデータ
│        │           └─ dance_102/
│        │              ├─ tracking_env_cfg.py             # ダンス102のトラッキング環境設定
│        │              └─ G1_dance_102.bvh_60hz.npz      # モーションデータ
│        └─ utils/
│           ├─ parser_cfg.py                               # 設定ファイルのパーサー
│           └─ export_deploy_cfg.py                        # デプロイ設定のエクスポート
│
└─ unitree_rl_lab.sh                                       # セットアップ&実行ショートカット
                                                           #   -i : ライブラリを editable でインストール(Isaac Lab環境のPythonで)
                                                           #   -l : タスク一覧表示(IsaacLab本体より高速版のリスト)
                                                           #   -t : 学習実行(train.py相当)
                                                           #   -p : 再生実行(play.py相当)
                                                           #   参照: README の Installation/Verify の手順

主要ディレクトリの詳細

deploy/

学習後のポリシーを実機やSim2Simで動作させるためのC++コントローラが含まれています。各ロボット向けにディレクトリが分かれており、FSM(有限状態機械)による状態管理を行います。

scripts/

学習と推論を実行するためのPythonスクリプトが格納されています。

  • rsl_rl/: RSL-RLライブラリを使用した強化学習スクリプト
  • train.py: 学習実行
  • play.py: 学習済みポリシーの再生
  • mimic/: モーションデータ関連のユーティリティ

source/unitree_rl_lab/unitree_rl_lab/

assets/robots/

ロボットモデルの設定とアクチュエーターモデルの定義が含まれています。

tasks/

タスクごとに環境設定が定義されています。

locomotion/: 速度追従タスク

  • agents/: PPOアルゴリズムの設定
  • mdp/: MDP(マルコフ決定過程)の定義
  • commands/: コマンド生成
  • rewards.py: 報酬関数
  • observations.py: 観測関数
  • curriculums.py: カリキュラム学習
  • robots/: ロボットごとの環境設定ファイル

mimic/: モーショントラッキングタスク

  • agents/: PPOアルゴリズムの設定
  • mdp/: MDPの定義
  • commands.py: モーションコマンド生成
  • rewards.py: トラッキング報酬関数
  • observations.py: 観測関数
  • terminations.py: 終了条件
  • events.py: イベント処理
  • robots/: ロボットとモーションごとの設定ファイル

utils/

設定ファイルのパース処理やデプロイ設定のエクスポート機能など、ユーティリティ関数が含まれています。

ファイルの役割

設定ファイル

ファイル 説明
velocity_env_cfg.py 速度追従タスクの環境設定(地形、報酬、観測、イベントなど)
tracking_env_cfg.py モーショントラッキングタスクの環境設定
rsl_rl_ppo_cfg.py PPOアルゴリズムの学習パラメータ
config.yaml デプロイ時のFSM設定

スクリプトファイル

ファイル 説明
train.py 学習を実行するメインスクリプト
play.py 学習済みポリシーを再生するスクリプト
csv_to_npz.py CSVモーションデータをnpz形式に変換
replay_npz.py npzモーションデータを再生・可視化
unitree_rl_lab.sh セットアップと実行のショートカットスクリプト