I have now the FDM side of an aircraft carrier set up.

The implementation uses a local cache of the scene graph to do intersection 
tests. This can then be done per gear/hook/lauchbar.
Also the required aircraft carrier hardware will show up in this cache and can 
provide the required information.
The cache itself is ATM integrated into the FGInterface class.
New are functions to query a ground contact point below a given location in 
the earth. Together with that contact point the surface normal and the 
velocity of that contact surface are returned. The locations, normals and 
velovities are cartesian vectors given in the wgs84 coordinate system (origin 
in the earths center, x axis towards lat=lon=0, y axis towards lat=0, lon=90, 
z axis towards the north pole).
A function to test catching a wire. The test is done by intersection of the 
quad where the hook moved during the past timestep with the lines 
representing the wires. When this test was sucessfull, we can query for the 
locations/velocities of the wires mount points. When the wire is no longer 
needed it should be released.
Catapults are also stored as special lines in the scenegraph. There is a 
function which returns the nearest catapult line and its current 
To build up the cache you need to call a function to let the cache know where 
and how big the cache must be.

I have also a preliminary implementation to make use of that stuff from within 
JSBSim together with an aircraft which I have used for development.

I have put that at


(Many thanks to Martin Spott for the webspace!)

The file ground-cache-carrier-api.diff contains the required code for the 
surface cache together with the code to make the carrier and its velocity 
visible for the cache.
The file nimitz_demo.xml must be put into the data directory under 
Data/AI/nimitz_demo.xml. The patch carrier-data.diff makes use of the AI 
Looking into nimitz_demo.xml shows how the catapults/wires and deck surfaces 
are configured. Object names from the 3D Object are used to mark the scene 
graph nodes as special hardware.
JSBSim-dropin.tar.bz2 contains the JSBSim part required to try that out. I 
will apply that seperately to JSBSim's cvs when that code is ready and the 
required infrastructure is in flightgear. For the ones curious how this is 
done, the files FGHook.cpp and FGLaunchBar.cpp contain the code how this is 
The FA-18.tar.bz2 file contains the FA-18 I have used for development. It has 
a hook and a launchbar configured.

To play with that, you have to install the patches/new files described above.
The hook can be extended with the H key, retracted with h. Start flightgear 
fgfs --lat=37.688 --lon=-122.683 --heading=180 --altitude=71
and you will be placed on the carriers deck rolling backwards wrt the carrier.
Then apply the breaks and wait until the aircraft settled down past being not 
trimmed. Now taxi on the deck to one of the catapults. When the nose wheel is 
above the first few meters of the catapult (please taxi exactly there). Apply 
the breaks and leave them applied. lower the flaps to half and give full 
throttle. Pull a little at your stick and release the breaks. As the breaks 
are released the aircraft is launched.
Then you can cruise a bit, and again try to land on the nimitz. When you land, 
do not forget to extend the hook with 'H'.
If you like it, you can then taxi to the catapult ... :)

The physical model is not yet ready, but the api between the FDM and 
flightgear has prooven to be sufficient for that task.

So, Erik, can you please apply ground-cache-carrier-api.diff to flightgear's 
sources, carrier-data.diff to the data directory and place nimitz_demo.xml 
into Data/AI ?

I will do the JSBSim part myself when that stuff is ready.

I have also looked into YASim how this can be integrated.
Andy, have you done some work in that area?



Mathias FrÃhlich, email: [EMAIL PROTECTED]

Flightgear-devel mailing list

Reply via email to