1関節ロボットによる逆振り子理論の検証

以下の記事の元になっているのは、この論文である
早朝から、アルミの板と棒を切ったり穴開けたりしながら、この間議論してきた理論を実証すべく、自由な関節を1個だけ持ったロボットを作った。たくさんのボルトやナットを使ったが、一時期、電子工作に凝っていたので、その時のものでほとんど間に合わせた。
「冷蔵庫にあるものでラーメンを作った」という感じのロボットだ。
いや、「これはロボットではない」と言われればあえて否定しないが、自分では、私が自分で作った最初のロボットの筐体だと思っている。脳はあるが、まだ知恵は何も入っていない。あえて名前をつければ、AiComedian ver.0.1 である。アイコメと呼ぼうか。
アルミの縦棒が机についているあたりに、アルミの横棒があり、それらをつないでいるのが横方向にだけ自由に回転する関節、ジョイントである。
横棒には、前後に倒れないように4ミリのアルミ棒が左右に二本つけられている。だから、この縦棒は、左右にしか動かないのである。
ただし、今こうして立っているのは、上部に二つのサーボモータがついていて、下の横棒との間に0.3ミリのステンレス線が張ってあるからである。
さらにその上には、コンピュータ( RaspberryPi)と3軸加速度センサー、I2Cによるサーボコントローラを乗せたアルミの板がある。
サーボは、水平角度を0度として運用しているが、およそであって、今の状態は、手前のサーボ(1番)がサーボの角度で0度、向かいのサーボ(0番)がサーボの角度で+3度でほぼ釣り合った状態になっている。サーボの角度を下向きに変化させると、縦棒は勢いよく倒れる。
C++で加速度センサーとサーボをコントロールするクラスを、それぞれに作ってあるので、センサーの検出した傾きから、サーボをコントロールして、逆さ振り子の状態を実際に創り出したいと思っている。
ことの成否は、転倒開始時に、加速度センサーがどんなデータを送ってくるかにかかっている。