Yuckey Lab

主にFPVドローンレース/作ってみた系/プログラミング/工学全般などなどについて,しがないエンジニアが徒然なるままに書き連ねるブログ

Betaflight 3.4.0-RC2 のインストール方法

こんにちは
Yuckeyです.

今回は最近リリースされたBetaflight3.4.0 RC2のインストール方法について説明します.
RC2は(Release Candidate)の略で,リリース候補版の意味なります.
つまり,正式リリース前の評価版です.
そのため,バグがまだ十分に修正されていない可能性があるため,自己責任でのご使用をお願いします.

Betaflight Configulator10.3.0のインストール

まずは,Betaflight3.4.0 RC2用のBetaflight Configulatorを以下のURLからダウンロードしインストールします.

3.4.0 RC2のインストール自体はConfigulator10.2.0でも可能ですが,パラメーターを変更する場合には10.3.0が必要とのことですので,以下のOne DriveのURLからダウンロードしPCにインストールしてください.

https://onedrive.live.com/?authkey=%21AInBsu0h-EmUeYs&id=AC06B68F01DD1B5E%21459019&cid=AC06B68F01DD1B5E

インストールが成功すると,下の画像のように,Configulator10.3.0と表示されます.

f:id:yuckey-lab:20180621234508p:plain

Betaflight 3.4.0 RC2のインストール

FCの種類を確認

ConfigulatorのCLIで, version
コマンドにより,FCの種類を確認します.
私の環境では,
OMNIBUSF4SD となっています.

f:id:yuckey-lab:20180622004959p:plain

ダウンロード/インストール

Configulatorのトップ画面の Firmware Flasher タブを選択すると,下の画像のような画面が表示されます.

f:id:yuckey-lab:20180622005614p:plain

まず, Show Unstable Releases のチェックを入れます.
これによって,リリース前のRC2版をダウンロードできるようになります.

次に,versionコマンドで確認したボードの種類を選択します.
今回は OMINIBUSF4SD を選択しました.

次に,バージョンを選択します.
今回は, 3.4.0-RC2 を選択します.
既に3.4.0の正式版がリリースされている場合はそちらを選択してください.

Load Firmware[Online] ボタンを押すことで,3.4.0-RC2のファームウェアをダウンロードします.

ダウンロードが完了すると,下の画像のようにFlash Firmwareボタンが押せる状態になるので,このボタンを押すと,FCヘのインストールが開始されます.

f:id:yuckey-lab:20180622010238p:plain

無事にインストールが完了した後は, CLI画面でversionコマンドを使ってBetaflightのバージョンを確認することで,正しくインストールできたか確認できます.


以上,

閲覧いただきありがとうございました.
ご質問等ありましたらコメント欄からお問い合わせいただければ幸いです.
また,Youtubeの方も「チャンネル登録」や「いいねボタン」を押していただけると幸いです。

www.youtube.com

参考

github.com

www.youtube.com

https://onedrive.live.com/?authkey=%21AInBsu0h-EmUeYs&id=AC06B68F01DD1B5E%21459019&cid=AC06B68F01DD1B5E

JDL Meeting#2行ってきました!

こんにちは
Yuckeyです。

昨日2018/06/17にJDL Meeting#2に急遽行ってきました。
前日まで予定していなかったのですが、
Facebookで見つけてしまい、思い立って前日に行くことを決めて突撃してきました。

JDL Meeting#2は7月に行われるJDL Round3とほぼほぼ同じコースで練習できたので、
Round3に出る方にとっては非常にいい練習になったかと思います。

ブログのことをすっかり忘れて写真をほとんど撮っていませんでした。。。
唯一撮ったのがこちら、
自分のデスクw

f:id:yuckey-lab:20180618215936j:plain

もっと会場の雰囲気のわかるものを撮っておけばよかったです。

とりあえずフライト中の映像を録画しておいたのでYoutubeにアップしました。
宜しければご覧ください。

youtu.be

今回使用した機体のスペックはこんな感じです.
実は去年のRound7くらいから変わっていませんw

〇Race Drone Setup
・Frame : BFight 210
www.banggood.com

・FC : HGLRC F4 FLAME www.banggood.com

