李 淵,武建新,郭宇鴻,李博偉,2
(1.內(nèi)蒙古工業(yè)大學(xué) 機械學(xué)院,內(nèi)蒙古 呼和浩特 010051;2.烏海市特種設(shè)備檢驗所,內(nèi)蒙古 烏海 016000)
本文所研究的是6自由度機械手,所以采用Galil公司提供的六個自由度的DMC-2163運動控制器。DMC-2163系列是Galil經(jīng)濟型多軸獨立控制器,它提供兩個通信通道:RS-232(最高波特率19.2kBd/s)和10Mb/s以太網(wǎng),且提供4MB Flash EEPROM 存儲器,用于存儲應(yīng)用程序、參數(shù)、變量、數(shù)組,可以很容易地在現(xiàn)場對固件進行升級。
DMC-2163專為解決復(fù)雜運動問題而設(shè)計,能夠在包括點動、點到點定位、矢量定位、電子齒輪同步、電子凸輪、組合運動、軌跡運動的應(yīng)用中使用??刂破魍ㄟ^對運動規(guī)劃曲線的平滑處理以及加、減速過程的控制,可大大減小對機械部分的運動沖擊。為了對復(fù)雜輪廓平滑跟蹤,DMC-2163還提供無限直線、圓弧線段的矢量進給。控制器的電子齒輪也提供了多主軸以及龍門模式的操作[1]。
六自由度機器人是一種典型的工業(yè)機器人,在自動搬運、裝配、焊接等工業(yè)現(xiàn)場有著廣泛的應(yīng)用。該機器人采用六關(guān)節(jié)串聯(lián)結(jié)構(gòu),各關(guān)節(jié)以“絕對編碼器電機+精密諧波減速器”作為傳動。在機器人的控制方面,采用集成了PC技術(shù)、圖像技術(shù)、邏輯控制及專業(yè)運動控制技術(shù)的運動控制器,其性能可靠穩(wěn)定,高速高精度[2]。本次實驗所使用的機械手的一些技術(shù)參數(shù)如表1所示。
本文所論述的是六自由度機械手,采用了Galil公司的DMC2163運動控制卡,使運動系統(tǒng)具有精確的定位抓取功能。圖1為機械手抓取物體的實物圖以及機械手配電柜的接線圖。
表1 機械手技術(shù)參數(shù)
圖1 機械手抓取物體的過程及配電柜
其他的控制系統(tǒng)一般采用 WSDK、SmartTerminal作為伺服調(diào)節(jié)工具,而本文所述的系統(tǒng)采用的伺服調(diào)節(jié)工具是GalilTools。GalilTools為控制卡調(diào)試基本工具,并帶有開發(fā)函數(shù)包。調(diào)試工具部分分為收費版本和免費版本,收費版本功能接近WSDK,免費版本接近SmartTerminal。它支持現(xiàn)有所有型號的控制器,支持XP及以上的Windows系統(tǒng)。使用Galil-Tools伺服調(diào)整軟件,當(dāng)打開此軟件時,會自動識別控制卡的通訊狀態(tài),而不需要像舊的伺服調(diào)整軟件(如SmartTeminal、WSDK)那樣首先注冊卡的信息。通過GalilTools軟件向控制卡發(fā)送指令,實時控制和監(jiān)測伺服電動機的運動。也可以通過軟件編寫程序,然后下載到控制卡中,由控制卡連續(xù)自動執(zhí)行。
Galil運動控制器提供了功能強大且使用方便的編程語言,用戶使用GalilTools能夠快速編程來解決任何運動控制方面的難題。能夠把程序下載到運動控制卡的存儲器中,無需主機干預(yù),即可執(zhí)行。多任務(wù)功能同時執(zhí)行8個用戶程序,允許各獨立任務(wù)同時執(zhí)行。采用GalilTools來執(zhí)行復(fù)雜程序,讓主計算機執(zhí)行其他任務(wù);不過,即使程序正在執(zhí)行中,控制器仍能隨時接收來自主計算機的命令。除標準運動命令外,Galil還提供許多命令,使其做出自行決定,這些命令包含各種跳轉(zhuǎn)、事件觸發(fā)及子程序。Galil還提供了用于檢測、修正系統(tǒng)誤差及處理來自外部開關(guān)的中斷自動子程序。為了更高的編程靈活性,Galil提供了用戶自定義變量、陣列及算術(shù)函數(shù)[3]。
為了各種運動形態(tài)和應(yīng)用,Galil提供了廣泛的指令集,用2字符ASCII命令代表這些指令,使編程更加簡單。使用雙字符語言編寫的程序主要可以完成如下的運動方式:PTP定位、JOG運動、2D直線和圓弧插補、直線插補、電子齒輪、ECAM和仿形加工等。
只有完整的GalilTools版本(即收費版本)才有PID自動調(diào)整功能。下面主要介紹PID自動調(diào)整功能在GalilTools中的具體實現(xiàn)過程。
(1)首先啟動GalilTools軟件,在“Scope”功能下有“Tuner”功能項,所有的PID數(shù)值都是初始值。PID自動調(diào)節(jié)工具如圖2所示。
圖2 PID自動調(diào)節(jié)工具
(2)設(shè)置“Scope”的 Mode選項為Repeat,然后點擊Start使得Scope可以接收獲取數(shù)據(jù)。
(3)編寫一段 DMC(Digital Motion Control)程序,使得速度、加速度、減速度均為最大值。然后把編寫的程序下載到控制器中,以后就可以更加直觀地對比PID調(diào)整前后的圖像。如下是一段實現(xiàn)X軸間歇運動的DMC程序:
(4)在GalilTools的終端中輸入XQ#A(執(zhí)行程序),然后點擊Tuner中的 Autotuner,系統(tǒng)會進行PID的自動調(diào)整。
點擊Autotuner后的效果如圖3所示。而沒有經(jīng)過PID整定的控制效果圖如圖4所示。對比圖3與圖4可以發(fā)現(xiàn),在經(jīng)過PID調(diào)整以后,顯然實際位置與編碼器反饋回來的位置基本重合,因此提高了控制系統(tǒng)的穩(wěn)定性。
圖3 經(jīng)過PID自動調(diào)整的控制效果
圖4 未經(jīng)過PID調(diào)整的控制效果
Galil除了提供 GalilTools、SmartTerminal和WSDK基本通信軟件以外,還提供了軟件開發(fā)工具CToolkit、ActiveX Toolkit,用戶可以用 C、C++、VB、VC、Labview開發(fā)應(yīng)用接口程序。在開發(fā)接口程序時,用戶可以利用API函數(shù)直接調(diào)用Galil的Dll,或者使用 ActiveX COM 控件[4]。
本文所述的系統(tǒng)是在Windows平臺下使用Visual Studio 2010軟件開發(fā)的。為了使在 VS 2010中編寫的運動程序也具有PID自動調(diào)整功能,則需要在VS 2010中首先調(diào)用 GalilTools,這樣在 VS 2010中編寫的C++程序在執(zhí)行過程中也同時啟動了Galil-Tools,即整個運動過程具有了PID自動調(diào)整功能。
在Visual Studio 2010控制臺程序編寫時,需進行如下配置:
(1)在系統(tǒng)環(huán)境變量的PATH變量中,添加C:\Program Files\Galil\GalilTools\bin\。
(2)打開VS 2010,新建一個C++空工程。
(3)在解決方案中,選擇資源文件,右擊添加C:\Program Files\Galil\GalilTools\lib\hello.cpp。
(4)項目/屬性/配置屬性/C/C++/常規(guī)/附加包含目錄“C:\Program Files\Galil\GalilTools\lib”。
(5)項目/屬性/配置屬性/C/C++/代碼生成/運行庫改為多線程調(diào)試DLL。
(6)項目/屬性/配置屬性/鏈接器/輸入/附加依賴項“C:\Program Files\Galil\GalilTools\lib\Galil1.lib”。
(7)將LibGalil-1.6.4.552-vs2010-x86中的Debug(包含Galil1.obj和Galil1.dll)分別復(fù)制到C:\Program Files\Galil\GalilTools\bin\和 C:\Program Files\Galil\GalilTools\lib\。
在Visual Studio 2010中,開發(fā)了一個 MFC的人機操作界面,實現(xiàn)機械手對物體的準確抓取,其具體操作過程如下:首先連接控制器,然后選擇回原點標定,最后進行機器人抓取物體。在抓取物體的過程中應(yīng)進行物體的圖像捕捉,在系統(tǒng)內(nèi)部進行各種矩陣變換,使得機械手能夠準確抓取到物體。人機界面的開發(fā)是在調(diào)用GalilTools軟件基礎(chǔ)上進行的,使得整個運動系統(tǒng)具有PID自動調(diào)整功能,這樣機械手就能快速、準確地抓取物體。機械手的人機界面如圖5所示。
本文以六自由度機械手作為GalilTools的應(yīng)用實例,首先在GalilTools中進行簡單的應(yīng)用編程,再利用VS 2010作為開發(fā)平臺進行了一些開發(fā)環(huán)境的配置工作,配置完成后制作了一個MFC人機界面,通過人機界面的操作,使機械手能夠?qū)⑽矬w準確抓起。由于GalilTools具有這些優(yōu)點,因此在進行機械手人機界面的設(shè)計中,就是在調(diào)用它的基礎(chǔ)上開發(fā)應(yīng)用的。
圖5 機械手的人機界面
[1] 吳忠.基于Galil運動控制器的切割機控制系統(tǒng)[J].機電工程,2003,20(4):44-46.
[2] 馬強.六自由度機械臂軌跡規(guī)劃研究[D].哈爾濱:哈爾濱工程大學(xué),2007:9-14.
[3] 何均.高平穩(wěn)數(shù)控運動控制算法與系統(tǒng)軟件開發(fā)方法研究[D].南京:南京航空航天大學(xué),2010:23-26.
[4] 王偉.基于GALIL卡的火焰切割機數(shù)控系統(tǒng)的開發(fā)研究[D].大連:大連交通大學(xué),2011:25-31.