Find propeller rotation axis using point cloud

2 次查看(过去 30 天)
I've 3D-scanned a 3-blade drone propeller, and obtained a point cloud. I wanna find out the rotation axis of the propeller. I figure that if you do a fitting translation vector t and rotation quaternion q, and then do another 120 degree rotation, the three blades will align, and you could do a least square fitting, provided that you create some mesh interpolation of the points to account for that the points are not matching.
What you need to find out is t and q.
Basically, this is a math problem with seven unknowns and thousands of equations, so there should be some fairly exact solution to find.
I've attached the point cloud P as a Nx3 array. The point cloud is manually aligned roughly to [0,0,1], but not very accurately.
Here's how I imagine the process. First, create a boundary B using the boundary function. Then find some equation system that applies a 120 degree rotation along the axis defined by t and q. Solve for t and q to minimize that distances between B and the points in P.
Here are some slides on fitting in openVSP: OpenVSP fitting
Here's some info on solving rotational problems using Singular Value Decomposition:
What I'm looking for is combining these method to get an automatic, high accuracy result that does not require any manual gauging of centers of gravity, etc. I think it's possible, but my brain hurts just thinking of it.

回答(2 个)

Jim Riggs
Jim Riggs 2018-4-7
编辑:Jim Riggs 2018-4-7
This problem is similar to ones that I have worked in my career in missile development. You have inspection data from aerodynamic surfaces and you want to determine if they are in alignment with the required tolerance. In your case, you want to compute a reference axis that puts all three blades in the same plane. To work a problem like this, I would attempt to use the data points which are most relevant to the problem. Let's assume that all of the inspection points have the same error. It is further assumed that all three blades have the same nominal shape. In order to specify the plane of the propeller blade, the points further away from the hub are more useful, since they contain the most information regarding the angular alignment - i.e. they have the smallest angle per unit error. So I would focus on using points further from the hub.
It is also informative to compare the aerodynamic shapes of the three blades, so I would approach this problem as follows:
1) locate the center of the propeller system, perhaps using x-z cross sections of the hub to identify the center of the hub circle. Adjust the data center to this point and perform all subsequent rotations relative to this point.
2) define a radius, near the propeller tip, and construct the surface profile for each of the three blades along this circle (as in the first figure, below).
3) Each of these profiles is plotted relative to it's blade axis. (as in the left part of the second figure).
4) The objective is to determine two angle rotations (about x and z) that will cause these three misaligned profiles to align with each other. The simplest way to do this is to find the maximum point in each of the three profiles, and compute x and z rotations that put these three points at the same y value.
The advantage to an approach such as this is that it also gives a comparison of the relative shapes of the three blades. If one of the blades is warped, it will be revealed. By reproducing the analysis at different radius values, it will show if any of the blades are bent relative to the others.

Matt J
Matt J 2018-4-7
编辑:Matt J 2018-4-7
Can you capture point clouds at multiple, uniformly spaced rotations? If so, you could just fit a 3D circle to the superposition of all the clouds, the center of which will give you the axis location. Or, could you put a fiducial marker on one of the blades and track it through multiple propeller angles? If so, you could fit a 3D circle to the marker locations.
  3 个评论
Anders Forslund
Anders Forslund 2018-4-8
Thanks Matt! Unfortunately, the point clouds are not captured at uniformely spaced rotations. what I am looking for is a mathematical method that solves the problem automatically with a high degree of accuracy, and does not require any manual gauging of e.g. fiduciary points. I have added some extra text in the question to clarify.
Matt J
Matt J 2018-4-8
编辑:Matt J 2018-4-8
I still think my previous suggestion is applicable. Computing the centroids from different point clouds doesn't require any manual intervention, and fitting a 3D circle to those points does not require that the blade positions be captured at uniformly spaced angles.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by