n_shinichi’s blog

★記事一覧★から見てください...(すみません、メニュー、リンク、カテゴリー分けがうまくできてません) 日々の備忘録、誤記多し... 名古屋大学:非常勤講師、小学5年生:電磁石単元理科講師、学生フォーミュラ:EV技術指導員、魔改造の夜:Dンソーアドバイザ、CQ出版_Interface:制御技術関連執筆

MENU

連続回転型サーボ FS90R v.s. SG90-HV

黄色のM5StickC_Plus2で倒立振子ロボを作ろうとしたら

赤い旧型のM5StickC_Plusと同様にして・・・ではできんことが

先日紹介したみたいに簡単にはいかんことがわかった...

 

赤の旧型スケッチ制御仕様のままで、ハードの違いを修正した

スケッチを書き込んで立たせようとすると最初のサーボの動き始めの一瞬で

気絶して倒れてしまいます。

 

 

でもって、倒れた時の状態がただ電源をOFFしたのとは違う状態になってて、

電源ボタンを押しても蘇生しない...orz

USB電源を挿さないと蘇生しない。これはどうにも使いにくい。

 

現状の倒立制御の動作としては最初の一発目が一番負荷が高くなってます。

サーボモータを過渡的にはステップ状に駆動しようとする格好に近い。

どういうことかと言うと・・・

 

倒立振子の基本のバランス制御は簡素な構成のスティックくんでも

  教本とかでよくある通りで 2つだけ。

 1.十分に応答できる大き目の角度偏差の比例項と、

 2.それを発振させないように行き過ぎた過度な動作にブレーキを掛ける微分項です。

 重心点で基準がほぼあってればとりあえず立つだけならそれだけでいけます。

 ただ、実際には真の重心点位置の角度をゼロ基準には設定できてなくて、

 ちょいとくらいはズレてるので...定位置にはいられなくて移動してしまうことがよくあります。

 真の重心点をゼロ点にできてたなら移動することなく定位置で立ちます。

 

ズレてるから移動する・・・移動の程度は真の重心からのズレにおよそ比例

 するので、、、その移動量でフィードバックを掛けてやれば

 重心ズレを補正できるってことになります。

 

話がそれたです...

最初、およそ、重心垂直に置くのだけどわずかにはズレてます。

なのでこの時、

 比例項ゲインで駆動する演算値があります。

 たいていこれは十分に早く応答させたいので大き目の値です。

で、微分

 起き上がり戻しが過剰に効く分を抑え、倒れこみ速度にもいち早く応答させます。

 

バランスを取って立ってる時は・・・

 大き目の比例項を十分な微分ブレーキが常にバランス取って打ち消して

 ほどよいサーボ駆動出力で動いています。

 サーボの最高速の半分以下くらいで振動回転って感じ。

ステップ状の駆動力を掛けるとかないので消費電流もかなり小さいです。

 100mA程度かな。

 

その、、、立たせ始めの駆動ではブレーキ的に作用する微分項が働いてないので・・・相殺する駆動力が働かない・・・ステップ状に駆動しようとしてしまいます。この時は一瞬、ストール相当に負荷が掛かるのでサーボ1個が0.5A程度、2個で1A程度電流が流れます。 でもってそれは定常的に見れば過電流なんだけどそれの処理が新型のM5SticKC_Plus2ではうまくいってなくてマイコンが気絶してしまうようです。

 

今まではDCDCコンバータで作られた5Vを電源に使ってたけど

 電源が落ちるなら、場合によってはバッテリ電圧直で3.7V近辺で動かすのも考えた方がいいかもしれない。

 

回路図の通り、バッテリ端子が直なら正常なLipoなら200mAh1A程度流れてもそこそこ電圧低下は小さく済みそうな気がします。電池の電圧変化での影響がどんなもんか見とかないといけないけど。

 

サーボの駆動、これを機会にもーちょっと

 丁寧に調べてサーボの駆動補正とか考えてみるかな。

 

ちなみに。。。 ちなみに・・・、は変かもしれんけど、

 モータドライバを使うならその上記一連の手間はいらないです。。。

 モータの駆動を直に制御できるので滑らかに加速するとか簡単。

 応答遅れがほぼ無視できるほど小さい。msオーダーなので。

 連続回転型サーボではそれが難しい。。。です

 

4年前にプロトペディアに載せたこちらにも書いてるけど、

 たとえばこれの右構成とか。最初はDRV8830よく使ってた。

 実はA,Bの費用差はそんなになくてタイミングによってはBの方が安いです

protopedia.net

 

 

でも...ま、 今回は ハード構成はお手軽にして、それによって

 動作がしょぼくなるとこをソフトウェアとかでカバーするってのでいろいろ

 やってみるとします