Crash in Guided and almost in Auto

Hi all,

I had a full battery to run through, and a nice day to fly, so I figured I’d try some more advanced features in Copter. Last Sunday, I tried a Guided mode flight, which ended badly (although I think this was user error), and then after the replacement props arrived I tried a waypoint AUTO mission yesterday. I caught the drone before it hit the ground again, but had nearly identical behavior on both flights, so I think the issue is likely related.

Environment:

  • Mission Planner on Linux, v1.3.75 build 1.3.7883.26333
  • ArduCopter 4.0.7 on a Hexsoon EDU-650 quad frame (same as in this post, although I’ve now switched to Mauch power monitoring)
  • Flying in an area with very good GPS reception (HDOPs are both <1.5 throughout the whole flight)
  • Benewake TFMini+ lidar for altitude, good up to 6 or 7 meters outdoors

The aircraft flies exceptionally well in Loiter, even sitting in ground effect. For fun, I held it in Loiter about 3 inches off the ground for about 5 minutes at one point (you can see this in the log) and it didn’t go anywhere.

First event:
Last Sunday, I experimented with Guided mode for the first time. On Mission Planner, I right-clicked on an area within the geofence, selected “Fly Here Alt”, entered an altitude, and hit ‘OK’. Nothing happened; vehicle remained in Loiter at its current position and made no indication it was going to go anywhere. I tried the “Fly Here” option next, assuming it would remain at its current altitude – while it flew to where I clicked on the map, it flew to that point on the ground and came to an abrupt stop. I believe this to be user error on my part…
Log file: https://turnbull.link/drone/exports/scrappy-guided-crash.bin

Second event:
Yesterday, I decided to try a waypoint mission in lieu of Guided mode. I had already flown the aircraft around for a while in Loiter, Poshold, and a few other modes and it was performing well. I created a simple mission (at low altitude, 7ft, but I didn’t want to get too high as the surrounding trees were blocking wind) and uploaded it to the aircraft - reported success. Took off in Loiter, switched into Auto from Mission Planner, and the vehicle did the same thing. It flew directly at the first waypoint, but as if I had set the altitude to zero instead. This time, I had a better reaction and switched back into RTL… event starts at about 2551 seconds in the log.
Log file: https://turnbull.link/drone/exports/scrappy-first-auto.bin

Things I’ve identified/ruled out so far:

  • The drone knows exactly its altitude throughout the whole event, and appears to willingly descend. Rangefinder is good the whole time; CTUN.DAlt drops before CTUN.Alt does.
  • Power supply is good the whole time. The cube has two of the triple-redundant power supplies connected (POWER1 and servo rail)
  • Hardware failure – vehicle remains in positive control of its attitude throughout; no unusual noises were heard during flight, vibes are normal, and the attitude rates are also normal.

I’m pretty sure the first event is an ID-10-T error with the ‘fly here alt’ vs ‘fly here’ buttons, but I can’t figure out what I did wrong with the AUTO mission. Working on compiling SITL now, and will test with the same setup when that’s done…

Thanks in advance!

Well, I got SITL running on master (4.0.7 ran into some issues about mag fusions), and I figured out the Guided mode stuff. That was in fact user error; I think I know how to run it now :slight_smile: . Can disregard the ‘first event’ safely… although I can’t replicate the AUTO incident in the sim.

This isn’t related to your present issue, but I just wanted to let you know the cube will not be fully powered from the servo rail. Only the I/O board gets power from the servo rail and that isn’t really helpful for a copter. So your setup actually has no redundant power if it is configured that way.

1 Like

Been about a week now, and while I’ve been able to reproduce the guided stuff in SITL, I still can’t get the AUTO mode incident to happen. Hoping the wind dies down tomorrow and I can test again on the real thing… anybody else had this happen? I’ll give it a plan with QGC as well to rule out MP errors.

Can you send your waypoint mission that you ran on the failed flight?

Soo…

No.

