CN111890371B - 验证和更新机器人控制用校准信息的方法和控制系统 - Google Patents
验证和更新机器人控制用校准信息的方法和控制系统 Download PDFInfo
- Publication number
- CN111890371B CN111890371B CN202010831931.1A CN202010831931A CN111890371B CN 111890371 B CN111890371 B CN 111890371B CN 202010831931 A CN202010831931 A CN 202010831931A CN 111890371 B CN111890371 B CN 111890371B
- Authority
- CN
- China
- Prior art keywords
- verification
- camera
- validation
- image
- robot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1692—Calibration of manipulator
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
Abstract
本公开涉及验证和更新机器人控制用校准信息的方法和控制系统。具体地,提出一种用于校准验证的计算系统和方法。计算系统被配置成进行第一校准操作,控制机械臂把验证符号移动到参考位置。机器人控制系统还从相机接收验证符号的参考图像,并确定验证符号的参考图像坐标。机器人控制系统还控制机械臂在空闲期内把验证符号再次移动到参考位置,接收验证符号的附加图像,并确定验证图像坐标。机器人控制系统基于参考图像坐标和验证图像坐标确定偏差参数值,判定偏差参数值是否超过规定阈值,并且如果超过阈值,那么进行第二校准操作。
Description
本申请是申请日为2020年7月7日、题为“验证和更新机器人控制用校准信息的方法和控制系统”的发明专利申请202010646706.0的分案申请。
对相关申请的交叉引用
本申请是2020年1月2日提交的题为“Method and Control System forVerifying and Updating Camera Calibration for Robot Control”的第16/732,832号美国专利申请的部分继续申请,该第16/732,832号美国专利申请是2019年7月29日提交的题为“Method and Control System for Verifying and Updating Camera Calibrationfor Robot Control”的第16/525,004号美国专利申请的继续申请,该第16/525,004号美国专利申请是2019年3月29日提交的题为“Method and Control System for Verifying andUpdating Camera Calibration for Robot Control”的第16/369,630号美国专利申请的继续申请,这些美国专利申请的整个内容通过引用包含在本文中。本申请还要求2019年10月18日提交的标题为“Method and Control System for Verifying Calibration forRobot Control”的第62/916,798号美国临时申请的权益,该美国临时申请的整个内容也通过引用包含在本文中。
技术领域
本发明涉及验证和更新机器人控制用校准信息的方法和控制系统。
背景技术
随着自动化越来越普遍,机器人被用于更多的环境中,比如在仓储和制造环境中。例如,机器人可以用来将货物装载到仓库中的托盘上或者从托盘上取下,或者可以用来从工厂的传送带上捡取物品。机器人的运动可以是固定的,或者可以是基于输入的,比如仓库或工厂中的相机拍摄的图像。在后一情况下,可以进行校准操作,以便确定相机的性质,和确定相机与机器人所处环境之间的关系。所述校准操作可生成用于控制机器人的校准信息。在一些实现中,校准操作可涉及可手动控制机器人的运动或者可手动控制相机拍摄机器人的图像的人的手动操作。
发明内容
本文中的实施例的一个方面涉及进行机器人控制用校准验证,诸如验证相机校准或其他系统校准。校准验证可由包括通信接口和控制电路的机器人控制系统进行。通信接口可被配置成与具有基座和上面布置有验证符号的机械臂的机器人通信,并与具有相机视野的相机通信。机器人控制系统的控制电路可被配置成通过以下操作,进行校准验证:a)进行第一校准操作(例如,第一相机校准),以确定校准信息(例如,相机校准信息),b)向通信接口输出第一运动命令,其中通信接口被配置成把第一运动命令传达给机器人,以使机械臂在第一校准操作期间或之后将验证符号移动到相机视野内的位置,该位置是用于第一校准操作的验证的一个或多个参考位置中的参考位置,c)通过通信接口从相机接收验证符号的图像,所述相机被配置成拍摄在所述参考位置处的验证符号的图像,该图像是验证用参考图像,d)确定验证符号的参考图像坐标,所述参考图像坐标是在参考图像中出现验证符号之处的坐标,和e)向通信接口输出基于校准信息的第二运动命令,其中所述通信接口被配置成把第二运动命令传达给机器人,以使机械臂运动,从而进行机器人操作。
在实施例中,控制电路被配置成进一步通过以下操作,进行校准验证:f)检测机器人操作期间的空闲期,g)向通信接口输出第三运动命令,其中通信接口被配置成把第三运动命令传达给机器人,以使机械臂在空闲期内,把验证符号至少移动到所述参考位置,h)通过通信接口从相机接收验证符号的附加图像,所述相机被配置成在空闲期内拍摄至少在所述参考位置处的验证符号的附加图像,所述附加图像是验证用验证图像,i)确定用于验证的验证图像坐标,该验证图像坐标是在验证图像中出现验证符号之处的坐标,j)基于参考图像坐标和验证图像坐标之间的偏差量,确定偏差参数值,参考图像坐标和验证图像坐标二者与参考位置关联,其中偏差参数值指示自第一校准操作以来,通信接口被配置成与之通信的相机的变化,或者自第一校准操作以来,通信接口被配置成与之通信的相机和机器人之间的关系的变化,k)判定偏差参数值是否超过规定阈值,和l)响应于偏差参数值超过规定阈值的判定,进行第二校准操作(例如,第二相机校准操作),以确定更新的校准信息(例如,更新的相机校准信息)。
附图说明
根据如在附图中图解所示的本发明的实施例的以下说明,本发明的上述和其他特征、目的和优点将是明显的。包含在本文中,并构成说明书的一部分的附图进一步解释本发明的原理,使本领域的技术人员能够实现和利用本发明。附图不是按比例绘制的。
图1A和1B按照本文的实施例,描述其中进行校准信息的验证的系统的方框图。
图1C按照本文的实施例,描述配置成进行校准的验证的机器人控制系统的方框图。
图1D按照本文的实施例,描述对其进行相机校准的相机的方框图。
图2按照本文的实施例,描述图解说明基于从校准操作获得的校准信息控制机器人的系统。
图3按照本文的实施例,描述进行校准操作的系统。
图4A和4B提供按照本文的实施例,图解说明进行校准信息的验证的方法的流程图。
图5A和5B按照按照本文的实施例,图解说明其中在机器人上设置验证符号的系统,其中所述验证符号用于进行校准信息的验证。
图5C按照本文的实施例,描述例证的验证符号。
图6A-6D按照本文的实施例,描述拍摄验证符号的各个图像的参考位置的例子。
图7A按照本文的实施例,描述确定参考图像坐标的例子。
图7B按照本文的实施例,描述确定验证图像坐标的例子。
图8按照本文的实施例,图解说明用于校准信息的验证的例证时间线。
图9按照本文的实施例,提供图解说明进行校准信息的验证的例证方法的流程图。
图10A至图10C按照本文的实施例,图解说明其中在机器人上设置一组验证符号的系统,其中所述一组验证符号用于进行校准信息的验证。
图11A至图11B按照本文的实施例,图解说明其中在机器人上设置一组验证符号的系统,其中所述一组验证符号用于进行校准信息的验证。
图11C按照本文的实施例,图解说明具有不同的相应大小的一组验证符号。
图12A和图12B按照本文的实施例,提供图解说明进行校准信息的验证的方法的流程图。
图13A和图13B分别图解说明与机械臂的第一姿势关联的参考图像和验证图像。
图14A和图14B分别图解说明与机械臂的第二姿势关联的参考图像和验证图像。
具体实施方式
以下详细说明仅仅是示范性的,并不意图限制本发明或者本发明的应用和用途。此外,不受在上述技术领域、背景技术、简要的发明内容或以下的具体实施方式中提出的任何明示或暗示的理论约束。
记载在本文中的实施例涉及验证和/或更新用于控制机器人(比如在仓库、制造工厂或某个其他环境中使用的机器人)的校准信息。更具体地,可执行校准信息以促进对机器人操作系统的控制,并且可以通过进行校准操作来确定校准信息,这可以被称为系统校准。系统校准可以包括相机的校准(其可以被称为相机校准或相机校准操作)、机器人的校准(其可以被称为机器人校准)、机器人操作系统的另一元素的校准或其任何组合。系统校准可由例如机器人控制系统(也被称为机器人控制器)进行,以生成促进机器人控制系统基于相机捕捉(例如拍摄)的图像来控制机器人的能力的校准信息(例如,相机校准信息)。例如,机器人可用于在仓库中捡取包裹,其中机器人的机械臂或其他组件的放置可以基于相机拍摄的包裹的图像。这种情况下,如果校准信息包括相机校准信息,则相机校准信息可以与包裹的图像一起被用于确定例如包裹相对于机器人的机械臂的位置和定向。如果系统校准包括相机校准,则相机校准可涉及确定相机的固有参数(也可被称为内部参数)的相应估计,和确定相机与其外部环境之间的关系的估计。相机的固有参数可具有一个或多个参数值,比如矩阵、向量或标量值。此外,固有参数的例子包括投影矩阵和畸变(distortion)参数。在实例中,相机校准可涉及确定相机相对于外部环境中的固定位置的位置,它可被表述成表示相机与外部环境中的固定位置之间的关系的变换函数。在一些情况下,相机校准可以借助校准图案进行,所述校准图案可具有设置在校准图案上的定义位置处的图案元素。相机可拍摄校准图案的图案元素的图像(也被称为校准图像),基于比较图案元素的图像和图案元素的定义位置,可以进行相机校准。在2019年3月7日提交的美国专利申请No.16/295,940(案号MJ0021US1)“METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERACALIBRATION FOR ROBOT CONTROL”中更详细地讨论了相机校准,该专利申请的整个内容通过引用包含在本文中。
如上所述,本公开的一个方面涉及验证在较早时间点进行的相机校准或其他校准操作在较晚时间点仍然精确。在较早时间点进行的相机校准可生成反映在该时间点的相机的性质的相机校准信息,比如在该时间点的相机的固有参数,或者相机与其外部环境之间的关系。在一些情况下,较早的相机校准可能会随着时间的推移而失去精确性,因为相机的性质可能会随着时间的推移而变化。在第一个例子中,相机的固有参数可能会随着时间的推移而变化。这种变化可能是由例如改变了相机的外壳和/或镜头的形状的温度变化引起的。在第二个例子中,相机与其外部环境之间的关系可能会随着时间的推移而变化。例如,相机可能相对于例如机器人的基座或者仓库中的某个位置移动位置或定向。这种变化可能是由例如膨胀或收缩用于安装相机的任意组件的温度变化、碰撞相机的人或其他物体、相机的外部环境(例如,仓库)中的振动、来自相机自身重量的作用力(即重力)、或者其他因素引起的。这些变化可能使相机校准信息或其他校准信息过时,从而在稍后的时间点,利用该相机校准信息或其他校准信息定位机器人的机械臂或其他组件可能会导致错误。换句话说,如果与相机关联的性质已随着时间的推移而变化,但是相机校准信息没有更新以反映这种变化,那么机器人可能会根据过时的或不正确的相机校准信息进行操作,从而在机器人的操作中造成不可取的错误。为了解决相机的一个或多个性质可能发生变化的可能性,机器人控制系统可以自动进行检测来自相机校准的相机校准信息何时不再足够精确(或更一般地,来自校准操作的校准信息何时不再足够精确)的验证。检测这种情况可以提供相机或机器人操作系统的某个其他元素的性质变化的指示。如果该验证检测到校准信息不再足够精确,那么机器人控制系统可进行校准操作以确定更新的校准信息,该更新的校准信息可反映相机或机器人操作系统的另一元素的一个或多个最新性质。更新的校准信息可用于控制机械臂的放置或者机器人操作的某个其他方面。因而,进行校准信息的自动验证和/或校准信息的更新,以确保机器人基于和与相机或机器人操作系统的任何其他元素关联的一个或多个性质相关的正确信息进行操作。
本文中的实施例的一个方面涉及通过比较相机拍摄的参考图像和相机拍摄的验证图像,验证相机的校准信息。在一些情况下,参考图像可以是当对象在较早的时间点在特定位置时拍摄的该对象的图像,验证图像可以是在较晚的时间点在同一位置拍摄的该对象的图像。验证可以判定在参考图像和验证图像之间是否存在过大的偏差,比如偏差是否超过一定的阈值。在一些实现中,所述对象可以是验证符号。更具体地,机器人的机械臂或其他组件可具有用于验证校准信息的验证符号。参考图像和验证图像都可捕捉或以其他方式包括验证符号,机器人控制系统可通过比较验证符号在参考图像中的出现和验证符号在验证图像中的出现,来比较这两个图像。例如,在机器人控制系统在特定时间点进行产生校准信息的校准操作之后,机器人控制系统可控制机械臂(例如,通过运动命令)把验证符号移动到相机的视野(也被称为相机的相机视野)内的一组预定位置,其中这些位置可以用作一组验证用参考位置。相机可拍摄验证符号在所述一组参考位置处的相应参考图像。在一些情况下,可在进行校准操作之后,立即拍摄参考图像。机械臂的运动,或者更具体地,用于移动机械臂的运动命令可以基于来自刚刚进行的校准操作的校准信息,或者可以独立于校准信息。在一些情况下,可以在机器人开始机器人操作之前,拍摄参考图像。在拍摄参考图像之后,可以认为机器人准备好开始机器人操作来进行作业,机器人控制系统可以基于相机随后拍摄的图像来例如控制机械臂的定位。
如上所述,可以比较参考图像和随后拍摄的验证图像。在实施例中,可以在机器人控制系统检测到的一个或多个空闲期内拍摄验证图像。更具体地,当机器人操作开始时,机器人可开始进行机器人作业(例如,通过与包裹或其他物体交互)。在机器人进行机器人操作的时候,机器人控制系统可以检测机器人的一个或多个空闲期。在一些情况下,空闲期可以是机器人在机器人操作期间不进行机器人作业的时间段。在一些情况下,机器人控制系统可基于检测或以其他方式预见机器人需要与之交互的物体,来调度机器人操作,并可基于检测或以其他方式预见不存在机器人需要与之交互的物体,来检测空闲期。
在(一个或多个)空闲期内,机器人控制系统可控制机器人的机械臂或其他组件(例如,通过运动命令)移动到参考位置,并拍摄(例如,通过相机命令)在各个参考位置的相应验证图像。如果机器人上设置有验证符号,那么更具体地,机器人控制系统可控制机械臂把验证符号移动到参考位置,以拍摄验证图像。随后,机器人控制系统可确定各个验证图像偏离各个参考位置处的对应参考图像的程度。在一些情况下,验证图像和相应参考图像之间的偏差可被表示成偏差参数。如果偏差参数的值(也被称为偏差参数值)超过偏差参数的定义阈值(也可被称为规定偏差阈值),那么机器人控制系统可以进行附加的校准操作(例如,进行附加的相机校准),来确定相机的更新的校准信息(例如,更新的相机校准信息)。当偏差参数的值超过规定偏差阈值时,该条件可能指示先前生成的校准信息的使用可能会在机器人操作中导致不可取的误差量。从而,在一些情况下,在进行附加校准操作时,可以暂停或停止机器人操作(暂停可被视为另一个空闲期)。在附加校准操作完成之后,可拍摄新的一组参考图像,可利用更新的校准信息,继续机器人操作。在随后的空闲期内,可以拍摄新的一组验证图像,机器人控制系统可通过比较新的一组参考图像和新的一组验证图像,进行附加校准操作的验证。
如上所述,如果偏差参数的值超过规定偏差阈值,那么控制器控制系统可进行附加校准操作。如果偏差参数的值未超过偏差阈值,那么可在机器人控制系统不进行附加校准操作的情况下,在空闲期之后继续机器人操作。在这种情况下,在随后的空闲期内,相机可拍摄在各个参考位置的新的一组验证图像。当拍摄了新的一组验证图像时,机器人控制系统可通过确定新的一组验证图像偏离各个参考位置的相应参考图像的程度,再次进行校准操作的验证。
如上所述,机械臂可具有设置于其上的验证符号,比如环形图案,验证符号可被捕捉或以其他方式包含在参考图像和验证图像中。在实施例中,机器人控制系统可基于验证符号出现在参考图像中的相应位置,和基于验证符号出现在验证图像中的相应位置,确定参考图像和相应验证图像之间的偏差。例如,机器人控制系统可确定各个参考位置的参考图像坐标。特定位置的参考图像坐标可以是在当验证符号被放置在该参考位置时拍摄的参考图像中,出现该验证符号之处的坐标。更具体地,参考图像坐标可与特定参考位置关联,并可以指的是在参考图像中出现验证符号之处的图像坐标,其中所述参考图像是在所述验证符号被放置在参考位置时由相机拍摄的。在上述例子中,图像坐标可以指的是图像中的坐标,比如像素坐标。当机器人控制系统随后在随后的时间点把验证符号放置在特定参考位置,并获得对应的验证图像时,机器人控制系统可确定验证图像坐标。验证图像坐标也可与参考位置关联,并可以指的是在验证图像中出现验证符号之处的图像坐标(例如,像素坐标),其中所述验证图像是在所述验证符号被放置在参考位置时由相机拍摄的。机器人控制系统可比较与特定参考位置关联的参考图像坐标,和与同一参考位置关联的验证图像坐标。可以对于拍摄验证图像和参考图像的各个参考位置进行这种比较。
在实例中,在参考图像中,出现验证符号之处的参考图像坐标可以是参考图像中的验证符号的中心的坐标(也被称为参考图像中的验证符号的中心坐标)。类似地,在验证图像中出现验证符号之处的验证图像坐标可以是验证图像中的验证符号的中心的坐标(也被称为验证图像中的验证符号的中心坐标)。对于拍摄对应的验证图像之时,机械臂和/或验证符号所位于的各个参考位置,机器人控制系统可确定与参考位置关联的参考图像坐标和与同一参考位置关联的验证图像坐标之间的偏差。如果机械臂和/或验证符号被放置在多个参考位置,那么机器人控制系统可对于所述多个参考位置,确定相应参考图像坐标和相应验证图像坐标之间的相应偏差量。机器人控制系统可基于各个参考位置的参考图像坐标和相应的验证图像坐标之间的相应偏差量,进一步确定偏差参数的值。
在实例中,验证符号可包括彼此同心的多个形状,以致验证符号中的多个形状的各自中心在相同或实质相同的位置。例如,验证符号可以是包括两个或更多个同心圆的环形图案。在一些情况下,如果验证符号的参考图像坐标是参考图像中的验证符号的中心坐标,那么机器人控制系统可基于参考图像中的多个形状的各自中心坐标,确定验证符号的中心坐标,其中特定形状的中心坐标是该形状的中心的坐标。如果验证符号是环形图案,那么参考图像中的环形图案的中心坐标可被确定为参考图像中的,形成环形图案的第一个圆的中心坐标和形成环形图案的第二个圆的中心坐标的平均值。类似地,可基于验证图像中的形成验证符号的多个形状的各自中心坐标,确定验证图像中的验证符号的中心坐标。在一些情况下,利用多个形状来形成验证符号可以提高验证的精度。例如,利用图像中的多个形状的各自中心坐标来确定验证符号的中心坐标可以提高验证对图像噪声的鲁棒性。更具体地,如果验证符号的图像包含图像噪声,那么图像噪声可能降低机器人控制系统检测验证符号的特定形状的中心坐标的精度。然而,如果将该形状的中心坐标与另一形状的中心坐标求平均值,以确定验证符号的中心坐标,那么平均后的中心坐标可降低图像噪声的影响。结果,可以提高确定验证符号的中心坐标的精度。
在实例中,验证符号可包括具有各自不同的颜色的多个区域,其中所述多个区域的各自面积可具有确切的规定比率。例如,验证符号可包括具有第一种颜色(例如黑色)的第一区域,和具有第二种颜色(例如白色)的第二区域,其中第一区域的面积与第二区域的面积之比是规定的,或者以其他方式已知。所述确切的比率可便于识别图像中的验证符号,尤其是如果图像捕捉或以其他方式包括其他特征,比如校准图案的圆点。例如,移动校准符号的机械臂也可具有布置在机械臂上的校准图案。机器人控制系统可利用所述比率来区分验证符号和校准图案的圆点。更具体地,由于验证符号的多个区域的面积之比被定义成确切的比率,因此机器人控制系统可基于规定的比率,识别图像中的验证符号。在出现在图像中的验证符号的识别期间,机器人控制系统可基于规定的比率,区分验证符号和校准图案或其他特征。在一些情况下,验证符号可在图像中被识别成图像的包括具有各自不同的颜色的多个区域,并且具有所述多个区域的相应面积之间的规定比率的一部分。如果机器人控制系统或者其他系统或设备确定图像的特定部分不包括具有各自不同的颜色的多个区域,或者所述多个区域的相应面积具有与规定比率不同的比率,那么机器人控制系统可确定图像的该部分不是验证符号。
在实例中,机器人控制系统可基于机器人周围的温度,进行验证。例如,机器人控制系统可基于温度,调整规定偏差阈值(即,为偏差阈值定义新的值)。例如,温度可能影响相机和/或机器人中的各个部分,因为一些材料可能敏感,和/或可能基于温度膨胀/收缩。温度的变化可能导致相机的固有参数变化,和/或导致相机与其外部环境之间的关系变化。在实施例中,当温度在规定范围之外时,可以将偏差阈值设定为具有第一值,而当温度在规定范围之内时,可以将偏差阈值设定为具有比第一值低的第二值。例如,当温度在规定的正常工作温度范围之内(例如在室温10度以内)时,则偏差阈值可以是第一值。当温度在正常工作温度范围之外时,则偏差阈值可具有比第一值低的第二值。第二值可以低于第一值,以便当温度在正常工作范围之外时,更易于触发附加校准操作,因为在正常工作温度范围之外的温度更有可能导致相机或相机与外部环境的关系发生变化,从而更有可能在利用先前生成的相机校准信息或任何其他校准信息来操作机器人时导致误差。
在实施例中,校准信息的验证可以只依赖于单个参考位置。或者,校准信息的验证可以依赖于多个参考位置。参考位置可以是相机的视野中的任意位置,或者可以是特定的规定位置。例如,参考位置可被定义为相对于相机凹陷的至少一个假想球体的表面上的位置。在这种情况下的每个参考位置处,可以控制机械臂来定位验证符号,以致使验证符号在面对相机的同时,位于与所述至少一个假想球体的表面相切的位置。这种定位可以更好地允许验证符号被相机正面拍摄或以其他方式捕获(验证符号直接面对相机),以致验证符号的图像类似于验证符号的俯视图,而不是透视图。例如,如果验证符号是环形图案,那么使环形图案位于与假想球体的表面相切的位置可以使环形图案的最终图像呈圆形,而不是呈椭圆形。最终图像可能表现出较少的透视畸变或者没有透视畸变(相对于其中环形图案在图像中呈椭圆形的情况)。透视畸变的不存在可便于精确地确定环形图案的中心坐标。在一些情况下,可在都相对于相机凹陷的多个假想球体之间,划分参考位置。所述多个假想球体可共有公共中心,大小可不同,以致每个假想球体具有与相机的距离各不相同的球面。在一些情况下,相机可以是所有假想球体的共同中心。
图1A图解说明用于进行自动相机校准和相机校准的自动验证的机器人操作系统100(也称为系统100)的方框图。机器人操作系统100包括机器人150、机器人控制系统110(也称为机器人控制器)和相机170。尽管下面的一些例子讨论了进行自动相机校准和验证从自动相机校精确定的相机校准信息,但是这些例子可能更普遍地应用于任何类型的自动校准操作,以及验证从自动校准操作确定的任何类型的校准信息。在实施例中,系统100可以位于仓库、制造工厂或其他场所中。机器人控制系统110可被配置成进行下面更详细讨论的相机校准,以确定稍后用于控制机器人150进行机器人操作,比如在仓库中捡取包裹的相机校准信息。机器人控制系统110还可被配置成进行下面更详细讨论的相机校准验证,以验证相机校准信息是否仍然足够精确。在一些情况下,机器人控制系统110被配置成进行相机校准,和基于相机校准信息控制机器人150进行机器人操作。在一些情况下,机器人控制系统110可构成与机器人150和相机170通信的单个设备(例如单个控制台或单个计算机)。在一些情况下,机器人控制系统110可包括多个设备。
在一些情况下,机器人控制系统110可专用于进行相机校准和/或相机校准的验证,可将最新的相机校准信息传达给其他控制系统(也被称为其他控制器,未图示),该其他控制系统随后基于最新的相机校准信息控制机器人150进行机器人操作。可以基于相机170拍摄的图像和相机校准信息,定位机器人150。更具体地,在实施例中,机器人控制系统110可被配置成基于图像和基于相机校准信息,生成运动命令,并将运动命令传达给机器人150,以控制其机械臂的运动。在一些情况下,机器人控制系统110被配置成在机器人操作中的空闲期内,进行相机校准的验证。在一些情况下,机器人控制系统110被配置成在利用机器人150进行机器人操作的时候进行验证。
在实施例中,机器人控制系统110可被配置成通过有线或无线通信与机器人150和相机170通信。例如,机器人控制系统110可被配置成通过RS-232接口、通用串行总线(USB)接口、以太网接口、 接口、IEEE 802.11接口或者它们的任意组合,与机器人150和/或相机170通信。在实施例中,机器人控制系统110可被配置成通过本地计算机总线,比如外围组件互连(PCI)总线,与机器人150和/或相机170通信。
在实施例中,机器人控制系统110可与机器人150分离,并可通过上述无线或有线连接与机器人通信。例如,机器人控制系统110可以是配置成通过有线或无线连接与机器人150和相机170通信的独立计算机。在实施例中,机器人控制系统110可以是机器人150的集成组件,并可以通过上述本地计算机总线与机器人150的其他组件通信。在一些情况下,机器人控制系统110可以是只控制机器人150的专用控制系统(也称为专用控制器)。在其他情况下,机器人控制系统110可被配置成控制多个机器人,包括机器人150。在实施例中,机器人控制系统110、机器人150和相机170位于同一场所(例如仓库)。在实施例中,机器人控制系统110可以远离机器人150和相机170,可被配置成通过网络连接(例如,局域网(LAN)连接)与机器人150和相机170通信。
在实施例中,机器人控制系统110可被配置成从相机170取回或以其他方式接收放置在机器人150上(例如,机器人的机械臂上)的校准图案160和/或验证符号165的图像。在一些情况下,机器人控制系统110可被配置成控制相机170拍摄这样的图像。例如,机器人控制系统110可被配置成生成使相机170拍摄相机170的视野(也称为相机视野)的图像的相机命令,并通过有线或无线连接把所述相机命令传达给相机170。同一命令还可使相机170将图像传给机器人控制系统110,或者更一般地将图像传给机器人控制系统110可访问的存储设备。或者,机器人控制系统110可生成使相机170在收到相机命令时,把相机170拍摄的图像传给机器人控制系统110的另一相机命令。在实施例中,相机170可以定期地或者响应于规定触发条件,在其相机视野中自动拍摄图像,而不需要来自机器人控制系统110的相机命令。在这样的实施例中,相机170也可被配置成在没有来自机器人控制系统110的相机命令的情况下,自动将图像传给机器人控制系统110,或者更一般地,传给机器人控制系统110可访问的存储设备。
在实施例中,机器人控制系统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上拆卸的单独组件。
在实施例中,系统100中用于控制机器人150的仅有图像可以是相机170拍摄的图像。在另一个实施例中,系统100可包括多个相机,并可利用来自多个相机的图像控制机器人150。
图1B进一步图解说明其中机器人控制系统110与用户界面设备180通信的实施例。用户界面设备180可被配置成与机器人150的操作员,比如机器人150所在的仓库中的员工面接。用户界面设备180可包括例如提供显示与机器人150的操作相关的信息的用户界面的平板计算机或桌上型计算机。如上所述,机器人控制系统110可被配置成检测何时偏差参数值超过规定偏差阈值。在实施例中,用户界面设备180可以提供报警或其他警报,以通知操作员偏差参数值超过规定偏差阈值。
图1C描述机器人控制系统110的方框图。如该方框图中图解所示,机器人控制系统110包括控制电路111、通信接口113和非临时性计算机可读介质115(例如,存储器)。在实施例中,控制电路111可包括一个或多个处理器、可编程逻辑电路(PLC)或者可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或者任何其他控制电路。
在实施例中,通信接口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接收图像。
在实施例中,非临时性计算机可读介质115可包括计算机存储器。计算机存储器可包括例如动态随机存取存储器(DRAM)、固态集成存储器、和/或硬盘驱动器(HDD)。在一些情况下,可通过保存在非临时性计算机可读介质115上的计算机可执行指令(例如,计算机代码),实现相机校准。在这样的情况下,控制电路111可包括配置成进行计算机可执行指令,以进行相机校准的验证(例如,图4A、4B和9中例示的步骤)的一个或多个处理器。
图1D描述相机170的方框图,相机170包括一个或多个镜头171、图像传感器173和通信接口175。通信接口175可被配置成与图1A、1B或1C的机器人控制系统110通信,并可类似于机器人控制系统110的图1C的通信接口113。在实施例中,所述一个或多个镜头171可把来自相机170外部的光聚焦到图像传感器173上。在实施例中,图像传感器173可包括配置成通过各个像素强度值表示图像的像素阵列。图像传感器173可包括电荷耦合器件(CCD)传感器、互补金属氧化物半导体(CMOS)传感器、量子图像传感器(QIS)或者任何其他图像传感器。
如上所述,可以进行相机校准,以使基于相机拍摄的图像的机器人的控制更容易。例如,图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到达的范围内的物体,来检测机器人操作的空闲期。
在图2的实施例中,机器人250可以具有基座252和可相对于基座252移动的机械臂。更具体地,机械臂可包含多个连杆254A~254E,和附接到连杆254E的机械手255。所述多个连杆254A~254E可以彼此相对旋转,和/或可以是相对于彼此可直线移动的直动连杆(prismatic link)。由于图2涉及用于捡取物体的机器人250,因此机械手255可包括用于抓取物体292的抓爪255A和255B。在实施例中,机器人控制系统110可被配置成传达运动命令,以旋转连杆254A~254E中的一个或多个。运动命令可以是低级命令,比如电机运动命令,或者高级命令。如果来自机器人控制系统110的运动命令是高级命令,那么机器人150可被配置成把高级命令转换成低级命令。
在实施例中,从相机校精确定的相机校准信息描述相机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。
在实施例中,相机校准信息可描述相机270的固有参数,其中所述固有参数可以是其值独立于相机270的位置和定向的任意参数。所述固有参数可表征相机270的性质,比如相机270的焦距、相机270的图像传感器的大小、或者相机270引入的镜头畸变的影响。
图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,如下更详细所述。
如上所述,按照实施例,校准验证可涉及比较在参考图像中出现验证符号之处的参考图像坐标,和在验证图像中出现验证符号之处的验证图像坐标。所述比较可确定验证图像坐标与参考图像坐标之间的偏差,所述偏差可用于判定是否进行附加校准操作。验证图像可以是在机器人操作的空闲期内拍摄的。图4A和4B按照实施例,描述图解说明验证相机校准的方法400的流程图。尽管下面的一些实施例讨论了验证从相机校精确定的相机校准信息,但是方法400可以用于更一般地验证从为机器人操作系统进行的任何校准操作确定的校准信息。在实施例中,方法400可由机器人控制系统110的控制电路111进行。如上所述,机器人控制系统110可包括图1C的通信接口113,通信接口113被配置成与图1A或1B的机器人150通信,以及与图1A、1B或1D的相机170通信。在实施例中,机器人可具有基底(例如,图2的基座252或图3的基座352),和上面设置有验证符号的机械臂(例如图2或图3的机械臂),其中机械臂可相对于基座运动。
图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运动的机械臂(在图5A和5B中标记为553)。机械臂包括一个或多个连杆,比如连杆554A~554E。连杆554A~554E也可以是机械臂553的可移动地相互附接的臂部分的示例。在实施例中,连杆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)。
在实施例中,机器人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。
返回图4A,在实施例中,方法400始于步骤401,在步骤401,控制电路111进行第一相机校准,以确定与相机(例如,图1、2、3或5的相机170/270/370/570)关联的相机校准信息。更具体地,相机校准信息可包括相机的相机校准值。在本实施例中,控制电路111可基于校准图案的图像(也被称为校准图像),进行第一相机校准。
例如,为了进行第一相机校准,可把图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 ANDDEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION FOR ROBOT CONTROL”中更详细地讨论了相机校准,该申请的整个内容通过引用包含在本文中。
返回图4A,方法400还可包括步骤403,在步骤403,通过向机器人控制系统110的通信接口113输出第一运动命令,控制电路111控制机械臂在第一相机校准期间或之后,把验证符号(例如,图5的530)移动到在相机(例如,570)的相机视野(例如,510)内的位置。通信接口113可被配置成把运动命令传达给机器人,以使机械臂在第一相机校准期间或之后,把验证符号(例如,530)移动到在相机视野(例如,510)内的位置。运动命令还可使机械臂将验证符号朝向相机(例如,570),或者更一般地使其对相机可见。该位置可以用作用于第一相机校准的验证的一个或多个参考位置中的参考位置。例如,当验证处理随着时间的推移获取验证符号的图像时,控制电路111可控制机械臂将验证符号(例如,530)始终如一地定位于相同的一个或多个位置,以致所述一个或多个位置可以用作一个或多个参考位置。此外,如下关于步骤405-459所述,验证处理可以对照验证符号(例如,530)的一组早期图像,比如在进行第一相机校准之后立即获得的图像,比较该验证符号的后期图像。后期图像可以用作验证图像,而对照其比较后期图像的图像可以用作参考图像。
在步骤405,控制电路111可通过通信接口113从相机(例如,170/270/370/570)接收(例如,取回)验证符号(例如,530)的图像,其中该图像是验证用参考图像。该图像可以是当验证符号在或者曾经在参考位置时由相机拍摄的。在实施例中,通信接口113首先可从相机接收参考图像,控制电路111随后可从通信接口113接收参考图像。在实施例中,步骤405是在控制电路111没有生成给相机的相机命令的情况下进行的。在实施例中,步骤405可涉及控制电路111生成相机命令,并通过通信接口113把相机命令传达给相机。相机命令可控制相机拍摄在参考位置处的验证符号的图像。
图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的电机命令,或者以某种其他方式保存。
在实施例中,机械臂把验证符号(例如,530)移动到的一个或多个参考位置可包括多个参考位置,其中所述多个参考位置中的每个参考位置都是设置在相对于相机凹陷的假想球体的表面上的位置。在这样的实施例中,控制电路111可被进一步配置成控制机械臂把验证符号移动成与在所述多个参考位置中的每个参考位置的假想球体的表面相切。例如,如图6A、6B、6C和6D中图解所示,机器人控制系统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的中心。
在实施例中,如图6A~6D中图解所示,当验证符号530被移动到参考位置时,机器人控制系统110可控制机器人550的机械臂553(例如,通过运动命令),使验证符号530位于与该参考位置被设置在的球面相切的位置。例如,图6A和6B图解说明验证符号530与第二球面631在参考位置610D处相切,而图6C和6D图解说明验证符号530与第二球面631在参考位置610C处相切。更特别地,验证符号530可被设置在平面上(例如,贴纸上),验证符号530的平面在图6A和6B中可以与第二球面631在参考位置610D处相切,并且在图6C和6D中可以与第二球面631在参考位置610C处相切。在实施例中,机械臂553在图6A和6B中可以处于第一姿势,并且在图6C和6D中可以处于第二姿势。机械臂553的姿势可以指例如由机械臂553的连杆或其他臂部分形成的形状,或更一般地讲是几何形状。例如,机械臂553的姿势可以指机械臂553的连杆相对于机械臂553的之前连杆旋转或平移(例如,延伸或缩回)的角度或距离的特定排列(permutation)。作为示例,图6A中描绘的第一姿势可以对应于在机械臂553的一系列连杆的连续连杆之间形成的角度的第一排列,而在图6C中描绘的第二姿势可以对应于机械臂553的一系列连杆的连续连杆之间的角度的第二排列。在这样的示例中,验证符号630的参考位置610D可以与机械臂553的第一姿势关联,如图6A所示,而验证符号630的参考位置610C可以与机械臂553的第二姿势关联,如图6C所示。
在实施例中,控制电路111被配置成控制机械臂移动验证符号(例如,530),以在验证符号被移动到参考位置时直接面向相机。例如,如图6A中图解所示,机器人控制系统110可控制机器人550的机械臂553移动验证符号530,以在验证符号530被移动到参考位置610D时直接面向相机570。在这个例子中,机器人控制系统110可控制机械手555转动,以致验证符号530直接面向相机570。在一些情况下,通过与在相机视野510处的球面相切,验证符号可直接面向相机570。当验证符号530直接面向相机570时,相机570能够正面拍摄验证符号530,以致在验证符号530的最终图像中,不存在透视效果,或者透视效果减小。
在实施例中,验证符号(例如,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。
在一些情况下,机器人控制系统110可判定拍摄图像的特定部分是否包括具有第一种颜色的第一区域和具有第二种颜色的第二区域,以及第一区域的面积与第二区域的面积之比是否在规定范围之内。在一个例子中,如果规定比率为1.5,那么如果特定区域中的比率在1.4~1.6的范围之内,则机器人控制系统110可判定该特定区域对应于验证符号530。第一区域和第二区域的两种颜色不限于黑色和白色,可以是机器人控制系统110能够区分的任意两种不同颜色。
在一个方面,验证符号(例如,530)可包括彼此同心的第一形状和第二形状,其中第一形状和第二形状的相应中心实质上在同一位置。例如,验证符号的形状可以为包括彼此同心的第一个圆和第二个圆的圆环形。更具体地,如图5C中图解所示,验证符号530可包括第一形状535(例如,外圆)和第二形状537(例如,内圆)。第一形状535和第二形状537可以彼此同心,以致第一形状535的中心和第二形状537的中心实质上在同一位置。例如,如果第一形状535的中心在坐标而第二形状537的中心在坐标 那么坐标和坐标实质上相同。
返回图4A,方法400还可包括步骤407,在步骤407,控制电路111确定验证符号的参考图像坐标,参考图像坐标是在参考图像中出现验证符号(例如,530)之处的坐标。例如,如图6A中图解所示,验证符号530的图像可在参考位置610D捕捉到,并可用作参考图像。验证符号530在特定坐标处出现在参考图像内,所述特定坐标可被称为参考图像坐标。
在实施例中,如上所述,验证符号(例如,530)可包括彼此同心的第一形状和第二形状,其中第一形状和第二形状的相应中心实质上在同一位置。在这样的实施例中,在步骤407,控制电路111可被配置成通过:确定参考图像中第一形状的中心的第一坐标,确定参考图像中第二形状的中心的第二坐标,和把参考图像坐标确定为参考图像中第一坐标和第二坐标的平均值,来确定这样的验证符号的参考图像坐标。
例如,图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,uref_N),其中参考图像710对应于在参考位置N处的验证符号530,机器人控制系统110可如下计算参考图像710中第一坐标和第二坐标的平均值。
在实施例中,验证符号的参考图像坐标可以是其中心坐标,并且基于第一形状735和第二形状735的各自中心坐标确定验证符号530的中心坐标可提高验证处理对图像噪声的鲁棒性。例如,图像噪声可能在第一形状735的中心坐标的确定中引入误差,但是不对第二形状737的中心坐标的确定带来误差。在一些情况下,第二形状737可能具有或者可能实际上共有与第一形状735相同的中心坐标,不过,图像噪声可能导致出现在图像中的第二形状737的中心坐标不同于第一形状735的中心坐标。在这种情况下,简单地利用第二形状737的中心坐标作为验证符号530的中心坐标可能导致不可取的误差量。通过利用第一形状735的中心坐标和第二形状737的中心坐标的平均值作为验证符号530的中心坐标,可以降低误差量。
在实施例中,上述一个或多个参考位置可以是分别对应于多个参考图像坐标的多个参考位置。在该实施例中,参考图像坐标可以是多个参考图像坐标之一。例如,如图6A和6B中图解所示,可能存在多个参考位置,比如将验证符号530移动到或以其他方式放置到的参考位置610A~610I。对于验证符号530的参考位置610A~610I中的每个参考位置,机器人控制系统110可取回或以其他方式接收相机570拍摄的在该位置的验证符号530的相应参考图像,并可确定相应的参考图像坐标,该参考图像坐标指示验证符号530在相应参考图像中出现的位置。
返回图4A,方法400还可包括步骤409,在步骤409,控制电路111基于相机校准信息控制机械臂的运动,以进行机器人操作。在实施例中,该步骤可涉及控制电路111生成基于相机校准信息的第二运动命令,随后把第二运动命令输出给通信接口113。通信接口113又可把第二运动命令传达给机器人,以控制机械臂的运动。例如,如图5A中图解所示,在第一相机校准之后,机器人控制系统110控制机器人550进行涉及机器人作业,比如捡取物体582A、582B和582C的机器人操作。机器人550的运动可以基于从第一相机校准获得的相机校准信息,以及基于相机570拍摄的物体582A、582B、582C的图像。
在步骤411,控制电路111检测机器人操作期间的空闲期。在一个方面,机器人的空闲期可以是机器人在机器人操作期间,不进行机器人作业的时间段。在一些情况下,如果机器人操作基于从传送带573捡取物体,那么空闲期可基于传送带573上没有物体。更具体地,传送带573可由机械臂553触及,控制电路111被配置成通过检测在传送带573上没有物体,或者机器人550与传送带573上的最近物体之间的距离超过规定的距离阈值,来检测空闲期。在一些情况下,控制电路111可接收指示即将出现空闲期的信号,其中所述信号可接收自监视机器人操作的其他设备或组件。例如,如图5A中图解所示,机器人控制系统110可在机器人操作期间,检测到涉及捡取第二物体582B的机器人作业和涉及捡取第三物体582C的机器人作业之间的空闲期,因为在第二物体582B和第三物体582C之间存在较大的距离。在该空闲期内,在机器人550捡取第二物体582B之后,机器人550可具有其间它不进行机器人作业的空闲期,因为机器人550还不能触及物体582C。在一个例子中,当机器人550不能触及传送带573上的任何物体时,和/或当机器人控制系统110判定机器人550与传送带573上游的最近物体(例如,第三物体582C)之间的距离超过某个阈值时,机器人控制系统110可检测到空闲期。
返回图4A和4B,方法400还可包括步骤451,在步骤451,控制电路111控制机械臂553在空闲期将验证符号530至少移动到步骤403中使用的(用于拍摄参考图像的)参考位置。在实施例中,步骤451可涉及控制电路111生成第三运动命令,并把第三运动命令输出给通信接口113。通信接口113可被配置成随后把第三运动命令传达给机器人,以使机械臂553基于该运动命令运动。在一些情况下,第三运动命令可涉及保存的一组与参考位置对应的电机命令。在一些情况下,第三运动命令可以是基于来自步骤401的相机校准信息生成的。在其他情况下,步骤451中的第三运动命令不依赖于来自步骤401的相机校准信息。
在步骤453,控制电路111在空闲期内从相机(例如,570)取回或以其他方式接收验证符号(例如,530)的附加图像,其中所述附加图像是验证用验证图像,并且是在空闲期内至少位于该参考位置处的验证符号的图像。即,参考位置的验证图像是在验证符号(例如,530)在或者曾经在该参考位置时拍摄的。在实施例中,步骤453涉及控制电路111生成控制相机(例如,570)拍摄验证图像的相机命令。控制电路111可把相机命令输出给通信接口113,通信接口113可把相机命令传达给相机(例如,570)。在实施例中,步骤451可涉及控制机械臂把验证符号移动到多个参考位置,并接收相机拍摄的多个相应的验证图像。例如,如图6A和6B中图解所示,在空闲期内,机器人控制系统110可控制机器人550的机械臂553把验证符号530移动到参考位置610A~610I之一,并拍摄在该位置的验证符号530的图像,作为验证图像。如果空闲期尚未结束,或者更具体地,如果在空闲期中剩余足够的时间,那么机器人控制系统110可控制机器人550的机械臂553把验证符号530移动到参考位置610A~610I中的另一个参考位置,并拍摄在该另一个位置处的验证符号530的图像,作为另一个验证图像。如果空闲期结束,那么机器人控制系统110可停止拍摄验证图像。因而,在每个空闲期,机器人控制系统110可控制机器人550的机械臂把验证符号530移动到参考位置610A~610I中的一个或多个参考位置,并拍摄在参考位置610A~610I中的一个或多个参考位置每一个处的验证图像。
返回图4B,方法400还可包括步骤455,在步骤455,控制电路111确定用于验证的验证图像坐标,验证图像坐标是在验证图像中出现验证符号之处的坐标。如果验证符号(例如,530)被移动到多个参考位置(例如,610A~610I),那么相机(例如,570)可拍摄分别对应于多个参考位置的多个验证图像,控制电路111可确定分别对应于多个验证图像并且分别对应于多个参考位置的多个验证图像坐标。所述多个验证图像可全部由相机(例如,570)在单个空闲期内拍摄(例如,如果单个空闲期足够长,足以允许机械臂将验证符号(例如,530)移动到所有参考位置610A~610I),或者在几个不同的空闲期内拍摄(例如,如果每个空闲期都不够长,不足以使机械臂将验证符号530移动到所有参考位置610A~610I)。
在实施例中,可按照与参考图像坐标类似的方式,确定验证图像坐标。例如,验证图像坐标可以是验证符号(例如,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的验证图像坐标(uverify_N,vverify_N)确定为验证图像760中第一形状785的中心坐标和第二形状787的中心坐标的平均值:
返回图4B,方法400还可包括步骤457,在步骤457,控制电路111基于步骤403的参考图像坐标与步骤455的验证图像坐标之间的偏差量,确定偏差参数值,其中参考图像坐标和验证图像坐标都与参考位置N关联。在一个例子中,参考图像坐标与验证图像坐标之间的偏差可以是参考图像坐标和验证图像坐标之间的距离。例如,假定在参考位置N的参考图像坐标被表述成(uref_N,vref_N),而在参考位置N的验证图像坐标被表述成(uverify_N,vverify_N),那么在参考位置N的偏差(例如,距离)可被表述成
如上所述,在其中所述一个或多个参考位置是多个参考位置的方面,控制电路111可被配置成确定分别对应于多个参考位置的多个验证图像坐标,其中上述验证图像坐标是多个验证图像坐标之一。在这方面,偏差参数值基于多个参考位置的多个参考图像坐标与多个验证图像坐标之间的各个偏差量,其中所述各个偏差量中的每个偏差量是:(a)与多个参考位置中的相应参考位置对应的参考图像坐标与(b)对应于同一参考位置的验证图像坐标之间的相应偏差量。多个验证图像坐标可以是在多个验证图像中出现验证符号之处的相应坐标,上述验证图像是多个验证图像之一。控制电路111可被配置成控制相机在一个空闲期内拍摄所有多个验证图像,和/或可被配置成控制相机在不同的空闲期内拍摄多个验证图像。
例如,当存在多个参考位置时,如图6A和6B中所示,机器人控制系统110可确定与多个参考位置对应的多个相应参考图像坐标,和确定与多个参考位置对应的多个相应验证图像坐标,并确定多个参考图像坐标与多个验证图像坐标之间的各个偏差量。偏差参数值可基于多个参考图像坐标与多个验证图像坐标之间的各个偏差量。例如,偏差参数可以是各个偏差量的平均值,如下所示。
在上面的表达式中,N指的是第N个参考位置,而M指的是参考位置的总数。
返回图4B,方法400还可包括步骤459,在步骤459,控制电路111判定偏差参数值是否超过规定阈值(也可被称为规定偏差阈值)。此外,在步骤461,响应于偏差参数值超过规定阈值的判定,控制电路111可进行第二相机校准,以确定相机的更新的相机校准信息。例如,超过规定阈值的偏差参数值可指示相机的相机校准信息过时,和/或在机器人操作中可能会造成不可取的误差量。从而,如果偏差参数值超过规定阈值,那么可以进行相机的第二相机校准,以更新相机(例如,570)的相机校准信息。第二相机校准可以使用与第一相机校准相同的技术,不过基于相机最新拍摄的图像。在例子中,如果步骤459指示偏差参数值超过规定阈值,那么机器人操作可被停止或暂停,随后着手进行第二相机校准,可通过拍摄用于第二相机校准的图像开始第二相机校准。在第二相机校准完成,并且相机的相机校准信息被更新之后,机器人控制系统110可以利用更新的相机校准信息恢复机器人操作。
在实施例中,控制电路111可被配置成响应于偏差参数值未超过规定阈值的判定,控制机器人在空闲期之后继续机器人操作,而不进行附加相机校准(例如,通过经通信接口向机器人输出第四运动命令)。这种情况可能指示来自步骤401的相机校准信息仍然足够精确,并且机器人操作可以继续下去,而不会出现不可取的误差量。
在实施例中,控制电路111可被配置成确定机器人所在环境的温度,并基于测量的温度,调整规定偏差阈值(也被称为重新定义偏差阈值)或者相机的相机校准信息至少之一。例如,控制电路111可通过测量温度,或者从另外的设备或组件接收温度数据,确定环境的温度。在这样的实施例中,控制电路111可被配置成通过:当测量的温度在规定范围之外时,把规定阈值设定成具有第一值,而当测量的温度在规定范围之内时,把该阈值设定成具有比第一值低的第二值,来基于测量的温度调整规定阈值。例如,过高的温度或过低的温度会引起相机的变化。更具体地,温度变化可能影响相机的固有参数。例如,相机中的组件在温度升高时会膨胀,而在温度降低时会收缩,这可能影响相机的固有参数。于是,有利的是基于温度或温度变化量,调整规定的偏差阈值。例如,当温度在正常工作温度范围之内(例如,以室温为基准的规定范围)时,那么规定的偏差阈值可以较低,因为温度不会不利地影响相机。另一方面,当温度在正常工作温度范围之外时,偏差阈值可以较高,因为低温或高温不利地影响相机。在备选例子中,当温度超出正常工作温度范围时,偏差阈值可被规定为较低值,以便更频繁地触发附加相机校准。在这个例子中,当温度在正常工作温度范围之内时,偏差阈值可被规定成较高值,以便不太频繁地触发附加相机校准。
图8描述进行相机校准和相机校准的验证的例证时间线800。尽管以下例子讨论了验证相机校准,但它们可能更一般地适用于验证为机器人操作系统进行的任何类型的校准操作。在机器人操作开始之前,图1A或1B的机器人控制系统110在校准期811内进行第一相机校准,以确定相机(例如,图5A或5B的相机570)的相机校准信息。在第一相机校准完成之后,机器人控制系统110在参考获取期813内拍摄在各个参考位置的验证符号(例如,验证符号530)的参考图像,并确定在各个参考图像(例如,图7A的参考图像710)中出现验证符号之处的参考图像坐标。当确定参考图像坐标时,在参考获取期813结束之后,可开始机器人操作。
在开始机器人操作之后,在作业期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)处的验证符号的一个或多个验证图像。
在空闲期817、821和825内拍摄的验证图像(例如,760)可在参考位置中的不同的各个位置拍摄。例如,第一组、第二组和第三组一个或多个位置可以彼此不同,从而位置可能不重叠。此外,在空闲期825内,机器人控制系统110可确定验证图像拍摄完成,这可指示为相机校准的验证拍摄了足够数量的验证图像。在一个实施例中,如果在所有参考位置(例如,610A~610I)都拍摄了验证图像,那么机器人控制系统110可判定验证图像拍摄完成。在一个实施例中,如果验证图像的数量达到规定的目标计数,那么机器人控制系统110可判定验证图像拍摄完成。
当判定验证图像拍摄完成时,机器人控制系统110确定在各个验证图像中出现验证符号之处的验证图像坐标。随后,机器人控制系统110基于验证图像坐标与参考图像坐标的各个偏差量,确定偏差参数值。如果偏差参数超过规定阈值,那么机器人控制系统110进行另外的相机校准。然而在本例中,偏差参数未超过规定阈值,从而在空闲期825之后,机器人控制系统110在作业期827内继续进行机器人作业,而不进行附加相机校准。
图9描述表示与图8中的时间线相关的验证处理的例证流程图900。在步骤901,图1A、1B或1C的机器人控制系统110进行相机(例如,图5A或5B的相机570)的第一相机校准,以确定相机的相机校准信息。在步骤903,机器人控制系统110控制机器人(例如,图5A或5B的机器人550)把验证符号(例如,图5A或5B的验证符号530)移动到参考位置,并通过相机拍摄在各个参考位置处的验证符号的参考图像(例如,图7A的参考图像710)的各个实例。在步骤905,机器人控制系统110基于从第一相机校准获得的相机校准信息,开始机器人的机器人操作。
在步骤907,机器人控制系统110检测到机器人操作期间的空闲期。在步骤909,机器人控制系统110在该空闲期内,控制机器人(例如,图5A或5B的机器人550)把验证符号(例如,图5A或5B的验证符号530)移动到参考位置中的一个或多个位置,并通过相机分别在参考位置中的一个或多个位置处拍摄一个或多个验证图像(例如,图7B的验证图像760)。在一些情况下,机器人控制系统110可以控制机器人将验证符号移动到空闲期的持续时间允许的尽可能多的参考位置。在步骤911,机器人控制系统110判定拍摄的验证图像的总数是否达到规定的目标计数。如果拍摄的验证图像的总数未达到目标计数,那么机器人控制系统110通过返回步骤907,试图检测机器人操作期间的另一个后续空闲期,以拍摄更多的验证图像。
如果拍摄的验证图像的总数达到了目标计数,那么在步骤913,机器人控制系统110基于参考图像(例如,710)和验证图像(例如,760),进行相机校准的验证。相机校准的验证产生偏差参数。在步骤915,机器人控制系统110判定偏差参数是否超过规定阈值。如果偏差参数未超过阈值,那么在步骤919,机器人控制系统110可把拍摄的验证图像的总数重置为0,并在空闲期之后继续进行机器人操作,同时通过返回步骤907,试图检测另外的空闲期,以拍摄新的一组验证图像。
如果偏差参数超过阈值,那么机器人控制系统110可停止机器人操作,并在步骤917进行第二相机校准。在步骤917的第二相机校准之后,在步骤921,机器人控制系统110可把拍摄的验证图像的总数重置为0。在步骤921之后,流程图可返回步骤903,在步骤903,机器人控制系统110控制机器人(例如,550)把验证符号(例如,530)移动到参考位置,并通过相机(例如,570)拍摄在各个参考位置处的验证符号的新的一组参考图像(例如,710),以致该新的一组参考图像可在稍后用于验证。
如上所述,本公开的一方面涉及接收参考图像(例如,图7A的参考图像710)和验证图像(例如,图7B的验证图像760),两者均拍摄或以其他方式表示布置在机械臂(诸如图6A-6D的机器人550的机械臂553)上的物理位置处的公共验证符号(例如,图6A-6D的验证符号530)。在实施例中,参考图像(例如710)可以在第一时间点(诸如,较早时间点)生成,而验证图像(例如760)可以是例如在第二个时间点(诸如,较晚时间点)生成的新图像。在一些情况下,参考图像可以基于由计算系统(诸如图1C的机器人控制系统110)生成的一个或多个命令(也称为一个或多个指令)生成。在一些情况下,该一个或多个命令可以包括运动命令和/或相机命令。运动命令可以用于使机械臂将验证符号移动到参考位置。例如,运动命令可以使机械臂采取特定姿势,这导致验证符号被移动到与机械臂的特定姿势关联的参考位置。相机命令可以用于使相机(诸如图6A-6D的相机570)在机械臂处于特定姿势时和/或在验证符号处于与该特定姿势关联的参考位置时生成参考图像。参考图像因此可以对应于该参考位置。类似地,可以基于一个或多个命令(例如,运动命令和/或相机命令)来生成验证图像,该命令可以与以上针对参考图像讨论的运动命令和/或照相机命令相同或相似。用于验证图像的一个或多个命令可以由导致生成了参考图像的同一计算系统(诸如机器人控制系统110)生成,或由另一计算系统生成。在该示例中,用于生成验证图像的一个或多个命令可以使验证符号再次被移动到参考位置。例如,所述一个或多个命令可以使机械臂再次采取与该参考位置关联的特定姿势。
在以上示例中,接收验证图像的计算系统可以将该验证图像与参考图像进行比较,以确定校准信息是否仍然足够精确。可以通过为机器人操作系统执行的校准操作来确定校准信息。校准操作(也可以称为系统校准)可以包括相机校准、机器人校准或用于控制机器人操作系统的一个或多个组件的任何其他校准。在实施例中,校准信息可以包括相机校准信息、机器人校准信息或任何其他校准信息。上面讨论的比较可以涉及例如基于在参考图像中出现验证符号之处和在验证图像中出现验证符号之处之间的差来确定偏差参数值。如果偏差参数值太大,诸如如果其超过规定的偏差阈值(例如,预定的偏差阈值),则计算系统可以确定校准信息不再足够精确。在这样的情况下,校准信息可以被称为反映或包括错误校准或错误对准。当相机校准信息包括错误校准或错误对准时,它可能不再精确地描述相机的固有特性(例如,投影特性或镜头畸变特性),和/或不再精确地描述相机及其外部环境之间的关系(例如,相机与机器人基座之间的空间关系)。当机器人校准信息包括错误校准或错误对准时,将机械臂或机器人的其他组件精确地移动到可取的位置和/或定向可能不再可靠。
在实施例中,上述比较参考图像和验证图像的方法可以涉及多个验证符号。例如,图10A-10C描绘了一组多个验证符号530A-530C。更具体地,所述一组验证符号530A-530C可以是机器人操作系统500A的一部分,该机器人操作系统500A可以是机器人操作系统500的一个实施例。机器人操作系统500A可以包括机器人550A(其可以是机器人550的一个实施例)、具有相机视野510的相机570和诸如机器人控制器110之类的计算系统。像机器人550一样,机器人550A具有包括可移动地相互附接的多个臂部分的机械臂553。例如,多个臂部可以包括连杆554A-554E,并且包括附接到连杆554E的机器人末端执行器(诸如机械手555)。在一些情况下,如图10A-10C所示,多个臂部分可以从机器人550A的基座552到机器人末端执行器(例如,机械手555)连接或串联布置。在这样的情况下,所述一系列臂部分可以形成运动链,其中该系列中的特定臂部分的移动可以引起该特定臂部分下游的一些或全部臂部分的运动。在特定臂部分的下游的臂部分可以指的是在所述一系列臂部分中跟随该特定臂部分的臂部分。例如,连杆554B-554E和机械臂555可以在连杆554A的下游。换句话说,连杆554A可以在连杆554B-554E的上游和机械臂555的上游。在该例子中,所述一系列臂部分或其子集中的每个臂部分可以相对于在所述一系列臂部分中紧接在所述臂部分之前的相应臂部是可旋转的、可延伸的、可缩回的或可移动的。例如,连杆554C可以相对于连杆554B旋转,其中连杆554B可以是在图10A所示的在所述一系列臂部分中紧接在连杆554C之前的臂部分。在图10A-10C的例子中,连杆554A-554E和机械臂555可以经由关节556A-556D可移动地相互附接。
如上所述,机械臂(例如553)可以被移动到不同的姿势,其中姿势可以指代由机械臂的臂部分(例如,连杆)形成的形状,或更一般地讲是几何形状。例如,图10A-10C示出了机械臂553的三个不同的相应姿势。在实施例中,图10A-10C中的机器人550A可以包括一个或多个致动器(例如,电机),其被配置成使连杆554A-554E和机械臂555相对于彼此旋转、平移(例如,延伸或缩回)或以其他方式移动。在这样的实施例中,图10A-10C中的每个姿势可以与一个或多个致动器输出的移动的特定排列关联。例如,该排列可以描述机械臂553的各个臂部分已经相对于紧接在该各个臂部分之前的各个臂部分旋转的角度值,和/或各个臂部分已经相对于紧接在该各个臂部分之前的各个臂部分平移的距离。例如,图10A-10C中的姿势可以与五个角度值的不同排列关联,所述五个角度值分别描述了连杆554B相对于连杆554A的旋转方向和旋转量、连杆554C相对于连杆554B的旋转方向和旋转量、连杆554D相对于连杆554C的旋转方向和旋转量、连杆554E相对于连杆554D的旋转方向和旋转量,以及机械手555相对于连杆554E的旋转方向和旋转量。
如上所述,图10A-10C描绘了布置在机械臂553的一个或多个臂部分上的一组多个验证符号530A-530C。更特别地,验证符号530A可以布置在连杆554B上,而验证符号530B可以布置在连杆554C上,并且验证符号530C可以布置在机械手555上。在一些情况下,机器人(例如,机器人550)可以具有任意数量的验证符号,并且可以以任何方式将它们布置在在机器人上。例如,可以将验证符号530A-530C随机地放置在机器人550A上的各个位置。在一些情况下,验证符号(例如,530A-530C)的数量和相对放置可能受到一个或多个规定的约束。例如,它们的相对放置可能会受到规定的约束,该约束要求相邻的验证符号(例如530B和530C)要以规定的最小距离(也称为符号间隔)分开,诸如5cm的规定最小距离。这样的约束可以减小计算系统(例如,机器人控制器110)将特定的验证符号(例如,530B)与相邻的验证符号(例如,530C)混淆的可能性。
图11A-11C描绘了涉及一组多个验证符号1130A-1130C的另一例子。更特别地,验证符号1130A-1130C可以是机器人操作系统1100的一部分,该机器人操作系统1100包括机器人1150、具有相机视野1110的相机1170以及诸如机器人控制器110之类的计算系统。机器人操作系统1100和相机1170可以例如分别是机器人操作系统500和相机570的实施例。机器人1150可以具有机械臂1153,该机械臂1153包括多个臂部分,诸如连杆1154A-1154E和机械手1155(或其他机器人末端执行器)。多个臂部分可以经由例如关节1156A-1156D可移动地相互附接。图11A图解说明了处于第一姿势的机械臂1153,而图11B图解说明了处于第二姿势的机械臂1153。像在图10A-10C中一样,多个臂部分可以从机器人1150的基座1152到机械手1155连接或串联布置。所述一系列臂部分可以形成运动链,其中所述一系列中的一个臂部分的移动可以传播到链中的下游臂部分。如图11A所示,验证符号1130A可以布置在连杆1154C上,而验证符号1130B可以布置在连杆1154D上,并且验证符号1130C可以布置在机械手1155上。
在实施例中,所述一组验证符号(例如,530A-530C或1130A-1130C)中的一个或多个验证符号可以具有圆形形状。例如,如以上关于图5C所讨论的,图10A-10C的验证符号530A-530C或图11A-11C的1130A-1130C可以是环形图案,或更具体地是圆环。在图5C的例子中,环形图案可以具有同心的圆形区域(例如531和533)或同心圆(例如535和537)。同心的圆形区域或同心圆可包括例如内部圆形区域和外部圆形区域,或内圆和外圆。在图11C所示的例子中,在一个例子中验证符号1130A的形状为具有半径为r1,1130A的内圆和半径为r2,1130A的外圆的圆环。在该例子中,验证符号1130B可以是具有半径为r1,1130B的内圆和半径为r2,1130B的外圆的另一个圆环。验证符号1130C的形状也可以为具有半径为r1,1130C的内圆和半径为r2,1130C的外圆的圆。
在实施例中,所述一组验证符号(例如,530A-530C或1130A-1130C)的形状可以为具有不同的相应大小的相应圆环。例如,如图11C所示,验证符号1130A-1130C对于它们的相应外圆区域或外圆可以具有不同的半径。即,它们可以具有全部互不相同的r2,1130A、r2,1130B和r2,1130C。在实施例中,用于验证符号1130A-1130C的圆环在它们的内圆区域或内圆的各个半径与它们的外圆区域或外圆的的各个半径之间具有不同的比率。即,比率r2,1130A/r1,1130A、比率r2,1130B/r1,1130B和比率r2,1130C/r1,1130C可以全部互不相同。如以下更详细地讨论的,计算系统(例如,机器人控制系统110)可以被配置成基于形成验证符号1130A/1130B/1130C的相应圆环的大小,和/或基于圆环的内圆的半径和圆环的外圆的半径之间的相应比率来识别验证符号1130A/1130B/1130C。
在实施例中,验证符号(例如,图10A-10C的530A-530C或图11A-11B的1130A-1130C)中的一些或全部可以永久地附接或以其他方式布置在机械臂上(例如533或1130)。这样的实施例可以涉及用于进行相机校准并且具有足够大以容纳足够复杂的图案和/或足够大以容纳足够数量的图案元素以便为相机校准产生足够精确的相机校准结果的大小的校准图案(例如,图5A和5B的520)。但是,校准图案(例如520)的这样的大尺寸可能使其太大而无法成为机械臂的永久或持久部分,因为校准图案(例如520)的大尺寸可能使其干扰机器人的正常操作。在这样的例子中,校准图案520可以在恢复正常的机器人操作之前,例如,将从机械臂(例如,553)上拆卸下来。在该实施例中,与校准图案(例如,520)相比,验证符号(例如,530A-530C或1130A-1130C)中的一些或全部可以更不复杂和/或更小。验证符号的较小尺寸可以允许它们在正常的机器人操作期间保持在机械臂上(例如553或1153),而对正常的机器人操作没有干扰或只有很小的干扰。因此,在这样的例子中,在一些情况下,验证符号(例如530A-530C或1130A-1130C)中的一些或全部可以永久或以其他方式持久地布置在机械臂(例如533或1133)上。这样的布置提供了允许机器人控制器或其他计算系统能够更频繁地和/或更快速地进行校准验证并且评估是否需要确定更新的相机校准的优点。
图12A和图12B图解说明了用于使用多个验证符号来验证校准信息(诸如相机校准信息)的方法1200。在实施例中,方法1200可以由计算系统(诸如图10A-10C或图11A-11B的机器人控制系统110)执行,或更特别地由计算机系统的控制电路(诸如图1C中的机器人控制系统110的控制电路111)执行。如图1C所示,计算系统可以包括通信接口113,该通信接口113被配置成与具有相机视野的相机通信,诸如分别具有相机视野510或1110的图10A的相机570或图11A的相机1170。通信接口113还可以被配置成与机器人(诸如图10A-10C的机器人550A或图11A-11C的机器人1150)通信。如上所述,机器人550A/1150可以包括具有可移动地相互附接的多个臂部分的机械臂553/1153,并且可以包括布置在多个臂部分中的相应臂部分上的一组验证符号。在图10A-10C的例子中,所述一组验证符号可以包括验证符号530A-530C,其分别布置在连杆554B、连杆554C和机械手555上。在图11A-11C的例子中,所述一组验证符号可以包括验证符号1130A-1130C,其可以分别布置在连杆1154C、1154D和机械手1155上。
在实施例中,方法1200可以包括步骤1201,其中机器人控制系统或其他计算系统的控制电路111输出用于控制机械臂(例如,机械臂533/1153)的移动的运动命令以进行机器人操作。运动命令可以例如基于校准信息。校准信息(诸如相机校准信息)可以是从第一校准操作(诸如第一相机校准)来确定的。在一些情况下,步骤1201可以与方法400的步骤409相同或相似,其中控制电路111控制机械臂的运动以进行机器人操作。例如,机器人操作可能涉及在仓库中捡取箱子或其他物体。在该例子中,控制电路111可以被配置成基于由相机(例如,图10A-10C的相机570或图11A-11B的相机1170)生成的盒子的图像并且基于校准信息来确定相机和盒子之间的空间关系,和/或机器人(例如,机器人550A 1150)和盒子之间的空间关系。在实施例中,方法1200可以包括控制电路111执行第一校准操作以确定校准信息的步骤。执行第一校准操作的这样的步骤可以类似于图4A的方法400的步骤401,并且可以在步骤1201之前执行。例如,第一校准操作可以是相机校准,该相机校准涉及基于由相机生成的校准图像来确定对相机校准参数的估计。
在实施例中,方法1200可包括步骤1203,其中控制电路111或计算系统的其他组件确定一组参考图像坐标。所述一组参考图像坐标可以是例如在参考图像中出现所述一组验证符号(例如530A-530C/1130A-1130C)之处的相应坐标,其中,参考图像可以是用于表示该组验证符号(例如530A-530C/1130A-1130C)的图像。在实施例中,所述一组参考图像坐标可以用于验证校准信息。
例如,图13A描绘了表示图11A的一组验证符号1130A-1130C的参考图像1120。在图13A的例子中,所述一组参考图像坐标可以包括第一参考图像坐标、第二参考图像坐标和第三参考图像坐标。在这样的例子中,第一参考图像坐标可以识别验证符号1130A在参考图像1120中出现的位置,而第二参考图像坐标可以识别验证符号1130B在参考图像1120中出现的位置,并且第三参考图像坐标可以识别验证符号1130C在参考图像1120中出现的位置。在更具体的例子中,第一参考图像坐标、第二参考图像坐标和第三参考图像坐标中的每一个可以是像素坐标[u v]T。更特别地,图13A将验证符号1130A、1130B和1130C的三个参考图像坐标分别描绘为[uref_1vref_1]T 1130A、[uref_1vref_1]T 1130B、[uref_1vref_1]T 1130C。在该例子中,标签ref_N(例如,ref_1)可以指代与当机械臂1153处于第N姿势(诸如第一姿势(当N=1时))时所生成的参考图像关联的坐标。如下面更详细地讨论的,图13A的参考图像1120可以对应于第一姿势或者更一般地与第一姿势关联,该第一姿势可以是图11A图解所示的机械臂1153的示例姿势。不同的姿势可以将验证符号1130A-1130C放置在相机视野1110的不同组相应位置处。例如,图11A中的姿势可以将验证符号1130A-1130C分别放置在3D位置[xref_1yref_ 1zref_1]T 1130A、[xref_1yref_1zref_1]T 1130B、[xref_1yref_1zref_1]T 1130C处。在这样的情况下,这些3D位置[xref_1yref_1zref_1]T 1130A、[xref_1yref_1zref_1]T 1130B、[xref_1yref_1zref_1]T 1130C可以投影或以其他方式映射到参考图像1120中的像素坐标[uref_1vref_1]T 1130A、[uref_1vref_1]T 1130B、[uref_1vref_1]T 1130C。在实施例中,像素坐标[uref_1vref_1]T 1130A、[uref_1vref_1]T 1130B、[uref_1vref_1]T 1130C中的每一个可以识别其各个验证符号1130A/1130B/1130C在参考图像1120中出现的中心。
在实施例中,步骤1203可以涉及控制电路111从机器人控制系统110或其他计算系统的通信接口113和/或非临时性计算机可读介质115接收参考图像(例如1120)。例如,图13A的参考图像1120可以是当机械臂1153处于图11A的姿势时由相机1170生成的。计算系统110可以经由通信接口113从相机1170接收参考图像1120,并且可以将参考图像1120存储在非临时性计算机可读介质115中。在步骤1203中,在例子中,控制电路111可以从非临时性计算机可读介质115取回或以其他方式接收参考图像1120。非临时性计算机可读介质115也可以存储验证图像(在下面讨论),并且控制电路111可以从非临时性计算机可读介质115接收该验证图像。
在实施例中,控制电路111可以被配置成基于描述机械臂(例如1153)的几何形状的规定的模型来识别参考图像(例如1120)中的所述一组验证符号(例如1130A-1130C)中的至少一个验证符号(例如1130A)。例如,规定的模型可以描述哪些连杆、机器人末端执行器或其他臂部分形成机械臂,它们的相应大小(例如,长度)以及它们如何连接,和/或描述哪些臂部分具有布置在其上的至少一个验证符号(例如1130A)。在这样的实施例中,控制电路可以被配置成基于该模型确定参考图像(例如1120)内的期望出现该至少一个验证符号的区域,并在参考图像的该区域内搜索该至少一个验证符号(例如1130A)。在实施例中,模型可以存储或更一般地描述验证符号(例如1130A)在机械臂(例如1153)上的位置。验证符号的位置(也称为符号位置)可以是验证符号在机械臂(例如1153)上的近似位置。
例如,如果参考图像(例如1120)与用于生成与该参考图像关联的姿势(或更具体地出现在参考图像中的机械臂的姿势)的运动命令的一个或多个参数值一起存储,则当根据该运动命令移动机械臂时,所述一个或多个参数值和模型可用于估计机械臂(例如1153)的姿势。如下面更详细地讨论的,在实施例中,所述一个或多个参数值可以属于用于控制用于移动机械臂(例如1153)的一个或多个致动器(例如,一个或多个电机)的一个或多个致动器参数。估计的姿势可用于估计验证符号(例如1130A)在机械臂(例如1153)上的位置,并且估计的位置可用于估计验证符号可能出现在参考图像(例如1120)中的位置。
在以上例子中,控制电路111可以被配置成聚焦于参考图像(例如1120)中期望出现一个或多个验证符号的(一个或多个)区域。这样的技术可以允许控制电路111避免在整个参考图像(例如1120)中搜索验证符号(例如1130A-1130C),并且因此更快地在参考图像(例如1120)中识别出验证符号(例如1130A-1130C)。以上例子中的模型还可以用于在验证图像中搜索验证符号(在下面讨论)。
如上所述,在实施例中,所述一组验证符号(例如1130A-1130C)的形状可以为相应的圆环。在这样的实施例中,控制电路111可以被配置成通过识别形成验证符号的圆环来辨别或以其他方式识别参考图像(例如1120)中的验证符号(例如1130A)。如果所述一组验证符号的形状为具有不同的相应大小的相应圆环,例如以上关于图11C所示的那样,则控制电路111可以被配置成基于形成验证符号的相应圆环的大小(例如半径r2,1130A)来识别验证符号(例如,1130A)。在一些情况下,如果验证符号(例如1130A)的形状为具有至少第一圆形区域或第一圆和第二圆形区域或第二圆的圆环,则控制电路111可以被配置成基于第一圆形区域或第一圆的半径与第二圆形区域或第二圆的半径之间的比率来识别验证符号。例如,控制电路111可以被配置成基于识别圆环并确认该环具有比率r2,1130A/r1,1130A来识别验证符号1130A。
如以上进一步陈述的,步骤1203的参考图像(例如图13A的1120)可以是在机械臂(例如1153)处于第一姿势(诸如图11A中描绘的姿势)时由相机(例如图11A的1170)生成的。参考图像可以由相机在第一时间段内或更一般地在第一时间点处生成。第一时间段可以指代用于生成参考图像或与参考图像关联的一段时间(例如,数毫秒、数秒或数分钟的时间段)。例如,第一时间段可以包括用于拍摄参考图像的相机操作的时间,并且在一些情况下,还可以包括用于机器人移动以使验证符号位于相机视野中的时间。在一些情况下,在其期间生成参考图像的第一时间段可以是例如步骤1201和/或步骤1203之前的数小时、数天或数周。在实施例中,执行步骤1201和1203的计算系统或更具体地是控制电路111可以不涉及生成参考图像(例如1120)。在实施例中,执行步骤1201和1203的计算系统或更具体地是控制电路111可以涉及生成参考图像(例如1120)。例如,在步骤1201和/或1203之前的步骤中,计算系统可以在第一时间段期间输出运动命令,以使机械臂(例如1153)移动到第一姿势。在这样的情况下,该之前步骤可以是方法1200的一部分。第一姿势可以使所述一组验证符号(例如1130A-1130C)被移动到与第一姿势关联的一组相应位置,诸如上面讨论的位置[xref_1yref_1zref_1]T 1130A、[xref_1yref_1zref_1]T 1130B、[xref_1yref_1zref_1]T 1130C。在一些情况下,这样的步骤可以与图4A中的步骤403相似或相同。在上面的例子中,计算系统或更具体地是控制电路111在该步骤中还可以输出相机命令,该命令使得相机(例如1170)在机械臂(例如1153)处于第一姿势时生成参考图像(例如1120)。在实施例中,计算系统可以从相机接收参考图像(例如,1120),并将参考图像存储在图1C的非临时性计算机可读介质115中或另一非临时性计算机可读介质中。在一些情况下,计算系统可以还存储允许机械臂(例如1153)返回到第一姿势和/或将验证符号(例如1130A-1130C)返回到第一组相应位置的信息。例如,计算系统可以存储第一组相应位置或更具体地存储它们的3D坐标,和/或可以存储用于使机械臂(例如1153)移动到第一姿势的运动命令的参数值。在实施例中,这些坐标和/或运动命令可以以将所存储的信息与上述参考图像(例如1120)关联的方式被存储在非临时性计算机可读介质115中。
在实施例中,以上讨论的用于将机械臂移动到第一姿势的运动命令可以包括描述机械臂(例如1153)的运动的一个或多个参数值。如上所述,在一些情况下,该一个或多个参数值可属于控制产生机械臂(例如1153)的运动的一个或多个致动器的一个或多个致动器参数。在这样的情况下,所述一个或多个参数值可以被称为一个或多个致动器参数值(也被称为机器人关节值)。例如,所述一个或多个致动器参数值可以描述例如机械臂的臂部分相对于彼此的相应旋转量、臂部分相对于彼此的相应位置和/或定向、和/或连接臂部分的关节(例如1156A-1156D)位置。例如,运动命令的一个或多个致动器参数值可以描述机器人1150中的电机将各个臂部分(例如,连杆1154A-1154E和机械手1155)相对于它们的紧接在前的臂部分旋转的相应角度值。
在实施例中,以上讨论的运动命令可以具有任何参数值(一个或多个)(例如,随机参数值(一个或多个)),并且由运动命令引起的第一姿势可以是任何姿势。在实施例中,以上讨论的运动命令可以是使得验证符号(例如,1130A-1130C)中的一些或全部在参考图像(例如,1120)中具有可取的外观的运动命令。例如,如上所述,所述一组验证符号(例如1130A-1130C)中的一些或全部验证符号可以具有圆形形状,诸如由同心的圆形区域或同心圆形成的环形。在这样的例子中,当至少一个验证符号(例如1130A)相对于相机(例如1170)处于某些定向时,所述至少一个验证符号(例如1130A)在所得到的参考图像中可能呈椭圆形而不是呈完全圆形。椭圆形外观可能导致不精确的校准验证。例如,如果验证符号1130A的参考图像坐标是符号中心出现在参考图像中的位置,则当验证符号1130A在参考图像中呈椭圆形时,可能更难以精确确定该参考图像坐标。此外,如果识别参考图像中的验证符号1130A(例如,将验证符号1130A与参考图像中的其他特征区分开)依赖于识别参考图像中的环形图案并依赖于验证环形图案具有特定的与符号关联的多个同心圆之间的比率(例如,与验证符号1130A关联的比率r2,1130A/r1,1130A),则当环形图案在参考图像中呈椭圆形时,此识别可能更难以精确地进行。因此,如果控制电路111涉及输出与生成参考图像关联的运动命令,则控制电路111可以尝试生成如下的运动命令,该运动命令使所述一组验证符号(例如,1130A-1130C)以一定方式被定位以使得它们在参考图像中完全或基本呈圆形。
例如,控制电路111可以生成运动命令,该运动命令使机械臂(例如1153)移动到所述一组验证符号(例如1130A-1130C)直接面向相机(例如1170)的姿势。例如,该姿势可以使得所述一组验证符号(例如1130A-1130C)中的至少一个验证符号与相对于相机(例如1170)凹陷的假想球体的表面相切。在图11A中,机械臂1153的所示姿势可以使验证符号1130A和验证符号1130B具有相应的定向,在该相应的定向处验证符号1130A和验证符号1130B与相对于相机(例如1170)凹陷的假想球体1121的表面相切,并且可以使验证符号1130C具有与也相对于相机(例如1170)凹陷的假想球体1123的表面相切的定向。在上面讨论的第一姿势这样的姿势中,所述一组验证符号(例如1130A-1130C)可以在参考图像(例如1120)中呈现为相应圆形形状。更具体地,在这样的例子中的所述一组验证符号(例如1130A-1130C)可以以一定方式被定位以使得它们在参考图像中不呈现偏心(eccentricity),或者呈现小于规定的偏心阈值的相应偏心量。在以上例子中,假想圆1121和1123的中心可以在相机(例如1170)处。在实施例中,控制电路111可以被配置成生成随机运动命令并搜索这些随机运动命令以找到可以产生针对所述一组验证符号的上面讨论的方向的一个运动命令。找到的运动命令可以由控制电路111输出,以便生成参考图像(例如,1120)。
返回图12A至图12B,在实施例中,方法1200包括步骤1205,在步骤1205中,控制电路111输出用于控制机械臂移动至第一姿势(诸如图10A或图11A所示的第一姿势)的运动命令,其中第一姿势是在第一时间段期间生成参考图像(例如,1120)的姿势,如上所述。在一些情况下,可以经由通信接口113将运动命令输出到机器人(例如,550A/1150)。在实施例中,步骤1205中的运动命令可以被称为附加运动命令,因为它是对步骤1201的运动命令的附加。可以在第一时间段之后的第二时间段期间或更一般地第二时间点处输出该附加运动命令。第二时间段可以指代用于生成验证图像或以其他方式与生成验证图像关联的一段时间(例如,数毫秒、数秒或数分钟的时间段)。例如,第二时间段可以包括用于机器人移动以使验证符号位于相机视野中的时间和/或用于相机操作以拍摄验证图像的时间。在一些情况下,第二时间段(或更一般地,第二时间点)可以在第一时间段(或更一般地,第一时间点)之后数小时、数天或数周。如下面更详细地讨论的,附加运动命令可以用于在第二时间段期间生成验证图像。在实施例中,附加运动命令可以使机械臂(例如1153)移动到所述一组验证符号(例如1130A-1130C)直接面向相机(例如1170)的姿势(例如图11A的第一姿势)。例如,所述一组验证符号可以具有与相对于相机凹陷的一个或多个虚拟球体的表面相切的相应定向。在这样的姿势中,所述一组验证符号(例如1130A-1130C)可以在验证图像(例如图13B的1160)中呈现为相应圆形形状。
在实施例中,如果方法1200包括输出如上所述的用于在第一时间段期间生成参考图像的运动命令的步骤,则用于在第一时间段期间生成参考图像的运动命令可以是第一附加运动命令,而用于在第二时间段期间生成验证图像的步骤1205中的运动命令可以是第二附加运动命令。在一些情况下,第一附加运动命令可以是较早的运动命令,而第二附加运动命令可以是较晚的运动命令。在一些情况下,第一附加运动命令可以具有用于控制机械臂移动到第一姿势的一个或多个致动器参数值(或机器人关节值),并且第二附加运动命令也可以具有该一个或多个致动器参数值。更特别地,第一附加运动命令和第二附加运动命令可以具有相同的致动器参数值。例如,如果机器人(例如1150)包括使各个臂部分(例如,连杆1154A-1154E和机械手1155)相对于彼此旋转的多个电机,则所述一个或多个致动器参数值可包括控制多个电机输出多少旋转量的多个相应角度值。在该例子中,第一附加运动命令和第二附加运动命令二者都可以包括控制多个电机输出多少旋转量的相同的多个相应角度值。
在实施例中,第一附加运动命令和/或第二附加运动命令可以在相应的空闲期(诸如以上关于图4A的步骤411所讨论的空闲期)被输出。在一些情况下,如果校准信息是通过进行校准操作来确定的,则可以在进行校准操作之后立即或者在校准操作之后的最早的空闲期内输出第一附加运动命令。在一些情况下,第二附加运动命令可以响应于规定的触发条件,诸如自进行校准操作以来经过了规定时间段,涉及机器人的碰撞事件、或可能会导致相机与机器人或其部分之间的可能位移或错误对准的任何其他事件(例如自然灾难,诸如地震),或者一些其他触发条件。如果生成验证图像涉及控制电路111输出相机命令,则在一些例子中,相机命令也可以响应于规定的触发条件而被输出。
在实施例中,机械臂(例如1153)的步骤1205的第一姿势可以与布置在机械臂上的所述一组验证符号(例如1130A-1130C)的特定一组相应参考位置关联,如上所述。例如,所述一组相应参考位置可以是3D位置[xref_1yref_1zref_1]T 1130A、[xref_1yref_1zref_1]T 1130B、[xref_ 1yref_1zref_1]T 1130C。当参考图像(例如1120)被生成时,所述一组验证符号(例如1130A-1130C)可以位于与第一姿势关联的所述一组相应参考位置处。在步骤1205中,如果附加运动命令使机械臂返回到第一姿势,则所述一组验证符号(例如1130A-1130C)可以返回到所述一组参考位置(例如[xref_1yref_1zref_1]T 1130A、[xref_1yref_1zref_1]T 1130B、[xref_1yref_1zref_1]T 1130C)。在这样的例子中,当参考图像(例如1120)被生成时,所述一组验证符号(例如1130A-1130C)可以被布置在所述一组相应参考位置处,并且当验证图像(例如1160)被生成时,可以再次被布置在所述一组相应参考位置处。
返回图12A至图12B,实施例中的方法1200可以包括步骤1207,其中控制电路111接收验证图像,诸如图13B中的验证图像1160。如上所述,参考图像(例如1160)可以是用于表示所述一组验证符号(例如1130A-1130C)的图像。在该例子中,验证图像(例如1160)可以是用于也表示所述一组验证符号(例如1130A-1130C)的附加图像,并且可以是在机械臂(例如1153)由于步骤1205的附加运动命令而被移动到第一姿势(诸如图11A所示的第一姿势)时生成的。
在实施例中,方法1200可以包括步骤1209,其中控制电路111确定一组验证图像坐标。在该实施例中,所述一组验证图像坐标可以是在该验证图像(例如,图13B的1160)中出现所述一组验证符号(例如,1130A-1130C)之处的相应坐标。在实施例中,所述一组验证图像坐标可以用于验证校准信息,诸如相机校准信息。类似于针对步骤1203中的参考图像坐标的以上讨论,例子中的所述一组验证图像坐标可以包括第一验证图像坐标、第二验证图像坐标和第三验证图像坐标。在更具体的例子中,第一验证图像坐标、第二验证图像坐标和第三验证图像坐标中的每一个可以是识别例如其相应验证符号的中心的像素坐标。例如,图13B描绘了三个验证图像坐标,或更具体地是在验证图像1160中出现验证符号1130A-1130C的相应中心之处的像素坐标[uverify_1vverify_1]T 1130A、[uverify_1vverify_1]T 1130B、[uverify_ 1vverify_1]T 1130C。与针对参考图像坐标的讨论类似,标签verify_N(例如verify_1)可以指代与当机械臂处于第N姿势(诸如第一姿势(N=1))时所生成的参考图像关联的坐标。
在实施例中,控制电路111可以为了多个参考图像和多个验证图像(例如,五个参考图像和五个验证图像)多次执行步骤1203-1209。多个参考图像和多个验证图像可以对应于多个相应姿势。例如,图10A至图10C描绘了机械臂553的一系列三个姿势。在该例子中,机器人控制器110或任何其他计算系统的控制电路111可以接收均与图10A中所示的第一姿势关联的第一参考图像和第一验证图像、接收均与图10B中所示的第二姿势关联的第二参考图像和第二验证图像、以及均与图10C中所示的第三姿势关联的第三参考图像和第三验证图像。在另一个例子中,图13A的参考图像1120可以是第一参考图像,并且图13B的验证图像1160可以是第一验证图像,两者都可以与图11A中针对机械臂1153所示的第一姿势关联。在该例子中,控制电路111还可以接收图14A的第二参考图像1122和图14B的第二验证图像1162,两者都可以与图11B中所示的第二姿势关联。在该例子中,图13A的参考图像坐标[uref_1vref_1]T 1130A、[uref_1vref_1]T 1130B、[uref_1vref_1]T 1130C可以是第一组参考图像坐标,而图13B的验证图像坐标[uverify_1vverify_1]T 1130A、[uverify_1vverify_1]T 1130B、[uverify_1vverify_1]T 1130C可以是第一组验证图像坐标。该例子中的控制电路111还可以被配置成确定图14A的第二参考图像1122的第二组参考图像坐标[uref_2vref_2]T 1130A、[uref_2vref_2]T 1130B、[uref_2vref_2]T 1130C,并确定图14B的第二验证图像1162的第二组验证图像坐标[uverify_2vverify_2]T 1130A、[uverify_ 2vverify_2]T 1130B、[uverify_2vverify_2]T 1130C。在以上例子中,控制电路111可以在一些情况下被配置成输出用于使机械臂(例如1153)移动到多个相应姿势的不同相应运动命令,其中多个参考图像和/或多个验证图像与该多个相应姿势关联。
返回图12A至图12B,实施例中的方法1200可以包括步骤1211,其中控制电路111基于所述一组参考图像坐标(例如,图13A的[uref_1vref_1]T 1130A、[uref_1vref_1]T 1130B、[uref_1vref_1]T 1130C)和所述一组验证图像坐标(例如,图13B的[uverify_1vverify_1]T 1130A、[uverify_1vverify_1]T 1130B、[uverify_1vverify_1]T 1130C)之间的相应偏差量来确定一组相应偏差参数值。例如,在图13A和13B的上下文中的所述一组相应偏差参数值可以包括第一偏差参数值、第二偏差参数值和第三偏差参数值。第一偏差参数值可以基于参考图像1120中的验证符号1130A的第一参考图像坐标[uref_1vref_1]T 1130A和验证图像1160中的验证符号1130A的第一验证图像坐标[uverify_1vverify_1]T 1130A之间的偏差量。例如,第一偏差参数值可以等于或更一般地基于第一参考图像坐标和第一验证图像坐标之间的距离,如以上关于图4B的步骤457所讨论的。类似地,第二偏差参数值可以基于(例如,等于)参考图像1120中的验证符号1130B的第二参考图像坐标[uref_1vref_1]T 1130B和验证图像1160中的验证符号1130B的第二验证图像坐标[uverify_ 1vverify_1]T 1130B之间的偏差量。此外,第三偏差参数值可以基于参考图像1120中的验证符号1130C的第三参考图像坐标[uref_1vref_1]T 1130C和验证图像1160中的验证符号1130C的第三验证图像坐标[uverify_1vverify_1]T 1130C之间的偏差量。在以上例子中,所述一组相应偏差参数值与所述一组验证符号关联。即,第一偏差参数值与验证符号1130A关联,而第二偏差参数值与验证符号1130B关联,并且第三偏差参数值与验证符号1130C关联。
在实施例中,所述一组相应偏差参数值中的一些或全部可以基于单个一对参考图像和验证图像,该参考图像和验证图像两者都可以与机械臂的公共姿势(common pose)关联。例如,以上讨论的第一偏差参数值可以与验证符号1130A关联,并且可以基于单个一对参考图像1120和验证图像1160,参考图像1120和验证图像1160两者都与公共姿势(诸如,图11A中的姿势)关联。
在实施例中,所述一组相应偏差参数值中的一些或全部可以基于多对相应参考图像和相应验证图像,其中每个对与机械臂的多个姿势中的相应姿势关联。例如,与验证符号1130A关联的以上讨论的第一偏差参数值可以基于(图13A和图13B的)第一对参考图像1120和验证图像1160以及(图14A和14B的)第二对参考图像1122和验证图像1162。该第一对可以与图11A的第一姿势关联,而该第二对可以与图11B的第二姿势关联。更具体地,在该例子中,第一偏差参数值可以基于[uref_1vref_1]T 1130A和[uverify_1vverify_1]T 1130A(它们与第一姿势关联)之间的偏差量(例如,距离),并且基于[uref_2vref_2]T 1130A和[uverify_2vverify_2]T 1130A(它们与第二姿势关联)之间的偏差量。在一个例子中,第一偏差参数值可以等于或基于这两个偏差量的平均值。更一般而言,在该例子中,所述一组相应偏差参数值可以基于第一组参考图像坐标和第一组验证图像坐标(它们与第一姿势关联)之间的相应偏差量,并且还基于第二组参考图像坐标和第二组验证图像坐标(它们与第二姿势关联)之间的相应偏差量。
在一些情况下,第一参考图像中的参考图像坐标和第二参考图像中的参考图像坐标可以是一组参考图像坐标的一部分,所述一组参考图像坐标指示在一组参考图像(诸如上面讨论的两个参考图像1120、1122)中公共验证符号(例如,1130A)出现的位置。在该例子中,所述一组参考图像和所述一组参考图像坐标可以分别对应于机械臂(例如1153)的一组相应姿势,诸如图11A和11B中的两个姿势。相似地,第一验证图像中的验证图像坐标和第二验证图像中的验证图像坐标可以是一组验证图像坐标的一部分,所述一组验证图像坐标指示一组验证图像(诸如上面讨论的验证图像1160、1162)中验证符号出现的位置。所述一组验证图像和所述一组验证图像坐标也可以对应于所述一组姿势。在这样的情况下,与验证符号关联的偏差参数值可以基于所述一组参考图像坐标和所述一组验证图像坐标之间的相应偏差量。
返回图12A至图12B,在实施例中方法1200可以包括步骤1213,其中控制电路111确定所述一组相应偏差参数值中的至少一个偏差参数值是否超过规定的偏差阈值。在一些情况下,步骤1213可以类似于图4B的步骤459。在实施例中,步骤1213可以涉及确定相所述一组相应偏差参数值中的每个偏差参数值是否已经超过相应的偏差阈值。例如,控制电路111可以确定与验证符号1130A关联的偏差参数值是否已经超过规定的偏差阈值、与验证符号1130B关联的偏差参数值是否已经超过规定的偏差阈值、和/或与验证符号1130C关联的偏差参数值是否已超过规定的偏差阈值。在一些情况下,相应偏差阈值可以具有相同的值从而形成验证符号的公共偏差阈值,或者可以具有不同的值。
在实施例中,该方法可以包括步骤1215,其中控制电路111可以响应于确定所述一组相应偏差参数值中的至少一个偏差参数值超过规定的偏差阈值而进行以下操作中的至少一个:(a)输出所述一组相应偏差参数值中的至少一个超过规定的偏差阈值的通知,或(b)进行校准操作以确定更新的校准信息(例如,更新的相机校准信息)。例如,步骤1215可以涉及将通知输出到用户界面设备,例如与机器人控制器110通信的电子显示器。该电子显示器可以显示例如至少一个偏差参数值或至少一个偏差参数值超过规定的偏差阈值的指示。在实施例中,在步骤1215中进行校准操作可以与图4B中的步骤461相似或相同。在实施例中,如果步骤1201的校准信息是通过进行第一校准操作而确定的,则步骤1215的校准操作可以是在第一校准操作之后的第二校准操作。
在实施例中,超过规定的偏差阈值的至少一个偏差参数值可以指示相机(例如,图11A-11B的1170)发生变化和/或相机或机器人操作系统(例如1100)的环境发生变化。在一些情况下,相机的变化可能是内部变化,诸如相机的镜头或图像传感器由于温度变化或物理损坏而改变了形状或大小。在一些情况下,相机的变化可以包括相机(例如170)所安装的位置的变化,诸如由于安装相机的结构(例如天花板)的振动所致。在一些情况下,相机或机器人操作系统的环境的变化可以包括机器人(例如1150)的基座(例如1152)的位置或定向的变化,诸如由于安装机器人的结构(例如地板)的振动所致。在一些情况下,相机的环境或机器人操作系统的变化可以是机械臂的臂部分之间(例如,机械臂1153的连杆1154A-1154E之间)的关系的变化或臂部分本身的变化。例如,臂部分之一(例如,连杆1154D或机械手1155)可能由于计算系统110未计划的事件而弯曲或以其他方式变形或损坏。该计划外的事件可以是碰撞事件或一些其他不期望的事件,其可能导致机器人(例如1150)或机器人操作系统的其他元素的可能的变化。上面讨论的校准验证可以提供一种快速有效的技术,用于检测相机(例如1170)的变化和/或相机或机器人操作系统1100的环境的变化。例如,可以通过比较(一个或多个)参考图像坐标和对应的(一个或多个)验证图像坐标以确定它们之间的差异来检测相机(例如1170)和/或机器人(例如1150)的变化。在许多情况下,可以在不对计算系统110的计算资源提出大量要求的情况下进行这样的比较。例如,可以利用仅占用有限数量的处理器执行时间和/或有限数量的内存的计算来完成比较。因此,该比较可以以计算上高效的方式来促进对校准信息的精确性的精确监视。
在实施例中,超过规定的偏差阈值的至少一个偏差参数值可以指示存在校准误差,例如来自第一相机校准的相机校准信息不再足够精确的相机校准误差。在实施例中,方法1200可以涉及控制电路111确定引起至少一个偏差参数值超过规定的偏差阈值的校准误差的类型(也称为错误对准的类型)。校准误差的类型可以指示,例如,校准信息(例如,相机校准信息)的精确度损失是由机器人的变化引起还是以其他方式表示机器人的变化,或者,该精度损失是由相机的变化引起还是以其他方式表示了相机的变化。例如,如上所述,相机(例如1170)的变化可以包括相机的内部变化和/或相机所安装的位置的变化。机器人的变化可以包括机器人(例如1150)的基座(例如1152)的位置或定向的变化、机械臂(例如1153)的臂部分之间的关系的变化,和/或臂部分本身的变化,如上所述。
在实施例中,校准误差的类型的确定可以基于所述一组相应偏差参数值之间的比较,并且更具体地基于所述一组相应偏差参数值是否以基本均匀的方式超过规定的偏差阈值。例如,如果与不同的验证符号(例如1130A-1130C)关联的所述一组偏差参数值都超过了规定的偏差阈值并且是以基本上均匀的方式这样做的,则控制电路111可以确定精度损失是由相机(例如1170)或更具体地由相机的变化引起的。这是因为参考图像或验证图像中的每个验证符号(例如1130A-1130C)的外观取决于内部性质和/或取决于相机(例如1170)的位置。更具体地,参考图像或验证图像中的验证符号(例如,1130A-1130C)的参考图像坐标和验证图像坐标可能都取决于相机的内部性质或位置。因此,相机(例如1170)的内部性质或位置的变化可能经常影响所有验证符号(例如1130A-1130C)的相应偏差参数值,并且更具体地说,可能经常以基本上均匀的方式增加所有偏差参数值。相比之下,如果在机器人(例如1150)的一部分(例如臂部分)中存在损坏、故障操作或其他变化,则不太可能使机器人的其他部分以完全相同的方式全都发生变化(例如,损坏或全故障)。因此,如果机器人的一部分发生变化(该变化将使至少一个偏差参数值增加到规定的偏差阈值以上),则所述一组偏差参数值中的其他偏差参数值可能仍会保持在规定的偏差阈值以下,或者所述一组偏差参数值可能全部超过了规定的偏差阈值但是以非均匀的方式这样做。因此,在实施例中,如果与不同的验证符号(例如1130A-1130C)关联的所述一组相应偏差参数值中的至少一个超过了规定的偏差阈值,但是所述一组相应偏差参数值没有以基本上均匀的方式全部超过规定的偏差阈值,则控制电路111可以确定精度损失是由机器人(例如1150)或更具体地机器人的变化引起的。
在实施例中,控制电路111可以使用规定的均匀度(uniformity)阈值来评估所述一组偏差参数值是否以基本均匀的方式全部超过规定的偏差阈值。例如,控制电路111可以确定偏差参数值中的至少一个是否超过规定的偏差阈值,并且还确定偏差参数值当中(或者它们超过规定的偏差阈值的相应量当中)的差异是否在规定的均匀度阈值内。均匀度阈值可以以动态方式来规定(例如,基于机器人操作系统的当前操作条件),或者可以是预定的。作为使用规定的均匀度阈值的示例,如果控制电路111确定验证符号1130A-1130C的相应偏差参数值都超过了规定的偏差阈值,但是与验证符号1130C关联的偏差参数值和与验证符号1130A关联的偏差参数值相差超过规定的均匀度阈值,和/或和与验证符号1130B关联的偏差参数值相差超过规定的均匀度阈值,则控制电路111可以确定该精度损失是由机器人1150的变化引起的,诸如至少是放置验证符号1130C的机械手1155或其他臂部分的变化。在以上例子中,控制电路111直接比较偏差参数值。在其他例子中,控制电路111可以比较偏差参数值超过规定的偏差阈值的相应量,以及这些相应的量是否相差超过规定的均匀度阈值。在另一例子中,如果控制电路111确定所述一组偏差参数值中的第一偏差参数值超过规定的偏差阈值,但是所述一组偏差参数值中的一个或多个偏差参数值不超过规定的偏差阈值,则控制电路111也可以确定校准错误(也称为错误对准)是由于机器人(例如1150)的变化引起的,诸如是布置有与第一偏差参数关联的验证符号的臂部分的变化。在另一例子中,如果控制电路111确定所述一组偏差参数值全部超过规定的偏差阈值并且它们彼此相差不超过规定的均匀度阈值,则控制电路111可以确定校准误差是由相机(例如1170)的变化引起的。
在一些情况下,机器人控制器110或其他计算系统的控制电路111可以与传送带(诸如图11A和11B的传送带1173)通信。在这样的情况下,控制电路111可以被配置成响应于确定至少一个偏差参数值超过了规定的偏差阈值而使传送带1173停止。停止传送带1173可以防止机械臂1153基于不精确的校准信息与传送带1173上的物体发生不可取的相互作用。
在实施例中,控制电路111可以被配置成确定:如果校准信息对于特定的臂部分(例如,布置有验证符号1130A的连杆1154C,或布置有验证符号1130B的连杆1154D,或布置有验证符号1130C的机械手1155)足够精确,则校准信息对于该特定臂部分上游的一个或多个手臂部分也是足够精确的。如上所述,可以从机器人的基座到机械臂末端执行器将多个臂部分布置为一系列臂部分。如果在前臂部分在所述一系列臂部分中的在后臂部分之前,则该臂部分可以在另一个臂部分的上游。例如,图11A-11B中的连杆1154D可以在连杆1154E和机械手1155的上游。在一个例子中,如果控制电路111确定校准信息(例如,相机校准信息)对于例如机械手1155足够精确,则它可以确定校准对于上游臂部分(诸如连杆1154E、1154D、1154C、1154B和1154A)足够精确。在该例子中,如果与布置在臂部分上的验证符号关联的偏差参数值低于规定的偏差阈值,则控制电路111可以确定校准信息对于该臂部分足够精确。在实施例中,如果控制电路111确定对于特定臂部分存在校准误差使得该校准信息对于该臂部分不够精确,则控制电路111可以确定对于一些或全部下游臂部分存在校准误差。例如,如果控制电路111确定校准信息对于特定机器人部分(诸如连杆1154D)不够精确,则控制电路111可以确定该校准信息对于下游臂部分(诸如连杆1154E和机械手1155)不够精确。
在实施例中,方法1200的一个或多个步骤,诸如步骤1203至1215,可以由机器人控制器110或其他计算系统响应于用户命令来执行。例如,用户(例如,系统操作员)可以手动触发涉及步骤1203至1215的校准验证操作。在实施例中,可以在空闲期内执行步骤1203至1215。空闲期可以是例如其间不进行机器人操作(诸如从传送带或托盘捡取物体)的时段。在实施例中,方法1200的一个或多个步骤,例如步骤1203至1215,可以由机器人控制器110或其他计算系统响应于规定的触发条件来执行。如上所述,触发条件可以包括例如计划外事件,诸如涉及机器人(例如1150)的碰撞、地震或其他自然灾害,这可能导致机器人(例如1150)和/或相机(例如1170)发生变化。在一些情况下,触发条件可以包括在较早的校准操作(诸如用于确定步骤1201的校准信息的校准操作)之后经过了具体时间段。在这样的例子中,较早的校准操作可以是第一校准操作,而步骤1215的校准操作可以是第二校准操作。
各个实施例的附加讨论
实施例A1涉及一种机器人控制系统,包括通信接口,所述通信接口被配置成与具有基座和上面布置有验证符号的机械臂的机器人通信,并与具有相机视野的相机通信。机器人控制系统还包括控制电路,所述控制电路被配置成进行第一相机校准(或者,更一般地,校准操作),以确定与相机关联的相机校准信息(或者,更一般地,与机器人控制系统关联的校准信息)。所述控制电路被进一步配置成:a)通过经通信接口向机器人输出第一运动命令,控制机械臂在第一相机校准期间或之后将验证符号移动到在相机视野内的位置,该位置是用于第一相机校准的验证的一个或多个参考位置中的参考位置,b)经通信接口,从相机接收验证符号的图像,其中相机被配置成拍摄在所述参考位置处的验证符号的图像,所述图像是验证用参考图像,c)确定验证用参考图像坐标,所述参考图像坐标是在参考图像中出现验证符号之处的坐标;d)通过经通信接口向机器人输出基于相机校准信息的第二运动命令,基于相机校准信息,控制机械臂的运动,以进行机器人操作;e)检测机器人操作期间的空闲期;f)通过经通信接口向机器人输出第三运动命令,控制机械臂在空闲期内把验证符号至少移动到所述参考位置;g)在空闲期内,经通信接口从相机接收验证符号的附加图像,其中相机被配置成拍摄至少在所述参考位置处的验证符号的附加图像,所述附加图像是验证用验证图像;h)确定用于验证的验证图像坐标,该验证图像坐标是在验证图像中出现验证符号之处的坐标;i)基于参考图像坐标和验证图像坐标之间的偏差量,确定偏差参数值,参考图像坐标和验证图像坐标二者与参考位置关联,其中偏差参数值指示自第一相机校准以来的相机的变化,或者自第一相机校准以来相机和机器人之间的关系的变化,j)判定偏差参数值是否超过规定阈值,和k)响应于偏差参数值超过规定阈值的判定,进行第二相机校准,以确定更新的相机校准信息(或者,更一般地,进行第二校准操作,以确定更新的校准信息)。
实施例A2包括实施例A1的机器人控制系统,其中控制电路被配置成响应于偏差参数值未超过规定阈值的判定,通过经通信接口向机器人输出第四运动命令,控制机器人在空闲期之后继续进行机器人操作,而不进行附加相机校准。
实施例A3包括实施例A1或A2的机器人控制系统,其中所述一个或多个参考位置是分别对应于多个参考图像坐标的多个参考位置,所述参考图像坐标是多个参考图像坐标之一。在本实施例中,控制电路还被配置成确定分别对应于多个参考位置的多个验证图像坐标,其中所述验证图像坐标是多个验证图像坐标之一,其中所述偏差参数值基于多个参考位置的多个参考图像坐标和多个验证图像坐标之间的各个偏差量,其中各个偏差量中的每个偏差量是:(a)与多个参考位置中的相应参考位置对应的参考图像坐标,与(b)对应于同一参考位置的验证图像坐标之间的偏差量。
实施例A4包括实施例A3的机器人控制系统,其中多个验证图像坐标是在多个验证图像中出现验证符号之处的各个坐标,所述验证图像是多个验证图像之一,其中控制电路被配置成控制相机在所述空闲期内拍摄所有多个验证图像。
实施例A5包括实施例A3的机器人控制系统,其中多个验证图像坐标是在多个验证图像中出现验证符号之处的各个坐标,所述验证图像是多个验证图像之一,其中控制电路被配置成控制相机在不同的空闲期内拍摄多个验证图像,所述空闲期是不同的空闲期之一。
实施例A6包括实施例A1-A5任意之一的机器人控制系统,其中验证符号包括具有第一种颜色的第一区域和具有第二种颜色的第二区域,其中作为规定的比率,定义第一区域的面积与第二区域的面积之比,并保存在机器人控制系统的存储设备上。
实施例A7包括实施例A6的机器人控制系统,其中控制电路被配置成基于规定的比率,识别参考图像或验证图像中的验证符号。
实施例A8包括实施例A7的机器人控制系统,其中机械臂上设置有校准图案,其中参考图像包括验证符号和校准图案,其中控制电路被配置成通过判定参考图像的一部分是否包括具有第一种颜色的第一图像区域和包括具有第二种颜色的第二图像区域,以及第一图像区域的面积与第二图像区域的面积之比是否等于规定的比率,来判定参考图像的所述部分是验证符号还是校准图案。
实施例A9包括实施例A1-A8任意之一的机器人控制系统,其中验证符号包括彼此同心的第一形状和第二形状,其中第一形状和第二形状的相应中心实质上在同一位置。
实施例A10包括实施例A9的机器人控制系统,其中控制电路被配置成通过以下操作,确定参考图像坐标:a)确定参考图像中第一形状的中心的第一坐标;b)确定参考图像中第二形状的中心的第二坐标;和c)把参考图像坐标确定为参考图像中第一坐标和第二坐标的平均值。在本实施例中,控制电路被配置成通过以下操作,确定验证图像坐标:d)确定验证图像中第一形状的中心的第一坐标;e)确定验证图像中第二形状的中心的第二坐标;和f)把验证图像坐标确定为验证图像中第一坐标和第二坐标的平均值。
实施例A11包括实施例A1-A10任意之一的机器人控制系统,其中控制电路被配置成通过识别圆环,来识别参考图像或验证图像中的验证符号,所述验证符号形状为圆环。
实施例A12包括实施例A1-A11任意之一的机器人控制系统,其中控制电路被配置成确定机器人所在环境的温度;和基于测量的温度,调整规定阈值或相机校准信息至少之一。
实施例A13包括实施例A12的机器人控制系统,其中控制电路被配置成通过以下操作,基于温度来调整规定阈值:当温度在规定范围之外时,把规定阈值设定成具有第一值;和当温度在规定范围之内时,把所述阈值设定成具有比第一值低的第二值。
实施例A14包括实施例A1-A13任意之一的机器人控制系统,其中控制电路被配置成使验证符号通过机械臂被移动到的一个或多个参考位置包括设置在相对于相机凹陷的球体的表面上的多个参考位置。
实施例A15包括实施例A14的机器人控制系统,其中控制电路还被配置成控制机械臂把验证符号移动成与在多个参考位置中的每个参考位置处的球体的表面相切。
实施例A16包括实施例A1-A15任意之一的机器人控制系统,其中控制电路被配置成控制机械臂移动验证符号,以在验证符号被移动到参考位置时直接面向相机。
实施例A17包括实施例A1-A16任意之一的机器人控制系统,其中控制电路被配置成通过检测机器人在机器人操作期间不进行机器人作业的时间段,来检测机器人操作的空闲期。
实施例A18包括实施例A17的机器人控制系统,其中控制电路被配置成控制机械臂与机械臂可触及的传送带上的物体交互,其中控制电路被配置成通过检测传送带上没有物体,或者检测机器人与传送带上的最近物体之间的距离超过规定距离阈值,来检测空闲期。
实施例B1涉及一种计算系统,包括通信接口和控制电路,所述通信接口被配置成与以下各项进行通信:(i)具有相机视野的相机;(ii)具有机械臂的机器人,所述机械臂具有可移动地相互附接的多个臂部分并且具有布置在所述多个臂部分中的相应臂部分上的一组验证符号。当所述机械臂在相机视野内时,所述控制电路被配置成执行一种方法,所述方法包括:输出用于控制所述机械臂的运动以进行机器人操作的运动命令,其中所述运动命令基于校准信息;确定一组参考图像坐标,所述一组参考图像坐标是在参考图像中出现所述一组验证符号之处的相应坐标,其中所述参考图像是用于表示所述一组验证符号的图像,并且是在第一时间段期间当机械臂处于第一姿势时由相机生成的;在第一时间段之后的第二时间段期间,输出用于控制机械臂移动到第一姿势的附加运动命令;接收验证图像,所述验证图像是用于表示所述一组验证符号的附加图像,并且是当机械臂由于附加运动命令而已经被移动到第一姿势时由相机生成的;确定一组验证图像坐标,所述一组验证图像坐标是在验证图像中出现所述一组验证符号之处的相应坐标;确定基于所述一组参考图像坐标与所述一组验证图像坐标之间的相应偏差量的一组相应偏差参数值,其中所述一组相应偏差参数值与所述一组验证符号关联;确定所述一组相应偏差参数值中的至少一个偏差参数值是否超过规定的偏差阈值;和响应于确定所述一组相应偏差参数值的至少一个偏差参数值超过规定的偏差阈值,进行以下操作中的至少一个:输出所述一组相应偏差参数值中的至少一个超过规定的偏差阈值的通知,或进行校准操作以确定更新的校准信息。控制电路可以通过例如执行非临时性计算机可读介质上的指令来执行该方法。
实施例B2包括实施例B1的计算系统,其中,第一姿势与在第一时间段期间输出的第一附加运动命令关联,所述第一附加运动命令具有用于控制机械臂移动至第一姿势的一个或多个致动参数值,其中所述参考图像是当机械臂由于第一附加运动命令而处于第一姿势时由相机生成的。此外,在该实施例中,在第二时间段期间输出的附加运动命令是第二附加运动命令,并且还包括所述一个或多个致动参数值。
实施例B3包括实施例B2的计算系统,其中所述一组验证符号中的每个验证符号具有圆形形状,并且其中第一附加运动命令和第二附加运动命令的所述一个或多个致动参数值使所述一组验证符号以一定方式被定位,使得所述一组验证符号在参考图像中和验证图像中不呈现偏心,或呈现小于规定的偏心阈值的相应偏心量。
实施例B4包括实施例B1-B3任意之一的计算系统,其中控制电路被配置成确定附加运动命令的一个或多个致动参数值,所述附加运动命令使所述一组验证符号中的每个验证符号被到移动直接面向相机。
实施例B5包括实施例B4的计算系统,其中所述一个或多个致动参数值使所述一组验证符号与相对于相机凹陷的一个或多个虚拟球体相切。
实施例B6包括实施例B1-B5任意之一的计算系统,其中当所述一组验证符号中的至少一个验证符号的形状为圆环时,所述控制电路被配置成通过识别该圆环来识别参考图像和验证图像中的该至少一个验证符号。
实施例B7包括实施例B6的计算系统,其中,当所述一组验证符号的形状为具有相应不同大小的相应圆环时,所述控制电路被配置成基于形成所述至少一个验证符号的相应圆环的大小来识别所述至少一个验证符号。
实施例B8包括实施例B1-B7任意之一的的计算系统,其中控制电路被配置成基于描述机械臂的几何形状的规定的模型来识别参考图像中的所述一组验证符号中的至少一个验证符号。
实施例B9包括实施例B8的计算系统,其中控制电路被配置成基于所述模型确定所述参考图像内预期出现所述至少一个验证符号的区域,并在所述参考图像的所述区域内搜索所述至少一个验证符号。
实施例B10包括实施例B1-B9任意之一的的计算系统,其中控制电路被配置成基于所述一组相应偏差参数值之间的比较来确定使所述至少一个偏差参数值超过规定的偏差阈值的校准误差的类型,其中所述校准误差的类型指示校准信息的精度损失是否代表机器人的变化,或者精度损失是否代表相机的变化。
实施例B11包括实施例B10的计算系统,其中控制电路被配置成确定所述一组相应偏差参数值是否全都超过规定的偏差阈值以及所述一组相应偏差参数值是否彼此相差超过规定的均匀度阈值。该实施例中的控制电路还被配置成响应于确定所述一组相应偏差参数值全都超过规定的偏差阈值并且彼此相差不超过规定的均匀度阈值,来确定所述校准误差的类型是代表相机的变化的校准误差。
实施例B12包括实施例B11的计算系统,其中,控制电路还被配置成响应于确定所述一组相应偏差参数值中的一个或多个偏差参数值不超过规定的偏差阈值,或者所述一组相应偏差组参数值彼此相差超过规定的均匀度阈值,来确定所述校准误差的类型是代表机器人的变化的校准误差。
实施例B13包括实施例B1-B12任意之一的的计算系统。在该实施例中,校准信息与第一校准操作关联,并且用于生成更新的校准信息的校准操作是在第一校准操作之后的第二校准操作,其中控制电路被配置成响应于规定的触发条件而输出附加运动命令并输出用于接收验证图像的相机命令。规定的触发条件包括以下各项中的至少一项:自第一次校准操作以来经过的规定时间段,或者所述计算系统未计划并且导致机器人或相机变化的事件。
实施例B14包括实施例B1-B13任意之一的计算系统,其中,当所述多个机械臂部分被布置为从所述机器人的基座到所述机器人末端执行器的一系列臂部分时,所述控制电路被配置成:确定所述一组验证符号中的第一验证符号的偏差参数值是否超过规定的偏差阈值;从所述多个臂部分中识别出上面布置有第一验证符号的第一臂部分;和响应于确定第一验证符号的偏差参数值不超过规定的偏差阈值,确定校准信息对于第一臂部分和所述一系列臂部分中在第一臂部分之前的至少一个附加臂部分是精确的。
实施例B15包括实施例B1-B14任意之一的的计算系统,其中,当所述计算系统与用于机器人操作的传送带通信时,所述控制电路被配置成响应于确定至少一个偏差参数值超过规定的偏差阈值,使传送带停止。
实施例B16包括实施例B1-B15任意之一的的计算系统,其中,所述参考图像是与机械臂的第一姿势关联的第一参考图像,其中,所述验证图像是与第一姿势关联的第一验证图像,其中所述一组参考图像坐标是与第一姿势关联的第一组参考图像坐标,并且所述一组验证图像坐标是与第一姿势关联的第一组验证图像坐标。在该实施例中,控制电路被配置成:确定第二组参考图像坐标,所述第二组参考图像坐标是在第二参考图像中出现所述一组验证符号之处的相应坐标,其中,所述第二参考图像是在机械臂处于第二姿势时由相机生成的;在生成第二参考图像之后,输出用于控制机械臂将所述机械臂移动到第二姿势的进一步的运动命令;接收第二验证图像,所述第二验证图像也表示所述一组验证符号,并且是在当机械臂由于所述进一步的运动命令而已经被移动至第二姿势时由相机生成的;和确定第二组验证图像坐标,所述第二组验证图像坐标是在第二验证图像中出现所述一组验证符号之处的相应坐标。在该实施例中,所述一组偏差参数值还基于第二组参考图像坐标与第二组验证图像坐标之间的偏差量。
尽管上面说明了各个实施例,不过应明白的是它们只是作为本发明的说明和例子给出的,而不是对本发明的限制。对本领域的技术人员来说,显然可以进行形式和细节方面的各种变化,而不脱离本发明的精神和范围。本发明的广度和范围不应由任意上述例证实施例限制,而应仅按照所附的权利要求书及其同等物来限定。还要明白的是本文中讨论的各个实施例的各个特征,以及本文中的引用的各个参考文献的各个特征可以与任何其他实施例的特征组合使用。本文中讨论的所有专利和出版物都通过引用,完整地包含在本文中。
Claims (20)
1.一种计算系统,包括:
通信接口,所述通信接口被配置成与以下各项进行通信:(i)具有相机视野的相机;和(ii)具有机械臂的机器人,所述机械臂带有可移动地相互附接的多个臂部分并且带有布置在所述多个臂部分中的相应臂部分上的一组验证符号;和
控制电路,当所述机械臂在所述相机视野内时,所述控制电路被配置成:
输出用于控制所述机械臂的运动以进行机器人操作的运动命令,其中所述运动命令基于校准信息;
确定一组参考图像坐标,所述一组参考图像坐标是在参考图像中出现所述一组验证符号之处的相应坐标,其中所述参考图像是用于表示所述一组验证符号的图像,并且是在第一时间段期间当机械臂处于第一姿势时由所述相机生成的;
在第一时间段之后的第二时间段期间,输出用于控制所述机械臂移动到第一姿势的附加运动命令;
接收验证图像,所述验证图像是用于表示所述一组验证符号的附加图像,并且是当所述机械臂由于所述附加运动命令而已经被移动到第一姿势时由所述相机生成的;
确定一组验证图像坐标,所述一组验证图像坐标是在所述验证图像中出现所述一组验证符号之处的相应坐标;
确定基于所述一组参考图像坐标与所述一组验证图像坐标之间的相应偏差量的一组相应偏差参数值,其中所述一组相应偏差参数值与所述一组验证符号关联,
确定所述一组相应偏差参数值中的至少一个偏差参数值是否超过规定的偏差阈值,和
基于所述一组相应偏差参数值之间的比较并且响应于确定所述一组相应偏差参数值中的至少一个偏差参数值超过规定的偏差阈值,确定使所述至少一个偏差参数值超过规定的偏差阈值的校准误差的类型,其中所述校准误差的类型指示校准信息的精度损失是否代表所述机器人的变化,或者所述精度损失是否代表所述相机的变化。
2.根据权利要求1所述的计算系统,其中,所述控制电路还被配置成:响应于确定所述一组相应偏差参数值中的至少一个偏差参数值超过规定的偏差阈值,进行以下操作中的至少一个:输出所述一组相应偏差参数值中的至少一个超过规定的偏差阈值的通知,或进行校准操作以确定更新的校准信息。
3.根据权利要求1所述的计算系统,其中,第一姿势与在第一时间段期间输出的第一附加运动命令关联,所述第一附加运动命令具有用于控制所述机械臂移动至第一姿势的一个或多个致动参数值,其中所述参考图像是当所述机械臂由于第一附加运动命令而处于第一姿势时由相机生成的,并且
其中,在第二时间段期间输出的所述附加运动命令是第二附加运动命令,并且也包括所述一个或多个致动参数值。
4.根据权利要求3所述的计算系统,其中,所述一组验证符号中的每个验证符号具有圆形形状,并且其中第一附加运动命令和第二附加运动命令的所述一个或多个致动参数值使所述一组验证符号以一定方式被定位,使得所述一组验证符号在所述参考图像中和所述验证图像中不呈现偏心,或呈现小于规定的偏心阈值的相应偏心量。
5.根据权利要求1所述的计算系统,其中,所述控制电路被配置成确定所述附加运动命令的一个或多个致动参数值,所述附加运动命令使所述一组验证符号中的每个验证符号被到移动为直接面向所述相机。
6.根据权利要求5所述的计算系统,其中,所述一个或多个致动参数值使所述一组验证符号与相对于所述相机凹陷的一个或多个虚拟球体相切。
7.根据权利要求1所述的计算系统,其中,当所述一组验证符号中的至少一个验证符号的形状为圆环时,所述控制电路被配置成通过识别所述圆环来识别所述参考图像和所述验证图像中的所述至少一个验证符号。
8.根据权利要求7所述的计算系统,其中,当所述一组验证符号的形状为具有相应不同大小的相应圆环时,所述控制电路被配置成基于形成所述至少一个验证符号的相应圆环的大小来识别所述至少一个验证符号。
9.根据权利要求1所述的计算系统,其中,所述控制电路被配置成基于描述所述机械臂的几何形状的规定的模型来识别所述参考图像中的所述一组验证符号中的至少一个验证符号。
10.根据权利要求9所述的计算系统,其中,所述控制电路被配置成
基于所述模型,确定所述参考图像内预期出现所述至少一个验证符号的区域,和
在所述参考图像的所述区域内搜索所述至少一个验证符号。
11.根据权利要求1所述的计算系统,其中,所述控制电路被配置成确定所述一组相应偏差参数值是否全都超过规定的偏差阈值,以及所述一组相应偏差参数是否彼此相差超过规定的均匀度阈值,并且
响应于确定所述一组相应偏差参数值全都超过规定的偏差阈值并且彼此相差超过规定的均匀度阈值,确定所述校准误差的类型是代表所述相机的变化的校准误差。
12.根据权利要求11所述的计算系统,其中,所述控制电路还被配置成响应于确定所述一组相应偏差参数值中的一个或多个偏差参数值不超过规定的偏差阈值,或者所述一组相应偏差参数值彼此相差不超过规定的均匀度阈值,确定所述校准误差的类型是代表所述机器人的变化的校准误差。
13.根据权利要求2所述的计算系统,其中,所述校准信息与第一校准操作关联,并且用于生成更新的校准信息的校准操作是在第一校准操作之后的第二校准操作,其中所述控制电路被配置成响应于规定的触发条件而输出所述附加运动命令并输出用于接收所述验证图像的相机命令,其中所述规定的触发条件包括以下各项中的至少一项:自第一校准操作以来经过的规定时间段,或者所述计算系统未计划的导致所述机器人或所述相机发生变化的事件。
14.根据权利要求1所述的计算系统,其中,当所述计算系统与用于所述机器人操作的传送带通信时,所述控制电路被配置成响应于确定所述至少一个偏差参数值超过规定的偏差阈值,使所述传送带停止。
15.根据权利要求1所述的计算系统,其中,所述参考图像是与所述机械臂的第一姿势关联的第一参考图像,其中所述验证图像是与第一姿势关联的第一验证图像,其中所述一组参考图像坐标是与第一姿势关联的第一组参考图像坐标,并且所述一组验证图像坐标是与第一姿势关联的第一组验证图像坐标,其中,所述控制电路被配置成:
确定第二组参考图像坐标,所述第二组参考图像坐标是在第二参考图像中出现所述一组验证符号之处的相应坐标,其中,所述第二参考图像是在所述机械臂处于第二姿势时由所述相机生成的;
在生成第二参考图像之后,输出用于控制所述机械臂以将所述机械臂移动到第二姿势的进一步的运动命令;
接收第二验证图像,所述第二验证图像也表示所述一组验证符号,并且是在所述机械臂由于所述进一步的运动命令而已经被移动至第二姿势时由所述相机生成的;
确定第二组验证图像坐标,所述第二组验证图像坐标是在第二验证图像中出现所述一组验证符号之处的相应坐标,
其中,所述一组相应偏差参数值还基于第二组参考图像坐标与第二组验证图像坐标之间的相应偏差量。
16.一种计算系统,包括:
通信接口,所述通信接口被配置成与以下各项进行通信:(i)具有相机视野的相机;和(ii)具有机械臂的机器人,所述机械臂带有可移动地相互附接的并且被布置成从基座到机器人末端执行器的一系列臂部分的多个臂部分,并且带有布置在所述多个臂部分中的相应臂部分上的一组验证符号;和
控制电路,当所述机械臂在所述相机视野内时,所述控制电路被配置成:
输出用于控制所述机械臂的运动以进行机器人操作的运动命令,其中所述运动命令基于校准信息;
确定一组参考图像坐标,所述一组参考图像坐标是在参考图像中出现所述一组验证符号之处的相应坐标,其中所述参考图像是用于表示所述一组验证符号的图像,并且是在第一时间段期间当机械臂处于第一姿势时由所述相机生成的;
在第一时间段之后的第二时间段期间,输出用于控制所述机械臂移动到第一姿势的附加运动命令;
接收验证图像,所述验证图像是用于表示所述一组验证符号的附加图像,并且是当所述机械臂由于所述附加运动命令而已经被移动到第一姿势时由所述相机生成的;
确定一组验证图像坐标,所述一组验证图像坐标是在所述验证图像中出现所述一组验证符号之处的相应坐标;
确定基于所述一组参考图像坐标与所述一组验证图像坐标之间的相应偏差量的一组相应偏差参数值,其中所述一组相应偏差参数值与所述一组验证符号关联;
确定所述一组验证符号中的第一验证符号的偏差参数值是否超过规定的偏差阈值;
从所述多个臂部分中识别出上面布置有第一验证符号的第一臂部分;和
响应于确定第一验证符号的偏差参数值不超过规定的偏差阈值,确定所述校准信息对于第一臂部分和至少一个上游臂部分是精确的,所述至少一个上游臂部分是所述一系列臂部分中在第一臂部分之前的附加臂部分。
17.一种存储有指令的非临时性计算机可读介质,所述指令当由计算系统的控制电路执行时,使所述控制电路:
输出基于校准信息的运动命令,其中所述计算系统被配置成与以下各项进行通信:(i)具有相机视野的相机;和(ii)具有机械臂的机器人,所述机械臂包括可移动地相互附接的多个臂部分并且包括布置在所述多个臂部分中的相应臂部分上的一组验证符号,并且其中,所述运动命令用于控制所述机械臂的运动以进行机器人操作;
确定一组参考图像坐标,所述一组参考图像坐标是在参考图像中出现所述一组验证符号之处的相应坐标,其中所述参考图像是用于表示所述一组验证符号的图像,并且是在第一时间段期间当所述机械臂处于第一姿势时由所述相机生成的;
在第一时间段之后的第二时间段期间,输出用于控制所述机械臂移动到第一姿势的附加运动命令;
接收验证图像,所述验证图像是用于表示所述一组验证符号的附加图像,并且是当所述机械臂由于所述附加运动命令而已经被移动到第一姿势时由所述相机生成的;
确定一组验证图像坐标,所述一组验证图像坐标是在所述验证图像中出现所述一组验证符号之处的相应坐标;
确定基于所述一组参考图像坐标与所述一组验证图像坐标之间的相应偏差量的一组相应偏差参数值,其中所述一组相应偏差参数值与所述一组验证符号关联;
确定所述一组相应偏差参数值中的至少一个偏差参数值是否超过规定的偏差阈值;和
基于所述一组相应偏差参数值之间的比较并且响应于确定所述一组相应偏差参数值的至少一个偏差参数值超过规定的偏差阈值,确定使所述至少一个偏差参数值超过规定的偏差阈值的校准误差的类型,其中所述校准误差的类型指示校准信息的精度损失是否代表所述机器人的变化,或者所述精度损失是否代表所述相机的变化。
18.一种通过计算系统执行的方法,包括:
通过所述计算系统,输出基于校准信息的运动命令,其中所述计算系统被配置成与以下各项进行通信:(i)具有相机视野的相机;和(ii)具有机械臂的机器人,所述机械臂带有可移动地相互附接的多个臂部分并且带有布置在所述多个臂部分中的相应臂部分上的一组验证符号,并且其中,所述运动命令用于控制所述机械臂的运动以进行机器人操作;
通过所述计算系统,确定一组参考图像坐标,所述一组参考图像坐标是在参考图像中出现所述一组验证符号之处的相应坐标,其中所述参考图像是用于表示所述一组验证符号的图像,并且是在第一时间段期间当所述机械臂处于第一姿势时由所述相机生成的;
通过所述计算系统,在第一时间段之后的第二时间段期间,输出用于控制所述机械臂移动到第一姿势的附加运动命令;
通过所述计算系统,接收验证图像,其中所述验证图像是用于表示所述一组验证符号的附加图像,并且是当所述机械臂由于所述附加运动命令而已经被移动到第一姿势时由所述相机生成的;
通过所述计算系统,确定一组验证图像坐标,所述一组验证图像坐标是在所述验证图像中出现所述一组验证符号之处的相应坐标;
通过所述计算系统,确定基于所述一组参考图像坐标与所述一组验证图像坐标之间的相应偏差量的一组相应偏差参数值,其中所述一组相应偏差参数值与所述一组验证符号关联;
通过所述计算系统,确定所述一组相应偏差参数值中的至少一个偏差参数值超过规定的偏差阈值;和
基于所述一组相应偏差参数值之间的比较并且响应于确定所述一组相应偏差参数值中的至少一个偏差参数值超过规定的偏差阈值,确定使所述至少一个偏差参数值超过规定的偏差阈值的校准误差的类型,其中所述校准误差的类型指示校准信息的精度损失是否代表所述机器人的变化,或者所述精度损失是否代表所述相机的变化。
19.一种存储有指令的非临时性计算机可读介质,所述指令当由计算系统的控制电路执行时,使所述控制电路:
输出基于校准信息的运动命令,其中所述计算系统被配置成与以下各项进行通信:(i)具有相机视野的相机;和(ii)具有机械臂的机器人,所述机械臂带有可移动地相互附接的并且被布置成从基座到机器人末端执行器的一系列臂部分的多个臂部分,并且带有布置在所述多个臂部分中的相应臂部分上的一组验证符号,并且其中,所述运动命令用于控制所述机械臂的运动以进行机器人操作;
确定一组参考图像坐标,所述一组参考图像坐标是在参考图像中出现所述一组验证符号之处的相应坐标,其中所述参考图像是用于表示所述一组验证符号的图像,并且是在第一时间段期间当所述机械臂处于第一姿势时由所述相机生成的;
在第一时间段之后的第二时间段期间,输出用于控制所述机械臂移动到第一姿势的附加运动命令;
接收验证图像,所述验证图像是用于表示所述一组验证符号的附加图像,并且是当所述机械臂由于所述附加运动命令而已经被移动到第一姿势时由所述相机生成的;
确定一组验证图像坐标,所述一组验证图像坐标是在所述验证图像中出现所述一组验证符号之处的相应坐标;
确定基于所述一组参考图像坐标与所述一组验证图像坐标之间的相应偏差量的一组相应偏差参数值,其中所述一组相应偏差参数值与所述一组验证符号关联;
确定所述一组验证符号中的第一验证符号的偏差参数值是否超过规定的偏差阈值;
从所述多个臂部分中识别出上面布置有第一验证符号的第一臂部分;和
响应于确定第一验证符号的偏差参数值不超过规定的偏差阈值,确定所述校准信息对于第一臂部分和至少一个上游臂部分是精确的,所述至少一个上游臂部分是所述一系列臂部分中在第一臂部分之前的附加臂部分。
20.一种通过计算系统执行的方法,包括:
通过所述计算系统,输出基于校准信息的运动命令,其中所述计算系统被配置成与以下各项进行通信:(i)具有相机视野的相机;和(ii)具有机械臂的机器人,所述机械臂带有可移动地相互附接的并且被布置成从基座到机器人末端执行器的一系列臂部分的多个臂部分,并且带有布置在所述多个臂部分中的相应臂部分上的一组验证符号,并且其中,所述运动命令用于控制所述机械臂的运动以进行机器人操作;
通过所述计算系统,确定一组参考图像坐标,所述一组参考图像坐标是在参考图像中出现所述一组验证符号之处的相应坐标,其中所述参考图像是用于表示所述一组验证符号的图像,并且是在第一时间段期间当所述机械臂处于第一姿势时由所述相机生成的;
在第一时间段之后的第二时间段期间,输出用于控制所述机械臂移动到第一姿势的附加运动命令;
接收验证图像,其中所述验证图像是用于表示所述一组验证符号的附加图像,并且是当所述机械臂由于所述附加运动命令而已经被移动到第一姿势时由所述相机生成的;
确定一组验证图像坐标,所述一组验证图像坐标是在所述验证图像中出现所述一组验证符号之处的相应坐标;
确定基于所述一组参考图像坐标与所述一组验证图像坐标之间的相应偏差量的一组相应偏差参数值,其中所述一组相应偏差参数值与所述一组验证符号关联;
确定所述一组验证符号中的第一验证符号的偏差参数值是否超过规定的偏差阈值;
从所述多个臂部分中识别出上面布置有第一验证符号的第一臂部分;和
响应于确定第一验证符号的偏差参数值不超过规定的偏差阈值,确定所述校准信息对于第一臂部分和至少一个上游臂部分是精确的,所述至少一个上游臂部分是所述一系列臂部分中在第一臂部分之前的附加臂部分。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/369,630 US10399227B1 (en) | 2019-03-29 | 2019-03-29 | Method and control system for verifying and updating camera calibration for robot control |
US201962916798P | 2019-10-18 | 2019-10-18 | |
US62/916,798 | 2019-10-18 | ||
US16/864,071 US10906184B2 (en) | 2019-03-29 | 2020-04-30 | Method and control system for verifying and updating camera calibration for robot control |
US16/864,071 | 2020-04-30 | ||
CN202010646706.0A CN112677146A (zh) | 2019-10-18 | 2020-07-07 | 验证和更新机器人控制用校准信息的方法和控制系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010646706.0A Division CN112677146A (zh) | 2019-03-29 | 2020-07-07 | 验证和更新机器人控制用校准信息的方法和控制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111890371A CN111890371A (zh) | 2020-11-06 |
CN111890371B true CN111890371B (zh) | 2021-05-04 |
Family
ID=73264228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010831931.1A Active CN111890371B (zh) | 2019-03-29 | 2020-07-07 | 验证和更新机器人控制用校准信息的方法和控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111890371B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113043282B (zh) * | 2019-12-12 | 2022-03-29 | 牧今科技 | 用于物体检测或机器人交互规划的方法和系统 |
CN116038707B (zh) * | 2023-01-30 | 2023-08-04 | 深圳技术大学 | 一种基于数据驱动的智能故障自动诊断系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63163907A (ja) * | 1986-12-26 | 1988-07-07 | Toyota Motor Corp | 知能ロボツトにおける座標合わせ方法 |
JPH0460817A (ja) * | 1990-06-29 | 1992-02-26 | Fanuc Ltd | カメラの位置ずれ検出方法 |
CN103538061A (zh) * | 2012-07-11 | 2014-01-29 | 精工爱普生株式会社 | 机器人系统、机器人、机器人控制装置及方法以及程序 |
JP2018001333A (ja) * | 2016-06-30 | 2018-01-11 | セイコーエプソン株式会社 | 校正ボード、ロボット、及び検出方法 |
CN108621125A (zh) * | 2017-03-22 | 2018-10-09 | 株式会社东芝 | 物体操纵装置及其校准方法 |
CN110103219A (zh) * | 2019-03-07 | 2019-08-09 | 牧今科技 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN110193832A (zh) * | 2019-03-29 | 2019-09-03 | 牧今科技 | 验证和更新机器人控制用相机校准的方法和控制系统 |
CN110253629A (zh) * | 2019-04-12 | 2019-09-20 | 牧今科技 | 用于更新用于机器人控制的相机校准的方法和控制系统 |
-
2020
- 2020-07-07 CN CN202010831931.1A patent/CN111890371B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63163907A (ja) * | 1986-12-26 | 1988-07-07 | Toyota Motor Corp | 知能ロボツトにおける座標合わせ方法 |
JPH0460817A (ja) * | 1990-06-29 | 1992-02-26 | Fanuc Ltd | カメラの位置ずれ検出方法 |
CN103538061A (zh) * | 2012-07-11 | 2014-01-29 | 精工爱普生株式会社 | 机器人系统、机器人、机器人控制装置及方法以及程序 |
JP2018001333A (ja) * | 2016-06-30 | 2018-01-11 | セイコーエプソン株式会社 | 校正ボード、ロボット、及び検出方法 |
CN108621125A (zh) * | 2017-03-22 | 2018-10-09 | 株式会社东芝 | 物体操纵装置及其校准方法 |
CN110103219A (zh) * | 2019-03-07 | 2019-08-09 | 牧今科技 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN110193832A (zh) * | 2019-03-29 | 2019-09-03 | 牧今科技 | 验证和更新机器人控制用相机校准的方法和控制系统 |
CN110253629A (zh) * | 2019-04-12 | 2019-09-20 | 牧今科技 | 用于更新用于机器人控制的相机校准的方法和控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111890371A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11883964B2 (en) | Method and control system for verifying and updating camera calibration for robot control | |
CN111230865B (zh) | 验证和更新机器人控制用相机校准的方法和控制系统 | |
CN112677146A (zh) | 验证和更新机器人控制用校准信息的方法和控制系统 | |
JP6822719B2 (ja) | 自動パッケージスキャンおよび登録メカニズムを備えたロボットシステム、ならびにその動作方法 | |
CN112091970B (zh) | 具有增强的扫描机制的机器人系统 | |
US20230182308A1 (en) | Method and control system for and updating camera calibration for robot control | |
TWI615691B (zh) | 防碰撞系統及防碰撞方法 | |
CN111890371B (zh) | 验证和更新机器人控制用校准信息的方法和控制系统 | |
CN115972192A (zh) | 具有可变空间分辨率的3d计算机视觉系统 | |
US20240001557A1 (en) | Robot and robot hand-eye calibrating method | |
TW202201946A (zh) | 攝影系統及機器人系統 | |
US20240246237A1 (en) | Robot control device, robot control system, and robot control method | |
JP7583942B2 (ja) | ロボット制御装置、ロボット制御システム、及びロボット制御方法 | |
US20240210542A1 (en) | Methods and apparatus for lidar alignment and calibration | |
TW201927498A (zh) | 監視方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |