Extrinsics Accuracy
-
what kind of dimensional tolerances are acceptable when configuring the extrinsics for VIO when building a custom vehicle?
-
@psafi , are you asking about QVIO?
For QVIO we typically try to get the extrinsics from CAD, which should be quite accurate. If you don't have exact CAD, then XYZ measurements should be within 5mm accuracy or better and within a few degrees rotation. QVIO actually estimates extrinsics, so it will try to correct as part of its estimated state. QVIO will probably converge to correct extrinsics even if you have a larger initial error in the extrinsics, however it's not a good approach to rely on QVIO doing this every time you start QVIO, because it can make the initialization of QVIO more prone to errors.
In the case when exact measurements are not available, you just use your best guess and then run QVIO in a feature rich environment, while holding the the drone by hand, smoothly carrying it around (smoothly rotating and translating). QVIO should converge and its state actually reports the estimate of the IMU to Camera translation and rotation (the extrinsics). Running this test several times (completely restarting QVIO) you can see what extrinsics the QVIO converges to and whether they are consistent. Then, you can update your extrinsics guess to the average value of the translation and rotation you obtained after running QVIO.
Hopefully this helps, let me know if you have any questions.
Alex
-
@Alex-Kushleyev Thank you. This is helpful.
What is QVIO as opposed to VIO? My goal is to set up VIO on a custom quadcopter frame and I am following these instructions. I don't see any mention of qvio
-
@psafi ,
We sometimes refer to VIO as QVIO because our VIO software uses a VIO library from Qualcomm (hence the Q). this implementation is robust and works well for a single camera.
For using multiple cameras, we are using a custom version of OpenVins.
Both
voxl-qvio-server
andvoxl-open-vins-server
are briefly mentioned in the debug section of the doc that you referred to : https://docs.modalai.com/flying-with-vio/#debuggingAlex
-
@Alex-Kushleyev Ok great. Thanks.
One more question, to configure VIO/QVIO for a custom frame with a single (downward) camera, how should I go about following the documentations?I am starting with https://docs.modalai.com/open-vins/
However I came across this:
"This documentaion will assume that there are some steps that have already be taken. ...Assuming that we are working with between two and three camera tracking."are there different procedures for a system with single camera? Also a high-level roadmap on how to go about configuring VIO/QVIO for a custom frame would be appreciated in case information is in multiple places in documentation. Thank you for your support.