On Wed, May 11, 2011 at 8:04 AM, Claus Christmann wrote:

> Curt and all,
>
> this is fairly exactly what I am tasked to do for a research project. We
> have
> code to create "optimal" (I put that in quotes as that obviously lies in
> the
> eye of the beholder) trajectories, taking some dynamic limitations into
> account. We would love to test this code in "realistic" cockpit scenarios,
> replicating -- in a perfect world -- for example, the Hudson River landing.
>
> Looking for an interface between emergency path planning and the pilot
> (Curt's
> "auto-land gui") we decided that hacking/altering the CDU would be a
> reasonable attempt as pilots are familiar with the instrument and how to
> use
> it. (That is the reason why I wrote a Nasal based CDU for FlightGear based
> upon Gijs great work.)
>
> So what I would like to ask of you, i.e. people who have toyed around with
> this idea (or read about it, know about it), is to kindly give me some
> pointers on where I could learn about current developments in this area or
> where I could learn about the C/C++ code/api to the navdata base and the
> route
> manager.
>
> Having written the CDU in Nasal I believe to have a fairly good grasp on
> the
> language, however I would prefer to write this lower level stuff in C++.
> Not
> only because I believe that I/we will need the computational benefit, but
> also
> as this might make it easier to contribute more of the code (as a potential
> closed source library) to more interested parties - although I do promise
> to
> try to get as much of my/our work to be open sourced.
>
> I am looking forward to hearing from you with pointers to documentation,
> examples, helpful source files - all that good stuff that could get me up
> to
> speed quickly (as I haven't touched the C code of FG yet.)
>

Hi Claus,

So far I've been prototyping all my trajectory planning and management in
nasal, but I will eventually migrate that over to C/C++ so I can run on a
real embedded computer on a real UAS.

I'm glad you put "optimal" in quotes. :-)  There are so many *different*
things you could optimize for and all it takes would be 1 or 2 seconds late
entering a turn, or a few degrees off on your bank angle, a slight
mis-estimate of physics or speed, or a slight mis-estimate of wind and you
could come up short of the runway.  If you build in too much margin for
safety and have slight errors in the opposite direction you could end up
overrunning your target landing spot.

FlightGear is an awesome tool for testing all this out though ... the proof
is in the pudding so to speak, and these are exactly the sorts of challenges
that are perfect for testing in a flight simulator.

In my case I'm focused more on plotting a landing trajectory that looks and
feels intelligent, looks direct, looks solid (the safe ultimate completion
of the maneuver is never in doubt) :-) and doesn't waste a ton of extra time
or energy.

If you know *exactly* the logic that will give you the optimal result, then
going straight to C++ is probably fine.  For myself, I'm thinking this
through as I go, testing different ideas, and observing the results ... so
in my case prototyping the logic in nasal is a really great step.  I've
added trajectory markers and smoke to my UAV model so I can visualize the
absolute flight path and see it relative to the wind as well.  It's quite a
nice tool for exposing "suboptimal" strategies and for understanding what
needs to be fixed and why.

I have also been playing with different wind vectors and different amounts
of turbulence.  I've found that with real uav flight, I never achieve the
rock solid perfect results I can see in the sim, even with the exact same
flight control code.  But if I turn on just a little bit of turbulence, what
I see in the sim seems to really align with the results I see in real life.
 A simulation is a great tool, but at the end of the day, it needs to
correlate with reality in certain important ways.

Best regards,

Curt.
-- 
Curtis Olson:
http://www.atiak.com - http://aem.umn.edu/~uav/
http://www.flightgear.org - http://gallinazo.flightgear.org
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to