# Sentinel VOA software not available

Source: https://forum.modalai.com/topic/1301/sentinel-voa-software-not-available
Category: Development Drones (https://forum.modalai.com/category/44/development-drones)
Tags: sentinel
Posted: 2022-09-06 20:11:42 UTC by mkwan
Replies: 5 · Views: 1846

## mkwan · 2022-09-06 20:11:42 UTC

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:
``` text
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:
``` text
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!

## Reply by Guest · 2022-09-07 21:43:40 UTC

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](https://docs.modalai.com/voxl-vision-px4-collision-prevention/).

## Reply by mkwan · 2022-09-08 14:53:01 UTC

@mkwan said in [Sentinel VOA software not available](/post/6127):

> 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](https://docs.modalai.com/voxl-vision-px4-collision-prevention/).

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 
```

## Reply by mkwan · 2022-09-08 15:46:08 UTC

**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
```

## Reply by Guest · 2022-09-12 19:14:01 UTC

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

## Reply by mkwan · 2022-09-15 20:10:21 UTC

@Alex-Gardner said in [Sentinel VOA software not available](/post/6216):
> 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](https://developer.modalai.com/asset/2), VOA worked out of the box as described. (Note: during the flashing, I noticed the Sentinel [documentation](https://docs.modalai.com/voxl2-platform-release/#releases) 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](https://docs.modalai.com/voxl-vision-px4-collision-prevention/).

Thanks, @Alex-Gardner!
