邱波,王樹新,李群智
天津大學 機械工程系,天津 300072
基于ARM微控制器的醫療機器人主從夾持控制系統設計與實現
邱波,王樹新,李群智
天津大學 機械工程系,天津 300072
利用ARM微控制器,基于本實驗室自主研發的醫療機器人用關節式主操作手和從操作手的手指系統,構建了主從遙操作夾持控制系統。本文設計了AT91RM9200 ARM 微控制器與外圍器件的硬件電路,并在運行于硬件平臺的LINUX操作系統上開發了相應的硬件驅動程序。實驗表明該系統可以有效控制縫合針的夾持操作。
醫療機器人;主從遙操作;ARM 微控制器
主從式遙操作機器人已經被越來越廣泛地應用于社會生產和生活的各個領域。本實驗室自主研發的顯微外科手術醫療機器人(“妙手”)采用主從式遙操作模式,成功進行了1 mm以下微血管縫合的動物實驗。“妙手”系統構成主要包括主操作手(以下簡稱主手),控制系統,從操作手(以下簡稱從手)和圖像系統。醫生在圖像系統的引導下,通過操作主手和控制系統驅動從手運動完成手術操作。
對于醫療機器人系統而言,其中要實現的最基本手術動作之一是從手末端夾持裝置的開合,以實現夾持縫合針,線,或剪切器官組織等。主從夾持控制是利用主手上的開合機構來控制從手末端夾持裝置的開合,從而實現手術中的夾持操作。
醫療機器人的主從控制系統要求主控芯片有較強的實時性和較豐富的可利用資源,以滿足手術動作中低延時和較復雜的控制需求。ARM芯片以其高速的處理性能和豐富的處理器資源較單片機和 DSP 更能滿足醫療機器人的控制系統要求,并且ARM芯片已經被越來越廣泛地應用于工業控制和移動計算領域,其應用正走向普及與成熟。本文則闡述了如何利用ARM微控制器實現本實驗室自主研發的關節式主手和從手手指的主從夾持控制。
1.1 關節式主手
本實驗室自主設計的六自由度關節式主手,見圖1,適用于顯微外科手術醫療機器人。它由位置調整機構(包括 X,Y,Z轉動關節用以控制從操作手的位置),姿態調整機構(包括α,β,γ轉動關節用以控制從手的姿態)和前端開合機構(用以控制從手手指的開合)組成,共具有七個轉動自由度。其中前端開合機構詳見圖2,操作時,人的拇指和食指分別與該裝置的轉子指套和定子指套相連,通過捏合與分離兩個指套使之產生相對運動。而電位器的定子和轉子分別與兩指套相連用來將兩指套的相對轉角信號轉化為對應的電壓信號,輸入到控制單元進行后續處理。

圖1 關節式主手實物和結構圖

圖2 主手前端開合機構圖
1.2 從手手指
從操作手手指和前端可快速更換工具(圖3)適用于顯微外科手術醫療機器人。其機構剖面簡圖,安裝在手指金屬殼體內部的微型步進電機通過傳動部件驅動前端夾持鉗左右兩瓣實現開合運動(圖4)。前端夾持鉗根據手術操作需要可快速更換為刀具、剪子等,用以實現夾持、撕咬、割除、剪切等手術動作。無論前端工具如何更換,手指機構的實現原理均相同,故本文只以夾持鉗為例進行系統闡述。

圖3 從手手指與快換工具實物圖

圖4 從手手指剖面結構圖
本文所闡述的主從夾持控制系統整體結構見圖5。整個系統分為三個主要部份——主手,控制系統和從手手指。
在人的操作下,主手開合機構的電位器隨著轉子指套與定子指套的相對運動而輸出某一時刻夾持角的模擬電壓量,該模擬電壓量輸入控制系統中的模數轉換(ADC)模塊,實現該時刻夾持角的數字量輸出。ARM 控制平臺對該數字量進行處理,進而輸出控制信號給步進電機驅動模塊,使之產生步進脈沖以驅動從手手指內的步進電機轉動,并通過殼體內的機械傳動部件實現手指前端夾持鉗的開合,且使其開合后達到的夾持角能與該時刻主手開合機構夾持角在位置上相對應。

