To continue the tradition of posting first flight reports, please let me
post my little story from this evening.

For the past year and a half I have been helping the U of MN aero department
periodically with a couple UAV projects.  I've really enjoyed helping them
out, and enjoyed interfacing and leveraging flightgear to help meet their
goals.  I've also really been pushed mentally on a couple different fronts
and have been learning a lot about sensor technology, sensor integration,
electric power systems, even a bit of soldering.  Previously I've posted
some of the results I've had flying a Rascal 110 R/C model flown manually
with on board sensors and cameras.

Since early spring I have been assembling a new airframe.  An electric
powered Senior Telemaster.  I won't say too much about why we switched
airframes (they both have many good points) other than to say the Senior
Telemaster is a notch smaller than the Big Rascal which makes all the
difference for transporting to the field, and also the electric power system
(versus glow/gas) simplifies some of the operational logistics.  I've
previously flown this airframe as a pure R/C airplane with no extra gear on
board ... it's a joy to fly ... slow, stable, quiet, relaxing, comfortable,
and just pretty to watch.

On the technical side, it has been a completely different story.  I have
been battling one problem after another getting all the compents together
and working on this new airframe.  Among other things, I experienced an
early death to a $1500 sensor, lots of drop-dead range/noise/interference
problems for manual flight, etc.

