Skip to content

GPS-denied Navigation (VIO)

73 Topics 354 Posts

Questions about developing software on the products

  • Visual position estimate and offboard control

    6
    0 Votes
    6 Posts
    1k Views
    Eric KatzfeyE
    @bschulzhf PX4 will only correct incoming messages. Something external will have to also run TIMESYNC with PX4 to estimate the offset and correct and incoming PX4 message timestamps that it wants to align. voxl-mavlink-server does this for a few messages.
  • Avoidance

    3
    0 Votes
    3 Posts
    1k Views
    Eric KatzfeyE
    @Ward-Javoronok How is the parameter COM_OBS_AVOID set? If you set it to 0 that disables obstacle avoidance and should get rid of that error.
  • Adding more cameras to VIO

    2
    1 Votes
    2 Posts
    1k Views
    K
    Adding more cameras can definitely improve robustness, but synchronization and calibration become super important once you go beyond the default setup. Even small timestamp offsets between sensors can throw VIO off pretty badly. I’d also keep an eye on bandwidth and CPU usage because extra camera streams add up fast on embedded systems.
  • Running QVIO on a hires camera

    16
    1 Votes
    16 Posts
    4k Views
    Alex KushleyevA
    @Rowan-Dempster , Thanks for the update! On my end, I did not get a chance to enable MISP pipeline (normalization in particular) to run offline. Let me double check something with you - would you want to load a log with raw10 and resize + generate the normalized image (of a different size) or just keep the same size as input? Since you have the basic rolling shutter QVIO working, it would be interesting to see how that compares to the AR0144 QVIO from the same data set. Any details you would like to share? (only if you want to) Regarding playback results from QVIO output not being exactly repeatable -- " no deterministic mechanism to ensure that voxl-qvio-server initializes using the same camera frame" -- what do you mean by that? if you start QVIO and start feeding the frames + imu data from voxl-replay, the data should arrive into QVIO repeatably and QVIO should initialize on the same frame - after the initialization conditions have been satisfied. If I remember correctly the way QVIO app works is that it may hold the frame until all the IMU data for that frame has arrived and then pushes the frame into the QVIO algorithm. If you push the frame before pushing all the IMU data, then the algorithm will still process the frame but it wont have the IMU data for the whole duration of the frame capture. The frame capture duration for global shutter cameras is simple : start = start of exposure end = end of exposure = start of exposure + exposure time (i believe it is common to assign a timestamp which is equal to the center of exposure, which is between the start and end timestamps). center of exposure = start of exposure + (exposure time)/2 In order to find the center of exposure for rolling shutter camera, you need to use the following formula, as used in our EIS implementation in MISP: int64_t center_of_exposure_ns = start_of_exposure_ns + (exposure_time_ns + readout_time_ns)/2; In any case, this would be something to double check.. also i don't know how far your trajectories are from run to run. Another tip: since you don't have ground truth in your data, it helps to start and end your data collection in exactly the same spot and orientation, so you can use the end position drift as a good metric (ground truth). Alex
  • Two-camera VIO non-functional in voxl-open-vins-server 0.6.0 (SDK 1.6.3)

    5
    0 Votes
    5 Posts
    985 Views
    Alex KushleyevA
    I have uploaded the latest ar0144 drivers with fsin versions for all camera slots here : https://storage.googleapis.com/modalai_public/temp/ar0144/ar0144_drivers_20260402.zip There are two additional files (inside the zip), which you should copy to /usr/lib/camera to make sure you have the latest updates: com.qti.sensor.ar0144.so -- contains functions for exposure / gain control (we recently made some improvements to make gain control smoother) com.qti.tuned.default.bin -- fixed gain scaling so that min gain (1.0x analog gain) is equal to 100 in the HAL3 gain units, not 54 (and the max gain will be 29.6 = 29600 for AR0144) -- you can also double check this using voxl-camera-server -l and update the min/max gain settings in your voxl-camera-server.conf to make sure you are using the full range. My colleague will follow up with a diagram for locations of the DNI resistors that need to be installed to enable sync signal for camera slots 1 and 3 (0402 0-ohm resistor) Alex
  • Switching between Mag+GPS and VIO indoors

    8
    0 Votes
    8 Posts
    2k Views
    Eric KatzfeyE
    @Sarika-Sharma You can get v1.0.10 here: http://voxl-packages.modalai.com/dists/qrb5165/dev/binary-arm64/libfc-sensor_1.0.10-202602041609_arm64.deb
  • This topic is deleted!

    2
    2
    0 Votes
    2 Posts
    27 Views
  • OpenVINS issue

    8
    0 Votes
    8 Posts
    2k Views
    Nitin Varma VegesnaN
    @zauberflote1 I am no longer having this issue. I have been flying with OpenVins for some time, and I was sometimes seeing drift in the vio estimate, and I was wondering what are the best configs to use. for vio_cams.conf and voxl-open-vins-server.conf?
  • No ov_overlay in portal

    7
    0 Votes
    7 Posts
    2k Views
    D
    @zauberflote1 alright, thanks for your help!
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    11 Views
    No one has replied
  • Open-VINS Mask File Location

    3
    1 Votes
    3 Posts
    1k Views
    J
    @zauberflote1 ok, thank you! I will try to implement the mask as in VoxlCam. Regards, Jacob
  • Request: Add Flight Deck 2 YAML Configurations for OpenVINS Testing

    1
    0 Votes
    1 Posts
    469 Views
    No one has replied
  • Migrating from QVIO to OpenVINS (SDK1.6)

    5
    0 Votes
    5 Posts
    1k Views
    zauberflote1Z
    To clarify, our current platforms are shipped with voxl-open-vins-server as the default VINS solution; however, QVIO is still available (SDK 1.6.2).
  • Missing ov_overlay

    3
    3 Votes
    3 Posts
    1k Views
    S
    @tom Thank you for your answer! Unfortunately the overlay does not appear, even when the drone is armed. We are using Starling 2 drones with SDK 1.6.2. Also in the voxl-open-vins-server.conf we can't find a setting for something related to the overlay. Do you have any ideas what we can try to see the ov_overlay again? Thank you in advance!
  • 0 Votes
    2 Posts
    904 Views
    Michael BaldwinM
    @wilkinsaf Do you happen to have any experience with this?
  • setting up VIO on VOXL2 (custom frame)

    2
    0 Votes
    2 Posts
    1k Views
    P
    @psafi Here are the steps I am taking for camera calibration: 1- run the following command: voxl-calibrate-camera tracking_down -f -s 6x9 -l 0.022 2- look at the overlay in portal (see the screenshot below) 3- calibration process is not progressing automatically even though it seems like the checkerboard is detected [image: 1760465700997-e47c8511-c92f-4ce7-83f6-49d59dd89e7d-screenshot-from-2025-10-14-11-14-52.png]
  • VIO drifting when using TFlite Server

    3
    0 Votes
    3 Posts
    1k Views
    Ege YüceelE
    @Moderator thank you for the recommendation. I will try out this.
  • Calibraation files not saving and camera intrinsics failing

    5
    0 Votes
    5 Posts
    2k Views
    Manoj KashyapM
    @Moderator Even I am facing the same issue. Did everything as per the instructions on the official website. But unable to calibrate the stereo front. I was able to calibrate stereo back though. I have attached the error along for your reference.
  • How to start with VIO?

    1
    0 Votes
    1 Posts
    504 Views
    No one has replied
  • QVIO unstable flight. Please help!

    8
    2
    0 Votes
    8 Posts
    2k Views
    ModeratorM
    @Daniel-Rincon have you looked through the troubleshooting guide? https://docs.modalai.com/flying-with-vio/#troubleshooting-vio Usually looking at the ovins-overlay in voxl-portal offers good insight The common issues are vibration is too high, the extrinsics are incorrect or there are not enough features to track in the environment