Skip to content
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

Single frame registration problem! #36

Open
987428377 opened this issue Apr 17, 2024 · 1 comment
Open

Single frame registration problem! #36

987428377 opened this issue Apr 17, 2024 · 1 comment

Comments

@987428377
Copy link

987428377 commented Apr 17, 2024

Thank you very much for your excellent work!
I am trying to use STC to match the current scanned point cloud with a part of the point cloud established by Fastlio, achieving rapid map repositioning.

I extracted a point cloud within a range of 50 meters around a center point on the map and used one frame of the point cloud from that center point for operation.

The first step is to perform a self set translation and rotation transformation on a frame of point cloud, and then downsample the scanned point cloud and some point clouds:
down_sampling_voxel (* center_cloud, config_setting. ds_size_);
down_sampling_voxel (* onescand_cloud dev, config_setting. ds_size_);

Step 2, I generated a local point cloud descriptor and added it to STDescs:
std:: vectorstds_vec;
std_manager ->GenerateSTDescs (temp_cloud, stds vec);
std_manager ->AddSTDescs (stds vec);

Step 3: I will scan the point cloud to generate a descriptor
std:: vectorstds_vec_;
std_manager ->GenerateSTDescs (onescanc_cloud dev, stds vec_);

Finally, I attempted to use SearchLoop to obtain translation rotation and print
std_manager ->SearchLoop (stdsvec_, search_result, loop_transform, loop_std_pair);
std::cout << ANSI_COLOR_RED << "loop_Translation: " << loop_transform.first << std::endl;
std::cout << ANSI_COLOR_RED << "loop_rotation: " << loop_transform.second << std::endl;
std:: cout<<std:: endl;

I found that the translation is 0 0 0 0 and the rotation is the unit matrix.

More importantly, I performed translation and rotation transformations on the local point cloud and matched the results with itself, but still failed

How can I set parameters to increase the number of key points in a point cloud to improve registration accuracy? Or is my usage incorrect?

73fe58edaaf0cfcfeb860117787fa981
a630479e5d66e5d6cfac8f03a2da957c

Looking forward to your reply!

@minghongss
Copy link

我也碰到你类似的问题。我认为:1)在之前的issue中作者也提到过目前的std对于ds_size_参数十分敏感,没办法很好确保关键点提取的一致性;2)只用一帧当前帧的点云与你的局部地图进行匹配可能是太少了,可以尝试累积多帧或者让车辆动起来,实现local-to-local map的匹配,在开源的代码中也是用到了类似的做法。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants