SSブログ

【悲報】SPR倒立振子の反省点途中まとめ(+モータードライバ死亡(´;ω;`)) [ロボット]

SPRESENSEで倒立振子にチャレンジしようと思い作っていたモータードライバを焦がしてしまいました。うっかり電源を逆に差した瞬間にプシュー…(・・)


sDSC_1320.jpg


今、手持ちの予備のモータードライバはなく、相変わらず私はテレワークなので、買い出しに行くきっかけもなく、しばらくお預けになりそうです。惜しいところまで来たのですが残念。


sDSC_1321.jpg


ただ、ここで倒立振り子を作る上での注意点ならびに設計の肝が分かってきたので、少しまとめたいと思います。


■ 倒立振子の重心は下のほうに!
メカを検討する際は倒立振り子の重心は下の方にいくようにしましょう。私の機体は上に回路やバッテリなどを当初置くようにしていたのですが、トップヘビーになりすぎてバランスがとれませんでした。

冷静に考えればすぐに分かるのですが、重心に上にあると倒れるときの速度が早く、反応の鈍いDCモーターでは追従できません。センサーの反応が早くてもモーターが反応できないので制御はできません。


■ センサーの位置は重心近くに!
センサーの位置が上にあると、倒れるときに加速度センサーの値が大きくなり、制御が過剰に反応します。倒立振子の場合、細かい角度に反応するようにするためPIDの係数は大きくなりがちです。そのため、ちょっとの変化に大きく反応してしまいます。

重心に近ければ加速度センサーではなくジャイロの変化が支配的になるので、制御しやすくなります。


■ DCモーターには電圧可変出力のモータードライバで
今回、DCモーターの制御はFETを経由してPWMで出力するドライバを使いました。PWMだと微小な値の場合、DCモーターを起動する電力が不足するため、最初に十分な電圧を加え、その後、パルスを送るようにする必要がありました。

このような制御だと連続して前後に変化する値の場合は、DCモーターの反応が悪いので一瞬ブレーキがかかるようになってしまい、スムーズな動きを実現するのは極めて難しかったです。

またモータードライバとPWMの関係もリニアではないため、非線形にモーターを制御する必要があります。倒立振子のように微妙なバランスを取るために微小パワーで正負制御する用途には向かないようです。

DCモーターを制御する場合は、DRV8830のようにインターフェースから数値を指定して出力電圧を変化させるモータードライバを選択したほうが無難かも知れません。


■ 制御間隔を短くすればいいもんでもない
DCモーターは反応が悪いです。ですのでセンサー処理がいくら早くフィードバックしてもモーターがついてこれません。今回使ったモータードライバはモーターの駆動に癖があるのでそれで時間がかかってしまいます。

また、逆方向に動かそうとしても、PWMでは慣性力をはるかに上回るパワー(パワー0になる期間があるため)が伝えられないため、俊敏に動かせません。モータードライバの癖にあわせて制御間隔を調整する必要がありそうです。


■ PID制御式の選択
今回は、PID制御の式は次の2種類について試してみました。

一般的なPID制御式

\[
Power(t) = KP (\theta (t) - offset) + KD \int_0^t (\theta(t) - offset)\,dt + KI \frac{d (\theta(t) - offset)}{dt}\
\]

センサー値を使ったPID制御式

\[
Power(t) = K1 (\theta(t) - offset) + K2 \omega(t) + K3 \nu(t) + K4 \int_0^t \nu(t)\,dt
\]

ここでθは車体の傾き。オフセットは傾きの初期値、ω は角速度、v は並進速度になります。

両方ためしてみたのですが、どうもセンサー値を使ったPIDの制御式のほうが安定するようです。ただ、センサー値に敏感に反応するのでセンサーは重心に近いところに置いたほうが無難です。


■ フィルターはMadgwickのほうが良い?
SPRESENSEはサブコアがあるのでフィルタ処理は計算し放題だったので、Kalman、Madgwick、Complemntary の三種類を同時に処理して値を返すようにしました。

Kalmanフィルターは遅延があるので、トップヘビー+FET型モータードライバというハンディキャップがある中ではかなり苦しみました。

Madgwickフィルターは微小な変化には反応が早いので倒立振子には向いてそうです。ただ、大きな変化では収束に時間がかかるので、扱いにはやや注意が必要です。


以上の反省点をふまえ、SPR倒立振子2を検討したいと思います!
( ・ิω・ิ)





Arduino電子工作: 2輪自立ロボットカーの製作

Arduino電子工作: 2輪自立ロボットカーの製作

  • 作者: 大西 和則
  • 出版社/メーカー:
  • 発売日: 2019/08/21
  • メディア: Kindle版






倒立振子制御学習用ロボット ビュートバランサー2 [学習教材] [vstone]

倒立振子制御学習用ロボット ビュートバランサー2 [学習教材] [vstone]

  • 出版社/メーカー: Vstone(ヴイストン株式会社)
  • メディア:




nice!(24)  コメント(0) 
共通テーマ:趣味・カルチャー

nice! 24

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。