算法比较麻烦,这里只记录不太好懂的地方
来源:
Y. Domae, H. Okuda, Y. Taguchi, K. Sumi and T. Hirai, “Fast graspability evaluation on single depth maps for bin picking with general grippers,” 2014 IEEE International Conference on Robotics and Automation (ICRA), Hong Kong, 2014, pp. 1997-2004.
摘要
通过深度图建立抓取器的模型和待抓取目标的模型来获得最佳抓取位姿,没有深度学习。适用于多目标混杂放置的场景。适用于各种类型的抓取器,文中以二指夹持器和真空吸附夹持器为例说明算法,可以扩展。耗时较长,检测一次需要接近半秒。实验场景如下:
抓取任务简化
一般认为,夹持器应可以从任意方向抓取任意位置的目标,所以共包括6自由度(x, y, z, r, p, y)。但是作者将任务简化,只从上往下抓取目标,即去掉了方向上的两个自由度,只保留4自由度,如下图所示。(这也是算法的缺点之一)
夹持器模型
为了可以从上往下抓取目标,需要知道抓取点的坐标(x, y)和抓取方向(没有抓取宽度)。假设夹持器在抓取目标前张开的宽度一样,以夹持器沿水平轴闭合抓取目标为例(抓取角为0),建立夹持器模型:
上图第一行展示了不同类型的夹持器抓目标时的状态;第二行为水平横截面;第三行为夹持器在抓取目标时,各个手指的运动轨迹,作者称之为“连通区域”;第四行为夹持器在抓取目标时,各个手指放置的位置区域,作者称之为“碰撞区域”。第三四行即为夹持器的模型图,为二值图像(白色1,黑色0),模型大小只要能包裹住白色区域就行。
目标模型
设检测的抓取点是p(x, y, z),夹持器要根据现场情况运动到比p点低d长度的位置才能有效抓取目标。上图中左图为抓取时的状态,h为深度相机和目标最高点的距离;右图第一个为深度图像,第二个为只包含抓取目标的水平截面(怎么计算截取高度,论文说的不清楚),作者称之为目标的“连接区域”;第三个为夹持器最低处的水平截面,除了包含待抓取目标,还有在抓取时可能会碰到的障碍物,称之为目标的“碰撞区域”。
抓取检测
上图以抓取角为0的情况说明检测过程。
首先以夹持器的“连接区域”为卷积核,对目标的“连接区域”进行卷积操作,注意要使用padding保持卷积结果的尺寸与目标图像的尺寸相同,卷积结果中大于0的都设成1,0保持,形成二值图像。再以夹持器的“碰撞区域”为卷积核,对目标的“碰撞区域”进行卷积操作,同样使用padding保持卷积结果的尺寸与目标图像的尺寸相同,卷积结果中大于0的都设成1,0保持,形成二值图像。这么做的原理我在上图中注明了。
碰撞区域的卷积结果取反,与连接区域的卷积结果取交集(二值图像),这个交集可以理解为:以交集中的点为抓取点,夹持器沿水平方向闭合时,不仅能夹住目标,还能避免碰到障碍物。再用高斯核对交集滤波,滤波结果中值最大的就是最优抓取点。
上面只说明了夹持器沿水平方向闭合的情况(抓取角为0),把抓取角(π)等分成N份,每一种情况都运行一遍上述过程,则每个角上都得到一个最优抓取点,这些抓取点中最大的就是最终抓取点,抓取角为k*π/N,(k=0,1…N)。