基于ARM微控制器的医疗机器人主从夹持控制系统设计与实现
2017-01-19邱波王树新李群智
邱波,王树新,李群智
天津大学 机械工程系,天津 300072
基于ARM微控制器的医疗机器人主从夹持控制系统设计与实现
邱波,王树新,李群智
天津大学 机械工程系,天津 300072
利用ARM微控制器,基于本实验室自主研发的医疗机器人用关节式主操作手和从操作手的手指系统,构建了主从遥操作夹持控制系统。本文设计了AT91RM9200 ARM 微控制器与外围器件的硬件电路,并在运行于硬件平台的LINUX操作系统上开发了相应的硬件驱动程序。实验表明该系统可以有效控制缝合针的夹持操作。
医疗机器人;主从遥操作;ARM 微控制器
引言
主从式遥操作机器人已经被越来越广泛地应用于社会生产和生活的各个领域。本实验室自主研发的显微外科手术医疗机器人(“妙手”)采用主从式遥操作模式,成功进行了1 mm以下微血管缝合的动物实验。“妙手”系统构成主要包括主操作手(以下简称主手),控制系统,从操作手(以下简称从手)和图像系统。医生在图像系统的引导下,通过操作主手和控制系统驱动从手运动完成手术操作。
对于医疗机器人系统而言,其中要实现的最基本手术动作之一是从手末端夹持装置的开合,以实现夹持缝合针,线,或剪切器官组织等。主从夹持控制是利用主手上的开合机构来控制从手末端夹持装置的开合,从而实现手术中的夹持操作。
医疗机器人的主从控制系统要求主控芯片有较强的实时性和较丰富的可利用资源,以满足手术动作中低延时和较复杂的控制需求。ARM芯片以其高速的处理性能和丰富的处理器资源较单片机和 DSP 更能满足医疗机器人的控制系统要求,并且ARM芯片已经被越来越广泛地应用于工业控制和移动计算领域,其应用正走向普及与成熟。本文则阐述了如何利用ARM微控制器实现本实验室自主研发的关节式主手和从手手指的主从夹持控制。
1 系统总体描述
1.1 关节式主手
本实验室自主设计的六自由度关节式主手,见图1,适用于显微外科手术医疗机器人。它由位置调整机构(包括 X,Y,Z转动关节用以控制从操作手的位置),姿态调整机构(包括α,β,γ转动关节用以控制从手的姿态)和前端开合机构(用以控制从手手指的开合)组成,共具有七个转动自由度。其中前端开合机构详见图2,操作时,人的拇指和食指分别与该装置的转子指套和定子指套相连,通过捏合与分离两个指套使之产生相对运动。而电位器的定子和转子分别与两指套相连用来将两指套的相对转角信号转化为对应的电压信号,输入到控制单元进行后续处理。
图1 关节式主手实物和结构图
图2 主手前端开合机构图
1.2 从手手指
从操作手手指和前端可快速更换工具(图3)适用于显微外科手术医疗机器人。其机构剖面简图,安装在手指金属壳体内部的微型步进电机通过传动部件驱动前端夹持钳左右两瓣实现开合运动(图4)。前端夹持钳根据手术操作需要可快速更换为刀具、剪子等,用以实现夹持、撕咬、割除、剪切等手术动作。无论前端工具如何更换,手指机构的实现原理均相同,故本文只以夹持钳为例进行系统阐述。
图3 从手手指与快换工具实物图
图4 从手手指剖面结构图
2 系统整体结构
本文所阐述的主从夹持控制系统整体结构见图5。整个系统分为三个主要部份——主手,控制系统和从手手指。
在人的操作下,主手开合机构的电位器随着转子指套与定子指套的相对运动而输出某一时刻夹持角的模拟电压量,该模拟电压量输入控制系统中的模数转换(ADC)模块,实现该时刻夹持角的数字量输出。ARM 控制平台对该数字量进行处理,进而输出控制信号给步进电机驱动模块,使之产生步进脉冲以驱动从手手指内的步进电机转动,并通过壳体内的机械传动部件实现手指前端夹持钳的开合,且使其开合后达到的夹持角能与该时刻主手开合机构夹持角在位置上相对应。
图5 控制系统整体结构图
3 控制系统硬件设计
本节从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 步进电机驱动模块硬件构成示意图
4 控制系统软件设计
系统使用较为通用且稳定的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 用户空间程序实现流程图
5 动物实验
应用所开发的系统,针对兔子腿部动脉1 mm血管进行了缝合实验。动物实验的基本步骤见图11。实验表明了系统可以有效控制缝合针的夹持操作。
图11 动物实验的关键步骤
6 结语
主从夹持控制是主从式医疗机器人需要实现的一个重要环节。本文从硬件和软件设计上详细描述了所研发的主从操作手夹持控制系统。该系统应用于外科手术机器人“妙手”中。运行结果表明主从夹持张开与闭合回程误差小,控制精度高。为医疗机器人主从遥操作系统的研发提供了很好的参考。
[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