Release Notes

Version 23.01

7/03/2023

  • slamcore-tools v23.01.48

  • slamcore-tools-jetson v23.01.48

  • slamcore-dev v23.01.48

  • slamcore-dev-jetson v23.01.48

  • ros-melodic-slamcore-ros v23.01.13

  • ros-melodic-slamcore-ros-jetson v23.01.13

  • ros-melodic-slamcore-viz v23.01.13

  • ros-foxy-slamcore-ros v23.01.13

  • ros-galactic-slamcore-ros v23.01.13

New

Slamcore’s new look

The GUI tools have been updated to reflect Slamcore’s new visual branding.

Simultaneous SLAM and recording

The new version of the software allows users to capture a dataset while running SLAM. This allows much more rapid development, evaluation and debugging.

Python API

We are pleased to be able to offer a Python API alongside the existing C++ API for faster prototyping and integration. Please see the Python API documentation for details.

NVIDIA JetPack 5 and ROS 2 Galactic

The slamcore-tools and slamcore-dev packages are now available for JetPack 5. The new ros-galactic-slamcore-ros package provides integration with ROS 2 Galactic on x86_64 and arm64 platforms.

SAFE_V2 Feature Extractor

This version introduces the SAFE_V2 feature extractor which is much faster and more power-efficient especially on low-power platforms while maintaining comparable accuracy. Please see the frontend parameters section for how to enable it in your integration.

Experimental OAK-D S2 Support

All Slamcore software now experimentally supports the Luxonis OAK-D S2 FF camera. Please see the section on setting up an OAK-D for instructions.

Breaking Changes

Please be aware of the following changes and incompatibilities with previous versions.

  • Session files from earlier versions are no longer compatible. New session files will need to be generated from mapping datasets where available.

  • JSON configurations from earlier versions may be incompatible. The slamcore-tools package contains a utility to migrate these for use with the current release. For more information, see Migrating from Earlier API Versions.

  • The ros-foxy-slamcore-ros and ros-galactic-slamcore-ros packages have a new dependency on the slamcore-dev package. Please ensure you install both the ROS package and slamcore-dev from the same release.

  • The ROS 2 world_frame parameter/launch argument has been renamed to map_frame.

  • The “Tracking Status” no longer reports Relocalisation or Loop Closure events. These are now part of a “SLAM Events” stream in the C++ API or ROS topic. See Tracking Information for more details.

Version 21.06.3

30/09/2022

  • slamcore-tools v21.06.85

  • slamcore-tools-jetson v21.06.85

  • slamcore-dev v21.06.85

  • slamcore-dev-jetson v21.06.85

  • ros-melodic-slamcore-ros v21.06.24

  • ros-melodic-slamcore-ros-jetson v21.06.24

  • ros-melodic-slamcore-viz v21.06.24

  • ros-foxy-slamcore-ros v21.06.24

Improved

More resilient configuration fetching

Added longer network timeout and retries to support users on potentially lossy networks.

Version 21.06.2

02/08/2022

  • ros-foxy-slamcore-ros v21.06.22

Fixed

ROS 2 Foxy launch file TypeError

Updated launch files to avoid ROS 2 from interpreting empty strings as NoneType.

Version 21.06.1

07/07/2022

  • slamcore-tools v21.06.81

  • slamcore-tools-jetson v21.06.81

  • slamcore-dev v21.06.81

  • slamcore-dev-jetson v21.06.81

  • ros-melodic-slamcore-ros v21.06.22

  • ros-melodic-slamcore-ros-jetson v21.06.22

  • ros-melodic-slamcore-viz v21.06.22

  • ros-foxy-slamcore-ros v21.06.21

New

Image access via C++ API

Added ConstImageView class to C++ API.

Improved

SLAM and Visual-Inertial Odometry memory usage

This version greatly improves memory requirements during operation in all tracking modes.

Version 21.06

