使用LabVIEW令“20歲”的機(jī)器人恢復(fù)活力
信號I/O
CompactRIO控制器的現(xiàn)場可編程門陣列(FPGA)背板,能夠以完全并行化的方式讀取、輸出和處理I/O模塊通道。利用數(shù)量充足的可編程門電路,我們能夠以1kHz的頻率輸出5個獨(dú)立的PWM信號,輸出10個數(shù)字信號到外部的馬達(dá)驅(qū)動芯片,同時以100kHz頻率對10條編碼通道進(jìn)行采樣。在FPGA上,我們將每個機(jī)器人關(guān)節(jié)上的兩個編碼器上獲得的信號,顯示成整數(shù)以表示相對的關(guān)節(jié)角度。使用NI網(wǎng)站上提供的VI幫助我們進(jìn)一步縮短了FPGA上VI的開發(fā)時間。兩個高速切換的數(shù)字輸出和數(shù)字輸入模塊為我們的應(yīng)用提供了充足的通道數(shù)。
圖形化用戶界面
上述硬件接口的功能一定程度上受到FPGA技術(shù)能力的限制,但是系統(tǒng)的用戶界面在Windows PC上運(yùn)行,可以充分利用LabVIEW 8.5的特性。使用基于事件的界面,用戶可以通過輸入位置向量或上下、左右和前后增量式移動機(jī)器人,來設(shè)定機(jī)器人終端效應(yīng)器的笛卡爾坐標(biāo)位置和方向。然后進(jìn)行坐標(biāo)變換,計算出每個機(jī)器人關(guān)節(jié)所需的關(guān)節(jié)角。這些數(shù)據(jù)會反饋給控制器子VI,從所需和實(shí)際的關(guān)節(jié)角中計算出電機(jī)命令信號。
為了允許學(xué)生們在將來實(shí)現(xiàn)不同的控制算法,只要模板定義的前面板元件存在,控制器子VI在每次運(yùn)行時都加載并可以包含任意的邏輯。這非常有用,因為學(xué)生們可能不能使用LabVIEW環(huán)境下的所有功能,而只能使用缺少LabVIEW FPGA和LabVIEW Real-Time Module的學(xué)生版本。雖然學(xué)生版軟件不能打開全部的機(jī)器人軟件,但學(xué)生們?nèi)匀豢梢允褂盟_發(fā)機(jī)器人控制器,并在機(jī)器人上進(jìn)行測試。
我們的“老”機(jī)器人的可靠性是整個項目中的一個問題,我們需要一個機(jī)器人仿真以便我們在機(jī)器人維修時繼續(xù)工作。使用LabVIEW 3D圖像控制,我們創(chuàng)建了機(jī)器人的示意原理圖。使用圖形化用戶界面,用戶可以得知軟件是否精確表示了當(dāng)前機(jī)器人的位置。當(dāng)可視化與現(xiàn)實(shí)不符合時,用戶可將機(jī)器人送到啟動原點(diǎn),并按下按鈕重新啟動軟件。
結(jié)論
使用CompactRIO和LabVIEW,我們可以在同一個編程環(huán)境中,從零開始構(gòu)建完整的機(jī)器人驅(qū)動和控制系統(tǒng)。借助于CompactRIO控制器的易用性,使用高科技的FPGA技術(shù)來喚醒我們的“古董”機(jī)器人簡直輕而易舉。作為本科生的我,利用不到九個月的兼職項目工作,就開發(fā)出了包括軟件和硬件的整個系統(tǒng)。
評論