ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Reconfiguring VIO

    Ask your questions right here!
    3
    9
    785
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • KrisK
      Kris
      last edited by

      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

      KrisK 1 Reply Last reply Reply Quote 0
      • KrisK
        Kris @Kris
        last edited by

        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

        1 Reply Last reply Reply Quote 0
        • Chad SweetC
          Chad Sweet ModalAI Team
          last edited by

          You are trying to configure the extrinsic parameters. See configure extrinsics for more information

          KrisK 3 Replies Last reply Reply Quote 0
          • KrisK
            Kris @Chad Sweet
            last edited by

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

            1 Reply Last reply Reply Quote 0
            • KrisK
              Kris @Chad Sweet
              last edited by

              @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 
              
              
              1 Reply Last reply Reply Quote 0
              • KrisK
                Kris
                last edited by Kris

                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?

                1 Reply Last reply Reply Quote 0
                • KrisK
                  Kris
                  last edited by

                  This post is deleted!
                  1 Reply Last reply Reply Quote 0
                  • KrisK
                    Kris @Chad Sweet
                    last edited by Kris

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

                    1 Reply Last reply Reply Quote 0
                    • Steve TurnerS
                      Steve Turner
                      last edited by

                      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.

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post
                      Powered by NodeBB | Contributors