Go to the documentation of this file.
37 #include <sensor_msgs/PointCloud2.h>
42 #include <pcl/io/io.h>
43 #include <Eigen/Geometry>
64 cloud = ros::topic::waitForMessage<pcl::PCLPointCloud2>(
"input", *
pnh_);
70 NODELET_INFO (
"Received %d data points in frame %s with the following fields: %s",
72 cloud->header.frame_id.c_str (),
75 Eigen::Vector4f v = Eigen::Vector4f::Zero ();
76 Eigen::Quaternionf
q = Eigen::Quaternionf::Identity ();
86 v = Eigen::Vector4f::Zero ();
87 v.head<3> () =
transform.translation ().cast<
float> ();
95 pcl::PCDWriter writer;
100 writer.writeBinaryCompressed (ss.str (), *
cloud, v, q);
104 writer.writeBinary (ss.str (), *
cloud, v, q);
109 writer.writeASCII (ss.str (), *
cloud, v, q, 8);
115 PCLNodelet::onInit();
116 srv_ = boost::make_shared <dynamic_reconfigure::Server<Config> > (*pnh_);
118 srv_->setCallback (f);
virtual ~PointCloudToPCD()
std::string getFieldsList(const sensor_msgs::PointCloud2 &cloud)
virtual void configCallback(Config &config, uint32_t level)
#define NODELET_WARN(...)
template Halfspace< double > transform(const Halfspace< double > &a, const Transform3< double > &tf)
bool savePCDCallback(std_srvs::Empty::Request &req, std_srvs::Empty::Response &res)
void fromPCL(const pcl::ModelCoefficients &pcl_mc, pcl_msgs::ModelCoefficients &mc)
void transformTFToEigen(const tf::Transform &t, Eigen::Affine3f &eigen)
PLUGINLIB_EXPORT_CLASS(jsk_pcl_ros_utils::PointCloudToPCD, nodelet::Nodelet)
ros::ServiceServer srv_save_pcd_server_
#define NODELET_INFO(...)
boost::shared_ptr< dynamic_reconfigure::Server< Config > > srv_
virtual void timerCallback(const ros::TimerEvent &event)
static tf::TransformListener * getInstance()
tf::TransformListener * tf_listener_
jsk_pcl_ros_utils
Author(s): Yohei Kakiuchi
autogenerated on Fri May 16 2025 03:11:43