趙玲
(四川中醫藥高等專科學校,四川綿陽,261000)
隨著社會經濟的發展,人們對于醫學護理方面的需求也日趨提升。現在的護理工作主要靠醫護人員來開展。就存在工作強度較高以及一定的感染風險等問題。因此,設計一種護理機器人,實現無人化的護理作業,可以有效解決上述問題,具有良好的應用價值。
就目前而言,國內許多機構在護理機器人領域開展了研究。2020 年,電子科技大學成都學院陳虹宇以人機工程學為基礎,設計了一種穿戴式下肢復健輔助行走裝置,用于腦卒中偏癱患者的康復護理[1];2021 年,江南大學姜智文通過構建人機力學模型,研究了仿人背抱機器人的主要設計因素[2];2022 年,安徽理工大學畢亮亮團隊采用TRIZ 發明原理,研發了一種多功能的輔助護理機器人[3]。從上述設計來看,對護理機器人的研發均達到了良好的效果,且解決了一定的問題。通過分析上述文獻的研究方式可知,均是以提出問題-目標-功能研發為流程進行開展。由此可以說明,該研究方式對于護理機器人的結構、性能研發是比較有效的。因此,本文也以上述研究方式為依據,以STM32 為主控芯片,開發一種結構合理、系統穩定且具有簡易護理功能的機器人。
本課題對于簡易護理機器人的設計中,將到被護理人的常規需求作為設計的主要目標。因此,該護理機器人需要實現的目標有:喂餐、輔助翻身、中醫推拿、人機交互等。要實現上述功能,系統完成各項功能所需要具備的模塊如表1所示。

表1 功能與實現模塊
由表1 所示的功能與模塊對應圖,護理機器人在運行時,主要通過信號采集、信號傳輸、發送指令信號指示各模塊動作等流程來實現各項功能。因此,需要確定系統的主控芯片從而實現結構的完整性。因此,本文以STM32 為主控核心[4],構建整個系統。系統的整體布局情況,如圖1 所示。

圖1 系統整體布局
系統的整體布局完成之后,下一步就是對系統的硬件進行設計。具體操作為:(1)模塊分析。對系統的各模塊應用場景、要求等情況進行分析,為后續硬件的類型選擇提供參考依據;(2)對系統的各部分確定合理的硬件類型(如:型號、參數、功能);(3)設計各模塊的硬件電路,即根據各模塊的情況,搭建能夠使其正常運行的電路。
護理機器人在運行中,需要具有以下幾個性能:(1)系統的運行速度較快且穩定性要求較高;(2)在給被護理人喂飯、翻身、推拿等操作中,需要各種信號和指令即時、穩定傳輸才能確保一切工作有條不紊地進行,故主控芯片需要支持大量且高速的數據傳輸;(3)對于機器人在護理工作中,系統面對各種復雜的指令,具有良好的可靠性;(4)系統的功耗較低。根據上述性能,本文選擇的主控芯片為STM32F407。該控制器兼具上述優點,同時還具有多樣化的接口,可以滿足護理機器人在不同場景下的使用需求,其豐富的外設,也能夠使其應用在多種場合下[5]。STM32F407 的主要參數,如表2 所示。

表2 STM32F407部分主要參數
STM32F407 主控芯片的電路如圖2 所示。

