Slamcore SDK Logo

Introduction

  • Overview
    • Technology
    • Software
    • Hardware
  • Getting Started
    • Register
    • Download
    • Install
      • Install on a Headless machine
  • Run with Public Datasets
  • Setting up a Camera
    • Setting up an Intel® RealSense™ Camera
      • Install Intel® RealSense™ Kernel Modules
      • Verify RealSense Setup
      • Install the Camera Firmware
      • Register Your Camera
      • RealSense Camera Calibration (Optional)
    • Set up an OAK-D S2 Camera
      • Set Udev Rules on your Machine
      • Register the Camera
      • OAK-D Camera Calibration
  • Requirements
    • Minimum
    • ROS Wrappers
    • ROS1 Visualisation
    • Recording Datasets
  • Glossary
  • FAQs
  • Troubleshooting
    • Camera Issues
    • SLAM Issues
    • Connection Issues
    • Software Dependencies
    • Dataset Recording Issues
    • ROS Issues

Software Tools

  • Slamcore Visualiser
    • Usage - SLAM
      • Run SLAM on Live Camera Feed
      • Run SLAM on a Recorded Dataset
    • SLAM, Localisation, Mapping and Odometry Mode
      • SLAM mode
      • Localisation mode
      • Height Mapping Mode
    • Usage - Dataset Recording while running SLAM
    • Saving Trajectories
    • The Application
      • 3D Camera Controls
      • Menus
    • Command-Line Options
      • Dataset Subcommand Options
      • RealSense Subcommand Options
      • OAK-D S2 Fixed-Focus Subcommand Options
  • Slamcore Dataset Recorder
    • Usage
    • Application UI
    • Command-Line Options
      • RealSense Subcommand Options
      • OAK-D S2 Fixed-Focus Subcommand Options
  • Slamcore CLI
    • Dataset Recorder CLI
      • Command-Line Options
    • Dataset Compressor
      • Command-Line Options
    • Dataset Processor
      • SLAM, Localisation, Mapping and Odometry Mode
      • Dataset Recording during a SLAM Run
      • Command-Line Options
  • Slamcore Session Explorer
    • Usage
    • The Application
      • Top Menu Bar
      • Left Sidebar
    • Command-Line Options
  • Slamcore Scripts
    • Plot Trajectory
      • Dependencies
      • Usage
      • Command-Line Options
    • Plot Map
      • Dependencies
      • Usage
      • Command-Line Options

