• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Leap Motion的可抓取無人機(jī)系統(tǒng)

      2019-09-19 07:33:30
      測控技術(shù) 2019年6期
      關(guān)鍵詞:手勢成功率機(jī)械

      (哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001)

      隨著時(shí)代發(fā)展、技術(shù)革新,對無人機(jī)與人的交互領(lǐng)域也提出更高要求??紤]到手勢具有自然性、靈活性等特點(diǎn),手勢控制[1]已經(jīng)成為無人機(jī)與人進(jìn)行信息交互的一種新的手段。目前,國內(nèi)外很多優(yōu)秀學(xué)者和研究員都投入極大的精力研究基于視覺的動(dòng)態(tài)手勢識(shí)別系統(tǒng)[2]。因此,它也就成為了目前科研領(lǐng)域的眾熱點(diǎn)之一??梢灶A(yù)見,未來手勢識(shí)別系統(tǒng)的主要發(fā)展趨勢將是基于視覺的動(dòng)態(tài)手勢識(shí)別。如今,市面上有一款廣受關(guān)注的體感控制器Leap Motion,它已被應(yīng)用于游戲、手語識(shí)別、虛擬應(yīng)用、計(jì)算機(jī)應(yīng)用等領(lǐng)域。

      另外,將焦點(diǎn)聚焦于無人機(jī),國內(nèi)無人機(jī)市場從最初的軍用領(lǐng)域[3]漸漸地?cái)U(kuò)展到消費(fèi)電子領(lǐng)域。據(jù)最新的消息顯示,在搶險(xiǎn)救災(zāi)、氣象預(yù)報(bào)、農(nóng)業(yè)、電力、消防等方面,無人機(jī)都具有很高的實(shí)際應(yīng)用價(jià)值。而且,無人機(jī)加上機(jī)械爪能夠解決高空取物、小型物資投送等實(shí)際問題。因此,將動(dòng)態(tài)手勢識(shí)別技術(shù)與可抓取無人機(jī)相結(jié)合將具有極高的實(shí)用價(jià)值和比較廣闊的市場前景。

      本系統(tǒng)的采用Leap Motion實(shí)現(xiàn)手勢控制無人機(jī)的飛行以及抓取功能。該系統(tǒng)的實(shí)現(xiàn)方案也可被借鑒到其他相關(guān)的研究之中。

      1 系統(tǒng)總體設(shè)計(jì)

      本系統(tǒng)對無人機(jī)飛控Pixhawk[4]和體感控制器Leap Motion進(jìn)行二次開發(fā)。通過Leap Motion雙目傳感器進(jìn)行手勢數(shù)據(jù)采集,通過PC端進(jìn)行數(shù)據(jù)處理并利用無線模塊發(fā)送數(shù)據(jù),無人機(jī)端接收到的數(shù)據(jù)用Arduino解碼處理,輸出相應(yīng)PWM波控制飛控及機(jī)械爪[5]。系統(tǒng)的總體設(shè)計(jì)框圖如圖1所示。

      圖1 系統(tǒng)總體框圖

      本系統(tǒng)劃分為3個(gè)部分,即手勢識(shí)別及顯示部分(PC端)、數(shù)據(jù)傳輸部分(NRF24L01)、飛行控制部分。

      ① 手勢識(shí)別部分:手勢數(shù)據(jù)的采集主要是使用了Leap Motion雙目傳感器,并且使用Python結(jié)合Leap Motion v2 SDK庫對雙目識(shí)別到的數(shù)據(jù)進(jìn)行運(yùn)算處理。采用Qt編寫上位機(jī)界面,顯示手勢識(shí)別到的數(shù)據(jù),利于用戶觀察自己的手勢狀態(tài)。同時(shí)將處理到的數(shù)據(jù)進(jìn)行自定義編碼,等待進(jìn)行發(fā)送。

      ② 數(shù)據(jù)傳輸部分:將上一步獲取到的編碼數(shù)據(jù)通過UART協(xié)議發(fā)送到串口中通過單片機(jī)進(jìn)行接收,并將數(shù)據(jù)轉(zhuǎn)發(fā)給NRF24L01模塊進(jìn)行無線發(fā)射。同時(shí)在無人機(jī)端實(shí)時(shí)接收NRF24L01數(shù)據(jù),將接收到的數(shù)據(jù)傳輸?shù)綗o人機(jī)飛行控制部分[6]。

      ③ 飛行控制部分:控制端采用Arduino解碼接收到的數(shù)據(jù),然后進(jìn)行數(shù)據(jù)處理,輸出PWM到Pixhawk以及機(jī)械臂,實(shí)現(xiàn)控制無人機(jī)的飛行以及機(jī)械臂的抓取。最后,通過多次測試、修改相關(guān)參數(shù)使無人機(jī)飛行平穩(wěn),響應(yīng)迅速。

      2 系統(tǒng)設(shè)計(jì)過程

      2.1 系統(tǒng)硬件設(shè)計(jì)

      2.1.1 Leap Motion模塊

      本系統(tǒng)采用Leap公司的Leap Motion體感控制器,它采用USB接口連接計(jì)算機(jī),支持Windows,Linux 和Mac OS多操作系統(tǒng),可以面向C++、C#、Java、Python等語言進(jìn)行更高級(jí)的應(yīng)用程序開發(fā),同時(shí)也可作為一個(gè)插件在其他平臺(tái)使用。

      Leap Motion的相關(guān)參數(shù)如下。

      ① 最小識(shí)別動(dòng)作范圍:0.01 mm;

      ② 識(shí)別視角:150°;

      ③ 最大頻率:290 f/s。

      Leap Motion遵循右手坐標(biāo)系,設(shè)備的中心被定義為坐標(biāo)的原點(diǎn)。水平平面由X軸、Z軸組成,設(shè)備的長邊被定義為X軸的方向,短邊為Z軸方向。Y軸為垂直方向(正方向朝上)。

      2.1.2 無線傳輸模塊

      無線模塊采用NRF24L01。它是一種射頻收發(fā)器件,工作于2.4~2.5 GHz ISM頻段,并且融合了增強(qiáng)型ShockBurst技術(shù),可通過程序配置輸出功率和通信頻道,因此非常利于二次開發(fā)。此外,它還同時(shí)具有低電壓工作、高速率、多頻點(diǎn)、超小型、低功耗、低應(yīng)用成本等優(yōu)點(diǎn)。

      2.1.3 機(jī)械模塊

      本系統(tǒng)機(jī)械爪使用的是含舵機(jī)的全金屬爪子。機(jī)械爪舵機(jī)由三根線控制,分別是地線、信號(hào)線和電源正極線。信號(hào)線與單片機(jī)Arduino相連,通過單片機(jī)產(chǎn)生的脈沖信號(hào)來控制機(jī)械爪的張合運(yùn)動(dòng)。因?yàn)殡姵毓╇姙?2 V,遠(yuǎn)超機(jī)械爪的供電電壓范圍,通過使用LM317穩(wěn)壓芯片來為機(jī)械爪提供7 V左右的電壓。

      2.1.4 機(jī)械結(jié)構(gòu)控制流程

      本系統(tǒng)機(jī)械結(jié)構(gòu)控制首先由NRF24L01將接收的手勢數(shù)據(jù)傳給Arduino,并由Arduino進(jìn)行處理,接著輸出相應(yīng)的兩路PWM脈沖信號(hào)。一路PWM脈沖信號(hào)直接控制機(jī)械爪的張合角度;另一路PWM信號(hào)傳給無人機(jī)Pixhawk飛控,控制4個(gè)電機(jī)的輸出,以此實(shí)現(xiàn)手勢數(shù)據(jù)控制無人機(jī)的飛行狀態(tài)。具體控制流程如圖2所示。

      圖2 控制流程

      2.2 Leap Motion視覺處理

      2.2.1 Leap Motion工作原理

      Leap Motion的核心部分是高幀率攝像頭、紅外LED以及紅外濾光器。自然光線通過紅外濾光器后被過濾成紅外線,在設(shè)備上方形成一個(gè)虛擬的平面光線網(wǎng)。當(dāng)手在設(shè)備上方移動(dòng)時(shí),就會(huì)引起紅外線反射而返回手所在的位置。攝像頭進(jìn)行實(shí)時(shí)捕捉,通過雙目立體視覺原理進(jìn)行解算并生成3D數(shù)據(jù)[7]。

      2.2.2 雙目立體視覺原理

      雙目立體視覺是一種由兩幅圖像獲取物體三維幾何信息的測量方法。

      人在輪流閉合左右眼時(shí),會(huì)發(fā)現(xiàn)同一物體的位置發(fā)生了偏移,這種現(xiàn)象稱為視差。Leap Motion采用雙攝像頭模擬人眼,運(yùn)用立體視覺原理對物體進(jìn)行定位。它的基本原理是從兩個(gè)不同視點(diǎn)觀察同一景物。從而得到在不同視角下的感知圖像,通過三角測量法計(jì)算圖像像素間的位置偏差(視差),來獲取物體深度信息。

      2.2.3 TBD技術(shù)

      Leap Motion在追蹤手勢的算法上主要采用的TBD技術(shù)。檢測前跟蹤算法(TBD)通過時(shí)間上的積累彌補(bǔ)信噪比的不足,與傳統(tǒng)檢測方法相比,能實(shí)現(xiàn)更低信噪比目標(biāo)的檢測[8]。因此,它成為弱目標(biāo)檢測的重要方法?,F(xiàn)在應(yīng)用比較廣泛的方法主要有動(dòng)態(tài)規(guī)劃算法。下面是動(dòng)態(tài)規(guī)劃算法的模型。

      設(shè)xn為待測目標(biāo)在第n周期的運(yùn)動(dòng)狀態(tài)向量,對于傳感器檢測的xoy平面內(nèi)運(yùn)動(dòng)的目標(biāo),其狀態(tài)向量可以描述為

      (1)

      xn+1=f(xn)

      (2)

      將傳感器所探測區(qū)域分割為a×b個(gè)有相同邊長為Δx×Δy的分辨單元。假設(shè)在n時(shí)刻,用δn=1表示目標(biāo)出現(xiàn),用δn=0表示目標(biāo)沒有出現(xiàn)。在每個(gè)時(shí)刻n,目標(biāo)狀態(tài)集合為

      x(n)={xn(i,j)},i∈1,2,…,a,j∈1,2,…,b

      (3)

      測量值在每個(gè)單元記錄,在時(shí)刻n記錄的總測量量是一個(gè)a×b矩陣Z(n)={zn(i,j)}。其中,zn(i,j)為在分辨單元(i,j)記錄的狀態(tài)xn(i,j)測量值,其表達(dá)式為

      (4)

      式中,An為目標(biāo)信號(hào)幅度;nn(i,j)為噪聲或雜波。目標(biāo)航跡可定義為從時(shí)刻1到時(shí)刻N(yùn)的一系列狀態(tài)值,公式可表示為

      XN={x1,x2,…,xN}

      (5)

      因此,DP-TBD技術(shù)可歸結(jié)為:基于目標(biāo)狀態(tài)轉(zhuǎn)移方程和給定N幀測量數(shù)據(jù){Z(1),Z(2),…,Z(N)},通過DP-TBD算法和相應(yīng)判決準(zhǔn)則逐階段估計(jì)目標(biāo)的最優(yōu)狀態(tài)序列,從而產(chǎn)生最優(yōu)的目標(biāo)航跡[9]。

      2.2.4 與傳統(tǒng)視覺處理的對比

      目前,手勢跟蹤和識(shí)別采用的主流方法是計(jì)算機(jī)視覺技術(shù),Leap Motion也采用此技術(shù)。當(dāng)識(shí)別目標(biāo)運(yùn)動(dòng)速度過快、受到大面積相似背景顏色干擾以及環(huán)境燈光明暗變化時(shí),傳統(tǒng)的基于計(jì)算機(jī)視覺的手勢識(shí)別技術(shù)容易丟失跟蹤目標(biāo)。而Leap Motion利用紅外LED燈對光源進(jìn)行補(bǔ)充,能夠有效減少環(huán)境光和背景顏色的干擾,增加了手勢識(shí)別的準(zhǔn)確性。

      2.3 Leap Motion的二次開發(fā)

      系統(tǒng)的核心是手勢控制,而系統(tǒng)的手勢識(shí)別是通過對Leap Motion的二次開發(fā)來實(shí)現(xiàn)的。通過Leap Motion獲取識(shí)別到的手勢數(shù)據(jù),再進(jìn)行數(shù)據(jù)的處理。手勢識(shí)別框圖如圖3所示。

      圖3 手勢識(shí)別框圖

      Leap Motion在使用過程中,會(huì)定期發(fā)送關(guān)于識(shí)別到的手的運(yùn)動(dòng)信息,每一份這樣的信息稱為一幀。通過對幀數(shù)據(jù)的處理可以得到手勢的運(yùn)動(dòng)方向,以及檢測手是否有抓取的動(dòng)作。

      二次開發(fā)時(shí)采用的語言是Python[10],配合官方的示例以及Leap Motion v2 SDK庫能夠比較方便地控制Leap Motion,得到有用的幀數(shù)據(jù)。首先,設(shè)置好與PC通信的端口,實(shí)例化一個(gè)控制器對象用于控制Leap Motion。然后,使能控制器,并且實(shí)例化一個(gè)幀對象用于獲取采集到的幀數(shù)據(jù)。接著就可以遍歷所獲得的數(shù)據(jù),取出有用的手勢坐標(biāo)數(shù)據(jù)以及手動(dòng)作程度大小數(shù)據(jù)。下面給出部分關(guān)鍵代碼。

      #設(shè)置發(fā)送端口

      t=serial.Serial(serialCom,9600)

      #實(shí)例化Controller類

      controller=Leap.Controller()

      controller.enable_gesture(Leap.Gesture.TYPE_SWIPE)

      #實(shí)例化幀對象

      frame=controller.frame()

      #遍歷Leap Motion獲取的數(shù)據(jù)

      for hand in frame.hands:

      #獲取手勢的坐標(biāo)數(shù)據(jù)

      data=hand.palm_position

      翠姨的妹妹有一張,翠姨有一張,我的所有的同學(xué),幾乎每人有一張。就連素不考究的外祖母的肩上也披著一張,只不過披的是藍(lán)色的,沒有敢用那最流行的棗紅色的就是了。因?yàn)樗偹隳昙o(jì)大了一點(diǎn),對年輕人讓了一步。

      #獲取手抓取動(dòng)作程度大小的數(shù)據(jù)

      strength=int(hand.grab_strength * 10)

      Leapmotion控制流程圖如圖4所示。

      圖4 Leap Motion控制流程圖

      2.4 Qt程序的編寫

      無人機(jī)操控上位機(jī)基于Qt5[11]開發(fā)環(huán)境,可運(yùn)行于用戶PC端。作為無人機(jī)操控者觀察無人機(jī)狀態(tài)的窗口,上位機(jī)包含Leap Motion串口窗口、無人機(jī)飛行狀態(tài)窗口、操控者手勢狀態(tài)窗口。

      ① Leap Motion串口窗口。通過Qt串口類QSerialPort調(diào)用操控者PC端的串口與手勢識(shí)別裝置Leap Motion連接,獲取Leap Motion中的手勢數(shù)據(jù)。

      ② 無人機(jī)飛行狀態(tài)窗口。通過接收無人機(jī)遠(yuǎn)程數(shù)據(jù)傳輸?shù)娘w行狀態(tài)信息,顯示信息包括無人機(jī)基于歐拉坐標(biāo)系的pitch、yaw、roll數(shù)據(jù),以及飛行高度、飛行速度、飛行距離等信息。

      ③ 操控者手勢狀態(tài)窗口。通過連接Leap Motion的驅(qū)動(dòng)程序獲取操控者實(shí)時(shí)的手勢信息,利用Qt軟件內(nèi)部的Qt 3D工具將操控者的手勢信息實(shí)時(shí)顯示在上位機(jī)的窗口中,便于操控者根據(jù)手勢狀態(tài)調(diào)整無人機(jī)飛行狀態(tài)。

      2.5 數(shù)據(jù)接收端Arduino的開發(fā)

      數(shù)據(jù)接收端的單片機(jī)采用Arduino處理接收到的數(shù)據(jù),并與飛控Pixhawk進(jìn)行通信[12],以及控制機(jī)械臂的抓取。首先,校驗(yàn)接收到的一幀手勢數(shù)據(jù),如果數(shù)據(jù)存在錯(cuò)誤,則舍棄這一幀的數(shù)據(jù)。然后,對存儲(chǔ)的每一幀數(shù)據(jù)進(jìn)行處理,因?yàn)楂@得的數(shù)據(jù)是手的空間位置坐標(biāo),因此,判斷每一幀手勢數(shù)據(jù)與Leap Motion位置坐標(biāo)原點(diǎn)的差值,以此判斷出手的移動(dòng)方向。根據(jù)手的移動(dòng)方向,定義相應(yīng)占空比的PWM波,輸出給飛控,以此來間接控制無人機(jī)的飛行姿態(tài)[12]。同時(shí),也檢測每一幀數(shù)據(jù)中手抓取程度大小的數(shù)據(jù),根據(jù)數(shù)據(jù)的大小,輸出相應(yīng)占空比的PWM波來控制機(jī)械爪的開合大小。

      相應(yīng)的邏輯流程圖如圖5所示。

      圖5 Arduino控制邏輯流程圖

      3 系統(tǒng)測試與分析

      在進(jìn)行系統(tǒng)總體測試前分別對系統(tǒng)的各個(gè)子模塊進(jìn)行單獨(dú)的調(diào)試,以保證每一個(gè)模塊都能正常運(yùn)行。同時(shí),在場外實(shí)測前,先在室內(nèi)進(jìn)行了系統(tǒng)級(jí)模擬試驗(yàn)。能夠?qū)崿F(xiàn)手勢控制,飛控端的Arduino能夠輸出相應(yīng)占空比的PWM波,且手的抓取動(dòng)作能夠控制機(jī)械爪的開合。之后,在室外寬闊的操場進(jìn)行了飛行測試,開始時(shí)并不能很好地控制無人機(jī)的飛行,最后,通過反復(fù)測試以及校準(zhǔn)數(shù)據(jù),成功實(shí)現(xiàn)了手勢控制無人機(jī)的飛行以及機(jī)械爪的抓取。

      然后,優(yōu)化了手勢控制無人機(jī)機(jī)械爪的抓取方式,提高了抓取成功率。通過對Leap Motion端代碼的修改,增加了一個(gè)抓取力度變量,將Leap Motion識(shí)別到的手抓取動(dòng)作程度分為3個(gè)等級(jí)(1等級(jí)對應(yīng)手輕微閉合、2等級(jí)對應(yīng)手閉合程度為50%、3等級(jí)對應(yīng)于手閉合程度為100%)。然后,將機(jī)械爪張開的大小分為3個(gè)等級(jí)。因此,手抓取的力度大小將對應(yīng)機(jī)械爪的閉合程度大小。相較于之前的抓取方式——當(dāng)檢測到手抓取動(dòng)作時(shí),機(jī)械爪就立即閉合,優(yōu)化后的方法更具有靈活性和實(shí)用性。抓取成功率從優(yōu)化前的60%提高到80%。

      由此,可以證明此種方法能夠提高機(jī)械爪的抓取成功率。再者,為了進(jìn)一步驗(yàn)證Leap Motion的手勢識(shí)別準(zhǔn)確性以及機(jī)械爪的抓取成功率。在一些新的測試條件下繼續(xù)驗(yàn)證機(jī)械爪的抓取成功率。具體實(shí)驗(yàn)數(shù)據(jù)如表1所示。

      表1 抓取實(shí)驗(yàn)結(jié)果

      表1中的“手的高度”為手距離Leap Motion中心的垂直距離。表中的數(shù)據(jù)均是經(jīng)過多次測試后得到的概率值,具有普遍性。分析實(shí)驗(yàn)數(shù)據(jù)可知,在手高度為20 cm時(shí),抓取成功率最高;當(dāng)手高度為5 cm及50 cm時(shí)抓取成功率均不高,且當(dāng)手高度超出這兩個(gè)值時(shí),抓取成功率將急劇變低直至不能抓取。因此,Leap Motion的最佳識(shí)別范圍是手高度為20~35 cm。且在同等高度情況下,當(dāng)手抓取動(dòng)作為3等級(jí)時(shí),抓取成功率最大。

      經(jīng)過上述測試,設(shè)計(jì)的可抓取無人機(jī)系統(tǒng)能夠完全實(shí)現(xiàn)目標(biāo)功能。手進(jìn)行移動(dòng)和抓取動(dòng)作,系統(tǒng)都能夠較快速地響應(yīng)。

      4 結(jié)束語

      本文提出了一種人機(jī)實(shí)時(shí)交互系統(tǒng),能夠?qū)崿F(xiàn)手勢控制無人飛行,以及無人機(jī)機(jī)械爪的抓取。該系統(tǒng)經(jīng)過多次實(shí)驗(yàn)調(diào)試,證明了系統(tǒng)設(shè)計(jì)的可行性及穩(wěn)定性,且設(shè)計(jì)思想新穎,具有較高的創(chuàng)新性和實(shí)用價(jià)值,

      較成功地將動(dòng)態(tài)手勢識(shí)別、無人機(jī)飛行以及無人機(jī)抓取相結(jié)合。實(shí)現(xiàn)了一種新的與無人機(jī)的交互手段,能夠解放傳統(tǒng)的遙控器交互方式。同時(shí),該系統(tǒng)經(jīng)過進(jìn)一步的改良,能夠解決一些小型物資的投送問題或者應(yīng)用于玩具市場。

      猜你喜歡
      手勢成功率機(jī)械
      成功率超70%!一張冬棚賺40萬~50萬元,羅氏沼蝦今年將有多火?
      如何提高試管嬰兒成功率
      調(diào)試機(jī)械臂
      挑戰(zhàn)!神秘手勢
      V字手勢的由來
      如何提高試管嬰兒成功率
      簡單機(jī)械
      勝利的手勢
      機(jī)械班長
      按摩機(jī)械臂
      义马市| 大英县| 麻阳| 库尔勒市| 平罗县| 华容县| 称多县| 沾化县| 巴青县| 连州市| 吉首市| 陆丰市| 嵊州市| 丽江市| 鹰潭市| 尼木县| 浏阳市| 宣威市| 东港市| 罗山县| 社旗县| 伊宁县| 瑞金市| 普兰店市| 乌恰县| 施甸县| 沁阳市| 徐汇区| 延庆县| 新疆| 子长县| 桐乡市| 道真| 通化县| 长寿区| 塔城市| 商都县| 出国| 淮滨县| 万载县| 肃南|