I have an application where it is desired that the plane stays level in auto flight. It should turn with the rudder and not bank at all.
ArduPlane currently cannot do that. It uses ailerons as primary heading change control and the rudder is used at most for achieving coordinated turns, where local lateral acceleration is zero. This is normally done for occupant comfort but hmmm it's a UAV.
Has anybody ever tried to write such a controller, or is anybody else interested in having one?
I can see the L1 controller does have some functionality to hold a heading with the rudder - for when rolling on the ground. Maybe this could be rewritten into flying towards a point instead of just keeping a direction.
Is there a presentation of how the L1 controller works somewhere? Maybe even the APM implementation?
Implementation for this type of controller should be relatively simple...
I think it is best done by copying out the navigation roll command to a new variable (for example to nav_yaw_cd), then set the nav_roll_cd to 0. All this is in the function which performs the calculation for the navigation in auto mode ( the function is called update_current_flight_mode(void))
After this all which is left to do is to modify the Attitude.pde file. Therefore instead of having the rudder being actuated in order to do some coordinated turns, the new nav_yaw_cd variable is used to calculate navigational error. After this the error can be stuck into the Rudder PID and you are done.
Does this make any sense to you? I think with this methode you only have to manipulate 10-20 lines of code, and you should be ready to go...
Yeah I saw the possibility of doing something like that. Or introduce nav_headingcorr_cd and distribute it out to roll (as is now) or rudder (flat flight) or anything in between.
Would have been even easier if side effects were not used so much in the code.
Yeah, should be fairly easy. Tell me If you need help with the code
I want to test this implementation, but I need your help with the code...
I understand your proposition but I don't know how and where to modify the code.
In fact, I want to control a airship (I only have rudder and elevator) with my APM 2.5.
Moreover, airship have a natural oscillation on roll axis. So, I don't want the roll stabilisation.
Thank you for your help.
Hi, well you can always turn P, I and D on roll down to zero, that should do it.
I think Multiwii is waaaaaaaaaay easier to understand and modify than AP. Did you have a look?
I also have a rudder-elevator plane. APM has no problem controlling it. The plane behaves like it has ailerons. No yaw or roll oscialltions.
I can't see why you wouldn't want roll stabilization.
Hi, try look one post above the one you replied to :)