Chuyển đến nội dung chính

レッスン 11: ロボット工学シミュレーション — MuJoCo & Isaac Gym

RL の物理シミュレーション。 MuJoCo環境。 NVIDIA Isaac Gym GPU アクセラレーション トレーニング。 Sim から Real への転送。ドメインのランダム化。

🧠 AI と ML — レッスン 10 レッスン 11: ロボット工学シミュレーション — MuJoCo & アイザックジム

強化学習: 基礎から高度まで

パート 3: RL フレームワークと実践

xdev.asia

はじめに

ロボティクスは RL の最も重要なアプリケーションであり、シミュレーションでエージェントをトレーニングし、実際のロボットに展開します。 MuJoCo と NVIDIA Isaac Gym が物理シミュレータのトップ 2 です。


1. MuJoCo 環境

import gymnasium as gym

# Standard robotics environments
envs = [
    "Ant-v4",        # 4-legged locomotion
    "Humanoid-v4",   # Bipedal walking
    "HalfCheetah-v4", # 2D running
    "Hopper-v4",     # 1-leg hopping
    "Walker2d-v4",   # 2D walking
]

for env_name in envs:
    env = gym.make(env_name)
    print(f"{env_name}: obs={env.observation_space.shape}, act={env.action_space.shape}")
    env.close()

2. SAC を使用したトレーニング

from stable_baselines3 import SAC

env = gym.make("Ant-v4")
model = SAC(
    "MlpPolicy", env,
    learning_rate=3e-4,
    buffer_size=1_000_000,
    batch_size=256,
    tau=0.005,
    gamma=0.99,
    verbose=1,
    tensorboard_log="./ant_tensorboard/",
)
model.learn(total_timesteps=1_000_000)
model.save("sac_ant")

3. NVIDIA アイザック ジム

GPU アクセラレーションによる並列トレーニング — 1000 倍高速:

# Isaac Gym runs thousands of environments in parallel on GPU
from isaacgym import gymapi, gymtorch

gym = gymapi.acquire_gym()
sim = gym.create_sim(0, 0, gymapi.SIM_PHYSX)

# Create 4096 parallel environments
num_envs = 4096
envs = []
for i in range(num_envs):
    env = gym.create_env(sim, lower, upper, num_per_row)
    envs.append(env)

4. Sim から Real への転送

テクニック説明
ドメインのランダム化物理パラメータ (質量、摩擦など) をランダム化する
システムの識別実際のロボットに合わせてシミュレーションを調整
カリキュラム学習簡単なタスクから徐々に難しいタスクへ
教師と生徒シムで教師を訓練し、生徒に蒸留
# Domain randomization example
def randomize_physics(env):
    env.gravity = np.random.uniform(-10.5, -9.5)
    env.friction = np.random.uniform(0.5, 1.5)
    env.mass_scale = np.random.uniform(0.8, 1.2)
    env.actuator_strength = np.random.uniform(0.9, 1.1)

概要

シミュレーターGPU アクセルスピードリアリズムライセンス
ムジョコ❌ CPU中高無料
アイザックジム✅ GPU非常に速い高無料
ピバレット❌ CPU中中オープンソース
ブラックス✅ ジャックス速い中オープンソース