用于确定机器人坐标系与工件坐标系间关系的方法及***
技术领域
本发明涉及机器人定位技术领域,具体地涉及一种用于确定机器人坐标系与操作对象的工件坐标系之间的关系的方法及***。
背景技术
随着机器人技术的发展,无论是在工业领域、服务领域或者医疗领域都有着越来越多的应用。通过对机器人编程利用机器人抓取末端工具对其工作范围内的对象进行操作能极大的减轻人员负担、提高工作效率、实现高精度的精细作业。
机器人坐标系为确定机器人的位置和姿态而在机器人或空间上进行的位置指标***。坐标系包含:基坐标系(Base Coordinate System)、大地坐标系(World CoordinateSystem)、工具坐标系(Tool Coordinate System)、工件坐标系(Work Object CoordinateSystem)。
对机器人编程的一种方法是在机器人基坐标系中进行编程,由于机器人一般来说自由度多,对于编程人员来说无法很好的理解机器人与操作对象的关系,此外当操作对象与机器人底座的位置关系发生变化时程序需要重新进行编写。对机器人编程的另一种方法是在操作对象所在的坐标系(工件坐标系)中进行编程,这样编程人员能很好的理解机器人与操作对象的关系,此外当操作对象与机器人底座的位置关系发生变化时所编写的程序进行简单的坐标变化后就能很容易重新使用,另外通过离线生产的程序也能更容易且精确的被应用并能很好的对机器人对操作对象进行的相应操作进行准确仿真。在操作对象所在坐标系中进行编程的关键之一是如何快速、便捷、准确的确定***作对象所在的坐标系相对于机器人底座坐标系之间的关系。
现有技术中,用于确定操作对象所在坐标系(工件坐标系)与机器人底座坐标系(基坐标系)之间关系常利用外部先进的标定设备进行标定,例如CCD相机和激光跟踪仪或红外多目定位仪等。这些标定方法所得的变换矩阵较为精确,可靠性高,但是标定过程较为繁琐,耗时较长,正是由于使用外部先进设备,因此这些标定方法具有很强的条件性和依赖性,再者这些标定方法所用的先进仪器都非常昂贵,标定代价高不利于广泛使用。
专利CN102015221A提出了“用于明确机器人坐标系与位于机器人工作范围内的本地坐标系之间的关系的方法和***”,该专利为实现在操作对象所在的坐标系中的方法进行编程,通过一个固定在机械臂上的测量球触碰三个分别具有三个非平行表面的凹形物体,实现操作对象所在坐标系与机器人底座坐标系之间关系的确定。该方法的准确性主要取决于测量球与凹形物体的三个非平行表面同时接触,且只存在一个测量球与三个表面的接触位置,对于三个非平行表面的倾斜角度有很高的要求。若倾斜角度太陡,则测量变得不确定;若倾斜角度太平,则难以找到测量球与三个非平行表面接触的位置;即便倾斜角度适中,在生产中大量重复进行此过程,也会导致凹形物体的磨损,降低准确性。
发明内容
为了解决上述的技术问题,本发明目的是:提供了一种用于确定机器人坐标系与工件坐标系间关系的方法及***,该方法可以快速确定机器人坐标系与工件坐标系之间的关系,操作简单,准确性高,并且测量仪器价格低廉。
本发明的技术方案是:
一种用于确定机器人坐标系与工件坐标系间关系的方法,包括以下步骤:
S01:将第一测量物体安装于机器人,确定所述第一测量物体相对于所述机器人的位姿,所述第一测量物体为具有圆柱面的物体;
S02:将至少三个第二测量物体放置在所述机器人的工作范围内,所述第二测量物体为具有成形为球体的突出部分的凸形物体,任意三个第二测量物体不在同一条直线上;
S03:使所述机器人运动,直到所述第一测量物体的圆柱面从至少四个不同的方向与第二测量物体的球体表面机械接触;
S04:读取当所述圆柱面与所述第二测量物体的球体表面机械接触时所述机器人的位姿;
S05:对另外的所述第二测量物体重复所述步骤S03-S04,得到每个第二测量物体在机器人坐标系中的球心坐标,根据位于工件坐标系中的球心坐标,及在机器人坐标系中的球心坐标,计算出工件坐标系与机器人坐标系之间的关系。
优选的技术方案中,所述步骤S05中得到第二测量物体在机器人坐标系中的球心坐标的方法包括:
S51:根据第一测量物体与第二测量物体机械接触时机器人当前的位姿信息计算出保持当前姿态沿第一测量物体圆柱面的轴线前进一定距离的新的位置;
S52:根据两位置的坐标计算出所述第一测量物体圆柱面的轴线当前所在的直线方向向量,得到第一测量物体圆柱面的轴线当前的直线方程;
S53:重复步骤S51-S52,求出另外至少3个方向的直线方程;
S54:根据第一测量物体圆柱面至少四次与第二测量物体的球体表面接触时,圆柱面轴线与球面球心之间的距离的关系得到第二测量物体在机器人坐标系中的球心坐标。
本发明还公开了一种用于确定机器人坐标系与工件坐标系间关系的***,包括:
将第一测量物体安装于机器人,确定所述第一测量物体相对于所述机器人的位姿,所述第一测量物体为具有圆柱面的物体;
将至少三个第二测量物体放置在所述机器人的工作范围内,所述第二测量物体为具有成形为球体的突出部分的凸形物体,所有第二测量物体不在同一条直线上;
机器人驱动装置,使所述机器人运动,直到所述第一测量物体的圆柱面从至少四个不同的方向与第二测量物体的球体表面机械接触;
数据记录与处理单元,记录当所述圆柱面与所述第二测量物体的球体表面机械接触时所述机器人的位姿;计算得到每个第二测量物体在机器人坐标系中的球心坐标,根据位于工件坐标系中的球心坐标,及在机器人坐标系中的球心坐标,计算出工件坐标系与机器人坐标系之间的关系。
优选的技术方案中,所述数据记录与处理单元计算得到第二测量物体在机器人坐标系中的球心坐标的方法包括:
S51:根据第一测量物体与第二测量物体机械接触时机器人当前的位姿信息计算出保持当前姿态沿第一测量物体圆柱面的轴线前进一定距离的新的位置;
S52:根据两位置的坐标计算出所述第一测量物体圆柱面的轴线当前所在的直线方向向量,得到第一测量物体圆柱面的轴线当前的直线方程;
S53:重复步骤S51-S52,求出另外至少3个方向的直线方程;
S54:根据第一测量物体圆柱面至少四次与第二测量物体的球体表面接触时,圆柱面轴线与球面球心之间的距离的关系得到第二测量物体在机器人坐标系中的球心坐标。
优选的技术方案中,所述第二测量物体设置在底座上,所述第二测量物体的底部连接传感器,所述数据记录与处理单元与机器人及传感器进行实时通讯,获取机器人的运动信息及传感器的信号。
与现有技术相比,本发明的优点是:
该方法可以快速确定工件坐标系与机器人坐标系之间的关系,操作简单,准确性高。并且测量仪器价格低廉,并以此为基础可以应用于多个机器人之间的坐标***或机器人与其他外部设备的坐标***中,具有广泛的应用前景。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明测量球的安装结构示意图;
图2为本发明用于确定机器人坐标系与工件坐标系间关系的方法流程图;
图3为测量示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
一种用于确定机器人坐标系与工件坐标系间关系的***,包括:
将第一测量物体安装于机器人末端,第一测量物体为具有圆柱面的物体,例如一根圆柱体的棒,这里称为测量棒,下面以测量棒为例进行说明,测量棒具有一定的刚度,材质不限,确定测量棒相对于机器人的位置,获得测量棒在机器人中的工具坐标系。
将至少三个第二测量物体设置在机器人的工作范围内,第二测量物体为具有成形为球体的突出部分的凸形物体,例如球,这里称为测量球,具有一定的刚度,材质不限,任意三个测量球不在同一条直线上。如图1所示,图中有4个测量球10,测量球10设置在底座20上,测量球10的底部连接传感器30,数据记录与处理单元与机器人及传感器30进行实时通讯,获取机器人的运动信息及传感器30的信号。如图1所示,底座20为垂直的支架,便于标识确定工件坐标系。
机器人驱动装置,驱动机器人动作,使机器人运动直到测量棒的圆柱面从至少四个不同的方向与每个测量球10的球体表面机械接触,如图3所示。
数据记录与处理单元,获取两个坐标系之间的公共点,通过两个坐标系之间的公共点计算出两个坐标系之间的坐标转换矩阵。记录当测量棒圆柱面与测量球表面机械接触时机器人的位姿;计算得到每个测量球在机器人坐标系中的球心坐标,根据位于操作对象坐标系(工件坐标系)中的球心坐标,及在机器人坐标系中的球心坐标,计算出工件坐标系与机器人坐标系之间的关系。
数据记录与处理单元计算得到测量棒在机器人坐标系中的球心坐标的方法包括:
S51:根据测量棒第一次与测量球机械接触时机器人当前的位姿信息计算出保持当前姿态沿测量棒轴线前进一定距离的新的位置;
S52:根据两位置的坐标计算出所述测量棒轴线当前所在的直线方向向量,得到测量棒的轴线当前的直线方程;
S53:重复步骤S51-S52,求出另外至少3个方向的直线方程;
S54:根据第一测量物体圆柱面至少四次与第二测量物体的球体表面接触时,圆柱面轴线与球面球心之间的距离的关系得到第二测量物体在机器人坐标系中的球心坐标。
四次与测量球的球体表面接触时,测量棒圆柱面轴线与球面球心之间的距离是相等且为球的半径加上圆棒的半径。
如图2所示,具体的测量过程包括:将测量棒安装于机器人末端并校准测量棒相对于机器人的位置,获得测量棒在机器人中的工具坐标系。使所有测量球处于机器人工作范围内。对于每个测量球,驱动机器人使测量棒的圆柱面从至少四个不同的方向与其机械接触,以获取测量棒与测量球四次接触时机器人的位姿。数据记录与处理单元始终实时与机器人及传感器进行通讯,获取机器人的运动信息及传感器的信号,在测量棒圆柱面与测量球机械接触的瞬时,传感器会发出信号,此时数据记录与处理单元记录下机器人的位姿。按上述测量过程获取至少四次测量棒与同一测量球机械接触时机器人的位姿(XT1、YT1、ZT1、UT1、VT1、WT1)、(XT2、YT2、ZT2、UT2、VT2、WT2)、(XT3、YT3、ZT3、UT3、VT3、WT3)、(XT4、YT4、ZT4、UT4、VT4、WT4)后,数据记录与处理单元加载的算法对获取的数据进行处理得到测量球的位置。通过两个坐标系之间的公共点计算出两个坐标系之间的坐标转换矩阵。
下面以具体计算步骤进行说明:
根据测量棒第一次与测量球机械接触时,机器人当前的位姿信息(XT1、YT1、ZT1、UT1、VT1、WT1)计算出保持当前姿态测量棒沿测量棒轴线前进L(非0值)距离的新的位置(Xs1、Ys1、Zs1);
根据两位置的坐标(XT1、YT1、ZT1)、(Xs1、Ys1、Zs1)计算出当前测量棒轴线所在的直线方向向量(l1、m1、n1);
由此可求得该测量棒轴线当前在机器人坐标系中的直线方程为:
其中,(X1、Y1、Z1)是测量棒轴线所在第一直线上的点。
同样的方式求出另外至少3个方向(方向2、方向3、方向4)的直线方程为:
其中,(X2、Y2、Z2)是测量棒轴线所在第二直线上的点,(X3、Y3、Z3)是测量棒轴线所在第三直线上的点,(X4、Y4、Z4)是测量棒轴线所在第四直线上的点。
判断所得的直线是否相互两两异面。如不异面,重新测量直至获得至少四条相互两两异面的直线。
假设小球1的球心坐标为:(X01,YO1,ZO1),假设过球心且垂直于直线1的线与直线1的交点坐标为:(Xq1,Yq1,Zq1);
假设直线1的直线方程为:
该交点也位于直线1上,则交点的坐标为:Xq1=l1*t+Xs1;
Yq1=m1*t+Ys1;
Zq1=n1*t+Zs1。
假设(X、Y、Z)是过球心且垂直于直线1的平面上的点,则该平面方程为:
l1*(X-Xo1)+m1*(Y-Yo1)+n1*(Z-Zo1)=0
过球心且垂直于直线1的线与直线1的交点位于该平面上,故将交点带入上式得:
那么,球心到直线1的距离
其中,R是球的半径加上圆棒的半径,同理,
联立(1),(2),(3),(4)式,解该方程组可得:
小球1在机器人底座坐标系(基坐标系)中的球心坐标(Xo1,Yo1,Zo1);
同理可测算出其他测量球在机器人底座坐标系中的球心坐标。
根据位于操作对象坐标系(以测量球建立坐标系的工件坐标系)中的测量球的球心坐标,及测量球在机器人底座坐标系中的球心坐标即可计算出工件坐标系与机器人坐标系之间的关系。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。