[ros-users] Problems with normal estimation (segmentation fault)
Florian Seidel
seidel.florian at googlemail.com
Thu Jul 21 06:27:33 UTC 2011
Hi Dejan,
the problem had something to do with my PCL version. The version I
used had a but in the binary PCD format. I updated to version 0.9 and
recreated all the PCD files in ascii format.
Cheers,
Flo
On Wed, Jul 20, 2011 at 8:58 PM, Dejan Pangercic
<dejan.pangercic at gmail.com> wrote:
> Hi Florian,
> did you manage to solve this?
> The test files shall be in pcl/build/pcl/test folder.
> D.
>
> On Wed, Jun 8, 2011 at 4:37 AM, Florian Seidel
> <seidel.florian at googlemail.com> wrote:
>> Hey there,
>>
>> I have a problem with normal estimation and hope that someone can help
>> me figuring this out.
>> I have two installations of ros on two different Ubuntu machines.
>> The code in question runs without problems on one installation.
>> On the other using the same pcd files the code quits with a segmentation
>> fault.
>>
>> This is the code:
>>
>> typename PointCloud<PT>::Ptr cloud(new PointCloud<PT> ());
>> sensor_msgs::PointCloud2 cloud_blob;
>>
>> if (reader.read(p.string(), cloud_blob) != -1) {
>> pcl::fromROSMsg(cloud_blob, *cloud);
>> } else {
>> throw PCDLoaderException(
>> string("Can't load cloud from file: ") + p.filename());
>> }
>>
>> typename KdTreeFLANN<PT>::Ptr kdTree =
>> make_shared<KdTreeFLANN<PT> > ();
>>
>> kdTree->setInputCloud(cloud);
>>
>> pcl::IndicesConstPtr indices = createIndices(cloud->size());
>>
>> NormalEstimation<PT,pcl::Normal> normalEstimator;
>> normalEstimator.setInputCloud(cloud);
>>
>>
>> normalEstimator.setSearchMethod(kdTree);
>> normalEstimator.setIndices(indices);
>> normalEstimator.setKSearch(10);
>> normalEstimator.compute(*normals);
>>
>> I use the pcl version which ships with diamondback but also tried
>> pcl_unstable from the repo (cloned it 2 days ago).
>>
>> This is a stack trace of the segmentation fault.
>>
>> pcl::KdTreeFLANN<pcl::PointXYZ>::nearestKSearch() at
>> kdtree_flann.hpp:80 0x7ffff0cf7e10
>> pcl::KdTreeFLANN<pcl::PointXYZ>::nearestKSearch() at
>> kdtree_flann.h:183 0x507753
>> boost::_mfi::mf4<int, pcl::KdTree<pcl::PointXYZ>, int, int,
>> std::vector<int, std::allocator<int> >&, std::vector<float,
>> std::allocator<float>
>> >&>::call<boost::shared_ptr<pcl::KdTree<pcl::PointXYZ> >, int,
>> int, std::vector<int, std::allocator<int> >, std::vector<float,
>> std::allocator<float> > >() at mem_fn_template.hpp:485 0x505af5
>> boost::_mfi::mf4<int, pcl::KdTree<pcl::PointXYZ>, int, int,
>> std::vector<int, std::allocator<int> >&, std::vector<float,
>> std::allocator<float> >&>::operator() at mem_fn_template.hpp:499
>> 0x5050d2
>> boost::_bi::list5<boost::reference_wrapper<boost::shared_ptr<pcl::KdTree<pcl::PointXYZ> > >, boost::arg<1>, boost::arg<2>, boost::arg<3>, boost::arg<4> >::operator() at bind.hpp:508 0x503b79
>> boost::_bi::bind_t<int, boost::_mfi::mf4<int,
>> pcl::KdTree<pcl::PointXYZ>, int, int, std::vector<int,
>> std::allocator<int> >&, std::vector<float, std::allocator<float>
>> >&>,
>> boost::_bi::list5<boost::reference_wrapper<boost::shared_ptr<pcl::KdTree<pcl::PointXYZ> > >, boost::arg<1>, boost::arg<2>, boost::arg<3>, boost::arg<4> > >::operator() at bind_template.hpp:145 0x501a39
>> boost::detail::function::function_obj_invoker4<boost::_bi::bind_t<int, boost::_mfi::mf4<int, pcl::KdTree<pcl::PointXYZ>, int, int, std::vector<int, std::allocator<int> >&, std::vector<float, std::allocator<float> >&>, boost::_bi::list5<boost::reference_wrapper<boost::shared_ptr<pcl::KdTree<pcl::PointXYZ> > >, boost::arg<1>, boost::arg<2>, boost::arg<3>, boost::arg<4> > >, int, int, double, std::vector<int, std::allocator<int> >&, std::vector<float, std::allocator<float> >&>::invoke() at function_template.hpp:132 0x4fefd7
>> boost::function4<int, int, double, std::vector<int,
>> std::allocator<int> >&, std::vector<float, std::allocator<float>
>> >&>::operator() at function_template.hpp:1.013 0x7ffff1eb6bb8
>> pcl::Feature<pcl::PointXYZ, pcl::Normal>::searchForNeighbors()
>> at feature.h:355 0x7ffff1f0aca2
>> pcl::NormalEstimationOMP<pcl::PointXYZ,
>> pcl::Normal>::computeFeature() at normal_3d_omp.hpp:58
>> 0x7ffff1f0aca2
>>
>> I wanted to run the unittest files which come with pcl_unstable but
>> couldn't find them. So maybe as a first step someone could tell me where
>> they are located. ( I executed "make test" in pcl_unstable/pcl/ )
>>
>> Cheers,
>>
>> Flo
>>
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>
>
>
> --
> MSc. Dejan Pangercic
> PhD Student/Researcher
> Intelligent Autonomous Systems Group
> Technische Universität München
> Telephone: +49 (89) 289-26908
> E-Mail: dejan.pangercic at cs.tum.edu
> WWW: http://ias.cs.tum.edu/people/pangercic
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
More information about the ros-users
mailing list