误差控制

在项目实施过程中,最常遇到的问题之一为抓取误差。抓取误差即控制机器人在对工件进行抓取的过程中,发现机器人并没有达到理想位置,而是有一定的误差。误差产生的原因往往是多样的,以下将从外参、视觉、机器人等三个方面分别对误差进行分析。具体结构如 图1所示。

../../../_images/1.png

图1 抓取误差原因

外参误差

机器人

零点

零点:

机器人通过闭环伺服系统来控制机器人马达各个轴运动,通过控制器的指令来控制每一个马达。马达上装有的脉冲编码器能够将马达的信号反馈给机器人,在机器人运动的过程中,控制器不断接收和分析编码器返回的信号,从而实现在整个运动过程中对机器人的正确控制。控制器必须知道每一个轴的零点位置才能够准确的分析编码器返回的信息,这样才能够在每次使用过程中机器人的位置保持不变。在机器人正常使用过程中,零点位置和机器人的关节位置会被保存下来,并在控制器正常断电的情况下使用内部电池进行供电保持。每次机器人正常关闭该数据会被保存下来,每次上电机器人会直接读取备份中的数据进行识别以保证和断电时状态一致。机器人在经过撞击、电池掉电或长时间未使用等情况下,零点可能会偏移或者丢失。

若机器人在零点丢失的情况下进行工作,往往会出现:

机器人各关节轴工作超过软限位 (这是十分危险的);

机器人无法到达指定位置 ,因为零点定位不同导致相同关节角情况下机器人末端位置不同;

机器人不能够沿着指定方向走指定长度 (如无法准确走1米)。

在使用Mech-Vision软件对外参进行标定的时候,软件会根据标定参数计算出多个机器人需要到达的点位,在机器人零点丢失的情况下往往无法准确地到达点位,最后导致外参计算的结果出现误差。

小技巧

机器人零点是否丢失的检测办法很多,这里给出两种最常用的检测办法:

  • 通过示教器将机器人所有轴角度调至0°,再观察机器人各个轴上的铭牌是否对齐,若没有对齐则机器人零点丢失;

  • 控制机器人沿着指定方向移动一段距离,观察机器人走动距离和理论距离是否一致。

通过以上办法对机器人的零点进行确定,然后可以根据不同机器人零点标定的方式对机器人进行零点校准。

控制算法

一些新研发出来的机器人,在控制算法层面有小概率存在问题,即机器人并不能够移动到指定位置,存在偏差。在机器人无法准确移动到准确位置的情况下,机器人将来无法执行外参标定的任务。

固定方式

机器人的固定方式直接决定了机器人是否能够在长期使用过程中保持稳定,较弱的固定方式,如使用膨胀螺栓或不固定而是使用大底座的方式,都不能够保证机器人在长期使用过程中保持稳定或者保持机器人高速运行。若机器人移动,则实际中机器人与相机之间的位置关系被破坏,机器人会出现抓不准的情况。这类情况不是常见的情况,一旦发生则很难发现,故需要在机器人安装固定时就确认好机器人的固定方式。

小技巧

  • 若需要长期使用,最好能够使用化学螺栓进行固定,并在化学螺栓固定牢固以后再进行机器人操作,否则也会导致螺栓松动;

  • 若是短期使用,如展会,则可以将机器人固定在相对稳定的表面,但是不能将机器人速度调至特别高,否则也会导致机器人松动。

相机

内参

由于相机内参导致的外参问题主要出现在相机视野边缘或超过相机工作距离的情况,相机在出场时会根据使用的硬件情况确定相机的合理工作距离。当相机处于超过工作距离或边缘的情况下进行工作时,由于相机没有在该位置进行准确标定,导致生成的点云存在偏差,最后也会导致最后计算的外参出现偏差。

小技巧

建议在使用相机时,需要确定相机工作距离,并检查该处相机内参是否异常,最后在相机工作距离上进行标定。

固定方式

相机由于固定方式导致外参变化的原因与机器人固定方式同理,固定方式的稳定性直接决定了该工位是否能够长期使用并保持外参稳定,相机安装方式的具体内容请参考 相机安装 章节。

小技巧

较大的振动或对相机支架的剧烈碰撞也可能导致相机支架固定松动,在固定的时候需特别注意并防止相机支架受到碰撞和倚靠。

