Attempt to reduce drift with the help of stereo camera
-
Hello, @James-Strawson @Tom-Kaufmann @Eric-Katzfey
I've been using Starling for quite a while. Congratulations on a great product.One of the things I noticed was that when using voxl-mapper for a significant time (like 15mins), the accumulated drift becomes a serious issue. I want to try and reduce the accumulated drift.
I possess a stereo camera (from ModalAI itself). The VIO docs (https://docs.modalai.com/flying-with-vio/) mention that - "VIO could be reconfigured to use one of the stereo sensors instead of the tracking sensor".
I know it says instead but is there a way to use one of the stereo cameras as a second tracking camera? (One of them being the normal 45-degree angled tracking camera and the other being one of the cameras from the front-facing stereo setup.I am working on this now, so I'll quickly give you feedback on your suggestions. Any insights or suggestions would be helpful.
Thank you
-
@Jetson-Nano The current version of VIO (qvio) can only use a single sensor at a time. We will be switching to openvins based VIO in the future which does allow multiple sensors.
-
Understood. Thanks for the help.
Another option is to use an OpticalFlow/Rangefinder with an external FC. I have completed this setup successfully. I can use my MAV in position mode with the fused odometry without issues. VOA works as well.I know from the docs and GitLab that voxl-mapper takes 2 inputs whub_body_wrt_fixed and tof. Is there a way to pass the fused odometry instead of whub_body_wrt_fixed? [ I want the mapper to use this data instead of whub_body_wrt_fixed]. The message type of the fused odometry is nav_msgs/Odometry.
- Will I need to modify the voxl-mavlink-server to achieve this?
- How do I get the mapper to use the fused odometry data?
-
@Jetson-Nano Could you please start a new forum post for this topic? It won't get much attention buried in this post. Thanks!
-
@Eric-Katzfey
Will do. Thanks again -
Hey @Eric-Katzfey @modaltb @James-Strawson,
In voxl-qvio-server, I'm planning to use one of the ov7251 camera module from the stereo pair as tracking camera. How do I edit and define the extrinsics and instrinsics for the same in the voxl-qvio-server config file?
-
@Jetson-Nano If you are using a stereo-pair that are being published together on the same pipe like on a Seeker, M500, or Sentinel, then you should just need to set up the following config files:
/etc/modalai/voxl-qvio-server.conf:
"cam_name": "stereo", (or stereo_front for sentinel) "lens_cal_path": "/data/modalai/opencv_stereo_intrinsics.yml", (or stereo_front_intrinsics for Sentinel) "cam_extrinsics_name": "stereo_l", (or stereo_front_l for sentinel) "use_second_cam_if_stereo": false,
To use the right camera, you can swap "use_second_cam_is_stereo" to true, and qvio will pull in instrinsic lens params from the right camera which is also part of the same intrinsics file. Note that we only have camera locations in the extrinsics files for the left camera, but you can add to /etc/modalai/extrinsics.conf an entry for the right camera if you wish.