08/12/2021

  • slamcore-tools v21.06.72

  • slamcore-tools-jetson v21.06.72

  • slamcore-dev v21.06.72

  • slamcore-dev-jetson v21.06.72

  • ros-melodic-slamcore-ros v21.06.21

  • ros-melodic-slamcore-ros-jetson v21.06.21

  • ros-melodic-slamcore-viz v21.06.21

  • ros-foxy-slamcore-ros v21.06.19

New

Extended functionality in the C++ API

Users can now configure, access and use height mapping, wheel odometry support and local point cloud functionality directly from the C++ API. Also, with TrajectorySubsystem users can now export trajectories directly from the C++ API.

Additional system configuration and presets

This release provides additional settings and presets that allows users more control of the SLAM configuration as well as RealSense camera settings. This includes the ability to set feature extraction ROI, camera auto-exposure settings and RealSense depth presets.

Support for OpenLORIS and TUM VI datasets

Slamcore Visualiser and Slamcore Dataset Processor can now be run on the OpenLORIS and TUM-VI datasets.

Dataset compression tool

To reduce the size of datasets, a new tool for compressing datasets has been introduced.

Improved

Slamcore Tools improvements

There have been several improvement to the Slamcore Visualiser, including the ability to export trajectories, display current frame rate, processing time as well as camera orientation in the Euler angles. Users can also visualise the depth point cloud and enable camera “Chase mode”.

Slamcore Dataset Processor provides more detailed feedback.

Support for ground robots

A new, more robust method for estimating the main plane of motion for mobile ground robots has been introduced.

Multisession performance

Performance in multisession mode is improved by enabling loop closure support.

ROS 2

Publish local point cloud in ROS 2.

Access to RealSense camera streams

Users can now enable and access all the RealSense camera streams, including color.

Fixed

Smooth pose in ROS1 and ROS 2

With this release, we are now publishing the smooth pose to /slamcore/odom topic, thus making our ROS1 & ROS 2 wrapper compatible with ROS navigation stack convention.

Version 21.05.3

12/10/2021

  • slamcore-tools v21.05.41

  • slamcore-tools-jetson v21.05.41

  • slamcore-dev v21.05.41

  • slamcore-dev-jetson v21.05.41

  • ros-melodic-slamcore-ros v21.05.10

  • ros-melodic-slamcore-ros-jetson v21.05.10

  • ros-melodic-slamcore-viz v21.05.10

  • ros-foxy-slamcore-ros v21.05.20

Improved

Handling of unreliable data

This minor release improves resilience to inconsistent wheel odometry data.

Multisession performance

Performance in Multisession mode is also improved through more efficient access to keyframes.

Version 21.05.2

17/09/2021

  • slamcore-tools v21.05.37

  • slamcore-tools-jetson v21.05.37

  • slamcore-dev v21.05.37

  • slamcore-dev-jetson v21.05.37

  • ros-melodic-slamcore-ros v21.05.9

  • ros-melodic-slamcore-ros-jetson v21.05.9

  • ros-melodic-slamcore-viz v21.05.9

  • ros-foxy-slamcore-ros v21.05.19

Improved

Multisession Performance

This minor release improves the implementation of multisession for better performance and improves the likelihood of relocalisation.

Updated Intel RealSense Camera Support

Added support for RealSense cameras that do not offer a 250Hz accelerometer stream.

Fixed

ROS Dataset Recorder Killed Before Completion

In previous versions of the Slamcore ROS Wrapper when the dataset recorder was stopped using a SIGINT, it was possible that the process of finalising dataset writing would exceed the shutdown time limit of the monitoring roslaunch process. This causes roslaunch to escalate to a SIGTERM which will terminate the dataset recorder process and results in a corrupt dataset.

The finalisation step has been removed in this version for all dataset recording tools.

Version 21.05.1

18/08/2021

  • slamcore-tools v21.05.30

  • slamcore-tools-jetson v21.05.30

  • slamcore-dev v21.05.30

  • slamcore-dev-jetson v21.05.30

  • ros-melodic-slamcore-ros v21.05.8

  • ros-melodic-slamcore-ros-jetson v21.05.8

  • ros-melodic-slamcore-viz v21.05.8

  • ros-foxy-slamcore-ros v21.05.18