圖5 控制系統整體結構圖
本節從ARM控制平臺、模數轉換以及步進電機驅動等三個模塊詳細地闡述了控制系統的硬件構成。ARM控制平臺是在AT91RM9200微控制芯片外圍進行內存、通信接口等擴展,以構成系統能夠正常運行的最基本硬件平臺。模數轉換模塊和步進電機驅動模塊則分別闡述了實現系統需求的模數轉換功能和步進電機驅動功能所必要的硬件連接。
3.1 ARM 控制平臺的硬件實現
3.1.1 ARM 微控制器芯片的選擇
當前應用比較廣泛的ARM芯片大都為ARM7和ARM9系列,生產廠家主要為韓國的三星(Samsung)公司,美國的愛特梅爾(Atmel)公司和荷蘭的飛利浦(Philips)公司。根據系統性能要求并綜合考慮性價比,功耗等多種因素,選用愛特梅爾公司生產的工業級ARM芯片AT91RM9200作為該控制系統的主控芯片。
AT91RM9200 的主要特性有:內嵌ARM920TTM ARM? Thumb?處理器內核,工作于180 MHz 時性能高達200MIPS;控制器具有SDRAM,FLASH,10/100 Base-T型以太網,USB 2.0,兩線 TWI,串行SPI等許多外設接口資源;四個32位PIO控制器擁有122個可編程I/O口線,各線均有輸入變化中斷及開漏能力;功耗低,正常工作時消耗電流為30.4 mA,待機模式下消耗電流僅為3.1 mA[1]。
3.1.2 控制器外圍的硬件實現
要使微控制器能夠正常工作,其外圍必需進行擴展,圖6則是實現整個ARM控制平臺的硬件系統原理圖。

圖6 ARM 控制平臺硬件構成示意圖
電源模塊負責為整個平臺提供穩定,干凈的直流電源。兼于控制器與外圍芯片的電源電壓存在3.3 V和1.8 V兩種,電源模塊需同時提供這兩種電壓的電源。
邊界掃描測試(JTAG調試)單元用來實現程序的在線調試。串行通訊接口則實現控制平臺與計算機的通訊及操作的可視化,并實現程序的下載。為使系統能夠運行較大的程序,如LINUX內核和文件系統,在微控制器外圍擴展了32M字節的SDRAM內存芯片。擴展16M字節的FLASH芯片作為程序和數據的存儲設備,以保證掉電時程序和數據不丟失。
3.2 模數轉換(ADC)模塊設計
模數轉換芯片可以分為并行接口和串行接口兩種。并行接口的模數轉換芯片傳輸速率快,但是引腳多,體積大,占用控制器口線資源較多。而串行接口的轉換芯片已經逐漸成為主流,主要為四線SPI接口,傳輸速率也與并行接口不相上下,而且具有體積小、功耗低、占用控制器口線少等優點。
由于AT91RM9200微控制器芯片內具有SPI串行控制器并且片外有SPI接口,故系統選取了Analog Devices(AD)公司生產的SPI接口模數轉換芯片AD7467。AD7467是具有10位轉換精度的單通道高速,低功耗,低噪聲的串行模數轉換芯片,其主要特性有:電源輸入電壓范圍1.6V~3.6V;低功耗,在電源輸入電壓為3 V,轉換速率為100 KSPS時功耗僅為0.62 mW;最高轉換速率可達200 KSPS;具有高速串行接口SPI,輸入串行時鐘頻率最高可達3.4 MHz;模數轉換時的參考電壓直接取自芯片電源輸入[2]。
該模數轉換模塊見圖7。主手電位器與AD7467采用同源3.3 V電壓供電,AD7467直接采集電位器輸出的模擬電壓AVDD。微控制器AT91RM9200芯片與AD7467之間用SPI接口連接,NPCS作為AD7467的選通信號,SPCK作為模數轉換過程中的時鐘輸入,而MISO則作為模數轉換結果的輸出線將數據從AD7467串行移入AT91RM9200芯片。由于AD7467芯片內部無寄存器操作,也無數據輸入引腳,故電路只需采用三線連接。

圖7 ADC模塊硬件構成示意圖
3.3 步進電機驅動模塊設計
從手手指驅動夾持鉗開合的步進電機型號為瑞士ARSAPE公司生產的微型步進電機AM1020-V12,雙極性驅動,電壓型,工作電壓12 V,步距角18°。其驅動芯片選用ST公司的L298N。L298N為雙相全橋驅動芯片,可用于驅動兩相或四相電機,最大輸出電壓為46 V,最高輸出電流為4 A,輸入信號為標準TTL電平,便于微控制器進行控制[3]。
選用L298N驅動時,采用L297作為脈沖分配器,以提供時序信號。L297可以產生四相控制信號,用于控制四相單極性或兩相雙極性步進電機,可用于半步、全步、斬波控制方式[4]。利用L297+L298N組成步進電機的驅動控制模塊,微控制器只需向模塊發送轉向、脈沖信號等全局控制信號,就可以控制步進電機。
由于L297的工作電壓為5 V,而微控制器的工作電壓為3.3 V,故二者的通訊接口需加光耦進行隔離。采用光耦隔離既可以避免器件因工作電壓的不同而造成的損壞,又增強了信號的抗干擾能力。
該步進電機驅動模塊(圖8),利用AT91RM9200的一組I/O(PIOB)口線通過一組高速光耦6N137與L297相連實現驅動模塊的控制信號及步進脈沖的輸入。L297將時序信號傳輸到后接驅動芯片L298N,由L298N實現步進電機的功率驅動。

