Heavy Lift Octorotor Oscillations on Landing

Thank you @xfacta. i will try this parameters. i need to increase autotune aggresive again.
i guess octo can not stable at 10 - 12 hz for accel filter and gyro filter .

Thanks for the link to the Frame.

When you stated an Octo, I thought of 8 rotors in a flat configuration with 8 booms.
I was going to suggest you take the Octo and loose 4 booms and make it a Coax 8.
But now I see it is a Coax 8 setup.
A Coax is easier and more stable than a flat Octo, and can deal with wind better.

Question, why did you change up from the included A2 to the Pixhawk?
Staying with the A2 would allow you to use the same gains that Foxtech used.

Having built literally hundreds of A2 builds and nearly a 100 Pixhawk setups, I would say that your success with the A2 might have been easier, BUT with that said the Pixhawk does give you far more controls over the flight system. A2 is very simple to configure, and stable in high winds, the Pixhawk gives you more configurations that can make the setup more complicated and difficult for beginners.

Also notice how low the camera gimbal sits in the photos, this lower weight acts as a pendulum to stabilize your system. In designing many flight systems its always best to start with good physics before trying to use software to stabilize your craft. The logic is that 1kg of weight slung down low can act like 3 kg close to the system. So the idea of adding batteries up close to the center of gravity might not be the answer.
Using less payload in a lower position increases stability AND give you longer flight times with the less weight.
Remember that PID settings are like lipstick on a PIG.
You cannot tune out a bad design with software.

Hello Jeff,
It is interesting to read your posting here. I fully agree with your opinion and I do understand your words here. However one think that I really want to understand: about your statement that A2 is stable in high wind. Are you saying that the A2 is better than Pixhawk in high wind? Can you elaborate deeper about this issue? Is this because of PID issue or other issues? Second is about how to solve vibration issue. I read in this forum there are many cases or problems that caused by high vibration… I also have experience in using Dji Phantom 3 and 4 for long mission at high altitude about 350 -500 m with strong wind without any problem. But now having built my own big copter with Pixhawk 4 (original Pixhawk not clone) I am a bit worried to fly
it more than 100 meters. As you have experiences using both A2 and Pixhawk, I believe it will be valuable to hear your opinion.
Thank you…

Hello Tony
I have been a designer for Infinite Jib for the past 12 years, www.infinitejib.com.
Prior to that I worked at Boeing in manufacturing.
I stared working with drones about 15 years ago, I have tested and flown system starting with Mikrocopter, HoverFly, DJI Wookong, DJI A2, DJI A3, Pixhawk and a few other less known fight controllers.
Staring a new design, we found the A2 to be the quickest from concept to stable flight system over any other system. This is not to say that one is better than the rest, other that for us, getting development done and production started in the least amount of time was our goal.
Here’s our Surveyor Flight system flying in winds between 60 to 80km/hr doing auto take off waypoint flight then landing all in auto.
https://www.youtube.com/watch?v=WSgifzzC3Zc
That was done with an A2. Flight times with a Nikon DSLR are about 20min in the summer with new batteries.
The fellow with the tablet was getting flight training that day on a system he purchased.
Rob our test pilot with the radio was ready incase he had to take over, but never did.
I am sure there are combinations of setting in which a Pixhawk can be tuned. But just like a combination lock, there are so many combinations that getting it right can take a long time.
The A3 was stable, just limited in its ability to be customized for non-DJi functions.
Only purchased 2 A3 and went back to the A2.
The problem is that the A2 is discontinued, and finding stock was to keep up with production was difficult so we switched to the Pixhawk as it offered more to us than the A3.
We also found that Pixhawk Auto tune works best for small frames with propellers under 15".
17" propellers and above, Autotune is sketchy at best.
Here’s an A2 flying a 28" Prop Coax 8
No amount of tuning of the A2 could make it fly as stable as the Surveyor.
https://www.youtube.com/watch?v=Xa0d1sPgqMU&t=15s
It flew ok, in winds under 15km/h.
We scrapped the project because we did not feel comfortable selling a flight system that could not deal with winds and was tricky for a beginner to fly.

