1.项目概述
年前,产品经理找到我,让我去测试3D视觉耐火砖拆垛项目。大概就是这种转
2. 实际情况
去了现场,采集图像,标定相机和机器人。发现客户不是要顶点的中心点坐标,而是要侧面中心点坐标。因为他们是从侧面抓取。那我只能还算了,把顶面中心点和侧面抓取点做标定。
3.问题
首先是机器人的吸盘竟然是两个,而且tcp点都是用的法兰盘。这个问题困扰了我们好久。因为我们相机给出的数据就是xyz和偏转角。但是如果机器人用法兰盘作为tcp点,那么旋转的过程中会把xy也跟着改变。
4.解决
使用第一个点法兰的abc和第二个砖的xyz偏转角,首先把xyzabc转成tcp点在吸盘上的x1y1z1a1b1c1.然后再这个点上做z轴的偏转角。然后再把旋转过的x1y1z1a1b1c1转为tcp点再法兰盘的xyzabc
5.实际效果图
6.流程图
6.安全性思考
测试完成,检测时间是2s内,基本满足客户需求。但是深度学习的通病就是不可解释性。导致不管是销售还是客户都对误检的产生,带有很大的疑问。而且客户非常不能接受出现误检导致人身安全或者财产安全的问题。后面就只能不了了之。
但是我想说的是,不管是传统的视觉算法,比如隔壁康耐视的3D模板匹配。还是我们的深度学习都是会产生误检漏检的问题。谁也不会说百分之百解决这个问题。那我们怎么做可以减少误检或者减少损失呢
6.1机器人方面
1.首先机器人需要安全光栅和安全光电,保证周围没人的情况下才可以生产。
2.机器人需要完整的运动规划,保证相机给出正确的坐标下,不会发生碰撞。
3.机器人应该有一个压力感应,在撞击到物体后,感受到一个反作用力就停止。
4.机器人设置好自己的一个运动范围。
6.2 算法方面
1.提高检测的精度,尽量把模型做成过拟合的状态,这个就很大概率避免误检,但是这种情况会产生漏检。
2.设置好检测区域。
3.根据检测物的大小,长宽比,高度。实行过滤。防止误检
7.总结
其实深度学习不可解释性一直被大家不能接受,不可解释性就意味着不稳定。但是我想说,不管任何视觉算法,他都是不稳定的。我们只能在这基础之上加上我们人类的经验。比如长宽比,大小,颜色等
只要我们加上足够的经验,其实任何算法都是可以使用的。