《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Kinect的家庭助理機(jī)器人系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于Kinect的家庭助理機(jī)器人系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2017年電子技術(shù)應(yīng)用第3期
黨宏社,侯金良,張 超
陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安710021
摘要: 為了使獨(dú)自在家的小孩、行動不便的老人和病人得到更好的照顧,設(shè)計(jì)了基于Kinect的家庭助理機(jī)器人系統(tǒng)。系統(tǒng)采用單服務(wù)器多客戶端模型,Kinect和智能手機(jī)作為客戶端連接到服務(wù)器。設(shè)計(jì)制作了助理機(jī)器人,其頭部為網(wǎng)絡(luò)攝像頭,臂部為舵機(jī)結(jié)構(gòu),腿部為輪式結(jié)構(gòu)。提出了基于Kinect的改進(jìn)動作識別算法,實(shí)現(xiàn)了機(jī)器人的體感控制,可幫助老人和病人抓取物體。設(shè)計(jì)了手機(jī)APP,在外的家人可遠(yuǎn)程監(jiān)視室內(nèi)情況,與家中的老人和病人進(jìn)行視頻通話。
中圖分類號: TP242.6
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.017
中文引用格式: 黨宏社,侯金良,張超. 基于Kinect的家庭助理機(jī)器人系統(tǒng)設(shè)計(jì)與實(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.
Design and implementation of home assistant robot system based on Kinect
Dang Hongshe,Hou Jinliang,Zhang Chao
College of Electrical and Information Engineering,Shaanxi University of Science and Technology,Xi′an 710021,China
Abstract: In order to make the elderly, patients and children get better care, a home assistant robot system based on Kinect is designed. Single server multi clients model is used to design the system, the clients Kinect and App are connected to the server. The assistant robot is designed and the IP camera is used as the head ,the steering joint structure is used as the arm and the wheels are used as the leg of the robot. Applying the improved Kinect motion recognition algorithm,the function of motion-control is achieved. The medication bottles and cups can be taken to the elderly and patient by the robot. The APP is designed to realize the function of remote monitoring and video cheat with the elderly and patients.
Key words : Kinect;robot;motion recognition algorithm;APP

0 引言

    老齡化社會提前到來,“空巢家庭”日趨增多,越來越多的老年人“照顧缺位”。子女在外上班,不能陪伴父母,一些身體虛弱、生活不能自理的老人不能得到很好的照顧。老人獨(dú)自在家時(shí)若發(fā)生一些意外事故,因無法快速地發(fā)送求救信號,從而不能得到救助而造成嚴(yán)重后果。家人工作繁忙,一些生病或因殘疾導(dǎo)致行動、生活不便的人,不能獨(dú)自去拿水杯、藥品等。家長出門孩子獨(dú)自留在家中,孩子由于調(diào)皮貪玩會跑到陽臺等危險(xiǎn)區(qū)域,因無實(shí)時(shí)的監(jiān)管導(dǎo)致意外?,F(xiàn)代年輕人工作壓力和生活壓力加重,上班一族整天為工作奔波,常常會疏忽家里的瑣事,忘記關(guān)燈、關(guān)空調(diào)等;家里出現(xiàn)煤氣泄漏、水管漏水等危險(xiǎn)情況,未能及時(shí)處理而導(dǎo)致事故的發(fā)生;家里有盜賊進(jìn)入時(shí),不能及時(shí)報(bào)警而導(dǎo)致貴重財(cái)物被盜。

    為了解決上述問題,設(shè)計(jì)了基于Kinect的家庭助理機(jī)器人系統(tǒng)??赏ㄟ^Kinect體感控制機(jī)器人移動到指定地點(diǎn)并抓取物體,也可用手機(jī)APP遠(yuǎn)程控制機(jī)器人,實(shí)時(shí)地監(jiān)視室內(nèi)情況。

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

    系統(tǒng)采用基于Java的單服務(wù)器多客戶端模型,Kinect和智能手機(jī)分別作為客戶端連接到運(yùn)行在PC上的服務(wù)器[1]。Kinect通過USB連接到電腦,利用串口通信將采集到的數(shù)據(jù)實(shí)時(shí)發(fā)送到服務(wù)器。智能手機(jī)通過WiFi連接到服務(wù)器,手機(jī)APP將控制信號發(fā)送到服務(wù)器。服務(wù)器對客戶端發(fā)來的數(shù)據(jù)進(jìn)行實(shí)時(shí)采集、解析,并將控制信號發(fā)送給機(jī)器人。系統(tǒng)整體結(jié)構(gòu)如圖1所示。

ck1-t1.gif

    機(jī)器人硬件組成如圖2所示。機(jī)器人頭部為網(wǎng)絡(luò)攝像頭IP Camera,主要功能有:遠(yuǎn)程視頻監(jiān)視、遠(yuǎn)程視頻通話、智能報(bào)警。機(jī)器人臂部為數(shù)字舵機(jī)結(jié)構(gòu),共8個(gè)自由度,機(jī)械臂末端為夾爪結(jié)構(gòu)。機(jī)械臂可模擬人的雙臂運(yùn)動,可通過夾爪來抓取物體。機(jī)器人的腿部為輪式結(jié)構(gòu),使其在室內(nèi)更快捷、靈活地移動。

ck1-t2.gif

    機(jī)器人的主控芯片采用樹莓派,樹莓派(Raspberry Pi)是只有信用卡大小的卡片式電腦。它配備一枚1.24 GHz的4核ARM架構(gòu)Cortex-A53處理器,SD卡作為儲存媒體,主板周圍有4個(gè)USB接口和一個(gè)網(wǎng)口[2],利用USB接口可直接與Arduino相連。樹莓派內(nèi)置無線WiFi模塊,可與服務(wù)器進(jìn)行無線通信。樹莓派PWM輸出能力有限,利用2片Arduino共同產(chǎn)生8路PWM控制機(jī)械臂的8個(gè)舵機(jī)[3]。Arduino是一款便捷靈活、方便上手的開源電子原型平臺,它搭載Atmel ATmega328處理器,有14路數(shù)字輸入輸出端口。一片Arduino可同時(shí)產(chǎn)生6路PWM信號,并且Arduino開發(fā)軟件提供標(biāo)準(zhǔn)的串口通信協(xié)議,可直接與樹莓派通信。樹莓派通過USB與Arduino相連,通過串口通信將每個(gè)舵機(jī)控制信號發(fā)給Arduino。數(shù)字舵機(jī)根據(jù)PWM信號轉(zhuǎn)動,實(shí)現(xiàn)0°~180°的精確控制。此外,機(jī)器人上裝有煙霧和溫濕度傳感器,可實(shí)時(shí)監(jiān)測家中環(huán)境,發(fā)生煤氣泄漏或火災(zāi)時(shí)可自動報(bào)警。

    Kinect通過USB與服務(wù)器相連,完成人體骨骼數(shù)據(jù)的采集。采用Kinect for Windows,其工作原理是通過傳感器上一個(gè)可見光RGB攝像頭和2個(gè)紅外攝像頭,使傳感器能夠采集彩色影像和3D深度圖像[4]。采集圖像時(shí),Kinect傳感器通過紅外激光點(diǎn)陣反饋圖像信息到2個(gè)紅外攝像頭中,對操作者的X、Y、Z坐標(biāo)進(jìn)行3D掃描定位。此外,通過可見光RGB攝像頭捕捉VGA級別的圖像[5],可進(jìn)行人物的身份識別。Kinect數(shù)據(jù)通過USB線纜傳輸?shù)絇C上,PC上的Kinect數(shù)據(jù)采集庫對傳感器傳輸而來的3種不同的數(shù)據(jù)資料進(jìn)行串聯(lián),將彩色圖像和3D深度圖像融合成為一個(gè)數(shù)據(jù)流,最后將數(shù)據(jù)流輸出[6]。本次設(shè)計(jì)利用數(shù)據(jù)流中的20個(gè)關(guān)鍵點(diǎn)的三維坐標(biāo),對人體動作進(jìn)行識別。

