SLAMcore Visualiser

The SLAMcore Visualiser is a tool that provides a 3D interface for evaluating the behaviour of the visual-inertial tracking system in real time. It can be used to view:

  • A 3D plot of the trajectory.

  • A 3D plot of the features in the map.

  • Live state info of the camera position and velocity, tracking status and number of features in the map.

  • A camera feed with feature detection overlaid (picture-in-picture).

Usage

Live Camera

Plug in the camera to a USB 3 port on your computer.

From a terminal window, run:

$ slamcore_visualiser

Note

The software automatically detects the type of camera that is plugged in. In case multiple cameras of the same type are plugged in it will arbitrarily select one. If, on the other hand you have both RealSense D435i and Mynteye2 cameras connected, the Mynteye2 will have higher priority.

This behaviour is consistent across all the SLAM client applications (i.e. the SLAMcore Visualiser, the SLAMcore Dataset Recorder, the SLAMcore CLI, the SLAMcore ROS1 Wrapper and the SLAMcore ROS2 Wrapper).

See the Troubleshooting page to help diagnose common errors.

Dataset

The SLAMcore Visualiser supports processing from datasets. To start the Visualiser to process a dataset run the following command:

$ slamcore_visualiser dataset -u <path/to/dataset/>

SLAM, Localisation, Mapping and Odometry Mode

There are three main ways to run our system:

Mode

Description

SLAM

A sparse map is built on the go, without any prior knowledge about the environment.

Localisation

Use a sparse map previously created in SLAM mode.

Height Mapping

Build a height and occupancy map for autonomous navigation.

Odometry

Positioning without using a map. See SLAM Configuration for instructions on using this mode.

SLAM mode

By default, the system is configured to run in SLAM mode. To run in live SLAM mode just press the START button, and start moving the camera. An example of a SLAM run is shown in the image below.

_images/visualiser_running_slam.png

Fig. 1 SLAMcore Visualiser - Running SLAM

To generate a session map, click on the GENERATE button, select a location to save the session file, and press OK. Pressing GENERATE will automatically stop the SLAM system. A progress bar will be displayed informing you about the status of session generation and saving.

Warning

Depending on the size of the map as well as the length of the trajectory, generating a session can take several minutes.

_images/visualiser_progressbar_cropped.png

Fig. 2 SLAMcore Visualiser - Generating a session

Once the session has been written to disk, the application will display a pop-up with the path to the saved map, as in the figure below.

_images/visualiser_session_saved.png

Fig. 3 SLAMcore Visualiser - Session successfully saved

After saving a map, the SLAM run may be continued by clicking on the START button again.

Localisation mode

In localisation mode, our system uses a previously created map. To run in this mode, load a session file using the LOAD button and press START. The visualisation in the localisation mode differs from the one in SLAM mode. There are three main components as shown in the image below:

  • The loaded sparse map is displayed in grey;

  • temporary landmarks used for tracking not present in the loaded map are shown in red; and

  • landmarks that are currently recognised from the map are visualised in cyan.

_images/visualiser_running_multisession.png

Fig. 4 SLAMcore Visualiser - Relocalisation using preloaded map

Note

Pressing RESET will clear the map and configure the system to run in SLAM mode.

Height Mapping Mode

In height mapping mode, our system runs in SLAM mode but also generates a height map and an occupancy map which can be used in autonomous navigation.

Note

See the 2D Occupancy Mapping tutorial for a detailed walkthrough of the mapping feature.

To run in this mode, launch the Visualiser with the -m or --generate-map2d flag, with depth stream enabled:

$ slamcore_visualiser -m

Press the START button and move the camera around to begin mapping.

Hit the R key on the keyboard or select View and Show Right Sidebar to reveal visualisation options. Under the “2D Map” field is displayed, switch between “Height Map” and “Occupancy Map” to view the 2D/3D height map or the occupancy map.

_images/visualiser_mapping_height_map.png

Fig. 5 SLAMcore Visualiser - Height map built in mapping mode

_images/visualiser_mapping_occupancy_map.png

Fig. 6 SLAMcore Visualiser - Occupancy map built in mapping mode

To generate and save a session map, click on the GENERATE button, select a location to save the session file, and press OK.

Note

The 2D map visualised may not be representative of the final map produced as further optimisation is carried out during session generation.

The Application

_images/visualiser01.png

Fig. 7 SLAMcore Visualiser - User Interface

On the left is a panel which shows the instantaneous state of the system.

Below this are the controls to START, STOP and RESET the tracking, as well as buttons to GENERATE and LOAD a session.

To the right is the 3D view. Initially this only displays a grid to represent the ground plane and an origin gizmo. When the tracking is running the following are also visible:

  • The pose, displayed as three-dimensional axes.

  • The cameras, displayed as pyramids.

  • The trajectory, displayed as a yellow line.

  • The sparse map landmarks, displayed as points in the 3D space.

The visibility of these items can be toggled using the options under the Cog Button button and the Right Sidebar (hit the R key on the keyboard).

The visualisation perspective of the 3D view can be changed under the Orbit Button button.

_images/visualiser02.png

Fig. 8 SLAMcore Visualiser - 3D View Features

3D Camera Controls

To control the position and orientation of the 3D view in the application, use the mouse or trackpad.

The view can be rotated by holding down the left mouse button while hovering over the 3D window. Moving the mouse up and down will then tilt the view while a left/right movement will rotate the view around a point central to the window.

The view can be panned around in 3D space by holding down the right mouse button.

The view can be moved directly forwards and backwards by using the mouse wheel or the scroll region of the trackpad.

Command-Line Options

At start-up, the SLAMcore Visualiser accepts the following command-line options:

-h,--help

Print this help message and exit

--help-all

Expand all help

-v,--version

Display the version

-c,--config-file :FILE ...

Path to the configuration file(s)

-l,--load-session :FILE

Path to the session file to load

-m,--generate-map2d

Produce a new 2D map

Dataset Subcommand Options

The dataset subcommand allows dataset processing via the SLAMcore Visualiser tool.

-u,--euroc-dataset :DIR

Dataset reader path

--ts,--timescale FLOAT

Timescale for dataset reader, for real time processing set to 1.0

$ slamcore_visualiser dataset -u <path/to/dataset/>

RealSense Subcommand Options

The realsense subcommand specifies for the SLAMcore Visualiser to use the RealSense camera. It is optional to use but the following options only apply to RealSense cameras.

--dev,--device

Integer device index for multiple reader types

--color,--no-color{false}

Enable (1) or disable (0) the colour stream (Contact support@slamcore.com to enable this feature on your SLAMcore account.)

--depth,--no-depth{false}

Enable (1) or disable (0) the depth stream (See FAQs for detailed explanation)

--ir,--no-ir{false}

Enable (1) or disable (0) the infrared stream

--fps

Override reader’s FPS (See FAQs for options)

Mynteye2 Subcommand Options

The mynteye2 subcommand specifies for the SLAMcore Visualiser to use the Mynteye2 camera. It is optional to use but the following options only apply to Mynteye2 cameras.

--dev,--device

Integer device index for multiple reader types

--fps

Override reader’s FPS (See FAQs for options)