[ros-users] PCL nodelet PointCloudConcatenateFieldsSynchronizer

Radu Bogdan Rusu rusu at willowgarage.com
Wed Sep 29 18:46:51 UTC 2010


Dear Felix,

On 09/29/2010 11:39 AM, Felix Ruess wrote:
> Hi,
>
> I'm using the pcl::concatenateFields(cloud_a, cloud_b, cloud_out)
> function to concatenate
>    pcl::PointCloud<pcl::PointXYZ>  cloud_a;
>    pcl::PointCloud<pcl::Normal>  cloud_b;
> to
>    pcl::PointCloud<pcl::PointNormal>  cloud_out;
> and it works great!

Thanks! We're happy to hear that.


> Is there any possibility to specify the output cloud type for the
> nodelet pcl/PointCloudConcatenateFieldsSynchronizer somehow as well?
> (This is used in the normal estimation launch file for example).

By output cloud type you mean you want to copy only certain fields, and not all? That is, if you have

PointCloud<PointXYZ> a;
PointCloud<Normal> b;

you want
PointCloud<PointXYNormal> c
instead of
PointCloud<PointXYZNormal> c

?

> The problem I have with the nodelet is that I'm trying to convert the
> output pointcloud2 message to
>      struct PointNormal;
>      // Members: float x, y, z; uint32_t w; float normal[3], curvature;
> to read the data.
> Now of course this does not work as the padding w is missing from the
> output pointcloud2 message I get from the nodelet since it "only"
> concatenates the existing fields of the input clouds.
>
> So, is there some way to adapt the nodelet to output a pointcloud2
> message that corresponds to a specific pcl PointCloud<specified point
> type>?

In general yes, we've been working on making that possible by publishing pcl::PointCloud<T> types instead of 
sensor_msgs::PointCloud2 types. However, that's not fully finished yet (CC-ing Patrick who is the mastermind behind all 
that magic).

>
> P.S. I did not sent this to pcl-users because the nodelet lives in pcl_ros

You can definitely send it there as pcl-users@ deals both with PCL _and_ PCL_ROS. :)

Cheers,
Radu.



More information about the ros-users mailing list