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.
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
roslaunchprocess. This causes
roslaunchto escalate to a
SIGTERMwhich 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.
Ubuntu 20.04 packages¶
slamcore-devpackages are now available for Ubuntu 20.04 (Focal Fossa) on x86_64.
Users can now download the
slamcore-dev-jetsonpackages 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.
Memory usage and performance¶
Memory usage and speed in session save have both been improved in this release, especially on large sessions.
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.
In the SLAMcore ROS Wrapper, all topics and service names are now snake_case.
In previous versions the
--fpscommand-line flag was not usable. The issue has been resolved in this release.
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.
The SLAMcore ROS Wrapper has been improved in a number of ways including now publishing a
/slamcore/odomtopic 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.
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.
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 Dataset Processor, and
SLAMcore ROS Wrapper.
Users will also be able to run live SLAM with wheel odometry in the SLAMcore ROS Wrapper.
slamcore-position-jetsonnxDebian 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.
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.
Map optimisation performance during session save has been significantly improved.
SLAM performance has also been improved.
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.
D435i timestamp wrap-around error¶
The range of the hardware timestamps provided by
librealsensecan overflow within reasonable SLAM session time. This issue is resolved in this release.
Minor changes for consistency and usability¶
slamcore_positiontool is now provided as
Logging verbosity has been reduced.
ROS Diagnostic Topic¶
A new diagnostic topic has been added in ROS to allow querying the status of SLAM.
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.
Improvements have been made to the relocalisation mode, when positioning within an existing map.
Additional telemetry is being collected about the state of the SLAM system to better diagnose issues and improve the software in the future.
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.
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 Localisationmode, 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
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.
Several algorithmic improvements are included to improve detection and landmark merging.
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.
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_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.
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
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.
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:
The positioning mode: SLAM or odometry.
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
Intel processor of the Haswell or later architecture (with AVX2 extensions)
8GB of RAM
USB 3 port for the camera
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.
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.
Six degrees-of-freedom tracking using visual-inertial SLAM.
Loop closure and relocalisation.
Six degrees-of-freedom pose.
Angular and linear velocities of the sensor.
Number of features tracked.