ros-perception / laser_geometry

Provides the LaserProjection class for turning laser scan data into point clouds.
BSD 3-Clause "New" or "Revised" License
157 stars 114 forks source link

When I use the function projectorLaser(), the core dumped. #69

Open Oyssster opened 4 years ago

Oyssster commented 4 years ago

I wirte a laserscanSub callback function which is used to process the laser scan.But when I try to projectroLaser the sensor_msgs::LaserScan to sensor_msgs::PointCloud, I get the result: Segmentation fault(core dumped).The code is as below:

void Scanprocess::laserscanSubCallback(const sensor_msgs::LaserScanConstPtr &msg)
{
    if (msg == NULL)
    {
        ROS_INFO("msg is a nullptr.");
        return;
    }
    std::cout << msg << std::endl;
    projector_->projectLaser(*msg, cloud_in_scan_);
}

I find the reason is :aborting core dump writing, size exceeds current limit 1048576.The address of msg is bigger than the limit.Could someone give me some suggestions?

jonbinney commented 4 years ago

@Oyssster hard to tell. I'd suggest catching this in gdb and poking at the fields and addresses of msg and cloud_in_scan_ not see if anything looks suspicious. It looks like cloud_in_scan_ is a member variable of Scanprocess; is it possible that this callback gets called after the instance of Scanprocess is destroyed?