CN110103219A - 执行自动相机校准以进行机器人控制的方法和系统 - Google Patents
执行自动相机校准以进行机器人控制的方法和系统 Download PDFInfo
- Publication number
- CN110103219A CN110103219A CN201910396865.7A CN201910396865A CN110103219A CN 110103219 A CN110103219 A CN 110103219A CN 201910396865 A CN201910396865 A CN 201910396865A CN 110103219 A CN110103219 A CN 110103219A
- Authority
- CN
- China
- Prior art keywords
- camera
- estimation
- robot
- pattern
- image
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title abstract description 45
- 230000009466 transformation Effects 0.000 claims abstract description 146
- 230000001131 transforming effect Effects 0.000 claims abstract description 134
- 238000004891 communication Methods 0.000 claims description 169
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 claims description 40
- 230000003068 static effect Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 13
- 238000009826 distribution Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 285
- 239000011159 matrix material Substances 0.000 description 72
- 238000004422 calculation algorithm Methods 0.000 description 30
- 230000000007 visual effect Effects 0.000 description 26
- 238000003384 imaging method Methods 0.000 description 24
- 230000001052 transient effect Effects 0.000 description 16
- 238000004088 simulation Methods 0.000 description 12
- 239000007787 solid Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000013519 translation Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- 230000036544 posture Effects 0.000 description 6
- 238000005452 bending Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000005611 electricity Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 235000008434 ginseng Nutrition 0.000 description 3
- 102000002274 Matrix Metalloproteinases Human genes 0.000 description 2
- 108010000684 Matrix Metalloproteinases Proteins 0.000 description 2
- 241000228740 Procrustes Species 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 229920000049 Carbon (fiber) Polymers 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004917 carbon fiber Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 235000019988 mead Nutrition 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- VNWKTOKETHGBQD-UHFFFAOYSA-N methane Chemical compound C VNWKTOKETHGBQD-UHFFFAOYSA-N 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- HOWHQWFXSLOJEF-MGZLOUMQSA-N systemin Chemical compound NCCCC[C@H](N)C(=O)N[C@@H](CCSC)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](CC(O)=O)C(=O)OC(=O)[C@@H]1CCCN1C(=O)[C@H]1N(C(=O)[C@H](CC(O)=O)NC(=O)[C@H](CCCN=C(N)N)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CO)NC(=O)[C@H]2N(CCC2)C(=O)[C@H]2N(CCC2)C(=O)[C@H](CCCCN)NC(=O)[C@H](CO)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@@H](NC(=O)[C@H](C)N)C(C)C)CCC1 HOWHQWFXSLOJEF-MGZLOUMQSA-N 0.000 description 1
- 108010050014 systemin Proteins 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/37—Measurements
- G05B2219/37015—Adaptive online camera, vision calibration
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39008—Fixed camera detects reference pattern held by end effector
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39016—Simultaneous calibration of manipulator and camera
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45083—Manipulators, robot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
- G06T2207/30208—Marker matrix
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Robotics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mechanical Engineering (AREA)
- Geometry (AREA)
- Manipulator (AREA)
- Image Analysis (AREA)
- Studio Devices (AREA)
- Numerical Control (AREA)
Abstract
提出了执行自动相机校准以进行机器人控制的方法和系统。机器人控制系统包括控制电路,控制电路被配置为确定适合于相机视场内的假想立方体的所有角落位置,并且确定分布在假想立方体上或遍布假想立方体的多个位置。控制电路还被配置为控制机器人臂以将校准图案移动到所述多个位置,并且接收与所述多个位置对应的多个校准图像,并且基于所述多个校准图像确定对固有相机参数的相应估计,并且确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计。控制电路还被配置为基于对变换函数的估计来控制机器人臂的放置。
Description
技术领域
本发明涉及用于执行自动相机校准以进行机器人控制的方法和系统。
背景技术
随着自动化变得更加普遍,机器人正在更多环境中使用,诸如在仓储和制造环境中。例如,机器人可以用于将物品装载到仓库中的托盘上或从仓库中的托盘上卸下,或者用于从工厂中的传送带拾取对象。机器人的移动可以是固定的,或者可以基于输入(诸如由仓库或工厂中的相机拍摄的图像)。在后一种情况下,可以执行校准以便确定相机的性质,并确定相机与机器人所处的环境之间的关系。该校准可以被称为相机校准,并且可以基于由相机捕获的图像生成用于控制机器人的校准信息。在一些实现方案中,相机校准可以涉及人的手动操作,人可以手动控制机器人的移动,或者手动控制相机来捕获机器人的图像。
发明内容
本文的实施例的一个方面涉及执行自动相机校准以进行机器人控制。自动相机校准可以由包括通信接口和控制电路的机器人控制系统执行。通信接口可以被配置为与机器人和具有相机视场的相机通信,其中机器人可以具有基座和机器人臂,机器人臂上部署有校准图案。机器人控制系统的控制电路可以被配置为通过以下步骤执行相机校准:a)确定适合于相机视场内的假想立方体的所有角落位置,b)确定分布在假想立方体上或遍布假想立方体的多个位置,c)通过经由通信接口向机器人输出移动命令来控制机器人臂,以将校准图案移动到分布在假想立方体上或遍布假想立方体的所述多个位置,d)经由通信接口从相机接收多个校准图像,其中该多个校准图像由相机捕获,并且是校准图案在该多个位置处的相应图像,e)基于该多个校准图像确定对固有相机参数的相应估计,以及f)基于对固有相机参数的相应估计来确定:对描述相机坐标系和世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对机器人的基座静止的位置定义的坐标系。控制电路还可以被配置为,在执行相机校准之后,经由通信接口从相机接收后续图像,并且通过经由通信接口向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。在实施例中,机器人控制系统可以具有其上存储指令的非瞬态计算机可读介质,所述指令当由控制电路执行时使得控制电路执行上述步骤。
实施例的一个方面还涉及执行自动相机校准以进行机器人控制。自动相机校准可以由包括通信接口和控制电路的机器人控制系统执行。通信接口可以被配置为与机器人和相机通信,机器人具有基座和其上部署有校准图案的机器人臂,并且相机具有相机视场。校准图案可以包括在图案坐标系中具有相应的既定图案元素位置的多个图案元素,其中图案坐标系是相对于校准图案的位置和朝向定义的坐标系。控制电路可以被配置为通过以下步骤来执行相机校准:a)通过经由通信接口向机器人输出移动命令来控制机器人臂以将校准图案移动到相机视场内的至少一个位置,b)经由通信接口从相机接收校准图像,其中校准图像由相机捕获并且是校准图案在所述至少一个位置处的图像,c)确定指示多个图案元素出现在校准图像中的相应位置的多个图像图案元素位置,d)基于该多个图像图案元素位置并基于既定图案元素位置确定对第一固有相机参数的第一估计,e)在对第一固有相机参数的第一估计已经被确定之后,基于对第一固有相机参数的第一估计并基于多个图像图案元素位置确定对第二固有相机参数的第一估计,f)基于对第二固有相机参数的第一估计并且基于多个图像图案元素位置和既定图案元素位置确定对第一固有相机参数的第二估计和对第二固有相机参数的第二估计,以及g)基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计来确定对描述相机坐标系和世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对机器人的基座静止的位置定义的坐标系。控制电路还可以被配置为,在执行相机校准之后,从相机接收后续图像,并且通过向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。
附图说明
本发明的前述和其它特征、目的和优点将从如附图所示的本发明实施例的以下描述中变得清楚。并入本文并形成说明书的一部分的附图还用于解释本发明的原理并使相关领域的技术人员能够制造和使用本发明。附图不按比例绘制。
图1A和1B描绘了根据本文的实施例的在其中执行相机校准的系统的框图。
图1C描绘了根据本文的实施例的被配置为执行相机校准的机器人控制系统的框图。
图2A描绘了根据本文的实施例的示出基于从相机校准获得的校准信息来控制机器人的系统。
图2B描绘了根据本文的实施例的通过相机校准的固有校准阶段和手眼校准(hand-eye calibration)阶段获得的校准信息的示例。
图3A描绘了根据本文的实施例的相机校准中涉及的相机的模型。
图3B和3C描绘了根据本文的实施例的在执行相机校准时涉及的坐标系。
图4提供了根据本文的实施例的流程图,该流程图图示了用于确定在相机的视场(也被称为相机视场)内放置校准图案的位置,以及捕获校准图案在所确定的位置处的相应图像的方法。
图5A和5B图示了根据本文的实施例的示例系统,在该示例系统中机器人臂将校准图案放置在相机的视场内的各个位置处。
图5C-5F图示了根据本文的实施例的用于包围放置校准图案的各个位置的假想立方体。
图6A-6D图示了根据本文的实施例的示例校准图像,这些示例校准图像是由相机捕获的校准图案的图像。
图7图示了根据本文的实施例的适合于相机的视场内的假想立方体。
图8A描绘了根据本文的实施例的示例校准图案。
图8B描绘了根据本文的实施例的校准图案的示例图像,其中该图像表现出镜头失真的效果。
图9A和9B提供了图示根据本文的实施例的用于执行相机校准的方法的流程图。
图10A和10B图示了根据本文的实施例的确定校准图案的图像中的弯曲(curvature)的量的方面。
图11A和11B提供了图示根据本文的实施例的相机校准的固有校准阶段的示例的图。
图12提供了图示根据本文的实施例的相机校准的手眼校准阶段的示例的图。
具体实施方式
以下详细描述本质上仅是示例性的,并不意图限制本发明或本发明的应用和用途。另外,无意受前述技术领域、背景技术、发明内容或以下具体实施方式中给出的任何明示或暗示的理论的约束。
本文描述的实施例涉及执行用于控制机器人(诸如在仓库、制造工厂或一些其它环境中使用的机器人)的相机的校准。校准可以被称为相机校准,并且可以由例如机器人控制系统(也被称为机器人控制器)基于由相机捕获的图像来执行以生成校准信息,该校准信息有助于机器人控制系统控制机器人的能力。例如,机器人可以用于拾取仓库中的包裹,其中机器人的臂或其它部件的放置可以基于由相机捕获的包裹的图像。在这种情况下,校准信息可以与包裹的图像一起使用,以确定例如包裹相对于机器人的臂的位置和朝向。如下面更详细描述的,相机校准可以涉及确定对相机的固有相机参数的相应估计以及确定对相机与其外部环境之间的关系的估计。固有相机参数可以被称为相机的固有参数,并且也可以被称为相机的内部参数,并且可以具有作为例如矩阵、向量或标量值的值。如下面更详细讨论的,固有相机参数的示例包括投影矩阵和失真参数,其中对固有相机参数的估计也可以被称为估计值。在一些情况下,相机与其外部环境之间的关系可以被表达为变换函数,并且对该变换函数的估计也可以被称为估计函数。在一些情况下,变换函数可以是由矩阵表示的线性变换。在一些情况下,可以借助于校准图案来执行相机校准,校准图案可以具有部署在既定位置处的图案元素。相机可以捕获校准图案的图案元素的图像,并且可以基于将图案元素的图像与图案元素的既定位置进行比较来执行相机校准。
本文实施例的一个方面涉及通过在与用于确定对第二固有相机参数(例如,失真参数)的估计的阶级分开的阶级中确定对第一固有相机参数(例如,投影矩阵)的估计来提高相机校准的准确度。更具体而言,可以在第一阶级中估计第一固有相机参数,并且所得到的估计可以用作第二阶级的输入,其中在第二阶级中确定对第二固有相机参数的估计。在该方法下,可以认为对第一固有相机参数的估计在第二阶级期间是已知的,使得第二阶级可以专用于确定对第二固有相机参数的估计。另外,因为对第一固有相机参数的估计被认为是已知的,所以第二阶级不需要确定相机的所有固有相机参数的相应估计,而是可以集中于仅确定对第二固有相机参数的估计。因此,相对于在单个阶级中同时估计所有固有相机参数的相应估计并且然后将它们用作固有校准的输出的实现方案,该第二阶级可以产生相对于校准误差而言更稳健的对第二固有相机参数的更准确的估计。
例如,单个阶级可以通过例如生成和求解涉及固有相机参数并且描述校准图案的图案元素的图像与图案元素的既定位置之间的关系的一组联立方程来同时确定相机的所有固有相机参数的相应估计。在一些情况下,联立方程可以描述所捕获的图像(其也可以被称为校准图像)中图案元素出现的位置与图案元素的既定位置之间的关系。但是,来自相机的所捕获的校准图像可能包括图像噪声,图像噪声可能降低联立方程的准确度。因此,从联立方程导出的对固有相机参数的相应估计的准确度也可能受到影响。另外,联立方程的对每个固有相机参数的相应估计可能牺牲一些准确度,以便允许联立方程被满足。因此,该单个阶级可能在其对固有相机参数的估计中产生校准误差,这继而可能影响基于由相机捕获的图像准确定位机器人的臂的能力。
在实施例中,可以通过使用多个阶级来确定对相机的所有固有相机参数的相应估计来减少校准误差。如上所述,第一阶级可以用于确定对第一固有相机参数的第一估计,并且第二阶级可以用于确定对第二固有相机参数的第一估计。在一些情况下,第一阶级还可以生成用于第二固有相机参数的另一个估计,但是第二阶级可以忽略来自第一阶级的该估计,而是针对第二固有相机参数生成其自己的估计。在一些情况下,第二阶级可以是专用于仅确定对第二固有相机参数的估计的专门阶级,而不是确定对所有固有相机参数的相应估计的通用阶级。因此,第二阶级可以生成对第二固有相机参数的更准确的估计。
在实施例中,可以以流水线的方式来使用多个阶级,其中第一阶级的结果用作第二阶级的输入,如上所述。更具体而言,第二阶级可以基于来自第一阶级的对第一固有相机参数的估计来生成对第二固有相机参数的估计。在一些情况下,来自第二阶级的对第二固有相机参数的估计可以继而用于细化对第一固有相机参数的估计,这可以被视为第三阶级。在一些情况下,第三阶级还可以细化对第二固有相机参数的估计。例如,来自第二阶级的对第二固有相机参数的估计可以被第三阶级用作所通知的关于第二固有相机参数的初始猜测。该初始猜测可以具有高的准确度水平,因此可以帮助第三阶级进一步改进对第一固有相机参数和第二固有相机参数的估计。
在实施例中,可以在第四阶级中进一步细化对固有相机参数的相应估计,该第四阶级通过使用这些估计来确定相应图案元素的模拟位置,进而评估估计的准确度。在一些情况下,第四阶级可以在第三阶级之后。在其它情况下,可以在第二阶级之后立即执行第四阶级,并且可以跳过上面讨论的第三阶级。如下面更详细讨论的,图案元素的模拟位置可以是校准图像中的基于对固有相机参数的估计而预测图案元素出现的预测位置。第四阶级可以将相应图案元素的模拟位置与图案元素在所捕获的校准图像中出现的实际位置进行比较。该阶级可以调整对固有相机参数的估计,以便减小模拟位置与图案元素出现的实际位置之间的差异。
在实施例中,模拟位置的确定可以作为相机校准的固有校准阶段的一部分来执行。如下面更详细讨论的,相机校准还可以包括手眼校准阶段。在实施例中,手眼校准阶段还可以包括基于相应图案元素的模拟位置调整对各种函数的估计的阶级。
本文实施例的一个方面涉及规划用于校准图案的各种姿态(pose),其中校准图案以这样的姿态由相机拍摄。机器人控制系统可以确定姿态,并控制机器人臂将校准图案移动到这些姿态。每个姿态可以指校准图案相对于相机的位置和/或朝向。在实施例中,姿态计划可以涉及确定在相机视场内的机器人将校准图案移动到的多个位置。
在一些情况下,多个位置可以分布在假想立方体上或遍布假想立方体,该假想立方体适合于(例如,完全适合于)相机的视场内(也被称为相机视场)。假想立方体的使用可以允许相机捕获在一组相异位置处的校准图案,这可以使得相机校准考虑更多的一组情况,并且因此使相机校准更加稳健。例如,相异的位置可以包括假想立方体的角落位置以及假想立方体的中心位置。角落位置可以更接近相机视场的周边。中心位置可以直接位于相机的前方,更具体而言,可以被定位为沿着相机的视场的中心轴。在一些情况下,当拍摄位于相机视场周边附近的对象时,相机可能引入有意义的镜头失真量,并且当拍摄靠近相机的视场的中心轴的对象时,可能引入很少或甚至没有镜头失真。使用假想立方体来放置校准图案可以使得校准图案在相机的视场的周边附近被拍摄并且在相机的视场的中心轴附近被拍摄。因此,相机可以捕获可能表现出不同程度的镜头失真的一组相异的校准图像。因此,该组相异的校准图像可以允许相机校准更好地估计相机的镜头失真的性质。
在实施例中,校准图案的朝向也可以跨用于相机校准的一组校准图像而变化。例如,机器人控制系统可以针对多个位置中的每个位置确定机器人臂相对于相机倾斜校准图案的角度。在实施例中,机器人臂将校准图案移动到的多个位置可以均匀地分布在假想立方体上或遍布假想立方体,或者随机地遍布假想立方体分布。在实施例中,假想立方体可能必须是校准图案可以经由机器人臂到达其所有角落位置的立方体。另外,角落位置可能必须被定位成使得对于一些或所有角落位置机器人臂可以相对于相机将校准图案倾斜到既定角度范围内。在一些情况下,如果特定的假想立方体不满足上述条件,则机器人控制系统可以尝试用较小的假想立方体来满足上述条件。
图1A图示了用于执行自动相机校准的机器人操作系统100的框图。机器人操作系统100包括机器人150、机器人控制系统110(也被称为机器人控制器)和相机170。在实施例中,机器人操作系统100可以位于仓库、制造工厂或其它房屋内。机器人控制系统110可以被配置为执行相机校准(下面将更详细地讨论),以确定稍后用于控制机器人150的校准信息。在一些情况下,机器人控制系统110被配置为执行相机校准并基于校准信息控制机器人150。在一些情况下,机器人控制系统110可以专用于执行相机校准,并且可以将校准信息传送到另一个机器人控制系统(也被称为另一个机器人控制器),该另一个机器人控制系统然后基于校准信息控制机器人150。可以基于由相机170捕获的图像以及校准信息来定位机器人150。
在实施例中,机器人控制系统110可以被配置为经由有线或无线通信与机器人150和相机170进行通信。例如,机器人控制系统110可以被配置为经由RS-232接口、通用串行总线(USB)接口、以太网接口、接口、IEEE802.11接口或其任意组合与机器人150和/或相机170通信。在实施例中,机器人控制系统110可以被配置为经由本地计算机总线(诸如外围组件互连(PCI)总线)与机器人150和/或相机170通信。
在实施例中,机器人控制系统110可以与机器人150分离,并且可以经由上面讨论的无线或有线连接与机器人150通信。例如,机器人控制系统110可以是独立计算机,其被配置为经由有线连接或无线连接与机器人150和相机170通信。在实施例中,机器人控制系统110可以是机器人150的组成部件,并且可以经由上面讨论的本地计算机总线与机器人150的其它部件通信。在一些情况下,机器人控制系统110可以是仅控制机器人150的专用控制系统(也被称为专用控制器)。在其它情况下,机器人控制系统110可以被配置为控制包括机器人150的多个机器人。在实施例中,机器人控制系统110、机器人150和相机170位于相同的房屋(例如,仓库)处。在实施例中,机器人控制系统110可以远离机器人150和相机170,并且可以被配置为经由网络连接(例如,局域网(LAN)连接)与机器人150和相机170通信。
在实施例中,机器人控制系统110可以被配置为检索或以其它方式接收部署在机器人150上的校准图案160的图像(也被称为校准图像)。在一些情况下,机器人控制系统110可以被配置为控制相机170捕获这样的图像。例如,机器人控制系统110可以被配置为生成相机命令并且经由有线或无线连接将相机命令传送到相机170,该相机命令使相机170捕获相机170的视场(也被称为相机视场)中的场景的图像。相同的命令可以使相机170还将图像(作为图像数据)传送回机器人控制系统110,或者更一般地传送到机器人控制系统110可访问的存储设备。替代地,机器人控制系统110可以生成另一个相机命令,该相机命令使相机170在接收到相机命令时将其已捕获的(一个或多个)图像传送到机器人控制系统110。在实施例中,相机170可以周期性地或者响应于限定触发条件而自动捕获其相机视场中的场景的图像,而不需要来自机器人控制系统110的相机命令。在这样的实施例中,相机170还可以被配置为在没有来自机器人控制系统110的相机命令的情况下自动地将图像传送到机器人控制系统110,或者更一般地,传送到机器人控制系统110可访问的存储设备。
在实施例中,机器人控制系统110可以被配置为经由由机器人控制系统110生成并通过有线或无线连接传送到机器人150的移动命令来控制机器人150的移动。移动命令可以使机器人移动部署在机器人上的校准图案160。校准图案160可以永久地部署在机器人150上,或者可以是可以附接到机器人150和从机器人150拆卸的单独部件。
在实施例中,唯一用于控制机器人150的那些图像是由相机170捕获的图像。在另一个实施例中,机器人150可以通过来自多个相机的图像进行控制。图1B图示了作为机器人操作系统100的实施例的机器人操作系统100A。系统100A包括多个相机,诸如相机170和相机180。机器人控制系统110可以被配置为从相机170和相机180两者接收图像,并且基于来自两个相机170、180的图像来控制机器人150的移动。在一些情况下,两个相机170、180的存在可以为机器人控制系统110提供立体视觉。机器人控制系统110可以被配置为对相机170和相机180两者执行相机校准,如下面更详细地讨论的。在实施例中,机器人控制系统110可以控制两个相机170、180来捕获校准图案160的相应图像,以便执行相机校准。在实施例中,机器人操作系统100A可以具有恰好两个相机,或者可以具有多于两个相机。
图1C描绘了机器人控制系统110的框图。如框图所示,机器人控制系统110可以包括控制电路111、通信接口113和非瞬态计算机可读介质115(例如,存储器)。在实施例中,控制电路111可以包括一个或多个处理器、可编程逻辑电路(PLC)或可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其它控制电路。
在实施例中,通信接口113可以包括被配置为与相机170和机器人150通信的一个或多个部件。例如,通信接口113可以包括被配置为通过有线或无线协议执行通信的通信电路。作为示例,通信电路可以包括RS-232端口控制器、USB控制器、以太网控制器、控制器、PCI总线控制器、任何其它通信电路或其组合。
在实施例中,非瞬态计算机可读介质115可以包括计算机存储器。计算机存储器可以包括例如动态随机存取存储器(DRAM)、固态集成存储器和/或硬盘驱动器(HDD)。在一些情况下,可以通过存储在非瞬态计算机可读介质115上的计算机可执行指令(例如,计算机代码)来实现相机校准。在这种情况下,控制电路111可以包括一个或多个处理器,该一个或多个处理器被配置为执行计算机可执行指令以执行相机校准(例如,图4和9A和9B中所示的步骤)。
如上所述,可以执行相机校准以便促进基于由相机捕获的图像来控制机器人。例如,图2A描绘了机器人操作系统200,其中图像被用于控制机器人250拾取仓库中的对象292。更具体而言,机器人操作系统200可以是图1A的系统100的实施例,并且包括照相机270、机器人250和图1A的机器人控制系统110。相机270可以是图1A的相机170的实施例,并且机器人250可以是图1A的机器人150的实施例。相机270可以被配置为捕获部署在仓库中的传送带293上的对象292(例如,用于运送的包裹)的图像,并且机器人控制系统110可以被配置为控制机器人250拾取对象292。
在图2A的实施例中,机器人250可以具有基座252和可相对于基座252移动的机器人臂。更具体而言,机器人臂可以包括可相对于彼此旋转的多个连杆254A至254C,以及附接至连杆254C的夹持器255,其中夹持器可以用于拾取对象。在实施例中,机器人控制系统110可以被配置为传送移动命令以旋转连杆254A至254C中的一个或多个。移动命令可以是低级命令(诸如电动机移动命令)或高级命令。如果来自机器人控制系统110的移动命令是高级命令,则机器人150可以被配置为将高级命令转换为低级命令。
在实施例中,相机校准的目标之一是确定相机270和机器人250之间的关系,或者更具体而言,相机270与相对于机器人250的基座252静止的参考点294之间的关系。换句话说,校准信息可以包括描述相机270和参考点294之间的关系的信息。在实施例中,该关系可以指相机270相对于参考点294的位置,以及相机270相对于机器人250的参考朝向的朝向。在实施例中,参考朝向可以用于定义世界坐标系,如下面更详细地讨论的,并且上述关系可以被称为相机与世界的关系。在一些情况下,相机与世界的关系可以用于确定相机270和对象292之间的关系(也被称为相机与对象的关系)以及对象292和参考点294之间的关系(也被称为对象与世界的关系)。可以使用相机与对象的关系和对象与世界的关系来控制机器人250拾取对象292。例如,机器人控制系统110可以被配置为基于相机与对象的关系、对象与世界的关系、相机与世界的关系或其组合来确定夹持器255或连杆254C相对于对象292的位置和朝向(例如,连杆与对象的关系)。
在实施例中,相机校准包括固有校准阶段和手眼校准阶段。图2B描绘了从固有校准阶段和手眼校准阶段确定的信息的示例,并且还图示了用于执行相机校准的校准图案260。在实施例中,校准图案260可以直接且固定地附接到连杆254C,使得校准图案260相对于连杆254C保持静止。固有校准阶段可以涉及自动确定对相机270的固有相机参数的相应估计。在实施例中,相机270的固有相机参数可以是其值独立于相机270的位置和朝向的任何参数。如下面更详细讨论的,固有相机参数可以表征相机270的性质,诸如其焦距、其图像传感器的尺寸,或者由相机270引入的镜头失真的影响。在实施例中,手眼校准阶段可以涉及自动确定相机与世界的关系以及校准图案260和连杆254C之间的关系(也被称为图案与连杆的关系),或者更具体而言,校准图案260与连杆254C上的参考点296之间的关系。在实施例中,可以基于相机270与图案260之间的关系(也被称为相机与图案的关系)以及连杆254C和参考点294之间的关系(也被称为连杆与世界的关系)来确定相机与世界的关系以及图案与连杆的关系。在一些情况下,可以基于固有校准的结果来确定相机与图案的关系,而连杆与世界的关系可以基于机器人控制系统110已经传送到机器人250的移动命令来确定。在实施例中,相机校准可以包括用于包括多个相机的系统的立体校准阶段。立体校准阶段可以涉及确定多个相机之间的关系,诸如一个相机相对于另一个相机的位置和朝向的位置和朝向。
在实施例中,相机的固有相机参数可以描述相机外部的对象如何作为图像投射到相机的图像传感器上,以及镜头如何使得图像中对象的外观失真。例如,图3A描绘了相机370的框图,相机370是图1A的相机170和图2A的相机270的实施例,其包括一个或多个镜头371、图像传感器373和通信接口375。通信接口375可以被配置为与图1A的机器人控制系统110通信,并且可以类似于机器人控制系统110的图1A的通信接口113。在实施例中,一个或多个镜头371可以将来自相机370外部的光聚焦到图像传感器373上。在实施例中,图像传感器373可以包括像素的阵列,像素的阵列被配置为经由相应的像素强度值来表示图像。图像传感器373可以包括电荷耦合器件(CCD)传感器、互补金属氧化物半导体(CMOS)传感器、量子图像传感器(QIS)或任何其它图像传感器。
如上所述,固有相机参数可以描述相机370的视场(也被称为其相机视场)内的对象如何作为图像投射到图像传感器上,或更具体而言,部署对象的各个位置如何投射到图像传感器的像素阵列上。例如,图3B图示了相机370A外部的位置其中上标T表示转置,并且下标“相机”表示在相机坐标系中表达的X、Y和Z坐标。更具体而言,相机370A可以是相机370的实施例,并且可以包括一个或多个镜头371A和图像传感器373A。相机370A的位置和朝向可以用于定义相机坐标系。图3B描绘了要由正交坐标轴定义的相机坐标系。这些坐标轴可以与相机370A的各种部件的朝向对准。例如,坐标轴可以等于相机370A的相机视场的中心轴,其可以等于一个或多个镜头371A的光轴。在一些情况下,和坐标轴可以平行于图像传感器373A的边缘。另外,相机坐标系的原点可以等于一个或多个镜头371A中的镜头的位置、相机370A的光圈的位置,或者其它位置(例如,位于图像传感器373A上、在其前面或在其后面的位置)。
在实施例中,来自位置的光可以被投射到相机内的坐标上,其中f是一个或多个镜头371A的焦距。相机坐标系中的该坐标也可以对应于图像传感器坐标系上的像素坐标图3B描绘了由坐标轴定义的图像传感器坐标系,坐标轴可以与图像传感器373A的相应边缘对准。图像传感器坐标系可以具有位于图像传感器373A的角落处的原点。
在实施例中,固有相机参数可以具有作为标量值、向量或矩阵的值。在实施例中,固有相机参数之一是投影矩阵K,其对位置和位置之间的几何关系进行建模。对该固有相机参数的估计可以是估计矩阵,估计矩阵可以包括对矩阵的分量的相应估计值。在一些情况下,投影矩阵K可以对和之间的无失真关系进行建模,而另一个固有相机参数或一组固有相机参数可以考虑镜头失真的影响,如下面更详细地讨论的。在实施例中,并且在该示例中,fx可以是基于焦距f和沿着轴的图像传感器373A的像素尺寸的第一比例因子。类似地,fy可以是基于相机370A的焦距f和沿着轴的图像传感器373A的像素尺寸的第二比例因子。fx和fy两者的单位可以是每毫米像素。值Cx可以是主点(principalpoint)偏移的第一部分,并且可以基于图像传感器坐标系的原点与相机坐标系的原点之间沿着轴的距离。值Cy可以是主点偏移的第二部分,并且可以基于图像传感器坐标系的原点与相机坐标系的原点之间沿着轴的距离。如上所述,投影矩阵K是固有相机参数,并且fx、fy、Cx和Cy中的每一个是该矩阵的分量,其中每个分量具有标量值。在实施例中,fx、fy、Cx、Cy和焦距f中的每一个也可以被认为是固有相机参数,其中这些固有相机参数中的每一个的值是标量值。
在实施例中,固有相机参数包括一个或多个失真参数,其可以表征由一个或多个镜头371A引起的镜头失真的影响。在实施例中,固有相机参数可以是失真函数中的参数。例如,一个或多个镜头371A的镜头失真可以被建模为使得位置看起来好像其处于处的效果,其中第一函数dx(其可以被称为第一失真函数)可以将与X、Y和Z的值关联,并且第二函数dy(也被称为第二函数)可以将与X、Y和Z的值关联。例如,在一个模型中, 其中 在该示例中,k1、k2、k3、p1、p2中的每一个可以是具有标量值的失真参数,并且对特定失真参数的估计可以是估计标量值。另外,可以确定一组失真参数(例如,k1、k2、k3、p1、p2)的估计,其中对该组失真参数的估计是指针对该组失真参数的一组相应的估计标量值。
如上所述,相机校准可以涉及手眼校准阶段,校准阶段确定相机与相机的环境之间的关系,或者校准图案与图案的环境之间的关系。手眼校准将在下面更详细地讨论。在实施例中,外部参数可以描述图2B中所示的相机与世界的关系和图案与连杆的关系。在实施例中,可以经由描述相机坐标系和世界坐标系之间的关系的变换函数来描述相机与世界的关系。世界坐标系如图3C所示,并且由坐标轴定义。世界坐标系的原点是参考点394,其可以是相对于机器人350的基座352静止的任何点。在实施例中,轴可以具有任意朝向。在实施例中,轴可以相对于机器人350的结构或机器人350所位于的环境(例如,仓库)的结构来定义。例如,轴可能必须与仓库的地板正交。在实施例中,上述变换函数可以是定义从相机坐标系到世界坐标系的线性变换的矩阵 的上述命名法表示b到a变换的变换矩阵,其定义从坐标系“b”中的坐标到坐标系“a”中的坐标的映射。在一个示例中,具有该形式:
在以上示例中,Rba是坐标系b和坐标系a之间的相对旋转矩阵,并且tba是坐标系b与坐标系a之间的相对平移向量。
在实施例中,可以经由描述图案坐标系与连杆坐标系之间的关系的变换函数来描述图案与连杆的关系,其示例在图3C中绘出。在实施例中,校准图案360可以用于执行相机校准,并且可以附接到机器人350的连杆354,其中连杆354可以形成机器人350的机器人臂的至少一部分。图案坐标系可以是相对于校准图案360定义的坐标系。例如,图案坐标系可以由坐标轴定义,并且可以具有位于校准图案360的中心处的原点。在实施例中,校准图案360可以由扁平矩形板或扁平矩形片(例如,贴纸)形成,并且可以与扁平板或扁平片的相应边缘平行,而与扁平板或扁平片正交。图3C还图示了连杆坐标系,其可以由坐标轴定义。在实施例中,连杆坐标系的原点是连杆354上的点396。连杆354可以固定地附接到校准图案360,使得校准图案360相对于连杆354是静止的。在实施例中,坐标轴的朝向可以与连杆354的朝向相同。在实施例中,用于图案与连杆的关系的变换函数可以是定义图案坐标系与连杆坐标系之间的线性变换的矩阵在实施例中,在执行手眼校准阶段之前,可能是未知的,并且手眼校准阶段可以涉及确定对的估计以及对相机与世界的关系(例如,)的估计。
如下面更详细地讨论的,手眼校准阶段的一些实施例可以基于相机与图案关系和连杆与世界关系来确定相机与世界关系和图案与连杆关系。在实施例中,相机与图案关系可以由定义相机坐标系和图案坐标系之间的线性变换的矩阵来定义。在实施例中,连杆与世界关系可以由定义连杆坐标系和世界坐标系之间的线性变换的矩阵来定义。
在基于来自两个或更多个相机的图像来控制机器人的实施例中,相机校准可以涉及立体校准阶段,该校准阶段估计或以其它方式确定描述第一相机(例如,图1B中的相机1)的相机坐标系与第二相机(例如,图1B中的相机2)的相机坐标系之间的关系的变换函数。在实施例中,这种变换函数可以是定义两个相机坐标系之间的线性变换的矩阵
如上所述,相机校准可以涉及确定由相机拍摄校准图案的位置和/或朝向,其中所得到的图像用于执行固有校准、手眼校准和/或立体校准。例如,校准图案可以移动到分布在适合于相机的相机视场的假想立方体上或遍布假想立方体的多个位置。图4描绘了图示用于获得用于执行相机校准的校准图案的图像(也被称为校准图像)的方法400的流程图。在实施例中,方法400由图1A的机器人控制系统110的图1A的控制电路111执行。如上所述,机器人控制系统110可以包括被配置为与机器人臂和相机通信的通信接口。
在图5A中描绘了执行方法400的示例环境,图5A描绘了机器人操作系统500,机器人操作系统500包括与相机470和机器人450通信的图1A的机器人控制系统110。相机470可以是图1A/图2A/图3A的相机170/270/370的实施例,并且机器人可以是图1A/图2A/图3A的机器人150/250/350的实施例。机器人450可以包括基座452和可相对于基座452移动的机器人臂。机器人臂包括一个或多个连杆,诸如连杆454A至连杆454E。在实施例中,连杆454A-454E可以可旋转地彼此附接。例如,连杆454A可以经由接头456A可旋转地附接到机器人基座452。剩余的连杆454B至454E可以经由接头456B至456E可旋转地彼此附接。在实施例中,连杆(例如,454B至454E)可以仅经由一个或多个棱柱接头连接或经由一个或多个棱柱接头与其它类型的接头(例如,一个或多个圆柱形接头)的组合来连接。在涉及一个或多个棱柱接头的这种实施例中,连杆可以被称为彼此线性地附接。在实施例中,底座452可以用于将机器人452安装到例如安装框架或安装表面(例如,仓库的地板)。在实施例中,机器人450可以包括多个电动机,该多个电动机被配置为通过旋转连杆454A-454E来移动机器人臂。例如,电动机中的一个可以被配置为使第一连杆454A相对于接头456A和基座402旋转,如图5A中的虚线箭头所示。类似地,多个电动机中的其它电动机可以被配置为使连杆454B至454E旋转。多个电动机可以由机器人控制系统110控制。图5A还绘出了以固定方式部署在第五连杆454E上的校准图案460,使得连杆454A-454E的旋转或机器人450的其它移动不改变校准图案460相对于连杆454E的位置和朝向。在实施例中,校准图案460可以涂在连杆454E上。在实施例中,校准图案460可以是附接到连杆454E的校准板的一部分。
返回到图4,在实施例中,方法400可以从步骤401开始,在步骤401中,控制电路111可以确定适合于(例如,完全适合于)相机视场内的假想立方体的所有角落位置,其中相机视场可以指相机的视场。图5B描绘了可以是相机470的视场的示例相机视场510,并且还绘出了适合于相机视场510内的假想立方体550。在实施例中,相机视场510可以形成从相机470向外扩散的假想金字塔。在一些情况下,相机视场510的宽度可以取决于相机470的一个或多个镜头的焦距。图5C描绘了假想立方体550的角落位置的示例。更具体而言,假想立方体550具有对应于假想立方体550的八个角落的八个角落位置551A至551H。在实施例中,确定假想立方体的角落位置可以涉及确定角落位置的坐标(例如,)。
在实施例中,假想立方体550可以限定由机器人450的机器人臂在其上或其内移动校准图案460的空间。相机470可以捕获与假想立方体550上或假想立方体550内的不同位置对应的校准图案460的多个图像(也被称为校准图像)。虽然校准图案460可以在由诸如球体的不同形状限定的整个空间中移动,但是由假想立方体550限定的空间可以包括更靠近相机470的相机视场510的周边的位置。例如,假想立方体550的八个角落位置可以靠近相机视场510的周边。如果相机470表现出镜头失真或其它形式的相机失真,那么相对于例如当校准图案460位于相机视场510的中心周围时,当校准图案460位于相机视场510的周边附近时,镜头失真对校准图像的影响可能更明显。因此,假想立方体550可以促进其中失真的影响更明显的校准图像的获取,这可以允许相机校准生成对相机470的失真参数的更准确的估计。
返回到图4,方法400还可以包括步骤403,在步骤403中,控制电路111可以确定分布在假想立方体上或遍布假想立方体的多个位置,其中校准图案在该多个位置中的每个位置处至少部分地对相机可见。
在实施例中,多个位置在假想立方体上或遍布假想立方体均匀(uniformly)分布(也被称为均匀(evenly)分布)。在实施例中,多个位置可以是在假想立方体上或假想立方体内均匀分布的n3个位置,其中n是等于或大于2,或等于或大于3的正整数。例如,图5C图示了在假想立方体550上或遍布假想立方体550均匀分布的精确27个位置的实施例。在实施例中,多个均匀分布的位置在多个位置的紧邻位置之间具有沿着假想立方体的边缘所测量的均匀的间隔。例如,角落位置551A可以是位置551I至551N的紧邻位置。角落位置551A和紧邻位置551I至551N可以具有沿着假想立方体550的边缘测量的均匀的间隔。更具体而言,角落位置551A可以具有沿着边缘553A、553B或553C测量的到紧邻位置551到551N中的每一个的相同距离。该距离可以是例如假想立方体550的每一边的长度的一半。在另一个实施例中,假想立方体550可以被分成n3个较小的非重叠立方体(例如,27个较小的立方体),使得较小的立方体均匀地划分假想立方体550。在这样的实现方案中,多个均匀分布的位置中的每个位置可以是相应较小立方体的中心位置。
在实施例中,多个位置遍布假想立方体550随机分布。在一些情况下,控制电路111被配置为通过将假想立方体550划分为多个非重叠区域,并且通过将多个位置中的相应位置指定为在该多个非重叠区域中的每个区域中来确定多个位置,其中特定区域中的相应位置可以是该区域中的随机位置。在一些情况下,控制电路111可以被配置为递归地或迭代地将半个区域中的每个半个区域划分为更小的半个区域,并且将位置指定给不同的半个区域,使得多个位置不聚集在假想立方体550的一个区域周围。
例如,控制电路可以被配置为通过一系列迭代确定多个位置,其中多个位置中的第一位置被确定为假想立方体内的任何位置,并且在该系列迭代的第一次迭代期间被确定,其中假想立方体形成用于执行第一次迭代的第一区域。图5D图示了在第一次迭代中确定的第一位置555A的示例。在该示例中,通过对剩余迭代中的每次迭代执行以下各项来确定剩余迭代的相应位置:(a)将用于执行先前迭代的区域划分为不重叠的第一区域和第二区域,其中第一区域和第二区域中的每一个是用于执行当前迭代的区域,(b)确定第一区域和第二区域中的哪一个包含先前位置,其中先前位置是多个位置中的在先前迭代中确定的相应位置,(c)并且确定第一区域和第二区域中的另一个内的任何位置作为当前位置,其中当前位置是多个位置中为当前迭代确定的位置。例如,图5D图示了第二次迭代,其将在先前迭代(即,第一次迭代)中使用的区域划分为第一半个区域553A和第二半个区域553B。另外,因为用于第一次迭代的位置在第一半个区域554A中,因此用于第二次迭代的位置在另一个区域即第二半个区域553B中。图5E图示了将在先前迭代中使用的区域553A划分为第一半个区域553C和第二半个区域553D的第三次迭代。另外,因为来自先前迭代的位置555A在半个区域553D中,因此用于第三次迭代的位置555C在另一个半个区域553C中。图5F图示了将在先前迭代中使用的区域553B划分为半个区域553E和553F的第四次迭代。因为来自先前迭代的位置在半个区域553F中,因此用于第四次迭代的位置555D在另一个半个区域553E中。
返回到图4,方法400包括步骤405,在步骤405中,控制电路111可以控制机器人臂以将校准图案移动到在步骤403中确定的多个位置。例如,关于图5B,机器人450可以通过移动机器人臂的连杆454A至454E中的一个或多个来移动机器人臂。控制电路111可以例如生成将使机器人移动多个连杆454A至454E的一个或多个移动命令,并且经由通信接口113将一个或多个移动命令输出到机器人450。更具体而言,控制电路111可以将一个或多个移动命令输出到通信接口113,通信接口113可以将一个或多个移动命令传送到机器人450以使机器人臂(例如,多个连杆454A至454E)基于一个或多个移动命令将校准图案移动到分布在假想立方体上或遍布假想立方体的多个位置。在实施例中,一个或多个移动命令可以包括控制连杆454A至454E相对于彼此旋转的旋转量的一个或多个电动机命令。在实施例中,控制电路可以被配置为将位置确定为笛卡尔坐标并且基于笛卡尔坐标确定电动机命令。在实施例中,控制电路111可以被配置为控制机器人臂(例如,经由传送到机器人450的移动命令)以针对分布在假想立方体550上或遍布假想立方体550的多个位置将校准图案460相对于相机470倾斜到不同的相应角度,使得多个相应的校准图像捕获相对于相机470处于不同的相应角度的校准图案460。
在实施例中,方法400包括步骤407,在步骤407中,控制电路111可以经由通信接口113从相机470检索或以其它方式接收多个校准图像,其中多个校准图像由相机捕获并且是步骤403和405的多个位置处的校准图案460的相应图像。在一些情况下,步骤407可以涉及控制电路控制相机以捕获与部署在多个位置处的校准图案对应的多个相应校准图像。例如,图6A至6D图示了图5A的校准图案460在相对于相机470的不同位置处和/或不同相应角度的四个相应图像的示例。在一些情况下,多个相应校准图像中的每个校准图像可以包括具有相应像素强度值的像素阵列。在实施例中,校准图像中的一个或多个可能显示出失真,这可以通过校准图案的实际上是直的元素中或元素之间的弯曲来表现。下面参考图8B更详细地讨论失真。
在实施例中,步骤407可以涉及控制电路通过生成相机命令并经由通信接口113将相机命令传送到相机来检索校准图像。当相机接收到相机命令时,相机命令可以使相机从相机视场中捕获校准图像或任何其它图像和/或使相机将捕获的图像传送回通信接口113,然后通信接口113将捕获的图像传送到控制电路111。因此,控制电路111可以因此经由通信接口113从相机接收捕获的校准图像。在实施例中,控制电路111可以从相机接收捕获的图像而不生成相机命令。例如,相机可以周期性地或响应于定义的触发条件自动地从其相机视场捕获校准图像或任何其它图像,而不需要来自控制电路111的相机命令。在这样的实施例中,相机还可以被配置为在没有来自控制电路111的相机命令的情况下自动地将校准图像传送到通信接口113,通信接口113然后可以将图像传送到控制电路111。
返回到图4,方法400包括步骤409,在步骤409中,控制电路111可以基于多个相应的校准图像来确定对固有相机参数的相应估计。方法400还包括步骤411,在步骤411中,控制电路111基于对固有相机参数的相应估计来确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计。在实施例中,步骤409和411可以是固有校准阶段和手眼校准阶段的一部分,这将在下面更详细地讨论。在实施例中,方法400可以包括步骤413,在步骤413中,控制电路从相机接收后续图像,并通过(例如,经由通信接口113)向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。例如,后续图像可以是由相机捕获(例如,自动捕获或响应于相机命令)的包裹或其它对象的图像。在一个示例中,步骤413可以涉及使用变换函数和后续图像来确定对象与世界的关系(例如,矩阵),并且该关系可以用于生成控制机器人臂或机器人的其它部件相对于包裹的放置的移动命令。
在实施例中,在步骤405中使用的假想立方体(其中校准图案被移动到分布在假想立方体上或遍布假想立方体的位置)可以是可以适合于(例如,完全适合于)相机视场(例如,510)内的最大假想立方体。在实施例中,如果(例如,仅当)机器人臂能够将校准图案移动到最大假想立方体的所有角落位置,则在步骤405中使用该假想立方体。否则,较小的假想立方体可以用于步骤405。例如,在方法400的一个实施例中,步骤401在步骤405之前执行,并且涉及控制电路111确定适合于相机的相机视场内的第一假想立方体。图7描绘了第一假想立方体649的示例,第一假想立方体649在一些情况下可以是可以适合于相机的相机视场内的最大假想立方体。然后,控制电路111可以确定(例如,机器人450的)机器人臂是否能够将校准图案移动到第一假想立方体的所有角落位置。如果机器人臂能够这样做,则第一假想立方体在步骤403和405中可以被用作假想立方体。
在一些情况下,控制电路111可以确定机器人臂不能将校准图案移动到第一假想立方体649的一个或多个角落位置。例如,控制电路111可以确定机器人臂能够将校准图案移动到第一假想立方体649的仅六个角落位置,并且可能无法将校准图案移动到第一假想立方体649的第七角落位置或第八角落位置。这种确定反映了校准图案不能放置在第七角落位置和第八角落位置附近的可能性。在这种情况下,如果第一假想立方体649用于确定相机拍摄校准图案处的位置,则相机可能无法捕获第七角落位置和第八角落位置附近的校准图案的校准图像,因为校准图案不能被移动到靠近那里。这种情况可能减少可用于相机校准的校准图像的多样性,这可能降低相机校准的准确性或稳健性。因此,响应于确定机器人臂不能将校准图案移动到第一假想立方体649的至少一个角落位置,控制电路111可以确定小于第一假想立方体649的第二假想立方体650(例如,小20%)。如果机器人臂能够将校准图案移动到第二假想立方体650的所有角落位置,则第二假想立方体650可以用作步骤403和405的假想立方体。
在实施例中,控制电路可以基于检测物理对象(例如,电力线缆)是否正在阻碍从机器人臂到特定位置的路径来确定机器人臂是否能够将校准图案移动到该位置。在实施例中,可能存在一些机器人臂根本无法到达的位置,这是因为它们离机器人的基座太远,或者因为机器人臂受其物理结构的约束而不能移动到该位置。例如,机器人臂可能受到构成机器人臂的一个或多个连杆的尺寸、一个或多个连杆的朝向、连接一个或多个连杆的接头提供多少自由度的约束,或者一些其它约束。在实施例中,控制电路可以在不实际移动机器人臂的情况下做出上述确定。在另一个实施例中,控制电路可以通过实际尝试经由机器人臂将校准臂移动到特定位置并确定这种尝试是否成功来做出上述确定。
在实施例中,如果在每个角落位置处机器人臂可以将校准图案倾斜到相对于相机的既定角度范围内,则特定假想立方体被用于步骤405。在一些情况下,仅当满足上述条件时,特定假想立方体才被用于步骤405。例如,相机校准可以仅使用其中校准图案和相机之间的角度在0到45度的范围内的校准图像。因此,在实施例中,步骤401可以涉及控制电路111确定机器人臂是否能够将校准图案移动到第一假想立方体649的所有角落位置以及是否能够在第一假想立方体649的所有角落位置中的每个角落位置处将校准图案倾斜到相对于相机的既定角度范围内的角度。如果控制电路确定机器人臂不能将校准图案移动到第一假想立方体649的一个或多个角落位置,或者对于第一假想立方体649的至少一个角落位置机器人臂不能够将校准图案倾斜到相对于相机的既定角度范围内的角度,则控制电路111可以确定第二假想立方体650的所有角落位置。如果满足上述条件,则第二假想立方体650可以被用于步骤405。
在实施例中,控制电路111可以被配置为基于校准图案的图像确定聚焦参数的值和曝光参数的值。在一些情况下,可以在步骤401之前执行该确定。例如,控制电路111可以被配置为在步骤401之前控制相机捕获校准图案的第一校准图像,并且确定校准图案的至少一个图案元素(例如,点)的强度水平和对比度水平。控制电路111可以被配置为基于第一校准图像中的图案元素中的至少一个图案元素的强度水平和对比度水平中的至少一个来确定相机的曝光参数(例如,光圈、快门速度或ISO)和聚焦参数的相应值。然后,在步骤407处,相机可以使用这些参数的相应值来捕获校准图案的校准图像。
如以上所讨论的,相机校准可以基于校准图像,诸如校准图案460的图像。在实施例中,校准图案460可以印刷在平坦的校准板上。校准板可以由耐温度引起的翘曲的材料(诸如碳纤维)形成。图8A描绘了校准图案460的示例,其可以包括沿着矩形网格的假想直线网格线(4631至4635和4651至4655)布置的多个图案元素4611至46125。例如,假想网格线可以包括第一组均匀间隔的直线4631至4635,以及第二组均匀间隔的直线4651至4655,其中第一组假想网格线4631至4635与第二组假想网格线4651到4655正交。在实施例中,图案元素4611至46125中的每一个可以是圆点。在实施例中,图案元素4611至46125的尺寸可以不同。例如,图案元素4618、46113和46114具有第一直径,而所有剩余图案元素具有小于第一直径的第二直径。在实施例中,多个图案元素4611至46125具有既定的(一个或多个)尺寸和它们之间既定的间隔。例如,第一直径和第二直径可以是由校准图案460的制造者(例如,校准板制造商)定义的值,并且可以是在相机校准期间的已知值。另外,多个图案元素4611至46125沿着网格线4651至4655可以具有既定距离Δd1,并且沿着网格线4631至4635具有既定距离Δd2,其中定义的距离在相机校准期间可以是已知值。在实施例中,Δd1等于Δd2。在实施例中,图案元素4611至46125可以全部具有相同的尺寸(例如,相同的直径),并且校准图案460还可以包括指示校准图案460的朝向的特征(例如,旋转非对称形状)。
如上所述,图案坐标系可以相对于校准图案(诸如校准图案460)来定义。在实施例中,在校准图案460的中心处或附近的图案元素,诸如图案元素46113,可以定义校准坐标系的原点。在该实施例中,轴可以与假想网格线4631至4635对准,而轴可以与假想网格线4651至4655对准,并且轴与由校准图案460形成的平面正交。
虽然图案元素沿着直的假想线设置,但是由于镜头失真的影响,它们可能在校准图像中看起来沿着弯曲的路径设置。例如,图8B描绘了校准图案460的校准图像的示例,其中校准图像包括镜头失真的影响。例如,虽然校准图案460中的图案元素沿着矩形网格的直线布置,但是镜头失真可能使它们看起来好像它们沿着弯曲的路径布置。如下面更详细讨论的,相机校准可以基于检测校准图像中的弯曲来确定对失真参数或一组失真参数的估计。
如上所述,相机校准的一个方面可以涉及下面讨论的固有校准阶段(也被称为执行固有校准)。在实施例中,固有校准可以包括确定对图1A/图3B/图5A的相机170/370/470的固有相机参数(诸如失真参数和投影矩阵)的相应估计。
在实施例中,投影矩阵可以是固有相机参数,其值是由标量值形成的矩阵。例如,相机170/370/470的投影矩阵K可以被定义为由9个标量值组成的3×3矩阵。如上所述,投影矩阵的一个示例是:
在实施例中,投影矩阵定义线性变换或其它映射,其将相机的相机视场内的图案元素的坐标投影到图案元素将在校准图像中出现的像素坐标
上述关系可以假设没有镜头失真。在上面的示例中,向量[X/Z Y/Z 1]T是相机坐标系中的同构3D坐标,并且向量[u v 1]T是图像传感器坐标系中的同构3D坐标。
在实施例中,图案元素的像素坐标可以表示对校准图像中的该图案元素的中心的估计。例如,如果图案元素在校准图像中表现为圆点,则像素坐标可以是圆点的中心。在一些情况下,图案元素可能在校准图像中表现为椭圆,即使它实际上是校准图案上的圆点。这种外观可能是由于相机和校准图案之间的角度造成的。在这些情况下,图案元素的像素坐标可能与椭圆的几何中心稍微不同。
在实施例中,fx、fy、Cx和Cy中的每一个可以是投影矩阵的分量,并且还可以是其值为标量值的固有相机参数。如上所述,参数fx和fy可以是基于相机的焦距和图像传感器在X或Y方向上的像素尺寸的比例因子。参数Cx和Cy可以是在图像传感器坐标系中表达的图像中心的像素坐标。
在实施例中,失真参数可以是失真函数的参数。更具体而言,相机的镜头失真可以被建模为一个或多个函数dx和dy,它们使得实际位于相机视场中的处的图案元素看起来好像该图案元素位于在该模型中,投影矩阵K应用于而不是这种现象可以被表达为:
在上面的示例中,X/Z和Y/Z被较简单地写为和非线性失真函数dx可以将确定为和的函数,并且非线性失真函数dy可以将确定为和的函数。在一些情况下,固有相机参数可以是失真函数dx或dy中的参数,在这种情况下,固有相机参数可以被称为失真参数。
在实施例中,失真函数可以基于多项式失真模型,其中
在上面的示例中,另外,该示例中的固有相机参数可以包括k1、k2、k3、p1、p2,其中每一个可以更具体地称为失真参数。在一些情况下,这些失真参数中的一些或所有失真参数可以具有作为标量值的值。
在实施例中,失真函数可以基于合理失真模型,其中
在上面的示例中,并且k1、k2、k3、k4、k5、k6、p1和p2中的每一个是固有相机参数,并且更具体地是失真参数。
在实施例中,失真函数可以基于视场模型,其中:
在上面的示例中,ω是固有相机参数,并且更具体而言是其值为标量值的失真参数。
如下面更详细讨论的,固有校准阶段的一些情况可以涉及确定对失真参数的估计,其中该估计可以是当应用于逆失真函数和时,可以补偿镜头失真的影响的值。例如,当应用对失真参数的估计时,逆失真函数可以将表现出弯曲的图像(例如,图8B中的图像)转换为减少或消除弯曲的“未失真”图像。
图9A和9B描绘了用于执行相机校准的示例方法900的流程图,其中相机校准可以包括固有校准阶段。该方法可以在不同阶级中确定不同固有相机参数的估计值。方法900可以由例如图1A的机器人控制系统110的图1A的控制电路111执行。如以上所讨论的,机器人控制系统110可以与机器人和相机通信,诸如图5A的机器人450和图5A的具有相机视场510的相机470。机器人450可以具有机器人臂,在机器人臂上部署有校准图案,诸如图5A的校准图案460。校准图案460包括图8A的多个图案元素4611至46125,这多个图案元素在图案坐标系(诸如图3C和图8A中所绘出的图案坐标系)中具有相应的既定图案元素位置(例如,图案坐标)。图案坐标系可以是相对于校准图案460的位置和朝向定义的坐标系。例如,如图8A所示,图案校准系统由坐标轴和来定义。在实施例中,图案元素46113是图案校准系统的原点,并且图案元素46113的既定图案元素位置是图案坐标在该实施例中,例如,图案元素46114的既定图案元素位置是其中d1是已知的定义值。作为另一个示例,图案元素4618的既定图案元素位置是
在实施例中,方法900可以从步骤901开始,在步骤901中,控制电路111可以控制机器人臂将校准图案(例如,460)移动到相机视场(例如,图5B的510)内的至少一个位置,其中相机视场可以指相机(例如,470)的视场。在一些情况下,步骤901可以涉及控制电路111生成用于输出到机器人控制系统110的通信接口113的移动命令,以及将移动命令输出到通信接口113。通信接口113可以将移动命令传送给机器人,其中移动命令可以使机器人臂将校准图案移动到相机视场中的至少一个位置。在实施例中,可以以与图4的步骤401到405类似的方式执行步骤901。
在步骤902中,控制电路111经由通信接口113从相机检索或以其它方式接收校准图像,其中校准图像由相机捕获并且是在至少一个位置处的校准图案的图像。在实施例中,可以以与步骤407类似的方式执行步骤902。在实施例中,步骤902可以涉及控制电路111经由相机命令控制相机,以捕获与处于至少一个位置处的校准图案对应的校准图像,诸如图6A至图6D或图8B中的校准图像之一。
在步骤903中,控制电路111可以确定指示多个图案元素在校准图像中出现的相应位置的多个图像图案元素位置(也被称为捕获图案元素位置)。例如,每个图案元素可以是圆点,并且特定圆点的捕获元素位置可以是圆点在校准图像中出现的像素坐标[uv]T,并且更具体地可以是圆点的中心的估计像素坐标。
在步骤905中,控制电路111可以基于多个图像图案元素位置(例如,一组[uv]T坐标)并基于既定图案元素位置(例如,一组坐标)来确定对相机的第一固有相机参数的第一估计。在一些情况下,相机包括镜头和图像传感器,并且第一固有相机参数可以是描述到图像传感器上的图像投影的投影矩阵。例如,第一固有相机参数可以是投影矩阵K。在一些情况下,第一固有相机参数可以是投影矩阵K的分量,诸如参数fx、fy、Cx和Cy之一。
如上所述,可以基于各个图案元素的的相应已知坐标以及各个图案元素在校准图案的校准图像中出现处的相应已知[u v]T坐标来估计投影矩阵K。在实施例中,[u v]T可以与相关。在该实施例中,可以是描述图案坐标系和相机坐标系之间的关系的线性变换,诸如图3B和3C中所绘出的。例如,它可以反映以下关系:
在一些情况下,可以包括旋转矩阵R和平移向量t。例如,它可以以下面的形式写为4×4矩阵:
在实施例中,步骤905可以涉及基于多个像素坐标[u v]T及其对应的坐标对K和进行求解。在实施例中,透视n点(perspective-n-point)算法可以用于确定对的估计。在实施例中,该步骤还可以考虑镜头失真,并且可以确定对失真参数的估计。但是,该估计值可以在执行步骤905之后被丢弃,或者更一般地,在方法900的其它步骤中不使用该估计值。在实施例中,步骤905可以基于在“A Flexible NewTechnique for Camera Calibration”,Technial Report MSR-TR-98-71,Zhengyou Zhang(也被称为Zhang的算法)中讨论的相机校准算法来执行,该文献的公开内容通过引用整体并入本文。更具体而言,Zhang的算法可以能够使用[u v]T和坐标来确定对投影矩阵K的估计、对矩阵的估计,以及对失真参数或一组失真参数的估计。在该示例中,对投影矩阵K的估计可以用于将在下面更详细地讨论的步骤907,而的估计值和/或对(一个或多个)失真参数的估计可以被丢弃,或者替代地,上述估计中的一个或多个也可以在步骤907中用作参数值的初始猜测,如下面更详细地讨论的。
在步骤907中,控制电路可以基于对第一固有相机参数的第一估计并且基于多个图像图案元素位置(也被称为捕获的图案元素位置)来确定对相机的(一个或多个)对第二固有相机参数的第一估计。在一些情况下,第二固有相机参数可以是描述由镜头引起的失真的失真参数。例如,如以上所讨论的,第二固有相机参数可以是用于非线性失真函数dx和dy的失真参数。
在实施例中,步骤907中的控制电路可以通过以下方式确定对(一个或多个)第二固有相机参数(例如,(一个或多个)失真参数)的第一估计:(a)确定对(一个或多个)对第二固有相机参数的初始估计,(b)基于对(一个或多个)对第二固有相机参数的初始估计、对投影矩阵的第一估计和校准图像生成补偿由镜头引起的失真的校正图像的修改版本,(c)确定校准图像的修改版本中的弯曲量,
(d)基于校准图像的修改版本中的弯曲量调整对第二固有相机参数的初始估计以便生成使弯曲量减小的对第二固有相机参数的经调整的估计,其中经调整的估计是对第二固有相机参数的第一估计。在实施例中,对第二固有相机参数的初始估计可以具有零值或一组零值(例如,上述失真函数中的k1、k2、k3、p1和/或p2等于零)。在实施例中,可以从步骤905的结果获得对第二固有相机参数的初始估计。例如,如果步骤905使用Zhang的算法,则该算法可以输出对第二固有相机参数的估计,并且该输出的估计可以输入到步骤907作为对第二固有相机参数的初始估计。
在实施例中,校准图像的修改版本可以是试图补偿校准图像中的镜头失真的版本。例如,可以通过向校准图像应用逆失真函数和来生成修改版本。在一个示例中,由相机捕获的校准图像可以由像素坐标[u,v]T表示,像素坐标[u,v]T表示图案元素在校准图像中出现的位置,而校准图像的修改版本可以由像素坐标表示,像素坐标表示相同图案元素在修改版本中出现的位置。在该示例中,像素坐标可以通过对投影矩阵K和逆失真函数的估计来计算。更具体而言,如以上所讨论的,对投影矩阵的估计可以用于确定逆投影矩阵,其可以用于确定:
进一步如以上所讨论的,可以将上述结果应用于逆失真以确定:
在上面的示例中,用于图案元素的和与当施加了镜头失真时图案元素在相机视场中出现的位置相关,并且和与当存在针对镜头失真的补偿时图案元素在相机视场中出现的位置相关。可以基于以下关系将投影矩阵应用于和以确定像素坐标
在上面的示例中,逆失真函数可以包括一个或多个失真参数。可以优化对一个或多个失真参数的估计,以便最好地针对镜头失真进行补偿。更具体而言,估计可以涉及针对一个或多个失真参数的相应的一个或多个估计值,并且可以被优化以便最小化或以其它方式减少校准图像的修改版本中的失真量。例如,控制电路111可以尝试对一个或多个失真参数的不同估计以生成校准图像的不同修改版本,以便评估哪个估计使校准图像的修改版本中的弯曲量最小化,其中弯曲量可以被确定为弯曲分数。可以将失真参数的最佳估计视为对失真参数的第一估计。如上所述,校准图案在一些情况下可以包括沿着直网格线部署的图案元素。镜头失真可能导致这些图案元素在校准图像中表现为就好像它们沿着弯曲路径部署。没有失真的校准图像的修改版本可以不表现出弯曲,使得图案元素在校准图像的修改版本中表现为就好像它们沿着直网格线部署。
在实施例中,线拟合技术可以用于确定校准图像的修改版本中的弯曲量。例如,校准图案中的多个图案元素可以是多个点(例如,圆点)。在这种情况下,步骤907中的控制电路可以通过以下方式确定弯曲量:在校准图像的修改版本中拟合通过多个点(例如,通过点的相应中心)的多条直线,并基于该多条直线中的每条直线与该多个点中通过其拟合该直线的相应点(例如,点的相应中心)之间的距离来确定弯曲量。如果校准图像的修改版本没有失真,则每条直线将与通过其拟合该线的点的距离为零,或者更具体而言,与点的相应中心的距离为零。例如,直线将穿过点的相应中心。但是,图10A图示了表现出一定程度的镜头失真的校准图像。因此,一条或多条直线不经过通过其拟合该直线的所有点的相应中心。图10B示出了针对图10A的点的一部分的线拟合。在该图中,通过四个点拟合的线从四个点中的三个点的相应中心偏离。可以基于图10B中的每个点的中心与拟合线之间的相应距离来计算弯曲量,如由源自拟合线的相应箭头所示。在实施例中,校准图像的修改版本的弯曲量可以由总弯曲分数表示,该总弯曲分数可以是例如线拟合中涉及的各个线的相应弯曲分数的总和。在实施例中,步骤907可以涉及优化多个失真参数的相应估计值,以便最小化校准图像的修改版本的总弯曲分数,其中修改版本是基于这些估计值生成的。
在步骤909中,如图9B所示,控制电路111可以基于对第二固有相机参数的第一估计来确定对第一固有相机参数的第二估计和对第二固有相机参数的第二估计。在实施例中,步骤909中的确定还基于多个图像图案元素位置和既定图案元素位置。在步骤909中,可以使用对第二固有相机参数的第一估计来细化对第一固有相机参数的第一估计,其中细化的估计是对第一固有相机参数的第二估计。如以上所讨论的,因为在步骤907中在单独的阶级中估计第二固有相机参数,因此相对于其中对第一固有相机参数的第一估计和对第二固有相机参数的第一估计在同一阶级被同时确定的情况,对第二固有相机参数的该估计可以更准确。在实施例中,然后可以使用对第二固有相机参数的该更准确的估计来生成对第一固有相机参数的更好的经更新的估计,其中经更新的估计是对第一固有相机参数的第二估计。
在实施例中,可以在步骤909中使用Zhang的算法。更具体而言,Zhang的算法可以接受对第二固有相机参数的初始猜测值作为输入。初始猜测值可以是Zhang的算法的可选输入。在一些情况下,该可选输入可能尚未在步骤905中使用。但是,可以在步骤909中使用可选输入,其中对第二固有相机参数的第一估计被应用为Zhang的算法的初始猜测值,该算法可以进一步使用多个图像图案元素位置和既定图案元素位置来生成对第一固有相机参数的第二估计。在实现方案中,Zhang的算法还可以生成对第二固有相机参数的第二估计,并且还可以输出对描述相机坐标系与图案坐标之间的关系的变换函数(例如,)的估计。
步骤901-909可以是相机校准过程的固有校准阶段的一部分。在实施例中,固有校准阶段还可以包括控制电路确定使用对第一固有相机参数的第二估计和对第二固有相机参数的第二估计来确定图案元素的模拟位置并调整这些估计以生成最小化模拟位置与图案元素的实际位置之间的差异的第三估计的阶级。
更具体而言,控制电路可以通过以下方式确定对第二固有相机参数的第三估计和对第一固有相机参数的第三估计:(a)基于对第一变换函数的估计、对第二固有相机参数的第二估计,以及对第一固有相机参数的第二估计来确定作为校准图案的模拟图像的模拟校准图像,(b)确定模拟校准图像与由相机捕获的校准图像之间的差异,(c)基于该差异调整对第二固有相机参数的第二估计和对第一固有相机参数的第二估计,以便生成使差异减小的对第二固有相机参数的经调整的估计和对第一固有相机参数的经调整的估计,其中对第二固有相机参数的经调整的估计是对第二固有相机参数的第三估计,并且对第一固有相机参数的经调整的估计是对第一固有相机参数的第三估计。
在实施例中,模拟校准图像可以包括各个图案元素的模拟像素坐标[u模拟v模拟]T。用于图案元素的模拟像素坐标可以是预测像素坐标,其基于相应的估计固有相机参数以及例如来预测图案将出现的位置。例如,模拟像素坐标可以基于关系:
在上面的示例中,K可以是对第一固有相机参数的第二估计,并且可以被调整以找到其第三估计。失真函数dx和dy可以基于对(一个或多个)对第二固有相机参数的第二估计,其可以被调整以找到其第三估计。另外,可以是从步骤909获得的估计,而[X′Y′Z′]图案是图案元素在图案坐标系中的已知坐标。
在上面的示例中,控制电路111可以计算相应的模拟像素坐标与实际像素坐标之间的距离,其中模拟像素坐标表示在[X′Y′Z′]图案处的图案元素在模拟校准图像中出现的坐标,并且实际像素坐标表示图案元素在相机捕获的校准图像中实际出现的位置。控制电路111可以通过调整对第一固有相机参数(投影矩阵K)的第二估计、对(一个或多个)第二固有相机参数的估计(例如,(一个或多个)失真参数)以及对的估计来执行优化,直到距离被最小化(例如,接近零)。这些参数的经调整的估计可以成为其第三估计。在实施例中,对第一固有相机参数的第三估计可以是对第一固有相机参数的最终估计,并且对第二固有相机参数的第三估计可以是对第二固有相机参数的最终估计,使得固有校准阶段的输出可以是对第一固有相机参数和对第二固有相机参数的第三估计。
如上所述,除了固有校准阶段之外,相机校准还可以包括立体校准阶段。例如,在涉及多于一个相机的系统中,诸如系统100A,其中机器人控制系统110被配置为与第一相机和第二相机通信。第一相机可以具有相对于第一相机的位置和朝向定义的第一相机坐标系,并且第二相机可以具有相对于第二相机的位置和朝向定义的第二相机坐标系。在这种情况下,机器人控制系统110的控制电路111可以被配置为通过确定描述第一相机坐标系与第二相机坐标系之间的关系的函数(例如,矩阵)来执行立体校准阶段。
例如,如果机器人控制系统110与多个相机通信,则机器人控制系统110可以被配置为估计多个相机中的每个相机的固有相机参数的值,并估计多个相机相对于彼此的位置和/或它们相对于彼此的朝向。在实施例中,两个相机(例如,图1A的170和180)之间的相对位置和朝向可以被表达为两个相机之间的平移向量和旋转矩阵。
如上所述,相机校准可以涉及手眼校准阶段。例如,在步骤911中,控制电路111可以基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计来确定对描述相机坐标系和世界坐标系之间的关系的变换函数(例如,)的估计。如上所述,相机坐标系可以是相对于相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对机器人的基座静止的位置定义的坐标系。步骤911可以直接基于对固有相机参数的第二估计,或者可以间接地基于它们。例如,步骤911可以直接基于对第一固有相机参数的第三估计和对第二固有相机参数的第三估计,它们又基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计。在这种情况下,步骤911间接地基于对固有相机参数的第二估计。
在实施例中,可以是第一变换函数的示例,并且可以是第二变换函数的示例。在一些情况下,可以基于第一变换函数确定第二变换函数。
在更具体的实例中,手眼校准的目标可以是基于和(其可以是第三变换函数的示例)来确定和(其可以是第四变换函数的示例)。
在实施例中,手眼校准可以基于以下关系:
在以上示例中,和可以在手眼校准阶段的开始时已知或被确定。例如,可以基于机器人控制系统110已经传送到机器人(例如,图1A的150)的移动命令来确定。在一个示例中,移动命令可以是引起形成机器人的机器人臂的连杆的旋转的电动机命令,并且可以根据由电动机命令引起的旋转来确定。在示例中,可以基于从固有校准阶段估计的投影矩阵K来确定。例如,基于以下关系:
在上面的示例中,可以是图案元素的相机视场中的坐标,并且可以从其中出现图案元素的校准图像以及从对投影矩阵的估计和对失真参数的估计来估计。在一些情况下,可以使用透视n点算法来估计,该算法可以使用对投影矩阵的估计和对相机的(一个或多个)失真参数的估计来确定对投影矩阵和(一个或多个)失真参数的这种估计可以来自固有校准阶段,或者可以是来自相机制造商的既定值。在另一个示例中,本身可以是固有校准阶段的副产品。例如,如果固有校准阶段使用Zhang的算法,则该算法可以输出对的估计,并且可以为手眼校准阶段保存该估计。
在实施例中,对于未知矩阵和等式 是非线性和非凸的。非凸形式可能限制迭代通过对矩阵的值的不同猜测的有效性,因为迭代可能导致仅局部最优的解,而不是全局最优的解。因此,手眼校准阶段的实现方案可以涉及将上述等式重新规划为凸形式。在实施例中,重新规划可以涉及将上述等式重写为向量化矩阵的Kronecker乘积。
更具体而言,上述等式可以被重写为:
该等式又可以被重写为两个等式:
RARX-RZRB=0
RZtB-RAtX+tZ=tA
在上述等式中,各种旋转矩阵和平移向量的命名法被写为如下:
可以使用上述矩阵和Kronecker乘积的向量化版本将上述等式重写为以下等式:
在上面的示例中,I3是3x3单位矩阵。上述等式是线性的和凸的,这可以促进求解RX,2X,Rz,tz即,的最优值。更具体而言,在上述等式中,项和可以是已知的,因为它们包括属于和的分量。因此,上述等式可以对作为未知项的求解。如上所述,该等式的线性和凸性可以使得它更容易对该未知项求解,其中对该未知项的解可以用于重构作为和的分量的RX,tX,Rz,tz。
在实施例中,上述等式的解可以导致不是完美的旋转矩阵的RX和Rz,因为它们各自可能包括彼此不正交的列向量。在该实施例中,控制电路111可以从RX导出确实具有彼此正交的列向量的矩阵类似地,控制电路111可以从Rz导出确实具有彼此正交的列向量的旋转矩阵在实施例中,控制电路111可以基于求解正交Procrustes问题来执行该操作,正交Procrustes问题涉及(就Frobenius范数而言)找到与非正交矩阵RX最近的正交矩阵并且找到与非正交矩阵Rz最近的正交矩阵在一些情况下,这可以经由奇异值分解来完成,奇异值分解可以涉及找到矩阵CX和DX使得等于RX。并且找到矩阵CZ和DZ使得等于Rz,其中Σ是对角矩阵。在该实施例中,可以被确定为并且可以被确定为
在实施例中,控制电路111可以使用正交矩阵和来进一步更新平移向量tX和tZ。经更新的平移向量可以被称为和在一些实现方案中,可以通过使用上面的等式RZtR-RAtX+tZ=tA来完成更新,但是用替换RZ,用替换tX并且用替换tZ。得到的等式可以被表达为其可以被重写为 可以针对和求解上述等式。得到的旋转矩阵和平移向量可以形成对和的估计,其可以被表达为:
在实施例中,手眼校准阶段可以涉及使用上述参数来确定作为校准图案的模拟图像的模拟校准图像,并且调整上述参数的值以便最小化模拟校准和作为校准图案的实际图像的实际校准图像之间的差异。更具体而言,控制电路111可以基于对第四变换函数(例如,)的估计、对第三变换函数(例如,)的估计、对第二变换函数(例如,)的估计,并且基于(直接或间接)对第一固有相机参数(例如,投影矩阵K)的第二估计来确定校准图案的模拟校准图像。模拟校准图像可以由例如图案元素出现在模拟校准图像中的位置的像素坐标来表示。像素坐标可以是模拟坐标,其中图案元素的模拟坐标可以是基于对上述变换函数的相应估计预测图案元素将在校准图像中出现的位置的预测坐标。例如,可以基于以下关系来计算模拟像素坐标:
在实施例中,模拟校准图像不需要考虑镜头失真的影响。在另一个实施例中,模拟校准图像确实考虑了镜头失真的影响,诸如通过将失真函数应用于X/Z和Y/Z。
在实施例中,可以将模拟校准图像与由相机捕获的实际校准图像的修改版本进行比较。修改版本可以补偿由相机的镜头引起的失真。更具体而言,实际校准图像可以由图案元素的像素坐标[u,v]T表示,并且可能表现出镜头失真。校准图像的修改版本可以由图案元素的像素坐标表示,并且可以针对镜头失真的影响进行补偿。如上所述,可以基于以下关系确定校准图像的修改版本:
在实施例中,控制电路111可以确定模拟校准图像中的图案元素的模拟像素坐标与由相机捕获的校准图像的修改版本中的对应图案元素的像素坐标之间(例如,和之间)的差异。在实施例中,该差异可以被表达为距离,其被确定为:
在实施例中,控制电路111可以至少调整对第四变换函数(例如,)的估计和对第二变换函数(例如,)的估计,以减小模拟校准图像与校准图像的修改版本之间的差异。例如,控制电路111可以调整和的分量的相应值、基于经调整的矩阵重新计算并基于重新计算的确定距离。控制电路111可以以最小化上述距离的方式重复进行调整。在实施例中,控制电路111可以调整上述矩阵以最小化模拟校准图像中的误差,其中误差可以是(a)校准图像的修改版本中的所有图案元素的相应像素坐标以及(b)模拟校准图像中相同的对应图案元素的相应像素之间的相应距离的总和。在实施例中,调整可以基于用于求解无约束非线性优化问题的优化算法,诸如Nelder-Mead算法、Broyden-Fletcher-Goldfarb-Shanno(BFGS)算法和梯度下降算法。在实施例中,上述优化还可以涉及对K和/或一个或多个失真参数的相应值的调整。在实施例中,优化的结果可以是手眼校准阶段的最终估计(例如,对和/或的最终估计)。
返回到图9B,方法900可以涉及在步骤911之后执行的步骤913。在步骤913中,控制电路111可以从相机接收后续图像,并且通过向机器人(例如,经由通信接口113)输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。例如,后续图像可以是传送带上的包裹或相机视场中的另一个对象的图像。相机可以自动地或者响应于由控制电路111生成并经由通信接口传送到相机的相机命令捕获后续图像。在实施例中,控制电路111可以基于对变换函数(例如,)的估计来生成后续移动命令。例如,可以用于基于以下关系确定被拍摄对象(例如,包裹)与将与对象交互的机器人之间的关系:
在上面的等式中,从相机校准确定并且在一些情况下可以从机器视觉算法来确定。因为本文讨论的相机校准产生更准确的校准信息,诸如更准确的的估计,因此校准信息可以产生更准确的对的估计,这可以允许以提供与对象更稳健的交互的方式来控制机器人。
图11A提供了图示相机校准的固有校准阶段的实施例的另一个图。在一些情况下,图11A中的操作可以由例如图1A的机器人控制系统110的图1A的控制电路111执行。在实施例中,固有校准阶段涉及其中接收多个校准图像的阶级0,其中校准图像是校准图案的图像。校准图案可以固定地附接到机器人的机器人臂,并且可以具有作为图案点的图案元素。每个图案点可以具有既定图案元素位置,该既定图案元素位置在该示例中可以是3D图案坐标对于多个校准图像的每个校准图像,每个图案点也可以具有图像图案元素位置(也被称为捕获图案元素位置),该图像图案元素位置在该示例中可以是2D像素坐标。在实施例中,固有校准阶段的阶级0涉及确定图案点在图案坐标系中的相应3D图案坐标,并确定图案点在多个校准图像中出现处的2D像素坐标。
在实施例中,固有校准阶段的阶级1涉及输入图案点的3D图案坐标和2D像素坐标、用于估计投影矩阵K、变换函数以及用于失真函数的失真参数的相应值的算法。例如,阶级1可以使用Zhang的算法来生成对投影矩阵K的第一估计。在该示例中,Zhang的算法或一些其它算法也可以在同一阶级中确定对和失真参数的相应值的估计,但是对于下一个阶级,这些估计可能被丢弃或以其它方式被忽略。在实施例中,Zhang的算法可以具有针对一个或多个相应失真参数的一个或多个猜测值作为可选输入。但是,在图11A的示例中,该可选输入未在阶级1中使用。
在实施例中,固有校准阶段的阶级2涉及将对投影矩阵K的第一估计输入到线矫直算法中,其中线矫直算法可以生成对失真参数的第一估计,或对一组失真参数的第一组相应估计。在实施例中,线矫直算法可以涉及以上关于方法900的步骤907和关于图10A和10B所讨论的操作。
在实施例中,固有校准阶段的阶级3涉及使用对失真参数的第一估计(或对多个失真参数的第一组相应估计)来生成对投影矩阵K的第二估计、对失真参数的第二估计(或对多个失真参数的第二组相应估计)以及对的估计。在一些情况下,Zhang的算法在阶级3再次使用。但是,该阶级可以使用对失真参数的第一估计(或者对多个失真参数的第一组相应估计)作为上面讨论的可选输入,其中可选输入可以是导致从Zhang的算法的更准确的输出的猜测。
在实施例中,固有校准阶段的阶级4涉及确定对投影矩阵的第三估计和对失真参数的第三估计(或对多个失真参数的第三组相应估计)。如图11A所绘出的,可以用优化器执行阶级4。如以上所讨论的,由优化器执行的优化可以涉及基于对的估计、对K的第二估计和对失真参数的第二估计来确定校准图案的模拟校准图像,并且将第二估计调整为使得最小化模拟校准图像与校准图案的实际校准图像之间的差异。
在图11A的上述实施例中,阶级1中的对和/或失真参数的相应值的估计对于下一阶级可以被丢弃或以其它方式被忽略。在另一个实施例中,上述估计中的一个或多个可以用于阶级1之后的任何阶级。例如,如图11B所示,阶级1中的对失真参数值的估计在固有校准阶段的阶级2中可以用作对失真参数值的初始猜测。另外,在图11B中,可以使用对的估计来在图12的手眼校准阶段的阶级2中执行手眼校准。
图12提供了图示相机校准的手眼校准阶段的示例实施例的图,并且该阶级也可以由图1A的机器人控制系统110执行。在一些情况下,手眼校准阶段在图11A的固有校准阶段之后执行。在实施例中,手眼校准阶段的阶级1涉及确定对和的估计。在一些情况下,基于电动机读数,其可以包括例如指示机器人的机器人臂的多个电动机的相应旋转量的传感器值。在一些情况下,基于图像处理算法,并且可以基于对投影矩阵K的最终估计和对失真参数的最终估计(或对多个失真参数的一组最终估计)。在一个示例中,可以来自图11B的固有校准阶段的阶级1。
在实施例中,手眼校准阶段的阶级2涉及确定和该确定可以包括例如求解方程
在实施例中,手眼校准阶段的阶级3涉及调整至少对和的估计。该调整可以由优化器执行,优化器可以基于最小化校准图案的模拟校准图像与校准图案的实际校准图像之间的差异来执行优化。如以上所讨论的,模拟校准图像可以基于在实施例中,对和的经调整的估计可以是手眼校准阶段的对其最终估计。
各种实施例的简要描述
本公开的实施例A1涉及一种机器人控制系统,包括通信接口和控制电路。通信接口被配置为与机器人和具有相机视场的相机通信,其中机器人具有基座和其上部署有校准图案的机器人臂。控制电路被配置为通过以下方式执行相机校准:a)确定适合于相机视场内的假想立方体的所有角落位置,b)确定分布在假想立方体上或遍布假想立方体的多个位置,c)通过经由通信接口向机器人输出移动命令来控制机器人臂,以将校准图案移动到分布在假想立方体上或遍布假想立方体的所述多个位置,d)经由通信接口从相机接收多个校准图像,其中所述多个校准图像由相机捕获,并且是校准图案在所述多个位置处的相应图像,e)基于所述多个校准图像确定对固有相机参数的相应估计,以及f)基于对固有相机参数的相应估计来确定:对描述相机坐标系和世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对机器人的基座静止的位置定义的坐标系。控制电路还被配置为在执行相机校准之后,经由通信接口从相机接收后续图像,并且通过经由通信接口向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。
实施例A2包括实施例A1的机器人控制系统,其中所述多个位置均匀地分布在假想立方体上或遍布假想立方体。
实施例A3包括实施例A2的机器人控制系统,其中在所述多个位置中的紧邻位置之间,所述多个位置具有沿着假想立方体的边缘所测量的均匀的间隔。
实施例A4包括实施例A1至A3中任一个的机器人控制系统,其中所述控制电路被配置为响应于确定机器人臂能够将校准图案移动到假想立方体的所有角落位置而控制机器人臂将校准图案移动到所述多个位置。
实施例A5包括实施例A4的机器人控制系统,其中所述控制电路被配置为仅响应于以下各项来控制机器人臂将校准图案移动到所述多个位置:(a)确定机器人臂能够将校准图案移动到假想立方体的所有角落位置,以及(b)确定机器人臂能够在假想立方体的所有角落位置中的每个角落位置处将校准图案倾斜到相对于相机的既定角度范围内的角度。
实施例A6包括实施例A5的机器人控制系统,其中所述假想立方体是由所述控制电路确定的第二假想立方体。在该实施例中,所述控制电路还被配置为确定适合于相机视场内的第一假想立方体。所述控制电路还被配置为确定机器人臂不能将校准图案移动到第一假想立方体的一个或多个角落位置,或者对于第一假想立方体的一个或多个角落位置,机器人臂不能将校准图案倾斜到相对于相机的既定角度范围内的角度。所述控制电路被配置为响应于以下各项中的至少一个来确定第二假想立方体的所有角落位置:(a)确定机器人臂不能将校准图案移动到第一假想立方体的一个或多个角落位置,或者(b)对于第一假想立方体的一个或多个角落位置,机器人臂不能将校准图案倾斜到相对于相机的既定角度范围内的角度。
实施例A7包括实施例A6的机器人控制系统,其中第一假想立方体是能够适合于相机视场内的最大尺寸的假想立方体,并且其中,第二假想立方体小于第一假想立方体。
实施例A8包括实施例A1-A7中任一个的机器人控制系统,其中所述多个位置恰好包括n3个位置,其中n是等于或大于2的整数。
实施例A9包括实施例A1-A8中任一个的机器人控制系统,其中所述控制电路被配置为经由移动命令控制机器人臂,以对于均匀地分布在假想立方体上或遍布假想立方体的所述多个位置,将校准图案相对于相机倾斜到不同的相应角度,使得所述多个相应的校准图像捕获相对于相机处于不同的相应角度的校准图案。
实施例A10包括实施例A1-A9中任一个的机器人控制系统,其中校准图案包括多个图案元素,并且其中控制电路被配置为在接收到所述多个校准图像之前从相机接收第一校准图像,其中第一校准图像是校准图案的图像并且是在捕获所述多个相应的校准图像之前由相机捕获的。控制电路还被配置为确定第一校准图像中的至少一个图案元素的强度水平和对比度水平,以及基于第一校准图像中的至少一个图案元素的强度水平和对比度水平中的至少一个,确定相机的曝光参数和聚焦参数的相应值。所述多个相应的校准图像由相机使用曝光参数和聚焦参数的所述相应值来捕获。
实施例A11包括实施例A4-A10中任一个的机器人控制系统,其中所述控制电路被配置为通过将假想立方体划分为多个非重叠区域,并且通过将所述多个位置中的相应位置指定为在所述多个非重叠区域中的每个区域中来确定所述多个位置。
实施例A12包括实施例A4-A11中任一个的机器人控制系统,其中所述控制电路被配置为通过一系列迭代确定所述多个位置,其中,所述多个位置的第一位置被确定为假想立方体内的任何位置,并且在所述一系列迭代的第一迭代期间被确定,其中假想立方体形成用于执行第一迭代的第一区域。在该实施例中,通过对剩余迭代中的每个迭代执行以下各项来确定用于剩余迭代的相应位置:(a)将用于执行先前迭代的区域划分为彼此不重叠的第一半个区域和第二半个区域,其中,第一半个区域和第二半个区域中的每一个是用于执行当前迭代的区域,(b)确定第一半个区域和第二半个区域中的哪一个包含先前位置,其中先前位置是所述多个位置中在先前迭代中确定的相应位置,(c)以及确定第一半个区域和第二半个区域中的另一个内的任何位置作为当前位置,其中当前位置是所述多个位置中被确定用于当前迭代的位置。
实施例A13涉及用于执行机器人控制的方法。在该实施例中,所述方法包括:a)由机器人控制系统确定指示相机视场的信息,其中机器人控制系统包括被配置为与相机以及与机器人通信的通信接口,机器人具有基座、机器人臂和部署在机器人臂上的校准图案,其中相机视场是相机的视场;b)由机器人控制系统确定适合于相机视场内的假想立方体的所有角落位置;c)由机器人控制系统确定分布在假想立方体上或遍布假想立方体的多个位置;d)由机器人控制系统将移动命令输出到通信接口,其中通信接口被配置为将移动命令传送到机器人以使机器人臂将校准图案移动到分布在假想立方体上或遍布假想立方体的所述多个位置;e)由机器人控制系统从通信接口接收多个校准图像,其中通信接口被配置为从相机接收所述多个校准图像,并且其中所述多个校准图像由相机捕获并且是校准图案在所述多个位置处的多个相应图像;f)由机器人控制系统基于所述多个校准图像确定对固有相机参数的相应估计;g)由机器人控制系统基于对固有相机参数的相应估计来确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于通信接口被配置为与之通信的相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对通信接口被配置为与之通信的机器人的基座静止的位置定义的坐标系;h)由机器人控制系统从通信接口接收后续图像,其中通信接口被配置为在确定对固有相机参数的相应估计和对变换函数的估计之后从相机接收后续图像;i)由机器人控制系统基于后续图像并基于对变换函数的估计生成后续移动命令;以及j)由机器人控制系统将后续移动命令输出到通信接口,其中通信接口被配置为将后续移动命令传送给机器人以控制机器人臂的放置。
实施例A14涉及一种具有存储在其上的指令的非瞬态计算机可读介质,所述指令当由机器人控制系统的控制电路执行时,使得所述控制电路通过以下方式执行相机校准:a)确定指示相机视场的信息,其中机器人控制系统包括被配置为与相机以及与机器人通信的通信接口,机器人具有基座、机器人臂和部署在机器人臂上的校准图案,其中相机视场是相机的视场;b)确定适合于相机视场内的假想立方体的所有角落位置;c)确定分布在假想立方体上或遍布假想立方体的多个位置;d)将移动命令输出到通信接口,其中通信接口被配置为将移动命令传送到机器人以使机器人臂将校准图案移动到分布在假想立方体上或遍布假想立方体的所述多个位置;e)从通信接口接收多个校准图像,其中通信接口被配置为从相机接收所述多个校准图像,并且其中所述多个校准图像由相机捕获并且是校准图案在所述多个位置处的多个相应图像;f)基于所述多个校准图像确定对固有相机参数的相应估计;g)基于对固有相机参数的相应估计来确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于通信接口被配置为与之通信的相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对通信接口被配置为与之通信的机器人的基座静止的位置定义的坐标系。所述指令当由机器人控制系统的控制电路执行时,还使得所述控制电路从通信接口接收后续图像,其中通信接口被配置为在确定对固有相机参数的相应估计和对变换函数的估计之后从相机接收后续图像。所述控制电路还被配置为通过经由通信接口向机器人输出后续移动命令来控制机器人臂的放置,后续移动命令基于后续图像并基于对变换函数的估计。
实施例B1涉及一种机器人控制系统,包括通信接口和控制电路。通信接口被配置为与以下各项通信:具有基座和其上部署有校准图案的机器人臂的机器人,以及具有相机视场的相机。校准图案包括在图案坐标系中具有相应的既定图案元素位置的多个图案元素,其中图案坐标系是相对于校准图案的位置和朝向定义的坐标系。控制电路被配置为通过以下方式执行相机校准:a)通过经由通信接口向机器人输出移动命令,控制机器人臂将校准图案移动到相机视场内的至少一个位置,b)经由通信接口从相机接收校准图像,其中校准图像由相机捕获并且是校准图案在所述至少一个位置处的图像,c)确定指示所述多个图案元素出现在校准图像中的相应位置的多个图像图案元素位置,d)基于所述多个图像图案元素位置并基于既定图案元素位置确定对第一固有相机参数的第一估计,e)在确定对第一固有相机参数的第一估计之后,基于对第一固有相机参数的第一估计并基于所述多个图像图案元素位置确定对第二固有相机参数的第一估计,f)基于对第二固有相机参数的第一估计,并基于所述多个图像图案元素位置和既定图案元素位置,确定对第一固有相机参数的第二估计和对第二固有相机参数的第二估计,以及g)基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计,确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对机器人的基座静止的位置定义的坐标系。控制电路还被配置为,在执行相机校准之后,从相机接收后续图像,并通过向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。
实施例B2包括实施例B1的机器人控制系统,其中所述变换函数是第二变换函数,并且其中所述控制电路被配置为通过基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计进一步确定对描述图案坐标系与相机坐标系之间的关系的第一变换函数的估计来执行相机校准,其中第二变换函数是基于第一变换函数确定的。
实施例B3包括实施例B1或B2的机器人控制系统,其中相机包括镜头和图像传感器,并且其中第一固有相机参数是描述到图像传感器上的图像投影的投影矩阵,并且其中第二固有相机参数是描述由镜头引起的失真的失真参数。
实施例B4包括实施例B1-B3中任一个的机器人控制系统。在该实施例中,控制电路被配置为通过以下方式确定对第二固有相机参数的第一估计:(a)确定对第二固有相机参数的初始估计,(b)基于对第二固有相机参数的初始估计、基于对第一固有相机参数的第一估计,以及基于校准图像,生成补偿由镜头引起的失真的校正图像的修改版本,(c)确定校准图像的修改版本中的弯曲量,(d)基于校准图像的修改版本中的弯曲量来调整对第二固有相机参数的初始估计,以便生成使弯曲量减小的对第二固有相机参数的经调整的估计,其中经调整的估计是对第二固有相机参数的第一估计。
实施例B5包括实施例B4的机器人控制系统,其中校准图案中的所述多个图案元素是多个点,并且其中所述控制电路被配置为通过以下方式确定弯曲量:在校准图像的修改版本中通过所述多个点拟合多条直线,并且基于所述多条直线中的每条直线与所述多个点中通过其拟合所述直线的相应点之间的相应距离来确定弯曲量。
实施例B6包括实施例B2-B5中的任何一个的机器人控制系统。在该实施例中,控制电路还被配置为通过以下方式确定对第二固有相机参数的第三估计和对第一固有相机参数的第三估计:(a)基于对第一变换函数的估计、对第二固有相机参数的第二估计以及对第一固有相机参数的第二估计来确定作为校准图案的模拟图像的模拟校准图像,(b)确定模拟校准图像和由相机捕获的校准图像之间的差异,(c)基于该差异调整对第二固有相机参数的第二估计和对第一固有相机参数的第二估计,以便生成使差异减小的对第二固有相机参数的经调整的估计和对第一固有相机参数的经调整的估计,其中对第二固有相机参数的经调整的估计是对第二固有相机参数的第三估计,并且对第一固有相机参数的经调整的估计是对第一固有相机参数的第三估计。另外,在该实施例中,基于对第二固有相机参数的第三估计和对第一固有相机参数的第三估计来确定对第一变换函数的估计。
实施例B7包括实施例B2至B6中任一个的机器人控制系统,其中机器人臂包括其上部署有校准图案的连杆。在该实施例中,控制电路被配置为进一步通过以下方式执行相机校准:确定对描述世界坐标系与连杆坐标系之间的关系的第三变换函数的估计,其中连杆坐标系是相对于连杆上的位置定义的坐标系,并且确定对描述图案坐标系与连杆坐标系之间的关系的第四变换函数的估计,其中对第二变换函数的估计和对第四变换函数的估计都是基于对第一变换函数的估计和对第三变换函数的估计而确定的。
实施例B8包括实施例B7的机器人控制系统,其中控制电路被配置为进一步通过以下方式执行相机校准:a)基于对第四变换函数的估计、对第三变换函数的估计、对第二变换函数的估计,以及对第一固有相机参数的第二估计,确定作为校准图案的模拟图像的模拟校准图像,b)基于对第二固有相机参数的第二估计,确定由相机捕获的校准图像的修改版本,以补偿由相机的镜头引起的失真,c)确定模拟校准图像和校准图像的修改版本之间的差异,以及d)至少调整对第四变换函数的估计和对第二变换函数的估计,以减小模拟校准图像和校准图像的修改版本之间的差异。
实施例B9包括实施例B1至B8中任一实施例的机器人控制系统,其中通信接口被配置为与之通信的相机是第一相机,并且相机坐标系是第一相机坐标系,并且通信接口被配置为与第二相机通信。在该实施例中,控制电路被配置为通过进一步确定第一相机坐标系和第二相机坐标系之间的关系来执行相机校准,其中第二相机坐标系是相对于第二相机的位置和朝向来定义的。
实施例B10涉及一种用于执行机器人控制的方法,该方法包括:a)由机器人控制系统生成用于输出到机器人控制系统的通信接口的移动命令,其中通信接口被配置为与具有基座和其上部署有校准图案的机器人臂的机器人通信,并且被配置为与具有相机视场的相机通信;b)由机器人控制系统将移动命令输出到通信接口,其中通信接口被配置为将移动命令传送给机器人,以使机器人臂将校准图案移动到相机视场中的至少一个位置;c)由机器人控制系统从通信接口接收校准图像,其中通信接口被配置为从相机接收校准图像,校准图像是校准图案在相机视场中的所述至少一个位置处的图像,并且其中校准图案包括在图案坐标系中具有相应的既定图案元素位置的多个图案元素,其中图案坐标系是相对于校准图案的位置和朝向定义的坐标系;d)由机器人控制系统从校准图像确定多个图像图案元素位置,其中所述多个图像图案元素位置指示所述多个图案元素出现在校准图像中的相应位置;e)由机器人控制系统基于所述多个图像图案元素位置并基于既定图案元素位置来确定对第一固有相机参数的第一估计;f)在已经确定对第一固有相机参数的第一估计之后,由机器人控制系统基于对第一固有相机参数的第一估计并基于所述多个图像图案元素位置来确定对第二固有相机参数的第一估计;g)由机器人控制系统基于对第二固有相机参数的第一估计并基于所述多个图像图案元素位置和既定图案元素位置确定对第一固有相机参数的第二估计和对第二固有相机参数的第二估计;h)由机器人控制系统基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计来确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于通信接口被配置为与之通信的相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对通信接口被配置为与之通信的机器人的基座静止的位置定义的坐标系;i)由机器人控制系统从通信接口接收后续图像,其中通信接口被配置为在已经确定对变换函数的估计之后从相机接收后续图像;j)由机器人控制系统基于后续图像并基于对变换函数的估计生成后续移动命令;以及k)由机器人控制系统将后续移动命令输出到通信接口,其中通信接口被配置为将后续移动命令输出到机器人以控制机器人臂的放置。
实施例B11涉及一种具有存储在其上的指令的非瞬态计算机可读介质,所述指令当由机器人控制系统的控制电路执行时,使得所述控制电路通过以下方式执行相机校准:a)生成用于输出到机器人控制系统的通信接口的移动命令,其中通信接口被配置为与具有基座和其上部署有校准图案的机器人臂的机器人通信,并且与具有相机视场的相机通信;b)将移动命令输出到通信接口,其中通信接口被配置为将移动命令传送给机器人,以使机器人臂将校准图案移动到相机视场中的至少一个位置;c)从通信接口接收校准图像,其中通信接口被配置为从相机接收校准图像,校准图像是校准图案在相机视场中的所述至少一个位置处的图像,并且其中校准图案包括在图案坐标系中具有相应的既定图案元素位置的多个图案元素,其中图案坐标系是相对于校准图案的位置和朝向定义的坐标系;d)从校准图像确定多个图像图案元素位置,其中所述多个图像图案元素位置指示所述多个图案元素出现在校准图像中的相应位置;e)基于所述多个图像图案元素位置并基于既定图案元素位置来确定对第一固有相机参数的第一估计;f)在已经确定对第一固有相机参数的第一估计之后,由机器人控制系统基于对第一固有相机参数的第一估计并基于所述多个图像图案元素位置来确定对第二固有相机参数的第一估计;g)基于对第二固有相机参数的第一估计并基于所述多个图像图案元素位置和既定图案元素位置确定对第一固有相机参数的第二估计和对第二固有相机参数的第二估计;h)基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计来确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于通信接口被配置为与之通信的相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对通信接口被配置为与之通信的机器人的基座静止的位置定义的坐标系。当所述指令由控制电路执行时还使得控制电路从通信接口接收后续图像,其中通信接口被配置为在执行相机校准之后从相机接收后续图像,并且通过经由通信接口向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。
本公开至少附加地公开了以下实施例。
1、一种机器人控制系统,包括:
通信接口,被配置为与机器人和具有相机视场的相机通信,其中,机器人具有基座和其上部署有校准图案的机器人臂;以及
控制电路,被配置为通过以下方式执行相机校准:
确定适合于相机视场内的假想立方体的所有角落位置,
确定分布在假想立方体上或遍布假想立方体的多个位置,
通过经由通信接口向机器人输出移动命令来控制机器人臂,以将校准图案移动到分布在假想立方体上或遍布假想立方体的所述多个位置,
经由通信接口从相机接收多个校准图像,其中所述多个校准图像由相机捕获,并且是校准图案在所述多个位置处的相应图像,
基于所述多个校准图像确定对固有相机参数的相应估计,以及
基于对固有相机参数的相应估计来确定:对描述相机坐标系和世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对机器人的基座静止的位置定义的坐标系,
其中控制电路还被配置为,在执行相机校准之后,经由通信接口从相机接收后续图像,并且通过经由通信接口向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。
2、如实施例1所述的机器人控制系统,其中所述多个位置均匀地分布在假想立方体上或遍布假想立方体。
3、如实施例2所述的机器人控制系统,其中在所述多个位置中的紧邻位置之间,所述多个位置具有沿着假想立方体的边缘所测量的均匀的间隔。
4、如实施例1所述的机器人控制系统,其中所述控制电路被配置为响应于确定机器人臂能够将校准图案移动到假想立方体的所有角落位置而控制机器人臂将校准图案移动到所述多个位置。
5、如实施例4所述的机器人控制系统,其中所述控制电路被配置为仅响应于以下各项来控制机器人臂将校准图案移动到所述多个位置:(a)确定机器人臂能够将校准图案移动到假想立方体的所有角落位置,以及(b)确定机器人臂能够在假想立方体的所有角落位置中的每个角落位置处将校准图案倾斜到相对于相机的既定角度范围内的角度。
6、如实施例5所述的机器人控制系统,其中所述假想立方体是由所述控制电路确定的第二假想立方体,并且其中,所述控制电路还被配置为:
确定适合于相机视场内的第一假想立方体,
确定机器人臂不能将校准图案移动到第一假想立方体的一个或多个角落位置,或者对于第一假想立方体的一个或多个角落位置,机器人臂不能将校准图案倾斜到相对于相机的既定角度范围内的角度,
其中,所述控制电路被配置为响应于以下各项中的至少一个来确定第二假想立方体的所有角落位置:(a)确定机器人臂不能将校准图案移动到第一假想立方体的一个或多个角落位置,或者(b)对于第一假想立方体的一个或多个角落位置,机器人臂不能将校准图案倾斜到相对于相机的既定角度范围内的角度。
7、如实施例6所述的机器人控制系统,其中第一假想立方体是能够适合于相机视场内的最大尺寸的假想立方体,并且其中,第二假想立方体小于第一假想立方体。
8、如实施例1所述的机器人控制系统,其中所述多个位置恰好包括n3个位置,其中n是等于或大于2的整数。
9、如实施例1所述的机器人控制系统,其中所述控制电路被配置为经由移动命令控制机器人臂,以对于均匀地分布在假想立方体上或遍布假想立方体的所述多个位置,将校准图案相对于相机倾斜到不同的相应角度,使得所述多个相应的校准图像捕获相对于相机处于不同的相应角度的校准图案。
10、如实施例1所述的机器人控制系统,其中校准图案包括多个图案元素,并且其中,所述控制电路被配置为:
在接收到所述多个校准图像之前从相机接收第一校准图像,其中第一校准图像是校准图案的图像并且是在捕获所述多个相应的校准图像之前由相机捕获的,
确定第一校准图像中的图案元素中的至少一个图案元素的强度水平和对比度水平,以及
基于第一校准图像中的图案元素中的至少一个图案元素的强度水平和对比度水平中的至少一个,确定相机的曝光参数和聚焦参数的相应值,
其中,所述多个相应的校准图像是由相机使用曝光参数和聚焦参数的所述相应值来捕获的。
11、如实施例1所述的机器人控制系统,其中所述控制电路被配置为通过将假想立方体划分为多个非重叠区域,并且通过将所述多个位置中的相应位置指定为在所述多个非重叠区域中的每个区域中来确定所述多个位置。
12、如实施例1所述的机器人控制系统,其中所述控制电路被配置为通过一系列迭代确定所述多个位置,其中,所述多个位置的第一位置被确定为假想立方体内的任何位置,并且在所述一系列迭代的第一迭代期间被确定,其中假想立方体形成用于执行第一迭代的第一区域,以及
其中,通过对剩余迭代中的每个迭代执行以下各项来确定剩余迭代的相应位置:(a)将用于执行先前迭代的区域划分为彼此不重叠的第一半个区域和第二半个区域,其中,第一半个区域和第二半个区域中的每一个是用于执行当前迭代的区域,(b)确定第一半个区域和第二半个区域中的哪一个包含先前位置,其中先前位置是所述多个位置中的在先前迭代中确定的相应位置,(c)以及确定第一半个区域和第二半个区域中的另一个内的任何位置作为当前位置,其中当前位置是所述多个位置中的被确定为用于当前迭代的位置。
13、一种用于执行机器人控制的方法,其中所述方法包括:
由机器人控制系统确定指示相机视场的信息,其中机器人控制系统包括被配置为与相机和与机器人通信的通信接口,所述机器人具有基座、机器人臂和部署在机器人臂上的校准图案,其中相机视场是相机的视场;
由机器人控制系统确定适合于相机视场内的假想立方体的所有角落位置;
由机器人控制系统确定分布在假想立方体上或遍布假想立方体的多个位置;
由机器人控制系统将移动命令输出到通信接口,其中通信接口被配置为将移动命令传送到机器人以使机器人臂将校准图案移动到分布在假想立方体上或遍布假想立方体的所述多个位置;
由机器人控制系统从通信接口接收多个校准图像,其中通信接口被配置为从相机接收所述多个校准图像,并且其中所述多个校准图像由相机捕获并且是校准图案在所述多个位置处的多个相应图像;
由机器人控制系统基于所述多个校准图像确定对固有相机参数的相应估计;
由机器人控制系统基于对固有相机参数的相应估计来确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于通信接口被配置为与之通信的相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对通信接口被配置为与之通信的机器人的基座静止的位置定义的坐标系;
由机器人控制系统从通信接口接收后续图像,其中通信接口被配置为在确定对固有相机参数的相应估计和对变换函数的估计之后从相机接收后续图像。
由机器人控制系统基于后续图像并基于对变换函数的估计生成后续移动命令;以及
由机器人控制系统将后续移动命令输出到通信接口,其中通信接口被配置为将后续移动命令传送给机器人以控制机器人臂的放置。
14、如实施例13所述的方法,其中所述多个位置均匀地分布在假想立方体上或遍布假想立方体。
15、如实施例14所述的方法,其中所述多个位置恰好包括n3个位置,其中n是等于或大于2的整数。
16、一种具有存储在其上的指令的非瞬态计算机可读介质,所述指令当由机器人控制系统的控制电路执行时,使得所述控制电路:
通过以下方式执行相机校准:
确定指示相机视场的信息,其中机器人控制系统包括被配置为与相机并且与机器人通信的通信接口,所述机器人具有基座、机器人臂和部署在机器人臂上的校准图案,其中相机视场是相机的视场,
确定适合于相机视场内的假想立方体的所有角落位置,
确定分布在假想立方体上或遍布假想立方体的多个位置,
将移动命令输出到通信接口,其中通信接口被配置为将移动命令传送到机器人以使机器人臂将校准图案移动到分布在假想立方体上或遍布假想立方体的所述多个位置,
从通信接口接收多个校准图像,其中通信接口被配置为从相机接收所述多个校准图像,并且其中所述多个校准图像由相机捕获并且是校准图案在所述多个位置处的多个相应图像,
基于所述多个校准图像确定对固有相机参数的相应估计,
基于对固有相机参数的相应估计,确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于通信接口被配置为与之通信的相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对通信接口被配置为与之通信的机器人的基座静止的位置定义的坐标系;
从通信接口接收后续图像,其中通信接口被配置为在确定对固有相机参数的相应估计和对变换函数的估计之后从相机接收后续图像;以及
通过经由通信接口向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。
17、如实施例16所述的非瞬态计算机可读介质,其中所述指令在由所述控制电路执行时还使得所述控制电路确定机器人臂是否能够将校准图案移动到假想立方体的所有角落位置,其中响应于确定机器人臂能够将校准图案移动到假想立方体的所有角落位置,输出用于将校准图案移动到所述多个位置的移动命令。
18、如实施例17所述的非瞬态计算机可读介质,其中所述指令在由所述控制电路执行时还使得所述控制电路确定机器人臂是否能够在假想立方体的所有角落位置的每个角落位置处将校准图案倾斜到相对于相机的既定角度范围内的角度,其中响应于以下各项来输出用于将校准图案移动到所述多个位置的移动命令:(a)确定机器人臂能够将校准图案移动到假想立方体的所有角落位置,以及(b)确定机器人臂能够在假想立方体的所有角落位置中的每个角落位置处将校准图案倾斜到相对于相机的既定角度范围内的角度。
19、如实施例18所述的非瞬态计算机可读介质,其中假想立方体是由控制电路确定的第二假想立方体,并且其中所述指令在由所述控制电路执行时还使得所述控制电路:
确定适合于相机视场内的第一假想立方体,
确定机器人臂不能将校准图案移动到第一假想立方体的一个或多个角落位置,或者对于第一假想立方体的一个或多个角落位置,机器人臂不能将校准图案倾斜到相对于相机的既定角度范围内的角度,
其中确定第二假想立方体的所有角落位置仅响应于以下各项中的至少一个:(a)确定机器人臂不能将校准图案移动到第一假想立方体的一个或多个角落位置,或者(b)对于第一假想立方体的一个或多个角落位置,机器人臂不能将校准图案倾斜到相对于相机的既定角度范围内的角度。
20、如实施例19所述的非瞬态计算机可读介质,其中第一假想立方体是能够适合于相机视场内的最大尺寸的假想立方体,并且其中第二假想立方体小于第一假想立方体。
21、一种机器人控制系统,包括:
通信接口,被配置为与以下各项通信:
具有基座和其上部署有校准图案的机器人臂的机器人,以及具有相机视场的相机,
其中校准图案包括在图案坐标系中具有相应的既定图案元素位置的多个图案元素,其中图案坐标系是相对于校准图案的位置和朝向定义的坐标系;以及
控制电路,被配置为通过以下方式执行相机校准:
通过经由通信接口向机器人输出移动命令,控制机器人臂将校准图案移动到相机视场内的至少一个位置,
经由通信接口从相机接收校准图像,其中校准图像由相机捕获并且是校准图案在所述至少一个位置处的图像,
确定多个图像图案元素位置,所述多个图像图案元素位置指示所述多个图案元素出现在校准图像中的相应位置,
基于所述多个图像图案元素位置并基于所述既定图案元素位置确定对第一固有相机参数的第一估计,
在确定对第一固有相机参数的第一估计之后,基于对第一固有相机参数的第一估计并基于所述多个图像图案元素位置确定对第二固有相机参数的第一估计,
基于对第二固有相机参数的第一估计,并基于所述多个图像图案元素位置和所述既定图案元素位置,确定对第一固有相机参数的第二估计和对第二固有相机参数的第二估计,以及
基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计,确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对机器人的基座静止的位置定义的坐标系,
其中所述控制电路还被配置为,在执行相机校准之后,从相机接收后续图像,并通过向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。
22、如实施例21所述的机器人控制系统,其中所述变换函数是第二变换函数,并且其中所述控制电路被配置为通过基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计进一步确定对描述图案坐标系与相机坐标系之间的关系的第一变换函数的估计来执行相机校准,其中第二变换函数是基于第一变换函数而确定的。
23、如实施例21所述的机器人控制系统,其中第一固有相机参数是投影矩阵,所述投影矩阵描述通信接口被配置为与之通信的相机的图像传感器上的图像投影,并且其中第二固有相机参数是失真参数,所述失真参数描述由通信接口被配置为与之通信的相机的镜头引起的镜头失真。
24、如实施例23所述的机器人控制系统,其中所述控制电路被配置为通过以下方式确定对第二固有相机参数的第一估计:(a)确定对第二固有相机参数的初始估计,(b)基于对第二固有相机参数的初始估计、基于对第一固有相机参数的第一估计,以及基于校准图像,生成补偿由镜头引起的镜头失真的校正图像的修改版本,(c)确定校准图像的修改版本中的弯曲量,(d)基于校准图像的修改版本中的弯曲量来调整对第二固有相机参数的初始估计,以便生成使弯曲量减小的对第二固有相机参数的经调整的估计,其中经调整的估计是对第二固有相机参数的第一估计。
25、如实施例24所述的机器人控制系统,其中校准图案中的所述多个图案元素是多个点,并且
其中所述控制电路被配置为通过以下方式确定弯曲量:在校准图像的修改版本中通过所述多个点拟合多条直线,并且基于所述多条直线中的每条直线与所述多个点中通过其拟合该直线的相应点之间的相应距离来确定弯曲量。
26、如实施例22所述的机器人控制系统,其中所述控制电路还被配置为通过以下方式确定对第二固有相机参数的第三估计和对第一固有相机参数的第三估计:(a)基于第一变换函数的估计、对第二固有相机参数的第二估计以及对第一固有相机参数的第二估计来确定作为校准图案的模拟图像的模拟校准图像,(b)确定模拟校准图像和由相机捕获的校准图像之间的差异,(c)基于所述差异调整对第二固有相机参数的第二估计和对第一固有相机参数的第二估计,以便生成使差异减小的对第二固有相机参数的经调整的估计和对第一固有相机参数的经调整的估计,其中对第二固有相机参数的经调整的估计是对第二固有相机参数的第三估计,并且对第一固有相机参数的经调整的估计是对第一固有相机参数的第三估计,以及
其中基于对第二固有相机参数的第三估计和对第一固有相机参数的第三估计来确定第一变换函数的估计。
27、如实施例22所述的机器人控制系统,其中所述控制电路被配置为进一步通过以下方式执行相机校准:
确定对描述世界坐标系与连杆坐标系之间的关系的第三变换函数的估计,其中连杆坐标系是相对于机器人臂的连杆上具有部署在所述连杆上的校准图案的位置定义的坐标系,以及
确定对描述图案坐标系与连杆坐标系之间的关系的第四变换函数的估计,其中对第二变换函数的估计和对第四变换函数的估计都是基于对第一变换函数的估计和对第三变换函数的估计确定的。
28、如实施例27所述的机器人控制系统,其中所述控制电路被配置为进一步通过以下方式执行相机校准:
基于对第四变换函数的估计、对第三变换函数的估计、对第二变换函数的估计,以及对第一固有相机参数的第二估计,确定作为校准图案的模拟图像的模拟校准图像,
基于对第二固有相机参数的第二估计,确定由相机捕获的校准图像的修改版本,以补偿由相机的镜头引起的镜头失真,
确定模拟校准图像和校准图像的修改版本之间的差异,以及
至少调整对第四变换函数的估计和对第二变换函数的估计,以减小模拟校准图像和校准图像的修改版本之间的所述差异。
29、如实施例27所述的机器人控制系统,其中通信接口被配置为与之通信的相机是第一相机,并且相机坐标系是第一相机坐标系,
其中通信接口被配置为与第二相机通信,以及
其中控制电路被配置为通过进一步确定第一相机坐标系和第二相机坐标系之间的关系来执行相机校准,其中第二相机坐标系相对于第二相机的位置和朝向来定义。
30、一种用于执行机器人控制的方法,所述方法包括:
由机器人控制系统生成用于输出到机器人控制系统的通信接口的移动命令,其中通信接口被配置为与具有基座和其上部署有校准图案的机器人臂的机器人通信,并且被配置为与具有相机视场的相机通信;
由机器人控制系统将移动命令输出到通信接口,其中通信接口被配置为将移动命令传送给机器人,以使机器人臂将校准图案移动到相机视场中的至少一个位置;
由机器人控制系统从通信接口接收校准图像,其中通信接口被配置为从相机接收校准图像,校准图像是校准图案在相机视场中的所述至少一个位置处的图像,并且其中校准图案包括在图案坐标系中具有相应的既定图案元素位置的多个图案元素,其中图案坐标系是相对于校准图案的位置和朝向定义的坐标系;
由机器人控制系统从校准图像确定多个图像图案元素位置,其中所述多个图像图案元素位置指示所述多个图案元素出现在校准图像中的相应位置;
由机器人控制系统基于所述多个图像图案元素位置并基于所述既定图案元素位置来确定对第一固有相机参数的第一估计;
在已经确定对第一固有相机参数的第一估计之后,由机器人控制系统基于对第一固有相机参数的第一估计并基于所述多个图像图案元素位置来确定对第二固有相机参数的第一估计;
由机器人控制系统基于对第二固有相机参数的第一估计并基于所述多个图像图案元素位置和所述既定图案元素位置确定对第一固有相机参数的第二估计和对第二固有相机参数的第二估计;
由机器人控制系统基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计来确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于通信接口被配置为与之通信的相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对通信接口被配置为与之通信的机器人的基座静止的位置定义的坐标系;
由机器人控制系统从通信接口接收后续图像,其中通信接口被配置为在已经确定变换函数的估计之后从相机接收后续图像;
由机器人控制系统基于后续图像并基于对变换函数的估计生成后续移动命令;以及
由机器人控制系统将后续移动命令输出到通信接口,其中通信接口被配置为将后续移动命令输出到机器人以控制机器人臂的放置。
31、如实施例30所述的方法,其中变换函数是第二变换函数,并且其中所述方法还包括:基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计来确定对描述图案坐标系和相机坐标系之间的关系的第一变换函数的估计,其中第二变换函数是基于第一变换函数确定的。
32、如实施例30所述的方法,其中确定对第二固有相机参数的第一估计包括:(a)确定对第二固有相机参数的初始估计,(b)基于对第二固有相机参数的初始估计、对第一固有相机参数的第一估计以及校准图像,生成补偿由镜头引起的镜头失真的校准图像的修改版本,(c)确定校准图像的修改版本中的弯曲量,(d)基于校准图像的修改版本中的弯曲量来调整对第二固有相机参数的初始估计,以便生成使弯曲量减小的对第二固有相机参数的经调整的估计,其中经调整的估计是对第二固有相机参数的第一估计。
33、如实施例31所述的方法,还包括通过以下方式确定对第二固有相机参数的第三估计和对第一固有相机参数的第三估计:(a)基于第一变换函数的估计、对第二固有相机参数的第二估计,以及对第一固有相机参数的第二估计来确定作为校准图案的模拟图像的模拟校准图像,(b)确定模拟校准图像与校准图像之间的差异,(c)基于所述差异调整对第二固有相机参数的第二估计和对第一固有相机参数的第二估计,以便生成使所述差异减小的对第二固有相机参数的经调整的估计和对第一固有相机参数的经调整的估计,其中对第二固有相机参数的经调整的估计是对第二固有相机参数的第三估计,并且对第一固有相机参数的经调整的估计是对第一固有相机参数的第三估计,以及
其中对第一变换函数的估计是基于对第二固有相机参数的第三估计和对第一固有相机参数的第三估计而确定的。
34、如实施例31所述的方法,还包括:
确定对描述世界坐标系与连杆坐标系之间关系的第三变换函数的估计,其中连杆坐标系是相对于机器人臂的连杆上的位置定义的坐标系,其中校准图案被布置在所述连杆上,以及
确定对描述图案坐标系与连杆坐标系之间关系的第四变换函数的估计,其中对第二变换函数的估计和对第四变换函数的估计都是基于对第一变换函数的估计和对第三变换函数的估计而确定的。
35、如实施例34所述的方法,还包括:
基于对第四变换函数的估计、对第三变换函数的估计、对第二变换函数的估计,以及对第一固有相机参数的第二估计,确定作为校准图案的模拟图像的模拟校准图像,
基于对第二固有相机参数的第二估计,确定校准图像的修改版本以补偿镜头失真,
确定模拟校准图像和校准图像的修改版本之间的差异,以及
至少调整对第四变换函数的估计和对第二变换函数的估计,以减小模拟校准图像和校准图像的修改版本之间的所述差异。
36、一种具有存储在其上的指令的非瞬态计算机可读介质,所述指令当由机器人控制系统的控制电路执行时,使得所述控制电路通过以下方式执行相机校准:
生成用于输出到机器人控制系统的通信接口的移动命令,其中通信接口被配置为与具有基座和其上部署有校准图案的机器人臂的机器人通信,并且与具有相机视场的相机通信;
将移动命令输出到通信接口,其中通信接口被配置为将移动命令传送给机器人,以使机器人臂将校准图案移动到相机视场中的至少一个位置;
从通信接口接收校准图像,其中通信接口被配置为从相机接收校准图像,校准图像是校准图案在相机视场中的所述至少一个位置处的图像,并且其中校准图案包括在图案坐标系中具有相应的既定图案元素位置的多个图案元素,其中图案坐标系是相对于校准图案的位置和朝向定义的坐标系;
从校准图像确定多个图像图案元素位置,其中所述多个图像图案元素位置指示所述多个图案元素出现在校准图像中的相应位置;
基于所述多个图像图案元素位置并基于所述既定图案元素位置来确定对第一固有相机参数的第一估计;
在已经确定对第一固有相机参数的第一估计之后,基于对第一固有相机参数的第一估计并基于所述多个图像图案元素位置来确定对第二固有相机参数的第一估计;
基于对第二固有相机参数的第一估计并基于所述多个图像图案元素位置和所述既定图案元素位置确定对第一固有相机参数的第二估计和对第二固有相机参数的第二估计;以及
基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计来确定对描述相机坐标系与世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于通信接口被配置为与之通信的相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对通信接口被配置为与之通信的机器人的基座静止的位置定义的坐标系,
其中当由所述控制电路执行时,所述指令还使得所述控制电路在执行相机校准之后从通信接口接收后续图像,其中通信接口被配置为从相机接收后续图像,并且其中当所述指令由所述控制电路执行时,还使得所述控制电路通过向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制通信接口被配置为与之通信的机器人的机器人臂的放置。
37、如实施例36所述的非瞬态计算机可读介质,其中变换函数是第二变换函数,并且其中当所述指令由所述控制电路执行时还使得所述控制电路基于对第一固有相机参数的第二估计和对第二固有相机参数的第二估计来确定对描述图案坐标系和相机坐标系之间的关系的第一变换函数的估计,其中第二变换函数是基于第一变换函数而确定的。
38、如实施例37所述的非瞬态计算机可读介质,其中当所述指令由所述控制电路执行时还使得所述控制电路通过以下方式确定对第二固有相机参数的第三估计和对第一固有相机参数的第三估计:(a)基于第一变换函数的估计、对第二固有相机参数的第二估计,以及对第一固有相机参数的第二估计来确定作为校准图案的模拟图像的模拟校准图像,(b)确定模拟校准图像与校准图像之间的差异,(c)基于所述差异调整对第二固有相机参数的第二估计和对第一固有相机参数的第二估计,以便生成使所述差异减小的对第二固有相机参数的经调整的估计和对第一固有相机参数的经调整的估计,其中对第二固有相机参数的经调整的估计是对第二固有相机参数的第三估计,并且对第一固有相机参数的经调整的估计是对第一固有相机参数的第三估计,以及
其中第一变换函数的估计是基于对第二固有相机参数的第三估计和对第一固有相机参数的第三估计来确定的。
39、如实施例37所述的非瞬态计算机可读介质,其中当所述指令由所述控制电路执行时还使得所述控制电路:
确定对描述世界坐标系与连杆坐标系之间关系的第三变换函数的估计,其中连杆坐标系是相对于机器人臂的连杆上的位置定义的坐标系,其中校准图案被布置在所述连杆上,以及
确定对描述图案坐标系与连杆坐标系之间关系的第四变换函数的估计,其中对第二变换函数的估计和对第四变换函数的估计都是基于对第一变换函数的估计和对第三变换函数的估计而确定的。
40、如实施例39所述的非瞬态计算机可读介质,其中当所述指令由所述控制电路执行时还使得所述控制电路:
基于对第四变换函数的估计、对第三变换函数的估计、对第二变换函数的估计,以及对第一固有相机参数的第二估计,确定作为校准图案的模拟图像的模拟校准图像,
基于对第二固有相机参数的第二估计,确定校准图像的修改版本以补偿镜头失真,
确定模拟校准图像和校准图像的修改版本之间的差异,以及
至少调整对第四变换函数的估计和对第二变换函数的估计,以减小模拟校准图像和校准图像的修改版本之间的所述差异。
虽然上面已经描述了各种实施例,但是应该理解的是,它们仅作为本发明的图示和示例给出,而不是作为限制。对于相关领域的技术人员将清楚的是,在不脱离本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本发明的广度和范围不应受任何上述示例性实施例的限制,而应仅根据所附权利要求及其等同物来既定。还应该理解的是,本文所讨论的每个实施例的每个特征以及本文引用的每个参考文献的每个特征可以与任何其它实施例的特征组合使用。本文讨论的所有专利和公开均通过引用整体并入本文。
Claims (10)
1.一种机器人控制系统,包括:
通信接口,被配置为与机器人和具有相机视场的相机通信,其中,机器人具有基座和其上部署有校准图案的机器人臂;以及
控制电路,被配置为通过以下方式执行相机校准:
确定适合于相机视场内的假想立方体的所有角落位置,
确定分布在假想立方体上或遍布假想立方体的多个位置,
通过经由通信接口向机器人输出移动命令来控制机器人臂,以将校准图案移动到分布在假想立方体上或遍布假想立方体的所述多个位置,
经由通信接口从相机接收多个校准图像,其中所述多个校准图像由相机捕获,并且是校准图案在所述多个位置处的相应图像,
基于所述多个校准图像确定对固有相机参数的相应估计,以及
基于对固有相机参数的相应估计来确定:对描述相机坐标系和世界坐标系之间的关系的变换函数的估计,其中相机坐标系是相对于相机的位置和朝向定义的坐标系,并且世界坐标系是相对于相对机器人的基座静止的位置定义的坐标系,
其中控制电路还被配置为,在执行相机校准之后,经由通信接口从相机接收后续图像,并且通过经由通信接口向机器人输出基于后续图像并基于对变换函数的估计的后续移动命令来控制机器人臂的放置。
2.如权利要求1所述的机器人控制系统,其中所述多个位置均匀地分布在假想立方体上或遍布假想立方体。
3.如权利要求2所述的机器人控制系统,其中在所述多个位置中的紧邻位置之间,所述多个位置具有沿着假想立方体的边缘所测量的均匀的间隔。
4.如权利要求1所述的机器人控制系统,其中所述控制电路被配置为响应于确定机器人臂能够将校准图案移动到假想立方体的所有角落位置而控制机器人臂将校准图案移动到所述多个位置。
5.如权利要求4所述的机器人控制系统,其中所述控制电路被配置为仅响应于以下各项来控制机器人臂将校准图案移动到所述多个位置:(a)确定机器人臂能够将校准图案移动到假想立方体的所有角落位置,以及(b)确定机器人臂能够在假想立方体的所有角落位置中的每个角落位置处将校准图案倾斜到相对于相机的既定角度范围内的角度。
6.如权利要求5所述的机器人控制系统,其中所述假想立方体是由所述控制电路确定的第二假想立方体,并且其中,所述控制电路还被配置为:
确定适合于相机视场内的第一假想立方体,
确定机器人臂不能将校准图案移动到第一假想立方体的一个或多个角落位置,或者对于第一假想立方体的一个或多个角落位置,机器人臂不能将校准图案倾斜到相对于相机的既定角度范围内的角度,
其中,所述控制电路被配置为响应于以下各项中的至少一个来确定第二假想立方体的所有角落位置:(a)确定机器人臂不能将校准图案移动到第一假想立方体的一个或多个角落位置,或者(b)对于第一假想立方体的一个或多个角落位置,机器人臂不能将校准图案倾斜到相对于相机的既定角度范围内的角度。
7.如权利要求6所述的机器人控制系统,其中第一假想立方体是能够适合于相机视场内的最大尺寸的假想立方体,并且其中,第二假想立方体小于第一假想立方体。
8.如权利要求1所述的机器人控制系统,其中所述多个位置恰好包括n3个位置,其中n是等于或大于2的整数。
9.如权利要求1所述的机器人控制系统,其中所述控制电路被配置为经由移动命令控制机器人臂,以对于均匀地分布在假想立方体上或遍布假想立方体的所述多个位置,将校准图案相对于相机倾斜到不同的相应角度,使得所述多个相应的校准图像捕获相对于相机处于不同的相应角度的校准图案。
10.如权利要求1所述的机器人控制系统,其中校准图案包括多个图案元素,并且其中,所述控制电路被配置为:
在接收到所述多个校准图像之前从相机接收第一校准图像,其中第一校准图像是校准图案的图像并且是在捕获所述多个相应的校准图像之前由相机捕获的,
确定第一校准图像中的图案元素中的至少一个图案元素的强度水平和对比度水平,以及
基于第一校准图像中的图案元素中的至少一个图案元素的强度水平和对比度水平中的至少一个,确定相机的曝光参数和聚焦参数的相应值,
其中,所述多个相应的校准图像是由相机使用曝光参数和聚焦参数的所述相应值来捕获的。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911372095.9A CN111015665B (zh) | 2019-03-07 | 2019-05-14 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN202210560896.3A CN115070755A (zh) | 2019-03-07 | 2019-05-14 | 执行自动相机校准以进行机器人控制的方法和系统 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/295,940 US10369698B1 (en) | 2019-03-07 | 2019-03-07 | Method and system for performing automatic camera calibration for robot control |
US16/295,940 | 2019-03-07 | ||
US16/362,471 US10373336B1 (en) | 2019-03-07 | 2019-03-22 | Method and system for performing automatic camera calibration for robot control |
US16/362,471 | 2019-03-22 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210560896.3A Division CN115070755A (zh) | 2019-03-07 | 2019-05-14 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN201911372095.9A Division CN111015665B (zh) | 2019-03-07 | 2019-05-14 | 执行自动相机校准以进行机器人控制的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110103219A true CN110103219A (zh) | 2019-08-09 |
CN110103219B CN110103219B (zh) | 2022-06-14 |
Family
ID=67477579
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910396865.7A Active CN110103219B (zh) | 2019-03-07 | 2019-05-14 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN201911372095.9A Active CN111015665B (zh) | 2019-03-07 | 2019-05-14 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN202210560896.3A Pending CN115070755A (zh) | 2019-03-07 | 2019-05-14 | 执行自动相机校准以进行机器人控制的方法和系统 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911372095.9A Active CN111015665B (zh) | 2019-03-07 | 2019-05-14 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN202210560896.3A Pending CN115070755A (zh) | 2019-03-07 | 2019-05-14 | 执行自动相机校准以进行机器人控制的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (5) | US10369698B1 (zh) |
JP (3) | JP6675722B1 (zh) |
CN (3) | CN110103219B (zh) |
DE (1) | DE102020105655B4 (zh) |
WO (1) | WO2020180342A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110834333A (zh) * | 2019-11-14 | 2020-02-25 | 中科新松有限公司 | 一种机器人手眼标定方法及存储介质 |
CN111015665A (zh) * | 2019-03-07 | 2020-04-17 | 牧今科技 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN111582196A (zh) * | 2020-02-13 | 2020-08-25 | 牧今科技 | 用于确定相机视场内的遮挡的方法和系统 |
CN111890371A (zh) * | 2019-03-29 | 2020-11-06 | 牧今科技 | 验证和更新机器人控制用校准信息的方法和控制系统 |
US11006039B1 (en) | 2020-02-13 | 2021-05-11 | Mujin, Inc. | Method and system for determining occlusion within a camera field of view |
US11014241B2 (en) | 2019-03-29 | 2021-05-25 | Mujin, Inc. | Method and control system for verifying and updating camera calibration for robot control |
US11468597B2 (en) * | 2018-04-10 | 2022-10-11 | Continental Automotive Gmbh | Correction method, and device for correcting image data |
US11590656B2 (en) | 2019-03-29 | 2023-02-28 | Mujin, Inc. | Method and control system for verifying and updating camera calibration for robot control |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6795471B2 (ja) * | 2017-08-25 | 2020-12-02 | ファナック株式会社 | ロボットシステム |
CN112677146A (zh) | 2019-10-18 | 2021-04-20 | 牧今科技 | 验证和更新机器人控制用校准信息的方法和控制系统 |
US10565737B1 (en) | 2019-07-09 | 2020-02-18 | Mujin, Inc. | Method and system for performing automatic camera calibration for a scanning system |
US12042942B2 (en) * | 2019-07-19 | 2024-07-23 | Siemens Ltd., China | Robot hand-eye calibration method and apparatus, computing device, medium and product |
KR102208708B1 (ko) * | 2019-08-14 | 2021-01-28 | 한국과학기술연구원 | 공통 좌표계 기반의 가상공간에서 가상 컨텐츠 제공 방법 및 장치 |
CN110517208B (zh) * | 2019-08-19 | 2023-06-16 | 广东弓叶科技有限公司 | 坐标系关联方法及系统 |
US10614340B1 (en) | 2019-09-23 | 2020-04-07 | Mujin, Inc. | Method and computing system for object identification |
CN111191083B (zh) * | 2019-09-23 | 2021-01-01 | 牧今科技 | 用于对象标识的方法和计算系统 |
US11370121B2 (en) * | 2019-10-29 | 2022-06-28 | Mujin, Inc. | Method and system for determining poses for camera calibration |
CN110640745B (zh) * | 2019-11-01 | 2021-06-22 | 苏州大学 | 基于视觉的机器人自动标定方法、设备和存储介质 |
CN110930460B (zh) * | 2019-11-15 | 2024-02-23 | 五邑大学 | 面向结构光3d视觉系统的全自动标定方法及装置 |
EP3834997A1 (en) * | 2019-12-11 | 2021-06-16 | Carl Zeiss Industrielle Messtechnik GmbH | Method and device for calibrating a machine vision device for position determination |
CN111055289B (zh) * | 2020-01-21 | 2021-09-28 | 达闼科技(北京)有限公司 | 机器人的手眼标定方法、装置、机器人及存储介质 |
EP4100874A1 (en) | 2020-02-06 | 2022-12-14 | Berkshire Grey Operating Company, Inc. | Systems and methods for camera calibration with a fiducial of unknown position on an articulated arm of a programmable motion device |
US20220388179A1 (en) * | 2020-02-12 | 2022-12-08 | Fanuc Corporation | Robot system |
US11130237B1 (en) | 2020-03-05 | 2021-09-28 | Mujin, Inc. | Method and computing system for performing container detection and object detection |
CN111515950B (zh) * | 2020-04-28 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 机器人坐标系变换关系确定方法、装置、设备和存储介质 |
DE102020206593A1 (de) * | 2020-05-27 | 2021-12-02 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung zur Kalibrierung mindestens eines Sensors |
US20210390671A1 (en) * | 2020-06-16 | 2021-12-16 | Samsung Electronics Co., Ltd. | Image processing system for performing image quality tuning and method of performing image quality tuning |
KR20210155695A (ko) | 2020-06-16 | 2021-12-23 | 삼성전자주식회사 | 화질 튜닝을 수행하는 이미지 처리 시스템 및 화질 튜닝 방법 |
JP7550546B2 (ja) * | 2020-06-24 | 2024-09-13 | 株式会社日立製作所 | 撮像システム構築装置 |
EP3968283A1 (en) * | 2020-09-14 | 2022-03-16 | Eppendorf AG | Method for calibrating an optical recording device |
JP7468288B2 (ja) * | 2020-10-16 | 2024-04-16 | オムロン株式会社 | キャリブレーション装置およびキャリブレーションの自動設定方法 |
US12073582B2 (en) | 2021-01-19 | 2024-08-27 | The Boeing Company | Method and apparatus for determining a three-dimensional position and pose of a fiducial marker |
CN117529270A (zh) * | 2021-06-07 | 2024-02-06 | 爱尔康公司 | 机器人相机系统的光轴校准 |
US11911915B2 (en) * | 2021-06-09 | 2024-02-27 | Intrinsic Innovation Llc | Determining robotic calibration processes |
US11941840B2 (en) | 2021-09-21 | 2024-03-26 | The Boeing Company | Method and apparatus for hand-off and tracking for pose estimation of a fiducial marker |
US12106517B2 (en) * | 2021-09-21 | 2024-10-01 | The Boeing Company | Method and apparatus for modeling dynamic intrinsic parameters of a camera |
CN114378825B (zh) * | 2022-01-21 | 2023-05-12 | 四川长虹智能制造技术有限公司 | 一种多相机视觉定位方法、系统及电子设备 |
US20230278221A1 (en) * | 2022-02-15 | 2023-09-07 | Symbotic Canada, Ulc | Apparatus and method for automatic pallet builder calibration |
TWI793044B (zh) * | 2022-07-07 | 2023-02-11 | 和碩聯合科技股份有限公司 | 機器手臂的手眼校正方法和手眼校正裝置 |
CN116038701B (zh) * | 2022-12-30 | 2023-12-05 | 北京中科原动力科技有限公司 | 一种四轴机械臂的手眼标定方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101909828A (zh) * | 2007-12-27 | 2010-12-08 | 莱卡地球系统公开股份有限公司 | 将至少一个物体高精度定位在空间最终位置的方法和系统 |
CN103209809A (zh) * | 2010-05-14 | 2013-07-17 | 康耐视公司 | 用于机器视觉系统和机器人之间的稳健校准的系统和方法 |
US20180178389A1 (en) * | 2016-12-22 | 2018-06-28 | Seiko Epson Corporation | Control apparatus, robot and robot system |
CN108297095A (zh) * | 2017-01-12 | 2018-07-20 | 发那科株式会社 | 校准装置、校准方法以及计算机能够读取的介质 |
CN108447095A (zh) * | 2018-01-31 | 2018-08-24 | 潍坊歌尔电子有限公司 | 一种鱼眼相机标定方法和装置 |
CN108717715A (zh) * | 2018-06-11 | 2018-10-30 | 华南理工大学 | 一种用于弧焊机器人的线结构光视觉系统自动标定方法 |
CN111015665A (zh) * | 2019-03-07 | 2020-04-17 | 牧今科技 | 执行自动相机校准以进行机器人控制的方法和系统 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2690603B2 (ja) * | 1990-05-30 | 1997-12-10 | ファナック株式会社 | 視覚センサのキャリブレーション方法 |
DE10164944B4 (de) * | 2001-10-15 | 2013-03-28 | Hermann, Dr.-Ing. Tropf | Vorrichtung und Verfahren zur Korrektur der Bewegung von Greif- und Bearbeitungswerkzeugen |
JP4021413B2 (ja) | 2004-01-16 | 2007-12-12 | ファナック株式会社 | 計測装置 |
JP4250620B2 (ja) * | 2005-07-29 | 2009-04-08 | キヤノン株式会社 | 情報処理方法および装置 |
JP4267005B2 (ja) * | 2006-07-03 | 2009-05-27 | ファナック株式会社 | 計測装置及びキャリブレーション方法 |
JP5365218B2 (ja) * | 2009-01-28 | 2013-12-11 | 富士電機株式会社 | ロボットビジョンシステムおよび自動キャリブレーション方法 |
CN103503025B (zh) | 2011-02-25 | 2016-09-07 | 弗劳恩霍夫应用研究促进协会 | 基于对对象的模型进行变换来确定模型参数 |
GB201107385D0 (en) * | 2011-05-04 | 2011-06-15 | Materialise Nv | Medical imaging calibration device |
BR112015007050A2 (pt) | 2012-10-05 | 2017-07-04 | Beckman Coulter Inc | sistema e método para autoalinhamento baseado em câmera |
US9457470B2 (en) * | 2013-04-05 | 2016-10-04 | Abb Technology Ltd | Robot system and method for calibration |
JP6468741B2 (ja) * | 2013-07-22 | 2019-02-13 | キヤノン株式会社 | ロボットシステム及びロボットシステムの校正方法 |
JP6163942B2 (ja) * | 2013-07-29 | 2017-07-19 | 富士通株式会社 | 情報処理装置、制御方法、及びプログラム |
JP2015174191A (ja) * | 2014-03-17 | 2015-10-05 | 株式会社安川電機 | ロボットシステム、ロボットシステムのキャリブレーション方法およびロボットシステムの位置補正方法 |
JP6429473B2 (ja) * | 2014-03-20 | 2018-11-28 | キヤノン株式会社 | ロボットシステム、ロボットシステムの校正方法、プログラム、およびコンピュータ読み取り可能な記録媒体 |
US9211643B1 (en) * | 2014-06-25 | 2015-12-15 | Microsoft Technology Licensing, Llc | Automatic in-situ registration and calibration of robotic arm/sensor/workspace system |
JP6565175B2 (ja) * | 2014-11-21 | 2019-08-28 | セイコーエプソン株式会社 | ロボットおよびロボットシステム |
JP6486679B2 (ja) * | 2014-12-25 | 2019-03-20 | 株式会社キーエンス | 画像処理装置、画像処理システム、画像処理方法及びコンピュータプログラム |
WO2017139330A1 (en) | 2016-02-08 | 2017-08-17 | Berkshire Grey Inc. | Systems and methods for providing processing of a variety of objects employing motion planning |
JP2017147585A (ja) * | 2016-02-17 | 2017-08-24 | セイコーエプソン株式会社 | データ転送システム、データ転送装置、受信装置、及びデータ転送方法 |
WO2018050223A1 (en) * | 2016-09-14 | 2018-03-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Pattern detection |
US10076842B2 (en) * | 2016-09-28 | 2018-09-18 | Cognex Corporation | Simultaneous kinematic and hand-eye calibration |
KR102576842B1 (ko) * | 2017-01-04 | 2023-09-12 | 삼성전자주식회사 | 핸드-아이 캘리브레이션을 수행하는 로봇 및 전자 장치 |
JP7003463B2 (ja) * | 2017-07-11 | 2022-01-20 | セイコーエプソン株式会社 | ロボットの制御装置、ロボットシステム、並びに、カメラの校正方法 |
CN109816733B (zh) * | 2019-01-14 | 2023-08-18 | 京东方科技集团股份有限公司 | 相机参数初始化方法及装置、相机参数标定方法及设备、图像采集系统 |
-
2019
- 2019-03-07 US US16/295,940 patent/US10369698B1/en active Active
- 2019-03-22 US US16/362,471 patent/US10373336B1/en active Active
- 2019-05-14 CN CN201910396865.7A patent/CN110103219B/zh active Active
- 2019-05-14 CN CN201911372095.9A patent/CN111015665B/zh active Active
- 2019-05-14 CN CN202210560896.3A patent/CN115070755A/zh active Pending
- 2019-06-07 JP JP2019106616A patent/JP6675722B1/ja active Active
- 2019-06-28 US US16/456,074 patent/US10628966B1/en active Active
- 2019-07-08 US US16/505,466 patent/US10636172B1/en active Active
- 2019-07-16 US US17/436,727 patent/US20220172399A1/en active Pending
- 2019-07-16 WO PCT/US2019/042047 patent/WO2020180342A1/en active Application Filing
-
2020
- 2020-01-08 JP JP2020001312A patent/JP6688523B1/ja active Active
- 2020-03-03 DE DE102020105655.9A patent/DE102020105655B4/de active Active
- 2020-03-30 JP JP2020060752A patent/JP7414222B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101909828A (zh) * | 2007-12-27 | 2010-12-08 | 莱卡地球系统公开股份有限公司 | 将至少一个物体高精度定位在空间最终位置的方法和系统 |
CN103209809A (zh) * | 2010-05-14 | 2013-07-17 | 康耐视公司 | 用于机器视觉系统和机器人之间的稳健校准的系统和方法 |
US20180178389A1 (en) * | 2016-12-22 | 2018-06-28 | Seiko Epson Corporation | Control apparatus, robot and robot system |
CN108297095A (zh) * | 2017-01-12 | 2018-07-20 | 发那科株式会社 | 校准装置、校准方法以及计算机能够读取的介质 |
CN108447095A (zh) * | 2018-01-31 | 2018-08-24 | 潍坊歌尔电子有限公司 | 一种鱼眼相机标定方法和装置 |
CN108717715A (zh) * | 2018-06-11 | 2018-10-30 | 华南理工大学 | 一种用于弧焊机器人的线结构光视觉系统自动标定方法 |
CN111015665A (zh) * | 2019-03-07 | 2020-04-17 | 牧今科技 | 执行自动相机校准以进行机器人控制的方法和系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11468597B2 (en) * | 2018-04-10 | 2022-10-11 | Continental Automotive Gmbh | Correction method, and device for correcting image data |
CN111015665A (zh) * | 2019-03-07 | 2020-04-17 | 牧今科技 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN111015665B (zh) * | 2019-03-07 | 2020-12-04 | 牧今科技 | 执行自动相机校准以进行机器人控制的方法和系统 |
CN111890371A (zh) * | 2019-03-29 | 2020-11-06 | 牧今科技 | 验证和更新机器人控制用校准信息的方法和控制系统 |
CN111890371B (zh) * | 2019-03-29 | 2021-05-04 | 牧今科技 | 验证和更新机器人控制用校准信息的方法和控制系统 |
US11014241B2 (en) | 2019-03-29 | 2021-05-25 | Mujin, Inc. | Method and control system for verifying and updating camera calibration for robot control |
US11590656B2 (en) | 2019-03-29 | 2023-02-28 | Mujin, Inc. | Method and control system for verifying and updating camera calibration for robot control |
US11883964B2 (en) | 2019-03-29 | 2024-01-30 | Mujin, Inc. | Method and control system for verifying and updating camera calibration for robot control |
CN110834333A (zh) * | 2019-11-14 | 2020-02-25 | 中科新松有限公司 | 一种机器人手眼标定方法及存储介质 |
CN111582196A (zh) * | 2020-02-13 | 2020-08-25 | 牧今科技 | 用于确定相机视场内的遮挡的方法和系统 |
US11006039B1 (en) | 2020-02-13 | 2021-05-11 | Mujin, Inc. | Method and system for determining occlusion within a camera field of view |
US11924559B2 (en) | 2020-02-13 | 2024-03-05 | Mujin, Inc. | Method and system for determining occlusion within a camera field of view |
Also Published As
Publication number | Publication date |
---|---|
WO2020180342A1 (en) | 2020-09-10 |
DE102020105655B4 (de) | 2021-04-22 |
DE102020105655A1 (de) | 2020-09-10 |
JP2020144829A (ja) | 2020-09-10 |
US10373336B1 (en) | 2019-08-06 |
CN111015665A (zh) | 2020-04-17 |
CN115070755A (zh) | 2022-09-20 |
JP6688523B1 (ja) | 2020-04-28 |
JP2020142367A (ja) | 2020-09-10 |
JP2020142361A (ja) | 2020-09-10 |
CN111015665B (zh) | 2020-12-04 |
US20220172399A1 (en) | 2022-06-02 |
US10628966B1 (en) | 2020-04-21 |
CN110103219B (zh) | 2022-06-14 |
US10369698B1 (en) | 2019-08-06 |
JP6675722B1 (ja) | 2020-04-01 |
JP7414222B2 (ja) | 2024-01-16 |
US10636172B1 (en) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110103219A (zh) | 执行自动相机校准以进行机器人控制的方法和系统 | |
JP6859442B2 (ja) | キャリブレーション装置、キャリブレーションシステム、およびキャリブレーション方法 | |
CN109754432B (zh) | 一种相机自动标定方法及光学动作捕捉系统 | |
CN107003109B (zh) | 校准装置、校准方法、光学装置、摄影装置、投影装置、测量系统以及测量方法 | |
CN106408612B (zh) | 机器视觉系统校准 | |
CN106682673B (zh) | 图像处理装置以及方法 | |
CN103302666B (zh) | 信息处理设备和信息处理方法 | |
CN110136208A (zh) | 一种机器人视觉伺服系统的联合自动标定方法及装置 | |
US5832106A (en) | Method for camera calibration of range imaging system by use of neural network | |
US20070076977A1 (en) | Method for calibrating camera parameters | |
EP2972585A1 (en) | System and method for calibrating a display system using a short throw camera | |
CN108364252A (zh) | 一种多鱼眼镜头全景相机的矫正和标定方法 | |
CN109389642A (zh) | 视觉系统对机器人的标定方法、系统和具有存储功能装置 | |
CN111899305A (zh) | 一种相机自动标定优化方法及相关系统、设备 | |
CN113284083A (zh) | 执行自动相机校准的方法和系统 | |
CN109887002A (zh) | 图像特征点的匹配方法、装置、计算机设备和存储介质 | |
JP2016014720A (ja) | 情報処理装置および方法 | |
CN116071433A (zh) | 相机标定方法和系统、计算机可读存储介质 | |
CN109389645B (zh) | 相机自校准方法、系统、相机、机器人及云端服务器 | |
JP2013036831A (ja) | キャリブレーション装置及び歪み誤差算出方法 | |
CN111445537A (zh) | 一种摄像机的标定方法及系统 | |
CN110136068A (zh) | 基于双侧远心镜头相机之间位置标定的音膜球顶装配系统 | |
CN117173254A (zh) | 一种相机标定方法、系统、装置和电子设备 | |
CN115457142B (zh) | 一种mr混合摄影相机的标定方法和系统 | |
US20220402141A1 (en) | Method and apparatus for calibrating position of robot using 3d scanner |
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 |