发明内容
本公开提供一种物体位姿的确定方法、装置、机器人及存储介质,以解决如何在抓取物体时保证相机视觉的准确度问题。
第一方面,本公开实施例提供了一种物体位姿的确定方法,应用于机器人,所述方法包括:
获取第一相机视野下待识别物的第一位姿信息;
获取标定物的当前坐标系位姿信息,所述当前坐标系位姿信息是基于所述第一相机拍摄得到的,所述第一相机识别到所述标定物的第一高度与所述第一相机识别到所述待识别物的第二高度一致;
根据所述当前坐标系位姿信息和参考坐标系位姿信息,确定补偿坐标系位姿信息,所述参考坐标系位姿信息是预先基于第二相机对所述标定物的位姿进行确定得到的,所述第二相机识别到所述标定物的第三高度与所述第一高度一致,所述补偿坐标系位姿信息为所述参考坐标系位姿信息和所述当前坐标系位姿信息之间的变化信息;
根据所述补偿坐标系位姿信息对所述第一位姿信息进行调整,得到所述待识别物的第二位姿信息。
作为一种可能的设计中,所述标定物至少包括三个标定球;
在所述根据所述当前坐标系位姿信息和参考坐标系位姿信息,确定补偿坐标系位姿信息之前,所述方法还包括:
S1,通过所述第二相机获取所述至少三个标定球的点云信息,所述至少三个标定球构成的第一平面位于所述第二相机视野对应的第二平面内;
S2,从所述至少三个标定球的点云信息中确定所述至少三个标定球的球冠点云;
S3,针对每个标定球,根据所述标定球的球冠点云,拟合所述标定球的球心位姿;
S4,基于每个标定球的球心位姿,确定所述至少三个标定球的中心的第一坐标系位姿信息;
S5,在预设时长内,重复执行上述步骤S1-S4 N次以上、且在所有得到的第一坐标系位姿信息之间的差值均小于第一预设阈值时,将任一次的第一坐标系位姿信息作为参考坐标系位姿信息,所述N大于0的整数。
作为一种可能的设计中,所述方法还包括:
在重复上述步骤S1-S4的过程中,若得到的第一坐标系位姿信息之间的差值大于或等于所述第一预设阈值,确定第一提示信息,所述第一提示信息用于提示用户检查点云质量、以及所述机器人到位重复精度。
作为一种可能的设计中,在所述获取标定物的当前坐标系位姿信息之后,所述方法还包括:
根据所述标定物的当前坐标系位姿信息与所述标定物的参考坐标系位姿信息,确定所述标定物的漂移量;
若所述漂移量大于第二预设阈值、且小于第三预设阈值,确定第二提示信息,所述第二提示信息用于提示用户所述标定物存在漂移;
若所述漂移量大于或等于所述第三预设阈值,确定第三提示信息,所述第三预设阈值大于所述第二预设阈值,所述第三提示信息用于提示用户所述标定物漂移过高。
作为一种可能的设计中,所述方法还包括:
在满足预设条件时,根据上述步骤S1-S5对所述参考坐标系位姿信息进行更新;
其中,所述预设条件包括如下至少一项:响应于用户对所述参考坐标系位姿信息进行更新的操作指令、检测到所述当前坐标系位姿信息与所述参考坐标系位姿信息之间的漂移量大于第二预设阈值、距离上一次确定出所述参考坐标系位姿信息的时长达到第一预设时长。
作为一种可能的设计中,所述获取标定物的当前坐标系位姿信息,包括如下任一项:
在获取所述第一位姿信息之前的第二预设时长内基于所述第一相机获取标定物的当前坐标系位姿信息;
在获取所述第一位姿信息之后的第三预设时长内基于所述第一相机获取标定物的当前坐标系位姿信息;
检测到基于上一次补偿坐标系位姿信息对上一次待识别物进行位姿信息补偿之后,上一次待识别物的位姿信息不准确时,基于所述第一相机获取标定物的当前坐标系位姿信息。
作为一种可能的设计中,所述第一平面的第一宽边与所述第二平面的第二宽边的距离值等于预设系数的第二宽边对应长度值,所述第一平面的第一长边与所述第二平面的第二长边的距离值等于所述预设系数的第二长边对应长度值。
第二方面,本公开实施例提供了一种物体位姿的确定装置,应用于机器人,所述装置包括:
获取模块,用于获取第一相机视野下待识别物的第一位姿信息;并获取标定物的当前坐标系位姿信息,所述当前坐标系位姿信息是基于所述第一相机拍摄得到的,所述第一相机识别到所述标定物的第一高度与所述第一相机识别到所述待识别物的第二高度一致;
第一确定模块,用于根据所述当前坐标系位姿信息和参考坐标系位姿信息,确定补偿坐标系位姿信息,所述参考坐标系位姿信息是预先基于第二相机对所述标定物的位姿进行确定得到的,所述第二相机识别到所述标定物的第三高度与所述第一高度一致,所述补偿坐标系位姿信息为所述参考坐标系位姿信息和所述当前坐标系位姿信息之间的变化信息;
第二确定模块,用于根据所述补偿坐标系位姿信息对所述第一位姿信息进行调整,得到所述待识别物的第二位姿信息。
作为一种可能的设计中,所述标定物至少包括三个标定球;
在所述根据所述当前坐标系位姿信息和参考坐标系位姿信息,确定补偿坐标系位姿信息之前,所述第一确定模块,还用于
S1,通过所述第二相机获取所述至少三个标定球的点云信息,所述至少三个标定球构成的第一平面位于所述第二相机视野对应的第二平面内;
S2,从所述至少三个标定球的点云信息中确定所述至少三个标定球的球冠点云;
S3,针对每个标定球,根据所述标定球的球冠点云,拟合所述标定球的球心位姿;
S4,基于每个标定球的球心位姿,确定所述至少三个标定球的中心的第一坐标系位姿信息;
S5,在预设时长内,重复执行上述步骤S1-S4 N次以上、且在所有得到的第一坐标系位姿信息之间的差值均小于第一预设阈值时,将任一次的第一坐标系位姿信息作为参考坐标系位姿信息,所述N大于0的整数。
作为一种可能的设计中,所述第一确定模块,还用于
在重复上述步骤S1-S4的过程中,若得到的第一坐标系位姿信息之间的差值大于或等于所述第一预设阈值,确定第一提示信息,所述第一提示信息用于提示用户检查点云质量、以及所述机器人到位重复精度。
作为一种可能的设计中,在获取所述标定物的当前坐标系位姿信息之后,所述第一确定模块,还用于
根据所述标定物的当前坐标系位姿信息与所述标定物的参考坐标系位姿信息,确定所述标定物的漂移量;
若所述漂移量大于第二预设阈值、且小于第三预设阈值,确定第二提示信息,所述第二提示信息用于提示用户所述标定物存在漂移;
若所述漂移量大于或等于所述第三预设阈值,确定第三提示信息,所述第三预设阈值大于所述第二预设阈值,所述第三提示信息用于提示用户所述标定物漂移过高。
作为一种可能的设计中,所述第一确定模块,还用于
在满足预设条件时,根据上述步骤S1-S5对所述参考坐标系位姿信息进行更新;
其中,所述预设条件包括如下至少一项:响应于用户对所述参考坐标系位姿信息进行更新的操作指令、检测到所述当前坐标系位姿信息与所述参考坐标系位姿信息之间的漂移量大于第二预设阈值、距离上一次确定出所述参考坐标系位姿信息的时长达到第一预设时长。
作为一种可能的设计中,所述获取标定物的当前坐标系位姿信息,包括如下任一项:
在获取所述第一位姿信息之前的第二预设时长内基于所述第一相机获取标定物的当前坐标系位姿信息;
在获取所述第一位姿信息之后的第三预设时长内基于所述第一相机获取标定物的当前坐标系位姿信息;
检测到基于上一次补偿坐标系位姿信息对上一次待识别物进行位姿信息补偿之后,上一次待识别物的位姿信息不准确时,基于所述第一相机获取标定物的当前坐标系位姿信息。
作为一种可能的设计中,所述第一平面的第一宽边与所述第二平面的第二宽边的距离值等于预设系数的第二宽边对应长度值,所述第一平面的第一长边与所述第二平面的第二长边的距离值等于所述预设系数的第二长边对应长度值。
第三方面,本公开提供一种机器人,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如上述第一方面或任一种方式所述的方法。
第四方面,本公开提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述第一方面或任一种方式所述的方法。
第五方面,本公开提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面或任一种方式所述的方法。
本公开提供的物体位姿的确定方法、装置、机器人及存储介质,该方法应用于机器人,通过获取第一相机视野下待识别物的第一位姿信息,并获取标定物的当前坐标系位姿信息,该当前坐标系位姿信息是基于第一相机拍摄得到的,第一相机识别到标定物的第一高度与第一相机识别到待识别物的第二高度一致,并根据当前坐标系位姿信息和参考坐标系位姿信息,确定补偿坐标系位姿信息,参考坐标系位姿信息是预先基于第二相机对标定物的位姿进行确定得到的,第二相机识别到标定物的第三高度与第一高度一致,补偿坐标系位姿信息为参考坐标系位姿信息和当前坐标系位姿信息之间的变化信息,之后根据补偿坐标系位姿信息对第一位姿信息进行调整,得到待识别物的第二位姿信息。该技术方案中,利用参考位姿与当前位姿的变化量对待识别物的位姿进行修正,以更准确的实现对待识别物位姿的确定,避免了相机时变以及更换等问题引起的测量误差。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在介绍本公开的实施例之前,首先对本公开实施例的应用背景进行解释:
相机在长期运行之后,其精度会由于温漂等时变现象、或/和发生碰撞需要更换相机,需要重新对相机的参数进行标定,以提高相机的精准度。
在对相机进行重新标定时需要技术人员依照一些教学模板进行调制,而这种调试的方式存在以下技术问题:
1、温漂等时变现象引起相机参数改变一般不容易被发现,可能存在重大问题时才可能被发现;
2、重新对相机进行标定其示教模板工作量大,存在大量人力财力的损耗;
3、运行现场缺少误差监管机制;
4、抓取物体时不能够及时修正物体的准确位姿。
针对现有技术中存在的技术问题,本公开发明人的构思如下,发明人在调制相机精度的过程中发现,如果能够事先按照最标准的标定物,利用相机来确定该标定物的位姿,在后续测量时,可以随时利用该标准位姿与对标定物当前确定的位姿确定出相机可能存在的精度误差,以实现对实时待识别物体的修正;而在相机更换的场景下,也可以利用标准位姿和更换后的相机下的实时位姿来确定精度误差,对待识别物体进行修正;此外可以根据对标定物的当前位姿与标准位姿之间的变化情况,赋予相应预警阈值,实现对运行现场的监管机制。
应理解:本公开的方法可以用于EyeInHand高精度3D视觉场景下。
下面,通过具体实施例对本公开的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
值得说明的是:本公开物体位姿的确定方法、装置、机器人及存储介质的应用领域不作限定。
其中,本公开的执行主体为机器人,具体可以是机器人中的控制单元、或控制机器人的控制器等。
图1为本公开实施例提供的物体位姿的确定方法的流程示意图一,如图1所示,该物体位姿的确定方法可以包括如下步骤:
步骤11、获取第一相机视野下待识别物的第一位姿信息;
步骤12、获取标定物的当前坐标系位姿信息;
其中,当前坐标系位姿信息是基于第一相机拍摄得到的,第一相机识别到标定物的第一高度与第一相机识别到待识别物的第二高度一致。
在上述两步骤中,第一相机由于存在长期运行可能存在精度误差,或者该第一相机为更换的新的相机,此时需要利用该第一相机对待识别物的实际位姿信息进行测量。
先利用该第一相机获取待识别物在该第一相机视野下的第一位姿信息、以及获取标定物的当前坐标系位姿信息。
可选的,当前坐标系位姿信息的获取可以包括如下任一项:
1、在获取第一位姿信息之前的第二预设时长内基于第一相机获取标定物的当前坐标系位姿信息;
2、在获取第一位姿信息之后的第三预设时长内基于第一相机获取标定物的当前坐标系位姿信息;
3、检测到基于上一次补偿坐标系位姿信息对上一次待识别物进行位姿信息补偿之后,上一次待识别物的位姿信息不准确时,基于第一相机获取标定物的当前坐标系位姿信息。
例如,第一相机拍一次待识别物之后拍一次标定物、或拍一次待识别物之前拍一次标定物;拍待识别物的时间是2号11时,在第一相机拍待识别物之前的10个小时内、或在第一相机拍待识别物之后的10个小时内;检测到上一次待识别物的识别误差过大时,对标定物进行拍照,例如,抓取待识别物时不准确(该实现可以是对待识别物按照之前的补偿坐标系位姿信息进行补偿之后,仍没有抓到待识别物)。
可选的,标定物可以是能够被建立成坐标系的物体,例如,可以是至少3个标定球、一些拥有可构建坐标系的属性的物体等等。
例如,图2为本公开实施例提供的第一相机的视野示意图,如图2所示,该示意图包括:第一相机(例如,相机21)、标定物23、待识别物22、第一高度H1、第二高度H 2。
即,相机21识别到标定物23的第一高度为H1,相机21识别到待识别物22的第二高度为H 2,H 1=H 2。
应理解:该第一相机可以是相关系统一直使用的相机(即下述的第二相机,由下述详述);也可以是由于一些原因,将下述第二相机更换之后的相机。
可选的,在不同的高度场景下,以k层(每层高度不一致)为例,若k层的工件共用一个拍照点,则会存在k个不同的拍照(工件/标定物)距离。
作为一种示例,标定物可以是:至少3个标定球。则第一高度为至少3个标定球构成的平面中心与第一相机的距离。
可选的,若上述的第一高度小于高度阈值,每个标定球的尺寸为60mm;若第一高度大于或等于高度阈值,每个标定球的尺寸为100mm。
作为一种示例,高度阈值可以是2m,该尺寸可以是标定球的直径。
可选的,至少三个标定球包括如下至少一种:哑光铁球、陶瓷球。
为了避免外因对相机精准度造成影响,在标定物的选择上,可以使用点云采集友好的哑光铁球、或陶瓷球等,在相机距离标定物的距离(即第一高度、也可以是第二高度、第三高度)大于或等于2m时,选用尺寸为100mm的3个哑光铁球;在相机距离标定物的距离(即第一高度)小于2m时,选用尺寸为60mm的3个哑光铁球。
例如,第一位姿信息为(10,12,10);当前坐标系位姿信息为(5,6,5)。
步骤13、根据当前坐标系位姿信息和参考坐标系位姿信息,确定补偿坐标系位姿信息。
其中,参考坐标系位姿信息是预先基于第二相机对标定物的位姿进行确定得到的,第二相机识别到标定物的第三高度与上述的第一高度一致,补偿坐标系位姿信息为参考坐标系位姿信息和当前坐标系位姿信息之间的变化信息;
在本步骤中,参考坐标系位姿信息为事先确定出的第二相机不存在漂移等情况下,第二相机针对上述标定物进行拍照确定出的坐标系的标准位姿信息。
可选的,可以利用第一相机实时确定出的当前坐标系位姿信息、或之前该相机确定出的当前坐标系位姿信息,与预先第二相机确定出的参考坐标系位姿信息,来确定参考坐标系位姿信息和当前坐标系位姿信息之间的变化信息。
例如,接上述示例,参考坐标系位姿信息为(5,5,5),则补偿坐标系位姿信息为(0,-1,0)。
图3为本公开实施例提供的第二相机的视野示意图,如图3所示,该示意图包括:第二相机(例如,相机31)、标定物23、第三高度H 3。
若相机31是相机21(该场景即对相机进行位姿补偿的场景)、若相机31不是相机21(该场景即更换相机的场景)。
例如,当相机被碰撞等情况无法修复需要更换相机时,基于此方案只需更换完相机后,只需重新采集标定物即可准确抓取待识别物(无需进行其他额外操作,如:重新标定外参、重新示教模板);周期性(比如按天或周)采集标定物的数据,根据标定物在相机坐标系下的变动来校正待识别物的抓取位姿。
应理解,第二相机可以是第一相机、也可以是其他相机,根据相应的场景决定。
示例,参考坐标系位姿信息(SphereDatumCoordinatePose);当前坐标系位姿信息(SphereRealtimeCoordinatePose)。
步骤14、根据补偿坐标系位姿信息对第一位姿信息进行调整,得到待识别物的第二位姿信息。
在本步骤中,在上述根据参考坐标系位姿信息与当前坐标系位姿信息,确定出补偿坐标系位姿信息之后,利用该补偿坐标系位姿信息对待识别物体对应的第一位姿信息进行调整(即补偿),以得到待识别物的实际位姿信息,即第二位姿信息。
例如,第一位姿信息为(10,12,10),补偿坐标系位姿信息为(0,-1,0)则第二位姿信息为(10,11,10)。
本公开实施例提供的物体位姿的确定方法,应用于机器人,通过获取第一相机视野下待识别物的第一位姿信息,并获取标定物的当前坐标系位姿信息,该当前坐标系位姿信息是基于第一相机拍摄得到的,第一相机识别到标定物的第一高度与第一相机识别到待识别物的第二高度一致,并根据当前坐标系位姿信息和参考坐标系位姿信息,确定补偿坐标系位姿信息,参考坐标系位姿信息是预先基于第二相机对标定物的位姿进行确定得到的,第二相机识别到标定物的第三高度与第一高度一致,补偿坐标系位姿信息为参考坐标系位姿信息和当前坐标系位姿信息之间的变化信息,之后根据补偿坐标系位姿信息对第一位姿信息进行调整,得到待识别物的第二位姿信息。该技术方案中,利用参考位姿与当前位姿的变化量对待识别物的位姿进行修正,以更准确的实现对待识别物位姿的确定,避免了相机时变以及更换等问题引起的测量误差。
上述实施例的基础上,标定物包括:至少三个标定球,则当前坐标系位姿信息可以是至少三个标定球构成的平面中心的坐标系的位姿信息。
图4为本公开实施例提供的物体位姿的确定方法的流程示意图二,如图4所示,在上述步骤13之前,该物体位姿的确定方法还可以有如下步骤:
即,在本方案中,在上述步骤13之前,还需要对参考坐标系位姿信息进行确定:
S1,通过第二相机获取至少三个标定球的点云信息。
其中,至少三个标定球构成的第一平面位于第二相机视野对应的第二平面内;
可选的,第一平面的第一宽边与第二平面的第二宽边的距离值等于预设系数的第二宽边对应长度值,第一平面的第一长边与第二平面的第二长边的距离值等于所述预设系数的第二长边对应长度值。
例如,图5为标定物的安装示意图,如图5所示,包括:相机31、球1、球2、球3(以3个小球进行说明)、第一平面S1、第二平面S2、第一平面S1的中心O、第二宽边对应长度值W,第二长边对应长度值L。
例如,该预设系数为0.1。
可选的,基于待识别物的可能的大小,预设系数可以进行调整,若待识别物较小,则可以将预设系数调大,使得标定球向相机视野中心聚拢;若待识别物较大,则可以将预设系数调小,使得标定球远离相机视野中心。
应理解:该步骤的实现还可以调整第二相机的参数,使得标定球的点云质量最佳,半球表面点云完整且平滑。
S2,从至少三个标定球的点云信息中确定至少三个标定球的球冠点云;
即针对每个标定球,从该标定物的3D感兴趣区域(Region of Interest,RoI)内点云中提取球冠的点云,即得到该标定物的球冠点云。
S3,针对每个标定球,根据标定球的球冠点云,拟合标定球的球心位姿;
对该标定球的球冠点云进行拟合,以得到该标定球的球心位姿。
S4,基于每个标定球的球心位姿,确定至少三个标定球的中心的第一坐标系位姿信息;
作为一种示例,以3个标定球为例,已知每个标定球的球心位姿,此处可以利用三角形的三个角的坐标,求得三角形中心点的坐标,即得到三个标定球的中心的第一坐标系位姿信息。
该实现的另一种可能下,可以确定多个标定球的球心位姿,从中选择点云数据优良的3个标定球进行第一坐标系位姿信息的确定。
S5,在预设时长内,重复执行上述步骤S1-S4 N次以上、且在所有得到的第一坐标系位姿信息之间的差值均小于第一预设阈值时,将任一次的第一坐标系位姿信息作为参考坐标系位姿信息;
其中,N大于0的整数
可选的,较高的标定物(例如,标定球)识别重复精度(短时间内)是该方案的前提,也即可以预设时长(例如,3分钟内),重复上述的S1-S4,可以重复一次以上,并且对得到的第一坐标系位姿信息进行对比,比较所有得到的第一坐标系位姿信息两两之间的差值是否都小于第一预设阈值(例如,0.3mm)。
若所有得到的第一坐标系位姿信息之间的差值小于第0.3mm,则可以将任一次的第一坐标系位姿信息作为参考坐标系位姿信息。
例如,可以将最后一次的第一坐标系位姿信息作为参考坐标系位姿信息。
应理解:参考坐标系位姿信息,在初始时刻整个系统完好的情况下记录的标定球坐标系位姿,该坐标系一旦确定不会被修改,除非由于标定球被挪动等原因需要更新此位姿。而上述的当前坐标系位姿信息在后续每次拍标定球均会生成新的标定球坐标系位姿,并且会将上次的当前坐标系位姿信息覆盖更新(覆盖更新通过Mech_Vision中的“保存结果到文件”设置参数“最大文件数量”为1实现)。
此外,在重复上述步骤S1-S4的过程中,若得到的第一坐标系位姿信息之间的差值大于或等于第一预设阈值,确定第一提示信息,该第一提示信息用于提示用户检查点云质量、以及机器人到位重复精度。
即,若得到的第一坐标系位姿信息之间的差值存在不小于第0.3mm的情况,则需要提醒用户检查点云质量是否存在问题;以及机器人携带第二相机在进行重复执行上述步骤时,是否达到预设的拍照位置处。
本公开所涉及的提示信息的提示方式,可以是亮不同颜色的灯、语音提示、面板显示等等,方式不限。
此外,该物体位姿的确定方法还可以包括如下操作:在满足预设条件时,根据上述步骤S1-S5对参考坐标系位姿信息进行更新。
其中,预设条件包括如下至少一项:响应于用户对参考坐标系位姿信息进行更新的操作指令、检测到当前坐标系位姿信息与参考坐标系位姿信息之间的漂移量大于第二预设阈值、距离上一次确定出参考坐标系位姿信息的时长达到第一预设时长。
例如,在标定物不小心被用户触碰、在物理空间上存在偏移等情况时,用户可以向机器人输入操作指令,指示机器人对参考坐标系位姿信息进行更新;在机器人检测到标定物在初次和当前下,位姿信息存在漂移、且漂移量大于0.2mm(第二预设阈值)时,指示机器人对参考坐标系位姿信息进行更新;不知道标定物是否发生了变化,此时可以在上次确定出参考坐标系位姿信息之后的10天(第一预设时长)后对参考坐标系位姿信息进行更新;标定物松动位移检查(可通过误差监测的相关功能初步判断),如果标定物松动,则在加固后需要更新参考坐标系位姿信息等等。
可选的,上述的标定物的漂移量的当前位姿与参考位姿的波动差值,可以将X、Y、Z各自的最大差值输出用于前端显示误差折现图。
本公开实施例提供的物体位姿的确定方法,通过S1,通过第二相机获取至少三个标定球的点云信息,至少三个标定球构成的第一平面位于第二相机视野对应的第二平面内;S2,从至少三个标定球的点云信息中确定至少三个标定球的球冠点云;S3,针对每个标定球,根据标定球的球冠点云,拟合标定球的球心位姿;S4,基于每个标定球的球心位姿,确定至少三个标定球的中心的第一坐标系位姿信息;S5,在预设时长内,重复执行上述步骤S1-S4 N次以上、且在所有得到的第一坐标系位姿信息之间的差值均小于第一预设阈值时,将任一次的第一坐标系位姿信息作为参考坐标系位姿信息,其中,N大于0的整数。该技术方案中,实现了对参考坐标系位姿的准确确定,为后续由于时变、或更换相机下待识别物体的位姿补偿。
上述实施例的基础上,图6为本公开实施例提供的物体位姿的确定方法的流程示意图三,如图6所示,在上述步骤11之后,该物体位姿的确定方法还可以有如下步骤:
步骤61、根据标定物的当前坐标系位姿信息与标定物的参考坐标系位姿信息,确定标定物的漂移量;
在本方案中,标定物可以进行在相机视野下漂移量的检测,以提醒用户标定物的状态,是否对相关系统的精度产生影响。
在本步骤中,可以根据当前坐标系位姿信息和参考坐标系位姿信息之间的差值信息,作为标定物的漂移量。
以标定物为至少三个标定球为例,针对任一标定球,例如,球1,即利用上述实施例中涉及的方法,确定球1分别在两个消息中球心位姿之间的漂移量。例如,漂移量为0.3、或0.6等。
步骤62、若漂移量大于第二预设阈值、且小于第三预设阈值,确定第二提示信息。
其中,第二提示信息用于提示用户标定物存在漂移;
在本步骤中,第二预设阈值和第三预设阈值之间,可以表示标定球存在漂移,但是对系统的运行影响还不大,此时可以报警,但是系统不停止。
例如,第二预设阈值为0.2,第三预设阈值为0.5。
即,例如,球1的漂移量为0.3,则提示用户球1存在漂移。
步骤63、若漂移量大于或等于第三预设阈值,确定第三提示信息。
其中,第三提示信息用于提示用户标定物漂移过高,第三预设阈值大于第二预设阈值。
在本步骤中,大于或等于第三预设阈值,可以表示标定球存在漂移,且对系统的运行影响较大,此时可以报警,停止系统运行。
即,例如,球3的漂移量为0.6,则提示用户球3存在漂移、系统已经停止使用。
漂移过大或者出现严重故障等原因,一般排查原因并修复后会重新示教将漂移量归零(重新示教过程应剔除当前的校正方法),漂移量归零后需要更新参考坐标系位姿信息。
应理解:步骤62和步骤63的执行为根据实际情况择其一实现。
本公开实施例提供的物体位姿的确定方法,通过根据标定物的当前坐标系位姿信息与标定物的参考坐标系位姿信息,确定标定物的漂移量,若所述漂移量大于第二预设阈值、且小于第三预设阈值,确定第二提示信息,第二提示信息用于提示用户标定物存在漂移,若漂移量大于或等于第三预设阈值,确定第三提示信息,第三预设阈值大于第二预设阈值,第三提示信息用于提示用户标定物漂移过高。该技术方案中通过预警阈值的确定,实现了相机精度变化时相应的预警,便于用户实时维护相机,避免现有技术中由于相机精度可能导致的严重后果。
下述为在上述实施例的基础上,本公开涉及的技术方案的一些实现细节(其实现原理与技术效果同上):
其一、针对标定物(例如标定球)的选择:
材质上可以是点云质量友好,例如,哑光铁球、陶瓷球;尺寸上可以是标定球到相机的距离,小于2米选择直径60mm的,不小于2米选择直径100mm的;标定球到相机的距离的确定,可以是与工件到相机距离一致,若k层工件共用一个拍照点,则存在k个不同的拍照距离(拍工件或标定球);
其二、安装标定物:
(以图2为例)球2和球3之间的连线与相机基线方向平行,标定球到相机视野边界的距离约为0.2倍的视野尺寸,若工件较小,三个标定球可适当向视野中心聚拢;
其三、标定物的采集:
标定球的拍照高度与工件的拍照高度有关,每个工件在相机视野内的高度均对应有相近高度的标定球(三个标定球生成的坐标系);工件和标定球均处在相机视野中心;拍照时相机光轴尽量垂直于工件和标定球;标定球的采集频率可按天或周为单位;
其四、相机参数的调整:
调整相机参数,使得标定球点云质量最佳,半球表面点云完整且平滑;
其五、标定物的维护:
标定球牢固安装,且避免标定球被触碰到;标定球做好日常防尘,若表面可见落灰,建议用压缩空气吹走,不可用力擦拭。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图7为本公开实施例提供的物体位姿的确定装置的结构示意图。如图7所示,该物体位姿的确定装置应用于机器人,包括:
获取模块71,用于获取第一相机视野下待识别物的第一位姿信息,并获取标定物的当前坐标系位姿信息,该当前坐标系位姿信息是基于第一相机拍摄得到的,第一相机识别到标定物的第一高度与第一相机识别到待识别物的第二高度一致;
第一确定模块72,用于根据当前坐标系位姿信息和参考坐标系位姿信息,确定补偿坐标系位姿信息,参考坐标系位姿信息是预先基于第二相机对标定物的位姿进行确定得到的,第二相机识别到标定物的第三高度与第一高度一致,补偿坐标系位姿信息为参考坐标系位姿信息和当前坐标系位姿信息之间的变化信息;
第二确定模块73,用于根据补偿坐标系位姿信息对第一位姿信息进行调整,得到待识别物的第二位姿信息。
作为一种可能的设计中,标定物至少包括三个标定球;
在根据当前坐标系位姿信息和参考坐标系位姿信息,确定补偿坐标系位姿信息之前,第一确定模块72,还用于
S1,通过第二相机获取至少三个标定球的点云信息,至少三个标定球构成的第一平面位于第二相机视野对应的第二平面内;
S2,从至少三个标定球的点云信息中确定至少三个标定球的球冠点云;
S3,针对每个标定球,根据标定球的球冠点云,拟合标定球的球心位姿;
S4,基于每个标定球的球心位姿,确定至少三个标定球的中心的第一坐标系位姿信息;
S5,在预设时长内,重复执行上述步骤S1-S4 N次以上、且在所有得到的第一坐标系位姿信息之间的差值均小于第一预设阈值时,将任一次的第一坐标系位姿信息作为参考坐标系位姿信息,N大于0的整数。
作为一种可能的设计中,第一确定模块72,还用于
在重复上述步骤S1-S4的过程中,若得到的第一坐标系位姿信息之间的差值大于或等于第一预设阈值,确定第一提示信息,第一提示信息用于提示用户检查点云质量、以及机器人到位重复精度。
作为一种可能的设计中,在获取标定物的当前坐标系位姿信息之后,第一确定模块72,还用于
根据标定物的当前坐标系位姿信息与标定物的参考坐标系位姿信息,确定标定物的漂移量;
若漂移量大于第二预设阈值、且小于第三预设阈值,确定第二提示信息,第二提示信息用于提示用户标定物存在漂移;
若漂移量大于或等于第三预设阈值,确定第三提示信息,第三预设阈值大于第二预设阈值,第三提示信息用于提示用户标定物漂移过高。
作为一种可能的设计中,第一确定模块72,还用于
在满足预设条件时,根据上述步骤S1-S5对参考坐标系位姿信息进行更新;
其中,预设条件包括如下至少一项:响应于用户对参考坐标系位姿信息进行更新的操作指令、检测到当前坐标系位姿信息与参考坐标系位姿信息之间的漂移量大于第二预设阈值、距离上一次确定出参考坐标系位姿信息的时长达到第一预设时长。
作为一种可能的设计中,获取模块,具体用于如下任一项:
在获取第一位姿信息之前的第二预设时长内基于第一相机获取标定物的当前坐标系位姿信息;
在获取第一位姿信息之后的第三预设时长内基于第一相机获取标定物的当前坐标系位姿信息;
检测到基于上一次补偿坐标系位姿信息对上一次待识别物进行位姿信息补偿之后,上一次待识别物的位姿信息不准确时,基于第一相机获取标定物的当前坐标系位姿信息。
作为一种可能的设计中,第一平面的第一宽边与第二平面的第二宽边的距离值等于预设系数的第二宽边对应长度值,第一平面的第一长边与第二平面的第二长边的距离值等于预设系数的第二长边对应长度值。
本公开实施例提供的物体位姿的确定装置,可用于执行上述任一实施例中的物体位姿的确定方法,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。此外,这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图8为本公开实施例提供的机器人的结构示意图,如图8所示,该机器人可以包括:处理器81、存储器82及存储在所述存储器82上并可在处理器81上运行的计算机程序指令,所述处理器81执行所述计算机程序指令时实现前述任一实施例提供的方法。
可选的,该机器人的上述各个器件之间可以通过系统总线连接。
存储器82可以是单独的存储单元,也可以是集成在处理器81中的存储单元。处理器81的数量为一个或者多个。
应理解,处理器81可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器81、数字信号处理器81(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器81可以是微处理器81或者该处理器81也可以是任何常规的处理器81等。结合本公开所公开的方法的步骤可以直接体现为硬件处理器81执行完成,或者用处理器81中的硬件及软件模块组合执行完成。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器82可能包括随机存取存储器82(randomaccess memory,RAM),也可能还包括非易失性存储器82(non-volatile memory,NVM),例如至少一个磁盘存储器82。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器82中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器82(存储介质)包括:只读存储器82(read-only memory,ROM)、RAM、快闪存储器82、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppydisk)、光盘(英文:optical disc)及其任意组合。
本公开实施例提供的机器人,可用于执行上述任一方法实施例提供的物体位姿的确定方法,其实现原理和技术效果类似,在此不再赘述。
本公开实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述物体位姿的确定方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器,电可擦除可编程只读存储器,可擦除可编程只读存储器,可编程只读存储器,只读存储器,磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
可选的,将可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本公开实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,至少一个处理器可以从该计算机可读存储介质中读取该计算机程序,所述至少一个处理器执行所述计算机程序时可实现上述物体位姿的确定方法。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。