Ok, so tonight, I finally have everything together (I think -- I hope! --
it's always those pesky oversites that can kill your airplane.)   I pass my
range check (not by a lot, but I pass), there is a 10 mph direct cross wind
which I'm not especially fond of, but not too worried about.  Skies are
perfectly clear, temp is 70 degrees, I'm the only one at the field tonight,
I need to be especially careful not to put my finger in the prop, I can't
dial 911 with out it!  I power on the flight computer and verify it is up
and running, I verify the borrowed IMU/GPS sensor is up and running, I
verify I have gps lock, I double check all the controls are working and in
the right direction, and finally I verify I can hand over control to the
autopilot and yank it back reliably with a switch on my transmitter.

Tonight I only had the aileron channel routed through the flight computer,
so when I hand off control, the AP is only going to do wing leveling, I
still have manual control on all the other axes.

With everything in place, I took a deep breath and taxied out to the end of
the runway and lined myself up.  I took another deep breath and smoothly
advanced the throttle.  As the airspeed came up, the aircraft weather vaned
strongly into the direct cross wind so I quickly shut down the motor and
aborted the take off run.  This was my first try at a cross wind take off in
this aircraft so I didn't have my thumb gains set right! :-)  On the second
try I pretty much held the runway center line, and after what seemed like an
eternal take off run in the grass, the tail came up and I coaxed it off the
ground.  It climbed out more lethargically than I thought it should, but it
was climbing ... temps were warmer than when I've flown before and I had an
extra battery pack on board ... I'm not too worried just yet.

I circled the field for a couple minutes to gain some altitude and catch my
breath.  I was paying careful attention to whether or not I had solid manual
control with no glitching.  Flying this airplane manually is a no-brainer,
so I'm not nervous about that.  But this is the first time I've flown all
the equipment plugged together and powered on.  I'm very worried about the
effect of noise and reduced range.  If my receiver is overwhelmed with noise
once the aircraft is at altitude, and I can't control the airplane ... it
goes in hard and half my life for the past couple months goes home in a
garbage bag (I did bring one just in case!)  Failure at this critical point
in the project could mean giving up all my UAV hopes and dreams.  Success
here is the gateway to all sorts of interesting future projects and fun.
I'm usually not a highly dramatic type of guy, but for some reason, I felt a
heavy weight that this was a very critical junction in my life.  So I was
*very* apprehensive about possible equipment failure or some oversite that
would lead to the aircraft being destroyed.

But so far so good, I'm up and flying, control inputs feel solid, no
glitches that I can see in my receiver.  This was the main focus of my test
flight, to validate the manual override board I have recently added to the
whole system and to make sure I can fly the aircraft safely and reliably no
matter what goofiness the flight computer might attempt.

So now I'm at altitude, tooling around, no more excuses ... I flipped the
autopilot switch to activate it and immediately my wings leveled out and
stuck there.  I wiggled the rudder back and forth to full stop in each
direction.  This aircraft has a lot of dihedral and strong roll coupling, so
even though a good whack (sorry Bill) of rudder causes quite a bit of roll,
and even though holding full rudder deflection puts a lot of pressure on the
airframe to roll, the flight computer is able to bring the wings back to
level again and hold them there.

This is the bonus part of the flight.  I honestly didn't care if the flight
computer put the ailerons hard over and held them there, as long as I could
recover manual control any time I wanted.  But the nice bonus was that the
roll angle estimation and wing leveling code worked great.  The gains maybe
weren't exactly perfect, but they were ok, and did the job just fine.

I landed and then repeated everything again with a second flight.  I figure
anyone can hit the three point shot, but if you can do it twice in a row,
maybe it wasn't entirely dumb luck.

This message is getting long and probably 99% of you have clicked
delete/next by now, but let me brag on FlightGear now a minute.

This UAV is running an almost exact copy of the FlightGear autopilot
algorithm, it even has the same xml parser, property system, and almost the
same autopilot config syntax.

The Rascal 110 dynamics model we have in flightgear is not perfect, but it's
not horrible either.  I developed a bunch of flightgear autopilot modes to
work with the Rascal 110 model, including a wing leveler, heading hold,
pitch hold, altitude hold, speed hold, etc. etc.  These autopilot configs
were all developed entirely in FlightGear using a JSBSim dynamics model.

Now with this UAV I am developing, I can take the *exact* autopilot config
file off the flight simulator (make a couple small syntax modifications) and
the actual, real-life, real world uav autopilot can run the same algorthm on
the real uav in real flight with the same gains.  If the simulation model
used to tune the gains is good enough, the real life UAV autopilot should
work out of the box (maybe not optimally) but well enough to be stable and
do the job.

In this case, the wing leveler config developed in simulation with JSBSim
and FlightGear worked out of the box on the real UAV running the same
algorithm.  (The Rascal and the Telemaster aren't exactly the same airframe
so this isn't a perfect conceived test case, but they are close enough ...)

So I hope the significance of this is understood by someone out there ... 1.
A person can create a reasonable simulation of their airframe.  2. Then they
develop the autopilot modes and tune the gains in the simulator where it is
easy, quick, and safe.  3. Now, they take this xml config file for the
autopilot, and it drops right onto the real UAV.  4. If the simulation model
is ok enough, the real uav should just go off and fly.

Let me say that the other way around. I am building a UAV flight computer
that runs the same autopilot PID algorithm as FlightGear.  The UAV flight
computer parses the same xml config file.  The flight computer has a
"strikingly" :-) similar "property system" to flightgear.  In the future, I
hope to add the Nasal parser to my flight computer ... imagine writing a
script that flies the simulator through some standard flight test
procedure.  Now imagine running that same *exact* script on a real UAV.  Now
you have identical input sets and can compare the outputs and refine the
simulator model until they match.  You don't have to worry about some lame
brain test pilot screwing up the test procedure or flying in 15 different
ways in 10 attempts.  Imagine all the other interesting "intelligent"
behavior you could code into a UAV if you had a scripting system.  If you
let your imagination run, there is any number of directions you could go
with this.

Hehe, I *know* that all the experienced UAV'ers and embedded systems guys
out there are thinking I'm plumb nuts for (a) coding in C++, (b) adding a
property system, (c) including an xml parser, and (d) even suggesting the
idea of including a scripting langauge ... but so far it's flying ... :-)

I hope to head out tomorrow and repeat everything with the pitch axis.  So
tomorrow night I could be easily be sobbing, but for tonight at least I am
happy. :-)

Regards,

Curt.
--
Curtis Olson - University of Minnesota - FlightGear Project
http://baron.flightgear.org/~curt/  http://www.humanfirst.umn.edu/
http://www.flightgear.org
Unique text: 2f585eeea02e2c79d7b1d8c4963bae2d
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to