摘 要:本文針對藥品無接觸配送的問題,設計了一款基于STM32的智能送藥機器人系統(tǒng),該系統(tǒng)可以替代傳統(tǒng)人工取送藥,進行無接觸配送。系統(tǒng)分為多個智能送藥機器人,每個機器人均通過基于OpenMV的機器視覺模塊識別病房號數(shù)字,通過HX711重量傳感器檢測藥物是否處于機器人中,通過ToF激光雷達進行測距避障,同時多個機器人之間通過BT08B藍牙模塊通信,實現(xiàn)協(xié)同工作。智能送藥在一定程度上緩解了醫(yī)療行業(yè)人力資源緊張的情況,同時在取送藥方面能夠有效降低醫(yī)院內(nèi)人員流動帶來的病毒傳播風險。本文首次提出的多設備協(xié)同運行的智能送藥機器人支持數(shù)據(jù)互傳,能夠實現(xiàn)更高效快速的藥品配送,為研究智能醫(yī)療機器人方向的學者提供了新的研究依據(jù)和視角,也為智能醫(yī)療機器人的發(fā)展提供了一定借鑒和參考。
關鍵詞:智能送藥機器人;數(shù)字識別;激光測距;STM32;Open MV;藍牙通信
中圖分類號:TP242;TH77 文獻標識碼:A 文章編號:2095-1302(2024)02-0-04
0 引 言
2020年新型冠狀肺炎爆發(fā)以來,傳播速度快、涉及地區(qū)廣,且由于其快速變異的特點,防御過程中醫(yī)院作為高危區(qū)域[1],盡可能減少醫(yī)院內(nèi)人員取送藥將很大程度減少人員交叉接觸,降低新型冠狀肺炎感染幾率。
目前,我國人均醫(yī)護人員數(shù)量仍處于較低水平,特別在特殊時期時常發(fā)生抽調(diào)人力的情況,進一步加劇了醫(yī)療體系人力資源不足的現(xiàn)象[2-3]。智能送藥機器人可以自動完成取送藥任務,提高送藥效率,減少人力資源的浪費與人員間接觸。智能送藥機器人屬于智能物流機器人類機器人,具備高效、便捷、安全等特點[4]。介于其上述特點,無接觸的智能送藥機器人備受關注[5-6]。
“十四五”時期,國家政策明確提出大力發(fā)展物聯(lián)網(wǎng)及醫(yī)療機器人,自動化、智能化將逐步走進智能物流機器人領域。智能物流機器人日漸成為當今主流研究趨勢[7],本文基于STM32和Open MV進行智能送藥機器人的設計研究,力圖增添智能送藥機器人領域新的研究依據(jù),也為研究該領域的學者提供一定的借鑒和參考。
1 系統(tǒng)整體方案概述
本方案以STM32F103RCT6為主微控制器,結合Open MV4 H7plus、HX711、TB6612、ToF激光測距模塊、BT08B藍牙串口模塊等實現(xiàn)相關功能。使用18650鋰電池對系統(tǒng)供電,使其正常工作。系統(tǒng)通過OpenMV實現(xiàn)巡線及數(shù)字識別,通過HX711重量傳感器判斷藥物是否處于機器人中,通過TB6612模塊驅動直流電機,通過ToF激光測距模塊實現(xiàn)測距避障功能,通過BT08B藍牙串口模塊實現(xiàn)不同機器人之間的協(xié)同工作功能。圖1為系統(tǒng)總體模塊設計圖。
2 設備硬件選型設計
2.1 主微控制器部分
主控模塊主要由微控制器(MCU)及其外圍電路構成,本文微控制器選擇ST公司出品的STM32F103RCT6,其為ARM Cortex-M3 MCU,具有片載256 KB FLASH閃存、
72 MHz CPU、CAN總線等,擁有5個USART串口,兩條I2C總線,可以滿足物流機器人所有外設模塊的驅動需求。此外,該微控制器還支持多種編程語言,包括C語言、C++語言、Python等,方便系統(tǒng)進行二次開發(fā)和定制化。相較于其他微控制器,該微控制器片載外設豐富,外圍電路需求簡單,開發(fā)者較多且社區(qū)資源豐富,開發(fā)生態(tài)相較于其他微控制器更佳。圖2為與主控所連接的硬件設備關系。
2.2 電機驅動部分
該部分主要由車輪、電機以及電機驅動構成。本文所設計的系統(tǒng)環(huán)境為藥品運輸環(huán)境,具有較為平整的地面,因此省略懸掛等底盤結構。
本部分采用TB6612驅動直流電機及麥克納姆輪。常見的直流電機驅動模塊有L298N和TB6612[8],但TB6612性能更佳。首先,TB6612比L298N更小巧[9],因此更適合在空間有限的應用中使用。其次,TB6612具有更高的效率和更低的功耗,因此在電池供電應用中更為適用。此外,TB6612還具有更好的保護功能,包括過流保護、過熱保護和低電壓保護等。最后,TB6612的控制方式更為靈活,可以通過PWM信號控制電機的速度和方向。綜上,TB6612相較于傳統(tǒng)的L298N而言,H橋上損耗更低,發(fā)熱控制良好,集成度高,所需外圍電路較少。因此選擇TB6612驅動直流電機。
使用麥克納姆輪結構可以極大降低機器人底盤的機械結構設計難度,且相較于傳統(tǒng)的蝸桿曲柄轉向結構而言,麥克納姆輪結構轉彎半徑更小,移動更加靈活[7],適合在醫(yī)院等復雜的環(huán)境下移動。
2.3 藥物感知部分
該部分由響應速度快、抗干擾性強的HX711重量傳感芯片[10]、應變片及托盤組成,該部分的電路是一種基于電橋原理的傳感器電路,它由電橋和放大器組成。當受力作用于應變片時,電橋中的電阻值會發(fā)生微小變化,該變化被放大器放大,從而得到一個可讀的電信號。微控制器可以通過ADC采樣,根據(jù)所得電信號的不同實現(xiàn)稱重功能。相較于MCP3421、AD7791等重量傳感芯片,HX711雖然精度較低,但是成本與功耗相相對來說也更低,且HX711精度完全可以滿足智能送藥機器人對藥品感知能力的需求。
2.4 巡線及數(shù)字識別部分
該部分使用OpenMV開源視覺項目實現(xiàn),該開源項目使用MicroPython語言開發(fā),支持多種傳感器和攝像頭,可應用于不同的場景,具有很強的擴展性和較高的運算速度,且功耗低[11],適合嵌入式系統(tǒng)應用。除了完成巡線、NCC模板匹配任務外,也可以運行深度學習模型等其他任務,為產(chǎn)品迭代功能升級奠定了良好的硬件基礎。
2.5 避障部分
該部分采用ToF激光雷達實現(xiàn),其相較于其他距離傳感器而言有以下優(yōu)點:
(1)高精度:ToF激光雷達可以實現(xiàn)毫米級距離測量精度[12],相比其他傳感器更加精確。
(2)高速率:ToF激光雷達可以實現(xiàn)高速掃描,適用于快速移動的目標檢測。
(3)低功耗:ToF激光雷達的功耗相對較低[13],適用于移動設備和無人機等低功耗應用。
(4)抗干擾:ToF激光雷達可以在強光、雨雪等惡劣環(huán)境下正常工作,具有較強的抗干擾能力[14]。
2.6 藍牙通信部分
該部分采用BT08B藍牙模塊實現(xiàn),其遵循V3.0藍牙規(guī)范,支持UART接口,并支持SPP藍牙串口協(xié)議,具有價格低、體積小、收發(fā)靈敏性高等特點,只需少許外圍電路就能實現(xiàn)強大功能。雖然BT08B的傳輸速率不及V4.0及以上的高速藍牙模塊,但是成本更低,且BT08B的傳輸速率完全滿足智能送藥機器人的傳輸需求。
3 系統(tǒng)主要功能實現(xiàn)
3.1 巡線功能實現(xiàn)
巡線功能主要通過OpenMV進行色塊識別來實現(xiàn),根據(jù)每一幀圖像中引導線顏色的色塊位置判斷是否偏離引導線,判斷色塊大小以判斷是否到達路口。
在OpenMV上調(diào)用image.find_blobs()函數(shù)創(chuàng)建image.blob()對象。根據(jù)blob()對象中的blob().cx()參數(shù)判斷機器人是否發(fā)生偏離。例如:將攝像頭分辨率設置為QVGA(320×240),若blob().cx()處于158~162范圍,則為正常未發(fā)生偏離,若小于158則發(fā)生了右偏移,若大于162則發(fā)生了左偏移。將偏移信息通過串口寫入STM32,通過差速偏移或原地轉彎實現(xiàn)機器人行進軌跡修正。
3.2 數(shù)字識別功能實現(xiàn)
數(shù)字識別功能可以通過兩種方法實現(xiàn)。
第一種為使用TensorFlow Lite所需識別的數(shù)字訓練模型,OpenMV通過導入.tflite模型文件進行識別,這種方法對于不同環(huán)境下的識別效果較好,使用越全面的數(shù)據(jù)集進行訓練,得到模型的識別效果越好,對不同環(huán)境的適應性就越強。但其缺點也很明顯,該方法會導致識別速率降低,占用大量MCU資源,使MCU能耗變高導致MCU發(fā)熱。
第二種為使用歸一化互相關(NCC)算法在圖像中匹配模板,通過為不同數(shù)字設置不同的模板進行數(shù)字識別。NCC算法是一種圖像匹配算法,其通過計算兩幅圖像的相似度實現(xiàn)匹配。具體來說,NCC算法將兩幅圖像分別看作是兩個向量,然后計算它們的內(nèi)積和模長,最后將內(nèi)積除以模長的乘積,得到的結果就是兩幅圖像的相似度。在匹配時,NCC算法會將一個圖像在另一個圖像上滑動,計算每個位置的相似度,找到相似度最高的位置,即為匹配位置。
NCC算法表達式如下:
(1)
式中:I1和I2是兩個n維向量;x為圖像塊的點;μ1,μ2為圖像塊的均值。在OpenMV中使用image.find_template()調(diào)用該算法,通過其返回值判斷識別的數(shù)字及該數(shù)字的位置,需要注意的是,該方法需要改變攝像頭輸入圖像為灰度圖像以提高識別效率,所以在巡線與數(shù)字識別方法切換時需要注意切換攝像頭輸入圖像模式。
該方法相較于TensorFlow Lite來說速率更高,占用資源少,雖然環(huán)境改變對識別效果影響較大,對環(huán)境的適應性弱于TensorFlow Lite,但是對于本文研究的病房環(huán)境來說,其光線等條件變化較小,且可以通過機器人自行補光,穩(wěn)定光線環(huán)境。因此本文使用NCC算法以實現(xiàn)數(shù)字識別。設備系統(tǒng)流程如圖3所示。
使用Open MV進行數(shù)字識別。用img.find template()函數(shù)將識別的數(shù)字分別存入不同變量內(nèi)。主要識別函數(shù)如
圖4所示,讀取識別到的值并返回代碼如圖5所示。
Open MV通過識別色塊巡線,通過計算色塊的坐標值來判斷車身偏向的方向,并及時修改。尋找路口函數(shù)如圖6所示,設備進行巡線代碼如圖7所示。
4 結 語
本文介紹了智能送藥機器人的主要功能以及技術原理,對于智能送藥的需求,能夠基本實現(xiàn)且功能完善。在完成要求和發(fā)揮部分功能的基礎上,系統(tǒng)還實現(xiàn)了實時字符和圖形顯示、藍牙通信等功能,可擴展性強。且采用基于物聯(lián)網(wǎng)技術的物流系統(tǒng),可以有效提高機器人完成任務的數(shù)量,減少等待時間,在提升物流系統(tǒng)配送效率的同時,增強系統(tǒng)穩(wěn)定性和適應性,實現(xiàn)機器人在站點上的均勻分布,降低成本。
注:本文通訊作者為成爾卓。
參考文獻
[1]仇秋飛,吳巧玲,蔡耀中,等.基于專利視角的疫情防控機器人技術發(fā)展分析[J].科技通報,2022,38(3):118-124.
[2]楊沛,王艷梅,張文慧.醫(yī)護人員實施2型糖尿病分層分級延續(xù)護理管理體驗及實踐的質性研究[J].循證護理,2023,9(5):863-868.
[3]林陶玉,方鵬騫.疫情防控緊急狀態(tài)下醫(yī)院護理人力資源配置與動員管理策略[J].中國衛(wèi)生事業(yè)管理,2020,37(5):332-334.
[4]符岳,羅銀秋,程捷,等.物流機器人在急診科應對新型冠狀病毒肺炎疫情中的應用[J].嶺南急診醫(yī)學雜志,2020,25(3):231-233.
[5]江龍韜,劉怡沛,張卓.基于ARM及機器視覺的智能藥品運送機器人系統(tǒng)設計與研究[J].計算機測量與控制,2022,30(8):211-217.
[6]王天馳,羅煒松,孫強,等.基于SLAM技術的巡診送藥競賽機器人[J].機械工程與自動化,2023,52(1):52-55.
[7]李虹,張宇晨,苗旭燾.OpenMV智能物料搬運方向的開發(fā)[J].電子技術與軟件工程,2022,29(3):107-112.
[8]席若冰.基于樹莓派的日光溫室水肥一體機的設計[D].沈陽:沈陽農(nóng)業(yè)大學,2019.
[9]馮張銀,裴杰仁,揭俊壕,等.基于STM32單片機的履帶式多功能機器人[J].自動化應用,2019,60(4):104-105.
[10]王錚,成爾卓,史建新,等.一種腦卒中手部康復設備研究[J].物聯(lián)網(wǎng)技術,2022,12(6):74-77.
[11]李琪璐,路彤,李明宇,等.基于機器視覺的顏色分揀機器人設計[J].單片機與嵌入式系統(tǒng)應用,2022,22(12):54-57.
[12]劉永久.基于結構光投影的運動物體高速實時三維測量方法研究[D].合肥:中國科學技術大學,2014.
[13]陳柳妍,王湘江,馮棟彥.基于TOF傳感器的堵板拆裝機器人水室定位[J].機械工程師,2022,54(12):54-58.
[14]李志祥,唐春暉.基于光流的四旋翼飛行器控制技術研究[J].軟件導刊,2019,18(9):134-138.