API

  • Slamcore C++ API
    • Overview
      • Introduction
      • Initialisation
      • Main SLAM interface
      • Subsystems
      • External Sensor Support
      • General remarks
    • Classes
      • Class slamcore::BadTaggedObjectAccess
      • Class slamcore::BasePoseInterface
      • Class slamcore::ConstImageView
      • Class slamcore::EncoderInterface
      • Class slamcore::EncoderListInterface
      • Class slamcore::ErrorCodeInterface
      • Class slamcore::FixedMeasurementPoint
      • Class slamcore::FrameInterface
      • Class slamcore::FrameSyncInterface
      • Class slamcore::GPSLocationInterface
      • Class slamcore::HeightMappingSubsystemInterface
      • Class slamcore::IMUListInterface
      • Class slamcore::IMUSensorDataInterface
      • Class slamcore::IMUTripletInterface
      • Class slamcore::IMUTripletListInterface
      • Class slamcore::ImageInterface
      • Class slamcore::LIDARScanInterface
      • Class slamcore::LandmarkInterface
      • Class slamcore::LogMessageInterface
      • Class slamcore::Map2DAccessInterface
      • Class slamcore::Map2DInterface
      • Class slamcore::MapChannel2DInterface
      • Class slamcore::Matrix
      • Class slamcore::MeasurementPoint
      • Class slamcore::MetaDataInterface
      • Class slamcore::MultiFrameInterface
      • Class slamcore::OptimisedTrajectorySubsystemInterface
      • Class slamcore::PointCloudInterface
      • Class slamcore::PoseInterface
      • Class slamcore::PoseListInterface
      • Class slamcore::PoseWriteInterface
      • Class slamcore::PropertiesInterface
      • Class slamcore::Range1D
      • Class slamcore::Range2D
      • Class slamcore::RangeIterator
      • Class slamcore::ReferenceFrame
      • Class slamcore::SLAMAsyncTasksInterface
      • Class slamcore::SLAMCoreInterface
      • Class slamcore::SLAMSubsystemAccessInterface
      • Class slamcore::SLAMSystemCallbackInterface
      • Class slamcore::SLAMSystemInterface
      • Class slamcore::SensorSourceInterface
      • Class slamcore::SensorsInfoInterface
      • Class slamcore::SparseMapInterface
      • Class slamcore::StaticPoseInterface
      • Class slamcore::SubsystemInterface
      • Class slamcore::TaskStatusInterface
      • Class slamcore::TrackingStatusListInterface
      • Class slamcore::TrajectoryHelper
      • Class slamcore::TransformationSample
      • Class slamcore::VelocityInterface
      • Class slamcore::Version
      • Class slamcore::WheelOdometrySample
      • Class slamcore::WheelOdometrySensorInterface
      • Class slamcore::slam_exception
    • Files
      • File base_pose.hpp
      • File basic.hpp
      • File clocks.hpp
      • File common.hpp
      • File const_image_view.hpp
      • File distortion_type.hpp
      • File encoder.hpp
      • File encoder_list.hpp
      • File error_code.hpp
      • File errors.hpp
      • File fixed_measurement_point.hpp
      • File frame.hpp
      • File frame_sync.hpp
      • File gps_location.hpp
      • File height_mapping.hpp
      • File image.hpp
      • File imu_list.hpp
      • File imu_sensor_data.hpp
      • File imu_triplet.hpp
      • File imu_triplet_list.hpp
      • File landmark.hpp
      • File lidar_scan.hpp
      • File logging.hpp
      • File map2d.hpp
      • File map2d_interface.hpp
      • File map_channel2d.hpp
      • File matrix.hpp
      • File measurement_point.hpp
      • File meta_data.hpp
      • File multi_frame.hpp
      • File multi_session_id.hpp
      • File optimised_trajectory.hpp
      • File point_cloud.hpp
      • File pose.hpp
      • File pose_list.hpp
      • File pose_write.hpp
      • File positioning_mode.hpp
      • File properties_interface.hpp
      • File property.hpp
      • File range.hpp
      • File range_iterator.hpp
      • File reference_frame.hpp
      • File reference_frame_category.hpp
      • File sensor_id.hpp
      • File sensor_source.hpp
      • File sensor_source_interface.hpp
      • File sensors_info.hpp
      • File slam_async_tasks.hpp
      • File slam_core.hpp
      • File slam_create.hpp
      • File slam_event.hpp
      • File slam_subsystem_access.hpp
      • File slam_system.hpp
      • File slam_system_callback.hpp
      • File slamcore.hpp
      • File sparse_map.hpp
      • File static_pose.hpp
      • File strcasecmp.hpp
      • File stream.hpp
      • File stream_type.hpp
      • File subsystem.hpp
      • File system_configuration.hpp
      • File tagged_object.hpp
      • File task_status.hpp
      • File tracking_status.hpp
      • File tracking_status_list.hpp
      • File transform.hpp
      • File transformation_sample.hpp
      • File velocity.hpp
      • File version.hpp
      • File wheel_odometry.hpp
      • File wheel_odometry_sample.hpp
    • Structs
      • Struct slamcore::CellCoordinates
      • Struct slamcore::ConstTaggedObject
      • Struct slamcore::GenericMultiSessionId
      • Struct slamcore::GenericMultiSessionId< detail::MultiSessionIdT::Base >
      • Struct slamcore::GenericMultiSessionId< detail::MultiSessionIdT::KeyFrame >
      • Struct slamcore::ImageFormatTraits
      • Struct slamcore::ImageFormatTraits< ImageFormat::Mono_16 >
      • Struct slamcore::ImageFormatTraits< ImageFormat::Mono_32 >
      • Struct slamcore::ImageFormatTraits< ImageFormat::Mono_64 >
      • Struct slamcore::ImageFormatTraits< ImageFormat::Mono_8 >
      • Struct slamcore::ImageFormatTraits< ImageFormat::Mono_F >
      • Struct slamcore::ImageFormatTraits< ImageFormat::RGBA_8 >
      • Struct slamcore::ImageFormatTraits< ImageFormat::RGBA_F >
      • Struct slamcore::ImageFormatTraits< ImageFormat::RGB_8 >
      • Struct slamcore::ImageFormatTraits< ImageFormat::RGB_F >
      • Struct slamcore::StreamType
      • Struct slamcore::StreamType< Stream::ActiveMap >
      • Struct slamcore::StreamType< Stream::ErrorCode >
      • Struct slamcore::StreamType< Stream::FrameSync >
      • Struct slamcore::StreamType< Stream::IMU >
      • Struct slamcore::StreamType< Stream::LocalPointCloud >
      • Struct slamcore::StreamType< Stream::MetaData >
      • Struct slamcore::StreamType< Stream::Pose >
      • Struct slamcore::StreamType< Stream::SmoothPose >
      • Struct slamcore::StreamType< Stream::Velocity >
      • Struct slamcore::StreamType< Stream::Video >
      • Struct slamcore::TaggedObject
      • Struct slamcore::Transform
      • Struct slamcore::TypeTraits
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< EncoderInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< EncoderListInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< ErrorCodeInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< FrameInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< FrameSyncInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< GPSLocationInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< IMUListInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< IMUSensorDataInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< IMUTripletInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< IMUTripletListInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< ImageInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< LIDARScanInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< LandmarkInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< Map2DInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< MapChannel2DInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< MetaDataInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< MultiFrameInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< PointCloudInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< SparseMapInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< StaticPoseInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< TaskStatusInterface, T >::type >
      • Struct slamcore::TypeTraits< T, typename enable_if_is_base_of< TrackingStatusListInterface, T >::type >
      • Struct slamcore::camera_clock
      • Struct slamcore::gps_clock
      • Struct slamcore::host_clock
      • Struct slamcore::imu_clock
      • Struct slamcore::lidar_clock
      • Struct slamcore::odometry_clock
      • Struct slamcore::v0::SystemConfiguration
    • Namespaces
      • Namespace slamcore
      • Namespace slamcore::detail
      • Namespace slamcore::internal
      • Namespace slamcore::v0
      • Namespace std
    • Examples
      • Example ascii_image.cpp
      • Example ascii_mapping.cpp
      • Example hello_world_all_streams.cpp
      • Example high_rate_pose.cpp
      • Example measure_slam_performance.cpp
      • Example multisession.cpp
      • Example plot_map.py
      • Example plot_trajectory.py
      • Example record_dataset.cpp
      • Example reset.cpp
      • Example save_load_session.cpp
      • Example wheel_odometry.cpp
      • Example write_map.cpp
      • Example write_trajectory.cpp
  • Python API
    • Download
  • Slamcore ROS1 Wrapper
    • Software Prerequisites
    • ROS1 Wrapper Layout
    • Installation
    • Usage - SLAM
      • Live SLAM
      • SLAM using a recorded dataset
      • VIO Mode
      • Localisation Mode
      • Height Mapping Mode
    • Usage - Dataset Recording
      • Dataset Recording during a SLAM run
      • Standalone Dataset Recorder
    • ROS1 Visualisation
    • ROS1 API
      • Advertised Topics
      • Advertised Services
      • Advertised Parameters
  • Slamcore ROS 2 Wrapper
    • Introduction
    • Usage - SLAM
      • Live SLAM
      • SLAM using a recorded dataset
      • VIO Mode
      • Localisation Mode
      • Height Mapping Mode
    • Usage - Dataset Recording
      • Dataset Recording during a SLAM run
      • Standalone Dataset Recorder
    • ROS 2 API
      • Lifecycles Nodes
      • Advertised Topics
      • Advertised Services
      • Advertised Parameters
  • Migrating from Earlier API Versions
    • Slamcore SDK v23.01
      • Session file format
      • JSON configuration file migration
      • Tracking Information
    • Slamcore SDK v21.06.85
      • Layout
      • Subsystems and I/O
      • Types and Objects

