PIDゲイン調整のやり方

先の記事で興味が出て、PIDのゲイン調整を調べていたらいろいろ見つかってきた。
なんとなく追い込み方を見ていると、ジーグラ・ニコルスの限界感度法を使っているのではないか。
そしたらそういうのがいっぱい出てきた。
https://shizenkarasuzon.hatenablog.com/entry/2018/11/23/220124
やはりココでも P→D→Iの順番とある。
うーん、この治具つくって試してみたいな。
Tiny Whoop ぐらいのサイズなら別に難しくないし。

ログは Betaflight にある Blackbox を使うと取得可能。
取ったログは Blackbox Expolor を使うとビジュアル化できる。
https://tanukou.blog.fc2.com/blog-category-16.html
機体重量、ペラ形状、モーター特性あたりで、どうしても感覚だと限度がある。
これで実機体から追い込むことできそう。
数字で確認しながら進められるのはよい。
ま、最後は飛ばしたフィーリングが重要なのはいうまでもなく。
あとはそのあたりの言語化かなと。

おもしろい。

「Mockingbird」はなにをやっているか

https://fpvdrone.blog.fc2.com/blog-entry-142.html
Tiny Whoop 向けのセッティングで「Mockingbird」というプロジェクトがある。
inductrix FPV が Tiny Whoop の祖で、その操作感がすばらしいとのこと。
その操作感を BetaFlight で再現しようというのが Mockingbird(モノマネ)となる。

この機体の設定はコレだ!みたいな特定機体向けの細かい設定がいくつか出ている。
すべての設定項目を網羅した、ものすごいマニアックにつめた環境設定みたいなもの。
だが、特定機体以外はどうすればいいんだ。
ということで、Mockingbird の文脈を読んで理解してみることにした。

■操作感覚にかかわる部分
とりあえずココをやっておくと「Mockingbird 風」と思ってよいのではないか。

1.Props Out に設定する。
2.Profile2 を直線にして Angle に割り当てる
具体的には RC RATEと Super RATE を 0 にする。操作が直感的になる模様。
ただし Yaw だけ RC RATE を入れるとよい感じらしい。
Profile2にするのは共通にしておかないとスイッチレイアウトに影響あるので決め打ち。
3.スロットルの加算を行う。
エルロンとエレベータを入れた際にスロットルを30%程度加算する。
これは送信機側の設定。
このあたりは操作でやっちゃうとか好みもあるみたい。

■出力に関わる部分。
各PIDの設定ココがキモ。
「Mockingbird」というより、モーターのセッティング。
いわゆる PID制御の PID。制御工学の基礎。
ウチのブログだと「ラズパイ使ってローストビーフつくる」とか紹介した。
ドローン飛ばすのに、まずローストビーフの作り方から理解する必要がある。

Raspberry Piでつくる! 柔らかローストビーフ♪
https://www.cuspy.org/diary/raspberrypi-roastbeef/

これをみると、PID制御のイメージがつかめると思う。
P制御は比例制御、I制御は積分制御、D制御は微分制御。
つまりバッサリまとめるとこういうイメージ。
P= 現在
I= 過去
D= 未来
展開の速いレーシングドローンだと、優先順位的には P→D→I の順番らしい。
どの数字がどんな挙動をするかはシミュレータでも試せる。
最終的にはモーターとバッテリにあわせた機体の特性を把握する必要がありそう。
PIDの調整はジーグラ・ニコルス法とかCHR法とか、いろいろあるので勉強してみるのもよいかもしれない。
あちこちいろいろ読んでみて、流れとしてはこんな感じっぽい。

1.P値の設定
Pの最大設定を探しだして、そこよりちょっと下ぐらいを狙う。
具体的にはデフォルトの数値から振動が出る辺りまであげていく。
環境の影響を受けるので、その余裕分下げておく。
屋内とかだとギリまでつめていいかも。

2.D値の設定
低いのがよしとされている。
バウンスバックが出ないように D をあげる。バウンスバックは急に止めると振動する現象。
Propwash という風の巻き込み現象もこのあたりをイジったりするらしいが、小さい機体はいろいろ難しいらしい。

