■はじめに
以前書いた 「M5StickC UiFLOWのブロックプログラミングで倒立振子」 の改良版です。大幅に単純化され安定性も向上しました。たったこれだけのプログラムで夢の倒立振子。
■以前の記事からの主な変更点
①加速度とジャイロから計算していた姿勢をピッチ角ブロック一発で取得できるようにし、大幅にプログラムが短くなりました。
②キャリブレ操作不要になり、いきなり立たせられるようになりました。
③飛躍的に安定性が向上しました。これは推測ですが「ピッチ角」ブロックの内部で、高精度と噂の「Madgwickフィルタ」を使っているためではないかと思います。
(IDE版のM5.MPU6886.getAhrsData(&pitch,&rall,&yaw)関数は、Madgwickフィルタを使っている事を確認できています。)
■見よ、この安定感
ブロックプログラミングで倒立振子。#M5StickC #UiFLOW のピッチ角ブロックを使った超超簡単 #倒立振子 。なかなかの安定っぷり。Qiita投稿準備中。 pic.twitter.com/rF2IlQz29x
— Google Homer (@google_homer_) March 1, 2020
■車体の作り方は下記記事を見て下さい
実質500円&100Stepで作る超簡単「 ゆるメカトロ的 M5StickC 倒立振子」
■下記からブロックプログラムをダウンロードできます
BalanceCar(PitchVer).m5f
UiFLOWのブロックプログラムのシェア方法がわからなかったので、とりあえずGoogle Driveに上げてみました。アクセスできない場合は連絡下さい。これをダウンロードして、UiFLOWで読み込んで下さい
■調整方法
下記4項目をコツコツ調整して下さい。かなり根気いります。
■最後に
PIDロジック部の細かい作用については未だ腹落ちしていないのですが、今回姿勢推定を「ピッチ角」ブロックに委ねる事で、PIDロジックに集中できるようになりました。今後は、PID部の係数について簡単に調整する方法なども追及して行こうと思います。そして、もっともっと倒立振子のハードルを下げて行こうと思います。