徐呈藝,陳廣健,徐曉峰,焦恩璋
(1.南通職業(yè)大學(xué)機(jī)械工程學(xué)院,江蘇南通 226007;2.江蘇蘇美達(dá)集團(tuán)公司,南京 210018;3.南京林業(yè)大學(xué)機(jī)械電子工程學(xué)院,南京 210037)
MOTOMAN工業(yè)機(jī)器人的運(yùn)動(dòng)控制和程序編制一般是通過示教盒來實(shí)現(xiàn),其功能相對比較簡單,控制范圍半徑較小,在惡劣的環(huán)境下,其作用就會(huì)受到限制。隨著計(jì)算機(jī)技術(shù)高速發(fā)展和工業(yè)自動(dòng)化水平不斷的提升,實(shí)時(shí)控制系統(tǒng)的研究成為機(jī)器人技術(shù)研究領(lǐng)域的一個(gè)熱點(diǎn)[1]。主控計(jì)算機(jī)可通過控制系統(tǒng)的人機(jī)控制界面直接對機(jī)器人進(jìn)行控制,可加大原有對機(jī)器人的控制范圍,給操作人員創(chuàng)造了一個(gè)良好、安全的操作環(huán)境。本文以MOTOMAN-UP6機(jī)器人為對象,采用VC++語言開發(fā)了工業(yè)機(jī)器人實(shí)時(shí)控制平臺(tái),為實(shí)現(xiàn)基于視覺技術(shù)的機(jī)器人搬運(yùn),分揀等實(shí)時(shí)控制作業(yè)打下了重要的基礎(chǔ)。
這里研究的工業(yè)機(jī)器人實(shí)時(shí)控制系統(tǒng)由主控計(jì)算機(jī),UP6機(jī)器人、YASNAC-XRC控制柜和攝像頭組成,如圖1,UP6 機(jī)器人具有 S,L,R,U,B 和 T 六個(gè)轉(zhuǎn)動(dòng)關(guān)節(jié)[2]。由于YASNAC-XRC控制柜不支持以太網(wǎng)通信,因此,工業(yè)機(jī)器人通過標(biāo)準(zhǔn)的RS232串口和主控計(jì)算機(jī)進(jìn)行通訊,可以向工業(yè)機(jī)器人發(fā)送控制指令或作業(yè)程序,并接收機(jī)器人反饋信息[3-4]。
本文研究的機(jī)器人實(shí)時(shí)控制平臺(tái)主要有“狀態(tài)命令”、“操作命令”和“其他功能”三個(gè)模塊組成,采用Visual C++6.0語言設(shè)計(jì)的UP6機(jī)器人實(shí)時(shí)控制的軟件界面設(shè)計(jì)如圖2所示。
圖1 工業(yè)機(jī)器人控制系統(tǒng)組成
圖2 UP6機(jī)器人實(shí)時(shí)控制軟件主界面
(1)“狀態(tài)命令”模塊
“上伺服”和“下伺服”功能實(shí)現(xiàn)了對伺服電源的通斷控制,“示教模式”和“運(yùn)行模式”功能實(shí)現(xiàn)了對示教狀態(tài)的選擇控制,“回位”功能實(shí)現(xiàn)了機(jī)器人各關(guān)節(jié)回到起始位置的狀態(tài),即機(jī)器人各關(guān)節(jié)轉(zhuǎn)角為零的狀態(tài)。
(2)“操作命令”模塊
“關(guān)節(jié)脈沖式”和“關(guān)節(jié)坐標(biāo)式”功能模塊都可以控制機(jī)器人以某一速度用關(guān)節(jié)的插補(bǔ)方式運(yùn)動(dòng)到某一位姿。前者用六個(gè)關(guān)節(jié)的脈沖數(shù)描述位姿,后者用直角坐標(biāo)值即(X,Y,Z,RX,RY,RZ)描述位姿。同理,“直線脈沖式”和“直線坐標(biāo)式”模塊都可以控制機(jī)器人以某一速度用直線的插補(bǔ)方式運(yùn)動(dòng)到某一位姿,前者用六個(gè)關(guān)節(jié)的脈沖數(shù)描述位姿,操作對話框如圖3,后者用直角坐標(biāo)值(X,Y,Z,RX,RY,RZ)描述位姿,操作對話框如圖4。
圖3 “直線脈沖式”操作對話框
圖4 “直線坐標(biāo)式”操作對話框
“單步運(yùn)行”功能模塊是對UP6機(jī)器人功能的擴(kuò)展,根據(jù)操作者設(shè)定的運(yùn)行參數(shù),可實(shí)現(xiàn)對機(jī)器人末端執(zhí)行器直角坐標(biāo)系下單個(gè)自由度方向的運(yùn)動(dòng)控制,或關(guān)節(jié)坐標(biāo)方式下單個(gè)關(guān)節(jié)的運(yùn)動(dòng)控制。
“程序運(yùn)行”功能模塊可使“傳送文件”功能實(shí)現(xiàn)的機(jī)器人控制柜中的作業(yè)文件執(zhí)行。
(3)“其他功能”模塊
“傳送文件”功能模塊可將操作者選擇的MOTOMAN工業(yè)機(jī)器人可執(zhí)行JBI格式文件下載到執(zhí)行機(jī)器人控制柜中。“接收文件”功能模塊可將器人控制柜中可執(zhí)行程序JBI格式文件上傳到主控計(jì)算機(jī)中,實(shí)現(xiàn)了計(jì)算機(jī)與機(jī)器人之間的高速數(shù)據(jù)交換以及對控制柜中作業(yè)文件的管理。
“視頻”功能模塊功能采用圖像監(jiān)控手段可實(shí)時(shí)顯示機(jī)器人的操作畫面,便于操作者對機(jī)器人進(jìn)行遠(yuǎn)距離控制,避免與機(jī)器人同在一些惡劣環(huán)境下工作,同時(shí)也是采用視覺技術(shù)進(jìn)行搬運(yùn)和分揀等實(shí)時(shí)控制的重要準(zhǔn)備[5-6]。
MOTOCOM32是日本安川電機(jī)公司為其MOTOMAN系列機(jī)器人提供的軟件開發(fā)工具包,包含了文件數(shù)據(jù)傳送功能,機(jī)器人控制功能和I/O讀寫信號(hào)功能等,用戶可根據(jù)實(shí)際要求情況進(jìn)行開發(fā),實(shí)現(xiàn)所需控制功能。MOTOCOM32本質(zhì)為動(dòng)態(tài)鏈接庫(DLL),用VC++語言進(jìn)行開發(fā)時(shí),首先應(yīng)在“Project Setting/Link”對話框中的“L對象/庫模塊”輸入框中添加 Motocom32.lib庫文件,如圖 5,然后將“motocom32.h”與“motocom32.dll”拷貝到工程目錄內(nèi)[7]。
MOTOMAN公司雖然給用戶提供了庫手冊,但說明比較簡單,尤其對函數(shù)的使用方法介紹不多,同時(shí)為了避免運(yùn)動(dòng)控制函數(shù)的非阻塞性導(dǎo)致程序出錯(cuò)的問題,本文對MOTOCOM32庫部分功能采用了面向?qū)ο蟮姆庋b,公開接口如表1所示。應(yīng)用面向?qū)ο蠓庋b后,更換不同類型的工業(yè)機(jī)器人,只需替換類文件,保持公共接口不變,就可以有較好的適應(yīng)性。
圖5 VC++中使用MOTOCOM32庫
表1 MOTOCOM32封裝后的公共接口
“單步運(yùn)行”功能模塊充分體現(xiàn)了控制平臺(tái)的實(shí)時(shí)性,是本文控制平臺(tái)開發(fā)的重點(diǎn)之一?,F(xiàn)以S軸為例來說明各個(gè)軸的具體運(yùn)行操作方法,以下是此功能需要調(diào)用的主要函數(shù)[8-10]:
OnButtonS1()函數(shù)和OnButtonS2()函數(shù)均要調(diào)用OnOpenCom()函數(shù)。在OnButtonS1()函數(shù)運(yùn)行的同時(shí),OnSetposS1()函數(shù)同時(shí)運(yùn)行,顯示S軸正方向運(yùn)動(dòng)的當(dāng)前脈沖數(shù)值和進(jìn)度;OnSetposS2()顯示S軸反方向運(yùn)動(dòng)的當(dāng)前脈沖數(shù)值和進(jìn)度。系統(tǒng)調(diào)用OnSelect()函數(shù)表示選擇脈沖和角度的功能,同時(shí)OnSelect()將參數(shù)傳到OnButtonS1()或OnButtonS2()供其調(diào)用。
由于篇幅關(guān)系,這里只給出S軸正向運(yùn)行的源程序。
點(diǎn)擊主界面的“傳送文件”按鈕,彈出對話框,如圖6,選擇計(jì)算機(jī)上的MOTOMAN機(jī)器人JBI格式作業(yè)文件,然后點(diǎn)擊“執(zhí)行”按鈕,彈出傳送成功的提示。點(diǎn)擊主界面的“接收文件”按鈕,可以看到剛才傳送到XRC控制柜的機(jī)器人作業(yè)文件,選擇計(jì)算機(jī)接收文件的存儲(chǔ)路徑,然后點(diǎn)擊“執(zhí)行”按鈕,彈出接收成功的提示,根據(jù)剛才選擇的存儲(chǔ)路徑,便可找到剛剛接收的的機(jī)器人JBI格式文件。至此表明已成功建立了主控計(jì)算機(jī)、YASNAC-XRC控制柜和MOTOMAN-UP6機(jī)器人三者之間的通信,體現(xiàn)了計(jì)算機(jī)與機(jī)器人控制柜高速數(shù)據(jù)交換功能。
點(diǎn)擊主界面的“單步運(yùn)行”按鈕,彈出對話框如圖7,首先選擇脈沖或角度為運(yùn)行單位,然后輸入關(guān)節(jié)運(yùn)動(dòng)的速度值,脈沖值或角度值,然后就可選擇各個(gè)關(guān)節(jié)進(jìn)行操作。點(diǎn)擊“+”按鈕表示為對應(yīng)關(guān)節(jié)正向運(yùn)動(dòng),“-”按鈕表示反向運(yùn)動(dòng),操作的同時(shí)可觀察到UP6機(jī)器人也實(shí)現(xiàn)對應(yīng)控制關(guān)節(jié)的轉(zhuǎn)動(dòng),同時(shí)對話框圖7顯示對應(yīng)關(guān)節(jié)已運(yùn)行的脈沖數(shù)和進(jìn)度,顯示的比值表示當(dāng)前運(yùn)行脈沖數(shù)占運(yùn)行到極限位置脈沖數(shù)的比例。彩色進(jìn)度條的紅顏色為警戒位置,表明關(guān)節(jié)運(yùn)動(dòng)接近極限位置,提醒操作人員停止操作。如果操作者輸入的值超過了對應(yīng)關(guān)節(jié)運(yùn)動(dòng)范圍,本系統(tǒng)禁止執(zhí)行并將提示出錯(cuò)。
圖6 “傳送文件”對話框的操作
圖7 “單步運(yùn)行”對話框的操作
在“單步運(yùn)行”功能中選擇各個(gè)關(guān)節(jié)進(jìn)行操作的同時(shí),可點(diǎn)擊主界面的“視頻1”按鈕,打開視頻,如圖8,通過視頻可直接觀察UP6機(jī)器人的作業(yè)狀態(tài)。
圖8 視頻功能的模塊
本文研究的工業(yè)機(jī)器人實(shí)時(shí)控制平臺(tái)可以進(jìn)行遠(yuǎn)距離控制,改善了操作者的示教編程環(huán)境。具有圖像實(shí)時(shí)監(jiān)控、速度控制和高速數(shù)據(jù)交換等功能,實(shí)現(xiàn)了實(shí)時(shí)單步運(yùn)行控制,進(jìn)行了關(guān)節(jié)運(yùn)動(dòng)轉(zhuǎn)角范圍設(shè)置,操作更具安全性。為基于視覺技術(shù)的搬運(yùn),分揀技術(shù)等實(shí)時(shí)控制的研究打下了重要的基礎(chǔ)。
應(yīng)用面向?qū)ο蟮募夹g(shù)對MOTOCOM32庫進(jìn)行封裝后,提高了MOTOCOM32庫的易用性,降低了編程難度,同時(shí)可以較好的適應(yīng)其他類型的工業(yè)機(jī)器人,具有較強(qiáng)的通用性。
[1]陳美宏,焦恩璋,唐健,等.基于PC機(jī)的工業(yè)機(jī)器人控制平臺(tái)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2010(11):53-56.
[2]夏朝猛,錢新恩,劉白雁.動(dòng)態(tài)UP6工業(yè)機(jī)器人運(yùn)動(dòng)軌跡的實(shí)時(shí)規(guī)劃[J].湖北汽車工業(yè)學(xué)院學(xué)報(bào),2005,19(1):42-45.
[3]武傳松,許磊.基于ROTSY的弧焊機(jī)器人離線編程究[J]. 電焊機(jī),2009,1(39):45-48.
[4]張建生,肖南峰.機(jī)器人遠(yuǎn)程控制系統(tǒng)的實(shí)時(shí)仿真與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與應(yīng)用,2009,45(14):245-247.
[5]焦恩璋,杜榮.工業(yè)機(jī)器人分揀技術(shù)的實(shí)現(xiàn)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2010(2):84-87.
[6]焦恩璋,徐順清.基于視覺伺服的機(jī)器人作業(yè)系統(tǒng)研究[J].組合機(jī)床與自動(dòng)化加工技術(shù),2009(7):67-81.
[7]杜榮,焦恩璋.Motocom32的應(yīng)用及其面向?qū)ο蠓庋b研究[J]. 機(jī)電一體化,2009,15(6):80-83.
[8]文懷興,雷曉麗.四自由度繪圖機(jī)器人的控制系統(tǒng)設(shè)計(jì)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2010(11):64-70.
[9]徐兆軍,周勇,丁建文.數(shù)控曲線帶鋸機(jī)的數(shù)控系統(tǒng)設(shè)計(jì)[J]. 木材加工機(jī)械,2006(6):8-10.
[10]侯俊杰.深入淺出MFC[M].北京:華中科技大學(xué)出版社,2001.