Rectangular Planar Point Cloud Bounding Box
Functional Description
This operator computes an oriented minimum bounding box (an oriented minimum bounding box is a cuboid that can be arbitrarily rotated and tightly encloses an object with the minimum volume; its edges are not necessarily parallel to the coordinate axes) for each input point cloud. It outputs the parameters of this oriented minimum bounding box, including the center point, dimensions, transformation matrix, normal vector, and an adjustable ROI.
Usage Scenarios
-
Precise Pose Estimation: Obtain the precise dimensions, center, and orientation of an object, especially for rectangular or nearly rectangular objects placed arbitrarily rotated on a plane.
-
Grasp Planning: Provide precise bounding box information for robot grasping, including the object’s length, width, height, and orientation.
-
Dimensional Measurement: Measure the 3D dimensions of an object.
-
ROI Generation: Generate an oriented ROI that tightly fits the object for subsequent fine processing or analysis.
Inputs and Outputs
Input Items |
Pointcloud: Input point cloud or list of point clouds, primarily for planar point clouds. Plane normals: A list containing plane normal vectors [nx, ny, nz] corresponding one-to-one with the input point cloud list. This normal vector defines the plane direction referenced when searching for the minimum area bounding box. |
Output Items |
Bounding box normal: A list of normal vectors (Nx3) of the plane where the calculated minimum bounding box lies. Bounding box center point: A list of center points (Nx3) for each calculated bounding box, the calculation method is determined by the Center point type parameter. Bounding box: A list of detailed information for each bounding box, including center, dimensions, and a 3x3 rotation transformation matrix. Bounding box size: A list of X, Y, Z dimensions (Nx3) for each bounding box. 3D ROI: A list of 3D ROIs generated based on the calculated bounding box, possibly scaled or adjusted. |
Parameter Description
This operator has two versions:
Both have identical core functionality and parameters, only differing in the type of point cloud data they process. |
Input Correspondence: The input Pointcloud list and the Plane normals list must correspond one-to-one, and the normal vector must be a valid 3D vector. |
Angle array range
Parameter Description |
The angle search range for rotating the point cloud around the input normal vector when searching for the minimum area bounding box. The operator will try different rotation angles within this range. |
Tuning Description |
Specify an angle range from 0 to this value. For example, setting it to 90 means searching for the optimal rotation angle between 0 and 90 degrees. If the possible orientation range of the object is known and small, this value can be appropriately reduced to improve speed. If the object can rotate arbitrarily, it usually needs to be set to 90 or 180 degrees to cover all possible in-plane rotations. |
Parameter Range |
[0, 180], Default: 90, Unit: degrees |
Angle array step
Parameter Description |
The angle increment when searching within the "Angle array range". |
Tuning Description |
Decreasing the step size can improve the accuracy of finding the optimal angle but will increase computation time. Increasing the step size has the opposite effect. The default value of 1.0 degree usually provides a good balance between accuracy and speed. |
Parameter Range |
[0, 50], Default: 1, Unit: degrees |
Center point type
Parameter Description |
Selects how the output "Bounding box center point" is calculated. |
Tuning Description |
|
Zoom method
Parameter Description |
Selects how to adjust (scale/expand) the final output 3D ROI region. |
Tuning Description |
|
Scale range in X direction/Scale range in Y direction/Z scaling range
Parameter Description |
Effective when "Zoom method" is set to "Specified value". Specifies the distance to expand outwards (positive value) or shrink inwards (negative value) in the X, Y, and Z directions of the bounding box, respectively. For example, x=10 means the ROI is 20mm wider in the X direction than the original bounding box (10mm added to each side). |
Tuning Description |
Used for precise control of ROI size, e.g., slightly expanding the ROI to include possible grasping error margins, or slightly shrinking it to exclude edge noise. |
Parameter Range |
[-5000, 10000], Default: 0, Unit: mm |
Scale X/Scale Y/Zoom
Parameter Description |
Effective when "Zoom method" is set to "Specified ratio", specifies the scaling factor for the ROI (and possibly the bounding box) in the X, Y, and Z directions, respectively. |
Tuning Description |
A scaling factor of 1 means maintaining the original size, greater than 1 means enlarging, and less than 1 means shrinking. For example, x=1.1 means the size of the ROI in the X direction becomes 1.1 times the original. |
Parameter Range |
[0, 5], Default: 1 |