2 系統(tǒng)軟件設(shè)計(jì)

2.1 Kinect動作識別算法

    基于輪廓和特征匹配的目標(biāo)跟蹤算法,例如文獻(xiàn)[7]中的人體動作識別算法,雖然準(zhǔn)確性良好,但其算法過于復(fù)雜,模板匹配運(yùn)算量太大,需要大量設(shè)備進(jìn)行并行處理,需要比較高端的處理器?;跒V波預(yù)測跟蹤算法,例如文獻(xiàn)[8]中提出的利用卡爾曼濾波算法實(shí)現(xiàn)人體動作識別,雖然消除了數(shù)據(jù)抖動,但其算法的魯棒性不好,對光照、背景變化太敏感。本文提出了一種改進(jìn)的Kinect動作識別算法,將人體關(guān)節(jié)分上、下半身來處理,既保證了手臂控制機(jī)器人的實(shí)時(shí)性,又保證了雙腿控制機(jī)器人的準(zhǔn)確性。

2.1.1 坐標(biāo)獲取

    Kinect是微軟公司于2011年推出的一款體感外設(shè),主要由紅外發(fā)射器、RGB攝像頭、紅外深度攝像頭組成。它具有實(shí)時(shí)的全身骨骼跟蹤、運(yùn)動捕捉以及麥克風(fēng)輸入的功能,并能夠識別一系列人體動作[9]。本文算法利用Kinect骨骼追蹤技術(shù)獲取操作者20個(gè)關(guān)鍵點(diǎn)的三維坐標(biāo),并能對這些點(diǎn)的位置進(jìn)行實(shí)時(shí)追蹤。圖3為人體關(guān)鍵點(diǎn)的示意圖。