Hope this helps.
Jeff

Sorry Jeff but it sounds like you know how to get the most out of the A2 but have a limited understanding of how to setup and tune ArduCopter, unless when you said “Pixhawk” you meant PX4 and then everything you said makes perfect sense.

On the payload/pendulum thing. The only thing a low slung mass does is increase the moment of inertia of the system and therefore make it more stable. It will like higher PID settings. Increasing the mass in general increases the load on the propeller and helps the deceleration time and therefore can improve the response time on esc’s with low breaking torque.

Autotune is not size limited and ArduPilot is really the only choice for large multirotor aircraft. But yes, you need to understand how to set it up correctly.

Here is an example of an aircraft that I setup, did a manual tune, autotuned, then backed off the input shaping parameters (command model) appropriately for the maximum payload.

The wind handling of this aircraft is limited by the point at which the aircraft is blown over when shut down on the ground with only a small or minimum payload. We have operated in higher wind conditions than that but needed to land with the up-wind legs on a rise. A decent payload makes it easier to land in high winds.

6 Likes

To address the problem at hand. There have been a lot of good points made and some good advice. I will try to give a concise overview of the problems and some tools to address it.

We have a reasonably lightly loaded aircraft. A frame that is pretty decent but with the normal challenges to nicely mount flight controller. Alpha ESC’s have worked well for me in the past but in general I don’t like T-Motor equipment. There is no reason why this aircraft should not tune up nicely.

The trick with turning large propellers is breaking torque and low inertia propellers. As I have tuned 40 inch props using alpha ESC’s I think it is unlikely that you have a power system problem. So that leaves tuning.
Decent wobbles and vortex ring state (I realise that @mboland did not mention vortex ring state) . While multirotors do suffer from their own turbulence during a fast descent this is not the same as vortex ring state. There are a number of factors that make it difficult if not impossible for a multirotor to enter vortex ring state. The first is the twist on the propeller producing a more uniform load along the length of the blade preventing the central up going airflow from developing. The second is the multiple propellers constantly changing thrust that disrupts the airflow preventing the outer vortex from forming properly.

We do suffer during decent but it is for a number of reasons.

  • We are descending into our own turbulent air placing a higher load on the controllers
  • We are at minimum or low throttle showing up tuning problems associated with MOT_THST_EXPO and MOT_SPIN_MIN.
  • The ESC is working very hard at low RPM and very close to where sync issues become a problem.

So that brings us to our first two parameters MOT_THST_EXPO and MOT_SPIN_MIN. These address two issues.

MOT_SPIN_MIN sets the minimum PWM level commanded to the ESC during flight. This is a very important factor as it defines how slow the ESC will let the motor go under load. When set way too low we risk loosing sync and the esc going back into its restart state or worse shutting down. As we get a little higher we see problems where under load the motor gets into a hole and there is an increased delay as the ESC works hard to increase the rpm back up again. This can cause issues like the one shown here but tends to be only part of the problem. MOT_SPIN_MIN should be set high enough to get strong rotation but only a small amount of lift.

MOT_THST_EXPO is the linearization of thrust vs PWM. If this is set too high we see an increase in gain at the lower end of the thrust range and a decrease in gain at the upper end. Therefore when set to high you can see instability at low throttle and if set too low you can see instability at high throttle. In this case both very high or very low values could cause this problem through different mechanisms but this parameter is pretty forgiving and you have not set it too far from where I would expect.

These have not been set:
MOT_PWM_MAX,0
MOT_PWM_MIN,0

I can’t remember if alphas have fixed pwm ranges but you should check and set them appropriately. I use 1000 to 2000 for calibratable ESC’s and the range specified in the instructions for fixed range ESC’s.

The rest of your motor setup looks ok.

Tuning:

The first step to tuning is defining the filter parameters. Here is where I think you may get the most benefit. Generally there are three types of tune:

  • Performance limited
  • Noise limited
  • Reliability limited

