What are the possibly causes of decodePointCloud call to freeze up

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

What are the possibly causes of decodePointCloud call to freeze up

david.stecker
In the stack object_manipulation/compressed_pointcloud_transport

When I call decodePointCloud the call is locking up. Rxgraph is unable to communicate with the node denoted by the double red circle.

decodePointCloud is a function in pcl::octree::PointCloudCloudCompression<PointT>

Any ideas what could be causing this?

Also where is the source code for decodePointCloud?

When I check the code out given at https://code.ros.org/svn/wg-ros-pkg/stacks/object manipulation/branches/0.4-branch the compressed_pointcloud_transport code is missing?

Thanks,

David Stecker***********************************************************************************************************************************************************************************************
Please consider the environment before printing this e-mail.

This message is intended solely for the individual(s) and entity(s) addressed. It is confidential and may contain legally privileged information. The use, copying or distribution of this
message or any information it contains, by anyone other than the addressee, is prohibited. If you have received this message in error, please notify [hidden email]. The mailbox address
from which this message has been sent is for business mail only. Mail sent to it may be subject to security scanning and delivery on non-business messages sent to this address may not occur.
Thank you.
***********************************************************************************************************************************************************************************************

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users

Reply | Threaded
Open this post in threaded view
|

Re: What are the possibly causes of decodePointCloud call to freeze up

Radu B Rusu
Administrator
David,

You're asking a question about a ROS package. The correct place for ROS support is http://answers.ros.org.

I would try contacting the author of that package. Btw
http://www.ros.org/wiki/object_manipulation/compressed_pointcloud_transport doesn't seem to exist -- are you sure this
package hasn't been deprecated or maybe hasn't even been released yet?

The source code for decodePointCloud is available in the PCL repository. See
http://dev.pointclouds.org/projects/pcl/repository/show/trunk/io/include/pcl/compression for example.

Cheers,
Radu.

On 06/20/2012 12:43 PM, [hidden email] wrote:

> In the stack object_manipulation/compressed_pointcloud_transport
>
> When I call decodePointCloud the call is locking up. Rxgraph is unable to communicate with the node denoted by the
> double red circle.
>
> decodePointCloud is a function in pcl::octree::PointCloudCloudCompression<PointT>
>
> Any ideas what could be causing this?
>
> Also where is the source code for decodePointCloud?
>
> When I check the code out given at https://code.ros.org/svn/wg-ros-pkg/stacks/objectmanipulation/branches/0.4-branch the
> compressed_pointcloud_transport code is missing?
>
> Thanks,
>
> David
> Stecker***********************************************************************************************************************************************************************************************
> Please consider the environment before printing this e-mail.
>
> This message is intended solely for the individual(s) and entity(s) addressed. It is confidential and may contain
> legally privileged information. The use, copying or distribution of this
> message or any information it contains, by anyone other than the addressee, is prohibited. If you have received this
> message in error, please notify [hidden email]. The mailbox address
> from which this message has been sent is for business mail only. Mail sent to it may be subject to security scanning and
> delivery on non-business messages sent to this address may not occur.
> Thank you.
> ***********************************************************************************************************************************************************************************************
>
>
>
> _______________________________________________
> [hidden email] / http://pointclouds.org
> http://pointclouds.org/mailman/listinfo/pcl-users
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: What are the possibly causes of decodePointCloud call to freeze up

Barry Ridge
This post has NOT been accepted by the mailing list yet.
In reply to this post by david.stecker
Hi,

Perhaps this will be helpful to some people out there.

I have encountered some problems with pcl::io::OctreePointCloudCompression::decodePointCloud freezing up, which sounds similar to the problem David described above.  It seems to occur when reading from a file and the file pointer gets to the end of the file stream and decodePointCloud is called.

I don't know what's causing the problem as I haven't looked into the decodePointCloud code, but I figured out a work-around:

ifstream compressedPCFile;
compressedPCFile.open (inFilePath.c_str(), ios::in | ios::binary);
compressedPCFile.seekg (0);
compressedPCFile.unsetf (ios_base::skipws);

// Grab the file size...
std::streampos file_size;
file_size = fileSize(inFilePath.c_str());

while (!compressedPCFile.eof())
{
    PointCloud<PointXYZRGBA>::Ptr cloudOut (new PointCloud<PointXYZRGBA> ());
    octreeCoder->decodePointCloud ( compressedPCFile, cloudOut);
           
    if (cloudOut->size() > 0)
    {
        // Do interesting stuff...
    }

    // Hack: OctreePointCloudCompression::decodePointCloud seems to
    // freeze once it gets to the end of the file, so we need to
    // break out of this loop before that happens.
    std::streampos file_position = 0;
    file_position = compressedPCFile.tellg();

    if (file_position >= file_size)
        break;
}

Cheers,
Barry