Video jitter in image stream during maneuvers in real experiments

Hi,

I have been doing some computer vision on the Anafi FPV, and I am running into problems with a lot of jitter in the image whenever the drone maneuvers. When the drone is hovering the image is relatively jitter free, but when performing even slow maneuvers the image gets heavily distorted as seen in the image below. Interestingly, the jitter does not appear on the simulated drone (at least not in the previous version of Sphinx which I have been using).

One of my academic supervisors suggested that this might have something to do with image stabilization, but I could not find any reference to changing that.

Does anyone have any ideas as to how I can fix this? It is important for my work that the image is not distorted.

Thanks in advance!

Hi,

The image you show is the result of transmission error, and error concealment, in order to have a displayed image even when part of the image is missing during transmission. This is probably caused by wifi interferences (or range, or a lot of other things) which are degrading the signal you get from the drone.

As you noticed, these images are not suitable for image processing, and are flagged as such in our video pipeline:

/* Assuming you have retrieved a struct mbuf_raw_video_frame * 
 * from either a pdraw_raw_video_sink or from libpdraw-vsink */
struct mbuf_raw_video_frame *frame = /* obtained from pdraw */;
struct vdef_frame_info info;
int ret = mbuf_raw_video_frame_get_frame_info(frame, &info);
if (ret != 0) { /* Handle error */; return; }

if ((info.flag & VDEF_FRAME_FLAG_VISUAL_ERROR) ||
    (info.flag & VDEF_FRAME_FLAG_SILENT)) {
    /* The frame is not suitable for image processing */
} else {
    /* You can process the frame, it should not have any visible artifact */
}

Regards,
Nicolas.

2 Likes

Thanks, that clears it up a lot!

Is there anything I can do to improve the signal and therefore get valid images more often? Is it e.g. better to use the SkyController as a relay rather than a direct link between the PC and the drone?

Best,
Martin

Hi,

Using the SkyController as a relay might help, yes. As the drone, it was designed with long-range operation in mind, while most computer wifi (or wifi dongles) are usually designed for a more “at home” setup, where the access point is near, and not moving. Note that the SkyController antenna is quite directive, and thus should be oriented towards the drone as the distance increases.

You can also try to change the wifi channel (maybe try the 5GHz band if available in your region), to find a less crowded channel.

Regards,
Nicolas.

2 Likes

Ok great, I will try that!

Thank you for the fast and helpful replies!

Best,
Martin

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.