MinimumBoundingBox 最小包围立方体
MinimumBoundingBox 算子用于根据目标上表面点云来获取点云的最小立方体包围框,常用于箱包等物体的姿态定位。
type | 功能 |
---|---|
SimpleMVBB | 获取点云的最小立方体包围框,与 ApproxMVBB 功能类似。推荐使用 SimpleMVBB,运算速度更快。 |
ApproxMVBB | 获取点云的最小立方体包围框。本算子与 SimpleMVBB 算子功能一致,不再进行介绍。 |
算子参数
-
包围立方体/box
:设置包围框在 3D 视图中的可视化属性。-
打开包围框可视化。
-
关闭包围框可视化 。
-
设置 3D 视图中包围框的颜色。取值范围:[-2,360] 。默认值:-1 。
-
设置包围框的透明度。取值范围:[0,1] 。默认值:0.5 。
-
-
包围立方体中心坐标/box_pose
:设置包围框中心点 pose 在 3D 视图中的可视化属性。-
打开包围框中心点 pose 可视化。
-
关闭包围框中心点 pose 可视化。
-
设置包围框中心点 pose 的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。
-
-
包围立方体列表/box_list
:设置包围框列表在 3D 视图中的可视化属性。 值描述与包围立方体
一致。 -
包围立方体列表中心坐标/box_pose_list
:设置包围框中心点 pose 列表在 3D 视图中的可视化属性。 值描述与包围立方体中心坐标
一致。
数据信号输入输出
输入:
说明:根据需求选择 cloud 或者 cloud_list 其中一种数据信号输入即可。
-
cloud
:-
数据类型:PointCloud
-
输入内容:点云数据
-
-
cloud_list
:-
数据类型:PointCloudLIst
-
输入内容:点云数据列表
-
-
ref_pose
:-
数据类型:Pose
-
输入内容:参照 pose 数据
说明:当连接 ref_pose ,结果 Cube 则会参照算子左侧的 ref_pose 端口输入的 pose 姿态进行 Height - Width - Depth 同 X Y Z 的匹配。如果该端口不连接数据,则 Height - Width - Depth 同 X Y Z 的匹配是随机的。一般我们选择连接该参数,并且给 ref_pose 端口输入 Pose(0,0,0,0,0,0) 即可。
-
输出:
-
box
:-
数据类型:Cube
-
输出内容:最小立方体包围框
-
-
box_pose
:-
数据类型:Pose
-
输出内容:最小立方体包围框 pose 数据
-
-
box_list
:-
数据类型:Cubelist
-
输出内容:最小立方体包围框列表
-
-
box_pose_list
:-
数据类型:Poselist
-
输出内容:最小立方体包围框 pose 列表数据
-
功能演示
使用 MinimumBoundingBox 获取加载点云的最小立方体包围框,并根据生成的原点 pose 进行姿态匹配。
步骤1:算子准备
添加 Trigger 、Load 、Emit 、MinimumBoundingBox 算子至算子图。
步骤2:设置算子参数
-
设置 Load 算子参数:
-
类型 → PointCloud
-
文件 → → 选择点云文件名( example_data/pointcloud/model.pcd )
-
点云 → 可视
-
-
设置 Emit 算子参数:
-
类型 → Pose
-
坐标 → 0 0 0 0 0 0
-
坐标 → 可视
-
-
设置 MinimumBoundingBox 算子参数:
-
包围立方体 → 可视
-
包围立方体中心坐标 → 可视
-
步骤3:连接算子
步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
结果如下图所示,在 3D 视图中加载的点云以及 MinimumBoundingBox 的结果。最小包围框 Cube 和中心点 pose 。