![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged cloudini_ros at Robotics Stack Exchange
![]() |
cloudini_ros package from cloudini repocloudini_lib cloudini_ros |
ROS Distro
|
Package Summary
Version | 0.10.0 |
License | Apache |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/facontidavide/cloudini.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-13 |
Dev Status | DEVELOPED |
Released | UNRELEASED |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
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:
- Receive a serialized DDS message.
- Convert that to CompressedPointCloud2.
- Do the actual decompression.
- 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
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.
Interestingly, it can be compiled without ROS installed in your system!
Example usage: round trip compression / decompression;
# Use option -c for compression
cloudini_rosbag_converter -f original_rosbag.mcap -o compressed_rosbag.mcap -c
# Use option -d for decompression
cloudini_rosbag_converter -f compressed_rosbag.mcap -o restored_rosbag.mcap -d
Note that the “restored_rosbag.mcap” might be smaller than the original one, because the chunk-based ZSTD compression provided by MCAP is enabled.
How to read directly a CompressedPointCloud2 from your application
Using the point_cloud_transport plugin
You can see a practical example in test/test_plugin_publisher.cpp and test/test_plugin_subscriber.cpp
Use CloudiniSubscriberPCL (when using PCL)
A special subscriber is provided to subscribe to a topic with type point_cloud_interfaces/msg/CompressedPointCloud2
and convert
its content to pcl::PointCloud2
automatically.
See example test/test_cloudini_subscriber.cpp
Alternaively, you can use the code as a template to see how convertion is implemented and crate your own version.
Example:
- Publish a regular pointcloud from a rosbag:
# Assuming that this rosbag contains a topic called "/points"
ros2 bag play -l my_rosbag/
- Run topic_converter as mentioned above to create a topic called “/points/compressed”:
```
ros2 run cloudini_ros cloudini_topic_converter –ros-args
-p compressing:=true
-p topic_input:=/points
-p topic_output:=/points/compressed
File truncated at 100 lines see the full file
Changelog for package cloudini_ros
0.10.0 (2025-10-13)
- cherry picking change from #38 . Better function name Thanks \@Tanishq30052002 for the suggestions
- tons of ROS examples and utilities
- files renamed
- Contributors: Davide Faconti
0.9.0 (2025-10-11)
- fix compilation
- fix mcap_converter
- Contributors: Davide Faconti
0.8.0 (2025-10-09)
- Merge branch 'main' into msadowski/release_foxglove_extension
- Merge pull request #33 from facontidavide/refactor_ros_interface Refactor ros interface
- fixed topic_converter
- changes API
- fixed benchmark
- updated benchmarks
- Preprare ros release (#28)
- Contributors: Davide Faconti
0.7.0 (2025-09-19)
0.6.1 (2025-08-28)
0.5.0 (2025-06-30)
0.4.0 (2025-06-15)
- updated README
- Contributors: Davide Faconti
0.3.3 (2025-06-11)
0.3.1 (2025-06-10)
- Merge branch 'main' of github.com:facontidavide/cloudini
- Update CMakeLists.txt
- Included ROS 2 lint testing (#3) Co-authored-by: Davide Faconti <<davide.faconti@gmail.com>>
- Contributors: Alejandro Hernández Cordero, Davide Faconti
0.3.0 (2025-06-03)
0.2.0 (2025-05-31)
- fixes
- add efficient "bridge" between compressed and regular pointclouds
- add license
- Contributors: Davide Faconti
Package Dependencies
Deps | Name |
---|---|
pluginlib | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
cloudini_lib | |
point_cloud_interfaces | |
point_cloud_transport | |
mcap_vendor | |
sensor_msgs | |
rclcpp | |
rosbag2_cpp | |
pcl_conversions |