前言:想要寫出一篇引人入勝的文章?我們特意為您整理了機械臂控制與仿真體系范文,希望能給你帶來靈感和參考,敬請閱讀。
1引言
在以往的仿真與控制項目中,人們主要通過兩種方式進行設計,一種是采用傳統(tǒng)的編程語言進行設計,如VB、VC++等;另一種是通過在三維建模軟件上進行二次開發(fā)來實現(xiàn),如Auto-CAD、UG等。前者在驅(qū)動控制方面的實現(xiàn)較為容易,但在仿真設計上過于繁瑣,后者則與之相反。LabVIEW不僅具有優(yōu)秀的軟件開發(fā)環(huán)境,也是功能強大的自動化測試工具。基于LabVIEW的機械臂控制與仿真系統(tǒng)利用三維圖形顯示控件構(gòu)建機械臂的仿真顯示平臺,使用NIUSB_6211數(shù)據(jù)采集卡和74HC138N為機械臂提供控制信號,可快速實現(xiàn)對機械臂的仿真與控制,縮短開發(fā)周期。此外,本系統(tǒng)還通過軟件編程解決了仿真模型與實際機械臂的同步問題,實現(xiàn)了舵機的平滑轉(zhuǎn)動功能。同時,拓展了NIUSB_6211數(shù)據(jù)采集卡的用途。
2系統(tǒng)體系結(jié)構(gòu)
本系統(tǒng)包括仿真程序、控制模塊和執(zhí)行終端三個部分。其中仿真程序先從電子表格文件(.xls)中讀取模型數(shù)據(jù)完成靜態(tài)模型的建立,再根據(jù)用戶的操作信息對機械臂的運動學方程進行求解,最終實現(xiàn)對機械臂的動態(tài)仿真;控制模塊主要負責將用戶的操作信息轉(zhuǎn)換成控制所需的電信號,并通過控制電路將控制信號傳給系統(tǒng)的執(zhí)行終端(五自由度的機械臂)。如圖1所示:
3系統(tǒng)簡介
3.1仿真程序
本項目利用LabVIEW提供的三維參數(shù)曲面圖形顯示控件構(gòu)建機械臂的三維仿真顯示平臺。靜態(tài)建模時,先在X-Z平面內(nèi)繪制出機械臂各桿件的平面圖形,構(gòu)建一個包含各桿件平面坐標的數(shù)組(xi,0,zi),根據(jù)各桿件的尺寸比例將其沿Y方向平移yi后可得到一新的數(shù)組(xi,yi,zi)(此時,若將這兩個數(shù)組傳給三維參數(shù)曲面函數(shù)可繪制出一個沒有端面的空腔模型);再利用“翻轉(zhuǎn)數(shù)組函數(shù)”對上述兩個數(shù)組進行翻轉(zhuǎn)操作后即可得到各桿件的封閉立體模型。本項目中作者通過設計“二維轉(zhuǎn)三維.vi”(程序框圖如圖2)實現(xiàn)了上述功能,并將轉(zhuǎn)換得到的立體模型數(shù)據(jù)存入電子表格。最后,根據(jù)機械臂各部分的位置關系,將各桿件的立體模型坐標數(shù)據(jù)在坐標系中進行適當平移后傳給三維參數(shù)曲面函數(shù)完成對機械臂的靜態(tài)模型建立(參見圖4)。實現(xiàn)動態(tài)仿真時,需要先對機械臂各桿件的運動學方程進行求解,得到各桿件的齊次變換矩陣。如式(1):式中:ROT(z,θ)是實現(xiàn)使仿真模型繞Z軸旋轉(zhuǎn)的齊次變換矩陣,也叫作旋轉(zhuǎn)算子;θ是各關節(jié)的旋轉(zhuǎn)角度(規(guī)定逆時針旋轉(zhuǎn)時為正);c和s分別表示和。本項目中為了方便程序編寫將上述旋轉(zhuǎn)算子逆推一步,得到形如式(2)的旋轉(zhuǎn)算子:其中x1、y1、z1是起始位置坐標,x2、y2、z2是目標位置坐標。得到各桿件的旋轉(zhuǎn)算子之后,還需要解決各部件運動時發(fā)生分離的問題,本項目中作者通過“平移連接.vi”使后一桿件的坐標系始終以前一桿件的末端坐標為原點,使問題得到了解決。表1給出了機械臂各桿件的運動情況和對應的旋轉(zhuǎn)算子組合:
3.2控制程序與控制電路
本項目利用NIUSB_6211數(shù)據(jù)采集卡作為機械臂的控制單元,拓展了數(shù)據(jù)采集卡的應用領域。由于NIUSB_6211數(shù)據(jù)采集卡只有四路數(shù)字輸出端口,不能同時為五個舵機提供控制信號,因此作者使用74HC138N譯碼器,來實現(xiàn)對數(shù)據(jù)采集卡I/O口數(shù)目的擴展。具體過程為:先由控制程序?qū)IUSB_6211數(shù)據(jù)采集卡的端口p1.3、p1.2、p1.1定義為數(shù)字輸出,將p1.0定義為時鐘輸出(即輸出PWM信號);再把74HC138N的3個輸入端C、B、A與數(shù)據(jù)采集卡的p1.3、p1.2、p1.1相連(實現(xiàn)對舵機的選擇),使能端G1與p1.0相連(控制舵機轉(zhuǎn)動角度),接地端GND和兩個低使能端(~G2A,~G2B)都接到數(shù)據(jù)采集卡的GND上。這樣只需三路數(shù)字輸出和一路時鐘輸出就可以實現(xiàn)對8(23)個舵機的選擇與控制。圖3是控制電路的原理圖:
3.3執(zhí)行終端
本項目中采用一個五自由度機械臂作為系統(tǒng)的執(zhí)行終端。使用前作者先對機械臂初始工作位置進行了定義,測定了舵機實際工作脈沖(PWM)的范圍,確定了PWM值從小到大變化時對應機械臂的轉(zhuǎn)動方向。
4同步與平滑轉(zhuǎn)動的實現(xiàn)
4.1仿真模型與實際機械臂同步
本系統(tǒng)的執(zhí)行終端沒有安裝向計算機回傳數(shù)據(jù)的傳感器,為了使仿真模型與實際機械臂同步運行,作者通過軟件編程來實現(xiàn)同步?;驹硎?使控制指令(機械臂轉(zhuǎn)動的角度值)同時被仿真程序和控制程序執(zhí)行,并在新指令到來時進行判斷;若當前控制指令已經(jīng)被仿真程序和控制程序執(zhí)行完畢,則傳入新指令,否則進行等待,直到當前指令被執(zhí)行完畢。
4.2舵機平滑轉(zhuǎn)動
根據(jù)舵機的工作特點可知,PWM值與舵機軸的位置一一對應,用戶輸入一個值后,舵機將瞬間轉(zhuǎn)到該位置;顯然,如果用戶輸入的前后兩個值相差很大,舵機將在瞬間轉(zhuǎn)過一個很大的角度,這對機械臂來說是相當危險的。解決的方法是:控制程序?qū)τ脩糨斎氲那昂髢蓚€值進行比較,若當前值比前一值大,則在前一值上+0.01,一直加到與當前值相等;若當前值比前一值小,則在前一值上-0.01,一直減到與當前值相等。這樣,舵機的轉(zhuǎn)速將近似為0.056rad/s(1°/50ms),從而使機械臂能夠平滑轉(zhuǎn)動。
5人機接口
本系統(tǒng)為用戶提供兩種輸入控制指令的方式:一種是直接通過鼠標點擊前面板上的表盤實現(xiàn)控制指令的輸入;另一種是通過鍵盤實現(xiàn)控制指令的輸入。其中鍵盤操作說明如下:小鍵盤上的01234數(shù)字鍵用于指定欲工作舵機的編號,WSAD鍵用于控制舵機的旋轉(zhuǎn)角度,并規(guī)定按下“A或S”時舵機逆時針旋轉(zhuǎn);按下“D或W”時舵機順時針旋轉(zhuǎn)。如果按下的鍵不在上述情況中,則會在操作提示文本框里顯示“按鍵錯誤”字樣。圖4為機械臂仿真與控制系統(tǒng)的前面板:
6總結(jié)
本文介紹了一種基于LabVIEW的機械臂控制與仿真系統(tǒng),通過LabVIEW的三維圖形顯示控件對機械臂進行仿真顯示,利用NIUSB_6211數(shù)據(jù)采集卡為機械臂提供控制信號,通過軟件編程解決了軟硬件同步、舵機平滑轉(zhuǎn)動及NIUSB_6211數(shù)據(jù)采集卡端口數(shù)目等問題。仿真結(jié)果表明:仿真模型可真實模擬機械臂的實際動作,如手指的開合、旋轉(zhuǎn),大小臂的俯仰及整體繞Z軸的旋轉(zhuǎn);控制結(jié)果表明:控制系統(tǒng)能夠根據(jù)用戶的輸入實現(xiàn)對目標點的精確定位,并能控制機械臂對目標物進行抓取和放置。本文作者創(chuàng)新點:利用LabVIEW實現(xiàn)了對機械臂的仿真與控制;通過軟件編程解決了軟硬件同步、舵機平滑轉(zhuǎn)等問題;擴展了NIUSB_6211數(shù)據(jù)采集卡的應用領域。