I've recently tried to setup APM for my new flying wing and discovered that it is not safe to fly in other than Manual modes =( The reason is servo throws for most flying wings must be limited, but APM limits them only in Manual, in all other modes servos goes to endpoints.
After some googling I've found 2 bugs submitted to issue logger on google code of arduplane:
Elevon control throw for manual mode does not match control throw for other modes
|Issue 686:||Servo limits (maximum throw) is not working in stabilize, fbw and other modes.|
Another helpful user - Vladimir Popov commented:
Comment by Vladimir Popov yesterday
I just investigated firmware sourses... Stick deflections are added to servo output a bit tricky - automatic output signal is scaled down to leave place for manual signal. It seems Ok, but the algorithm is internally limited - manual signal must not exceed +-400 ms from trimmed value. I do not know why. So, don't move sticks too much...
I think you can ask developers about this limitation. Function stabilize() in Attitude.pde.
In RTL mode sticks are not mixed at all.
So what should we change in order to make it work? Thanks for the help!
I'm sorry... Did you tried in the air, or just on the ground?
If you are using APM:Plane 2.74 then you should have a look at the docs on the ELEVON_OUTPUT and MIXING_GAIN parameters. These allow you to setup a virtual elevon mixer in the plane, and set your transmitter to normal aileron/elevator (ie. no elevon mixing). That allows you to get rid of the weird artifacts of the old elevon handling system.
At the beginning of my journey I've tested it few times in the air. Right now I'm testing on a bench - I can't risk this wing so much.
What if I'm using older version? Any other way to limit the throws? I've tried to find the logic behind elevon mixer, but couldn't get where numbers 500 and 400 came from?