Open stepelle90 opened 2 years ago
I am running into something similar. If i do not give the icp algorithm an initial transformation matrix i get it a little further.
It still does not run properly and gives the error: [Open3D Error] (int64 cdecl open3d::core::SizeVector::GetLength(void) const) D:\a\Open3D\Open3D\cpp\open3d\core\SizeVector.cpp:126: Cannot get length of a 0-dimensional shape.
Is there any solution to this?
Hi im currently trying to figure out how to use global registration (ransac) on tensors/ GPU. How did you do that? The global registration tutorial was about legacy pointclouds, not the tensors.
Checklist
master
branch).Describe the issue
I have been trying the tutorial "Pipelines (Tensor)" -> ICP Registration on two pint cloud of three million points. The global registration runs perfect.
But as I run the second part of the code, the local registration (vanilla, but also the multi scale gave me the same issue) the registration function gives me a strange error.
The funtion flag me that the input aguments are not right. But actually they are right.
I tried to change everyting and the results doesn't change. Is it a bug or did I miss somethigs?
Thanks a lot!
Steps to reproduce the bug
Error message
:: Load two point clouds and disturb initial pose. :: Prepare point cloud :: Downsample with a voxel size 1.000. :: Estimate normal with search radius 2.000. :: Compute FPFH feature with search radius 5.000. :: Downsample with a voxel size 1.000. :: Estimate normal with search radius 2.000. :: Compute FPFH feature with search radius 5.000. :: RANSAC registration on downsampled point clouds. Since the downsampling voxel size is 1.000, we use a liberal distance threshold 1.500. Global registration took 0.787 sec.
RegistrationResult with fitness=6.322398e-01, inlier_rmse=3.790970e-01, and correspondence_set size of 10523 Access transformation to get result. Traceback (most recent call last):
TypeError: icp(): incompatible function arguments. The following argument types are supported:
Invoked with: PointCloud with 16644 points., PointCloud with 17280 points., 0.5, [[1.0 0.0 0.0 0.0], [0.0 1.0 0.0 0.0], [0.0 0.0 1.0 0.0], [0.0 0.0 0.0 1.0]] Tensor[shape={4, 4}, stride={4, 1}, Float32, CPU:0, 0x13ae4e8e350], TransformationEstimationPointToPoint, ICPConvergenceCriteria[relativefitness=1.000000e-06, relative_rmse=1.000000e-06, maxiteration=50]., 0.2, True
Expected behavior
The expected inputs of treg.icp() are the same of the actually inputs. I don't see any errors but the code breaks.
Open3D, Python and System information
Additional information
No response