[ros-users] Linking problems

Tully Foote tfoote at willowgarage.com
Wed Dec 8 18:00:17 UTC 2010


Hi Nicolas,
This looks similar to a double free crash, but without context not much can
be sure. Please send the entire error, especially the top and bottom for
context.

Tully

2010/12/8 Nicolás Alvarez Picco <nicolasapicco at hotmail.com>

>  Hi!
> I am running my program and after a while this thing appear in my terminal:
>
>
> 7faef3081000-7faef3084000 r--p 00051000 08:06 10881485
> /home/robot/src/ros/stacks/common/pluginlib/lib/libpoco_lite.so
> 7faef3084000-7faef3085000 rw-p 00054000 08:06 10881485
> /home/robot/src/ros/stacks/common/pluginlib/lib/libpoco_lite.so
> 7faef3085000-7faef308a000 r-xp 00000000 08:06 11406177
> /home/robot/src/ros/stacks/navigation/voxel_grid/lib/libvoxel_grid.so
> 7faef308a000-7faef3289000 ---p 00005000 08:06 11406177
> /home/robot/src/ros/stacks/navigation/voxel_grid/lib/libvoxel_grid.so
> 7faef3289000-7faef328a000 r--p 00004000 08:06 11406177
> /home/robot/src/ros/stacks/navigation/voxel_grid/lib/libvoxel_grid.so
> 7faef328a000-7faef328b000 rw-p 00005000 08:06 11406177
> /home/robot/src/ros/stacks/navigation/voxel_grid/lib/libvoxel_grid.so
> 7faef328b000-7faef32de000 r-xp 00000000 08:06 11012317
> /home/robot/src/ros/stacks/common/yaml_cpp/yaml-cpp/lib/libyaml-cpp.so.0.2.2
> 7faef32de000-7faef34dd000 ---p 00053000 08:06 11012317
> /home/robot/src/ros/stacks/common/yaml_cpp/yaml-cpp/lib/libyaml-cpp.so.0.2.2
> 7faef34dd000-7faef34de000 r--p 00052000 08:06 11012317
> /home/robot/src/ros/stacks/common/yaml_cpp/yaml-cpp/lib/libyaml-cpp.so.0.2.2
> 7faef34de000-7faef34df000 rw-p 00053000 08:06 11012317
> /home/robot/src/ros/stacks/common/yaml_cpp/yaml-cpp/lib/libyaml-cpp.so.0.2.2
> 7faef34df000-7faef34e3000 rw-p 00000000 00:00 0
> 7faef34e3000-7faef3513000 r-xp 00000000 08:06 10227460
> /home/robot/src/ros/stacks/laser_pipeline/laser_geometry/lib/liblaser_geometry.so
> 7faef3513000-7faef3713000 ---p 00030000 08:06 10227460
> /home/robot/src/ros/stacks/laser_pipeline/laser_geometry/lib/liblaser_geometry.so
> 7faef3713000-7faef3714000 r--p 00030000 08:06 10227460
> /home/robot/src/ros/stacks/laser_pipeline/laser_geometry/lib/liblaser_geometry.so
> 7faef3714000-7faef3716000 rw-p 00031000 08:06 10227460
> /home/robot/src/ros/stacks/laser_pipeline/laser_geometry/lib/liblaser_geometry.so
> 7faef3716000-7faef379d000 r-xp 00000000 08:06 11797446
> /home/robot/src/ros/stacks/navigation/costmap_2d/lib/libcostmap_2d.so
> 7faef379d000-7faef399c000 ---p 00087000 08:06 11797446
> /home/robot/src/ros/stacks/navigation/costmap_2d/lib/libcostmap_2d.so
> 7faef399c000-7faef399f000 r--p 00086000 08:06 11797446
> /home/robot/src/ros/stacks/navigation/costmap_2d/lib/libcostmap_2d.so
> 7faef399f000-7faef39a1000 rw-p 00089000 08:06 11797446
> /home/robot/src/ros/stacks/navigation/costmap_2d/lib/libcostmap_2d.so
> 7faef39a1000-7faef39ef000 r-xp 00000000 08:06 11143515
> /home/robot/src/ros/stacks/navigation/base_local_planner/lib/libbase_local_planner.so
> 7faef39ef000-7faef3bee000 ---p 0004e000 08:06 11143515
> /home/robot/src/ros/stacks/navigation/base_local_planner/lib/libbase_local_planner.so
> 7faef3bee000-7faef3bf0000 r--p 0004d000 08:06 11143515
> /home/robot/src/ros/stacks/navigation/base_local_planner/lib/libbase_local_planner.so
> 7faef3bf0000-7faef3bf1000 rw-p 0004f000 08:06 11143515
> /home/robot/src/ros/stacks/navigation/base_local_planner/lib/libbase_local_planner.so
> 7faef3bf1000-7faef3bff000 r-xp 00000000 08:06 11797475
> /home/robot/src/ros/stacks/navigation/rotate_recovery/lib/librotate_recovery.so
> 7faef3bff000-7faef3dff000 ---p 0000e000 08:06 11797475
> /home/robot/src/ros/stacks/navigation/rotate_recovery/lib/librotate_recovery.so
> 7faef3dff000-7faef3e00000 r--p 0000e000 08:06 11797475
> /home/robot/src/ros/stacks/navigation/rotate_recovery/lib/librotate_recovery.so
> 7faef3e00000-7faef3e01000 rw-p 0000f000 08:06 11797475
> /home/robot/src/ros/stacks/navigation/rotate_recovery/lib/librotate_recovery.so
> 7faef3e01000-7faef3e07000 r-xp 00000000 08:06 10488557
> /home/robot/src/ros/stacks/navigation/clear_costmap_recovery/lib/libclear_costmap_recovery.so
> 7faef3e07000-7faef4006000 ---p 00006000 08:06 10488557
> /home/robot/src/ros/stacks/navigation/clear_costmap_recovery/lib/libclear_costmap_recovery.so
> 7faef4006000-7faef4007000 r--p 00005000 08:06 10488557
> /home/robot/src/ros/stacks/navigation/clear_costmap_recovery/lib/libclear_costmap_recovery.so
> 7faef4007000-7faef4008000 rw-p 00006000 08:06 10488557
> /home/robot/src/ros/stacks/navigation/clear_costmap_recovery/lib/libclear_costmap_recovery.so
> 7faef4008000-7faef4034000 r-xp 00000000 08:06 11799525
> /home/robot/src/ros/stacks/navigation/navfn/lib/libnavfn.so
> 7faef4034000-7faef4233000 ---p 0002c000 08:06 11799525
> /home/robot/src/ros/stacks/navigation/navfn/lib/libnavfn.so
> 7faef4233000-7faef4235000 r--p 0002b000 08:06 11799525
> /home/robot/src/ros/stacks/navigation/navfn/lib/libnavfn.so
> 7faef4235000-7faef4236000 rw-p 0002d000 08:06 11799525
> /home/robot/src/ros/stacks/navigation/navfn/lib/libnavfn.so
> 7faef4236000-7faef424d000 r-xp 00000000 08:06 9964732
> /home/robot/src/ros/stacks/common/actionlib/lib/libactionlib.so
>
>
> This is just an extract of the long list.
> The code that I can show you for you to how more info is :
>
> bool Safety_Manager::is_PICS_safe (double x,double y,
> pcl::PointCloud<pcl::PointXYZ> pts_laser2){
>   vel_max=0.5;
>   double dist_obstacles, radio_cono= vel_max * time_step;
>   int size_cloud= pts_laser2.points.size();
>   for(size_t it = 0; it < size_cloud; it++){
>         dist_obstacles=sqrt(pow(pts_laser2.points[it].x-x,2)+
>                     pow(pts_laser2.points[it].y-y,2)); //distancia entre 2
> muestras consecutivas
>         if(dist_obstacles < radio_cono)
>             return false;
>   }
>
>   return (true);
> }
>
>
> Where the point cloud is the result of procesing the laser data receive
> from a simulated laser:
>
>
> void ROS_Link::Callback(const sensor_msgs::PointCloud2::ConstPtr& msglaser)
> {
>     pcl::PointCloud<pcl::PointXYZ>  laser_finish;
>     pcl::fromROSMsg(*msglaser, laser_ready);
>
>     double diffsamples=0;
>     double diffcompare=0.5; // Value calculated considering the laser
> features
>     int size_cloud=laser_ready.points.size();
>     int pointsize=size_cloud;
>
>
>     for(size_t it = 0; it < size_cloud; it++){
>
>
> diffsamples=sqrt(pow(laser_ready.points[it].x-laser_ready.points[it-1].x,2)+
>
> pow(laser_ready.points[it].y-laser_ready.points[it-1].y,2)); //distancia
> entre 2 muestras consecutivas
>         if(diffsamples > diffcompare){
>              int cant_newpts=ROS_Link::samplePointsOnLine
> (laser_ready.points[it],laser_ready.points[it-1], diffcompare,pts);
>              pointsize=cant_newpts+pointsize;
>              laser_ready.points.resize (pointsize);
>              laser_ready.width = pointsize;
>              laser_ready.height = 1;
>              laser_ready+=pts;
>          }
>
>     }
>     pcl::toROSMsg(laser_ready,laser_topublish);
>     cloud_finish_pub.publish(laser_topublish);
>
> }
>
>     /** \brief Sample points on a line (formed from p1 and p2) using a
> given
>                 * resolution <res>
>                 * \param p1 the first point
>                 * \param p2 the second point
>                 * \param res the resolution of the line
>                 * \param pts the resultant points
>                 */
> int    ROS_Link::samplePointsOnLine (pcl::PointXYZ p1, pcl::PointXYZ p2,
> double res, pcl::PointCloud<pcl::PointXYZ> &pts){
>
>                     pts=laser_ready;
>                     Eigen3::Vector4f dp = p2.getVector4fMap () -
> p1.getVector4fMap ();
>                     // Compute the distance between the two points
>                     double dist = dp.norm ();
>                     dp.normalize ();
>
>                     Eigen3::Vector4f axis_x (1.0, 0.0, 0.0,0.0), axis_y
> (0.0, 1.0, 0.0, 0.0), axis_z (0.0, 0.0, 1.0, 0.0);
>                     // Compute the axis increments
>                     double dx = res * dp.dot (axis_x);
>                     double dy = res * dp.dot (axis_y);
>                     double dz = res * dp.dot (axis_z);
>
>                     int nr_pts = dist / res;
>                     if (nr_pts < 1)
>                     return (0);
>
>                     pts.points.resize (nr_pts);
>                     pts.width = nr_pts; pts.height = 1;
>                     for (int m = 0; m < nr_pts; ++m)
>                     {
>                         pts.points[m].x = (m + 1) * dx + p1.x;
>                         pts.points[m].y = (m + 1) * dy + p1.y;
>                         pts.points[m].z = (m + 1) * dz + p1.z;
>                     }
>                     return (nr_pts);
>     }
>
> I suppose this is a problem of memory and linking, but I don't have any
> idea how can I solve this problem. So I hear ideas!!!!!!
>
> Thanksssssssss
>
> Nicolas
>
>
> _______________________________________________
> 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/20101208/a6984517/attachment-0003.html>


More information about the ros-users mailing list