




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文件状态:草稿口修改口定稿康耐视相机操作使用说明书文档密级项目名称版本号描述编写人审核人口不保密内部口机密1.0康耐视相机操作使用说明书余国鹰编写日期2015/9/10审核日期目录一、康耐视相机具体设置31.1 软件安装错误!未定义书签。1.2 流程编辑31 .3CODESYS通信注意事项6二、相机标定72 .1相机校准72.2 绝对坐标实现92.3 相对坐标实现10三、示教器示例程序113.1 绝对坐标实现范例113.2 相对坐标实现范例11四、CODESYS逻辑开发134.1 SOCKET通信开发134.2 外部点数据处理14五、细节说明17康耐视相机操作使用说明书康耐视相机具体设软件安装
2、双击康耐视相机软件1.2流程编辑设置电脑本地连接12I&Sisht网络31.1双击康耐视In-Sight1.1所示。双击相机设备(红色椭圆内设备图标)Cognex_In-Sight_Software_4.8.1软件进入相机设置界面,软件会自动搜索连接的相机设备,如下按照步骤一步步安装即可。1.2所示进入相机编辑界面,如下图IPV4地址为192.168.39.12(设置为39段即可)上海新时达机器人有限公司4.在应用程序步骤中,开始、设置工具、配置结果、完成这4个步骤形成一个完整的相机操作流程;开始单击“开始”中“已连接”,如下图1.3所示,可以进行连接设备、断开设备、刷新、添加等操作。
3、“实况视频”按钮是实日在“采集/加载图像";寸话框中,“触发器”按钮是进行拍照,按钮是加载一张存在的图像。中的图像,“从PC加载图像显示相机图1.3在“编辑单击“开始”中的“设星图像”,如下图1.4所示之类则会拍照成功,否则会聚购一I凰;i.4集设置”对话框中,设置1系列相就参标;根据具体需要进行调节一r具单击设置工只?中俄部件固用对检测模里g乍反识触的模亍对比;单击“设置工具”II境曲即”按钮,对模型进行编辑操作。:苣位部件”的设置对话框中如下图./1.5所示,合格阀值:每次拍照之后的得则拍照成功,否则失败;旋转公差上a部件能嬴丽'励;如果在STEP康耐视相机操作使用说明书
4、配置结果单击“配置结果”中“通信”按钮,进行通讯设置操作,如下图1.6所示。新时达机器人视觉通信采用的TCP/IP通讯方式,单击“TCP/IP:如下图1.7所示,在“TCP/IP设置”对话框中,“服务器主机名”设为192.168.39.220(机器人控制器IP地址),“端口”设置与CodeSys中相同,本例中设为9876,“超时时间”设为15000,“结束符”设为字符串(CR13)。单击“格式化输出字符串”,进行输出操作,如下图1.8所示。勾选“使用分隔符”,表示在输出之间用逗号分隔符进行隔开,方便进行数据处理操作;单击“添加”按钮,可以输出很多数据,这里只需要输出4个数据,“失败”、“定位器
5、.X”、“定位器.Y”、“定位器.角度”;输出数据说明:均为7个字节宽度,除图案.失败是整形外,其它数据均为浮点型,小数点位数为2位。1)第一位图案.失败:判定符,为0表示采集到特征,拍照成功;为1则拍照失败。2)第二位图案.定位器.X:输出用户坐标系下的X方向绝对值。3)第三位图案.定位器.Y:输出用户坐标系下的Y方向绝对值。4)第四位图案.定位器.角度:输出用户坐标系下的相对角度。上海新时达机器心心d图1.7成”中单击“运行作业”,则运行当前作业任务。图1.8完成聚,嚏成"中单击“掠存作业",血保存当前作业任务中附所在设置;在“完注意,以上参数设定必须在脱机模式下才能够
6、设置,在联机状态下参数不能设置,与外界设备实时通讯必须在联机模式下;物体旋转一定角度拍照失败,看检测部件是否超过相机视野范围和旋转角度值设置是否合理。a)b)1.3Codesys通信注意事项说明:设定PC端的IP地址,IP地址必须192.168.39.XXX,这里设定为192.168.39.12用网线与相机控制器相连;通信流程包括:建立TCPIP的服务器端弁连接,给相机发送指令,从相机接收数据;c)d)图1.7中如果把“字段分隔符”改为“停止”接;如果选择其他,则有相应的分隔符号;例:采用“消零”为“有”,”字段分隔符”,则两个数据之间就是无分隔符的直接连为“停止”的方式时,相机发送数据“-0
7、01.00”和“1010.02”时,实际上发送了“454848494648484948494846485013”(13是同车符的ASIIC码);e)在下载工程成功时,查看通讯是否连接正常。当client_congnex任务中的和server_cognex市的step_server:=2时,此时通讯成功,否则通讯step_cognex:=2不正常,需要查看设备是否连接好和In-Sight软件是否处于联机状态。f)详细指令及其他形式的通信可参考文档通信设定sdnb-cn5-714dfhfz5»。二、相机标定要实现将相机采集的数据转换为机器人坐标系下的位姿数据,必须建立相机坐标系与机器人坐
8、标系的对应转换关系,该过程通过相机标定来实现。相机也分平面相机和三维相机,前者只支持平面数据采集,后者则可以获取xyz空间值。以三维相机为例,要详细建立相机三维空间的位置与机器人坐标系的对应关系,必须通过严格的手眼标定来实现。不同相机有手眼标定算法,通过示教多个点来建立手眼转换关系。这里不详述。如果只做平面工件抓取,那只需要工件变化的坐标值x、y以及绕z轴的转动角度c,问题就简单的多,只需要进行平面的简单标定即可实现。以康耐视相机为例,格力等客户只需要实现流水线来料的抓取操作,标定平面坐标系即可,康耐视相机可以提供移动后的工件相对于移动前的偏移位置量,或者提供工件的绝对移动位置。这里,我们提供
9、这两种工作方式的实现过程。2.1 相机校准相机默认输出的坐标值是相机采集到的像素值,弁非实际工件位置尺寸,因此需要将物理坐标与像素值进行映射标定。设定校准后,可使测量结果像素值转换为实际尺寸弁输出,康耐视提供了校准参数的制作过程。1 .单击“设置图像界面右下角出现下图2.1所示界面。校准类型中有很多种,根据实际需要选择,这里选择“网格”,然后单击“校准”按钮,出现下图2.2所示界面。图2.12 .打印校准网格纸张。在图2.2中,单击“打印网格”按钮,然后将打印的网格纸张放在相机视野正中间。3 .在“设置”界面中,“网格类型”为方格图案(带基准),其它值均为默认。4 .单击“姿势”,进入姿势设置
10、界面,如图2.3所示,原点位置为默认,单击“触发器”按钮,相机会自动拍照,最后单击“校准”,校准工作就结束。5 .单击“结果”,可以查看校准情况,如图2.4所示。翎的般上海新时达机器人有限公司图2.2IVI绝对坐标的实动。具体实现由以下首先,用ste况而定,一般选择温关于用户坐标系的板其次,进行相定后,在该坐标系下过机器人协助示教方中的步骤完成相机4最后,机器人其在用户坐标系下新的位置值Y和绕Z轴的theta用度1目,。这样,只需要在示教器程序中设X康耐视相机操作使用说明书图2.46.建立检测模型。单击“定位部件”,出现如图2.5所示界面,单击“位置工具”中“图案”,然后单击“添加”,单击“O
11、K”,接着单击界面右下角“模型”,拖动绿色模型矩形框,2.2绝对坐标实现L相机均可计算出使被检测模型处于绿色矩形框中,最后单击界面右下角“训练”,此时检测模型已经建立图I2.5图2.6通过以上7步即可完成相机的校准过程。后系下证绝对位置运甚系的原点根据实际情行坐愀化标定。X、Y值(该步骤可通模块中,按照2.17.查看模型建立是否成功。在界面右侧选择板中,可0查看建立图案的情况,绿色圆点表示模型建立成功,用时会输由检测模型的位置、角度、得分,如图2.6所示。置抓取运动点参考的坐标系为用户坐标系即可,即RefSys语句下走绝对cpe点。cpe点空该Icodesys里直接读取的相机返回值。2.3相对
12、坐标实现|相对坐标的实现就比较简单,只需要将相机坐标转换为实际位置坐标即可。在工件上选I取三个特征点,用带尖机器人示教出这三点在机器人基坐标系下的坐标值(主要是X和Y)。按照2.ll中的校准流程制作出校准参数。这样,工件偏移后,相机可以直接计算出其新的坐标|X、Y和theta。I需要注意的是,使用相对坐标运动时,相机输出数据必须是相对量,即测量坐标与基准|坐标之差,而不是绝对测量坐标。具体信息见后续章节。|示教器示例程序3.1绝对坐标实现范例走到标准抓取位置(工件处于标准位置时机器人的抓取位姿,提前示教好)Lin)3);(a|tTine(uint3);,BWtime(uint4);a为获得标准
13、抓取位置需要的步骤端口号0)/发送抓取完成标志/关闭抓取完成标志.2相对坐标实现范例BOD/疝RefSyS(WORLD);PTP(ap0);LP:int0;XTSet(boolbasepos,TRUE);端口号为2,发送信号到codesys,读取当前位置作为标准Tpoftoop);/若带工具,则先加载好pTPQpI);走到一个安全位置点BOOLEXTSet(boolphoto,TRUE);发送相机拍照命令,端口号0WaitTime(uint0);等待PLC处理时间,建议在300ms以上bool0:=BOOLEXTRead(boolenableget);/读取抓取标志位,为TRUE则能抓取BOO
14、LEXTSet(boolphoto,FALSE);关闭该端口,保证下次为高电平触发IF(bool0=0)THEN为true则可抓取,否则重新发送拍照命令WaitTime(uint1);LEXTSet(boolbasepos,FALSE);关闭该端口(ref1);切到用户坐标系下Lin(rcpe0);/走到codesys里输出的绝对位置(外部点形式,BOOLEXTSet(boolfinishget,TRUE);aitTime(uint2);BOOLEXTSet(boolfinishget,FALSE);PTP(ap1);OTO(int1);/回到循环开始,等待下一个工件ool(tool0);/若
15、带工具,则先加载好PTP(ap0);走到一个安全位置点Lin(cp3);走到标准抓取位置(工件处于标准位置时机器人的抓取位姿,提前示教好)aitTime(uint3);BOOLEXTSet(boolbasepos,TRUE);端口号为2,读取当前位置作为标准抓取位置aitTime(uint4);BOOLEXTSet(boolbasepos,FALSE);关闭该端口/以上为获得标准抓取位置需要的步骤PTP(ap0);回到安全点LP:int0;BOOLEXTSet(boolphoto,TRUE);发送相机拍照命令,端口号0WaitTime(uint0);等待PLC处理时间,建议在300ms以上bo
16、ol0:=BOOLEXTRead(boolenableget);/读取抓取标志位,为TRUE则能抓取BOOLEXTSet(boolphoto,FALSE);关闭该端口,保证下次为高电平触发IF(bool0=0)THEN为true则可抓取,否则重新发送拍照命令WaitTime(uint1);GOTO(int0);END_IFLin(rcpe1);走到codesys里输出的绝对位置(外部点形式,该位置是机器人当前位置加上相对偏移,端口号1)BOOLEXTSet(boolfinishget,TRUE);/发送抓取完成标志WaitTime(uint2);BOOLEXTSet(boolfinishget
17、,FALSE);/关闭抓取完成标志PTP(ap1);GOTO(int1);/回到循环开始,等待下一个工件四、Codesys逻辑开发4.1Socket通信开发step控制器与各类相机server(服务器),相机处理器首要在codesys上完成socket通讯开发。通讯开发的要点包括协议类型、协议数据、4441逻辑判断等。一步的相机都是支持TCP/IP协议的,我们也多是采用该协议完成加由目接及数据交互的。一般来说,机器人控制器作为主机Uclient(客户端)。控制器作为主机的好处在于,控制器“知道”自己什么时候需要拍IP耳趾为192.168.39.220,端口号任意,睬、*单数据,此时给相机发送命
18、令即可。相机作为客户端始终处于监听状态。主机控制器如取为9876,用网线与相机控制器相连,在完成相机控制器的通信数据格式设定后,接下来就是codesys端编程实现。通信示例说明:casestepOF0:SAddr.sAddr:='192.168.39.120'服务器地址server(xEnable:=TRUE,ipAddr:=SAddr,uiPort:=9876);建立服务器7/7/1:IF(server.xBusy=TRUE)THENconnect(xEnable:=server.xBusy,hServer:=server.hServer);/连接IF(connect.xAc
19、tive=TRUE)THEN连接成功step:=1;/执行接收数据ENDIFIF(connect.xError=TRUE)THEN连接报错IF(server.xError=TRUE)THENstep:=3;ENDIF从相机传过来的数据以ASCII码的形式存储到recvokcr数组,数组的第一位存储的是串行数据输出中设定的首位例如设定的整数位为1,小数位为1,当相机发送一个1.0时,用BYTE型recvokcr数组“1.0回车(CR)”对应的ASCII码“49“,”62“,”48“,”13”size1:=SIZEOF(recvokcr);/数组长度precv:=ADR(recvokcr);/数组
20、地址recv(xEnable:=TRUE,hConnection:=connect.hConnection,szSize:=size1,pData:=precv);/IF(recv.szCount>7)THEN/判断是否收到数据输出,这里的数字应小于数据总长度接收数据step:=5;数据处理END_IFIFrecv.xErrorTHEN/接收数据报错step:=3;ENDIFM回车(CR)”命令可以采集一张图片2:size2:=SIZEOF(senddata);/数组长度psend:=ADR(senddata);/指令地址send(xExecute:=TRUE,hConnection:=
21、connect.hConnection,szSize:=size2,pData:=psend,udiTimeOut:=1000000);发送成功IF(send.xDone=TRUE)THEN/函数复位send(xExecute:=FALSE);step:=1;ENDIF发送报错IF(send.xError=TRUE)THEN/send(xExecute:=FALSE);step:=3;ENDIF5:step:=99;99:step:=0;ENDCASE.2外部点数据处理在步骤1.1通过socket实现控制器与相机的通信连接及数据收发处理后,本步骤主要完成获取示教器输入获取拍照命令获取完成抓取命
22、令/获取标准抓取位置命令/(*获取标准抓取位置(当前通过io语句发送命令实现,端口号为GetHMIBOOL(Enable:=TRUE,PortNumber:=0,Data=>ReqGet);GetHM旧OOL(Enable:=TRUE,PortNumber:=1,Data=>FinishGet);GetHMIBOOL(Enable:=TRUE,PortNumber:=2,Data=>BasePosGet);/以ASCII码的形式从senddata数组传给相机,给相机发送“senddata1:=16#0D;/回车(CR)的ASCII码,16进制表示(欧姆龙相机用MCR来发送数据
23、)/数据处理程序??senddata0:=16#4D;/M的ASCII码,16进制表示,是单次测量的指令。2)*)注意,多数socket函数都是上升沿执行,所以在调用后,应在合适的地方将其关闭(给下H沿),这样下一周期执行时才会继续生效。否则可能造成函数执行无效,程序死循环卡死在步、或者报错处理。与HMI的命令收发处理以及外部cpe点位置计算与返回。完整流程逻辑如下:IF(BasePosGet=TRUEAND(BasePosCount=0)THENBasePosCount:=1;ReadRefSys(Enable:=TRUE,RefSys=>RefSys_qz);/注意,ReadRefS
24、ys读出来的当前坐标系的ABC为弧度,需要转换为角度RefSys_qz.a:=RefSys_qz.a*R2D;RefSys_qz.b:=RefSys_qz.b*R2D;RefSys_qz.c:=RefSys_qz.c*R2D;IReadTCPData(Enable:=TRUE,RefSys:=RefSys_qz,CartPos=>BasePos);/注意,当前读取用户坐标的位置值NDIF二BasePosGet=FALSETHENBasePosCount:=0;/(*请求相机数据并计算抓取外部点ENDIF(与通讯部分分开使用,通过标志符确定是否获取数据成功trig(CLKkTakePhoP
25、LC);IFrtrig.Q=TRUETHENTakePhoPLC:=FALSE;/baseTCP为标准抓取位置baseTCP.x:=BasePos.x;baseTCP.y:=BasePos.y;baseTCP.z:=BasePos.z;baseTCP.a:=BasePos.a*D2R;baseTCP.b:=BasePos.b*D2R;baseTCP.c:=BasePos.c*D2R;/Tpos为相机输出数据Tpos.a:=0;Tpos.b:=0;Tpos.c:=server.Pos_c*D2R;/以下过程为坐标变换,将相机坐标系下的角度theta转换到用户坐标系下FB_Cartpos2Homo
26、matrix_0(SR_RefSys_0:=baseTCP);baseTCP_homomatrix:=FB_Cartpos2Homomatrix_0.Ref_Homomatrix;FB_Cartpos2Homomatrix_1(SR_RefSys_0:=Tpos);basecamera_homomatrix:=FB_Cartpos2Homomatrix_1.Ref_Homomatrix;FB_MulHomomatrix_0(homomatrix_1:=basecamera_homomatrix,homomatrix_2:baseTCP_homomatrix);T0TCP:=FB_MulHomo
27、matrix_0.homomatrix_out;(*changetoxyzabc*)FB_Homomatrix2Cartpos_0(Ref_Homomatrix:=T0TCP,SR_RefSys_0=>SR_test);FB_Homomatrix2Cartpos_0(Ref_Homomatrix:=T0TCP,SR_RefSys_0=>SR_RefSys_0);SR_RefSys_0.a:=SR_RefSys_0.a*R2D;SR_RefSys_0.b:=SR_RefSys_0.b*R2D;SR_RefSys_0.c:=SR_RefSys_0.c*R2D;绝对坐标输出,端口号0EXTPos.x:=server.Pos_x;/x和y值用相机输出数据EXTPos.y:=server.Pos_y;EXTPos.z:=BasePos.z;/z、a、b用标准抓取位置值EXTPos.a:=BasePos.a;EXTPos.b:=BasePos.b;EXTPos.c:=SR_RefSys_0.c;/theta用转换过的角度SetCartPos(Enable:=TRUE,PortNumber:=0,RobotCartPos:=EXTPos);相对坐标输出,端口号1EXTPos_1.x:=BasePos.x+server.Pos_x;EXTPos_1.y:=BasePos.y+se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纸制品行业生产流程优化与质量控制考核试卷
- 电子出版物批发商的跨国合作与海外市场拓展考核试卷
- 节能型纺织机械驱动系统考核试卷
- 肥料产业国际合作与交流考核试卷
- 宝石检测设备的技术进展与准确性考核试卷
- 矿产勘查环境保护与生态文明建设考核试卷
- 零售行业商品识别系统租赁与培训协议
- 通信设备质量检测与纠纷解决补充协议
- 医疗废物高温处理厂项目投资合作协议书
- 在线教育平台虚拟教学场景设计与承包协议
- 2025专利代理师笔试考试题库带答案
- 第3课《校园文化活动我参与》教案 海燕版综合实践活动 三年级下册
- 2025年保密教育线上培训考试试题及答案
- 大学生职业规划大赛《运动康复专业》生涯发展展示
- 高楼遮光补偿协议书范本
- 2025届百师联盟高三联考模拟预测(冲刺二)语文试题含答案
- 潜山油气藏勘探与开发
- 水利水电工程土工合成材料应用技术规范
- 医药物流项目可行性研究报告
- 乳腺癌患者生命质量测定量表FACT
- 本溪市生活垃圾焚烧发电项目可行性研究报告
评论
0/150
提交评论