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

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

前回は2足歩行ロボット HM-01 の足踏みバランス動作を目指して強化学習を実施しました。

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

足踏み動作をリファレンスモーションとして用意して外乱を与えてバランス学習しました。

それはそれは見事なSim2Realで強化学習の有用性を実感するとともに、手前味噌ですがシミュレーション用のモータモデルそしてロボットモデルが非常に良い精度で用意できたなと満足を得ました。

 

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

HM-02 強化学習

2足歩行ロボット HM-01 の強化学習が好感触だったので以前製作したシリアルリンクロボ (HM-02)のモデルでも同様に学習してみました。

 

シリアルリンクでダイナミックに足を動かせる分、足踏みがアニメのようでカワイくなりました。

これ本当に実機でも再現されるんか?

というわけで実機を用意してSim2Realしてみます。

 

機体修正

以前つくったシリアルリンクロボを強化学習したモデル時に近づくよう改修します。

シリアルリンク 2足歩行ロボットの製作12 ー 完成 the FINAL ー

 

かかとの機構を廃止します。

 

真心をこめて改修・製作

 

改修完了

 

ニューラルネットワーク移植

冒頭の強化学習結果のニューラルネットワークを改修したロボに移行します。

移植したネットワークでまずは股関節のみ動作させて味見

いい感じ♪

 

全足 駆動

見事に足踏みできてます。

 

ロボのCANシステムは以下の通り

各足のドライバにCANでモータ角度指定&エンコーダによる回転角度を中枢マイコンにCAN送信

 

学習結果のニューラルネットワークの構成は以下の通り

観測ベクトル(obs)14次元
・ピッチ角、ロール角 [rad]
・ピッチ角速度、ロール角速度 [rad/s]
・左足4軸の各モータの回転位置角度 [rad]
・右足4軸の各モータの回転位置角度 [rad]
・ sin(θ)
・ cos(θ)
 ※ θ = (2π ÷ 0.45秒) × time
  時間経過による周期フェーズをsin・cosに変換して入力することで、
  0と2πの不連続を避けて学習を安定化させています。

行動ベクトル(action)8次元
・左足4軸の各モータの回転位置角度 [rad]
・右足4軸の各モータの回転位置角度 [rad]
  各要素 -1.0 ~ +1.0 で正規化されて出力される
  学習時は50°をかけてスケーリング

 

Sim2Real

足踏み動作を確認

全然だめだ。。

 

機体修正2

実機のモータはコレ↓で

 

強化学習モデルのモータは  5010 360KV ↓なので

 

足モータをすべて 5010 360KV に戻します。

Sim2Real

モータ交換が完了したのでSim2Real実施

同様に全然ダメでした。。。
モータの違いが大きな要因ではないようです。

 

バッテリ搭載

学習モデルにはバッテリが搭載されていません。

これが実機でうまくいかない理由ですね。

 

ということでバッテリ搭載モデルを用意
重量も実機に合わせています。

強化学習

バッテリ込みのモデルで同様に足踏みバランス動作を学習させましたが。。

いろいろ試しましたがバッテリが重いため安定できませんでした。
実機の通りですね。

モータトルクが足りないようです。。(´;ω;`)

 

バッテリ搭載廃止

バッテリ搭載なしで動作確認します。
配線を延長して外部から給電します。

 

 

バッテリ搭載なしだと冒頭の強化学習結果のように足踏み動作ができました。

 

いろいろとやってきましたが結論としては、
本ロボのモータ機構ではトルクが足りず バッテリ搭載でのバランス足踏み動作は難しいということがSim.でもRealでも証明された
ということになります。

 

おわりに

ここではシリアルリンク機構の2足歩行ロボット HM-02 の強化学習によるSim2Realを検証しました。

結果的には良い結果を得ることはできなかったのですが、Sim. とRealの乖離はなく、ロボのMuJoCoモデルの精度は高いことは証明されました。

MuJoCoによる物理シミュレーションは有用で今後も設計や強化学習に使える自信となりました。

あとはやはり十分なトルクのモータや高出力のドライバが欲しいなぁという感想です。

 

コメントはこちらから

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

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