Closed MiroslavKohut closed 1 year ago
Hi @MiroslavKohut ,
At first glance I don't see anything being misused, and can't really think of why my code would have a libc_free error here. Is this crash happening on the very first call to integrateCloud, or some time into the process?
One thing I notice, which shouldn't trigger a segfault but might confuse the algorithm, is that you don't seem to be passing in intrinsic information. With a 2064 x 1544 image, I'd be surprised if the default kinect focal length is going to be close. Another thing I'm curious about, is if this organized cloud is actually "organized" -- is it dense (i.e., are there exactly 2064x1544 points in row major order), or is this copy operation simply putting the points in a random location? Note in my integrate.cpp script, I'm doing the projective math to make sure cloud(x,y) = the point corresponding to pixel x,y. Note, also, that the accessor (*cloud)(x,y) = point is safer than directly modifying cloud->points, as PCL is probably doing some other stuff on the side.
A few random hunches for the segfault would be: some mistmatch in boost versions (i.e. I depend on boost, but so does PCL; worth checking), or this rather esoteric Eigen alignment issue (which I remember being a problem in grad school sometimes): https://eigen.tuxfamily.org/dox/group__TopicStlContainers.html . It'd be worth trying to guard that std::vector
Hi thanky you for your time and soon answer
The problem occurred at the begging. After I load data and call integrateCloud for the first time the program crashes. I also tried to put only empty organized cloud to the function and it crashed either. Thats why I dont think there is problem with my cloud data. Guarding std::vector of Eigen matrices did not help.
Could you do a quick check and see if my own integrate binary segfaults? That would help let us know if it has to do with clashing symbols / linker issues related to boost.
Your integrate binary works fine I was able to create output from you sample data
Ok I find a solution a resaved my data to pcd binary file and used your program for generating mesh :) it works without any problems. I still dont know where could be the problem in my solution but never mind. Thanks for your time :) and great cpu_tsdf package
I have one more questie here are my data that i get after transformation of clouds in my program And here is you output Is there a way to improve final mesh.ply ??
I made it looks nicer with manually increasing resolution to 8192 but it still throws away too much data as you can see on the first picture boxes has all the sides. Do I need to insert bigger dataset ? or is there any other problem
Hmm, I would hazard a guess this has to do with intrinsics not being right? It seems to be projecting quite roughly -- I've found that this can sometimes happen with high resolution images, since the odds of a voxel reprojecting perfectly at a given pixel get much lower. More clouds should definitely help debug the problem :)
Yeah it helped. Thank you very much for your time and help :)
If you try combinations of the --visualize and --cloud-only options in my integrate script, it might help debug the problem a bit -- showcases my aligned clouds (to ensure they're aligning right), and/or lets you step through the integration pipeline frame by frame.
Hi
I am using your program for generating TSDF volumes. I had pointclouds from 3d Scanner calibrated on the robot. I also have transformation matrixes of the camera frame in world coorditane system. When I try to call your integrateCloud method I always get segmentation fault. Here is my code
Here is GDB output
please can you help me what am I doing wrong
Thank you for your time