-
Notifications
You must be signed in to change notification settings - Fork 99
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
Orientations (yaw, pitch and roll) are very different for similar 3D points #125
Comments
Are you still looking for a solution? |
Yes, I am. |
Hi @oqilipo! |
@preethamam |
What does the variable 'axes' contain in your code snippet?
I extended the example of orientedBox3d a little bit. Maybe this helps:
|
Hi preethamam |
@oqilipo just in case if you need the full program to produce the exact issue that I have raised. Here I have attached it: Full program and data.zip. |
Maybe this is what you want to do?
|
@oqilipo what was wrong with oriented box 3D? Could you please help me with how can it be done with oriented box 3D? Because I feel it is easier to visualize the orientation of the box than an ellipsoid. |
Hi there, I played a bit with the data, and here are few thoughts:
It seems to be difficult to find a generic and robust way to register point clouds based on global features alone... Maybe a more global algorihtm such a Iterative Closest Point could by more effective in this case? Best, |
Hello Everybody, Thank you for the suggestions and answers! The intention of using the oriented box 3D for source and target point clouds is to move them as much closer into the same coordinate reference. Then, later to use Iterative Closest Point to fine register them. This has two advantages, to help ICP and to create ground-truth orientations that can train deep learning-based models. I used the code posted by @oqilipo and plotted the ellipsoids. Here is what I got: Why are some points are outside after fitting an equivalent ellipsoid? Also, it was quite difficult to understand the orientations of the axes. Shouldn't they be almost parallel to the XYZ axes, as the point clouds are already? When I plot the point clouds, I see they are already close to each other in this example. Would you please let me know if there are any other robust ways to align the point clouds parallel to XYZ axes? |
You may use equivalentEllipsoid for the registration of the source to the target (this is a sufficient prealligment for an rICP) and afterwards you use orientedbox3d to create a transformation to align the data with the XYZ planes. However, the latter might not be necessary. |
But, why are some points are outside after fitting an equivalent ellipsoid? How to understand the orientations of the axes. Shouldn't they be almost parallel to the XYZ axes, as the point clouds are already? |
equivalentEllipsoid uses a PCA. See Wikipedia for more information. |
Hi, |
Thanks @dlegland! I will look into it. |
registerPoints3d_icp.m and registerPoints3dAffine.m could be combined into one function registerPoints3d.m and the user can select the method by in input parameter? |
Yes, that could be an option. One has to check if output args are similar in both cases. As both can be represented with Affine Transform matrices that should work. I'll try to have a look. |
I can have a look into it. |
Yes, if you have time this can be fine. |
See #198 |
I've added an example in the header of "registerPoints3d" It works for the 'icp' algorithm, but not for the 'affine' algorithm. You might have a look at it. |
Hi David:
I needed your help really bad.
I have two 3D point clouds that are oriented very similarly. When I use the
orientedbox3d,
the orientations, yaw. pitch and roll angles are very different. Aren't they should be similar?
Figure 1,
OOBB1 = -2.7616 -1.2016 -3.5781 223.5262 215.7089 54.8219 -178.3561 1.8756 -7.0416
Figure 3,
OOBB3 = 0.9134 -1.2887 -5.8636 216.6893 214.4492 62.4261 -87.0472 8.7291 -178.4361
Below are figures 1 and 3:
The main objective is to re-orient the point clouds parallel to XY, YZ, and XZ planes. Below is the code snippet that does it.
The reorientation yaw, pitch and roll angles are:
Figure 2,
OOBB2 = 2.9106 1.5406 -3.3209 223.5262 215.7089 54.8219 -0.0000 0.0000 0.0000
Figure 4,
OOBB4 = -2.8909 -0.9726 5.6143 283.9288 286.8387 62.4261 -134.6658 -0.0000 0.0000
Output figures after re-orientation are below. They should reorient similar to figures 1 and 3 (by planes). But what I am getting is totally different.
How do get aligned point clouds to figure 1 and 3 that are reoriented parallel to XY, YZ, and XZ planes?
@dlegland, Please help. I need to fix this soon to get a project going.
The text was updated successfully, but these errors were encountered: