位姿校正(装配)
本文介绍“位姿变换(高级)”步骤中的“位姿校正(装配)”功能及其使用流程。
功能介绍
该功能用于在机器人抓取工件后、执行装配前,根据二次视觉拍照结果,自动校正装配时的工具位姿或法兰位姿。可以补偿抓取误差或放置位置偏移,提高机器人装配的精度。支持使用3D或2D相机进行二次拍照,适用于固定放置位和不固定放置位两类装配场景。
使用前提与约束
在使用“位姿校正(装配)”功能前,请确保满足以下前提条件与工程约束。
-
坐标系约束
所有输入至 “位姿变换(高级)” 步骤的位姿数据,必须为机器人坐标系下的位姿。 若输入位姿来源于模板匹配,需根据其类型进行预处理:
-
3D 位姿:由“3D匹配”等步骤生成。通常为相机坐标系下的3D位姿,需要通过位姿变换步骤将其转换至机器人坐标系。
-
2D 位姿:由“2D匹配”等步骤生成。通常为相机坐标系下的2D位姿,需要通过“将2D点转换为3D位姿”步骤将其转换至机器人坐标系下的3D位姿。
-
-
末端工具(TCP)配置要求
示教阶段与实际运行阶段必须使用相同的末端工具配置(TCP)。如更换夹具或调整TCP,需重新进行相关示教流程,以确保位姿关系的一致性。
-
二次视觉采集要求
位姿校正依赖于机器人抓取工件后,在固定拍照点进行的二次视觉采集。不同相机类型对位姿输入的要求如下:
-
3D相机场景:需提供示教阶段记录的二次拍照时刻的工具位姿。该位姿作为“理想抓取状态”的参考基准,与运行时识别出的工件实时位姿共同用于计算抓取偏差,进而校正装配位姿。
-
2D相机场景:需提供示教阶段记录的二次拍照时刻的法兰位姿。该位姿作为“理想抓取状态”的参考基准,与运行时识别出的工件实时位姿共同用于计算抓取偏差,进而校正装配位姿。
-
-
放置位类型说明
-
固定放置位:放置位在运行过程中位置与姿态保持不变。其理想装配状态仅在示教阶段定义,运行时无需实时识别。
-
不固定放置位:放置位在每次运行时的实际位置或姿态无法预先确定,可能存在偏差或变化,需在装配前通过放置位识别实时获取其当前位姿。
-
使用流程
本节介绍以下四种装配场景下的装配位姿校正方法,用户可根据实际需求选择相应的操作流程:
使用3D相机在固定放置位进行装配位姿校正
机器人抓取工件后,移动至固定拍照点,通过3D相机采集工件点云并计算实际位姿,并结合示教的固定放置位计算校正后的装配工具位姿。
|
下文以两台采用ETH安装方式的3D相机为例:相机C1用于工件的初步定位与抓取,相机C2在固定拍照点对已抓取的工件进行二次拍照,介绍装配工具位姿校正流程。其他相机类型或安装方式可参考本流程,结合实际情况操作。 |
配置步骤端口
-
单击配置向导按钮,打开位姿变换工具,选择位姿校正(装配)。
-
在右侧参数区选择装配场景,设置相机类型为3D相机,放置位类型为固定放置位。
-
单击确定按钮完成配置。
配置后的输入与输出端口如下所示:
输入
| 输入端口 | 数据类型 | 说明 |
|---|---|---|
拍照时工具位姿 |
Pose [] |
示教阶段,机器人在抓取工件后,移动至二次拍照点采集图像时,从示教器读取的机器人坐标系下的工具位姿。 |
拍照时工件位姿 |
Pose [] |
二次拍照时,被抓取工件在机器人坐标系下的实时位姿。 |
固定放置位位姿 |
Pose [] |
机器人抓取工件后,移动至放置点进行装配示教时记录的工具位姿。 |
输出
| 输出端口 | 数据类型 | 说明 |
|---|---|---|
装配位姿 |
Pose [] |
校正后的装配位姿。该位姿通过对输入的示教工具位姿进行旋转变换,并结合其他输入位姿计算得到。输出的装配位姿可直接连接“输出”步骤。 |
记录示教位姿(示教阶段)
在运行步骤前,需通过一次完整的示教流程,使用标准工件和基准放置位采集以下数据。
-
记录固定放置位位姿。
使用示教器控制机器人抓取标准工件,将机器人移动至理想装配位姿,确保工件P1与放置位P完全贴合。整个过程中需保持夹爪闭合,工件始终处于被抓取状态。在机器人静止后,记录此时的机器人工具位姿,作为“固定放置位位姿”。
-
记录拍照时工具位姿并制作工件点云模板。
-
保持工件被抓取状态,通过示教器控制机器人将工件移动至合适的二次拍照点,确保相机C2可完整、清晰地拍摄工件特征。将该拍照点设为固定拍照点,并记录此时的工具位姿,作为“拍照时工具位姿”。该位姿将用于后续工件点云模板的创建,并作为位姿校正的参考基准。
-
在当前拍照点触发相机C2采集工件点云,并通过示教法使用该点云创建工件点云模板,用于后续的模板匹配。
在通过示教法制作点云模板时,需要将上一步记录的拍照时工具位姿作为示教抓取位姿,并将此时的机器人法兰位姿和 TCP(末端工具相对于机器人法兰的位姿)填写到模板创建流程中的“示教抓取点”步骤。
-
-
配置步骤输入。
将采集到的拍照时工具位姿和固定放置位位姿,分别连接至“位姿变换(高级)”步骤的对应输入端口,为后续运行阶段做准备。
使用3D相机在不固定放置位进行装配位姿校正
机器人抓取工件后,移动至固定拍照点,通过3D相机采集工件点云并计算实际位姿。同时,通过放置位识别工程获取放置位的实时位姿,结合示教阶段建立的理想装配关系,动态计算并输出校正后的装配工具位姿。
|
下文以一台采用EIH安装方式的3D相机C1和另一台采用ETH安装方式的3D相机C2为例:相机C1用于工件的初步定位与抓取以及放置位的定位识别,相机C2用于在固定拍照点对已抓取的工件进行二次拍照,介绍装配工具位姿校正流程。其他相机类型或安装方式可参考本流程,结合实际情况操作。 |
配置步骤端口
-
单击配置向导按钮,打开位姿变换工具,选择位姿校正(装配)。
-
在右侧参数区选择装配场景,设置相机类型为3D相机,放置位类型为不固定放置位。
-
单击确定按钮完成配置。
配置后的输入与输出端口如下所示:
输入
| 输入端口 | 数据类型 | 说明 |
|---|---|---|
拍照时工具位姿 |
Pose [] |
示教阶段,机器人在抓取工件后,移动至二次拍照点采集图像时,从示教器读取的机器人坐标系下的工具位姿。 |
拍照时工件位姿 |
Pose [] |
二次拍照时,被抓取工件在机器人坐标系下的实时位姿。 |
实时放置位位姿 |
Pose [] |
放置位在机器人坐标系下的实时位姿。 |
输出
| 输出端口 | 数据类型 | 说明 |
|---|---|---|
装配位姿 |
Pose [] |
校正后的装配位姿。该位姿通过对输入的示教工具位姿进行旋转变换,并结合其他输入位姿计算得到。输出的装配位姿可直接连接“输出”步骤。 |
记录示教位姿(示教阶段)
在运行步骤前,需通过一次完整的示教流程,使用标准工件和基准放置位采集以下数据。
-
制作放置位点云模板。
-
使用示教器控制机器人抓取标准工件,将机器人移动至理想装配位姿,确保工件P1与放置位P完全贴合。整个过程中需保持夹爪闭合,工件始终处于被抓取状态。在机器人静止后,记录此时的机器人工具位姿。该位姿将用于后续放置位点云模板的创建。
-
保持工件被抓取状态,控制机器人将工件平稳移出放置区域,确保放置位恢复为空置状态,且位姿未发生变动。
-
将机器人移动至合适的拍照位置,并记录该拍照点为放置位的固定拍照点位。
-
在该拍照点触发相机C1采集放置位点云,并通过示教法使用该点云创建放置位点云模板,用于后续的模板匹配。
在通过示教法制作点云模板时,需将上一步记录的机器人在理想装配状态下的工具位姿作为示教放置位姿,并将此时的机器人法兰位姿和 TCP(末端工具相对于机器人法兰的位姿)填写到模板创建流程中的“示教抓取点”步骤。
-
-
记录拍照时工具位姿并制作工件点云模板。
-
保持工件被抓取状态,通过示教器控制机器人将工件移动至合适的二次拍照点,确保相机C2可完整、清晰地拍摄工件特征。将该拍照点设为固定拍照点,并记录此时的工具位姿,作为“拍照时工具位姿”。该位姿将用于后续工件点云模板的创建,并作为位姿校正的参考基准。
-
在当前拍照点触发相机C2采集工件点云,并通过示教法使用该点云创建工件点云模板,用于后续的模板匹配。
在通过示教法制作点云模板时,需要将上一步记录的拍照时工具位姿作为示教抓取位姿,并将此时的机器人法兰位姿和 TCP(末端工具相对于机器人法兰的位姿)填写到模板创建流程中的“示教抓取点”步骤。
-
-
配置步骤输入。
将采集到的拍照时工具位姿连接至“位姿变换(高级)”步骤的对应输入端口,为后续运行阶段做准备。
获取实时位姿(运行阶段)
在运行阶段,需要分别获取工件和放置位的实时位姿,用于装配工具位姿的校正。
-
获取拍照时工件位姿。
-
机器人抓取实际工件后,移动至示教确定的二次拍照点,触发相机C2采集工件点云。
-
对采集的点云进行预处理,并在“3D匹配”步骤中,使用示教阶段创建的工件点云模板进行匹配,输出工件在相机坐标系下的位姿。
-
将该位姿转换至机器人坐标系下,并通过“全局变量”或“保存结果到文件”等步骤,传递至“位姿变换(高级)”步骤的对应输入端口。
-
-
获取实时放置位位姿。
-
当机器人运动至示教确定的放置位拍照点时,触发相机C1采集放置位点云,并通过“3D匹配”步骤,使用示教阶段创建的放置位点云模板进行匹配,获取放置位在相机坐标系下的实时位姿。
-
将该位姿转换至机器人坐标系下,并连接至“位姿变换(高级)”步骤的“实时放置位位姿”输入端口。
-
|
为避免工件与放置位在视觉识别中相互干扰,建议在两个独立的Mech-Vision工程中分别获取拍照时工件位姿和实时放置位位姿,并通过“全局变量”或“保存结果到文件”等步骤传递结果。 |
使用2D相机在固定放置位进行装配位姿校正
机器人抓取工件后,移动至固定拍照点,通过2D相机采集工件图像后将2D识别结果转换为3D位姿,并结合示教的固定放置位计算校正后的装配法兰位姿。
|
下文以一台采用ETH安装方式的3D相机C1和一台采用ETH安装方式的2D相机C2为例:相机C1用于工件的初步定位与抓取,相机C2在固定拍照点对已抓取的工件进行二次拍照,介绍装配法兰位姿校正流程。其他相机类型或安装方式可参考本流程,结合实际情况操作。 |
配置步骤端口
-
单击配置向导按钮,打开位姿变换工具,选择位姿校正(装配)。
-
在右侧参数区选择装配场景,设置相机类型为2D相机,放置位类型为固定放置位。
-
单击确定按钮完成配置。
配置后的输入与输出端口如下所示:
输入
| 输入端口 | 数据类型 | 说明 |
|---|---|---|
拍照时法兰位姿 |
Pose [] |
示教阶段,机器人在抓取工件后,移动至二次拍照点采集图像时,从示教器读取的机器人坐标系下的法兰位姿。 |
拍照时工件位姿 |
Pose [] |
二次拍照时,被抓取工件在机器人坐标系下的实时位姿。 |
固定放置位位姿 |
Pose [] |
机器人抓取工件后,移动至放置点进行装配示教时记录的法兰位姿。 |
输出
| 输出端口 | 数据类型 | 说明 |
|---|---|---|
装配位姿 |
Pose [] |
校正后的装配位姿。该位姿通过对输入的示教法兰位姿进行旋转变换,并结合其他输入位姿计算得到。输出的装配位姿可直接连接“输出”步骤。 |
记录示教位姿(示教阶段)
在运行步骤前,需通过一次完整的示教流程,使用标准工件和基准放置位采集以下数据。
-
记录固定放置位位姿。
-
将标准工件手动放置在目标装配位置,确保工件P1与放置P位完全贴合,姿态为理想装配状态。
-
使用示教器控制机器人末端工具抓取该工件,并调整至理想装配位姿。在机器人静止后,记录此时的机器人法兰位姿,作为“固定放置位位姿”。
-
-
制作工件2D模板。
-
保持工件被抓取状态,通过示教器控制机器人将工件移动至合适的二次拍照点,确保相机C2可完整、清晰地拍摄工件特征。将该拍照点设为固定拍照点,并记录此时的法兰位姿,作为“拍照时法兰位姿”。
-
在当前拍照点触发相机C2采集工件图像,并基于该图像创建工件2D模板,用于后续的模板匹配。
-
-
配置步骤输入。
将采集到的固定放置位位姿和拍照时法兰位姿,分别连接至“位姿变换(高级)”步骤的对应输入端口,为后续运行阶段做准备。
使用2D相机在不固定放置位进行装配位姿校正
机器人抓取工件后,移动至固定拍照点,通过2D相机采集工件图像后将2D识别结果转换为3D位姿。同时,通过放置位识别工程获取放置位的实时位姿,结合示教阶段建立的理想装配关系,动态计算并输出校正后的装配法兰位姿。
|
下文以三台采用ETH安装方式的2D相机为例:相机C1和C3分别用于工件的初步定位与抓取和放置位的定位识别,相机C2用于在固定拍照点对已抓取的工件进行二次拍照,介绍装配法兰位姿校正流程。其他相机类型或安装方式可参考本流程,结合实际情况操作。 |
配置步骤端口
-
单击配置向导按钮,打开位姿变换工具,选择位姿校正(装配)。
-
在右侧参数区选择装配场景,设置相机类型为2D相机,放置位类型为不固定放置位。
-
单击确定按钮完成配置。步骤的输入与输出端口将根据设置自动更新。
配置后的输入与输出端口如下所示:
输入
| 输入端口 | 数据类型 | 说明 |
|---|---|---|
拍照时法兰位姿 |
Pose [] |
示教阶段,机器人在抓取工件后,移动至二次拍照点采集图像时,从示教器读取的机器人坐标系下的法兰位姿。 |
拍照时工件位姿 |
Pose [] |
二次拍照时,被抓取工件在机器人坐标系下的实时位姿。 |
示教时放置位姿 |
Pose [] |
机器人抓取工件移动至放置点进行装配示教时记录的法兰位姿。 |
示教放置位位姿 |
Pose [] |
示教放置位姿时,机器人坐标系下放置位的位姿。 |
实时放置位位姿 |
Pose [] |
放置位在机器人坐标系下的实时位姿。 |
输出
| 输出端口 | 数据类型 | 说明 |
|---|---|---|
装配位姿 |
Pose [] |
校正后的装配位姿。该位姿通过对输入的示教法兰位姿进行旋转变换,并结合其他输入位姿计算得到。输出的装配位姿可直接连接“输出”步骤。 |
记录示教位姿(示教阶段)
在运行步骤前,需通过一次完整的示教流程,使用标准工件和基准放置位采集以下数据。
-
记录示教时放置位姿。
-
将标准工件手动放置在目标装配位置,确保工件P1与放置位P完全贴合,姿态为理想装配状态。
-
使用示教器控制机器人末端工具抓取该工件,并调整至理想装配位姿。在机器人静止后,记录此时的机器人法兰位姿,作为“示教时放置位姿”。
-
-
制作放置位模板并记录示教放置位位姿。
-
保持工件被抓取状态,控制机器人将工件平稳移出放置区域,确保放置位恢复为空置状态,且位姿未发生变动。
-
将机器人移动至不影响放置位视野的位置,确保相机C3可完整拍摄空置放置位,并记录该拍照点为放置位的固定拍照点位。
-
在该拍照点触发相机C3采集放置位图像,并基于该图像创建放置位2D模板,用于后续的模板匹配。
-
在“2D匹配”步骤中使用该模板匹配放置位图像,并通过“将2D位姿转换为3D位姿”步骤,输出此时放置位在机器人坐标系下的3D位姿,作为“示教放置位位姿”。
-
-
制作工件2D模板。
-
保持工件被抓取状态,通过示教器控制机器人将工件移动至合适的二次拍照点,确保相机C2可完整、清晰地拍摄工件特征。将该拍照点设为固定拍照点,并记录此时的法兰位姿,作为“拍照时法兰位姿”。
-
在当前拍照点触发相机C2采集工件图像,并基于该图像创建工件2D模板,用于后续的模板匹配。
-
-
配置步骤输入。
将采集到的示教时放置位姿、示教放置位位姿和拍照时法兰位姿,分别连接至“位姿变换(高级)”步骤的对应输入端口,为后续运行阶段做准备。
获取实时位姿(运行阶段)
在运行阶段,需要分别获取工件和放置位的实时位姿,用于装配法兰位姿校正。
-
获取拍照时工件位姿。
-
机器人抓取实际工件后,移动至示教确定的二次拍照点,触发相机C2采集工件图像。
-
对采集的图像进行预处理后,在“2D匹配”步骤中,使用示教阶段创建的工件2D模板进行匹配,输出工件在相机坐标系下的2D位姿。
-
通过“将2D位姿转换为3D位姿”步骤,将该2D位姿转换为机器人坐标系下的3D位姿,并连接至“位姿变换(高级)”步骤的“拍照时工件位姿”输入端口。
-
-
获取实时放置位位姿。
-
当机器人运动至示教确定的放置位拍照点时,触发相机C3采集放置位图像,并通过“2D匹配”步骤,使用示教阶段创建的放置位2D模板进行匹配,输出放置位在相机坐标系下的2D位姿。
-
通过“将2D位姿转换为3D位姿”步骤,将该2D位姿转换为机器人坐标系下的3D位姿,并通过“全局变量”或“保存结果到文件”步骤,将其传递至“位姿变换(高级)”步骤。
-
|
为避免工件与放置位在视觉识别中相互干扰,建议在两个独立的Mech-Vision工程中分别获取拍照时工件位姿和实时放置位位姿,并通过“全局变量”或“保存结果到文件”等步骤传递结果。 |