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