
ROBSTRIDE 05 倒立振子を強化学習で楽しむ1
本記事にはアフィリエイト広告が含まれます。
以前に制作したQDD Robstride 05 を用いた倒立振子を強化学習で楽しみたいと思います。
Robstride 05 倒立振子 pic.twitter.com/AhgOQN9DT1
— HomeMadeGarbage (@H0meMadeGarbage) February 23, 2026
まずは倒立動作を学習して、走行コントロールの学習などにもチャレンジしたいと考えております。
目次
機体復活
まずはQDD 1輪 倒立振子を復活させます。
コントローラはIMU内蔵のATOM Matrixを採用し、CAN通信でモータを動かします。
電源系は以下のとおり
3セルLiPoバッテリ 11.1Vをマイコン用に5V降圧、QDDモータ用に39V昇圧して供給
完成
無事に復活
Robstride 05 倒立振子 復活 pic.twitter.com/fB2kTzxXxd
— HomeMadeGarbage (@H0meMadeGarbage) March 7, 2026
モータは速度モードで駆動しておりモータ内部の速度制御器 (回転速度→モータ電流)のパラメータはいじらず初期値を使用しました (PI制御らしい)。
倒立振子自体の制御は以下でゲインを調整して倒立制御
回転速度 = Kp × 姿勢角 + Kd × 姿勢角速度 + Kw × モータ回転速度
Robstride 05
これを強化学習でも楽しんでみようかと
今回は観測ベクトルにコントローラ入力も追加してみるのが目標真心こめた職人のパラメータ調整 vs. 強化学習
ファイト! pic.twitter.com/tlhE5htD9e
— HomeMadeGarbage (@H0meMadeGarbage) March 7, 2026
今回はまず倒立動作を強化学習させることを目指しますが、ゆくゆくはコントローラ入力も観測ベクトルとして学習を目指したいと考えております。
PSコントローラ pic.twitter.com/6D8IgEZLaH
— HomeMadeGarbage (@H0meMadeGarbage) March 7, 2026
倒立動作 強化学習
復活した倒立振子を用いて倒立動作の強化学習を目指します。
流れは以下の素晴らしい強化学習入門レシピと同様に進めます。
- MuJoCoモデル制作
- 倒立振子モデルでSim.上で手動PD制御倒立動作
ここでSimモデルを実機と比較して調整 - 倒立動作 強化学習実施
- Sim2Real
学習ポリシーを実機に移植して動作確認
MuJoCoモデル制作
学習用モデルをFusion360で製作します。
モデルは MJCF(MuJoCo XML)フォーマットで記述して形状をSTLファイルで取り込んで実機で測量した重量などの情報を書き込んで制作します。
モデル完成!
物理モデル完成
課題1
①速度指定のアクチュエータに変更検討
(現状はトルク指定)
②手動パラメータ調整でSim上で倒立#MuJoCo pic.twitter.com/UTqGzrlGTs— HomeMadeGarbage (@H0meMadeGarbage) March 7, 2026
実機ではRobstride 05 の速度モードで動作させているのでモデルのモータにはMuJoCoの<velocity>アクチュエータを採用しました。
速度を指定して回転させます。
Sim2Real#MuJoCo pic.twitter.com/VAdidmkRnP
— HomeMadeGarbage (@H0meMadeGarbage) March 8, 2026
手動倒立Sim.
制作したモデルを実機と同じようにSim上でゲイン調整して倒立させました。
Sim上でPD制御して見事倒立#MuJoCo pic.twitter.com/BK2szHZeV7
— HomeMadeGarbage (@H0meMadeGarbage) March 8, 2026
以下でモータ回転速度指定して倒立制御
|
1 |
vel = Kp * 100.0 * theta_y + Kd * omega_y + Kw * wheel_speed |
ここで倒立制御をさせながらモータのモデルも調整しました。
<velocity>アクチュエータのパラメータは以下のようになりました。
|
1 2 3 |
<joint name="wheel_hinge" type="hinge" axis="0 -1 0" pos="0 0.005 0.0274" damping="0.001"/> <velocity joint="wheel_hinge" ctrlrange="-50 50" kv = "0.01" gear="1"/> |
Robstride 05 の最大トルクと最大回転速度を考えるとパラメータKvは0.11となります。
しかしSim上の倒立動作を実機と比較したうえでKv = 0.01としてモータをモデリングしました。
倒立振子 Sim. vs Real
モータのモデル化すこしまだ怪しいけど
強化学習いきますかぁ#MuJoCo #SimpleFOC pic.twitter.com/K2WqdL5Tox— HomeMadeGarbage (@H0meMadeGarbage) March 8, 2026
モータ供給電圧も定格より低い39Vですし 実動作でMaxトルクは出ないので妥当な値と考えます。
強化学習
モデルが完成したので倒立動作の強化学習を実施します。
学習環境は以下の通り
MuJoCo + Gymnasium + Stable-Baselines3 (PPO)
観測 (入力):3 次元(姿勢角・角速度・ホイール回転速度)
アクション (出力):1 次元(ホイール回転速度)
報酬 (reward) は以下の通り
|
1 2 3 4 5 6 7 8 9 |
theta_n = theta / theta_max omega_n = omega / omega_max wheel_n = wheel_speed / wheel_max reward = ( - theta_n**2 - omega_n**2 - wheel_n**2 ) |
各重み(_max)を調整しつつ姿勢角(theta)、姿勢角速度(omega)、モータ回転速度(wheel_speed) がゼロになるように報酬を与えて学習します。
1発目の学習結果
強化学習結果 Sim2Sim
もう少し頑張ってほしい#強化学習 #ReinforcementLearning#RL #MuJoCo pic.twitter.com/Ob5lLW7IZ3— HomeMadeGarbage (@H0meMadeGarbage) March 8, 2026
学習は30万ステップほどで実施しました。もう少し安定させたいです。
モータ回転抑制のためにwheel_maxを調整して重みを増して50万ステップ学習
なかなかいい強化学習結果を得た
私の真心にも近いと言っていいでしょう(AIのくせに)コレでSim2Realいってみよかぁ
今回 MuJoCo の velocityアクチュエータはじめて使ってるから結構手戻りありそうな予感#強化学習 #ReinforcementLearning#RL #MuJoCo pic.twitter.com/ah5RJqEypz— HomeMadeGarbage (@H0meMadeGarbage) March 8, 2026
なかなか良い結果を得ました!!
Sim2Real
満足な強化学習を得たので実機でSim2Realします。
学習ポリシー (ニューラルネットワーク) をAtom Matrix (ESP32) に移植するために配列に変換します。
姿勢角、姿勢角速度、ホイール回転速度をこの配列(ニューラルネットワーク)に入れると学習済みのモータ回転速度が導出されます。
移植した学習ポリシーで倒立動作を確認
Robstride 05 倒立振子
Sim2Real
学習結果をESP32に移植して見事倒立チューニングなしにスケーリング値も丸々移植して問題なく動いたのでSim.モデルが実機と大きな差がなかったのだと安心#強化学習 #ReinforcementLearning #RL #MuJoCo pic.twitter.com/hBKkEUFINV
— HomeMadeGarbage (@H0meMadeGarbage) March 8, 2026
見事に倒立動作が実現されました。
全くのチューニングなしでそのままの移植で倒立したのでかなり驚きました。
はじめてのMuJoCo velocityアクチュエータ使用だったので不安だったのですが、実機とSimモデルで大きな差異がないのだと言えます。
機体がモータ1個で単純ですし、丁寧に段階を踏んで進めているのが効いています。
真心とセンスです。
ひとまず第一段階としてQDD倒立振子の安定倒立 強化学習が実現できました。
倒立を強化学習した結果のSim2Sim
学習ポリシーを実機に移植してSim2Real#強化学習 #ReinforcementLearning #RL #MuJoCo pic.twitter.com/9XC25yqT2m
— HomeMadeGarbage (@H0meMadeGarbage) March 8, 2026
おわりに
ここでは強化学習による Robstride 05 倒立振子の安定倒立動作を実現しました。
次は観測ベクトルにコントローラ入力を導入して前後進走行の強化学習を目指したいと考えております。
日々成長をめざしてがんばります!!