Improved

Multisession

This minor release improves the implementation of multisession to produce better trajectories with less jitter.

Version 21.05

12/08/2021

  • slamcore-tools v21.05.27

  • slamcore-tools-jetson v21.05.27

  • slamcore-dev v21.05.27

  • slamcore-dev-jetson v21.05.27

  • ros-melodic-slamcore-ros v21.05.7

  • ros-melodic-slamcore-ros-jetson v21.05.7

  • ros-melodic-slamcore-viz v21.05.7

  • ros-foxy-slamcore-ros v21.05.17

New

Ubuntu 20.04 packages

The slamcore-tools and slamcore-dev packages are now available for Ubuntu 20.04 (Focal Fossa) on x86_64.

ROS 2 (Foxy) packages

A new ros-foxy-slamcore-ros package is available for Ubuntu 20.04 on both x86_64 and arm64 platforms. If using a NVIDIA Jetson platform, please see the Slamcore ROS 2 Docker example repository for how to run the ROS 2 package in a container.

Improved

Performance and Loop Closure

This release includes major performance improvements for all use-cases as well as improvements to loop detection, increasing the probability of successful loop closure.

Version 21.04.1

23/06/2021

  • slamcore-tools v21.04.44

  • slamcore-tools-jetson v21.04.44

  • slamcore-dev v21.04.44

  • slamcore-dev-jetson v21.04.44

  • ros-melodic-slamcore-ros v21.04.16

  • ros-melodic-slamcore-ros-jetson v21.04.16

  • ros-melodic-slamcore-viz v21.04.16

Improved

Configurable Wheel Odometry Parameters

This minor release allows finer control of wheel odometry parameters.

Version 21.04

10/06/2021

  • slamcore-tools v21.04.43

  • slamcore-tools-jetson v21.04.43

  • slamcore-dev v21.04.43

  • slamcore-dev-jetson v21.04.43

  • ros-melodic-slamcore-ros v21.04.15

  • ros-melodic-slamcore-ros-jetson v21.04.15

  • ros-melodic-slamcore-viz v21.04.15

New

C++ API

Users can now download the slamcore-dev and slamcore-dev-jetson packages which contain headers, a shared library and example code to build applications using Slamcore software.

The API supports the RealSense cameras and operates in SLAM, visual odometry or Multisession modes.

Please see the C++ API for more details.

Wider NVIDIA Jetson support

Slamcore packages can now be used on NVIDIA Jetson Xavier AGX as well as the previously supported NVIDIA Jetson Xavier NX.

Improved

Memory usage and performance

Memory usage and speed in session save have both been improved in this release, especially on large sessions.

Visualiser Streams

The Slamcore Visualiser has been enhanced to show multiple image streams with the 3D position and map view. Additionally, a first-person “AR” view is also available.

ROS Improvements

In the Slamcore ROS Wrapper, all topics and service names are now snake_case.

Fixed

In previous versions the --fps command-line flag was not usable. The issue has been resolved in this release.

Version 21.03

13/04/2021

  • slamcore-tools v21.03.34

  • slamcore-tools-jetsonnx v21.03.34

  • ros-melodic-slamcore-ros v21.03.15

  • ros-melodic-slamcore-ros-jetsonnx v21.03.15

  • ros-melodic-slamcore-viz v21.03.15

New

Mapping

The Slamcore Visualiser and Slamcore ROS Wrapper both now support generating height maps when using RealSense Depth cameras. These height maps can be converted to occupancy maps and tuned by hand using the new Slamcore Session Explorer tool.

When running in Multisession Relocalisation mode, the Slamcore Visualiser and Slamcore ROS Wrapper will display the map saved in the session file and the sensor’s pose relative to it.

Intel RealSense D455 Support

All the Slamcore software now supports the Intel RealSense D455 on x86 platforms.

