In the documentation for ardrone3.Piloting.moveTo it says:
If a new command moveTo is sent, the drone will immediatly run it (no cancel will be issued).
I have a program that issues a moveTo command at 1Hz. According to the statement above in the documentation, the vehicle should immediately execute the latest moveTo command, without stopping or cancellation.
However, for the Parrot ANAFI 4K, I’ve noticed that upon every moveTo command the vehicle stops and a ardrone3.PilotingState.MoveToChanged() message comes in with status == ARSDK_ARDRONE3_PILOTINGSTATE_MOVETOCHANGED_STATUS_CANCELED. Since I’m issuing moveTo at 1Hz this causes the vehicle to stop repeatedly instead of moving smoothly towards the target latitude and longitude.
Is this a bug in the firmware? Is there a workaround?
@ChristopherVo I would recommend using a mavlink protocol (look into the mavlink section on the parrot website) via olympe that way you can use waypoints and update them dynamically instead of using moveto commands
@DonMMK How do you update Mavlink waypoints dynamically?
I have successfully written Mavlink files via the SDK. That works fine, but I haven’t tried frequently updating the flight plan dynamically. Is this what you are referring to? Or is there a simpler way to send an arbitrary mavlink go to waypoint command?
I ended up just implementing my own “MoveTo” functionality by using PCMDs, since it looks like there is no hope for just doing a simple continuously updated MoveTo without the drone stopping all the time.
For the record, sending MoveTo continuously seems to work correctly on Anafi Ai, but not other Anafi models.