很遺憾,因您的瀏覽器版本過(guò)低導(dǎo)致無(wú)法獲得最佳瀏覽體驗(yàn),推薦下載安裝谷歌瀏覽器!
LeapMotion體感控制器的智能移動(dòng)機(jī)械臂控制系統(tǒng)
2017-3-17 來(lái)源:北京理工大學(xué)珠海學(xué)院 作者:羅回彬,劉春麗,董思奇,陳錫柯,楊哲宇
摘要:設(shè)計(jì)一種新型的移動(dòng)機(jī)械臂控制系統(tǒng),可以利用 Leap?。停铮簦椋铮铙w感控制器替代傳統(tǒng)的人機(jī)交互方式,進(jìn)行手部數(shù)據(jù)采集,將其識(shí)別到的手勢(shì)動(dòng)作經(jīng)過(guò)計(jì)算機(jī)分析處理后,通過(guò) WiFi傳輸給開(kāi)發(fā)板,進(jìn)而控制機(jī)械臂模仿人手的動(dòng)作,同時(shí)由于機(jī)械臂的載體是一個(gè)加載攝像頭的移動(dòng)小車,可以很好地結(jié)合機(jī)械臂執(zhí)行各種遠(yuǎn)程遙控任務(wù)。實(shí)驗(yàn)結(jié)果表明,該移動(dòng)機(jī)械臂便捷靈活、操作簡(jiǎn)單,能很好地應(yīng)用在各種領(lǐng)域。
關(guān)鍵詞:leap?。恚铮簦椋铮?;手勢(shì)識(shí)別;移動(dòng)機(jī)械臂
0.引言
機(jī)器人是一種能夠進(jìn)行編程并在自動(dòng)化控制下執(zhí)行某些操作和移動(dòng)作業(yè)任務(wù)的機(jī)械裝置,在工業(yè)、醫(yī) 學(xué)、農(nóng)業(yè)、建筑業(yè)甚至軍事等領(lǐng)域中均有重要用途[1-2]。目前機(jī)器人很少是通過(guò)體感操控的[3-4],人機(jī)交互通常都是依靠鼠標(biāo)、鍵盤、觸摸屏。因此,人與機(jī)器人交互方式不夠直接和簡(jiǎn)單。基于這點(diǎn)提出了一種新的機(jī)器人控制方式———體感控制,即操作者可以通過(guò)手勢(shì)對(duì)機(jī)器人進(jìn)行控制,讓人直接用自己的手來(lái)指揮機(jī)器人進(jìn)行動(dòng)作,完成需要人機(jī)協(xié)作才能完成的任務(wù)。本項(xiàng)目研究的智能移動(dòng)機(jī)械臂可通過(guò) Leap?。停铮簦椋铮羁刂疲瑢?shí)現(xiàn)機(jī)械臂模仿人類所做的手勢(shì)動(dòng)作的功能,同時(shí)小車搭載攝像頭模塊更方便地實(shí)現(xiàn)機(jī)械臂的可操作性,實(shí)現(xiàn)機(jī)器人控制方式上的創(chuàng)新和更加自然的人機(jī)交互。
1.總體結(jié)構(gòu)與原理
本項(xiàng)目主要利用 Leap?。停铮簦椋铮畹男∏?而 且 識(shí) 別 度 精準(zhǔn)的特性,通過(guò)其對(duì)手勢(shì)的動(dòng)作進(jìn)行分析轉(zhuǎn)化,并在機(jī)械臂及小車自帶搭載的 WiFi環(huán)境下,進(jìn)行對(duì)機(jī)械臂的控制,如圖1所示。
圖1 整體效果示意圖
本系統(tǒng)主要由上位機(jī)系統(tǒng)和下位機(jī)系統(tǒng)組成,上位機(jī)系統(tǒng)由 PC機(jī)、Leap通過(guò) WiFi把控制指令傳送給 Arduino開(kāi)發(fā)板;而 Arduino開(kāi)發(fā)根據(jù)不同的指令控制機(jī)械臂各關(guān)節(jié)的旋轉(zhuǎn)角度和小車的運(yùn)動(dòng),從而完成預(yù)期的動(dòng)作。同時(shí),PC端和手機(jī)端也可以通過(guò)按鍵方式進(jìn)行相應(yīng)的命令操作,控制機(jī)械臂和小車完成預(yù)期的動(dòng)作。
圖2 系統(tǒng)結(jié)構(gòu)框圖
2.主要硬件模塊選型與設(shè)計(jì)
2.1LeapMotion體感控制器
Leap?。停铮簦椋铮钍钱?dāng)下流行的以手部運(yùn)動(dòng)捕獲為主的體感設(shè)備,利用紅外成像的原理獲取手的運(yùn)動(dòng)圖像,檢測(cè)并跟蹤手、手指和類似手指的工具,可以實(shí)時(shí)獲取它們的位置、手勢(shì)和動(dòng)作,并將這些靜態(tài)與動(dòng)態(tài)信息提供給操作者。利用 LeapMotion根據(jù)每幀和前幀檢測(cè)到的數(shù)據(jù)所生成的運(yùn)動(dòng)數(shù)據(jù),捕獲不同手勢(shì)和手勢(shì)的運(yùn)動(dòng)變化信息[5]。Leap?。停铮簦椋铮畈捎昧说芽栕鴺?biāo)系(Cartesian?。悖铮铮颍洌椋睿幔簦澹螅?,坐標(biāo)的原點(diǎn)是設(shè)備的中心,坐標(biāo)的 X軸平行于設(shè)備,Y軸指向上方,Z軸指向背離屏幕的方向,單位為真實(shí)世界的 mm[6-8],如圖3所示。
圖3?。蹋澹幔稹。停铮簦椋铮畹牡芽栕鴺?biāo)系
Leap?。停铮簦椋铮顧z測(cè) 到 手 掌 或 者 手 指 等 目 標(biāo) 對(duì) 象 的 時(shí)候,其軟件系統(tǒng)還會(huì)自動(dòng)為這個(gè)對(duì)象分配一個(gè)獨(dú)一無(wú)二的標(biāo)識(shí)符,在設(shè)備的視野范圍內(nèi)如果持續(xù)檢測(cè)到目標(biāo)對(duì)象存在,這個(gè)標(biāo)識(shí)符就保持不變。如果目標(biāo)超出有效視野范圍,整 個(gè) 追 蹤 過(guò) 程 出 現(xiàn) 丟 失 或 者 失 而 復(fù) 得 的 情 況,LeapMotion便會(huì)重新為目標(biāo)對(duì)象分配一個(gè)新的標(biāo)識(shí)符,同時(shí)使舊的標(biāo)識(shí)符失效。
2.2機(jī)械臂模塊
如圖4所示,機(jī)械臂主要由大臂、小臂、舵機(jī)和機(jī)械臂爪組成。當(dāng)手勢(shì)信息或按鍵命令傳給 Arduino控制器后,它就先解析出動(dòng)作指令再操控機(jī)械臂的舵機(jī),讓機(jī)械臂做出相應(yīng)的動(dòng)作,具體功能描述如表1所列。
圖4 機(jī)械臂結(jié)構(gòu)圖
表1 機(jī)械臂功能描述
2.3Arduino開(kāi)發(fā)板
Arduino開(kāi)發(fā)板具 有 開(kāi) 源,模 塊 化 組 裝,簡(jiǎn) 單 實(shí) 用 等特性[9-11],本項(xiàng)目就是利用它的這些特性控制機(jī)械臂的舵機(jī)和小車的馬達(dá),從而實(shí)現(xiàn)對(duì)小車和機(jī)械臂的控制,大大地縮短了開(kāi)發(fā)的周期。
3.軟件設(shè)計(jì)及實(shí)現(xiàn)
3.1整體軟件設(shè)計(jì)及實(shí)現(xiàn)
本項(xiàng)目在軟件設(shè)計(jì)與實(shí)現(xiàn)中,PC端采用 Windows系統(tǒng)、C# 語(yǔ) 言,手 機(jī) 端 采 用 Android 系 統(tǒng)、Java語(yǔ) 言。 如圖5所示,主程序啟動(dòng)后,進(jìn)行 Leap?。停铮簦椋铮畈僮骱?按 鍵操作的選擇界面,當(dāng)操作者執(zhí)行一個(gè)手勢(shì)或者一個(gè)按鍵操作后,PC端或手機(jī)端會(huì)有相應(yīng)的函數(shù)對(duì)操作進(jìn)行解析,再通過(guò) WiFi通信發(fā)送給 Arduino開(kāi)發(fā)板,然 后 Arduino開(kāi)發(fā)板就會(huì)控制機(jī)械臂的舵機(jī)或者小車的馬達(dá),從而讓它們運(yùn)動(dòng)。
3.2手勢(shì)識(shí)別
手勢(shì)動(dòng)作具有以下三個(gè)特點(diǎn):
① 時(shí)間可變性:完成同一個(gè)手勢(shì)所用的時(shí)間不一致。
② 空間可變性:完成同一個(gè)手勢(shì)的空間差異性。
③ 完整可變性:缺少信息或出現(xiàn)重復(fù)信息。
這些特點(diǎn)決定了動(dòng)態(tài)手勢(shì)的識(shí)別難度,開(kāi)發(fā)人員無(wú)法抽樣或?qū)⑵渥鳛橐粋€(gè)整體來(lái)識(shí)別。因此,本項(xiàng)目主要通過(guò)對(duì)一只手手指的運(yùn)動(dòng)來(lái)進(jìn)行捕獲,再轉(zhuǎn)換為指定的字母,化繁為簡(jiǎn),來(lái)控制機(jī)械臂和小車。
圖5 總體流程圖
在手勢(shì)轉(zhuǎn)換過(guò)程中,函數(shù) OnFrame()為最 核 心 的 函數(shù)。在這個(gè)函數(shù)中,主要利用 Leap?。停铮簦椋铮睢。樱模?開(kāi)發(fā)包的函數(shù) Extended()對(duì)獲得數(shù)據(jù)進(jìn)行處理,提取手部的運(yùn)動(dòng)特征。本系統(tǒng)可識(shí)別兩類手勢(shì):一種是手指在空間運(yùn)動(dòng),獲得手指數(shù)量;另一種是手指在平面內(nèi)畫(huà)圈,包括順時(shí)針畫(huà)圈和逆時(shí)針畫(huà)圈。隨后,通過(guò)一個(gè) Switch()語(yǔ)句對(duì)手指數(shù)量的判斷來(lái)轉(zhuǎn)換為相應(yīng)的字母命令,每一個(gè)字母都有自己的指示動(dòng)作,然后通 過(guò) SendData()函 數(shù) 將 字 母 傳 送 到Arduino開(kāi)發(fā)板,具體流程如圖6所示。
圖6 手勢(shì)轉(zhuǎn)換過(guò)程流程圖
3.3小車與機(jī)械臂控制
進(jìn)行手勢(shì)識(shí)別和轉(zhuǎn)換后,PC端將數(shù)據(jù)通過(guò) WiFi傳 送至 Arduino,Arduino 開(kāi) 發(fā)板會(huì)通過(guò)調(diào)用Serial.read()函數(shù)和 witch()語(yǔ)句進(jìn)一步判斷和指定機(jī)械臂或小車做出相應(yīng)的動(dòng)作,具體流程如圖7所示。
圖7?。粒颍洌酰椋睿锟刂茩C(jī)械臂或小車操作的流程圖
3.4WiFi通信
在 Internet 中,TCP/IP使用一個(gè)網(wǎng)絡(luò)地址和一個(gè)服務(wù)端 口 號(hào) 來(lái) 唯 一 標(biāo) 識(shí) 設(shè) 備。其中,網(wǎng) 絡(luò)IP 地 址 用 于 標(biāo) 識(shí)網(wǎng)絡(luò)上的特定設(shè)備;端口號(hào)用于標(biāo)識(shí)要連接到的該設(shè)備上的特定服務(wù)。根據(jù)上述原理,本項(xiàng)目的服務(wù)器可以理解為PC端和手機(jī)端,而客戶端則是 Arduino開(kāi)發(fā)板。利用 Ar-duino開(kāi)發(fā)板自帶的串口 WiFi模塊構(gòu)建 WiFi局域網(wǎng),將電腦或手機(jī)連接到已經(jīng)搭建的 WiFi環(huán)境中,實(shí)現(xiàn) Socket連接及通信。
在本項(xiàng)目中,用指定的地址和端口號(hào)初始化 IPEnd-Point類的新實(shí)例,然后通過(guò) Socket編程就可以實(shí)現(xiàn)連接并通 信。 其 中,設(shè) 置 的 IP 為 192.168.8.1,端 口 號(hào) 為2001,協(xié)議是 TCP/IP,IPEndPoint類 主 要 有 服 務(wù) 器 的IP地址和端口信息,實(shí)現(xiàn)客戶端到服務(wù)器端的連接。Socket編程的基本過(guò)程如下:
① 創(chuàng)建一個(gè) Socket實(shí)例對(duì)象。
② 運(yùn)用 Connect()方法將 Socket實(shí)例對(duì)象連接到IPEndPoint。
③ 接收并發(fā)送信息。
④ 最后用 Close()方法來(lái)關(guān)閉 Socket。
4.實(shí)驗(yàn)結(jié)果
本項(xiàng) 目 在 Windows7 系 統(tǒng) 和 Android 智能手機(jī)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)演示過(guò)程具體如下:
① Leap?。停铮簦椋铮铙w感控制器將 手 部 信 息發(fā)給 PC端,PC 端 經(jīng) 過(guò) 數(shù) 據(jù) 處 理 識(shí) 別 出 手 勢(shì)和手掌的 運(yùn) 動(dòng) 軌 跡,并 將 處 理 后 的 結(jié) 果 傳 輸給 Arduino,小車 接 收 命 令 和 數(shù) 據(jù),然 后 做 出相應(yīng)的動(dòng)作,如圖8所示。
② 手機(jī)端通過(guò)按鍵操作命令,將相應(yīng)的命令數(shù)據(jù)傳輸給 Arduino,機(jī)械臂和小車根據(jù)接收 的 命 令 和 數(shù) 據(jù) 做 出 相 應(yīng) 的 動(dòng) 作,如 圖 9所示。
圖8 Leap?。停铮簦椋铮羁刂菩≤囃V梗ㄗ螅┖拖蚯斑\(yùn)動(dòng)(右)
圖9 按鍵控制(上)攝像頭觀測(cè)顯示(下)
實(shí)驗(yàn)結(jié)果表明,在各功能部件連接通暢的情況下,通過(guò) Leap?。停铮簦椋铮铙w感控制能很好地識(shí)別操作手勢(shì),實(shí)現(xiàn)對(duì)機(jī)械臂、小車的便捷控制。
5.結(jié)語(yǔ)
本項(xiàng)目設(shè)備成本低、體積小巧、操作簡(jiǎn)便、便攜靈活,能適用于各種復(fù)雜環(huán)境和特殊任務(wù),在軍事偵察、可疑物品排爆、工業(yè)操作、醫(yī)療應(yīng)用及日常生活等都有較好的應(yīng)用前景和實(shí)用價(jià)值。