CN110463376B - 一种插机方法及插机设备 - Google Patents
一种插机方法及插机设备 Download PDFInfo
- Publication number
- CN110463376B CN110463376B CN201980000632.9A CN201980000632A CN110463376B CN 110463376 B CN110463376 B CN 110463376B CN 201980000632 A CN201980000632 A CN 201980000632A CN 110463376 B CN110463376 B CN 110463376B
- Authority
- CN
- China
- Prior art keywords
- current
- manipulator
- pose
- image
- program module
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 318
- 230000033001 locomotion Effects 0.000 claims abstract description 364
- 238000003780 insertion Methods 0.000 claims abstract description 66
- 230000037431 insertion Effects 0.000 claims abstract description 66
- 238000012549 training Methods 0.000 claims description 158
- 230000008569 process Effects 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 27
- 238000010801 machine learning Methods 0.000 abstract description 38
- 238000013527 convolutional neural network Methods 0.000 description 214
- 238000013528 artificial neural network Methods 0.000 description 124
- 230000006870 function Effects 0.000 description 46
- 230000000007 visual effect Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 32
- 210000002569 neuron Anatomy 0.000 description 26
- 238000012795 verification Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 239000000463 material Substances 0.000 description 7
- 230000002950 deficient Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 210000004027 cell Anatomy 0.000 description 4
- 230000007547 defect Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 4
- 239000012636 effector Substances 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000012886 linear function Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 230000005284 excitation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K13/00—Apparatus or processes specially adapted for manufacturing or adjusting assemblages of electric components
- H05K13/04—Mounting of components, e.g. of leadless components
Landscapes
- Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Manipulator (AREA)
Abstract
本发明提供一种插机方法及插机设备。所述插机方法包括:根据获取的包括引脚的第一图像,获取引脚相对机械手在第一坐标系下的相对位姿(S110);根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿(S120);根据包括目标插孔的第二图像或第二当前图像,获取目标插孔在所述第一坐标系下的第三位姿或第三当前位姿(S130);根据所述第一当前位姿、所述相对位姿、以及所述第三位姿或第三当前位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量(S140);判断所述机械手是否满足插机条件(S150);若满足,控制所述机械手带动所述引脚插入所述目标插孔(S160);若不满足,控制机械手实施所述当前运动量(S170)。采用本发明的技术方案,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率和效率。
Description
技术领域
本发明涉及自动化技术领域,具体涉及一种插机方法及插机设备。
背景技术
现有的工业自动化技术领域中,自动化插机设备用于自动将电子元件的引脚插入PCB板中,目前的自动化插机设备可以包括两种工作方式:一种方式是盲插,盲插是预先计算好获取的电子元件的位置和PCB板的位置,靠机械精度的配合实现没有视觉指导下的插机,这种方式对机械和各部件的位置精度要求较高。另外一种方式是基于视觉的插机方法,该方法是在插机过程中,加入眼睛的指导,这种方式虽然在一定程度上降低了机械和位置精度的要求,但是,当出现插机过程中外部环境改变或元件种类变化等等的情况时,可能会造成插机准确率降低,或者为适应各种不同的情况,在保证插机准确率的情况下,需要重新调整相关的参数,从而造成了效率的降低。
发明内容
本发明的目的是提供一种插机方法及插机设备。通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率和效率。
本发明第一方面提供一种插机方法,所述插机方法包括:
根据获取的包括引脚的第一图像,获取引脚相对机械手在第一坐标系下的相对位姿;
根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
根据获取的包括目标插孔的第二图像或第二当前图像,获取目标插孔在所述第一坐标系下的第三位姿或第三当前位姿;
根据所述第一当前位姿、所述相对位姿、以及所述第三位姿或第三当前位姿,基于预先经过训练的NN模型计算所述机械手需实施的当前运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第二方面提供一种插机方法,所述插机方法包括:
根据获取的包括引脚的第一图像,基于预先经过训练的第一CNN模型,获取引脚相对机械手在第一坐标系下的相对位姿;
根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
根据获取的包括目标插孔的第二图像或第二当前图像,基于预先经过训练的第二CNN模型或所述第一CNN模型,获取所述目标插孔在所述第一坐标系下的第三位姿或第三当前位姿;
根据所述第一当前位姿、所述相对位姿、以及所述第三位姿或第三当前位姿,计算机械手需实施的当前运动量;判断机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第三方面提供一种插机方法,所述插机方法包括:
获取包括引脚的第一图像;
根据获取的机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
获取包括目标插孔的第二图像或第二当前图像;
根据所述第一图像、所述第一当前位姿、所述第二图像或所述第二当前图像,基于预先经过训练的第三CNN模型,计算所述机械手需实施的当前运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第四方面提供一种插机方法,所述插机方法包括:
根据获取的包括引脚和目标插孔的第三当前图像,获取所述引脚在第一坐标系下的第二位姿或第二当前位姿,以及所述目标插孔在所述第一坐标系下的第三位姿或第三当前位姿;
根据获取的机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
根据所述第一当前位姿、所述第二位姿或第二当前位姿、以及所述第三位姿或第三当前位姿,基于预先经过训练的NN模型计算所述机械手需实施的当前运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第五方面提供一种插机方法,所述插机方法包括:
根据包括引脚和目标插孔的第三当前图像,基于预先经过训练的第四CNN模型,获取所述引脚在第一坐标系下的第二位姿或第二当前位姿,以及所述目标插孔在所述第一坐标系下的第三位姿或第三当前位姿;
根据机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
根据所述第一当前位姿、所述第二位姿或第二当前位姿、以及所述第三位姿或第三当前位姿,计算所述机械手需实施的当前运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第六方面提供一种插机方法,所述插机方法包括:
获取包括引脚和目标插孔的第三当前图像;
根据获取的机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
根据所述第三当前图像和所述第一当前位姿,基于预先经过训练的第五CNN模型,计算所述机械手需实施的当前运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第七方面提供一种插机方法,所述插机方法包括:
根据获取的包括引脚的第一图像,获取引脚的第二坐标;
根据获取的机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
根据获取的包括目标插孔的第二图像或第二当前图像,获取目标插孔的第三坐标或第三当前坐标;
根据所述第一当前位姿、所述第二坐标、以及所述第三坐标或第三当前坐标,基于预先经过训练的NN模型计算所述机械手需实施的当前运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第八方面提供一种插机方法,所述插机方法包括:
根据获取的包括引脚的第一图像,基于预先经过训练的第一CNN模型,获取引脚的第二坐标;
根据机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
根据获取的包括目标插孔的第二图像或第二当前图像,基于所述预先经过训练的第一CNN模型或预先经过训练的第二CNN模型,获取目标插孔的第三坐标或第三当前坐标;
根据所述第一当前位姿、所述第二坐标、以及所述第三坐标或第三当前坐标,计算所述机械手需实施的当前运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动引脚插入目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第九方面提供一种插机方法,所述插机方法包括:
根据获取的包括引脚和目标插孔的第三当前图像,获取引脚在第一坐标系下的第二坐标或第二当前坐标,以及目标插孔的在所述第一坐标系下的第三坐标或第三当前坐标;
根据获取的机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
根据所述第一当前位姿、所述第二坐标或第二当前坐标、以及所述第三坐标或第三当前坐标,基于预先经过训练的NN模型计算所述机械手需实施的当前运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第十方面提供一种插机方法,所述插机方法包括:
根据获取的包括引脚和目标插孔的第三当前图像,基于预先经过训练的第三CNN模型,获取引脚的第二坐标或第二当前坐标,以及目标插孔的第三坐标或第三当前坐标;
根据机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
根据所述第一当前位姿、所述第二坐标或第二当前坐标、以及所述第三坐标或第三当前坐标计算所述机械手需实施的当前运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
本发明第十一方面提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上面任意一项所述的插机方法。
本发明第十二方面提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上面任意一项所述的插机方法。
本发明第十三方面提供一种插机设备,所述插机设备包括第一图像传感器、第二图像传感器、机械手和处理器;
所述处理器分别藕接所述第一图像传感器、所述第二图像传感器和所述机械手;
所述第一图像传感器在工作时,采集包括引脚的第一图像,并将所述第一图像发送给所述处理器;
所述第二图像传感器在工作时,采集包括目标插孔的第二图像或第二当前图像,并将所述第二图像或第二当前图像发送给所述处理器;
所述机械手在工作时,将机械手各关节的当前信息发送给所述处理器;基于所述处理器的控制移动所述当前运动量;基于所述处理器的控制带动所述引脚插入所述目标插孔;
所述处理器在工作时实现上面第一到第四方面任意一项所述的插机方法;或
上面第九到第十一方面任意一项所述的插机方法。
本发明第十四方面提供一种插机设备,所述插机设备包括第三图像传感器、机械手和处理器;
所述处理器分别藕接所述第三图像传感器和所述机械手;
所述第三图像传感器在工作时,采集包括引脚和目标插孔的第三当前图像,并将所述第三当前图像发送给所述处理器;
所述机械手在工作时,将机械手各关节的当前信息发送给所述处理器;基于所述处理器的控制移动所述当前运动量;基于所述处理器的控制带动所述引脚插入所述目标插孔;
所述处理器在工作时实现上面第五到第八方面任意一项所述的插机方法;或第十二到第十四方面任意一项所述的插机方法。
本发明第十四方面提供一种插机装置,所述插机装置包括各功能模块,有关各功能模块的相关描述参见上面的插机方法。
本发明第十五方面提供一种上面第一、第二、第五或第六方面所述的插机方法中的预先经过训练的NN模型的获取方法,所述预先经过训练的NN模型通过如下方法获取:
获取初始化的NN模型,所述NN模型为针对输入的第一当前位姿、相对位姿、第二当前位姿或第二位姿、以及第三位姿或第三当前位姿,输出机械手需实施的当前运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的NN模型进行训练,以获取所述预先经过训练的NN模型。
本发明第十六方面提供一种上面第二或第三方面所述的插机方法中的预先经过训练的第一CNN模型的获取方法,所述预先经过训练的第一CNN模型通过如下方法获取:
获取初始化的第一CNN模型,所述第一CNN模型为针对输入的第一图像输出相对位姿或引脚位姿;和/或针对输入的第二图像或第二当前图像输出第三位姿或第三当前位姿;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第一CNN模型进行训练,以获取所述预先经过训练的第一CNN模型。
本发明第十七方面提供一种上面第四方面所述的插机方法中的预先经过训练的第三CNN模型的获取方法,所述预先经过训练的第三CNN模型通过如下方法获取:
获取初始化的第三CNN模型,所述第三CNN模型为针对输入的第一图像、第二图像或第二当前图像和第一当前位姿,输出机械手需实施的当前运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第三CNN模型进行训练,以获取所述预先经过训练的第三CNN模型。
本发明第十八方面提供上面第六或第七方面所述的插机方法中的预先经过训练的第四CNN模型的获取方法,所述预先经过训练的第四CNN模型通过如下方法获取:
获取初始化的第四CNN模型,所述第四CNN模型为针对输入的第三当前图像,输出第二位姿或第二当前位姿,以及第三位姿或第三当前位姿;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第四CNN模型进行训练,以获取所述预先经过训练的第四CNN模型。
本发明第十九方面提供一种第八方面所述的插机方法中的预先经过训练的第五CNN模型的获取方法,所述预先经过训练的第五CNN模型通过如下方法获取:
获取初始化的第五CNN模型,所述第五CNN模型为针对输入的第三当前图像和第一当前位姿,输出机械手需实施例的当前运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第五CNN模型进行训练,以获取所述预先经过训练的第五CNN模型。
本发明第二十方面提供一种上面第九、第十、第十二或第十三所述的插机方法中的预先经过训练的NN模型的获取方法,所述预先经过训练的NN模型的获取方法包括:
获取初始化的NN模型,所述NN模型为针对输入的所述第一当前位姿、所述第二坐标或第二当前坐标、以及所述第三坐标或第三当前坐标,输出所述机械手需实施的当前运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的NN模型进行训练,以获取所述预先经过训练的所述NN模型。
本发明第二十一方面提供一种上面第十或第十一方面所述的插机方法中的预先经过训练的第六CNN模型的获取方法,所述预先经过训练的第六CNN模型的获取方法包括:
获取初始化的第六CNN模型,所述第六CNN模型为针对输入的所述第一图像和/或所述第二图像或第二当前图像,输出所述第二坐标,和/或所述第三坐标或第三当前坐标;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第六CNN模型进行训练,以获取所述预先经过训练的所述第六CNN模型。
本发明第二十二方面提供一种上面第十或第十一所述的插机方法中的预先经过训练的第七CNN模型的获取方法,所述预先经过训练的第七CNN模型的获取方法包括:
获取初始化的第七CNN模型,所述第七CNN模型为针对输入的所述第二图像或第二当前图像,输出所述第三坐标或第三当前坐标;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第七CNN模型进行训练,以获取所述预先经过训练的所述第七CNN模型。
本发明第二十三方面提供一种上面第十三或第十四任意一项所述的插机方法中的预先经过训练的第八CNN模型的获取方法,所述预先经过训练的第八CNN模型的获取方法包括:
获取初始化的第八CNN模型,所述第八CNN模型为针对输入的所述第三当前图像,输出所述第二坐标或第二当前坐标,以及所述第三坐标或第三当前坐标;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第八CNN模型进行训练,以获取所述预先经过训练的所述第八CNN模型。
采用本发明的插机方法及插机设备,由于基于机器学习的方法进行插机,能够适应在背景环境复杂的情况下的插机,因此提高了插机工作的效率及准确率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以基于这些附图获取其它的附图。
图1为本发明提供的插机方法的实施例的第一流程图。
图2为本发明提供的插机方法的实施例的第二流程图。
图3为本发明提供的预先经过训练的NN模型获取方法的实施例的流程图。
图4为本发明提供的预先经过训练的第一CNN模型的获取方法的实施例的流程图。
图5为本发明提供的预先经过训练的第二CNN模型的获取方法的实施例的流程图。
图6为本发明提供的插机方法的实施例的第三流程图。
图7为本发明提供的插机方法的实施例的第四流程图。
图8为本发明提供的插机方法的实施例的第五流程图。
图9为本发明提供的插机方法的实施例的第六流程图。
图10为本发明提供的预先经过训练的第三CNN模型的获取方法的实施例的流程图。
图11为本发明提供的插机方法的实施例的第七流程图。
图12为本发明提供的插机方法的实施例的第八流程图。
图13为本发明提供的预先经过训练的第四CNN模型的获取方法的实施例的流程图。
图14为本发明提供的插机方法的实施例的第九流程图。
图15为本发明提供的插机方法的实施例的第十流程图。
图16为本发明提供的插机方法的实施例的第十一流程图。
图17为本发明提供的插机方法的实施例的第十二流程图。
图18为本发明提供的预先经过训练的第五CNN模型的获取方法的实施例的流程图。
图19为本发明提供的插机设备的实施例的第一结构框图。
图20为本发明提供的插机设备的实施例的第二结构框图。
图21为本发明提供的插机设备的实施例的第三结构框图。
图22为本发明提供的插机设备的实施例的第四结构框图。
图23为本发明提供的电子设备的实施例的结构框图。
图24为本发明提供的模型连接实施例的第一结构框图。
图25为本发明提供的模型连接实施例的第二结构框图。
图26为本发明提供的模型连接实施例的第三结构框图。
图27为本发明中的前馈申请网络的结构图。
图28为本发明提供的插机方法的实施例的第十三流程图。
图29为本发明提供的插机方法的实施例的第十四流程图。
图30为本发明提供的预先经过训练的NN模型获取方法的实施例的流程图。
图31为本发明提供的预先经过训练的第六CNN模型的获取方法的实施例的流程图。
图32为本发明提供的预先经过训练的第七CNN模型的获取方法的实施例的流程图。
图33为本发明提供的插机方法的实施例的第十五流程图。
图34为本发明提供的插机方法的实施例的第十六流程图。
图35为本发明提供的插机方法的实施例的第十七流程图。
图36为本发明提供的插机方法的实施例的第十八流程图。
图37为本发明提供的预先经过训练的第八CNN模型的获取方法的实施例的流程图。
图38为本发明提供的插机方法的实施例的第十九流程图。
图39为本发明提供的插机方法的实施例的第二十流程图。
具体实施方式
为了使本领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其它实施例,都应当属于本发明保护的范围。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一、
图1为本发明提供的插机方法的实施例的第一流程图。图2为本发明提供的插机方法的实施例的第二流程图。图19为本发明提供的插机设备的实施例的第一结构框图。图20为本发明提供的插机设备的实施例的第二结构框图。
插机设备是一种自动实现将电子元件的引脚插入PCB板上的目标插孔的工业自动化设备。
如图1所示,本发明实施例提供一种插机方法,该插机方法包括:
S110根据获取的包括引脚的第一图像,获取在第一坐标系下的引脚相对机械手的相对位姿。
如图19、20所示,机械手730在处理器740的控制下在取料位拾取电子元件800之后,将电子元件800移动至第一图像传感器710的视野范围内,使得通过第一图像传感器710采集包括电子元件800的引脚810的第一图像。该第一图像通常不包括PCB板背景,因为如果图像中包括PCB板背景,由于背景图像复杂,会使得引脚识别存在一定困难。
第一坐标系可以包括:机械手坐标系、第一图像传感器坐标系、第二图像传感器坐标系或者任意指定的经过与上述各个坐标系标定过的其它坐标系。该第一坐标系需要预先与其它坐标系进行标定,从而可以使得其它坐标系基于预先标定的矩阵转换关系统一转换到该第一坐标系下。本具体实施例下面以机械手坐标系作为第一坐标系为例进行进一步详细的说明,在一些实施例中,通常将机械手的底座的中心设置为机械手坐标系。
所述机械手的位姿可以是指机械手的末端关节连接的法兰盘中心的位姿,也可以是指机械手的末端执行器的中心的位姿等等。
根据机械手各关节发送给处理器的各关节的此时信息,此时信息包括各个关节的运动量的信息,再结合各个关节的类型和尺寸等信息,通过机械手运动学正解公式,可以求得此时机械手此时在机械手坐标系下的位姿。
根据第一图像获取引脚的相对位姿,后面实施例会有进一步详细的描述。
在一些实施例中,通过第一图像传感器采集的第一图像,除用于获取引脚的相对位姿之外,还可以用于检查电子元件是否存在缺陷,即通过对第一图像的分析,与预先存储的非缺陷元件图像进行对比,从而判断该电子元件是否存在缺陷。如果不存在缺陷可以继续进行下面的步骤,如果存在缺陷可以控制机械手将该电子元件放回到回收位,然后再返回取料位重新拾取电子元件。
S120根据获取的机械手的各关节的当前信息,获取在第一坐标系下的机械手的第一当前位姿。
如图2所示,在一些实施例中,在获取相对位姿之后,在获取第一当前位姿,或第三位姿或第三当前位姿之前,可以执行步骤S180控制机械手带动引脚移动到目标插孔附近,这样可以节省后续的插机工作时间。在一些实施例中,在将引脚移动到某块PCB板上的第一个目标插孔附近时,可以先检测PCB板上的标记点的坐标或位姿,标记点(Mark point)为PCB板上一个带有周边空白区域的实心的圆形或者矩形点,结合PCB板布局图,可以推算出目标插孔的大致位置,并将电子元件移动至此大致位置,则可使引脚位于目标插孔的附近。以后,由于已经知道了第一个目标插孔的位置,因此不再需要获取标记位图像,可以以第一个目标插孔的位置为基准,结合PCB板的布局图,推算出目标插孔的大致位置坐标,并控制机械手移动到此位置,从而使得引脚移动到目标插孔附近。
S130获取在第一坐标系下的目标插孔的第三位姿或第三当前位姿。
基于获取的通过第二图像传感器采集并发送的包括目标插孔的第二当前图像,提获取目标插孔在机械手坐标系下的第三位姿或第三当前位姿。后面会对具体的获取方法进行详细说明。
如图19所示,根据上面实施例所述,当第二图像传感器720设置在机械手的末端关节上,除此之外也可以设置在机械手的其它关节上(图未示意出),获取从第二图像传感器720采集并发送的第二当前图像,进而获取目标插孔的第三当前位姿。
如图20所示,当设置在PCB板周边某一位置时,由于第二图像传感器720相对于PCB板900位置固定,因此,只需获取一次第二图像,根据第二图像获取目标插孔的第三位姿。
优选将第二图像传感器720设置在机械手上,由于第二图像传感器720跟随机械手730一起移动,使得第二图像传感器720能够位于更接近目标插孔910正上方或者接近正上方的位置获取包括目标插孔的图像,从而提高目标插孔位姿提取的精度,更好的提高后续插机的准确率。
S140根据第一当前位姿、相对位姿、以及第三位姿或第三当前位姿,基于预先经过训练的神经网络(Neural Network NN)模型计算机械手需实施的当前运动量;S150判断机械手是否满足插机条件;若满足,S160控制机械手带动引脚插入目标插孔;若不满足,S170控制机械手实施所述当前运动量。
需要说明的是,根据第一当前位姿、相对位姿、以及第三位姿或第三当前位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量可以包括:根据第一当前位姿和相对位姿计算出第二当前位姿,由于在经过S110获取相对位姿后,在机械手移动过程中,机械手和引脚的相对位姿保持不变,因此,通过获取机械手的第一当前位姿,就可以获取引脚的第二当前位姿。将第一当前位姿、第二当前位姿以及第三位姿或第三当前位姿输入所述NN模型,输出当前运动量;或者直接将第一当前位姿、相对位姿以及第三位姿或第三当前位姿输入所述NN模型,输出当前运动量;优选前一种方式,这样可以提高运动量获取的精度。
判断机械手是否满足插机条件(即引脚足够接近目标插孔),可以以连续几步的当前运动量(比如:2-3步)的增量都很小,比如:小于某一个阈值,即认为引脚足够接近目标插孔。
若满足,控制机械手带动引脚插入目标插孔,从而完成该电子元件的插机动作;然后,控制机械手移动到下一电子元件的取料位,夹取下一个电子元件,并重复上述步骤,直到PCB板上所有目标插孔对应的电子元件的插机动作全部完成。
若不满足,控制机械手实施对应的所述当前运动量,待机械手实施完毕对应的当前运动量后,重新重复上面的步骤。
机械手需实施的当前运动量是指机械手的末端执行器或末端轴等等需实施的运动量(移动量+旋转量)。基于计算出的当前运动量,通过机械手运动学逆解公式,可以求得机械手各关节需要实施的运动量,然后将各个运动量的指令发送给各个关节的马达控制器,从而控制机械手运动相对应的运动量。
在一些实施例中,一个大的PCB板可能难以一次完成整个插机工作,因此,通常将一个大的PCB板虚拟分成多个小的模块,分多次完成多个模块的插机,从而最终完成整个PCB板的插机,因此,在这种情况下,先根据本具体实施例的插机方法完成一个模块的插机,然后重复该插机方法的步骤,依次完成其它模块的插机,直到整个PCB板完成插机。然后将该PCB板移开该工作位,并将下一块PCB板移动到该插机工作位重复本发明实施例的插机方法所述的步骤。
NN模型是一种运算模型,由大量的节点(或称神经元)和之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。NN按网络结构划分可归纳为三大类:前馈神经网络、反馈申请网络和自组织申请网络。本具体实施例优选前馈神经网络。
前馈神经网络(feedforward neural network FNN),简称前馈网络。在此种神经网络中,各神经元从输入层开始,接收前一级输入,并输出到下一级,直至输出层。整个网络中无反馈,可用一个有向无环图表示。
前馈神经网络采用一种单向多层结构。其中每一层包含若干个神经元,同一层的神经元之间没有互相连接,层间信息的传送只沿一个方向进行。其中第一层称为输入层,最后一层为输出层,中间为隐含层,简称隐层。隐层可以是一层,也可以是多层。
在神经网络模型中,生物神经元模型被简化为由一个线性函数加上一个非线性激活函数组成的数学模型。在这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过激活函数处理以产生神经元的输出。
非线性激活函数,是使得神经网络可以表征非线性函数的关键。常见的激活函数有3种,分别是Sigmoid函数,tanh函数,以及ReLU函数。Sigmoid函数的数学表达式为它可以将输入映射为0至1之间的某个数。当输入大于0时,函数输出大于0.5,且输入越大,函数输出越接近1,此时可以认为这个神经元被激活了。Tanh函数,即双曲正切函数,与sigmoid函数类似。不同的是它将输入映射为-1至1之间的某个数。ReLU函数是目前最简单,也是使用最广泛的一个激活函数,它的数学表达式可以写做g(x)=max(0,x)。也就是说,小于0的所有输入都会被压制(不激活),而大于0的输入都会激活这个神经元,并且输入越大,输出也越大(不会像另外两个一样进入饱和状态)。
由上可知,每一个神经元代表一个非线性函数,因此神经网络中的每一层则代表了一组非线性函数。这些非线性函数的输出即为下一层的输入。
图27为本发明中的前馈申请网络的结构图。
如图27所示,我们可以用一个最简单的,只有2个输入,1个带有2个神经元的隐藏层,以及带有1个输出神经元的输出层的神经网络来阐述神经网络的前馈计算过程。x1,x2为输入,w为权重,h1,h2代表了中间隐藏层各神经元的输出,y代表了这个神经网络的输出。我们需要先计算隐藏层的输出h1和h2。
其中,b1,b2是相应神经元的偏置,g代表了激活函数。
神经网络的输出y可以用h1,h2来表示。通常,神经网络的输出层不使用激活函数。
将h1和h2代入后可以得到:
这就是前馈神经网络的主要计算逻辑。不管神经网络有多少层,都可以这样一层套一层地计算下去直至输出层。
在本发明的其中一个优选实施例中,该前馈神经网络可以包含2-5层隐层,每层含有1024个神经元。每一层隐层都是一个全连接层,也就是说下一层的任意一个神经元都和上一层的所有神经元相连。这个NN模型的输出层有6个神经元,分别对应了控制机械手位姿所需的xyzuvw空间坐标。除此之外,还可以根据需要设置任意数量的隐层,每层设置任意数量的神经元。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
如图3所示,在一些实施例中,预先经过训练的NN模型可以通过如下方法获取:
S141获取初始化的NN模型,所述NN模型为针对输入的在第一坐标系下的第一当前位姿、第二当前位姿或相对位姿、以及第三位姿或第三当前位姿,输出机械手需实施的当前运动量。
NN模型实际上是一族函数,或者说一个函数族。这些函数拥有一些共同的性质,因为一旦确定了模型,模型结构是固定的,每一个模型参数的具体选取,相当于在这个函数族中选择了一个函数。模型训练实际上就是在这个函数族中选择一个最好的函数来描述输入和输出之间的数量关系。
初始化NN模型,实际上就是确定模型结构,以及该模型的初始参数。
初始化参数的方法可以包括:
a)用固定的常数来初始化,例如,把所有参数都初始化为0。
b)用随机数初始化,例如,用一个零均值指定方差的高斯分布来产生随机数。
S142获取训练数据和标签数据。
可以基于传统视觉伺服运行插机多次(比如:1000次),以获取足够的训练数据用以训练初始化的NN模型。
在传统视传统视觉伺服时,机械手通常按照预先设定的步数(比如:3步)或者连续几步的运动增量很小时形成最终插入元件时机械手的位姿。具体可以以视觉伺服时机械手每走一步时的机械手的位姿,以及该步对应的引脚的位姿和目标插孔的位姿作为训练数据,训练NN模型。
基于视觉伺服时机械手每一步的位姿,以及最终插入元件时机械手的位姿,计算出机械手从每一步位姿移动至插入位姿所需的运动量,以这个运动量作为NN模型训练用的标注形成标签数据。
S143基于所述训练数据和标签数据,对所述初始化的NN模型进行训练,以获取预先经过训练的NN模型。
对于每一个输入NN模型的训练数据,都有一个对应的标签数据(相当于正确答案),将训练数据输入初始化的NN模型后得到一个预测结果,预测结果和标签数据的标注有差距,这个差距可以通过误差公式来衡量。训练模型就是通过调整模型的参数,使得模型输出的预测结果和标签数据中标注尽可能相近。
训练误差函数可以基于需要采用相应的函数,比如:取预测结果与标签数据的均方差。在一些实施例中,还可以引入一些与NN模型的参数相关的正则项以防止过拟合,比如:全体参数的平方和、Dropout或正则化(Regularization)。
以1万组训练数据为例,每个训练数据对应带有标注的标签数据。
由于训练数据数量太多,如果全部训练数据均通过模型得到预测并计算出和对应标注的误差后再更新一次模型参数的话(也就是9千次误差计算,9千个梯度计算,综合起来更新一次模型参数——迭代训练过程要更新好多次,不是所有数据跑完一次就结束,所有数据跑完一次就接着跑第二次上述流程),使得模型的参数更新的周期过长。
因此,在一些实施例中,可以将这9千个训练数据划分为一个个容量更小的集合,例如每100个作为一个小集合(mini-batch),一共90个这样的mini-batch。然后对这90个mini-batch分别做之前的训练操作。这时候,每一个mini-batch就会更新一次模型参数(100次误差计算,100个梯度计算,综合起来更新一次模型参数),当整个训练数据(9000个)都利用了一次之后,模型参数已经更新了90次。(当然还需要继续重复上述过程)。
不断重复上述步骤,训练误差函数的优化目标可以基于需要进行各种设计,当达到训练误差的优化目标时,停止模型的训练,此时模型的当前参数即为最终模型的参数。
需要说明的是,训练误差函数的优化目标可以包括但不限于如下几种情况:
1、优化目标为预设的最大迭代次数,迭代完毕时对应的模型的当前参数即为该模型最终的参数;
2、优化目标为某一阈值,记录每次迭代后的训练误差的函数的值,当训练误差低于此阈值时的当前参数为最终模型的参数。
在一些实施例中,还可以将其中一部分训练数据划分一部分(比如1万组数据中的其中1000组)作为验证数据,同样验证数据也有对应的标注,验证数据的作用是检查模型是否过拟合,譬如每90次更新后(也就是9000个训练数据每被利用一次后),用当前模型对这1000个验证数据进行预测,然后和标注进行误差计算,来作为是否过拟合的标准。
不断重复上述过程,并记录每次迭代的训练误差和验证误差。训练误差理论上是不断下降的趋势(因为模型是用训练误差来更新的),但是验证误差不一定一直下降(因为模型并没有基于验证误差进行更新)。当发现随着模型的不断更新,验证样本的误差不再下降甚至上升,可判断模型已经过拟合到训练样本上,此时可停止训练。选取验证误差较小时所对应的模型参数为最终模型参数。又或者设定一个最大迭代次数,迭代完毕后同样查看哪个模型参数对应的训练误差和验证误差都比较小作为最终模型参数。也可以设定一个阈值,当验证误差与训练误差均低于此阈值时停止训练,选用当前参数为最终模型参数。
图4为本发明提供的预先经过训练的第一CNN模型的获取方法的实施例的流程图。
在一些实施例中,上面实施例S110所述的根据获取的第一图像,获取相对位姿,可以通过传统视觉方法实现,也可以通过机器学习的方法实现。
传统视觉方式是指将第一图像进行二值化处理,然后从第一图像中识别出引脚的轮廓,根据该轮廓计算出引脚的坐标,再根据预先标定的结果将引脚坐标转换为引脚的位姿,然后根据机械手的位姿转换为相对位姿。
通过机器学习的方法为基于预先经过训练的第一CNN模型,获取相对位姿,具体可以包括:基于预先经过训练的第一CNN模型获取引脚的位姿,然后将引脚(该引脚可以指引脚插入端或者指整个引脚,优选引脚插入端)的位姿结合机械手位姿转换为相对位姿;或者将第一图像和机械手位姿输入第一CNN模型,直接输出相对位姿;优选先输出引脚位姿再转换为相对位姿,这样可以提高位姿获取的精度,下面以优选实施例为例进一步详细说明。
基于预先经过训练的第一CNN模型获取引脚的位姿具体可以包括:将第一图像输入预先经过训练的第一CNN模型,输出引脚的坐标,然后根据预先标定结果将坐标转换为引脚的位姿;或经过预先经过训练的第一CNN模型直接输出引脚的位姿,然后结合机械手的位姿转换为引脚的相对位姿。
需要说明的是,上述标定结果包括第一图像传感器自身的标定,以及第一图像传感器与机械手的标定(即手眼标定)。对第一图像传感器进行标定的作用,其一是为了求取内部参数,内部参数包括畸变系数(因为经过镜头等成像后,或多或少都有畸变)和焦距等等;当为双目或多目时,内部参数还可以包括结构参数,通过结构参数,便能把两个或两个以上相机获取的图像的每一个像素点之间的关系用数学语言定量描述,保证两个或两个以上的相机都处于“可求”的状态;其二是为了求取外部参数,得到标定板对应的世界坐标系和图像坐标系的对应的矩阵转换关系。对手眼进行标定,以得到第一图像传感器坐标系和第二图像传感器坐标系分别与机械手坐标系之间的矩阵转换关系。具体的标定方法可以采用OpenCV或者Matlab等等的方法。
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。
CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在图像处理方面有着独特的优越性。
第一卷积神经网络(CNN)模型可以包括各种网络结构,比如:LeNet,AlexNet,ZFNet,VGG,GoogLeNet,Residual Net,DenseNet,R-CNN,SPP-NET,Fast-RCNN,Faster-RCNN,FCN,Mask-RCNN,YOLO,SSD,YOLO2,以及其它现在已知或将来开发的网络模型结构。
由于插机方法对于精度要求比较高,因此,优选Fast-RCNN,Faster-RCNN,FCN等模型。
如图4所示,在一些实施例中,预先经过训练的第一CNN模型通过如下方法获取:
S111获取初始化的第一CNN模型,所述第一CNN模型为针对输入的第一图像输出引脚的坐标、位姿或相对位姿,和/或包括目标插孔的第二图像或第二当前图像输出第三位姿或第三当前位姿。需要说明的是,当模型需要输出相对位姿时,还需要结合输入模型的机械手的位姿,才能输出相对位姿。
这样第一CNN模型可以只用于根据第一图像,获取引脚的坐标、位姿或相对位姿;或者只用于根据第二图像或第二当前图像,获取第三位姿或第三当前位姿;或者用于即可以根据第一图像获取获取引脚的坐标、位姿或相对位姿,又可以用于根据第二图像或第二当前图像获取第三位姿或第三当前位姿。
第一CNN模型的初始化参见NN模型的初始化,在此不再重复赘述。
在另一些实施例中,为了节省训练时间,我们也可以用别人训练好的模型的参数来初始化自己的模型,然后在这个基础上进行微调(finetune)。
S112获取训练数据和标签数据;
在插机运行过程中或静止状态下采集多张包括目标插孔的图像,需要大约1000次以获取足够的训练数据用以训练模型。
标签数据可以通过人工或者自动的方法进行标注。自动的方法可以通过基于传统视觉方法的插机轨迹规划过程中,从包括目标插孔的图像中提取的目标插孔的坐标、位姿或相对位姿作为训练用的标注。
S113基于所述训练数据和标签数据,对所述初始化的第一CNN模型进行训练,以获取预先经过训练的所述第一CNN模型。
第一CNN模型具体训练的过程的相关描述参见上面实施例中NN模型的训练过程,在此不再重复赘述。
图5为本发明提供的预先经过训练的第二CNN模型的获取方法的实施例的流程图。
在一些实施例中,上面实施例所述的S130根据获取的第二图像或第二当前图像,获取在第一坐标系下的目标插孔的第三位姿或第三当前位姿,可以通过传统视觉方法实现,也可以通过机器学习的方法实现。
传统视觉方式是指将图像进行二值化处理,然后从图像中识别出目标插孔的轮廓,根据该轮廓计算出目标插孔的坐标,或者再根据预先标定的结果,将目标插孔的坐标转换为目标插孔的位姿。
通过机器学习的方法实现是指将第二当前图像输入预先经过训练的第二CNN模型或上面实施例所述的经过训练的第一CNN模型,输出第三位姿或第三当前位姿,具体可以包括:经过所述模型输出第三坐标或第三当前坐标,然后根据标定结果转换为第三位姿或第三当前位姿;或经过所述模型直接输出第三位姿或第三当前位姿;优选前者,这样可以提高位姿提取的精度。
需要说明的是,标定结果为获取第二图像或第二当前图像的第二图像传感器自身的标定,以及第二图像传感器与机械手之间的手眼标定,相关描述参见第一图像传感器,在此不再赘述。
如图5所示,在一些实施例中,预先经过训练的第二CNN模型通过如下方法获取:
S131获取初始化的第二CNN模型,所述第二CNN模型为针对输入的包括目标插孔的第二图像或第二当前图像,输出第二图像或第二当前图像中目标插孔的第三坐标或第三当前坐标,或第三位姿或第三当前位姿;
第二CNN模型的初始化参见NN模型的初始化,在此不再重复赘述。
在另一些实施例中,为了节省训练时间,我们也可以用别人训练好的模型的参数来初始化自己的模型,然后在这个基础上进行微调(finetune)。
S132获取训练数据和标签数据;
在插机运行过程中或静止状态下采集多张包括目标插孔的图像,需要大约1000次以获取足够的训练数据用以训练神经网络。
标签数据可以通过人工或者自动的方法进行标注。自动的方法可以通过基于传统视觉方法的插机轨迹规划过程中,从包括目标插孔的图像中提取的目标插孔的坐标作为训练用的标注。
S133基于所述训练数据和标签数据,对所述初始化的第二CNN模型进行训练,以获取预先经过训练的所述第二CNN模型。
第二CNN模型具体训练的过程的其它相关描述参见上面实施例中第一CNN或NN模型的训练过程,在此不再重复赘述。
需要说明的是,当为基于经过训练的第一CNN模型,输出第二位姿或第二当前位姿时,由于根据上面实施例所述,基于第一CNN模型还可以针对输入的第一图像输出引脚的坐标、位姿或相对位姿,因此,在对第一CNN模型进行训练时,需要输入第一图像以及第二图像或第二当前图像一同对第一CNN模型进行训练。具体的方法可以参见上面实施例所述的第一CNN模型和第二CNN模型的训练方法,在此不再赘述。
在一些实施例中,结合上面实施例所述,当相对位姿,第三位姿或第三当前位姿和当前运动量都采用机器学习的方法实现时,所述各个模型连接结构如下:
如图24所示,在一些实施例中,基于所述第一CNN模型11,进而获取相对位姿;基于所述第二CNN模型12,进而获取第三位姿或第三相对位姿;根据相对位姿或第一当前位姿获取第二当前位姿;所述MPL模型13结合第一当前位姿、第二当前位姿、第三位姿或第三当前位姿输出当前移动量。
如图24所示,在另一些实施例中,基于所述第一CNN模型11,进而获取相对位姿;基于所述第二CNN模型12,进而获取第三位姿或第三相对位姿;根据相对位姿或第一当前位姿获取第二当前位姿;所述MPL模型13结合第一当前位姿、相对位姿、第三位姿或第三当前位姿输出当前移动量。
如图25所示,在一些实施例中,当采用第一CNN模型11和MPL模型13时;基于所述第一CNN模型11,进而获取相对位姿以及第三位姿或第三相对位姿;根据所述第一当前位姿和相对位姿获取第二当前位姿;所述MPL模型13结合第一当前位姿、第二当前位姿、第三位姿或第三当前位姿输出当前移动量。
如图25所示,在另一些实施例中,当采用第一CNN模型11和MPL模型13时;基于所述第一CNN模型11,进而获取相对位姿以及第三位姿或第三相对位姿;所述MPL模型13结合第一当前位姿、相对位姿、第三位姿或第三当前位姿输出当前移动量。
如图19、20所述,在一些实施例中,本发明实施例还提供一种插机设备700,该插机设备700包括第一图像传感器710、第二图像传感器720、机械手730、处理器740和存储有计算机程序的存储器(图未示意出)。处理器740通过有线或者无线的方式藕接上述其它各个单元。
无线方式可以包括但不限于:3G/4G、WIFI、蓝牙、WiMAX、Zigbee、UWB(ultrawideband),以及其它现在已知或将来开发的无线连接方式。
第一图像传感器710在工作时,采集包括引脚的第一图像,将该第一图像发送给处理器740。
第一图像传感器710通常设置在PCB板插机工作位和电子元件取料位之间的某一位置处。
第二图像传感器720在工作时,采集包括目标插孔的第二图像或第二当前图像,将该第二图像或第二当前图像发送给处理器740。
第二图像传感器可以设置在能够获取包括目标插孔的图像的任意位置;比如:设置在PCB板周边某一位置或者设置在机械手上;如图20所示,当第二图像传感器720设置在PCB板900周边,第二图像传感器720相对目标插孔910位置固定,因此只需获取一次第二图像即可;如图19所示,当第二图像传感器720设置在机械手730上,随着机械手730的移动,目标插孔910的位姿在不断相对变化,因此机械手730每次移动后需要重新获取第二当前图像。优选将第二图像传感器设置在机械手上,后面实施例会有进一步详细的说明。
第一图像传感器和第二图像传感器可以分别采用单目、双目或者多目采集包括目标(引脚或目标插孔)的图像,通过处理器对包括目标的图像的分析获取目标的3D位姿。第一图像传感器和第二图像传感器可以包括:照相机、摄像机、扫描仪或其他带有相关功能的设备(手机、电脑等)等等。下面以相机为例进一步详细说明。
单目为只包括一部相机,即在只有一部相机的情况下,通过帧间移动来构成对应特征点的三角几何关系,从而获取目标的位姿。
双目为包括两部相机,即用两部相机来定位。对物体上一个目标,用两部固定于不同位置的相机获取包括目标的图像,分别获取该目标在两部相机平面上的坐标。只要知道两部相机精确的相对位置,就可用几何的方法得到该目标在其中任意一部相机的坐标系中的位姿,即确定该目标的位姿。
多目的原理参照双目,在此不再重复赘述。
所述机械手730在工作时,将机械手各关节的当前信息发送给所述处理器740;根据所述处理器740的控制移动当前运动量;根据所述处理器740的控制带动引脚插入目标插孔。
所述处理器740工作(即执行所述计算机程序)时实现上述各个插机方法实施例中的步骤,例如图1所示的步骤S110至S170。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的NN模型获取方法、预先经过训练的第一CNN模型获取方法和/或预先经过训练的第二CNN模型获取方法中的各个步骤。此外上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
实施例二、
插机设备是一种自动实现将电子元件的引脚插入PCB板上的目标插孔的工业自动化设备。
如图6所示,在一些实施例中,所述插机方法包括:
S210根据获取的包括引脚的第一图像,基于预先经过训练的第一CNN模型,获取引脚相对机械手在第一坐标系下的相对位姿。
如图7所示,在一些实施例中,在获取相对位姿之后,在获取第一当前位姿,或第三位姿或第三当前位姿之前,可以执行步骤S280控制机械手带动引脚移动到目标插孔附近,这样可以节省后续的插机工作时间。在一些实施例中,在将引脚移动到某块PCB板上的第一个目标插孔附近时,可以先检测PCB板上的标记点的坐标或位姿,结合PCB板布局图,可以推算出目标插孔的大致位置,并将电子元件移动至此大致位置,则可使引脚位于目标插孔的附近。以后,由于已经知道了第一个目标插孔的位置,可以以第一个目标插孔的位置为基准,结合PCB板的布局图,推算出目标插孔的大致位置坐标,并控制机械手移动到目标插孔附近。
S220根据机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿。
S230根据包括目标插孔的第二图像或第二当前图像,基于预先经过训练的第二CNN模型或所述第一CNN模型,获取目标插孔在所述第一坐标系下的第三位姿或第三当前位姿。
S240根据所述第一当前位姿、所述相对位姿、以及所述第三位姿或第三当前位姿,计算机械手需实施的当前运动量;S250判断机械手是否满足插机条件;若满足,S260控制机械手带动引脚插入目标插孔;若不满足,S270控制机械手实施所述当前运动量。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
在一些实施例中,根据第一当前位姿、相对位姿、以及第三位姿或第三当前位姿,计算机械手需实施的当前运动量可以通过传统的视觉伺服的方法实现,也可以通过机器学习的方法实现。
传统的视觉伺服方式是获取目标插孔的当前位姿和引脚的当前位姿,根据目标插孔的位姿和引脚当前位姿,计算引脚需实施运动后的位姿,根据引脚与机械手的标定结果,计算出机械手需实施运动后的位姿,根据机械手的当前位姿和需实施运动后的位姿计算机械手需实施的当前运动量(移动量+旋转量);控制机械手实施当前运动量;然后重复上述步骤,直到连续几次的当前运动量很小或者移动预设的步数后,判断为满足插机条件,控制机械手带动引脚进行插机。
机器学习的方法是指,根据第一当前位姿、相对位姿、以及第三位姿或第三当前位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量。
需要说明的是,根据第一当前位姿、相对位姿、以及第三位姿或第三当前位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量可以包括:
根据第一当前位姿和相对位姿计算出第二当前位姿,将第一当前位姿、第二当前位姿以及第三位姿或第三当前位姿输入所述NN模型,输出当前运动量;或者直接将第一当前位姿、相对位姿以及第三位姿或第三当前位姿输入所述NN模型,输出当前运动量;优选前一种方式,这样可以提高运动量获取的精度。
有关第一CNN模型、第二CNN模型和NN模型的相关描述参见实施例一中的描述,在此不再重复赘述。
如图19、20所述,在一些实施例中,该插机设备700包括第一图像传感器710、第二图像传感器720、机械手730、处理器740和存储器(图未示意出)。处理器740通过有线或者无线的方式藕接上述其它各个单元。
第一图像传感器710在工作时,采集包括引脚的第一图像,将该第一图像发出给处理器740。
第二图像传感器720在工作时,采集包括目标插孔的第二图像或第二当前图像,将该第二图像或第二当前图像发送给处理器740。
所述机械手730在工作时,将所述各关节的当前信息发送给所述处理器740;基于所述处理器740的控制移动所述当前运动量;基于所述处理器740的控制带动所述引脚插入所述目标插孔。
所述处理器740工作(即执行所述计算机程序)时实现上述各个插机方法实施例中的步骤,例如图6所示的步骤S210至S270。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的NN模型获取方法、预先经过训练的第一CNN模型获取方法和/或预先经过训练的第二CNN模型获取方法中的各个步骤。此外上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
有关插机方法、插机设备省略的其它相关描述参见前面其它实施例,在此不再重复赘述。
实施例三、
图8为本发明提供的插机方法的实施例的第五流程图。图9为本发明提供的插机方法的实施例的第六流程图。图10为本发明提供的预先经过训练的第三CNN模型的获取方法的实施例的流程图。
插机设备是一种自动实现将电子元件的引脚插入PCB板上的目标插孔的工业自动化设备。
如图8所示,所述插机方法包括:
S310获取包括引脚的第一图像。
S320根据获取的机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿。
如图9所示,在一些实施例中,在获取第一图像之后,在获取第一当前位姿,或第二图像或第二当前图像之前,还可以包括步骤S380控制机械手带动引脚移动到目标插孔附近,这样可以节省后续的插机工作时间。在一些实施例中,在将引脚移动到某块PCB板上的第一个目标插孔附近时,可以先检测PCB板上的标记点的坐标或位姿,结合PCB板布局图,可以推算出目标插孔的大致位置,并将电子元件移动至此大致位置,则可使引脚位于目标插孔的附近。以后,由于已经知道了第一个目标插孔的位置,可以以第一个目标插孔的位置为基准,结合PCB板的布局图,推算出目标插孔的大致位置坐标,并控制机械手移动到目标插孔附近。
S330获取包括目标插孔的第二图像或第二当前图像;
S340根据所述第一图像、所述第一当前位姿、所述第二图像或所述第二当前图像,基于预先经过训练的第三CNN模型,计算机械手需实施的当前运动量;S350判断机械手是否满足插机条件;若满足,S360控制所述机械手带动所述引脚插入所述目标插孔;若不满足,S370控制所述机械手实施所述当前运动量。
将第一图像、第二图像或第二当前图像直接输入第三CNN模型中,即可直接输出机械手需实施的当前运动量,而不需要预先对第一图像、第二图像或第三图像预先提取出引脚的相对位姿,以及目标插孔的第三位姿或第三当前位姿。
有关第三CNN模型的结构和训练方法参见上面实施例的第一CNN模型,在此不再赘述。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
如图10所示,进一步,在一些实施例中,预先经过训练的第三CNN模型通过如下方法获取:
S341获取初始化的第三CNN模型,所述CNN模型为针对输入的第一图像,第一当前位姿、第二图像或第二当前图像;输出机械手需实施的当前位移量;
S342获取训练数据和标签数据;
可以基于传统视觉伺服运行插机多次(比如:1000次),以获取足够的训练数据用以训练初始化的NN模型。
在传统视传统视觉伺服时,机械手通常按照预先设定的步数(比如:3步)形成最终插入元件时机械手的位姿。具体可以以视觉伺服时机械手每走一步时的机械手的位姿,以及该步对应的包括引脚的图像和包括目标插孔的图像作为训练数据。
基于视觉伺服时机械手每一步的位姿,以及最终插入元件时机械手的位姿,计算出机械手从每一步位姿移动至插入位姿所需的运动量,以这个运动量作为模型训练用的标注形成标签数据。
S343基于所述训练数据和标签数据,对所述初始化的第三CNN模型进行训练,以获取预先经过训练的所述第三CNN模型。
第三CNN模型具体训练的过程的其它相关描述参见上面实施例中第一CNN或NN模型的训练过程,在此不再重复赘述。
有关插机方法、插机设备省略的其它相关描述参见前面其它实施例,在此不再重复赘述。
如图25所示,当采用一个第三CNN模型14时,将第一图像、第二图像或第三图像以及第一当前位姿输入所述第三CNN模型14,根据第一图像、第二图像或第三图像计算出中间结果,然后结合第一当前位姿,从而获取出当前移动量。
如图19、20所述,在一些实施例中,该插机设备700包括第一图像传感器710、第二图像传感器720、机械手730、处理器740和存储器(图未示意出)。处理器740通过有线或者无线的方式藕接上述其它各个单元。
第一图像传感器710在工作时,采集包括引脚的第一图像,将该第一图像发出给处理器740。
第二图像传感器720在工作时,采集包括目标插孔的第二图像或第二当前图像,将该第二图像或第二当前图像发送给处理器740。
所述机械手730在工作时,将所述各关节的当前信息发送给所述处理器740;基于所述处理器740的控制移动所述当前运动量;基于所述处理器740的控制带动所述引脚插入所述目标插孔。
所述处理器740工作(即执行所述计算机程序)时实现上述各个插机方法实施例中的步骤,例如图8所示的步骤S310至S370。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的第三CNN模型获取方法中的各个步骤。此外上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
实施例四、
如图11所示,在一些实施例中,所述插机方法包括:
S410,根据获取的包括引脚和目标插孔的第三当前图像,获取引脚在第一坐标系下的的第二位姿或第二当前位姿,以及目标插孔的在所述第一坐标系下的第三位姿或第三当前位姿;
如图12、21、22所示,在一些实施例中,机械手730从取料位抓取电子元件800后,为使得第三图像传感器750能同时获取包括引脚810和目标插孔910的第三当前图像,在S410之前还可以包括步骤S470控制机械手带动引脚移动到目标插孔附近,相关描述参见具体实施例一,在此不再重复赘述。
在一些实施例中,在进行PCB板第一个目标插孔的插引脚前,将机械手移动至PCB板标记点,标记点(Mark point)为一个带有周边空白区域的实心的圆形或者矩形点,利用固定在机械手末端的第二图像传感器获取标记位图像,并进行标记位位置检测,基于所述检测的标记位置,以及PCB板布局图,推算出目标插孔的大致位置,并将电子元件移动至此位置,则此时引脚位于目标插孔的附近。以后,由于已经知道了第一个目标插孔的位置,因此不再需要获取标记位图像,可以以第一个目标插孔的位置为基准,结合PCB板的布局图,推算出目标插孔的大致位置坐标,并控制机械手移动到此位置坐标,从而使得引脚移动到目标插孔附近。
如图20所示,根据上面实施例所述,当第三图像传感器750设置在机械手的末端关节上,除此之外也可以设置在机械手的其它关节上(图未示意出),获取从第三图像传感器750采集并发送的第三当前图像,由于第三图像传感器750相对目标插孔910运动,而相对引脚810的位姿固定,因此,基于第三当前图像可以获取引脚的第二位姿和目标插孔的第三当前位姿。
如图21所示,当第三图像传感器750设置在PCB板900周边某一位置时,由于第三图像传感器750相对于PCB板900位姿固定,相对引脚运动,因此,基于第三当前图像可以获取引脚的第二当前位姿和目标插孔的第三位姿。
优选将第三图像传感器750设置在PCB板900周边,这样可以方便获取到包括引脚的第三当前图像。
S420,根据机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
S430根据所述第一当前位姿、所述第二位姿或第二当前位姿、以及所述第三位姿或第三当前位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量;S440判断所述机械手是否满足插机条件;S450若满足,控制所述机械手带动所述引脚插入所述目标插孔;S460若不满足,控制机械手实施所述当前运动量。
该预先经过训练的NN模型的输入包括:第一当前位姿、第二位姿或第二当前位姿、以及第三位姿或第三当前位姿,区别在于实施例一中输入的包括引脚的相对位姿或第二当前位姿,而本实施例中的输入包括引脚的第二位姿或第二当前位姿,因此本实施例中的预先经过训练的NN模型与实施例一中所述的预先经过训练的NN模型可以采用同样的模型结构和训练方法,只是输入的训练数据略有上述的不同。
因此根据实施例一和本实施例中所述,所述预先经过训练的NN模型获取方法包括:
S210获取初始化的NN模型,所述NN模型为针对输入的在第一坐标系下的第一当前位姿;相对位姿、第二位姿或第二当前位姿;以及第三位姿或第三当前位姿,输出机械手需实施的当前运动量。
S220获取训练数据和标签数据。
S230基于所述训练数据和标签数据,对所述初始化的NN模型进行训练,以获取预先经过训练的NN模型。
有关NN模型的结构和训练方法参见上面实施例的描述,在此不再重复赘述。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
图13为本发明提供的预先经过训练的第四CNN模型的获取方法的实施例的流程图。
进一步,在一些实施例中,上面实施例S410根据包括引脚和目标插孔的第三当前图像,获取引脚在第一坐标系下的的第二位姿或第二当前位姿,以及目标插孔的在所述第一坐标系下的第三位姿或第三当前位姿,可以通过传统视觉方法实现,也可以通过机器学习的方法实现。
传统视觉方式是指将第三当前图像进行二值化处理,然后从第三当前图像中识别出引脚和目标插孔的轮廓,根据轮廓计算引脚的第二位姿或第二当前位姿和目标插孔的第三位姿或第三当前位姿。
通过机器学习的方法实现是指将第三当前图像输入预先经过训练的第四CNN模型,直接输出第二位姿或第二当前位姿,以及第三位姿或第三当前位姿。
第四CNN模型可以包括LeNet,AlexNet,ZFNet,VGG,GoogLeNet,Residual Net,DenseNet,R-CNN,SPP-NET,Fast-RCNN,Faster-RCNN,FCN,Mask-RCNN,YOLO,SSD,YOLO2.
如图13所示,在一些实施例中,预先经过训练的第四CNN模型通过如下方法获取:
S411获取初始化的第四CNN模型,所述第四CNN模型为针对输入的包括引脚和目标插孔的第三当前图像,输出第三当前图像中引脚的第二位姿或第二当前位姿,以及目标插孔的第三位姿或第三当前位姿;
S412获取训练数据和标签数据;
在插机运行过程中或静止状态下采集多张包括引脚和目标插孔的图像,需要大约1000次以获取足够的训练数据用以训练模型。
标签数据可以通过人工或者自动的方法进行标注。自动的方法可以通过基于传统视觉方法的插机轨迹规划过程中,从包括引脚和目标插孔的图像中提取的引脚和目标插孔的位姿作为训练用的标注。
S413基于所述训练数据和标签数据,对所述初始化的第三CNN模型进行训练,以获取预先经过训练的所述第三CNN模型。
有关第四CNN模型的结构和训练方法参见上面实施例所述的第一CNN模型,在此不再赘述。
有关插机方法、插机设备省略的其它相关描述参见前面其它实施例,在此不再重复赘述。
如图21、22所示,本发明实施例还提供一种插机设备700,所述插机设备700包括第三图像传感器750、机械手730和处理器740。处理器740通过有线或者无线的方式藕接所述机械手730和所述第三图像传感器750。
第三图像传感器可以包括:照相机、摄像机、扫描仪或其他带有相关功能的设备(手机、电脑等)等等。
预先对第三图像传感器750、以及第三图像传感器750和机械手730之间进行标定。
第三图像传感器750在工作时,获取包括引脚和目标插孔的第三当前图像,并将第三当前图像发送给处理器740。
第三图像传感器可以设置在能够获取包括引脚和目标插孔的图像的任意位置;比如:设置在PCB板周边某一位置或者设置在机械手上;如图22所示,当第三图像传感器750设置在PCB板900周边,第三图像传感器750相对目标插孔910位姿固定,相对运动的引脚810位姿移动;如图21所示,当第三图像传感器750设置在机械手730上,随着机械手730的移动,目标插孔910的位姿在不断相对变化,而引脚的位姿相对固定,优选将第三图像传感器750设置在PCB板900周边,后面实施例会有进一步详细的说明。
所述机械手730在工作时,将所述各关节的当前信息发送给所述处理器740;基于所述处理器740的控制移动所述当前运动量;基于所述处理器740的控制带动所述引脚810插入所述目标插孔910。
所述处理器740工作(即执行所述计算机程序)时实现上述各个插机方法实施例中的步骤,例如图1所示的步骤S410至S460。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的NN模型获取方法、预先经过训练的第四CNN模型获取方法中的各个步骤。此外上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
实施例五、
图14为本发明提供的插机方法的实施例的第九流程图。图15为本发明提供的插机方法的实施例的第十流程图。
如图14所示,在一些实施例中,所述插机方法包括:
S510根据包括引脚和目标插孔的第三当前图像,基于预先经过训练的第四CNN模型,获取引脚在第一坐标系下的第二位姿或第二当前位姿,以及目标插孔在所述第一坐标系下的第三位姿或第三当前位姿;
如图15、21、22所示,在一些实施例中,机械手730从取料位抓取电子元件800后,为使得第三图像传感器750能同时获取包括引脚810和目标插孔910的第三当前图像,在S410之前还可以包括步骤S470控制机械手带动引脚移动到目标插孔附近。
第三图像传感器750可以设置在机械730手上,也可以设置在PCB板900的周边;优选将第三图像传感器750设置在PCB板900周边,这样可以方便获取到包括引脚的第三当前图像。
S520根据机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
S530根据所述第一当前位姿、所述第二位姿或第二当前位姿、以及所述第三位姿或第三当前位姿计算机械手需实施的当前运动量;S540判断机械手是否满足插机条件;S550若满足,控制所述机械手带动所述引脚插入所述目标插孔;S560若不满足,控制机械手实施所述当前运动量。
有关第四CNN模型的相关描述参加实施例四,在此不再重复赘述。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
在一些实施例中,根据所述第一当前位姿、所述第二位姿或第二当前位姿、以及所述第三位姿或第三当前位姿计算机械手需实施的当前运动量可以通过传统的方法,也可以通过机器学习的方法实现,也可以通过传统的视觉伺服的方法实现,优选通过机器学习的方法实现,因为通过机器学习的方法可以提高当前运动量计算的准确率和效率。
机器学习的方法是指,基于预先经过训练的NN模型实现。有关NN模型的相关描述参见具体实施例一,在此不再重复赘述。
如图21、22所示,本发明实施例还提供一种插机设备700,所述插机设备700包括第三图像传感器750、机械手730和处理器740。处理器740通过有线或者无线的方式藕接所述机械手730和所述第三图像传感器750。
预先对第三图像传感器750、以及第三图像传感器750和机械手730之间进行标定。
第三图像传感器750在工作时,获取包括引脚和目标插孔的第三当前图像,并将第三当前图像发送给处理器740。
所述机械手730在工作时,将所述各关节的当前信息发送给所述处理器740;基于所述处理器740的控制移动所述当前运动量;基于所述处理器740的控制带动所述引脚810插入所述目标插孔910。
所述处理器740工作(即执行所述计算机程序)时实现上述各个插机方法实施例中的步骤,例如图14所示的步骤S510至S560。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的NN模型获取方法、预先经过训练的第四CNN模型获取方法中的各个步骤。此外上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
有关插机方法、插机设备省略的其它相关描述参见前面其它实施例,在此不再重复赘述。
实施例六、
如图16所示,在一些实施例中,所述插机方法包括:
S610根据获取的所述机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
如图17、21、22所示,在一些实施例中,机械手730从取料位抓取电子元件800后,为使得第三图像传感器750能同时获取包括引脚810和目标插孔910的第三当前图像,在S410之前还可以包括步骤S670控制机械手带动引脚移动到目标插孔附近。
第三图像传感器750可以设置在机械730手上,也可以设置在PCB板900的周边;优选将第三图像传感器750设置在PCB板900周边,这样可以方便获取到包括引脚的第三当前图像。
S620获取包括引脚和目标插孔的第三当前图像;
S630根据所述第三当前图像、所述第一当前位姿,基于预先经过训练的第五CNN模型,计算机械手需实施的当前运动量;S640判断机械手是否满足插机条件;若满足,S650控制所述机械手带动所述引脚插入所述目标插孔;若不满足,S660控制机械手实施所述当前运动量。
所述第五CNN模型其它相关描述参加上面实施例中的第一CNN模型的描述,在此不再重复赘述。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
如图18所示,进一步,在一些实施例中,预先经过训练的第五CNN模型通过如下方法获取:
S631获取初始化的第五CNN模型,所述第五CNN模型为针对输入的第三当前图像和第一当前位姿;输出机械手需实施的当前位移量。
S632获取训练数据和标签数据。
可以基于传统视觉伺服运行插机多次(比如:1000次),以获取足够的训练数据用以训练初始化的NN模型。
在传统视传统视觉伺服时,机械手通常按照预先设定的步数(比如:3步)形成最终插入元件时机械手的位姿。具体可以以视觉伺服时机械手每走一步时的机械手的位姿,以及该步对应的包括引脚和目标插孔的图像作为训练数据。
基于视觉伺服时机械手每一步的位姿,以及最终插入元件时机械手的位姿,计算出机械手从每一步位姿移动至插入位姿所需的运动量,以这个运动量作为模型训练用的标注形成标签数据。
S633基于所述训练数据和标签数据,对所述初始化的第五CNN模型进行训练,以获取预先经过训练的所述第五CNN模型。
有关第五CNN模型的结构和训练方法参见上面实施例的第一CNN模型,在此不再赘述。
图25为本发明实施例所述的模型的连接框图。
如图25所示,当采用一个第五CNN模型14时,将第三当前图像以及第一当前位姿输入所述第五CNN模型14,根据第三当前图像计算出中间结果,然后结合第一当前位姿,从而获取出当前移动量。
如图21、22所示,本发明实施例还提供一种插机设备700,所述插机设备700包括第三图像传感器750、机械手730和处理器740。处理器740通过有线或者无线的方式藕接所述机械手730和所述第三图像传感器750。
预先对第三图像传感器750、以及第三图像传感器750和机械手730之间进行标定。
第三图像传感器750在工作时,获取包括引脚和目标插孔的第三当前图像,并将第三当前图像发送给处理器740。
所述机械手730在工作时,将所述各关节的当前信息发送给所述处理器740;基于所述处理器740的控制移动所述当前运动量;基于所述处理器740的控制带动所述引脚810插入所述目标插孔910。
所述处理器740工作(即执行所述计算机程序)时实现上述各个插机方法实施例中的步骤,例如图16所示的步骤S610至S660。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的第五CNN模型获取方法中的各个步骤。此外上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
有关插机方法、插机设备省略的其它相关描述参见前面其它实施例,在此不再重复赘述。
实施例七、
如图28所示,本发明实施例还提供一种插机方法,该插机方法包括:
S110’根据获取的包括引脚的第一图像,获取引脚的第二坐标。
如图19、20所示,机械手730在处理器740的控制下在取料位拾取电子元件800之后,将电子元件800移动至第一图像传感器710的视野范围内,使得通过第一图像传感器710采集包括电子元件800的引脚810的第一图像。该第一图像通常不包括PCB板背景,因为如果图像中包括PCB板背景,由于背景图像复杂,会使得引脚识别存在一定困难。
处理器获取通过第一图像传感器采集并发送的第一图像,提取引脚的第二坐标。引脚的第二坐标可以为引脚插入目标插孔的插入端的第二坐标或者为整个引脚的第二坐标,优选引脚插入端的第二坐标。
在一些实施例中,通过第一图像传感器采集的第一图像,除用于获取引脚的相对位姿之外,还可以用于检查电子元件是否存在缺陷,即通过对第一图像的分析,与预先存储的非缺陷元件图像进行对比,从而判断该电子元件是否存在缺陷。如果不存在缺陷可以继续进行下面的步骤,如果存在缺陷可以控制机械手将该电子元件放回到回收位,然后再返回取料位重新拾取电子元件。
S120’根据获取的机械手的各关节的当前信息,获取在第一坐标系下的机械手的第一当前位姿。
第一坐标系可以为机械手坐标系、第一图像传感器坐标系、第二图像传感器坐标系或者任意指定的其它坐标系。本具体实施例下面以机械手坐标系作为第一坐标系为例进行进一步详细的说明。在一些实施例中,通常将机械手的底座的中心设置为机械手坐标系。
所述机械手的第一当前位姿可以为机械手的末端关节连接的法兰盘中心的第一当前位姿,也可以为机械手的末端执行器的中心的第一当前位姿等等。
根据机械手各关节发送给处理器的各关节的当前信息,此时信息包括各个关节的运动量的信息,再结合各个关节的类型和尺寸等信息,通过机械手运动学正解公式,可以求得此时机械手此时在机械手坐标系下的位姿。
如图29所示,在一些实施例中,在获取第二坐标之后,在获取第一当前位姿,或第三坐标或第三当前坐标之前,可以执行步骤S180’控制机械手带动引脚移动到目标插孔附近,这样可以节省后续的插机工作时间。在一些实施例中,在将引脚移动到某块PCB板上的第一个目标插孔附近时,可以先检测PCB板上的标记点的坐标或位姿,标记点(Mark point)为PCB板上一个带有周边空白区域的实心的圆形或者矩形点,结合PCB板布局图,可以推算出目标插孔的大致位置,并将电子元件移动至此大致位置,则可使引脚位于目标插孔的附近。以后,在一些实施例中,由于已经知道了第一个目标插孔的位置,因此可以不再需要获取标记位图像,而可以以第一个目标插孔的位置为基准,结合PCB板的布局图,推算出目标插孔的大致位置,并控制机械手移动到此位置,从而使得引脚移动到目标插孔附近。
S130’获取在第一坐标系下的目标插孔的第三坐标或第三当前坐标。
基于获取的通过第二图像传感器采集并发送的包括目标插孔的第二当前图像,提取并计算目标插孔的第三坐标或第三当前坐标。
如图19所示,根据上面实施例所述,当第二图像传感器720设置在机械手的末端关节上,目标插孔相对第二图像传感器运动,获取从第二图像传感器720采集并发送的第二当前图像,根据第二当前图像获取目标插孔的第三当前坐标。
如图20所示,当设置在PCB板周边某一位置时,由于第二图像传感器720相对于PCB板900位置固定,因此,只需获取一次第二图像,根据第二图像获取目标插孔的第三坐标。
优选将第二图像传感器720设置在机械手上,由于第二图像传感器720跟随机械手730一起移动,使得第二图像传感器720能够位于更接近目标插孔910正上方或者接近正上方的位置获取包括目标插孔的图像,从而提高目标插孔坐标提取的精度,更好的提高后续插机的准确率。
S140’根据第一当前位姿、第二坐标、以及第三坐标或第三当前坐标,基于预先经过训练的神经网络(Neural Network NN)模型计算机械手需实施的当前运动量;S150’判断机械手是否满足插机条件;若满足,S160’控制机械手带动引脚插入目标插孔;若不满足,S170’控制机械手实施所述当前运动量。
判断机械手是否满足插机条件(即引脚足够接近目标插孔),通常是以连续几步的当前运动量(比如:2-3步)的增量都很小,比如:小于某一个阈值,即认为引脚足够接近目标插孔。
若满足,控制机械手带动引脚插入目标插孔,从而完成该电子元件的插机动作;然后,机械手在处理器的控制下移动到下一电子元件的取料位,夹取下一个电子元件,并重复上述步骤,直到PCB板上所有目标插孔对应的电子元件的插机动作全部完成。
若不满足,控制机械手实施对应的所述当前运动量,待机械手实施完毕对应的当前运动量后,重新重复上面的步骤。
机械手需实施的当前运动量是指机械手的末端执行器或末端轴需实施的运动量(移动量+旋转量)。基于计算出的当前运动量,通过机械手运动学逆解公式,可以求得机械手各关节的需要实施的运动信息,然后将各个运动信息的指令发送给各个关节的马达控制器,从而控制机械手运动相对应的运动量。
在一些实施例中,一个大的PCB板可能难以一次完成整个插机工作,因此,通常将一个大的PCB板虚拟分成多个小的模块,分多次完成多个模块的插机,从而最终完成整个PCB板的插机,因此,在这种情况下,先根据本具体实施例的插机方法完成一个模块的插机,然后重复该插机方法的步骤,依次完成其它模块的插机,直到整个PCB板完成插机。然后将该PCB板移开该工作位,并将下一块PCB板移动到该插机工作位重复本发明实施例的插机方法所述的步骤。
有关NN模型的相关其它描述参见上面的实施例,在此不再重复赘述。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
如图30所示,在一些实施例中,预先经过训练的NN模型可以通过如下方法获取:
S141’获取初始化的NN模型,所述NN模型为针对输入的在第一坐标系下的第一当前位姿、第二坐标、以及第三坐标或第三当前坐标,输出机械手需实施的当前运动量。
S142’获取训练数据和标签数据。
可以基于传统视觉伺服运行插机多次(比如:1000次),以获取足够的训练数据用以训练初始化的NN模型。
在传统视传统视觉伺服时,机械手通常按照预先设定的步数(比如:3步)形成最终插入元件时机械手的位姿。具体可以以视觉伺服时机械手每走一步时的机械手的位姿,以及该步对应的引脚的坐标和目标插孔的坐标作为训练数据,训练NN模型。
基于视觉伺服时机械手每一步的位姿,以及最终插入元件时机械手的位姿,计算出机械手从每一步位姿移动至插入位姿所需的运动量,以这个运动量作为NN模型训练用的标注形成标签数据。
S143’基于所述训练数据和标签数据,对所述初始化的NN模型进行训练,以获取预先经过训练的NN模型。
有关有关预先经过训练的NN模型获取方法的其它相关描述参见上面的实施例,在此不再重复赘述。
图31为本发明提供的预先经过训练的第六CNN模型的获取方法的实施例的流程图。
在一些实施例中,上面实施例S110’所述的根据获取的第一图像,获取第二坐标,可以通过传统视觉方法实现,也可以通过机器学习的方法实现。
传统视觉方式是指将第一图像进行二值化处理,然后从第一图像中识别出引脚的轮廓,根据轮廓提取引脚的第二坐标。
通过机器学习的方法实现是指将第一图像输入预先经过训练的第一卷积神经网络(CNN)模型,直接输出引脚的第二坐标。
有关CNN模型的其它相关描述参见相面的实施例,在此不再重复赘述。
如图31所示,在一些实施例中,预先经过训练的第六CNN模型通过如下方法获取:
S111’获取初始化的第六CNN模型,所述第六CNN模型为针对输入的包括引脚的第一图像和/或包括目标插孔的第二图像或第二当前图像,输出第一图像中引脚的第二坐标和/或目标插孔的第三坐标或第三坐标。
这样第六CNN模型可以只用于根据第一图像,获取第二坐标;或者只用于根据第二图像或第二当前图像,获取第二坐标或第二当前坐标;或者用于即可以根据第一图像获取第二坐标,又可以用于根据第二图像或第二当前图像获取第三坐标或第三当前坐标。
第六CNN模型的初始化参见NN模型的初始化,在此不再重复赘述。
S112’获取训练数据和标签数据。
在插机运行过程中或静止状态下采集多张包括目标插孔的图像,需要大约1000次以获取足够的训练数据用以训练模型。
标签数据可以通过人工或者自动的方法进行标注。自动的方法可以通过基于传统视觉方法的插机轨迹规划过程中,从包括引脚的图像中提取的引脚的坐标作为训练用的标注。
S113’基于所述训练数据和标签数据,对所述初始化的第六CNN模型进行训练,以获取预先经过训练的所述第六CNN模型。
第六CNN模型具体训练的过程的相关描述参见上面实施例中NN模型的训练过程,在此不再重复赘述。
图32为本发明提供的预先经过训练的第七CNN模型的获取方法的实施例的流程图。
在一些实施例中,上面实施例所述的S130’根据第二图像或第二当前图像,获取第三坐标或第三当前坐标,可以通过传统视觉方法实现,也可以通过机器学习的方法实现。
传统视觉方式是指将图像进行二值化处理,然后从图像中识别出目标插孔的轮廓,根据该轮廓识别出目标插孔的第三坐标或第三当前坐标。
通过机器学习的方法实现是指将第二当前图像输入预先经过训练的第七CNN模型,直接输出第三坐标或第三当前坐标。
具体的基于所述训练数据和标签数据,有关经过训练的第七CNN模型的获取方法参见第六CNN模型和NN模型,在此不再重复赘述。
如图19、20所述,在一些实施例中,本发明还提供一种插机设备,该插机设备700包括第一图像传感器710、第二图像传感器720、机械手730、处理器740和存储器(图未示意出)。处理器740通过有线或者无线的方式藕接上述其它各个单元。
无线方式可以包括但不限于:3G/4G、WIFI、蓝牙、WiMAX、Zigbee、UWB(ultrawideband),以及其它现在已知或将来开发的无线连接方式。
第一图像传感器和第二图像传感器可以包括:照相机、摄像机、扫描仪或其他带有相关功能的设备(手机、电脑等)等等。
第一图像传感器710在工作时,采集包括引脚的第一图像,将该第一图像发出给处理器740。
第一图像传感器710通常设置在PCB板插机工作位和电子元件取料位之间的某一位置处。机械手在处理器的控制下在取料位拾取电子元件之后,将电子元件移动至第一图像传感器视野范围内,使得通过第一图像传感器采集包括电子元件的引脚的第一图像。该第一图像通常不包括PCB板背景,因为如果图像中包括PCB板背景,由于背景图像复杂,会使得引脚识别存在一定困难。
第二图像传感器720在工作时,采集包括目标插孔的第二图像或第二当前图像,将该第二图像或第二当前图像发送给处理器740。
第二图像传感器可以设置在能够获取包括目标插孔的图像的任意位置;比如:设置在PCB板周边某一位置或者设置在机械手上;如图20所示,当第二图像传感器720设置在PCB板900周边,第二图像传感器720相对目标插孔910位置固定,因此只需获取一次第二图像即可;如图19所示,当第二图像传感器720设置在机械手730上,随着机械手730的移动,目标插孔910的位姿在不断相对变化,因此机械手730每次移动后需要重新获取第二当前图像。优选将第二传感器设置在机械手上,后面实施例会有进一步详细的说明。
所述机械手730在工作时,将所述各关节的当前信息发送给所述处理器740;基于所述处理器740的控制移动当前运动量;基于所述处理器740的控制带动引脚插入目标插孔。
所述处理器740工作(即执行存储在存储器中的计算机程序)时实现上述各个插机方法实施例中的步骤,例如图28所示的步骤S110’至S170’。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的NN模型获取方法、预先经过训练的第六CNN模型获取方法和/或预先经过训练的第七CNN模型获取方法中的各个步骤。此外上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
有关插机设备的其它相关描述参见上面的实施例,在此不再重复赘述。
实施例八、
如图33所示,在一些实施例中,本发明提供一种插机方法,该插机方法包括:
S210’根据获取的包括引脚的第一图像,基于预先经过训练的第六CNN模型,获取引脚的第二坐标。
S220’根据机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿。
如图34所示,在一些实施例中,在获取第二坐标之后,在获取第一当前位姿,或第三坐标或第三当前坐标之前,可以执行步骤S280控制机械手带动引脚移动到目标插孔附近,这样可以节省后续的插机工作时间。在一些实施例中,在将引脚移动到某块PCB板上的第一个目标插孔附近时,可以先检测PCB板上的标记点的坐标或位姿,标记点(Mark point)为PCB板上一个带有周边空白区域的实心的圆形或者矩形点,结合PCB板布局图,可以推算出目标插孔的大致位置,并将电子元件移动至此大致位置,则可使引脚位于目标插孔的附近。以后,在一些实施例中,由于已经知道了第一个目标插孔的位置,因此可以不再需要获取标记位图像,而可以以第一个目标插孔的位置为基准,结合PCB板的布局图,推算出目标插孔的大致位置,并控制机械手移动到此位置,从而使得引脚移动到目标插孔附近。
S230’根据获取的包括目标插孔的第二图像或第二当前图像,基于所述预先经过训练的第六CNN模型或预先经过训练的第七CNN模型,获取目标插孔的第三坐标或第三当前坐标。
S240’根据所述第一当前位姿、所述第二坐标、以及所述第三坐标或第三当前坐标,计算机械手需实施的当前运动量;S250’判断机械手是否满足插机条件;若满足,S260’控制机械手带动引脚插入目标插孔;若不满足,S270’控制机械手实施所述当前运动量。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
在一些实施例中,根据第一当前位姿、第二坐标、以及第三坐标或第三当前坐标,计算机械手需实施的当前运动量可以通过传统的视觉伺服的方法实现,也可以通过机器学习的方法实现。
传统的方式是获取目标插孔的当前位姿和引脚的当前位姿,根据目标插孔的位姿和引脚当前位姿,计算引脚需实施运动后的位姿,根据引脚与机械手的标定结果,计算出机械手需实施运动后的位姿,根据机械手的当前位姿和需实施运动后的位姿计算机械手需实施的当前运动量(移动量+旋转量);控制机械手实施当前运动量;然后重复上述步骤,直到连续几次的当前运动量很小或者移动预设的步数后,判断为满足插机条件,控制机械手带动引脚进行插机。
机器学习的方法是指,基于预先经过训练的NN模型实现。
有关第六CNN模型、第七CNN模型和NN模型的相关描述参见上面实施例中的描述,在此不再重复赘述。
如图19、20所述,在一些实施例中,该插机设备700包括第一图像传感器710、第二图像传感器720、机械手730、处理器740和存储器(图未示意出)。处理器740通过有线或者无线的方式藕接上述其它各个单元。
第一图像传感器710在工作时,采集包括引脚的第一图像,将该第一图像发出给处理器740。
第二图像传感器720在工作时,采集包括目标插孔的第二图像或第二当前图像,将该第二图像或第二当前图像发送给处理器740。
所述机械手730在工作时,将所述各关节的当前信息发送给所述处理器740;基于所述处理器740的控制移动所述当前运动量;基于所述处理器740的控制带动所述引脚插入所述目标插孔。
所述处理器740工作(即执行存储在存储器中的计算机程序)时实现上述各个插机方法实施例中的步骤,例如图34所示的步骤S210’至S270’。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的NN模型获取方法、预先经过训练的第六CNN模型获取方法和/或预先经过训练的第七CNN模型获取方法中的各个步骤。此外,上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
有关插机方法、插机设备省略的其它相关描述参见前面其它实施例,在此不再重复赘述。
实施例九、
如图35所示,在一些实施例中,本发明还提供一种插机方法,该插机方法包括:
S310’根据获取的包括引脚和目标插孔的第三当前图像,获取引脚在第一坐标系下的的第二坐标或第二当前坐标,以及目标插孔的在所述第一坐标系下的第三坐标或第三当前坐标;
如图36、21、22所示,在一些实施例中,机械手730从取料位抓取电子元件800后,为使得第三图像传感器750能同时获取包括引脚810和目标插孔910的第三当前图像,在S310’之前还可以包括步骤S370’控制机械手带动引脚移动到目标插孔附近。
在一些实施例中,在进行PCB板第一个目标插孔的插引脚前,将机械手移动至PCB板标记点,标记点(Mark point)为一个带有周边空白区域的实心的圆形或者矩形点,利用固定在机械手末端的第二图像传感器获取标记位图像,并进行标记位位置检测,基于所述检测的标记位置,以及PCB板布局图,推算出目标插孔的大致位置,并将电子元件移动至此位置,则此时引脚位于目标插孔的附近。以后,由于已经知道了第一个目标插孔的位置,因此不再需要获取标记位图像,可以以第一个目标插孔的位置为基准,结合PCB板的布局图,推算出目标插孔的大致位置坐标,并控制机械手移动到此位置坐标,从而使得引脚移动到目标插孔附近。
如图21所示,根据上面实施例所述,当第三图像传感器750设置在机械手的末端关节上,除此之外也可以设置在机械手的其它关节上(图未示意出),获取从第三图像传感器750采集并发送的第三当前图像,由于第三图像传感器750相对目标插孔910运动,而相对引脚810固定,因此,基于第三当前图像可以获取引脚的第二坐标和目标插孔的第三当前位姿。
如图22所示,当第三图像传感器750设置在PCB板900周边某一位置时,由于第三图像传感器750相对于PCB板900固定,相对引脚运动,因此,基于第三当前图像可以获取引脚的第二当前坐标和目标插孔的第三位姿。
优选将第三图像传感器750设置在PCB板900周边,这样可以方便获取到包括引脚的第三当前图像。
S320’根据机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
S330’根据所述第一当前位姿、所述第二坐标或第二当前坐标、以及所述第三坐标或第三当前坐标,基于预先经过训练的NN模型计算机械手需实施的当前运动量;S340’判断所述机械手是否满足插机条件;S350’若满足,控制所述机械手带动所述引脚插入所述目标插孔;S360’若不满足,控制机械手实施所述当前运动量。
该预先经过训练的NN模型的输入包括:第一当前位姿、第二坐标或第二当前坐标、以及第三坐标或第三当前坐标,区别在于实施例一中输入的包括第二坐标,而本实施例中的即可以包括第二坐标,或者也可以包括第二当前坐标,因此本实施例中的预先经过训练的NN模型与实施例一中所述的预先经过训练的NN模型可以采用同样的模型结构和训练方法,只是输入的数据和训练数据略有上述的不同。
因此综合实施例一和本实施例中所述,所述预先经过训练的NN模型获取方法包括:
S210’获取初始化的NN模型,所述NN模型为针对输入的在第一坐标系下的第一当前位姿;第二坐标或第二当前坐标;以及第三坐标或第三当前坐标,输出机械手需实施的当前运动量。
S220’获取训练数据和标签数据。
S230’基于所述训练数据和标签数据,对所述初始化的NN模型进行训练,以获取预先经过训练的NN模型。
该预先经过训练的NN模型结构及获取方法参见实施例一中的有关预先经过训练的NN模型中的描述;插机方法的其它相关描述参见具体实施例一,在此不再重复赘述。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
图37为本发明提供的预先经过训练的第八CNN模型的获取方法的实施例的流程图。
进一步,在一些实施例中,上面实施例S410’根据包括引脚和目标插孔的第三当前图像,获取引脚的第二坐标或第二当前坐标,以及目标插孔的第三坐标或第三当前坐标,可以通过传统视觉伺服方法实现,也可以通过机器学习的方法实现。
传统视觉方式是指将第三当前图像进行二值化处理,然后从第三当前图像中识别出引脚和目标插孔的轮廓,根据轮廓计算引脚的第二坐标或第二当前坐标和目标插孔的第三坐标或第三当前坐标。
通过机器学习的方法实现是指将第三当前图像输入预先经过训练的第三CNN模型,直接输出第二坐标或第二当前坐标,以及第三坐标或第三当前坐标。
第八CNN模型可以包括LeNet,AlexNet,ZFNet,VGG,GoogLeNet,Residual Net,DenseNet,R-CNN,SPP-NET,Fast-RCNN,Faster-RCNN,FCN,
Mask-RCNN,YOLO,SSD,YOLO2.
如图37所示,在一些实施例中,预先经过训练的第八CNN模型通过如下方法获取:
S311’获取初始化的第八CNN模型,所述第八CNN模型为针对输入的包括引脚和目标插孔的第三当前图像,输出第三当前图像中引脚的第二坐标或第二当前坐标,以及目标插孔的第三坐标或第三当前坐标;
S312’获取训练数据和标签数据;
在插机运行过程中或静止状态下采集多张包括引脚和目标插孔的图像,需要大约1000次以获取足够的训练数据用以训练模型。
标签数据可以通过人工或者自动的方法进行标注。自动的方法可以通过基于传统视觉方法的插机轨迹规划过程中,从包括引脚和目标插孔的图像中提取的引脚和目标插孔的坐标作为训练用的标注。
S313’基于所述训练数据和标签数据,对所述初始化的第八CNN模型进行训练,以获取预先经过训练的所述第八CNN模型。
第八CNN模型的获取方法和结构参见实施例一中的预先经过训练的第六CNN模型,在此不再重复赘述。
如图21、22所示,本发明实施例还提供一种插机设备700,所述插机设备700包括第三图像传感器750、机械手730、处理器740和存储器(图未示意出)。处理器740通过有线或者无线的方式藕接所述机械手730和所述第三图像传感器750。
预先对第三图像传感器750、以及第三图像传感器750和机械手730之间进行标定。
第三图像传感器750在工作时,获取包括引脚和目标插孔的第三当前图像,并将第三当前图像发送给处理器740。
第三图像传感器可以设置在能够获取包括引脚和目标插孔的图像的任意位置;比如:设置在PCB板周边某一位置或者设置在机械手上;如图16所示,当第三图像传感器750设置在PCB板900周边,第三图像传感器750相对目标插孔910位姿固定,相对运动的引脚810位姿移动;如图15所示,当第三图像传感器750设置在机械手730上,随着机械手730的移动,目标插孔910的位姿在不断相对变化,而引脚的位姿相对固定,优选将第三图像传感器750设置在PCB板900周边,后面实施例会有进一步详细的说明。
所述机械手730在工作时,将所述各关节的当前信息发送给所述处理器740;基于所述处理器740的控制移动所述当前运动量;基于所述处理器740的控制带动所述引脚810插入所述目标插孔910。
所述处理器740工作(即执行存储在存储器中的计算机程序)时实现上述各个插机方法实施例中的步骤,例如图35所示的步骤S310’至S370’。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的NN模型获取方法、预先经过训练的第八CNN模型获取方法中的各个步骤。此外上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
有关插机方法、插机设备省略的其它相关描述参见前面其它实施例,在此不再重复赘述。
实施例十、
如图38所示,在一些实施例中,本发明还提供一种插机方法,所述插机方法包括:
S410’根据包括引脚和目标插孔的第三当前图像,基于预先经过训练的第三CNN模型,获取引脚的第二坐标或第二当前坐标,以及目标插孔的第三坐标或第三当前坐标;
如图39、21、22所示,在一些实施例中,机械手730从取料位抓取电子元件800后,为使得第三图像传感器750能同时获取包括引脚810和目标插孔910的第三当前图像,在S410’之前还可以包括步骤S470’控制机械手带动引脚移动到目标插孔附近,具体描述参见具体实施例一中的相关描述,在此不再重复赘述。
第三图像传感器750可以设置在机械730手上,也可以设置在PCB板900的周边;优选将第三图像传感器750设置在PCB板900周边,这样可以方便获取到包括引脚的第三当前图像。
S420’根据机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
S430’根据所述第一当前位姿、所述第二坐标或第二当前坐标、以及所述第三坐标或第三当前坐标计算机械手需实施的当前运动量;S440’判断机械手是否满足插机条件;S450’若满足,控制所述机械手带动所述引脚插入所述目标插孔;S460’若不满足,控制机械手实施所述当前运动量。
所述第八CNN模型的描述参见具体实施例四,在此不再重复赘述。
采用上面的插机方法,通过基于机器学习的方法进行的插机,能够提高各种复杂的环境下插机的准确率;另外,可以在一些情况下,可以减少插机运动过程中的步数,提高了工作效率。
在一些实施例中,根据所述第一当前位姿、所述第二坐标或第二当前坐标、以及所述第三坐标或第三当前坐标计算机械手需实施的当前运动量可以通过传统的方法,也可以通过机器学习的方法实现,也可以通过传统的视觉伺服的方法实现,优选通过机器学习的方法实现,因为通过机器学习的方法可以提高当前运动量计算的准确率和效率。
机器学习的方法是指,基于预先经过训练的NN模型实现。有关NN模型的相关描述参见实施例九或七,在此不再重复赘述。
如图21、22所示,本发明实施例还提供一种插机设备700,所述插机设备700包括第三图像传感器750、机械手730、处理器740和存储器(图未示意出)。处理器740通过有线或者无线的方式藕接所述机械手730和所述第三图像传感器750。
第三图像传感器750可以包括:照相机、摄像机、扫描仪或其他带有相关功能的设备(手机、电脑等)等等。
第三图像传感器750在工作时,获取包括引脚和目标插孔的第三当前图像,并将第三当前图像发送给处理器740。
所述机械手730在工作时,将所述各关节的当前信息发送给所述处理器740;基于所述处理器740的控制移动所述当前运动量;基于所述处理器740的控制带动所述引脚810插入所述目标插孔910。
所述处理器740工作(即执行存储在存储器中的计算机程序)时实现上述各个插机方法实施例中的步骤,例如图38所示的步骤S410’至S460’。
在一些实施例中,所述插机设备的处理器740在工作时还包括实现上面实施例所述的预先经过训练的NN模型获取方法、预先经过训练的第八CNN模型获取方法中的各个步骤。此外上述各个方法也可以通过插机设备以外的其它设备的处理器执行。
有关插机方法、插机设备省略的其它相关描述参见前面其它实施例,在此不再重复赘述。
在一些实施例中,本发明还提供一种插机装置,所述插机装置包括:相对位姿获取程序模块、第一当前位姿获取程序模块、第二当前位姿获取程序模块、第三位姿和第三当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和所述控制运动程序模块;
所述相对位姿获取程序模块,用于根据获取的包括引脚的第一图像,获取引脚相对机械手在第一坐标系下的相对位姿;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述第二当前位姿获取程序模块,用于根据所述第一当前位姿和所述相对位姿,获取所述引脚在所述第一坐标系下的第二当前位姿;
所述第三位姿和第三当前位姿获取程序模块,用于根据包括目标插孔的第二图像或第二当前图像,获取目标插孔在所述第一坐标系下的第三位姿或第三当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二当前位姿、以及所述第三位姿或第三当前位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:相对位姿获取程序模块、第一当前位姿获取程序模块、第二当前位姿获取程序模块、第三位姿和第三当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述相对位姿获取模块,用于根据获取的包括引脚的第一图像,基于预先经过训练的第一CNN模型,获取引脚相对机械手在第一坐标系下的相对位姿;
所述第一当前位姿获取程序模块,用于根据机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述第二当前位姿获取程序模块,用于根据所述第一当前位姿和所述相对位姿,获取所述引脚在所述第一坐标系下的第二当前位姿;
所述第三位姿和第三当前位姿获取程序模块,用于根据包括目标插孔的第二图像或第二当前图像,基于预先经过训练的第二CNN模型或所述第一CNN模型,获取所述目标插孔在所述第一坐标系下的第三位姿或第三当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二当前位姿、以及所述第三位姿或第三当前位姿,计算机械手需实施的当前运动量;
所述判断程序模块,用于判断机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第一图像获取程序模块、第一当前位姿获取程序模块、第二图像或第二当前图像获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和所述控制运动程序模块;
所述第一图像获取程序模块,用于获取包括引脚的第一图像;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
所述第二图像或第二当前图像获取程序模块,用于获取包括目标插孔的第二图像或第二当前图像;
所述当前运动量获取程序模块,用于根据所述第一图像、所述第一当前位姿、所述第二图像或所述第二当前图像,基于预先经过训练的第三CNN模型,计算机械手需实施的当前运动量;所述判断程序模块,用于判断机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第二位姿或第二当前位姿以及第三位姿或第三当前位姿获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二位姿或第二当前位姿以及第三位姿或第三当前位姿获取程序模块,用于根据获取的包括引脚和目标插孔的第三当前图像,获取引脚在第一坐标系下的第二位姿或第二当前位姿,以及目标插孔的在所述第一坐标系下的第三位姿或第三当前位姿;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二位姿或第二当前位姿、以及所述第三位姿或第三当前位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制机械手实施所述当前运动量;或
所述插机装置包括:第二位姿或第二当前位姿以及第三位姿或第三当前位姿获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二位姿或第二当前位姿以及第三位姿或第三当前位姿获取程序模块,用于根据包括引脚和目标插孔的第三当前图像,基于预先经过训练的第四CNN模型,获取引脚在第一坐标系下的第二位姿或第二当前位姿,以及目标插孔在所述第一坐标系下的第三位姿或第三当前位姿;
所述第一当前位姿获取程序模块,用于根据机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二位姿或第二当前位姿、以及所述第三位姿或第三当前位姿计算所述机械手需实施的当前运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块;用于若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第三图像获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第三图像获取程序模块,用于获取包括引脚和目标插孔的第三当前图像;
所述第一当前位姿获取程序模块,用于根据获取的所述机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第三当前图像和所述第一当前位姿,基于预先经过训练的第五CNN模型,计算所述机械手需实施的当前运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第二坐标获取程序模块、第一当前位姿获取程序模块、第三坐标或第三当前坐标获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二坐标获取程序模块,用于根据获取的包括引脚的第一图像,获取引脚的第二坐标;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述第三坐标或第三当前坐标获取程序模块,用于根据包括目标插孔的第二图像或第二当前图像,获取目标插孔的第三坐标或第三当前坐标;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二坐标、以及所述第三坐标或第三当前坐标,基于预先经过训练的NN模型计算机械手需实施的当前运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块若满足,用于控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制机械手实施所述当前运动量;或
所述插机装置包括:第二坐标获取程序模块、第一当前位姿获取程序模块、第三坐标或第三当前坐标获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二坐标获取程序模块,用于根据获取的包括引脚的第一图像,基于预先经过训练的第六CNN模型,获取引脚的第二坐标;
所述第一当前位姿获取程序模块,用于根据机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
所述第三坐标或第三当前坐标获取程序模块,用于根据包括目标插孔的第二图像或第二当前图像,基于预先经过训练的第七CNN模型或所述预先经过训练的第六CNN模型,获取目标插孔的第三坐标或第三当前坐标;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二坐标、以及所述第三坐标或第三当前坐标,计算机械手需实施的当前运动量;所述判断程序模块,用于判断机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制机械手带动引脚插入目标插孔;所述控制运动程序模块,用于若不满足,控制机械手实施所述当前运动量;或
所述插机装置包括:第二坐标或第二当前坐标以及第三坐标或第三当前坐标获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二坐标或第二当前坐标以及第三坐标或第三当前坐标获取程序模块,用于根据获取的包括引脚和目标插孔的第三当前图像,获取引脚的第二坐标或第二当前坐标,以及目标插孔的第三坐标或第三当前坐标;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二坐标或第二当前坐标、以及所述第三坐标或第三当前坐标,基于预先经过训练的NN模型计算机械手需实施的当前运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制机械手实施所述当前运动量;或
所述插机装置包括:第二坐标或第二当前坐标以及第三坐标或第三当前坐标获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二坐标或第二当前坐标以及第三坐标或第三当前坐标获取程序模块,用于根据包括引脚和目标插孔的第三当前图像,基于预先经过训练的第八CNN模型,获取引脚的第二坐标或第二当前坐标,以及目标插孔的第三坐标或第三当前坐标;
所述第一当前位姿获取程序模块,用于根据机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二坐标或第二当前坐标、以及所述第三坐标或第三当前坐标计算机械手需实施的当前运动量;所述判断程序模块,用于判断机械手是否满足插机条件;插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制机械手实施所述当前运动量。
在一些实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上面任意一个实施例所述的插机方法。
如图23所示,在一些实施例中,本发明还提供一种电子设备,包括存储器750、处理器740以及存储在所述存储器760中并可在所述处理器740上运行的计算机程序770,所述处理器执行所述计算机程序时实现上面任意一个实施例所述的插机方法。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器(图未示意出)中,并由所述处理器740执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述插机设备中的轨迹规划的过程。例如,所述计算机程序可以被分割成所述插机装置包括:相对位姿获取程序模块、第一当前位姿获取程序模块、第二当前位姿获取程序模块、第三位姿和第三当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和所述控制运动程序模块;各模块具体功能如下:所述相对位姿获取程序模块,用于根据获取的包括引脚的第一图像,获取引脚相对机械手在第一坐标系下的相对位姿;所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;所述第二当前位姿获取程序模块,用于根据所述第一当前位姿和所述相对位姿,获取所述引脚在所述第一坐标系下的第二当前位姿;所述第三位姿和第三当前位姿获取程序模块,用于根据包括目标插孔的第二图像或第二当前图像,获取目标插孔在所述第一坐标系下的第三位姿或第三当前位姿;所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二当前位姿、以及所述第三位姿或第三当前位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,若不满足,控制所述机械手实施所述当前运动量。
所述电子设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器740可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可以是所述插机设备或电子设备内置的存储设备,例如硬盘或内存。所述存储器也可以是所述插机设备或电子设备的外部存储设备,例如所述插机设备或电子设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器还可以既包括所述插机设备700或电子设备的内部存储单元,也包括外部存储设备。所述存储器用于存储所述计算机程序以及所述电子设备或插机设备所需的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。
本领域技术人员可以理解,图19-23仅仅是插机设备和电子设备的示例,并不构成对插机设备和电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述插机设备还可以包括存储器、输入输出设备等。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (26)
1.一种插机方法,其特征在于,所述插机方法包括:
根据获取的包括引脚的第一图像,获取引脚相对机械手在第一坐标系下的相对位姿;
根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
根据获取的包括目标插孔的第二图像,获取目标插孔在所述第一坐标系下的第三位姿;或,根据获取的包括目标插孔的第二当前图像,获取目标插孔在所述第一坐标系下的第三当前位姿;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
根据所述第三位姿或第三当前位姿中的一种、所述第一当前位姿、所述相对位姿,基于预先经过训练的NN模型计算所述机械手需实施的当前运动量; 所述当前运动量,是指机械手需实施的运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
2.一种插机方法,其特征在于,所述插机方法包括:
根据获取的包括引脚的第一图像,基于预先经过训练的第一CNN模型,获取引脚相对机械手在第一坐标系下的相对位姿;
根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
根据获取的包括目标插孔的第二图像,基于预先经过训练的第二CNN模型或所述第一CNN模型,获取目标插孔在所述第一坐标系下的第三位姿;或,根据获取的包括目标插孔的第二当前图像,基于预先经过训练的第二CNN模型或所述第一CNN模型,获取目标插孔在所述第一坐标系下的第三当前位姿;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
根据所述第三位姿或第三当前位姿中的一种、所述第一当前位姿、所述相对位姿,计算机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;判断机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
3.一种插机方法,其特征在于,所述插机方法包括:
获取包括引脚的第一图像;
根据获取的机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
获取包括目标插孔的第二图像或第二当前图像;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
根据所述第二图像或所述第二当前图像中的一种、所述第一图像、以及所述第一当前位姿,基于预先经过训练的第三CNN模型,计算所述机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
4.一种插机方法,其特征在于,所述插机方法包括:
在第三图像传感器相对目标插孔运动、且相对引脚固定的情况下,根据获取的包括引脚和目标插孔的第三当前图像,获取所述引脚在第一坐标系下的第二位姿以及所述目标插孔在所述第一坐标系下的第三当前位姿;
在第三图像传感器相对于印制电路板位置固定、且相对于引脚运动的情况下,根据获取的包括引脚和目标插孔的第三当前图像,获取所述引脚在第一坐标系下的第二当前位姿,以及所述目标插孔在所述第一坐标系下的第三位姿;根据获取的机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
根据所述第一当前位姿、所述第二当前位姿、以及所述第三位姿,或根据所述第一当前位姿、第二位姿、以及所述第三当前位姿,基于预先经过训练的NN模型计算所述机械手需实施的当前运动量; 所述当前运动量,是指机械手需实施的运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
5.一种插机方法,其特征在于,所述插机方法包括:
在第三图像传感器相对目标插孔运动、且相对引脚固定的情况下,根据获取的包括引脚和目标插孔的第三当前图像,基于预先经过训练的第四CNN模型,获取所述引脚在第一坐标系下的第二位姿以及所述目标插孔在所述第一坐标系下的第三当前位姿;
在第三图像传感器相对于印制电路板位置固定、且相对于引脚运动的情况下,根据获取的包括引脚和目标插孔的第三当前图像,基于预先经过训练的第四CNN模型,获取所述引脚在第一坐标系下的第二当前位姿,以及所述目标插孔在所述第一坐标系下的第三位姿;
根据机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
根据所述第一当前位姿、所述第二当前位姿、以及所述第三位姿,或根据所述第一当前位姿、所述第二位姿、以及所述第三当前位姿,计算所述机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
6.一种插机方法,其特征在于,所述插机方法包括:
获取包括引脚和目标插孔的第三当前图像;其中,所述第三当前图像是在第三图像传感器相对于印制电路板位置固定、且相对于引脚运动的情况下,由所述第三图像传感器采集的图像,或,所述第三当前图像是在第三图像传感器相对于目标插孔运动、且相对引脚固定的情况下,由所述第三图像传感器采集的图像;
根据获取的机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
根据所述第三当前图像和所述第一当前位姿,基于预先经过训练的第五CNN模型,计算所述机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
7.一种插机方法,其特征在于,所述插机方法包括:
根据获取的包括引脚的第一图像,获取引脚的第二坐标;
根据获取的机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
根据获取的包括目标插孔的第二图像,获取目标插孔在所述第一坐标系下的第三坐标;或,根据获取的包括目标插孔的第二当前图像,获取目标插孔在所述第一坐标系下的第三当前坐标;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
根据所述第三坐标或第三当前坐标中的一种、所述第一当前位姿、所述第二坐标,基于预先经过训练的NN模型计算所述机械手需实施的当前运动量; 所述当前运动量,是指机械手需实施的运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
8.一种插机方法,其特征在于,所述插机方法包括:
根据获取的包括引脚的第一图像,基于预先经过训练的第六CNN模型,获取引脚的第二坐标;
根据机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
根据获取的包括目标插孔的第二图像,基于所述预先经过训练的第六CNN模型或第七CNN模型,获取目标插孔在所述第一坐标系下的第三坐标;或,根据获取的包括目标插孔的第二当前图像,基于所述预先经过训练的第六CNN模型或第七CNN模型,获取目标插孔在所述第一坐标系下的第三当前坐标;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
根据所述第三坐标或第三当前坐标中的一种、所述第一当前位姿、所述第二坐标,计算所述机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动引脚插入目标插孔;若不满足,控制所述机械手实施所述当前运动量。
9.一种插机方法,其特征在于,所述插机方法包括:
在第三图像传感器相对目标插孔运动、且相对引脚固定的情况下,根据获取的包括引脚和目标插孔的第三当前图像,获取所述引脚在第一坐标系下的第二坐标以及所述目标插孔在所述第一坐标系下的第三当前坐标;
在第三图像传感器相对于印制电路板位置固定、且相对于引脚运动的情况下,根据获取的包括引脚和目标插孔的第三当前图像,获取所述引脚在第一坐标系下的第二当前坐标,以及所述目标插孔在所述第一坐标系下的第三坐标;
根据获取的机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
根据所述第一当前位姿、所述第二当前坐标、以及所述第三坐标,或根据所述第一当前位姿、所述第二坐标、以及第三当前坐标,基于预先经过训练的NN模型计算所述机械手需实施的当前运动量; 所述当前运动量,是指机械手需实施的运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
10.一种插机方法,其特征在于,所述插机方法包括:
在第三图像传感器相对目标插孔运动、且相对引脚固定的情况下,根据获取的包括引脚和目标插孔的第三当前图像,基于预先经过训练的第八CNN模型,获取所述引脚在第一坐标系下的第二坐标以及所述目标插孔在所述第一坐标系下的第三当前坐标;
在第三图像传感器相对于印制电路板位置固定、且相对于引脚运动的情况下,根据获取的包括引脚和目标插孔的第三当前图像,基于预先经过训练的第八CNN模型,获取所述引脚在第一坐标系下的第二当前坐标,以及所述目标插孔在所述第一坐标系下的第三坐标;
根据机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
根据所述第一当前位姿、所述第二当前坐标、以及所述第三坐标,或根据所述第一当前位姿、所述第二坐标、以及所述第三当前坐标,计算所述机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;判断所述机械手是否满足插机条件;若满足,控制所述机械手带动所述引脚插入所述目标插孔;若不满足,控制所述机械手实施所述当前运动量。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10任意一项所述的插机方法。
12.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至10任意一项所述的插机方法。
13.一种插机设备,其特征在于,所述插机设备包括第一图像传感器、第二图像传感器、机械手和处理器;
所述处理器分别耦接所述第一图像传感器、所述第二图像传感器和所述机械手;
所述第一图像传感器在工作时,采集包括引脚的第一图像,并将所述第一图像发送给所述处理器;
所述第二图像传感器在工作时,采集包括目标插孔的第二图像或第二当前图像,并将所述第二图像或第二当前图像发送给所述处理器;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
所述机械手在工作时,将机械手各关节的当前信息发送给所述处理器;基于所述处理器的控制移动当前运动量;所述当前运动量,是指机械手需实施的运动量;基于所述处理器的控制带动所述引脚插入所述目标插孔;
所述处理器在工作时实现权利要求1至3任意一项所述的插机方法;或
权利要求7-8任意一项所述的插机方法。
14.一种插机设备,其特征在于,所述插机设备包括第三图像传感器、机械手和处理器;
所述处理器分别耦接所述第三图像传感器和所述机械手;
所述第三图像传感器在工作时,采集包括引脚和目标插孔的第三当前图像,并将所述第三当前图像发送给所述处理器;
所述机械手在工作时,将机械手各关节的当前信息发送给所述处理器;基于所述处理器的控制移动当前运动量;所述当前运动量,是指机械手需实施的运动量;基于所述处理器的控制带动所述引脚插入所述目标插孔;
所述处理器在工作时实现权利要求4至6任意一项所述的插机方法;或
权利要求9-10任意一项所述的插机方法。
15.一种插机装置,其特征在于,所述插机装置包括:第三位姿获取程序模块或第三当前位姿获取程序模块中的一种、相对位姿获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述相对位姿获取程序模块,用于根据获取的包括引脚的第一图像,获取引脚相对机械手在第一坐标系下的相对位姿;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
所述第三位姿获取程序模块,用于根据获取的包括目标插孔的第二图像,获取目标插孔在所述第一坐标系下的第三位姿;或,所述第三当前位姿获取程序模块,用于根据获取的包括目标插孔的第二当前图像,获取目标插孔在所述第一坐标系下的第三当前位姿;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
所述当前运动量获取程序模块,用于根据所述第三位姿或第三当前位姿中的一种、所述第一当前位姿、以及所述相对位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第三位姿获取程序模块或第三当前位姿获取程序模块中的一种、相对位姿获取程序模块、第一当前位姿获取程序模块、第二当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述相对位姿获取程序模块,用于根据获取的包括引脚的第一图像,基于预先经过训练的第一CNN模型,获取所述引脚相对所述机械手在第一坐标系下的相对位姿;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述第三位姿获取程序模块,用于将获取的包括目标插孔的第二图像输入至预先经过训练的第二CNN模型或所述第一CNN模型,并获取所述第二CNN模型或所述第一CNN模型输出的目标插孔在所述第一坐标系下的第三位姿;或,所述第三当前位姿获取程序模块,用于将获取的包括目标插孔的第二当前图像输入至预先经过训练的第二CNN模型或所述第一CNN模型,并获取所述第二CNN模型或所述第一CNN模型输出的目标插孔在所述第一坐标系下的第三当前位姿;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
所述当前运动量获取程序模块,用于所述第三位姿或第三当前位姿中的一种、根据所述第一当前位姿、以及所述相对位姿,计算机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第二图像获取程序模块或第二当前图像获取程序模块中的一种、第一图像获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第一图像获取程序模块,用于获取包括引脚的第一图像;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
所述第二图像获取程序模块,用于获取包括目标插孔的第二图像;或,所述第二当前图像获取程序模块,用于获取包括目标插孔的第二当前图像;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
所述当前运动量获取程序模块,用于根据所述第二图像或所述第二当前图像中的一种、所述第一图像、以及所述第一当前位姿,基于预先经过训练的第三CNN模型,计算机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第二当前位姿与第三位姿获取程序模块或第二位姿与第三当前位姿获取程序模块中的一种、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二当前位姿与第三位姿获取程序模块,用于在第三图像传感器相对于印制电路板位置固定、且相对于引脚运动的情况下,根据获取的包括引脚和目标插孔的第三当前图像,获取所述引脚在第一坐标系下的第二当前位姿,以及所述目标插孔在所述第一坐标系下的第三位姿;
所述第二位姿与第三当前位姿获取程序模块,用于在第三图像传感器相对目标插孔运动、且相对引脚固定的情况下,根据获取的包括引脚和目标插孔的第三当前图像,获取所述引脚在第一坐标系下的第二位姿以及所述目标插孔在所述第一坐标系下的第三当前位姿;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取所述机械手在所述第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二当前位姿、以及所述第三位姿,或根据所述第一当前位姿、所述第二位姿、以及所述第三当前位姿,基于预先经过训练的NN模型计算机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第二当前位姿与第三位姿获取程序模块或第二位姿与第三当前位姿获取程序模块中的一种、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二当前位姿与第三位姿获取程序模块,用于在第三图像传感器相对于印制电路板位置固定、且相对于引脚运动的情况下,根据获取的包括引脚和目标插孔的第三当前图像,基于预先经过训练的第四CNN模型,获取所述引脚在第一坐标系下的第二当前位姿,以及所述目标插孔在所述第一坐标系下的第三位姿;
所述第二位姿与第三当前位姿获取程序模块,用于在第三图像传感器相对目标插孔运动、且相对引脚固定的情况下,根据获取的包括引脚和目标插孔的第三当前图像,基于预先经过训练的第四CNN模型,获取所述引脚在第一坐标系下的第二位姿以及所述目标插孔在所述第一坐标系下的第三当前位姿;
所述第一当前位姿获取程序模块,用于根据机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二当前位姿、以及所述第三位姿,或根据所述第一当前位姿、所述第二位姿、以及所述第三当前位姿,计算所述机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第三图像获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第三图像获取程序模块,用于获取包括引脚和目标插孔的第三当前图像;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取机械手在所述第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第三当前图像和所述第一当前位姿,基于预先经过训练的第五CNN模型,计算所述机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制所述机械手实施所述当前运动量;或
所述插机装置包括:第三坐标获取程序模块或第三当前坐标获取程序模块中的一种、第二坐标获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二坐标获取程序模块,用于根据获取的包括引脚的第一图像,获取引脚的第二坐标;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
所述第三坐标获取程序模块,用于根据获取的包括目标插孔的第二图像,获取目标插孔在所述第一坐标系下的第三坐标;或,所述第三当前坐标获取程序模块,用于根据获取的包括目标插孔的第二当前图像,获取目标插孔在所述第一坐标系下的第三当前坐标;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二坐标、以及所述第三坐标或第三当前坐标,或根据所述第一当前位姿、所述第二坐标、以及所述第三坐标或第三当前坐标,基于预先经过训练的NN模型计算机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块若满足,用于控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制机械手实施所述当前运动量;或
所述插机装置包括:第三坐标获取程序模块或第三当前坐标获取程序模块中的一种,第二坐标获取程序模块、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二坐标获取程序模块,用于根据获取的包括引脚的第一图像,基于预先经过训练的第一CNN模型,获取引脚的第二坐标;
所述第一当前位姿获取程序模块,用于根据机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
所述第三坐标获取程序模块,用于将获取的包括目标插孔的第二图像输入至预先经过训练的第二CNN模型或所述第一CNN模型,并获取所述第二CNN模型或所述第一CNN模型输出的目标插孔在所述第一坐标系下的第三坐标;或,所述第三坐标获取程序模块,用于将获取的包括目标插孔的第二当前图像输入至预先经过训练的第二CNN模型或所述第一CNN模型,并获取所述第二CNN模型或所述第一CNN模型输出的目标插孔在所述第一坐标系下的第三当前坐标;其中,所述第二图像,是在所述第二图像传感器相对于印制电路板位置固定的情况下,由所述第二图像传感器采集的图像;所述第二当前图像,是在所述第二图像传感器跟随所述机械手一起移动的情况下,由所述第二图像传感器在移动过程中采集的图像;
所述当前运动量获取程序模块,用于根据所述第三坐标或第三当前坐标中的一种、所述第一当前位姿、以及所述第二坐标,计算机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制机械手带动引脚插入目标插孔;所述控制运动程序模块,用于若不满足,控制机械手实施所述当前运动量;或
所述插机装置包括:第二当前坐标与第三坐标获取程序模块或第二坐标与第三当前坐标获取程序模块中的一种、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二当前坐标与第三坐标获取程序模块,用于在第三图像传感器相对于印制电路板位置固定、且相对于引脚运动的情况下,根据获取的包括引脚和目标插孔的第三当前图像,获取所述引脚在第一坐标系下的第二当前坐标,以及所述目标插孔在所述第一坐标系下的第三坐标;
所述第二坐标与第三当前坐标获取程序模块,用于在第三图像传感器相对目标插孔运动、且相对引脚固定的情况下,根据获取的包括引脚和目标插孔的第三当前图像,获取所述引脚在第一坐标系下的第二坐标以及所述目标插孔在所述第一坐标系下的第三当前坐标;
所述第一当前位姿获取程序模块,用于根据获取的机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二当前坐标、以及所述第三坐标,或根据所述第一当前位姿、所述第二坐标、以及所述第三当前坐标,基于预先经过训练的NN模型计算机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断所述机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制机械手实施所述当前运动量;或
所述插机装置包括:第二当前坐标与第三坐标获取程序模块或第二坐标与第三当前坐标获取程序模块中的一种、第一当前位姿获取程序模块、当前运动量获取程序模块、判断程序模块、控制插机程序模块和控制运动程序模块;
所述第二当前坐标与第三坐标获取程序模块,用于在第三图像传感器相对于印制电路板位置固定、且相对于引脚运动的情况下,根据获取的包括引脚和目标插孔的第三当前图像,基于预先经过训练的第八CNN模型,获取所述引脚在第一坐标系下的第二当前坐标,以及所述目标插孔在所述第一坐标系下的第三坐标;
所述第二坐标与第三当前坐标获取程序模块,用于在第三图像传感器相对目标插孔运动、且相对引脚固定的情况下,根据获取的包括引脚和目标插孔的第三当前图像,基于预先经过训练的第八CNN模型,获取所述引脚在第一坐标系下的第二坐标以及所述目标插孔在所述第一坐标系下的第三当前坐标;
所述第一当前位姿获取程序模块,用于根据机械手各关节的当前信息,获取机械手在第一坐标系下的第一当前位姿;
所述当前运动量获取程序模块,用于根据所述第一当前位姿、所述第二当前坐标、以及所述第三坐标,或根据所述第一当前位姿、所述第二坐标、以及所述第三当前坐标,计算机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;所述判断程序模块,用于判断机械手是否满足插机条件;所述控制插机程序模块,用于若满足,控制所述机械手带动所述引脚插入所述目标插孔;所述控制运动程序模块,用于若不满足,控制机械手实施所述当前运动量。
16.一种权利要求1所述的插机方法中的预先经过训练的NN模型的获取方法,其特征在于,所述预先经过训练的NN模型通过如下方法获取:
获取初始化的NN模型,所述NN模型用于针对输入的所述第三位姿或所述第三当前位姿中的一种、所述第一当前位姿、以及所述相对位姿,输出机械手需实施的当前运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的NN模型进行训练,以获取所述预先经过训练的NN模型。
17.一种权利要求4所述的插机方法中的预先经过训练的NN模型的获取方法,其特征在于,所述预先经过训练的NN模型通过如下方法获取:
获取初始化的NN模型,所述NN模型用于针对输入的所述第一当前位姿、所述第二当前位姿、以及所述第三位姿,或用于针对输入的所述第一当前位姿、所述第二位姿、以及所述第三当前位姿,输出机械手需实施的当前运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的NN模型进行训练,以获取所述预先经过训练的NN模型。
18.一种权利要求2所述的插机方法中的预先经过训练的第一CNN模型的获取方法,其特征在于,所述预先经过训练的第一CNN模型通过如下方法获取:
获取初始化的第一CNN模型,所述第一CNN模型用于针对输入的第一图像输出相对位姿或引脚位姿;或用于针对输入的第二图像输出第三位姿;或用于针对输入的第二当前图像输出第三当前位姿;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第一CNN模型进行训练,以获取所述预先经过训练的第一CNN模型。
19.一种权利要求3所述的插机方法中的预先经过训练的第三CNN模型的获取方法,其特征在于,所述预先经过训练的第三CNN模型通过如下方法获取:
获取初始化的第三CNN模型,所述第三CNN模型用于针对输入的第二图像或第二当前图像中的一种、第一图像、和第一当前位姿,输出机械手需实施的当前运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第三CNN模型进行训练,以获取所述预先经过训练的第三CNN模型。
20.一种权利要求5所述的插机方法中的预先经过训练的第四CNN模型的获取方法,其特征在于,所述预先经过训练的第四CNN模型通过如下方法获取:
获取初始化的第四CNN模型,所述第四CNN模型用于针对输入的第三当前图像,输出第二位姿,以及第三当前位姿;或用于针对输入的第三当前图像,输出第二当前位姿,以及第三位姿;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第四CNN模型进行训练,以获取所述预先经过训练的第四CNN模型。
21.一种权利要求6所述的插机方法中的预先经过训练的第五CNN模型的获取方法,其特征在于,所述预先经过训练的第五CNN模型通过如下方法获取:
获取初始化的第五CNN模型,所述第五CNN模型用于针对输入的第三当前图像和第一当前位姿,输出机械手需实施例的当前运动量;所述当前运动量,是指机械手需实施的运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第五CNN模型进行训练,以获取所述预先经过训练的第五CNN模型。
22.一种权利要求7所述的插机方法中的预先经过训练的NN模型的获取方法,其特征在于,所述预先经过训练的NN模型的获取方法包括:
获取初始化的NN模型,所述NN模型用于针对输入的所述第三坐标或第三当前坐标中的一种、所述第一当前位姿、以及所述第二坐标,输出所述机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的NN模型进行训练,以获取所述预先经过训练的所述NN模型。
23.一种权利要求9所述的插机方法中的预先经过训练的NN模型的获取方法,其特征在于,所述预先经过训练的NN模型的获取方法包括:
获取初始化的NN模型,所述NN模型用于针对输入的所述第三坐标或第三当前坐标中的一种、所述第一当前位姿、以及所述第二当前坐标,输出所述机械手需实施的当前运动量;所述当前运动量,是指机械手需实施的运动量;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的NN模型进行训练,以获取所述预先经过训练的所述NN模型。
24.一种权利要求8所述的插机方法中的预先经过训练的第六CNN模型的获取方法,其特征在于,所述预先经过训练的第六CNN模型的获取方法包括:
获取初始化的第六CNN模型,所述第六CNN模型用于针对输入的所述第一图像,输出所述第二坐标;或用于针对输入的所述第二图像,输出所述第三坐标;或用于针对输入的所述第二当前图像,输出所述第三当前坐标;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第六CNN模型进行训练,以获取所述预先经过训练的所述第六CNN模型。
25.一种权利要求8所述的插机方法中的预先经过训练的第七CNN模型的获取方法,其特征在于,所述预先经过训练的第七CNN模型的获取方法包括:
所述第七CNN模型用于针对输入的所述第二图像,输出所述第三坐标;或用于针对输入的所述第二当前图像,输出所述第三当前坐标;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对初始化的第七CNN模型进行训练,以获取所述预先经过训练的所述第七CNN模型。
26.一种权利要求10所述的插机方法中的预先经过训练的第八CNN模型的获取方法,其特征在于,所述预先经过训练的第八CNN模型的获取方法包括:
获取初始化的第八CNN模型,所述第八CNN模型用于针对输入的所述第三当前图像,输出第二坐标以及第三当前坐标;或用于针对输入的所述第三当前图像,输出所述第二当前坐标以及所述第三坐标;
获取训练数据和标签数据;
基于所述训练数据和所述标签数据,对所述初始化的第八CNN模型进行训练,以获取所述预先经过训练的所述第八CNN模型。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018102816737 | 2018-04-02 | ||
CN201810281673 | 2018-04-02 | ||
CN201810281121 | 2018-04-02 | ||
CN2018102811216 | 2018-04-02 | ||
PCT/CN2019/080453 WO2019192402A1 (zh) | 2018-04-02 | 2019-03-29 | 一种插机方法及插机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110463376A CN110463376A (zh) | 2019-11-15 |
CN110463376B true CN110463376B (zh) | 2021-10-29 |
Family
ID=68099897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980000632.9A Expired - Fee Related CN110463376B (zh) | 2018-04-02 | 2019-03-29 | 一种插机方法及插机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110463376B (zh) |
WO (1) | WO2019192402A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112312666B (zh) * | 2020-11-06 | 2023-08-15 | 浪潮电子信息产业股份有限公司 | 一种电路板打螺钉方法和系统 |
CN113412048B (zh) * | 2021-06-09 | 2022-11-25 | 东莞市冠佳电子设备有限公司 | 一种出料整脚装置 |
CN114700953B (zh) * | 2022-04-29 | 2023-09-08 | 华中科技大学 | 一种基于关节零位误差的粒子群手眼标定方法及系统 |
CN115017857B (zh) * | 2022-06-14 | 2023-06-06 | 大连日佳电子有限公司 | 一种电子元器件引脚插装位置确定方法及系统 |
CN116184616B (zh) * | 2022-12-06 | 2023-11-14 | 中国科学院空间应用工程与技术中心 | 一种重力仪棱镜位姿控制的方法以及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1893809A (zh) * | 2005-06-30 | 2007-01-10 | 重机公司 | 部件吸附方法及装置 |
CN1979137A (zh) * | 2005-01-11 | 2007-06-13 | 欧姆龙株式会社 | 基板检查装置及其检查逻辑设定方法和检查逻辑设定装置 |
CN102883548A (zh) * | 2012-10-16 | 2013-01-16 | 南京航空航天大学 | 基于量子神经网络的贴片机元器件贴装调度优化方法 |
CN103313591A (zh) * | 2012-03-14 | 2013-09-18 | 技嘉科技股份有限公司 | 零件辨识系统及零件辨识方法 |
CN106228563A (zh) * | 2016-07-29 | 2016-12-14 | 杭州鹰睿科技有限公司 | 基于三维视觉的自动装配系统 |
CN106709909A (zh) * | 2016-12-13 | 2017-05-24 | 重庆理工大学 | 一种基于深度学习的柔性机器人视觉识别与定位系统 |
CN106874914A (zh) * | 2017-01-12 | 2017-06-20 | 华南理工大学 | 一种基于深度卷积神经网络的工业机械臂视觉控制方法 |
CN206470210U (zh) * | 2016-12-24 | 2017-09-05 | 大连日佳电子有限公司 | 机器视觉焊锡定位检测系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5090927A (en) * | 1991-06-27 | 1992-02-25 | At&T Bell Laboratories | Connectors including lead alignment strips |
US7110591B2 (en) * | 2001-03-28 | 2006-09-19 | Siemens Corporate Research, Inc. | System and method for recognizing markers on printed circuit boards |
JP2005121478A (ja) * | 2003-10-16 | 2005-05-12 | Hitachi High-Tech Instruments Co Ltd | 実装部品の検査方法、実装部品の検査装置及び治具基板 |
JP2013046923A (ja) * | 2011-08-29 | 2013-03-07 | Ricoh Co Ltd | リードピン矯正装置、及び、リードピンの矯正方法 |
CN103841814B (zh) * | 2012-11-26 | 2016-08-10 | 台达电子电源(东莞)有限公司 | 用于在插座上组装电子器件的装置及方法 |
CN103963058B (zh) * | 2014-04-30 | 2016-01-06 | 重庆环视高科技有限公司 | 基于多方位视觉定位的机械手臂抓取控制系统及方法 |
CN105228437B (zh) * | 2015-09-30 | 2018-01-23 | 广东省自动化研究所 | 一种基于复合定位的异型电子元器件装配方法 |
CN105451461B (zh) * | 2015-11-25 | 2018-08-14 | 四川长虹电器股份有限公司 | 基于scara机器人的pcb板定位方法 |
CN107205335A (zh) * | 2016-03-17 | 2017-09-26 | 深圳市堃琦鑫华股份有限公司 | 一种自动化插件方法 |
CN205812526U (zh) * | 2016-06-30 | 2016-12-14 | 深圳市顶点视觉自动化技术有限公司 | 电子元件引脚的视觉定位系统 |
-
2019
- 2019-03-29 WO PCT/CN2019/080453 patent/WO2019192402A1/zh active Application Filing
- 2019-03-29 CN CN201980000632.9A patent/CN110463376B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1979137A (zh) * | 2005-01-11 | 2007-06-13 | 欧姆龙株式会社 | 基板检查装置及其检查逻辑设定方法和检查逻辑设定装置 |
CN1893809A (zh) * | 2005-06-30 | 2007-01-10 | 重机公司 | 部件吸附方法及装置 |
CN103313591A (zh) * | 2012-03-14 | 2013-09-18 | 技嘉科技股份有限公司 | 零件辨识系统及零件辨识方法 |
CN102883548A (zh) * | 2012-10-16 | 2013-01-16 | 南京航空航天大学 | 基于量子神经网络的贴片机元器件贴装调度优化方法 |
CN106228563A (zh) * | 2016-07-29 | 2016-12-14 | 杭州鹰睿科技有限公司 | 基于三维视觉的自动装配系统 |
CN106709909A (zh) * | 2016-12-13 | 2017-05-24 | 重庆理工大学 | 一种基于深度学习的柔性机器人视觉识别与定位系统 |
CN206470210U (zh) * | 2016-12-24 | 2017-09-05 | 大连日佳电子有限公司 | 机器视觉焊锡定位检测系统 |
CN106874914A (zh) * | 2017-01-12 | 2017-06-20 | 华南理工大学 | 一种基于深度卷积神经网络的工业机械臂视觉控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110463376A (zh) | 2019-11-15 |
WO2019192402A1 (zh) | 2019-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110463376B (zh) | 一种插机方法及插机设备 | |
US9616569B2 (en) | Method for calibrating an articulated end effector employing a remote digital camera | |
CN105082132B (zh) | 力‑扭矩任务的快速机器人模仿学习 | |
CN109397285B (zh) | 一种装配方法、装配装置及装配设备 | |
CN111251295B (zh) | 一种应用于参数化零件的视觉机械臂抓取方法及装置 | |
CN111695562A (zh) | 一种基于卷积神经网络的机器人自主抓取方法 | |
CN109807887B (zh) | 基于深度神经网络的柔性臂智能感知与控制方法和系统 | |
CN114454174B (zh) | 机械臂动作捕捉方法、介质、电子设备及系统 | |
CN113910218B (zh) | 一种基于运动学与深度神经网络融合的机器人标定方法和装置 | |
Ottenhaus et al. | Visuo-haptic grasping of unknown objects based on gaussian process implicit surfaces and deep learning | |
CN114387513A (zh) | 机器人抓取方法、装置、电子设备及存储介质 | |
CN110553650A (zh) | 一种基于小样本学习的移动机器人重定位方法 | |
Liu et al. | Understanding multi-modal perception using behavioral cloning for peg-in-a-hole insertion tasks | |
JP7051751B2 (ja) | 学習装置、学習方法、学習モデル、検出装置及び把持システム | |
Budiharto | Robust vision-based detection and grasping object for manipulator using SIFT keypoint detector | |
CN114187312A (zh) | 目标物的抓取方法、装置、系统、存储介质及设备 | |
CN113551661A (zh) | 位姿识别、轨迹规划方法、装置、系统、存储介质及设备 | |
CN116460851A (zh) | 一种视觉迁移的机械臂装配控制方法 | |
Putri et al. | Object detection and tracking using SIFT-KNN classifier and Yaw-Pitch servo motor control on humanoid robot | |
Wang et al. | Study on the Target Recognition and Location Technology of industrial Sorting Robot based on Machine Vision. | |
WO2021199305A1 (ja) | 制御装置、制御システム、制御方法、および、制御プログラムが記録された記録媒体 | |
JP2021061014A (ja) | 学習装置、学習方法、学習モデル、検出装置及び把持システム | |
CN112232484A (zh) | 一种基于类脑神经网络的空间碎片识别捕获方法及系统 | |
Ogas et al. | Object grasping with a robot arm using a convolutional network | |
EP4238714A1 (en) | Device and method for controlling a robot |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211029 |
|
CF01 | Termination of patent right due to non-payment of annual fee |