概要
Genesisは、ロボティクス・Embodied AI・Physical AIアプリケーション向けの超高速物理エンジンです。
ロボットシミュレーションではメジャーなNvidiaのIssac Labの前身であるIssac Gymの10倍以上のパフォーマンスを発揮できるという、にわかに信じがたい処理速度です。
最近では中国製の四足歩行ロボット:Unitree Go2の歩容の強化学習環境としても利用されているようです。
Uniitree Go2を使った歩容の強化学習のため、昨年度末に購入した下記前提条件のマシンでGenesisの環境を構築しサンプルを実行するまでの手順をまとめました。
環境構築にあたり、重要なデータは事前にバックアップしてください
前提条件
- OS : Ubuntu 22.04 LTS
- グラフィックス : NVIDIA® GeForce RTX™ 5080 <-2025.06.19時点でほぼ最新のGPUなので、下記の手順内でのドライバやライブラリのバージョン指定が非常に重要です。
以下は今回の環境構築に関係ないですがご参考です。
- CPU : インテル® Core™ Ultra 9 プロセッサー 285K
- RAM : 32GB (16GB×2 / デュアルチャネル)
- ストレージ : 2TB (M.2 SSD NVMe Gen4×4)
バージョン一覧表(2025.06.19時点)
ソフトウェア | 必須バージョン | RTX 5080対応状況 | インストールコマンド |
---|---|---|---|
NVIDIA Driver | 570.86.16+ | ✅ 対応 | sudo apt install nvidia-driver-570-open |
CUDA | 12.8 | ✅ 対応 | sudo apt install cuda-toolkit-12-8 |
cuDNN | 9.8.0 | ✅ 対応 | sudo apt install libcudnn9-cuda-12 |
Python | 3.10/3.11推奨 | ✅ 対応 | sudo apt install python3.11 |
PyTorch Stable | 2.7.1 | ❌ sm_120非対応 | pip install torch --index-url https://download.pytorch.org/whl/cu128 |
PyTorch nightly | 2.8.0-dev | ✅ 対応 | pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu128 |
手順1: システムの準備
1.1 システムの更新
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential dkms
1.2 Nouveauドライバの無効化
sudo sh -c "echo 'blacklist nouveau
options nouveau modeset=0' > /etc/modprobe.d/blacklist-nouveau.conf"
sudo update-initramfs -u
1.3 再起動
sudo reboot
手順2: NVIDIA ドライバのインストール
方法A: Ubuntuリポジトリから(推奨)
2A.1 restrictedリポジトリの有効化確認
sudo add-apt-repository universe
sudo apt update
2A.2 利用可能なドライバの確認
ubuntu-drivers devices
2A.3 NVIDIA 570ドライバのインストール
# Open Kernel Modules版(推奨) 私の環境ではこれが有効でした
sudo apt install nvidia-driver-570-open
# または標準版
sudo apt install nvidia-driver-570
方法B: Graphics-driversタのインストール(代替手段)
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-570
2.4 再起動と確認
sudo reboot
再起動後、以下のコマンドでドライバを確認:
nvidia-smi
期待される出力例:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 570.144 Driver Version: 570.144 CUDA Version: 12.8 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A |
2.5 NVIDIA ドライバのトラブルシューティング
2.5.1 "No devices were found" エラー
# ドライバの再インストール
sudo apt purge nvidia*
sudo apt autoremove
sudo apt install nvidia-driver-570-open # <- nvidia-smiの結果が出力されるドライバに出会うまで、ubuntu-drivers devices の候補の中から根気強く探し続ける
sudo reboot
2.5.2 Open kernel modules必須エラー
RTX 5080では標準のプロプライエタリドライバではなく、Open kernel modulesが必要な場合があります:
sudo apt install nvidia-driver-570-open
手順3: CUDA 12.8のインストール
3.1 CUDAリポジトリの追加
# CUDA 12.8リポジトリキーの追加
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
3.2 パッケージリストの更新
sudo apt update
3.3 CUDA 12.8のインストール
# CUDA 12.8の特定バージョンをインストール
sudo apt install cuda-toolkit-12-8
3.4 環境変数の設定
echo 'export PATH=/usr/local/cuda-12.8/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc
3.5 CUDA動作確認
nvcc --version
期待される出力:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on [date]
Cuda compilation tools, release 12.8, V12.8.xxx
手順4: cuDNNのインストール
4.1 cuDNN 9.8のダウンロード
NVIDIAの公式サイトからcuDNN 9.8.0(CUDA 12.8対応)をダウンロード:
# cuDNN 9.8.0 for CUDA 12.8
wget https://developer.download.nvidia.com/compute/cudnn/9.8.0/local_installers/cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
4.2 cuDNNのインストール
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.8.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt update
sudo apt install libcudnn9-cuda-12
sudo apt install libcudnn9-dev-cuda-12
手順5: Pythonとpipの準備
5.1 Python 3.11のインストール(推奨)
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.11 python3.11-pip python3.11-dev python3.11-venv
5.2 仮想環境の作成
python3.11 -m venv .rtx5080-env
source .rtx5080-env/bin/activate
pip install --upgrade pip
手順6: PyTorchのインストール
6.1 PyTorchのインストール
重要:RTX 5080は Blackwellアーキテクチャ(sm_120) を使用するため、2025.06.19現在はPyTorch nightly版が必要です。
# ✅ RTX 5080対応(sm_120サポート)
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128
# または特定バージョン(2025.06.19現在)
pip install --pre torch==2.8.0.dev20250605+cu128 torchvision==0.23.0.dev20250605+cu128 torchaudio==2.8.0.dev20250605+cu128 --index-url https://download.pytorch.org/whl/nightly/cu128
6.2 PyTorch動作確認
python -c "
import torch
print(f'PyTorch version: {torch.__version__}')
print(f'CUDA available: {torch.cuda.is_available()}')
print(f'CUDA version: {torch.version.cuda}')
print(f'Device count: {torch.cuda.device_count()}')
if torch.cuda.is_available():
print(f'Current device: {torch.cuda.current_device()}')
print(f'Device name: {torch.cuda.get_device_name(0)}')
"
期待される出力例:
PyTorch version: 2.8.0.dev20250605+cu128
CUDA available: True
CUDA version: 12.8
Device count: 1
Current device: 0
Device name: NVIDIA GeForce RTX 5080
2025.06.19時点ではPyTorch安定版2.7.1にはRTX 5080の互換性問題があります
# ❌ PyTorch公式サイトで紹介されている下記の安定版はsm_120非対応のため、RTX 5080では動作しません
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
エラー例:
NVIDIA GeForce RTX 5080 with CUDA capability sm_120 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_50 sm_60 sm_61 sm_70 sm_75 sm_80 sm_86 sm_90.
6.3 PyTorchのトラブルシューティング
6.3.1 PyTorchでGPUが認識されない
# CUDAパスの確認
echo $CUDA_HOME
echo $PATH
echo $LD_LIBRARY_PATH
# 環境変数の再設定
export CUDA_HOME=/usr/local/cuda-12.8
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
6.3.2 nightly版の最新バージョンの確認方法
# 最新のnightly版確認
pip index versions torch --pre --index-url https://download.pytorch.org/whl/nightly/cu128
手順7: Genesisのセットアップ
7.1 システム要件とOpenGL依存関係のインストール
7.1.1 必要なシステムパッケージのインストール
# OpenGLとグラフィック関連ライブラリ
sudo apt update
sudo apt install -y \
libgl1-mesa-glx \
libgl1-mesa-dri \
libegl1-mesa \
libglib2.0-0 \
libglfw3 \
libglfw3-dev \
freeglut3 \
freeglut3-dev \
mesa-utils \
xvfb
7.1.2 OpenGLバージョンの確認
# OpenGL情報の確認
glxinfo | grep "OpenGL version"
期待される出力例:
OpenGL version string: 4.6.0 NVIDIA 570.144
Genesisには OpenGL 4.4以降が必要です。
7.1.3 OpenGLのトラブルシューティング
OpenGL情報の確認の結果、
# OpenGL情報の確認
OpenGL version string: 4.5 (Compatibility Profile) Mesa 23.2.1-1ubuntu3.1~22.04.3
となった場合は、(RTX 5080が認識されているにも関わらず)OpenGLがNVIDIAドライバーではなくMesaを使用しているため、Genesisが正常に動作しません。
解決方法として、NVIDIA OpenGLドライバーを強制使用するよう環境変数を設定します。
7.1.3.1 NVIDIA OpenGLドライバーを強制使用
# NVIDIA OpenGLを強制使用する環境変数を設定
export __GL_SYNC_TO_VBLANK=0
export __GL_THREADED_OPTIMIZATIONS=1
export LIBGL_ALWAYS_INDIRECT=0
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
# 環境変数を永続化
echo 'export __GL_SYNC_TO_VBLANK=0' >> ~/.bashrc
echo 'export __GL_THREADED_OPTIMIZATIONS=1' >> ~/.bashrc
echo 'export LIBGL_ALWAYS_INDIRECT=0' >> ~/.bashrc
echo 'export __NV_PRIME_RENDER_OFFLOAD=1' >> ~/.bashrc
echo 'export __GLX_VENDOR_LIBRARY_NAME=nvidia' >> ~/.bashrc
source ~/.bashrc
7.1.3.2 NVIDIA Prime設定の確認
# Prime設定確認
sudo prime-select query
# NVIDIAモードに設定(必要に応じて)
sudo prime-select nvidia
# 設定後は再起動が推奨
sudo reboot
7.1.3.3 X11設定の確認
# X11設定でNVIDIAドライバーが使用されているか確認
cat /var/log/Xorg.0.log | grep -i nvidia
# nvidia-settingsでGPU設定確認
nvidia-settings
7.1.3.4 修正後の確認
再起動またはログアウト/ログイン後:
# OpenGLがNVIDIAドライバーを使用しているか確認
glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)"
# eglinfo(追加情報)
eglinfo | grep -i nvidia
glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)"
の期待される出力は以下の通りです
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 5080/PCIe/SSE2
OpenGL version string: 4.6.0 NVIDIA 570.153.02
7.2 Genesisのインストール
7.2.1 仮想環境の再開
source .rtx5080-env/bin/activate
仮想環境が起動すると、(.rtx5080-env)
がプロンプトに表示されます。
deactivate
を実行すると仮想環境を終了できますが、以降、Genesisを使いたい場合、必ず仮想環境を起動してください。
7.2.2 Genesisのインストール
# Genesis物理エンジンのインストール
pip install genesis-world
# 追加の依存関係(画像処理・可視化用)
pip install opencv-python matplotlib imageio imageio-ffmpeg
7.3 環境変数の設定(必要に応じて)
レンダリング最適化
# NVIDIA GPU環境での最適化
export LIBGL_ALWAYS_INDIRECT=0
export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA
# 環境変数を永続化
echo 'export LIBGL_ALWAYS_INDIRECT=0' >> ~/.bashrc
echo 'export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA' >> ~/.bashrc
source ~/.bashrc
7.4 サンプルコードによる基本動作確認
7.4.1 基本サンプルコード作成・実行
# サンプルコード用ディレクトリ作成
mkdir ~/genesis_test
cd genesis_test
次のコードを hello_genesis.py
として作成:
import genesis as gs
# Genesis初期化(GPU使用)
print("Initializing Genesis...")
gs.init(backend=gs.gpu) # RTX 5080の場合はGPUを使用
# シーンの作成
print("Creating scene...")
scene = gs.Scene(
sim_options=gs.options.SimOptions(
dt=0.01,
gravity=(0, 0, -9.81),
),
show_viewer=True, # ビューワー表示
viewer_options=gs.options.ViewerOptions(
camera_pos=(3.5, 0.0, 2.5),
camera_lookat=(0.0, 0.0, 0.5),
camera_fov=40,
),
)
# 物体の追加
print("Adding objects...")
plane = scene.add_entity(gs.morphs.Plane())
box = scene.add_entity(
gs.morphs.Box(
pos=(0, 0, 2.0),
size=(0.2, 0.2, 0.2),
)
)
# シーンの構築
print("Building scene...")
scene.build()
print("Starting simulation...")
print("RTX 5080 GPU Performance Test - Simulating falling box")
# シミュレーション実行
for i in range(1000):
scene.step()
if i % 100 == 0:
print(f"Step {i}/1000")
print("Simulation completed!")
hello_genesis.py
の実行:
cd genesis_test
python hello_genesis.py
期待される動作:
- ウィンドウが開く
- 床の上に箱が落下するシミュレーション
- リアルタイムでの物理演算表示
- RTX 5080での超高速処理
7.4.2 ロボットアームサンプル
より高度なサンプルとして、Frankaロボットアームのシミュレーション:
import genesis as gs
# Genesis初期化
gs.init(backend=gs.gpu)
# シーン作成
scene = gs.Scene(
sim_options=gs.options.SimOptions(
dt=0.01,
gravity=(0, 0, -9.81),
),
show_viewer=True,
)
# 床とロボットアームの追加
plane = scene.add_entity(gs.morphs.Plane())
franka = scene.add_entity(
gs.morphs.MJCF(file='xml/franka_emika_panda/panda.xml'),
)
# シーン構築
scene.build()
print("RTX 5080 Robot Arm Simulation - Press Ctrl+C to stop")
# 重力による自由落下シミュレーション
try:
for i in range(5000):
scene.step()
if i % 500 == 0:
print(f"Simulated {i} steps")
except KeyboardInterrupt:
print("Simulation stopped by user")
7.4.3 液体・弾性体・砂のシミュレーション
# 異なるMPM材料タイプの比較
import genesis as gs
gs.init(backend=gs.gpu)
# MPMソルバーの設定を含むシーンを作成
scene = gs.Scene(
sim_options=gs.options.SimOptions(
dt=4e-3,
substeps=10,
),
mpm_options=gs.options.MPMOptions(
lower_bound=(-2.0, -1.0, 0.0),
upper_bound=(2.0, 1.0, 2.0),
particle_size=0.02,
),
vis_options=gs.options.VisOptions(
visualize_mpm_boundary=True,
),
show_viewer=True
)
# 床となる平面を追加
plane = scene.add_entity(
morph=gs.morphs.Plane(),
)
# 1. 液体(Liquid)
liquid = scene.add_entity(
material=gs.materials.MPM.Liquid(),
morph=gs.morphs.Box(
pos=(-1.2, 0, 1.0),
size=(0.3, 0.3, 0.3),
),
surface=gs.surfaces.Default(
color=(0.4, 0.8, 1.0),
vis_mode='particle',
),
)
# 2. 弾性体(Elastic)
elastic = scene.add_entity(
material=gs.materials.MPM.Elastic(),
morph=gs.morphs.Box(
pos=(0.0, 0, 1.0),
size=(0.3, 0.3, 0.3),
),
surface=gs.surfaces.Default(
color=(1.0, 0.4, 0.4),
vis_mode='particle',
),
)
# 3. 砂(Sand)
sand = scene.add_entity(
material=gs.materials.MPM.Sand(),
morph=gs.morphs.Box(
pos=(1.2, 0, 1.0),
size=(0.3, 0.3, 0.3),
),
surface=gs.surfaces.Default(
color=(0.8, 0.6, 0.2),
vis_mode='particle',
),
)
print("左から右へ:")
print("青: 液体(Liquid)- 流体として振る舞う")
print("赤: 弾性体(Elastic)- 変形するが元の形に戻ろうとする")
print("黄: 砂(Sand)- 顆粒材料として振る舞う")
scene.build()
for i in range(3000):
scene.step()
7.4.4 異なる表示モードで水の動きを比較
splashsurfを利用してサーフェス再構築を行い、よりリアルな水の動きを再現しますが、2025.06.19時点ではsplashsurfはCPUを使った処理でGPUを使用しないため、fpsが低下します。
事前にRust
をインストールしビルドシステム兼パッケージマネージャのcargo
をセットアップしたうえで、splashsurf
のインストールが必要です。
# アーキテクチャを確認
uname -m
# x86_64の場合
wget https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init -O /tmp/rustup-init
# 実行権限を付与して実行
chmod +x /tmp/rustup-init
/tmp/rustup-init
# Rust環境を読み込み
source ~/.cargo/env
# バージョンを再確認
rustc --version
cargo --version
# splashsurfをインストール
cargo install splashsurf
# 水の異なる表示モード比較
import genesis as gs
gs.init(backend=gs.gpu)
# MPMソルバーの設定を含むシーンを作成
scene = gs.Scene(
sim_options=gs.options.SimOptions(
dt=4e-3,
substeps=10,
),
mpm_options=gs.options.MPMOptions(
lower_bound=(-2.0, -1.0, 0.0),
upper_bound=(2.0, 1.0, 2.0),
particle_size=0.02,
),
vis_options=gs.options.VisOptions(
visualize_mpm_boundary=True,
),
show_viewer=True
)
# 床となる平面を追加
plane = scene.add_entity(
morph=gs.morphs.Plane(),
)
# 1. 粒子表示モード(particle)
water_particle = scene.add_entity(
material=gs.materials.MPM.Liquid(),
morph=gs.morphs.Box(
pos=(-0.8, 0, 1.0),
size=(0.3, 0.3, 0.3),
),
surface=gs.surfaces.Default(
color=(0.4, 0.8, 1.0),
vis_mode='particle',
),
)
# 2. 再構成表示モード(recon)- より滑らかな表面
water_recon = scene.add_entity(
material=gs.materials.MPM.Liquid(),
morph=gs.morphs.Box(
pos=(0.8, 0, 1.0),
size=(0.3, 0.3, 0.3),
),
surface=gs.surfaces.Default(
color=(0.2, 0.6, 0.9),
vis_mode='recon',
),
)
print("左側: 粒子表示モード(particle)")
print("右側: 再構成表示モード(recon)")
print("reconモードでは、より滑らかで連続的な液体表面が表示されます")
scene.build()
for i in range(2000):
scene.step()
7.4.5 FPS測定サンプル(パフォーマンス確認)
import genesis as gs
import time
gs.init(backend=gs.gpu)
scene = gs.Scene(show_viewer=False) # ビューワー無しで最大性能測定
plane = scene.add_entity(gs.morphs.Plane())
box = scene.add_entity(gs.morphs.Box(pos=(0, 0, 1.0)))
scene.build()
print("RTX 5080 Performance Benchmark")
print("Simulating 10000 steps...")
start_time = time.time()
steps = 10000
for i in range(steps):
scene.step()
end_time = time.time()
total_time = end_time - start_time
fps = steps / total_time
print(f"Completed {steps} steps in {total_time:.2f} seconds")
print(f"Performance: {fps:.0f} FPS")
print(f"Speed multiplier: {fps:.0f}x real-time (assuming 60 FPS)")
期待される性能:正しくセットアップできていれば、RTX 5080では数百万〜数千万FPS出ます。すごい!😲
7.4.6 Genesisのバージョンと機能確認
import genesis as gs
# バージョン確認
print(f"Genesis version: {gs.__version__}")
# 利用可能なバックエンド確認
print("Available backends:")
print(f"CPU: {gs.cpu}")
print(f"GPU: {gs.gpu}")
# RTX 5080の情報表示
gs.init(backend=gs.gpu)
print("Genesis initialized successfully with RTX 5080!")
7.5 Genesisのトラブルシューティング
7.5.1 OpenGLエラー
# エラー例
# OpenGL.error.GLError: GLError(err = 1282, description = b'invalid operation')
# 解決策:OpenGLドライバの確認
nvidia-smi
glxinfo | grep "OpenGL"
# ドライバ再インストール
sudo apt install --reinstall nvidia-driver-570-open
7.5.2 ビューワーが表示されない(headless環境)
# ビューワー無しモード
scene = gs.Scene(show_viewer=False)
# 画像として保存
import cv2
rgb_array = scene.render(camera=scene.main_camera)
cv2.imwrite('simulation_frame.png', rgb_array)
7.5.3 Taichi/GLFW競合エラー
# 依存関係の再インストール
pip uninstall taichi genesis-world
pip install genesis-world
手順8: TechShareで紹介されているGenesis-Embodied-AI/Genesis.git
の環境構築手順(2025.06.19時点の手順)
Genesisのサンプルとしても用意されているUnitree Go2の日本代理店でもあるTechShareで【深層強化学習】Genesisのインストール手順として紹介されていますが、この記事は2025.01.31時点の内容です。
アップデートにより2025.06.19時点ではそのままではエラーになる箇所があるので、以下で修正版の手順を紹介します。
7.2.1 仮想環境の再開までは共通です。以降の手順は下記に沿ってください。
8.1 Genesisをクローンする
まず、Genesis-GitHubをクローンします。
git clone https://github.com/Genesis-Embodied-AI/Genesis.git
cd Genesis
8.2 Genesis-worldをインストール
pip install genesis-world
8.3 Genesisでpip install -e .
を実行
pip install -e .
8.4 RSL RL ライブラリのインストール(重要!)
⚠️ 元の手順では古いバージョンを使用していますが、最新のGenesisでは以下が必要です。
# 新しい方法(推奨):
pip install tensorboard rsl-rl-lib==2.2.4
# 以下はTechShareのサイトで紹介されている古い方法なので、使用しないでください:
# git clone https://github.com/leggedrobotics/rsl_rl
# cd rsl_rl
# git checkout v1.0.2
# pip install -e .
8.5 RTX 5080/5090用の事前対策
新しいGPUでは、Taichiキャッシュが問題を起こす可能性があります。事前にクリアしておきます。
# Taichiキャッシュをクリア
rm -rf ~/.taichi/
rm -rf ~/.cache/taichi/
8.6 サンプルコードの実行
8.6.1 基本的な学習の実行
source .rtx5080-env/bin/activate # 仮想環境を起動
cd Genesis # Genesisのルートディレクトリに移動
# RTX 5080/5090の場合、まずは小さなバッチサイズから開始
python examples/locomotion/go2_train.py -B 1024 --max_iterations 100
# 他のGPUの場合
python examples/locomotion/go2_train.py -B 4096 --max_iterations 100
8.6.2 TensorBoardで学習状況を確認
別のターミナルを開いて実行:
cd Genesis
source .rtx5080-env/bin/activate
# TensorBoardを起動
python -m tensorboard.main --logdir logs --port 6006
ブラウザで http://localhost:6006
にアクセスして学習状況を確認できます。
8.6.3 訓練したモデルの確認
学習完了後、訓練したモデルでGo2の歩容を確認します。
python examples/locomotion/go2_eval.py
8.7 Genesis-Embodied-AI/Genesis.git
のトラブルシューティング
8.7.1 ImportError: Please uninstall 'rsl_rl' and install 'rsl-rl-lib==2.2.4'.
解決方法:
pip uninstall rsl_rl
pip install rsl-rl-lib==2.2.4
8.7.2 RuntimeError: normal expects all elements of std >= 0.0
原因: 学習パラメータが不安定
解決方法: go2_train.py
の学習設定を調整
# go2_train.py内の以下の値を変更:
"learning_rate": 0.0003, # 元の0.001から変更
"init_noise_std": 0.1, # 元の1.0から変更
8.7.3 CUDA Error CUDA_ERROR_ILLEGAL_ADDRESS
(RTX 5080/5090)
原因: RTX 5000シリーズでのTaichiキャッシュ問題
解決方法:
# Taichiキャッシュをクリア
rm -rf ~/.taichi/
rm -rf ~/.cache/taichi/
# 再実行
python examples/locomotion/go2_train.py -B 1024
8.7.4 PyTorch CUDA capability sm_120 is not compatible
原因: RTX 5080/5090でPyTorchの互換性問題。6.1 PyTorchのインストールを参照
解決方法:
# 古いPyTorchをアンインストール
pip uninstall torch torchvision torchaudio
# RTX 5080対応(sm_120サポート)のPyTorch nightly 2.8.0-devをインストール
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128
# もしくは下記バージョンをインストール
pip install torch==2.7.0 --index-url https://download.pytorch.org/whl/cu128
pip install torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
8.7.5 tensorboard: command not found
解決方法:
# 以下のコマンドで実行
python -m tensorboard.main --logdir logs
8.7.6 メモリ不足エラー
解決方法: バッチサイズを減らす
# バッチサイズを段階的に減らして試す
python examples/locomotion/go2_train.py -B 512
python examples/locomotion/go2_train.py -B 256
python examples/locomotion/go2_train.py -B 64
8.7.7 Go2が動かない・不安定
解決方法: より保守的な学習設定を使用
# 小さなバッチサイズと短い学習時間で確認
python examples/locomotion/go2_train.py -B 512 --max_iterations 50
8.8 推奨される実行手順
8.8.1 RTX 5080/5090の場合
事前準備
rm -rf ~/.taichi/ ~/.cache/taichi/
source .rtx5080-env/bin/activate
小さなバッチサイズで動作確認
python examples/locomotion/go2_train.py -B 512 --max_iterations 10
正常動作を確認後、本格的な学習
python examples/locomotion/go2_train.py -B 2048 --max_iterations 500
8.8.2 その他のGPUの場合
source .[仮想環境名]/bin/activate
python examples/locomotion/go2_train.py -B 4096 --max_iterations 500