验证和更新机器人控制用相机校准的方法和控制系统与流程

文档序号:31999494发布日期:2022-11-02 10:30阅读:47来源:国知局
验证和更新机器人控制用相机校准的方法和控制系统与流程
验证和更新机器人控制用相机校准的方法和控制系统
1.本技术是申请日为2019年6月4日、题为“验证和更新机器人控制用相机校准的方法和控制系统”的发明专利申请201910478785.6的分案申请。
技术领域
2.本发明涉及验证和更新机器人控制用相机校准的方法和控制系统。


背景技术:

3.随着自动化越来越普遍,机器人被用于更多的环境中,比如在仓储和制造环境中。例如,机器人可以用来将货物装载到仓库中的托盘上或者从托盘上取下,或者可以用来从工厂的传送带上捡取物品。机器人的运动可以是固定的,或者可以是基于输入的,比如仓库或工厂中的相机拍摄的图像。在后一情况下,可以进行校准,以便确定相机的性质,和确定相机与机器人所处环境之间的关系。所述校准可被称为相机校准,可基于相机拍摄的图像,生成用于控制机器人的相机校准信息。在一些实现中,相机校准可涉及可手动控制机器人的运动或者可手动控制相机拍摄机器人的图像的人的手动操作。


技术实现要素:

4.本文中的实施例的一个方面涉及进行机器人控制用相机校准验证。相机校准验证可由包括通信接口和控制电路的机器人控制系统进行。通信接口可被配置成与具有基座和上面布置有验证符号的机械臂的机器人通信,并与具有相机视野的相机通信。机器人控制系统的控制电路可被配置成通过以下操作,进行相机校准验证:a)进行第一相机校准,以确定相机校准信息,b)向通信接口输出第一运动命令,其中通信接口被配置成把第一运动命令传达给机器人,以使机械臂在第一相机校准期间或之后将验证符号移动到相机视野内的位置,该位置是用于第一相机校准的验证的一个或多个参考位置中的参考位置,c)通过通信接口从相机接收验证符号的图像,所述相机被配置成拍摄在所述参考位置处的验证符号的图像,该图像是验证用参考图像,d)确定验证符号的参考图像坐标,所述参考图像坐标是在参考图像中出现验证符号之处的坐标,和e)向通信接口输出基于相机校准信息的第二运动命令,其中所述通信接口被配置成把第二运动命令传达给机器人,以使机械臂运动,从而进行机器人操作。
5.在实施例中,控制电路被配置成进一步通过以下操作,进行相机校准验证:f)检测机器人操作期间的空闲期,g)向通信接口输出第三运动命令,其中通信接口被配置成把第三运动命令传达给机器人,以使机械臂在空闲期内,把验证符号至少移动到所述参考位置,h)通过通信接口从相机接收验证符号的附加图像,所述相机被配置成在空闲期内拍摄至少在所述参考位置处的验证符号的附加图像,所述附加图像是验证用验证图像,i)确定用于验证的验证图像坐标,该验证图像坐标是在验证图像中出现验证符号之处的坐标,j)基于参考图像坐标和验证图像坐标之间的偏差量,确定偏差参数值,参考图像坐标和验证图像坐标二者与参考位置关联,其中偏差参数值指示自第一相机校准以来,通信接口被配置成
与之通信的相机的变化,或者自第一相机校准以来,通信接口被配置成与之通信的相机和机器人之间的关系的变化,k)判定偏差参数值是否超过规定阈值,和l)响应于偏差参数值超过规定阈值的判定,进行第二相机校准,以确定更新的相机校准信息。
附图说明
6.根据如在附图中图解所示的本发明的实施例的以下说明,本发明的上述和其他特征、目的和优点将是明显的。包含在本文中,并构成说明书的一部分的附图进一步解释本发明的原理,使本领域的技术人员能够实现和利用本发明。附图不是按比例绘制的。
7.图1a和1b按照本文的实施例,描述其中进行相机校准的验证的系统的方框图。
8.图1c按照本文的实施例,描述配置成进行相机校准的验证的机器人控制系统的方框图。
9.图1d按照本文的实施例,描述对其进行相机校准的相机的方框图。
10.图2按照本文的实施例,描述图解说明基于从相机校准获得的相机校准信息控制机器人的系统。
11.图3按照本文的实施例,描述进行相机校准的系统。
12.图4a和4b提供按照本文的实施例,图解说明进行相机校准的验证的方法的流程图。
13.图5a和5b按照按照本文的实施例,图解说明其中在机器人上设置验证符号的系统,其中所述验证符号用于进行相机校准的验证。
14.图5c按照本文的实施例,描述例证的验证符号。
15.图6a-6b按照本文的实施例,描述拍摄验证符号的各个图像的参考位置的例子。
16.图7a按照本文的实施例,描述确定参考图像坐标的例子。
17.图7b按照本文的实施例,描述确定验证图像坐标的例子。
18.图8按照本文的实施例,图解说明用于相机校准的验证的例证时间线。
19.图9按照本文的实施例,提供图解说明进行相机校准的验证的例证方法的流程图。
具体实施方式
20.以下详细说明仅仅是示范性的,并不意图限制本发明或者本发明的应用和用途。此外,不受在上述技术领域、背景技术、简要的发明内容或以下的具体实施方式中提出的任何明示或暗示的理论约束。
21.记载在本文中的实施例涉及验证和/或更新用于控制机器人,比如在仓库、制造工厂或某个其他环境中使用的机器人的相机的校准。所述校准可被称为相机校准,可由例如机器人控制系统(也被称为机器人控制器)进行,以生成促进机器人控制系统基于相机捕捉(例如拍摄)的图像,控制机器人的能力的相机校准信息。例如,机器人可用于在仓库中捡取包裹,其中机器人的机械臂或其他组件的放置可以基于相机拍摄的包裹的图像。这种情况下,相机校准信息可以与包裹的图像一起用于确定例如包裹相对于机器人的机械臂的位置和定向。相机校准可涉及确定相机的固有参数(也可被称为内部参数)的相应估计,和确定相机与其外部环境之间的关系的估计。相机的固有参数可具有一个或多个参数值,比如矩阵、向量或标量值。此外,固有参数的例子包括投影矩阵和畸变参数。在实例中,相机校准可
涉及确定相机相对于外部环境中的固定位置的位置,它可被表述成表示相机与外部环境中的固定位置之间的关系的变换函数。在一些情况下,相机校准可以借助校准图案进行,所述校准图案可具有设置在校准图案上的定义位置处的图案元素。相机可拍摄校准图案的图案元素的图像(也被称为校准图像),基于比较图案元素的图像和图案元素的定义位置,可以进行相机校准。在2019年3月7日提交的美国专利申请no.16/295,940(案号mj0021us1)“method and device for performing automatic camera calibration for robot control”中更详细地讨论了相机校准,该专利申请的整个内容通过引用包含在本文中。
22.如上所述,本公开的一个方面涉及验证在较早时间点进行的相机校准在较晚时间点仍然精确。在较早时间点进行的相机校准可生成反映在该时间点的相机的性质的相机校准信息,比如在该时间点的相机的固有参数,或者相机与其外部环境之间的关系。在一些情况下,较早的相机校准可能会随着时间的推移而失去精确性,因为相机的性质可能会随着时间的推移而变化。在第一个例子中,相机的固有参数可能会随着时间的推移而变化。这种变化可能是由例如改变了相机的外壳和/或镜头的形状的温度变化引起的。在第二个例子中,相机与其外部环境之间的关系可能会随着时间的推移而变化。例如,相机可能相对于例如机器人的基座或者仓库中的某个位置移动位置或定向。这种变化可能是由例如膨胀或收缩用于安装相机的任意组件的温度变化,碰撞相机的人或其他物体,相机的外部环境(例如,仓库)中的振动,来自相机自身重量的作用力(即重力),或者其他因素引起的。这些变化可能使相机校准信息过时,从而在稍后的时间点,利用该相机校准信息定位机器人的机械臂或其他组件可能会导致错误。换句话说,如果与相机关联的性质已随着时间的推移而变化,但是相机校准信息没有更新以反映这种变化,那么机器人可能会根据过时的或不正确的相机校准信息进行操作,从而在机器人的操作中造成不可取的错误。为了解决相机的一个或多个性质可能发生变化的可能性,机器人控制系统可以自动进行检测来自相机校准的相机校准信息何时不再足够准确的验证。检测这种情况可以提供相机的性质变化的指示。如果验证检测到相机校准信息不再足够准确,那么机器人控制系统可再次进行相机校准,以确定可反映相机的一个或多个最新特性的更新的相机校准信息。更新的相机校准信息可用于控制机器人手臂的放置或者机器人操作的某个其他方面。因而,进行相机校准的自动验证和/或相机校准的更新,以确保机器人基于和与相机关联的一个或多个性质相关的正确信息进行操作。
23.本文中的实施例的一个方面涉及通过比较相机拍摄的参考图像和相机拍摄的验证图像,验证相机的相机校准。在一些情况下,参考图像可以是当对象在较早的时间点,在特定位置时拍摄的该对象的图像,验证图像可以是在较晚的时间点,在同一位置拍摄的该对象的图像。验证可以判定在参考图像和验证图像之间是否存在过大的偏差,比如偏差是否超过一定的阈值。在一些实现中,所述对象可以是验证符号。更具体地,机器人的机械臂或其他组件可具有用于验证相机校准的验证符号。参考图像和验证图像都可捕捉或以其他方式包括验证符号,机器人控制系统可通过比较验证符号在参考图像中的出现和验证符号在验证图像中的出现,来比较这两个图像。例如,在机器人控制系统在特定时间点,进行产生相机校准信息的相机校准之后,机器人控制系统可控制机械臂(例如,通过运动命令)把验证符号移动到相机的视野(也被称为相机的相机视野)内的一组预定位置,其中这些位置可以用作一组验证用参考位置。相机可拍摄在所述一组参考位置处的验证符号的相应参考
图像。在一些情况下,可在进行相机校准之后,立即拍摄参考图像。机械臂的运动,或者更具体地,用于移动机械臂的运动命令可以基于来自刚刚进行的相机校准的相机校准信息,或者可以独立于相机校准信息。在一些情况下,可以在机器人开始机器人操作之前,拍摄参考图像。在拍摄参考图像之后,可以认为机器人准备好开始机器人操作来进行作业,机器人控制系统可以基于相机随后拍摄的图像,例如控制机械臂的定位。
24.如上所述,可以比较参考图像和随后拍摄的验证图像。在实施例中,可以在机器人控制系统检测到的一个或多个空闲期内拍摄验证图像。更具体地,当机器人操作开始时,机器人可开始进行机器人作业(例如,通过与包裹或其他物体交互)。在机器人进行机器人操作的时候,机器人控制系统可以检测机器人的一个或多个空闲期。在一些情况下,空闲期可以是机器人在机器人操作期间,不进行机器人作业的时间段。在一些情况下,机器人控制系统可基于检测或以其他方式预见机器人需要与之交互的物体,来调度机器人操作,并可基于检测或以其他方式预见不存在机器人需要与之交互的物体,来检测空闲期。
25.在空闲期内,机器人控制系统可控制机器人的机械臂或其他组件(例如,通过运动命令)移动到参考位置,并拍摄(例如,通过相机命令)在各个参考位置的相应验证图像。如果机器人上设置有验证符号,那么更具体地,机器人控制系统可控制机械臂把验证符号移动到参考位置,以拍摄验证图像。随后,机器人控制系统可确定各个验证图像偏离各个参考位置处的对应参考图像的程度。在一些情况下,验证图像和相应参考图像之间的偏差可被表示成偏差参数。如果偏差参数的值(也被称为偏差参数值)超过偏差参数的定义阈值(也可被称为规定偏差阈值),那么机器人控制系统可以进行附加的相机校准,来确定相机的更新的相机校准信息。当偏差参数的值超过规定偏差阈值时,该条件可能指示旧的相机校准信息的使用可能会在机器人操作中导致不可取的误差量。从而,在一些情况下,在进行附加校准时,可以暂停或停止机器人操作(暂停可被视为另一个空闲期)。在附加校准完成之后,可拍摄新的一组参考图像,可利用更新的相机校准信息,继续机器人操作。在随后的空闲期内,可以拍摄新的一组验证图像,机器人控制系统可通过比较新的一组参考图像和新的一组验证图像,进行附加相机校准的验证。
26.如上所述,如果偏差参数的值超过规定偏差阈值,那么控制器控制系统可进行附加相机校准。如果偏差参数的值未超过偏差阈值,那么可在机器人控制系统不进行附加校准的情况下,在空闲期之后继续机器人操作。在这种情况下,在随后的空闲期内,相机可拍摄在各个参考位置的新的一组验证图像。当拍摄了新的一组验证图像时,机器人控制系统可通过确定新的一组验证图像偏离各个参考位置的相应参考图像的程度,再次进行相机校准的验证。
27.如上所述,机械臂可具有设置于其上的验证符号,比如环形图案,验证符号可被捕捉或以其他方式包含在参考图像和验证图像中。在实施例中,机器人控制系统可基于验证符号出现在参考图像中的相应位置,和基于验证符号出现在验证图像中的相应位置,确定参考图像和相应验证图像之间的偏差。例如,机器人控制系统可确定各个参考位置的参考图像坐标。特定位置的参考图像坐标可以是在当验证符号被放置在该参考位置时拍摄的参考图像中,出现该验证符号之处的坐标。更具体地,参考图像坐标可与特定参考位置关联,并可以指的是在参考图像中出现验证符号之处的图像坐标,其中所述参考图像是在所述验证符号被放置在参考位置时由相机拍摄的。在上述例子中,图像坐标可以指的是图像中的
坐标,比如像素坐标。当机器人控制系统随后再次把验证符号放置在特定参考位置,并获得对应的验证图像时,机器人控制系统可确定验证图像坐标。验证图像坐标也可与参考位置关联,并可以指的是在验证图像中出现验证符号之处的图像坐标(例如,像素坐标),其中所述验证图像是在所述验证符号被放置在参考位置时由相机拍摄的。机器人控制系统可比较与特定参考位置关联的参考图像坐标,和与同一参考位置关联的验证图像坐标。可以对于拍摄验证图像和参考图像的各个参考位置进行这种比较。
28.在实例中,在参考图像中,出现验证符号之处的参考图像坐标可以是参考图像中的验证符号的中心的坐标(也被称为参考图像中的验证符号的中心坐标)。类似地,在验证图像中出现验证符号之处的验证图像坐标可以是验证图像中的验证符号的中心的坐标(也被称为验证图像中的验证符号的中心坐标)。对于拍摄对应的验证图像之时,机械臂和/或验证符号所位于的各个参考位置,机器人控制系统可确定与参考位置关联的参考图像坐标和与同一参考位置关联的验证图像坐标之间的偏差。如果机械臂和/或验证符号被放置在多个参考位置,那么机器人控制系统可对于所述多个参考位置,确定相应参考图像坐标和相应验证图像坐标之间的相应偏差量。机器人控制系统可基于各个参考位置的参考图像坐标和相应的验证图像坐标之间的相应偏差量,进一步确定偏差参数的值。
29.在实例中,验证符号可包括彼此同心的多个形状,以致验证符号中的多个形状的各自中心在相同或实质相同的位置。例如,验证符号可以是包括两个或更多个同心圆的环形图案。在一些情况下,如果验证符号的参考图像坐标是参考图像中的验证符号的中心坐标,那么机器人控制系统可基于参考图像中的多个形状的各自中心坐标,确定验证符号的中心坐标,其中特定形状的中心坐标是该形状的中心的坐标。如果验证符号是环形图案,那么参考图像中的环形图案的中心坐标可被确定为参考图像中的,形成环形图案的第一个圆的中心坐标和形成环形图案的第二个圆的中心坐标的平均值。类似地,可基于验证图像中的形成验证符号的多个形状的各自中心坐标,确定验证图像中的验证符号的中心坐标。在一些情况下,利用多个形状来形成验证符号可以提高验证的精度。例如,利用图像中的多个形状的各自中心坐标来确定验证符号的中心坐标可以提高验证对图像噪声的鲁棒性。更具体地,如果验证符号的图像包含图像噪声,那么图像噪声可能降低机器人控制系统检测验证符号的特定形状的中心坐标的精度。然而,如果将该形状的中心坐标与另一形状的中心坐标求平均值,以确定验证符号的中心坐标,那么平均后的中心坐标可降低图像噪声的影响。结果,可以提高确定验证符号的中心坐标的精度。
30.在实例中,验证符号可包括具有各自不同的颜色的多个区域,其中所述多个区域的各自面积可具有确切的规定比率。例如,验证符号可包括具有第一种颜色(例如黑色)的第一区域,和具有第二种颜色(例如白色)的第二区域,其中第一区域的面积与第二区域的面积之比是规定的,或者以其他方式已知。所述确切的比率可便于识别图像中的验证符号,尤其是如果图像捕捉或以其他方式包括其他特征,比如校准图案的圆点。例如,移动校准符号的机械臂也可具有布置在机械臂上的校准图案。机器人控制系统可利用所述比率来区分验证符号和校准图案的圆点。更具体地,由于验证符号的多个区域的面积之比被定义成确切的比率,因此机器人控制系统可基于规定的比率,识别图像中的验证符号。在出现在图像中的验证符号的识别期间,机器人控制系统可基于规定的比率,区分验证符号和校准图案或其他特征。在一些情况下,验证符号可在图像中被识别成图像的包括具有各自不同的颜
色的多个区域,并且具有所述多个区域的相应面积之间的规定比率的一部分。如果机器人控制系统或者其他系统或设备确定图像的特定部分不包括具有各自不同的颜色的多个区域,或者所述多个区域的相应面积具有与规定比率不同的比率,那么机器人控制系统可确定图像的该部分不是验证符号。
31.在实例中,机器人控制系统可基于机器人周围的温度,进行验证。例如,机器人控制系统可基于温度,调整规定偏差阈值(即,为偏差阈值定义新的值)。例如,温度可能影响相机和/或机器人中的各个部分,因为一些材料可能敏感,和/或可能基于温度膨胀/收缩。温度的变化可能导致相机的固有参数变化,和/或导致相机与其外部环境之间的关系变化。在实施例中,当温度在规定范围之外时,可以将偏差阈值设定为具有第一值,而当温度在规定范围之内时,可以将偏差阈值设定为具有比第一值低的第二值。例如,当温度在规定的正常工作温度范围之内(例如在室温10度以内)时,则偏差阈值可以是第一值。当温度在正常工作温度范围之外时,则偏差阈值可具有比第一值低的第二值。第二值可以低于第一值,以便当温度在正常工作范围之外时,更易于触发附加相机校准,因为在正常工作温度范围之外的温度更有可能导致相机或相机与外部环境的关系发生变化,从而更有可能在利用旧的相机校准信息操作机器人时导致误差。
32.在实施例中,相机校准的验证可以只依赖于单个参考位置。或者,相机校准的验证可以依赖于多个参考位置。参考位置可以是相机的视野中的任意位置,或者可以是特定的规定位置。例如,参考位置可被定义为相对于相机凹陷的至少一个假想球体的表面上的位置。在这种情况下的每个参考位置处,可以控制机械臂来定位验证符号,以致使验证符号在面对相机的同时,位于与所述至少一个假想球体的表面相切的位置。这种定位可以更好地允许验证符号被相机正面拍摄或以其他方式捕获(验证符号直接面对相机),以致验证符号的图像类似于验证符号的俯视图,而不是透视图。例如,如果验证符号是环形图案,那么使环形图案位于与假想球体的表面相切的位置可以使环形图案的最终图像呈圆形,而不是呈椭圆形。最终图像可能表现出较少的透视畸变或者没有透视畸变(相对于其中环形图案在图像中呈椭圆形的情况)。透视畸变的不存在可便于精确地确定环形图案的中心坐标。在一些情况下,可在都相对于相机凹陷的多个假想球体之间,划分参考位置。所述多个假想球体可共有公共中心,大小可不同,以致每个假想球体具有与相机的距离各不相同的球面。在一些情况下,相机可以是所有假想球体的共同中心。
33.图1a图解说明用于进行自动相机校准和相机校准的自动验证的机器人操作系统100(也称为系统100)的方框图。机器人操作系统100包括机器人150、机器人控制系统110(也称为机器人控制器)和相机170。在实施例中,系统100可以位于仓库、制造工厂或其他场所中。机器人控制系统110可被配置成进行下面更详细讨论的相机校准,以确定稍后用于控制机器人150进行机器人操作,比如在仓库中捡取包裹的相机校准信息。机器人控制系统110还可被配置成进行下面更详细讨论的相机校准验证,以验证相机校准信息是否仍然足够精确。在一些情况下,机器人控制系统110被配置成进行相机校准,和基于相机校准信息控制机器人150进行机器人操作。在一些情况下,机器人控制系统110可构成与机器人150和相机170通信的单个设备(例如单个控制台或单个计算机)。在一些情况下,机器人控制系统110可包括多个设备。
34.在一些情况下,机器人控制系统110可专用于进行相机校准和/或相机校准的验
证,可将最新的相机校准信息传达给其他控制系统(也被称为其他控制器,未图示),该其他控制系统随后基于最新的相机校准信息控制机器人150进行机器人操作。可以基于相机170拍摄的图像和相机校准信息,定位机器人150。更具体地,在实施例中,机器人控制系统110可被配置成基于图像和基于相机校准信息,生成运动命令,并将运动命令传达给机器人150,以控制其机械臂的运动。在一些情况下,机器人控制系统110被配置成在机器人操作中的空闲期内,进行相机校准的验证。在一些情况下,机器人控制系统110被配置成在利用机器人150进行机器人操作的时候进行验证。
35.在实施例中,机器人控制系统110可被配置成通过有线或无线通信与机器人150和相机170通信。例如,机器人控制系统110可被配置成通过rs-232接口、通用串行总线(usb)接口、以太网接口、接口、以太网接口、接口、ieee 802.11接口或者它们的任意组合,与机器人150和/或相机170通信。在实施例中,机器人控制系统110可被配置成通过本地计算机总线,比如外围组件互连(pci)总线,与机器人150和/或相机170通信。
36.在实施例中,机器人控制系统110可与机器人150分离,并可通过上述无线或有线连接与机器人通信。例如,机器人控制系统110可以是配置成通过有线或无线连接与机器人150和相机170通信的独立计算机。在实施例中,机器人控制系统110可以是机器人150的集成组件,并可以通过上述本地计算机总线与机器人150的其他组件通信。在一些情况下,机器人控制系统110可以是只控制机器人150的专用控制系统(也称为专用控制器)。在其他情况下,机器人控制系统110可被配置成控制多个机器人,包括机器人150。在实施例中,机器人控制系统110、机器人150和相机170位于同一场所(例如仓库)。在实施例中,机器人控制系统110可以远离机器人150和相机170,可被配置成通过网络连接(例如,局域网(lan)连接)与机器人150和相机170通信。
37.在实施例中,机器人控制系统110可被配置成从相机170取回或以其他方式接收放置在机器人150上(例如,机器人的机械臂上)的校准图案160和/或验证符号165的图像。在一些情况下,机器人控制系统110可被配置成控制相机170拍摄这样的图像。例如,机器人控制系统110可被配置成生成使相机170拍摄相机170的视野(也称为相机视野)的图像的相机命令,并通过有线或无线连接把所述相机命令传达给相机170。同一命令还可使相机170将图像传给机器人控制系统110,或者更一般地将图像传给机器人控制系统110可访问的存储设备。或者,机器人控制系统110可生成使相机170在收到相机命令时,把相机170拍摄的图像传给机器人控制系统110的另一相机命令。在实施例中,相机170可以定期地或者响应于规定触发条件,在其相机视野中自动拍摄图像,而不需要来自机器人控制系统110的相机命令。在这样的实施例中,相机170也可被配置成在没有来自机器人控制系统110的相机命令的情况下,自动将图像传给机器人控制系统110,或者更一般地,传给机器人控制系统110可访问的存储设备。
38.在实施例中,机器人控制系统110可被配置成通过由机器人控制系统110生成并经有线或无线连接传达给机器人150的运动命令,控制机器人150的运动。机器人150可被配置成在机器人150上具有校准图案160和/或验证符号165。例如,图1b描述其中验证符号165设置在机器人150上,而不存在图1a的校准图案160的机器人操作系统100a。在一个实例中,验证符号165可以是机器人150的一部分,并可以永久布置在机器人150上。例如,验证符号165可以永久地绘制在机器人150上,也可以是永久地附着在机器人150上的贴纸或板的一部
分。在另一个实例中,验证符号165可以是可附接到机器人150上和从机器人150上拆卸的单独组件。验证符号165可以永久地设置在机器人150上,或者可以是可附加到机器人150上和从机器人150上拆卸的单独组件。
39.在实施例中,系统100中用于控制机器人150的唯一图像可以是相机170拍摄的图像。在另一个实施例中,系统100可包括多个相机,并可利用来自多个相机的图像控制机器人150。
40.图1b进一步图解说明其中机器人控制系统110与用户界面设备180通信的实施例。用户界面设备180可被配置成与机器人150的操作员,比如机器人150所在的仓库中的员工面接。用户界面设备180可包括例如提供显示与机器人150的操作相关的信息的用户界面的平板计算机或桌上型计算机。如上所述,机器人控制系统110可被配置成检测何时偏差参数值超过规定偏差阈值。在实施例中,用户界面设备180可以提供报警或其他警报,以通知操作员偏差参数值超过规定偏差阈值。
41.图1c描述机器人控制系统110的方框图。如该方框图中图解所示,机器人控制系统110包括控制电路111、通信接口113和非临时性计算机可读介质115(例如,存储器)。在实施例中,控制电路111可包括一个或多个处理器、可编程逻辑电路(plc)或者可编程逻辑阵列(pla)、现场可编程门阵列(fpga)、专用集成电路(asic)或者任何其他控制电路。
42.在实施例中,通信接口113可包括配置成与图1a或1b的相机170和图1a或1b的机器人150通信的一个或多个组件。例如,通信接口113可包括配置成通过有线或无线协议进行通信的通信电路。例如,通信电路可包括rs-232端口控制器、usb控制器、以太网控制器、控制器、pci总线控制器、任何其他通信电路或者它们的组合。在实施例中,控制电路111可被配置成生成运动命令(例如电机运动命令),并将运动命令输出给通信接口113。在本实施例中,通信接口113可被配置成把运动命令传达给机器人150,以控制机器人150的机械臂或其他组件的运动。在实施例中,控制电路111可被配置成生成相机命令,并把相机命令(例如,拍摄图像命令)输出给通信接口113。在本实施例中,通信接口113可被配置成把相机命令传达给相机170,以控制相机170在相机的视野内拍摄或以其他方式捕捉物体的图像。在实施例中,通信接口113可被配置成从相机170接收图像或其他数据,控制电路111可被配置成从通信接口113接收图像。
43.在实施例中,非临时性计算机可读介质115可包括计算机存储器。计算机存储器可包括例如动态随机存取存储器(dram)、固态集成存储器、和/或硬盘驱动器(hdd)。在一些情况下,可通过保存在非临时性计算机可读介质115上的计算机可执行指令(例如,计算机代码),实现相机校准。在这样的情况下,控制电路111可包括配置成进行计算机可执行指令,以进行相机校准的验证(例如,图4a、4b和9中例示的步骤)的一个或多个处理器。
44.图1d描述相机170的方框图,相机170包括一个或多个镜头171、图像传感器173和通信接口175。通信接口175可被配置成与图1a、1b或1c的机器人控制系统110通信,并可类似于机器人控制系统110的图1c的通信接口113。在实施例中,所述一个或多个镜头171可把来自相机170外部的光聚焦到图像传感器173上。在实施例中,图像传感器173可包括配置成通过各个像素强度值表示图像的像素阵列。图像传感器173可包括电荷耦合器件(ccd)传感器、互补金属氧化物半导体(cmos)传感器、量子图像传感器(qis)或者任何其他图像传感器。
45.如上所述,可以进行相机校准,以使基于相机拍摄的图像的机器人的控制更容易。例如,图2描述其中图像用于控制机器人250进行机器人操作,比如在仓库中捡取物体292的操作的机器人操作系统200(也称为系统200)。更具体地,系统200可以是图1a的系统100的实施例,包括相机270、机器人250和机器人控制系统110。相机270可以是图1a、1b或1d的相机170的实施例,机器人250可以是图1a或1b的机器人150的实施例。相机270可被配置成拍摄放置在仓库中的传送带293上的物体292(例如装运用包裹)的图像,机器人控制系统110可被配置成控制机器人250捡取物体292。当传送带293上有一个或多个物体时,机器人控制系统110可被配置成调度机器人250的运动,以便捡取物体。在一些情况下,机器人控制系统110可被配置成通过检测何时传送带293上没有物体,或者何时传送带293上没有在机器人250到达的范围内的物体,来检测机器人操作的空闲期。
46.在图2的实施例中,机器人250可以具有基座252和可相对于基座252移动的机械臂。更具体地,机械臂可包含多个连杆254a~254e,和附接到连杆254e的机械手255。所述多个连杆254a~254e可以彼此相对旋转,和/或可以是相对于彼此可直线移动的直动连杆(prismatic link)。由于图2涉及用于捡取物体的机器人250,因此机械手255可包括用于抓取物体292的抓爪255a和255b。在实施例中,机器人控制系统110可被配置成传达运动命令,以旋转连杆254a~254e中的一个或多个。运动命令可以是低级命令,比如电机运动命令,或者高级命令。如果来自机器人控制系统110的运动命令是高级命令,那么机器人150可被配置成把高级命令转换成低级命令。
47.在实施例中,从相机校准确定的相机校准信息描述相机270和机器人250之间的关系,或者更具体地,相机270与相对于机器人250的基座252静止的世界点294之间的关系。世界点294可以表示机器人250所在的世界或其他环境,并可以是相对于基座252静止的任何假想点。换句话说,相机校准信息可包括描述相机270和世界点294之间的关系的信息。在实施例中,该关系可以指的是相机270相对于世界点294的位置,以及相机270相对于机器人250的基准定向的定向。上述相机270与世界点294之间的关系可被称为相机与世界的关系,并可以用于表示相机270与机器人250之间的关系。在一些情况下,相机与世界的关系可以用于确定相机270与物体292之间的关系(也被称为相机与物体的关系),以及物体292与世界点294之间的关系(也被称为物体与世界的关系)。相机与物体的关系和物体与世界的关系可以用于控制机器人250捡取物体292。
48.在实施例中,相机校准信息可描述相机270的固有参数,其中所述固有参数可以是其值独立于相机270的位置和定向的任意参数。所述固有参数可表征相机270的性质,比如相机270的焦距、相机270的图像传感器的大小、或者相机270引入的镜头畸变的影响。
49.图3中描述了表示机器人350的例子的详细结构的例子,图3描述包括与相机370和机器人350通信的机器人控制系统110的机器人操作系统300。相机370可以分别是图1a、1b、1d或2的相机170/270的实施例,机器人350可以分别是图1a、1b或2的机器人150/250的实施例。相机370能够在相机视野330内拍摄图像。机器人350可包括基座352,和可相对于基座352运动的机械臂。机械臂包括一个或多个连杆,比如连杆354a~连杆354e,和机械手355。在实施例中,连杆354a~354e可转动地相互附接。例如,连杆354a通过关节356a可转动地附接到机器人基座352。剩余的连杆354b~354e通过关节356b~356e可转动地相互附接。在实施例中,基座352可用于把机器人350安装到例如安装架或安装面(例如,仓库的地面)。在实
施例中,机器人350可包括配置成通过转动连杆354a~354e移动机械臂的多个电机。例如,电机之一可被配置成相对于关节356a和基底302转动第一连杆354a,如图3中用虚线箭头所示。类似地,所述多个电机中的其他电机可被配置成转动连杆354b~354e。所述多个电机可由机器人控制系统110控制。图3还描述了固定地设置在第五连杆354e上的机械手355。机械手355上可具有校准图案320,以致机器人控制系统110可通过相机370拍摄校准图案320的图像,并基于拍摄的校准图案320的图像进行相机校准。例如,当相机370被用于拍摄校准图案320的图像(也被称为校准图像)时,机器人控制系统110可移动机械臂,以致校准图案320在相机视野330内,且对相机370可见。在进行相机校准之后,可以移除并用另外的机械手,比如上面设置有验证符号的机械手替换机械手355,如下更详细所述。
50.如上所述,按照实施例,相机校准验证可涉及比较在参考图像中出现验证符号之处的参考图像坐标,和在验证图像中出现验证符号之处的验证图像坐标。所述比较可确定验证图像坐标与参考图像坐标之间的偏差,所述偏差可用于判定是否进行附加相机校准。验证图像可以是在机器人操作的空闲期内拍摄的。图4a和4b按照实施例,描述图解说明验证相机校准的方法400的流程图。在实施例中,方法400可由机器人控制系统110的控制电路111进行。如上所述,机器人控制系统110可包括图1c的通信接口113,通信接口113被配置成与图1a或1b的机器人150通信,以及与图1a、1b或1d的相机170通信。在实施例中,机器人可具有基底(例如,图2的基座252或图3的基座352),和上面设置有验证符号的机械臂(例如图2或图3的机械臂),其中机械臂可相对于基座运动。
51.图5a和5b中描述了其中进行方法400的例证环境,图5a和5b描述都包括与相机570和机器人550通信的机器人控制系统110的机器人操作系统500/500a。相机570可以分别是图1、2或3的相机170/270/370的实施例,机器人550可以分别是图1a、1b、2或3的机器人150/250/350的实施例。机器人550可包括基底552和可相对于基座552运动的机械臂。机械臂包括一个或多个连杆,比如连杆554a~554e。在实施例中,连杆554a~554e可转动地相互附接。例如,连杆554a可转动地附接到机器人基座552。剩余的连杆554b~554e通过多个关节可转动地相互附接。在实施例中,基座552可用于把机器人552安装到例如安装架或安装面(例如,仓库的地面)。机器人550可按与图3的机器人350类似的方式工作。例如,机器人550可包括配置成通过相对于彼此地转动连杆554a~554e移动机械臂的多个电机。机械臂还可包括附接到连杆554e的机械手。例如,图5a描述都可附接到第五连杆554e和从第五连杆554e拆卸的第一机械手555、第二机械手557和第三机械手559。机械手555/557/559可包括例如配置成从传送带573捡取物体(例如,582a、582b、582c)的抓爪或吸取设备。当机械手555/557/559附接到第五连杆554e时,所述附接可以是混合式的。可以手动或自动地进行附接和拆卸。在一个例子中,第五连杆554e可以附接到第一机械手555,如图5a和5b中所示,机器人控制系统110可控制机器人550,使第五连杆554e解除第一机械手555,然后把第五连杆554e附接到第二机械手557。在另一个实施例中,第五连杆554e可被永久地附接到机械手(例如,机械手559)。
52.在实施例中,机器人550上可设置有验证符号530。在一些情况下,验证符号530可以永久地设置在机器人550上。在一些情况下,验证符号530可被设置在机器人550的机械臂上,比如连杆554a~554e之一上,或者设置在机械手上。例如,图5a描述验证符号530被设置在第一机械手555和第三机械手559上,而图5b描述验证符号530被设置在连杆554e上。验证
符号530可以直接绘制在机器人550上,或者可以比如通过贴纸或平板附着在机器人550上。在图5a中描述的例子中,第二机械手557或第三机械手559可用于进行相机校准,因为它们都具有设置在其上的各自的校准图案520/527,而第一机械手555或第三机械手559可用于进行相机校准的验证,因为它们都具有设置在其上的各自的验证符号530。
53.返回图4a,在实施例中,方法400始于步骤401,在步骤401,控制电路111进行第一相机校准,以确定与相机(例如,图1、2、3或5的相机170/270/370/570)关联的相机校准信息。更具体地,相机校准信息可包括相机的相机校准值。在本实施例中,控制电路111可基于校准图案的图像(也被称为校准图像),进行第一相机校准。
54.例如,为了进行第一相机校准,可把图5a的相机550附接到具有校准图案520的第二机械手557,或者具有校准图案527的第三机械手559。图3描述其中可进行第一相机校准的类似环境。在该步骤期间,可以从第五连杆554e拆卸第一机械手555,其中校准图案320用于进行相机校准。可以在开始机器人操作之前,进行第一相机校准。例如,机器人操作可以始于诸如第一机械手555与传送带上的第一物体582a交互之类的机器人作业。在第一相机校准期间,机器人550可装备第二机械手557。机器人控制系统110可通过运动命令控制机器人550的机械臂,以把校准图案520移动到相机570的相机视野510内的各个位置,和拍摄在这样的位置的校准图案520的相应图像。机器人控制系统110可基于校准图案520的拍摄图像,进行第一相机校准,以确定相机570的相机校准信息。在例子中,相机校准信息可包括描述相机570和机器人550之间的关系的信息。在例子中,相机校准信息可描述相机570的固有参数。在2019年3月7日提交的美国申请no.16/295,940(案号mj0021us1)“method and device for performing automatic camera calibration for robot control”中更详细地讨论了相机校准,该申请的整个内容通过引用包含在本文中。
55.返回图4a,方法400还可包括步骤403,在步骤403,通过向机器人控制系统110的通信接口113输出第一运动命令,控制电路111控制机械臂在第一相机校准期间或之后,把验证符号(例如,图5的530)移动到在相机(例如,570)的相机视野(例如,510)内的位置。通信接口113可被配置成把运动命令传达给机器人,以使机械臂在第一相机校准期间或之后,把验证符号(例如,530)移动到在相机视野(例如,510)内的位置。运动命令还可使机械臂将验证符号朝向相机(例如,570),或者更一般地使其对相机可见。该位置可以用作用于第一相机校准的验证的一个或多个参考位置中的参考位置。例如,当验证处理随着时间的推移获取验证符号的图像时,控制电路111可控制机械臂将验证符号(例如,530)始终如一地定位于相同的一个或多个位置,以致所述一个或多个位置可以用作一个或多个参考位置。此外,如下关于步骤405-459所述,验证处理可以对照验证符号(例如,530)的一组早期图像,比如在进行第一相机校准之后立即获得的图像,比较该验证符号的后期图像。后期图像可以用作验证图像,而对照其比较后期图像的图像可以用作参考图像。
56.在步骤405,控制电路111可通过通信接口113从相机(例如,170/270/370/570)接收(例如,取回)验证符号(例如,530)的图像,其中该图像是验证用参考图像。该图像可以是当验证符号在或者曾经在参考位置时由相机拍摄的。在实施例中,通信接口113首先可从相机接收参考图像,控制电路111随后可从通信接口113接收参考图像。在实施例中,步骤405是在控制电路111没有生成给相机的相机命令的情况下进行的。在实施例中,步骤405可涉及控制电路111生成相机命令,并通过通信接口113把相机命令传达给相机。相机命令可控
制相机拍摄在参考位置处的验证符号的图像。
57.图5a-6b图解说明步骤403和405的各个方面。在图5a的实施例中,在例如利用第二机械手557进行第一相机校准之后,可用上面设置有验证符号530的第三机械手559代替第二机械手557。在该实例中,机器人控制系统110控制机器人550的机械臂(例如,通过一个或多个运动命令)把验证符号530移动到相机570的相机视野510内的一个或多个参考位置。所述一个或多个参考位置可包括相机视野510内的任意位置,或者可以是一组一个或多个特定位置,比如布置在假想球体的表面上的位置,如下更详细所述。在另一个实例中,在图5b的实施例中,在第一相机校准期间或之后,机器人控制系统110可控制机械臂把验证符号530移动到相机视野510内的一个或多个参考位置。在该实例中,所述一个或多个参考位置可包括在第一相机校准期间,验证符号530(连同校准图案520)一起被拍摄的任意位置,或者可以是在进行第一相机校准之后,验证符号530被移动到的一组一个或多个特定位置。机器人控制系统110可以基于从第一相机校准获得的相机校准信息,在相机570的指导下,控制本步骤中的机器人550的机械臂的运动,或者可以在没有此类指导的情况下这样做。在实施例中,参考位置可以是保存在本地或远程存储设备中,并且可被取回的规定位置。它们可以坐标(例如,笛卡尔坐标)的形式保存,或者保存为用于转动连杆554a~554e的电机命令,或者以某种其他方式保存。
58.在实施例中,机械臂把验证符号(例如,530)移动到的一个或多个参考位置可包括多个参考位置,其中所述多个参考位置中的每个参考位置都是设置在相对于相机凹陷的假想球体的表面上的位置。在这样的实施例中,控制电路111可被进一步配置成控制机械臂把验证符号移动成与在所述多个参考位置中的每个参考位置的假想球体的表面相切。例如,如图6a和6b中图解所示,机器人控制系统110可控制机器人550的机械臂把验证符号530移动到参考位置610a~610i,并控制相机570拍摄在各个参考位置610a~610i的相应参考图像。可在相机视野510内的多个假想球体之间,划分图6a和6b中的参考位置610a~610i。参考位置610a和610b可被设置在第一假想球体620的第一球面621上,其中第一球面621在相机视野510内。参考位置610c、610d和610e可被设置在第二假想球体630的第二球面631上,其中第二球面631在相机视野510内。参考位置610f、610g、610h和610i可被设置在第三假想球体640的第三球面641上,其中第三球面641在相机视野510内。如图6a和6b中图解所示,第一、第二和第三球面621、631和641分别相对于相机570凹陷。尽管图6a和6b中的例子表示了基于3个球体的3个球面,不过,上面可以设置参考位置的不同球面的数量可以大于或小于3。在实施例中,相机570可以是各个假想球体620、630、640的中心。
59.在实施例中,如图6a和6b中图解所示,当验证符号530被移动到参考位置时,机器人控制系统110可控制机器人550的机械臂(例如,通过运动命令),使验证符号530位于与该参考位置被设置在的球面相切的位置。例如,图6b图解说明验证符号530与在参考位置610d的第二球面631相切。更特别地,验证符号530可被设置在平面上(例如,贴纸上),验证符号530的平面可以与在参考位置610d的第二球面631相切。
60.在实施例中,控制电路111被配置成控制机械臂移动验证符号(例如,530),以在验证符号被移动到参考位置时直接面向相机。例如,如图6a中图解所示,机器人控制系统110可控制机器人550的机械臂移动验证符号530,以在验证符号530被移动到参考位置610d时直接面向相机570。在这个例子中,机器人控制系统110可控制机械手555转动,以致验证符
号530直接面向相机570。在一些情况下,通过与在相机视野510处的球面相切,验证符号可直接面向相机570。当验证符号530直接面向相机570时,相机570能够正面拍摄验证符号530,以致在验证符号530的最终图像中,不存在透视效果,或者透视效果减小。
61.在实施例中,验证符号(例如,530)包括具有第一种颜色的第一区域和具有第二种颜色的第二区域,其中第一区域的面积与第二区域的面积之比被规定,并且保存在机器人控制系统110的非临时性计算机可读介质(例如,存储设备)上。在这样的实施例中,控制电路111可被配置成基于规定的比率,识别参考图像或验证图像中的验证符号。例如,如图5c中图解所示,验证符号530可包括第一区域531,第一区域531为环形,并且具有第一种颜色(例如,黑色区域),并且包括被第一区域531围绕的具有第二种颜色的第二区域533(例如,白色区域)。验证符号530中的黑色的第一区域531的面积与白色的第二区域533的面积之比可以是确切的规定值。通过分析拍摄图像内的颜色,机器人控制系统110可以通过判定图像的一部分是否具有围绕圆形区域的环形区域,并且环形区域的面积与圆形区域的面积之比是否与规定比率一致,来识别图像的与验证符号530对应的部分。这可使机器人控制系统110将验证符号530与图像中捕捉的其他特征区分开。例如,如图5a中图解所示,机器人550可被设定成利用具有校准图案527和验证符号530的组合的第三机械手559。在这个例子中,参考图像可同时显示验证符号530和校准图案527。在这个例子中,校准图案527可能不具有任何环形图案,或者可能包括具有与上述规定比率不同的比率的环形图案。控制电路111通过判定参考图像的一部分是否包括具有第一种颜色的第一图像区域和包括具有第二种颜色的第二图像区域,以及第一图像区域的面积与第二图像区域的面积之比是否等于规定比率,可判定参考图像的该部分是验证符号530还是校准图案527。
62.在一些情况下,机器人控制系统110可判定拍摄图像的特定部分是否包括具有第一种颜色的第一区域和具有第二种颜色的第二区域,以及第一区域的面积与第二区域的面积之比是否在规定范围之内。在一个例子中,如果规定比率为1.5,那么如果特定区域中的比率在1.4~1.6的范围之内,则机器人控制系统110可判定该特定区域对应于验证符号530。第一区域和第二区域的两种颜色不限于黑色和白色,可以是机器人控制系统110能够区分的任意两种不同颜色。
63.在一个方面,验证符号(例如,530)可包括彼此同心的第一形状和第二形状,其中第一形状和第二形状的相应中心实质上在同一位置。例如,验证符号的形状可以为包括彼此同心的第一个圆和第二个圆的圆环形。更具体地,如图5c中图解所示,验证符号530可包括第一形状535(例如,外圆)和第二形状537(例如,内圆)。第一形状535和第二形状537可以彼此同心,以致第一形状535的中心和第二形状537的中心实质上在同一位置。例如,如果第一形状535的中心在坐标而第二形状537的中心在坐标那么坐标和坐标实质上相同。
64.返回图4a,方法400还可包括步骤407,在步骤407,控制电路111确定验证符号的参考图像坐标,参考图像坐标是在参考图像中出现验证符号(例如,530)之处的坐标。例如,如图6a中图解所示,验证符号530的图像可在参考位置610d捕捉到,并可用作参考图像。验证符号530在特定坐标处出现在参考图像内,所述特定坐标可被称为参考图像坐标。
65.在实施例中,如上所述,验证符号(例如,530)可包括彼此同心的第一形状和第二
形状,其中第一形状和第二形状的相应中心实质上在同一位置。在这样的实施例中,在步骤407,控制电路111可被配置成通过:确定参考图像中第一形状的中心的第一坐标,确定参考图像中第二形状的中心的第二坐标,和把参考图像坐标确定为参考图像中第一坐标和第二坐标的平均值,来确定这样的验证符号的参考图像坐标。
66.例如,图7a表示在参考位置中的参考位置n(其中n为整数)处拍摄的参考图像710。参考图像710包括验证部分730,验证部分730是显示图5a、5b或5c的验证符号530的参考图像710中的图像部分。图1a或1b的机器人控制系统110可被配置成从验证部分730中识别与图5c的验证符号530的第一形状535相同或实质相同的第一形状735(例如,外圆)。机器人控制系统110可被配置成进一步从验证部分730中识别与图5c中的验证符号530的第二形状537相同或实质相同的第二形状737(例如,内圆)。随后,对于参考位置n,机器人控制系统110可确定在参考图像710中显示的第一形状735的中心的第一坐标(即,第一形状735的中心坐标),和在参考图像710中显示的第二形状737的中心的第二坐标(即,第二形状737的中心坐标)。为了确定整个参考图像710的参考图像坐标(uref_n,vref_n),其中参考图像710对应于在参考位置n处的验证符号530,机器人控制系统110可如下计算参考图像710中第一坐标和第二坐标的平均值。
[0067][0068]
在实施例中,验证符号的参考图像坐标可以是其中心坐标,并且基于第一形状735和第二形状735的各自中心坐标确定验证符号530的中心坐标可提高验证处理对图像噪声的鲁棒性。例如,图像噪声可能在第一形状735的中心坐标的确定中引入误差,但是不对第二形状737的中心坐标的确定带来误差。在一些情况下,第二形状737可能具有或者可能实际上共有与第一形状735相同的中心坐标,不过,图像噪声可能导致出现在图像中的第二形状737的中心坐标不同于第一形状735的中心坐标。在这种情况下,简单地利用第二形状737的中心坐标作为验证符号530的中心坐标可能导致不可取的误差量。通过利用第一形状735的中心坐标和第二形状737的中心坐标的平均值作为验证符号530的中心坐标,可以降低误差量。
[0069]
在实施例中,上述一个或多个参考位置可以是分别对应于多个参考图像坐标的多个参考位置。在该实施例中,参考图像坐标可以是多个参考图像坐标之一。例如,如图6a和6b中图解所示,可能存在多个参考位置,比如将验证符号530移动到或以其他方式放置到的参考位置610a~610i。对于验证符号530的参考位置610a~610i中的每个参考位置,机器人控制系统110可取回或以其他方式接收相机570拍摄的在该位置的验证符号530的相应参考图像,并可确定相应的参考图像坐标,该参考图像坐标指示验证符号530在相应参考图像中出现的位置。
[0070]
返回图4a,方法400还可包括步骤409,在步骤409,控制电路111基于相机校准信息控制机械臂的运动,以进行机器人操作。在实施例中,该步骤可涉及控制电路111生成基于相机校准信息的第二运动命令,随后把第二运动命令输出给通信接口113。通信接口113又可把第二运动命令传达给机器人,以控制机械臂的运动。例如,如图5a中图解所示,在第一
相机校准之后,机器人控制系统110控制机器人550进行涉及机器人作业,比如捡取物体582a、582b和582c的机器人操作。机器人550的运动可以基于从第一相机校准获得的相机校准信息,以及基于相机570拍摄的物体582a、582b、582c的图像。
[0071]
在步骤411,控制电路111检测机器人操作期间的空闲期。在一个方面,机器人的空闲期可以是机器人在机器人操作期间,不进行机器人作业的时间段。在一些情况下,如果机器人操作基于从传送带573捡取物体,那么空闲期可基于传送带573上没有物体。更具体地,传送带573可由机械臂触及,控制电路111被配置成通过检测在传送带573上没有物体,或者机器人550与传送带573上的最近物体之间的距离超过规定的距离阈值,来检测空闲期。在一些情况下,控制电路111可接收指示即将出现空闲期的信号,其中所述信号可接收自监视机器人操作的其他设备或组件。例如,如图5a中图解所示,机器人控制系统110可在机器人操作期间,检测到涉及捡取第二物体582b的机器人作业和涉及捡取第三物体582c的机器人作业之间的空闲期,因为在第二物体582b和第三物体582c之间存在较大的距离。在该空闲期内,在机器人550捡取第二物体582b之后,机器人550可具有其间它不进行机器人作业的空闲期,因为机器人550还不能触及物体582c。在一个例子中,当机器人550不能触及传送带573上的任何物体时,和/或当机器人控制系统110判定机器人550与传送带573上游的最近物体(例如,第三物体582c)之间的距离超过某个阈值时,机器人控制系统110可检测到空闲期。
[0072]
返回图4a和4b,方法400还可包括步骤451,在步骤451,控制电路111控制机械臂在空闲期将验证符号530至少移动到步骤403中使用的(用于拍摄参考图像的)参考位置。在实施例中,步骤451可涉及控制电路111生成第三运动命令,并把第三运动命令输出给通信接口113。通信接口113可被配置成随后把第三运动命令传达给机器人,以使机械臂基于该运动命令运动。在一些情况下,第三运动命令可涉及保存的一组与参考位置对应的电机命令。在一些情况下,第三运动命令可以是基于来自步骤401的相机校准信息生成的。在其他情况下,步骤451中的第三运动命令不依赖于来自步骤401的相机校准信息。
[0073]
在步骤453,控制电路111在空闲期内从相机(例如,570)取回或以其他方式接收验证符号(例如,530)的附加图像,其中所述附加图像是验证用验证图像,并且是在空闲期内至少位于该参考位置处的验证符号的图像。即,参考位置的验证图像是在验证符号(例如,530)在或者曾经在该参考位置时拍摄的。在实施例中,步骤453涉及控制电路111生成控制相机(例如,570)拍摄验证图像的相机命令。控制电路111可把相机命令输出给通信接口113,通信接口113可把相机命令传达给相机(例如,570)。在实施例中,步骤451可涉及控制机械臂把验证符号移动到多个参考位置,并接收相机拍摄的多个相应的验证图像。例如,如图6a和6b中图解所示,在空闲期内,机器人控制系统110可控制机器人550的机械臂把验证符号530移动到参考位置610a~610i之一,并拍摄在该位置的验证符号530的图像,作为验证图像。如果空闲期尚未结束,或者更具体地,如果在空闲期中剩余足够的时间,那么机器人控制系统110可控制机器人550的机械臂把验证符号530移动到参考位置610a~610i中的另一个参考位置,并拍摄在该另一个位置处的验证符号530的图像,作为另一个验证图像。如果空闲期结束,那么机器人控制系统110可停止拍摄验证图像。因而,在每个空闲期,机器人控制系统110可控制机器人550的机械臂把验证符号530移动到参考位置610a~610i中的一个或多个参考位置,并拍摄在参考位置610a~610i中的一个或多个参考位置每一个处的
验证图像。
[0074]
返回图4b,方法400还可包括步骤455,在步骤455,控制电路111确定用于验证的验证图像坐标,验证图像坐标是在验证图像中出现验证符号之处的坐标。如果验证符号(例如,530)被移动到多个参考位置(例如,610a~610i),那么相机(例如,570)可拍摄分别对应于多个参考位置的多个验证图像,控制电路111可确定分别对应于多个验证图像并且分别对应于多个参考位置的多个验证图像坐标。所述多个验证图像可全部由相机(例如,570)在单个空闲期内拍摄(例如,如果单个空闲期足够长,足以允许机械臂将验证符号(例如,530)移动到所有参考位置610a~610i),或者在几个不同的空闲期内拍摄(例如,如果每个空闲期都不够长,不足以使机械臂将验证符号530移动到所有参考位置610a~610i)。
[0075]
在实施例中,可按照与参考图像坐标类似的方式,确定验证图像坐标。例如,验证图像坐标可以是验证符号(例如,530)的中心坐标,可被确定为验证图像(例如,760)中验证符号(例如,530)的第一形状的中心坐标和验证符号的第二形状的中心坐标的平均值。例如,图7b表示在参考位置中的参考位置n拍摄的验证图像760。验证图像760显示验证部分780,验证部分780是验证图像760中的显示验证符号530的图像部分。机器人控制系统110可从验证部分780中,识别与图5c的验证符号530的第一形状585相同或实质相同的第一形状785。机器人控制系统110可进一步从验证部分780中,识别与验证符号530的第二形状587相同或实质相同的第二形状787。此外,机器人控制系统110可被配置成确定在验证图像760的验证部分780中显示的第一形状785的中心坐标和在验证图像760的验证部分780中显示的第二形状787的中心坐标机器人控制系统110可进一步如下把验证图像760的验证图像坐标(u
verify_n
,v
verify_n
)确定为验证图像760中第一形状785的中心坐标和第二形状787的中心坐标的平均值:
[0076][0077]
返回图4b,方法400还可包括步骤457,在步骤457,控制电路111基于步骤403的参考图像坐标与步骤455的验证图像坐标之间的偏差量,确定偏差参数值,其中参考图像坐标和验证图像坐标都与参考位置n关联。在一个例子中,参考图像坐标与验证图像坐标之间的偏差可以是参考图像坐标和验证图像坐标之间的距离。例如,假定在参考位置n的参考图像坐标被表述成(u
ref_n
,v
ref_n
),而在参考位置n的验证图像坐标被表述成(u
verify_n
,v
verify_n
),那么在参考位置n的偏差(例如,距离)可被表述成
[0078]
如上所述,在其中所述一个或多个参考位置是多个参考位置的方面,控制电路111可被配置成确定分别对应于多个参考位置的多个验证图像坐标,其中上述验证图像坐标是多个验证图像坐标之一。在这方面,偏差参数值基于多个参考位置的多个参考图像坐标与多个验证图像坐标之间的各个偏差量,其中所述各个偏差量中的每个偏差量是:(a)与多个参考位置中的相应参考位置对应的参考图像坐标与(b)对应于同一参考位置的验证图像坐标之间的相应偏差量。多个验证图像坐标可以是在多个验证图像中出现验证符号之处的相应坐标,上述验证图像是多个验证图像之一。控制电路111可被配置成控制相机在一个空闲期内拍摄所有多个验证图像,和/或可被配置成控制相机在不同的空闲期内拍摄多个验证
图像。
[0079]
例如,当存在多个参考位置时,如图6a和6b中所示,机器人控制系统110可确定与多个参考位置对应的多个相应参考图像坐标,和确定与多个参考位置对应的多个相应验证图像坐标,并确定多个参考图像坐标与多个验证图像坐标之间的各个偏差量。偏差参数值可基于多个参考图像坐标与多个验证图像坐标之间的各个偏差量。例如,偏差参数可以是各个偏差量的平均值,如下所示。
[0080][0081]
在上面的表达式中,n指的是第n个参考位置,而m指的是参考位置的总数。
[0082]
返回图4b,方法400还可包括步骤459,在步骤459,控制电路111判定偏差参数值是否超过规定阈值(也可被称为规定偏差阈值)。此外,在步骤461,响应于偏差参数值超过规定阈值的判定,控制电路111可进行第二相机校准,以确定相机的更新的相机校准信息。例如,超过规定阈值的偏差参数值可指示相机的相机校准信息过时,和/或在机器人操作中可能会造成不可取的误差量。从而,如果偏差参数值超过规定阈值,那么可以进行相机的第二相机校准,以更新相机(例如,570)的相机校准信息。第二相机校准可以使用与第一相机校准相同的技术,不过基于相机最新拍摄的图像。在例子中,如果步骤459指示偏差参数值超过规定阈值,那么机器人操作可被停止或暂停,随后着手进行第二相机校准,可通过拍摄用于第二相机校准的图像开始第二相机校准。在第二相机校准完成,并且相机的相机校准信息被更新之后,机器人控制系统110可以利用更新的相机校准信息恢复机器人操作。
[0083]
在实施例中,控制电路111可被配置成响应于偏差参数值未超过规定阈值的判定,控制机器人在空闲期之后继续机器人操作,而不进行附加相机校准(例如,通过经通信接口向机器人输出第四运动命令)。这种情况可能指示来自步骤401的相机校准信息仍然足够精确,并且机器人操作可以继续下去,而不会出现不可取的误差量。
[0084]
在实施例中,控制电路111可被配置成确定机器人所在环境的温度,并基于测量的温度,调整规定偏差阈值(也被称为重新定义偏差阈值)或者相机的相机校准信息至少之一。例如,控制电路111可通过测量温度,或者从另外的设备或组件接收温度数据,确定环境的温度。在这样的实施例中,控制电路111可被配置成通过:当测量的温度在规定范围之外时,把规定阈值设定成具有第一值,而当测量的温度在规定范围之内时,把该阈值设定成具有比第一值低的第二值,来基于测量的温度调整规定阈值。例如,过高的温度或过低的温度会引起相机的变化。更具体地,温度变化可能影响相机的固有参数。例如,相机中的组件在温度升高时会膨胀,而在温度降低时会收缩,这可能影响相机的固有参数。于是,有利的是基于温度或温度变化量,调整规定的偏差阈值。例如,当温度在正常工作温度范围之内(例如,以室温为基准的规定范围)时,那么规定的偏差阈值可以较低,因为温度不会不利地影响相机。另一方面,当温度在正常工作温度范围之外时,偏差阈值可以较高,因为低温或高温不利地影响相机。在备选例子中,当温度超出正常工作温度范围时,偏差阈值可被规定为较低值,以便更频繁地触发附加相机校准。在这个例子中,当温度在正常工作温度范围之内时,偏差阈值可被规定成较高值,以便不太频繁地触发附加相机校准。
[0085]
图8描述进行相机校准和相机校准的验证的例证时间线800。在机器人操作开始之
前,图1a或1b的机器人控制系统110在校准期811内进行第一相机校准,以确定相机(例如,图5a或5b的相机570)的相机校准信息。在第一相机校准完成之后,机器人控制系统110在参考获取期813内拍摄在各个参考位置的验证符号(例如,验证符号530)的参考图像,并确定在各个参考图像(例如,图7a的参考图像710)中出现验证符号之处的参考图像坐标。当确定参考图像坐标时,在参考获取期813结束之后,可开始机器人操作。
[0086]
在开始机器人操作之后,在作业期815内,机器人控制系统110控制机器人(例如,图5a或5b的机器人550)进行一个或多个机器人作业,从而在实施例中,可能无法收集验证图像(例如,图7b的验证图像760)。在作业期815之后,机器人控制系统110检测到其间机器人不进行机器人作业的空闲期817。从而,在空闲期817内,机器人控制系统110分别拍摄在参考位置中的第一组一个或多个位置(例如,610a~610b)处的验证符号的一个或多个验证图像。在空闲期817结束之后,在作业期819内,机器人控制系统110再继续控制机器人进行一个或多个机器人作业,从而不会收集验证图像。在作业期817之后,机器人控制系统110检测其间机器人不进行机器人作业的空闲期821。在空闲期821内,机器人控制系统110分别拍摄在参考位置中的第二组一个或多个位置(例如,610c~610e)处的验证符号的一个或多个验证图像。在空闲期821之后,在机器人作业期823内,机器人控制系统110再继续控制机器人进行一个或多个机器人作业,从而不会收集验证图像。在作业期823之后,机器人控制系统110检测其间机器人不进行机器人作业的空闲期825。在空闲期825内,机器人控制系统110分别拍摄在参考位置中的第三组一个或多个位置(例如,610f~610i)处的验证符号的一个或多个验证图像。
[0087]
在空闲期817、821和825内拍摄的验证图像(例如,760)可在参考位置中的不同的各个位置拍摄。例如,第一组、第二组和第三组一个或多个位置可以彼此不同,从而位置可能不重叠。此外,在空闲期825内,机器人控制系统110可确定验证图像拍摄完成,这可指示为相机校准的验证拍摄了足够数量的验证图像。在一个实施例中,如果在所有参考位置(例如,610a~610i)都拍摄了验证图像,那么机器人控制系统110可判定验证图像拍摄完成。在一个实施例中,如果验证图像的数量达到规定的目标计数,那么机器人控制系统110可判定验证图像拍摄完成。
[0088]
当判定验证图像拍摄完成时,机器人控制系统110确定在各个验证图像中出现验证符号之处的验证图像坐标。随后,机器人控制系统110基于验证图像坐标与参考图像坐标的各个偏差量,确定偏差参数值。如果偏差参数超过规定阈值,那么机器人控制系统110进行另外的相机校准。然而在本例中,偏差参数未超过规定阈值,从而在空闲期825之后,机器人控制系统110在作业期827内继续进行机器人作业,而不进行附加相机校准。
[0089]
图9描述表示与图8中的时间线相关的验证处理的例证流程图900。在步骤901,图1a、1b或1c的机器人控制系统110进行相机(例如,图5a或5b的相机570)的第一相机校准,以确定相机的相机校准信息。在步骤903,机器人控制系统110控制机器人(例如,图5a或5b的机器人550)把验证符号(例如,图5a或5b的验证符号530)移动到参考位置,并通过相机拍摄在各个参考位置处的验证符号的参考图像(例如,图7a的参考图像710)的各个实例。在步骤905,机器人控制系统110基于从第一相机校准获得的相机校准信息,开始机器人的机器人操作。
[0090]
在步骤907,机器人控制系统110检测到机器人操作期间的空闲期。在步骤909,机
器人控制系统110在该空闲期内,控制机器人(例如,图5a或5b的机器人550)把验证符号(例如,图5a或5b的验证符号530)移动到参考位置中的一个或多个位置,并通过相机分别在参考位置中的一个或多个位置处拍摄一个或多个验证图像(例如,图7b的验证图像760)。在一些情况下,机器人控制系统110可以控制机器人将验证符号移动到空闲期的持续时间允许的尽可能多的参考位置。在步骤911,机器人控制系统110判定拍摄的验证图像的总数是否达到规定的目标计数。如果拍摄的验证图像的总数未达到目标计数,那么机器人控制系统110通过返回步骤907,试图检测机器人操作期间的另一个后续空闲期,以拍摄更多的验证图像。
[0091]
如果拍摄的验证图像的总数达到了目标计数,那么在步骤913,机器人控制系统110基于参考图像(例如,710)和验证图像(例如,760),进行相机校准的验证。相机校准的验证产生偏差参数。在步骤915,机器人控制系统110判定偏差参数是否超过规定阈值。如果偏差参数未超过阈值,那么在步骤919,机器人控制系统110可把拍摄的验证图像的总数重置为0,并在空闲期之后继续进行机器人操作,同时通过返回步骤907,试图检测另外的空闲期,以拍摄新的一组验证图像。
[0092]
如果偏差参数超过阈值,那么机器人控制系统110可停止机器人操作,并在步骤917进行第二相机校准。在步骤917的第二相机校准之后,在步骤921,机器人控制系统110可把拍摄的验证图像的总数重置为0。在步骤921之后,流程图可返回步骤903,在步骤903,机器人控制系统110控制机器人(例如,550)把验证符号(例如,530)移动到参考位置,并通过相机(例如,570)拍摄在各个参考位置处的验证符号的新的一组参考图像(例如,710),以致该新的一组参考图像可在稍后用于验证。
[0093]
各个实施例的附加讨论
[0094]
实施例1涉及一种机器人控制系统,包括通信接口,所述通信接口被配置成与具有基座和上面布置有验证符号的机械臂的机器人通信,并与具有相机视野的相机通信。机器人控制系统还包括控制电路,所述控制电路被配置成进行第一相机校准,以确定与相机关联的相机校准信息。所述控制电路被进一步配置成:a)通过经通信接口向机器人输出第一运动命令,控制机械臂在第一相机校准期间或之后将验证符号移动到在相机视野内的位置,该位置是用于第一相机校准的验证的一个或多个参考位置中的参考位置,b)经通信接口,从相机接收验证符号的图像,其中相机被配置成拍摄在所述参考位置处的验证符号的图像,所述图像是验证用参考图像,c)确定验证用参考图像坐标,所述参考图像坐标是在参考图像中出现验证符号之处的坐标;d)通过经通信接口向机器人输出基于相机校准信息的第二运动命令,基于相机校准信息,控制机械臂的运动,以进行机器人操作;e)检测机器人操作期间的空闲期;f)通过经通信接口向机器人输出第三运动命令,控制机械臂在空闲期内把验证符号至少移动到所述参考位置;g)在空闲期内,经通信接口从相机接收验证符号的附加图像,其中相机被配置成拍摄至少在所述参考位置处的验证符号的附加图像,所述附加图像是验证用验证图像;h)确定用于验证的验证图像坐标,该验证图像坐标是在验证图像中出现验证符号之处的坐标;i)基于参考图像坐标和验证图像坐标之间的偏差量,确定偏差参数值,参考图像坐标和验证图像坐标二者与参考位置关联,其中偏差参数值指示自第一相机校准以来的相机的变化,或者自第一相机校准以来相机和机器人之间的关系的变化,j)判定偏差参数值是否超过规定阈值,和k)响应于偏差参数值超过规定阈值的判定,
进行第二相机校准,以确定更新的相机校准信息。
[0095]
实施例2包括实施例1的机器人控制系统,其中控制电路被配置成响应于偏差参数值未超过规定阈值的判定,通过经通信接口向机器人输出第四运动命令,控制机器人在空闲期之后继续进行机器人操作,而不进行附加相机校准。
[0096]
实施例3包括实施例1或2的机器人控制系统,其中所述一个或多个参考位置是分别对应于多个参考图像坐标的多个参考位置,所述参考图像坐标是多个参考图像坐标之一。在本实施例中,控制电路还被配置成确定分别对应于多个参考位置的多个验证图像坐标,其中所述验证图像坐标是多个验证图像坐标之一,其中所述偏差参数值基于多个参考位置的多个参考图像坐标和多个验证图像坐标之间的各个偏差量,其中各个偏差量中的每个偏差量是:(a)与多个参考位置中的相应参考位置对应的参考图像坐标,与(b)对应于同一参考位置的验证图像坐标之间的偏差量。
[0097]
实施例4包括实施例3的机器人控制系统,其中多个验证图像坐标是在多个验证图像中出现验证符号之处的各个坐标,所述验证图像是多个验证图像之一,其中控制电路被配置成控制相机在所述空闲期内拍摄所有多个验证图像。
[0098]
实施例5包括实施例3的机器人控制系统,其中多个验证图像坐标是在多个验证图像中出现验证符号之处的各个坐标,所述验证图像是多个验证图像之一,其中控制电路被配置成控制相机在不同的空闲期内拍摄多个验证图像,所述空闲期是不同的空闲期之一。
[0099]
实施例6包括实施例1-5任意之一的机器人控制系统,其中验证符号包括具有第一种颜色的第一区域和具有第二种颜色的第二区域,其中作为规定的比率,定义第一区域的面积与第二区域的面积之比,并保存在机器人控制系统的存储设备上。
[0100]
实施例7包括实施例6的机器人控制系统,其中控制电路被配置成基于规定的比率,识别参考图像或验证图像中的验证符号。
[0101]
实施例8包括实施例7的机器人控制系统,其中机械臂上设置有校准图案,其中参考图像包括验证符号和校准图案,其中控制电路被配置成通过判定参考图像的一部分是否包括具有第一种颜色的第一图像区域和包括具有第二种颜色的第二图像区域,以及第一图像区域的面积与第二图像区域的面积之比是否等于规定的比率,来判定参考图像的所述部分是验证符号还是校准图案。
[0102]
实施例9包括实施例1-8任意之一的机器人控制系统,其中验证符号包括彼此同心的第一形状和第二形状,其中第一形状和第二形状的相应中心实质上在同一位置。
[0103]
实施例10包括实施例9的机器人控制系统,其中控制电路被配置成通过以下操作,确定参考图像坐标:a)确定参考图像中第一形状的中心的第一坐标;b)确定参考图像中第二形状的中心的第二坐标;和c)把参考图像坐标确定为参考图像中第一坐标和第二坐标的平均值。在本实施例中,控制电路被配置成通过以下操作,确定验证图像坐标:d)确定验证图像中第一形状的中心的第一坐标;e)确定验证图像中第二形状的中心的第二坐标;和f)把验证图像坐标确定为验证图像中第一坐标和第二坐标的平均值。
[0104]
实施例11包括实施例1-10任意之一的机器人控制系统,其中控制电路被配置成通过识别圆环,来识别参考图像或验证图像中的验证符号,所述验证符号形状为圆环。
[0105]
实施例12包括实施例1-11任意之一的机器人控制系统,其中控制电路被配置成确定机器人所在环境的温度;和基于测量的温度,调整规定阈值或相机校准信息至少之一。
[0106]
实施例13包括实施例12的机器人控制系统,其中控制电路被配置成通过以下操作,基于温度来调整规定阈值:当温度在规定范围之外时,把规定阈值设定成具有第一值;和当温度在规定范围之内时,把所述阈值设定成具有比第一值低的第二值。
[0107]
实施例14包括实施例1-13任意之一的机器人控制系统,其中控制电路被配置成使验证符号通过机械臂被移动到的一个或多个参考位置包括设置在相对于相机凹陷的球体的表面上的多个参考位置。
[0108]
实施例15包括实施例14的机器人控制系统,其中控制电路还被配置成控制机械臂把验证符号移动成与在多个参考位置中的每个参考位置处的球体的表面相切。
[0109]
实施例16包括实施例1-15任意之一的机器人控制系统,其中控制电路被配置成控制机械臂移动验证符号,以在验证符号被移动到参考位置时直接面向相机。
[0110]
实施例17包括实施例1-16任意之一的机器人控制系统,其中控制电路被配置成通过检测机器人在机器人操作期间不进行机器人作业的时间段,来检测机器人操作的空闲期。
[0111]
实施例18包括实施例17的机器人控制系统,其中控制电路被配置成控制机械臂与机械臂可触及的传送带上的物体交互,其中控制电路被配置成通过检测传送带上没有物体,或者检测机器人与传送带上的最近物体之间的距离超过规定距离阈值,来检测空闲期。
[0112]
尽管上面说明了各个实施例,不过应明白的是它们只是作为本发明的说明和例子给出的,而不是对本发明的限制。对本领域的技术人员来说,显然可以进行形式和细节方面的各种变化,而不脱离本发明的精神和范围。本发明的广度和范围不应由任意上述例证实施例限制,而应仅按照所附的权利要求书及其同等物来限定。还要明白的是本文中讨论的各个实施例的各个特征,以及本文中的引用的各个参考文献的各个特征可以与任何其他实施例的特征组合使用。本文中讨论的所有专利和出版物都通过引用,完整地包含在本文中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1