Reconfiguring VIO
-
Hello, I am trying to reconfigure one of the Seeker's stereo image sensors to be used for VIO instead of the tracking image sensor. I found the documentation on ModalAi's website, but it does not explain how to do this. Could someone please help me out with this?
-
I was thinking that reconfiguring this would be located in the camera configuration, but there isn’t a “ TOF + Stereo “ option here.
-
You are trying to configure the extrinsic parameters. See configure extrinsics for more information
-
@Chad-Sweet
Thank you for the response.
I’m just a little confused on where I should make the changes for this kind of setup in the extrinsics.
Should I replace the #0 and #1 child to stereo_r or stereo_l ?
Or should I add a #8 to the file with parent as body and child as one of the stereo sensors?
Could you please show me an example or template that I can look at to make sure I’m setting this up correctly?
Thank you. -
@Chad-Sweet
Here are my extrinsics parameters from factory.voxl:~$ voxl-inspect-extrinsics #0: parent: imu0 child: tracking T_child_wrt_parent: 0.014 0.005 0.005 RPY_parent_to_child: -45.0 0.0 0.0 R_child_to_parent: 1.000 -0.000 0.000 0.000 0.707 0.707 -0.000 -0.707 0.707 #1: parent: imu1 child: tracking T_child_wrt_parent: -0.034 0.030 0.005 RPY_parent_to_child: -45.0 0.0 0.0 R_child_to_parent: 1.000 -0.000 0.000 0.000 0.707 0.707 -0.000 -0.707 0.707 #2: parent: body child: imu0 T_child_wrt_parent: 0.050 -0.015 0.016 RPY_parent_to_child: 0.0 90.0 90.0 R_child_to_parent: 0.000 -0.000 1.000 1.000 0.000 -0.000 -0.000 1.000 0.000 #3: parent: body child: imu1 T_child_wrt_parent: 0.046 0.033 -0.013 RPY_parent_to_child: 0.0 90.0 90.0 R_child_to_parent: 0.000 -0.000 1.000 1.000 0.000 -0.000 -0.000 1.000 0.000 #4: parent: body child: stereo_l T_child_wrt_parent: 0.055 -0.040 0.000 RPY_parent_to_child: 0.0 90.0 90.0 R_child_to_parent: 0.000 -0.000 1.000 1.000 0.000 -0.000 -0.000 1.000 0.000 #5: parent: body child: ground T_child_wrt_parent: 0.000 0.000 0.045 RPY_parent_to_child: 0.0 0.0 0.0 R_child_to_parent: 1.000 -0.000 0.000 0.000 1.000 -0.000 0.000 0.000 1.000 #6: parent: imu1 child: imu0 T_child_wrt_parent: -0.048 0.037 0.002 RPY_parent_to_child: 0.0 0.0 0.0 R_child_to_parent: 1.000 -0.000 0.000 0.000 1.000 -0.000 0.000 0.000 1.000 #7: parent: body child: tof T_child_wrt_parent: 0.055 0.000 0.000 RPY_parent_to_child: 0.0 90.0 -90.0 R_child_to_parent: 0.000 0.000 1.000 -1.000 0.000 -0.000 -0.000 -1.000 0.000
-
Here is my
voxl-qvio-server.conf
parameters.{ "imu_name": "imu1", "cam_name": "tracking", "lens_cal_path": "/data/modalai/opencv_tracking_intrinsics.yml", "cam_extrinsics_name": "tracking", "use_second_cam_if_stereo": false, "odr_hz": 30, "use_camera_height_bootstrap": true, "camera_height_off_ground_m": 0.085000000894069672, "enable_init_while_moving": false, "cam_imu_timeshift_s": -0.0020000000949949026, "cam_imu_timeshift_s_uncertainty": 0.0010000000474974513, "T_cam_wrt_imu_uncertainty": [0.00050000002374872565, 0.00050000002374872565, 0 "R_cam_to_imu_uncertainty": [0.00499999988824129, 0.00499999988824129, 0.00499 "accl_fsr_ms2": 156, "gyro_fsr_rad": 34, "accl_noise_std_dev": 0.31600001454353333, "gyro_noise_std_dev": 0.00999999977648258, "cam_noise_std_dev": 100, "min_std_pixel_noise": 0.5, "fail_high_pixel_noise_points": 1.6650999784469604, "limited_imu_bw_trigger": 25, "gps_imu_time_alignment_s": 0, "T_gps_wrt_imu": [0, 0, 0], "enable_mapping": true, "enable_gps_vel": false, "show_extra_points_on_overlay": false, "en_auto_reset": true, "auto_reset_max_velocity": 10, "auto_reset_max_v_cov_instant": 0.10000000149011612, "auto_reset_max_v_cov": 0.00999999977648258, "auto_reset_max_v_cov_timeout_s": 0.5, "auto_reset_min_features": 3, "auto_reset_min_feature_timeout_s": 1 }
Not sure how to set this up.
Should I name my"cam_name"
to stereo_r or stereo instead of tracking?
If so, the"lens_cal_path"
should be changed to"/data/modalai/opencv_stereo_intrinsics.yml"
right?
Or should I enable the"use_second_cam_if_stereo"
option to true instead of false? -
This post is deleted! -
@Chad-Sweet
Could I please get some help with this setup procedure?
I have read through the configure extrinsic instructions, but it does not explain how to setup one of the stereo cameras for VIO. -
Use cam name = "stereo" and there should be an option for using either the left or right stereo camera.
As Chad pointed out you will need to also configure extrinsics if they aren't already for the stereo camera.
https://gitlab.com/voxl-public/voxl-sdk/services/voxl-qvio-server/-/blob/master/server/config_file.h#L155I have a PR to fix an issue with using a stereo camera here with the QVIO Server: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-qvio-server/-/merge_requests/10 that you will need as well I believe.