ck1-t3.gif

    由于直接獲取的坐標(biāo)為深度圖像坐標(biāo),所以將其換算為實(shí)際坐標(biāo)。(ximage,yimage,zimage)到(xworld,yworld,zworld)的變換公式[10]

ck1-gs1.gif

2.1.2 特征提取

    在Kinect不標(biāo)定的情況下識別人體動作,且操作者所在位置可能隨時(shí)會發(fā)生變化,因此算法對魯棒性要求很高。本文算法提取的特征是骨骼關(guān)鍵點(diǎn)坐標(biāo)的相對位置,即提取關(guān)鍵點(diǎn)坐標(biāo)向量所成的角度特征。Kinect每秒鐘獲取30幀圖像[11],即關(guān)鍵點(diǎn)的坐標(biāo)每秒刷新30次,再加上人體的抖動,采集到的關(guān)鍵點(diǎn)坐標(biāo)會有波動。采用加權(quán)遞推平均濾波方法對坐標(biāo)進(jìn)行濾波。把連續(xù)N個(gè)采樣值看成一個(gè)隊(duì)列,隊(duì)列的長度固定為N,每次采樣到新的數(shù)據(jù)放入隊(duì)尾,并扔掉原來隊(duì)首的一次數(shù)據(jù)(先進(jìn)先出原則)。然后針對不同時(shí)刻采用不同的權(quán)值,最后把隊(duì)列中的N個(gè)數(shù)據(jù)進(jìn)行算術(shù)平均運(yùn)算,就可獲得新的濾波結(jié)果。公式如下:

ck1-gs2-4.gif

    角度θij就是當(dāng)前人體肘部的角度特征。以此類推,可求出人體所有關(guān)節(jié)的角度特征。提取的角度特征是一個(gè)相對的特征且魯棒性好,只與關(guān)鍵點(diǎn)相對位置有關(guān),與光照、背景、操作者以及操作者的位置都無關(guān)。

2.1.3 特征匹配

    機(jī)器人的機(jī)械臂是由操作者的雙臂體感控制的,而所提取的角度特征恰好是每個(gè)關(guān)節(jié)點(diǎn)的相對角度,所以可直接將角度特征輸出控制舵機(jī)的轉(zhuǎn)動。對于下半身,則要通過特征匹配的方法更加準(zhǔn)確地識別操作者的動作。由于Kinect采用Processing進(jìn)行開發(fā),用Java語言編程,所以將計(jì)算好的動作模板保存到TXT文本中。本設(shè)計(jì)中下半身需要識別的動作包括:前進(jìn)一檔、前進(jìn)二檔、前進(jìn)三檔、后退一檔、后退二檔、后退三檔、停止、機(jī)器人夾爪的張開與閉合。將下半身骨骼數(shù)據(jù)的角度特征與動作模板角度特征進(jìn)行比較,可得到匹配的百分比,從而實(shí)現(xiàn)人體動作的識別。

