Multiple bugs in mission planner and map component with terrain follow
Yesterday I tried to execute this mission, which uses mapping with terrain follow, and encountered multiple issues.
From most serious to least:
- There is a ridge in the northeast section of the property. Every time the drone tried to cross the ridge and was required to ascend or descend rapidly, it would simply slow to a halt and hover. The mission timer continues ticking, but the drone sits there doing nothing. The only way to fix this was to pause and resume the mission; sometimes this would cause it to take only a single extra photo, and multiple pause/resume cycles were required to get the drone past the ridge. Since each cycle takes 30-45 seconds of 'recalculating', this severely cut into the time on mission.
- On two separate occasions, exiting the app failed to save progress. The first time I was able to resume the mission by using the editor to reverse the direction of flight, but the second time it happened I had no way to pick up where it left off.
- There's no way to skip ahead to part of the flight plan; if the app loses track of the mission progress, you simply have to start the entire mission from scratch.
- Whenever a mission pauses or aborts for any reason, there's a lengthy period where it recalculates the flight plan on the phone - even if the drone has not moved since the plan was paused. Since the drone is hovering in the air the whole time, this has a huge impact on the ability to complete the mission before the battery runs out.
Between these various issues, what should have been a ~1h15m plan on 4 batteries turned into a 2+ hour ordeal with multiple field charges, and didn't even result in completing the map, after the second failure to save progress meant there was no way to complete the middle section of the map.
Are these issues known, and are fixes planned?
Comments
23 comments
All of these issues are caused by the same thing: the mission plan is too large and you need to split it up into smaller segments. Apologies for the inconvenience, but we have not optimized Dronelink to automatically handle large mapping missions with terrain follow, and we are actually putting in a limit in the next version of the mission planner to disallow maps of this size until that work is complete. If you can’t or don’t want to split the mission up, you can request a refund here.
Going through them one at a time:
More generally, the difficulty dronelink has with mapping larger areas seems to point to some issues with your route finding algorithm; a flight path with 100 or so segments should not bog down the editor and the flight control software to this degree. It seems likely you're doing something O(n^2) when it should be O(n).
If you have much smaller mission plan that reproduces the issue, please post it and I will be happy to take a look.
Agree, this is why we are planning to implement the limits in the short-term to prevent users from ever hitting this bug.
Yep, and it is already on the backlog - many other users have asked for it.
It isn't that simple - there are many other cases you aren't considering, which the code currently handles. There is definitely room for optimizing simple cases (such as the mission just disengaged and the drone hasn't moved at all), but the code is currently written in a more generic way to handle many more corner cases which makes it less efficient.
100% agree, but given the current algorithms, it does...hence the optimization work (redesigning the algorithms).
Not sure how many times to say it. We are well aware of the performance issues and ramifications of the current algorithms we chose to implement. The reality is that 99% of the maps run in our system do not have these issues because they are not "large" (from algorithm's viewpoint), which is why the optimization work has not been prioritized as it is a large, complex body of work to resolve a vanishingly small number of use cases. Not saying it won't over happen, but we are busy with other higher priority projects right now.
Alright, thanks for the details.
What's 'large' from the algorithm's POV? I assume this would be measured in flight time or number of points?
Right now we are targeting 25km of flight path distance with no terrain follow, or 12.5km with terrain follow enabled.
One other thought is to reduce the ascent and descent rates in the plan settings. If the altitude changes are very steep, and the drone isn't physically able to maintain those rates (on very steep parts of the flight path) due to external factors such as wind / down drafts, then it will get "off course" vertically and stop due to safety concerns.
Hm, I've had it blown off course before, and it stopped the mission with an error message to that effect. In this case, the drone just slows to a halt and hovers, and the mission doesn't stop - the mission timer keeps ticking and the pause button still shows.
That could definitely happen if you turn this on:
That seems unlikely to be the problem, since the issue occurs both ascending and descending in the same spot; if headwinds were the issue I would only expect it to happen in one direction (and not simply hover indefinitely).
I'll try and reproduce on a local cliff.
Agree, that's why I recommended lowering the ascent and descent rates.
I just posted about a similar problem in another thread [1], but this describes the experience I'm having exactly. The drone just... hovers with no message or warning. It's a similarly mountainous area, but the total distance is only about 8.5km and ascent/descent rates are 13.1 fps.
Next time I head up to the mountain, I'll create a couple smaller flight plans and adjust the descent/ascent rates. (I had assumed that these rates were maximums, rather than targets.)
https://app.dronelink.com/totallygatsby/mountainlands/plan/m2M16cwOqL6JIaJaSe5o
[1] https://app.dronelink.com/totallygatsby/mission/cfgRBt0ogrLlMe6Jw6Jg
I saw the other post. For some reason the links you are sending don’t work. Here is a link to DL on how to share.
https://support.dronelink.com/hc/en-us/articles/7912083943059-Sharing-Mission-Plans
Apologies. Updated link: https://app.dronelink.com/totallygatsby/mountainlands/plan/m2M16cwOqL6JIaJaSe5o/W5chgHx59CiGaPrrxbPL
Ok, did a more systematic test today. I took my original 45 acre mapping flight and divided into smaller halves, creating a 22 acre, an 11 acre, and a 5.5 acre flight. The five acre flight is approximately 1.1 miles of distance flown.
I started with the 5.5 acre map, which included terrain following. [1] The drone flew for about two minutes before stopping and hovering in place. The mission time continued to count down - the drone definitely believed it was making some sort of progress, despite hovering in place with no errors or warnings.
At this point, I'm fairly confident that the total distance is not a relevant variable, since the behavior occurs in short flights.
Next, I loaded a large, 30 acre map (approximately 11 miles flight distance) that does not use terrain following and instead flies at a fixed height. Both flights had High Wind Tolerance enabled, and similar performance numbers for drone speeds. (10 vs 13 fps). The fixed height mission flew without error until the battery died, then it returned home. I didn't complete the full 45 minute flight but I got around ten minutes.
In fairly confident *something* in the terrain follow logic is causing the issue. My software engineering brain thinks maybe there are two independent thresholds for distances and it's inside the "you are close enough" threshold for one, but outside the "you are close enough" for the terrain follow threshold. So terrain follow is signaling "hey, get closer to the right elevation" and the mission logic is like, "I'm close enough to the node", and the terrain logic says "no, get closer" and this livelock continues.
That said, I don't know your code at all, that's just a guess based on the outside observations. Happy to run more tests or set up specific mission parameters or enable debug mode or whatever you need to help chase this down.
For now, I'm going to disable terrain following and create plans using the contours of the ground. (Aside, a topographic map would be super useful for planning missions, not sure if that's a mapbox option, or if I can provide my own XYZ or TMS tile server url for tiles.)
[1] https://app.dronelink.com/totallygatsby/mountainlands/plan/vdXGw1cStXssr6UlyV5q/HMNkJC4NmX6e5X45PzNR
Did you try reducing the ascent and descent rates even further?
Dumb question but .. it seems like the first 10 minutes of the flight is where the highest altitude of the mission is reached, it wouldn't have anything to do with drone altitude settings would it? But seeing as a max altitude warning hasn't been mentioned I'm guessing that's more of question than the possible issue?
Max height should be ok because I can manually fly a lot higher, but I'll test next time flying lower and reducing ascent/descent rates, see if that helps at all.
Probably not any of the issues your having but I’d suggestion reducing the max speed to about 20 mph which is the default speed DL sets on maps. Maybe even a tad bit slower. In the mission preview it indicates it may reach up to 25 mph in a few spots it possible. As Jim mentioned you can try adjusting those rates and see if it helps. I think reducing the speed may help as well especially if it encounters any headwinds which could cause a “Drone Too Far Off Course” error even if you have High Wind Tolerance enabled. Motion blur is always a possibility as well since it’s a A2S. Just some info to consider. Good luck.
I just ran a similar waypoint plan to your grid plan. I ran it at 15 mph at 180 AGL to a total elevation gain of 850' from the starting point and was really impressed. The drone slowed itself down to almost 0 for the steepest parts while it climbed and declined up to 9ish fps but continued no problem. I've attached a link If you want to compare readings to yours
https://youtu.be/chaL8sz4oyM
Ok, snowshoed out and re-ran the plan with a much slower ascent/descent rate and increased tolerances. Unfortunately the mission still failed (but this time with an actual error.)
The drone started surveying well, but after a few minutes it would suddenly burst forward while ascending slowly, then it would stop with an error:
"Drone Off Course: The drone is too far away from the planned flight path. • Please try again by tapping the play button. • If it happens a second time, try reducing the speed of this component. • If it keeps happening, you may need to wait for lower winds or plan your mission at a lower altitude."
I assume now that my horizontal speed is too high? I was out in the woods, in the cold, so rather than try to fuss with it, I ran the flight manually.
At least it didn't silently fail to make progress this time, so the vertical ascent/descent rates did seem to improve the result.
Yes
Sorry for the thread necro here, but I figured I'd follow up. I'm still using dronelink but I've given up on terrain follow.
I've been mapping every quarter since I last posted, and I have given up on terrain follow. It's simply never been successful in small or large tests. Even with low horizontal speeds (as low as ~10-15) it still failed to follow the flight path and would give me errors about being off course.
I now break my mapping up into small subsegments -- mapping at different fixed altitudes, and that works well enough to generate orthophotos across all 180 acres. But it's not ideal, because it's not shooting the ground from a uniform height AGL, and it requires a lot of fussing with different map segments to get it to work.
I've also had it refuse to take off on terrain follow missions, giving me a strange error about something being invalid. (I don't recall the text offhand.)
When I fly the missions as flat maps, everything works like a charm. It's been 6 months or so since I tried flying a terrain follow mission, so if there's been improvements to it since then I'd be happy to try again. Or if there are other suggestions beyond fiddling with ascent/descent speeds or horizontal speeds, I'd be interested in trying them out.
Terrain follow was designed for maps over gentle to moderate slopes. We have not spent any time optimizing it for cliff-like conditions.
Please sign in to leave a comment.