陳智拓,張 軍,高 輝,紀 峰,王 標,李紅莉
(合肥工業(yè)大學(xué)儀器科學(xué)與光電工程學(xué)院,合肥 230009)
目前中國社會人口老齡化趨勢日漸嚴重,而且空巢老人數(shù)量不斷增加,“智慧養(yǎng)老”已成為社會普遍關(guān)注的熱點問題[1-4]。這一概念的普遍認知基本圍繞在“面對以居家型、社區(qū)型和機構(gòu)型”為養(yǎng)老模式的老年人,利用物聯(lián)網(wǎng)、互聯(lián)網(wǎng)、智能設(shè)備等先進技術(shù)與設(shè)備,為其提供實時、快捷、高效、低成本的養(yǎng)老。其中機器人陪伴服務(wù)是一種有效的形式。
在家用服務(wù)機器人方面,眾多發(fā)達國家處于領(lǐng)先地位,如老年陪護機器人“帕羅”、Roomba 系列吸塵器機器人等。國內(nèi)服務(wù)類機器人中具有代表性的是科沃斯掃地機器人。但總體來看,市場上專一功能的機器人產(chǎn)品較多且價格較昂貴,尚缺乏物美價廉的“陪伴”和“關(guān)愛”型機器人產(chǎn)品。本文提出一種實用的家庭陪伴機器人設(shè)計方案。
基于NI myRIO具有豐富的板載硬件I/O、無縫的軟件開發(fā)體驗以及完善的配套資源,有助于快速開發(fā)完整的嵌入式工程項目,非常適用于控制、機器人、機電一體化及嵌入式設(shè)計的教學(xué)和創(chuàng)新實踐活動[5-6]。相較于一般單片機,NI myRIO具有更強的大量數(shù)據(jù)信息(音頻視頻信息)處理能力,可靠性高,聯(lián)網(wǎng)方便。系統(tǒng)框圖如圖1 所示。
圖1 系統(tǒng)框圖
項目選擇NI myRIO作為家庭機器人的核心控制器,利用人體紅外傳感模塊和攝像監(jiān)控模塊尋找主人;利用超聲波測距模塊實現(xiàn)人機距離檢測,且與電動機驅(qū)動模塊配合實現(xiàn)自動避障、跟隨;利用語音模塊和存儲卡作用實現(xiàn)語音交互功能;電源模塊用于為各模塊供電。發(fā)揮NI myRIO支持WiFi 通信的優(yōu)勢,通過移動終端實現(xiàn)對機器人運行狀態(tài)的遠程監(jiān)控。
圖2 硬件選型
機器人設(shè)計從小巧便攜、經(jīng)濟實用的角度出發(fā)進行硬件選型。硬件選型如圖2 所示。硬件選用人體紅外感應(yīng)模塊HC-SR501 RD-624與藍色妖姬USB攝像頭配合尋找主人,采用超聲波舵機云臺模塊(超聲波模塊HC-SR04 +舵機SG90)和電動機驅(qū)動模塊L298N實現(xiàn)測距和避障,選用語音識別模塊LD3320 識別主人的語音信息。借助iPad作為移動終端進行遠程通信。NI myRIO 與各模塊間的硬件接線關(guān)系如表1 所示。
表1 NI myRIO與各模塊間的硬件接線
根據(jù)設(shè)計目標進行軟件設(shè)計,編制的系統(tǒng)程序流程如圖3 所示。
機器人開機后首先初始化自檢,自檢正常則進入工作狀態(tài),定時判斷人、機距離,實現(xiàn)自動避障、跟隨,和主人保持友好距離,根據(jù)系統(tǒng)設(shè)置進行日常生活提醒,與主人進行基本的語音交互,當(dāng)發(fā)現(xiàn)異常情況時,能主動通信報警,方便家人遠程提供救助。
軟件設(shè)計采用模塊化思想[7],通過自動跟隨、語音交互、數(shù)據(jù)通信3 大模塊搭建系統(tǒng)程序。
家庭機器人最主要的特色就體現(xiàn)在“陪伴”上,機器人首先必須能夠自動跟隨主人并保持友好的距離[8]。設(shè)計中需要實現(xiàn)機器人對主人位置的鎖定,判斷距離,距離過遠時主動跟隨,且在跟隨過程中能夠?qū)崿F(xiàn)自動避障。
圖3 系統(tǒng)程序流程圖
3.1.1 視頻+紅外模式鎖定主人
對于機器人的攝像頭所拍攝到的前方圖像,設(shè)計利用NI Vision Assistant生成識別訓(xùn)練程序,結(jié)合HCSR501 人體紅外感應(yīng)模塊來判別主人是否在視線內(nèi)。
實現(xiàn)過程為:利用NI-Vison-Assistant 軟件對視頻圖像進行預(yù)分析和處理,并導(dǎo)出預(yù)處理程序以進行2次編寫。在視覺助手中,對采集到的一張背影圖,利用Color Plane Extraction 函數(shù)選擇HSL-Luminance Plane功能;再利用Pattern Matching函數(shù)將識別訓(xùn)練模板框設(shè)為雙腿,并設(shè)置好相應(yīng)參數(shù);選擇工具欄生成識別訓(xùn)練程序并導(dǎo)入myRIO 中。識別訓(xùn)練模板圖片需要事先借助電腦映射網(wǎng)絡(luò)驅(qū)動器存入myRIO 中,訪問myRIO 中的圖片保存路徑,雙擊Vision Acquisition Express VI選擇相機,完成模板匹配。Assistant 處理效果如圖4 所示。
結(jié)合人體紅外感應(yīng)模塊的輸入狀態(tài),可綜合判斷前方是否有人,鎖定主人判別程序如圖5 所示。
圖4 Assistant處理效果圖
圖5 鎖定主人判別程序
3.1.2 超聲波檢測
機器人“看到”主人后,需要進一步判斷與主人的距離,采用超聲波傳感器實現(xiàn)距離檢測[9],程序如圖6所示。
圖6 超聲波檢測
圖6(a)所示while 循環(huán)用于定時發(fā)出40 kHz 的超聲波并檢測回波信號,圖6(b)所示while 循環(huán)用于檢測超聲波脈沖寬度。超聲波模塊檢測到回波信號則輸出回響信號。回響信號的脈沖寬度與所測的距離成正比。程序利用計數(shù)器、選擇函數(shù)和移位寄存器配合可測出脈沖寬度[10]。
超聲波測得的距離可由s=340t/2(m)求得,其中s為測得距離(m);t 為傳播時間(s)。由于實測中傳播時間單位為μs,且考慮超聲波傳感器測距范圍為4.5 m,選取人機距離單位用cm 表示。故通過單位換算后利用公式實現(xiàn)y=0.034x/2(cm),求得實際人機距離,其中y對應(yīng)實際距離,x對應(yīng)傳播時間(μs)。
3.1.3 電動機驅(qū)動
當(dāng)機器人定時檢測發(fā)現(xiàn)人機距離大于50 cm 時,將驅(qū)動小車主動追隨,當(dāng)人機距離人小于30 cm 友好距離時,控制小車停住。但如果機器人視線內(nèi)沒有找到主人,且距離障礙物大于30 cm時,機器人將驅(qū)動小車前行,邊走邊繼續(xù)尋找主人,在行進路程中結(jié)合舵機搖頭功能達到避障的效果。
小車驅(qū)動程序如圖7 所示,利用驅(qū)動輸出控制express VI配合條件結(jié)構(gòu)實現(xiàn)。
圖7 小車驅(qū)動程序
舵機搖頭控制需要一個20 ms左右的時基脈沖,該脈沖的高電平部分一般為0.5~2.5 ms范圍內(nèi)的角度控制脈沖部分。以180°伺服為例,對應(yīng)的控制關(guān)系見表2。
表2 時基脈沖與角度控制關(guān)系
舵機搖頭控制程序如圖8 所示,實現(xiàn)功能為:當(dāng)小車遇到距離小于20 cm 的障礙物時,舵機搖頭測量5個方位距離障礙物的距離,構(gòu)成一數(shù)組,然后根據(jù)數(shù)組索引最大值驅(qū)動小車向相應(yīng)的方向轉(zhuǎn)向??刂菩≤嚽斑M姿態(tài),有效避開障礙物。
圖8 舵機搖頭控制
家庭機器人的貼心“陪伴”還主要體現(xiàn)在人機語音交互方面。為了實現(xiàn)這一功能,需要創(chuàng)建語音庫,通過對主人的語音識別[11-12]等,根據(jù)需求從語音庫調(diào)取播放相應(yīng)語音。
3.2.1 創(chuàng)建語音庫
為了方便myRIO 調(diào)用音頻文件,需要利用Webbased Distributed Authoring and Versioning(WebDAV)通信協(xié)議將音頻文件傳輸?shù)絤yRIO中,在myRIO中創(chuàng)建語音庫。
借助電腦在myRIO 映射內(nèi)部文件下創(chuàng)建保存語音庫的基路徑,步驟為:
步驟1將電腦與myRIO連接,找到myRIO在電腦中的映射網(wǎng)絡(luò)驅(qū)動器(Z:);
步驟2在映射網(wǎng)絡(luò)驅(qū)動器中輸入myRIO設(shè)備IP(172.22.11.2);
步驟3利用WebDAV 可以看到myRIO 的內(nèi)部文件(http//172.22.11.2/files);
步驟4在myRIO 映射內(nèi)部文件下創(chuàng)建/C 基路徑,以方便存放音頻文件。
生成myRIO調(diào)用所需的音頻數(shù)據(jù)文件并保存到語音庫中。myRIO不具備解碼MP3 文件的功能,在錄取音頻的時候需要將聲音信息存儲成數(shù)據(jù)文件(.dat)。利用LabVIEW 中的聲音采集express vi 和路徑創(chuàng)建函數(shù)將所錄制聲音頻數(shù)據(jù)存入電腦files(172.22.11.2DavWWWRoot)(Z:)/C 基路徑下,以方便myRIO映射調(diào)用,如圖9 所示。在聲音采集時,根據(jù)測試將采樣率選取為30~40 kS/s,以減小聲音在myRIO audioout端口輸出時的失真。
圖9 保存音頻數(shù)據(jù)文件
3.2.2 聲音文件的播放
基于myRIO無法直接播放所需調(diào)用的音頻數(shù)據(jù),要實現(xiàn)聲音播放,必須對讀取到的音頻數(shù)據(jù)進行拆解再輸出。設(shè)計利用WDT 索引將波形數(shù)據(jù)拆分為兩組數(shù)據(jù)(雙通道采集的聲音),提取出振幅成分,借助myRIO工具包自帶的模擬信號輸出express VI 及for循環(huán)的自動索引功能向myRIO 的audioout 模擬輸出端口提供左右聲道數(shù)據(jù),如圖10 所示。
圖10 聲音文件的播放
3.2.3 語音交互
語音交互在硬件上體現(xiàn)為實現(xiàn)LD3320 與myRIO的串口通信[13],即當(dāng)LD3320 識別到相應(yīng)語音后,通過串口告知myRIO 識別結(jié)果,由myRIO 根據(jù)交互需求(如需要說“你好”),選擇播放語音庫中對應(yīng)的音頻文件。在軟件上需要實現(xiàn)串口通信和語音播放的融合。
設(shè)計利用VISA 函數(shù)配置好波特率等通信參數(shù),根據(jù)約定的通信協(xié)議,通過myRIO的UART端口實現(xiàn)串口通信。通過判斷串口緩沖區(qū)是否接受到數(shù)據(jù),如果接收到數(shù)據(jù)通過條件結(jié)構(gòu),再讀取串口數(shù)據(jù)至讀取緩沖區(qū)。串口通信和語音播放功能通過讀取緩沖區(qū)的屬性節(jié)點和條件結(jié)構(gòu)聯(lián)系起來[14-15]。需播放的音頻文件路徑通過字符串組合函數(shù)獲得,為了避免重復(fù)播放,在語音播放完成后需將讀取緩沖區(qū)清除。實現(xiàn)程序如圖11 所示。
圖11 語音交互
為方便家人遠程監(jiān)控家中情況,以及實現(xiàn)機器人發(fā)現(xiàn)主人出現(xiàn)異常情況時主動通信求助,需要設(shè)計實現(xiàn)機器人控制核心myRIO 與PC 端的通信,以及myRIO與移動終端的通信。
3.3.1 myRIO與PC端的通信
根據(jù)設(shè)計需要,采用WiFi 連接實現(xiàn)機器人與PC上位機的無線通信。在NI MAX 中可對myRIO 進行通信配置,具體過程為:打開myRIO的網(wǎng)絡(luò)適配器,默認連接選項為以太網(wǎng)適配器usb0 連接,將無線適配器WLAN的連接模式切換成連接至無線網(wǎng)絡(luò),找到PC機所在的路由器網(wǎng)絡(luò),輸入WiFi 密碼,即可實現(xiàn)myRIO與PC端的WiFi連接和數(shù)據(jù)傳輸,見圖12。
圖12 myRIO與PC實現(xiàn)WiFi連接
3.3.2 myRIO與移動終端的通信
為方便用戶在遠程終端上監(jiān)控機器人的各項指標,需要建立myRIO和智能終端之間的通信。一般有基于LabVIEW的網(wǎng)絡(luò)共享變量或是Web service 等實現(xiàn)方式。設(shè)計中選用了網(wǎng)絡(luò)共享變量方式,因其簡單易行,且可直接應(yīng)用遠程控制軟件NI DATA DASHBOARD,有利于保障通信過程穩(wěn)定可靠[16]。
完成myRIO與智能終端iPad 的通信綁定。進行myRIO上的通信部署,將需要監(jiān)控的變量在LabVIEW程序中設(shè)置為網(wǎng)絡(luò)共享變量,針對iPad 進行通信部署,即綁定對應(yīng)的網(wǎng)絡(luò)共享變量。
針對iPad 進行通信部署:在iPad 下載安裝Data Dashboard for LabVIEW;連接iPad和myRIO,確保連接時iPad、myRIO 和PC 上位機處于同一路由器下;在DATA DASHBOARD中放置所需相關(guān)控件,點擊控件下方的Connect >>Shared Variables,在New Server中輸入myRIO的IP 地址;點擊Connect 連接,在可供綁定的共享變量庫中選擇需要響應(yīng)的網(wǎng)絡(luò)共享變量,即完成綁定。網(wǎng)絡(luò)共享變量綁定示例如圖13 所示。
圖13 綁定共享變量示例
3.3.3 操作界面
為方便用戶通過iPad直觀監(jiān)控機器人運行狀態(tài),增加應(yīng)用程序的可移植性,在完成了myRIO上系統(tǒng)程序編制的基礎(chǔ)上,利用NI Data Dashboard 軟件實現(xiàn)iPad對陪伴機器人的無線控制以及二者間的無線數(shù)據(jù)傳輸,在iPad 上設(shè)計了簡潔友好的人機界面,如圖14 所示。
圖14 iPad端人機界面設(shè)計
用戶通過iPad可以直觀地看到系統(tǒng)運行狀態(tài),包括機器人自動跟隨狀態(tài)(檢測距離、電動機轉(zhuǎn)速等),當(dāng)前語音交互情況(時間及語音信息),WiFi連接狀態(tài)指示等等。
受疫情影響不能現(xiàn)場實驗,項目組進行了系統(tǒng)仿真測試,包括自動跟隨測試、語音測試和通信測試。
自動跟隨測試結(jié)果如圖15 所示,機器人檢測到前方有人,但由于人機距離尚在友好范圍內(nèi),故仍處于靜候狀態(tài)。
圖15 自動跟隨測試效果
語音交互實現(xiàn)主要在于語音識別并調(diào)取播放對應(yīng)語音數(shù)據(jù)文件,圖16 展示了機器人正常開關(guān)機時播放的語音效果。
圖16 正常開關(guān)機時語音播放效果
當(dāng)機器人處于工作狀態(tài)時,在iPad上利用基于NI Data Dashboard 設(shè)計的人機界面,可實現(xiàn)對以myRIO為控制核心的陪伴機器人運行狀態(tài)的監(jiān)控,數(shù)據(jù)通信效果如圖17 所示。
本文提供了一種基于NI myRIO,集圖像識別、運動控制、語音交互、無線通信以及數(shù)據(jù)傳輸為一體的家庭陪伴機器人設(shè)計方案。設(shè)計利用超聲波舵機、人體紅外感應(yīng)、攝像頭配合小車驅(qū)動等模塊實現(xiàn)機器人的自動避障、跟隨,采用LD3320模塊的語音識別功能及串口通信實現(xiàn)語音交互,發(fā)揮機器人的“陪伴”作用;通過數(shù)據(jù)通信設(shè)計,方便家人利用iPad 遠程監(jiān)控機器人工作狀態(tài),使陪伴機器人更具有實用價值。
圖17 iPad端人機界面數(shù)據(jù)通信效果
系統(tǒng)測試表明該設(shè)計方案具有可行性,具有深入研發(fā)的價值,后期將從系統(tǒng)集成的角度考慮產(chǎn)品化設(shè)計,發(fā)揮家庭陪伴機器人的實際應(yīng)用價值。