CS机器人视觉引导上下(2D相机)
1. 简介
随着工业的发💀展🚽,在生产中对自动化的【dòng huà de】🕡要求越【yào qiú yuè】来越高♑,视觉技术已被广泛引入机器人【jī qì rén】行业,具备视【jù bèi shì】觉的机👳器人能【qì rén néng】更快、更准💽、更灵活【gèng líng huó】地完成【dì wán chéng】定位抓【dìng wèi zhuā】🗃取、对位组🔕装等。基于图【jī yú tú】像分析【xiàng fèn xī】的视觉技术在🏮机器人【jī qì rén】引导相💇关应用中的主【zhōng de zhǔ】要作用💔是精确获取对✋象物(待抓取
物体【wù tǐ】🏴)和目标🧤物(待组装【zhuāng】物体【wù tǐ】🏴)的坐标位置和角度,并将图【bìng jiāng tú】像坐标【xiàng zuò biāo】转换为(工业机👻械臂⏪)机器人🔗能识别的机器【de jī qì】🤥人坐标,指导(机器人🔗进行纠偏和组【piān hé zǔ】装【zhuāng】。因此,手眼标【shǒu yǎn biāo】定和定【dìng hé dìng】位引导是机器【shì jī qì】视觉在🎯机器人🔗引导中应用的📃的核心【de hé xīn】🚯
1.1 手眼标定原理
原理:所谓手眼标定,即将手🗻(机械手【jī xiè shǒu】)和眼【hé yǎn】(摄像机🍖)的坐标【de zuò biāo】系统一起来🔏,解决相【jiě jué xiàng】机与机🍫械【xiè】手之间📡的坐标【de zuò biāo】转换关系,让机械手【jī xiè shǒu】能精确抓取到摄像🏘机定位【jī dìng wèi】的目标🐉。
1.2 CS 机器人搭配视觉工作流程
CS 机器人⚾搭配🍛 2D 视觉,常用于偏移取料【liào】。常见流【cháng jiàn liú】程【chéng】:来料【liào】位🍎置不固【zhì bú gù】📴定,视觉在【shì jiào zài】固定高位对产品拍照【pǐn pāi zhào】,算出产🥔品位置【pǐn wèi zhì】😸后把数💉据发给机器人⚾,机器人⚾走到对应取料【liào】位夹取【wèi jiá qǔ】产品后再去放🥢料【liào】。如 果没有【guǒ méi yǒu】视觉,也可以【yě kě yǐ】🧑用电脑【yòng diàn nǎo】🤪网口调试助手🦊和电脑🔮虚拟机【xū nǐ jī】搭配🍛测试【cè shì】,模拟视觉,用网口🍰助手发对应偏🎎移数据给到机【gěi dào jī】器人⚾运动【yùn dòng】🐜。
1.3 运行前准备
1.3.1 检查网络是否连通
插好网线【xiàn】,将机器人 IP 和视觉 IP 设置成【shè zhì chéng】🏝同网段【tóng wǎng duàn】⏫(前三位相同,后一位【hòu yī wèi】不同【bú tóng】🤵),然后在🙀视觉电脑终【diàn nǎo zhōng】🦋端【duān】⏱ ping 机器人 IP,看是否能💮 ping 通,确认网络有连通。
1.3.2 示教机器人的【qì rén de】🦋工具 TCP 和用户👴坐标系【zuò biāo xì】
确认机器人的工具🦆 TCP,可以用【kě yǐ yòng】四点【diǎn】法把 TCP 点【diǎn】做到🥀吸盘【xī pán】🎰/夹爪中点【diǎn】,也可以不做,默认在法📣兰中心❔,在做旋【zài zuò xuán】转中心标定时【biāo dìng shí】🦀用这个【yòng zhè gè】工具🦆 TCP。
确认机器人的【qì rén de】🤷坐标系【zuò biāo xì】💅,可以利【kě yǐ lì】用基座坐标系【zuò biāo xì】💅,也可以【yě kě yǐ】🏹先新建用户坐标系【zuò biāo xì】💅,然后标🤡定时使
用对应的用户坐标系
注【zhù】😮:1.机【jī】器人采用的单位是 m 和弧度制【zhì】,相机【jī】发送过来的一般【de yī bān】是 mm 和角度🐦制【zhì】,需要在【xū yào zài】🚉机【jī】器人端【qì rén duān】或在相🦅机【jī】端转👭换💚。
2.TCP/IP 通讯需🍂要使用🔐 FB2 口【kǒu】,需在网【xū zài wǎng】络里配【luò lǐ pèi】置 FB2 网口【kǒu】 IP 地址🎹
1.3.3 9 点【diǎn】标定🚑方向【fāng xiàng】🔙+3 点【diǎn】标定🚑旋转 TCP 点【diǎn】
本案例🚚采用 9 点标定视觉方🕣向与机器人基座标系【zuò biāo xì】 X/Y /Z 方向一致【zhì】,每次移动【dòng】🙅 合适距⏭离【lí】。
采用 3 点标定视觉旋📞转中心【zhuǎn zhōng xīn】与机器💪人工具【rén gōng jù】 TCP 相同【xiàng tóng】。如图🏑

2. 案例分享
2.1 案例简介
机器人到固定位置取料【liào】🤼,然后去【rán hòu qù】拍照,获取偏【huò qǔ piān】差值【zhí】或👁者绝对【zhě jué duì】🏚值【zhí】🧒,以此来调整放料【liào】🤼位置
PLC+2D 相机+CS 机器人
PLC 与机器【yǔ jī qì】人【rén】💐通讯协议🙈:profinet,机器人【rén】💐做从站(CS-profinet 本文配【běn wén pèi】置流程不再详🆑细介绍)
相机和【xiàng jī hé】机器人【jī qì rén】📷通讯协议【yì】😊:TCP/IP,机器人【jī qì rén】📷做客户🍞端

2.2 IO 定义
根据项目需求定义 IO 表

2.3 机器人配置
2.3.1 机器人基本配置
1.安装方式(默认正装)
2.负载设置【zhì】(设置【zhì】负👩载和重心【xīn】,如设置【rú shè zhì】📹不正确,会影响【huì yǐng xiǎng】🕠拖动效果和碰撞灵敏度💍)
3.根据需【gēn jù xū】💄求看是【qiú kàn shì】否需要🔦设置工🔦具坐标 3.根据需【gēn jù xū】💄求看是【qiú kàn shì】否需要🔦设置用户坐标【hù zuò biāo】
4. FB2 网口 IP 要和相📟机【jī】💓工控机【gōng kòng jī】💓 IP 设置同一网段
5. 安装需要的插件:寄存器监视插件
(使用【shǐ yòng】📜到的寄存器【cún qì】👋都需要重命名,方便在程序中【chéng xù zhōng】使用【shǐ yòng】📜,特别是【tè bié shì】整数寄🍰存器【cún qì】和🏆浮点寄存器【cún qì】👋,否则【fǒu zé】
程序中无法选择该信号)

(注意:CS 机器人【jī qì rén】🔂 PN 名称,无法由🎶 PLC 分配,只可机器人【jī qì rén】🔂配置内【pèi zhì nèi】更改【gèng gǎi】🏛)
2.3.3 安全原点输出
可配置🤤输出主【shū chū zhǔ】要配置【yào pèi zhì】💿安全原【ān quán yuán】🏧点信号,即机器人在 Home 位自动输出一个信号
安全原点信号配置步骤:
1.设置原点
2.设置安全原点
3. 安全 IO 配置
3.1 首先【shǒu xiān】【配置🍴】【通用🅱】里面找到【原点】 置一个机器人【jī qì rén】原点,根据现【gēn jù xiàn】场实🌓际情况进行设【jìn háng shè】置,后期修改原点🍅也可直【yě kě zhí】接编辑🥣位置【wèi zhì】💸。

3.2 设置安全原点
然后再进入🍥【配置【pèi zhì】】【安全【ān quán】】【安全【ān quán】原🌐点】 输入之前设置【qián shè zhì】好的安【hǎo de ān】🏵全密码, 然后参【rán hòu cān】🔎考原点选择刚刚设置【gāng shè zhì】😈的原点,点击应用,安全【ān quán】原🌐点就配置【pèi zhì】好了🍎

3.3 原点信【yuán diǎn xìn】🗜号输出
最后在【zuì hòu zài】🧛【配置🥟】【安全【ān quán】】【安全【ān quán】 IO】中选择【zhōng xuǎn zé】可配置🍑输出 IO,选择其【xuǎn zé qí】中一组信号【xìn hào】🐪,然后配置🥟成【chéng】需要的安全【ān quán】原🏩点信号【xìn hào】🐪,这样就【zhè yàng jiù】可以机【kě yǐ jī】🕘器人处于原点❣位置时,可以在可配置🍑 IO 输出的端口读🏧到输出信号【xìn hào】🐪。
注意📻:设置完【shè zhì wán】安全原🎴点后,如果更【rú guǒ gèng】新了原【xīn le yuán】点位置,安全原🎴点信号【diǎn xìn hào】🦔是没法在新的🕎原点位置输出
的,需按上面步骤🍺,把第二步重新【bù chóng xīn】💦进行更【jìn háng gèng】新一次【xīn yī cì】🛸原点【yuán diǎn】💒,这样就可以输🚀出新的原点【yuán diǎn】💒信号给【xìn hào gěi】外部设
备了。

可以通过【guò】 profinet 通信协👾议读取安全原【ān quán yuán】😇点🆘,也可以【yě kě yǐ】🌼通过【guò】已配置好【pèi zhì hǎo】的可配置输出信号。
2.3.4 主程序和释放抱闸配置
在启动🐔选项卡配置开【pèi zhì kāi】机自动加载任【jiā zǎi rèn】务文件,即主程【jí zhǔ chéng】😤序🦍
自动释放抱🌪闸配置后🌌,机器人收到这【shōu dào zhè】🏡个上升【gè shàng shēng】🎴沿信号后,会依次👞打【dǎ】开电源【yuán】,释放抱🌪闸,若已经【ruò yǐ jīng】打【dǎ】
开电源,会直接释放抱闸
注🚽:启动任务数字🎧输入可不配置【bú pèi zhì】,这个信【zhè gè xìn】号只有🥒开机后【kāi jī hòu】第一次【dì yī cì】启动任务有效🦓,如中途🛃暂停或【zàn tíng huò】停止后信号无效

2.3.4 启动信号配置
(需要安装寄存器插件,向漫蛙【xiàng màn wā】🏷工程师获取或【huò qǔ huò】者点击【zhě diǎn jī】💉可下载💷 RegisterMonitor-1.2.6.0.elico)
配置【pèi zhì】-通用【tōng yòng】-IO,这里主🍔要重命名信号【míng xìn hào】🚐,如果不重新命名【míng】,在 IO 配置【pèi zhì】中🥒无法选择此信🛹号
输入信号:

输出信号:如上图
2.4 机器人接线
2.4.1 远程开关机
机器人开机步骤:1.控制柜电源打开
2.点击示【diǎn jī shì】🔅教器上的开机按钮(可以通过接线【guò jiē xiàn】实现【shí xiàn】📉,如下图🐓)
B2

2.4.2 急停接线

2.4.3 网络连接【jiē】🅰

2.4.4 远程模式
外部控制机器人【jī qì rén】🛩启动需要将【yào jiāng】🥖机器人【jī qì rén】🛩模式改🔬为远程模式。

2.4.5 启动时序
1.远程开机或者示教器点击开机按钮
2.PLC 给机器人发送【rén fā sòng】自动释放抱闸【fàng bào zhá】🍱信号🦈,等待机器人反馈抱闸已释放【yǐ shì fàng】信号🦈
3.在机器🐵人无急停无报【tíng wú bào】错信号🐥情况下【qíng kuàng xià】🐏,给机器【gěi jī qì】人一个【rén yī gè】启动信号🐥,等待机🏷器人运🔚行中信号🐥反馈,如【rú】
果超过 2 秒🤔,未收到【wèi shōu dào】📄机器【qì】人🐃运行中信号【xìn hào】,关闭启🥉动信号【xìn hào】 0.5 秒🤔,再次启⏲动,循环直【xún huán zhí】到收到启动信【qǐ dòng xìn】号 止如需要程序【yào chéng xù】👷重新开始,则给机【zé gěi jī】器【qì】人🐃停止信号【xìn hào】,机器【qì】人🐃反馈停止中【zhǐ zhōng】📋,关闭停止信号【xìn hào】,再给机【zài gěi jī】器【qì】
人启动【rén qǐ dòng】信号➿,机器人反馈运【fǎn kuì yùn】👩行中,再关闭启动信【qǐ dòng xìn】号➿
4. 如需暂停任务,可配置暂停信号。
3.相机标定
机器人【jī qì rén】要与相【yào yǔ xiàng】机进行🥁 9 点标定或 3 点旋转♊。若创建【ruò chuàng jiàn】了坐标🍑系【xì】,则给相机的点位要在🔘创建的【chuàng jiàn de】🔠坐标
系下的点位
9 点标定🧙是为了建立相🅰机坐标【jī zuò biāo】系和机【xì hé jī】器人坐💽标系之间的变【jiān de biàn】换关系
3 点旋转【diǎn xuán zhuǎn】🛴是为了💈旋转中心与机【xīn yǔ jī】器人工🧠具【jù】 TCP 一致
标定按【biāo dìng àn】照下图顺序进行🍰,即机器【jí jī qì】人依次到达【dào dá】📤 12 个点位,并把这【bìng bǎ zhè】🌗 12 个点位坐标给【zuò biāo gěi】🎷到相机不同厂🕎家的相🕌机 9 点标定的顺序【de shùn xù】可能不同🎏,可按情况进行【kuàng jìn háng】🍰调整

3.1 标定程序
定义和 PLC 通信的两个整形寄存器:
输入:标定位置编号
输出:反馈位置编号
PLC 通过标定位置【dìng wèi zhì】编号赋👼值🉐,让机器😶人执行对应标【duì yīng biāo】定位置【dìng wèi zhì】,机器人到达位置后【zhì hòu】,并反馈位置标【wèi zhì biāo】❣
号👾,反馈正确,让相机记录相关信息,此时可【cǐ shí kě】🧗以执行【yǐ zhí háng】💯标定【biāo dìng】。
注意:可以自【kě yǐ zì】👩定义 X 方向偏【fāng xiàng piān】🔀移距离【yí jù lí】🍨(doffsetX),Y 方向偏【fāng xiàng piān】🔀移距离【yí jù lí】🍨(doffsetY)和旋转角度
(doffsetT),doffsetX 和【hé】 doffsetY 单位是米【mǐ】, CamNum 是相机🏃标定位置编号【zhì biān hào】,可以利🏞用 PLC 往里面传递🧤参数【cān shù】,可以实现根据相机的【xiàng jī de】⛔需要自动标定💘,


4.机器人程序
4.1 机器人动作流程
机器人搭配视觉的动作流程如下图 :

4.2 机器人🧐收相对坐标【zuò biāo】
机器人🧔收到视【shōu dào shì】⬆觉发送过来的【guò lái de】坐标是相对值【xiàng duì zhí】,也就是【yě jiù shì】🚭相对取料基准位的偏👷移,机器人🧔在取料
基准位【jī zhǔn wèi】上加上视觉发过来的【guò lái de】偏移量(dx,dy,rz),到达纠偏后的【piān hòu de】🎏取料位🧗。程序如🎏下图 。

网口通讯程序 socket_tcpip.script 如下图【rú xià tú】⏯ :

接收视📬觉坐标脚本程【jiǎo běn chéng】序 receive.script 如下图💾 6。视觉发过来的💽数据按照【zhào】🌘:"OK,1,2,3#"格式,第【dì】 1 位数代【wèi shù dài】🐺表标志符,拍照【zhào】🌘成功发送【sòng】"OK",拍照【zhào】🌘失败发【shī bài fā】送【sòng】"NG";第【dì】 2,3,4 位数分🚋别是 X,Y,RZ 方向的偏移,数据用","隔开【gé kāi】🍼,末尾用"#"作为结🏐束符【shù fú】😷。

4.3 机器人【jī qì rén】收绝对🏝坐标
机器人🥔收到视【shōu dào shì】觉发送过来的【guò lái de】坐标是🙍相对值【xiàng duì zhí】,也就是🌎相对取💊料基准位的偏移【yí】🌵,机器人🥔在取料【zài qǔ liào】基准位上加上视觉发过来的【guò lái de】偏移【yí】🌵量(dx,dy,rz),到达纠🍝偏后的【piān hòu de】取料位。程序如【chéng xù rú】😔下图 。

机器人接收数据脚本如下图