Mission planner spews out pages and pages of errors when I try to save mission files. That said, I have attached a screenshot of the mission as I entered it (two screenshots - mission and geofence). I may have got the altitude wrong in this repeat, but it was between 10 and 30 for the actual flight. (my memory is lacking… hoping to replicate tomorrow)

Geofence: https://turnbull.link/drone/exports/fence.png
Mission: https://turnbull.link/drone/exports/mission.png

I’m fairly sure the errors are all the same, and here’s one of the exceptions:

ERROR MissionPlanner.Utilities.srtm - System.BadImageFormatException: Could not resolve field token 0x04000205, due to: Could not load type of field 'MissionPlanner.Utilities.GeoTiff:cachescanlines' (4) due to: Could not load file or assembly 'Microsoft.Extensions.Caching.Memory, Version=3.1.13.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. assembly:/home/misha/bin/MissionPlanner/MissionPlanner.Utilities.dll type:GeoTiff member:(null)
File name: 'MissionPlanner.Utilities'
  at MissionPlanner.Utilities.srtm.getAltitude (System.Double lat, System.Double lng, System.Double zoom) [0x00002] in <11e1420c8e3345f9974c615d443ac233>:0 
ERROR MissionPlanner.Utilities.srtm - System.TypeInitializationException: The type initializer for 'MissionPlanner.Utilities.DTED' threw an exception. ---> System.IO.IOException: Too many open files
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].CreateDirectoryHandle (System.String path, System.Boolean ignoreNotFound) [0x00038] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult]..ctor (System.String directory, System.IO.EnumerationOptions options) [0x0004e] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 
  at System.IO.Enumeration.FileSystemEnumerable`1+DelegateEnumerator[TResult]..ctor (System.IO.Enumeration.FileSystemEnumerable`1[TResult] enumerable) [0x00000] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 
  at System.IO.Enumeration.FileSystemEnumerable`1[TResult]..ctor (System.String directory, System.IO.Enumeration.FileSystemEnumerable`1+FindTransform[TResult] transform, System.IO.EnumerationOptions options) [0x0004b] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 
  at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles (System.String directory, System.String expression, System.IO.EnumerationOptions options) [0x00014] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 
  at System.IO.Directory.InternalEnumeratePaths (System.String path, System.String searchPattern, System.IO.SearchTarget searchTarget, System.IO.EnumerationOptions options) [0x00045] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 
  at System.IO.Directory.GetFiles (System.String path, System.String searchPattern, System.IO.EnumerationOptions enumerationOptions) [0x00000] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 
  at System.IO.Directory.GetFiles (System.String path, System.String searchPattern, System.IO.SearchOption searchOption) [0x00008] in <12b418a7818c4ca0893feeaaf67f1e7f>:0 
  at MissionPlanner.Utilities.DTED.generateIndex () [0x00023] in <11e1420c8e3345f9974c615d443ac233>:0 
  at MissionPlanner.Utilities.DTED.AddCustomDirectory (System.String dir) [0x00018] in <11e1420c8e3345f9974c615d443ac233>:0 
  at MissionPlanner.Utilities.DTED..cctor () [0x00037] in <11e1420c8e3345f9974c615d443ac233>:0 
   --- End of inner exception stack trace ---
  at MissionPlanner.Utilities.srtm.getAltitude (System.Double lat, System.Double lng, System.Double zoom) [0x00038] in <11e1420c8e3345f9974c615d443ac233>:0

I can also verify that the drone was launched from within, and remained within, the geofence for the entire flight. Fence action was set to RTL, and FENCE_ALT_MAX was 100.

Thanks!

Well, the weather finally allowed to go fly (a few days ago… then homework caught up, sorry for the delay) and retry an Auto mission.

It worked!

I have no idea what I did differently.

Log file of the flight here. Sorry about all the mode cycling in the start; I remapped the mode switches and was making sure I knew them.

I did set the altitude a tad bit higher for this one, and another difference I’m wondering about is that I entered Auto while the drone was below the altitude of the first waypoint, so the first thing it did was climb instead of descend. I’ve discovered another (unrelated) issue with the aircraft that’s grounding it for now, but as soon as I can, hoping to get more testing in.