I asked this question a while ago, with no reply.
Am I right in assuming that the value ‘ay’ as displayed in the flight data screen is sideslip? Would it be a simple programming change to feed this to the rudder for perfectly coordinated turns?
I have been looking into the code a bit but dont feel confident enough to have a go, just yet.
I'm not an arduplane expert, i'm on the copter side but ay is actually the accelerometer's value in the y axis...which I'm pretty sure is the left/right direction (maybe it's forward/back..not 100% sure).
I guess by coordinated turns you mean moving the rudder and ailerons (?) together? I'm pretty sure it does that already..but I'm far from an expert on the arduplane side.
Randy, thanks for reply.
Currently the Arduplane software lets you set (guess) an amount of rudder to be mixed in with aileron to coordinate the turn. This is trial and error but the ardupilot already has the sensors to do this perfectly. When playing with the ardupilot on the table it is clear that the ay parameter, as you say, is measuring the y axis acceleration – sideslip.
I would just like to see a tick box ‘auto yaw’ on a future version and also some form of sideslip display on the PFD.
Another advantage of having auto sideslip is in the case of twin motor planes. If one motor fails it should boot a load of rudder in to help prevent the usual spiral dive.
Ah, i see (sort of). Mixing in accelerometers is trickier than it seems especially once you introduce the vibration of the motors etc. Still, we are working on that. I don't know if Tridge and Jonathan would be planning to use that for this sideslip.
I guess they are aircraft developers? Should I direct the question to them or can you nudge them to take a look here?
If I'm understanding you correctly, we already have what you want.
The yaw controller YW2SRV_ takes the Y accelerometer as error and attempts to drive it to zero using the rudder. The implementation is fairly poor - there isn't enough filtering done to the Y accelerometer, so setting P even close to high enough will get you some serious noise on the rudder servo. To get around this, I recommend setting YW2SRV_I. How high depends on your plane - as an example, on my e-flite apprentice with the rudder clevis in the most aggressive position on the control horn, I have it set to 3.0 or so. On something with a bigger rudder, it may need to be lower. On something with a weaker rudder, it might be possible to push it higher.
The aileron mixing you're talking about does not control sideslip. It will actually make the problem worse. It is there for counteracting adverse yaw from the ailerons - raise it until your rate of turn doesn't spike in the opposite direction when you initiate a roll.
There's also alternate controllers available as a compile-time option, which I was working on a while back. The yaw controller included in these does strongly filter the Y accelerometer, so you can use P. It is also scaled about 5 times higher than the default controller, for example, the gains for my apprentice are P=.625, I=.75. With these settings, it does a really great job of both preventing and breaking spins.
On a twin engine plane in an engine-out state, it will adjust the rudder to coordinate the plane. If you set the integrator limit high enough, it will either max out the rudder or fully coordinate the plane.
Just controlling away the y accelerometer is incredibly robust - it's the right thing to do in essentially all cases, except on the ground. It makes the plane recover from bad situations.
I guess it wouldn't work so well if the plane lost a wing and had to do a knife-edge landing. But we don't support that anyway.