康耐视相机与发那科机器人通过Ethernet I/P直连与程序编写

配置TCP/IP:按MENU---SETUP---NEXT---HOSTCOMM,选择TCP/IP---按ENTER或者F3[DETAIL]

Port#1 IP addr:输入机器人IP地址,按ENTER后输入,如192.168.1.11;如果控制柜有2个网络端口,则按F3[PORT]进行切换Port#1或者Port#2。

Subnet Mask:子网掩码,默认为255.255.255.0;

Router IP addr:路由IP地址,可不设置;

Host Name:输入主机(plc)名称,按ENTER后输入,如PLC;

Internet Address:输入主机(plc)IP,按ENTER后输入,如192.168.1.10前三位与机器人IP必须一致。

上述设定完毕后,机器人重启。重启后置光标在Host Name下的CAMERA所在行,按下F4 [PING],确认该IP地址已被识别。

Ethernet I/P设置

机器人侧Ethernet I/P 参数

MENU――I/O――NEXT――选择EtherNet/IP

首先确认Enable状态为FALSE,然后将光标移至TYP列,按F4键切换成SCN。再将光标移至Connection1列,按F4 [CONFIG]

Name/IP address:192.168.1.10,即前面设定的相机地址;

Vendor Id:厂商ID,参见相机软件的eds文件;

Device Type:设备类型,参见相机软件的eds文件;

Product code:产品代码,参见相机软件的eds文件;

Input size:输入容量;

Output size:输出容量;

RPI(ms):32;

Assembly instance(input):输入Assembly实例,参见相机软件的eds文件;

Assembly instance(output):输出Assembly实例,参见相机软件的eds文件;

Configuration instance:配置容量。

按PREV返回上层菜单,Status变为PENDING,同时置Enable为True,重新启动机器人,重启后如Status显示为RUNNING,表示已联机。

GI_X_Position:X方向偏移值

GI_Y_Position:Y方向偏移值

GI_Angle:r方向偏移值

GI_X_Negative:X方向偏移值的正负(默认X方向偏移值为负时,此信号置ON;也可取反)

GI_Y_Negative:Y方向偏移值的正负(默认Y方向偏移值为负时,此信号置ON;也可取反)

GI_A_Negative:r方向偏移值的正负(默认r方向偏移值为负时,此信号置ON;也可取反)

GI_X_Position为DI[97-112],GI_Y_Position为DI[113-128],GI_Angle为DI[129-144],GI_X_Negative为DI[145],GI_Y_Negative为 DI[146],GI_A_Negative为DI[147]。由于后三组信号都是一个独立的信号,所以可以不用分配到GI中,直接在程序中调用DI即可。

相机校准

1设定坐标系。

设定机器人的用户坐标系和工具坐标系。

​2 相机校准

1)找一张白纸,并在纸上画4个以上的清晰点。或者由康耐视工程师提供标定板。

2)用建立好的TCP寻找纸上点的并在相应用户坐标系下记录这些点的坐标。点位的顺序要确定。

3)让相机拍照,并且让相机找出所有点的像素坐标。(只拍一次照,拍全所有的点)

4)相机把像素坐标和用户坐标按顺序对应起来并计算好。接下来相机就可以把像素坐标转换成空间坐标了。

3 计算偏移(康耐视相机内部处理)

1)找出视野的尺寸。

2)用数学公式求出每个像素的宽度:

3)每个像素宽度=视野的长(或宽)除以视野的的长的个数(宽的个数)

4)相机做一个基准位。

5)求出后面拍照得出的点位和基准位的偏差,其偏差乘以每个像素的宽度,得出的最终数据传回给机器人。

7. 编写程序

DO[30]对应DO_Trig_Enable(相机使能),DI[30]对应DI_Trig_Ready(相机使能反馈),DO[31]对应DO_Trigger(相机拍照),DI[31]对应DI_Trig_Ack(相机拍照)。DI[39] 对应DI_Inspect_Comp(获取到数据并检查完成)。

编写拍照程序如下:

1: DO[30:TRIG ENABLE]=ON ; 相机使能

2: WAIT DI[30:TRIGGER READY]=ON ; 相机使能确认

3: DO[31:TRIGGER]=ON ; 相机拍照

4: WAIT DI[31:TRIGGER ACK]=ON ; 相机拍照完成确认

5: DO[31:TRIGGER]=OFF ; 关闭相机拍照

6: IF DI[39:INSPECT COMPLETE]=OFF,JMP LBL[2] ;检查确认

