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

[FEATURE] lock degrees of freedom #91

Open
rejuce opened this issue Sep 24, 2024 · 3 comments
Open

[FEATURE] lock degrees of freedom #91

rejuce opened this issue Sep 24, 2024 · 3 comments

Comments

@rejuce
Copy link

rejuce commented Sep 24, 2024

It's already possible to lock the scale. For my 3D Rigid Problem I know already that scale is 1, and rotation happens only around z axis. So I want to lock rotations around x, y. Is this possible? Or can you point me at which part of the code I have to look at to make that modification?

@rejuce
Copy link
Author

rejuce commented Sep 24, 2024

do you think it is enough to modify the resulting new rotation matrix and zero the corresponding componentens in after line 80 in rigid_registration.py?

@gattia
Copy link
Collaborator

gattia commented Sep 24, 2024

To be honest, Im not positive. I think that seems like a reasonable idea. Though, its inclear to me if its optimal to just set these to zero. So, you're thinking you would just retain the elements in Rz from attached that are used for the rotation matrix (eg the top left 2x2) and then set the others to 0/1 accordingly?

This could work.

If you give it a try and it does work out, a pull request to merge it to the main repository would be greatly appreciated.

Screenshot 2024-09-24 at 11 25 20 AM

@gattia gattia closed this as completed Sep 24, 2024
@gattia gattia reopened this Sep 24, 2024
@rejuce
Copy link
Author

rejuce commented Sep 26, 2024

after the lin algebra magic at the lines before the resolting R is probably something like that
grafik
filtering one direction by 0 / 1 the corresponding components works because thats whats applied in the next iteration of the point cloud

restrictions are that i see:
A) only one direction can be filterd/allowed and 2 must be locked. it is not possible to allow 2 direction because of overlapping elemtns in R
B) the way the pcl converges might be altered, as from the in alg before rotation in all directions are assumen

nevertheless if it converges (even slower or faster) the final result of R should be correct for the direction.

I will add an artitional FilterDirection paramert and send you a PR

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