[ros-users] Transforming point gives segmentation fault
Sanja Popovic
sanja at MIT.EDU
Fri Jul 30 17:38:32 UTC 2010
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/
More information about the ros-users
mailing list