盧佳偉,張秋菊
(江南大學(xué) 機(jī)械工程及其自動化系,無錫 214122)
隨著微軟Kinect的發(fā)展和普及,深度攝像頭吸引了越來越多人的注意,各類3D體感設(shè)備也是層出不窮[1]。其中,Kinec和Leap Motion均使用光學(xué)傳感器進(jìn)行動作采集與跟蹤,前者的捕捉對象是全身,難以保證快速地估計手部姿態(tài)[2-3]。而后者Leap Motion采用雙目紅外攝像頭成像原理可快速構(gòu)建手在三維空間的運動信息,實時獲取它們的位置、方向和部分手勢信息,其追蹤精度高達(dá)0.01 mm,且價格低廉易于普及[4-5]。在此,通過對Leap Motion系統(tǒng)的進(jìn)一步開發(fā),實現(xiàn)通過基本的動作、手勢來控制遙控小車的運動狀態(tài)。最終實現(xiàn)通過人體簡單的動作、手勢來控制遙控小車的運動狀態(tài)。
由于機(jī)械結(jié)構(gòu)影響到遙控小車的靈活性,快速性和抗干擾等,因此機(jī)械結(jié)構(gòu)的設(shè)計至關(guān)重要。從機(jī)構(gòu)的角度講,遙控小車的整體機(jī)構(gòu)包括動力機(jī)構(gòu)和主體框架2部分[6]。動力機(jī)構(gòu)如圖1所示,由直流伺服電機(jī)、聯(lián)軸器、L型支架、軸承座和定位底板組成。其中,電機(jī)采用Maxon RE40直流伺服電機(jī),配備14∶1的減速器,扭矩1.25 N·m。傳動軸需要根據(jù)傳遞的扭矩和所受彎矩來加工,通過梅花撓性聯(lián)軸器將電機(jī)的輸出軸與傳動軸進(jìn)行連接,將電機(jī)支架與軸承座全部嵌入定位底板的凹槽內(nèi),加工及裝配過程要確保電機(jī)軸與傳動軸的同軸度。整體框架呈正三角形配置,如圖2所示,3個全向輪呈120°均勻分布,定位底板與整體框架采用螺栓連接。
圖1 遙控小車的動力機(jī)構(gòu)Fig.1 Remote control car power mechanism
圖2 遙控小車整體結(jié)構(gòu)Fig.2 Remote control car overall structure
整體控制系統(tǒng)包括上層PC控制系統(tǒng)和底層ARM控制系統(tǒng)。
上層PC控制系統(tǒng)通過PC實時處理Leap Motion傳感器采集到的手勢數(shù)據(jù),采用Visual studio作為Leap Motion傳感器的開發(fā)環(huán)境,用VC++語言編寫程序,在上位機(jī)上進(jìn)行編譯、調(diào)試與處理,并將其轉(zhuǎn)化為控制指令,通過無線信號將其發(fā)送給下位機(jī),實現(xiàn)對下位機(jī)的控制。
底層ARM控制系統(tǒng)以STM32F407ZGT6作為主MCU,用于控制遙控小車具體的運動狀態(tài),包括準(zhǔn)確的行駛與定位。主MCU與3個直流伺服驅(qū)動器之間可建立CAN通訊。同時,若要實現(xiàn)精確行走還需選擇合適的定位傳感器,在此采用的定位傳感器模塊可與主MCU建立RS232通訊,把獲得的位置與姿態(tài)角信息發(fā)送給主MCU。整體控制流程如圖3所示。
圖3 控制流程Fig.3 Control flow chart
Leap Motion傳感器遵循右手笛卡爾直角坐標(biāo)系,坐標(biāo)原點位于傳感器的中心,坐標(biāo)軸X,Y,Z的方向如圖4所示。
圖4 Leap Motion直角坐標(biāo)系Fig.4 Leap Motion cartesian coordinate system
Leap Motion系統(tǒng)以一個數(shù)據(jù)集合描述在其視野中的手、手指或桿狀物體。每幀數(shù)據(jù)包含1個基本的數(shù)據(jù)跟蹤列表。在Leap Motion中,1個Frame類對象代表1個數(shù)據(jù)幀,F(xiàn)rame類的成員函數(shù)hands()返回1個容器——Handlist類對象,它包含了若干個Hand類的對象,每個Hand類對象包含了Leap Motion檢測到的1只手的全部信息[7]。
Leap Motion體感傳感器的掃描頻率高達(dá)290幀/s,通過上一幀與當(dāng)前幀的相關(guān)參數(shù)的變化趨勢可以計算出相應(yīng)的手勢。Leap Motion通??梢垣@取比較簡單的手勢,比如畫圓、揮手、點擊鼠標(biāo)、點擊屏幕等動作,如圖5所示。但是如果手勢過于復(fù)雜,會出現(xiàn)漏檢的現(xiàn)象,出現(xiàn)漏檢就會造成對遙控小車的控制延遲。因此在設(shè)計時應(yīng)盡量避免復(fù)雜的手勢[8]。體感遙控小車對應(yīng)的控制手勢見表1。
圖5 典型的手勢Fig.5 Typical gestures
表1 控制手勢的確定及相應(yīng)的變化參數(shù)Tab.1 Determination of controls gestures and corresponding change parameters
整體控制系統(tǒng)包括上層PC控制系統(tǒng)和底層ARM控制系統(tǒng),采用ATK-ESP8266模塊構(gòu)建無線網(wǎng)絡(luò)環(huán)境。其中,底層ARM控制系統(tǒng)作為服務(wù)器端,初始化時首先檢測ATK模塊是否在線,然后只需向其發(fā)送相應(yīng)的指令,即可開啟服務(wù)器模式并處于監(jiān)聽模式以等待客戶端的連接。圖6所示為ATK模塊與MCU的連接關(guān)系,兩者之間采用UART通訊。
圖6 ATK-ESP8266與MCU連接關(guān)系Fig.6 ATK-ESP8266 connection with the MCU
要實現(xiàn)遙控小車的準(zhǔn)確行走,就必須時刻獲取其自身的位置和姿態(tài)信息,只有這樣才能判定出是否偏移目標(biāo)位置并做出相應(yīng)的調(diào)整。如圖7所示為采用的定位模塊,2個全向輪相互垂直,與全向輪同軸有2個編碼器,安裝板與輪子之間采用滑塊導(dǎo)軌連接即可時刻保證輪子與地面的有效接觸[9]。
圖7 平面定位傳感器Fig.7 Plane positioning sensor
該定位模塊可以與主MCU建立RS232通訊,直接將其獲得的位置和姿態(tài)角信息發(fā)至主MCU。如圖8所示X軸與Y軸的交點即為定位傳感器的定位中心。如圖9所示,由于平面定位傳感器的定位中心與遙控小車的中心不重合,因此需要將定位傳感器的中心轉(zhuǎn)換到遙控小車的中心。定位傳感器的Y軸與遙控小車的Y軸重合,故轉(zhuǎn)換公式為
式中:XO1,YO1為遙控小車的中心坐標(biāo);XO2,YO2為定位模塊的中心坐標(biāo);L為遙控小車坐標(biāo)原點與定位模塊坐標(biāo)原點之間的距離。
圖8 定位中心(俯視圖)Fig.8 Location center
圖9 定位中心坐標(biāo)轉(zhuǎn)換Fig.9 Positioning center coordinate transformation
在確定了遙控小車的實時位置與姿態(tài)角后,有必要確定遙控小車的中心速度與3個輪子之間的轉(zhuǎn)速的對應(yīng)關(guān)系。為了構(gòu)建遙控小車的閉環(huán)控制算法需要對整體數(shù)學(xué)模型進(jìn)行分析,如圖10所示,3個全向輪呈正三角形分布。
圖10 系統(tǒng)運動學(xué)模型Fig.10 System kinematics model diagram
根據(jù)底盤3個全向輪與底盤運動中心的幾何關(guān)系,得到底盤運動學(xué)方程為
遙控小車前進(jìn)的過程中會發(fā)生實際軌跡與目標(biāo)軌跡偏離的現(xiàn)象,偏移的原因是因為小車自身的姿態(tài)角與設(shè)定的目標(biāo)姿態(tài)角發(fā)生了偏移,實際位置脫離了目標(biāo)直線。因此必需建立姿態(tài)角閉環(huán)和位置閉環(huán)控制算法。
姿態(tài)角閉環(huán)就是在行走的過程中,為遙控小車添加一個旋轉(zhuǎn)速度,以克服其姿態(tài)的偏轉(zhuǎn),使姿態(tài)角回到初始值。該旋轉(zhuǎn)速度需要與前進(jìn)速度進(jìn)行疊加。姿態(tài)角閉環(huán)的調(diào)整原理如圖11所示,假設(shè)姿態(tài)角度的誤差為φ,為遙控小車添加一個右旋的角速度,角速度的值由PID算法計算得出。此時,遙控小車的前進(jìn)方向就變?yōu)槌跏冀o定的角度在加上該偏移角度φ。
在底盤前進(jìn)的過程中,為了保持行進(jìn)的軌跡為一條直線,需要引入位置閉環(huán),以克服行進(jìn)過程中的干擾。位置閉環(huán)如圖12所示,假定,Vx為給定的前進(jìn)速度,Vy為底盤的總速度,V為調(diào)節(jié)量,此時底盤的中心點與目標(biāo)直線的距離為D。
圖11 姿態(tài)角閉環(huán)的調(diào)整方法Fig.11 Adjustment method of attitude angle closed loop
圖12 位置閉環(huán)的調(diào)整方法Fig.12 Location closed loop adjustment method
閉環(huán)直線算法需要獲取目標(biāo)速度、目標(biāo)直線角度、目標(biāo)姿態(tài)角度、實際坐標(biāo)及實際角度等參數(shù)。根據(jù)這些參數(shù)可計算出實際位置與期望直線的距離,通過 PID算法,計算得到對距離和姿態(tài)的調(diào)節(jié)量,將最終計算結(jié)果分解到3個電機(jī)的轉(zhuǎn)速上,最后通過調(diào)用驅(qū)動層函數(shù)向電機(jī)發(fā)出命令,實現(xiàn)到直線距離以及底盤角度的負(fù)反饋[10]。
遙控小車在走三角形時,根據(jù)定位模塊獲取的位姿參數(shù)繪制出位置曲線,如圖13所示。由圖可見,實際軌跡與理想軌跡大致擬合,誤差在1 cm范圍內(nèi)。在三角形的3個頂點有一個調(diào)整坐標(biāo)點的過程,只有遙控小車準(zhǔn)確地到達(dá)了目標(biāo)點才會開始執(zhí)行下一個任務(wù)。因此,該遙控小車滿足使用要求,同時也驗證了位置閉環(huán)控制算法的合理性。
遙控小車在行走過程中的姿態(tài)角曲線,如圖14所示,其曲線橫坐標(biāo)軸表示采樣個數(shù),采樣頻率為5ms。由圖可見,姿態(tài)角波動劇烈,但是波動的最大正負(fù)偏差<0.3°。因此姿態(tài)角閉環(huán)控制算法的設(shè)計合理。
圖13 位置曲線Fig.13 Position curve
圖14 姿態(tài)角曲線Fig.14 Attitude angle curve
本設(shè)計很好地將Leap Motion體感傳感器與實際應(yīng)用相結(jié)合,通過簡單的動作手勢實現(xiàn)了對遙控小車的準(zhǔn)確控制,解決了傳統(tǒng)機(jī)械類按鍵控制方式的單一性問題。同時,設(shè)計了遙控小車的機(jī)械本體及其控制系統(tǒng),在對機(jī)械結(jié)構(gòu)的數(shù)學(xué)模型進(jìn)行分析后建立了閉環(huán)控制算法,從而實現(xiàn)了遙控小車的準(zhǔn)確行駛與定位。最后通過試驗驗證了系統(tǒng)的正確性與合理性。
[1]廖宏建,曲哲.基于Kinect體感交互技術(shù)的虛擬裝配實驗系統(tǒng)開發(fā)[J].試驗技術(shù)與管理,2013,30(7):98-102.
[2]Wu Q,Li X R,Wu G S.Interface design for somatosensory interaction[C]//International Conference of Design,User Experience,and Usability.Springer International Publishing,2014:794-801.
[3]Despinoy F,Sánchez A,Zemiti N,et al.Comparative assessment of a novel optical human-machine interface for laparoscopic telesurgery[C]//International Conference on Information Processing in Computer-Assisted Interventions.Springer International Publishing,2014:21-30.
[4]Bacim F,Nabiyouni M,Bowman D A.Slice-n-Swipe:A free-hand gesture user interface for 3D point cloud annotation[C]//3D User Interfaces(3DUI),2014 IEEE Symposium on.IEEE,2014:185-186.
[5]Curiel-Razo Y I,Icasio-Hernández O,Sepúlveda-Cervantes G,et al.Leap motion controllerthree dimensionalverification and polynomial correction[J].Measurement,2016,93:258-264.
[6]姚冬冬,閔華松.三輪全向移動機(jī)器人的研究與設(shè)計[J].計算機(jī)工程與設(shè)計,2013,34(6):2163-2169.
[7]王巍.Leap Motion人機(jī)交互應(yīng)用開發(fā)[M].西安:西安電子科技大學(xué)出版社,2015.
[8]嚴(yán)利民,杜斌,潘浩,等.基于Leap Motion的三維動態(tài)手指姿勢識別[J].激光與光電子學(xué)進(jìn)展,2016,53(11):86-92.
[9]李文學(xué),饒運清,戚得眾,等.全向輪機(jī)器人路徑規(guī)劃與導(dǎo)航系統(tǒng)設(shè)計[J].機(jī)械設(shè)計與制造,2014,35(12):18-22.
[10]吳晨,杜玉紅.三輪全向移動平臺運動特性分析與仿真控制[J].機(jī)械設(shè)計,2015,32(2):49-53.