CN111055289B - 机器人的手眼标定方法、装置、机器人及存储介质 - Google Patents

机器人的手眼标定方法、装置、机器人及存储介质 Download PDF

Info

Publication number
CN111055289B
CN111055289B CN202010070362.3A CN202010070362A CN111055289B CN 111055289 B CN111055289 B CN 111055289B CN 202010070362 A CN202010070362 A CN 202010070362A CN 111055289 B CN111055289 B CN 111055289B
Authority
CN
China
Prior art keywords
robot
joint
hand
data
coordinate 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.)
Active
Application number
CN202010070362.3A
Other languages
English (en)
Other versions
CN111055289A (zh
Inventor
徐泽元
彭飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudminds Beijing Technologies Co Ltd
Original Assignee
Cloudminds Beijing Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cloudminds Beijing Technologies Co Ltd filed Critical Cloudminds Beijing Technologies Co Ltd
Priority to CN202010070362.3A priority Critical patent/CN111055289B/zh
Publication of CN111055289A publication Critical patent/CN111055289A/zh
Application granted granted Critical
Publication of CN111055289B publication Critical patent/CN111055289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme 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/1697Vision controlled systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

本发明实施例涉及移动机器人领域,公开了一种机器人的手眼标定方法、装置、机器人及存储介质。本发明中控制机器人移动,并获取机器人的各个关节的旋转数据;根据各个关节的旋转数据和各个关节的预设参数,计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据;根据位置变化数据确定机器人移动后的手部在机器人坐标系下的第一位置数据;根据第一位置数据与移动后的机器人的相机采集的相机坐标系下的手部的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值;将转换矩阵和各个关节的预设参数的补偿值作为机器人的手眼标定的结果。

Description

机器人的手眼标定方法、装置、机器人及存储介质
技术领域
本发明实施例涉及移动机器人领域,特别涉及一种机器人的手眼标定方法、装置、机器人及存储介质。
背景技术
随着移动机器人领域的迅速发展,移动机器人已广泛应用至各个不同的应用场景,为了使机器人可以实现对外界环境的检测和识别等功能,可以在机器人上安装视觉传感器,从而辅助机器人完成探测等复杂且智能的任务。
在机器人上安装了视觉传感器之后,由于视觉传感器感测的物体所在位置与控制机器人行动的机械臂坐标系并不统一,若以视觉传感器检测到物体所在的位置信息控制机器人的移动,机器人将无法实现所期望的动作,所以需要知晓机器人的视觉传感器对应的相机坐标系和控制移动的传感器对应的机械臂坐标系之间的关系,才能将视觉传感器的相机坐标系下识别出的位置信息转换至控制机器人移动的传感器对应的机械臂坐标系下,准确的控制机器人进行移动。为了知晓两个不同坐标系之间的关系即需要对机器人进行手眼标定。
传统的手眼标定的方法通常基于预设规格的标定板进行标定,通过手动指令移动机器人,使机器人的末端关节接触标定板的特定位置,并记录标定板上的对应的坐标,根据记录的坐标完成手眼标定。
发明人发现相关技术中至少存在如下问题:标定板是预先加工的,标定板的加工精度会影响手眼标定结果的准确性,若标定板加工精度不准,则会导致手眼标定的精度较低。
发明内容
本发明实施例的目的在于提供一种机器人的手眼标定方法、装置、机器人及存储介质,利用机器人自身的参数进行手眼标定,提高了手眼标定的精度,另外在手眼标定时还可以对机器人的相关参数的预设数值进行补偿,校准机器人的相关参数。
为解决上述技术问题,本发明的实施例提供了一种机器人的手眼标定方法,包括:控制机器人移动,并获取机器人的各个关节的旋转数据;其中,机器人的关节包括:机器人的机械臂关节和机器人的头部关节;根据各个关节的旋转数据和各个关节的预设参数,计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据;根据位置变化数据确定机器人移动后的手部在机器人坐标系下的第一位置数据;根据第一位置数据与移动后的机器人的相机采集的相机坐标系下的手部的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值;将转换矩阵和各个关节的预设参数的补偿值作为机器人的手眼标定的结果。
本发明的实施例还提供了一种机器人的手眼标定装置,包括:控制模块,第一位置数据获取模块,第二位置数据获取模块,计算模块;控制模块用于控制机器人移动,并获取机器人的各个关节的旋转数据;其中,所述机器人的关节包括:机器人的机械臂关节和机器人的头部关节;第一位置数据获取模块用于根据各个关节的旋转数据和各个关节的预设参数,计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据;根据位置变化数据确定机器人移动后的手部在机器人坐标系下的第一位置数据;第二位置数据获取模块用于采集的相机坐标系下的手部的第二位置数据;计算模块用于根据第一位置数据与第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值;将转换矩阵和各个关节的预设参数的补偿值作为机器人的手眼标定的结果。
本发明的实施方式还提供了一种机器人,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行机器人的手眼标定方法。
本发明的实施方式还提供了一种存储介质,存储有计算机程序,计算机程序被处理器执行时上述的机器人的手眼标定方法。
本发明实施例相对于现有技术而言,控制机器人的机械臂移动,并在每次移动之后,获取机器人移动之后的机械臂的各个关节的旋转数据,预设的各个关节的相应参数和机器人的手部在相机坐标系下的第二位置数据。根据每一个关节的旋转数据和各个关节的预设参数可以计算出各个关节相对于机器人零位时各个关节的相对位置,从而可以确定手部相对于零位时的手部的位置变化。由于机器人坐标系为机器人处于零位时建立的坐标系,所以可以根据手部相对于零位时的手部的位置变化数据确定机器人的手部在机器人坐标系下的第一位置数据。在得到手部在机器人坐标系下的第一位置数据,并通过机器人自身相机获取手部在相机坐标系下的第二位置数据,即可计算得到机器人坐标系和相机坐标系的转换矩阵并得到各个关节的预设参数的补偿值,计算的转换矩阵和各个关节的预设参数的补偿值可以作为手眼标定的结果,整个手眼标定过程只需借助机器人自身参数和机器人自身传感器测量的数据,无需外部设备的配合,节约了处理标定问题所需的成本,且避免了外部设备的精度对机器人手眼标定的精度的影响,提高了标定的精度。另外,手眼标定的结果不仅包括转换矩阵,还包括各个关节的预设参数的补偿值,通过预设参数的补偿值可以对机器人的参数进行校准,得到更为精确的标定结果。
另外,根据各个关节的旋转数据和各个关节的预设参数,计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据,包括:在所有关节中选择一关节作为目标关节;根据目标关节的旋转数据和预设的运动学参数,确定目标关节与其相邻关节的相对位置变化数据,并将相对位置变化数据作为目标关节对应的变换数据;在确定各个关节对应的变换数据之后,根据各个关节对应的变换数据计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据。
另外,相机设置在机器人的头部;在机器人的相机采集相机坐标系下的手部的第二位置数据之后,还包括:根据获取的头部关节的旋转数据和头部关节的预设参数,对第二位置数据进行校准;根据第一位置数据与移动后的机器人的相机采集的相机坐标系下的手部的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值,包括:根据第一位置数据与校准后的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值。在机器人头部设置有关节,且关节可以旋转时,可以利用头部关节的参数对相机采集的相机坐标系下的手部的第二位置数据进行校准,从而使相机坐标系与机器人坐标系的位置关系相对固定,从而便于对机器人进行手眼标定。
另外,机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值,通过以下公式进行计算:
Figure BDA0002377143590000031
其中,θ={O,Q,S,T},代表待计算的参数;O为机器人的头部的关节的预设参数对应的补偿值;Q为机器人的机械臂的关节的预设参数对应的补偿值;S为转换矩阵中的旋转矩阵;T为转换矩阵中的平移矩阵;h为机器人手部相对于用于连接机械臂与手部的连接关节的第三位置数据;Qj为机械臂的第j个关节的预设参数的补偿值;Ai,j为第i次采集时根据机械臂的第j个关节的旋转数据和预设参数计算的变换数据;Pi为第i次采集时获取的第二位置数据;Sk为转换矩阵中的第k方向的旋转矩阵;Ol为头部的第l个关节的预设参数的补偿值;Ni,l为第i次采集时根据头部的第l个关节的旋转数据和预设参数计算的变换数据;n为控制机器人移动的总次数;N为机器人的机械臂的关节总数;M为机器人的头部的关节总数。
另外,机器人包括至少两个机械臂,手部的数量与机械臂的数量相同,且手部与机械臂一一对应;根据各个关节的旋转数据和各个关节的预设参数,计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据,包括:根据目标机械臂的关节的旋转数据和目标机械臂的各个关节的预设参数,计算机器人移动后的目标手部位置相对于机器人处于零位时的目标手部位置的位置变化数据;目标手部与目标机械臂对应;根据第一位置数据与移动后的机器人的相机采集的相机坐标系下的手部的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值,包括:获取根据各个手部的位置变化数据确定的各个手部在机器人坐标系下的第一位置数据;联合各个手部的第一位置数据和移动后的机器人的相机采集的相机坐标系下的各个手部的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值。这样可以联合机器人的多个机械臂的关节参数进行手眼标定,使手眼标定的结果可以实现多机械臂之间的协同配合。
另外,相机坐标系下的手部的第二位置数据通过以下任一种方式进行采集:通过识别机器人手部添加的定位二维码采集第二位置数据;或,通过视觉定位的方式定位手部的第二位置数据。这样做可以不借助外部设备,通过机器人自身传感器确定机器人手部在相机坐标系下的第二位置数据。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施例中的机器人的手眼标定方法的流程图;
图2是根据本发明第一实施例中的机器人结构示意图;
图3是根据本发明第二实施例中的机器人的手眼标定方法的流程图;
图4是根据本发明第三实施例中的机器人的手眼标定装置的结构示意图;
图5是根据本发明第四实施例中的机器人的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。
以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施例涉及一种机器人的手眼标定方法,包括:控制机器人移动,并获取机器人的各个关节的旋转数据;其中,所述机器人的关节包括:机器人的机械臂关节和机器人的头部关节;根据各个关节的旋转数据和各个关节的预设参数,计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据;根据位置变化数据确定机器人移动后的手部在机器人坐标系下的第一位置数据;根据第一位置数据与移动后的机器人的相机采集的相机坐标系下的手部的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值;将转换矩阵和各个关节的预设参数的补偿值作为机器人的手眼标定的结果,从而利用机器人自身的参数进行手眼标定,提高了手眼标定的精度。下面对本实施例的机器人的手眼标定方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
具体流程如图2所示,第一实施例涉及一种机器人的手眼标定方法,包括:
步骤101,控制机器人移动,并获取机器人的各个关节的旋转数据。
具体地说,机器人通过各个关节连接构成,通过各个关节的旋转或平移控制机器人的移动,机器人通常包括一个头部和至少一个手部,手部和头部通过机械臂关节和头部关节连接与机器人的躯干之上,如图2所示机器人,包括一个右手21,一个左手22,右手21和左手22通过多个机械臂关节241连接与机器人躯干之上;机器人还包括设置在机器人头部上的相机23,相机23通过头部多个关节242同样连接与机器人的躯干之上。以上描述为更好的解释机器人的构造,并未对本实施例中的机器人的构造进行限制。
在需要对机器人进行手眼标定时,控制机器人的各个关节的旋转参数改变,从而实现控制手部或头部进行移动,如图2所示的机器人关节,改变机械臂关节241的旋转参数,可以改变机械臂的位置状态,从而控制机器人的左手22或右手21的位置发生改变;改变机器人的头部关节242的旋转参数,可以改变机器人头部的位置状态,从而控制处于机器人头部的相机23的位置发生改变。机器人移动后的位置需保证机器人头部的相机可以采集到机器人手部的图像,从而保证机器人手眼标定的正常标定。在机器人移动之后,对机器人的各个关节的旋转参数的变化数据进行采集作为旋转数据。
另外,在获取各个关节的旋转数据之后,还可以获取各个关节的预设参数,比如各个关节对应的补偿值,获取的补偿值可以是预先设置的,也可以是根据历史手眼标定采集的数据计算得到的,通过获取的补偿值可以对各个关节的参数进行校准,从而在各个关节由于磨损或其他原因导致参数不准确时,可以通过补偿值得到较为准确的数值。再比如,预设参数还可以是各个关节对应的DH参数,利用DH参数可以计算各个关节对应的变换数据,从而计算出机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据。
步骤102,根据各个关节的旋转数据和预设参数,计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据。
具体地说,机器人的零位是机器人操作模型的初始位置。在机器人处于零位时,机器人的各个关节的参数设置为零,通常根据机器人处于零位时机器人所处的位置设置机器人坐标系,从而更好的通过改变各个关节的参数实现对机器人的控制。
在机器人移动之后,获取机器人的各个关节的旋转数据,并利用运动学参数DH参数计算两个相邻的关节之间的位置变化数据,从而可以根据机器人的各个关节的旋转数据和预设参数计算出手部相对于机器人处于零位时手部位置的变化数据。例如,机器人的机械臂设置有七个关节,分别命名为关节1至关节7,利用关节1和关节2的参数可以计算出关节1自身坐标系转换与关节2的自身坐标系的位置关系,通过DH参数可以计算出关节1和关节2的坐标系之间的变换数据,计算出的变换数据的格式如下:
Figure BDA0002377143590000061
变换数据中的各个数值均可以利用DH参数和关节的旋转数据计算得到,用于反映两关节之间的坐标系变化关系。将关节i与关节i+1的变换数据以
Figure BDA0002377143590000062
表示,那么关节1到关节7的变换关系可以通过下述公式计算得出:
Figure BDA0002377143590000063
在知道第一关节的坐标系与机器人坐标系之间的变换关系之后,即可通过上述公式计算出任一关节与机器人坐标系之间的变换关系,也就可以知道与机械臂的末端关节相连的机器人手部与机器人坐标系的变换关系。在知道机器人手部坐标系与机器人坐标系之间的变换关系之后,可以计算出机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据。
步骤103,根据位置变化数据确定机器人移动后的手部在机器人坐标系下的第一位置数据。
具体地说,由于机器人坐标系是根据机器人处于零位时的位置进行设置的,所以在根据上述计算出的首部位置相对于机器人处于零位时的手部位置的位置变化数据之后,即可计算处机器人移动之后手部在机器人坐标系下的第一位置数据。
另外,由于机器人的手部可以设置为结构较为复杂的仿人手,仿人手的机械臂末端的零位会产生误差,所以还需要对机械臂关节末端的参数进行校准,从而使计算的手部在机器人坐标系下的第一位置数据更为准确。
第一位置数据可以根据下述公式进行计算:
Figure BDA0002377143590000071
X1为第一位置数据;h为手部相对于用于连接机械臂与手部的连接关节的第三位置数据;Qj为机械臂的第j个关节的预设参数的补偿值;Ai,j为第i次采集时根据机械臂的第j个关节的旋转数据和预设参数计算的变换数据。
步骤104,根据第一位置数据与移动后的机器人的相机采集的相机坐标系下的手部的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值。
具体地说,在获取移动后的机器人的相机采集的相机坐标系下的手部的第二位置数据时,可以通过识别机器人手部添加的定位二维码采集第二位置数据,或通过视觉定位的方式定位手部的第二位置数据。在利用定位二维码采集第二位置数据时,可以在机器人的手部添加定位使用的二维码,通过相机测量该二维码从而获取到手部在相机坐标系下的第二位置数据,如可以利用视觉基准库aprilTag采集第二位置数据。在利用视觉定位的方式定位手部的第二位置数据时,可以基于图像分类(R-CNN)与深度传感器匹配的方法获取第二位置数据。
在获取第一位置数据和第二位置数据之后,根据第一位置数据和第二位置数据计算机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值。
另外,如果机器人的头部设置有多个关节,设置于机器人头部上的相机会随着机器人头部的运动而运动,所以头部上的相机的坐标系相对于机器人的坐标系并不固定,需要通过机器人头部关节的旋转数据和预设参数对第二位置数据进行校准,从而保证手眼标定结果的准确性。
机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值通过以下方式进行计算:
Figure BDA0002377143590000072
其中,θ={O,Q,S,T},代表待计算参数;O为机器人的头部的关节的预设参数的补偿值;Q为机器人的机械臂的关节的预设参数的补偿值;S为转换矩阵中的旋转矩阵;T为转换矩阵中的平移矩阵;h=[h1h2 h3 1]为机器人手部相对于用于连接机械臂与手部的连接关节的第三位置数据;Qj为机械臂的第j个关节的预设参数的补偿值;Ai,j为第i次采集时根据机械臂的第j个关节的旋转数据和预设参数计算的变换数据,每次采集的机械臂的关节计算的变换数据以Ai=[a1 a2... a7]表示;Pi=(p1 p2 p3 1]为第i次采集时获取的所述第二位置数据;Sk为所述转换矩阵中的第k方向的旋转矩阵;Ol为所述头部的第l个关节的预设参数的补偿值;Ni,l为第i次采集时根据头部的第l个关节的旋转数据和预设参数计算的变换数据,每次采集的头部的关节计算的变换数据以Ni=[n1 m2 n3]表示;n为控制机器人移动的总次数;N为机器人的机械臂的关节总数;M为机器人的头部的关节总数。
另外,实际应用中,在机器人存在两个或以上机械臂,且每个机械臂与机器人的手部一一对应时,对这类多机械臂的机器人进行手眼标定可以综合考虑机器人的两个或以上的机械臂的关节参数及各个机械臂对应的手部进行计算,从而实现多机械臂的协同配合。以机器人包括两个机械臂为例,对手眼标定的计算进行说明,首先,将其中一只机械臂作为目标机械臂,目标机械臂的相关参数D={h,P,A,N,Q},h为机器人手部相对于用于连接机械臂与手部的连接关节的第三位置数据;P为获取的第二位置数据;A为根据目标机械臂关节的参数计算的变换数据;N为根据机器人的头部关节的参数计算的变换数据;上述变换数据通过DH参数计算得到,在上述说明中有变换数据的计算方式,为避免重复在此不再具体进行说明;Q为机器人的机械臂的关节对应的补偿值。同理得到另一只手臂的相关参数D′={h′, P′,A′, N′, Q′}。每一只手臂进行手眼标定的计算公式如下:
Figure BDA0002377143590000081
通过以下公式联合两只手臂进行手眼标定的计算:
Figure BDA0002377143590000082
本发明实施例相对于现有技术而言,控制机器人的机械臂移动,并在每次移动之后,获取机器人移动之后的机械臂的各个关节的参数和机器人的手部在相机坐标系下的第二位置数据。根据每一个关节自身参数的变化可以计算出各个关节相对于机器人零位时各个关节的相对位置,从而可以确定手部相对于零位时的手部的位置变化。由于机器人坐标系为机器人处于零位时建立的坐标系,所以可以根据手部相对于零位时的手部的位置变化数据确定机器人的手部在机器人坐标系下的第一位置数据。在得到手部在机器人坐标系下的第一位置数据,并通过机器人自身相机获取手部在相机坐标系下的第二位置数据,即可计算得到机器人坐标系和相机坐标系的转换矩阵,根据计算得到的转换矩阵可以使机器人的手部和相机互相配合工作,计算的转换矩阵可以作为手眼标定的结果,整个手眼标定过程只需借助机器人自身参数和机器人自身传感器测量的数据,无需外部设备的配合,节约了处理标定问题所需的成本,且避免了外部设备的精度对机器人手眼标定的精度的影响,提高了标定的精度。
本发明的第二实施例涉及一种机器人的手眼标定方法。具体流程如图3所述,包括:
步骤301,控制机器人移动,并获取机器人的各个关节的旋转数据;其中,机器人的关节包括:机器人的机械臂关节和机器人的头部关节。
步骤302,根据关节的旋转数据,预设参数和预设的粗略零位,计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据。具体地说,假设头部关节的数量为3个,各个关节的旋转方向分别为Y->X->Z,可以设置o={o1,o2,o3}作为头部关节的补偿值;假设机械臂的关节数量为7个,各个关节的旋转方向分别为X->Y->Z->X->Z->X->Y,可以设置q={q1,q2,...,q7}作为机械臂关节的补偿值。
步骤303,根据位置变化数据确定机器人移动后的手部在机器人坐标系下的第一位置数据。
步骤304,根据第一位置数据与移动后的机器人的相机采集的相机坐标系下的手部的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵。
步骤305,计算得到机器人关节参数的补偿值和转换矩阵的精确结果。具体地说,通过以下公式计算得到转换矩阵和各个参数的补偿值的精确结果:
Figure BDA0002377143590000091
利用上述公式,根据已知机器人的粗略参数计算得到转换矩阵和各个关节参数的补偿值的精确结果,所需的机器人的粗略参数包括:各个关节的旋转数据,各个关节旋转数据的粗略补偿值,经过标定的相机的粗略外参和内参,机器人手眼标定的粗略结果等等,通过各个关节的旋转数据和各个关节旋转数据的粗略补偿值可以得到机器人手部位置相对于所述机器人处于零位时的手部位置的位置变化数据;根据标定的相机的内参可以确定手部在相机坐标系下的位置;根据经过标定的相机的粗略外参即可确定相机在机械臂坐标系下的粗略位置。在计算过程中,通过改变机器人头部和机械臂的各个关节的旋转参数,调整机器人的机械臂和头部的位置,在每一次位置调整之后,记录机器人的粗略参数利用上述公式可以得到一个等式,多次调整机器人的机械臂和头部的位置并记录机器人的粗略参数,从而得到相应的多个等式,联合上述得到的多个等式可以求得待计算的参数的最优值,即计算得到各个关节参数的补偿值和转换矩阵的最优值,将计算的最优值作为各个关节参数的补偿值和转换矩阵的精确结果。
在上述公式中,所计算的待优化参数θ={O,Q,S,T};O=[Ry(o1) Rx(o2) Rz(o3)]表示头部旋转相关参数矩阵的补偿值;
Q=[Ry(q1) Rx(q2) Rz(q3) Rx(q4) Rz(q5) Ry(q6) Rx(q7)]表示机械臂旋转相关参数矩阵的补偿值;S=[Rz(s1) Ry(s2) Rx(s3)]表示相机旋转相关参数矩阵,也就是转换矩阵中的旋转矩阵;
Figure BDA0002377143590000101
表示相机平移相关参数矩阵,也就是转换矩阵中的平移矩阵。其中,旋转相关参数Rx(θ),Ry(θ)和Rz(θ)通过以下公式计算:
Figure BDA0002377143590000102
在计算得到各个关节参数的补偿值的精确结果之后,通过各个关节参数的补偿值的精确结果对机器人的粗略参数进行校准,例如,可以利用头部关节参数的补偿值的精确结果和相机的粗略外参,对相机的外参进行校准;利用机械臂关节参数的补偿值的精确结果和机器人的粗略零位,对机器人的零位进行校准,从而得到更为精确的相机外参和机器人零位。
步骤306,对机器人的粗略参数进行更新。具体地说,在计算得到机器人关节参数的补偿值和转换矩阵的精确结果之后,根据计算的精确结果得到如机器人相机外参和机器人零位等机器人粗略参数的精确值,根据计算得到的机器人粗略参数的精确值对机器人的参数进行更新,从而使机器人的相机外参和零位等参数更为精确,更好的实现对机器人的操控。
在本实施例中,通过补偿值校准的参数可以减小由于机器人磨损导致的关节参数不准确或零位不准确而导致的误差,通过校准后的补偿值可以使机器人各个关节的参数的数值更加准确,从而提高手眼标定的精度。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施例涉及一种机器人的手眼标定装置,如图4所示,包括:控制模块41,第一位置数据获取模块42,第二位置数据获取模块43,计算模块44;控制模块41用于控制机器人移动,并获取机器人的各个关节的旋转数据;其中,所述机器人的关节包括:机器人的机械臂关节和机器人的头部关节;第一位置数据获取模块42用于根据各个关节的旋转数据和各个关节的预设参数,计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据;根据位置变化数据确定机器人移动后的手部在机器人坐标系下的第一位置数据;第二位置数据获取模块43用于采集的相机坐标系下的手部的第二位置数据;计算模块44用于根据第一位置数据与第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值;将转换矩阵和各个关节的预设参数的补偿值作为机器人的手眼标定的结果。
不难发现,本实施例为与第一实施例相对应的***实施例,本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
另外,第一位置数据获取模块42用于在所有关节中选择一关节作为目标关节;根据目标关节的旋转数据和预设的运动学参数,确定目标关节与其相邻关节的相对位置变化数据,并将相对位置变化数据作为目标关节对应的变换数据;在确定各个关节对应的变换数据之后,根据各个关节对应的变换数据计算机器人移动后的手部位置相对于机器人处于零位时的手部位置的位置变化数据;根据位置变化数据确定机器人移动后的手部在机器人坐标系下的第一位置数据。
另外,机器人的手眼标定装置还包括:第二位置数据校准模块;第二位置数据校准模块用于根据获取的头部关节的旋转数据和头部关节的预设参数,对第二位置数据进行校准;计算模块44用于根据第一位置数据与校准后的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值。
另外,计算模块44通过以下公式计算机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值:
Figure BDA0002377143590000111
其中,θ={O,Q,S,T},代表待计算的参数;O为机器人的头部的关节的预设参数对应的补偿值;Q为机器人的机械臂的关节的预设参数对应的补偿值;S为转换矩阵中的旋转矩阵;T为转换矩阵中的平移矩阵;h为机器人手部相对于用于连接机械臂与手部的连接关节的第三位置数据;Qj为机械臂的第j个关节的预设参数对应的补偿值;Ai,j为第i次采集时根据机械臂的第j个关节的旋转数据和预设参数计算的变换数据;Pi为第i次采集时获取的第二位置数据;Sk为转换矩阵中的第k方向的旋转矩阵;Ol为头部的第l个关节的预设参数对应的补偿值;Ni,l为第i次采集时根据头部的第l个关节的旋转数据和预设参数计算的变换数据;n为控制机器人移动的总次数;N为机器人的机械臂的关节总数;M为机器人的头部的关节总数。
另外,第一位置数据获取模块42用于根据目标机械臂的关节的旋转数据和各个关节的预设参数,计算机器人移动后的目标手部位置相对于机器人处于零位时的目标手部位置的位置变化数据;目标手部与目标机械臂对应;根据各个手部的所述位置变化数据确定的各个手部在机器人坐标系下的所述第一位置数据;第二位置数据获取模块43用于采集的相机坐标系下的各个手部的第二位置数据;计算模块44用于联合各个手部的第一位置数据和移动后的机器人的相机采集的相机坐标系下的各个手部的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值。
另外,第二位置数据获取模块43用于通过识别机器人手部添加的定位二维码采集第二位置数据;或,通过视觉定位的方式定位手部的第二位置数据。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明第四实施例涉及一种机器人,如图5所示,包括至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行上述机器人的手眼标定方法。
其中,存储器502和处理器501采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器501和存储器502的各种电路连接在一起。总线还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器501。
处理器501负责管理总线和通常的处理,还可以提供各种功能,包括定时,***接口,电压调节、电源管理以及其他控制功能。而存储器502可以被用于存储处理器501在执行操作时所使用的数据。
本发明第五实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (8)

1.一种机器人的手眼标定方法,其特征在于,包括:
控制机器人移动,并获取所述机器人的各个关节的旋转数据;其中,所述机器人的关节包括:机器人的机械臂关节和机器人的头部关节;
根据所述各个关节的旋转数据和各个关节的预设参数,计算所述机器人移动后的手部位置相对于所述机器人处于零位时的手部位置的位置变化数据;
根据所述位置变化数据确定所述机器人移动后的手部在机器人坐标系下的第一位置数据;
根据所述第一位置数据与移动后的所述机器人的相机采集的相机坐标系下的所述手部的第二位置数据,计算得到所述机器人坐标系与所述相机坐标系之间的转换矩阵和所述各个关节的预设参数的补偿值;
将所述转换矩阵和所述各个关节的预设参数的补偿值作为所述机器人的手眼标定的结果;
所述相机设置在所述机器人的头部;
在所述机器人的相机采集所述相机坐标系下的所述手部的第二位置数据之后,还包括:
根据获取的所述头部关节的旋转数据和所述头部关节的预设参数,对所述第二位置数据进行校准;
所述根据所述第一位置数据与移动后的所述机器人的相机采集的相机坐标系下的所述手部的第二位置数据,计算得到所述机器人坐标系与所述相机坐标系之间的转换矩阵和所述各个关节的预设参数的补偿值,包括:
根据所述第一位置数据与所述校准后的第二位置数据,计算得到所述机器人坐标系与所述相机坐标系之间的转换矩阵和所述各个关节的预设参数的补偿值。
2.根据权利要求1所述的机器人的手眼标定方法,其特征在于,所述根据所述各个关节的旋转数据和各个关节的预设参数,计算所述机器人移动后的手部位置相对于所述机器人处于零位时的手部位置的位置变化数据,包括:
在所有关节中选择一关节作为目标关节;
根据目标关节的旋转数据和预设的运动学参数,确定目标关节与其相邻关节的相对位置变化数据,并将所述相对位置变化数据作为所述目标关节对应的变换数据;
在确定各个关节对应的变换数据之后,根据所述各个关节对应的变换数据计算所述机器人移动后的手部位置相对于所述机器人处于零位时的手部位置的位置变化数据。
3.根据权利要求1所述的机器人的手眼标定方法,其特征在于,所述机器人坐标系与所述相机坐标系之间的转换矩阵和所述各个关节的预设参数的补偿值,通过以下公式进行计算:
Figure FDA0003016004030000021
其中,θ={O,Q,S,T},代表待计算的参数;O为机器人的头部的关节的预设参数的补偿值;Q为机器人的机械臂的关节的预设参数的补偿值;S为转换矩阵中的旋转矩阵;T为转换矩阵中的平移矩阵;h为机器人手部相对于用于连接机械臂与手部的连接关节的第三位置数据;Qj为机械臂的第j个关节的预设参数的补偿值;Ai,j为第i次采集时根据机械臂的第j个关节的旋转数据和预设参数计算的变换数据;Pi为第i次采集时获取的所述第二位置数据;Sk为所述转换矩阵中的第k方向的旋转矩阵;Ol为所述头部的第l个关节的预设参数的补偿值;Ni,l为第i次采集时根据头部的第l个关节的旋转数据和预设参数计算的变换数据;n为控制机器人移动的总次数;N为机器人的机械臂的关节总数;M为机器人的头部的关节总数。
4.根据权利要求1所述的机器人的手眼标定方法,其特征在于,所述机器人包括至少两个机械臂,所述手部的数量与所述机械臂的数量相同,且所述手部与所述机械臂一一对应;
所述根据所述各个关节的旋转数据和各个关节的预设参数,计算所述机器人移动后的手部位置相对于所述机器人处于零位时的手部位置的位置变化数据,包括:
根据目标机械臂的关节的旋转数据和所述目标机械臂的各个关节的预设参数,计算所述机器人移动后的目标手部位置相对于所述机器人处于零位时的目标手部位置的位置变化数据;所述目标手部与所述目标机械臂对应;
所述根据所述第一位置数据与移动后的所述机器人的相机采集的相机坐标系下的所述手部的第二位置数据,计算得到所述机器人坐标系与所述相机坐标系之间的转换矩阵和所述各个关节的预设参数的补偿值,包括:
获取根据各个手部的所述位置变化数据确定的各个手部在机器人坐标系下的所述第一位置数据;
联合所述各个手部的所述第一位置数据和移动后的所述机器人的相机采集的相机坐标系下的所述各个手部的第二位置数据,计算得到所述机器人坐标系与所述相机坐标系之间的转换矩阵和所述各个关节的预设参数的补偿值。
5.根据权利要求1所述的机器人的手眼标定方法,其特征在于,所述相机坐标系下的所述手部的第二位置数据通过以下任一种方式进行采集:
通过识别机器人手部添加的定位二维码采集所述第二位置数据;或,
通过视觉定位的方式定位所述手部的所述第二位置数据。
6.一种机器人的手眼标定装置,其特征在于,包括:控制模块,第一位置数据获取模块,第二位置数据获取模块,计算模块;
所述控制模块用于控制机器人移动,并获取所述机器人的各个关节的旋转数据;其中,所述机器人的关节包括:机器人的机械臂关节和机器人的头部关节;
所述第一位置数据获取模块用于根据所述各个关节的旋转数据和各个关节的预设参数,计算所述机器人移动后的手部位置相对于所述机器人处于零位时的手部位置的位置变化数据;根据所述位置变化数据确定所述机器人移动后的手部在机器人坐标系下的第一位置数据;
所述第二位置数据获取模块用于采集相机坐标系下的所述手部的第二位置数据;
所述计算模块用于根据所述第一位置数据与所述第二位置数据,计算得到所述机器人坐标系与所述相机坐标系之间的转换矩阵和所述各个关节的预设参数的补偿值;将所述转换矩阵和所述各个关节的预设参数的补偿值作为所述机器人的手眼标定的结果;
相机设置在所述机器人的头部;
机器人的手眼标定装置还包括:第二位置数据校准模块;
所述第二位置数据校准模块用于根据获取的头部关节的旋转数据和头部关节的预设参数,对第二位置数据进行校准;
所述计算模块用于根据第一位置数据与校准后的第二位置数据,计算得到机器人坐标系与相机坐标系之间的转换矩阵和各个关节的预设参数的补偿值。
7.一种机器人,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至5中任一所述的机器人的手眼标定方法。
8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的机器人的手眼标定方法。
CN202010070362.3A 2020-01-21 2020-01-21 机器人的手眼标定方法、装置、机器人及存储介质 Active CN111055289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010070362.3A CN111055289B (zh) 2020-01-21 2020-01-21 机器人的手眼标定方法、装置、机器人及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010070362.3A CN111055289B (zh) 2020-01-21 2020-01-21 机器人的手眼标定方法、装置、机器人及存储介质

Publications (2)

Publication Number Publication Date
CN111055289A CN111055289A (zh) 2020-04-24
CN111055289B true CN111055289B (zh) 2021-09-28

Family

ID=70307854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010070362.3A Active CN111055289B (zh) 2020-01-21 2020-01-21 机器人的手眼标定方法、装置、机器人及存储介质

Country Status (1)

Country Link
CN (1) CN111055289B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111956329B (zh) * 2020-08-12 2022-04-26 中国科学院深圳先进技术研究院 一种双臂机器人标定方法、***、终端以及存储介质
CN112091971B (zh) * 2020-08-21 2021-10-12 季华实验室 机器人手眼标定方法、装置、电子设备和***
CN112815851A (zh) * 2021-04-19 2021-05-18 杭州蓝芯科技有限公司 手眼标定方法及装置、***、电子设备、存储介质
CN113925563A (zh) * 2021-10-13 2022-01-14 杭州柳叶刀机器人有限公司 一种打磨功率调节方法、装置、电子设备及存储介质
CN114905509B (zh) * 2022-04-28 2023-09-26 伯朗特机器人股份有限公司 手眼标定方法、机器人***及存储介质
CN114700953B (zh) * 2022-04-29 2023-09-08 华中科技大学 一种基于关节零位误差的粒子群手眼标定方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107443377A (zh) * 2017-08-10 2017-12-08 埃夫特智能装备股份有限公司 传感器‑机器人坐标系转换方法及机器人手眼标定方法
CN109278044A (zh) * 2018-09-14 2019-01-29 合肥工业大学 一种手眼标定及坐标转换方法
CN109531577A (zh) * 2018-12-30 2019-03-29 北京猎户星空科技有限公司 机械臂标定方法、装置、***、介质、控制器及机械臂
CN109773786A (zh) * 2018-12-29 2019-05-21 南京埃斯顿机器人工程有限公司 一种工业机器人平面精度标定方法
US10373336B1 (en) * 2019-03-07 2019-08-06 Mujin, Inc. Method and system for performing automatic camera calibration for robot control

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10331460A1 (de) * 2003-07-10 2005-02-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Roboter
US8250901B2 (en) * 2009-09-22 2012-08-28 GM Global Technology Operations LLC System and method for calibrating a rotary absolute position sensor
CN102982557B (zh) * 2012-11-06 2015-03-25 桂林电子科技大学 基于深度相机的空间手势姿态指令处理方法
JP7003462B2 (ja) * 2017-07-11 2022-01-20 セイコーエプソン株式会社 ロボットの制御装置、ロボットシステム、並びに、カメラの校正方法
CN107617220B (zh) * 2017-09-06 2023-12-01 滨州学院 一种智能足球机器人控制***及控制方法
CN107571260B (zh) * 2017-10-25 2021-02-26 南京阿凡达机器人科技有限公司 控制机器人抓取物体的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107443377A (zh) * 2017-08-10 2017-12-08 埃夫特智能装备股份有限公司 传感器‑机器人坐标系转换方法及机器人手眼标定方法
CN109278044A (zh) * 2018-09-14 2019-01-29 合肥工业大学 一种手眼标定及坐标转换方法
CN109773786A (zh) * 2018-12-29 2019-05-21 南京埃斯顿机器人工程有限公司 一种工业机器人平面精度标定方法
CN109531577A (zh) * 2018-12-30 2019-03-29 北京猎户星空科技有限公司 机械臂标定方法、装置、***、介质、控制器及机械臂
US10373336B1 (en) * 2019-03-07 2019-08-06 Mujin, Inc. Method and system for performing automatic camera calibration for robot control

Also Published As

Publication number Publication date
CN111055289A (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
CN111055289B (zh) 机器人的手眼标定方法、装置、机器人及存储介质
CN109373898B (zh) 一种基于三维测量点云的复杂零件位姿估计***及方法
CN110238845B (zh) 最优标定点选取和误差自测量的自动手眼标定方法及装置
EP1645373B1 (en) Robot system with vision sensor
DK2796249T3 (en) Programming robots
CN110695993B (zh) 一种柔性机械臂同步测量方法、***及装置
EP2997428B1 (en) Robot positioning
JP4021413B2 (ja) 計測装置
CN101239469B (zh) 机器人机构的校准装置及方法
CN110640747B (zh) 机器人的手眼标定方法、***、电子设备和存储介质
JP6489776B2 (ja) 座標系校正方法、ロボットシステム、プログラム及び記録媒体
CN112692828B (zh) 机器人标定方法、***、装置及存储介质
CN106457562A (zh) 用于校准机器人的方法和机器人***
CN113910219A (zh) 运动臂***以及控制方法
CN109493389B (zh) 一种基于深度学习的相机标定方法及***
CN114523475B (zh) 一种机器人装配***误差自动标定与补偿装置及方法
CN111890356A (zh) 机械臂坐标系和相机坐标系标定方法、装置、设备及介质
CN114654466B (zh) 自动标定方法、装置、***、电子设备及存储介质
US11267124B2 (en) System and method for calibrating robot
CN115816448A (zh) 基于光学定位仪的机械臂标定方法、装置、设备及介质
JPH0445841B2 (zh)
CN111768383A (zh) 立体靶标及利用其恢复视觉传感器工作功能的方法
JP2001191285A (ja) ロボットシステムおよびその利用方法
CN114800520B (zh) 高精度的手眼标定方法
CN117506897A (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