Improved

ROS Improvements

The Slamcore ROS Wrapper has been improved in a number of ways including now publishing a /slamcore/odom topic which provides pose, angular velocity and twist of the sensor without discontinuous jumps due to loop closure and relocalisation.

Additionally, the Slamcore ROS Wrapper now allows users to use the RGB stream. Please contact Slamcore to enable this feature.

Fixed

In previous versions of the Slamcore ROS Wrapper it was not possible to enable the depth stream when running on the NVIDIA Jetson Xavier NX. The issue has been resolved in this release.

Version 21.02.1

10/03/2021

  • slamcore-position v21.02.12

  • slamcore-position-jetsonnx v21.02.12

  • ros-melodic-slamcore-ros v21.02.10

  • ros-melodic-slamcore-ros-jetsonnx v21.02.10

  • ros-melodic-slamcore-viz v21.02.10

Improved

Session save memory usage

Session save and map optimisation memory usage has been significantly improved.

Version 21.02

05/03/2021

  • slamcore-position v21.02.11

  • slamcore-position-jetsonnx v21.02.11

  • ros-melodic-slamcore-ros v21.02.9

  • ros-melodic-slamcore-ros-jetsonnx v21.02.9

  • ros-melodic-slamcore-viz v21.02.9

New

Wheel odometry

The Slamcore ROS Wrapper now allows users to use wheel odometry. To do so, users will need to record a number of datasets for calibration using the procedure in the wheel odometry tutorial and provide these to Slamcore to perform the calibration.

With the calibration file from Slamcore, users will be able to process datasets containing wheel odometry using all the current tools:

  • Slamcore Visualiser,

  • Slamcore Dataset Processor, and

  • Slamcore ROS Wrapper.

Users will also be able to run live SLAM with wheel odometry in the Slamcore ROS Wrapper.

Fixed

Load and Save session options accepted together

Previous releases allowed the --save-session and --load-session options to be specified simultaneously. This would cause the session save to fail. To prevent this unexpected failure, the options are now mutually exclusive.

Version 21.01.1

02/02/2021

  • slamcore-position v21.01.10

  • slamcore-position-jetsonnx 21.01.10

  • ros-melodic-slamcore-ros v21.01.7

  • ros-melodic-slamcore-ros-jetsonnx v21.01.7

  • ros-melodic-slamcore-viz v21.01.7

Fixed

Error display in Slamcore Dataset Processor

Fixes an issue where some startup and usage errors were not displayed to the user.

Version 21.01

29/01/2021

  • slamcore-position v21.01.9

  • slamcore-position-jetsonnx 21.01.9

  • ros-melodic-slamcore-ros v21.01.7

  • ros-melodic-slamcore-ros-jetsonnx v21.01.7

  • ros-melodic-slamcore-viz v21.01.7

New

Presets

The slamcore-position and slamcore-position-jetsonnx Debian packages now include configurations to tune SLAM for several common use-cases. These are usable with the Slamcore Visualiser Slamcore Dataset Processor and Slamcore ROS Wrapper.

CLI tools

The Slamcore Dataset Processor and Slamcore Dataset Writer CLI tools have been added to the main .deb.

Save and Load a session in the Slamcore ROS Wrapper

The Slamcore ROS Wrapper now allows users to save and load a session file, similar to save and load functionality in Slamcore Visualiser.

Improved

Performance

Map optimisation performance during session save has been significantly improved.

SLAM performance has also been improved.

ROS Changes

The interface to the ROS node has been redesigned for better integration and robotics deployment.

The node will now start as soon as it is launched and will not publish pose information when it is not successfully tracking.

Stream switches have also been removed in favour of directly detecting subscribers.

The RQT window will no longer be launched by default in visualisations as the node starts automatically. RQT can be launched manually if required.

Session saving file format

Sessions created with this release can not be used with earlier releases. This is due to essential changes format required to support future features. Sessions created with older versions of the software are still supported.

Fixed

D435i timestamp wrap-around error

