These are two simple ROS point cloud helper nodes. read reads a point cloud from file (ply or vtk) and publishes it as a sensor_msgs/PointCloud2 message. write subscribes to a sensor_msgs/PointCloud2 topic and writes received messages to seperate files (ply, pcd).
For visualization, make sure to set the Decay Time in the PointCloud2 tab in rviz to a high number to get the point cloud visible for a long time.
This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
Author: Péter Fankhauser, Remo Diethelm
Affiliation: ANYbotics
Maintainer: Remo Diethelm, [email protected]
This projected was initially developed at ETH Zurich (Autonomous Systems Lab & Robotic Systems Lab).
This work is conducted as part of ANYmal Research, a community to advance legged robotics.
The source code is released under a BSD 3-Clause license.
This software is built on the Robot Operating System (ROS), which needs to be installed first. Additionaly, the it depends on following software:
In order to build Point Cloud IO, clone the latest version from this repository into your catkin workspace and compile the package using ROS.
cd ~/catkin_workspace/src
git clone https://github.com/anybotics/point_cloud_io.git
cd ../
catkin build point_cloud_io
Note: building the tool with support for the VTK file format is disabled by default. To enable it, run catkin build point_cloud_io --cmake-args -DBUILD_WITH_VTK_SUPPORT=True
instead.
To create your own launch-file, you can use the examples from point_cloud_io/launch/...
.
Load and publish a ply or vtk file with
rosrun point_cloud_io read _file_path:=/home/user/my_point_cloud.ply _topic:=/my_topic _frame:=/sensor_frame
Optionally, you can also add _rate:=1.0
to have the node publish your point cloud at the specified rate.
Subscribe and save point clouds to a ply file with
rosrun point_cloud_io write _topic:=/your_topic _folder_path:=/home/user/my_point_clouds
Optionally, you can set parameters to fit the point cloud file names to your needs:
_file_prefix:=my_prefix
(default: "point_cloud")_file_ending:=my_ending
(default: "ply", currently only format which is supported for writing)_add_counter_to_path:=false
(default:true
)_add_frame_id_to_path:=true
(default:false
)_add_stamp_sec_to_path:=true
(default:false
)_add_stamp_nsec_to_path:=true
(default:false
)
Please report bugs and request features using the Issue Tracker.