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 and it happens with a protective lock for thread safety. Tully On Fri, Jul 30, 2010 at 10:38 AM, Sanja Popovic 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@willowgarage.com] > Sent: Friday, July 30, 2010 1:23 PM > To: ros-users@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 const&, tf::Stamped&) const () > > from /opt/ros/cturtle/stacks/geometry/tf/lib/libtf.so > > #3 0xb781647b in tf::TransformListener::transformPoint(std::string > const&, geometry_msgs::PointStamped_ > const&, > geometry_msgs::PointStamped_ >&) 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 (*)(sensor_msgs::PointCloud2_ >), void, > sensor_msgs::PointCloud2_ > >::invoke > (function_ptr=..., a0=...) at > /usr/include/boost/function/function_template.hpp:112 > > #6 0x0807d58c in boost::function1 sensor_msgs::PointCloud2_ > >::operator() > (this=0x8116148, params=...) > > at /usr/include/boost/function/function_template.hpp:1013 > > #7 > ros::SubscriptionCallbackHelperT > >, 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@code.ros.org > > https://code.ros.org/mailman/listinfo/ros-users > > -- > | Radu Bogdan Rusu | http://rbrusu.com/ > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > -- Tully Foote Systems Engineer Willow Garage, Inc. tfoote@willowgarage.com (650) 475-2827