Whoops within whoops.

ひょんな事からドローン店長になっちゃったけどすぐ辞めた人のブログ

Tiny Whoop的な簡単な素人PID解説

雪見ドローン@Kyoto Research Park

自作Tiny Whoopで作った後にぶつかる壁、PID。 まずは自分のを晒してみる

左からPID
Pitch : 80 / 80 / 60
ROLL  : 90 / 90 / 70
YAW   : 180 / 45

機体の構成によって大きく変わる部分もあるけど、まずはこれが安定していて汎用的かなと思ってる。 とりあえずまともに飛びそうなものに設定したい人は上のでだいたい動くと思う。

工学的数学的に完全に素人による勘と経験からの解説は続きを読んでみてください ↓

P I Dなんでいるの?

プロポが送った理想的な姿勢に、現実のドローンがあとから追いつく。 その際にどういう風にその姿勢に行くかってのがPID。

例えば風がビュービュー吹いててドローンが常に右に傾きそうになってる時に、プロポで右に傾けたら回り過ぎちゃったりする。 そういうのを見越して調整して、自然に姿勢変更が出来る様にすべく、PIDは常に頑張ってくれてる。

Pとは

プロポからの指令(以下、指令)に対してどんだけの強さで反応するか。 ここは強ければ強いほどいいです。 でも強すぎると、機体が震えだす。 ここは鉄板があって、その震えだすギリギリの値にすると良い。

Iとは

過去のエラーの累積を見た修正値。 ここは低ければ低いほど良い。 低すぎるとホバリングしてるだけなのに前に行ったり後ろに行ったり回ったりする(ドリフト/drift)。 なので、ホバリングしてたり飛行していて勝手に動いちゃうのが気になったら数値を上げると良い。 前後に動くのはPITCH、左右はROLL、回転はYAWそれぞれが対応している。

Dとは

過去のエラーの変化からくる修正値 つまり、これからどう変わるかを予測するすごい奴。 低ければ低いほど良い。 低すぎるとロールやピッチを切った時に振動する。 高くするとその振動は消えるけど、カーブの際に振動してしまう様になったりする。 プロプウォッシュと呼ばれる、いきなりガタガタして落ちちゃう現象を改善出来たりする。

チューンしてみよう

まずは適当に

Pitch : 80 / 45 / 24
ROLL  : 90 / 48 / 28
YAW   : 180 / 45

P値が全体的に高くて、YAWに至っては180もある。これ、普通のレーサードローンからすると普通じゃないみたいです。 でもこういう先人からの知恵はありがたく頂いておきましょう。 この設定でも屋内など、無風状態だといい感じになります。

Pをチェックする

ホバリングしたり適当に飛んでみる。 震えてなければOK。

Dをチェック

ピッチやロールを強く切ってみる。 その際にプルったりしたら、数値をあげてみる。

Iをチェック

飛行していて左右や前後に勝手に動いてる気がしたり、上下にホバリングしてるだけなのに勝手に左右前後動いちゃう時に数値を上げる。

飛行チェック

カーブとかしたり、ゲートをくぐったりして操作性をチェック。 違和感あったら I と D を設定

一旦以上

ロボットや数学的な知識はないですが、半年間やってみて得た経験を元に書いてます。 ひじょ〜にガタガタで嘘も入ってそうなので、詳しい人教えて欲しいし、 まだまだ深そうなので、いろんな人の話を聞いて詳しく知りたいです。