7: ;

8: LBL[1] ;

9: WAIT DI[39:INSPECT COMPLETE]=OFF ;

10: JMP LBL[3] ;

11: ;

12: LBL[2] ;

13: WAIT DI[39:INSPECT COMPLETE]=ON ;

14: ;

15: LBL[3] ;

/END

注:程序从第六行到最后的意思是:相机获取到数据并检查完成后DI[39]会改变一次状态。也就是说第一次拍照成功DI[39]=ON,第二次拍照成功DI[39]=OFF,依次交替,并不是每次拍照成功DI[39]都会变成ON。

编写获取偏移值程序如下:

1: PR[8:COGNEX OFFSET]=PR[7:ZERO] ; 初始化(Z、w、p值为0)

2: IF (DI[497:-X]=OFF) THEN ; 如果偏移值为正

3: R[21:X]=GI[1:X OFFSET]/1000 ; 因为组信号时二进制转换成十进制,所以只能接收整数,因此除以100还是1000取决于相机把偏移值乘以100还是乘以1000发给机器人

4: ELSE ; 如果偏移值为负

5: R[21:X]=GI[1:X OFFSET]/(-1000) ; 除以(-1000),值为负数

6: ENDIF ;

7: ; 下同

8: IF (DI[498:-Y]=OFF) THEN ;

9: R[22:Y]=GI[2:Y OFFSET]/1000 ;

10: ELSE ;

11: R[22:Y]=GI[2:Y OFFSET]/(-1000) ;

12: ENDIF ;

13: ;

14: IF (DI[499:-r]=OFF) THEN ;

15: R[23:r]=GI[3:r OFFSET]/1000 ;

16: ELSE ;

17: R[23:r]=GI[3:r OFFSET]/(-1000) ;

18: ENDIF ;

19: ;

20: PR[8,1:COGNEX OFFSET]=R[21:X] ; 把X偏移值赋值到PR[8]的X

21: PR[8,2:COGNEX OFFSET]=R[22:Y] ; 把Y偏移值赋值到PR[8]的Y

22: PR[8,6:COGNEX OFFSET]=R[23:r] ; 把r偏移值赋值到PR[8]的r

23: ;

24: PR[13:PICK ACTUAL]=PR[27:PICK REF]+PR[8:COGNEX OFFSET] ; 实际抓取位置=基准抓取位置+偏移

/END

8. 注意事项

在配置Ethernet I/P时, Input/Output size要和相机对应上,确认是以Words为单位还是以Bytes为单位。

相关推荐
朴拙数科2 小时前
交易生态全解析:聚合交易平台 交易策略平台 技术策略提供方 交易机器人平台 资管、支付平台 社交交易社区 跟单平台在饼圈量化的定义和关系是怎样的?
大数据·机器人·区块链
软件算法开发3 小时前
机器人路径规划和避障算法matlab仿真,分别对比贪婪搜索,最安全距离,RPM以及RRT四种算法
matlab·机器人·rpm·路径规划·rrt·贪婪搜索·最安全距离
Robot2513 小时前
「地平线」副总裁余轶南与「理想汽车」智驾产品总监赵哲伦联手创业,入局具身智能赛道!
大数据·人工智能·机器人·汽车
HyperAI超神经12 小时前
未来具身智能的触觉革命!TactEdge传感器让机器人具备精细触觉感知,实现织物缺陷检测、灵巧操作控制
人工智能·深度学习·机器人·触觉传感器·中国地质大学·机器人智能感知·具身触觉
中关村科金1 天前
中关村科金智能客服机器人如何解决客户个性化需求与标准化服务之间的矛盾?
人工智能·机器人·在线客服·智能客服机器人·中关村科金
lshzdq2 天前
【机器人】机械臂轨迹和转矩控制对比
人工智能·算法·机器人
夜幕龙2 天前
iDP3复现代码数据预处理全流程(二)——vis_dataset.py
人工智能·python·机器人
望获linux2 天前
赋能新一代工业机器人-望获实时linux在工业机器人领域应用案例
linux·运维·服务器·机器人·操作系统·嵌入式操作系统·工业控制
ai_lian_shuo2 天前
四、使用langchain搭建RAG:金融问答机器人--构建web应用,问答链,带记忆功能
python·ai·金融·langchain·机器人
我爱C编程3 天前
基于Qlearning强化学习的机器人路线规划matlab仿真
matlab·机器人·强化学习·路线规划·qlearning·机器人路线规划