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 视图中的可视化属性。-
打开线性轮廓点云可视化。
-
关闭线性轮廓点云可视化。
-
设置 3D 视图中点云的颜色。取值范围:[-2,360] 。默认值:-1 。
-
设置点云中点的尺寸。取值范围:[1,50] 。默认值:1 。
-
数据信号输入端口
输入:
-
cloud
:-
数据类型:PointCloud
-
输入内容:点云原始点云
-
-
ref_cube
:-
数据类型:Cube
-
输入内容:参照立方体
-
输出:
-
crop_cloud
:-
数据类型:PointCloud
-
输出内容:原始点云裁剪后的点云
-
-
line_cloud
:-
数据类型:PointCloud
-
输出内容:根据裁剪点云进行探测获得的线性轮廓点云
-
功能演示
使用 GeometryProbe 算子中 Line 将加载点云在给定的旋转立方体内裁剪,并沿着立方体的某个指定轴方向进行线性轮廓探测。
步骤1:算子准备
添加 Trigger 、Load 、Emit 、GeometryProbe(2个) 算子至算子图。
步骤2:设置算子参数
-
设置 Emit 算子参数:
-
类型 → cube
-
坐标 → 0.199179 0.26519 0.092586 2.61142 -2.82994 3.07943
-
宽度 → 0.02
-
高度 → 0.01
-
深度 → 0.005
-
立方体 → 可视
-
坐标 → 可视
-
-
设置 Load 算子参数:
-
类型 → PointCloud
-
文件 → → 选择点云文件名( example_data/pointcloud/cloud.pcd )
-
点云 → 可视
-
-
设置 GeometryProbe 算子参数
-
类型 → Line
-
探测方向 → y-
-
圆锥体顶角度 → 45
-
有效点百分比数 → 10
-
步进值 → 5
-
有效点云 → 可视
-
线段点云 → 可视
-
-
设置GeometryProbe_1算子参数
-
类型 → Line
-
探测方向 → x-
-
圆锥体顶角度 → 45
-
有效点百分比数 → 10
-
步进值 → 5
-
有效点云 → 可视
-
线段点云→ 可视
-
步骤3:连接算子
步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
-
如下图所示,可见到点云(局部)显示如下 。
-
打开Emit算子的cube可视化,第二次运行 trigger 算子,并调整 cube 的长宽高以及轴向,生成的 Cube( 红色轴为 x,绿色轴为 y,蓝色轴为 z )如下所示。
-
最后更改两个 GeometryProbe 算子的 probe_direction 属性,分别探测 y 轴负方向以及x轴负方向的线性轮廓,两者共同的 crop_cloud 的显示效果以及两者分别的点云探测结果如下。
Circle
将 GeometryProbe 算子的 类型
设置为 Circle ,用于根据原始点云以及初始圆心的位置,探测内圆或者外圆轮廓。
算子参数
-
探测方向/probe_direction
:探测方向。-
external:代表从点云外面朝向预估圆心的方向探测外圆轮廓。
-
internal:代表从点云内部朝向预估圆心的方向探测内圆轮廓。
-
-
圆锥体顶角度/circular_cone_angle
:排除锥的角度,一般保持默认的45度角即可。” external “ 模式下,以有效点云的某个点为顶点,同预估圆心的连线作为轴线终点,根据该锥角可以在空间作一个圆锥,被该圆锥囊括的所有其他点会被排除,之后遍历其他点重复迭代;” internal “ 模式下,顶点改为预估圆心,轴线终点改为有效点云的某个点。 -
有效点百分比数/valid_points_percentage
:有效点百分比数。 -
步进值/step_value
:根据排除锥进行排除迭代运算时的步长,一般保持默认即可,该值一般对效率有所影响,不会影响精度。 -
有效点云/valid_cloud
:对预处理后的有效点云进行显示控制,默认为关闭状态,参数介绍如下所示。 -
圆圈点云/circle_cloud
:对最终圆形轮廓点云进行显示控制。-
打开最终圆形轮廓点云可视化。
-
关闭最终圆形轮廓点云可视化。
-
设置 3D 视图中点云的颜色。取值范围:[-2,360] 。默认值:-1 。
-
设置点云中点的尺寸。取值范围:[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:设置算子参数
-
设置 Load 算子参数:
-
类型 → pointcloud
-
文件 → → 选择点云文件名( example_data/pointcloud/circle_crop.pcd )
-
点云 → 可视
-
-
设置 GeometryProbe 算子参数:
-
类型 → Circle
-
探测方向 → external
-
圆锥体顶角度 → 70
-
有效点百分比数 → 5
-
步进值 → 5
-
圆圈点云→ 可视
-
-
设置GeometryProbe_1算子参数:
-
类型 → Circle
-
探测方向 → internal
-
圆锥体顶角度 → 45
-
有效点百分比数 → 5
-
步进值 → 5
-
圆圈点云→ 可视
-
-
设置 CloudProcess 算子参数:
-
类型 → CloudCentroid
-
坐标→ 可视
-
步骤3:连接算子
步骤4:运行
点击 RVS 运行按钮,触发 Trigger 算子。
运行结果
-
3D 视图中显示如下。左图为 Load 算子的点云可视化,右图为 CloudProcess 算子的pose可视化。
-
后续运行效果示意图,分别展示如下:
-
左图:打开 GeometryProbe 算子( external 模式)的 valid_cloud 的可视化选项,右图:打开 GeometryProbe 算子( external 模式)的 circle_cloud 的可视化选项的局部放大图。
-
左图:打开 GeometryProbe 算子( internal 模式)的 valid_cloud 的可视化选项。右图:打开 GeometryProbe 算子 ( internal 模式) 的 circle_cloud 的可视化选项的局部放大图。