The lower the filter settings the slower the control loops are to respond to disturbances. If you have a really well built airframe with low noise then you can set your filters higher and your tune is limited only by your power system and aircraft dynamics. This is a performance limited tune.

As your noise increases you need to reduce your filter settings and you start getting serious compromises to your performance. This is a noise limited tune.

Reliability limited is where the aircraft will fail in some way if you tune the aircraft up properly. Normally this is in the form of ESC overcurrent protections causing ESC’s to shut down.

Filter settings:
Ideally I like to keep the noise levels below the 0.1 (10%) on the RATE.Xout messages. I start by carefully setting up the harmonic notch parameters.

INS_HNTCH_ATT,40
INS_HNTCH_BW, (2/3) * INS_HNTCH_FREQ
INS_HNTCH_ENABLE,1
INS_HNTCH_FREQ, measured from batch logging
INS_HNTCH_HMNCS, Your main harmonics, should be 3 for you
INS_HNTCH_MODE,1

Then I start with filter settings of:
INS_ACCEL_FILTER,10
INS_GYRO_FILTER 40
ATC_RAT_PIT_FLTD,20
ATC_RAT_PIT_FLTE,0
ATC_RAT_PIT_FLTT,10
ATC_RAT_RLL_FLTD,20
ATC_RAT_RLL_FLTE,0
ATC_RAT_RLL_FLTT,10

I look at the noise levels on the RATE.Xout messages dataflash logs and if they are large I reduce to:
INS_GYRO_FILTER 30
ATC_RAT_PIT_FLTD,15
ATC_RAT_RLL_FLTD,15

then if needed:
INS_GYRO_FILTER 20
ATC_RAT_PIT_FLTD,10
ATC_RAT_RLL_FLTD,10

The idea being to get the fastest filter settings with reasonable noise.

Manual tune and Autotune:

Autotune can be tricky for people to get right. Everybody used to emphasise getting a really calm day and letting it drift with the wind but the community has become complacent and it is used as a “flick a switch and get a tune” in any conditions option. People get something flying, do autotune and don’t even look at the parameters any more. This is why doing a manual tune is very helpful. It ensures the aircraft can handle Autotune, or more to the point the recovery from each test. And it also give the pilot an idea of what they expect the tune to look like.

In this case we should see similar tunes in roll and pitch:

ATC_ACCEL_P_MAX,35212.49
ATC_ANG_PIT_P,7.85549
ATC_RAT_PIT_FLTD,2
ATC_RAT_PIT_FLTE,0
ATC_RAT_PIT_FLTT,9
ATC_RAT_PIT_D,0.008191199
ATC_RAT_PIT_I,0.08153227
ATC_RAT_PIT_P,0.08153227

ATC_ACCEL_R_MAX,45817.86
ATC_ANG_RLL_P,5.472067
ATC_RAT_RLL_FLTD,9
ATC_RAT_RLL_FLTE,0
ATC_RAT_RLL_FLTT,9
ATC_RAT_RLL_D,0.002590117
ATC_RAT_RLL_I,0.1075044
ATC_RAT_RLL_P,0.1075044

The significant difference in the D terms suggest that there may be a problem with the autotune on roll.

Autotune can be adversely impacted by wind, badly setup MOT_THST_EXPO and MOT_SPIN_MIN, offset CG, payload or autopilot mounting.

In general you should always start with AUTOTUNE_AGGR set to 0.1. This is a conservative value and there is no reason to go lower here. This value defines the overshoot plus noise. In a perfectly clean aircraft the ideal value for disturbance rejection is 0.1 but 0.05 is ever so slightly faster. So when you factor in a little noise you get a nice safe range. The risk to going lower is any noise on your system can quickly cause autotune to fail so 0.1 or 0.15 for a noisy aircraft are good. (fix noise if you have it use 0.1).

You have autotuned yaw and have got a decent tune by the looks of things. You should be careful here because autotune can give a great yaw tune that can momentarily steal bandwidth from roll and pitch. I tend to set the accel a little lower and not let the P term go over 1.

