ここのところずっと打ち込んでいるのは、逆さ振り子です。

ミニ四駆などで使われているような普通の直流モーターに、振り子(木の板)を直接取り付けています。

モーターの電圧はプログラムで逆転でき、瞬時に好きな方向にトルク(回転させる力)をかけることができます。

目的は、振り子を上側に上げて姿勢維持をする事なのですが、この問題の面白いところは、トルクが弱いところにあります。

振り子が下にある時に、どちらかのトルクを連続で与えるだけでは振り子は上まで持ち上がりません。ブランコのように左右のトルクを上手くスイッチして反動をつける必要があるのです。

振り子の角度を毎時刻知ることができるようにしてあり、その情報をもとに、上手く振り子を立たせて下さいという問題です。

強化学習という学門分野では、倒立振子と呼ばれる定番のお題で、シミュレーションでよくやられているのですが、今回、実際に作ってみました。

思ったよりも難しく、まだ、立っていません。。