圖2 STM32 主控芯片
就本課題而言,護理機器人由于需要滿足一定的功能需求,故其機器人本體,設計為手臂式結構。考慮到機器人在不同場景的開展護理工作時,能夠根據具體的情況來動作。且工作場景通常是在病房或室內,其地面較為平整,故行走機構設計為輪式。因此,該護理機器人的驅動模塊主要體現在幾個方面:(1)驅動機器人行走機構的驅動;(2)機械手臂的驅動。機器人的手臂包括大臂、小臂、關節、手腕,為實現翻身、喂飯、按摩等功能,需要對關節和手腕進行驅動。
當系統運行時,驅動模塊的基本運行流程為:(1)系統獲得指令,指示機器人進行某項動作(如給被護理人翻身);(2)主控系統指示行走機構的驅動模塊,機器人行走至給被護理人翻身的最佳位置;(3)主控系統指示關節、手腕的驅動模塊動作,機械手臂開始運動,為被護理人翻身。
由于涉及的驅動模塊較多,限于篇幅,本文僅以行走機構模塊為例進行說明。從上述運行流程可知,機器人在工作場所中,行走的地面較為平坦,且行走距離較短,故驅動電機僅需要能夠實現基本的運動需求即可。鑒于此,行走機構的驅動模塊擬定為雙驅動結構。驅動模塊的電路設計如圖3 所示。

圖3 行走機構驅動模塊
同理,根據關節、手腕驅動手臂的電磁轉矩要求、構件的自由度、轉速控制的效果等因素,實現相應驅動模塊的設計。
通常情況下,護理機器人的活動范圍為室內,其整體的活動面積較小。因此,對于系統的無線通信模塊設計中,由于藍牙模塊的有效作用范圍為30 ~40 米,完全能夠滿足室內的使用。因此,本文的無線通信模塊確定為藍牙模塊,基本類型為藍牙5.0 Mesh 模塊。部分主要參數如表3 所示。

表3 藍牙5.0基本參數
對于護理機器人而言,其運動軌跡較為簡單,僅在室內小范圍運動。因此,在循跡模塊設計中,除了為機器人規劃合理的軌跡外,由于小范圍活動區間存在大量的物品擺放以及人員走動,因此還要考慮的是避障問題。鑒于上述兩點,本文在循跡模塊的設計中,考慮到陽光和燈光對傳感器的影響,采用紅外傳感器來實現機器人的循跡[6]。同時,采用超聲波傳感器對障礙物進行檢測[7],繼而達到良好的循跡和避障效果。紅外循跡模塊如圖4 所示,超聲波避障模塊如圖5所示。

圖4 紅外循跡模塊

圖5 超聲避障模塊
液晶顯示模塊,是實現人機交互的媒介。即通過液晶顯示器,顯示系統的運行狀態,包括:計時、驅動電機轉速、電量、循跡模塊工作狀態顯示以及發送指令等。在液晶顯示模塊的設計中,選擇類型為OLED。原因在于,該顯示模塊即使沒有背離燈光,也能夠自主發亮,而且該模塊具有較快的響應速度[8]。液晶顯示模塊的電路設計如圖6 所示。

圖6 液晶顯示模塊
護理機器人在執行各項指令的時候,需要對被護理人的特征進行圖像識別,例如:執行喂飯操作時,需要識別被護理人的面部,執行翻身操作時,需要識別被護理人的側方位,以便能夠在最佳位置完成上述動作。因此,在系統的軟件設計中,主要是圖像識別模塊的軟件設計。在本文的圖像識別模塊設計中,采用的方法為最大類間方差算法(OTSU 算法)。其主要原因在于:(1)計算速度較快。由于其本質是均值方差的計算,故整個計算過程比較簡單,能夠快速得到計算結果;(2)受環境影響因素較小。該算法受圖片的亮度以及對比度等因素的影響比較小,具有良好的數字圖像處理性能[10]。從原理上來說,該方法是一種能夠確定圖像的二值化分割閾值,將圖像采集的目標和背景都達到較高的像素區分度[9]。類間方差表達式為[10]:
式中,1ω為背景像素占比;2ω為前景像素占比;μ為累積灰度值;1μ為前景平均灰度值;2μ為背景的平均灰度值。
對公示(1)進行簡化,可得簡化表達式[10]:
3.2.1 系統基本運行流程
護理機器人主要對被護理人進行識別,以便準確實現對應的護理動作。該圖像處理模塊主要分為5 個流程:(1)圖像的選取;(2)平面圖像處理;(3)圖像預處理;(4)圖像分割;(5)選擇圖像。在圖像識別中,當攝像頭拍攝照片后,按照上述步驟系統開始對平面圖像進行處理,并將處理好的圖像進行展示;隨后,被選取的圖像將被提取濾波器中,進行均衡化、線性變換以及降噪等處理,再利用OTSU 算法計算圖像的最佳值,從而準確實現護理人(人臉、后背等位置)與背景的區分。以人臉識別為例,部分實現的代碼如下:
mport cv2
img = cv2.imread(” face2.png” )
faceCascade = cv2.CascadeClassifier(” haarcascade_frontalface_default.xml” )
faces = faceCascade.detectMultiScale(img,1.3)
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 5)
cv2.imshow(” img” , img)
cv2.waitKey()
cv2.destroyAllWindows()
……
3.2.2 GUI 界面設計
系統的GUI 界面,即圖形用戶界面。其運行的基本原理為:系統的內部會把用戶的指令轉換成對應的代碼信息。此時,GUI 程序開始運行,并創建對應的消息隊列,程序將實時對隊列中的消息進行處理。
在本文中,以人臉識別為例,GUI 界面里主要有五個部分:(1)圖像的選取;(2)平面圖像處理;(3)圖像的預處理;(4)圖像分割;(5)圖像選擇。如圖所示,第一個按鈕是實現圖像選擇的功能。當圖像輸入完成后,點擊平面圖像轉化按鍵,系統便開始對輸入的圖像進行平面化處理。再通過預處理按鍵,對圖像進行均衡化以及降噪等操作。隨后,執行圖像分割處理,即開始分割實現目標和非目標要素;最后將已經分割完成的人臉圖像進行選擇和確定。GUI界面的基本布局,如圖7 所示。

圖7 GUI 界面布局
圖像識別的效果,主要通過識別率來判別。具體的操作方式為:確定圖像識別的總目標數Fz 以及人工識別總數Fr,則識別率計算表達式為[11~12]:
考慮到護理機器人需要在喂飯、翻身以及按摩三個方面的護理,選取人臉、側體位以及后背三個對象為識別目標,在保持室內光線充足的前提下,進行圖像識別比較。以人體側面為例,部分程序為:
import cv2
img = cv2.imread(” monitoring.jpg” )
bodyCascade = cv2.CascadeClassifier(” cascades\haarcascade_fullbody.xml” )
bodys = bodyCascade.detectMultiScale(img, 1.15, 4)
for (x, y, w, h) in bodys
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 5)
……
圖像識別效果如表4 所示。

表4 測試結果
從表4 所示的數據來看,在光線充足的條件下,人臉的識別率最高,因為人的臉部具有明顯的特征,系統能夠較容易地區分人臉與背景的差異;而側體位識別率略低,通常智能通過手部特征來進行識別,而后背由于明顯的特征較少,識別率也進一步降低。所以,OTSU 算法在計算中,對于特征明顯的對象,具有非常高的識別精度,但缺乏明顯特征的對象,圖像識別的準確率會低一些。該實驗結果也表明,在護理機器人設計中,可以在圖像識別的基礎上,再增加人工后臺的運維和控制功能,例如:通過UI 設計,開發基于人機遠程交互的App,通過手機指令動作,指示機器人的運行,這樣便可以彌補系統的不足之處。
對于簡易護理機器人的設計而言,本文結合功能與設計模塊相對應的情況,完成了以STM32 為主控制系統,驅動模塊、無線通信模塊、循跡模塊等相關聯的整體布局。在此基礎上,完成了系統的硬件設計。并在軟件設計中,采用OTSU 算法實現機器人的圖像識別功能,從識別率測試來看,對特征不明顯的對象識別,會存在識別率略低的情況。因此,下一步工作,通過開發人機交互App,通過人工運維與機器人智能化功能相結合的形式,達到優化護理機器人性能的目的。