
2足歩行ロボット HM-01 の強化学習1
先日 公開した 2足歩行ロボット HM-01 のMJCFファイルを用いて機械学習を実施しましたので報告いたします。
公開 MJCFモデル詳細はコチラ↓
ロボットの強化学習については以前シリアルリンク型のロボット (HM-02 プロトタイプ) で実施しました。
直立バランス動作を学習させてSim2Realまで確認できましたが、非力なPCによる計算や報酬設計に時間がかかりかなり疲弊してしまいました。
本当は足踏みバランスなどもやりたかったのですが、この時点でもう強化学習は懲り懲りとなり頓挫してしまいました。
あらためてHM-01で強化学習に再挑戦する気なったので報告いたします。
目次
学習高速化
前回の強化学習トライ時には学習計算に時間がかかり疲弊してしまったので、ここでは計算高速化について検討します。
MuJoCo Playground
GPUで物理シミュレーションや学習ができるという触れ込みのMuJoCo Playgroundの導入を検討しました。
GPUによって強化学習計算を単純に並列処理するのではなく物理・報酬計算を配列化して一挙に計算できるため超高速化されるとのことです。
我が家のRTX4060搭載マシンにWSL上でUbuntu環境を導入してMuJoCo Playgroundをインストール
https://github.com/google-deepmind/mujoco_playground/
MuJoCo Playgroundインストールで導入される Berkeley Humanoid で学習を検討します。
↓Berkeley Humanoidモデル
RTX4060 ならそれなりに動くね pic.twitter.com/RSjX3zbg76
— HomeMadeGarbage (@H0meMadeGarbage) September 29, 2025
以下を参考に歩行動作の学習を実施してみました。
https://github.com/google-deepmind/mujoco_playground/tree/main/learning
MuJoCo Playground
なんとか環境導入してBerkeley Humanoid 学習おためしまぁ歩き出したけどねぇ
これを自由自在に学習させれるかは疑問https://t.co/fqWPEMJ89H pic.twitter.com/xD05Jq4vlP— HomeMadeGarbage (@H0meMadeGarbage) September 30, 2025
学習結果として上の動画と Orbax形式 (orbax.checkpoint) のデータを得ました。
動画からは学習によってバランスをとりながら歩いているように見えます。まだフラフラですが
学習結果をMuJoCoでリアルタイムに表示させたかったのですが、 Orbax形式データの変換などの取り扱い方が全く分かりませんでした。
つまりSim2Simができませんでした。
Sim2Simができなければ学習結果の詳細吟味もできませんし、Sim2Realなんて到底無理です。
色々調べてみましたがSim2Simで頓挫となり MuJoCo Playground の導入はあきらめました。
CPU並列化
MuJoCo Playgroundの導入ができなかったので、以前の学習環境に戻すことにしました。
要するに “Gymnasiumベースの強化学習環境を、Stable-Baselines3(PPO )で学習” させます。
Stable-Baselines3にはSubprocVecEnvという複数のGymnasium環境をCPUで並列化して処理する仕組みがありました。
これまではSubprocVecEnvではなく、CPU並列実行できないDummyVecEnvを使用しておりました。
SubprocVecEnvによってGPUほどではないですが、計算が劇的にはやくなったので、以後この環境で強化学習を進めることにします。
CPU 8コアのPCで計算時間は1/4ほどになりました。
HM-02と同様にHM-01の直立バランスを学習させてみました。
いい感じ 実機で確認してみますかぁ#ReinforcementLearning pic.twitter.com/GyYxb5Hq0F
— HomeMadeGarbage (@H0meMadeGarbage) October 2, 2025
おわりに
この度 2足歩行ロボット HM-01 での足踏みバランス動作を目指して強化学習の実施を決意いたしました。
ここでは強化学習の計算時間短縮をめざしてGPU活用とCPU並列化の確認を実施しました。
Sim2Realまでの一貫実現のためにCPU並列化での実施を採用しました。
次回は HM-01 の足踏みバランスを目指して強化学習を実施します。
試しに直立バランス学習に足を交互に上げるように報酬を与えて学習してみました。
うーん。。#ReinforcementLearning pic.twitter.com/qDrFYonFcl
— HomeMadeGarbage (@H0meMadeGarbage) October 2, 2025
うーん。。全然だめですね。
真面目に論文を調べて勉強しようと思います。
それではまた。