陳敬德,趙文麗,梁洪濤,王梓霖,張 馳,毛曉波
(1.鄭州大學 電氣工程學院 河南 鄭州 450001;2.河南省輕工業職工大學 機電工程系,河南 鄭州 450002)
隨著機器人控制技術的迅猛發展,各類機器人已廣泛應用于工業、農業、國防、科研、教育以及人們的日常生活等諸多領域。但目前機器人的操控方式卻不乏單調,傳統意義上的控制基本上是通過遙控器、按鈕、操作手柄來實現的。文中則提供了一種新的控制方式——體感控制,即操作者可直接通過手勢對機器人進行控制,巧妙地將Kinect體感技術與機器人控制技術結合,創造性地實現了機器人控制方式上的創新,實現更加自然的人機交互。
從機則是一個動作執行機器人,它的控制系統由AVR atmega128單片機、無線傳輸模塊、語音模塊、BTS7970B直流電機驅動模塊等組成。它的機械結構主要由多自由度的手臂和四輪驅動的底盤構成。從機對信息進行實時處理,控制機器人手臂各個關節旋轉相應的角度,從而完成相應的動作。
本控制系統以Kinect體感傳感器作為圖像采集工具,結合機器人控制技術,實現了人體動作對機器人的控制,使機器人更加智能化。裝置由主機和從機兩部分組成,系統總體結構如圖1所示。主機用于人體動作信息采集,然后進行圖像處理,識別出人體動作,并負責把人體動作信息無線傳送給從機。
主機系統由PC機、Kinect體感傳感器、XL02-232AP1無線傳輸模塊組成。主機用于人體動作信息采集,然后進行圖像處理,識別出人體動作,并負責把人體動作信息無線傳送給從機。

圖1 系統總體結構圖Fig.1 System structure diagram
1)Kinect體感傳感器它是2010年由微軟對XBOX360體感周邊外設正式發布的名字,具有動態捕捉,影像辨識,語音識別等功能。基于該技術,可以利用手勢在游戲中開車、與其他玩家互動、通過互聯網與其他Xbox玩家分享圖片和信息等,這也顯示了它具有非常強大的圖像采集與處理功能。
Kinect可以同時獲取RGB和深度圖像數據,支持實時的全身的骨骼追蹤,并可以識別一系列的動作。圖2是它的外觀圖,左邊鏡頭為紅外線發射器,中間鏡頭是一般常見的RGB彩色攝像頭,右邊鏡頭是紅外線CMOS攝像頭所構成的3D深度傳感器。微軟在2011年6月推出的Kinect for Windows SDK Beta使開發人員可以直接取得距離傳感器、彩色攝像機以及四單元麥克風數組的原始數據流進行應用程序開發。此套SDK能夠追蹤Kinect視野內一位或兩位用戶的骨架映像,便于建立以體感操作的應用程序[1]。

圖2 Kinect外觀圖Fig.2 The photo of Kinect
Kinect不同于普通攝像頭的是,它有感知世界的CMOS紅外傳感器。該傳感器通過黑白光譜的方式來感知環境,純黑代表無窮遠,純白代表無窮近,黑白間的灰色地帶對應物體到傳感器的距離。它收集視野范圍內的每一點,并形成一幅代表周圍環境的景深圖像。傳感器以每秒30幀的速度生成深度圖像流,實時3D地再現周圍環境[2]。
利用Kinect采集到的深度圖信息,可以得到一個20點的人體骨架結構,其二維投影如圖3所示,前景分割與骨架提取該系統直接調用了SDK封裝函數,得到人體20個節點的3維空間坐標以及節點方向信息,進而得到完整的人體骨架信息[3]。
運用這些信息可以提取出人體姿態特征以及運動特征,用于人體基本動作的識別[4]。譬如,通過比較右手與頭部的Y軸坐標差值的閾值變化,可以解析出右手是否舉起,如圖4所示。

圖3 Kinect骨骼追蹤Fig.3 Kinect skeletal tracking
2)通訊模塊XL02-232AP1無線模塊是UART接口半雙工無線傳輸模塊,可以工作在433 MHz公用頻段。其傳輸距離約300 m,其工作電壓+5 V,低功耗,可以與單片機I/O口直接相連,發射模式下串口速率為1.2~115.2 kbps,抗干擾能力強。連接電路如圖5所示。

圖4 右手半舉與高舉圖像解析Fig.4 The image analysis of the gesture

