Problem
When starting a new Waypoint Mission, the drone takes off up to 2 meters, and keeps hovering in that position. Also, when this happen, I'm only able to take the drone drone higher, or lower (up to those 2 meters).
Expected behaviour
When starting a new Waypoint Mission, the drone completes its path as specified by the mission.
Environment
Tested hypotesis
More info
My app logs and DJI logs shows no error, exception or anything alike.
If necessary, I can provide the flight records.
The WaypointMission object
{
"autoFlightSpeed":0.0,
"finishedAction":"GO_HOME",
"flightPathMode":"CURVED",
"gotoFirstWaypointMode":"SAFELY",
"headingMode":"AUTO",
"maxFlightSpeed":15.0,
"missionID":8,
"pointOfInterest":null,
"repeatTimes":1,
"waypointCount":8,
"waypointList":[
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":30.0,
"coordinate":{
"latitude":-23.16001469396617,
"longitude":-45.79311885279432,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":26.325867,
"coordinate":{
"latitude":-23.159431407395395,
"longitude":-45.79282463259898,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":27.596802,
"coordinate":{
"latitude":-23.1596132304213,
"longitude":-45.79270070336531,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":31.782654,
"coordinate":{
"latitude":-23.160196385773006,
"longitude":-45.792994857230866,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":33.06659,
"coordinate":{
"latitude":-23.160295942933544,
"longitude":-45.79282943102868,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":28.96344,
"coordinate":{
"latitude":-23.15979505344721,
"longitude":-45.79257677379519,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":30.748169,
"coordinate":{
"latitude":-23.159976876473113,
"longitude":-45.79245284388858,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
},
{
"actionRepeatTimes":1,
"actionTimeoutInSeconds":999,
"altitude":32.18518,
"coordinate":{
"latitude":-23.160136265174536,
"longitude":-45.792533242035404,
"valid":true
},
"cornerRadiusInMeters":0.2,
"gimbalPitch":0.0,
"heading":0,
"isUseCustomDirection":false,
"shootPhotoDistanceInterval":0.0,
"shootPhotoTimeInterval":0.0,
"speed":12.5,
"turnMode":"CLOCKWISE",
"waypointActions":[
],
"headingInner":0
}
],
"exitMissionOnRCSignalLostEnabled":false,
"gimbalElevationOptimizeEnabled":false,
"gimbalPitchRotationEnabled":false
}
UPDATE 1
I've just done the following test:
From there, I could see all my waypoints properly loaded, but speed was set to 0. Once I pulled the slider to increase the speed, the aircraft started moving and following the waypoints as expected, but I have no clue on why this is happening.
As seen in the WaypointMission object, the autoFlightSpeed is set to 0. I've fixed this issue by changing the autoFlightSpeed from 0 to the speed defined in the first waypoint, and now everything works as expected.
According to the docs, when the autoFlightSpeed is set to 0, the "Actual speed is controlled only by the remote controller joystick", which is weird, because it was the same code I had one month ago, and I could fly without touching the joystick. This explains why the only thing I thought I could do was "to take the drone drone higher, or lower". Probably if I'd keep pushing the left joystick forward, the aircraft would have completed its path. The only question remaining is: why my one month old code used to work without touching the joysticks.