・ESC : Emax Bullet 30A www.banggood.com

・Motor : Emax RS2205S 2600KV www.banggood.com

・Prop : Dalprop Cyclone T5050C

www.banggood.com

・Camera : FOXEER Arrow V3 2.5mm www.banggood.com

・VTX : TBS UNIFY PRO 5G8 HV - RACE team-blacksheep.com

・Battery : ZOP Power 1800mAh 65C www.banggood.com

次回のRound3に出場される方はよろしくお願いします.


以上,

閲覧いただきありがとうございました.
ご質問等ありましたらコメント欄からお問い合わせいただければ幸いです.
また,Youtubeの方も「チャンネル登録」や「いいねボタン」を押していただけると幸いです。

www.youtube.com

AirMode(エアーモード)について

こんにちは
Yuckeyです.

今回はBetaflightに搭載されているAir mode(エアーモード)という機能について書いていこうと思います.

Air modeがBetaflightに搭載されてからしばらく経つので既に使用されている方も多いかと思います.

Air Modeとは

Air Modeを簡単に説明すると,
スロットルを切っても,PIDの姿勢制御を行うモード
のことです.

そのため,スロットル切ることの多いフリースタイルでのフライトでは必須の設定項目だと言えます.

例えばこちらの動画のように高所からのスロットル切って落下するような場合にはAir Modeを有効にすると非常に便利です.
youtu.be

ただ,ドローンレースにおいては,スロットルを切ることがほとんどないことから,Air Modeの効果を感じることはあまりないかもしれません.

Air Modeがなかった頃

Air Modeがなかった頃はAcroモードを使用して,フリースタイルのトリックを行っていました.
(スロットルの設定等細かい話は割愛)

こちらのモードでスロットルを切った状態で落下した場合,PIDの制御が働かず,ドローンの機体がふらついてしまいます.

そのため,スロットルオフを多用するフリースタイル でフライトする方はAir ModeをONにすることをお勧めします.

Air Modeの設定

Air Modeを有効にする方法には大きく分けて2つあります.

Configuration設定から常に有効

BetaflightコンフィギュレーターのConfigurationタブからAir Modeの機能を有効にします.

f:id:yuckey-lab:20180616010616p:plain

こちらの設定を有効にすると,常にAir ModeがONの状態になります.
Air Modeはスロットルを切っていてもPID制御を有効にするため,離着陸時に無理やりFCが姿勢を戻そうとして,ドローンが飛び跳ねたりすることがあるため注意が必要です.

プロポのスイッチに割り当てる

もう一方のやり方は,BetaflightコンフィギュレーターのModesタブからプロポのスイッチに割り当てる方法です.

私は画像のように,ARMとAir Modeは1つの3ステートスイッチに割り当てています.
(見やすいように画像を加工して項目の位置を変えています)

f:id:yuckey-lab:20180616013627p:plain

スイッチ状態が,1,2,3の3状態あるため,
1.Arm Off
2.Arm On,Acro Mode
3.Arm On,Air Mode
となるように割り当てています.

離陸時は,
1→2→離陸→3
の順番で離陸し,

着陸時は,
3→2→着陸→1
の順番で着陸します.

ただ,私は面倒くさがりなので,
離陸時は,3の状態で離陸してしまいます.
これまで大きな問題は起きたことがありません.

着陸時は,なるべく上記の手順を守った方が,着陸の衝撃でドローンが飛び跳ねるような状況を回避することができると思います.

これまでAir Modeを使ったことがなかった方や,これからドローンを始めようとしている方のAir Modeに対する理解の助けになっていればと思います.


以上,

閲覧いただきありがとうございました.
ご質問等ありましたらコメント欄からお問い合わせいただければ幸いです.
また,Youtubeの方も「チャンネル登録」や「いいねボタン」を押していただけると幸いです。

www.youtube.com

参考

oscarliang.com

www.youtube.com

www.youtube.com

最近購入したもの

こんにちは
Yuckeyです.

最近Banggoodでドローン関連の商品をいくつか購入したのでそれらを紹介したいと思います.

f:id:yuckey-lab:20180614001035j:plain