The range of the hardware timestamps provided by librealsense can overflow within reasonable SLAM session time. This issue is resolved in this release.

Minor changes for consistency and usability

  • The slamcore_position tool is now provided as slamcore_visualiser.

  • Logging verbosity has been reduced.

Version 0.6

11/12/2020

  • slamcore-position v0.6.34

  • slamcore-position-jetsonnx v0.6.34

  • ros-melodic-slamcore-ros v0.6.14

  • ros-melodic-slamcore-viz v0.6.14

New

ROS Diagnostic Topic

A new diagnostic topic has been added in ROS to allow querying the status of SLAM.

Improved

Checking for Correct Installation of RealSense SDK 2.0

Checks have been added to verify that the Intel RealSense SDK 2.0 has been correctly installed. An error message is generated if this is detected. For the Visualiser a popup window is displayed. For ROS a message is displayed and execution is stopped.

Session saving file format

Changes have been made to the format for saved sessions. Sessions created with this release can not be used with earlier releases of our software. Sessions created with older versions of the software are still supported.

Relocalisation Algorithmic

Improvements have been made to the relocalisation mode, when positioning within an existing map.

Extended Telemetry

Additional telemetry is being collected about the state of the SLAM system to better diagnose issues and improve the software in the future.

Fixed

Restarting SLAM in Visualiser

Previously stopping a SLAM session and then starting again without resetting could lead to unexpected and poor position estimations. This behaviour is corrected.

Multiple map(session) Saving

During mapping runs it is now possible to save maps and then continue building the sparse map.

Version 0.5.2

27/11/2020

  • slamcore-position v0.5.31

  • slamcore-position-jetsonnx v0.5.31

  • ros-melodic-slamcore-ros v0.5.6

  • ros-melodic-slamcore-viz v0.5.6

New

NVIDIA Jetson Xavier NX Support

The Slamcore Visualiser & Slamcore Dataset Recorder tools are now supported on NVIDIA Jetson Xavier NX. Default framerate is set to 15fps and depth streaming is off by default on the NVIDIA Jetson Xavier NX builds.

Version 0.5.1

28/09/2020

  • slamcore-position v0.5.26

  • ros-melodic-slamcore-ros v0.5.5

  • ros-melodic-slamcore-viz v0.5.5

Fixed

Slamcore Dataset Recorder storage limit

The Slamcore Dataset Recorder will now ensure that if storage is exhausted during recording a dataset is saved cleanly.

Version 0.5

19/09/2020

  • slamcore-position v0.5.25

  • ros-melodic-slamcore-ros v0.5.5

  • ros-melodic-slamcore-viz v0.5.5

New

Save and Load a session in the Slamcore Position Visualiser

The Slamcore Position Visualiser now allows users to save a session file after running SLAM. The file is an optimised representation of the explored environment and contains the accumulated sparse map.

Loading the session file puts the Slamcore Position Visualiser into MultiSession Localisation mode, where the system will localise against the loaded map and report its pose in the map’s frame.

This mode visually distinguishes between currently recognised landmarks loaded from the session file, other loaded landmarks, and temporary landmarks to visualise the operation of MultiSession mode.

Saving and loading sessions is supported for the Mynteye2 and D435i, datasets recorded with either camera using the Slamcore Dataset Recorder, as well as sequences from the EuRoC MAV dataset.

Improved

Algorithm updates

Several algorithmic improvements are included to improve detection and landmark merging.

Fixed

Slamcore Dataset Recorder destination directory picker

The Slamcore Dataset Recorder’s button to change destination directory was removed in version 0.4 to mitigate a metadata corruption issue with the D435i. The destination directory picker is restored in this release.

Version 0.4

17/08/2020

  • slamcore-position v0.4.27

  • ros-melodic-slamcore-ros v0.4.10

  • ros-melodic-slamcore-viz v0.4.10

New

Depth Stream

