2足歩行ロボット HM-01 の強化学習1

Home > 電子工作 > 2足歩行ロボット HM-01 の強化学習1
すき 0
うんこ 0

先日 公開した 2足歩行ロボット HM-01 のMJCFファイルを用いて機械学習を実施しましたので報告いたします。

公開 MJCFモデル詳細はコチラ↓

予算3万円でつくる BLDC 2足歩行ロボット 第7号ー2足歩行ロボットのMJCF大公開ー

 

ロボットの強化学習については以前シリアルリンク型のロボット (HM-02 プロトタイプ) で実施しました。

強化学習への道7 -ロボット強化学習3-

直立バランス動作を学習させてSim2Realまで確認できましたが、非力なPCによる計算や報酬設計に時間がかかりかなり疲弊してしまいました。

本当は足踏みバランスなどもやりたかったのですが、この時点でもう強化学習は懲り懲りとなり頓挫してしまいました。

 

あらためてHM-01で強化学習に再挑戦する気なったので報告いたします。

 

AudiostockでBGM・効果音を販売中!

学習高速化

前回の強化学習トライ時には学習計算に時間がかかり疲弊してしまったので、ここでは計算高速化について検討します。

MuJoCo Playground

GPUで物理シミュレーションや学習ができるという触れ込みのMuJoCo Playgroundの導入を検討しました。

GPUによって強化学習計算を単純に並列処理するのではなく物理・報酬計算を配列化して一挙に計算できるため超高速化されるとのことです。

 

我が家のRTX4060搭載マシンにWSL上でUbuntu環境を導入してMuJoCo Playgroundをインストール
 https://github.com/google-deepmind/mujoco_playground/

MuJoCo Playgroundインストールで導入される Berkeley Humanoid で学習を検討します。
 ↓Berkeley Humanoidモデル

 

以下を参考に歩行動作の学習を実施してみました。
 https://github.com/google-deepmind/mujoco_playground/tree/main/learning

学習結果として上の動画と 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の直立バランスを学習させてみました。

 

おわりに

この度 2足歩行ロボット HM-01 での足踏みバランス動作を目指して強化学習の実施を決意いたしました。

ここでは強化学習の計算時間短縮をめざしてGPU活用とCPU並列化の確認を実施しました。
Sim2Realまでの一貫実現のためにCPU並列化での実施を採用しました。

 

次回は HM-01 の足踏みバランスを目指して強化学習を実施します。
試しに直立バランス学習に足を交互に上げるように報酬を与えて学習してみました。

うーん。。全然だめですね。
真面目に論文を調べて勉強しようと思います。

それではまた。

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください