This document describes common problems and failures while using seabed slam.

The GUI is Blank

This occurs when the origin of the mission has been incorrectly set in the slam config file. Check the reported vehicle position, if the vehicle X and Y-axis positions are huge, this is probably the cause of the problem.

The blank screen occurs, since the GUI attempts to place the virtual camera so far away (such that all the data can be seen) that all the lines are beyond the OpenGL far clipping distance. This could probably be fixed by adaptively setting the far clipping rather than using a fixed threshold.

USBL Observations are Rejected

To add USBL observations to the filter, the latitude and longitude of the local navigation frame must be known. This should be obtained by a GPS fix before the vehicle dives, however it appears if no GPS is available, it uses the latitude and longitude in the estimator config file. If the USBL observation s fail at the beginning of the mission, but the innovations are consistent, this suggest the lat/long are incorrect. Modify the lat/long by adding the innovation of the USBL observations.

Look-up Table Warnings in overlap_probability_grid

This is not an error in itself, but it suggests that the filter may be in a bad state, with crazy correlations between poses. Check the filter initialisation.

std::alloc Failures

This occurs when the program runs out of memory. Make sure nothing else is running on the computer while processing large missions.

FIXME: We should check for exceptions when resizing the information vector, information matrix, Cholesky factor etc. and handle this better

Seabed SLAM Progresses Very Slowly While Processing Loop Closure Hypotheses

Loop closure hypothesis processing results are cached in a binary HDF5 file. Unfortunately when using version 1.6, opening a dataset (or testing to see if one exists) becomes very slow when a large number of datasets are present. For reasons I do not understand, this appears to only occur when an existing cache file is loaded (not when a new one is created). This problem does not exists in version 1.8, however it is not currently packaged by Debian/Ubuntu

Possible options: