# Cannot run voxl-mapper: ERROR fetching tf from tf ringbuffer there wasn't sufficient data in the buffer

Source: https://forum.modalai.com/topic/1230/cannot-run-voxl-mapper-error-fetching-tf-from-tf-ringbuffer-there-wasn-t-sufficient-data-in-the-buffer
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2022-08-23 07:17:32 UTC by ahmed-mustahid
Replies: 4 · Views: 1856

## ahmed-mustahid · 2022-08-23 07:17:32 UTC

I have been getting the following error when starting voxl-mapper in the terminal, even though as per the [instructions](https://gitlab.com/voxl-public/voxl-sdk/services/voxl-mapper/-/blob/master/README.md), all the services (voxl-vision-px4, voxl-qvio-server, voxl-camera-server) are running.
I wonder what might have been the problem in this case. 

```
root@apq8096:~# voxl-mapper 
Loading our own config file
Loading extrinsics config file
Trying to init tsdf server
created tsdf server
waiting for server at /run/mpa/vvpx4_body_wrt_fixed/
waiting for server at /run/mpa/tof
Initializing ESDF structs
Connected to VIO server
Connected to depth pipe
ERROR fetching tf from tf ringbuffer
there wasn't sufficient data in the buffer
ERROR fetching tf from tf ringbuffer
there wasn't sufficient data in the buffer
ERROR fetching tf from tf ringbuffer
there wasn't sufficient data in the buffer

```

```
root@apq8096:~# 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   |    33.2
 voxl-cpu-monitor     |  Enabled  |   Running   |     0.0
 voxl-dfs-server      |  Enabled  |   Running   |     2.5
 voxl-imu-server      |  Enabled  |   Running   |     0.0
 voxl-mavlink-server  |  Enabled  |   Running   |     0.0
 voxl-modem           | Disabled  | Not Running |  
 voxl-portal          |  Enabled  |   Running   |     2.5
 voxl-qvio-server     |  Enabled  |   Running   |    10.2
 voxl-streamer        | Disabled  | Not Running |  
 voxl-tag-detector    | Disabled  | Not Running |  
 voxl-tflite-server   | Disabled  | Not Running |  
 voxl-time-sync       | Disabled  | Not Running |  
 voxl-vision-px4      |  Enabled  |   Running   |     2.5
 voxl-wait-for-fs     |  Enabled  |  Completed  |  
```

/etc/modalai/voxl-mapper.conf
```
{
	"tof_pipe":	"/run/mpa/tof",
	"tof_enable":	true,
	"tof_rate":	10,
	"depth_pipe_0":	"/run/mpa/dfs_point_cloud",
	"depth_pipe_0_enable":	false,
	"extrinsics0_name":	"stereo_l",
	"depth0_rate":	10,
	"depth_pipe_1":	"/run/mpa/stereo_front_pc",
	"depth_pipe_1_enable":	false,
	"extrinsics1_name":	"stereo_front_l",
	"depth1_rate":	10,
	"depth_pipe_2":	"/run/mpa/stereo_rear_pc",
	"depth_pipe_2_enable":	false,
	"extrinsics2_name":	"stereo_rear_l",
	"depth2_rate":	10,
	"depth_pipe_3":	"/run/mpa/dfs_point_cloud",
	"depth_pipe_3_enable":	false,
	"extrinsics3_name":	"stereo_l",
	"depth3_rate":	10,
	"robot_radius":	0.3,
	"voxel_size":	0.20000000298023224,
	"voxels_per_side":	16,
	"esdf_save_path":	"/data/voxl_mapper/esdf_map",
	"tsdf_save_path":	"/data/voxl_mapper/tsdf_map",
	"mesh_save_path":	"/data/voxl_mapper/mesh.ply",
	"esdf_max_distance":	4,
	"esdf_min_distance":	0.10000000149011612,
	"esdf_default_distance":	2,
	"esdf_inner_sphere_radius":	0.20000000298023224,
	"esdf_outer_sphere_radius":	0.600000023841858,
	"rrt_min_distance":	0.2,
	"rrt_max_runtime_nanoseconds":	1000000000,
	"rrt_use_first_solution":	false,
	"rrt_treat_unknown_as_occupied":	true,
	"rrt_send_tree":	false,
	"loco_num_segments":	10,
	"loco_derivative_to_optimize":	3,
	"loco_poly_degree":	10,
	"loco_smoothness_cost_weight":	2.5,
	"loco_collision_cost_weight":	14,
	"loco_waypoint_cost_weight":	0,
	"loco_min_collision_sampling_dist":	0.05,
	"loco_add_waypoints":	true,
	"loco_scale_time":	true,
	"loco_split_at_collisions":	true,
	"loco_resample_trajectory":	true,
	"loco_verbose":	false
}
```

## Reply by Arjun Jain · 2022-08-23 13:13:37 UTC

Hi @ahmed-mustahid : I am no expert, but I too get that warning sometimes but the voxl-mapper still works and generates a valid scene. I thought it is just when the camera is blocked or it doesn't have enough features or something like that it displays that warning. I am also curious to learn from the voxl team what this warning means.

## Reply by Guest · 2022-08-23 16:55:26 UTC

Hi,
Typically that error presents itself when we do not have a pose from the qvio server. If you block the tracking camera or qvio server loses tracking that error will occur.

## Reply by jamiek · 2022-08-29 21:06:08 UTC (in reply to Guest)

@Matthew-Booker Hi Matthew, can you clarify on this? I'm also having this problem, even with the tracking camera not blocked (and all of ahmeds aforementioned pre-reqs). 

Will the error result in no map at all being generated? (Thats where I'm at :cry:  ) or will it generate regardless?

How can I monitor whether the qvio server loses tracking or does not have a pose?

![Voxl-Mapper Question.png](https://forum.modalai.com/assets/uploads/files/1661807122238-voxl-mapper-question-resized.png) 

Is all I'm getting from the mapper.

Best,
Jamie

## Reply by Guest · 2022-08-29 21:49:13 UTC

Hey @jamiek,

If this error occurs, it will result in no map generation at the time of error. This is because we need to grab a pose from our  ringbuffer (at the timestamp of our pointcloud) in order to insert each pointcloud correctly into the map. 

This is caused by either voxl-qvio-server or voxl-vision-px4 not properly publishing a pose estimate.

You can monitor the output of voxl-qvio-server using ```voxl-inspect-qvio``` on voxl or viewing the qvio overlay in voxl-portal. If everything looks good there and qvio is properly publishing pose info, the next place to check is voxl-vision-px4. 

This error  means that we are not receiving a fixed pose data out of voxl-vision-px4, so once you have verified qvio is not reporting any error codes, monitor the output of  ```voxl-inspect-pose -f``` on voxl and make sure that you are receiving pose data.
