You’re reading an older version of the Slamcore SDK documenation. The latest one is 23.01.

Troubleshooting

Camera Issues

IR bleed in images
_images/ir_bleed_example.png

Fig. 2 Consecutive images in a sequence showing the projection of an IR pattern

When the depth sensor is in use, it projects an IR pattern on alternate frames (see left image). The pattern causes feature detection to perform poorly so SLAMcore runs on an “interleaved mode” and uses only alternate images without the IR pattern projection.

However, in some scenes the IR may bleed to the next frame depending on the exposure time and the textures in the scene (see right image: IR bleed on the black texture). To mitigate the IR bleed, configure the Base.Readers.Property.AutoExposureLimit parameter as described in Feature-Specific Presets.

No RealSense device found
No RealSense device found. Is your device plugged in?

Error querying the camera serial number (No such device)

Cause

If the camera is plugged in there might be a problem with the installation of the RealSense SDK caused by secure boot BIOS settings.

Solution

If the camera is connected when you get the error, you can confirm the issue by running the following command

$ rs-enumerate-devices | grep Physical

If the device is correctly installed then you should see a response similar to

Physical Port                 :         /sys/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/0000:04:02.0/0000:39:00.0/usb4/4-2/4-2.2/4-2.2.3/4-2.2.3:1.0/video4linux/video4

There is a problem if the output looks similar to

Physical Port                 :         2-1-2

In that case you will need to remove the installation with following process. You can remove old RealSense DKMS installations by running the following command

$ dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge

You can remove kernel modules installed from source by running

$ cd /path/to/librealsense
$ ./scripts/patch-realsense-ubuntu-lts.sh reset

Once you have done that you will need to disable secure boot in your BIOS settings and reinstall the RealSense SDK by following the instructions in Setting up a camera. Alternatively, use a machine that does not have secure boot enable.

Could not find metadata for sensor
Metadata error:

Could not find metadata for sensor
Intel RealSense SDK 2.0 may not be correctly installed.

Cause

Intel RealSense SDK 2.0 is not correctly installed. This may occur even when RealSense Viewer appears to be running correctly.

Solution

If you have not installed Intel RealSense SDK 2.0 previously on your computer then follow these instructions in Setting up a camera.

If you have installed previously then it is best to ensure old versions are removed before installing a new one. You can remove old RealSense DKMS installations by running the following command

$ dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge

You can remove kernel modules installed from source by running

$ cd /path/to/librealsense
$ ./scripts/patch-realsense-ubuntu-lts.sh reset

Once you have done either one or both of the above steps then that you should follow the instruction for installation Setting up a camera.

No camera configuration data, make sure to register your device!
Failed to receive camera config: No error (0) | HTTP Response: 403
Receive Buffer:

    {"detail":"You do not have permission to perform this action."}

No camera configuration data, make sure to register your device!

Cause

The camera being used isn’t registered to the user’s account.

Solution

Register the camera on your SLAMcore account with instructions in Register Camera.

A subcommand is required
Auto-detecting your camera...
A subcommand is required

Cause

The camera could not be detected.

Solution

Ensure the camera is plugged in.

RealSense camera over USB <version> not supported
Realsense camera over USB 2.1.0.0 not supported. Minimum supported 3.0.0.0
Error querying the camera serial number (Operation not supported)
Error querying the camera device

Cause

The camera is connected using a non USB3-capable port and/or a non USB3-capable cable.

Solution

Connect the camera using USB3.0 hardware.

Unsupported D435i/D455 camera firmware
D435i/D455 camera firmware 5.11.1.100 not supported. Please install one of
the supported firmware versions: { 5.12.3.0, 5.12.6.0, 5.12.7.100, 5.12.8.200, 5.12.11.0 }
Error querying the camera serial number (Operation not supported)

Cause

Firmware version on the connected D435i/D455 is not supported.

Solution

Update the camera firmware to one of the supported versions. Versions 5.12.3.0 - 5.12.15.50 are supported. Please see instructions in Setting up a camera.

Error failed to open scan_element
15/04 14:07:37,618 ERROR [140332946140864] (types.h:307) Failed to open scan_element /sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3:1.5/0003:8086:0B3A.000E/HID-SENSOR-200076.2.auto/iio:device1/scan_elements/in_anglvel_x_en Last Error: Permission denied
15/04 14:07:37,619 ERROR [140332946140864] (backend-hid.cpp:969) Hid device is busy!
Backend rs2_open_multiple sensor:0x556d637b97e0, profiles:0x556d637f3f98, count:2
Error querying the camera serial number (Input/output error)
Error querying the camera device

Cause

User does not have permissions to access scan_element.

Solution

Install the librealsense2 udev rules with instructions in Setting up a camera.

Failed to receive data from D435i/D455 sensor stream
Failed to parse command-line, try to guess camera vendor
No 'odometry_params' section was detected. Skipping this...
Failed to receive data from D435i sensor stream Depth.0
Failed to receive data from D435i sensor stream Infrared.0
Failed to receive data from D435i sensor stream Infrared.1

Cause

One or more of the expected data streams from the RealSense camera failed to open.

Solution

This is an intermittent error on the RealSense cameras. Advice is to:

  • Install the librealsense2 udev rules with instructions in Setting up a camera.

  • Disconnect and re-connect the RealSense camera.

SLAM Issues

