Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
jazzy

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
kilted

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
lyrical

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
rolling

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

gtsam2mrpt_serial repository

gtsam2mrpt_serial

ROS Distro
humble

Repository Summary

Checkout URI https://github.com/MRPT/gtsam2mrpt_serial.git
VCS Type git
VCS Version develop
Last Updated 2026-09-29
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
gtsam2mrpt_serial 0.4.0

README

Ubuntu CI

Distro Build dev Release
ROS 2 Humble (u22.04) Build Status Version
ROS 2 Jazzy (u24.04) Build Status Version
ROS 2 Kilted (u24.04) Build Status Version
ROS 2 Lyrical (u26.04) Build Status Version
ROS 2 Rolling (u26.04) Build Status Version
Package ROS 2 Humble
(u22.04)
ROS 2 Jazzy
(u24.04)
ROS 2 Kilted
(u24.04)
ROS 2 Lyrical
(u26.04)
ROS 2 Rolling
(u26.04)
gtsam2mrpt_serial Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status
Build Status

Each cell stacks the badges for that ROS 2 distro, in this order (when available):

  • Ubuntu (amd64)
  • Ubuntu (arm64)
  • RHEL (x86_64) – not available for Humble, since mrpt3 cannot be built there.
  • Fedora (x86_64) – only available since ROS 2 Lyrical.

gtsam2mrpt_serial

A C++ library providing a bidirectional serialization bridge between GTSAM and mrpt-serialization.

Serialize and deserialize GTSAM data structures — including NonlinearFactorGraph and Values — to and from any mrpt I/O stream (files, sockets, pipes) with optional transparent compression.

Features

  • Fast — benchmarks show roughly half the wall-clock time of GTSAM’s native Boost binary serialization for mid-sized graphs (see Performance).
  • Portable — the binary format is stable across machine architectures, endianness, word sizes, and operating systems, unlike Boost serialization.
  • Versioned — a version tag is embedded in every serialized object so that future library releases can read files produced by older ones.
  • Compressed — transparent .gz and .zstd compression is available via mrpt::io::CCompressedOutputStream at no extra cost to the caller.
  • Stream-agnostic — works with any stream in mrpt-io: local files, TCP sockets, named pipes, in-memory buffers, and more.

Requirements

  • C++17 or newer (required by MRPT).
  • MRPT ≥ 3.0 (modules mrpt_serialization, mrpt_io, mrpt_math, mrpt_poses): install the ROS 2 packages (sudo apt install ros-$ROS_DISTRO-mrpt-io ros-$ROS_DISTRO-mrpt-poses), or follow the MRPT install guide.
  • GTSAM: 4.2 (Boost-based) and ≥ 4.3 (Boost-free) are both supported. Install the ROS 2 package (sudo apt install ros-$ROS_DISTRO-gtsam), build from source, or use the official PPA.

Supported types

Category Types
Values Pose2, Pose3, Point2, Point3, Rot2, Rot3
Factors PriorFactor<T>, BetweenFactor<T> for all value types above
Noise models Gaussian, Diagonal, Isotropic, Constrained, Unit, Robust (with all built-in m-estimators)

Usage

Include the single header and use the << / >> stream operators:

#include <gtsam2mrpt_serial/serialize.h>
#include <mrpt/io/CCompressedOutputStream.h>
#include <mrpt/serialization/CArchive.h>

using namespace gtsam2mrpt_serial;

// --- Serialize ---
gtsam::NonlinearFactorGraph graph = /* ... */;
gtsam::Values               initial = /* ... */;

mrpt::io::CCompressedOutputStream f("graph.mrpt.zstd");
auto arch = mrpt::serialization::archiveFrom(f);
arch << graph << initial;

// --- Deserialize ---
mrpt::io::CCompressedInputStream f2("graph.mrpt.zstd");
auto arch2 = mrpt::serialization::archiveFrom(f2);

gtsam::NonlinearFactorGraph graph2;
gtsam::Values               initial2;
arch2 >> graph2 >> initial2;

For a more complete example, see tests/main.cpp.

Installation

sudo apt install ros-$ROS_DISTRO-gtsam2mrpt-serial

From source

mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/MRPT/gtsam2mrpt_serial.git
cd ~/ros2_ws
colcon build --packages-select gtsam2mrpt_serial

Performance

Profiling against GTSAM’s native Boost binary serialization on an Intel Core i7-6700HQ @ 2.60 GHz (Ubuntu 20.04, Boost 1.71, MRPT 2.4.4) shows approximately 2× faster serialization and deserialization for mid-sized factor graphs. The time axis below is logarithmic.

File truncated at 100 lines see the full file