強化学習への道4 -ロボットSimモデル作成-

Home > 電子工作 > 強化学習への道4 -ロボットSimモデル作成-
すき 0
うんこ 0

前回はブラシレスモータによるリアクションホイール姿勢制御モジュールの強化学習結果を実機に移行してSim2Realを楽しみました。

強化学習への道3 -Sim2Real-

実機でも倒立動作を確認することができ強化学習の有用性を体感することができました。

ここでは同じブラシレスモータを用いた2足歩行ロボットの強化学習を目指してシミュレーションモデルを制作しましたので報告いたします。

2足歩行ロボット

強化学習の次のテーマは製作途中となっていた1脚4自由度の2足歩行ロボットです。

シリアルリンク 2足歩行ロボットの製作3 ー 足踏み動作 ー

 

足踏み動作までは確認済みです。

 

強化学習によってこのロボットの各種動作の生成を目指します。
前回の姿勢制御モジュールで得た知識が大いに活きるのではと考えております。

まずは片足から

まずは片足のかかと動作をMoJuCoで確認しました。
姿勢制御モジュールの時と同様にFusion360の設計STLファイルを取り込んでつなげるだけだろと考えておりました。。。

しかし。。。またアクチュエータ動作を仕込んでないのに勝手にホイールが暴れたり
接触していないはずのスネまで勝手に動く始末。。。

この謎の動作に苦しみ、足元の1関節のモデルを作るだけでかなりの時間を消費しました( ノД`)

Xで教えてもらった

上の動画をXにアップしたところ有識者の方にいろいろ教えていただきました。

モデルが接触してるのではないとのこと
MoJuCoで”c”入力で接触が可視化されるらしい

 

モデル同士はCADデータ上では接触してないんだけどなぁと思いつつ
教えてもらった通りに見てみると。。

なぜか接触してた。。

なんでだろ?当たり判定がCADモデル寸法より大きいのかな???
これを報告すると

< exclude >で衝突を無効化できるとのこと

以下のようにモータのホイールとスネモデルの接触を無視するように指定

 

無事に解決し異常動作はなくなりました!

 

教えていただき本当にありがとうございました。
コレは絶対に自分では解決できなかった。

完成

モータの設定も記述して足元モデルが完成

実機ではブラシレスモータに小さいギア(歯数10)でスネ(歯数56)を動かしているのですが
シミュレータで物理的にギア接触動作はできないので equality / joint機能でソフトで数理的にギア比を指定して処理しました。

 

スネと足底の接続部の joint の 摩擦は適当に damping=”0.01″ としました。
この辺はSim2Realの段で詳細調整かなと考えています。

 

PythonでPIDで角度指定して動作させてみました。

Simのモータのトルク定数と回転部の摩擦は前回の姿勢制御モジュールの時の値をそのまま使用しました。

PID値も適当でモデルが実機とどこまで合っているのか判断難しいですが、
一旦これでロボット組みます。

おいおい調整しますー

ロボットモデル制作

足のモデル制作でかなり手こずりましたが、あとは同じ作業の繰り返しですので
ロボットを組んて行きます。

両足完成

 

ロボ完成!

 

PythonのPID角度制御で全モータ0°設定で立つことも確認できました。

MJCF

参考までにロボの MJCF (MuJoCo XMLフォーマットファイル)

おわりに

ここではブラシレスモータ2足歩行ロボットの強化学習シミュレーション用のモデルを制作しました。

次回はいよいよロボットの強化学習を実施します。
今のところどうなるのか全く想像もつきませんが、いつものことなので気にせず邁進します。

それではまた

コメントはこちらから

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.