手眼标定数据采集方法、装置、电子设备及存储介质转让专利

申请号 : CN202111257383.7

文献号 : CN113696188B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许金鹏温志庆周德成

申请人 : 季华实验室

摘要 :

本申请涉及手眼标定技术领域,提供了一种手眼标定数据采集方法、装置、电子设备及存储介质,通过向机器人发送第一控制指令,使机器人携带相机移动至标定板中心的正上方;获取机器人携带相机移动至标定板中心的正上方时相机与标定板中心之间的第一距离和机器人的中心位姿数据;获取至少一个分层圆的高度数据;根据第一距离和高度数据计算各分层圆的半径;根据分层圆的半径获取分层圆圆周上的圆弧轨迹上的多个轨迹点的位姿数据;根据轨迹点的位姿数据向机器人发送第二控制指令,使机器人沿圆弧轨迹移动并采集标定板的图像和机器人的位姿数据,从而实现手眼标定轨迹的生成,节约了大量时间,且方便预测机器人在圆弧轨迹上的位姿。

权利要求 :

1.一种手眼标定数据采集方法,用于手眼标定系统,其特征在于,包括以下步骤:A1.向机器人发送第一控制指令,使所述机器人携带相机移动至标定板中心的上方;所述相机设置在所述机器人的端部;

A2.获取所述机器人携带相机移动至标定板中心的上方时所述相机与所述标定板中心之间的第一距离以及所述机器人的中心位姿数据;

A3.获取至少一个分层圆的高度数据;

A4.根据所述第一距离和所述高度数据计算各所述分层圆的半径;

A5.根据所述分层圆的半径获取所述分层圆圆周上的圆弧轨迹上的多个轨迹点的位姿数据;

A6.根据所述轨迹点的位姿数据向所述机器人发送第二控制指令,使所述机器人沿所述圆弧轨迹移动,并采集所述标定板的图像和所述机器人的位姿数据;

所述步骤A5包括:

A501.根据以下公式计算各轨迹点的位姿数据中的位置坐标:;

其中,step为预设的角度的增加步长; 为所述分层圆的半径;R为所述第一距离;

为所述分层圆的高度数据; 分别为第i个轨迹点的位姿数据中的x轴坐标值、y轴坐标值和z轴坐标值,其中,当i=1时, 为所述机器人在所述标定板中心的上方的中心位姿数据中的x轴坐标值和y轴坐标值, 为所述机器人在所述标定板中心的上方的中心位姿数据中的z轴坐标值; 为第i个轨迹点的角度,其中,当i=1时, 为起始角度;

A502.根据以下公式计算各轨迹点的角度插值比例:;

其中,为第i个轨迹点的角度插值比例, 为第i个轨迹点的角度, 为姿态插补的步长,step为预设的角度的增加步长, 为起始角度;

A503.根据以下公式计算各轨迹点的姿态角度:;

其中, 为圆弧的起始姿态, 为球形插补函数, 为圆弧的终止姿态,为第i个轨迹点的角度插值比例,   为第i个轨迹点的姿态角度。

2.根据权利要求1所述的手眼标定数据采集方法,其特征在于,所述步骤A1包括:A101.确定机器人基坐标系的水平平面的坐标增量与所述相机的图像像素坐标增量之间的映射关系;

A102.获取所述相机在当前位置采集的第一图像;

A103.获取所述标定板中心在所述第一图像中的第一像素坐标数据与所述第一图像的中心之间的像素差值;

A104.根据所述像素差值和所述映射关系计算所述机器人的x坐标偏移量和y坐标偏移量;

A105.根据所述x坐标偏移量和所述y坐标偏移量生成所述第一控制指令并发送至所述机器人,使所述机器人携带相机移动至标定板中心的上方。

3.根据权利要求2所述的手眼标定数据采集方法,其特征在于,所述步骤A101包括:S1.向所述机器人发送第三控制指令,使所述机器人以第一步长沿x轴移动n1次,并在每次移动后获取所述相机采集的第二图像,提取所述标定板中心在所述第二图像中的第二像素坐标增量数据;n1为预设的整数值,且n1>1;

S2.根据多个所述第二像素坐标增量数据计算第二像素坐标增量均值;

S3.向所述机器人发送第四控制指令,使所述机器人以第二步长沿y轴移动n2次,并在每次移动后获取所述相机采集的第三图像,提取所述标定板中心在所述第三图像中的第三像素坐标增量数据;n2为预设的整数值,且n2>1;

S4.根据多个所述第三像素坐标增量数据计算第三像素坐标增量均值;

S5.将所述第二像素坐标增量均值和所述第三像素坐标增量均值代入以下公式,计算得到转换矩阵T和常数b:

其中, 为所述机器人基坐标系的水平平面的坐标增量矩阵,所述机器人基坐标系的水平平面的坐标增量矩阵包括所述第一步长和所述第二步长, 为所述相机的图像像素坐标增量矩阵,所述图像像素坐标增量矩阵包括所述第二像素坐标增量均值和所述第三像素坐标增量均值,T为转换矩阵,b为常数。

4.根据权利要求3所述的手眼标定数据采集方法,其特征在于,所述步骤S5之后还包括:

S6.获取第三步长和指定移动方向信息;

S7.根据所述第三步长和指定移动方向信息向所述机器人发送第五控制指令,使所述机器人以所述第三步长沿所述指定移动方向移动n3次;n3为预设的整数值,且n3>1;

S8.在每次移动后获取所述相机采集的第四图像,提取所述标定板中心在所述第四图像中的第四像素坐标增量数据;

S9.根据多个所述第四像素坐标增量数据计算第四像素坐标增量平均值;

S10.根据所述第三步长和指定移动方向信息计算所述第三步长在x轴方向的分量和在y轴方向的分量;

S11.根据所述第四像素坐标增量平均值、所述第三步长在x轴方向的分量和在y轴方向的分量验证所述转换矩阵T和所述常数b的正确性。

5.根据权利要求1所述的手眼标定数据采集方法,其特征在于,所述步骤A4中,根据以下公式计算所述分层圆的半径:;

其中, 为所述分层圆的半径,R为所述第一距离, 为所述分层圆的高度数据。

6.一种手眼标定数据采集装置,用于手眼标定,其特征在于,所述装置包括:第一控制模块,用于向机器人发送第一控制指令,使所述机器人携带相机移动至标定板中心的上方;所述相机设置在所述机器人的端部;

第一获取模块,用于获取所述机器人携带相机移动至标定板中心的上方时所述相机与所述标定板中心之间的第一距离和所述机器人的中心位姿数据;

第二获取模块,用于获取至少一个分层圆的高度数据;

第一计算模块,用于根据所述第一距离和所述高度数据计算各所述分层圆的半径;

第三获取模块,根据所述分层圆的半径获取所述分层圆圆周上的圆弧轨迹上的多个轨迹点的位姿数据;

第二控制模块,用于根据所述轨迹点的位姿数据向所述机器人发送第二控制指令,使所述机器人沿所述圆弧轨迹移动并采集所述标定板的图像和所述机器人的位姿数据;

