抓取点排序(层内和层间)

对于多种物体散乱摆放的复杂情况,抓取时需要同时考虑物体所在的高度和抓取成功的概率,为解决这一问题, 该步骤组合将空间抓取点按照高度信息进行分层,得到对应的平面抓取点,再按照指定的规则对每层的抓取点排序,得到符合要求的索引列表并以此为标准对空间抓取点排序。 其组成如图1 所示。

排序抓取点步骤组合

图1 排序抓取点步骤组合

各个步骤的作用如下:

  1. 点云分层 输入感兴趣区域内的点云,将其按照高度分层,并投影到平面,得到不同高度上物体的掩膜。

  2. 抓取点层内排序 输入上一步的结果和空间中的抓取点及其对应的标签和置信度,得到平面抓取点,对其分组,并按照指定规则组内排序,输出层内排序后的抓取点及其对应标签和置信度列表。

  3. 抓取点层间排序 输入上一步的结果,提取每层内第一个抓取点对应的Z值,按照指定规则排序,使用得到的索引对层进行排序,输出排序后的抓取点及其对应标签和置信度列表。

  4. 拆包且合并数据 输入排序后的抓取点列表(标签列表),将其拆开再合并为一个抓取点列表(标签列表)并输出。

点云分层

其组成如图2 所示。

点云分层步骤组合

图2 点云分层步骤组合

各个步骤的作用如下:

  1. 点云聚类 输入感兴趣区域内的点云,将符合规则的点归为一类,并输出点云列表。

  2. 合并在相近高度上的点云 输入上一步的结果,将指定方向上一定高度范围内的多个点云合为一个,输出合并后的点云列表。

  3. 将3D点云投影为2D图像 输入合并后的点云列表,计算每个3D点在平面上的投影,得到对应的2D图即掩膜,并输出。

抓取点层内排序

其组成如图3 所示。

点云分层步骤组合

图3 点云分层步骤组合

各个步骤的作用如下:

  1. 输入分配器 将输入量分配给之后几个步骤。

  2. 位姿变换 输入抓取点列表,将其从机器人坐标系转换到相机坐标系下,并输出。此步骤是为了后续平面抓取点的计算。

  3. 将3D位姿转换为2D位姿 输入相机坐标系下的抓取点列表,计算对应的2D抓取点,并输出。

  4. 为2D位姿分组 输入2D抓取点列表及不同高度上物体的掩膜,将同一个掩膜内的抓取点分为一组,输出对应的索引列表。

  5. 为数据分组 依据索引列表,将机器人坐标系下的抓取点及其对应的置信度和标签进行分组并输出。

  6. 3D位姿排序 输入上一步的结果,按照指定规则对抓取点及其对应的置信度和标签进行排序并输出。

抓取点层间排序

其组成如图4 所示。

抓取点层间排序步骤组合

图4 抓取点层间排序步骤组合

各个步骤的作用如下:

  1. 输入分配器 将输入量分配给之后几个步骤。

  2. 限制输出的个数 输入分层且排序后的抓取点列表,依据设置输出每层中的前几个元素。

  3. 拆包且合并数据 输入上一步得到的抓取点列表,将其拆开再合并为一个抓取点列表并输出。

  4. 分解物体尺寸 输入上一步的结果,将每个抓取点的X、Y、Z值分别放入三个列表,并输出。

  5. 排序并输出索引列表 输入每个抓取点Z值对应的列表,按照指定规则进行排序,输出对应的索引列表。

  6. 按照索引对元素重新排序 对层内有序的抓取点及其标签置信度按照输入索引列表进行排序并输出。