Crash Log Analyze (Heavy Drone)

Hi
I just had the first flight of my heavy drone and it didn’t end well. It is a heavy X8 drone with 8 U10 II and 30-10.5 prop with pixhawk cube orange
before this, I had flown this drone with Ardupilot (It was OK). after some upgrades and modifications, I decided to go on with PX4 for easier development.
I did several mistakes and the drone flow was only 6 seconds and oscillated around the roll axis and diverges and it flipped upside down. I didn’t have enough time to react well since I didn’t expect this
I list my assumptions on my mistakes:
1- after frame modification, The drone was too light. I didn’t install the dummy payload or anything else. so it was below 30 KG although it is designed for about 45 Kg. So not only it was too light, The CG was too up and making it more unstable.
2- Based on some past experience and advice over the internet and my own mistake I reduced the PID gains. almost to 0.3. (I think this is the killer)
3- I should have engaged the kill switch sooner.
4- I didn’t set PWM_MAIN_MIN to a value that when I arm the vehicle, the motor starts rotating on min RC.
5- Motor Ramp up Throttling was too aggressive
The flight condition was:
RTK float active, Takeof with Position Flight Mode to about 3-4 meters. a roll oscillation started. first about 2-3 degrees, next 10 degrees next 30 deg, and … in diverged until flipping.
before the first flight, I attached the drone to the ground and add about 70 percent throttle, and analyzed the log to make sure no bad vibration exist below cut off frequency

First I wanted to share my bad day and bad experience with you guys so maybe it helps somebody out there.
Now I want you guys that have much more experience please help me with the log. Did I do anything else wrong? do you think by just making the drone heavier and moving the CG down and resetting the PID, the problem would be solved? I appreciate your advice…

First Real Flight and Crash Log:
https://review.px4.io/plot_app?log=47ccc86f-be52-43ec-9bd0-d6a15eeb4026

Fixed to the ground throttle test to find the vibration and FFTs
https://review.px4.io/plot_app?log=66d0ef8e-3e75-465c-964b-ff06491caad1

Have a Safe Flight

1 Like

I’m new to the PX4 world, but getting ready to set up a larger hexacopter. I’ll be interested to see any feedback you get. One thing that surprised me is that the roll and pitch angle setpoints were oscillating as well. I’d expect the controller to keep a (0,0) deg set point and then you might see the rates oscillating to keep the UAS level. It seems to me that once your angle set point starts oscillating you’re going to lose the aircraft. But like I said I’m new to this controller.

1 Like

Thanks
The roll and pitch serpoints oscilation is because we are in position flight mode and drone started to deviate in XY position and started to compensate for that .
I believe the real problem is that the P rate gain was too low and the drone had almost no damping and resistant and deviated so much in pitch and roll. By the time the control moment succeded to stop the rotation (because of attitude P term) it was too late and it overshoorted to other side.(again because lack of damping and too low P rate ) and so on
Can you confirm this theory ?
I managed to repair the drone and replace the props already , increased the gains to PX4 default ones . but need you guys confirmation to try takeoff again :slightly_smiling_face:
And do you think adding the dummy payload and lowering the CG help on stablizing ?

Hi,
Firstly I would be flying such large frames in stabilise mode rather than altitude control modes.
Yes I would totally do changes in PID values starting with changing one controller at a time instead of using K value to changes PIDs. Also try changing thrust hover value to a calculated value which suits the best for the frame you will be flying and also set the PWM_MAIN_MIN values accordingly. Lower the thrust min value also.
After flying in stabilise mode and try manual tuning to get the craft in air using Multicopter PID Tuning Guide (Manual/Advanced) | PX4 User Guide and MC Filter Tuning & Control Latency | PX4 User Guide. Analyse the log file and do necessary changes.
Hope that will help.

1 Like

Thanks for your explanation

1- you mean start with default gains (K=1 , …) and change one by one?
2- For PWM_MAIN_MIN I manually check on what RC PWM motor start spining. it was about 1180 and set that as PWM_MIN. is this a correct method?
3- What about the Thrust curve? is 0.3 a good value?
4- for hover throttle, honestly I have never touched this setting in any of my drones and it was acceptable. should I change it now? what is the procedure for that?

