Isaac Lab にて歩行 policy の学習をしてみる!

Humanoid

今回は歩行 policy の学習方法を書きます。お試しなので、この policy で歩行はできないのですが、ざっくり概要だけ。

前回までの記事で、keyboard で歩行操作ができるようになっています。

学習

今回は、以下のコマンドを実行します。IsaacSim / IsaacLab の環境構築が済んでいることを前提としています(link)。

cd ~/lab/IsaacLab
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py \
  --task Isaac-Velocity-Flat-G1-v0 \
  --num_envs 64 \
  --max_iterations 50 \
  --run_name test

分解して理解していきましょう。

  • scripts/reinforcement_learning/rsl_rl/train.py
    • RSL-RL の PPO (Proximal Policy Optimization) 学習を回す script です。
  • --task Isaac-Velocity-Flat-G1-v0
    • Unitree G1
    • flat terrain
    • velocity tracking
    • -> の学習環境を使います。
  • --num_envs 64
    • G1 を 64 体並列でシミュレーションします。
    • 各 env で経験を集めて、まとめて PPO 更新に使います。
  • --max_iterations 50
    • PPO の learning iteration を 50 回だけ回します。
    • テスト向けのかなり短い設定です。

上記を実行すると、以下のように学習が走り始めます。ちょっと気持ち悪いですね🕷

私の環境だと 1 分ちょっとで終わりました。

# 中略
################################################################################
                        Learning iteration 49/50                        

                       Computation: 1493 steps/s (collection: 0.993s, learning 0.036s)
             Mean action noise std: 1.00
          Mean value_function loss: 0.0146
               Mean surrogate loss: -0.0481
                 Mean entropy loss: 52.5115
                       Mean reward: -5.82
               Mean episode length: 39.06
Episode_Reward/track_lin_vel_xy_exp: 0.0080
Episode_Reward/track_ang_vel_z_exp: 0.0025
       Episode_Reward/lin_vel_z_l2: -0.0022
      Episode_Reward/ang_vel_xy_l2: -0.0489
     Episode_Reward/dof_torques_l2: -0.0024
         Episode_Reward/dof_acc_l2: -0.0052
     Episode_Reward/action_rate_l2: -0.0163
      Episode_Reward/feet_air_time: 0.0002
Episode_Reward/flat_orientation_l2: -0.0136
     Episode_Reward/dof_pos_limits: -0.0003
Episode_Reward/termination_penalty: -0.2000
         Episode_Reward/feet_slide: -0.0047
Episode_Reward/joint_deviation_hip: -0.0028
Episode_Reward/joint_deviation_arms: -0.0036
Episode_Reward/joint_deviation_fingers: -0.0020
Episode_Reward/joint_deviation_torso: -0.0010
Metrics/base_velocity/error_vel_xy: 0.0953
Metrics/base_velocity/error_vel_yaw: 0.4794
      Episode_Termination/time_out: 0.0000
  Episode_Termination/base_contact: 1.0000
--------------------------------------------------------------------------------
                   Total timesteps: 76800
                    Iteration time: 1.03s
                      Time elapsed: 00:00:50
                               ETA: 00:00:01

Training time: 51.31 seconds
[66.762s] Simulation App Shutting Down

推論

上記が終わると、~/lab/IsaacLab/logs/rsl_rl/g1_flat/2026-10-03_17-53-32_test/model_49.pt という policy が出来上がり、この policy を使って歩行ができるわけです。

前回同様、humanoid repository で今回学習した policy を動かしてみましょう(まぁほとんど学習できてないので歩けないのですが)!

cd ~/lab/humanoid
git checkout 0.0.2
python3 isaac/g1/keyboard.py --checkpoint ~/lab/IsaacLab/logs/rsl_rl/g1_flat/2026-10-03_17-53-32_test/model_49.pt

歩けないことの確認ができました!笑

まとめ

  • IsaacLab での歩行 policy の強化学習方法をまとめた。
  • 短い step 数の学習では歩けないことをしめした。

コメント