陳強
(安康學院科研處,陜西安康 725000)
傳統(tǒng)的原料分揀中普遍采用人工分揀,效率很低,不但限制了后續(xù)工序的快速進行,同時也推高了產品的生產成本。為了提高效率,可以使用工業(yè)機器人代替人完成簡單重復的工作,或代替高級技工完成精密度要求較高的任務[1-3]。
LabVIEW 是一種用圖標代替文本行創(chuàng)建應用程序的圖形化編程語言,其VI 代碼由框圖組成,硬件接口豐富,程序代碼可通過驅動直接應用于硬件?;贚abVIEW的機械臂控制,既能滿足機械手臂較高的控制要求,還簡化了程序開發(fā)過程,提高了開發(fā)效率[4-5]。該設計利用虛擬儀器LabVIEW 平臺設計了機械臂的分揀系統(tǒng),可以對指定區(qū)域的目標進行分類放置,完成自動分揀的功能,代替人工分揀,提高工作效率。
該設計搭建了機械臂分揀系統(tǒng),能夠將放在指定區(qū)域的不同位置、形狀的目標進行分揀,并在PC端獲得目標的種類、數量、位置等統(tǒng)計信息。為此,方案利用虛擬儀器LabVIEW 編寫讀取目標信息數據,并且利用顯示控件進行顯示;通過判斷結構選出最合適的數據組;將選出的數據組轉化為通信協(xié)議可以識別的串口通信指令;通過串口將控制指令有序發(fā)出;機械臂控制板解析串口接收到的指令,按步驟完成分揀操作,完成后恢復初始姿態(tài),等待下一次運行??傮w的操作流程如圖1 所示。
圖1 總體操作流程
該系統(tǒng)在完成整個操作過程中,可以在顯示器上同步顯示出目標數量,并繪制出目標物體在載物臺上的坐標圖。系統(tǒng)程序具有可移植性,適用性較強,易于拓展,方便人機交互[6]。
為了在空間中的不同位置和方向抓取和傳送物體,傳送機構采用6 個自由度的機械臂。機械臂的每個自由度通過其操縱器的獨立驅動關節(jié)捕捉物體在其工作空間中的任何位置和姿勢。精密的6 自由度機械臂可以完成極其復雜的動作[7]。該系統(tǒng)的6自由度機械臂及載物臺如圖2 所示。
圖2 機械臂及載物臺
機械臂從末端到底座共6 個自由度,除底座以外的5 個自由度由5 個LD-20MG 數字舵機提供,底座自由度由一個LD-1501MG 數字舵機提供。這些數字舵機使用PWM 脈寬型調節(jié)角度,周期為20 ms、占空比為0.5~2.5 ms的脈寬電平對應舵機0~180°角度范圍,且成線性關系[8]。舵機控制器采用500~2 500 數值對應舵機控制輸出角度的占空比0.5~2.54 ms,舵機的控制精度是3 μs,可以滿足機械臂的要求[9]。載物臺采用鋁合金,使用T 型栓、法蘭螺母和角碼固定,可保證結構牢固,機械臂不產生搖晃偏移,不影響操作精度[10]。
機械臂的動作由LSC 舵機控制板完成控制,接口較為豐富:
1)藍牙接口:支持移動設備使用APP 控制;
2)USB 接口:連接PC 機,通過上位機軟件控制;
3)二次開發(fā)接口:經過串口完成代碼控制;
4)PS2 手柄接收器接口:支持使用PS 手柄控制。
控制板使用單片機控制,使用單片機前要對寄存器和中斷等進行配置。當單片機串口收到數據后,要對數據進行判斷,如果是正確的數據幀就進行解析,如果不是正確的數據幀就將數據丟棄,不作處理。采用狀態(tài)機對數據幀進行判斷,判斷數據幀是否正確的流程是首先設置狀態(tài)變量St,St的取值有0、1、2,St的初始值是0,當有數據到達時,先判斷第一個字節(jié)是否是0x55,如果是0x55,St的值賦為1,若不是,St的值還保持為0,丟棄這一幀數據;若St的值為1 時,則對第二個字節(jié)進行判斷,如果是0x55,則St的值賦為2,確定這一幀數據是正確的數據,進行后續(xù)數據的解析,若不是,則將St的值賦為0,將這一幀的數據丟棄,繼續(xù)等待下一幀數據出現。整個流程循環(huán)運行,持續(xù)不斷接收數據幀并進行判斷。一旦有正確的數據到達,則進行數據解析,控制機械臂完成相關操作。數據解析流程如圖3 所示。
圖3 數據解析流程
上位機模塊在系統(tǒng)中起主控作用,完成指令文件的讀取和解釋、發(fā)送等功能。打開操作界面,通過VISA 配置后打開串口,讀取根目錄中的“機械臂參數.txt”文件,將文件中的數據以數組的形式保存在內存中。
上位機內部程序循環(huán)讀取載物臺上的目標信息數據,一旦目標信息發(fā)生改變,系統(tǒng)即可判斷出載物臺上目標物體發(fā)生了改變,需要執(zhí)行與之對應的分揀操作,并將這些操作步驟轉化為操作指令,發(fā)送至下位機,完成分揀。在機械臂完成分揀操作以后,由上位機給下位機發(fā)送復位指令,使機械臂回到初始位置,等待載物臺上有新的目標出現,完成新一輪的分揀操作[11]。
首先,在載物臺上建立坐標軸,將有效區(qū)域劃分成有規(guī)律的柵格,在對應的位置測出相應數據,每一組XY坐標值對應一個柵格,根據這一對應關系,建立數據組的索引編號。然后按照順序進行每個柵格的機械臂具體路徑測試,將到達每一個柵格的路徑分解成一定步驟進行,并記錄此時的舵機位置,將位置信息保存在“路徑參數.txt”文件中。
當該系統(tǒng)開始運行時,首先解析出該VI 所在目錄的路徑,并與“路徑參數.txt”構成新的路徑,借以將該文檔內容讀取出來,劃分為一組一組的數據,并將數據存儲以備后續(xù)程序使用。具體過程:首先根據存儲數據時的約定,按組截取字符串,通過使用“分組For 循環(huán)”將所有字符串按順序分組,再將分好組的字符串轉化為對應的數值。每個分組里的數據被保存在一維數組里,所有分組都執(zhí)行完后,數據被轉化成二維數組[12]。
目標參數以文檔的形式在該VI 根目錄的同一目錄下更新,每當文檔的數據發(fā)生變化,即表示載物臺上的目標發(fā)生變化。為了檢測到文檔的數據發(fā)生變化,該文采用在某一時刻讀出文檔中的數據,經短暫延時后第二次讀取數據并比較,兩次讀出的內容一致時,說明文檔內容沒有改變,即載物臺上的目標情況沒有變化。此時,需要將物塊坐標圖上的點清零。當目標信息發(fā)生改變時,將文檔內容讀出來,根據信息的存儲規(guī)則,計算出當前載物臺上的目標數量,在只有一臺機械臂的情況下,目標的數量即為機械臂需要進行分揀操作的次數。目標信息不變時,循環(huán)次數默認為0,即不進行后續(xù)操作[13]。
從文檔里讀出來的數據包括X軸坐標、Y軸坐標、表示目標類型的數據,并不能直接用于機械臂的控制,還須將坐標數據轉化為與之對應的動作指令組。該文采用近似的方法,根據測量數據時選擇的閾值來對數據進行近似確定。以坐標(2,2)且閾值為0.75 為例,按照0.75的閾值依次可得到(0.75,0.75)、(1.5,1.5)、(2.25,2.25.)、(3,3)等多個坐標,對(1.5,1.5)、(2.25,2.25.)兩個坐標而言,(2.25,2.25)離(2,2)更近一些,可用(2.25,2.25)這個坐標點的動作數據,來近似完成(2,2)的動作?;谶@一原理,可以通過減小閾值來提高測量密度,在同等大小的區(qū)域中獲得更多更準確的機械臂動作數據,進而提高系統(tǒng)精度。
動作指令由上位機經串口發(fā)送給機械臂。要控制6 個舵機,給舵機編號并規(guī)定控制機械臂執(zhí)行動作所需時間。6 個舵機的編號以及要轉到的角度分別由十六進制指令表示。指令通過串口發(fā)送至舵機控制板之后,舵機控制板便會對其進行解析,在指定的時間里完成單步動作,按順序完成每一單步,即可完成整個分揀操作。
指令發(fā)送的程序置于循環(huán)之中,循環(huán)次數即載物臺上的目標數量,第一個循環(huán)執(zhí)行完后,所有目標的坐標信息以簇的形式輸入XY坐標控件,并以坐標點的形式在坐標圖中顯示當前目標所在位置。當不需要執(zhí)行分揀操作時,會對坐標圖進行二次清零,保證坐標圖不會錯誤顯示目標的位置,引起系統(tǒng)誤操作。
使用LabVIEW 完成通信會用到VISA 框架,這是LabVIEW 儀器驅動VI 中的底層函數。VISA 能控制VXI、GPIB 串口或者基于計算機的儀器,并根據儀器類型調用合適的驅動程序[14-15]。
文中使用的VISA 通信函數是“VISA 寫入”和“VISA 讀取”函數。由于串口通信需要配置額外參數,所以必須先運行“VISA 配置串口”VI,將VISA 資源名稱識別的端口初始化為指定設置[16-18]。
為了驗證分揀操作的效果,把兩個實驗目標放入工作區(qū)域,測試機械臂的抓取過程完成情況。上位機顯示如圖4 所示,兩個目標的坐標位于柵格(29,10)和(19,10),產生一個索引,根據索引得到對應的指令。該指令經串口送入機械臂控制板,即可操作機械臂完成目標分揀,整個分揀過程如圖5 所示。該指令操作:底座旋轉-24.75°(6 號舵機),大臂旋轉44.1°(5 號舵機),小臂處兩個自由度分別旋轉-38.61°(4 號舵機)、12.87°(3 號舵機),機械臂末端旋轉-16.83°(2 號舵機),抓手張開-58.95°(1 號舵機),到達目標上方。完成這一動作后,機械臂下降至目標物體的高度,完成夾取動作。
圖4 上位機前面板圖
圖5 機械臂分揀測試
機械臂夾取目標物體,到達過渡位置時,可進行分類??筛鶕繕说木唧w信息,按照分類規(guī)則將其放置在規(guī)定位置。圖5 所示抓取過程中,各舵機旋轉角度如表1 所示。
表1 機械臂舵機角度
經測試,文中所設計的系統(tǒng)可以完成分揀運作,而且夾取過程的精確度可以根據需要進行調整。系統(tǒng)獲取數據的方式是將目標區(qū)域分成若干個柵格,沿著X、Y軸平移,按順序測出機械臂的參數,并將這一過程分解成分步動作,所采取的索引編號是根據木塊重心所在位置進行判斷的,平移位移的閾值越小,則動作精度越高,可根據目標的實際情況,選擇合適的動作精度執(zhí)行分揀任務。而在安裝載物臺和機械臂時,最大程度保持連接穩(wěn)定性,確保機械臂不因操作產生移位,也可以提高操作精度,同時也能保護設備,減少磨損。
文中采用LabVIEW 平臺完成機械臂分揀系統(tǒng)的設計,經測試,該系統(tǒng)成功完成了數據檢測、顯示、控制機械臂分揀等功能。系統(tǒng)能夠根據目標的形狀信息調取不同的動作組指令數據,完成載物臺上目標的抓取和分類。創(chuàng)新之處在于可以通過減小閾值來提高測量密度,增加機械臂動作數據,提高系統(tǒng)精度。系統(tǒng)調試方便,操作簡單,可移植性好,具有一定的實用價值。