GeometryProbe 几何探测

GeometryProbe 算子用于在原始点云的指定区域中筛选出符合要求的轮廓点云。

type 功能
Line 将原始点云在给定的旋转立方体内裁剪,并沿着立方体的某个指定轴方向进行线性轮廓探测。
Circle 根据原始点云以及初始圆心的位置,探测内圆或者外圆轮廓点云。

Line

将 GeometryProbe 算子的 类型 设置为 Line ,用于将原始点云在给定的旋转立方体内裁剪,并沿着立方体的某个指定轴方向进行线性轮廓探测。

算子参数

  • 探测方向/probe_direction:探测方向。包含 “x+” , “x-” , “y+” , “y-” , “z+” , “z-” 六个选项。例如,”x+” 代表沿着 ref_cube 的 x 正轴方向,从 ref_cube 的外面朝向里面进行探测。

  • 圆锥体顶角度/circular_cone_angle:排除锥的角度,一般保持默认的45度角即可。以原始点云在裁剪区域内的某个点为顶点,以上述探测方向作为轴线方向,根据该锥角可以在空间作一个圆锥,被该圆锥囊括的所有其他点会被排除,之后遍历其他点重复迭代,通俗的理解为切割出圆锥以外的点云进行处理。

  • 有效点百分比数/valid_points_percentage:有效点云比例。即对裁剪后的点云进行预排除时的保留比例。

  • 步进值/step_value:根据排除锥进行排除迭代运算时的步长 。一般保持默认即可。该值一般对效率有所影响,不会影响精度

  • 有效点云/valid_cloud:设置裁剪后的点云在 3D 视图中的可视化属性。

  • 线段点云/line_cloud:设置最终的线性轮廓点云在 3D 视图中的可视化属性。

    • icon_visOn 打开线性轮廓点云可视化。

    • icon_visOff 关闭线性轮廓点云可视化。

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

    • icon_size 设置点云中点的尺寸。取值范围:[1,50] 。默认值:1 。

数据信号输入端口

输入:

  • cloud

    • 数据类型:PointCloud

    • 输入内容:点云原始点云

  • ref_cube

    • 数据类型:Cube

    • 输入内容:参照立方体

输出:

  • crop_cloud

    • 数据类型:PointCloud

    • 输出内容:原始点云裁剪后的点云

  • line_cloud

    • 数据类型:PointCloud

    • 输出内容:根据裁剪点云进行探测获得的线性轮廓点云

功能演示

使用 GeometryProbe 算子中 Line 将加载点云在给定的旋转立方体内裁剪,并沿着立方体的某个指定轴方向进行线性轮廓探测。

步骤1:算子准备

添加 Trigger 、Load 、Emit 、GeometryProbe(2个) 算子至算子图。

步骤2:设置算子参数

  1. 设置 Emit 算子参数:

    • 类型 → cube

    • 坐标 → 0.199179 0.26519 0.092586 2.61142 -2.82994 3.07943

    • 宽度 → 0.02

    • 高度 → 0.01

    • 深度 → 0.005

    • 立方体 → icon_visOn 可视

    • 坐标 → icon_visOn 可视

  2. 设置 Load 算子参数:

    • 类型 → PointCloud

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

    • 点云 → icon_visOn 可视

  3. 设置 GeometryProbe 算子参数

    • 类型 → Line

    • 探测方向 → y-

    • 圆锥体顶角度 → 45

    • 有效点百分比数 → 10

    • 步进值 → 5

    • 有效点云 → icon_visOn 可视

    • 线段点云 → icon_visOn 可视

  4. 设置GeometryProbe_1算子参数

    • 类型 → Line

    • 探测方向 → x-

    • 圆锥体顶角度 → 45

    • 有效点百分比数 → 10

    • 步进值 → 5

    • 有效点云 → icon_visOn 可视

    • 线段点云→ icon_visOn 可视

步骤3:连接算子

3D_GeometryProbe_Line_nodes

步骤4:运行

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

运行结果

  1. 如下图所示,可见到点云(局部)显示如下 。

    3D_GeometryProbe_Line_result1

  2. 打开Emit算子的cube可视化,第二次运行 trigger 算子,并调整 cube 的长宽高以及轴向,生成的 Cube( 红色轴为 x,绿色轴为 y,蓝色轴为 z )如下所示。

    3D_GeometryProbe_Line_result2

  3. 最后更改两个 GeometryProbe 算子的 probe_direction 属性,分别探测 y 轴负方向以及x轴负方向的线性轮廓,两者共同的 crop_cloud 的显示效果以及两者分别的点云探测结果如下。

    3D_GeometryProbe_Line_result2

