文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.017
中文引用格式: 黨宏社,侯金良,,張超. 基于Kinect的家庭助理機器人系統(tǒng)設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,,2017,43(3):70-72,,76.
英文引用格式: Dang Hongshe,,Hou Jinliang,Zhang Chao. Design and implementation of home assistant robot system based on Kinect[J].Application of Electronic Technique,,2017,43(3):70-72,,76.
0 引言
老齡化社會提前到來,,“空巢家庭”日趨增多,越來越多的老年人“照顧缺位”,。子女在外上班,,不能陪伴父母,一些身體虛弱,、生活不能自理的老人不能得到很好的照顧,。老人獨自在家時若發(fā)生一些意外事故,因無法快速地發(fā)送求救信號,,從而不能得到救助而造成嚴重后果,。家人工作繁忙,,一些生病或因殘疾導(dǎo)致行動、生活不便的人,,不能獨自去拿水杯,、藥品等。家長出門孩子獨自留在家中,,孩子由于調(diào)皮貪玩會跑到陽臺等危險區(qū)域,,因無實時的監(jiān)管導(dǎo)致意外。現(xiàn)代年輕人工作壓力和生活壓力加重,,上班一族整天為工作奔波,,常常會疏忽家里的瑣事,忘記關(guān)燈,、關(guān)空調(diào)等,;家里出現(xiàn)煤氣泄漏、水管漏水等危險情況,,未能及時處理而導(dǎo)致事故的發(fā)生,;家里有盜賊進入時,不能及時報警而導(dǎo)致貴重財物被盜,。
為了解決上述問題,,設(shè)計了基于Kinect的家庭助理機器人系統(tǒng)??赏ㄟ^Kinect體感控制機器人移動到指定地點并抓取物體,,也可用手機APP遠程控制機器人,實時地監(jiān)視室內(nèi)情況,。
1 系統(tǒng)硬件設(shè)計
系統(tǒng)采用基于Java的單服務(wù)器多客戶端模型,,Kinect和智能手機分別作為客戶端連接到運行在PC上的服務(wù)器[1]。Kinect通過USB連接到電腦,,利用串口通信將采集到的數(shù)據(jù)實時發(fā)送到服務(wù)器,。智能手機通過WiFi連接到服務(wù)器,手機APP將控制信號發(fā)送到服務(wù)器,。服務(wù)器對客戶端發(fā)來的數(shù)據(jù)進行實時采集,、解析,并將控制信號發(fā)送給機器人,。系統(tǒng)整體結(jié)構(gòu)如圖1所示,。
機器人硬件組成如圖2所示。機器人頭部為網(wǎng)絡(luò)攝像頭IP Camera,,主要功能有:遠程視頻監(jiān)視,、遠程視頻通話、智能報警。機器人臂部為數(shù)字舵機結(jié)構(gòu),,共8個自由度,,機械臂末端為夾爪結(jié)構(gòu)。機械臂可模擬人的雙臂運動,,可通過夾爪來抓取物體,。機器人的腿部為輪式結(jié)構(gòu),使其在室內(nèi)更快捷,、靈活地移動,。
機器人的主控芯片采用樹莓派,樹莓派(Raspberry Pi)是只有信用卡大小的卡片式電腦,。它配備一枚1.24 GHz的4核ARM架構(gòu)Cortex-A53處理器,,SD卡作為儲存媒體,主板周圍有4個USB接口和一個網(wǎng)口[2],,利用USB接口可直接與Arduino相連,。樹莓派內(nèi)置無線WiFi模塊,可與服務(wù)器進行無線通信,。樹莓派PWM輸出能力有限,,利用2片Arduino共同產(chǎn)生8路PWM控制機械臂的8個舵機[3]。Arduino是一款便捷靈活,、方便上手的開源電子原型平臺,,它搭載Atmel ATmega328處理器,有14路數(shù)字輸入輸出端口,。一片Arduino可同時產(chǎn)生6路PWM信號,,并且Arduino開發(fā)軟件提供標準的串口通信協(xié)議,可直接與樹莓派通信,。樹莓派通過USB與Arduino相連,通過串口通信將每個舵機控制信號發(fā)給Arduino,。數(shù)字舵機根據(jù)PWM信號轉(zhuǎn)動,,實現(xiàn)0°~180°的精確控制。此外,,機器人上裝有煙霧和溫濕度傳感器,,可實時監(jiān)測家中環(huán)境,發(fā)生煤氣泄漏或火災(zāi)時可自動報警,。
Kinect通過USB與服務(wù)器相連,,完成人體骨骼數(shù)據(jù)的采集。采用Kinect for Windows,,其工作原理是通過傳感器上一個可見光RGB攝像頭和2個紅外攝像頭,,使傳感器能夠采集彩色影像和3D深度圖像[4]。采集圖像時,Kinect傳感器通過紅外激光點陣反饋圖像信息到2個紅外攝像頭中,,對操作者的X,、Y、Z坐標進行3D掃描定位,。此外,,通過可見光RGB攝像頭捕捉VGA級別的圖像[5],可進行人物的身份識別,。Kinect數(shù)據(jù)通過USB線纜傳輸?shù)絇C上,,PC上的Kinect數(shù)據(jù)采集庫對傳感器傳輸而來的3種不同的數(shù)據(jù)資料進行串聯(lián),將彩色圖像和3D深度圖像融合成為一個數(shù)據(jù)流,,最后將數(shù)據(jù)流輸出[6],。本次設(shè)計利用數(shù)據(jù)流中的20個關(guān)鍵點的三維坐標,對人體動作進行識別,。
2 系統(tǒng)軟件設(shè)計
2.1 Kinect動作識別算法
基于輪廓和特征匹配的目標跟蹤算法,,例如文獻[7]中的人體動作識別算法,雖然準確性良好,,但其算法過于復(fù)雜,,模板匹配運算量太大,需要大量設(shè)備進行并行處理,,需要比較高端的處理器,。基于濾波預(yù)測跟蹤算法,,例如文獻[8]中提出的利用卡爾曼濾波算法實現(xiàn)人體動作識別,,雖然消除了數(shù)據(jù)抖動,但其算法的魯棒性不好,,對光照,、背景變化太敏感。本文提出了一種改進的Kinect動作識別算法,,將人體關(guān)節(jié)分上,、下半身來處理,既保證了手臂控制機器人的實時性,,又保證了雙腿控制機器人的準確性,。
2.1.1 坐標獲取
Kinect是微軟公司于2011年推出的一款體感外設(shè),主要由紅外發(fā)射器,、RGB攝像頭,、紅外深度攝像頭組成。它具有實時的全身骨骼跟蹤,、運動捕捉以及麥克風(fēng)輸入的功能,,并能夠識別一系列人體動作[9],。本文算法利用Kinect骨骼追蹤技術(shù)獲取操作者20個關(guān)鍵點的三維坐標,并能對這些點的位置進行實時追蹤,。圖3為人體關(guān)鍵點的示意圖,。
由于直接獲取的坐標為深度圖像坐標,所以將其換算為實際坐標,。(ximage,,yimage,zimage)到(xworld,,yworld,,zworld)的變換公式[10]:
2.1.2 特征提取
在Kinect不標定的情況下識別人體動作,且操作者所在位置可能隨時會發(fā)生變化,,因此算法對魯棒性要求很高,。本文算法提取的特征是骨骼關(guān)鍵點坐標的相對位置,即提取關(guān)鍵點坐標向量所成的角度特征,。Kinect每秒鐘獲取30幀圖像[11],,即關(guān)鍵點的坐標每秒刷新30次,再加上人體的抖動,,采集到的關(guān)鍵點坐標會有波動,。采用加權(quán)遞推平均濾波方法對坐標進行濾波。把連續(xù)N個采樣值看成一個隊列,,隊列的長度固定為N,,每次采樣到新的數(shù)據(jù)放入隊尾,并扔掉原來隊首的一次數(shù)據(jù)(先進先出原則),。然后針對不同時刻采用不同的權(quán)值,,最后把隊列中的N個數(shù)據(jù)進行算術(shù)平均運算,就可獲得新的濾波結(jié)果,。公式如下:
角度θij就是當前人體肘部的角度特征,。以此類推,可求出人體所有關(guān)節(jié)的角度特征,。提取的角度特征是一個相對的特征且魯棒性好,,只與關(guān)鍵點相對位置有關(guān),與光照,、背景、操作者以及操作者的位置都無關(guān),。
2.1.3 特征匹配
機器人的機械臂是由操作者的雙臂體感控制的,,而所提取的角度特征恰好是每個關(guān)節(jié)點的相對角度,所以可直接將角度特征輸出控制舵機的轉(zhuǎn)動,。對于下半身,,則要通過特征匹配的方法更加準確地識別操作者的動作,。由于Kinect采用Processing進行開發(fā),用Java語言編程,,所以將計算好的動作模板保存到TXT文本中,。本設(shè)計中下半身需要識別的動作包括:前進一檔、前進二檔,、前進三檔,、后退一檔、后退二檔,、后退三檔,、停止、機器人夾爪的張開與閉合,。將下半身骨骼數(shù)據(jù)的角度特征與動作模板角度特征進行比較,,可得到匹配的百分比,從而實現(xiàn)人體動作的識別,。
2.2 機器人軟件編程
機器人的軟件部分主要完成的任務(wù)為:接收服務(wù)器發(fā)來的控制信號并根據(jù)信號控制舵機和電機,。機器人的控制芯片為樹莓派,樹莓派的操作系統(tǒng)是開源的Linux系統(tǒng),,采用Python語言進行編程,。首先利用Socket無線通信把樹莓派作為客戶端連接到服務(wù)器,開啟客戶端并將其連接到服務(wù)器的IP地址和端口號,,接收服務(wù)器數(shù)據(jù),。然后根據(jù)通信協(xié)議解析數(shù)據(jù),最后利用Firmata協(xié)議將控制舵機和電機數(shù)據(jù)發(fā)給Arduino,。Arduino根據(jù)接收到的數(shù)據(jù),,控制對應(yīng)引腳產(chǎn)生不同占空比的PWM信號來控制舵機和電機的轉(zhuǎn)動。樹莓派接收煙霧傳感器和溫濕度傳感器的反饋值,,與設(shè)定閾值比較決定是否報警,。
本設(shè)計利用安卓開發(fā)了手機APP[12],可使在外的家人通過機器人實時查看家中情況,,及時發(fā)現(xiàn)家中緊急情況,。圖4為手機APP界面,點擊連接按鈕,,手機APP會自動登錄服務(wù)器,。左邊是實時視頻監(jiān)控界面,可實現(xiàn)360°旋轉(zhuǎn)監(jiān)視,、拍照,、錄像等功能,還可通過對講功能與家里的老人和病人進行視頻通話,;右邊是機器人控制界面,,通過前后,、左右按鈕控制機器人的運動,從而實現(xiàn)了與傳統(tǒng)固定攝像頭監(jiān)視不同的室內(nèi)移動視頻監(jiān)視功能,。
3 功能實現(xiàn)
Processing程序?qū)inect深度數(shù)據(jù)進行采集,,利用上文動作識別算法對數(shù)據(jù)進行處理,把控制信號傳給機器人,。操作者可以用雙臂體感控制機械臂,,并且實時性很好;可以用腿部的前后移動體感控制機器人的前后移動,,并且可以調(diào)速,;可以利用雙腿的分開程度控制機械夾爪的開合。實驗表明,,本算法的動作識別準確率較高,,而且光照、背景,、操作者和操作者位置的變化對算法影響較小,。測試結(jié)果如圖5和圖6所示。系統(tǒng)可實現(xiàn)機器人的體感控制,,幫助家里的老人和病人抓取物品,。
4 結(jié)束語
設(shè)計制作了基于Kinect的家庭助理機器人系統(tǒng),可通過機器人的體感控制幫助在家無人照顧的老人和病人抓取物體,。在外的家人可通過手機App遠程監(jiān)視室內(nèi)情況并可視頻通話,,使老人和病人得到更好的照顧。通過實驗測試,,該系統(tǒng)工作正常,,可實現(xiàn)以上各項功能。
參考文獻
[1] 馬響.基于Java語言在Web開發(fā)的知識探討[J].信息技術(shù)與信息化,,2015,,13(15):169-171.
[2] 蘇祥林,陳文藝,,閆灑灑.基于樹莓派的物聯(lián)網(wǎng)開放平臺[J].電子科技,,2015,28(9):35-37.
[3] 崔陽,,張維華.一種基于Arduino的智能家居控制系統(tǒng)[J].計算機技術(shù)與應(yīng)用,,2014,40(4):123-125.
[4] PANSARE J R,,BANSAL M.A system to recognize dynamic hand gestures using hidden markov model to control windows applications[J].International Journal of Computer Applications,,2013,62(15):169-171.
[5] SU C J,,CHIANG C Y.Kinect-enabled home-based rehabilitation system using dynamic time warping and fuzzy logic[J].Applied Soft Computing,,2014(22):652-666.
[6] FABRIZIO P,SERGIO B.An open source framework for hand pose and gesture recognition using kinect[J].Visual Computer,,2014(30):1107-1122.
[7] 朱國剛,,曹林.基于Kinect傳感器骨骼信息的人體動作識別[J].計算機仿真,2014,,31(12):329-333.
[8] 王梅,,盧熙昌.基于人體動作識別的服務(wù)機器人手臂運動控制[J].工業(yè)控制計算機,2015,,28(9):59-62.
[9] 戰(zhàn)蔭偉,,于芝枝.基于Kinect角度測量的姿勢識別算法[J].傳感器與微系統(tǒng),2014,,33(7):129-132.
[10] 陳翰雄,,黃雅云,劉宇,,等.基于Kinect的空中手勢跟蹤識別的研究與實現(xiàn)[J].電視技術(shù),,2015,39(21):91-94.
[11] 蔡菁,,程雷,,王紅霞.基于Kinect的疲勞駕駛綜合監(jiān)測系統(tǒng)研究[J].計算機工程與科學(xué),2015,,37(12):2380-2385.
[12] 薛亮,,張繼飛.基于IOS的智能家居安防系統(tǒng)移動端設(shè)計[J].計算機技術(shù)與自動化,2016,,35(2):89-92.
作者信息:
黨宏社,,侯金良,張 超
(陜西科技大學(xué) 電氣與信息工程學(xué)院,,陜西 西安710021)