The Slamcore Position Visualiser, Slamcore Dataset Recorder and Slamcore ROS wrapper now all support the depth stream from the Intel RealSense Depth Camera D435i. Depth is enabled by default in all the applications.

Depth requires additional bandwidth and processing time to collect and display. Also, under some conditions, it can degrade the quality of SLAM. For these reasons it is simple to disable in all the applications. Please refer to their corresponding sections for how to do so.

Improved

Additional topics in ROS

The Slamcore ROS wrapper now publishes additional topics to aid integration:

  • /slamcore/accel - accelerometer data;

  • /slamcore/gyro - gyroscope data;

  • /slamcore/<various>/camera_info - camera intrinsics; and,

  • /tf and /tf_static - transformations between various coordinate frames in the system.

Slamcore Dataset Recorder performance improvement

The performance of the Slamcore Dataset Recorder has been significantly improved. This will be most visible on less powerful systems.

Fixed

D435i dataset metadata corruption

When recording a dataset using the Slamcore Dataset Recorder from a D435i, it was possible to corrupt the received metadata, resulting in either a fatal error or corrupted dataset. This issue has been resolved in the current release.

The behaviour of the Slamcore Dataset Recorder is now to record datasets in the directory where it is launched. For example, to record into /home/slamcore/datasets, run:

$ cd /home/slamcore/datasets
$ slamcore_dataset_recorder

Version 0.3

19/06/2020

  • slamcore-position v0.3.15

  • ros-melodic-slamcore-ros v0.3.11

  • ros-melodic-slamcore-viz v0.3.11

New

SLAM from user datasets

The Slamcore Position Visualiser and the Slamcore ROS Wrapper now support running SLAM from a dataset captured using the Slamcore Dataset Recorder.

SLAM from EuRoC datasets

Registered users can now try the Slamcore Position Visualiser and Slamcore ROS Wrapper on the EuRoC MAV dataset.

Improved

Visualisation

Various improvements to visualisation including drawing trajectory segments obtained from relocalisation in red.

SLAM

Various algorithm changes that increase the likelihood of loop closure and relocalisation.

Version 0.2

16/04/2020

  • slamcore-position v0.2.3

  • ros-melodic-slamcore-ros v0.2.5

  • ros-melodic-slamcore-viz v0.2.5

New

Experimental support for Intel RealSense Depth Camera D435i

The Slamcore Position Visualiser, Slamcore Dataset Recorder and Slamcore ROS wrapper now all support the Intel RealSense Depth Camera D435i.

Configurable algorithm parameters for Slamcore position

The Slamcore Position Visualiser and Slamcore ROS Wrapper now allow users to specify:

  1. The positioning mode: SLAM or odometry.

  2. The maximum number of features per frame.

Separate packages for SLAM and Visualisation in ROS Melodic

A standalone package for the Slamcore position ROS Melodic Wrapper allows integration into existing ROS installations with minimal dependencies.

An additional visualisations package provides visual tools for Slamcore position using ROS’s rviz package.

Version 0.1.0

23/03/2020

System Requirements

  • Intel processor of the Haswell or later architecture (with AVX2 extensions)

  • 8GB of RAM

  • USB 3 port for the camera

  • Ubuntu 18.04

  • ROS Melodic for the use of the API features

  • Internet connection at the start of each session.

Supported Camera Sensors

  • Pre-calibrated Mynteye2 sensors provided by Slamcore.

Software Tools

  • Visualiser. This stand-alone application shows: trajectory, camera view, tracking status, distance travelled, map features.

  • Dataset Recorder. This tool allows the capturing of detailed datasets which can be sent to Slamcore for analysis if the user requires it.

  • ROS Melodic Wrapper. This allows integration of the Slamcore position tracking into an existing ROS installation.

Supported Algorithms

  • Six degrees-of-freedom tracking using visual-inertial SLAM.

  • Loop closure and relocalisation.

  • Single session.

Accessible APIs

  • Six degrees-of-freedom pose.

  • Angular and linear velocities of the sensor.

  • Number of features tracked.

  • Tracking status.