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?

-
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?

-
You are trying to configure the extrinsic parameters. See configure extrinsics for more information
-
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. -
You are trying to configure the extrinsic parameters. See configure extrinsics for more information
@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.confparameters.{ "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? -
You are trying to configure the extrinsic parameters. See configure extrinsics for more information
@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.
Reading along? Create a free ModalAI Forum account to join in.
With an account you can reply, ask your own question, get an email when a ModalAI engineer answers, and mark the reply that solved it. Your place in each thread is saved between visits.
Questions about VOXL, Flight Core, ESCs and ModalAI drones are answered here by the engineers who build them.
Register Login
