-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some questions about surface feature extraction #283
Comments
Hi, |
In the first half of that function so to get the surface points, it seems like at every iteration in the feature extractor function, all the points other than edges are begin downsampled and accumulated into |
fyi: LIO-SAM/src/mapOptmization.cpp Lines 1225 to 1247 in 3a3d82f
When turning it off, the small campus dataset worked fine even if using |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Hello, Shan, I had read the article and watched the LIO-SAM and LVI-SAM demo on YouTube, there are amazing work.
And I'm reading the codes to get further understanding of whole system now.
BUT, I found something really confusing me, at
featureExtraction.cpp, function
extractFeatures()
, line 202,I saw that a point belongs to planar feature will be labeled as -1 in the array called
cloudLabel
.In which part makes me confused is, at line 227 of featureExtraction.cpp, below the labeling part mentioned before,
if (cloudLabel[k] <= 0){ surfaceCloudScan->push_back(extractedCloud->points[k]); }
It seems like you chosed not only points labeled as -1 but also labeled as 0.
To check out this part, I visualized the
surfaceCloud
that published by the publisher calledpubSurfacePoints
at rviz, here's the result:Some points should not belongs to planar feature(like points of trees) had been extracted, cuz of pushing not only -1 but also 0 labeled points into surfaceCloudScan.
So I tryed to change
if (cloudLabel[k] <= 0){ surfaceCloudScan->push_back(extractedCloud->points[k]); }
with
if (cloudLabel[k] < 0){ surfaceCloudScan->push_back(extractedCloud->points[k]); }
to save planar features properly, and the visualize result like below:
It seems like extracted some "real" planar features, although are sparse.
But after I changed that, every time when I test with the dataset named campus_large_dataset.bag,
It crashed at the timestamp of
[PAUSED ] Bag Time: 1572807852.632124 Duration: 430.792850 / 994.965750
like below:Although I had double checked the
/config/params.yaml
to ensure parameters were configured properly.And the WARN message is:
[ WARN] [1632731906.350954159]: Large velocity, reset IMU-preintegration!
Maybe it's because of lacking of features after I changed code like that, I guess.
Is this a bug or just I misunderstood the codes of that part? Because I had checked the same part of LVI-SAM at featureExtraction.cpp, it's exactly the same as:
if (cloudLabel[k] <= 0){ surfaceCloudScan->push_back(extractedCloud->points[k]); }
But in my opinion, a points labeled as '0' should not belongs to planar feature, since the value of each points in the label container
cloudLabel
, would be initialized as 0 by default.So how could I fix this problem? Expecting for your reply.
The text was updated successfully, but these errors were encountered: