MAVLink Odometry X Y value 0



  • I am not able to get any X/Y values in my MAVLink Odometry or in my LOCAL_POSITION_NED.
    I have done research into this issue, but could not find a solution for my setup.

    Could someone please point out my problem?

    voxl:~$ voxl-version
    --------------------------------------------------------------------------------
    system-image: 3.8.0
    kernel:       #1 SMP PREEMPT Tue Apr 26 18:08:39 UTC 2022 3.18.71-perf
    --------------------------------------------------------------------------------
    hw version:   VOXL
    --------------------------------------------------------------------------------
    voxl-suite:   0.8.1
    0.7.0
    --------------------------------------------------------------------------------
    
    
     Service Name             |  Version  |  Enabled  |   Running   |  CPU Usage
    -------------------------------------------------------------------------------
     docker-autorun           |    1.2.4  | Disabled  | Not Running |  
     docker-daemon            |    1.2.4  | Disabled  | Not Running |  
     modallink-relink         |   0.15.1  | Disabled  | Not Running |  
     voxl-camera-server       |    0.9.1  |  Enabled  |   Running   |    16.6
     voxl-cpu-monitor         |    0.2.5  |  Enabled  |   Running   |     0.0
     voxl-dfs-server          |    0.2.6  |  Enabled  |   Running   |     8.3
     voxl-imu-server          |    1.0.1  |  Enabled  |   Running   |     2.0
     voxl-mavlink-server      |    0.1.3  |  Enabled  |   Running   |     0.0
     voxl-modem               |   0.15.1  | Disabled  | Not Running |  
     voxl-portal              |    0.2.6  |  Enabled  |   Running   |     0.0
     voxl-qvio-server         |    0.4.6  |  Enabled  |   Running   |     8.3
     voxl-rangefinder-server  |    0.1.2  | Disabled  | Not Running |  
     voxl-streamer            |    0.3.6  | Disabled  | Not Running |  
     voxl-tag-detector        |    0.0.4  | Disabled  | Not Running |  
     voxl-tflite-server       |    0.2.3  | Disabled  | Not Running |  
     voxl-time-sync           |    1.1.4  |  Enabled  |  Completed  |  
     voxl-vision-px4          |    1.2.0  |  Enabled  |   Running   |     2.0
     voxl-wait-for-fs         |    1.1.4  |  Enabled  |  Completed  |  
    
    
    voxl:~$ opkg list-installed | grep "voxl"
    libvoxl-cutils - 0.1.1
    voxl-camera-calibration - 0.2.2
    voxl-ceres-solver - 1.14.0-7
    voxl-cpu-monitor - 0.2.5
    voxl-docker-support - 1.2.4
    voxl-gphoto2-server - 0.0.10
    voxl-jpeg-turbo - 2.1.3-4
    voxl-libgphoto2 - 0.0.4
    voxl-libuvc - 1.0.6
    voxl-logger - 0.1.2
    voxl-mapper - 0.0.7
    voxl-mavlink - 0.1.0
    voxl-mavlink-server - 0.1.3
    voxl-modem - 0.15.1
    voxl-mongoose - 7.6.0
    voxl-mpa-to-ros - 0.3.2
    voxl-mpa-tools - 0.6.3
    voxl-nlopt - 2.5.0-4
    voxl-opencv - 4.5.5-1
    voxl-portal - 0.2.6
    voxl-qvio-server - 0.4.6
    voxl-streamer - 0.3.6
    voxl-suite - 0.7.0
    voxl-tag-detector - 0.0.4
    voxl-tflite-server - 0.2.3
    voxl-utils - 1.1.4
    voxl-uvc-server - 0.1.1
    voxl-vision-px4 - 1.2.0
    voxl-voxblox - 1.0.4
    voxl-vpn - 0.0.6
    
    
    voxl:~$ opkg list-installed | grep "modal"
    libmodal-cv - 0.1.0
    libmodal-exposure - 0.0.7
    libmodal-json - 0.4.2
    libmodal-pipe - 2.4.0
    
    
     "config_file_version":  1,                                                                           
            "qgc_ip":       "192.168.110.146",                                                                   
            "en_secondary_qgc":     false,                                                                       
            "secondary_qgc_ip":     "192.168.1.214",                                                             
            "qgc_udp_port_number":  14550,                                                                       
            "udp_mtu":      512,                                                                                 
            "en_localhost_mavlink_udp":     true,                                                                
            "localhost_udp_port_number":    14551,                                                               
            "en_vio":       true,                                                                                
            "en_voa":       true,                                                                                
            "en_send_vio_to_qgc":   true,                                                                        
            "en_send_voa_to_qgc":   true,                                                                        
            "voa_upper_bound_m":    -0.15000000596046448,                                                        
            "voa_lower_bound_m":    0.15000000596046448,                                                         
            "en_set_clock_from_gps":        true,                                                                
            "en_force_onboard_mav1_mode":   true,                                                                
            "en_reset_px4_on_error":        true,                                                                
            "horizon_cal_tolerance":        0.300000011920929,                                                   
            "offboard_mode":        "trajectory",                                                                
            "follow_tag_id":        0,                                                                           
            "figure_eight_move_home":       true,                                                                
            "en_tag_fixed_frame":   false,                                                                       
            "fixed_frame_filter_len":       5,                                                                   
            "en_transform_mavlink_pos_setpoints_from_fixed_frame":  false,                                       
            "vio_pipe":     "qvio",                                                                              
            "en_reset_vio_if_initialized_inverted": true,                                                        
            "vio_warmup_s": 3,                                                                                   
            "voa_memory_s": 1,                                                                                   
            "voa_inputs":   [{                                                                                   
                            "enabled":      true,                                                                
                                                    "type": "point_cloud",                                                               
                                                    "input_pipe":   "dfs_point_cloud",                                                   
                                                    "frame":        "stereo_l"                                                           
                                            }, {                                                                                         
                                                    "enabled":      true,                                                                
                                                    "type": "point_cloud",                                                               
                                                    "input_pipe":   "stereo_front_pc",                                                   
                                                    "frame":        "stereo_front_l"                                                     
                                            }, {                                                                                         
                                                    "enabled":      true,                                                                
                                                    "type": "point_cloud",                                                               
                                                    "input_pipe":   "stereo_rear_pc",                                                    
                                                    "frame":        "stereo_rear_l"                                                      
                                            }, {                                                                                         
                                                    "enabled":      true,                                                                
                                                    "type": "tof",                                                                       
                                                    "input_pipe":   "tof",                                                               
                                                    "frame":        "tof"                                                                
                                            }, {                                                                                         
                                                    "enabled":      true,                                                                
                                                    "type": "rangefinder",                                                               
                                                    "input_pipe":   "rangefinders",                                                      
                                                    "frame":        "body"     
    
    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 
    
    

    QGC-Summary-ModalAI-r.png

    QGC-Odometry-r.png

    MAVLink-Parameters-r.png

    EKF2_AID_MASK-r.png



  • There is no position control for indoor flights.

    COM_OBS_AVOID
    COM_OBS_AVOID.png

    CP_DIST
    CP_DIST.png

    I am having trouble figuring this one out.



  • Here are my GCS Serial parameters.

    GCS Serial.png



  • I am currently on the PX4 ModalAi build Firmware, but I was also getting the Reject Position Control error and 0 values for X & Y in MAVLink Odometry in QCS for the PX4 Mainline build Firmware.



  • I have also tried doing the following;

    voxl:~$ voxl-reset-qvio
    Sending hard reset command to voxl-qvio-server
    success
    

    &

    voxl:~$ systemctl restart voxl-qvio-server
    

    After executing these commands, the X & Y values did not change from 0.



  • Here are my voxl-vision-px4 -o readouts;
    There are definitely errors in the VIO data through the pipe, I just don't know how to fix it.

    If anyone has any ideas to fix this issue, I'm all ears ๐Ÿ‘‚

    voxl:~$ voxl-vision-px4 -o
    loading our own config file
    =================================================================
    Parameters as loaded from config file:
    config_file_version:        1
    MAVLINK IO
    qgc_ip:                     192.168.110.146
    en_secondary_qgc:           0
    secondary_qgc_ip:           192.168.1.214
    qgc_udp_port_number:        14550
    udp_mtu:                    512
    en_localhost_mavlink_udp    1
    localhost_udp_port_number:  14551
    VIO
    en_vio:                     1
    vio_pipe:                   qvio
    en_send_vio_to_qgc:         1
    en_reset_vio_if_initialized_inverted: 1
    vio_warmup_s:               4.000000
    APQ8096-ONLY FEATURES
    en_set_clock_from_gps:      1
    en_force_onboard_mav1_mode: 1
    en_reset_px4_on_error:      1
    MISC FEATURES
    horizon_cal_tolerance:      0.300000
    OFFBOARD MODE
    offboard_mode:              trajectory
    follow_tag_id:              0
    figure_eight_move_home:     1
    FIXED FRAME RELOCALIZATION
    en_tag_fixed_frame:         0
    fixed_frame_filter_len:     5
    en_transform_mavlink_pos_setpoints_from_fixed_frame:0
    COLLISION PREVENTION (VOA)
    en_voa:                     1
    en_send_voa_to_qgc:         1
    voa_upper_bound_m:          -0.150000
    voa_lower_bound_m:          0.150000
    voa_memory_s:               1.000000
    voa_input #0
        enabled:            1
        type:               point_cloud
        input_pipe:         dfs_point_cloud
        frame:              stereo_l
    voa_input #1
        enabled:            1
        type:               point_cloud
        input_pipe:         stereo_front_pc
        frame:              stereo_front_l
    voa_input #2
        enabled:            1
        type:               point_cloud
        input_pipe:         stereo_rear_pc
        frame:              stereo_rear_l
    voa_input #3
        enabled:            1
        type:               tof
        input_pipe:         tof
        frame:              tof
    voa_input #4
        enabled:            1
        type:               rangefinder
        input_pipe:         rangefinders
        frame:              body
    =================================================================
    loading extrinsics config file
    starting geometry module
    starting px4 monitor
    starting px4 mavlink
    Connected to voxl-mavlink-server
    Detected PX4 Mavlink SYSID 1
    starting udp mavlink
    Adding manual QGC IP address to udp connection list: 192.168.110.146
    Added new UDP connection to 192.168.110.146
    starting px4 shell
    starting fixed pose input
    starting vio manager
    Connected to VIO pipe: qvio
    updating to use imu: imu1
    done updating transforms to use imu: imu1
    detected system time has already been set
    starting tag manager
    starting voa manager
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    Connected to pipe: dfs_point_cloud
    starting horizon cal
    Connected to pipe: tof
    starting offboard trajectory
    Init complete, entering main loop
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ^C
    received SIGINT Ctrl-C
    Starting shutdown sequence
    stopping offboard trajectory
    exiting offboard trajectory thread
    stopping horizon_cal
    stopping voa manager
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    exiting VOA thread
    stopping tag manager
    stopping vio manager
    stopping fixed pose in module
    stopping px4 shell module
    Stopping udp mavlink module
    exiting localhost udp listener thread
    exiting QGC udp listener thread
    udp_mavlink stopped
    Stopping uart mavlink module
    waiting for px4 mavlink timer thread to join
    Stopping px4 monitor
    closing remaining client pipes
    closing remaining server pipes
    Removing PID file
    exiting
    voxl:~$ 
    
    


  • Could this issue be coming from imu0 and imu1?



  • Has anyone had this error message on their system?

    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    

    If so, how was it resolved?

    Here is my debug odometry;

    voxl:~$ voxl-vision-px4 --debug_odometry
    loading our own config file
    =================================================================
    Parameters as loaded from config file:
    config_file_version:        1
    MAVLINK IO
    qgc_ip:                     192.168.110.146
    en_secondary_qgc:           0
    secondary_qgc_ip:           192.168.1.214
    qgc_udp_port_number:        14550
    udp_mtu:                    512
    en_localhost_mavlink_udp    1
    localhost_udp_port_number:  14551
    VIO
    en_vio:                     1
    vio_pipe:                   qvio
    en_send_vio_to_qgc:         1
    en_reset_vio_if_initialized_inverted: 1
    vio_warmup_s:               3.000000
    APQ8096-ONLY FEATURES
    en_set_clock_from_gps:      1
    en_force_onboard_mav1_mode: 1
    en_reset_px4_on_error:      1
    MISC FEATURES
    horizon_cal_tolerance:      0.450000
    OFFBOARD MODE
    offboard_mode:              trajectory
    follow_tag_id:              0
    figure_eight_move_home:     1
    FIXED FRAME RELOCALIZATION
    en_tag_fixed_frame:         0
    fixed_frame_filter_len:     5
    en_transform_mavlink_pos_setpoints_from_fixed_frame:0
    COLLISION PREVENTION (VOA)
    en_voa:                     1
    en_send_voa_to_qgc:         1
    voa_upper_bound_m:          -0.150000
    voa_lower_bound_m:          0.150000
    voa_memory_s:               1.000000
    voa_input #0
        enabled:            1
        type:               point_cloud
        input_pipe:         dfs_point_cloud
        frame:              stereo_l
    voa_input #1
        enabled:            1
        type:               point_cloud
        input_pipe:         stereo_front_pc
        frame:              stereo_front_l
    voa_input #2
        enabled:            1
        type:               point_cloud
        input_pipe:         stereo_rear_pc
        frame:              stereo_rear_l
    voa_input #3
        enabled:            1
        type:               tof
        input_pipe:         tof
        frame:              tof
    voa_input #4
        enabled:            1
        type:               rangefinder
        input_pipe:         rangefinders
        frame:              body
    =================================================================
    loading extrinsics config file
    exising instance of voxl-vision-px4 found, attempting to stop it
    starting geometry module
    starting px4 monitor
    starting px4 mavlink
    Connected to voxl-mavlink-server
    Detected PX4 Mavlink SYSID 1
    starting udp mavlink
    Adding manual QGC IP address to udp connection list: 192.168.110.146
    Added new UDP connection to 192.168.110.146
    starting px4 shell
    starting fixed pose input
    starting vio manager
    Connected to VIO pipe: qvio
    updating to use imu: imu1
    done updating transforms to use imu: imu1
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    starting tag manager
    starting voa manager
    Connected to pipe: dfs_point_cloud
    Connected to pipe: tof
    starting horizon cal
    starting offboard trajectory
    Init complete, entering main loop
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    detected system time has already been set
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    WARNING in VOA manager, no attitude data from px4
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    read 156 bytes, but it should be a multiple of 324
    ERROR validating VIO data received through pipe: read partial packet
    

    There is also one VOA manager WARNING in my odometry debug, with no attitude data from px4....

    WARNING in VOA manager, no attitude data from px4
    

    ๐Ÿ˜–


  • Dev Team

    From the Troubleshooting VIO docs, can you try these steps?

    QVIO Overlay in voxl-portal
    voxl-inspect-qvio



  • @Chad-Sweet Yes, I have read through those steps and tried them. All of my cameras are viewable in voxl-portal. I have also ran the voxl-inspect-qvio and the status was ok with no error's.


  • Dev Team

    Can you please share the output of those steps?



  • @Chad-Sweet

    voxl:~$ voxl-inspect-qvio
    waiting for server
    
        T_imu_wrt_vio (m)   |Roll Pitch Yaw (deg)| state| error_code
       -0.00    0.00    0.00|  -0.0    0.0   -0.0| OKAY | ^C
    received SIGINT Ctrl-C
    
    closing and exiting
    


  • @Chad-Sweet What would you like to see in my voxl portal?



  • Here I have turned the drone about an inch to the left.

    voxl:~$ voxl-inspect-qvio
    waiting for server
    
        T_imu_wrt_vio (m)   |Roll Pitch Yaw (deg)| state| error_code
       -0.02    0.00    0.03|   0.3  -10.3    1.7| OKAY | ^C
    received SIGINT Ctrl-C
    
    closing and exiting
    
    

  • Dev Team

    The qvio-overlay in voxl-portal is interesting, but from the voxl-inspect-qvio it looks like VIO is working properly. It's mostly likely PX4 is rejecting position mode, usually because it requires a magnetometer.

    This section covers position mode rejected issues

    Do you have a magnetometer connected? If not, are you sure PX4 is not expecting one?



  • @Chad-Sweet I haven't added anything special to my Seeker setup.



  • @Chad-Sweet
    SYS_HAS_MAG
    SYS_HAS_MAG.png

    EKF2_MAG_TYPE
    EKF2_MAG_TYPE.png

    So, I should enter the 0 value for SYS_HAS_MAG
    and 5 for the EKF2_MAG_TYPE?


  • Dev Team

    If you are using PX4 1.12 or later, and do not have a magnetometer, and want to use VIO, yes.



  • @Chad-Sweet OK ๐Ÿ‘ Iโ€™ll try that ๐Ÿ˜Š



  • @Chad-Sweet There is not an option for 5 in EKF2_MAG_TYPE.
    Should I leave this at โ€œAutomaticโ€ or select โ€œNoneโ€ ?


Log in to reply