劉家春,劉 利,劉 鑫,孫凱旋,史穎剛,傅隆生(西北農(nóng)林科技大學 機械與電子工程學院,陜西 楊凌 712100)
醫(yī)療服務機器人規(guī)定動作的比賽項目是中國機器人大賽的子項目,比賽場地如圖1所示,地面為綠色地毯,長6 000mm,寬4 000mm.機器人行走的引導線寬度為24mm,放入白色亞光紙條(雙面膠),虛線引導線在比賽中不存在.A、B病床長2 000mm,寬1 000mm,床面離地面500mm.床頭柜長500mm,寬500mm,高400mm.Q、R、S處的白線,長500mm,寬24mm,垂直于QRS,QR=RS=1 250mm.起點區(qū)(即終點區(qū))寬600mm,長800mm.比賽中,機器人需要完成查病房任務和送藥任務.根據(jù)比賽規(guī)則,比賽過程中,機器人需要能識別起跑線、停止線和賽道導引線,在沒有導引線的部分路段,能自主完成任務.機器人按順序完成如下動作:
圖1 醫(yī)療服務機器人規(guī)定動作比賽場地示意Fig.1 The competition venue for medical service robots
(1)機器人查病房:機器人從起點出發(fā)前行,沿白色亞光紙條線,經(jīng)R、Q,再到M(Q到M沒有引導線),與A床病人進行交流,之后,經(jīng)Q、R、S到N(S到N沒有引導線),與B床病人進行交流.再經(jīng)S、R回到終點區(qū).
(2)機器人送藥:機器人從起點區(qū)出發(fā),沿白色亞光紙條線經(jīng)R、S,將藥瓶從護士臺送到床頭柜A、床頭柜B.先送到床頭柜A還是先送到床頭柜B抽簽決定.
藥瓶初始被放置在高度為300mm的護士臺上,最終要被轉(zhuǎn)移到高度為400mm 的床頭柜上.藥瓶最終放置的位置精度不同,得分不同.
根據(jù)競賽要求設計醫(yī)療服務機器人,其結(jié)構(gòu)示意如圖2所示,包括車輪、車體、立柱、固定支架、機械臂和手爪.醫(yī)療服務機器人的機械手包括立柱、連桿Ⅰ、舵機Ⅰ、連桿Ⅱ、舵機Ⅱ、連桿Ⅲ和手爪.其中,立柱用于支撐機械手,提供抓取藥瓶的高度;每個連桿的旋轉(zhuǎn)自由度通過對應舵機的旋轉(zhuǎn)實現(xiàn);手爪舵機通過左右旋轉(zhuǎn)驅(qū)動齒輪轉(zhuǎn)動,實現(xiàn)手爪的開合.機器人運動本體的結(jié)構(gòu)示意圖如圖3所示,包括4個車輪,4個直流電機,1個車身底板,以及單片機控制系統(tǒng)電路板;運動本體的前后部各裝有7個循跡模塊,左側(cè)和右側(cè)各裝有1個循跡模塊.其中,每個車輪由一個直流電機控制,由直流電機驅(qū)動模塊控制直流電機的正轉(zhuǎn)反轉(zhuǎn),實現(xiàn)機器人的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)等基本動作[1-3].
1.車輪;2.車體;3.立柱;4.固定支架;5.連桿Ⅰ;6.舵機Ⅰ;7.連桿Ⅱ;8.舵機Ⅱ;9.連桿Ⅲ;10.手爪;11.手爪舵機圖2 醫(yī)療服務機器人機械本體機構(gòu)示意Fig.2 The mechanical structure of the medical service robot
圖3 醫(yī)療服務機器人運動本體結(jié)構(gòu)示意Fig.3 The sports chassis’s structure of the medical service robot
圖4 醫(yī)療服務機器人控制系統(tǒng)架構(gòu)Fig.4 The control system architecture of the medical service robot
機器人控制系統(tǒng)架構(gòu)如圖4所示[1-2],包括主控模塊、驅(qū)動模塊、舵機控制器、循跡模塊、MP3播放器和揚聲器.其中,主控模塊選用STC89C52R單片機,電機驅(qū)動芯片選用L298N,舵機控制器芯片選用STM32.直流電機選用12V、100r/min的正科電機ZGA37RG,循跡模塊選用灰度傳感器SEN1668-D,舵機選用春天舵機SR403P,MP3播放器芯片選用VS1003,揚聲器選用3寸國光喇叭.
圖5 單片機最小系統(tǒng)電路原理Fig.5 The principle of the minimum system circut of the microcontroller
以STC89C52R為核心設計主控單元,圖5為單片機最小系統(tǒng)原理圖,包括晶振電路和復位電路.P0外接上拉電阻JP2,阻值10kΩ[4].P1口接發(fā)光二極管,二極管陽極接+5V電源,確保二極管的發(fā)光亮度.每個二極管都串聯(lián)限流電阻.JP1、H2 、H3、H4為幾個I/O口引出的排針,方便插接.C3為去耦電容.圖6為電源輸入電路,通過轉(zhuǎn)換開關(guān)S5可以切換供電方式,即由5V電源供電切換為USB供電.發(fā)光二極管Ds1用來顯示供電是否成功,R16為發(fā)光二極管的限流電阻,C6、C7均為去耦電容.電解電容C13起到濾波作用.
圖6 電源輸入電路Fig.6 The power supply circuit
采用一塊L298N驅(qū)動芯片控制兩個直流電機的電路原理如圖7所示.其中,排陣H7的1、2口可以給主控制板供電,H1的1、2口和H7的7、8口用跳線帽連接,決定小車是全速運行還是通過PWM調(diào)速,跳線連接時全速運行,不連時可以給EN1、EN2輸入PWM信號進行調(diào)速.發(fā)光二極管用來續(xù)流和顯示兩個電機的正反轉(zhuǎn),R2、R3為限流電阻.驅(qū)動模塊內(nèi)置LDO穩(wěn)壓芯AMS1117,電解電容C2為100uF.當輸入9V電壓時可以輸出穩(wěn)定的5V電壓作為單片機系統(tǒng)的供電電源.
圖7 基于L298N的電機驅(qū)動電路Fig.7 The drive circuit based on L298N
舵機控制器本質(zhì)上是一個單片機最小系統(tǒng),可同時控制16路舵機.系統(tǒng)包括穩(wěn)壓電路、復位電路、時鐘電路、USB通信模塊[5].選用STC12C5A60S2 LQFP-48[6]單片機作為舵機控制器的處理器,采用穩(wěn)壓芯片AMS1117 5.0V設計穩(wěn)壓電路[7],舵機控制器最小系統(tǒng)電路原理同主控單元的單片機最小系統(tǒng),不再贅述.
根據(jù)機械結(jié)構(gòu)設計和控制器設計搭建競賽醫(yī)療服務機器人,如圖8所示.根據(jù)機器人結(jié)構(gòu)特點和競賽規(guī)則,進行控制算法設計.
圖8 基于競賽的醫(yī)療服務機器人實物圖Fig.8 A medical service robot for competition
每個車輪由一個直流電機控制,由直流電機驅(qū)動模塊控制直流電機的正轉(zhuǎn)反轉(zhuǎn).L298N電機驅(qū)動芯片可以通過兩位數(shù)字信號控制一個電機的正、反轉(zhuǎn).因此,需要兩個電機驅(qū)動,控制4個直流電機的正、反轉(zhuǎn).使用脈沖寬度調(diào)制(PWM)方式驅(qū)動直流電機,電機的兩個電極與電源正接或反接,可以使其正轉(zhuǎn)或反轉(zhuǎn).每個電機需要3個控制信號EN1、IN1、IN2,EN1是使能信號.選用一路PWM連接EN1引腳,調(diào)整PWM的占空比,可以調(diào)整電機的轉(zhuǎn)速,IN1、IN2為電機轉(zhuǎn)動方向控制信號;IN1、IN2分別為1,0時,電機正轉(zhuǎn);反之,電機反轉(zhuǎn).為節(jié)省單片機引腳,可只用一路I/O口,經(jīng)反向器74HC14分別接IN1和IN2引腳,控制電機的正反轉(zhuǎn)[8].電機正反轉(zhuǎn)的真值表見表1.
表1 直流電機正反轉(zhuǎn)真值表
Tab.1 The logic truth valuetable of DC motor forward and reverse
IN1IN2EN1電機000不轉(zhuǎn)010反轉(zhuǎn)100正轉(zhuǎn)110不轉(zhuǎn)001不轉(zhuǎn)011不轉(zhuǎn)101不轉(zhuǎn)111不轉(zhuǎn)
設左前輪正轉(zhuǎn)為前進,機器人本體的前進、后退、左前轉(zhuǎn)、右前轉(zhuǎn)、左后轉(zhuǎn)、右后轉(zhuǎn)、停止等動作實現(xiàn)的真值表如表2所示.驅(qū)動芯片L298N與單片機IO口相連接,使P1_0、P1_1、P1_2和P1_3分別控制4個電機[8].通過上述方法就可以構(gòu)建醫(yī)療服務機器人的前進、后退、左前轉(zhuǎn)、右前轉(zhuǎn)、左后轉(zhuǎn)、右后轉(zhuǎn)、速度調(diào)節(jié)、停止等基本運行的子程序.
表2 機器人基本動作的真值表
Tab.2 The truth table of the basic motion of the robot
功能前進后退左轉(zhuǎn)前進右轉(zhuǎn)前進左轉(zhuǎn)后退右轉(zhuǎn)后退停止左前輪正轉(zhuǎn)反轉(zhuǎn)反轉(zhuǎn)正轉(zhuǎn)正轉(zhuǎn)反轉(zhuǎn)停轉(zhuǎn)右前輪正轉(zhuǎn)反轉(zhuǎn)正轉(zhuǎn)反轉(zhuǎn)反轉(zhuǎn)正轉(zhuǎn)停轉(zhuǎn)左后輪正轉(zhuǎn)反轉(zhuǎn)反轉(zhuǎn)正轉(zhuǎn)正轉(zhuǎn)反轉(zhuǎn)停轉(zhuǎn)右后輪正轉(zhuǎn)反轉(zhuǎn)正轉(zhuǎn)反轉(zhuǎn)反轉(zhuǎn)正轉(zhuǎn)停轉(zhuǎn)
比賽使用深綠色地毯,地毯上貼有白色膠帶線.循跡模塊采用灰度傳感器,傳感器發(fā)射管發(fā)射光線到路面,遇到白底被反射,接收管接收到反射光,經(jīng)施密特觸發(fā)器整形后輸出低電平;當光遇到深綠色地毯時則被吸收,接收管沒有接收到反射光,經(jīng)施密特觸發(fā)器整形后輸出高電平.在小車前部設置7路循跡傳感器,左、右兩側(cè)各設置1路循跡傳感器,尾部設置5路循跡傳感器.通過灰度傳感器檢測地面的白膠帶,單片機管腳產(chǎn)生相關(guān)電壓變化,從而得知小車運行方向與白色軌跡線的關(guān)系.前方7路循跡傳感器的標號從左到右分別是L1、L2、L3、M1、R3、R2、R1;后方5路循跡傳感器的標號從左到右分別是L4、L5、M2、R5、R4.
主控單片機通過舵機控制器控制舵機,單片機使用串口向舵機控制器發(fā)送數(shù)據(jù),控制舵機的運動.為簡化控制流程,在舵機控制器上位機軟件的可視化界面中,把機械手取藥、放藥的過程拆分成程序化動作流程,則控制任務轉(zhuǎn)化為舵機轉(zhuǎn)動角度的控制.調(diào)試好機械手抓取、放藥瓶動作中的舵機轉(zhuǎn)動角度,并依次保存各個動作的舵機轉(zhuǎn)動位置,則在機器人取藥、放藥時,依次調(diào)用該動作執(zhí)行的子程序,其實是分別調(diào)用了兩個不同的動作數(shù)組,則舵機控制器就會驅(qū)動舵機轉(zhuǎn)動對應角度,完成對應任務.
上位機對舵機控制器下載程序本質(zhì)上是串行通信,采用VB語言編寫舵機控制器的上位機控制界面進行計算機底層數(shù)據(jù)傳輸,串口RxD與TxD通過USB線纜,分別與舵機控制器的電路與電腦的串口連接[9],形成物理通路.然后,使用VB 6.0構(gòu)建虛擬COM口與調(diào)用語句,建立信號通路,設計上位機功能控件,實現(xiàn)上位機軟件下載功能.上位機軟件界面如圖9所示.先設置控件初始屬性,輸入對應代碼,則可實現(xiàn)串口信號接受、發(fā)送功能[10].
圖9 上位機下載程序界面Fig.9 The download program interface of the host computer
3.立柱 4.固定支架 5.連桿Ⅰ 6.舵機Ⅰ 7.連桿Ⅱ 8.舵機Ⅱ 9.連桿Ⅲ 10.手爪 11.手爪舵機圖10 機械臂復位狀態(tài)示意Fig.10 The reset state of robot arm
圖11 機械手取藥瓶的流程Fig.11 The process of taking the bottle
醫(yī)療服務機器人在運動過程中,機械臂處于復位狀態(tài),才能保證機器人的重心位于車體的中點.否則,運動中的機器人會由于重心不穩(wěn),導致4個車輪對地面的摩擦力不均勻,機器人運動本體運動過程中會發(fā)生不可預料的偏轉(zhuǎn),不能按預定程序穩(wěn)定運轉(zhuǎn).機械臂復位位置如圖10所示,連桿Ⅰ與連桿Ⅱ的角度為60°,連桿Ⅱ與連桿Ⅲ的角度為120°,機械爪張開.機械爪的手爪舵機旋轉(zhuǎn)90°,通過齒輪嚙合,會帶動手爪合攏.機器人取藥瓶的控制流程如圖11所示,放藥瓶的控制流程如圖12所示.
圖12 機械手放藥瓶的流程 Fig.12 The process of putting the bottle
機器人主控器與舵機控制器、循跡傳感器、電機驅(qū)動器結(jié)合,控制機器人的循跡、取藥、放藥、查房動作.前方7路循跡傳感器的標號,從左到右分別是L1、L2、L3、M1、R3、R2、R1;后方5路循跡傳感器的標號,從左到右分別是L4、L5、M2、R5、R4.當灰度傳感器檢測到白色線后,會將低電平信號返回主控芯片.前方7路循跡中,當L1、L2、L3檢測到白線后,會使小車向左運動;當R1、R2、R3檢測到白線后,會使小車向右運動;當M1檢測到白線后,小車前行,保證白線位于小車底盤中軸線位置.后方5路循跡中,L4、L5檢測到白線后,小車向右運動;R4、R5檢測到白線后,小車向左運動;M2檢測到白線后,小車后退,保證白線位于小車底盤中軸線位置.采用兩個光電開關(guān)檢測前方障礙物,當前方有障礙物時,光電開關(guān)返回低電平信號到單片機,判斷為到達床頭柜護士臺后,主控制器發(fā)送字符串指令給舵機控制板,控制舵機運動,機械臂執(zhí)行相應動作.機器人查房、送藥的軟件流程分別如圖13、圖14所示.
圖13 機器人查房的程序流程Fig.13 The procedure of the robot patrolling the ward
圖14 機器人送藥瓶的程序流程Fig.14 The procedure of the robot sends the bottle
在分析醫(yī)療服務機器人競賽要求的基礎上,設計了競賽機器人機械系統(tǒng)、基本控制電路.根據(jù)比賽流程,設計了控制算法,經(jīng)過實地調(diào)試,可在5min時間內(nèi)跑完全程并完成任務,實現(xiàn)了醫(yī)療機器人競賽要求.但是,系統(tǒng)在車體速度和機械臂抓取的穩(wěn)定性上仍有一定的局限性,在沒有導引線的區(qū)域,若采用圖像傳感器和陀螺儀的組合導航,可靠性要好一些,這些缺點將在后續(xù)的研究中進行改進.
[1]毛麗民,盧振利,謝新明,等.基于語音交互功能的醫(yī)療服務機器人控制系統(tǒng)設計[J].高技術(shù)通訊,2014,24(7):745-751.
[2]張毅,孫純興,李敏.醫(yī)療服務機器人功能設計及實現(xiàn) [J].機器人技術(shù)與應用,2011(6):36-39.
[3]蔡軍,張毅,劉璐,等.基于模糊控制的醫(yī)療服務機器人的設計與實現(xiàn)[J].實驗科學與技術(shù),2014,12(2):38-40,217.
[4]郭天祥.新概念51單片機C語言教程[M].北京:電子工業(yè)出版社,2009:12-36.
[5]馮曉偉,王雷陽,李正生.多路舵機控制PWM發(fā)生器的設計與Proteus仿真[J].現(xiàn)代電子技術(shù),2011,34(11):167-169.
[6]余熾業(yè),宋悅,雷瑞庭.基于STC12C5A60S2的智能循跡小車[J].實驗室研究與探索,2014(33),11:46-49,121.
[7]王水平.開關(guān)穩(wěn)壓電源(修訂版) [M].西安:西安電子科技大學出版社,2005.
[8]史穎剛,劉利.智能車控制實訓指導書[M].楊凌:西北農(nóng)林科技大學出版社, 2016(6):106-108.
[9]郭陽,王強,高禹,等.基于單片機的人形機器人控制系統(tǒng)設計[J].機械工程與自動化,2016(6):187-189.
[10]封莉,張萌萌.計算機與單片機的串行通信技術(shù)探究[J].煤炭技術(shù),2013,32(3):253-255.