降下を早くするLua Script
アトラックラボさんとRandyさんが実験している降下を8m/sにするLua Script
https://discuss.ardupilot.org/t/copter-4-2-and-fast-descent/83565
Lua Script自体は、こちら
https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/examples/copter-fast-descent.lua
ざっくり読むと。。
“command ID” to “42702” NAV_SCRIPT_TIME のミッションが入っているところで
GuidedモードかNavモードの時に、
半径をだんだん大きくしながら。。加速度・速度・場所を計算しながら、動き
if (rel_pos_home_NED) then if (-rel_pos_home_NED:z() <= alt_above_home_min:get() and (speed_xy==0) and (speed_z==0)) then
の条件を満たすまで実行されるってことですね。
ふと。。ArdupilotのFirmwareのParameterの
PILOT_SPEED_DN |
WPNAV_SPEED_DN |
とかとの関係はどうなるんだろう??
speed_z は。。
ん? ちょっと勉強というか、動かしてみないとわからないな。。
ううう。。SITLで。。ディレクトリが違うのかな??
どうもわからないので。。
とりあえず、こちらのForumに質問投げてみました。
https://discuss.ardupilot.org/t/fast-descent-lua-script-in-stil/84142
Lua Scriptの構文など勉強しようと思うんですが。。実際飛ばすの怖いしな。。っと(笑)
SITLは動いてそうなんだけどなぁ
つづく。。
ちゃんとsim_vehicle.pyで動かしてみるか?
開発環境もWSL2で、入れ直してみたことだし
【Ardupilot】開発環境をWindows Ubuntuに入れてみる。EKFでWind Estimationさせる方法を知りたい【メモ】
sim_vehicle.pyで、動かしてみましたら。。。
Luaの読み込みでエラーが出ていることがわかりました。
(ArduCopter.exe はCopter4.1.5なのと、今回のはCopter4.2。。その違いかな??)
ってことで、もう一度、Luaスクリプトをダウンロードし直して、sim_vehicle.py を実行したらFDST_のパラメータも出てきました。
例題通りに Unknown のIDに、42702を入れたミッションを作成
で。。。
Scriptは動くようなんだが。。。 螺旋降りに移行できない。。Guidedにならないといけないんだけど。。。
Messageを見ていると、Missionの2番で、FastDescentはStartするけど、すぐに。。RTLに入る。。 なぜ???
つづく。。
Lua ScriptはScriptsに複数いれると駄目っぽい?
あとで試そうと思って。。scriptsフォルダの中に。。
- copter-circle-speed.lua
- copter-fast-descent.lua
- copter-fly-vertical-circle.lua
- copter-nav-script-time.lua
- copter-wall-climber.lua
の5つのScriptをscriptsフォルダに入れていまして。。これを
copter-fast-descent.lua
だけにしてみました。←はじめからそうしろよ!!
動かした様子です。 50mのところまでは、螺旋状に素早く降りてきています。
風の影響あるのかな??と思って
ParameterのSIM_WIND_SPEEDを5にしてみてやってみました。
かなり、円が乱れますね。。 当然ですが。。。
上空の風の舞を少し予測しながらできるといいな。。と。。
あるいは、性能以上の風速になると、戻ってくるなどの機構が必要かも?? まずは使いこなせるように、勉強しておかないとな。。 まだ今年のこともわからないですが。。
謝辞
伊豆さん(Attrac Labさん)Randyさんありがとうございます。
また、Twitterでいろいろ教えていただいた@fujihideさん、本当にありがとうございました。
私の環境では一応手順通りでFast Descendの動作確認ができました。
ただし、Mission Plannerの「シミュレーション」から起動したSITLではなく、Ubuntu上でソースコードからビルド&実行したSITLになります。https://t.co/8uKoqLtywS pic.twitter.com/SK2ZYxOBV3— fujihide (@hfujikawa77) April 13, 2022
WSLから動かす時 メモ
PowerShellで
$wsl
ArduCopter ArduRover2 ArduPlaneなどのディレクトリに移動して、実行
$ cd ~/ardupilot/ArduCopter $ sim_vehicle.py -w
カスタムロケーション
sim_vehicle.py -w --custom-location=35.XXX,139.xxx,17,353 --map
コンソール
sim_vehicle.py -w --custom-location=35.XXX,139.xxx,17,353 --map --console
オプション –help でも出ますが
https://ardupilot.org/dev/docs/using-sitl-for-ardupilot-testing.html
コメントを残していただけるとありがたいです