MinimumBoundingBox 最小包围立方体

MinimumBoundingBox 算子用于根据目标上表面点云来获取点云的最小立方体包围框,常用于箱包等物体的姿态定位。

type 功能
快速 获取点云的最小立方体包围框,与 ApproxMVBB 功能类似。推荐使用 SimpleMVBB,运算速度更快。
标准 获取点云的最小立方体包围框。本算子与 SimpleMVBB 算子功能一致,不再进行介绍。

MinimumBoundingBox 算子用于根据目标上表面点云来获取点云的最小立方体包围框,常用于箱包等物体的姿态定位。

算子参数

  • 模式:指定计算最小包围框的模式。

    • 使用参照坐标:使用参照坐标系来计算最小包围框。

    • X>Y>Z:按照 X、Y、Z 轴的顺序来计算最小包围框。

模式→使用参照坐标:

选择后在,算子输入端口添加参考坐标输入端口。
  • 采样点数:指定用于计算最小包围框的采样点数。

  • RX参考值:指定 X 轴方向的参考值,从以下角度中选择最接近的值:0、-90、90、-180/180。

模式→X>Y>Z:

  • 采样点数:指定用于计算最小包围框的采样点数。

  • Z轴朝向:指定 Z 轴朝向。

    • 世界坐标系 Z 轴正向:Z 轴朝向世界坐标系的正方向。

    • 世界坐标系 Z 轴负向:Z 轴朝向世界坐标系的负方向。

  • X轴朝向

    • 世界坐标系 X 轴正向:X 轴朝向世界坐标系的正方向。

    • 世界坐标系 X 轴负向:X 轴朝向世界坐标系的负方向。

    • 世界坐标系 Y 轴正向:X 轴朝向世界坐标系的 Y 轴正方向。

    • 世界坐标系 Y 轴负向:X 轴朝向世界坐标系的 Y 轴负方向。

  • RX参考值:指定 X 轴方向的参考值,从以下角度中选择最接近的值:0、-90、90、-180/180。

  • 包围立方体/box:设置包围框在 3D 视图中的可视化属性。

    • icon_visOn 打开包围框可视化。

    • icon_visOff 关闭包围框可视化 。

    • icon_color 设置 3D 视图中包围框的颜色。取值范围:[-2,360] 。默认值:-1 。

    • icon_opacity 设置包围框的透明度。取值范围:[0,1] 。默认值:0.5 。

  • 包围立方体中心坐标/box_pose:设置包围框中心点 pose 在 3D 视图中的可视化属性。

    • icon_visOn 打开包围框中心点 pose 可视化。

    • icon_visOff 关闭包围框中心点 pose 可视化。

    • icon_size 设置包围框中心点 pose 的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。

  • 包围立方体列表/box_list:设置包围框列表在 3D 视图中的可视化属性。 值描述与 包围立方体 一致。

  • 包围立方体列表中心坐标/box_pose_list:设置包围框中心点 pose 列表在 3D 视图中的可视化属性。 值描述与 包围立方体中心坐标 一致。

数据信号输入输出

输入:

说明:根据需求选择点云或者点云列表其中一种数据信号输入即可。

  • 点云

    • 数据类型:PointCloud

    • 输入内容:点云数据

  • 点云猎豹

    • 数据类型:PointCloudLIst

    • 输入内容:点云数据列表

  • 参考坐标

    • 数据类型:Pose

    • 输入内容:参照 pose 数据

      说明:当连接参考坐标,结果包围立方体则会参照算子左侧的参考坐标端口输入的 pose 姿态进行 Height - Width - Depth 同 X Y Z 的匹配。如果该端口不连接数据,则 Height - Width - Depth 同 X Y Z 的匹配是随机的。一般我们选择连接该参数,并且给参考坐标端口输入 Pose(0,0,0,0,0,0) 即可。

输出:

  • 包围立方体

    • 数据类型:Cube

    • 输出内容:最小立方体包围框

  • 包围立方体中心坐标

    • 数据类型:Pose

    • 输出内容:最小立方体包围框 pose 数据

  • 包围立方体列表

    • 数据类型:Cubelist

    • 输出内容:最小立方体包围框列表

  • 包围立方体列表中心坐标

    • 数据类型:Poselist

    • 输出内容:最小立方体包围框 pose 列表数据

功能演示

使用 MinimumBoundingBox 获取加载点云的最小立方体包围框,并根据生成的原点 pose 进行姿态匹配。

步骤1:算子准备

添加 Trigger 、Load 、Emit 、MinimumBoundingBox 算子至算子图。

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → 点云

    • 文件 → icon_more → 选择点云文件名( example_data/pointcloud/model.pcd )

    • 点云 → icon_visOn 可视

  2. 设置 Emit 算子参数:

    • 类型 → 坐标

    • 坐标 → 0 0 0 0 0 0

    • 坐标 → icon_visOn 可视

  3. 设置 MinimumBoundingBox 算子参数:

    • 类型 → 标准

    • 模式 → 使用参照坐标

    • 包围立方体 → icon_visOn可视

    • 包围立方体中心坐标 → icon_visOn可视

步骤3:连接算子

image-20241107150554532

步骤4:运行

点击 RVS 运行按钮,触发 Trigger 算子。

运行结果

结果如下图所示,在 3D 视图中加载的点云以及 MinimumBoundingBox 的结果。最小包围框 Cube 和中心点 pose 。

3D_MinimumBoundingBox_result