PID制御とは、
・比例・微分・積分を使った制御だよ!
・ロボットの動きを安定させる(目標を定める)だよ!
・ライントレースにも使える。温度調整にも使われるよ!(フィードバック制御)
このPID制御は、「倒立振子」というロボットでも使われているよ!
特徴を、以下に列挙!
積分制御で、過去のずれの合計を制御する。
また、制御で起こる問題として、差があまりないと制御が弱くなる。
「定常状態」で、積分制御するとオフセットに対応できる。
逆に制御が強すぎると、「ハンチング」が起きる。
これに対して、制御を弱くすることが必要になる。すると、滑らかな動きになる。
「PID制御」は、モーターを使ったロボットで使われるぜ!
「倒立振子」のYoutube動画が流行っているぜ。マシンを大きく傾けると、車輪の回転速度が上がるぞ。つまり、目標から離れているときは、制御を強くして目標に近いときは、制御を弱くするのだ。
この制御の強さの割合は、「係数」の大きさを変えるだけでよいので、制御マシンの入門としてお勧めだぜ!
この倒立振子に必要な部品として、ジャイロセンサーが挙げられるぞ。これを、ArudinoやRasberryパイに実装させて、次回作ってみるぜ!!!
自分はハッカソンでステッピングモーターを使い、ミニクレーンを作った。
必要なモーターとして、「ステッピングモーター」が挙げられる。
ステッピングモーターは角度を指定して回転させることができる。特色は、以下である。
・位置制御は、モーターの角速度を積分するよ。すなわち速度を積分して、回転角度にするよよ。位置制御に関しては、フィードバック制御が可能で、速度の調整を行うことができるよよよ。
・原理としては、ローレンツ力の公式 F=qvBで表せられて、ローレツ力の向きはフレミングの左手の法則に従うよーん。
・回転角度がデジタル入力によるパルスの数に比例するので、位置(回転角度)の制御が容易であるよよーん。
次に、自作ロボットに実装させたい機能を挙げる。
・音声に反応して、動きを変えるっ!
「赤揚げて、白上げないで、赤揚げて!」の動きを実践させるっっ!!
この「~しない」をきちんと音声認識させないといけない。英語だと、”Don’t~”
で分かりやすいが、日本語の場合、文末まできちんと聞かないと意味が変わることがあるっっっ!!!
・姿勢制御に、四元数を使ってみる。Pythonで行列計算を行う!!!
クオータニオンを使うよっ!(メリットあり。複素数を使った計算。)
<以下、自作ロボット政策のその手順など、走り書き。>
ライブラリAnacondaをインストール →ライブラリが豊富。Matlab系・
import numpy as np
x = np.arange(0, 10, 0.1)
data[:, 1] >>> [1列目]
・・・
<動的システムとは!>
過去から現在までの⼊⼒で現在の出⼒が決まる。
→ メモリ必要 = 微分⽅程式
微分方程式→状態方程式(行列)→重み関数(インパルス入力)→複素フーリエ変換
・MatPlotで作図
・プラ版でデザイン、できれば用紙で模型ぽくしたい!
以上ですょ。記事を書いたことで、
マシンを作る気力が湧きましたぞ!
秋葉原ロボット部のブースで展示予定よ!お楽しみにっっっ!!!
参考文献
「倒立振子」小中学生向けPID制御 倒れないロボット作り 全編」
https://www.youtube.com/watch?v=cpGoYb0IzDY