Package symbol

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

Package symbol

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
jazzy

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

Package symbol

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
kilted

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

Package symbol

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
lyrical

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

Package symbol

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
rolling

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/facontidavide/cloudini.git
VCS Type git
VCS Version main
Last Updated 2026-09-20
Dev Status DEVELOPED
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange

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

cloudini_ros package from cloudini repo

cloudini_lib cloudini_ros

ROS Distro
humble

Package Summary

Version 1.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Main library of Cloudini, the pointcloud compression library

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS2 specific libraries and utilities

cloudini_topic_converter

A simple node that subscribes to one of these two topic types and publishes the other:

  • sensor_msgs/msg/PointCloud2
  • point_cloud_interfaces/msg/CompressedPointCloud2

It is genrally more efficient than using the point_cloud_transport because the latter would:

  1. Receive a serialized DDS message.
  2. Convert that to CompressedPointCloud2.
  3. Do the actual decompression.
  4. Convert PointCloud2 to a serialized DDS message.

Instead, we work directly with raw serialized messages, bypassing the ROS type system, skipping steps 2 and 4 in the list above.

Parameters

  • topic_input (string): name of the topic to subscribe to.
  • topic_output (string): name of the topic to publish into.
  • compressing(bool): true if you are subscribing to a regular pointcloud2, and you want to compress it. False if you are subscribing to a compressed topic and you want to decompress it.
  • resolution (double): resolution of floating point fields in meters. Default: 0.001

Example usage

To convert a regular sensor_msgs/msg/PointCloud2 to a compressed one:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=true  \
    -p topic_input:=/points  \
    -p topic_output:=/points/compressed

To decompress that topic back in to its original form:

ros2 run cloudini_ros cloudini_topic_converter --ros-args \
    -p compressing:=false  \
    -p topic_input:=/points/compressed  \
    -p topic_output:=/points/decompressed

Composable Node (Component Container)

The topic converter is also available as a composable node, allowing it to be loaded into a component container for reduced overhead when running multiple nodes in the same process.

# Start a component container
ros2 run rclcpp_components component_container

# Load the topic converter as a component
ros2 component load /ComponentManager cloudini_ros CloudiniPointcloudConverter \
  -p compressing:=true \
  -p topic_input:=/points \
  -p topic_output:=/points/compressed \
  -p resolution:=0.001

Or via launch file:

from launch_ros.actions import ComposableNodeContainer, LoadComposableNodes
from launch_ros.descriptions import ComposableNode

container = ComposableNodeContainer(
    name='cloudini_container',
    namespace='',
    package='rclcpp_components',
    executable='component_container',
)

converter = LoadComposableNodes(
    target_container='cloudini_container',
    composable_node_descriptions=[
        ComposableNode(
            package='cloudini_ros',
            plugin='CloudiniPointcloudConverter',
            parameters=[{
                'compressing': True,
                'topic_input': '/points',
                'topic_output': '/points/compressed',
                'resolution': 0.001,
            }],
        ),
    ],
)

cloudini_rosbag_converter

A command line tool that, given a rosbag (limited to MCAP format), converts all sensor_msgs/msg/PointCloud2 topics into compressed point_cloud_interfaces/msg/CompressedPointCloud2 of vice-versa.

Encoding/decoding is faster than general-purpose compression algorithms and achieves a better compression ratio at 1mm resolution.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package cloudini_ros

1.3.1 (2026-09-20)

  • No changes; released together with cloudini_lib 1.3.1

1.3.0 (2026-09-20)

  • Fix license tags in package.xml According to ros_license_toolkit[\^1] license tags should be in SPDX list of licenses. In case of claudini_ros, the license version was missing and in case of claudini_lib, the license name was not "exact". This commit changes the license tags to use SPDX license identifiers. Note that it doesn't fix the failures reported in claudini_lib in the output below: [cloudini_ros] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache. LicensesInCodeCheck WARNING For the following files, please change the License Tag in the package file to SPDX format: 'include/cloudini_plugin/cloudini_publisher_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_plugin/cloudini_subscriber_plugin.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/cloudini_subscriber_pcl.hpp' is of Apache-2.0 but its Tag is Apache. 'include/cloudini_ros/conversion_utils.hpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_publisher_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_pcl.cpp' is of Apache-2.0 but its Tag is Apache. 'src/cloudini_subscriber_plugin.cpp' is of Apache-2.0 but its Tag is Apache. 'src/conversion_utils.cpp' is of Apache-2.0 but its Tag is Apache. 'src/plugin_manifest.cpp' is of Apache-2.0 but its Tag is Apache. 'src/topic_converter.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.cpp' is of Apache-2.0 but its Tag is Apache. 'test/draco_helper.hpp' is of Apache-2.0 but its Tag is Apache. 'test/rosbag_benchmark.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_cloudini_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_direct_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_publisher.cpp' is of Apache-2.0 but its Tag is Apache. 'test/test_plugin_subscriber.cpp' is of Apache-2.0 but its Tag is Apache. LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. --------------------[cloudini_lib] git hash of (/home/src/github.com/facontidavide/cloudini): d202e5255d12519ff1f3db1dac4df3ca0e550ee7 SchemaCheck SUCCESS Detected package.xml version 3, validation of scheme successful. LicenseTagExistsCheck SUCCESS Found licenses ['Apache 2.0'] LicenseTagIsInSpdxListCheck WARNING Licenses ['Apache 2.0'] are not in SPDX list of licenses. Make sure to exactly match one of https://spdx.org/licenses/. LicenseTextExistsCheck WARNING Since they are not in the SPDX list, we can not check if these tags have the correct license text: 'Apache 2.0': License text file '../LICENSE' is of license Apache-2.0 but tag is Apache 2.0. LicensesInCodeCheck FAILURE The following files contain licenses that are not covered by any license tag: 'benchmarks/pcd_benchmark.cpp': ['MIT'] 'cmake/CPM.cmake': ['MIT'] 'include/cloudini_lib/ros_message_definitions.hpp': ['BSD-3-Clause'] 'include/cloudini_lib/contrib/ankerl/stl.h': ['MIT'] 'include/cloudini_lib/contrib/ankerl/unordered_dense.h': ['MIT'] LicenseFilesReferencedCheck SUCCESS All license declaration are referenced by a tag. [\^1]: https://github.com/boschresearch/ros_license_toolkit
  • Contributors: Michal Sojka

1.2.2 (2026-06-04)

  • build: synchronized version bump with cloudini_lib (MSVC support; no functional changes here)

1.2.1 (2026-05-20)

  • ci(rolling): build point_cloud_interfaces from source via vcstool until the apt-sync drop is resolved

1.2.0 (2026-05-05)

1.1.0 (2026-04-20)

  • feat(gorilla): Gorilla bit-packed XOR for FLOAT64 lossless (backward compatible) (#93)
  • Contributors: Davide Faconti

1.0.4 (2026-04-06)

  • fix(ros): use ament_target_dependencies for pcl_conversions pcl_conversions 2.8.0 on Kilted switched from ament_export_include_directories to ament_export_targets, making ${pcl_conversions_INCLUDE_DIRS} empty and breaking the buildfarm. Use ament_target_dependencies which handles both old-style

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cloudini_ros at Robotics Stack Exchange