圖5 無線通信模塊連接圖Fig.5 Wireless communication module connection diagram
1)動作執行機器人
①手臂動作控制
本作品所使用的機器人有兩種結構形式,分別是類人機器人和輪式機器人,不同點是一個是雙足站立的,一個是輪式的,它們每條手臂均由4個舵機構成,通過控制每個舵機的旋轉角度可以得到不同的手臂動作和腿部動作,每8個舵機角度數據對應于一個特定的手臂動作。可以將每個手臂動作對應的8個舵機角度封裝在一個結構體數組中,需要時可以直接調用。類人機器人的腿部動作的控制也是如此[5]。
機器人手臂動作的執行有兩種方式:根據從上位機傳來的動作指令,做出對應的預先設定的一套動作;對人體的當前動作進行實時模仿,人體的動作信息解析出來后,在上位機中計算出對應的各個角度數據,然后將這些角度數據通過無線傳輸單元實時地傳送到機器人,機器人做出響應,模仿當前人體手臂動作。
②機器人平面運動控制
機器人平面運動的控制針對的是輪式機器人,機器人的平面運動方式大致有4種,分別是前進,后退,左轉,右轉。這4種運動方式對應于4個指令數據,也同時對應著4個操作者的手勢動作。通過真實的開車旋轉方向盤來控制機器車的旋轉,通過右手相對于左手的超前或落后來控制車的前進和后退,解析出這4個動作后,只需發送對應的4個指令數據即可。機器人硬件結構如圖6所示[6]。
2)通訊模塊 同主機。
3)電機驅動模塊BTS7970B直流電機驅動,這是一款H橋有刷直流電機驅動模塊,適用3~24 V的大功率直流電機,DC 10~29 V輸入直流電壓。在25 V電壓下,額定持續輸出10 A電流,適用于鋰電池直接供電。供電為25 V 10 A時測得芯片工作頻率高達1 MHz,驅動能力有了明顯的提高,響應速度快。兩路PWM輸入,占空比可以在0~100%,是一般驅動所達不到的。具有瞬間制動能力以及做到全程速度精確控制。適用于鋰電池直接供電驅動的機器人或車模比賽。控制方式簡單,僅需要接3根輸入線即可控制電機制動及正反轉,其中GND引腳與單片機的GND相連,P引腳接單片機的PWM輸出引腳,R引腳接單片機的PC0引腳,用于對電機轉動方向的控制。連接圖如圖7所示。

圖6 機器人硬件結構Fig.6 Robot hardware structure

圖7 電機驅動連線圖Fig.7 Thewiring diagram of themotor drive
4)語音模塊 最大輸出功率為25 W,具有30M存儲容量,可以通過8個按鍵觸發8段語音,也可以通過RS485/232給模塊指令觸發220段語音。
5)電源部分 采用的是3S鋰電池,容量為1 500 mAh,額定電壓11.1 V,35C超大放電能力。
軟件設計采用模塊化處理方法,主機程序主要由主程序、Kinect初始化、圖像辨識、語音識別、串口通信等模塊組成,采用C#編寫,編譯環境為VS2010,使用部分環境庫函數。從機程序主要有主程序、串口通信、電機驅動、舵機驅動、動作函數等模塊組成。采用C語言編寫,編譯環境為Avr studio4,使用部分環境庫函數[7]。系統程序流程如圖8所示。

圖8 系統程序流程圖Fig.8 Flow chart of system software
Kinect將采集到的圖像信息傳送給上位機,上位機經過圖像處理后識別出人體動作,并將處理后的結果輸出,如圖9所示。機器人實時模仿人體動作測試情況如圖10所示。

圖9 Kinect圖像采集與動作識別Fig.9 Kinect image acquisition and recognition

圖10 機器人實時模仿人體動作Fig.10 Robot's imitation of gesture
操作者可以站在離Kinect體感傳感器3 m左右的距離對機器人進行體感操控。目前該機器人能夠實時模仿左、右手各6個簡單的動作:高舉、半舉、平舉、擁抱、架起、放下。以及實時模仿單腿抬起動作。你還可以通過雙手模擬方向盤實時控制機器車的前后左右運動,亦可通過語音forward、back、turn left、turn right來控制機器人的前后左右運動。
機器人在人們生活中承擔著越來越重要的作用,該系統則提供了一種新的控制方式——體感控制,使機器人的控制更加靈活多樣,實現了更加自然的人機交互,具有較高的理論研究價值和先進性。同時,通過手勢實時控制機器人的方式,能應用于排爆、救援、醫療等諸多行業,具有廣闊的市場前景。在此基礎上可以根據工業生產等需要,研發出更多種類的自動化機器人,為創建自動化機器人體系提供積極的支持和幫助。
[1]吳國斌,李斌,閻驥洲.kinect人機交互開發實踐[M].北京:人民郵電出版社,2013.
[2]黃露丹,嚴利民.基于Kinect深度數據的人物檢測[J].計算機技術與發展,2013(4):119-121.HUANG Lu-dan,YAN Li-ming.The depth data of character detection based on Kinect[J].Computer Technology and Development,2013(4):119-121.
[3]黃季冬.動態手勢識別技術研究與實現[D].武漢:華中科技大學,2012.
[4]張毅,張爍,羅元,等.基于Kinect深度圖像信息的手勢軌跡識別及應用[J].計算機應用研究,2012,29(9):3547-3550.ZHANG Yi,ZHANG Shuo,LUO Yuan,et al.The gesture trajectory recognition and application of Kinect based on depth image information[J].The Research and Application of Computer,2012,29(9):3547-3550.
[5]余濤,葉金永,邵菲杰,等.Kinect核心技術之骨架追蹤技術[J].數字技術與應用,2012(10):115.YU Tao,YE Jin-yong,SHAO Fei-jie,et al.The skeleton Kinect core technology tracking technology[J].Technology and Application of Digital,2012(10):115.
[6]王明東.基于Kinect骨骼跟蹤功能實現PC的手勢控制[J].漳州職業技術學院學報,2012,14(2):11-16.WANGMing-dong.Kinectskeletal tracking function realization gesture control based on PC[J].Journal of Zhangzhou Institute of Technology,2012,14(2):11-16.
[7]微軟.Kinect forwindows SDK程序設計指南[C]//微軟,2011.