2.2 機(jī)器人軟件編程

    機(jī)器人的軟件部分主要完成的任務(wù)為:接收服務(wù)器發(fā)來的控制信號并根據(jù)信號控制舵機(jī)和電機(jī)。機(jī)器人的控制芯片為樹莓派,樹莓派的操作系統(tǒng)是開源的Linux系統(tǒng),采用Python語言進(jìn)行編程。首先利用Socket無線通信把樹莓派作為客戶端連接到服務(wù)器,開啟客戶端并將其連接到服務(wù)器的IP地址和端口號,接收服務(wù)器數(shù)據(jù)。然后根據(jù)通信協(xié)議解析數(shù)據(jù),最后利用Firmata協(xié)議將控制舵機(jī)和電機(jī)數(shù)據(jù)發(fā)給Arduino。Arduino根據(jù)接收到的數(shù)據(jù),控制對應(yīng)引腳產(chǎn)生不同占空比的PWM信號來控制舵機(jī)和電機(jī)的轉(zhuǎn)動。樹莓派接收煙霧傳感器和溫濕度傳感器的反饋值,與設(shè)定閾值比較決定是否報(bào)警。

    本設(shè)計(jì)利用安卓開發(fā)了手機(jī)APP[12],可使在外的家人通過機(jī)器人實(shí)時(shí)查看家中情況,及時(shí)發(fā)現(xiàn)家中緊急情況。圖4為手機(jī)APP界面,點(diǎn)擊連接按鈕,手機(jī)APP會自動登錄服務(wù)器。左邊是實(shí)時(shí)視頻監(jiān)控界面,可實(shí)現(xiàn)360°旋轉(zhuǎn)監(jiān)視、拍照、錄像等功能,還可通過對講功能與家里的老人和病人進(jìn)行視頻通話;右邊是機(jī)器人控制界面,通過前后、左右按鈕控制機(jī)器人的運(yùn)動,從而實(shí)現(xiàn)了與傳統(tǒng)固定攝像頭監(jiān)視不同的室內(nèi)移動視頻監(jiān)視功能。

ck1-t4.gif

3 功能實(shí)現(xiàn)

    Processing程序?qū)inect深度數(shù)據(jù)進(jìn)行采集,利用上文動作識別算法對數(shù)據(jù)進(jìn)行處理,把控制信號傳給機(jī)器人。操作者可以用雙臂體感控制機(jī)械臂,并且實(shí)時(shí)性很好;可以用腿部的前后移動體感控制機(jī)器人的前后移動,并且可以調(diào)速;可以利用雙腿的分開程度控制機(jī)械夾爪的開合。實(shí)驗(yàn)表明,本算法的動作識別準(zhǔn)確率較高,而且光照、背景、操作者和操作者位置的變化對算法影響較小。測試結(jié)果如圖5和圖6所示。系統(tǒng)可實(shí)現(xiàn)機(jī)器人的體感控制,幫助家里的老人和病人抓取物品。

ck1-t5.gif

ck1-t6.gif

4 結(jié)束語

    設(shè)計(jì)制作了基于Kinect的家庭助理機(jī)器人系統(tǒng),可通過機(jī)器人的體感控制幫助在家無人照顧的老人和病人抓取物體。在外的家人可通過手機(jī)App遠(yuǎn)程監(jiān)視室內(nèi)情況并可視頻通話,使老人和病人得到更好的照顧。通過實(shí)驗(yàn)測試,該系統(tǒng)工作正常,可實(shí)現(xiàn)以上各項(xià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].計(jì)算機(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].計(jì)算機(jī)仿真,2014,31(12):329-333.

[8] 王梅,盧熙昌.基于人體動作識別的服務(wù)機(jī)器人手臂運(yùn)動控制[J].工業(yè)控制計(jì)算機(jī),2015,28(9):59-62.

[9] 戰(zhàn)蔭偉,于芝枝.基于Kinect角度測量的姿勢識別算法[J].傳感器與微系統(tǒng),2014,33(7):129-132.

[10] 陳翰雄,黃雅云,劉宇,等.基于Kinect的空中手勢跟蹤識別的研究與實(shí)現(xiàn)[J].電視技術(shù),2015,39(21):91-94.

[11] 蔡菁,程雷,王紅霞.基于Kinect的疲勞駕駛綜合監(jiān)測系統(tǒng)研究[J].計(jì)算機(jī)工程與科學(xué),2015,37(12):2380-2385.

[12] 薛亮,張繼飛.基于IOS的智能家居安防系統(tǒng)移動端設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與自動化,2016,35(2):89-92.



作者信息:

黨宏社,侯金良,張  超

(陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安710021)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。