格安F4フライトコントローラー

www.banggood.com

最近愛用しているFCです.
先日フリースタイル用の機体が川に落下してしまい,なんとか機体を見つけ出したのですがフライトコントローラーが壊れてしまっていたため,こちらのFCを購入.
格安なのに必要な機能は搭載されているので非常にお勧めです.

XT60コネクタ付き14AWGケーブル

www.banggood.com

ドローンの電源ケーブルになります.
今まではXT60コネクタと14AWGのケーブルをそれぞれ個別に購入し,自作していましたが,
こちらの製品はXT60コネクタの根元にグリップがついている点や価格も個別で購入する場合とそこまで変わらないことからこちらを購入しました.

ただ,5本入っているのですが,そのうち一本が半田付け時に熱しすぎたのか端子の根元が曲がっており不良品が紛れ込んでしまっていました(汗)
何度か不良品に当たったことがあるので不良品対応は慣れたものです(笑)
banggoodのサポートに連絡して現状を説明すれば多くの場合,新品を送付してくれます.
不良品である証明が必要なので,商品と発送時の袋の写真をbanngoodに送って完了です.
そういった意味ではbanggoodのサポートは非常に手厚いので非常に信頼しています.
ただ,英語でのチャットやメールに抵抗がある方は大変かもしれません.

f:id:yuckey-lab:20180614000344j:plain

M3 6mm アルミスタンドオフ

www.banggood.com

こちらの商品はFCとフレームの間の空間を確保するために購入しました.
最近使っているこちらのFC, www.banggood.com 安いF4マイコンのFCとして非常に重宝しているのですが,
固定用のホールに振動防止用のゴムをつける必要があり,
これによってある程度の長さのあるネジが必要になってきます.
これまでは6mmネジのナイロンスペーサーを使っていましたが,固定するためにはネジの長さが非常に短く,耐久性がありませんでした.
そのため,今回購入したスタンドオフの上にFCを置き,上からボルトで固定する予定です.

9x5.5mm 小型ブザー

www.banggood.com

小型のブザーです.
最近ではESCのDShotコマンドを使うことでモーターをブザーとして使用できます.
しかし,飛行中のバッテリー低下時などはブザーが作動しないため,私はブザーを別途装着しています.
ブザーのリード線を曲げればFCの基盤上に直接半田付け可能です.

ESCプロテクター

www.banggood.com

私は個別タイプのESCを使用しており,プロペラの接触でESCが壊れることを避けたいためプロテクタを装着しています.
ただ実は少し前に, www.banggood.com こちらのプロテクタを購入していたのですが,

www.banggood.com

購入したこちらのESCが大きすぎたためプロテクタを付けることができず,
サイズの大きい今回のプロテクタを再度購入することになったわけです.(汗)
プロテクタを購入される場合には,ESCとプロテクタのサイズを事前に調べてから購入されることをお勧めします.
プロテクタを付けると少しダサいですが,プロペラの接触等でのESCの故障を減らせるのでお勧めです.
重量の増加分なんて微々たるものです.
気にされる場合には公式大会前に取り外せば問題ありません.

半田 0.8m 100g

www.banggood.com

半田です.
プラスチックの部分が壊れてしまっていましたが許容範囲です.
手持ちの半田が切れてしまい,安かったので購入してみました.
問題なければ今後はこれを使い続けます.


以上,

閲覧いただきありがとうございました.
ご質問等ありましたらコメント欄からお問い合わせいただければ幸いです.
また,Youtubeの方も「チャンネル登録」や「いいねボタン」を押していただけると幸いです。

www.youtube.com

[Betaflight] TPA(Throttle PID Attenuation)について

こんにちは
Yuckeyです.

今回はBetaflightなどのファームウェアで設定可能なTPA(Throttle PID Attenuation)について説明します.
Betaflightでは,以下の画像の項目で設定可能です.

f:id:yuckey-lab:20180612223819p:plain

TPAは,Throttle PID Attenuationの略です.
それぞれの英語の意味は,
Throttle:スロットル
PID:PID制御
Attenuation:減衰
です.

