Mini Pupper2 ros2 4足歩行 Policy 強化学習 4
Mini Pupper2 ros2 4足歩行 Policy 強化学習 第4弾
Policy を、MlpPolicy から、LSTM 版の MlpLstmPolicy に替えてみた。
こちらは、時間記憶があるそうじゃ!!
これになると、Policy が本当に狡猾になるみたい。
注) これは、google ai の、PPO のパラメータ誤りの所為で、問題ない。
また、train が、重くもなるみたい。
当初 fps:7 程度しか出なくて、しかたなく、Gazebo の 周りの Obj を全て削除して、
更に、Gazebo を、4倍速で回して、ただし、見た目は、4倍速ではなくて、少し速くなった程度。
これで、やっと、fps:14 ほどになった。
train が進むと、fps:23 になった。
PPO のパラメータでの注意!!
下記は、間違い。当初 google ai の言われるままに、下記で、train していたが、1歩目から、2歩目以降が、一向にでない。
sde_sample_freq=4
にして、やっと、pupper が動き出した!!
2. もう一つべつのアプローチが、あった。
SB3 PPO で、4足向け 強化学習ばかり試して来たが、
Google ai に聞いたら、最初、模倣学習で、そのあと 強化学習の方法もあるらしい。
なにー!!
それなら、こちらが断然楽なのでは?
強化学習では、変に早足だったり、伏せの姿勢が付きやすい!!
第2段の、Locomotion Transformer が、この方法でできるみたい。
どうするかね?
最初、Ros2 Gazebo 上で、Mini Pupper2 を、/cmd_vel や、Nav2 で動かして、bags ファイルに、
エピソード毎に、データを収集して、
それを、模倣学習に使えば、出来るとのこと。
うーーん、面倒じゃな!!
Locomotion Transformer で模倣学習(Imitation Learning) は、過去の時系列データ数 steps が必要みたい。
ここには、どうやら、LeRobot Dataset(過去と未来のデータが扱える) が使えるとの事じゃ。
Ros2 Bags の収集と Ros2 Bags to LeRobot Dataset 変換は、以前、散々試した。
フィジカルAi で ROS2 自立走行ロボットを動かす。#2
ここの、Python コードが流用できそう!!
なんとなく、実現できそう!!
最初から、強化学習するのは、本当に時間がかかるし、PC のリソースも強力なのが必要!!
でも、最初、模倣学習から入れば、もっと時間の節約になりそう!!
なんなら、模倣学習だけでも良い気がする。
模倣学習だけで、Mini Pupper2 を、最初動かしてみて、問題があれば、強化学習させるか、
再度、 Bags データを補強して、模倣学習を行うか!!
こりゃ、選択肢が、増えすぎてこまる!!
しかし、これでも、階段の走行は、できないか!!
大雑把な話だけど、階段を走行するには、足が空を切っているか、接地しているかの情報が必要みたい。
その判定は、モーターのトルクを使うようじゃ。
モーターのトルク等を、EKF に入力して、4本足が接地している確率を 0.0 - 1.0 で求めて、
それを、Policy の observation に使うみたい。