【Ardupilot】Lua Script 関連 プログラムを読んでみる SITLで実験できた。【勉強】

降下を早くする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さん、本当にありがとうございました。

 


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

投稿者 tom2rd

コメントを残していただけるとありがたいです

Loading Facebook Comments ...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください