I am using a Pixhawk 2.4.8 flight controller running PX4 v1.8.2 on an agriculture drone custom-built. Position and stabilize mode both work great (have been tuning both of these modes over the past couple weeks). This drone was built for a collegiate student group participating in a competition, so we have multiple people on our team looking at this issue.
Unfortunately, our team experienced a crash today when testing out a mission. I uploaded a mission to my Pixhawk via USB, restarted the system, and took off in stabilized flight mode. After getting into the air, I switched to position mode to hold position. Everything looked fine, so I switched into Mission mode to execute my preloaded mission. The flight controller then immediate went into flight termination, causing the drone to crash. Our pilot attempted to switch into stabilize mode after the drone began falling, but unfortunately flight_termination had already been triggered and there was no way to recover by switching states.
Some things to note:
- A datalink was not used. This definitely was a mistake on our part, but I did not realize that flying without a datalink in mission mode can lead to flight termination, especially when the RC controller is still available (which should, at the minimum, be able to recover from this sort of error, instead of having the controller enter flight termination)
- Mission mode has been tested successfully on this platform before. Here is a log from a SUCCESSFUL attempt, which did have a datalink to a ground computer running QGroundControl: https://logs.px4.io/plot_app?log=451a989b-fe1b-481a-a137-3a40666ac277
Here is the log from the crash: https://logs.px4.io/plot_app?log=58c4945f-0f23-437d-80ac-7b35774d5d4a
And a video leading up to the crash: https://youtu.be/8abGn1z-F4g
Some more things to note:
- “DL and GPS lost: flight termination” shows up at 02:39 in the log. However, it does look like we had at least a GPS fix throughout the duration of this flight, with under 5m horizontal/vertical uncertainty and more than 10 satellites visible.
- Pilot takeover occurred at 2:40, which did not cause the motors to spin up since the drone went into flight termination
- The jamming indicator is higher than we’d like, although it is below 80. The help guide for Flight Review states that a value around or above 80 is dangerous, although I do not know if the PX4 would necessarily interpret this as a loss of GPS.
- Our platform does have high vibrations, which we are working to mitigate. However, this seems unrelated to the crash since the drone does fly fine in stabilize/POSHOLD mode.
I’ve done some digging around in the Firmware code and found the following block that caused this crash to occur. From what I understand, this block checks to see if an AUTO mode like mission is being used, and flight terminates if the datalink is lost. This is supposed to happen when the GPS is also lost, though I do not see where the check for GPS is made.
Did the PX4 Firmware act as intended in this situation, or did Commander not check for a GPS fix when also checking for a datalink loss? Would it be possible to disable this specific flight termination case without disabling flight termination via RC switch or Mavlink?
This is my first post on this forum, so please also let me know if any more information is needed or whether this should be posted elsewhere for better support. Our team is working on fixing up the drone and adding vibration isolation and gel pads to our Pixhawk controller and motor mounts to better mitigate the vibration issue. This is also our first crash using PX4, so any tips on how to work with the SITL simulator or documentation online we may have missed that would be relevant to avoiding an issue with AUTO mode in the future.