I just added a simple stability augmentation system (SAS) to my autopilot code. I am posting a video of the very first test flight. As you can see if you watch it, I had some success, and there were a few things to tweak for the next flight.
I've posted a few more details and explanations here:
This is my first crack at an SAS, and it is very simplistic. The pilot stick inputs map to roll and pitch *rates*. When the pilot centers the stick, the SAS holds the current target roll and pitch angles as best as it can. For now I've let the pilot have direct control over the throttle and rudder while the SAS is active. This allows the pilot to taxi on the ground to set up a take off. It allows the pilot to steer with the rudder while the SAS holds the wings level. I'm not convinced this is the best arrangement, but for a first crack it certainly is workable. By my third flight I was able to taxi to the end of the runway, do a full wheel take off, fly a complete flight, and finish with a smooth landing -- with the SAS turned on from start to finish.
I have a few questions though.
Is it fair to call what I've put together an "SAS" or is there a better term I should be using? I hate playing acronym of the day though. In this field everyone likes to make up their own variants anyway. I've set up my system so that stick deflections map to roll and pitch rates and then the system holds the current bank and pitch angles when the stick is centered. This works pretty intuitively as long as you recognize and account for some latency. But how have other people rigged up their systems? What do people feel works the best and is most intuitive from a pilot's perspective? What is the ardupilot mega doing?
Thanks,
Curt.
Comments
You ask an excellent question though. In my case I'm flying a telemaster and I've rigged the maximum pitch up angle and the maximum up elevator in SAS mode to never exceed the aircraft limits and produce a stall. I can hold full up stick position on the transmitter and the aircraft will get really mushy, and the nose will drop straight forward, but it always remains controllable.
This of course would not be a good strategy (stragedy?) on a higher performance airframe with nastier stall characteristics. I think it's neat to see the aircraft hold it's target pitch angle even with radical throttle changes, but I agree that this might not be the most intuitive mode of operation from a pilot's perspective.
It's disconcerting (for instance) on a missed approach/go around to give full throttle and watch the aircraft accelerate in a straight line, continuing to descend towards the obstacles at the end of the field. The pilot needs to remember to give power and pitch the nose up manually, it won't come up on it's own. Same issue in reverse when landing. When you pull off power, the nose doesn't drop which makes you nervous about getting too slow on your approach.
I need to think about it a bit more ... the standard DIYdrones air speed sensor with 10bit ADC is pretty crude and jumpy at approach speeds and not dependable enough or stable enough for solid pitch control (I don't think.)
In my own defense, this was my first day out testing a brand new system so I was probably a bit naively brave to even try take offs and landings and low passes without building up some more time at altitude. But what the heck, flying days can be hard to come by when you mix work schedules and weather and family schedules and all that.
A few years ago I got some stick time in a full motion A-320 system so in my head I was trying to mimic a very simplistic version of the airbus flight control system when I setup my system. I'm not sure what is ultimately the best approach for an RC airplane, but that's what was going on inside my head when I set things up.
I am planning on adding something like an acro-mode for holding a knife edge or inverted flight with stabilization. The only reason I haven't is my EZ-Star would probably not be the right test vehicle.
To do that I planned to set up a rate of change based on stick deflection and sum it with roll and pitch. The plane would do it's best to hold that attitude using the stabilization code. This would allow rolls and holding any attitude you want.
Our Stabilize mode works differently. It always attempts to return the plane to level flight and has a mix enabled so the effect is scaled to stick deflection. This allows you to fly it normally and do loops, rolls, etc.
Jason