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