TPAの効果としては,スロットルを上げた際に,スロットルの量に応じてPIDのパラメーターを減衰させる効果があります.
これによって,スロットルを上げた際に,ドローンがPIDの影響によって振動してしまうことを防ぐことができます.

TPAの設定には"TPA"と"TPA Breakpoint"の二つのパラメーターが用意されています.

  • TPA:フルスロットルした際のPIDの減衰率
    • 1:100%
    • 0:0%
  • TPA Breakpoint:PIDの減衰を開始するスロットの位置

スロットル位置とPIDの減衰率は以下の図のような関係になります.
TPAとTPA Breapointはそれぞれ,

  • TPA:0.5
  • TPA Breakpoint:1500

の例です.

f:id:yuckey-lab:20180613075937p:plain

スロットル位置が1500の地点から2000の地点まで直線的に減衰しており,
スロットル位置が2000の地点では,PIDの減衰率はTPA値で設定した0.5(50%)になっています.

スロットルのセンター付近でのクルーズ飛行でまずはノイズの発生しない状態にした後,
フルスロットルで加速した場合に振動した場合にTPAによって振動を和らげることができる可能性があります.
そういった場合に,まずはフルスロットルで振動が発生しないまたは,許容できるレベルになるまでTPA値を下げます.
あとは,スロットル位置が1500から2000の間で振動が発生しないレベルでTPA Breakpointの値を上げていけば良いと思います.

TPAはPIDのパラメーターを減衰させてしまうため,可能であれば,TPA:1,TPA Breakpoint:2000が理想ですが,
振動を和らげるためにTPAのパラメーターを下げることになります.

以上,

閲覧いただきありがとうございました.
ご質問等ありましたらコメント欄からお問い合わせいただければ幸いです.
また,Youtubeの方も「チャンネル登録」や「いいねボタン」を押していただけると幸いです。

www.youtube.com

参考

intofpv.com

www.youtube.com

D Setpoint WeightとD Setpoint Transitionについて

こんにちは
Yuckeyです.

今回はBetaflightの設定項目のD Setpoint WeightとD Setpoint Transitionについて説明します.
D Setpoint WeightとD Setpoint Transitionは下図のようにBetaflight ConfigulatorのPID Turningタブから設定ができます.

f:id:yuckey-lab:20180610173216p:plain

詳しく知らなくてもとりあえず設定しておきたい方

参考元の oscarliang.com に著者が使っている値が記載されていたので,こちらをまずは設定いただくのが良いと思います.

  • Setpoint Weight: 0.95-1.00
  • Setpoint Transition: 0.1-0.3

また,結論から言うと,
Setpoint Weightを上げると,キビキビした動きになり,1にしておくと,スティック操作となるべく同じ動きになります.
Setpoint Transitionを上げると,フリップなどのアクロでスティックを中央に急激に戻した際の振動などを滑らかにすることができます.

Setpointについて

Setpointとは,パイロットのスティック操作から「どれだけの速さでドローンを回転させたいか」を表す値です.
これはスティックの操作量とRateの設定から算出されます.
制御工学的に言えば,ドローンの回転速度に対する制御目標量の事です.

MeasurementとErrorについて

Setpointを説明する上で,大事な考え方であるErrorとMeasurmentについて説明します.
それぞれ日本語に直訳すると,

  • Measurement:計測値
  • Error:誤差

です.

Measurementとは

ドローンが実際に今どれくらいの速さで回転しているかを示します.
これはFCに搭載されているジャイロセンサから算出されます.

Errorとは

前述したSetpointとMeasumrentとの差です.
Error = Measurement - Setpoint
つまり,回転して欲しい速さに対してどれだけ実際のドローンの回転が遅れているかを示します.
回転して欲しい速さと同じ速さでドローンが回転していた場合には,Errorは0になります.

Setpoint Weightの役割

Setpoint Weightは前述したMeasurementとErrorをどれだけの割合で使ってドローンを制御するかを決める値です.

  • Setpoint Weightが0 → Measurementのみ
  • Setpoint Weightが1 → Errorのみ

ソースコードを読んだわけではありませんが,予想するに,

制御出力 = Dゲイン x (Measurement - SetpointWeight x Setpoint)

