I have a hand-launched drone with the stable firmware version 4.4.1 installed. When I used autotakeoff, it veered to the right and didn’t follow a straight path, which is quite undesirable. Unfortunately, I’m not sure what the issue is, but luckily it doesn’t cause a complete failure.
However, during autoland, when it approaches the ground, it suddenly veers in another direction within one meter, causing a failure. But I managed to regain control with the remote control and switched to manual mode.
This happens consistently and repeatedly (every time) except when the direction of the rudder changes sometimes like this issue!!
And sometimes increased throttle!
Sudden changes in attitude during the approach occur simultaneously with the flare. Upon entering the flare, the FC sets the steering servo (=rudder servo) to the trim position in preparation for the ground taxiing.
Your steering servo is assigned to SERVO1 and its trim value is set to 1850. You can see that RCOU.C1 = 1850 during Flare.
However, RCOU.C1 during level flight shows a value around 1920.
During Flare, RCOU.C1 returns to the trim value, causing the aircraft to yaw to the right significantly. Yawing to the right increases the speed of the left wing and causes the left wing to have more lift than the right, resulting in a roll to the right. The aileron is trying to roll to the left to maintain level flight, but the effect of yawing to the right prevails.
To solve this problem, you may want to set SERVO1_TRIM=1920.
Thanks, that’s right, my plane just has rudder and elevator!
And how to disable steering, because I set ground steering alt to zero but steering actives yet.
How to disable steering command?!
I want to the plane maintains its heading of before its flare without changing the trim.
I could not figure out how to disable the steering function only. I believe that correcting the trim misalignment will work, so why don’t you try that first?
Because my servos did not work and failed. And I have to test autoland again to find new trim servo output and this is dangerous and has high risk!!
1850 is the best trim when my plane is disarmed and this is aligned to my cg.
And I want to solve this as automatically!
hmmm. my thoughts…
you have a hand launch, belly lander. i fly wheeled takeoff/landing planes. there ‘might’ be some different concerns, but i’m not sure?
.
TO/landings want to see the plane fuselage/wheels lining up with the direction of travel relative to the ground. i suspect a hand launch is the same - the assumed attitude is direct forward flight (rudder neutral). that way the plane doesn’t touch down sideways.
.
trim on the rudder should be a neutral position (same with other control surfaces), so that cruising at fwd level flight shows control surface servos at (or very close to) trim/neutral positions. maybe there’s a reason to deviate from this? i dont know. maybe a desire to fly circles in some circumstance (trim is offset)? my receivers have a failsafe setting that allows a preset pwm value during failsafe, so relying on some kind of offset trim is not necessary. …
…but you said that your trim was “aligned to your cg”. i’m sorry, but i’m not understanding that statement. “CG” is center of gravity, and is a point (between front and back) on the plane. how does a rudder align to cg? CG doesn’t care about, and is not affected by, rudder trim/deflection, but forward flight does care. i’m not understanding your statement, apparently.
.
I think you misunderstand the meaning of the word “trim”.
It is incorrect to say that a surface deflection of 0deg is the “trim position”. The “trim position” is the deflection of the surface when the aircraft is in level flight (i.e., the aircraft is not rotating around any of the three axes).
It is my observation that when your aircraft is in level flight, the rudder PWM is about 1920. Perhaps there is a problem with the wing alignment, so your plane has a tendency to roll to the right at all times. To counteract this in autoflight, the rudder is always deflecting to the left, trying to yaw the aircraft to the left. This is how the aircraft maintains its balance.
According to your log, in manual mode before takeoff or after landing, perhaps with your transmitter’s stick in the neutral position, RCOU_C1 shows 1925. You must have set the transmitter’s trim to this value when adjusting the trim in manual flight. I suggest that SERVO1_TRIM should be the same as this value. This will keep RCOU_C1 at 1925 during flares and prevent the aircraft from rolling to the right.
Are you sure that by correcting the rudder trim value, autoland will be fixed?
Because I think the autopilot itself should control the drone’s angles by setting them to zero, rather than just being satisfied with the trim values.
I agree with you.
However, it appears to be an ArduPilot’s specification at this time that the rudder pwm is fixed to the value of SERVO1_TRIM when flaring.
You might want to post an issue on github to improve this issue.
I cannot guarantee that my suggestion will really solve the problem. I am only stating the results of my analysis of your logs. It is your decision whether to actually do it or not.
But I would like you to try it and let me know what you find.
thx for the pic, qwerty
so, i understand, from the pix, that your rudder is aligned with, what i would call, the fuselage when neutral/trim. this is generally accepted as correct (but your PWM value is way off).
.
— the following are generally accepted, and communicated, terms in the model plane industry…
… “CG” is not understood a single point in the middle of the fuse, but a line perpendicular to the fuse that extends outwards across the wings. that is why planes can be balanced at the cg by lifting from points on both wings. the CG is a balance point that affects “nose heavy”, “tail heavy” or “neutral CG”. things that affect pitch.
…“lateral balance” is that balance line parallel to the fuse, hopefully down the center, that defines equal weights of each wing (each half of the plane).
.
i suppose that one might take the intersection of these 2 lines and call it “CG”, but i’ve never seen or heard of that, and i’ll bet it’d be all kinds of fun trying to balance a plane by a single point.
.
anyway, it looks like we agree on the rudder being trimmed to have the fuselage running parallel to the ground on takeoff/landing, not slipping or crabbing sideways.
.
i agree with hatnac on his evaluation of possible cause of your problem. however, i will add some things…
… PWM values for servos generally run from 1000 to 2000, with 1500 being center (usually trim is around here). if you have a symmetrical surface - one that travels the same distances in both directions, you would want the servo to be trimmed near the center (1500) in order to give the servo enough PWM value to travel in either direction. trimming at 1920, or 1850 might cause the servo to be too close to one end of it’s travel. such a servo will not be able to go far enough in that direction OR it will be overdriven too often or too long and endanger the servo of burnout.
unless there’s something i’m not seeing, i’d recommend adjusting your rudder linkage so that the rudder servo trims near 1500 PWM.
.
to hatnac’s point, maybe your wings are warped and forcing rudder extreme rudder trim (to one side) to keep the plane from rolling? for other readers, a Rudder/Elevator (no alierons) plane is more sensitive to wing warpage. while a plane with ailerons can use the ailerons to trim out slight warp variations, an RE plane requires rudder trim. if this rudder trim is significant enough, the plane will crab in flight, will land in a crab attitude, and will tend to veer away from centerline on takeoff.
.
HOWEVER, if 1850 PWM shows your rudder aligned with the fuselage, i’d say that you need to adjust linkage to get that closer to 1500. then, as hatnac mentions, the difference between 1850 and 1920 (70) will need to be solved (maybe solving a warpage issue or crooked wing). keep in mind that the difference might change (from 70) due to differences cause by adjusting the linkage.
.