I know I'm not the first person to complain of this, but I've been scouring the forums trying to find answer, and none have pointed to a solution that worked for me. I have a beefy octocopter in an X8 configuration using a Pixhawk and APM firmware 3.3.3. I've been flying in stabilize mode, and whenever I give it a hard yaw left the drone pitches back (nose up) and rolls to the right. Yawing hard to the right does not appear to cause a problem. The same pitching back & up happens when I throttle up very hard as well.
I've tried to address all the possible culprits that other forums have suggested:
- I'd made sure the fore/aft and left/right center of gravity is right in the center of the pixhawk. Thought I believe the up/down COG is below the pixhawk.
- I tuned the RATE_P/I/D for roll and pitch. The copter actually handles really well if all you're doing is pitching and rolling it (and not yawing or being hard on the throttle)
- I've done my very best to make sure there's no arm twist, although it could be I didn't do a very good job at that. So **maybe** that's an issue?
The copter is definitely not lacking in power. It appears to hover around 30% throttle, which I know is a little low. Can that cause issues like this?
Here's a link to a log file (sorry 15mb was too big to attach directly to the post, so here it is in Google drive) from a short flight where I intentionally gave several hard yaw and throttle commands that exhibited the behavior. I tried to analyze the log myself, but I'm no good at this stuff. Maybe someone can help me uncover what's going on?
I think I may be experiencing a very similar issue to you. When you give the copter heavy throttle do you see a sudden pitch / roll? I'm also seeing the extreme wobble with the yaw motion. My quadcopter is of a similar power to weight ratio as yours by the sound of it, I only need a small amount of throttle to hover.
A couple of nights ago I tried playing around with the thrust curve. I managed to completely mitigate the wobble on lift. My theory is the thrust curve of the motors is not linear (not really a theory but fact) and perhaps the PID doesn't like this. The torque tails off very quickly at high rpm due to the back emf, capping the max output avoid this area. I can now put full throttle on and it lifts very flat.
This hasn't effected the yaw motion but I think now by increasing the stab P I may be able to mitigate that too. I'll have a go at the weekend and let you know how I get on.
Can you let me know the motors and props you're using out of interest?
So I wanted to see if perhaps the copter is way too powerful for it's own good, so I found a big LiPo lying around strapped it on just for added weight. I didn't even do a good job centering it. It now hovers around 40% throttle. The heavy pitch/roll from hard throttle didn't go away, but the wobble from a hard yaw, though still there, is much less pronounced. I can now apply a full-power yaw left indefinitely and it will drift from where it's hovering, but it doesn't lose control. This is great news because I was planning on getting a MUCH bigger battery (wanna go from 8,000 mah -> 20,000 mah).
@Lee, per your question: I'm using these motors (700kv), these props (12x4.5) for the top motors and these props (11x4.7) for the bottom ones. These are huge motors and props for such a tiny frame (picture below), and I'm wondering now if the extreme power means that any small imbalances in power show immediately with something that has such a small moment of inertia. I think the solution may just be to add more weight to the frame (through batteries, probably) and set limits on the maximum acceleration in ascent rate.
Frame should handle it ok. This is the same frame with bigger props (15") and motors (380kv) and it flies well. Weighs in at 6.2lbs
Regarding vibrations, I'd check your wiring to see if its vibrating against other wires or the flight controller. If that is ok, check your motor bell housings. I had motors that were sloppy up and down that was causing high z axis vibrations.
Right. I was referring to the fact that motors are so close together, and that there's 8 of them, which is a lot of power. I'm wondering if I wouldn't see these issues if I got larger arms, like you do, and spread the motors apart. Thoughts?
Its possible but it seems more like a parameter or PID value. Can't remember the exact parameter name, something like yaw_filt_hz but it was on 5 on mine and should have been 20. Checked my other MR's running pixhawks and they too had it on 5, and yaw worked much better on 20
I would put longer arms on yours just for getting the props out past the body. Looks like you're losing some thrust as the prop overlaps the frame
The yaw filter is normally in the range of 2.5 to 5 Hz for a good tune. A well executed autotune will sort this out.
I noticed improved yaw performance going to 20hz
Have you done an autotune on yaw? Are you using D term?
The github issue is talking about a parameter storage issue so I am not sure why it is relevant.
I have tuned over 15 copters ranging from fpv racers to 1m wheel base running 29" props, quads, hex, Y6, X8. They all end up with the filter frequency between 2.5 and 4Hz. So a default of 5Hz is on the high side and therefore conservative.
I am interested in your copter parameters and how you tune because your experience is very different to what I have measured myself.
The tune looks like it went much better.
It looks like you have your roll over tuned though. I can see that your roll axis is oscillating every time that a yaw test is being done.
How have you tuned roll and pitch? I can see they are both set the same so I assume you have done a manual tune or accidently copied values of an autotune to both axis.
You should fine you get even more improvement out of your yaw tune if you can get your roll and pitch tune set up well.
I would suggest keeping your yaw tune but doing a roll and pitch tune using AGGR of 0.05. I am happy to have a look at that if you like.
Hi Leonard, (replying to this one as the others don't have a reply button to hit)
I ran autotune with the AUTOTUNE_AGGR set to 0.1, the yaw filter set to 5hz and just the yaw axis. I was wondering if you could take a look at the dataflash log of the tune? It came up with rate yaw P=1.280242, I=0.1280242 and D=0. It seems better than the previous tune, and for some reason the quad motors don't sound as though their changing speeds as much (I assume a good thing?). Thanks again for all your help Leonard, I appreciate you taking time out of your day to help me!