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