3.I値の設定。
とりあえずはテキトウでいいらしいです。大きいほうがよいとされる。
機体が流れていっちゃう(ドリフト状態)ときにあげるとビタっと止まるとか。
スピードの遅い空撮用途とかだと逆にヌルっとする調整が必要かも。

■その他の細かい部分
他にも水平維持度合いとか、例のダイナミックノッチフィルターとか、FPV Angle Mixとか、細かいのがたくさんある。
通信プロトコルを FrSky-D8 にして処理減らすとか、どれぐらい効果あんのかな・・みたいな。
BetaFlight のバージョンによるところもある。機体ごとの数値を見て覚えるのもある。
重要なの上記2項目なので、内容を理解しながら追加すればいいんじゃなかろうか。

設定による細かい挙動の違いは少しずつ覚えていくとして。
基本的にはノーマルの操作感だけ調整して、ウンザリするほと飛ばしてから気になるところを直していく感じか。
テンプレ Mockingbird を試しながら、そう思った。いきなり盛り込みすぎ。

■あとは経験するしかない
正解がどんな感じかは、inductrix FPV を使ってみるのが一番なんだろうけど手に入らない。
ということで、作り込まれた Mockingbird のサンプルとして、NewBeeDrone の BeeBrainLite Mockingbird モデルを手配した。
このあたりでブラシ機がひとつ欲しかったってのと、好みの部品構成で組まれているという2点。
BeeBrainLite って FC は、なんと VTX まで載ったワンボード構成。
とりあえずコレを飛ばしながら勉強してみるよ。
ああその前に無線局の申請だな。
製品写真を眺めると終段管に PA がなく、RTC6705 のみで 25mW の構成(終段管がRTC6705)っぽい。
さっさと系統図作って現物待ち。

Osmo Pocket キタ

我が家のデジカメは Nikon1 の初代。
あんまり画像関係にこだわらない一家なので、大切に使ってきた。
いつの間にかニコンはミラーレスやめちゃって。
なにか時折あやしげな動きをするようになってきた。
そこで新兵器を投入。それが Osmo Pocket。

まあ今さら説明しなくても昨年末発売されて、人気のジンバルカメラ。
DJIというドローンメーカーが売ってる。
もっと言っちゃうとドローンについてるのを、外して売ったという感じ。
元がドローン由来なので111gと軽量で、がんばって載せるとみんな Mavic になれる。
200g以下で頑張って載せた限界がこのあたり。
http://shop.ep-models.com/index.php?main_page=product_info&products_id=9822
ヤベエ試したい。なおペイロード的にはギリらしいです。

カメラというのも変化の多いデバイスだ。
銀塩カメラからデジカメに移行した時は、後ろのモニタがつくようになって、カメラの構え方が変わった。
進化とともに形状が自由になったが、スマホが主流となりコンデジは駆逐された。
最近は従来の一眼レフスタイルに回帰しつつある。
そんな中、ジンバル付きモデル。
これからのコンデジはこのスタイルでないか。
その構造上、水平が確実に出るし、動画も得意分野。
パノラマ撮影だって自分で首振って撮ってくれる。
もうこういう製品は日本からは出てこないのかもな。

簡単に使ってみたが、ボタンの数は2個と限定されており、2インチのタッチパネル液晶も想像以上に使いやすい。
凝ったこともできるが、これはさっと取り出して、さっと撮影があってる。
ということで、とりあえず使ってみるよ。
とりあえず桜の季節だったのを思い出したよ。

FATSHARK DVR v1.2a アップデート対象機器

https://intofpv.com/t-fatshark-dvr-firmware-update-fixes-dropped-frames

Dominator V3 は DVR アップデート対応なの?って話が出て。
そういえばそのあたりってどうなってんだろと調べて見つけたページ。
最後の比較表がわかりやすい。
Dominator V3 は貴重な 16:9 なんですね。

一部の機器には FSV3303 って DVR ボードがアップデート用に売られている。
でもこれ買うほどの高性能ってワケではなく、どちらかというとガッカリ性能。
私も初めての DVR だったが、録画データはひどかった。コーデックも必要だったし。
撮影できただけでうれしいレベルですが。
ドラレコのように電源オンで録画し続けるモードがあって、どこかで落ちた時探すのに使える。

