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?
    VIO.png



  • 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


  • Dev Team

    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?


Log in to reply