ATC_ACCEL_Y_MAX,9230.682
ATC_ANG_YAW_P,4.310193
ATC_RAT_YAW_FLTD,0
ATC_RAT_YAW_FLTE,1
ATC_RAT_YAW_FLTT,9
ATC_RAT_YAW_D,0
ATC_RAT_YAW_I,0.1050341
ATC_RAT_YAW_P,1.050341

So to soften yaw and give roll and pitch a little more room, I would tend to drop it to:
ATC_ACCEL_Y_MAX,6000
ATC_RAT_YAW_D,0
ATC_RAT_YAW_I,0.1
ATC_RAT_YAW_P,1

Well, that is probably enough for now.

A quick summary:
Check your

  • PWM settings
  • MOT_SPIN_MIN
  • Roll tune, in particular how low D went
  • Setup your harmonic notch
  • See if you can increase your filter settings

After all that it is also helpful to get stable descents to have conservative settings for:
ATC_ACCEL_P_MAX,30000
ATC_ACCEL_R_MAX,30000
for example.

15 Likes

Hello @Leonardthall.
Thank you for your nice and teaching useful answer. I learned alot of thing in this topic.

I was shocked to watch your callisto 50 video. I’ve never seen it balanced like this.

I talked with T-motor engineer. They said using Linear throttle for FOC alpha ESC’S. But they couldnt find solution for thrust EXPO parameter.

Throttle pos range : 1100 – 1940us, 500Hz. Respond speed : 300ms. For alpha esc.

https://store-en.tmotor.com/goods.php?id=582

what would you advice value for MOT_THST_EXPO and MOT_SPIN_MIN.i need just a starting sample value for my frame.

I will make autotune again with AUTOTUNE_AGGR : 0.1.

I dont know why significant difference in the D terms. Because I choose no wind days for autotune. Also i checked CG and arm motor angles again and again but i can not find any problem.

I saw this vehicle for the first time. i will set new parameters as you adviced. (INS_HNTCH_MODE).

I am seeting ATC_ACCEL_P_MAX:24000 and ATC_ACCEL_R_MAX : 24000 before autotune. But autotune increase to 45000. Do you mean decrease to 30000 manually again after autotune. Can it be problem ?

you think this filter settings is good according to my log RATE.Xout ? Becuse i don’t know how to decide if it’s good or bad :frowning:

INS_ACCEL_FILTER : 10
INS_GYRO_FILTER : 20

ATC_RAT_PIT_FLTT,9

ATC_RAT_RLL_FLTD,9

Last question. Do you have an idea about Why does my OCTO Coax frame draw more current than the values written in the U8 motor specifications ?

Leonard,

I copied and saved your post.
It looks like I have some aircraft to re-tune.

3 Likes

The manufacture’s motor test data is derived under controlled conditions with (hopefully) test equipment that is properly calibrated and certified.

So ask your self some questions:

How accurate is the scale I used to weigh the aircraft?
How accurate is the current sensor on the aircraft?
How accurate is the voltage sensor on the aircraft?
What procedure did I use to calibrate the current and voltage sensors?
How accurate is the test equipment I used to calibrate the current and voltage sensors?
When was the last time I have my test equipment calibrated?

The real point is, bench testing is a measure of how well something can be expected to perform under ideal conditions. Real world conditions are never ideal.

Hi @Leonardthall, Jeff,
Thank you very much for your long explanation about stability issue… I believe that Pixhawk with ardupilot can be better than A2 /A3 if we tune it properly. I keep learning from you guys about this hot issue, how to tune my medium big copter (24" prop.) properly, so that it can fly stable during strong wind… I have a simple question here, but maybe not easy to answer,: How to determine the Limit of wind speed that our copter (or our Vtol plane) still safe to fly ??? I mean is there any scientific method to do it ?? I am referring to a medium big Quadcopter (22-24" props.).
Regards,
Tony

1 Like

Unless you have measured the thrust vs pwm yourself I would stick with the defaults.

You need to use the motor test and decide what is a safe minimum thrust for your aircraft.

