Hey guys,
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?
Replies
Hi Derek,
Thanks for your kind words.
You shouldn't need to redo your pid tuning. I have done tunes for half a dozen commercial copters. I find a good autotune is generally stable enough to account for variation in the various components.
The bigger issue is varying payloads. A payload can dramatically change the control characteristics.
I looked at your autotune of yaw and I think you should repeat the tune with AUTOTUNE_AGGR set to 0.1. I think you will get a much better tune.
I can see the tune was picking up noise instead of the control response and that is why it reduced the filter frequency to 1Hz.
Let me know how you go.
Thanks!!
Hi Leonard, thank you for taking a look at these logs. Developers for the ardupilot project have such a hands on approach, very inspiring!
Perhaps I should run autotune on the yaw axis again?
Do you think I should run autotune on the 2nd nearly identical multirotor or can I get away with copying over the PIDs? Same motors, props, ESCs, internal wiring. Was hoping to avoid running autotune again as it took a few days with the battery recharges.
61.BIN
alien560_1.param
Hi Derek,
I have given a bit of an explanation of the atc_accel parameters on the last page.
Do you have a log of your yaw autotune. I am interested to see how it looks. If you could export your .param file from the parameter list when connected to the copter that would also be helpful.
Thanks!!
Just noticed I posted the wrong multirotors pid. It was a 2nd nearly identical multirotor that I copied and adjusted the pids. Above is the autotune derived pids of the multirotor I meant to talk about
Sorry to cause confusion. I noticed the values were shortened and couldn't be autotune derived
Yaw settings were derived via autotune. Autotune did not populate a D setting.
I was thinking the parameter should be 20 to match the rate_rll_filt_hz and rate_pit_filt_hz. I saw a while back that someone posted that theirs defaulted back to 5 regardless of the setting they put in (wanted 20). I did a little search and found the github issue. I tried a setting of 20, and my MR was more responsive to yaw inputs. With 5hz, it does the turns but seems sloppy and laggy. With 20, it was crisp. Any idea why it seems more responsive with a higher hz?
Parameters are below. Autotune populated all the parameters except for Throttle Accel Loiter and WPNav. The former I just slid the Climb Sensitivity slider in basic tuning to the right until it was more responsive to throttle.