何麗君,唐健豪,孔令茵
佛山市第一人醫院醫療設備科 (廣東佛山 528000)
2021年12月,工信部聯合10個部門發布的《“十四五”醫療裝備產業發展規劃》指出,加快智能醫療裝備發展,嵌入人工智能、工業互聯網、云計算等新技術,從而推動醫療裝備智能化、精準化、網絡化發展[1]。近年來,物聯網技術的研究和實踐處于快速發展階段,眾多新型技術已逐漸被用于醫療裝備領域,醫療衛生機構已著手布局院內物聯網系統框架。醫院物聯網可為醫療裝備提供定位、通信、監測等功能的應用基礎,平臺集成醫療裝備功能進行控制,提升了裝備間的協調能力,為醫療裝備智慧化發展提供了新方向[2]。
醫用車床是現代化醫院常用裝備之一,主要用于患者轉運。但醫用車床的智能化水平卻相對較低,通常依賴護工、家屬推運,需花費較高的人力、時間成本,車床位置信息無法實時反映不利于統一調配。因此,亟需開發智能院內導航自行走車床,以推進醫用車床的智能化、信息化,同時通過路線規劃、集中調配促進車床高效率運轉,提高利用率,降低運營成本。
本設計基于物聯網應用藍牙AOA定位技術能夠將所關注的人或物在地圖上顯示,實現物聯網室內定位導航,并配合多個高精度傳感器實時監測,進而實現自行走車床[3]。
本設計使用藍牙AOA室內定位技術,即在醫院內廣泛布置藍牙基站(主要負責藍牙信號的接收),通過為自行走車床安裝不間斷發出信號的藍牙模組,由基站接收藍牙模組的信號,再通過多個基站計算通信夾角與通信時間,并將計算后的信息傳送至位置服務器上,服務器通過內置運算得出自行走車床的位置坐標,并將信息加載至已測繪的電子地圖上,后臺工作人員即能夠在應用軟件上監測自行走車床的視像位置目標點。本設計主要包括導航技術模塊、自行走車床硬件模塊、軟件功能模塊。
藍牙室內導航技術是基于Bluetooth5.1 AOA到達角度位置服務實現原理,定位精度實測在0.5 m以內[4]。藍牙AOA技術是以發射器和接收器為基礎。本設計原理中,將在室內使用圓陣天線陣列的藍牙基站作為實現藍牙AOA技術室內定位接受器,將自行走車床搭載藍牙模塊實現信號發射用作藍牙AOA室內定位的發射器。當藍牙模塊發射信號時,圓陣天線陣列的天線獲取到信號的波達方向角后,繼而可計算出定位終端的位置[5]。
圓陣天線陣列通過POE交換機供電并統一接入位置服務器,位置服務器負責接收所有圓陣天線陣列藍牙基站的信息;通過算法計算,將位置信息形成一個二維室內導航坐標;隨后將二維室內導航坐標發送至自動駕駛轉運車床的實時運算系統中,最終形成一條位置發送,位置計算服務和位置二維信息應用的數據鏈接,最終實現室內高精度導航。
自行走車床設計有上下收縮的護欄,在患者需要使用車床和轉移病床時,收縮護欄可向下收縮,整體收藏,使整個上下床動作不受護欄的影響。床板四周布置顯示屏按鍵模塊,聲光模塊和超聲、TOF避障模塊。由于室內導航的定位精度在0.5 m范圍內,因此實現車床的自行走必然需增加避障模塊,以在遇到障礙物和路上行人時作出適時的方向調整和避讓[6]。自行走車床的整體控制由顯示屏按鍵模塊實現,主要實現裝備的整體開關機、模式選擇和確認等功能,同時將自動行駛車床的電池信息,行進速度、路程進度和通信狀態等信息呈現在顯示屏上。聲光模塊的設計目的是在行進過程中提醒路人注意防止碰撞,利用播放循環聲音和燈光的警示警戒過往路人;同時,自行走車床可將電量狀態和錯誤狀態以最簡單的燈光模式作出相應的提示,使用者能夠在最短時間內了解自行走車床的實際狀態。自行走車床底盤使用六輪設計,包含4個減震萬向輪和2個電動輪,電動輪通過收、放腳踏實現自行走狀態和人工應急推行狀態的切換。
自行走車床不僅應用了導航自駕駛技術,還兼顧實現了普通車床的功能。本設計使用可伸縮的電動輪,在應對緊急突發情況時,電動輪可進行收縮。當電動輪收縮時,車床4個帶減震的萬向輪只能在人力的推動下進行移動。電動輪采用雙電機結構,通過雙電機結構能夠實現車床的整體全方向移動。
硬件電路設計主要包括電源電池供電模塊、高性能微控制器STM32F407功能模塊、LINUX系統設計功能模塊、WIFI模塊、藍牙定位模塊、電機驅動模塊、六軸陀螺儀模塊、超聲避障模塊、TOF避障模塊、聲光提醒模塊、顯示器模塊、按鍵控制模塊等。(1)高性能微控制器STM32F407功能模塊:意法半導體STM32系列的STM32F407擁有2個12位的DAC和1 MB Flash,提供168 MH的CortexTM-M4內核(具有浮點單元)性能,主要實現行進環境障礙物和方向的感知和自行走車床的各個功能控制。(2)LINUX系統設計功能模塊:LINUX系統設計硬件使用英偉達Jeston Nano[7],其開發板包含1塊4核A57CPU、128核Maxwell架構GPU以及4G內存,主要用于與院內網連接,并從院內網獲取當前的位置坐標信息,通過對獲取的坐標信息進行運算后,將信息傳送至下位機實時操作硬件的STM32F407中,并由STM32F407控制整臺自行走車床的移動方向;Jeston Nano同時也從下位STM32F407中獲取得到超聲避障模塊和TOF避障模塊所提供的障礙物信息和六軸陀螺儀信息,結合自身已編譯的地圖坐標和障礙距離,加上六軸陀螺儀的加速度和方向信息,完成自行走車床整個移動環境、車身四周情況和車身方向速度狀態情況的感知[8];此外,Jeston Nano連接8寸顯示屏,可顯示電池電量、目標地址、當前坐標等信息,藍牙定位模塊通過供電完成定位信號的發射,信號坐標通過位置服務器計算后將坐標回傳到Jeston Nano中,最終形成自行走車床的位置信息服務數據鏈[9]。(3)WIFI模塊:Jeston Nano并未集成WIFI模塊,但提供了1個M.2接口用于外接無線網卡,WIFI模塊使用無線網卡Intel 8265NGW,以及802.11ac無線網上標準,雙頻段(2.4G和5G)、2×2的WIFI天線設計,數據傳輸速度高達867 Mbps;該模塊主要實現Jeston Nano與定位服務器的數據通信,Jeston Nano使用WIFI與定位服務器實時連通,可讀取定位服務器中的地圖信息和坐標信息。(4)藍牙定位模塊:藍牙AOA技術是藍牙5.1標準提供的服務,本設計采用Nordic nRF52811藍牙5.1定向測距系統級芯片,Nordic Semiconductor推出nRF52811系統級芯片(SoC),這個全功能無線連接解決方案支持藍牙5.1測向(Direction Finding)功能和一系列流行低功耗無線協議,nRF52811 SoC的藍牙5.1測向功能使得定位解決方案不僅僅依賴于接收信號強度數值(RSSI),還可基于信號的實際方向;自行走車床的定位坐標是基于nRF52811 SoC的藍牙5.1定位功能實現。(5)六軸陀螺儀模塊:六軸陀螺儀模塊使用MPU6050,可測量加速度、角速度和姿態角,采用I2C數據接口[10];STM32F407通過連接MPU6050實現讀取自行走車床的行進方向、車體加速度的測量。(6)超聲避障模塊:超聲避障模塊選用URM09超聲波傳感器[11],其中,URM09超聲波傳感器有內置的溫度補償,確保在溫度變化的應用場景中實現準確測距,有效測距為2~500 cm,分辨率為1 cm;該超聲波傳感器分布在自行走車床的床板前沿和后沿,分前、后、左、中、右布置共6個,使用I2C通信,實現全方位的障礙物感應。(7)TOF避障模塊:TOF避障模塊使用TOF Sense激光測距傳感器模塊,其中,TOF Sense是一款基于TOF(飛行時間)技術的激光測距傳感器,分辨率為1 mm,量程為1~500 cm,使用UART接口,最多支持級聯8個,項目使用前、后、左、右各1個的分布方式;TOF Sense的使用可確保在一種方式獲取距離失敗后并不影響避障的功能性,使用I2C通信,實現安全避障的雙保險。(8)電機驅動模塊:使用2個24 V大扭矩減速電機,通過控制2個電機的速度和正轉、反轉實現自行走車床的全方向行動。(9)聲光模塊:“3.1設計思路”中已作介紹,此處不再贅述。(10)顯示器模塊:顯示器模塊與Jeston Nano連接,使用8寸多點觸控電容屏,顯示自動行駛車床的電池信息,行進速度、路程進度和通信狀態等信息,并能夠通過屏幕觸控進行功能的選擇和參數的調節。
自行走車床的軟件包含上位機多任務操作系統和下位機實時操作系統2個部分,Jeston Nano部署多任務操作系統,單片機STM32F407使用實時操作系統;上位機系統主要實現地圖導航和信息交互功能,下位機系統則主要實現傳感器數據讀取、車輪控制等即時動作功能。
上位機使用ubuntu18.04安裝ROS(Robot Operating System) Melodic版本的ROS[12]。ROS是一款機器人軟件平臺,可為異質計算機集群提供類似操作系統的功能,如ROS可提供實現不同功能的各種軟件包,如定位繪圖、行動規劃、感知、模擬等,其中,定位繪圖由軟件map_server實現,map_server提供包提供了1個map_server ROS Node,該Node通過ROS Service方式提供地圖數據。自行走車床的地圖來源于物聯網定位服務器,將已創建的地圖和定位數據傳至map_server。藍牙AOA定位技術的定位精度實測約在30 cm,因此,需要配合多個輔助傳感器提升避障能力,并將障礙物數據回傳至上位機map_server,重新規劃路線。上位機Jeston Nano與下位機STM32F407通信使用TTL通信協議,在上位機ubuntu18.04系統中使用Python處理上下位機的通信握手對接,并應用pyserial封裝模塊處理對串口的訪問,實現上位機Jeston Nano傳送速度,將方向數據傳至下位機STM32F407,由下位機STM32F407執行,下位機STM32F407則將采集的超聲避障傳感器、TOF避障傳感器和六軸陀螺儀傳感器的數據上傳至上位機Jeston Nano用于修正路徑。
下位機使用Keil uVersion 5.0語言編譯,主要使用STM32庫函數開發處理,其中,庫文件主要使用stm32f4xx_hal_gpio.c、stm32f4xx_hal_rcc.c、stm32f4xx_hal_usart.c和stm32f4xx_hal_i2x.c。在自行走車床的設計中,使用的超聲避障傳感器、TOF避障傳感器和六軸陀螺儀傳感器均使用I2C通信。
stm32f4xx_hal_gpio.c用于下位機STM32F407的引腳設置。由于自行走車床的電機驅動由下位機STM32F407控制,因此下位機STM32F407需設置相應的引腳。引腳設置為GPIO_Mode_AF_PP復用推挽輸出,引腳的頻率GPIO_Speed_50 MHz帶寬設置在50 Hz。自行走車床通過下位機STM32F407的引腳輸出PWM信號控制電機的速度、前進和后退。此外,超聲避障傳感器、TOF避障傳感器和六軸陀螺儀傳感器均需要與下位機STM32F407相連接,引腳需增加設置為GPIO_OType_OD開漏輸出,實現I2C的線與邏輯。
stm32f4xx_hal_rcc.c文件主要是實現內部和外部時鐘以及總線時鐘的配置。PWM信號的發生需要時鐘的啟動,同樣I2C的數據傳輸也需要時鐘的配合。在下位機STM32F407控制電機中,需使能RCC_APB1Periph_TIM3產生電機PWM信號定時器,在I2C通信中使能RCC_APB1Periph_I2C1定時器進行通信使用。
異步串口初始化函數,初始化串口時我們調用的函數在源文件stm32f4xx_hal_usart.c中。上位機Jeston Nano控制著下位機STM32F407的電機驅動,下位機STM32F407上傳傳感器信息至上位機Jeston Nano,整個過程基于串口通信進行。在串口使用前需初始化UART1_Handle.Init.BaudRate輸入波特率,UART1_Handle.Init.Mode串口異步收發模式,UART1_Handle.Init.Parity串口收發校檢位,UART1_Handle.Init.StopBits串口收發停止位和UART1_Handle.Init.WordLength串口數據位。
stm32f4xx_hal_i2x.c是下位機STM32F407操作I2C通信的文件。在下位機STM32F407使用I2C通信與超聲避障傳感器、TOF避障傳感器和六軸陀螺儀傳感器連接時,需對HAL_I2C_Init()函數進行初始化,配置hi2c1.Init.OwnAddress1的I2C地址,設置hi2c1.Init.Timing的通信頻率。
隨著新一代信息技術與醫療裝備技術跨學科發展的提速,未來物聯網技術在各行各業中將擔當越來越重要的角色。在醫院物聯網建設逐漸普及的背景下,精準的室內導航地圖基礎已較成熟,其應用需要不斷拓展。本設計通過接入醫用物聯網切實降低了硬件的開發成本,實現了車床的中央監控和統一調配,同時從選材和設計方面不斷優化,配備可收縮護欄便于患者上下床,為自行走、人力推運的狀態切換提供了保障,并使用較成熟的傳感器提高了車床運行的穩定性;為降低自動駕駛車床的制造成本,本設計通過模塊加裝將普通車床升級至具有自動駕駛功能的自行走車床,適合推廣應用。
總之,自行走車床的設計及推廣提高了患者轉運效率,降低了醫院運營成本,提升了智能診療質量,是數字化醫院未來的發展趨勢。