移除垛盘点云

功能描述

该算子设计用于处理放在垛盘上的点云数据,可接收一个包含多个点云的列表,尝试识别出代表垛盘的点云,并将其与代表物体的点云分离开。算子通过分析点云的数量和空间位置(特别是高度)来判断哪个点云是垛盘,同时它会计算并输出一个围绕物体点云的ROI。

使用场景

  • 机器人拆垛/码垛 : 在自动化拆垛或码垛应用中,需要将垛盘与垛盘上的货物分离开,以便单独处理货物或定位垛盘本身。

  • 点云预处理 : 作为点云处理流程的一部分,去除场景中的支撑结构(如垛盘、桌面),只保留感兴趣的物体点云。

输入输出

输入项

聚类后点云:包含一个或多个点云的列表(通常代表物体簇和垛盘)。

输出项

垛盘点云:被识别为垛盘的点云(可能为None)。

移除后点云:输入列表中移除了垛盘点云后剩余的点云列表。

点云ROI:包含垛盘点云的ROI三维包围盒。

参数说明

该算子有两个版本:

  • 移除垛盘点云 : 处理不带法线信息的点云。

  • 移除垛盘点云(带法向) : 处理带有法线信息的点云。

两者核心功能和参数完全相同,仅处理的点云数据类型不同。

输入要求 : 算子期望输入的是一个点云列表,通常是经过聚类的结果,其中一个元素代表垛盘,其他元素代表货物簇。输入点云数量必须大于1。

层高

参数说明

用于区分垛盘和货物层的高度阈值。算子会计算点云簇中心的Z坐标,如果某个点云簇的中心Z坐标与数量最多的点云簇(通常认为是物体点云)的中心Z坐标之差大于此层高,则认为该点云簇可能属于不同的层(可能是垛盘)。

调参说明

根据实际垛盘和货物层的高度差异来设置。如果垛盘与最底层货物的高度差明显大于100mm,则默认值可能适用。如果层高较小或垛盘较薄,需要适当减小此值。如果货物层本身高度差异较大,可能需要增大此值以避免将货物层误判为垛盘。

参数范围

[1,10000],默认值:100,单位:mm

中心计算方法

参数说明

选择计算每个点云簇中心点Z坐标的方法,中心点用于判断层高差异。

调参说明

  • 点云均值(默认): 计算点云所有点XYZ坐标的平均值。简单快速,但易受离群点影响。

  • 点云中位数: 计算点云所有点XYZ坐标的中位数。对离群点不敏感,更稳健。

  • 有向最小包围盒中心: 计算点云的有向最小包围盒(Oriented Bounding Box)的中心。能更好地反映细长或倾斜物体的中心。

  • 坐标对齐包围盒中心: 计算点云的坐标轴对齐包围盒(Axis-Aligned Bounding Box)的中心。计算简单,适用于形状较规则的物体。

    选择哪种方法取决于点云簇的形状和噪声情况。对于形状不规则或有噪声的垛盘/货物,中位数或包围盒中心可能更稳定。

Z轴朝向

参数说明

定义场景中垛盘相对于垛顶(货物最高点)的预期方向。

调参说明

  • 垛盘低于垛顶(默认): 适用于常规场景,主要是针对机器人坐标系点云,垛盘在货物的下方(垛盘Z坐标值通常更小,即低于垛顶)。

  • 垛盘高于垛顶: 适用于特殊场景,通常是针对相机坐标系点云,相机从上方拍摄,垛盘z坐标值更大,高于垛顶。

    选择正确的朝向有助于算子正确地根据Z坐标判断哪个是垛盘,若选择错误可能造成结果不正确。

X/Y/Z轴 负向/正向 拓展值

参数说明

定义输出的ROI(三维包围盒)相对于检测到的垛盘区域中心和范围的拓展量。负向拓展值通常为负数,表示向坐标轴负方向延伸;正向拓展值通常为正数,表示向坐标轴正方向延伸。

调参说明

这些参数用于调整输出ROI的大小。默认值会在计算出的垛盘中心和整个点云XY范围基础上,在各个方向的正负方向上拓展或收缩指定的距离。

参数范围

除Z轴正向拓展值的取值范围为[0,500],其余取值范围均为[-5000,5000],单位:mm。

使能节点

参数说明

控制该算子是否执行移除垛盘和计算ROI的操作。

调参说明

  • 开启(默认):算子正常执行功能;

  • 关闭:算子不执行任何操作,直接将输入点云透传到输出端口。