第三获取模块在根据所述分层圆的半径获取所述分层圆圆周上的圆弧轨迹上的多个轨迹点的位姿数据的时候,执行以下步骤:A501.根据以下公式计算各轨迹点的位姿数据中的位置坐标:;

其中,step为预设的角度的增加步长; 为所述分层圆的半径;R为所述第一距离;

为所述分层圆的高度数据; 分别为第i个轨迹点的位姿数据中的x轴坐标值、y轴坐标值和z轴坐标值,其中,当i=1时, 为所述机器人在所述标定板中心的上方的中心位姿数据中的x轴坐标值和y轴坐标值, 为所述机器人在所述标定板中心的上方的中心位姿数据中的z轴坐标值; 为第i个轨迹点的角度,其中,当i=1时, 为起始角度;

A502.根据以下公式计算各轨迹点的角度插值比例:;

其中,为第i个轨迹点的角度插值比例, 为第i个轨迹点的角度, 为姿态插补的步长,step为预设的角度的增加步长, 为起始角度;

A503.根据以下公式计算各轨迹点的姿态角度:;

其中, 为圆弧的起始姿态, 为球形插补函数, 为圆弧的终止姿态,为第i个轨迹点的角度插值比例,   为第i个轨迹点的姿态角度。

7.根据权利要求6所述的手眼标定数据采集装置,其特征在于,所述第一控制模块用于在向机器人发送第一控制指令,使所述机器人携带相机移动至标定板中心的上方的时候,执行:

确定机器人基坐标系的水平平面的坐标增量与所述相机的图像像素坐标增量之间的映射关系;

获取所述相机在当前位置采集的第一图像;

获取所述标定板中心在所述第一图像中的第一像素坐标数据与所述第一图像的中心之间的像素差值;

根据所述像素差值和所述映射关系计算所述机器人的x坐标偏移量和y坐标偏移量;

根据所述x坐标偏移量和所述y坐标偏移量生成所述第一控制指令并发送至所述机器人,使所述机器人携带相机移动至标定板中心的上方。

8.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1‑5任一项所述手眼标定数据采集方法中的步骤。

9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1‑5任一项所述手眼标定数据采集方法中的步骤。

说明书 :

手眼标定数据采集方法、装置、电子设备及存储介质

技术领域

[0001] 本申请涉及手眼标定技术领域,具体而言,涉及一种手眼标定数据采集方法、装置、电子设备及存储介质。

背景技术

[0002] 现有的手眼标定方法,是将标定板放在相机正下方,然后人手示教机器人依次移动到多个位置点处,在示教的过程中既要保证相机能够看到标定板,还需要保证相机拍摄
的相邻两帧的图片位置姿态变化不能太小或太大;且相机拍摄前几帧图片时,必须示教机
器人做平移运动。
[0003] 按照上述流程做,需要耗费大量时间和人力资源才能完成手眼标定的计算。
[0004] 针对上述问题,目前尚未有有效的技术解决方案。

发明内容