Circle

将 GeometryProbe 算子的 类型 设置为 Circle ,用于根据原始点云以及初始圆心的位置,探测内圆或者外圆轮廓。

算子参数

  • 探测方向/probe_direction:探测方向。

    • external:代表从点云外面朝向预估圆心的方向探测外圆轮廓。

    • internal:代表从点云内部朝向预估圆心的方向探测内圆轮廓。

  • 圆锥体顶角度/circular_cone_angle:排除锥的角度,一般保持默认的45度角即可。” external “ 模式下,以有效点云的某个点为顶点,同预估圆心的连线作为轴线终点,根据该锥角可以在空间作一个圆锥,被该圆锥囊括的所有其他点会被排除,之后遍历其他点重复迭代;” internal “ 模式下,顶点改为预估圆心,轴线终点改为有效点云的某个点。

  • 有效点百分比数/valid_points_percentage:有效点百分比数。

  • 步进值/step_value:根据排除锥进行排除迭代运算时的步长,一般保持默认即可,该值一般对效率有所影响,不会影响精度。

  • 有效点云/valid_cloud:对预处理后的有效点云进行显示控制,默认为关闭状态,参数介绍如下所示。

  • 圆圈点云/circle_cloud:对最终圆形轮廓点云进行显示控制。

    • icon_visOn 打开最终圆形轮廓点云可视化。

    • icon_visOff 关闭最终圆形轮廓点云可视化。

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

    • icon_size 设置点云中点的尺寸。取值范围:[1,50] 。默认值:1 。

数据信号输入端口

输入:

  • cloud

    • 数据类型:PointCloud

    • 输入内容:点云原始点云

  • initial_pose

    • 数据类型:Pose

    • 输入内容:原始点云的圆心位置估计,实际仅使用 Pose 的 xyz 三个数值

输出:

  • valid_cloud

    • 数据类型:PointCloud

    • 输出内容:原始点云预处理后保留的有效点云

  • circle_cloud

    • 数据类型:PointCloud

    • 输出内容:根据有效点云进行探测获得的圆形轮廓点云

功能演示

使用 GeometryProbe 算子中 Circle ,用于根据加载点云以及初始圆心的位置,探测内圆或者外圆轮廓点云。

步骤1:算子准备

添加 Trigger 、Load 、CloudProcess、GeometryProbe (2个)算子至算子图。

步骤2:设置算子参数

  1. 设置 Load 算子参数:

    • 类型 → pointcloud

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

    • 点云 → icon_visOn 可视

  2. 设置 GeometryProbe 算子参数:

    • 类型 → Circle

    • 探测方向 → external

    • 圆锥体顶角度 → 70

    • 有效点百分比数 → 5

    • 步进值 → 5

    • 圆圈点云→ icon_visOn 可视

  3. 设置GeometryProbe_1算子参数:

    • 类型 → Circle

    • 探测方向 → internal

    • 圆锥体顶角度 → 45

    • 有效点百分比数 → 5

    • 步进值 → 5

    • 圆圈点云→ icon_visOn 可视

  4. 设置 CloudProcess 算子参数:

    • 类型 → CloudCentroid

    • 坐标→ icon_visOn 可视

步骤3:连接算子

3D_GeometryProbe_Circle_nodes

步骤4:运行

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

运行结果

  1. 3D 视图中显示如下。左图为 Load 算子的点云可视化,右图为 CloudProcess 算子的pose可视化。

    3D_GeometryProbe_Circle_result

  2. 后续运行效果示意图,分别展示如下:

  • 左图:打开 GeometryProbe 算子( external 模式)的 valid_cloud 的可视化选项,右图:打开 GeometryProbe 算子( external 模式)的 circle_cloud 的可视化选项的局部放大图。

3D_GeometryProbe_Circle_result_exreral

  • 左图:打开 GeometryProbe 算子( internal 模式)的 valid_cloud 的可视化选项。右图:打开 GeometryProbe 算子 ( internal 模式) 的 circle_cloud 的可视化选项的局部放大图。

3D_GeometryProbe_Circle_result_internal