How to recalibrate a system for VIO

  • If you change the frame layout or need to swap components (VOXL, image sensors, etc), the following are the two primary steps for reconfiguring a new system for VIO:

    • Configure IMU to Image sensor coordinate frames (ModalAI's supported configurations are already pre-configured in the setup scripts: Flight Deck, m500, etc) doc
    • Calibrate the tracking sensor doc

  • Hello @Moderator,

    We are trying to replace the voxl board on one of the m500 drone we procured. We followed the above said procedure but still we weren't able to goto to POSCTL. In addition we get status 'FAIL' on voxl-inspect-qvio (switches between FAIL and OKAY)


    Steps that we took

    1. Configure IMU to Image sensor coordinate frames. Since it is already pre-configure in the scripts we didn't perform this the first time. However, since VIO failed again we ran voxl-configure-extrinsics just to be sure.

    2. Configure the camera

    3. Following the steps in the tracking camera calibration (we used noetic in the host, For fisheye type cameras this package uses equidistant distortion model with the name equidistant, according to documentation. ),

    4. Used the script to push the pararmeters to voxl board via adb but failed since /tmp/calibration/opencv_intrinsic.yml doesn't exist.

    after calibration.png

    VIO status is still 'FAIL' on voxl-inspect-qvio (switches between FAIL and OKAY)

    Could you @Moderator (dev team) give us some insight ?

  • Dev Team


    This is a rare bug with the camera calibration procedure where it doesn't generate the yml files despite everything else working. If you re-run the cal, the files should be generated.

    Being released in the next few days (already available on our stable repos if you want to try it) is an on-board, non-ros based camera calibration tool that is much easier to use and fixes some of the finicky behaviors of the ros tool. If you want to try that out, you can run
    opkg update
    opkg install voxl-portal voxl-camera-calibration
    systemctl start voxl-portal and finally:
    voxl-calibrate-camera tracking -f -s (boardwidth)x(boardheight) -l (board square length(m))

    You can then just open your drone's IP in a web browser on any device connected to the same network, open the camera calibrator overlay button, and fill the rectangles with the checkerboard. This process will be properly documented in the coming days, but the tool itself is done and being used in our lab daily.

  • @Alex-Gardner said in How to recalibrate a system for VIO:

    voxl-calibrate-camera tracking -f -s (boardwidth)x(boardheight) -l (board square length(m))

    Hey @Alex-Gardner tried the tool that you suggested but looks like I missing some instructions. I moved the checkerboard inside the red box but didn't 'collect' anything.


  • Dev Team

    You'll need to move the board closer to the camera, try to fill the box fully. It will turn green as you get closer to the proper size. You can see the docs for the process here.

Log in to reply