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