# CP with custom sensors

Source: https://forum.modalai.com/topic/3853/cp-with-custom-sensors
Category: VOXL SDK and Software (https://forum.modalai.com/category/47/voxl-sdk-and-software)
Tags: mpa
Posted: 2024-10-08 13:30:57 UTC by giladWDS
Replies: 2 · Views: 2327

## giladWDS · 2024-10-08 13:30:57 UTC

Hi, 
I want to integrate collision prevention into my system.
currently, I have a microcontroller that manages all the sensor data and is connected to the voxl2 through serial.
now I debate two ways to implement this and I don't know that is the best approach.
1. using mavlink directly to px4. I saw that the px4 exposes a UDP port to send mavlink msgs directly to px4. this feels sub-optimal as this bypasses the integrated VOA system and the voxel-vision-hub. 
2. make a pipe client and transform the data from the serial port to some kind of TOF sensor and publish it.
Is the second option the way to go or is the first option viable as well?
Furthermore, I don't see all the voxl-vision-hub pipes: 
```
voxl2:~$ voxl-list-pipes -t
camera_image_metadata_t
	hires_large_color
	hires_large_encoded
	hires_large_grey
	hires_small_color
	hires_small_encoded
	hires_small_grey
	hires_snapshot

cpu_stats_t
	cpu_monitor

imu_data_t
	imu_apps

imu_fft_data_t
	imu_apps_fft

mavlink_message_t
	mavlink_ap_heartbeat
	mavlink_attitude
	mavlink_from_gcs
	mavlink_gps_raw_int
	mavlink_local_position_ned
	mavlink_onboard
	mavlink_sys_status
	mavlink_to_gcs

point_cloud_metadata_t
	voa_pc_out

pose_vel_6dof_t
	vvhub_body_wrt_fixed
	vvhub_body_wrt_local

string
	gcs_ip_list

text
	horizon_cal_io
```
Is this presenting all server pipes that have clients?

## Reply by James Strawson (ModalAI staff) · 2024-10-08 22:22:44 UTC

@giladWDS 

it looks like very few services are running. If you run voxl-inspect-services you can see what's enabled. You will want to enable voxl-vision-hub, voxl-mavlink-server and voxl-px4

What kind of sensors and data are you dealing with? voxl-vision-hub can subscribe to rangefinder, generic points clouds, and tof data. Since all the logic for compensating for roll/pitch to level out the point cloud data then slice the data into pie-slices to send to PX4 is done already in voxl-vision-hub I would suggest leveraging this. I think the most simple solution would be option 2 and then edit the voxl-vision-hub config file to point to your new server's pipe.

## Reply by giladWDS · 2024-10-09 15:36:07 UTC (in reply to James Strawson)

@James-Strawson 
Thank you for the response.
we want to use an array of 4 vl53l**5**cx sensors to capture data around the drone. I know that there is existing support for vl53l**1**cx  sensors. since it is crucial to know of possible obstacles from multiple angles we need the 4x4 version.
in this case, I have a point cloud of 64 points around the drone.  so should I send those on the pointcloud pipe? 

for the few services:
this is the service inspect output:
```
 Service Name             |  Enabled  |   Running   |  CPU Usage
-------------------------------------------------------------------
 docker-autorun           |  Enabled  | Not Running |  
 modallink-relink         | Disabled  | Not Running |  
 voxl-camera-server       |  Enabled  |   Running   |     2.2%
 voxl-cpu-monitor         |  Enabled  |   Running   |     0.6%
 voxl-dfs-server          | Disabled  | Not Running |  
 voxl-feature-tracker     | Disabled  | Not Running |  
 voxl-flow-server         | Disabled  | Not Running |  
 voxl-imu-server          |  Enabled  |   Running   |     0.1%
 voxl-lepton-server       | Disabled  | Not Running |  
 voxl-mavcam-manager      | Disabled  | Not Running |  
 voxl-mavlink-server      |  Enabled  |   Running   |     2.9%
 voxl-modem               | Disabled  | Not Running |  
 voxl-neopixel-manager    | Disabled  | Not Running |  
 voxl-open-vins-server    | Disabled  | Not Running |  
 voxl-portal              |  Enabled  |   Running   |     0.1%
 voxl-px4-imu-server      | Disabled  | Not Running |  
 voxl-px4                 |  Enabled  |   Running   |    30.5%
 voxl-qvio-server         | Disabled  | Not Running |  
 voxl-rangefinder-server  | Disabled  | Not Running |  
 voxl-remote-id           | Disabled  | Not Running |  
 voxl-softap              | Disabled  | Not Running |  
 voxl-static-ip           | Disabled  | Not Running |  
 voxl-streamer            | Disabled  | Not Running |  
 voxl-tag-detector        | Disabled  | Not Running |  
 voxl-tflite-server       | Disabled  | Not Running |  
 voxl-time-sync           | Disabled  | Not Running |  
 voxl-uvc-server          | Disabled  | Not Running |  
 voxl-vision-hub          |  Enabled  |   Running   |     1.7%
 voxl-wait-for-fs         |  Enabled  |  Completed  |  
```