Dropped frames during SLAM execution

There are two probable causes for our SLAM software to drop incoming frames/measurements during its execution.

Cause 1: High CPU Load

If the SLAM process is not allocated enough time to process all incoming measurements it will start skipping old measurements for the sake of keeping up with the newer ones. This may happen because:

  • There are other unrelated CPU-intensive tasks running alongside SLAM.

  • A loop closure event (normally running in the background) is taking up too much CPU time. This may often be the case when operating in large-scale environments.

  • The SLAM configuration parameters are not appropriate for the platform SLAM is running on.

  • The CPU clock frequency is reduced at the system level. This could occur due to overheating.

In this case you should be seeing warnings like the following while running:

Frames dropped because of insufficient processing resources.
Frequent dropping of frames can lead to lower accuracy and robustness.

Solution

  • Reduce the overall CPU load, e.g. by shutting down any redundant processes.

  • Tweak the SLAM configuration so that SLAM uses less CPU time (e.g. reduce the NumKeypoints or TimeBudget)

  • Make sure that the hardware is not overheating.

Cause 2: Problems related to timing of incoming sensor measurements

There is an issue with the associated timestamps of the measurements used for SLAM (that may be visual-inertial measurements, wheel odometry measurements etc.).

To ensure the accuracy and minimise the latency of SLAM results (e.g. estimated pose), we have set strict restrictions with regards to the timestamps of the incoming measurement streams. If these requirements are somehow not met, you should be seeing warnings like the following while running:

Frames dropped because of timing problems with sensor data.
Known causes include high sensor latency and incorrectly aligned timestamps from different sensors.

Solution

You should pay extra care in configuring the timestamps of the incoming measurements.

  • If integrating wheel-odometry, you should ensure that the wheel-odometry measurements are produced and fed to the SLAM at a constant rate as suggested in the Wheel Odometry Integration Tutorial.

  • If integrating wheel-odometry and you are capturing the odometry measurements in a machine different than the one you are running SLAM, then the system clocks of these two machines should be synchronised so that their measurements are in the same timeline and avoid potential clock drift. If feasible, use a reliable and fast medium for connecting the machines (e.g. Gigabit ethernet link) - avoid using WiFi.

    You could use an NTP client program like chrony to ensure the clocks synchronisation.

Connection Issues

Not authorized to run on this system
Failed to start session: Timeout was reached (28) | HTTP Response: 0
Not authorized to run on this system

Cause

Unable to connect to SLAMcore.

Solution

Check that your internet connection is stable and try running the software a couple of times. If the issue persists, check that the proxy server your system uses does not block SLAMcore’s site (if applicable).

Contact SLAMcore at support@slamcore.com with the full output log from running this command:

$ curl -L -v 'http://portal.slamcore.com/session/start'

Software Dependencies

glfw error: failed to create OpenGL window
glfw error: Requested OpenGL version <number>, got version <number> (code 65543).
Uncaught std::exception! Failed to create OpenGL window.

Solution

Overwrite OpenGL version by running the following:

$ export MESA_GL_VERSION_OVERRIDE=4.3

Dataset Recording Issues

Failed to reserve padding space
Failed to reserve padding space.
Failed to start recording dataset: Input/output error

Cause

The file system type of the selected output directory does not support the fallocate operation, for example if the system drive is formatted to NTFS.

Solution

Select a different location to write the dataset. Alternatively, reformat the intended partition to use a file system that does support fallocate, such as ext4.

Target disk might be too slow
Cannot write all the data, your target disk might be too slow. Your dataset will be incomplete

Cause

There are various causes for this; sometimes the disk does not have the required write speed, or the disk is formatted in an unsupported type.

Solution

We recommend using a disk formatted to ext4.

If you still get the warning, use the fio tool to test the estimated speed and ensure it is above the requirements for Recording Datasets.

To install fio:

$ sudo apt install fio

To test the write speed to your disk:

$ cd /path/to/disk/for/dataset && fio --name TEST --eta-newline=5s \
>   --filename=fio-tempfile.dat --rw=write --size=500m --io_size=10g \
>   --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 \
>   --direct=1 --numjobs=1 --runtime=60 --group_reporting

ROS Issues

Some packages could not be installed

The following error:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies.
    ros-melodic-slamcore-ros : Depends: ros-melodic-desktop but it is not installable
                            Depends: ros-melodic-tf2-geometry-msgs but it is not installable

Cause

Indicates that ROS Melodic packages are not available through apt.

Solution

Please see the SLAMcore ROS1 Wrapper page for how to setup ROS Melodic.

Permission denied with ROS dataset recorder
$ roslaunch slamcore_slam run_dataset_recorder.launch output-dir:=/home/<user>/<output-directory>

    ... Last Error: Permission denied

Cause

Jetson kits flashed with the default L4T release may require superuser permissions to run the SLAMcore ROS dataset recorder.

Solution

Run with superuser permissions:

$ sudo su
root# source /opt/ros/melodic/setup.bash
root# roslaunch slamcore_slam run_dataset_recorder.launch output_dir:=/home/<user>/<output-directory>
rqt fails to launch
ValueError: bottom cannot be >= top

Cause

This is an issue with the matplotlib version used by our rqt configuration.

Solution

Upgrade matplotlib to a version such as 2.2.5:

$ sudo pip install --upgrade matplotlib