CN107871328A - 机器视觉***和机器视觉***实现的校准方法 - Google Patents
机器视觉***和机器视觉***实现的校准方法 Download PDFInfo
- Publication number
- CN107871328A CN107871328A CN201710896174.4A CN201710896174A CN107871328A CN 107871328 A CN107871328 A CN 107871328A CN 201710896174 A CN201710896174 A CN 201710896174A CN 107871328 A CN107871328 A CN 107871328A
- Authority
- CN
- China
- Prior art keywords
- posture
- robot
- calibration parameter
- calibration
- control system
- 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
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/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
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera 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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/401—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for measuring, e.g. calibration and initialisation, measuring workpiece for machining purposes
-
- 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
- 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/04—Viewing devices
-
- 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
-
- 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
-
- 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
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- 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
-
- 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
- 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
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- 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/39—Robotics, robotics to robotics hand
- G05B2219/39045—Camera on end effector detects reference pattern
-
- 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/39057—Hand eye calibration, eye, camera on hand, 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40607—Fixed camera to observe workspace, object, workpiece, global
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Robotics (AREA)
- Theoretical Computer Science (AREA)
- Mechanical Engineering (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本申请公开了机器视觉***和机器视觉***实现的校准方法。描述了机器视觉***以及用于同步运动学和手眼校准的方法。一种机器视觉***包括机器人或运动台以及与控制***进行通信的相机。所述控制***被配置用于将所述机器人或运动台移动到多个姿势,并且针对每个姿势:捕获校准目标特征的图像和机器人关节角或运动台编码器计数。所述控制***被配置用于获得机器人或运动台校准参数的初始值,以及基于所述机器人或运动台校准参数的所述初始值、所述图像、以及所述关节角或编码器计数确定手眼校准参数的初始值。所述控制***被配置成用于通过对所述手眼校准参数和机器人或运动台校准参数进行精化来确定所述手眼校准参数和机器人或运动台校准参数的最终值以最小化代价函数。
Description
技术领域
本技术总体上涉及机器视觉***,并且更具体地涉及通过同步精化机器人/运动台的运动链和手眼校准参数来校准机器视觉***。
背景技术
在机器视觉***中,可以使用一个或多个相机对成像场景中的对象或表面执行视觉***处理。这些处理可以包括检查、对齐、和/或多种其他任务。由一个或多个相机所捕获的图像可以由机器视觉***进行处理,以确定成像场景内特征的信息,如特征在现实世界中的位置、姿势等。在某些应用中,机器视觉***可以包括机器人、运动台、或者其姿势和移动受控于机器视觉***(例如,视觉导引式机器人(VGR)应用)的其他设备。例如,机器视觉***可以分析由一个或多个相机所捕获的图像,以确定如何移动机器人或运动台,从而移动成像场景中的对象或者与其进行交互。在某些应用中,可以对机器视觉***进行校准,以允许机器视觉***以增加的准确度和可靠性执行视觉任务。
发明内容
通过对机器人/运动台的运动学建模和机器视觉***的校准进行改进,本文所述的技术可以改进现有机器视觉***的准确度和精度。
在一方面,具有机器视觉***。所述机器视觉***包括机器人。所述机器视觉***包括相机。所述机器视觉***包括与所述机器人和相机进行通信的控制***。所述控制***被配置成用于将所述机器人移动到多个姿势,并且针对所述多个姿势中的每个姿势:用所述相机捕获校准目标上的一个或多个特征的图像。所述控制***被配置成用于获得针对多个机器人校准参数的多个初始值。所述控制***被配置成用于基于针对所述多个机器人校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的图像和所述多个机器人关节角确定针对多个手眼校准参数的多个初始值。所述控制***被配置成用于通过对所述多个手眼校准参数中的一个或多个参数以及所述多个机器人校准参数中的一个或多个参数进行精化来确定针对所述多个手眼校准参数的多个最终值以及针对所述机器人校准参数的多个最终值,从而最小化代价函数。
在某些实施例中,所述控制***被进一步配置成用于将针对所述多个手眼校准参数的所述多个最终值以及针对所述机器人校准参数的所述多个最终值用于视觉导引式机器人应用。在某些实施例中,所述控制***被进一步配置成用于使用针对所述机器人校准参数的所述多个最终值移动所述机器人。
在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述图像中的特征的被观察的位置与所述特征的预期位置之间的差异,所述预期位置是基于针对所述多个机器人校准参数的第一多个值、针对所述手眼校准参数的第二多个值以及针对所述姿势所捕获的多个机器人关节角而确定的。在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量复合变换与恒等变换之间的差异,所述复合变换是从第一坐标空间到第二坐标空间的第一变换与从所述第二坐标空间到所述第一坐标空间的第二变换的复合,所述第一变换和所述第二变换是基于针对所述多个机器人校准参数的第一多个值、针对所述多个手眼校准参数的第二多个值、针对所述姿势的所述校准目标的所述多个被观察的特征以及针对所述姿势所捕获的所述多个机器人关节角而确定的。在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述多个机器人关节角中的机器人关节角与针对所述姿势的所估计的关节角之间的差异,所述所估计的关节角基于针对所述多个机器人校准参数的第一多个值针对所述多个手眼校准参数的第二多个值、以及针对所述姿势的所述校准目标的所述多个被观察的特征而确定。
在某些实施例中,所述控制***被进一步配置成用于使用非线性最小二乘法来最小化所述代价函数。在某些实施例中,所述控制***被配置成用于精化少于所述多个手眼校准参数的全部和少于所述多个机器人校准参数的全部。在某些实施例中,所述多个机器人校准参数包括针对所述机器人的迪纳维特-哈坦伯格(Denavit–Hartenberg)参数。
在另一方面,存在一种机器视觉***实现的校准方法。所述方法包括由控制***将机器人移动到多个姿势,并且针对所述多个姿势中的每个姿势:由相机捕获校准目标上的一个或多个特征的图像,以及由所述控制***捕获多个机器人关节角。所述方法包括由所述控制***获得针对多个机器人校准参数的多个初始值。所述方法包括:由所述控制***基于针对所述多个机器人校准参数的所述多个初始值,以及针对所述多个姿势中的每个姿势所捕获的所述图像和所述多个机器人关节角来确定针对多个手眼校准参数的多个初始值。所述方法包括:由所述控制***通过对所述多个手眼校准参数中的一个或多个参数以及所述多个机器人校准参数中的一个或多个参数进行精化来确定针对所述多个手眼校准参数的多个最终值以及针对所述多个机器人校准参数的多个最终值,从而最小化代价函数。
在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的图像中的特征的被观察的位置与所述特征的预期位置之间的差异,所述预期位置是基于针对所述多个机器人校准参数的第一多个值、针对所述手眼校准参数的第二多个值以及针对所述姿势所捕获的多个机器人关节角而确定的。在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量复合变换与恒等变换之间的差异,所述复合变换是从第一坐标空间到第二坐标空间的第一变换与从所述第二坐标空间到所述第一坐标空间的第二变换的复合,所述第一变换和所述第二变换是基于针对所述多个机器人校准参数的第一多个值、针对所述多个手眼校准参数的第二多个值、针对所述姿势的所述校准目标的所述多个被观察的特征以及针对所述姿势所捕获的所述多个机器人关节角而确定的。在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述多个机器人关节角的一个机器人关节角与针对所述姿势的所估计的关节角之间的差异,所述所估计的关节角是基于针对所述多个机器人校准参数的第一多个值、针对所述多个手眼校准参数的第二多个值以及针对所述姿势的所述校准目标的所述多个被观察的特征而确定的。
在某些实施例中,所述方法包括使用非线性最小二乘法来最小化所述代价函数。在某些实施例中,所述方法包括精化少于所述多个手眼校准参数的全部和少于所述多个机器人校准参数的全部。在某些实施例中,所述多个机器人校准参数包括针对所述机器人的迪纳维特-哈坦伯格参数。
在另一方面,具有机器视觉***。所述机器视觉***包括运动台。所述机器视觉***包括相机。所述机器视觉***包括与运动台和相机进行通信的控制***。所述控制***被配置成用于将所述运动台移动到多个姿势,并且针对所述多个姿势中的每个姿势:用所述相机捕获校准目标上的一个或多个特征的图像以及捕获针对所述运动台的多个致动器的多个编码器计数。所述控制***被配置成用于获得针对多个运动台校准参数的多个初始值。所述控制***被配置成用于基于针对所述多个运动台校准参数的所述多个初始值,以及针对所述多个姿势中的每个姿势所捕获的所述图像和所述多个编码器计数确定针对多个手眼校准参数的多个初始值。所述控制***被配置成用于通过对所述多个手眼校准参数中的一个或多个手眼校准参数以及所述多个运动台校准参数中的一个或多个运动台校准参数进行精化来确定针对所述多个手眼校准参数的多个最终值以及针对所述运动台校准参数的多个最终值,从而最小化代价函数。
在某些实施例中,所述控制***被进一步配置成用于将针对所述多个手眼校准参数的所述多个最终值以及针对所述运动台校准参数的所述多个最终值用于视觉导引式运动台应用。在某些实施例中,所述控制***被进一步配置成用于使用针对所述运动台校准参数的所述多个最终值移动所述运动台。
在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述图像中的特征的被观察的位置与所述特征的预期位置之间的差异,所述预期位置是基于针对所述多个运动台校准参数的第一多个值、针对所述手眼校准参数的第二多个值以及针对所述姿势所捕获的多个编码器计数而确定的。在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述多个编码器计数中的编码器计数与针对所述姿势的所估计的编码器计数之间的差异,所述所估计的编码器计数是基于针对所述多个运动台校准参数的第一多个值、针对所述多个手眼校准参数的第二多个值以及针对所述姿势的所述校准目标的所述多个被观察的特征而确定的。
在某些实施例中,所述控制***被进一步配置成用于使用非线性最小二乘法来最小化所述代价函数。在某些实施例中,所述控制***被配置成用于精化少于所述多个手眼校准参数的全部和少于所述多个运动台校准参数的全部。在某些实施例中,所述多个运动台校准参数包括滚轮中心位置、滚轮半径、方向、步长、复原(home)编码器计数、以及致动器的撞针板的方向中的一个或多个。
在另一方面中,存在一种机器视觉***实现的校准方法。所述方法包括通过由控制***将运动台移动到多个姿势,并且针对所述多个姿势中的每个姿势:由相机捕获校准目标上的一个或多个特征的图像;以及由所述控制***捕获针对所述运动台的多个致动器的多个编码器计数。所述方法包括由所述控制***获得针对多个运动台校准参数的多个初始值。所述方法包括:由所述控制***基于针对所述多个运动台校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的所述图像和所述多个编码器计数来确定针对多个手眼校准参数的多个初始值。所述方法包括:由所述控制***通过对所述多个手眼校准参数中的一个或多个参数以及所述多个运动台校准参数中的一个或多个参数进行精化来确定针对所述多个手眼校准参数的多个最终值以及针对所述运动台校准参数的多个最终值,从而最小化代价函数。
在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的图像中的特征的被观察的位置与所述特征的预期位置之间的差异,所述预期位置是基于针对所述多个运动台校准参数的第一多个值、针对所述手眼校准参数的第二多个值以及针对所述姿势所捕获的多个编码器计数而确定的。在某些实施例中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述多个编码器计数中的编码器计数与针对所述姿势的所估计的编码器计数之间的差异,所述所估计的编码器计数是基于针对所述多个运动台校准参数的第一多个值、针对所述多个手眼校准参数的第二多个值以及针对所述姿势的所述校准目标的所述多个被观察的特征而确定的。
在某些实施例中,所述方法包括使用非线性最小二乘法来最小化所述代价函数。在某些实施例中,所述方法包括精化少于所述多个手眼校准参数的全部和少于所述多个运动台校准参数的全部。在某些实施例中,所述多个运动台校准参数包括滚轮中心位置、滚轮半径、方向、步长、复原编码器计数、以及致动器的撞针板的方向中的一个或多个。
技术的其他方面和优点将从以下结合附图的详细说明变得明显,附图仅通过示例的方式展示了技术的原理。
附图说明
在结合附图一起阅读时,通过对各实施例的下列描述,将使读者更为充分地理解本技术的前述概要和其他目的、特征、和优点,以及技术本身,在附图中:
图1示出了示例机器视觉***。
图2示出了示例机器视觉***。
图3根据技术描绘了校准方案。
图4根据技术描绘了校准机器视觉***的方法的流程图。
图5根据技术描绘了校准方案。
具体实施方式
对VGR应用的机器视觉***进行精确校准可以是至关重要的。对这种机器视觉***(例如,具有机器人、运动台、或其他设备的机器视觉***)进行校准的现有方法可以导致在许多应用中无法达到必要的准确度的机器视觉***。例如,在许多情况下,基于由机器人或运动台制造商所提供的运动学校准参数值(例如,机器人校准参数值或运动台校准参数值)对机器视觉***进行校准会导致机器视觉***的准确度不够。本技术可以通过使用有效的校准技术对运动学校准参数和手眼校准参数进行精化来提高用于VGR应用的机器视觉***的准确度和精度。本技术可以基于机器视觉***所确定的测量被用于在单次精化计算中确定更为准确的校准参数值,包括手眼校准参数和运动学校准参数。有利的是,本技术可以通过更为精确的校准来提高机器视觉***的准确度,而无需例如额外的校准目标、额外的相机、或外部测量设备。
I.机器视觉***
图1示出了示例机器视觉***100。例如,机器视觉***100可用于VGR应用。机器视觉***100包括其上安装有相机110的机器人105以及控制***115。图1展示了移动的相机配置(例如,相机110被安装在机器人105的手臂上)。仍参见图1,示出了具有特征123的校准目标120。相机110可以是包括二维CCD相机传感器、二维CMOS相机传感器或用于生成图像的任何其他类型的相机传感器的区域扫描相机。控制***115可以是任何处理设备(例如,嵌入式机器视觉处理器、计算设备等)。
控制***115与机器人105和相机110进行通信。控制***115可以接收来自相机110的图像数据并控制机器人105的姿势。在某些实施例中,控制***115可以是独立计算设备的一部分。在某些实施例中,控制***115可以是机器人105的一部分。在某些实施例中,控制***115可以是相机110的一部分。在操作中,控制***115可以例如基于对来自相机110的图像数据的分析操控机器人105的姿势。为简单起见,将控制***115展示为单个部件。在某些实施例中,控制***可以包括运动控制器(例如,机器人控制器)以及协同工作的机器视觉处理器。在某些实施例中,运动控制器可以是机器视觉***主控器。例如,运动控制器可与机器视觉处理器进行通信并指导其动作。运动控制器可以控制机器人的姿势和运动,并使机器视觉处理器获取图像。运动控制器可以为机器视觉处理器提供姿势信息,并使机器视觉处理器执行本文所述的校准。在某些实施例中,机器视觉处理器可以是机器视觉***主控器。例如,机器视觉处理器可与运动控制器进行通信并指导其动作。机器视觉处理器可使运动控制器控制机器人的姿势和移动,并为机器视觉处理器提供姿势信息。机器视觉处理器可以获取图像并执行本文所述的校准。在某些实施例中,可以集成运动控制器和机器视觉控制器。例如,控制***的一个或多个处理器核可以控制机器人运动,并且控制***的一个或多个处理器核可以执行如校准之类的机器视觉处理。
可以根据本技术对机器视觉***100进行校准。如下文将更详细描述,可以对***100进行校准,以允许相机110的图像坐标空间、机器人105的坐标空间和校准目标120的坐标空间之间进行坐标变换。通过校准,控制***115可以将机器人手160指向校准目标120的坐标空间或机器人基础坐标空间中的精确位置。控制***115可以使用与机器人105的关节角有关的校准和信息进一步确定从来自相机110的图像数据中被观察的对象的位置。有利的是,校准允许机器视觉***控制机器人手160的运动,并使用它与现实世界的对象进行交互和/或对其进行操控(例如,在校准目标120的坐标空间中)。
图2示出了示例机器视觉***200。机器视觉***200可以被用于例如VGR应用。机器视觉***200包括运动台205、相机210、和控制***215。如图所示,相机210可以被安装在运动台205上,以对运动台205顶面进行成像。在所示的实施例中,相机210以固定方式相对于运动台205的基座208被安装(例如,运动台205的台板209可以相对于相机210移动)。相机210可以是包括二维CCD相机传感器、二维CMOS相机传感器或用于生成图像的任何其他类型的相机传感器的区域扫描相机。控制***215可以是任何处理设备(例如,嵌入式机器视觉处理器、计算设备等)。仍参见图2,示出了具有特征223的校准目标220。
控制***215与运动台205和相机210进行通信。控制***可从相机210接收图像数据并对运动台205的姿势进行控制。在某些实施例中,控制***215可以是独立计算设备的一部分。在某些实施例中,控制***215可以是运动台205的一部分。在某些实施例中,控制***215可以是相机210的一部分。在操作中,控制***215可以例如基于对来自相机210的图像数据的分析来改变运动台205的姿势。为简单起见,控制***215被展示为单个部件。在某些实施例中,控制***可以包括运动控制器(例如,运动台控制器)和协同工作的机器视觉处理器。在某些实施例中,运动控制器可以是机器视觉***主控器。例如,运动控制器可与机器视觉处理器进行通信并指导其动作。运动控制器可以控制运动台的姿势和移动,并使机器视觉处理器获取图像。运动控制器可以为机器视觉处理器提供姿势信息,并使机器视觉处理器执行本文所述的校准。在某些实施例中,机器视觉处理器可以是机器视觉***主控器。例如,机器视觉处理器可与运动控制器进行通信并指导其动作。机器视觉处理器可使运动控制器对运动台的姿势和移动进行控制,并为机器视觉处理器提供姿势信息。机器视觉处理器可以获取图像并执行本文所述的校准。在某些实施例中,可以集成运动控制器和机器视觉控制器。例如,控制***的一个或多个处理器核可以控制运动台运动,并且控制***的一个或多个处理器核可以执行如校准之类的机器视觉处理。
可以根据本技术对机器视觉***200进行校准。如下文将更详细描述,可以对***200进行校准,以允许相机210的图像坐标空间、运动台205的坐标空间和校准目标220的坐标空间之间进行坐标变换。通过校准,控制***215可以将运动台205平移和/或旋转至校准目标220的坐标空间或运动台205的坐标空间中的精确姿势。控制***215可以使用与运动台105的致动器有关的校准和信息进一步确定从来自相机210的图像数据中被观察的对象的位置。有利的是,所述校准允许机器视觉***200对运动台205的运动进行控制,并使用其使现实世界的对象在其表面上移动(例如,在校准目标220的坐标空间中)。
应当理解的是,所展示的实施例仅仅是示例性机器视觉***配置。在某些实施例中,机器视觉***可以包括其它种类的机器人、其他种类的运动台,或者其移动可由机器视觉***进行控制的其他设备。在某些实施例中,相机可以被安装到机器人或运动台,或者与机器人或运动台分置的夹具上(例如,静止相机情景情景和/或移动相机情景)。在某些实施例中,可以使用多于一个相机。在某些实施例中,机器人或运动台可与多个工作空间进行交互。
II.校准
通过提供高效的用于精华校准参数值的技术,本技术可以促进机器视觉***的改进的准确度。一般而言,校准参数可以包括本领域众所周知的手眼校准参数。在具有机器人的机器视觉***的情况下,校准参数可以包括机器人校准参数。在具有运动台的机器视觉***而言,校准参数可以包括运动台校准参数。机器人校准参数和/或运动台校准参数可以被称为运动学校准参数。对于机器人,机器人校准参数可以包括用于描述例如机器人的链接和关节的迪纳维特-哈坦伯格参数(D-H参数)。作为另一示例,UVW运动台是可以例如包括两个在X方向上移动的致动器以及一个在Y方向上移动的致动器的运动台。对于UVW运动台,针对每个致动器,运动台校准参数可以包括滚轮的中心位置、滚轮的半径、致动器的方向、致动器的步长、致动器的复原编码器计数、以及撞针板的方向。仍作为另一示例,XYθ运动台是可以例如包括沿X轴做线性平移的致动器、沿Y轴做线性平移的致动器、以及提供旋转的θ致动器的运动台。对于XYθ运动台,运动台校准参数可以包括X致动器的方向和步长、Y致动器的方向和步长、以及滚轮的中心位置和半径、致动器的方向和步长、θ致动器撞针板的方向。更一般来说,本技术可用于校准能被几何建模的运动设备。例如,可以使用本技术校准其几何结构可以由校准参数值表示的运动设备。
A.针对具有机器人的机器视觉***的校准
本技术可以通过将因机器人与其规范和其他条件的差异所导致的不精确性最小化而改进校准参数值。在本技术的示例性实施例中,机器人(例如,机器人105)被移动到多个姿势,并且针对每个姿势,机器视觉***捕获校准目标(例如,校准目标120)的图像(例如,通过相机110)以及机器人在所述姿势时的关节角。可以确定初始校准参数值。举例而言,可以从机器人规范中取初始机器人校准参数值。可以利用所拍摄的图像和所捕获的初始机器人校准参数值确定初始手眼校准参数值。确定初始手眼校准参数值的校准功能已实现市售,例如,康耐视公司(Cognex Corporation)的Cognex Vision可以对一个或多个初始校准参数值,包括一个或多个机器人校准参数值以及一个或多个手眼校准参数进行精化,以确定最终校准参数值。举例而言,可以通过使用非线性优化法使机器人运动之间的总体偏差最小化,这可以通过机器人校准参数和关节角,以及机器视觉***观测到的运动来确定。最终校准参数值则可以被机器视觉***用来在运行期间操作机器人。举例而言,最终机器人校准参数值可被用于更准确地控制机器人。最终手眼校准参数值可以进一步提高机器视觉***在运行时的性能。
图3描绘了根据本技术的校准方案300。在某些实施例中,校准方案可用于移动相机配置。举例而言,校准方案300可被用于图1的机器视觉***100。在图3中,椭圆形表示坐标空间。图3包括CalPlate3D(校准板3D)坐标空间305、RobotBase3D(机器人基底3D)坐标空间310、Joint1(关节1)坐标空间315、Joint2(关节2)坐标空间320、Joint3(关节3)坐标空间325、Joint4(关节4)坐标空间330、Joint5(关节5)坐标空间335、Joint6(关节6)坐标空间340、Hand3D(手3D)坐标空间345、Camera3D(相机3D)坐标空间352,以及Raw2D(原始2D)坐标空间355。椭圆形之间的箭头代表图示坐标空间之间的变换。如关于以下说明性校准方法所描述的,可以确定和精化变换所用的校准参数值。
在所展示的示例中,CalPlate3D坐标空间305可以是校准目标120的坐标空间,并且可通过校准目标120的顶表面进行定义。RobotBase3D坐标空间310可以是机器人105的基座125的坐标空间。在某些实施例中,RobotBase3D坐标空间310可由机制人制造商定义。Joint1坐标空间315可以是机器人105的关节130的坐标空间。Joint2坐标空间320可以是机器人105的关节135的坐标空间。Joint3坐标空间325可以是机器人105的关节140的坐标空间。Joint4坐标空间330可以是机器人105的关节145的坐标空间。Joint5坐标空间335可以是机器人105的关节150的坐标空间。Joint6坐标空间340可以是机器人105的关节155的坐标空间。Hand3D坐标空间345可以是机器人105的手160的坐标空间。在某些实施例中,Hand3D坐标空间345可由机器人制造商定义。在某些实施例中,Hand3D坐标空间345是J6的用户定义偏移。Camera3D坐标空间352可以是相机110的坐标空间。Camera3D坐标空间352的原点可以位于投影中心,其中,z轴沿相机110镜头的光学轴指出。x轴和y轴可分别与相机110之相机传感器的行和列对齐。Raw2D坐标空间355可以是由相机110的相机传感器的行和列所定义的基于2D像素的坐标***。x轴可以沿着图像的行从左指向右,而y轴可以沿着相机110的相机传感器的列指向下。应知悉的是,名称含有“3D”的坐标空间是三维空间,而名称含有“2D”的坐标空间是二维空间。
坐标空间之间的变换可以是刚性变换(例如,包括平移分量和旋转分量)和/或基于机器人105之机器人校准参数的变换。举例而言,CalPlate3D坐标空间305和RobotBase3D坐标空间310之间的变换、RobotBase3D坐标空间310和Joint1坐标空间315之间的变换、Hand3D坐标空间345和Camera3D坐标空间352之间的变换,以及CalPlate3D坐标空间305和Camera3D坐标空间352之间的变换可以是3D刚性变换。Joint1坐标空间315和Joint2坐标空间320之间的变换、Joint2坐标空间320和Joint3坐标空间325之间的变换、Joint3坐标空间325和Joint4坐标空间330之间的变换、Joint4坐标空间330和Joint5坐标空间335之间的变换,以及Joint5坐标空间335和Joint6坐标空间340之间的变换可以基于对机器人105的关节和链节进行描述的机器人校准参数值以及相应的关节角值。在某些实施例中,可以使用迪纳维特-哈坦伯格矩阵确定所述变换,其中,如本领域众所周知的,机器人参数是d、θ、a和αlpha。从Joint6坐标空间340到Hand3D坐标空间345的变换可以是刚性变换,并同时基于机器人105的Joint6的角值发生可变的旋转变换。从CalPlate3D坐标空间305到Camera3D坐标空间352的变换以及从Camera3D坐标空间352到Raw2D坐标空间355的变换可以基于传统的相机校准,如本领域众所周知的。如在此使用的,CoordinateSpace1fromCoordinateSpace2表示法所表示的是从CoordinateSpace2到CoordinateSpace1的变换。举例而言,Joint1FromJoint2表示的是从Joint2坐标空间320到Joint1坐标空间315的变换。
本技术可用于精化形成前述变换所使用的校准参数值。
1.捕获校准数据
图4描绘了对根据本技术的机器视觉***进行校准的方法的流程图400。所描述的方法可以通过控制***115执行。在步骤405,控制***115捕获机器人105处于多个姿势时的图像和机器人关节角。在每个姿势下,控制***115使相机110拍摄至少一部分校准目标120的图像,该校准目标包含一个或多个特征122。控制***115进一步捕获机器人105处于每个姿势时的每个关节角。举例而言,机器人105可以向控制***115报告每个关节角。
2.确定初始校准参数值
在步骤410,控制***115确定初始校准参数值。初始校准参数值可以是在精化前用于确定参照图3中所讨论的变换的那些数值。如下文的更详细描述,可以依据本技术对这些校准参数值进行精化。在图3所展示的示例中,控制***115可以基于机器人105的规范获得机器人105的初始机器人校准参数值。例如,机器人制造商通常会提供这些数值。控制***115可以使用这些初始校准值以及机器人105处于特定姿势时的关节角来确定机器人105处于该姿势时的如下变换:RobotBase3DFromJoint1、Joint1FromJoint2、Joint2FromJoint3、Joint3FromJoint4、Joint4FromJoint5、Joint5FromJoint6和Joint6FromHand3D。举例而言,可以使用迪纳维特-哈坦伯格矩阵基于机器人规范所提供的D-H值以及机器人105处于该姿势时的关节角值确定Joint1FromJoint2、Joint2FromJoint3、Joint3FromJoint4、Joint4FromJoint5和Joint5FromJoint6。可以基于机器人规范(例如,机器人105的尺寸)确定RobotBase3DFromJoint1。可以基于机器人105的Hand3D 160机器人规范和Joint6的关节角值确定Joint6FromHand3D。Joint6FromHand3D可以提供机器人手160在J6 340(例如,关节6坐标***)中的刚性变换。控制***115可以基于这些变换针对机器人105的特定姿势形成复合变换RobotBase3DFromHand3D。例如,下列方程式提供RobotBase3DFromHand3D:
RobotBase3DFromHand3D=RobotBase3DFromJoint1*Joint1FromJoint2*Joint2FromJoint3*Joint3FromJoint4*Joint4FromJoint5*Joint5FromJoint6*Joint6FromHand3D
控制***115可以执行手眼校准,以确定初始手眼校准参数值。举例而言,控制***可以用Cognex Vision Library基于拍摄的图像、多个姿势的RobotBase3DFromHand3D变换以及Camera3DFromCalPlate3D变换确定初始手眼校准参数值。由于手眼校准,控制***115可以确定Camera3DFromHand3D和RobotBase3DFromCalPlate3D。在确定Camera3DFromHand3D、RobotBase3DFromCalPlate3D以及之前确定的变换后,图3任何坐标空间内的坐标均可被变换成图3任何其他坐标空间内的坐标。
3.精化校准参数
在步骤415,控制***115对多个校准参数进行精化,以确定这些校准参数更为准确的数值。为了精化校准参数,控制***115确定使代价函数最小化的校准参数值。用于使代价函数最小化并且确定最终校准参数值的技术可以包括非线性最小二乘法。本领域技术人员将认识到可使用其他技术。
本技术的实施例可以使用多种代价函数。在某些实施例中,代价函数可以是特征(例如,校准目标120上的那些特征)的被观察位置与基于已讨论变换的那些特征的预期位置之间的距离之和。一般而言,这可能涉及在第一坐标空间内对某个特征位置进行观测的机器视觉***(例如,用相机110进行观测),以及涉及通过多个其他坐标空间应用一系列变换将所述特征映射到第一坐标空间,以便基于校准参数计算所述特征的预期位置。如果校准参数完全准确,则观测位置和预期位置将相同。在实际中,观测位置和预期位置之间通常会有所差异。在某些实施例中,代价函数对多个特征、多个姿势和多个图像的差异进行衡量。例如,控制***115可以针对每个机器人姿势确定多个观测校准目标特征在Raw2D坐标空间355中的位置(ObservedFeatureRaw2Dij)。控制***115亦能针对每个机器人姿势确定多个映射校准目标特征在Raw2D坐标空间355中的位置。
MappedFeatureRaw2Dij=Raw2DFromCamera3D*CalPlate3DFromCamera3DAtPoseiEstimated-1*CalibrationTargetFeaturej
其中
CalPlate3DFromCamera3DAtPoseiEstimated=CalPlate3DFromRobotBase3D*RobotBase3DFromHand3DAtPosei*Hand3DFromCamera3D
RobotBase3DFromHand3DAtPosei是处于姿势i时的估计机器人姿势,就此使用的是姿势i下的关节角值和初始校准参数值(或相继精化的校准参数值)。
控制***115然后可以计算观测特征位置与映射特征位置之间的距离。代价函数可被定义如下:
在某些实施例中,代价函数对在使用变换映射后校准板特征位置的变化进行衡量。例如,控制***115可以确定多个特征在CalPlate3D坐标空间305中的位置。控制***115亦能通过CalPlate3DFromCalPlate3DAtPosei变换映射处于所述多个姿势中的每个机器人姿势i时多个特征的每个特征位置,其中:
CalPlate3DFromCalPlate3DAtPosei=CalPlate3DFromRobotBase3D*RobotBase3DFromHand3DAtPosei*Hand3DFromCamera3D*Camera3DFromCalPlate3DAtPosei
其中,RobotBase3DFromHand3DAtPosei是处在姿势i时的预计机器人姿势,就此使用是的处在姿势i时的关节角值和初始校准参数值(或相继精化的校准参数值)。
Camera3DFromCalPlate3DAtPosei通过使用Raw2D中的观测特征和相机校准信息获得。
控制***115然后可以计算特征位置与映射特征位置之间的距离。代价函数可被定义如下:
在某些实施例中,可以定义代价函数而不映射特征点。如果校准参数完全准确,则CalPlate3DFromCalPlate3DAtPosei将是恒等变换。因此,代价函数可以衡量CalPlate3DFromCalPlate3DAtPosei与恒等变换之间的差异。在某些实施例中,代价函数可被定义如下:
其中:
CalPlate3DfromCalPlate3DAtPosei.translation.length是CalPlate3DfromCalPlate3DAtPosei变换平移分量的长度;
CalPlate3DfromCalPlate3DAtPosei.rotationAngle是CalPlate3DfromCalPlate3DAtPosei变换的旋转量(例如:所述旋转可以被表示为绕旋转轴的旋转量);并且
w是用来平衡平移分量和旋转分量的权重(例如:比例因子)。
在某些实施例中,Hand3D坐标空间345的原点可以被用作代价函数的基础。可以将Hand3DFromHand3DAtPosei变换定义如下:
Hand3DFromHand3DAtPosei=Hand3DFromCamera3D*Camera3DFromCalPlate3DAtPosei*CalPlate3DFromRobotBase3D*RobotBase3DFromHand3DAtPosei
其中:
Hand3DFromCamera3D*Camera3DFromCalPlate3DAtPosei*CalPlate3DFromRobotBase3D表示相机在姿势i时观测到的RobotBase3DFromHand3D的反量(Camera3DFromCalPlate3DAtPosei通过使用Raw2D中的观测特征和相机校准信息获得)。
Hand3DFromHand3DAtPosei指示基于机器人105之机器人校准参数的姿势与基于相机110图像的预计姿势之间的差异。如果校准参数完全准确,则Hand3DFromHand3DPosei将是恒等变换。代价函数可被定义如下:
在某些实施例中,代价函数可以衡量机器人105的报告关节角(例如:由机器人105测得的关节角)与机器人105相应关节的估计关节角之间的差异。代价函数可以基于所捕获的图像和校准参数值对机器人105关节的关节角进行估计。可将RobotBase3DFromHand3D_estimated变换定义如下:
RobotBase3DFromHand3D_estimated=RobotBase3DFromCalPlate3D*CalPlate3DFromCamera3DAtPosei*Camera3DFromHand3D。
逆运动学方程式可被用于计算与RobotBase3DFromHand3D_estimated相对应的关节角。代价函数可被定义如下:
或者
有利的是,代价函数不需要包括用于平衡平移分量和旋转分量的w。
4.增强精化
在机器视觉***100的示例中,可以被精化的校准参数包括32个机器人校准参数:机器人105关节的20个D-H参数、RobotBase3DFromJoint1的6个机器人校准参数,以及Joint6FromHand3D的6个机器人校准参数。校准参数还包括Camera3DFromHand3D的6个参数,以及RobotBase3DFromCalPlate3D的6个参数,加起来共计44个校准参数。
校准参数中可能存在冗余,因此不必精化所有校准参数。在某些实施例中,可对Joint6FromHand3D和Hand3DFromCamera3D进行组合,以减少精化校准参数的数量。在某些实施例中,可对RobotBase3DFromJoint1和CalPlate3DFromRobotBase3D进行组合。对变换进行组合可使需要精化的校准参数减至32个(例如,CalPlate3DFromJoint1的6个参数、Joint6FromCamera3D的6个参数,以及Joint1FromJoint2,....,Joint5FromJoint6的20个参数)。在某些实施例中,Joint1FromJoint2的D-H参数θ偏移和d偏移可被组合进CalPlate3DFromJoint1,从而使需要精化的参数减至30个。在某些实施例中,仅对选定校准参数进行精化。例如,可以对θ角偏移(例如,关节原点)进行精化。有利的是,通过减少精化校准参数的数量,精化过程的速度和准确性都得以提高。在某些实施例中,可以对校准参数进行分组精化。举例而言,可以在精化20个机器人校准参数的同时固定Camera3DFromHand3D的校准参数值和RobotBase3DFromCalPlate3D的校准参数值。然后,可以固定前述20个机器人校准参数,并对Camera3DFromHand3D的校准参数和RobotBase3DFromCalPlate3D的校准参数进行精化。
应当认识到,机器视觉***100是用于实践本技术的示例性机器视觉***。其他配置正在考虑中。在某些实施例中,被描述成由控制***执行的步骤可由运动控制器、机器视觉处理器和/或与机器视觉处理器协同工作的运动控制器执行。举例而言,运动控制器可以通过一系列姿势引导机器人,并使机器视觉处理器获取校准目标在每个姿势下的图像。运动控制器可以为机器视觉处理器提供与每个姿势下的机器人关节角有关的信息。运动控制器可以使机器视觉处理器执行所述校准和精化。另一示例是,机器视觉处理器可以使运动控制器通过一系列姿势引导机器人,并为机器视觉处理器提供与每个姿势下的机器人关节角有关的信息。机器视觉处理器可以获取校准目标在每个姿势下的图像。机器视觉处理器可以执行所述校准和精化。更笼统而言,控制***可以包括运动控制器、机器视觉处理器,或者协同工作的二者之任何组合,以实现本技术。
在某些实施例中,可以使用多个相机。在此类机器视觉***中,代价函数可以是各个相机之代价函数的组合。在某些实施例中,可以创建虚拟3D相机。通过使用虚拟3D相机,可以使用基于单个相机的代价函数。有利的是,通过使用虚拟3D相机,精化校准参数的数量可以更少,并且相机之间的空间关系可以在精化过程中保持恒定。
在某些实施例中,可以使用多个工作空间(例如,机器人可以在多个工作空间内移动并与其中的对象交互)。在相机随机器人移动的实现中,校准可以包括在每个工作空间内放置校准目标,并为每个工作空间收集校准数据(例如,多个机器人姿势的图像和关节角)。每个额外的工作空间可以产生六个额外的校准参数用于精化。在某些实施例中,代价函数可以是各个工作空间之代价函数的组合。在某些实施例中,可以使用一个或多个固定相机。如果所述一个或多个相机是固定的,并且校准目标被置于机器人上,则可以通过对方程式中的Camera3D和CalPlate3D进行调换来使用前文定义的代价函数。在某些实施例中,本技术可用于精化机器视觉***的校准参数,其中的机器人运动仅在两个维度上运动。应该认识到,所述代价函数可以被更改为仅使用二维信息。在此类情况下,由于机器人运动的限制,可以减少需要精化的机器人校准参数的数量,以进行鲁棒精化。
B.针对具有运动台的机器视觉***的校准
应该认识到,本技术可以通过使用与前述方法类似的方法对具有运动台的机器视觉***的校准参数进行精化。本技术可以在单次精化计算过程中对手眼校准参数和运动台校准参数进行精化。
图5依据本技术描绘了校准方案500。在某些实施例中,所述校准方案可用于固定相机配置。例如:校准方案500可用于图2的机器视觉***200。在图5中,椭圆形代表坐标空间。图5包括Home2D(本地2D)坐标空间510、Stage2D(台2D)坐标空间515、CalPlate2D坐标空间520、Camera2D坐标空间525、以及Raw2D坐标空间530。椭圆形之间的箭头代表图示坐标空间之间的变换。如关于下文说明性校准方法所描述的,可以确定和精化进行变换所用的校准参数值。
在示例中,Home2D坐标空间510可以是这样的坐标空间,即:对其中的其他坐标空间及其之间的关系都有描述。Home2D坐标空间510可以是正交空间,并可由运动台205的X轴和运动台205的旋转中心定义。例如:当运动台205处于原位置时,Home2D坐标空间510的原点可以位于其旋转中心。Home2D坐标空间510的x轴可与运动台205的x轴对齐。Home2D坐标空间510的y轴可与X轴成90度,并位于运动台205之y轴的大体方向上。Stage2D坐标空间515可以是附接至运动台205的旋转中心的正交坐标空间,并随着运动台205移动。CalPlate2D坐标空间520可以是校准目标220的坐标空间。此空间可以在运动台205的带动下在Home2D坐标空间510的各个坐标内来回移动。CalPlate2D坐标空间520可以是正交坐标***,尽管其长度单位与Home2D坐标空间510相比可能存在非恒等比例因子。CalPlate2D坐标空间520和Home2D坐标空间510可以有不同的偏侧性。Camera2D坐标空间525可以是相机210的物理正交坐标空间。Camera2D坐标空间525的原点可以位于Home2D坐标空间510中与相机210的图像窗口中心相对应的位置。其x轴在Camera2D坐标空间525的原点处与Raw2D坐标空间530的x轴平行。y轴可与x轴成90度,并位于Raw2D坐标空间530之y轴的大体方向上。Raw2D坐标空间530可以是相机210的像素空间坐标***。
坐标空间之间的变换可以是刚性变换(例如:包括平移分量和旋转分量)和/或刚性加偏侧性变换(例如:包括刚性变换加偏侧性分量)以及/或者基于运动台205的运动学校准参数的变换。举例而言,Camera2D坐标空间525与Home2D坐标空间510之间的变换、以及Stage2D坐标空间515与CalPlate2D坐标空间520之间的变换可以是二维刚性变换。CalPlate2D坐标空间520与Camera2D坐标空间525之间的变换可以是二维刚性变换。例如:Home2D坐标空间510与Stage2D坐标空间515之间的变换可以基于致动器的编码计数。众所周知,Camera2D坐标空间525到Raw2D坐标空间530之间的变换可以基于传统的相机校准。
1.捕获校准数据
同样见图4,所述方法可以由机器视觉***200的控制***215执行。在步骤405,当运动台205处于多个姿势时,控制***捕获图像和致动器的编码器计数。在每个姿势下,控制***215使相机捕获至少一部分校准目标220的图像,该校准目标包含一个或几个特征。控制***215进一步捕获运动台2015的每个致动器在每个姿势下的编码器计数。
2.确定初始校准参数值
在步骤410,控制***215确定初始校准参数值。初始校准参数值可以是在精化前确定参照图5所述变换使用的数值。可以依据本技术对这些校准参数值进行精化。在图4的示例中,控制***215可以基于运动台205的规范获取运动台205的初始运动台校准参数值。例如:运动台制造商通常会提供这些数值。使用这些初始校准值和特定姿势时的编码器计数,控制***215可以确定Home2DFromStage2D变换。
制***215可以执行手眼校准,以确定初始手眼校准参数值。举例而言,控制***215可以使用康耐视视觉库基于所捕获的图像和多个姿势的Home2DFromStage2D变换确定初始手眼校准参数值。控制***215可以通过所述手眼校准确定Stage2DFromCalPlate2D、CalPlate2DFromCamera2D和Camera2DfromHome2D。
3.精化校准参数
在步骤415,控制***215对多个校准参数进行精化,以确定这些校准参数更为准确的数值。为了精化校准参数,控制***215确定使代价函数最小化的校准参数。一般而言,代价函数可以基于对运动台205的运动(例如:通过从运动台读取的实际编码器计数确定的运动)与所观测的相机或者校准目标运动(例如:基于该相机拍摄的图像)进行比较。本技术的实施例可以使用多种代价函数。
在某些实施例中,代价函数可以对所观测的编码器计数(例如:从运动台读取的计数)与使用初始校准参数值(或相继精化校准参数值)计算的预期/预计编码器计数之间的差异进行测量。举例而言,针对每个运动台姿势i,可以计算预计运动台姿势i’(例如:在Home2D坐标空间510中)。可按如下公式计算姿势i’:
Pose i’=Home2DFromCamera2D*Camera2DFromCalPlate2DAtPosei*Plate2DFromStage2D
其中:Camera2DFromCalPlate2DAtPosei是使用图像特征和相机校准信息求得的。
可以基于姿势i’和初始校准参数值(或相继精化校准参数值)计算姿势i的预计编码器计数。
代价函数可以是各个致动器、各个姿势和各个相机(在多相机机器视觉***中)的编码器计数差的平方之和。代价函数可被定义如下:
在某些实施例中,代价函数可以对特征在Raw2D中的观测位置与特征在Raw2D中的预期(映射)位置之间的差异进行衡量。MappedFeatureRaw2Dij变换可被定义如下:
MappedFeatureRaw2Dij=Raw2DFromCamera2D*CalPlate2DFromCamera2DAtPoseiEstimated-1*CalibrationTargetFeaturej
其中CalPlate2DFromCamera2DAtPoseiEstimated=CalPlate2DFromStage2D*Home2DFromStage2DAtPosei -1*Home2DFromCamera2D
可以基于在姿势i时从运动台205读取的编码器计数和初始校准参数值(或相继精化校准参数值)计算Home2DFromStage2DAtPosei。控制***115然后可以计算观测特征位置与映射特征位置之间的距离。代价函数可被定义如下:
在某些实施例中,代价函数可以对特征在CalPlate2D中的位置与特征在校准目标220上的映射位置之间的差异进行衡量。举例而言,可以基于在姿势i时从运动台205读取的编码器计数和初始校准参数值(或相继精化校准参数值)计算Home2DFromStage2DAtPosei。可按如下公式计算CalPlate2DFromCalPlate2DAtPosei变换:
CalPlate2DFromCalPlate2DAtPosei=CalPlate2DFromStage2D*Home2DFromStage2DAtPosei -1*Home2DFromCamera2D*Camera2DFromPlate2DAtPosei
其中:可以基于在姿势i时从运动中205读取的编码器计数和初始校准参数值(或相继精化校准参数值)计算Home2DFromStage2DAtPosei。
Camera2DFromCalPlate2DAtPosei系使用Raw2D中的观测特征和相机校准信息求得。
CalPlate2DFromCalPlate2DAtPosei变换可被用于映射在姿势i时的校准目标特征。然后可将代价函数定义如下:
对于UVW运动台,就每个致动器而言,运动台校准参数可以包括致动器滚轮的中心位置、滚轮的半径、致动器的方向、致动器的步长、致动器的复原编码器计数,以及致动器撞针板的方向。在某些实施例中,可以对UVW运动台的运动台校准参数子集进行精化。例如:在某些实施例中,滚轮的半径未被精化。在某些实施例中,复原编码器计数未被精化。如前文所述,可以通过减少精化校准参数的数量提高精化效率。对于XYθ运动台,就X致动器和Y致动器而言,运动台校准参数可以包括致动器的方向和致动器的步长。就θ致动器而言,运动台校准参数可以包括致动器滚轮的中心位置、滚轮的半径,以及致动器撞针板的方向。在某些实施例中,可以对XYθ运动台的运动台校准参数子集进行精化。例如:在某些实施例中,滚轮的半径未被精化。
应当认识到,机器视觉***200是用于实践本技术的示例性机器视觉***。可以设想其他配置。在某些实施例中,被描述成由控制***执行的步骤可由运动控制器、机器视觉处理器和/或与机器视觉处理器协同工作的运动控制器执行。举例而言,运动控制器可以通过一系列姿势引导运动台,并使机器视觉处理器获取校准目标在每个姿势时的图像。运动控制器可以为机器视觉处理器提供每个姿势下与运动台有关的信息。运动控制器可以使机器视觉处理器执行所述校准和精化。另一示例是,机器视觉处理器可以通过一系列姿势使运动控制器引导运动台,并为机器视觉处理器提供每个姿势下与运动台有关的信息。机器视觉处理器可以获取校准目标在每个姿势下的图像。机器视觉处理器可以执行所述校准和精化。更笼统而言,控制***可以包括运动控制器、机器视觉处理器,或者协同工作的二者之任何组合,以实现本技术。
在某些实施例中,可以如前文所述使用一个或几个固定相机。如果所述一个或几个相机为移动相机(也即是说,这些相机刚性附接至运动台),而校准目标亦是固定的,则可以通过对所述方程式中的Camera2D和CalPlate2D进行调换使用前文定义的代价函数。
以上所描述的技术可以在数字和/或模拟电子电路***中,或在计算机硬件、固件、软件中,或在其组合中实施。所述实施方式可以是一种计算机程序产品,即,在计算机可读存储设备中有形地实施的计算机程序,用于由数据处理装置(例如,可编程处理器、计算机和/或多个计算机)执行或控制所述数据处理装置的操作。计算机程序可以以任何形式的计算机或编程语言来编写,包括源代码、编译代码、翻译代码和/或机器代码,并且计算机程序可以以任何形式部署,包括独立程序或子例程、元件或适合用于计算环境的其他单元。计算机程序可以被部署成在一个计算机上或在多个计算机上在一个或多个站点执行。
方法步骤可由一个或多个处理器执行,所述处理器执行计算机程序以便通过操作输入数据和/或生成输出数据来执行本技术的功能。方法步骤还可由专用逻辑电路***执行并且装置可以被实施为专用逻辑电路***,比如,FPGA(现场可编程门阵列)、FPAA(现场可编程模拟阵列)、CPLD(复杂可编程逻辑器件)、PSoC(可编程片上***)、ASIP(专用指令集处理器)或ASIC(专用集成电路)等。子例程可以指实施一项或多项功能的存储计算机程序和/或处理器和/或专用电路***的部分。
举例而言,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器两者、以及任何种类的数字或模拟计算机的任何一个或多个处理器。通常,处理器从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和/或数据的一个或多个存储器设备。如高速缓存等存储器设备可以用于临时存储数据。存储设备还可以用于进行长期数据存储。通常,计算机还包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或者被可操作地耦合以便从大容量存储设备中接收数据或向大容量存储设备传递数据,或者两者。还可以将计算机可操作地耦合至通信网络以便从网络接收指令和/或数据和/或以便向网络传递指令和/或数据。适用于实施计算机程序指令和数据的计算机可读存储介质包括所有形式的易失性和非易失性存储器,举例来说,包括半导体存储器设备,例如,DRAM、SRAM、EPROM、EEPROM和闪存设备;磁盘,例如内置硬盘或可移动盘;磁光盘;以及光盘,例如,CD、DVD和HD-DVD,以及蓝光光盘。处理器和存储器可由专用逻辑电路***补充和/或并入其中。
以上所描述的技术可以在包括后端部件的分布式计算***中实施。后端部件可以例如是数据服务器、中间件部件和/或应用服务器。以上所描述的技术可以在包括前端部件的分布式计算***中实施。前端部件可以例如是客户端计算机,所述客户端计算机具有图形用户界面、Web浏览器(用户可以通过Web浏览器与示例实施方式交互)和/或传输设备的其他图形用户界面。以上所描述的技术可以在包括这种后端部件、中间件部件或前端部件的任何组合的分布式计算***中实施。
计算***的部件可以通过传输介质互连,所述传输介质可以包括任何数字或模拟数据通信形式或介质(例如,通信网络)。传输介质可以包括采用任何配置的一个或多个基于分组的网络和/或一个或多个基于电路的网络。基于分组的网络可以包括例如互联网、载体互联网协议(IP)网络(例如,局域网(LAN)、广域网(WAN)、校园网(CAN)、城域网(MAN)、家域网(HAN)、私有IP网、IP私有分支交换(IPBX)、无线网络(例如,无线接入网(RAN)、蓝牙、Wi-Fi、WiMAX、通用分组无线服务(GPRS)网络、HiperLAN)和/或其他基于分组的网络。基于电路的网络可以包括例如公共交换电话网(PSTN)、传统私有分支交换(PBX)、无线网络(例如,RAN、码分多址(CDMA)网络、时分多址(TDMA)网络、全球移动通讯***(GSM)网络)和/或其他基于电路的网络。
通过传输介质的信息传递可以基于一个或多个通信协议。举例而言,通信协议可以包括以太网协议、因特网协议(IP)、对等(P2P)协议、超文本传输协议(HTTP)、会话初始化协议(SIP)、全球移动通信***(GSM)协议、通用移动通信***(UMTS)、3GPP长期演进(LTE),以及/或者其他通信协议。
包括(comprise)、包括(include)和/或每个的多种形式是开放式的并且包括所列部分,并且可以包括未列出的附加部分。和/或是开放式的并且包括所列部分中的一个或多个所列部分以及所列部分的组合。
本领域的技术人员将认识到,本发明可以以其他具体形式来实施,而不脱离其精神或基本特性。因此,前述实施例将在所有方面被认为是说明性的,而不是限制本文中所描述的本发明。
已通过具体实施例对本技术进行描述。本文件述及的备选方案仅限于举例说明,而不以任何方式限制所述备选方案。本技术的步骤可以按不同顺序执行,并且仍可获得理想结果。其他实施例俱在以下权利要求的范围内。
以下提供本申请的非限制性示例:
示例1:一种机器视觉***,包括:
机器人;
相机;以及
与所述机器人和所述相机进行通信的控制***,所述控制***被配置成用于:
将所述机器人移动到多个姿势,并且针对所述多个姿势中的每个姿势:
用所述相机捕获校准目标上的一个或多个特征的图像;以及
捕获多个机器人关节角;
获得多个机器人校准参数的多个初始值;
基于所述多个机器人校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的图像和所述多个机器人关节角,确定多个手眼校准参数的多个初始值;
通过对所述多个手眼校准参数中的一个或多个参数以及所述多个机器人校准参数中的一个或多个参数进行精化来确定所述多个手眼校准参数的多个最终值以及所述机器人校准参数的多个最终值,从而最小化代价函数。
示例2:如示例1所述的机器视觉***,其中,所述控制***被进一步配置成用于:
将所述多个手眼校准参数的所述多个最终值以及所述机器人校准参数的所述多个最终值用于视觉导引式机器人应用。
示例3:如示例1所述的机器视觉***,其中,所述控制***被进一步配置成用于:
使用所述机器人校准参数的所述多个最终值移动所述机器人。
示例4:如示例1所述的机器视觉***,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述图像中的特征的被观察到的位置与所述特征的预期位置之间的差异,所述预期位置是基于所述多个机器人校准参数的第一多个值、所述手眼校准参数的第二多个值以及针对所述姿势所捕获的所述多个机器人关节角而确定的。
示例5:如示例1所述的机器视觉***,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量复合变换与恒等变换之间的差异,所述复合变换是从第一坐标空间到第二坐标空间的第一变换与从所述第二坐标空间到所述第一坐标空间的第二变换的复合,所述第一变换和所述第二变换是基于所述多个机器人校准参数的第一多个值、所述多个手眼校准参数的第二多个值、针对所述姿势的所述校准目标的所述多个所观察的特征以及针对所述姿势所捕获的所述多个机器人关节角而确定的。
示例6:如示例1所述的机器视觉***,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述多个机器人关节角中的机器人关节角与针对所述姿势的所估计的关节角之间的差异,所述所估计的关节角是基于所述多个机器人校准参数的第一多个值、所述多个手眼校准参数的第二多个值以及针对所述姿势的所述校准目标的所述多个所观察的特征而确定的。
示例7:如示例1所述的机器视觉***,其中,所述控制***被进一步配置成用于使用非线性最小二乘法来最小化所述代价函数。
示例8:如示例1所述的机器视觉***,其中,所述控制***被配置成用于精化少于所述多个手眼校准参数的全部和少于所述多个机器人校准参数的全部。
示例9:如示例1所述的机器视觉***,其中,所述多个机器人校准参数包括针对所述机器人的迪纳维特-哈坦伯格参数。
示例10:一种机器视觉***实现的校准方法,包括:
由控制***将机器人移动到多个姿势,并且针对所述多个姿势中的每个姿势:
由相机捕获校准目标上的一个或多个特征的图像;以及
由所述控制***捕获多个机器人关节角;
由所述控制***获得多个机器人校准参数的多个初始值;
由所述控制***基于所述多个机器人校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的图像和所述多个机器人关节角来确定多个手眼校准参数的多个初始值;
由所述控制***通过对所述多个手眼校准参数中的一个或多个参数以及所述多个机器人校准参数中的一个或多个参数进行精化来确定所述多个手眼校准参数的多个最终值以及所述多个机器人校准参数的多个最终值,从而最小化代价函数。
示例11:如示例10所述的方法,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的图像中的特征的被观察到的位置与所述特征的预期位置之间的差异,所述预期位置是基于所述多个机器人校准参数的第一多个值、所述手眼校准参数的第二多个值以及针对所述姿势所捕获的所述多个机器人关节角而确定的。
示例12:如示例10所述的方法,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量复合变换与恒等变换之间的差异,所述复合变换是从第一坐标空间到第二坐标空间的第一变换与从所述第二坐标空间到所述第一坐标空间的第二变换的复合,所述第一变换和所述第二变换是基于所述多个机器人校准参数的第一多个值、所述多个手眼校准参数的第二多个值、针对所述姿势的所述校准目标的所述多个所观察的特征以及针对所述姿势所捕获的所述多个机器人关节角而确定的。
示例13:如示例10所述的方法,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述多个机器人关节角中的机器人关节角与针对所述姿势的所估计的关节角之间的差异,所述所估计的关节角是基于所述多个机器人校准参数的第一多个值、所述多个手眼校准参数的第二多个值以及针对所述姿势的所述校准目标的所述多个所观察的特征而确定的。
示例14:如示例10所述的方法,进一步包括:使用非线性最小二乘法来最小化所述代价函数。
示例15:如示例10所述的方法,进一步包括:精化少于所述多个手眼校准参数的全部和少于所述多个机器人校准参数的全部。
示例16:如示例10所述的方法,其中,所述多个机器人校准参数包括针对所述机器人的迪纳维特-哈坦伯格参数。
示例17:一种机器视觉***,包括:
运动台;
相机;以及
与所述运动台和所述相机进行通信的控制***,所述控制***被配置成用于:
将所述运动台移动到多个姿势,并且针对所述多个姿势中的每个姿势:
用所述相机捕获校准目标上的一个或多个特征的图像;以及
捕获针对所述运动台的多个致动器的多个编码器计数;
获得多个运动台校准参数的多个初始值;
基于所述多个运动台校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的所述图像和所述多个编码器计数来确定多个手眼校准参数的多个初始值;
通过对所述多个手眼校准参数中的一个或多个手眼校准参数以及所述多个运动台校准参数中的一个或多个运动台校准参数进行精化来确定所述多个手眼校准参数的多个最终值以及所述运动台校准参数的多个最终值,从而最小化代价函数。
示例18:如示例17所述的机器视觉***,其中,所述控制***被进一步配置成用于:
将所述多个手眼校准参数的所述多个最终值以及所述运动台校准参数的所述多个最终值用于视觉导引式运动台应用。
示例19:如示例17所述的机器视觉***,其中,所述控制***被进一步配置成用于:
使用所述运动台校准参数的所述多个最终值移动所述运动台。
示例20:如示例17所述的机器视觉***,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述图像中的特征的被观察到的位置与所述特征的预期位置之间的差异,所述预期位置是基于所述多个运动台校准参数的第一多个值、所述手眼校准参数的第二多个值以及针对所述姿势所捕获的所述多个编码器计数而确定的。
示例21:如示例17所述的机器视觉***,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述多个编码器计数中的编码器计数与针对所述姿势的所估计的编码器计数之间的差异,所述所估计的编码器计数是基于所述多个运动台校准参数的第一多个值、所述多个手眼校准参数的第二多个值以及针对所述姿势的所述校准目标的所述多个所观察的特征而确定的。
示例22:如示例17所述的机器视觉***,其中,所述控制***被进一步配置成用于使用非线性最小二乘法来最小化所述代价函数。
示例23:如示例17所述的机器视觉***,其中,所述控制***被配置成用于精化少于所述多个手眼校准参数的全部和少于所述多个运动台校准参数的全部。
示例24:如示例17所述的机器视觉***,其中,所述多个运动台校准参数包括滚轮中心位置、滚轮半径、方向、步长、复原编码器计数、以及致动器的撞针板的方向中的一个或多个。
示例25:一种机器视觉***实现的校准方法,包括:
由控制***将运动台移动到多个姿势,并且针对所述多个姿势中的每个姿势:
由相机捕获校准目标上的一个或多个特征的图像;以及
由所述控制***捕获针对所述运动台的多个致动器的多个编码器计数;
由所述控制***获得多个运动台校准参数的多个初始值;
由所述控制***基于所述多个运动台校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的所述图像和所述多个编码器计数来确定多个手眼校准参数的多个初始值;
由所述控制***通过对所述多个手眼校准参数中的一个或多个参数以及所述多个运动台校准参数中的一个或多个参数进行精化来确定所述多个手眼校准参数的多个最终值以及所述运动台校准参数的多个最终值,从而最小化代价函数。
示例26:如示例25所述的方法,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的图像中的特征的被观察到的位置与所述特征的预期位置之间的差异,所述预期位置是基于所述多个运动台校准参数的第一多个值、所述手眼校准参数的第二多个值以及针对所述姿势所捕获的多个编码器计数而确定的。
示例27:如示例25所述的方法,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的所述多个编码器计数中的编码器计数与针对所述姿势的所估计的编码器计数之间的差异,所述所估计的编码器计数是基于所述多个运动台校准参数的第一多个值、所述多个手眼校准参数的第二多个值以及针对所述姿势的所述校准目标的所述多个所观察的特征而确定的。
示例28:如示例25所述的方法,进一步包括:使用非线性最小二乘法来最小化所述代价函数。
示例29:如示例25所述的方法,进一步包括:精化少于所述多个手眼校准参数的全部和少于所述多个运动台校准参数的全部。
示例30:如示例25所述的方法,其中,所述多个运动台校准参数包括滚轮中心位置、滚轮半径、方向、步长、复原编码器计数、以及致动器的撞针板的方向中的一个或多个。
Claims (10)
1.一种机器视觉***,包括:
机器人;
相机;以及
与所述机器人和所述相机进行通信的控制***,所述控制***被配置成用于:
将所述机器人移动到多个姿势,并且针对所述多个姿势中的每个姿势:
用所述相机捕获校准目标上的一个或多个特征的图像;以及
捕获多个机器人关节角;
获得多个机器人校准参数的多个初始值;
基于所述多个机器人校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的图像和所述多个机器人关节角,确定多个手眼校准参数的多个初始值;
通过对所述多个手眼校准参数中的一个或多个参数以及所述多个机器人校准参数中的一个或多个参数进行精化来确定所述多个手眼校准参数的多个最终值以及所述机器人校准参数的多个最终值,从而最小化代价函数。
2.如权利要求1所述的机器视觉***,其中,所述控制***被进一步配置成用于:
将所述多个手眼校准参数的所述多个最终值以及所述机器人校准参数的所述多个最终值用于视觉导引式机器人应用。
3.如权利要求1所述的机器视觉***,其中,所述控制***被进一步配置成用于:
使用所述机器人校准参数的所述多个最终值移动所述机器人。
4.一种机器视觉***实现的校准方法,包括:
由控制***将机器人移动到多个姿势,并且针对所述多个姿势中的每个姿势:
由相机捕获校准目标上的一个或多个特征的图像;以及
由所述控制***捕获多个机器人关节角;
由所述控制***获得多个机器人校准参数的多个初始值;
由所述控制***基于所述多个机器人校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的图像和所述多个机器人关节角来确定多个手眼校准参数的多个初始值;
由所述控制***通过对所述多个手眼校准参数中的一个或多个参数以及所述多个机器人校准参数中的一个或多个参数进行精化来确定所述多个手眼校准参数的多个最终值以及所述多个机器人校准参数的多个最终值,从而最小化代价函数。
5.如权利要求4所述的方法,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的图像中的特征的被观察到的位置与所述特征的预期位置之间的差异,所述预期位置是基于所述多个机器人校准参数的第一多个值、所述手眼校准参数的第二多个值以及针对所述姿势所捕获的所述多个机器人关节角而确定的。
6.如权利要求4所述的方法,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量复合变换与恒等变换之间的差异,所述复合变换是从第一坐标空间到第二坐标空间的第一变换与从所述第二坐标空间到所述第一坐标空间的第二变换的复合,所述第一变换和所述第二变换是基于所述多个机器人校准参数的第一多个值、所述多个手眼校准参数的第二多个值、针对所述姿势的所述校准目标的所述多个所观察的特征以及针对所述姿势所捕获的所述多个机器人关节角而确定的。
7.一种机器视觉***,包括:
运动台;
相机;以及
与所述运动台和所述相机进行通信的控制***,所述控制***被配置成用于:
将所述运动台移动到多个姿势,并且针对所述多个姿势中的每个姿势:
用所述相机捕获校准目标上的一个或多个特征的图像;以及
捕获针对所述运动台的多个致动器的多个编码器计数;
获得多个运动台校准参数的多个初始值;
基于所述多个运动台校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的所述图像和所述多个编码器计数来确定多个手眼校准参数的多个初始值;
通过对所述多个手眼校准参数中的一个或多个手眼校准参数以及所述多个运动台校准参数中的一个或多个运动台校准参数进行精化来确定所述多个手眼校准参数的多个最终值以及所述运动台校准参数的多个最终值,从而最小化代价函数。
8.如权利要求7所述的机器视觉***,其中,所述控制***被进一步配置成用于:
将所述多个手眼校准参数的所述多个最终值以及所述运动台校准参数的所述多个最终值用于视觉导引式运动台应用。
9.一种机器视觉***实现的校准方法,包括:
由控制***将运动台移动到多个姿势,并且针对所述多个姿势中的每个姿势:
由相机捕获校准目标上的一个或多个特征的图像;以及
由所述控制***捕获针对所述运动台的多个致动器的多个编码器计数;
由所述控制***获得多个运动台校准参数的多个初始值;
由所述控制***基于所述多个运动台校准参数的所述多个初始值以及针对所述多个姿势中的每个姿势所捕获的所述图像和所述多个编码器计数来确定多个手眼校准参数的多个初始值;
由所述控制***通过对所述多个手眼校准参数中的一个或多个参数以及所述多个运动台校准参数中的一个或多个参数进行精化来确定所述多个手眼校准参数的多个最终值以及所述运动台校准参数的多个最终值,从而最小化代价函数。
10.如权利要求9所述的方法,其中,针对所述多个姿势中的每个姿势,所述代价函数衡量针对所述姿势所捕获的图像中的特征的被观察到的位置与所述特征的预期位置之间的差异,所述预期位置是基于所述多个运动台校准参数的第一多个值、所述手眼校准参数的第二多个值以及针对所述姿势所捕获的多个编码器计数而确定的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/278,156 US10076842B2 (en) | 2016-09-28 | 2016-09-28 | Simultaneous kinematic and hand-eye calibration |
US15/278,156 | 2016-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107871328A true CN107871328A (zh) | 2018-04-03 |
CN107871328B CN107871328B (zh) | 2021-08-24 |
Family
ID=61564377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710896174.4A Active CN107871328B (zh) | 2016-09-28 | 2017-09-28 | 机器视觉***和机器视觉***实现的校准方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10076842B2 (zh) |
JP (1) | JP6591507B2 (zh) |
KR (1) | KR102093165B1 (zh) |
CN (1) | CN107871328B (zh) |
DE (1) | DE102017217142B4 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108772839A (zh) * | 2018-06-25 | 2018-11-09 | 中国人民解放军第二军医大学 | 主从操作与人机一体化*** |
CN109079778A (zh) * | 2018-08-07 | 2018-12-25 | 珠海格力电器股份有限公司 | 机器人调零***及方法 |
CN110695770A (zh) * | 2019-10-21 | 2020-01-17 | 上海维宏电子科技股份有限公司 | 视觉定位校准的方法及相应的数控加工的方法 |
CN111113490A (zh) * | 2019-12-31 | 2020-05-08 | 深圳市远弗科技有限公司 | 一种视觉机器人大规模客制化的自动化校准***及方法 |
CN111667539A (zh) * | 2020-06-08 | 2020-09-15 | 武汉唯理科技有限公司 | 一种相机标定及平面测量方法 |
CN112672860A (zh) * | 2018-09-10 | 2021-04-16 | 发纳科美国公司 | 用于ar和数字孪生的机器人校准 |
CN113070879A (zh) * | 2021-03-29 | 2021-07-06 | 北京锐智金联科技有限公司 | 可移动设备 |
CN114025153A (zh) * | 2021-03-05 | 2022-02-08 | 黑芝麻智能科技有限公司 | LiDAR辅助的轮编码器到相机的校准 |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10076842B2 (en) * | 2016-09-28 | 2018-09-18 | Cognex Corporation | Simultaneous kinematic and hand-eye calibration |
EP3606040B1 (en) | 2017-03-31 | 2021-05-05 | Panasonic Intellectual Property Management Co., Ltd. | Imaging system and correction method |
EP3606038B1 (en) * | 2017-03-31 | 2021-12-08 | Panasonic Intellectual Property Management Co., Ltd. | Imaging system and correction method |
WO2019213103A1 (en) * | 2018-04-30 | 2019-11-07 | Aih Llc | System and method for real image view and tracking guided positioning for a mobile radiology or medical device |
CN109249392B (zh) * | 2018-08-31 | 2021-03-23 | 先临三维科技股份有限公司 | 工件抓取***的校准方法、标定件、装置、设备和介质 |
WO2020047713A1 (en) * | 2018-09-03 | 2020-03-12 | Abb Schweiz Ag | Method and apparatus for managing robot system |
TWI696529B (zh) * | 2018-11-30 | 2020-06-21 | 財團法人金屬工業研究發展中心 | 自動定位方法以及自動控制裝置 |
JP7305951B2 (ja) * | 2018-12-14 | 2023-07-11 | ニデック株式会社 | キャリブレーション装置及びキャリブレーション方法 |
CN109807937B (zh) * | 2018-12-28 | 2020-10-27 | 北京信息科技大学 | 一种基于自然场景的机器人手眼标定方法 |
US11911914B2 (en) * | 2019-01-28 | 2024-02-27 | Cognex Corporation | System and method for automatic hand-eye calibration of vision system for robot motion |
CN111496773B (zh) * | 2019-01-30 | 2023-05-02 | 北京京东乾石科技有限公司 | 一种调整机器人机械参数的方法和装置 |
US11254019B2 (en) * | 2019-03-05 | 2022-02-22 | The Boeing Company | Automatic calibration for a robot optical sensor |
US10369698B1 (en) * | 2019-03-07 | 2019-08-06 | Mujin, Inc. | Method and system for performing automatic camera calibration for robot control |
US10399227B1 (en) | 2019-03-29 | 2019-09-03 | Mujin, Inc. | Method and control system for verifying and updating camera calibration for robot control |
US10906184B2 (en) | 2019-03-29 | 2021-02-02 | Mujin, Inc. | Method and control system for verifying and updating camera calibration for robot control |
CN110238849B (zh) * | 2019-06-13 | 2021-11-12 | 深圳市汇川技术股份有限公司 | 机器人手眼标定方法及装置 |
CN113825980B (zh) * | 2019-07-19 | 2024-04-09 | 西门子(中国)有限公司 | 机器人手眼标定方法、装置、计算设备以及介质 |
CN110480658B (zh) * | 2019-08-15 | 2022-10-25 | 同济大学 | 一种融合视觉自标定的六轴机器人控制*** |
KR102217282B1 (ko) * | 2019-08-22 | 2021-02-18 | (주)인스케이프 | Tof 기능을 포함하는 카메라 모듈의 검사 장치 |
CN110842914B (zh) * | 2019-10-15 | 2022-09-23 | 上海交通大学 | 基于差分进化算法的手眼标定参数辨识方法、***及介质 |
KR102220173B1 (ko) * | 2019-11-01 | 2021-02-25 | 주식회사 뉴로메카 | 로봇 비전 시스템을 위한 자동 캘리브레이션 방법 및 장치 |
KR102424378B1 (ko) * | 2019-11-15 | 2022-07-22 | 주식회사 씨메스 | 3차원 스캐너를 이용한 로봇의 위치 보정 방법 및 장치 |
US20220402141A1 (en) * | 2019-11-15 | 2022-12-22 | Cmes Inc. | Method and apparatus for calibrating position of robot using 3d scanner |
CN110930442B (zh) * | 2019-11-26 | 2020-07-31 | 广东技术师范大学 | 基于标定块的机器人手眼标定中关键点位置确定方法与装置 |
CN110842901B (zh) * | 2019-11-26 | 2021-01-15 | 广东技术师范大学 | 基于一种新型三维标定块的机器人手眼标定方法与装置 |
US11919170B2 (en) * | 2019-12-13 | 2024-03-05 | Edda Technology, Inc. | Fast method for robot path planning with obstacle avoidance |
CN113043268A (zh) * | 2019-12-27 | 2021-06-29 | 沈阳新松机器人自动化股份有限公司 | 机器人手眼标定方法、装置、终端、***及存储介质 |
CN111152223A (zh) * | 2020-01-09 | 2020-05-15 | 埃夫特智能装备股份有限公司 | 一种全自动机器人手眼标定方法 |
CN111482964A (zh) * | 2020-04-17 | 2020-08-04 | 上海智殷自动化科技有限公司 | 一种新的机器人手眼标定方法 |
CN111823230B (zh) * | 2020-06-19 | 2022-01-07 | 山东科技大学 | 一种基于Scara机器人的非固定式手眼关系标定方法 |
CN111872922B (zh) * | 2020-07-29 | 2021-09-03 | 贵州电网有限责任公司 | 基于3d视觉传感器的三自由度并联机器人手眼标定方法 |
US20220134566A1 (en) * | 2020-11-04 | 2022-05-05 | X Development Llc | Optimizing calibration with constraints between different coordinate frames |
CN114589682B (zh) * | 2020-12-04 | 2023-08-18 | 长春理工大学 | 一种机器人手眼自动标定的迭代方法 |
CN112692840A (zh) * | 2020-12-10 | 2021-04-23 | 安徽巨一科技股份有限公司 | 一种基于机器视觉配合机械手定位引导和标定方法 |
CN114643577B (zh) * | 2020-12-18 | 2023-07-14 | 沈阳新松机器人自动化股份有限公司 | 一种通用型机器人视觉自动标定装置和方法 |
CN112743546B (zh) * | 2020-12-29 | 2022-03-29 | 华南理工大学 | 机器人手眼标定位姿选择方法、装置、机器人***及介质 |
KR20220099440A (ko) | 2021-01-06 | 2022-07-13 | 이지윤 | 동작 인식 카메라를 이용한 운동 교정 소프트웨어 |
CN112792814B (zh) * | 2021-01-21 | 2022-06-10 | 珞石(北京)科技有限公司 | 基于视觉标志的机械臂零点标定方法 |
US20220264072A1 (en) * | 2021-02-12 | 2022-08-18 | Sony Group Corporation | Auto-calibrating n-configuration volumetric camera capture array |
CN113119083B (zh) * | 2021-03-19 | 2022-05-06 | 深圳市优必选科技股份有限公司 | 一种机器人标定方法、装置、机器人及存储介质 |
CN113172636B (zh) * | 2021-06-29 | 2021-11-02 | 深圳市越疆科技有限公司 | 一种自动手眼标定方法、装置及存储介质 |
CN113313772B (zh) * | 2021-07-28 | 2021-10-15 | 浙江华睿科技股份有限公司 | 一种标定方法、装置、电子设备及存储介质 |
CN113681559B (zh) * | 2021-08-24 | 2023-01-03 | 宁波光雷睿融智能***有限公司 | 一种基于标准圆柱的线激光扫描机器人手眼标定方法 |
CN113733088B (zh) * | 2021-09-07 | 2024-05-14 | 河南大学 | 一种基于双目视觉的机械臂运动学自标定方法 |
CN113787522B (zh) * | 2021-10-12 | 2022-08-26 | 华侨大学 | 消除机械臂累积误差的手眼标定方法 |
CN114029946A (zh) * | 2021-10-14 | 2022-02-11 | 五邑大学 | 一种基于3d光栅引导机器人定位抓取的方法、装置及设备 |
CN114516048B (zh) * | 2022-02-21 | 2024-01-09 | 乐聚(深圳)机器人技术有限公司 | 机器人的零点调试方法、装置、控制器及存储介质 |
CN114619489A (zh) * | 2022-04-01 | 2022-06-14 | 西南交通大学 | 一种基于图像处理的机械臂搬运物体坐标识别与修正***及方法 |
CN114589698B (zh) * | 2022-04-07 | 2023-06-06 | 北京信息科技大学 | 基于多目标视觉测量和机器学习的机械臂无模型实时标定方法及装置 |
CN114700989A (zh) * | 2022-04-24 | 2022-07-05 | 安吉八塔机器人有限公司 | 一种平面相机自动调平装置及其控制方法 |
CN115008452B (zh) * | 2022-05-12 | 2023-01-31 | 兰州大学 | 一种机械臂控制方法及其***、电子设备、存储介质 |
CN115861445B (zh) * | 2022-12-23 | 2023-07-04 | 广东工业大学 | 一种基于标定板三维点云的手眼标定方法 |
CN116079697B (zh) * | 2022-12-23 | 2024-05-28 | 北京纳通医用机器人科技有限公司 | 一种基于图像的单目视觉伺服方法、装置、设备及介质 |
CN116038720B (zh) * | 2023-04-03 | 2023-08-11 | 广东工业大学 | 一种基于点云配准的手眼标定方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999012082A1 (en) * | 1997-09-04 | 1999-03-11 | Dynalog, Inc. | Method for calibration of a robot inspection system |
US20060095226A1 (en) * | 2002-11-21 | 2006-05-04 | Samsung Electronics Co., Ltd. | Hand/eye calibration method using projective invariant shape descriptor of 2-dimensional image |
CN101169621A (zh) * | 2007-11-19 | 2008-04-30 | 北京理工大学 | 一种基于小波神经网络的视觉反馈控制方法 |
CN103991078A (zh) * | 2013-02-14 | 2014-08-20 | 佳能株式会社 | 机器人***和用于控制该机器人***的方法 |
CN105157725A (zh) * | 2015-07-29 | 2015-12-16 | 华南理工大学 | 一种二维激光视觉传感器和机器人的手眼标定方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978080A (en) * | 1997-09-25 | 1999-11-02 | Cognex Corporation | Machine vision methods using feedback to determine an orientation, pixel width and pixel height of a field of view |
JP3946716B2 (ja) | 2004-07-28 | 2007-07-18 | ファナック株式会社 | ロボットシステムにおける3次元視覚センサの再校正方法及び装置 |
US9393694B2 (en) | 2010-05-14 | 2016-07-19 | Cognex Corporation | System and method for robust calibration between a machine vision system and a robot |
CN102294695A (zh) * | 2010-06-25 | 2011-12-28 | 鸿富锦精密工业(深圳)有限公司 | 机器人标定方法及标定*** |
JP5371927B2 (ja) * | 2010-10-27 | 2013-12-18 | 三菱電機株式会社 | 座標系校正方法及びロボットシステム |
RU2455676C2 (ru) * | 2011-07-04 | 2012-07-10 | Общество с ограниченной ответственностью "ТРИДИВИ" | Способ управления устройством с помощью жестов и 3d-сенсор для его осуществления |
JP5991121B2 (ja) | 2012-09-28 | 2016-09-14 | 株式会社デンソーウェーブ | キャリブレーション装置、および撮像装置のキャリブレーション方法 |
US10032273B2 (en) * | 2013-03-15 | 2018-07-24 | Cognex Corporation | Machine vision system calibration using inaccurate calibration targets |
EP2981397B1 (en) * | 2013-04-05 | 2017-06-14 | ABB Schweiz AG | A robot system and method for calibration |
JP6468741B2 (ja) * | 2013-07-22 | 2019-02-13 | キヤノン株式会社 | ロボットシステム及びロボットシステムの校正方法 |
JP6429473B2 (ja) * | 2014-03-20 | 2018-11-28 | キヤノン株式会社 | ロボットシステム、ロボットシステムの校正方法、プログラム、およびコンピュータ読み取り可能な記録媒体 |
US9193073B1 (en) | 2014-10-15 | 2015-11-24 | Quanta Storage Inc. | Robot calibration apparatus for calibrating a robot arm |
US10076842B2 (en) * | 2016-09-28 | 2018-09-18 | Cognex Corporation | Simultaneous kinematic and hand-eye calibration |
-
2016
- 2016-09-28 US US15/278,156 patent/US10076842B2/en active Active
-
2017
- 2017-09-26 JP JP2017184395A patent/JP6591507B2/ja active Active
- 2017-09-27 KR KR1020170125399A patent/KR102093165B1/ko active IP Right Grant
- 2017-09-27 DE DE102017217142.1A patent/DE102017217142B4/de active Active
- 2017-09-28 CN CN201710896174.4A patent/CN107871328B/zh active Active
-
2018
- 2018-09-17 US US16/133,324 patent/US20190015991A1/en not_active Abandoned
-
2019
- 2019-06-21 US US16/448,925 patent/US10864639B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999012082A1 (en) * | 1997-09-04 | 1999-03-11 | Dynalog, Inc. | Method for calibration of a robot inspection system |
US20060095226A1 (en) * | 2002-11-21 | 2006-05-04 | Samsung Electronics Co., Ltd. | Hand/eye calibration method using projective invariant shape descriptor of 2-dimensional image |
CN101169621A (zh) * | 2007-11-19 | 2008-04-30 | 北京理工大学 | 一种基于小波神经网络的视觉反馈控制方法 |
CN103991078A (zh) * | 2013-02-14 | 2014-08-20 | 佳能株式会社 | 机器人***和用于控制该机器人***的方法 |
CN105157725A (zh) * | 2015-07-29 | 2015-12-16 | 华南理工大学 | 一种二维激光视觉传感器和机器人的手眼标定方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108772839B (zh) * | 2018-06-25 | 2021-07-20 | 中国人民解放军第二军医大学 | 主从操作与人机一体化*** |
CN108772839A (zh) * | 2018-06-25 | 2018-11-09 | 中国人民解放军第二军医大学 | 主从操作与人机一体化*** |
CN109079778A (zh) * | 2018-08-07 | 2018-12-25 | 珠海格力电器股份有限公司 | 机器人调零***及方法 |
CN112672860A (zh) * | 2018-09-10 | 2021-04-16 | 发纳科美国公司 | 用于ar和数字孪生的机器人校准 |
CN112672860B (zh) * | 2018-09-10 | 2024-04-09 | 发纳科美国公司 | 用于ar和数字孪生的机器人校准 |
CN110695770A (zh) * | 2019-10-21 | 2020-01-17 | 上海维宏电子科技股份有限公司 | 视觉定位校准的方法及相应的数控加工的方法 |
CN111113490A (zh) * | 2019-12-31 | 2020-05-08 | 深圳市远弗科技有限公司 | 一种视觉机器人大规模客制化的自动化校准***及方法 |
CN111113490B (zh) * | 2019-12-31 | 2021-11-23 | 深圳市远弗科技有限公司 | 一种视觉机器人大规模客制化的自动化校准***及方法 |
CN111667539B (zh) * | 2020-06-08 | 2023-08-29 | 武汉唯理科技有限公司 | 一种相机标定及平面测量方法 |
CN111667539A (zh) * | 2020-06-08 | 2020-09-15 | 武汉唯理科技有限公司 | 一种相机标定及平面测量方法 |
CN114025153A (zh) * | 2021-03-05 | 2022-02-08 | 黑芝麻智能科技有限公司 | LiDAR辅助的轮编码器到相机的校准 |
CN114025153B (zh) * | 2021-03-05 | 2023-11-21 | 黑芝麻智能科技有限公司 | LiDAR辅助的轮编码器到相机的校准 |
CN113070879B (zh) * | 2021-03-29 | 2022-03-29 | 北京锐智金联科技有限公司 | 可移动设备 |
CN113070879A (zh) * | 2021-03-29 | 2021-07-06 | 北京锐智金联科技有限公司 | 可移动设备 |
Also Published As
Publication number | Publication date |
---|---|
JP6591507B2 (ja) | 2019-10-16 |
KR20180035172A (ko) | 2018-04-05 |
US10864639B2 (en) | 2020-12-15 |
US20180089831A1 (en) | 2018-03-29 |
US20190015991A1 (en) | 2019-01-17 |
US20190308326A1 (en) | 2019-10-10 |
US10076842B2 (en) | 2018-09-18 |
DE102017217142A1 (de) | 2018-03-29 |
CN107871328B (zh) | 2021-08-24 |
DE102017217142B4 (de) | 2019-10-02 |
JP2018051758A (ja) | 2018-04-05 |
KR102093165B1 (ko) | 2020-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107871328A (zh) | 机器视觉***和机器视觉***实现的校准方法 | |
US11077557B2 (en) | System and method for robust calibration between a machine vision system and a robot | |
JP6370038B2 (ja) | 位置姿勢計測装置及び方法 | |
CA2825834C (en) | Automated frame of reference calibration for augmented reality | |
CN103991078B (zh) | 机器人***和用于控制该机器人***的方法 | |
CN109658460A (zh) | 一种机械臂末端相机手眼标定方法和*** | |
CN109910016A (zh) | 基于多自由度机械臂的视觉采集标定方法、装置及*** | |
CN102855620B (zh) | 基于球形投影模型的纯旋转摄像机自标定方法 | |
CN110969665B (zh) | 一种外参标定方法、装置、***及机器人 | |
CN110411476A (zh) | 视觉惯性里程计标定适配及评价方法和*** | |
CN109807937A (zh) | 一种基于自然场景的机器人手眼标定方法 | |
CN106940894A (zh) | 一种基于主动视觉的手眼***自标定方法 | |
Gratal et al. | Visual servoing on unknown objects | |
JP2017525937A (ja) | オプティカルトラッキングシステム及びオプティカルトラッキングシステムのマーカー部の姿勢並びに位置算出方法 | |
CN109489558A (zh) | 距离测量***和距离测量方法 | |
Khan et al. | On the calibration of active binocular and RGBD vision systems for dual-arm robots | |
CN113795358B (zh) | 一种坐标系校准方法、装置和计算机可读介质 | |
JP2011238097A5 (zh) | ||
CN109389645A (zh) | 相机自校准方法、***、相机、机器人及云端服务器 | |
Vicente et al. | Gpu-enabled particle based optimization for robotic-hand pose estimation and self-calibration | |
Koch et al. | Evaluating continuous-time slam using a predefined trajectory provided by a robotic arm | |
Sargeant et al. | A webcam photogrammetric method for robot calibration | |
US20230033821A1 (en) | Tool position determination in a robotic appendage | |
CN117944039A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
WO2020034402A1 (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 |