引言
通過對第七次人口普查數據的研究發現[1],我國60周歲及以上老齡人口截至2021年5月已達到全國總人口的18.7%,其中65周歲及以上人口占比13.5%,僅差0.5%我國就將步入老齡社會,人口老齡化所帶來的關于養老的眾多問題是我國亟待解決的[2]。目前人工智能技術已比較成熟,將其應用到智能家居養老服務上是一種當下被多方面認可的解決養老問題的方法。
本系統開發者設計的機器人結合了嵌入式人工智能技術,能夠實時監測老人的身體健康狀態與居家環境數據,同時可以將數據上傳到云端平臺進行分析,老人及其監護人可以使用移動設備訪問平臺查看數據分析曲線。此外,機器人還可以自主規劃環境數據監測路線,確保對居家環境全方位監測。因此該系統能滿足老人和特殊群體的剛性需求,緩解人口老齡化所帶來的問題,實現智能化的居家養老。
1系統架構
小型智能家居養老機器人的總體系統以STM32為主控單元,主要功能模塊包括身體健康監測模塊、環境數據監測模塊、自主定位導航模塊、數據分析與人機交互模塊。STM32與各功能模塊的傳感器進行通信,控制機器人自主移動監測老人身體健康參數與家庭環境數據,并將數據上傳到物聯網云平臺進行分析,同時在交互屏幕上顯示,若監測數據異常,機器人會使用交互模塊進行報警。機器人系統功能架構圖如圖1所示。
2系統硬件設計
機器人系統硬件分為身體健康監測手環和機器人主體兩部分,機器人主體包含環境監測模塊、自主定位導航模塊與人機交互模塊。
圖1機器人系統功能架構圖
2.1智能身體健康監測手環
如圖2所示,手環由MKB0908身體健康檢測模塊與2.4G無線通信模塊組成。MKB0908模塊集成了光學心率傳感器芯片、自動增益控制芯片、溫度傳感器芯片與心率血壓算法芯片。
圖2智能身體健康監測手環
光學心率傳感器基于光電容積脈搏波描記算法,使用兩光發射二極管向皮膚照射,然后通過光敏傳感器接收經過血管和組織反射、吸收后的衰減光[3],并將其轉換為數字信號,再由心率血壓算法芯片處理輸出血壓、心率等數據。溫度傳感器芯片則是通過鉑熱電阻的阻值變化來反映外部溫度的變化,以此來感知人體溫度,并將其轉換為數字信號輸出。最后通過2.4G無線模塊將MKB0908模塊采集到的心率、血壓、HRV與體溫數據透傳到機器人主控。
圖3自主定位導航模塊功能框圖
此外,智能監測手環還能夠識別老人是否佩戴手環,如果沒有佩戴則從監測模式切換到休眠模式,減少電能的消耗。
2.2機器人主體
2.2.1環境監測模塊
環境監測模塊安裝在機器人主體上,主要由DHT11溫濕度模塊、CO濃度檢測模塊、MQ135環境空氣質量檢測模塊與光敏電阻組成,可以實時監測居家環境的溫濕度、光照強度、PM2.5濃度及CO濃度等環境數據。當室內CO濃度超過50ppm時表示老人可能會中毒,此時機器人會利用GSM無線通信模塊將報警短信發送到老人及其指定監護人的手機上[4],給予老人舒適、安全的生活環境。
2.2.2自主定位導航模塊
自主定位導航模塊功能框圖如圖3所示,機器人可用藍牙定位模塊進行三點定位獲取當前坐標,STM32對九軸傳感器輸出的數據進行姿態解算得到機器人相對于地面坐標系各軸的姿態角,然后使用A-Star算法規劃出機器人到環境監測目標點的最短路徑,最后利用光電編碼器閉環控制電機輸出到兩驅動輪的轉速來控制機器人的位移與換向。由于室內環境復雜多變,機器人移動過程中需使用避障模塊來檢測移動路徑上是否會突然出現障礙物,以避免發生碰撞。
2.2.3人機交互模塊
人機交互模塊由電阻式串口觸摸顯示屏、MP3功放模塊與GSM無線通信模塊組成。老人可以通過觸摸屏查看監測數據,同時可以觸摸屏幕設置環境監測點與監測模式。MP3功放模塊可以播報老人身體健康狀況、配網狀態及周圍環境安全狀態,如果監測到CO等有毒易燃氣體濃度超標,會通過功放模塊進行語音報警以及使用GSM模塊發送報警短信。
3系統軟件設計
3.1總體軟件設計
機器人的總體軟件設計流程如圖4所示。首先初始化STM32主控與各模塊間的控制和通信引腳,然后通過觸摸屏設置環境監測模式,默認初始化為自動模式,機器人會自動規劃監測點,若設置為手動模式,則需設置指定的監測點。同時若智能手環打開且處于非休眠模式,其會自動采集老人的身體健康數據并傳輸到機器人主控。
主控對老人身體健康與居家環境數據進行處理,并將其顯示在屏幕上,如果數據異常則會進行語音報警和發送警示短信。此外,如果WIFI模塊聯網失敗,機器人也會進行語音提示,若成功聯網則將數據上傳到云平臺進行可視化顯示與分析。
圖4系統總體軟件設計流程圖
3.2數據讀取與濾波算法設計
3.2.1身體健康監測模塊軟件設計
在正常佩戴手環的條件下,身體監測模塊會收集老人體溫、心率和血壓等多項數據,然后通過2.4G無線模塊透傳到機器人主控。主控與2.4G模塊采用SPI協議進行通信,根據指定幀頭55AA判斷是否為數據傳輸起始幀,并且采用順序循環隊列接收數據包,然后按指定協議解析得到實際身體健康監測數據。此外,MKB0908模塊自帶硬件濾波算法,因此無需對數據進行軟件濾波處理。
3.2.2居家環境監測模塊軟件設計
主控芯片采用onewire協議與DHT11溫濕度模塊交互,完成對室內環境溫度與濕度數據的采樣。利用芯片的ADC模塊將光敏電阻、CO檢測模塊、MQ135模塊輸出的模擬電壓轉換為數字信號,然后將其換算成光照強度、CO濃度與PM2.5濃度等數據。
實際測量環境中存在隨機噪聲,測得的數據會有不準確的脈沖跳變,對數據分析與預測造成了一定的影響,因此采用單字節滑動中位值平均濾波算法濾除毛刺[5]。使用順序隊列作為數據緩沖,各項環境監測數據依次從隊頭進入,然后從隊頭滑走,最后去掉最大值和最小值再對其余數據求平均值,即為濾波后的結果。下面將濾波前后的溫度與濕度數據分別進行比較,對比結果如表1所示。
表1室內溫度與濕度采樣數據濾波前后對比結果
根據表1對比結果可知,濾波后的溫度與濕度數據脈沖噪聲明顯減少,數據上下浮動變化值幾乎可忽略不計。由此可知環境監測模塊的準確性與穩定性得到了提高,為后續云端數據分析提供了保障。
3.3機器人路徑規劃算法
3.3.1藍牙三點定位算法
在室內以1m為一個單位建立平面笛卡爾坐標系,將藍牙信標分別放置在三個坐標已知的地面上,藍牙信標會自動廣播各自的UUID號與接收信號強度(RSSI)[6]。根據公式(1)可以通過RSSI信號衰減程度來計算機器人主體上的藍牙模塊與各藍牙信標之間的距離:
其中,A為藍牙發射端與接收端相距1m時的信號強度,n為環境衰減因子[7]。n的取值由室內環境決定,主要受室內墻體厚度、溫濕度等參數影響,根據工程經驗及后期調試,衰減因子n取3.1時與公式擬合度良好。通過藍牙信標廣播的UUID號可知它們各自對應的坐
通過藍牙信標廣播的UUID號可知它們各自對應的坐標,再根據RSSI信號強度得出機器人與藍牙信標的直線距離,最后利用畢達哥拉斯定理建立機器人待定位點與藍牙信標所在點的坐標參數和相互距離的方程組:
其中,(xn,yn)為機器人待定位點坐標參數,(xbn,ybn)為藍牙信標的坐標參數,根據方程求解出(xn,yn)的值,然后使用加權質心算法即可得出機器人當前位置的坐標為((x1+x2+x3)/3,(y1+y2+y3)/3)。
3.3.2A-Star最短路徑搜索算法
機器人每次移動時通過九軸傳感器判斷當前相對方位,同時使用避障模塊檢測附近坐標位置是否存在障礙物,若有則將該坐標記為1,反之記為0,然后使用二維數組將地圖數據存到主控芯片Flash中,二維數組的行、列索引即為地圖的縱、橫坐標。
圖5A-Star算法搜索流程圖
家庭室內地圖屬于典型的靜態環境,因此使用A-Star算法進行路徑規劃的效率最高,并將其計算代價的啟發函數設成曼哈頓距離[8],以減少使用歐式距離開方運算時的工作量。A-Star算法搜索過程中需要使用開放線性表與封閉線性表進行記錄,開放線性表用于存儲算完代價但未擴展的節點,封閉線性表則存儲障礙物節點或已擴展的節點。由于當前節點每次都可向周圍相鄰的節點擴展,所以至多有8個節點滿足擴展條件(不在封閉線性表中),因此采用八叉樹存儲每次擴展的節點。算法流程圖如圖5所示。
首先,將機器人當前坐標設為起點,待監測環境點設為終點,并把它們放到開放線性表中,同時將起點設為八叉樹的根節點。然后從樹的當前節點開始向周圍相鄰節點擴展并計算它們的代價,將滿足擴展條件的節點入樹,并將它們的父指針指向當前節點,同時把它們加入到開放線性表中,不滿足的則放到封閉線性表中。
而后從開放線性表中取出代價最小的節點作為樹的當前節點加以擴展,并將其從開放線性表移到封閉線性表中,以此循環往復。若開放線性表已為空,則說明未找到終點,結束循環;若當前節點即為終點,則說明找到終點,結束循環,然后通過當前節點的父指針回溯到根節點,即可找到機器人移至待監測點的最短路徑。此外,若機器人尋路途中突然檢測到前方存在障礙物,則將其所在的坐標記為障礙物節點,再使用A-Star算法重新規劃路徑,以確保機器人在外界干擾下也能準確到達待監測環境點。
3.4機智云物聯網開發平臺
主控芯片將監測數據通過串口協議發送到WIFI模塊上,在WIFI模塊成功聯網的前提下,它會將數據按JSON格式打包,然后通過MQTT協議將數據包作為控制報文的有效載荷進行發布,機智云平臺作為客戶端成功訂閱相應的主題后會收到WIFI模塊推送的數據。
如圖6所示,老人可以通過機智云APP查看實時監測數據,并且APP可以將數據以不同顏色的曲線顯示出來,同時還能對數據進行統計分析,便于老人遠程查看,實時了解自己的身體健康和居家環境狀況。
圖6機智云開發平臺數據分析
3.5人機交互界面設計
人機交互屏幕采用T5L電阻式串口觸摸屏,其UI界面使用DWINDGUS軟件設計。在軟件上開發好界面背景圖片、占位字符等靜態數據并將其存到顯示器的TF卡中,顯示器主控讀取TF卡中的數據并將其顯示在液晶屏上。機器人主控可將監測數據、頁面控件回調指令等信息通過UART協議發送給顯示屏,顯示屏即可動態顯示參數和執行相應操作。屏幕最終顯示效果如圖7所示。
圖7人機交互界面
圖7(a)為身體健康數據的顯示界面,屏幕左上方的文字顯示手環的佩戴狀況,右上方顯示WIFI模塊網絡的配置狀態,其余部分顯示老人當前的體溫、心率、血壓及HRV曲線。圖7(b)為環境數據的顯示界面,展現了當前室內的溫濕度和光照強度,同時表明CO濃度達標。
4結語
本文針對人口老齡化所帶來的養老問題,設計了一款小型智能家居養老機器人系統。它具有身體健康數據監測與居家環境數據監測兩大功能,并且可以將數據發送到顯示屏或機智云平臺供老人查看。在設計軟件時對環境數據的讀取做了濾波處理,可以很好地克服因偶然因素引起的擾動,同時將A-Star算法應用到機器人移至目標環境監測點的最優路徑求解中,提高了機器人的靈活性。該系統可以較好地幫助老人進行身體健康和居家安全管理,有助于實現智能化居家養老,繼而緩解老齡化帶來的諸多問題。
-
STM32
+關注
關注
2266文章
10875瀏覽量
354878
發布評論請先 登錄
相關推薦
評論