本文档针对于21版本的DEMO程序逻辑进行梳理。通过程序demo,提供了一种编程逻辑思想,目的是做到快速入门。但是并不是唯一写法,用户可以在此程序框架基础上进行删减修改,亦可根据实际功能需要,形成自己的编程规范和框架。
1、机构概述
本文以搬运工艺为例,如图1所示,机构动作流程:取料—定位拍照纠偏—放料
图1 结构布局图
2、规范程序命名
规范的命名有助于可以通过前缀即可区分主程序、子程序、多任务等。
①主程序:main(树主干)
②子程序:sub_xx(分支)
③多任务:plc_xx(类似多线程、并行处理通道)
主程序和子程序可理解为树主干和分支,主程序通过调用子程序进行相应动作。
图2 命名效果图
3、机器人程序逻辑
机器人先和视觉进行标定等关联,完成后,即可进行带视觉的相应动作流程。机器人程序动作流程和程序含义如图3所示。
图3 动作流程和程序含义图
4、程序详解
程序类型说明:
①主任务(主程序main):只进行逻辑判断,无动作指令
②公共(子程序sub):进行相应动作
③静态/动态任务(多任务plc):并行处理通道,时刻刷新。(无运动指令,只逻辑判断)
区别:动态任务是与主任务一同启动和停止。
静态任务在开机时就自动启动,或者同步到控制器后,自动启动。
(1)主任务(main)
主任务逻辑如流程图4所示
①回原(sub_home)初次上电,或着掉使能后再启动,由于掉使能后机器人可以随意拖动,因此需要初次上电回原,回原程序中根据当前处于不同区域,规划不同回原路径,防止撞机的发生。
②取料、放料、拍照位等(sub_quliao为例)
③视觉标定(sub_calibration)相机标定的目的:空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。
标定过程就是确定摄像机的几何和光学参数,摄像机相对于世界坐标系的方位。标定精度的大小,直接影响着计算机视觉的精度。
标定内容:
I.相机的内参,x、y方向的放大系数和图像中心点的坐标;
II.镜头的畸变系数:求取镜像畸变和切向畸变
III.得到相机的外参,确定相机坐标系,机器人坐标系,世界坐标系三者之间的关系。
(3)静态/动态任务(plc_)区别:动态任务是与主任务一同启动和停止。
静态任务在开机时就自动启动,或者同步到控制器后,自动启动。
注:多任务可以根据不同需求有多种用途,下文仅仅以时刻判断是否在相应安全区域,从而发送安全信号为例。用户可根据不同功能需求,设计多任务程序。(只进行逻辑判断,无动作指令)
5、结语
规范的命名和逻辑清晰、简洁的程序,可使得程序编写、问题排查、工作交接等事半工倍。(Demo程序仅供参考和提供思路,可以根据现场实际需求,进行修改和删减).
限于篇幅,大致梳理了程序框架和部分重要程序指令,以供参考。详细指令用法和软件操作说明可查阅软件中用户手册。