範文齋

位置:首頁 > 行業範文 > 工業

機械臂控制與模擬體系論文

工業1.96W

  1引言

機械臂控制與模擬體系論文

在以往的模擬與控制專案中,人們主要通過兩種方式進行設計,一種是採用傳統的程式語言進行設計,如VB、VC++等;另一種是通過在三維建模軟體上進行二次開發來實現,如Auto-CAD、UG等。前者在驅動控制方面的實現較為容易,但在模擬設計上過於繁瑣,後者則與之相反。LabVIEW不僅具有優秀的軟體開發環境,也是功能強大的自動化測試工具。基於LabVIEW的機械臂控制與模擬系統利用三維圖形顯示控制元件構建機械臂的模擬顯示平臺,使用NIUSB_6211資料採集卡和74HC138N為機械臂提供控制訊號,可快速實現對機械臂的模擬與控制,縮短開發週期。此外,本系統還通過軟體程式設計解決了模擬模型與實際機械臂的同步問題,實現了舵機的平滑轉動功能。同時,拓展了NIUSB_6211資料採集卡的用途。

  2系統體系結構

本系統包括模擬程式、控制模組和執行終端三個部分。其中模擬程式先從電子表格檔案()中讀取模型資料完成靜態模型的建立,再根據使用者的操作資訊對機械臂的運動學方程進行求解,最終實現對機械臂的動態模擬;控制模組主要負責將使用者的操作資訊轉換成控制所需的電訊號,並通過控制電路將控制訊號傳給系統的執行終端(五自由度的機械臂)。如圖1所示:

  3系統簡介

3.1模擬程式

本專案利用LabVIEW提供的三維引數曲面圖形顯示控制元件構建機械臂的三維模擬顯示平臺。靜態建模時,先在X-Z平面內繪製出機械臂各杆件的平面圖形,構建一個包含各杆件平面座標的陣列(xi,0,zi),根據各杆件的尺寸比例將其沿Y方向平移yi後可得到一新的陣列(xi,yi,zi)(此時,若將這兩個陣列傳給三維引數曲面函式可繪製出一個沒有端面的空腔模型);再利用“翻轉陣列函式”對上述兩個陣列進行翻轉操作後即可得到各杆件的封閉立體模型。本專案中作者通過設計“二維轉三維”(程式框圖如圖2)實現了上述功能,並將轉換得到的立體模型資料存入電子表格。最後,根據機械臂各部分的.位置關係,將各杆件的立體模型座標資料在座標系中進行適當平移後傳給三維引數曲面函式完成對機械臂的靜態模型建立(參見圖4)。實現動態模擬時,需要先對機械臂各杆件的運動學方程進行求解,得到各杆件的齊次變換矩陣。如式(1):式中:ROT(z,θ)是實現使模擬模型繞Z軸旋轉的齊次變換矩陣,也叫作旋轉運算元;θ是各關節的旋轉角度(規定逆時針旋轉時為正);c和s分別表示和。本專案中為了方便程式編寫將上述旋轉運算元逆推一步,得到形如式(2)的旋轉運算元:其中x1、y1、z1是起始位置座標,x2、y2、z2是目標位置座標。得到各杆件的旋轉運算元之後,還需要解決各部件運動時發生分離的問題,本專案中作者通過“平移連線”使後一杆件的座標系始終以前一杆件的末端座標為原點,使問題得到了解決。表1給出了機械臂各杆件的運動情況和對應的旋轉運算元組合:

3.2控制程式與控制電路

本專案利用NIUSB_6211資料採集卡作為機械臂的控制單元,拓展了資料採集卡的應用領域。由於NIUSB_6211資料採集卡只有四路數字輸出埠,不能同時為五個舵機提供控制訊號,因此作者使用74HC138N譯碼器,來實現對資料採集卡I/O口數目的擴充套件。具體過程為:先由控制程式將NIUSB_6211資料採集卡的埠p1.3、p1.2、p1.1定義為數字輸出,將p1.0定義為時鐘輸出(即輸出PWM訊號);再把74HC138N的3個輸入端C、B、A與資料採集卡的p1.3、p1.2、p1.1相連(實現對舵機的選擇),使能端G1與p1.0相連(控制舵機轉動角度),接地端GND和兩個低使能端(~G2A,~G2B)都接到資料採集卡的GND上。這樣只需三路數字輸出和一路時鐘輸出就可以實現對8(23)個舵機的選擇與控制。圖3是控制電路的原理圖:

3.3執行終端

本專案中採用一個五自由度機械臂作為系統的執行終端。使用前作者先對機械臂初始工作位置進行了定義,測定了舵機實際工作脈衝(PWM)的範圍,確定了PWM值從小到大變化時對應機械臂的轉動方向。

  4同步與平滑轉動的實現

4.1模擬模型與實際機械臂同步

本系統的執行終端沒有安裝向計算機回傳資料的感測器,為了使模擬模型與實際機械臂同步執行,作者通過軟體程式設計來實現同步。基本原理是:使控制指令(機械臂轉動的角度值)同時被模擬程式和控制程式執行,並在新指令到來時進行判斷;若當前控制指令已經被模擬程式和控制程式執行完畢,則傳入新指令,否則進行等待,直到當前指令被執行完畢。

4.2舵機平滑轉動

根據舵機的工作特點可知,PWM值與舵機軸的位置一一對應,使用者輸入一個值後,舵機將瞬間轉到該位置;顯然,如果使用者輸入的前後兩個值相差很大,舵機將在瞬間轉過一個很大的角度,這對機械臂來說是相當危險的。解決的方法是:控制程式對使用者輸入的前後兩個值進行比較,若當前值比前一值大,則在前一值上+0.01,一直加到與當前值相等;若當前值比前一值小,則在前一值上-0.01,一直減到與當前值相等。這樣,舵機的轉速將近似為0.056rad/s(1°/50ms),從而使機械臂能夠平滑轉動。

  5人機介面

本系統為使用者提供兩種輸入控制指令的方式:一種是直接通過滑鼠點選前面板上的錶盤實現控制指令的輸入;另一種是通過鍵盤實現控制指令的輸入。其中鍵盤操作說明如下:小鍵盤上的01234數字鍵用於指定欲工作舵機的編號,WSAD鍵用於控制舵機的旋轉角度,並規定按下“A或S”時舵機逆時針旋轉;按下“D或W”時舵機順時針旋轉。如果按下的鍵不在上述情況中,則會在操作提示文字框裡顯示“按鍵錯誤”字樣。圖4為機械臂模擬與控制系統的前面板:

  6總結

本文介紹了一種基於LabVIEW的機械臂控制與模擬系統,通過LabVIEW的三維圖形顯示控制元件對機械臂進行模擬顯示,利用NIUSB_6211資料採集卡為機械臂提供控制訊號,通過軟體程式設計解決了軟硬體同步、舵機平滑轉動及NIUSB_6211資料採集卡埠數目等問題。模擬結果表明:模擬模型可真實模擬機械臂的實際動作,如手指的開合、旋轉,大小臂的俯仰及整體繞Z軸的旋轉;控制結果表明:控制系統能夠根據使用者的輸入實現對目標點的精確定位,並能控制機械臂對目標物進行抓取和放置。本文作者創新點:利用LabVIEW實現了對機械臂的模擬與控制;通過軟體程式設計解決了軟硬體同步、舵機平滑轉等問題;擴充套件了NIUSB_6211資料採集卡的應用領域。