[ros-users] [PCL]: seg fault in convertCloudToArray

Ivan Dryanovski ivan.dryanovski at gmail.com
Thu Jul 7 22:21:43 UTC 2011


I am getting a similar segfault error in convertCloudToArray. I am
working on Ubuntu 10.10, 64-bit. I am using the latest libpcl-dev
installed from binaries. The same code ran ok when I used the
perception_pcl ros stack instead.

Below is the code I'm running

void pointCloudCallback(const sensor_msgs::PointCloud2::ConstPtr& cloud_in_msg)
{
  PointCloudT::Ptr cloud_in_ptr = boost::make_shared<PointCloudT>();
  pcl::fromROSMsg(*cloud_in_msg, *cloud_in_ptr);

  pcl::IterativeClosestPoint<PointT, PointT> reg;

  pcl::KdTreeFLANN<PointT>::Ptr tree =
    boost::make_shared<pcl::KdTreeFLANN<PointT> > ();

  reg.setRadiusSearch<PointT>(tree, 0.20, "f");
  reg.setTransformationEpsilon (icp_tf_epsilon_);
  reg.setMaxCorrespondenceDistance (icp_max_corresp_dist_);
  reg.setMaximumIterations (icp_max_iterations_);

  reg.setInputCloud  (cloud_in_ptr);
  reg.setInputTarget (cloud_in_ptr);
}

The call to setInputCloud produces this error:

Program received signal SIGSEGV, Segmentation fault.
0x01bdf3e7 in pcl::KdTreeFLANN<pcl::PointXYZRGB>::convertCloudToArray(pcl::PointCloud<pcl::PointXYZRGB>
const&) ()
   from /usr/local/lib/libpcl_kdtree.so.1

This is the backtrace from gdb:

#0  0x01bdf3e7 in
pcl::KdTreeFLANN<pcl::PointXYZRGB>::convertCloudToArray(pcl::PointCloud<pcl::PointXYZRGB>
const&) ()
   from /usr/local/lib/libpcl_kdtree.so.1
#1  0x01befb64 in
pcl::KdTreeFLANN<pcl::PointXYZRGB>::setInputCloud(boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGB>
const> const&, boost::shared_ptr<std::vector<int, std::allocator<int>
> const> const&) ()
   from /usr/local/lib/libpcl_kdtree.so.1
#2  0x0806e243 in pcl::Registration<pcl::PointXYZRGB,
pcl::PointXYZRGB>::setInputTarget(boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGB>
const> const&) ()
#3  0x0805f266 in
kinect_pose_est::KinectPoseEst::pointCloudCallback(boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void>
> const> const&) ()
#4  0x08067d15 in
boost::detail::function::void_function_obj_invoker1<boost::function<void
()(boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> >
const> const&)>, void,
boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> >
const> >::invoke(boost::detail::function::function_buffer&,
boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void> >
const>) ()
#5  0x08067dc9 in
ros::SubscriptionCallbackHelperT<boost::shared_ptr<sensor_msgs::PointCloud2_<std::allocator<void>
> const> const&,
void>::call(ros::SubscriptionCallbackHelperCallParams&) ()
#6  0x00d85b72 in ros::SubscriptionQueue::call (this=0xb4702840)
    at /tmp/buildd/ros-diamondback-ros-comm-1.4.6/debian/ros-diamondback-ros-comm/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/src/libros/subscription_queue.cpp:164
#7  0x00dca34a in ros::CallbackQueue::callOneCB (this=0x8098010, tls=0xb4703080)
    at /tmp/buildd/ros-diamondback-ros-comm-1.4.6/debian/ros-diamondback-ros-comm/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/src/libros/callback_queue.cpp:381
#8  0x00dcaa3f in ros::CallbackQueue::callAvailable (this=0x8098010,
timeout=...)
    at /tmp/buildd/ros-diamondback-ros-comm-1.4.6/debian/ros-diamondback-ros-comm/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/src/libros/callback_queue.cpp:333
#9  0x00dd1010 in ros::SingleThreadedSpinner::spin (this=0xbfffe63c,
queue=0x8098010)
    at /tmp/buildd/ros-diamondback-ros-comm-1.4.6/debian/ros-diamondback-ros-comm/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/src/libros/spinner.cpp:49
#10 0x00d55859 in ros::spin (s=...)
    at /tmp/buildd/ros-diamondback-ros-comm-1.4.6/debian/ros-diamondback-ros-comm/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/src/libros/init.cpp:493
#11 0x00d55889 in ros::spin ()
    at /tmp/buildd/ros-diamondback-ros-comm-1.4.6/debian/ros-diamondback-ros-comm/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/src/libros/init.cpp:488
#12 0x0806f64b in main ()

Thanks,
Ivan



More information about the ros-users mailing list