From 68fc719ba9b9ca19e363d6960b5456d70de87e26 Mon Sep 17 00:00:00 2001 From: Thomas Gubler <thomasgubler@gmail.com> Date: Sun, 29 Dec 2013 22:49:59 +0100 Subject: [PATCH] flightgear HIL add catapult to Malolo1 --- files/flightgear/Aircraft/Malolo1/Malolo1-set.xml | 26 ++++++++++++++ files/flightgear/Aircraft/Malolo1/Malolo1.xml | 15 ++++++++ .../flightgear/Aircraft/Malolo1/Nasal/catapult.nas | 42 ++++++++++++++++++++++ .../Aircraft/Malolo1/readme_qgroundcontrol.txt | 3 ++ 4 files changed, 86 insertions(+) create mode 100644 files/flightgear/Aircraft/Malolo1/Nasal/catapult.nas create mode 100644 files/flightgear/Aircraft/Malolo1/readme_qgroundcontrol.txt diff --git a/files/flightgear/Aircraft/Malolo1/Malolo1-set.xml b/files/flightgear/Aircraft/Malolo1/Malolo1-set.xml index c85509b..67eda11 100644 --- a/files/flightgear/Aircraft/Malolo1/Malolo1-set.xml +++ b/files/flightgear/Aircraft/Malolo1/Malolo1-set.xml @@ -63,9 +63,33 @@ dynamics model, and external 3D model. <line>Approach speed: 15-25 mph</line> <line>Stall speed (Vs): 10 mph</line> </help> + <menubar> + <default> + <menu n="10"> + <label>Malolo</label> + <enabled type="bool">true</enabled> + <item> + <label>Operate catapult</label> + <binding> + <command>nasal</command> + <script> + malolo1.launchCatapult(); + </script> + </binding> + </item> + + </menu> + </default> + </menubar> </sim> +<nasal> + <malolo1> + <file>Aircraft/Malolo1/Nasal/catapult.nas</file> + </malolo1> +</nasal> + <controls> <flight> <aileron-trim>-0.01</aileron-trim> <!-- fixed --> @@ -100,4 +124,6 @@ dynamics model, and external 3D model. </config> </autopilot> + + </PropertyList> diff --git a/files/flightgear/Aircraft/Malolo1/Malolo1.xml b/files/flightgear/Aircraft/Malolo1/Malolo1.xml index c12a9ae..a38ff1f 100644 --- a/files/flightgear/Aircraft/Malolo1/Malolo1.xml +++ b/files/flightgear/Aircraft/Malolo1/Malolo1.xml @@ -543,4 +543,19 @@ </function> </axis> </aerodynamics> + + <external_reactions> + <force name="catapult" frame="BODY"> + <location unit="M"> + <x> 0 </x> + <y> 0 </y> + <z> 0 </z> + </location> + <direction> + <x>1</x> + <y>0</y> + <z>0</z> + </direction> + </force> + </external_reactions> </fdm_config> diff --git a/files/flightgear/Aircraft/Malolo1/Nasal/catapult.nas b/files/flightgear/Aircraft/Malolo1/Nasal/catapult.nas new file mode 100644 index 0000000..e576822 --- /dev/null +++ b/files/flightgear/Aircraft/Malolo1/Nasal/catapult.nas @@ -0,0 +1,42 @@ +var launchCatapult = func { + # time on catapult = 1/10 sec + # speed when leaving catapult = 50 km/h ? + var countdownRunning = 1; + var count = 5; + var countdown = func { + if (countdownRunning) { + if (count != 0) { + setprop("/sim/screen/white",count); + count = count - 1; + settimer(countdown, 1); + } + else { + countdownRunning = 0; + setprop("/sim/screen/yellow","Go!"); + launch(); + var launchPad = aircraft.door.new("/sim/model/X100/launch-pad", 0.2); + launchPad.toggle(); + } + } + } + countdown(); + + var launchRunning = 1; + var magnitude = 230; # lbs, unrealisticly high, because the FDM is wrong + var launch = func { + if (launchRunning) { + if (magnitude == 0){ + launchRunning = 0; + + # remove launcher contact points + setprop("/fdm/jsbsim/contact/unit[6]/pos-norm",0); + setprop("/fdm/jsbsim/contact/unit[7]/pos-norm",0); + setprop("/fdm/jsbsim/contact/unit[8]/pos-norm",0); + } + setprop("/fdm/jsbsim/external_reactions/catapult/magnitude",magnitude); + print (magnitude); + magnitude = 0; + settimer(launch, 0.1); + } + } +} diff --git a/files/flightgear/Aircraft/Malolo1/readme_qgroundcontrol.txt b/files/flightgear/Aircraft/Malolo1/readme_qgroundcontrol.txt new file mode 100644 index 0000000..a1eb2c4 --- /dev/null +++ b/files/flightgear/Aircraft/Malolo1/readme_qgroundcontrol.txt @@ -0,0 +1,3 @@ +This is the original Malolo1 model with added catapult functionality. The catapult is from https://gitorious.org/mavlab/x100/ + +-Thomas Gubler