用点云完善抓取点¶
在任意物体抓取过程中,需要同时考虑物体的位置和 symmetry-label 。 为实现这一目的,该步骤组合分别计算较为精确的抓取位置和长轴(X轴)所在的方向, 经过调整和筛选,得到在感兴趣区域内符合要求的抓取点。其组成如图1 所示。
各个步骤的作用如下:
输入分配器 将输入量分配给之后几个步骤。
计算抓取点位置 输入场景中感兴趣区域内的点云和平面抓取点列表,计算空间中的抓取点,得到较为准确的抓取位置。
计算抓取点X轴方向 输入场景中感兴趣区域内的点云和物体的掩膜,计算空间中的抓取点,由于掩膜包括物体的形状信息,所以可以确定抓取点长轴所在的方向。
将位姿的某个轴指向给定方向 输入上面两步得到的抓取点列表,按照设置进行姿态调整,确定抓取点位置和长轴方向,并输出抓取点列表。
位姿变换 输入上一步骤的结果,得到抓取点在机器人坐标系下的表示。
根据与参考方向的夹角判断位姿是否有效 输入上一步的结果,计算抓取点Z轴和参考方向的夹角,与设定阈值比较,小于为True,大于为False,输出布尔值列表。
过滤 输入布尔值列表、机器人坐标系下的抓取点及其标签和抓具尺寸,输出True对应的结果。
获取在3D ROI内的位姿 输入上一步的结果,根据文件,得到感兴趣区域内的抓取点及其对应的标签和抓具尺寸,此步骤必须在机器人坐标系下进行。
计算抓取点位置¶
组成如图2 所示。
各个步骤的作用如下:
提取圆柱范围内的点云 输入场景中感兴趣区域内的点云和平面抓取点列表,以抓取点为基准坐标,提取设定的圆柱内的点云。
验证点云是否符合要求 输入上一步的结果,将每块点云的点数和设置的阈值比较,在阈值区间内为True,否则为False,输出布尔值列表。
过滤 输入布尔值列表、抓取点对应的标签和抓具尺寸,输出True对应的结果。此步骤可以滤除空点云对应的标签和抓具尺寸。
过滤 输入布尔值列表、圆柱内的点云和物体的掩膜,输出True对应的结果。此步骤可以滤除空点云及其对应的物体掩膜。
计算平面点云的位姿和尺寸 输入点数符合要求的点云,计算每个点云对应的空间抓取点并输出。
翻转位姿的坐标轴方向 输入抓取点列表,按照指定坐标轴方向翻转,使其方向大体一致,方便后续抓取,输出翻转后的抓取点列表。
计算抓取点X轴方向¶
组成如图3 所示。
各个步骤的作用如下:
提取掩膜中对应的点云 输入物体的掩膜和场景中感兴趣区域内的点云,计算掩膜对应的点云并输出。
验证点云是否符合要求 输入上一步的结果,将每块点云的点数和设置的阈值比较,在阈值区间内为True,否则为False,输出布尔值列表。
过滤 输入布尔值列表、抓取点(位置准确)和其对应的标签和抓具尺寸,输出True对应的结果。此步骤可以滤除空掩膜对应的抓取点及其标签和抓具尺寸。
过滤 输入布尔值列表和掩膜对应的点云,输出True对应的结果。此步骤可以滤除空掩膜。
计算平面点云的位姿和尺寸 输入上一步的结果,计算每个点云对应的抓取点并输出。