First try flying only in STABILISE mode with the default settings though they are bit high for your drone or you could start with reducing P and D gains:

  1. Set k=1 and reduce your P and D gains first. MC_PITCHRATE_P, MC_ROLLRATE_P, MC_ROLLRATE_D and MC_PITCHRATE_D. Then see the the perofrmance and follow the tuning guide- Multicopter PID Tuning Guide (Manual/Advanced) | PX4 User Guide.
  2. PWM_MAIN_MIN is set correctly but set MPC_THR_MIN to a lower value like 8%.
  3. Thrust curve is only used to cover the non-linear characterstics of the ESCs and is only used in STABILISED mode. So my suggestion is to keep it to 0 and if you feel that thrust curve is not linear you can start with changing its value.
  4. Hover thrust is the initial value from which hover estimation initialises. Though hover estimator always runs but it is a good practice to set it to a pre calculated value where you feel that your drone will hover.
2 Likes

First,sorry to here that,and I am anew to PX4 too.I have a heavy drone,but smaller than yours,I use the bobbywing X9 motors with quadrotor.Hope I will lucky than you….

1 Like

very nice explanation … thanks man
I will give these try and plan to do some static tests again before the first flight.
Do I need to change the cutoff freqs as well? This frame had a successful fight with ardupilot default gains and I believe ardupillot default Cutoff frequency is about 20 but the PX4 Gyro cutoff is more. I think these heavy drones don’t need that many big cutoff frequencies. by the way, with ardupilot the Payload was mounted and the CG was much lower and acted as a stabilizer. but in the crash flight, I had no payload and I believe CG was above or the same Z as the motors and the drone actually act as an inverted pendulum. So you agree to add a dummy payload and add more stability terms like a pendulum?

One more question, I am somehow afraid to use stabilized flight mode in big heavy drones. and believed that the position at least reduces workload. am I wrong? I used to believe if the rate controller is tuned Ok, position or altitude will do the job.

As far as cutoff frequencies are considered you can reduce the filters as bigger frames do not need that much of low latency. You can reduce the filters to 20 or 15.
I believe in Ardupilot you have to set initial parameters according to your prop size and that automatically set the PIDs for you. So technically they are not same as default.
Considering your AUW of the frame you should mount dummy payload so that the motors should not be so overpowered.
If you are experienced in piloting, I think for safety reasons if your frame is not tuned you should always fly in stabilized mode. And I would also suggest to keep MPC_THR_CURVE to “Rescale”. It would be much safer.

2 Likes

The roll and pitch serpoints oscilation is because we are in position flight mode and drone started to deviate in XY position and started to compensate for that .

Ah, of course. Thank you. Interesting discussion that I will be reading carefully before my first flight.

1 Like

Thanks for such detailed answer and supporting the community @Aman_Chandak !

1 Like

I had almost forgotten about this topic.

After learning from my mistakes, I successfully made my heavy drone fly perfectly. Here’s a summary of my experience and the lessons I learned:

  1. Gain adjustments: I initially reduced the gains too much, which rendered the rate controller ineffective. My advice is to start with the default gain or reduce it by only 10-20% unless you’re sure your airframe requires more adjustments.
  2. Flight modes: I initially avoided using stabilized and manual modes due to fear, which made things worse. I later faced my fear and started with stabilized mode. My suggestion is to use manual modes for initial flights and seek help from experienced pilots if needed. Be careful and consider all failsafe scenarios.
  3. DIY test stand: Building a reliable test stand can help you understand controller commands and actions while keeping your drone safe. One method is to hold the drone from above using a rope around the center fuselage so the drone can rotate freely in pitch, roll, and yaw. Use a pulley or pass the rope around a pipe, and have someone else hold the end of the rope, ready to pull in case the drone goes crazy. The pilot should also immediately switch the kill switch in such situations.
  4. Vibration management: If you experience vibrations, experiment with cutoff frequencies to filter out noise. Check the PSD logs to find the frequency associated with your vibration and frequencies that are being entered into commands. Remember that reducing cutoff frequencies can affect controller agility and reaction time, sometimes acting as increasing I or decreasing P, making the drone sluggish. This depends on your configuration and gains.

I hope sharing my experience will help others avoid crashes and save on extra costs.

2 Likes

Thank you for posting this!

1 Like