Landing gear disturb tracking camera
When we fly in more difficult environment for the VIO, the VIO system tends to track the drone itself, it will track the prop guards/ landing gear. An example of what the tracking camera can see of its own drone, you can see here:
In our setup we have tilted the tracking camera 15 degrees more downwards so it sees less of the drone. But it is impossible to place the camera in an position where the tracking camera does not see anything of the drone. In the current and possibly the best placement of the camera, the image looks like this:
In the top corners it can still see some parts of the drone, the props guards. Now when the tracking camera tracks the prop guards, the drone will loose its positioning and crashes. Is it possible to modify the VIO code or just by parameters, so that it cannot and will never track any features/ points in that area where the prop guard is?
There are two options here for implementing a tracking mask in the qvio-server.
Within the camera callback in main.cpp (https://gitlab.com/voxl-public/voxl-sdk/services/voxl-qvio-server/-/blob/master/server/main.cpp#L681), you can simply 0 out the pixel regions that you do not want to track.
Another option is providing a mask file name to the
mvVISLAM_Initializecall here (https://gitlab.com/voxl-public/voxl-sdk/services/voxl-qvio-server/-/blob/master/server/main.cpp#L397). According to the docs, this mask must be a "1/4 resolution image (w.r.t. VGA), 160 x 120, PGM format, the part of the camera view for which pixels are set to 255 is blocked from feature detection useful, e.g., to avoid detecting & tracking points on landing gear reaching into camera view." See https://developer.qualcomm.com/sites/default/files/docs/machine-vision-sdk/api/v1.2.13/group__mvvislam.html#ga6f8af5b410006a44dbcf59f7bc6a6b38 to read more.
Thank you very much for your clear answer. We will give this a try!
If you have any examples or more information on how to do this, please feel free.