[ros-users] Transforming point gives segmentation fault

Tully Foote tfoote at willowgarage.com
Fri Jul 30 17:53:34 UTC 2010


Sanja,
Is your crash repeatable?  Does it happen at startup?  Consistently with the
same data?   Is there any chance you could make a bag file with test code
which I could debug?  The only data manipulation within that method is a
find on an std::map<std::string, unsigned int> and it happens with a
protective lock for thread safety.

Tully

On Fri, Jul 30, 2010 at 10:38 AM, Sanja Popovic <sanja at mit.edu> wrote:

> This is the value of the point before the transformation:
> header:
>    seq: 92
>    stamp: 1280425929.966004043
>    frame_id: /base_footprint
>  point:
>    x: 0.72556
>    y: -0.186542
>    z: 0.690001
>
> I am running only pcl from the trunk (I had some problems with the
> visualizer, as you can see from the mails yesterday...). Even if I get rid
> of the visualizations and don't run anything from trunk, I still have the
> same problem.
>
> The function I'm calling the TF from has PC2 as a parameter, but I
> transform it to PCL PointCloud, but that still doesn't affect the TF because
> I make the stamped points separately. The header comes from the PCL
> PointCloud header and the coordinates are set based on data from the PC.
> ________________________________________
> From: Radu Bogdan Rusu [rusu at willowgarage.com]
> Sent: Friday, July 30, 2010 1:23 PM
> To: ros-users at code.ros.org
> Cc: Sanja Popovic
> Subject: Re: [ros-users] Transforming point gives segmentation fault
>
> Hehe, no worries about the spam. Can you check the values of your points
> just to be sure? Also, is this a clean setup?
> Aaaand also, I see some sensor_msgs::PointCloud2 references in there. I
> don't think TF supports PC2 natively yet (Tully
> - ?), unless you go through pcl_tf.
>
> CHeers,
> Radu.
>
> On 07/30/2010 10:20 AM, Sanja Popovic wrote:
> > Hi,
> >
> > Sorry for the spam today, but I'm having lots of problems with ROS.
> >
> > I want to transform a point using a tf, but I keep getting the
> segmentation fault. Here is the backtrace from the gdb:
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0xb78155de in tf::Transformer::lookupFrameNumber(std::string const&)
> const () from /opt/ros/cturtle/stacks/geometry/tf/lib/libtf.so
> > (gdb) bt
> > #0  0xb78155de in tf::Transformer::lookupFrameNumber(std::string const&)
> const () from /opt/ros/cturtle/stacks/geometry/tf/lib/libtf.so
> > #1  0xb780da37 in tf::Transformer::lookupTransform(std::string const&,
> std::string const&, ros::Time const&, tf::StampedTransform&) const ()
> >     from /opt/ros/cturtle/stacks/geometry/tf/lib/libtf.so
> > #2  0xb780e87a in tf::Transformer::transformPoint(std::string const&,
> tf::Stamped<btVector3>  const&, tf::Stamped<btVector3>&) const ()
> >     from /opt/ros/cturtle/stacks/geometry/tf/lib/libtf.so
> > #3  0xb781647b in tf::TransformListener::transformPoint(std::string
> const&, geometry_msgs::PointStamped_<std::allocator<void>  >  const&,
> geometry_msgs::PointStamped_<std::allocator<void>  >&) const () from
> /opt/ros/cturtle/stacks/geometry/tf/lib/libtf.so
> > #4  0x080662e2 in callback (cloudMessage=...) at
> /opt/ros/cturtle/stacks/lis/bookbot/src/tableFilter.cpp:253
> > #5  0x0807c285 in boost::detail::function::void_function_invoker1<void
> (*)(sensor_msgs::PointCloud2_<std::allocator<void>  >), void,
> sensor_msgs::PointCloud2_<std::allocator<void>  >  >::invoke
> (function_ptr=..., a0=...) at
> /usr/include/boost/function/function_template.hpp:112
> > #6  0x0807d58c in boost::function1<void,
> sensor_msgs::PointCloud2_<std::allocator<void>  >  >::operator()
> (this=0x8116148, params=...)
> >      at /usr/include/boost/function/function_template.hpp:1013
> > #7
>  ros::SubscriptionCallbackHelperT<sensor_msgs::PointCloud2_<std::allocator<void>
>  >, void>::call (this=0x8116148, params=...)
> >      at
> /opt/ros/cturtle/ros/core/roscpp/include/ros/subscription_callback_helper.h:173
> > #8  0xb7416fbb in ros::SubscriptionQueue::call (this=0x8118c48) at
> /opt/ros/cturtle/ros/core/roscpp/src/libros/subscription_queue.cpp:164
> > #9  0xb74593fa in ros::CallbackQueue::callOneCB (this=0x810c7e8,
> tls=0x81189a8) at
> /opt/ros/cturtle/ros/core/roscpp/src/libros/callback_queue.cpp:381
> > #10 0xb745a25f in ros::CallbackQueue::callAvailable (this=0x810c7e8,
> timeout=...) at
> /opt/ros/cturtle/ros/core/roscpp/src/libros/callback_queue.cpp:333
> > #11 0xb745e1e0 in ros::SingleThreadedSpinner::spin (this=0xbffff12c,
> queue=0x810c7e8) at
> /opt/ros/cturtle/ros/core/roscpp/src/libros/spinner.cpp:49
> > #12 0xb73e96d9 in ros::spin (s=...) at
> /opt/ros/cturtle/ros/core/roscpp/src/libros/init.cpp:493
> > #13 0xb73e9709 in ros::spin () at
> /opt/ros/cturtle/ros/core/roscpp/src/libros/init.cpp:488
> > #14 0x080650eb in listener (n=...) at
> /opt/ros/cturtle/stacks/lis/bookbot/src/tableFilter.cpp:269
> > #15 0x08066fa5 in main (argc=1, argv=0xbffff454) at
> /opt/ros/cturtle/stacks/lis/bookbot/src/tableFilter.cpp:276
> >
> > The call of function is nothing fancy, just
> tfListener->transformPoint(frame, point1, point2) where frame is a string
> and points 1 and 2 are PointStamped. tfListener is a global pointer to a
> transformListener in the code.
> >
> > Thanks a lot,
> > Sanja
> > _______________________________________________
> > ros-users mailing list
> > ros-users at code.ros.org
> > https://code.ros.org/mailman/listinfo/ros-users
>
> --
> | Radu Bogdan Rusu | http://rbrusu.com/
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>



-- 
Tully Foote
Systems Engineer
Willow Garage, Inc.
tfoote at willowgarage.com
(650) 475-2827
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20100730/dd299d4a/attachment-0003.html>


More information about the ros-users mailing list