Sentinel VOA software not available



  • Hello,

    My Sentinel drone is not outputting valid VOA measurements.

    I have enabled voxl-dfs-server, and I can see correct point clouds from stereo_front_pc and stereo_rear_pc using voxl-portal. I can also see correct stereo_front_disparity and stereo_rear_disparity.

    I have set en_voa to true, and en_send_voa_to_qgc to true, and I can see OBSTACLE_DISTANCE messages in QGC but they are all 1001 when max_distance is 1000.

    This is the list of items in /run/mpa:

    cpu_monitor	qvio_extended		       stereo_front_pc		     tracking		   vvpx4_fixed_pose_input
    hires		qvio_overlay		       stereo_rear		     voa_pc_out		   vvpx4_gps_raw_int
    imu_apps	stereo_front		       stereo_rear_disparity	     vvpx4_body_wrt_fixed  vvpx4_mavlink_io
    mavlink_to_px4	stereo_front_disparity	       stereo_rear_disparity_scaled  vvpx4_body_wrt_local  vvpx4_sys_status
    qvio		stereo_front_disparity_scaled  stereo_rear_pc		     vvpx4_control_input   vvpx4_vehicle_gps
    

    The command voxl-inspect-points voa_pc_out returns no data:

    timestamp(ms)| # points | # bytes |     1st point     | Format
    

    According to the documentation at https://docs.modalai.com/sentinel-user-guide-using-voa/, I should be able to run

    • voxl-voa-server-configure
    • voxl-voa-to-px4
    • voxl-voa-client

    but none of these commands are available.

    -bash: voxl-voa-server-configure: command not found
    

    Here is my version:

    root@qrb5165-rb5:/run/mpa# voxl-version 
    --------------------------------------------------------------------------------
    system-image: 1.2.1-M0054-14.1a-perf
    kernel:       #1 SMP PREEMPT Mon Apr 18 20:36:27 UTC 2022 4.19.125
    --------------------------------------------------------------------------------
    hw version:   M0054
    --------------------------------------------------------------------------------
    voxl-suite:   0.7.0
    --------------------------------------------------------------------------------
    

    Here is my voxl-inspect-services

    root@qrb5165-rb5:/run/mpa# voxl-inspect-services 
     Service Name         |  Enabled  |   Running   |  CPU Usage
    ---------------------------------------------------------------
     docker-autorun       | Disabled  | Not Running |  
     docker-daemon        | Disabled  | Not Running |  
     modallink-relink     | Disabled  | Not Running |  
     voxl-camera-server   |  Enabled  |   Running   |    83.3
     voxl-cpu-monitor     |  Enabled  |   Running   |     0.0
     voxl-dfs-server      |  Enabled  |   Running   |   144.4
     voxl-imu-server      |  Enabled  |   Running   |     0.0
     voxl-mavlink-server  |  Enabled  |   Running   |     0.0
     voxl-modem           |  Enabled  | Not Running |  
     voxl-portal          |  Enabled  |   Running   |     0.0
     voxl-px4-imu-server  | Disabled  | Not Running |  
     voxl-px4             |  Enabled  |   Running   |     0.0
     voxl-qvio-server     |  Enabled  |   Running   |    44.4
     voxl-static-ip       | Disabled  | Not Running |  
     voxl-streamer        |  Enabled  |   Running   |    22.2
     voxl-tag-detector    | Disabled  | Not Running |  
     voxl-tflite-server   | Disabled  | Not Running |  
     voxl-time-sync       | Disabled  | Not Running |  
     voxl-vision-px4      |  Enabled  |   Running   |     0.0
     voxl-wait-for-fs     |  Enabled  |  Completed  |  
    

    Am I missing something to get Sentinel's VOA to run?

    Thanks!


  • Dev Team

    Hi,

    Sorry but that page seems to have been erroneously uploaded, it's completely wrong. For sentinel VOA you should follow the normal collision prevention with voxl-vision-px4 page.



  • @mkwan said in Sentinel VOA software not available:

    I have enabled voxl-dfs-server, and I can see correct point clouds from stereo_front_pc and stereo_rear_pc using voxl-portal. I can also see correct stereo_front_disparity and stereo_rear_disparity.

    I have set en_voa to true, and en_send_voa_to_qgc to true, and I can see OBSTACLE_DISTANCE messages in QGC but they are all 1001 when max_distance is 1000.

    Hi @Alex-Gardner, thanks for looking into this. Does this setup look correct? This should cover the steps listed in voxl-vision-px4.

    Do you think it is because the Sentinel has two stereo cams, ie stereo_front and stereo_rear, instead of a body->stereo_ tf?

    Is the voxl-version the Sentinel shipped with equipped to handle voa with multiple input streams? voxl-suite: 0.7.0

    voxl-inspect-extrinsics:

    #5:
        parent:                body
        child:                 stereo_front_l
        T_child_wrt_parent:    0.079  -0.040  -0.024 
        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 
    #6:
        parent:                body
        child:                 stereo_rear_l
        T_child_wrt_parent:   -0.030   0.040   0.042 
        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 
    #7:
        parent:                body
        child:                 tof
        T_child_wrt_parent:    0.078   0.000  -0.025 
        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 
    


  • tl;dr: No difference when renaming stereo_front to stereo

    As a test, I edited the config files to rename stereo_front to stereo:

    • voxl-camera-server.conf
    • extrinsics.conf
    • voxl-dfs-server.conf
    • /run/mpa/stereo_front

    Output of voxl-inspect-extrinsics:

    #5:
        parent:                body
        child:                 stereo
        T_child_wrt_parent:    0.079  -0.040  -0.024 
        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 
    

    I could see stereo_pc via voxl-portal populating successfully, but no change to voa_pc_out.

    Same output from voxl-vision-px4 as before:

    # voxl-vision-px4 -s
    detected platform NOT APQ8096
    loading our own config file
    =================================================================
    Parameters as loaded from config file:
    config file version:        1
    qgc_ip:                     192.168.168.101
    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
    en_vio:                     1
    en_voa:                     1
    en_send_vio_to_qgc:         1
    en_send_voa_to_qgc:         1
    voa_upper_bound_m:          -0.150000
    voa_lower_bound_m:          0.150000
    en_set_clock_from_gps:      1
    en_force_onboard_mav1_mode: 1
    en_reset_px4_on_error:      1
    qvio_auto_reset_quality:    0.000500
    horizon_cal_tolerance:      0.300000
    offboard_mode:              off
    follow_tag_id:              0
    figure_eight_move_home:     1
    en_tag_fixed_frame:         0
    fixed_frame_filter_len:     5
    en_transform_mavlink_pos_setpoints_from_fixed_frame:0
    =================================================================
    loading extrinsics config file
    starting geometry module
    starting px4 monitor
    starting px4 mavlink
    starting udp mavlink
    Adding manual QGC IP address to udp connection list: 192.168.168.101
    Added new UDP connection to 192.168.168.101
    starting fixed pose input
    starting vio manager
    starting tag manager
    starting voa manager
    starting control input pipe
    Init complete, entering main loop
    failed to send VOA data out uart to PX4 // note, this eventually does connect
    ...
    
    Connected to voxl-mavlink-server
    Detected PX4 Mavlink SYSID 1
    ...
    Connected to voxl-qvio-server
    updating to use imu: imu_apps
    done updating transforms to use imu: imu_apps
    ...
    index:  0  dist: none back
    index:  1  dist: none
    index:  2  dist: none
    index:  3  dist: none
    index:  4  dist: none
    index:  5  dist: none
    index:  6  dist: none
    index:  7  dist: none
    index:  8  dist: none
    index:  9  dist: none left
    index: 10  dist: none
    index: 11  dist: none
    index: 12  dist: none
    index: 13  dist: none
    index: 14  dist: none
    index: 15  dist: none
    index: 16  dist: none
    index: 17  dist: none
    index: 18  dist: none forward
    index: 19  dist: none
    index: 20  dist: none
    index: 21  dist: none
    index: 22  dist: none
    index: 23  dist: none
    index: 24  dist: none
    index: 25  dist: none
    index: 26  dist: none
    index: 27  dist: none right
    index: 28  dist: none
    index: 29  dist: none
    index: 30  dist: none
    index: 31  dist: none
    index: 32  dist: none
    index: 33  dist: none
    index: 34  dist: none
    index: 35  dist: none
    index: 36  dist: none
    
    index:  0  dist: none back
    index:  1  dist: none
    index:  2  dist: none
    index:  3  dist: none
    index:  4  dist: none
    index:  5  dist: none
    index:  6  dist: none
    index:  7  dist: none
    index:  8  dist: none
    index:  9  dist: none left
    index: 10  dist: none
    index: 11  dist: none
    index: 12  dist: none
    index: 13  dist: none
    index: 14  dist: none
    index: 15  dist: none
    index: 16  dist: none
    index: 17  dist: none
    index: 18  dist: none forward
    index: 19  dist: none
    index: 20  dist: none
    index: 21  dist: none
    index: 22  dist: none
    index: 23  dist: none
    index: 24  dist: none
    index: 25  dist: none
    index: 26  dist: none
    index: 27  dist: none right
    index: 28  dist: none
    index: 29  dist: none
    index: 30  dist: none
    index: 31  dist: none
    index: 32  dist: none
    index: 33  dist: none
    index: 34  dist: none
    index: 35  dist: none
    index: 36  dist: none
    

  • Dev Team

    Hi,

    I just tried this on a fresh flash of platform 1.3.1-0.8 and everything seems to be working as intended on my end. My process:

    1. Flash platform release (didn't wipe data directory so my camera calibration remained)
    2. ADB in and run voxl-configure-mpa -p -f sentinel enabling most of the necessary services and setting up the cam->board extrinsics
    3. Run voxl-configure-dfs factory_enable to enable dfs
    4. Run voxl-vision-px4 -s to see the voa debug. It takes ~1 second for the full dfs pipeline to wakeup but eventually I start seeing data like this:
    index:  0  dist: 0.84m back
    index:  1  dist: 0.89m
    index:  2  dist: 1.18m
    index:  3  dist: none
    index:  4  dist: none
    index:  5  dist: none
    index:  6  dist: none
    index:  7  dist: none
    index:  8  dist: none
    index:  9  dist: none left
    index: 10  dist: none
    index: 11  dist: none
    index: 12  dist: none
    index: 13  dist: none
    index: 14  dist: none
    index: 15  dist: 0.91m
    index: 16  dist: 0.75m
    index: 17  dist: 1.03m
    index: 18  dist: 1.17m forward
    index: 19  dist: 1.22m
    index: 20  dist: 1.22m
    index: 21  dist: 1.05m
    index: 22  dist: none
    index: 23  dist: none
    index: 24  dist: none
    index: 25  dist: none
    index: 26  dist: none
    index: 27  dist: none right
    index: 28  dist: none
    index: 29  dist: none
    index: 30  dist: none
    index: 31  dist: none
    index: 32  dist: none
    index: 33  dist: none
    index: 34  dist: 0.68m
    index: 35  dist: none
    index: 36  dist: 0.84m
    
    index:  0  dist: 0.84m back
    index:  1  dist: 0.89m
    index:  2  dist: 1.18m
    index:  3  dist: none
    index:  4  dist: none
    index:  5  dist: none
    index:  6  dist: none
    index:  7  dist: none
    index:  8  dist: none
    index:  9  dist: none left
    index: 10  dist: none
    index: 11  dist: none
    index: 12  dist: none
    index: 13  dist: none
    index: 14  dist: none
    index: 15  dist: 0.91m
    index: 16  dist: 0.75m
    index: 17  dist: 1.03m
    index: 18  dist: 1.17m forward
    index: 19  dist: 1.22m
    index: 20  dist: 1.22m
    index: 21  dist: 1.05m
    index: 22  dist: none
    index: 23  dist: none
    index: 24  dist: none
    index: 25  dist: none
    index: 26  dist: none
    index: 27  dist: none right
    index: 28  dist: none
    index: 29  dist: none
    index: 30  dist: none
    index: 31  dist: none
    index: 32  dist: none
    index: 33  dist: none
    index: 34  dist: 0.68m
    index: 35  dist: none
    index: 36  dist: 0.84m
    

    Can you give these steps a try and let me know if you're still seeing issues



  • @Alex-Gardner said in Sentinel VOA software not available:

    platform 1.3.1-0.8

    Yes, it worked! I am able to see correct data via voxl-vision-px4 -s and use PX4's Collision Prevention feature.

    The drone was shipped with system-image: 1.2.1-M0054-14.1a-perf and voxl-suite: 0.7.0, but after flashing to Voxl2 Platform 1.3.1-0.8, VOA worked out of the box as described. (Note: during the flashing, I noticed the Sentinel documentation does not list this newest release.)

    To others reading this, some tips:

    1. Use your /data folder to backup any files you don't want wiped, such as changes to /home/root.
    2. In QGroundControl, save your factory params so you don't have to recalibrate your sensors. (Parameters -> Tools -> Save to file...)
    3. Run and save apt list --installed in case there's some apt packages you don't want to forget.
    4. Don't forget to redo the parameters in QGroundControl as mentioned in the VOA documentation.

    Thanks, @Alex-Gardner!


Log in to reply