Just did a test flight after setting the IMU_DGYRO_CUTOFF to 15 and 12. There wasn’t much difference as it looks like the higher frequency pitch oscillations are still there but their magnitude was reduced a bit. For some reason there was a low frequency pitch oscillation throughout the whole flight.
I am wondering if this is simply a tuning issue given the size (4.25 kg of my drone). Reading this makes me think I need to change my P and D rate values given the size of my drone. I’ve got both low and high frequency pitch/yaw oscillations and the vehicle does feel a little sluggish. Could it be that the high accel reporting is simply from bad tuning inducing oscillations? Right now I’m using the default rate PID parameters:
The roll and pitch D terms dropped considerably and the P terms increased a little bit. The result test flight with these a parameters is here and still shows significant vibration, although I the vehicle did seem to fly better. https://review.px4.io/plot_app?log=25005f93-d26c-4bd9-b556-76338395feee
Still seeing those oscillations in pitch
How is the Cube base board mounted to the frame? Is there any chance of that flexing? The Cube Orange’s isolator frequency is around 80 Hz but it doesn’t look like you’re hitting that, so I would exclude that.
I don’t think the mount is flexing. The cube is mounted to the Airbot Mini Carrier board. I have that mounted via some plastic standoffs to the frame of the drone. I can try to add some padding above the cube to more or less wedge it to the upper plate of the frame to eliminate this possibility but I really don’t think it is the mounting given that I have seen this on my other drone with a different mounting scheme. I’ll give it a shot though.
it has been noted that while we place an aluminum foil all through out the plate where the esc and power cables pass through, the D_gyro and IMU_gyro graphs are indicating low noise .
I don’t think so. It is hard mounted to the frame via a carrier board. I really don’t think it could be some resonance of the mounting. After doing the autotuning and dropping the cutoff frequencies, the flight response did improved. Looking at the Accel and Angular Vel PSDs, I see high power at 60 Hz, 80 Hz, and 120 Hz. As you mentioned the 80 Hz is likely the Cube’s isolator frequency. The 60 and 120 Hz are likely related given the 2x factor.
@Hs293Go and @Romain_Chiappinelli I just did a test flight to check if cutting my MC_{ROLL, PITCH}RATE_D to half their tuned values helped with my rapid low amplitude oscillations. I also did a flight with originally tuned PID values, but with MCP_XY_VEL_D_ACC set to 0.1. The results are below. Changing my _D parameters didn’t seem to fix the roll and pitch setpoint oscillations, which I think is what has been causing the shimmy (high frequency low amplitude oscillations) in flight. Decreasing the MCP_XY_VEL_D_ACC term however did seem to help decrease the oscillations that I saw in flight with pitch and roll oscillations, but the log files look similar in terms of pitch and roll setpoint oscillations. The Actuator Control FFT results look very similar to the control flight.
To be clear, I think we are fixing a second order effect with these changes. Although we’ve improved flight behavior, something is driving these setpoint oscillations in the controller and I still think it has something to do with the high accelerations that persists despite these changes. I’d love to solve the root cause of the high vibe in addition to setting the controller up for acceptable performance despite the noisy acceleration data.
FYI - I set up a separate topic regarding the setpoint oscillations in case someone tries to find a solution. @Romain_Chiappinelli could you post in that thread about why changing the MPC_XY_VEL_D_ACC reduces the setpoint oscillations? Pitch Setpoint Oscillations in Hover
Has anyone tried setting the SCH16T_ACC_FILT parameter? The reference says that the default is No Filter. I’m wondering if setting this for 2 (68Hz) might help to reduce the effects of the ~100 Hz vibrations I am seeing in the vibration spectrogram. I don’t know if the Cube even has this sensor.
@junwoo0914 How do we check which IMU is being used as the primary IMU for EKF2? Has there been any additional discussion with the developers on this issue, as many of us continue to deal with high vibration issues with PX4 on the CubeOrange+?
@mwshafer
Filtering out this high freq acceleration sounds like a bad idea to me. Although any high freq oscillations are fed back in to the system and makes them even worse, filtering them out does not mean that they are gone.
The >80hz is your motors rpm; they are working hard.
I recently did a lot of flying indoors, with a >5kg machine equipped with an Cube Orange. After some work logs now look like this:
As suggested elsewhere I have the orange hard mounted on the frame to avoid additional resonance to the internal damping system of the orange itself.
When I go outside with this setup I expect the Vibration metrics might get above 10m/s^2 also.
So, like sibujacob suggest Vibration metrics question - #7 by sibujacob
I feel like to trying out 1.15 as soon as possible.
@Elwin Thanks for the detailed response. It’s nice to hear from someone with a similarly size drone. All of my recent flights (my most recent posting) have been with fixed propellers. My drone is really solid an nothing is loose. It is possible I have a loose cable in the drone and it is vibrating and pulling on the cube, so next week I’ll likely open it up and make sure there aren’t any free cables inside.
Yes, that >80 Hz mess in the Actuators FFT shows that the vibration is getting fed to the motor control. The average control input for hover is only 50% so they aren’t underpowered. The controller is sending signals to rapidly change speed, likely due to the high vibration being measured.
When you say ‘hard mounted’ do you mean that it cube isn’t on any additional foam or that to did something more intrusive and actually replaced the foam that is built into the cube (I’ve heard of people doing this elsewhere). Is there any chance you could post a photo of your system. I’m jealous of your flight metrics and wondering if there is something about my system that is causing the higher vibe at the blade pass frequency.
Yes, I meant without the additional foam it usually comes with. But screw it to the frame directly. I did not know of people removing the internal damping. I do not see the point of doing that in your case, the eigen freq of the internals is lower than 85Hz is it not? It would be interesting to test a Cube 6x (pro) if you can.
My drone is a stiff home build frame with 20mm round booms, but nothing fancy.
There must be something!
So I think I have finally gotten to the bottom of this issue. It seems that the first resonant vibration mode of my motor arms are right at 80Hz, which corresponds to the resonant mode of the ‘isolated’ IMUs In the Cube. I noticed in my latests test flight (secured all the internal wiring to be sure they weren’t pulling on the Cube in flight through vibe) that there seemed to be x and y vibrations of variable amplitude making me thing there might be some interacting resonators on the drone. The arms were the obvious thing to check first. The accel plot that lead me down this path is below.
Luckily I have a laser vibrometer in my lab, so I measured the displacement of an arm after giving a little tap near the motor to check is response. The setup is shown below:
The trace on the oscilloscope is shown below. The first trace is the entire response with the initial transients and the second is zoomed in on the steady state response after the transients have all damped out.
Two things are apparent. 1) There is almost no damping and 2) the arm’s natural frequency is at 82 Hz. In short, I have a set of lightly damped 82 Hz resonators attached to an IMU that are sitting on an 80 Hz mechanical assembly. The low damping means that energy in this frequency persists in the system for a long time and is leading to very high vibration. I wouldn’t be surprised if other people have a similar issue with landing gear or motor arms with an ~80 Hz vibrational mode. Short of shortening or lengthening my motor arms, there isn’t much I can do to fix this. If anyone has some great ideas, let me know.
Is there any way to provide a notch filter so that acceleration near 80 Hz is filtered out?
EDIT: I’ve since done some followup testing it appears that 82Hz vibration is actually the torsional mode of the arm when the propeller is attached. It is the twisting of the arm, not bending. Removing the prop and replacing it with a fixed weight eliminated the vibration and moving to a different prop dropped that vibration frequency to 64 Hz. Increasing the torsional stiffness of the arm should help to push this frequency above that of the IMU resonance.