基于TCP/IP協(xié)議實(shí)現上位機對UR機器人的遠程控制
圖3IO控制
4、Dashboard端口
上位機可以通過(guò)29999端口直接發(fā)送一些簡(jiǎn)單的指令給機器人,這些指令是UR自己定義的,這種功能被稱(chēng)為Dashboard。下表就是Dashboard的指令列表。
指令描述
load.urp>加載被保存在控制器中的程序
getloadedprogram返回當前機器人執行的程序
play啟動(dòng)當前加載的程序
stop停止機器人當前執行的程序
pause暫停機器人當前執行的程序
isProgramSaved當前機器人正在執行的程序是否被保存,返回“True”或“False”
programState當前程序的運行狀態(tài),返回“PLAYING”或“STOPPED”或“PAUSED”
shutdown關(guān)閉機器人系統
running機器人的運行狀態(tài),返回“True”或“False”
robotmode訪(fǎng)問(wèn)機器人模式
popupPolyscope跳出對話(huà)框
closepopup關(guān)閉對話(huà)框
addToLog將消息添加到logfile中
setUserRole,whereisclass設置用戶(hù)權限
polyscopeVersion返回當前Polyscope的版本號
poweron使機器人本體通電
poweroff使機器人本體斷電
brakerelease釋放制動(dòng)器
safetymode返回機器人當前所處的安全模式狀態(tài)
表3Dashboard指令列表
顯而易見(jiàn),我們可以通過(guò)一些Dashboard指令,遠程切換、加載程序,同時(shí)可以啟動(dòng)、暫停、停止程序,這樣上位機就可以遠程控制程序了。
5、上位機編程端口
UR機器人有3種編程方式:Polyscope編程、腳本編程以及C-API編程。Polyscope編程指的是程序在示教器上被編輯,機器人然后執行,這是UI層的編程方式。C-API編程是在研發(fā)層上的編程方式。我們重點(diǎn)介紹的是腳本編程方式,腳本編程的語(yǔ)言是UR公司在python語(yǔ)言基礎上,自己研發(fā)的URScript語(yǔ)言。URScript是在腳本層上控制機器人的編程語(yǔ)言,就像其他編程語(yǔ)言一樣,它有變量類(lèi)型,語(yǔ)法結構、方法等。另外,它有一系列的專(zhuān)用方法來(lái)控制機器人運動(dòng)以及IO狀態(tài)。
UR機器人的控制器是運行在Mini-ITXPC上的,一旦PC啟動(dòng)機器人控制器(就像啟動(dòng)服務(wù)一樣),Polyscope軟件就通過(guò)PC本地的TCP/IP端口與機器人控制器建立連接了。同樣,當上位機作為客戶(hù)端,通過(guò)30001或30002或30003特定的編程端口,與機器人控制器建立TCP/IP連接,這樣我們就可以在上位機上按照URScript語(yǔ)言的格式編寫(xiě)腳本程序,直接發(fā)送給機器人控制器,機器人就可以直接執行程序了。
按照上面所述的機器人腳本編程原理,我就可以在上位機上制作如下界面,實(shí)現對UR機器人的遠程編程。
圖4腳本編程
6、實(shí)時(shí)反饋端口
30001、30002、30003除了用于遠程編程外,還有其他功能,如下表所述。
端口名稱(chēng)功能
30001第一客戶(hù)端端口客戶(hù)端可發(fā)送腳本代碼至服務(wù)器;服務(wù)器自動(dòng)以5Hz的頻率返回機器人狀態(tài)與補充消息到客戶(hù)端。
30002第二客戶(hù)端端口客戶(hù)端可發(fā)送腳本代碼安全文件傳輸協(xié)議;服務(wù)器自動(dòng)以5Hz的頻率返回機器人狀態(tài)與消息到客戶(hù)端。
30003實(shí)時(shí)反饋端口客戶(hù)端可發(fā)送腳本代碼安全文件傳輸協(xié)議;服務(wù)器自動(dòng)以125Hz的頻率返回機器人狀態(tài)與消息到客戶(hù)端。
評論