其他误差

机器人在最初适配的过程中,为了获取机器人的运动学关系,需要在各大机器人网站或说明书中找到对应机器人的运动学参数(下称D-H参数),获得机器人运动学参数就能过建立机器人各个关节轴之间的关系。在实际过程中,软件中的D-H参数可能出现与实际机器人的D-H参数不一致的情况,可能的原因有两种:

  • 这可能是机器人子型号较多导致区分错误或者获取到的D-H参数与实际的机器人有一定的误差;

  • 说明书中和实际机器人之间存在差别。

若D-H参数不一致,在使用过程中,软件中机器人末端位置可能与示教器中不同,从而导致在计算过程中外参发生偏差。

小技巧

D-H参数是否一致的检查办法,可以在连接机器人后,直接观察Mech-Viz软件中在关节角一致的情况下,机器人6轴末端姿态是否与机器人端一致,若不一致则有可能是D-H参数异常导致的。

视觉误差

原始数据

原始数据:

原始是指输入Mech-Vision软件中进行处理时的原始数据,数据内容主要包括RGB图像和深度图像。

当工作现场出现光照变化(如白天到晚上)的时候,相机上的配置参数没有及时更新可能会导致:

  • 采集到的点云噪点过多或者细节不明显使得后续匹配算法无法继续进行或识别错误;

  • 采集到的RGB图像质量变化,过暗的环境采集的图像亮度不够,导致深度学习没有结果或者识别结果较差。

小技巧

当出现以上情况都需要对Mech-Eye Viewer软件内的相机参数进行更新,分别调整2D和3D曝光,使得RGB图像和深度图像都有较好的结果。或在项目部署时使用合理的 光照控制

抓取点

抓取点 误差是抓取误差中 常见的误差之一 ,Mech-Vision软件中存在两种抓取点设置方式,一种为拖拽抓取点,另一种为示教抓取点。示教抓取点在保证机器人准确的情况下误差很小,因此在这里不考虑这种情况,对拖拽抓取点的情况进行分析。

抓取点的拖拽需要在Mech-Vision软件中进行,在模板的基础上调整抓取点的位置。拖拽抓取点是一种不够精确的方式,并不能够准确地给出机器人需要到达的位置,因此在实际抓取过程中可能不能到达理想位置。若需要更加精确的抓取点需要使用示教法来做抓取点。

小技巧

抓取点若存在误差,可以直接通过Mech-Viz软件中点云上的坐标看出是否每一个工件的抓取点都在理想位置上。

算法

由于Mech-Vision软件输出结果导致的偏差,这里统一称为算法误差。视觉算法的部署往往是根据现场采集的原图来设置的,若出现光照和工作环境变化,都有可能导致原来的参数不适用,可以在Mech-Vision软件中看出,并按照软件使用手册的指导进行调整。同时,一些特殊工件的识别可能导致偶发性误差,即在长时间的使用过程中没有问题,偶尔出现由于环境变化导致的识别错误,尤其是轴对称的物体,容易出现局部最优解的情况,导致识别错误。

注意

在一些现场可能出现由于模板错误导致的误差,即通过STL文件获取的模板与实际需要抓取的物体有误差,这样会导致进行模板匹配时无法获取最优的结果。产生这样情况的可能原因为

  • STL文件为工件成品的文件,但是需要进行抓取的文件为毛坯材料,在生产过程中留有加工余量以保证后续工序进行,导致真正需要识别的工件比模板文件大一些。

此时通过适当调整模板的缩放比例即可。

机器人误差

TCP

机器人TCP误差表现为机器人实际工具中心和理论工具中心不一致。大多数的原因表现为机器人TCP标定的时候不够准确,出现了如尖点移动,机器人姿态变化不够大,没有与尖点重合等,都是可能导致机器人TCP不准确的原因。在软件使用过程中,需要在Mech-Viz软件中建立工具并且输入准确的TCP值。

小技巧

在TCP的确定过程中,较好的办法为使用机器人对TCP进行标定,并把标定后的值输入Mech-Viz软件中,并在机器人端留有备份。

小技巧

若是在对精度要求不高的项目中,可直接在软件中调整TCP的值,提高抓取准确度。