[0005] 本申请的目的在于提供一种手眼标定数据采集方法、装置、电子设备及存储介质,解决了现有的人手示教手眼标定机器人走点方法需要耗费大量时间的问题。
[0006] 第一方面,本申请提供了一种手眼标定数据采集方法,用于手眼标定系统,其中,包括以下步骤:
[0007] A1.向机器人发送第一控制指令,使所述机器人携带相机移动至标定板中心的上方;所述相机设置在所述机器人的端部;
[0008] A2.获取所述机器人携带相机移动至标定板中心的上方时所述相机与所述标定板中心之间的第一距离以及所述机器人的中心位姿数据;
[0009] A3.获取至少一个分层圆的高度数据;
[0010] A4.根据所述第一距离和所述高度数据计算各所述分层圆的半径;
[0011] A5.根据所述分层圆的半径获取所述分层圆圆周上的圆弧轨迹上的多个轨迹点的位姿数据;
[0012] A6.根据所述轨迹点的位姿数据向所述机器人发送第二控制指令,使所述机器人沿所述圆弧轨迹移动,并采集所述标定板的图像和所述机器人的位姿数据。
[0013] 本申请提供的手眼标定数据采集方法,不仅可以全自动生成手眼标定轨迹,节约了大量时间和人力资源,还可以实时采集机器人的位姿数据,方便预测机器人在圆弧轨迹
上的位姿。
[0014] 可选地,在本申请所述的手眼标定数据采集方法中,所述步骤A1包括:
[0015] A101.确定机器人基坐标系的水平平面的坐标增量与所述相机的图像像素坐标增量之间的映射关系;
[0016] A102.获取所述相机在当前位置采集的第一图像;
[0017] A103.获取所述标定板中心在所述第一图像中的第一像素坐标数据与所述第一图像的中心之间的像素差值;
[0018] A104.根据所述像素差值和所述映射关系计算所述机器人的x坐标偏移量和y坐标偏移量;
[0019] A105.根据所述x坐标偏移量和所述y坐标偏移量生成所述第一控制指令并发送至所述机器人,使所述机器人携带相机移动至标定板中心的上方。
[0020] 通过这种方式,可以使相机到标定板中心的距离保持一定,提高精确性,方便后续圆弧轨迹的生成。
[0021] 可选地,在本申请所述的手眼标定数据采集方法中,所述步骤A101包括:
[0022] S1.向所述机器人发送第三控制指令,使所述机器人以第一步长沿x轴移动n1次,并在每次移动后获取所述相机采集的第二图像,提取所述标定板中心在所述第二图像中的
第二像素坐标增量数据;n1为预设的整数值,且n1>1;
[0023] S2.根据多个所述第二像素坐标增量数据计算第二像素坐标增量均值;
[0024] S3.向所述机器人发送第四控制指令,使所述机器人以第二步长沿y轴移动n2次,并在每次移动后获取所述相机采集的第三图像,提取所述标定板中心在所述第三图像中的
第三像素坐标增量数据;n2为预设的整数值,且n2>1;
[0025] S4.根据多个所述第三像素坐标增量数据计算第三像素坐标增量均值;
[0026] S5.将所述第二像素坐标增量均值和所述第三像素坐标增量均值代入以下公式,计算得到转换矩阵T和常数b:
[0027] ;
[0028] 其中, 为所述机器人基坐标系的水平平面的坐标增量矩阵,所述机器人基坐标系的水平平面的坐标增量矩阵包括所述第一步长和所述第二步长, 为所述相机的
图像像素坐标增量矩阵,所述图像像素坐标增量矩阵包括所述第二像素坐标增量均值和所
述第三像素坐标增量均值,T为转换矩阵,b为常数。
[0029] 通过这种方式,可以计算出机器人基坐标系的水平平面的坐标增量与相机的图像像素坐标增量之间的映射关系,实现机器人基坐标系的水平平面的坐标增量与相机的图像
像素坐标增量之间的互相转换。
[0030] 可选地,在本申请所述的手眼标定数据采集方法中,所述步骤S5之后还包括:
[0031] S6.获取第三步长和指定移动方向信息;
[0032] S7.根据所述第三步长和指定移动方向信息向所述机器人发送第五控制指令,使所述机器人以所述第三步长沿所述指定移动方向移动n3次;n3为预设的整数值,且n3>1;
[0033] S8.在每次移动后获取所述相机采集的第四图像,提取所述标定板中心在所述第四图像中的第四像素坐标增量数据;
[0034] S9.根据多个所述第四像素坐标增量数据计算第四像素坐标增量平均值;
[0035] S10.根据所述第三步长和指定移动方向信息计算所述第三步长在x轴方向的分量和在y轴方向的分量;
[0036] S11.根据所述第四像素坐标增量平均值、所述第三步长在x轴方向的分量和在y轴方向的分量验证所述转换矩阵T和所述常数b的正确性。
[0037] 通过这种方式,可以提高计算得出的转换矩阵T和常数b的准确性。
[0038] 可选地,在本申请所述的手眼标定数据采集方法中,所述步骤A4中,根据以下公式计算所述分层圆的半径:
[0039] ;
[0040] 其中, 为所述分层圆的半径,R为所述第一距离, 为所述分层圆的高度数据。
[0041] 可选地,在本申请所述的手眼标定数据采集方法中,所述步骤A5包括:
[0042] A501.根据以下公式计算各轨迹点的位姿数据中的位置坐标:
[0043] ;
[0044] 其中,step为预设的角度的增加步长; 为所述分层圆的半径;R为所述第一距离; 为所述分层圆的高度数据; 分别为第i个轨迹点的位姿数据中的x轴坐标
值、y轴坐标值和z轴坐标值,其中,当i=1时, 为所述机器人在所述标定板中心的
上方的中心位姿数据中的x轴坐标值和y轴坐标值, 为所述机器人在所述标定板中心的上
方的中心位姿数据中的z轴坐标值; 为第i个轨迹点的角度,其中,当i=1时, 为起始角
度;
[0045] A502.根据以下公式计算各轨迹点的角度插值比例:
[0046] ;
[0047] 其中,为第i个轨迹点的角度插值比例, 为第i个轨迹点的的角度, 姿态插补的步长,step为预设的角度的增加步长, 为起始角度;
[0048] A503.根据以下公式计算各轨迹点的姿态角度:
[0049] ;
[0050] 其中, 为圆弧的起始姿态, 为球形插补函数, 为圆弧的终止姿态,为第i个轨迹点的角度插值比例,   为第i个轨迹点的姿态角度。
[0051] 第二方面,本申请提供一种手眼标定数据采集装置,用于手眼标定,所述装置包括:
[0052] 第一控制模块,用于向机器人发送第一控制指令,使所述机器人携带相机移动至标定板中心的上方;所述相机设置在所述机器人的端部;
[0053] 第一获取模块,用于获取所述机器人携带相机移动至标定板中心的上方时所述相机与所述标定板中心之间的第一距离和所述机器人的中心位姿数据;
[0054] 第二获取模块,用于获取至少一个分层圆的高度数据;
[0055] 第一计算模块,用于根据所述第一距离和所述高度数据计算各所述分层圆的半径;
[0056] 第三获取模块,根据所述分层圆的半径获取所述分层圆圆周上的圆弧轨迹上的多个轨迹点的位姿数据;
[0057] 第二控制模块,用于根据所述轨迹点的位姿数据向所述机器人发送第二控制指令,使所述机器人沿所述圆弧轨迹移动并采集所述标定板的图像和所述机器人的位姿数
据。
[0058] 可选地,在本申请所述的手眼标定数据采集装置中,第一控制模块用于在向机器人发送第一控制指令,使所述机器人携带相机移动至标定板中心的上方的时候,执行:
[0059] 确定机器人基坐标系的水平平面的坐标增量与所述相机的图像像素坐标增量之间的映射关系;
[0060] 获取所述相机在当前位置采集的第一图像;
[0061] 获取所述标定板中心在所述第一图像中的第一像素坐标数据与所述第一图像的中心之间的像素差值;
[0062] 根据所述像素差值和所述映射关系计算所述机器人的x坐标偏移量和y坐标偏移量;
[0063] 根据所述x坐标偏移量和所述y坐标偏移量生成所述第一控制指令并发送至所述机器人,使所述机器人携带相机移动至标定板中心的上方。
[0064] 本申请提供的手眼标定数据采集装置,不仅可以全自动生成手眼标定轨迹,节约了大量时间和人力资源,还可以实时采集机器人的位姿数据,方便预测机器人在圆弧轨迹
上的位姿。
[0065] 第三方面,本申请提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面
提供的所述方法中的步骤。
[0066] 第四方面,本申请提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
[0067] 由上可知,本申请提供的手眼标定数据采集方法、装置、电子设备及存储介质,通过向机器人发送第一控制指令,使机器人携带相机移动至标定板中心的上方;获取机器人
携带相机移动至标定板中心的上方时相机与标定板中心之间的第一距离和机器人的中心
位姿数据;获取至少一个分层圆的高度数据;根据第一距离和高度数据计算各分层圆的半
径;根据分层圆的半径获取分层圆圆周上的圆弧轨迹上的多个轨迹点的位姿数据;根据轨
迹点的位姿数据向机器人发送第二控制指令,使机器人沿圆弧轨迹移动并采集标定板的图
像和机器人的位姿数据,从而实现手眼标定轨迹的生成,不仅可以全自动生成手眼标定轨
迹,节约了大量时间和人力资源,还可以实时采集机器人的位姿数据,方便预测机器人在圆
弧轨迹上的位姿。
[0068] 本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请了解。本申请的目的和其他优点可通过在所写的说明书、权
利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

[0069] 图1为本申请提供的手眼标定数据采集方法的一种流程图。
[0070] 图2为本申请提供的手眼标定数据采集装置的一种结构示意图。
[0071] 图3为本申请提供的电子设备的结构示意图。
[0072] 图4为本申请提供的一种机器人携带相机沿分层圆的圆弧轨迹移动的简图。
[0073] 标号说明:
[0074] 100、机器人;200、相机;300、分层圆;400、标定板;201、第一控制模块;202、第一获取模块;203、第二获取模块;204、第一计算模块;205、第三获取模块;206、第二控制模块;
301、处理器;302、存储器;303、通信总线,3、电子设备。

具体实施方式