圖8 步進電機驅動模塊硬件構成示意圖
系統使用較為通用且穩定的2.4.26版本的LINUX內核及運行于其下的文件系統作為其操作系統,整個控制系統基于該操作系統正常運行。而控制系統對模數轉換模塊與步進電機驅動模塊的控制是通過訪問這兩個模塊在操作系統下的驅動程序來實現的。基于該操作系統的用戶空間程序則通過對這兩個模塊驅動程序的調用,實現實時的模數轉換與步進驅動,從而實現主從夾持控制。
4.1 模數轉換模塊驅動程序的實現
模數轉換模塊驅動程序即實現AD7467芯片在操作系統下的驅動。AD7467芯片驅動程序主要包括以下幾個部份:寫數據進程,中斷服務進程和讀數據進程。根據AD7467工作時序圖(圖9)可知芯片在完成一次完整的模數轉換過程時,即實現“模擬電壓采樣—模數轉換—串行數據移位輸出”,芯片需要14個周期的串行時鐘(SCLK)輸入。而隨著時鐘的輸入,包含轉換結果的14位數據也同時被串行移位輸出,其中高四位為零,低十位為模數轉換結果。

圖9 AD7467 工作時序圖[2]
當寫數據進程往微控制器的SPI發送寄存器(SPI_ TDR)中寫入任意14位的數據時,數據立即通過控制器的SPI串行移位器輸出,此時14個周期的串行時鐘信號也輸入了AD7467芯片,同時包含模數轉換結果的 14 位數據也從AD7467芯片串行輸入到微控制器的接收寄存器(SPI_ RDR)中,并致使 SPI 狀態寄存器(SPI_SR)中的接收寄存器滿標志位(RDRF)置位而觸發中斷,中斷服務進程喚醒處于睡眠狀態的讀數據進程。讀數據進程從接收寄存器讀取移入的14位數據,并且屏蔽掉無用的高四位,以得到正確的轉換結果。
4.2 步進電機驅動模塊驅動程序的實現
該模塊驅動程序即實現L297芯片在操作系統下的驅動。該驅動主要是完成微控制器向L297芯片的步進脈沖和控制信號的發送,它主要包括以下幾個部份:初始化閉合夾持鉗進程,寫數據進程和主從操作進程。
由于從手手指中的步進電機沒有位置反饋,而要實現夾持控制過程中主從開合位置的對應,在主從控制實施前主手開合機構與從手手指夾持鉗需要有一個初始對應的開合位置,因此選取兩者的閉合狀態作為初始對應位置。而初始化閉合夾持鉗進程即通過發送一定數量的步進脈沖給L297芯片,驅動夾持鉗閉合。系統由定時器中斷來產生步進脈沖,通過配置定時器自動重載,每次進入定時中斷服務程序時PIOB中用來產生脈沖信號的引腳狀態翻轉一次,從而產生一定頻率的脈沖信號。通過調整定時器初值可以改變脈沖頻率,進而改變步進電機的轉速來調整夾持鉗開合的速度。
寫數據進程是從用戶空間程序調用的,負責將主從操作中驅動從手手指開合所需的步進脈沖數傳入內核空間的驅動程序。
主從操作進程是在寫數據進程執行完后被調用的,用來向從手手指發送主從操作時所需的步進脈沖。該進程中有一個脈沖頻率調節環節,用以調節步進電機的轉速以完成“啟動—加速—勻速—減速—停止”的運轉過程,減少運轉時急起急停的沖擊。頻率的調節是通過對己發送脈沖進行計數,當計數達到一定值時,在定時器中斷服務進程中改變定時初值,使脈沖頻率實現平滑的調節。
4.3 用戶空間程序設計
用戶空間程序完成兩模塊驅動的調用與協調并進行一些必要的數值計算,使整個系統的控制功能得以實現。圖10為用戶空間程序的流程圖。
模數轉換與步進電機驅動這兩個模塊的驅動程序在編譯完成后,以設備文件的形式向用戶空間提供了訪問驅動的接口。因此用戶空間程序在使用這兩個模塊的驅動時先要打開其注冊的設備。
在實施主從夾持控制前,需要先調用初始化閉合夾持鉗進程以完成從手夾持鉗與主手開合機構的初始狀態對應。
在完成初始化后,程序進入主從夾持實時控制部份(虛線框內)。通過調用模數轉換寫數據進程和讀數據進程,即可獲得此時刻模數轉換的數據結果。在用戶空間數據處理程序中,根據事先實驗測定的主手開合機構的夾持角與從手夾持鉗的夾持角之間的數值關系以及輸入從手的步進脈沖數與夾持鉗的夾持角之間的數值關系,可以計算得出這一時刻從手夾持鉗跟隨主手開合機構實現開合動作時步進電機需要獲取的步進脈沖數。再通過調用步進驅動寫數據進程和主從操作進程,便可將所需數量的步進脈沖輸入驅動模塊,從而驅動夾持鉗完成相應角度的開合。
當程序返回實時控制部份程序的頂部,開始新一輪的主從夾持控制,使從手手指夾持鉗始終跟隨主手開合機構的動作而張開或閉合,從而實現主從夾持的實時控制。

