Automatic landing that cannot be canceled after meeting unknown criteria.
Hello. We use DJI SDK in our application. Currently we are stuck with the following problem: drone starts to land automatically, being around 200-300 m from home point, when its state meets certain unknown criteria.
-
Basically, it goes from "JOYSTICK" or "GO_HOME" to "AUTO_LANDING" without any notifications, warnings, or requests.
-
Both
void cancelLanding(@Nullable CompletionCallback callback)andvoid cancelGoHome(@Nullable CompletionCallback callback)don't cancel that landing, and yield "Undefined Error" instead. -
RTH button on the physical RC doesn't cancel landing.
-
Physical RC sticks work, which helps to alter the flight trajectory, so the drone could actually make it to home point, but virtual sticks don't.
Can you provide a list of conditions for this to occur, so that we could at least predict them and warn app user about this behavior? Could these conditions be weakened or turned off altogether? Does wind level affect the criteria?
Is there a way to cancel that landing? Of course, if such landing is canceled, app user is the only one responsible for possible drone damage.
Last time this happened drone was 236 m away from home point at the altitude of 126 m, with 33% battery left.
This happens with all DJI drones that we use: Mavics, Phantoms, Matrices, so it is not a problem of a single unit being broken somehow.
Currently we have a number of thoughts on the mentioned criteria:
- CHARGE_REMAINING_IN_PERCENT <= CURRENT_LAND_IMMEDIATELY_BATTERY (an obvious one, but most of the time, this condition is not satisfied)
- CHARGE_REMAINING_IN_PERCENT <= BATTERY_PERCENTAGE_NEEDED_TO_GO_HOME + K, where K value being dependent on the current wind level, looks like it is 15 for LEVEL_1.
- REMAINING_FLIGHT_TIME <= 265 seconds (happened 2 times). This list is certainly incomplete, and probably completely wrong.
Please, provide us some information on how to handle that problem.
Best regards, Leontyev Georgiy, Software developer.
Public comment from Lisa Fedane in Zendesk ticket #31916:
Can you please file a ticket with DJI Developer Support through this form: https://formcrafts.com/a/dji-developer-feedback-en
DJI Developer Support
Done that, ticket #31934.
News about this issue? I'm experiencing similar problem.
@GGPENG, basically, we came down to the following:
-
When Smart RTH function is triggered (as a result of some calculation with parameters like distance, wind, altitude, and battery left, etc), we cancel it (at least, with what I've got here - some P4s, some Mavics, some Matrices - max speed RTH goes with is about 10 m/s).
-
Then, we fly with all possible speed we've got back to takeoff position, also, monotonously moving down to the altitude setting provided by the pilot (usually around 100 m), using virtual sticks. Note that with RTH drone first reaches its horizontal takeoff position on the same altitude, then starts to land (even if it is 500 meters high). Moreso, from our experiments, we've found that automatic landing threshold is VERY dependent on the altitude of flight, so going down while going back to takeoff position is a good idea to implement, as this shifts the time of automatic landing activation forward a lot.
-
With our implemented policy, pilot can't stop this quasi-RTH, otherwise, its point is lost.
With all that, drone returns back home at least 1.5 times faster (15 m/s vs 10 m/s). Sadly, there's no sport mode support in SDK yet :( Still, after all that stuff was implemented in an actual software, for more that half a year (from February to September) we experienced an automatic landing once. Maybe, twice. Problem is considered "solved".
Though, I don't think that this issue should be closed, because we still need an understanding of how this automatic landing is triggered to provide at least some guarantees and explanations to our customers.
Maybe the aircraft went out of sight (lost connection) and this triggers the RTH?