PositionChanged trigger rate


I am trying to control continuously an ANAFI drone from a python script. For this purpose, I need to get the position of the drone as often as possible.
In the documentation of PositionChanged, the event is said to be triggered “regularly”, but no more information is given on how regularly the event is triggered and if it is possible to modify this value. From my measures, the event seems to be triggered about every second.

My questions are :

  • Is it possible to trigger this event more often ?
  • Are the PositionChanged, SpeedChanged and AttitudeChanged events the only way to get the position, speed and rotation of a drone ?

Thank you for your help and suggestions in advance !


The SDK event messages that are “regularly” triggered are usually sent at 5Hz. Some SDK event messages are only sent if the associated state is available or has changed (up to this maximum update rate). Event messages have not been designed for real-time applications (closed loop command control).

No, unfortunately this is not currently possible. You cannot trigger a specific event message or change its update frequency. This is a request that often comes up so I definitely think that we should at least consider adding this feature to our roadmap. I’ll submit this idea to the SDK team.

You can also extract some telemetry info from the video streaming metadata at 30 FPS (see the video streaming example in the Olympe user guide). I think that’s currently the best option for real-time / closed-loop control applications.

Is there an example of parsing the metadata in Java or Swift?

It is a C library from the PDRAW part of the SDK