Point Cloud Normal Estimation
Functional Description
This operator is used to estimate the surface normal vector for each point in the input point cloud data.
A normal vector is a 3D vector perpendicular to the local surface at a point, representing the orientation of that point.
The operator uses a K-Nearest Neighbors based method: for each point in the point cloud, it finds its K nearest neighbors, then fits a local plane through these neighbors. The normal vector of this plane is used as the estimated normal vector for that point.
Usage Scenarios
-
Feature Extraction: Normal vectors and their distribution are important geometric features that can be used for tasks like point cloud matching, segmentation, and recognition.
-
Plane Fitting and Detection: Normal vector information helps identify and segment planar regions.
-
Surface Analysis: Analyze surface curvature, smoothness, etc., of an object.
-
Robot Grasping: Normal vector information may be needed to determine the graspability of an object’s surface or to calculate grasping poses.
Inputs and Outputs
Input Items |
Pointcloud : Input point cloud or list of point clouds, containing only XYZ coordinate information. |
Output Items |
With Normal Point Cloud : Output point cloud or list of point clouds. In addition to the original XYZ coordinates, each point is appended with its estimated normal vector information. |
Parameter Description
|
Viewpoint
Parameter Description |
Defines a 3D coordinate [X, Y, Z], usually the origin of the camera coordinate system [0, 0, 0], used to adjust the direction of the calculated normal vectors. |
Tuning Description |
A normal vector has two possible directions (pointing into or out of the surface). After the operator calculates the initial normal vector, it computes the angle between the vector from the current point to the viewpoint and the initial normal vector. If the angle is greater than 90 degrees, the operator reverses the normal vector to ensure that the normal vector generally points towards the viewpoint direction. |
Parameter Range |
Default: [0,0,0] |
Search count
Parameter Description |
When estimating the normal vector for each point, this is the number of surrounding neighboring points to find. These neighbors are used to fit a small plane, and the normal vector of that plane becomes the normal vector for the point. |
Tuning Description |
|
Parameter Range |
[0, 1000000], Default: 15 |