Configuration

  • Configuration Overview
    • Download
    • Usage
      • Visualiser, Dataset Recorder and CLI
      • ROS1 Wrapper
      • ROS 2 Wrapper
    • Configuration Files
      • Environment-Specific Presets
      • Feature-Specific Presets
      • Custom Configuration
  • RealSense Configuration
  • SLAM Configuration
    • Display Name
    • Positioning Mode
    • Estimator Parameters
    • Frontend Parameters
      • Tracking On Plane
    • Multisession Parameters
  • Height Mapping Configuration
    • EnableFeatureMap2D
    • Height Mapping Parameters
      • Occupancy Extraction Parameters
  • Point Cloud Configuration
    • Point Cloud Trimming
      • Vertical Height Trimming
      • Depth Trimming

Tutorials & Examples

  • Tutorial Overview
    • 1. Capturing Datasets
    • 2. Processing Datasets
      • Visual-Inertial Odometry (VIO)
      • Single-session SLAM mode
      • Localisation using a pre-built point cloud
    • 3. Multi-Agent Localisation
    • 4. Wheel Odometry Integration
    • 5. 2D Occupancy Mapping
    • 6. ROS1 Melodic Navigation Stack Integration
    • 7. ROS 2 Foxy Nav2 Integration
  • Capturing Datasets
    • Step 1 - Capture a Master Dataset of the entire test space
      • Step 1.1 - Launch the Dataset Recorder
      • Step 1.2 - Start the recorder
      • Step 1.3 - Move the sensor around the test environment twice
      • Step 1.4 - Stop recording
    • Step 2 - Capture Evaluation Datasets
  • Localisation Mode
    • Step 1 - Create a master configuration file
    • Step 2 - Create the Offline Master Point-cloud
      • Step 2.1 - Launch the slamcore_visualiser tool
      • Step 2.2 - Generate the Offline Master Point-cloud
      • Step 2.3 - Save the Point-cloud
    • Step 3 - Create an Evaluation Configuration File
    • Step 4 - Evaluation: Localise within the Point-cloud
      • Step 4.1 - Load the Evaluation Datasets
      • Step 4.2 - Load the Point-cloud to Run the Dataset Within
      • Step 4.3 - Process the Evaluation Dataset
    • Step 5 - Evaluate the System with a Live Sensor Feed
      • Step 5.1 - Launch the Positioning Tool
      • Step 5.2 - Load the Point-cloud to Use for Live Localisation
      • Step 5.3 - Run the System Live
  • Single Session SLAM Positioning Mode
    • Step 1 - Create a Configuration File
    • Step 2 - Process a Dataset
    • Step 3 - Try the System in Live Mode
  • Visual-Inertial Odometry Positioning
    • Step 1 - Create a Configuration File
    • Step 2 - Process a Dataset
    • Step 3 - Try the System in Live Mode
  • Multi-Agent Localisation
    • Step 1 - Create a Master Configuration File
    • Step 2 - Create the Offline Master Point-cloud
      • Step 2.1 - Launch the slamcore_visualiser Tool
      • Step 2.2 - Generate the Offline Master Point-cloud
      • Step 2.3 - Save the Point-cloud
    • Step 3 - Copy the Session Map File to any Compatible Machine
    • Step 4 - Run Localisation using a Pre-built Point-cloud
      • Step 4.1 - Launch the Positioning Tool on any Compatible Machine
      • Step 4.2 - Load the Point-cloud to Use for Live Localisation
      • Step 4.3 - Run the System Live
  • RealSense Camera Calibration
    • Requirements
    • Recording Environment
    • Capturing a Sequence
    • Send Files to Slamcore for Calibration
      • Dataset Folder Structure
      • Dataset Validation
      • Compress the files
      • Upload the sequences
      • Calibration Confirmation
  • Wheel Odometry Integration
    • Requirements
    • VI Calibration
    • VIK Calibration
      • VIK Calibration Dataset
      • Recording Procedure
      • Calibration Sequences
      • Dataset Folder Structure
    • Send to Slamcore for Calibration
      • Dataset Validation
      • Compress the files
      • Obtain the Camera-Odometry Frame of Reference Transformation
      • Email Slamcore
    • Run the system in VIK Mode
      • Run VIK SLAM on live camera (ROS)
      • Run VIK SLAM with a dataset
  • 2D Occupancy Mapping
    • Requirements
    • Usage
      • Step 1 - Record a dataset of the entire test environment
      • Step 2 - Prepare the mapping configuration file
      • Step 3 - Create a session map
      • Step 4 - Inspect Map in Session Explorer
      • Step 5 - Load Occupancy Map in ROS
  • ROS1 Navigation Stack Integration
    • Goal
    • Hardware Setup
    • ROS1 Navigation Stack Setup
    • Outline
    • Set up Dependencies
      • Set up Binary Dependencies
      • Set up ROS1 work workspace
    • Run Visual-Inertial-Kinematic Calibration
    • Compute the slamcore/base_link ➞ base_footprint Transformation
    • Record Dataset to Map the Environment
    • Create Session and Map for Navigation
      • Edit the Generated Session/Map
    • Specify the Session and the Configuration File Paths
    • Launch Live Navigation
      • Interact with the Navigation Demo
      • Waypoint Navigation
    • Appendix
      • Navigation Demo Video
      • Remote Visualisation of the Navigation Demo
      • Obstacle Avoidance
      • Troubleshooting
  • Nav2 Integration Overview
    • Goal
    • Hardware Setup
    • Nav2 - Slamcore Integration
    • How to Set Up and Run the Examples
  • Nav2 Integration Guide
    • Outline
    • Robot-specific Features and Changes When Using Slamcore
    • Initial Robot Set Up and Configuration
    • slamcore-ros2-examples Metapackage Set Up
    • Visualization Machine Set Up
    • Teleoperation
    • Visual-Inertial-Kinematic Calibration
    • The slamcore/base_link ➞ base_link Transformation
    • Mapping and Live Navigation
      • Navigation in Single Session SLAM Mode
      • Navigation in Localisation Mode Using a Pre-recorded Map
      • Interact with the Navigation Demo
      • Nav2 Configuration
    • Appendix
      • Troubleshooting
      • PS4 Button Mapping
      • Known Issues

Technical Guides

  • Guide to Trajectories
  • Tracking Information
    • Tracking Status
    • SLAM Events
  • Frames of Reference Convention
    • map and odom frames

Additional Information

  • Telemetry Data
  • Feature Roadmap
    • Coming Soon
    • Future
  • Feedback
  • Documentation License
  • Contact Information
  • Release Notes
    • Version 23.01
      • New
      • Breaking Changes
    • Version 21.06.3
      • Improved
    • Version 21.06.2
      • Fixed
    • Version 21.06.1
      • New
      • Improved
    • Version 21.06
      • New
      • Improved
      • Fixed
    • Version 21.05.3
      • Improved
    • Version 21.05.2
      • Improved
      • Fixed
    • Version 21.05.1
      • Improved
    • Version 21.05
      • New
      • Improved
    • Version 21.04.1
      • Improved
    • Version 21.04
      • New
      • Improved
      • Fixed
    • Version 21.03
      • New
      • Improved
      • Fixed
    • Version 21.02.1
      • Improved
    • Version 21.02
      • New
      • Fixed
    • Version 21.01.1
      • Fixed
    • Version 21.01
      • New
      • Improved
      • Fixed
    • Version 0.6
      • New
      • Improved
      • Fixed
    • Version 0.5.2
      • New
    • Version 0.5.1
      • Fixed
    • Version 0.5
      • New
      • Improved
      • Fixed
    • Version 0.4
      • New
      • Improved
      • Fixed
    • Version 0.3
      • New
      • Improved
    • Version 0.2
      • New
    • Version 0.1.0
