# Reconfiguring VIO

Source: https://forum.modalai.com/topic/1863/reconfiguring-vio
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2023-02-22 00:40:01 UTC by Kris
Replies: 7 · Views: 2475

## Kris · 2023-02-22 00:40:01 UTC

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?
![VIO.png](https://forum.modalai.com/assets/uploads/files/1677026387402-vio-resized.png)

## Reply by Kris · 2023-02-22 01:47:09 UTC

I was thinking that reconfiguring this would be located in the camera configuration, but there isn’t a “ TOF + Stereo “ option here.
![BB2675C9-EA85-4C1B-9F25-9FF8A2D52375.jpeg](https://forum.modalai.com/assets/uploads/files/1677030419080-bb2675c9-ea85-4c1b-9f25-9ff8a2d52375.jpeg)

## Reply by Chad Sweet (ModalAI staff) · 2023-02-22 02:53:30 UTC

You are trying to configure the extrinsic parameters. See [configure extrinsics](https://docs.modalai.com/configure-extrinsics/) for more information

## Reply by Kris · 2023-02-28 01:15:24 UTC (in reply to Chad Sweet)

@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.

## Reply by Kris · 2023-02-28 05:27:22 UTC (in reply to Chad Sweet)

@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 

```

## Reply by Kris · 2023-03-07 03:50:42 UTC

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?

## Reply by Kris · 2023-04-06 02:48:33 UTC (in reply to Chad Sweet)

@Chad-Sweet 
Could I please get some help with this setup procedure?
I have read through the [configure extrinsic](https://docs.modalai.com/configure-extrinsics/) instructions, but it does not explain how to setup one of the stereo cameras for VIO.

## Reply by Steve Turner · 2023-04-07 23:36:46 UTC

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#L155

I 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.
