Comments (4)
Hi Jahead,
Thanks for reporting. I'll need to investigate your problem more precisely. In your example, there are few points and you use an outlier filter which will reduce even more the number of points. Maybe this exception is throw before/instead of a proper one which should say "not enough points" or something like that. I'm on the road for some days so I'll check that later. If you could check that, it would be great.
Meanwhile, here are the answers to your questions:
- The use of yaml or not shouldn't influence the exception. Only the type of errorMinimizer from which this exception is thrown.
- the function correctParameters() is not use automatically because there is often another problem in the code for which it is important to notify the developers. The problem with this function is that it will always find an orthogonal even with a random matrix. If you know that the exception is thrown by rounding error that cumulate or you're very close to an orthogonal matrix, then you can use it. Otherwise, one should be careful with it.
If you develop new modules to suit your needs, we are always happy to have more contributors!
from libpointmatcher.
Sorry for the late reply. Thank you for your response.
It does seems the low point count is a problem. The new beta version of the leap motion sdk, is now giving us more points so I've been updating and porting the code to handle a larger points set.
I"ll try not using an outlier filter when I get around to use ICP again; which should be soon. But I wasn't getting the "not enough points" exception. we concluded (not tested) that the icp was not having enough pairs to do its work and the only pairs that were detected were becoming co linear. Our the data points are only approximations that get approximated based separately, therefore the points be can related to the same 'joint' but have slightly different xyz points.
Hope that gives you a bit more context.
from libpointmatcher.
The larger the point cloud did help. 22 points and we aren't seeing this exception. Which is interesting that I wasn't getting the "not enough points" exception.
from libpointmatcher.
Hi jahead,
So looking at the code a bit more. There is no safety for a minimal number of in the errorMinimizer. There was a check for singularity in point-to-plane based on the rank of the matrix but it was commented out because it was throwing too often.
It is tricky to put a hard threshold on the number of points given that in theory it should be 3, but in practice it is often more than that.
I'll reopen another issue with a clearer description in case somebody has already though about it.
from libpointmatcher.
Related Issues (20)
- Constrain transform increment directionally HOT 4
- how to improve icp resolution HOT 2
- Question about removal of the Center Of Mass in Point-To-Plane ICP HOT 3
- Add libpointmatcher to Awesome C++
- Supporting a newer version of C++ HOT 3
- icp result visualize HOT 1
- Undefined symbols for architecture x86_64: "Nabo::NearestNeighbourSearch<double, Eigen::Matrix<doubl... HOT 7
- Linking issue when compiling with python HOT 8
- X-ICP code to detect and mitigate the degeneracy HOT 3
- Boost as dynamic dependency
- Building error new release HOT 7
- Transformation tests failing on some platforms
- std::shared_ptr<PointMatcher<float>::Matcher> kdtree HOT 3
- package.xml version was not bumped to latest version 1.4.0 HOT 1
- Bug: CMake error on doxygen doc compilation HOT 2
- Bug: build fail on ubuntu jammy with utest compilation HOT 2
- Scaling is applied to the normals descriptor in SimilarityTransformation class
- Bug: build fail on Ubuntu bionic and focal on linux/arm64 when running utest while LPM is compiled with --cmake-build-type Debug HOT 4
- find_dependency(yaml-cpp REQUIRED)
- Python bindings build fail on Ubuntu 24.04
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libpointmatcher.