まあそんなややこしいところで、飛ばす度胸はまだないのだけど。

カルマンフィルターの話

ドローンの FC は BetaFlight ってヤツで作られている。
https://github.com/betaflight/betaflight/wiki
おなじみのヤツですが、日本語化とかを進めているみなさま(会いました)にはホント感謝。
これとは別に「ButterFlight」ってのもある。
バターってあのバターですよ。パンとかに塗るアレ。
Beta → ベータ → ベター → Butter というハッカーにありがちな語呂合わせであるらしい。

この ButterFlight と BetaFlight は何が原因でフォークが分かれることになったのか。
なんとそれがカルマンフィルタらしい。
カルマンフィルタ!ココでカルマンフィルタ出た!
コレを思い出した。

■apollo11号のソースコードを読みつつ
http://aerith7.hatenablog.com/entry/2016/12/21/171726
アポロ11号は AGC という CPU で制御されて、一部のミッションを行った。
AGC はわかりやすい表現でいうと、6502 相当の能力。ファミコン並。
その頃はどうやってコードを書いていたのかとか面白いので是非読んで。
その中にカルマンフィルタが入っていたんですね。

現在の BetaFlight はジャイロノッチフィルタ、ローパスフィルタをかまして、FFTまわすらしい。(ダイナミックノッチフィルタ?)
まあよく調べてないですが、いろいろ工夫されている模様。
いっぽうの ButterFlight はあんまり元気ない感じ?
こういうのも体感としてできるドローンすげーなー。
(ジジイの反応速度で確認できるのだろうか)
ヒマ見ていろいろ試したい。
やること増えるばっかりじゃねえか。

余談ですが、昨日 Progate すげーなーという記事を書いたら、Twitter で反応が多くとまどいました。
イイネ!くれた人見てると、全然プログラム触らなかった人達が、プログラミングで覚醒しちゃった!という人が多いようです。
楽器を弾くみたいな感覚でプログラムできる人が出てきてる。それはよいこと。楽しいこと見つかってよかった。

マイコンから触れている世代の人生ってこんな感じです。
キーボードを打てる、ってので採用されて。
ロータス123(現在のエクセル)ができるって採用されて。
アドビが使えるって採用されて。(90年代?)
Autocadが使えるって採用されて。
Lightwaveが使えるって採用されて。
PDAでスマホで・・と現在になった。
なんかそういうソフト主体の時代を経て、ようやくプログラミングが必要という時代が来た。
ウラを返すと、エクセルができるスゲー!で採用された人が、ずーっとそれでがんばってきて、今 RPA で駆逐されようとしている、そんな感じです。
これ RPA できる人にすると、非人間的な仕事から開放!なんだけど、そうでない人には仕事失くされた!って感じで、なんか人生って厳しいとしか言えない。エクセレーターとかパワーポッターとか言われてる場合じゃない。

で、先のアセンブラコードを改めてみると、いろいろと感慨深い。
その当時の最先端を任せられる MIT 天才より、集合知であるライブラリを使いこなせる現在の人達の方が、よいコードを書けるかもしれない。
これはすごいことだ。進化ってこんなことかもしれない。

書いたコードで、実際に動くものを見たり体験としてフィードバックできるのは、ものすごいことなので、みんなもやるといいなと思った。

ドローンの話だよ?

ピッグテール JST-PH2.0 の劣化具合

Tiny Whoop で電池を挿す PH2.0 って端子は、頻繁に抜き差しされるので、すぐ劣化する。
コネクタか根本のハンダのどちらかが、週に1回ぐらいの頻度ダメになるイメージ。
ダメになったピッグテールが集まってきたので、捨てる前に分解して確認してみた。

小さいので確認しにくいかも。
下の4セットが使用後。
特にマイナス端子側の変色劣化がひどいのが確認できるだろうか。
上にある縦に置いたのが新品。
おそらく電池側も同じように劣化しているだろう。
ここは消耗品と割り切るべきか。

プログラミング学習 Progate が素晴らしい

https://prog-8.com/

Mac を入手したチョウナン。
これからの時代はプログラムできないと。
という父親の言葉を真に受け、Python をやり始めた。
PC 手に入れた!といっても活用方法ってない。
活用方法ある人だったらすでに持ってる。
それも大体スマホで事足りる。
やることってソフトのインストールとかぐらいか?
まあそれなら PC ならでは。って感じで始めたらしい。

最近は eラーニングなサイトが多数ある。
ググれば参考コードも出るし、ホントいい時代になった。
その中で評判のいい Progate をやり始めた。
無料のところで、HTLM/CSS と、Console基礎、そして Python やった。
「おもしろい」と目覚めたらしく、980円/円を支払い有料コンテンツへ。
なんかバリバリ進めている。
ハタから見ていると、これよくできてるなと思う。

ブラウザでテキストエディタとか、実行画面とかが出るようになっている。
つまり環境で悩まなくていい。
初心者がプログラミングする時に、環境揃えるのも大変だ。
慣れている人ほど自分の環境作り込んじゃうし。
ガリガリとコード書けなくても、こういう感じで作るのかーぐらいが理解できるのとないのでは大きな差だ。

Python はもうすぐ終わりそうなので、あとは Ruby on Rails でワークフレームをなぞらせようかと思ってる。
あとはオリジナルのコードを書き始めるかどうかだろうな。
そこはラズパイででもやらせようか。LEDついたりが楽しいよね。
いずれにしてもプログラムを勉強するにはいい時代になった。
プログラムの下請けをチョウナンに出せる日も近いか。(コード書き苦手)

なんかプログラムを覚えたいんだけど、という焦りがある人は試してみてはどうか。

Rapid+Fire ファームアップデート

FATSHAK HDO の DVR ファームは最新だったが、受信機である Rapid+Fire のファームは 1.0.6 と一番最初のものだった。
最新は 1.2.4。バグフィックスのみならず、機能的にもいろいろ強まっている。
やっと道具全部揃ったのに、これで Brick になったらどうすんのと思ったが座りが悪いのでアップデートしてみた。

https://www.immersionrc.com/fpv-products/rapidfire/#tab-1495548969565-2-7
ココに専用のアップデータがある。

アップデータをインストールすると、最新のドライバはココよ、みたいなリンクがある。
これもまた CP210x なのか。
Windows の組込系で、バージョンによってはうまくいかなくなることのあるヤツだ。(今回はうまくいった)
とりあえずそこからドライバを入手しインストール。
あとは、FATSHARK から本体を外し、ジョイスティックボタンを押しながら USBケーブルを接続。
適切な COM ポートを選んでいると思うので(親切にも青信号が出る)、その状態を確認した後にバージョンを選択して Flash。
プログレスバーがグリグリといってアップデート完了。

なんかちょっと画面がよくなった気がするのは、ホント気のせいか。

こういうのをマメに出すのが、この手の趣味アイテムって感じ。
値段は安くないが、こういうのも含めての値段と評価しなくてはいけない。

Beta65pro(2号機)と Beta75X(初号機)が届く

BETAFPV に直接注文したやつ。
こちらはずいぶん早く届いた。
BETAFPV は 3/25 からスプリングセールってんで1割引らしい。
ちょっと時期悪かったな。
75X はバッテリも予備部品も集め直し。
ESCは10A。ついてきたペラは最新の Gemfan ではなかった。

75X はかなりの人気機種。
65mmから75mmと大型化している。
見た目的にそれぐらいしか違いがないように見えるが、構造は全く別。
FC と ESC が別体で受信機(レシーバー)も別。(65系もレシーバー別体モデルもあった)
カメラとVTXは同系統で変わりない。。
FC と ESC はコネクタで2段に積む形。(65系は1枚モノ)
コネクタのハンダ品質がひどく浮いていたりする。
ぶつかるとテコの原理で端子に負担がかかる。
レシーバーは FrSky XM+ ってヤツでシリアル接続。(65系はSPI接続)
こんな感じで部品点数が一気に増えた。
ペラの上部がプロペラガードから露出しているし、電池ホルダーも破損しやすい構造。
それでも馬力は圧倒的。まあ海外で外飛ばす連中向けなんだろうな。
ということで、製品の完成度としては 65系の方が高いかなと思う。
さらに大型化した 85mm の 85X も出てきており、これは高解像度のカメラを搭載する用途になってきている。

