當前位置:學問谷 >

行業範例 >工業 >

機械臂控制與仿真體系論文

機械臂控制與仿真體系論文

  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數據採集卡的應用領域。

  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flhy/gongye/nml6kp.html