3D视觉应用开发--机器人3D互动四大技术难点分析
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
先回顾一下需要达成的应用场景:简单说就是利用3D视觉传感技术实现人与机器之间的投球互动。玩家从“准备区”投出皮球,经过约半秒时间穿过飞行区,到达回球平面时,机械手对准来球将其推回。如下图所示:
咋一看,这个功能并不复杂,但实现起来非常有挑战性。我们先理一下方案的大致思路:用3D视觉传感器(即深度相机)对球进行跟踪定位,然后通过图像处理尽快的预测出球抵达回球平面时的具体位置,并发送给机器人控制器,再由控制器发出运动指令,机械臂执行到指定位置回击球。
有小伙伴可能会问了,为什么要预测位置,我们不能在球抵达平面时,直接从图像中计算出实际位置吗?显然是不行的,因为时间上来不及。图像传输,图像处理,机械运动都需要时间,这几部分加起来大约 210毫秒,如果等球到了再判断,黄花菜都凉了。所以只能提前根据球进入飞行区的初始6帧的深度图,计算出球在每一帧的位置,再根据这6个位置拟合抛物线,从而得到球抵达回球平面时的具体位置和时间。所以切记,这部分计算能快尽量快,时间就是生命线!
初步估计,球飞行时间约400550ms,扣除6帧飞拍所需的180ms,剩余220370ms,可用于视觉系统处理和机器人响应(需要约210ms,刚刚够),能给到各个环节的时间是很紧张的,如果某个环节稍微入不敷出,这个功能就实现不了。所以,第一个挑战就是如何保证实时性。
挑战二,就是上边提到的位置预测误差。这个预测位置如果不够准确的话,机器人回击球会失败。仔细分析的话,这个误差的构成因素有很多。这里主要列举:像素精度,标定误差,圆拟合误差,抛物线拟合误差,时间误差。
像素精度,是指每一个像素代表的实际尺寸。比如,当VGA分辨率(640480)对应的区间大小为 21.5米,那么每个像素的实际尺寸就是3.1mm。这个尺寸如果越大,从图像中计算的位置误差也就越大。
标定误差,是指每一个像素映射到实际空间中的坐标时,会偏离实际值。一方面,坐标转换矩阵不一定很准确,而且,每个相机的个体之间有差异;另一方面,现场的相机安装有时会有轻微松动异位,那么转换矩阵就实效了。
拟合误差。由于球的快速运动产生拖影(见图),造成圆拟合后的球心位置有误差;另外,由于点云数据丢失,球的成像会出现孔洞,这给圆拟合算法带来挑战。
抛物线拟合误差。在我们利用6帧的球心位置来拟合一条抛物线时,由于理论几何模型与实际有差异,会带来额外的定位误差,且该误差有可能很大。
时间误差。即便预测到的位置非常准确,但如果抵达时间预测得不准,会导致机械臂击球节奏的丢失,也无法满足功能。这个误差的诱因可能是图像传输和图像处理的耗时不稳定,也可能是抛物线模型不准确。
挑战三,图像处理算法。图像处理包括图像去背景噪声,圆拟合。如果背景噪声不能去除干净的话,会造成把背景物体识别为球的情况。但也不能去除的太“狠”,造成球像素的受损,也会影响定位准确性。圆拟合可以采用2D平面拟合,或者3D球面拟合;前者鲁棒性和定位能力差一些,后者会比较耗时。
挑战四,机器人运动控制、路径规划。一方面要足够块,另一方面要根据来球的速度矢量,设计好机械臂出击的方向和力道,使得回击球的效果最优。
综上所述,这四大挑战决定了这个应用研发的难度不小,因为它不是单纯的理论研究,而是要实现一个工程,就必然受到时间和空间上的强约束。但我们不畏惧困难,要相信办法总比困难多 后续几篇笔记会介绍些应对方法。
来源:3D视觉开发者社区
链接:https://developer.orbbec.com.cn/forum_plate_module_details.html
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~