圖10 用戶空間程序實現流程圖
應用所開發的系統,針對兔子腿部動脈1 mm血管進行了縫合實驗。動物實驗的基本步驟見圖11。實驗表明了系統可以有效控制縫合針的夾持操作。

圖11 動物實驗的關鍵步驟
主從夾持控制是主從式醫療機器人需要實現的一個重要環節。本文從硬件和軟件設計上詳細描述了所研發的主從操作手夾持控制系統。該系統應用于外科手術機器人“妙手”中。運行結果表明主從夾持張開與閉合回程誤差小,控制精度高。為醫療機器人主從遙操作系統的研發提供了很好的參考。
[1] Atmel Corporation.ATMEL? ARM920TTM based Microcontroller AT91RM9200[EB/OL].http://www.atmel.com/literature, 2015.
[2] Analog Corporation.Preliminary Technical Data AD7466/ AD7467/AD7468[EB/OL].http://www.analog.com.2011.
[3] STMicroelectronics GROUP OF COMPANY.L298 DUAL FULL-BRIDGE DRIVER[EB/OL].http://www.st.com.2015.
[4] STMicroelectronics GROUP OF COMPANY.L297 STEP MOTOR CONTROLLERS[EB/OL].http://www.st.com,2015.
[5] 李群智.機器人輔助顯微外科手術系統的研究與開發[D].天津:天津大學,2004.
[6] 張捷,顧海,孫健華,等.機器人技術在醫療臨床的應用及前景展望[J].機床與液壓,2016,44(3):1-3.
[7] 王曉明.電動機的單片機控制[M].北京:北京航空航天大學出版社,2002.
[8] 王偉,王偉東,董為,等.基于協作空間與靈巧度的機器人輔助微創手術術前規劃算法[J].機器人,2016,3(2):208-216.
[9] 徐兆紅,宋成利,閆士舉,等.機器人在微創外科手術中的應用[J].中國組織工程研究,2011,15(35):6598-6601.
[10] 朱繼杭,楊世武.基于 AT91RM9200 的 U-Boot 移植方法[J].儀器儀表用戶,2005,12(6):121-122.
Design and Implementation of Master-Slave Grasping Control Systems for Medical Robots on ARM Microcontroller
QIU Bo, WANG Shu-xin, LI Qun-zhi
Department of Mechanical Engineering, Tianjin University, Tianjin 300072
This paper presented a method for using ARM microcontroller to build a grasping control system of master-slave teleoperated manipulation. The system was built based on the finger device designed for medical robot developed in our lab. The hardware circuit of the AT91RM9200 ARM microcontroller and its peripheral devices were designed, and the hardware device drivers on the LINUX operating system which were run on the hardware platform were developed. The results showed that the system could effectively control the grasping operation of the suture needle.
medical robot; master-slave teleoperated manipulation; ARM microcontroller
TP24
A
10.3969/j.issn.1674-1633.2016.11.003
1674-1633(2016)11-0014-04
2016-10-26
教育部博士點基金資助(No. 20030056030)。
王樹新,教授,博士生導師。研究領域:機器人技術、機械多體動力學及其控制。
作者郵箱:qiubo_sohu@hotmail.com