のような形で計算されていると考えます.
Setpoint Weightという名前的にもSetpointに対する重みとして記述されるため違和感がありません.
また,恐らくですが,Dゲインがある程度大きく設定されている方が,Setpoint Weightの影響を感じやすいと考えます.

Setpoint Weightがドローンの動きに与える影響

一般的に,

  • Setpoint Weightが0(Measurementのみ) → スムーズ,なめらか,ゆっくりした動きになります.
  • Setpoint Weightが1(Errorのみ) → 早い,キビキビした動きになります.

これらはなぜかというと,
FCがMeasurementやErrorを少なくするように制御するためです.
Measurementは,ドローン自体の回転の速さを現すので,FCはドローンの回転を遅くするように制御します.
そのため,スティック操作の割には,ゆっくりとした,滑らかな動きになります.

Errorは,回転して欲しい速さに対してどれだけ実際のドローンの回転が遅れているかを表すので,回転して欲しい速さと実際のドローンの回転が同じになるように制御します.
そのため,スティック操作通りのキビキビした動きになります.

Setpoint Weightを1以上に設定することもでき, 1 〜 2.55まで設定可能です.
1以上に設定した場合,スティック操作に対して非常に早くドローンが動くことなります.

Setpoint Transitionについて

Setpoint Transitionは素早い反応と,フリップ終盤の滑らかな動きの両立を実現します.
Setpoint Transitionはフリップなどによってスティックが外側に位置する状態からセンターに戻った際にSetpoint Weightをの影響を減らすよう影響を与えます.
これによってフリップ後にスティックをセンターに戻した際にドローンが滑らかに収束します.

そのため,Setpoint TransitionはSetpoint Weightの影響を減らすためのスティックの位置を表します.

  • 0:スティックが中央
  • 1:スティックが外側

◯ Setpoint Transitionが0の場合: Setpoint Weightはスティックの位置に関わらず常に設定した値のままです.

◯ Setpoint Transitionが0以外の場合: 設定したSetpoint Transitionに対応するスティックの位置から,スティックが中央になるまで,Setpoint Weightを線形に0にします.

f:id:yuckey-lab:20180610193226p:plain

Betaflightのソースコード確認

github.com

githubにあるソースコードを直接確認し,Setpoint Weightがどのように実装されているのか確認してみました.

Setpoint Weightの使われている箇所

f:id:yuckey-lab:20180610233325p:plain

flightModeFlagsの値に応じてdtermSetpointWeightがdynCdという変数に格納されています.

f:id:yuckey-lab:20180610233207p:plain

pidFeedForwardというフィードフォワード項の算出にdynCd(SetpointWeight)が使用されています.

f:id:yuckey-lab:20180610233749p:plain

pidSetpointDeltaは現在のSetpointから前回のSetpointを引いた値になります.
SetPointがドローンの回転角速度を示すため, pidSetpointDelta*pidFrequencyがSetPointの微分値を示します.
以上の理由から,スティックを早く動かすとpidFeedForwardの値が大きくなり,ドローンが機敏に反応するようになります.

以上!

閲覧いただきありがとうございました.
ご質問等ありましたらコメント欄からお問い合わせいただければ幸いです.
また,Youtubeの方も「チャンネル登録」や「いいねボタン」を押していただけると幸いです。

www.youtube.com

参考

oscarliang.com www.youtube.com

Liftoffの練習動画アップ

こんにちは
Yuckeyです。

先ほどYoutubeにシミュレーターLiftoffでの練習動画をアップしました。
もしよろしければご覧ください。

youtu.be

コース:Tight Turns v2 by DerHonk83

コーナーや高低差が沢山あり練習にはいいコースだと思います。

Liftoffがバージョンアップされたのか、
いつも使っている画面キャプチャソフトがうまくいかず、
うまく録画するのにかなり時間がかかってしまいました。
後から見ると画質が悪かったので次回は画質を改善してアップしたいと思います。 需要があれば、そのうちLiftoffの画面録画方法なども記事にしようかと考え中です。

閲覧いただきありがとうございました。 宜しければ,Youtubeの方も,チャンネル登録やいいねボタンを押していただけると幸いです。

www.youtube.com