[0075] 下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在
此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因
此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的
范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做
出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0076] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的
描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0077] 其中,图4是本申请提供的一个机器人100沿分层圆300移动的示意图,以标定板400中心和相机200之间的距离为半径画一个球面,以xy平面横切该球面得到的分层圆300
为纬度圆(图4所展示的分层圆300为纬度圆),以xz平面或yz平面竖切该球面得到的分层圆
300为经度圆。
[0078] 请参照图1,图1是本申请一些实施方式中的手眼标定数据采集方法的流程图,用于手眼标定系统,该方法包括以下步骤:
[0079] A1.向机器人100发送第一控制指令,使机器人100携带相机200移动至标定板400中心的上方;相机200设置在机器人100的端部;
[0080] A2.获取机器人100携带相机200移动至标定板400中心的上方时相机200与标定板400中心之间的第一距离以及机器人100的中心位姿数据;
[0081] A3.获取至少一个分层圆300的高度数据;
[0082] A4.根据第一距离和高度数据计算各分层圆300的半径;
[0083] A5.根据分层圆300的半径获取分层圆300圆周上的圆弧轨迹上的多个轨迹点的位姿数据;
[0084] A6.根据轨迹点的位姿数据向机器人100发送第二控制指令,使机器人100沿圆弧轨迹移动并采集标定板400的图像和机器人100的位姿数据。
[0085] 其中,向机器人100发送第一控制指令和第二控制指令的设备是机器人控制器,从而该方法应用于该机器人控制器,该机器人控制器可以包括执行自动标定算法的芯片,例
如人工智能(artificial intelligence,AI)芯片、图形处理器(graphics processing 
unit,GPU)芯片、中央处理器(central processing unit,CPU)等芯片,也可以是包括其中
多种芯片构成的系统。
[0086] 其中,在实际应用中,可把标定板400设置在一个预设的固定位置,并预先设置一个位于标定板400中心的上方的初始位置;从而可以获取该初始位置的位置数据,根据该初
始位置的位置数据生成第一控制指令发送至机器人100。还可以采用人工示教的方式,使机
器人100携带相机200移动到标定板400中心上方。通过这种方式,方便后续步骤中获取机器
人100在标定板400中心的上方的中心位姿数据和标定板400中心的第一像素坐标数据。
[0087] 在一些实施方式中,步骤A1包括:
[0088] A101.确定机器人基坐标系的水平平面的坐标增量与相机200的图像像素坐标增量之间的映射关系;
[0089] A102.获取相机200在当前位置采集的第一图像;
[0090] A103.获取标定板400中心在第一图像中的第一像素坐标数据与第一图像的中心之间的像素差值;
[0091] A104.根据像素差值和映射关系计算机器人100的x坐标偏移量和y坐标偏移量;
[0092] A105.根据x坐标偏移量和y坐标偏移量生成第一控制指令并发送至机器人100,使机器人100携带相机200移动至标定板400中心的上方。
[0093] 通过获取标定板400中心在第一图像中的第一像素坐标数据和第一图像的中心之间的像素差值,之后通过映射关系可以精确地计算出机器人100应移动多少距离才能到标
定板400的中心,提高了机器人100在标定板400的中心位置时的准确性。
[0094] 其中,步骤A101包括以下子步骤:
[0095] S1.向机器人100发送第三控制指令,使机器人100以第一步长沿x轴移动n1次,并在每次移动后获取相机200采集的第二图像,提取标定板400中心在第二图像中的第二像素
坐标增量数据;n1为预设的整数值,且n1>1;
[0096] S2.根据多个第二像素坐标增量数据计算第二像素坐标增量均值;
[0097] S3.向机器人100发送第四控制指令,使机器人100以第二步长沿y轴移动n2次,并在每次移动后获取相机200采集的第三图像,提取标定板400中心在第三图像中的第三像素
坐标增量数据;n2为预设的整数值,且n2>1;
[0098] S4.根据多个第三像素坐标增量数据计算第三像素坐标增量均值;
[0099] S5.将第二像素坐标增量均值和第三像素坐标增量均值代入以下公式,计算得到转换矩阵T和常数b:
[0100] ;
[0101] 其中, 为机器人基坐标系的水平平面的坐标增量矩阵,机器人基坐标系的水平平面的坐标增量矩阵包括第一步长和第二步长, 为相机200的图像像素坐标增量矩
阵,图像像素坐标增量矩阵包括第二像素坐标增量均值和第三像素坐标增量均值,T为转换
矩阵,b为常数。
[0102] 在实际应用中,n1、n2、第一步长和第二步长可以根据实际需要设置,也可以由系统随机生成,在此本申请不做具体限定。为方便理解该实施方式,可以预设n1=20,n2=20,第
一步长为2.5cm,第二步长为2.5cm。具体的,先执行步骤S1,向机器人100发送第三控制指
令,使机器人100以第一步长2.5cm向x轴移动n1(20)次,并在每次移动后获取相机200采集
的第二图像,提取标定板400中心在第二图像中的第二像素坐标增量数据(由于n1=20,所以
机器人100在移动20次后会获得20组第二像素坐标增量数据,例如将20组第二像素坐标增
量数据相加,并记为 ,其中 为像素坐标系中u坐标轴的增量, 为像素坐标系中
v坐标轴的增量),然后执行步骤S2,根据上述20组第二像素坐标增量数据计算第二像素坐
标增量均值,记为 。继续执行步骤S3,向机器人100发送第四控制指令,使机器人100以
第二步长2.5cm向y轴移动n2(20)次,并在每次移动后获取相机200采集的第三图像,提取标
定板400中心在第三图像中的第三像素坐标增量数据(由于n2=20,所以机器人100在移动20
次后会获得20组第三像素坐标增量数据,例如将20组第三像素坐标坐标增量数据相加,并
记为 ,其中 为像素坐标系中u坐标轴的增量, 为像素坐标系中v坐标轴的增
量),然后执行步骤S4,根据上述20组第三像素坐标增量数据计算第三像素坐标增量均值,
记为 。
[0103] 执行步骤S5,将 代入 ,将机器人100在x轴上以第一步长移动所形成的坐标增量数据 代入 ,得到
[0104] (1);
[0105] 将 代入 ,将机器人100在y轴上以第二步长移动所形成的坐标增量数据代入 ,得到
[0106] (2);
[0107] 由此可以将 (1)式和(2)式联立,计算出转换矩阵T和常数b。通过这种方式,可以计算出机器人基坐标系的水平平面的坐标增量与相机200的图像像素坐标增量之间的映射
关系,实现机器人基坐标系的水平平面的坐标增量与相机200的图像像素坐标增量之间的
互相转换,提高了映射关系的精确性。
[0108] 在进一步的实施方式中,步骤S5之后还包括:
[0109] S6.获取第三步长和指定移动方向信息;
[0110] S7.根据第三步长和指定移动方向信息向机器人100发送第五控制指令,使机器人100以第三步长沿指定移动方向移动n3次;n3为预设的整数值,且n3>1;
[0111] S8.在每次移动后获取相机200采集的第四图像,提取标定板400中心在第四图像中的第四像素坐标增量数据;
[0112] S9.根据多个第四像素坐标增量数据计算第四像素坐标增量平均值;
[0113] S10.根据第三步长和指定移动方向信息计算第三步长在x轴方向的分量和在y轴方向的分量;
[0114] S11.根据第四像素坐标增量平均值、第三步长在x轴方向的分量和在y轴方向的分量验证转换矩阵T和常数b的正确性。
[0115] 在步骤S6、S7中,第三步长和n3也可以根据需要设置,指定移动方向信息可以是沿机器人基坐标系的水平平面的任意方向(该移动方向信息包括移动方向与x轴的夹角信
息)。具体的,可设置n3=20,第三步长为 cm,指定移动方向与x轴的夹角为45°。
[0116] 步骤S7‑S8中,然后以第三步长( cm)使机器人100沿该指定移动方向进行移动n3(20)次,并在每次移动后获取标定板400中心的第四像素坐标增量数据,将20组第四像素
坐标增量数据相加,记为 ,其中 为像素坐标系中u坐标轴的增量, 为像素坐标
系中v坐标轴的增量。
[0117] 步骤S9中,此时的第四像素坐标增量平均值 ;
[0118] 步骤S10中,由于预先指定的移动方向与x轴的夹角为45°,所以根据简单三角函数关系可以计算出,第三步长在x轴方向的分量和y轴方向的分量均为2cm,因此机器人100在
该指定移动方向下以第三步长移动所形成的坐标增量数据为 。
[0119] 在步骤S11中,可以把该坐标增量数据 和第四像素坐标平均值分别代入上述已计算好转换矩阵T和常数b的式子 两端,以验证等式是否成立,从而验证
转换矩阵T和常数b的准确性。
[0120] 在实际应用中,由于手眼标定系统中的机器人100在移动时难免会有误差,但是在可控的范围内并不影响获取最终结果的准确性。因此在另一些实施方式中,可以预先设定
一个误差范围,通过计算 的模和 的模之间的差值与该阈值进行比较,若该
差值超过该误差范围则说明转换矩阵T和常数b不准确;若差值在该误差范围之内,则说明
转换矩阵T和常数b准确。
[0121] 经过上述步骤,已经计算出了公式 中的转换矩阵T和常数b,并且验证了转换矩阵T和常数b的准确性。
[0122] 步骤A103包括:
[0123] 通过图像识别方法识别第一图像中的标定板400中心,从而提取该标定板400中心的第一像素坐标数据(记为 ,其中 分别为标定板400中心在像素坐标系中u坐
标轴和v坐标轴的位置);
[0124] 根据图像分辨率获取相机200在第一图像的中心的像素坐标数据(记为 ,其中 分别为第一图像的中心在像素坐标系中u坐标轴和v坐标轴的位置);
[0125] 根据以下计算公式计算该像素差值:
[0126] ;
[0127] 其中, 分别为像素坐标系中u坐标轴的增量和v坐标轴的增量。
[0128] 步骤A104包括,,将上述 代入公式 ,即可计算出机器人100的x坐标偏移量和y坐标偏移量( )。
[0129] 步骤A105包括,根据上述x坐标偏移量和y坐标偏移量使机器人100移动到标定板40 0 中 心的 上 方 ,并 将此 时 机器 人 1 00 的中 心 位 姿数 据 保 存 ,记 为
,其中, 为机器人100在xyz轴上的位置,
为机器人100的姿态。通过这种方式,可以使相机200到标定板400中心的
距离保持一定,提高精确性,方便后续圆弧轨迹的生成。
[0130] 在一些实施方式中,分层圆300的高度数据和半径可以是人为预设的一个数值。在实际应用中,机器人100的运动轨迹大致为球形轨迹,因此,球形轨迹的形成一般分为两种:
经度圆和纬度圆。以下的实施方式采用纬度圆的方法计算。
[0131] 在优选的实施方式中,在步骤A4中, 为分层圆300的半径,R为第一距离, 为分层圆300的高度数据。在实际应用中,第一距离R的数值可以是机器人100随机生成也可以
是人为预设,在此本申请不做限定。例如,将相机200和标定板400中心之间的第一距离R设
置为500mm;分层圆300的高度数据是指相机200垂直于标定板400的距离(即分层圆300的圆
心与标定板400中心之间的距离),记为 ,高度数据 可以直接获取;因此,根据勾股定
理,即可计算出分层圆300的半径 ,计算公式如下:
[0132] ;
[0133] 其中,随着高度数据 不断变化,但是相机200和标定板400中心之间的第一距离R始终保持为500mm,就可以计算出多个分层圆300的半径。
[0134] 为了保证精度,使机器人100能精确地在圆弧轨迹上移动,首先要先让机器人100在分层圆300上进行平移,使相机200获取的前几帧图片位置姿态变化不能超出预设范围。
[0135] 在一些实施方式中,可以是在分层圆300上人为设定多个平移点,然后由机器人控制器发送控制指令使机器人100带相机200沿着该平移点进行移动;也可以是在分层圆300
上人为标定好平移运动轨迹,然后由机器人控制器发送控制指令使机器人100带相机200沿
着该平移运动轨迹进行移动;还可以是人工示教使机器人100在分层圆300上做平移运动。
[0136] 在一些实施方式中,步骤A5包括:
[0137] A501.根据以下公式计算各轨迹点的位姿数据中的位置坐标:
[0138] ;
[0139] 其中,step为预设的角度的增加步长; 为分层圆300的半径;R为第一距离;为分层圆300的高度数据; 分别为第i个轨迹点的位姿数据中的x轴坐标值、y轴
坐标值和z轴坐标值,其中,当i=1时, 为机器人100在标定板400中心的上方的中
心位姿数据中的x轴坐标值和y轴坐标值, 为机器人100在标定板400中心的上方的中心位
姿数据中的z轴坐标值; 为第i个轨迹点的角度,其中,当i=1时, 为起始角度;
[0140] 在上述步骤A1中,已经将机器人100携带相机200移动到标定板400中心的上方,并且将机器人100的中心位姿数据存起,所以 为已知数据。
[0141] A502.根据以下公式计算各轨迹点的角度插值比例:
[0142] ;
[0143] 其中,为第i个轨迹点的角度插值比例, 为第i个轨迹点的的角度, 为姿态插补的步长,step为角度的增加步长, 为起始角度。
[0144] 其中, 的计算公式如下:
[0145] ;
[0146] step的数值例如等于0.1cm,但不限于此;
[0147] 的计算公式如下:
[0148] ;
[0149] 其中, ;
[0150] A503.根据以下公式计算各轨迹点的姿态角度:
[0151] ;
[0152] 其中, 为圆弧的起始姿态, 为球形插补函数, 为圆弧的终止姿态,为第i个轨迹点的角度插值比例,   为第i个轨迹点的姿态角度。
[0153] 在实际应用中,圆弧的起始姿态以及圆弧的终止姿态可以直接获取,也可以是人为预设或者系统随机生成。通过计算圆弧轨迹上各个轨迹点的姿态角度,能使各个轨迹点
之间的连线平整光滑,从而生成平滑的圆弧轨迹。
[0154] 在一些实施方式中,步骤A6包括:
[0155] A601.标定板400的图像包括RGB图和深度图,对RGB图和深度图进行对齐处理;
[0156] A602.计算相机坐标系到像素坐标系下的转换矩阵;
[0157] A603.将机器人100的位姿数据和转换矩阵封装成两个TOPIC,使用ros中的rostopic通信机制实时发布;
[0158] 其中,每获取机器人100的位姿数据和转换矩阵的时间间隔为0.1s。
[0159] 在步骤A601中,本申请的相机200包括RGB摄像头和红外摄像头,可以采集到RGB图像和深度图像。由于RGB图像数据与深度图像数据的空间坐标系是不同的,前者的原点是
RGB摄像头,后者的原点是红外摄像头,因此两者会有相应的误差。通过进行对齐处理,可以
减小两者的误差。
[0160] 在步骤A602中,计算相机坐标系到像素坐标系下的转换矩阵采用的是OpenCV 图像处理库,转换矩阵的数据格式为4x4的矩阵,具体的算法为现有技术,在此本申请不再赘
述。
[0161] 在步骤A603中,将机器人100的位姿数据转换为4 x 4的矩阵,在机器人100学中,用齐次矩阵(4x4)来统一描述刚体的位置和姿态,具体如何转换为现有技术,在此不再赘
述。之后将相机坐标系到像素坐标系下的转换矩阵和机器人100的位姿数据封装成两个
TOPIC主题,使用ros中的rostopic通信机制实时发布。其中,TOPIC主题和ros通信机制也为
现有技术,在此不再赘述。
[0162] 通过这种方式,可以实时获取和估计机器人100在圆弧轨迹上的位姿数据,从而实现各个ros节点的数据通讯。
[0163] 由上可知,本申请提供的手眼标定数据采集方法,用于手眼标定系统,通过向机器人100发送第一控制指令,使机器人100携带相机200移动至标定板400中心的上方;获取机
器人100携带相机200移动至标定板400中心的上方时相机200与标定板400中心之间的第一
距离和机器人100的中心位姿数据;获取至少一个分层圆300的高度数据;根据第一距离和
高度数据计算各分层圆300的半径;根据分层圆300的半径获取分层圆300圆周上的圆弧轨
迹上的多个轨迹点的位姿数据;根据轨迹点的位姿数据向机器人100发送第二控制指令,使
机器人100沿圆弧轨迹移动并采集标定板400的图像和机器人100的位姿数据,从而实现手
眼标定轨迹的生成,不仅可以全自动生成手眼标定轨迹,节约了大量时间和人力资源,还可
以实时采集机器人100的位姿数据,方便预测机器人100在圆弧轨迹上的位姿。
[0164] 请参照图2,图2是本申请一些实施方式中的手眼标定数据采集装置,用于手眼标定系统,该装置包括以下模块:
[0165] 第一控制模块201,用于向机器人100发送第一控制指令,使机器人100携带相机200移动至标定板400中心的上方;相机200设置在机器人100的端部;
[0166] 第一获取模块202,用于获取机器人100携带相机200移动至标定板400中心的上方时相机200与标定板400中心之间的第一距离和机器人100的中心位姿数据;
[0167] 第二获取模块203,用于获取至少一个分层圆300的高度数据;
[0168] 第一计算模块204,用于根据第一距离和高度数据计算各分层圆300的半径;
[0169] 第三获取模块205,用于根据分层圆300的半径获取分层圆300圆周上的圆弧轨迹上的多个轨迹点的位姿数据;
[0170] 第二控制模块206,用于根据轨迹点的位姿数据向机器人100发送第二控制指令,使机器人100沿圆弧轨迹移动并采集标定板400的图像和机器人100的位姿数据。
[0171] 其中,向机器人100发送第一控制指令和第二控制指令的设备是机器人控制器,该机器人控制器可以包括执行自动标定算法的芯片,例如人工智能(artificial 
intelligence,AI)芯片、图形处理器(graphics processing unit,GPU)芯片、中央处理器
(central processing unit,CPU)等芯片,也可以是包括其中多种芯片构成的系统。
[0172] 其中,在实际应用中,可把标定板400设置在一个预设的固定位置,并预先设置一个位于标定板400中心的上方的初始位置;从而可以获取该初始位置的位置数据,根据该初
始位置的位置数据生成第一控制指令发送至机器人100。还可以采用人工示教的方式,使机
器人100携带相机200移动到标定板400中心上方。通过这种方式,方便后续模块中获取机器
人100在标定板400中心的上方的中心位姿数据和标定板400中心的第一像素坐标数据。
[0173] 在一些实施方式中,第一控制模块201用于在向机器人100发送第一控制指令,使机器人100携带相机200移动至标定板400中心的上方的时候,执行:
[0174] 确定机器人基坐标系的水平平面的坐标增量与相机200的图像像素坐标增量之间的映射关系;
[0175] 获取相机200在当前位置采集的第一图像;
[0176] 获取标定板400中心在第一图像中的第一像素坐标数据与第一图像的中心之间的像素差值;
[0177] 根据像素差值和映射关系计算机器人100的x坐标偏移量和y坐标偏移量;
[0178] 根据x坐标偏移量和y坐标偏移量生成第一控制指令并发送至机器人100,使机器人100携带相机200移动至标定板400中心的上方。
[0179] 其中,第一控制模块201在执行确定机器人基坐标系的水平平面的坐标增量与相机200的图像像素坐标增量之间的映射关系的步骤中,包括以下子步骤:
[0180] S1.向机器人100发送第三控制指令,使机器人100以第一步长沿x轴移动n1次,并在每次移动后获取相机200采集的第二图像,提取标定板400中心在第二图像中的第二像素
坐标增量数据;n1为预设的整数值,且n1>1;
[0181] S2.根据多个第二像素坐标增量数据计算第二像素坐标增量均值;
[0182] S3.向机器人100发送第四控制指令,使机器人100以第二步长沿y轴移动n2次,并在每次移动后获取相机200采集的第三图像,提取标定板400中心在第三图像中的第三像素
坐标增量数据;n2为预设的整数值,且n2>1;
[0183] S4.根据多个第三像素坐标增量数据计算第三像素坐标增量均值;
[0184] S5.将第二像素坐标增量均值和第三像素坐标增量均值代入以下公式,计算得到转换矩阵T和常数b:
[0185] ;
[0186] 其中, 为机器人基坐标系的水平平面的坐标增量矩阵,机器人基坐标系的水平平面的坐标增量矩阵包括第一步长和第二步长, 为相机200的图像像素坐标增量矩
阵,图像像素坐标增量矩阵包括第二像素坐标增量均值和第三像素坐标增量均值,T为转换
矩阵,b为常数。
[0187] 在实际应用中,n1、n2、第一步长和第二步长可以根据实际需要设置,也可以由系统随机生成,在此本申请不做具体限定。为方便理解该实施方式,可以预设n1=20,n2=20,第
一步长为2.5cm,第二步长为2.5cm。具体的,先执行步骤S1,向机器人100发送第三控制指
令,使机器人100以第一步长2.5cm向x轴移动n1(20)次,并在每次移动后获取相机200采集
的第二图像,提取标定板400中心在第二图像中的第二像素坐标增量数据(由于n1=20,所以
机器人100在移动20次后会获得20组第二像素坐标增量数据,例如将20组第二像素坐标增
量数据相加,并记为 ,其中 为像素坐标系中u坐标轴的增量, 为像素坐标系中
v坐标轴的增量),然后执行步骤S2,根据上述20组第二像素坐标增量数据计算第二像素坐
标增量均值,记为 。继续执行步骤S3,向机器人100发送第四控制指令,使机器人100以
第二步长2.5cm向y轴移动n2(20)次,并在每次移动后获取相机200采集的第三图像,提取标
定板400中心在第三图像中的第三像素坐标增量数据(由于n2=20,所以机器人100在移动20
次后会获得20组第三像素坐标增量数据,例如将20组第二像素坐标增量数据相加,并记为
,其中 为像素坐标系中u坐标轴的增量, 为像素坐标系中v坐标轴的增量),然
后执行步骤S4,根据上述20组第三像素坐标增量数据计算第三像素坐标增量均值,记为