This can also happen because of other bad parameters as I discussed above. It can also happen if you let the aircraft move too much and build up airspeed even if there is no wind.

Autotune measures this and sets it to the most aggressive value so you should reduce it back to 24000 after autotune is complete.

Look at the noise on the RATE.Rout, Pout, Yout, and Aout with fast logging enabled in the log bit mask. If you see more than 10% when you zoom right in close then it is probably too much noise and you need to reduce your filter settings.

Never believe a manufacturer until you have verified the measurements yourself.

2 Likes

This is a difficult question to answer but generally a well tuned multirotor can fly in any wind up to its maximum airspeed. The trick is landing without tipping over. The callisto aircraft above can easily fly in conditions up to 60 km/h winds but will be blown over when sitting on the ground between 30 and 40 km/h. So the real question is what wind speed are you able to take off and land in and reliably NOT tip the aircraft over as you shut down or spool up.

VTOL is much harder as it depends on how the wing is set relative to the quad and the amount of control that is achieved with the quad motors. In general it is difficult to land a VTOL in winds higher than the stall speed of the aircraft. I was producing a VTOL based on the X8 and was able to take off and land in 30 km/h winds but had to turn the aircraft sideways to land because the aircraft could not descend when facing into the wind.

In general a well built, setup and tuned aircraft can fly in conditions much worse than the operators are comfortable putting it up in.

2 Likes

Hello Leonard, this post is really gold. I am sorry i gave bad advice but for me tuning a light big prop quad has been a nightmare. Hopefully with your suggstions it’ll be better, i’ll go back to my big copter and retune following your advice to see if i can get better results.
One thing, i do not have RATE.xOut, i only have RATE.Yout, do i have to enable some special logging?
Ok i got it now, X stands generic for R,P,Y…i guess i am a little slow in the morning :slight_smile:

1 Like

Mate, absolutely not! It is people’s willingness to try to help that makes this project so good and keeps the developers working to do better (and the ideas of how to do better).

Again, you are very correct here. This is because the motors tend to be smaller (lower torque), the props tend to be larger with higher inertia and more efficient (less drag). Then if you add ESC’s that don’t have strong breaking you are really pushing hard to get a good tune.

Yeh, I am going to stop saying that. The x is for the R, P, Y, A. I should just write RATE.ROut, RATE.POut, RATE.YOut, and RATE.AOut.

Oh, crap. I just read the end of the post and realised you said exactly that :laughing:

1 Like

@Leonardthall regarding the MOT_SPIN_MIN

If I but the Copter on a scale, and slowly increase the throttle until the scale shows 2/3 of the resting copter height, would you say that is a “safe minimum thrust” ?

If I autotune in ALT_HOLD mode, does the autotune routines require GPS? I would like to try this indoors.

I suspect that would be more than enough. It is hard to say. RPM may be a better measure but I have not made those measurements.

Hello @Leonardthall. lastly, what value do you prefer ATC_THR_MIX_MAX and ATC_THR_MIX_MIN
for 28 inch props ? actually do you have a suggestion about this ?

They are not propeller dependent. The defaults are fine unless you have issues with stability during breaking. It can help then to increase ATC_THR_MIX_MAX to 1.0.

1 Like

Thank you so much again @Leonardthall

Can you help me about harmonic notch parameters ?

INS_HNTCH_ATT,40
INS_HNTCH_BW, (2/3) * INS_HNTCH_FREQ
INS_HNTCH_ENABLE,1
INS_HNTCH_FREQ, measured from batch logging
INS_HNTCH_HMNCS, Your main harmonics, should be 3 for you
INS_HNTCH_MODE,1

I couldnt figure out how can i decide INS_HNTCH_FREQ. So, drone doesnt have a rpm sensor.

how can i find rotor speed. Can you advice a starting value for my OCTO coax drone. please :frowning:
additionally do i need to set INS_HNTCH_REF value ?

Did you read the docs? https://ardupilot.org/copter/docs/common-imu-notch-filtering.html