さっそく設定。
65pro の設定は慣れたもの。
75X は初めてなのでいくつかハマった。
特にバインド。今回は FrSkyX だ。
レシーバーのバインドボタンを爪楊枝で押しながら電池を挿すという方法でバインドするため、ひとりでは困難。(チョウナンに手伝ってもらった)
あと Scale の値が違って AUX があがらなかったりと、ひととおり悩んだ。
が、無事設定完了。少しづつ経験値溜まっていってるなあ。
とりあえず飛ぶところまでいったので明日でも試してみる予定。

FATSHARK が届き、ついに道具が揃う

FATSHARK HDO が到着。
3/3 にクーポンあるっていうから「ファットシャーカーにオレはなる!(どんっ)」と、清水の舞台から飛び降りた。
そして 3/23 に到着。長かった。マジ長かったこの3週間。
香港出荷の EMS 頼んだが、いつもの中華的展開に。

まずはすぐ出荷と言われているが、そこはかるくバックオーダー。
これが 3/11 まで。在庫持たなすぎだろ。
その後「出荷したよ!トラッキングナンバーこちら!」というが出てこない。
これいつものヤツで、先に番号だけとっておくヤツな。これが 3/9 あたり。
そもそもバックオーダーのままだし。
Banggood のトラッキングはマジでアテにならないので、4PX とか 17Tracks を監視していると、3/15ぐらいに香港からシンガポールで向かった。
日本から離れていってるやん。
これはシンガポールの配送業者のSPEEDPOSTってところが安いかららしい。
SPEEDPOSTから先は EMS だが、そこまでは普通郵便に近いノリ。
なので時間かかる。
3/20 ようやくシンガポールに到着。
そこからは早かった。さすが EMS。もうすでに価値がないほど遅いが。
3/22 には日本について当日中に税関通過。3/23 に最寄り郵便局に早朝到着。
郵便局に向かい、直接受け取りでゲット。
なお Banggood のトラッキングは最後まで出てこなかった。ま、通常運転だ。

FATSHARK はヘッドセットのみで、そのままだと受信できない。
なんて気の利かない・・そこで受信機は Rapid+Fire を準備した。
これは2系統で受信した画像を合成して、キレイな画像を出すというもの。
あーVHFのテレビ時代にあったな・・というものだが、なかなかいい値段がした。
それでも視覚情報だけで操作するのだから、なるたけ良い環境にするべき。
このふたつが揃うとOKかというと、実はアンテナも必要。
2系統入力できるので、無指向性と指向性の2つを組み合わせた。定番。
ゴーグルにアンテナが生えているのはイイネ!
このサイバー感は嫌いじゃない。

これでいよいよ使える・・と思ったら、最後に電源という問題がある。
今回買った FATSHARK HDO は USB 充電でお手軽、と聞いていたが、届いたのは 18650 Li-ion を使う電池ケースだった。
なんか国によってパッケージがちがうとかなんとか。はー。
USB充電のは便利だけど稼働時間が少ないから、2セット運用避けられないかもなってんで、別に準備しておいた 18650 のバッテリケースを使った。
USB で電源を供給するヤツとか、来るまでに時間がかかっただけあって、いろいろ小物は揃っている。

なお、DVR のファームは 1.2aになってた。すばやいな。

これでようやくファットシャーカーになった。
早速飛ばした。世界はこんなにも美しかったのか・・。
ちゃんと見えるので、ものすごいラク。(あたりまえすぎる)
狭いところもスイスイいけるようになって、なんかうまくなったんじゃね?と錯覚するほどだ。
もうどこでもいける。どこでも飛んでいける。
これは人間が使う道具だ。人間が使う道具がようやく来た。
ただしいくつか。
形が欧米人基準で、「平たい顔族」なアジアンフィットから程遠い。
鼻の部分ははるか離れているし、おでこのところも浮いてる。
それゆえほっぺたのところに圧力がかかる。
夢中で飛ばしていたらほっぺが痛くなった。おてもやんになった。

まあそんな感じだが、もうない状態とか考えられなくなったので、なんか予備とかいるんじゃね?という気になっている。
沼だな。まさに沼。