[0188] 执行步骤S5,将 代入 ,将机器人100在x轴上以第一步长移动所形成的坐标增量数据 代入 ,得到
[0189] (1);
[0190] 将 代入 ,将机器人100在y轴上以第二步长移动所形成的坐标增量数据代入 ,得到
[0191] (2);
[0192] 由此可以将 (1)式和(2)式联立,计算出转换矩阵T和常数b。通过这种方式,可以计算出机器人基坐标系的水平平面的坐标增量与相机200的图像像素坐标增量之间的映射
关系,实现机器人基坐标系的水平平面的坐标增量与相机200的图像像素坐标增量之间的
互相转换,提高了映射关系的精确性。
[0193] 在进一步的实施方式中,第一控制模块201在执行步骤S5之后还执行:
[0194] S6.获取第三步长和指定移动方向信息;
[0195] S7.根据第三步长和指定移动方向信息向机器人100发送第五控制指令,使机器人100以第三步长沿指定移动方向移动n3次;n3为预设的整数值,且n3>1;
[0196] S8.在每次移动后获取相机200采集的第四图像,提取标定板400中心在第四图像中的第四像素坐标增量数据;
[0197] S9.根据多个第四像素坐标增量数据计算第四像素坐标增量平均值;
[0198] S10.根据第三步长和指定移动方向信息计算第三步长在x轴方向的分量和在y轴方向的分量;
[0199] S11.根据第四像素坐标增量平均值、第三步长在x轴方向的分量和在y轴方向的分量验证转换矩阵T和常数b的正确性。
[0200] 在步骤S6、S7中,第三步长和n3也可以根据需要设置,指定移动方向信息可以是沿机器人基坐标系的水平平面的任意方向(该移动方向信息包括移动方向与x轴的夹角信
息)。具体的,可设置n3=20,第三步长为 cm,指定移动方向与x轴的夹角为45°。
[0201] 步骤S7‑S8中,然后以第三步长( cm)使机器人100沿该指定移动方向进行移动n3(20)次,并在每次移动后获取标定板400中心的第四像素坐标增量数据,将20组第四像素
坐标增量数据相加,记为 ,其中 为像素坐标系中u坐标轴的增量, 为像素坐标
系中v坐标轴的增量。
[0202] 步骤S9中,此时的第四像素坐标增量平均值 ;
[0203] 步骤S10中,由于预先指定的移动方向与x轴的夹角为45°,所以根据简单三角函数关系可以计算出,第三步长在x轴方向的分量和y轴方向的分量均为2cm,因此机器人100在
该指定移动方向下以第三步长移动所形成的坐标增量数据为 。
[0204] 在步骤S11中,可以把该坐标增量数据 和第四像素坐标平均值分别代入上述已计算好转换矩阵T和常数b的式子 两端,以验证等式是否成立,从而验
证转换矩阵T和常数b的准确性。
[0205] 在实际应用中,由于手眼标定系统中的机器人100在移动时难免会有误差,但是在可控的范围内并不影响获取最终结果的准确性。因此在另一些实施方式中,可以预先设定
一个误差范围,通过计算 的模和 的模之间的差值与该阈值进行比较,若该
差值超过该误差范围则说明转换矩阵T和常数b不准确;若差值在该误差范围之内,则说明
转换矩阵T和常数b准确。
[0206] 经过上述步骤,已经计算出了公式 中的转换矩阵T和常数b,并且验证了转换矩阵T和常数b的准确性。
[0207] 第一控制模块201在执行获取标定板400中心在第一图像中的第一像素坐标数据与第一图像的中心之间的像素差值的步骤时,执行:
[0208] 通过图像识别方法识别第一图像中的标定板400中心,从而提取该标定板400中心的第一像素坐标数据(记为 ,其中 分别为标定板400中心在像素坐标系中u坐
标轴和v坐标轴的位置);
[0209] 根据图像分辨率获取相机200在第一图像的中心的像素坐标数据(记为 ,其中 分别为第一图像的中心在像素坐标系中u坐标轴和v坐标轴的位置);
[0210] 根据以下计算公式计算该像素差值:
[0211] ;
[0212] 其中, 分别为像素坐标系中u坐标轴的增量和v坐标轴的增量。
[0213] 第一控制模块201在执行根据像素差值和映射关系计算机器人100的x坐标偏移量和y坐标偏移量的步骤时,执行:将上述 代入公式 ,即可计
算出机器人100的x坐标偏移量和y坐标偏移量( )。
[0214] 第一控制模块201在执行根据x坐标偏移量和y坐标偏移量生成第一控制指令并发送至机器人100,使机器人100携带相机200移动至标定板400中心的上方的步骤时,执行:根
据上述x坐标偏移量和y坐标偏移量使机器人100移动到标定板400中心的上方,并将此时机
器人100的中心位姿数据保存,记为 ,其中, 为
机器人100在xyz轴上的位置, 为机器人100的姿态。通过这种方式,可以使
相机200到标定板400中心的距离保持一定,提高精确性,方便后续圆弧轨迹的生成。
[0215] 在一些实施方式中,分层圆300的高度数据和半径可以是人为预设的一个数值。在实际应用中,机器人100的运动轨迹大致为球形轨迹,因此,球形轨迹的形成一般分为两种:
经度圆和纬度圆。以下的实施方式采用纬度圆的方法计算。
[0216] 在优选的实施方式中,第一计算模块204在根据第一距离和高度数据计算各分层圆300的半径的时候,其中, 为分层圆300的半径,R为第一距离, 为分层圆300的高度
数据。在实际应用中,第一距离R的数值可以是机器人100随机生成也可以是人为预设,在此
本申请不做限定。例如,将相机200和标定板400中心之间的第一距离R设置为500mm;分层圆
300的高度数据是指相机200垂直于标定板400的距离(即分层圆300的圆心与标定板400中
心之间的距离),记为 ,高度数据 可以直接获取;因此,根据勾股定理,即可计算出分
层圆300的半径 ,计算公式如下:
[0217] ;
[0218] 其中,随着高度数据 不断变化,但是相机200和标定板400中心之间的第一距离R始终保持为500mm,就可以计算出多个分层圆300的半径。
[0219] 为了保证精度,使机器人100能精确地在圆弧轨迹上移动,首先要先让机器人100在分层圆300上进行平移,使相机200获取的前几帧图片位置姿态变化不能超出预设范围。
[0220] 在一些实施方式中,可以是在分层圆300上人为设定多个平移点,然后由机器人控制器发送控制指令使机器人100带相机200沿着该平移点进行移动;也可以是在分层圆300
上人为标定好平移运动轨迹,然后由机器人控制器发送控制指令使机器人100带相机200沿
着该平移运动轨迹进行移动;还可以是人工示教使机器人100在分层圆300上做平移运动。
[0221] 在一些实施方式中,第三获取模块205在根据分层圆300的半径获取分层圆300圆周上的圆弧轨迹上的多个轨迹点的位姿数据的时候,执行以下步骤:
[0222] A501.根据以下公式计算各轨迹点的位姿数据中的位置坐标:
[0223] ;
[0224] 其中,step为预设的角度的增加步长; 为分层圆300的半径;R为第一距离;为分层圆300的高度数据; 分别为第i个轨迹点的位姿数据中的x轴坐标值、y轴
坐标值和z轴坐标值,其中,当i=1时, 为机器人100在标定板400中心的上方的中
心位姿数据中的x轴坐标值和y轴坐标值, 为机器人100在标定板400中心的上方的中心位
姿数据中的z轴坐标值; 为第i个轨迹点的角度,其中,当i=1时, 为起始角度;
[0225] 上述第一控制模块201已经将机器人100携带相机200移动到标定板400中心的上方,并且将机器人100的中心位姿数据存起,所以 为已知数据。
[0226] A502.根据以下公式计算各轨迹点的角度插值比例:
[0227] ;
[0228] 其中,为第i个轨迹点的角度插值比例, 为第i个轨迹点的的角度, 姿态插补的步长,step为角度的增加步长, 为起始角度。
[0229] 其中, 的计算公式如下:
[0230] ;
[0231] step的数值例如等于0.1cm,但不限于此;
[0232] 的计算公式如下:
[0233] ;
[0234] 其中, ;
[0235] A503.根据以下公式计算各轨迹点的姿态角度:
[0236] ;
[0237] 其中, 为圆弧的起始姿态, 为球形插补函数, 为圆弧的终止姿态,为第i个轨迹点的角度插值比例,   为第i个轨迹点的姿态角度。
[0238] 在实际应用中,圆弧的起始姿态以及圆弧的终止姿态可以直接获取,也可以是人为预设或者系统随机生成。通过计算圆弧轨迹上各个轨迹点的姿态角度,能使各个轨迹点
之间的连线平整光滑,从而生成平滑的圆弧轨迹。
[0239] 在一些实施方式中,第二控制模块206用于在根据轨迹点的位姿数据向机器人100发送第二控制指令,使机器人100沿圆弧轨迹移动并采集标定板400的图像和机器人100的
位姿数据的时候,执行:
[0240] A601.标定板400的图像包括RGB图和深度图,对RGB图和深度图进行对齐处理;
[0241] A602.计算相机坐标系到像素坐标系下的转换矩阵;
[0242] A603.将机器人100的位姿数据和转换矩阵封装成两个TOPIC,使用ros中的rostopic通信机制实时发布;
[0243] 其中,每获取机器人100的位姿数据和转换矩阵的时间间隔为0.1s。
[0244] 在步骤A601中,本申请的相机200包括RGB摄像头和红外摄像头,可以采集到RGB图像和深度图像。由于RGB图像数据与深度图像数据的空间坐标系是不同的,前者的原点是
RGB摄像头,后者的原点是红外摄像头,因此两者会有相应的误差。通过进行对齐处理,可以
减小两者的误差。
[0245] 在步骤A602中,计算相机坐标系到像素坐标系下的转换矩阵采用的是OpenCV 图像处理库,转换矩阵的数据格式为4x4的矩阵,具体的算法为现有技术,在此本申请不再赘
述。
[0246] 在步骤A603中,将机器人100的位姿数据转换为4 x 4的矩阵,在机器人100学中,用齐次矩阵(4x4)来统一描述刚体的位置和姿态,具体如何转换为现有技术,在此不再赘
述。之后将相机坐标系到像素坐标系下的转换矩阵和机器人100的位姿数据封装成两个
TOPIC主题,使用ros中的rostopic通信机制实时发布。其中,TOPIC主题和ros通信机制也为
现有技术,在此不再赘述。
[0247] 通过这种方式,可以实时获取和估计机器人100在圆弧轨迹上的位姿数据,从而实现各个ros节点的数据通讯。
[0248] 由上可知,本申请提供的手眼标定数据采集装置,用于手眼标定系统,通过向机器人100发送第一控制指令,使机器人100携带相机200移动至标定板400中心的上方;获取机
器人100携带相机200移动至标定板400中心的上方时相机200与标定板400中心之间的第一
距离和机器人100的中心位姿数据;获取至少一个分层圆300的高度数据;根据第一距离和
高度数据计算各分层圆300的半径;根据分层圆300的半径获取分层圆300圆周上的圆弧轨
迹上的多个轨迹点的位姿数据;根据轨迹点的位姿数据向机器人100发送第二控制指令,使
机器人100沿圆弧轨迹移动并采集标定板400的图像和机器人100的位姿数据,从而实现手
眼标定轨迹的生成,不仅可以全自动生成手眼标定轨迹,节约了大量时间和人力资源,还可
以实时采集机器人100的位姿数据,方便预测机器人100在圆弧轨迹上的位姿。
[0249] 请参照图3,图3为本申请实施例提供的一种电子设备的结构示意图,本申请提供一种电子设备3,包括:处理器301和存储器302,处理器301和存储器302通过通信总线303
和/或其他形式的连接机构(未标出)互连并相互通讯,存储器302存储有处理器301可执行
的计算机程序,当计算设备运行时,处理器301执行该计算机程序,以在执行时执行上述实
施例的任一可选的实现方式中的方法,以实现以下功能:向机器人100发送第一控制指令,
使机器人100携带相机200移动至标定板400中心的上方;获取机器人100携带相机200移动
至标定板400中心的上方时相机200与标定板400中心之间的第一距离和机器人100的中心
位姿数据;获取至少一个分层圆300的高度数据;根据第一距离和高度数据计算各分层圆
300的半径;根据分层圆300的半径获取分层圆300圆周上的圆弧轨迹上的多个轨迹点的位
姿数据;根据轨迹点的位姿数据向机器人100发送第二控制指令,使机器人100沿圆弧轨迹
移动并采集标定板400的图像和机器人100的位姿数据。
[0250] 本申请实施例提供一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:向机器人100
发送第一控制指令,使机器人100携带相机200移动至标定板400中心的上方;获取机器人
100携带相机200移动至标定板400中心的上方时相机200与标定板400中心之间的第一距离
和机器人100的中心位姿数据;获取至少一个分层圆300的高度数据;根据第一距离和高度
数据计算各分层圆300的半径;根据分层圆300的半径获取分层圆300圆周上的圆弧轨迹上
的多个轨迹点的位姿数据;根据轨迹点的位姿数据向机器人100发送第二控制指令,使机器
人100沿圆弧轨迹移动并采集标定板400的图像和机器人100的位姿数据。其中,存储介质可
以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器
(Static Random Access Memory, 简称SRAM),电可擦除可编程只读存储器(Electrically 
Erasable Programmable Read‑Only Memory, 简称EEPROM),可擦除可编程只读存储器
(Erasable Programmable Read Only Memory, 简称EPROM),可编程只读存储器
(Programmable Red‑Only Memory, 简称PROM),只读存储器(Read‑Only Memory, 简称
ROM),磁存储器,快闪存储器,磁盘或光盘。
[0251] 在本申请所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻
辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可
以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间
的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连
接,可以是电性,机械或其它的形式。
[0252] 另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多
个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的
目的。
[0253] 再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0254] 在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际
的关系或者顺序。
[0255] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的
任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。