Slamcore SDK
  • »
  • Slamcore Software Documentation
Next

Slamcore Software Documentation

_images/slamcore_logo_primary1.png

Spatial intelligence for autonomous robots and drones

Introduction

  • Overview
  • Getting Started
  • Run with Public Datasets
  • Setting up a Camera
  • Requirements
  • Glossary
  • FAQs
  • Troubleshooting

Software Tools

  • Slamcore Visualiser
  • Slamcore Dataset Recorder
  • Slamcore CLI
  • Slamcore Session Explorer
  • Slamcore Scripts

API

  • Slamcore C++ API
  • Python API
  • Slamcore ROS1 Wrapper
  • Slamcore ROS 2 Wrapper
  • Migrating from Earlier API Versions

Configuration

  • Configuration Overview
  • RealSense Configuration
  • SLAM Configuration
  • Height Mapping Configuration
  • Point Cloud Configuration

Tutorials & Examples

  • Tutorial Overview
  • Capturing Datasets
  • Localisation Mode
  • Single Session SLAM Positioning Mode
  • Visual-Inertial Odometry Positioning
  • Multi-Agent Localisation
  • RealSense Camera Calibration
  • Wheel Odometry Integration
  • 2D Occupancy Mapping
  • ROS1 Navigation Stack Integration
  • Nav2 Integration Overview
  • Nav2 Integration Guide

Technical Guides

  • Guide to Trajectories
  • Tracking Information
  • Frames of Reference Convention

Additional Information

  • Telemetry Data
  • Feature Roadmap
  • Feedback
  • Documentation License
  • Contact Information
  • Release Notes
Next

© Copyright 2021, Slamcore Limited.

Releases v: 23.01
21.06
23.01