康復(fù)醫(yī)療機器人不僅是當(dāng)前機器人研究的前沿,而且是涉及自動控制、計算機、智能儀器、機械學(xué)、康復(fù)醫(yī)學(xué)、神經(jīng)科學(xué)等跨學(xué)科的研究領(lǐng)域,是一個新興學(xué)科??祻?fù)醫(yī)療機器人的研究具有重要的科學(xué)意義?;谏现祻?fù)訓(xùn)練的要求,筆者研制一種基于STM32的力反饋型上肢康復(fù)訓(xùn)練系統(tǒng)。在設(shè)計控制系統(tǒng)時,保證系統(tǒng)的安全性與穩(wěn)定性是最基本的原則⑷。為了避免在突發(fā)情況下對患肢造成二次損傷,通常采用限定機器人末端和受訓(xùn)患肢之間作用力大小的辦法。經(jīng)過實驗驗證,本系統(tǒng)設(shè)計合理,性能穩(wěn)定,可以實現(xiàn)康復(fù)機器人的平穩(wěn)控制,具有的力反饋功能可以在保證系統(tǒng)安全性的前提下充分激發(fā)患者殘存的功能。
1、上肢康復(fù)機器人系統(tǒng)構(gòu)成
上肢康復(fù)機器人的機械臂是關(guān)于軸心對稱的,能夠繞軸心進(jìn)行反復(fù)的弧線運動,既可以由計算機控制訓(xùn)練,也可以由治療師直接操作機器人引導(dǎo)患者進(jìn)行訓(xùn)練。圖1為該上肢康復(fù)訓(xùn)練機器人的實物。
?
圖1單自由度上肢康復(fù)訓(xùn)練機器人
該機器人系統(tǒng)主要由機械臂機械結(jié)構(gòu)、電機、位置傳感器、扭矩傳感器、電機驅(qū)動器、機器人控制器和上位機組成,系統(tǒng)框圖如圖2所示。扭矩傳感器、驅(qū)動電機和位置傳感器沿機械臂軸心依次放置。位置傳感器用于檢測機械臂的運動角度;扭矩傳感器用于檢測患者與機械臂的交互作用力,在患者主動能力不足時提供更大的輔助,而在患者有能力完成動作時,適當(dāng)減小輔助甚至施加阻力,以便充分激發(fā)患者殘存的功能;電機驅(qū)動器,用于產(chǎn)生康復(fù)訓(xùn)練的輔助力或阻尼力,推動或是阻礙機械臂和患肢的運動。
圖2單自由度的上肢康復(fù)訓(xùn)練機器人系統(tǒng)框圖
機器人控制器通過USB接口與上位機實現(xiàn)數(shù)據(jù)交換,一方面控制電路接收上位機發(fā)送來的控制信息,解析上位機命令控制電機驅(qū)動器;另一方面,機器人控制器將采集到的扭矩傳感器和位置傳感器數(shù)據(jù)發(fā)送到上位機。康復(fù)醫(yī)師可根據(jù)上位機人機交互界面顯示的{言息’對患者的康復(fù)訓(xùn)練情況進(jìn)行定量的科學(xué)分析與評價,滅者細(xì)膝卿計耀供決策依據(jù)。
2、系統(tǒng)硬件設(shè)計
本機器人控制器采用基于AKM-M3內(nèi)核的STM32微控制器。ARM-M3內(nèi)核的設(shè)計具有低功耗、高性能、實時性以及具有競爭力的價格,該內(nèi)核配備了緊耦合的嵌套矢量中斷控制器,因此能夠更加快速地響應(yīng)中斷事件。微控制器自帶I2位的ADC和DAC,可以很好地滿足系統(tǒng)的需要。
圖3為本系統(tǒng)的電機驅(qū)動器硬件電路。微控制器DAC的輸出引腳接到圖3中的MOTORIN端。由于微控制器的DAC只能輸出單極性電壓信號,而機械臂需要做往復(fù)運動,需要雙極性信號驅(qū)動電機正反轉(zhuǎn),故將MOTORIN端接入的信號先進(jìn)行調(diào)理,該調(diào)理部分所用OP4177芯片為4路運放。
圖3 ?電機驅(qū)動器硬件電路
筆者通過減法電路將DAC輸出轉(zhuǎn)換成雙極性信號,圖中OP4177芯片的左上角運放構(gòu)成該減法電路。運放正輸人端接人DAC輸出信號,負(fù)輸入端接人1.65V電壓。減法電路輸出為V。=(R3/R8)(^motorin-1.65),當(dāng)l/M。TQRW》1.65V時,減法電路輸出正電壓控制電機正轉(zhuǎn);當(dāng)hcmwm《1.65V時,減法電路輸出負(fù)電壓控制電機反轉(zhuǎn);Kmotorin=1.65V時,減法電路輸出0V電壓,此時電機保持靜止?fàn)顟B(tài)。圖中尺|5~尺?構(gòu)成了分壓電路,經(jīng)過OP4177芯片左下角運放構(gòu)成的電壓跟隨器獲得I.65V基準(zhǔn)電壓。減法電路輸出信號接人OP4177芯片右上角運放組成的運算放大電路,其輸出為V,=[-(R4+R7)/R5]xV0。
經(jīng)過運算放大后的電壓信號輸人到功率放大器,此處采用集成功率放大器為丨,M3886,該芯片具有過電流保護功能,且輸出功率較大,可輸出60W。圖3屮的MOTOROUT端為功放輸出的驅(qū)動電機的電壓信號。功率放大器輸出的驅(qū)動電壓MOTOROUT與微控制器DAC輸出MOTORIN比例關(guān)系為
筆者采用的扭矩傳感器為差分信號輸出,其輸出為K+和L,電壓幅值為毫伏級,故需要進(jìn)行差分放大后,才能送人微控制器進(jìn)行A/D轉(zhuǎn)換。該差分放大器采用小尺寸、低功耗、高精度的AD620。差分輸出為:
式中RG為增益的外部控制電阻,選擇合適的RG使扭矩信號放大至伏級。由于扭矩傳感器輸出的信號是雙極性的,經(jīng)AD620放大后仍為雙極性信號,而微控制器的A/D轉(zhuǎn)換范圍為0~3.3V,故須將AD620輸出的電壓加上1.65V抬升到0~3.3V,使之適合A/D的輸人范圍。
位置傳感器輸出為正交脈沖信號,STM32微控制器的每個定時器都有正交脈沖信號的輸入接口,通過配置其定時器的工作模式,即可以對位置傳感器的輸出脈沖進(jìn)行正向/反向計數(shù),從而得到機械臂的位置。
微控制器將扭矩信息與位置信息通過USB數(shù)據(jù)線上傳到上位機,進(jìn)行康復(fù)機器人狀態(tài)的監(jiān)控;同時接收上位機下傳的驅(qū)動電機的命令,進(jìn)行相應(yīng)的D/A轉(zhuǎn)換,通過電機驅(qū)動器控制電機工作。
3、系統(tǒng)軟件設(shè)計
系統(tǒng)上位機與微控制器之間通過USB進(jìn)行數(shù)據(jù)交互。系統(tǒng)上電后,微控制器開始工作,首先初始化系統(tǒng)時鐘、I/O端口、外部中斷、ADC、DAC、定時器和USB等配置。
首先在上位機中設(shè)置康復(fù)機器人的訓(xùn)練模式,本系統(tǒng)的訓(xùn)練模式分為主動運動訓(xùn)練模式和被動運動訓(xùn)練模式兩種[6]。設(shè)置成功后,上位機的控制指令通過USB傳輸?shù)轿⒖刂破髦校⑦M(jìn)入微控制器的USB中斷,微控制器在中斷處理程序中處理上位機發(fā)出的指令,根據(jù)上位機發(fā)出控制指令,設(shè)定相應(yīng)訓(xùn)練模式的標(biāo)志,以供主程序進(jìn)行機械臂運動類型的判斷。
軟件主程序流程如圖4所示,若判斷為被動運動訓(xùn)練模式,則進(jìn)人PID控制子程序,對機械臂的位置進(jìn)行閉環(huán)控制,使機械臂往復(fù)運動;若判斷為主動運動訓(xùn)練模式,則進(jìn)入自主訓(xùn)練過程,患者帶動機械臂進(jìn)行主動訓(xùn)練;其他則判斷為機械臂無運動模式。
主程序中同時進(jìn)行機械臂的扭矩信息和位置信息的采集。微控制器的ADC對差分放大后的扭矩信號進(jìn)行數(shù)字量的轉(zhuǎn)換;當(dāng)機械臂轉(zhuǎn)動時,位置傳感器輸出相互正交的脈沖信號,微控制器通過配置定時器工作模式對其進(jìn)行計數(shù)。
最后微控制器將扭矩信息與位置信息通過USB腦社位I上位聽撒賄他醒方式直觀地顯示出來,便于醫(yī)師對機械臂的工作狀態(tài)和患者的康復(fù)狀況進(jìn)行客觀判斷。上位機接收到的扭矩信號也是本系統(tǒng)的力反饋信號,當(dāng)扭矩過小時,可以適當(dāng)增大驅(qū)動電壓,使驅(qū)動電機的輸出扭矩增大;當(dāng)扭矩過大時,可以適當(dāng)減小驅(qū)動電壓,減小驅(qū)動電機的輸出扭矩,從而保證了患者康復(fù)訓(xùn)練的有效性與安全性。
圖4 微控制器主程序流程圖
4、PID參數(shù)整定
微控制器DAC輸出的電壓值是通過PID箅法計,4算出來的。PID算法的流程圖如圖5所示。
圖5 PID算法原理框圖
首先,由上位機給定康復(fù)機器人機械臂的運動范圍,即圖5中所示的目標(biāo)位置將位置傳感器采集的當(dāng)前位置信息輸入到PID控制器中,目標(biāo)位置與當(dāng)前位置X(A)的差值e(A)送人PID控制器中,將其輸出值送人微控制器的DAC進(jìn)行轉(zhuǎn)換產(chǎn)生電機的驅(qū)動信號,進(jìn)而帶動機械臂做與上位機控制指令相一致的運動。
筆者利用傳統(tǒng)方式求出本系統(tǒng)中直流電機模型參數(shù)。本系統(tǒng)的被控對象是電機模型,傳遞函數(shù)為:
式中,G為電機電勢系數(shù);Ta為電氣時間常數(shù);Tm為機械時間常數(shù)。所選直流電機的參數(shù)如表1所示。
表1直流電機參數(shù)
采用Matlab進(jìn)行仿真。系統(tǒng)單位階躍信號的響應(yīng)曲線如圖6(a)所示,系統(tǒng)的穩(wěn)定值在1.0之上,不滿足系統(tǒng)要求。
圖6 ?校正前后系統(tǒng)階躍響應(yīng)曲線
PID控制器的參數(shù)值是在實驗過程中不斷調(diào)整與完善的。經(jīng)過多次實驗,系統(tǒng)最終選定的PID參數(shù)是o4t/s246t/s0(a)系統(tǒng)單位階躍響應(yīng)曲線KP=0.7241KI=0.0001,KD=10。
5、實驗測試與結(jié)果
為了測試康復(fù)機器人控制系統(tǒng)的穩(wěn)定性,筆者進(jìn)行了反復(fù)實驗。圖7(a)所示的是系統(tǒng)的主動運動訓(xùn)練模式?;颊邘訖C械臂進(jìn)行往復(fù)運動,機械臂所轉(zhuǎn)動的角度在框圖中顯示出來。
系統(tǒng)的被動運動訓(xùn)練模式分為4種:慢速小范圍、慢速大細(xì)、快速小細(xì)和快速大細(xì),可以根據(jù)患者的需求設(shè)定合刪訓(xùn)練類型。圖7(b)是慢速大細(xì)訓(xùn)練模式下的實驗結(jié)果,圖7(c)是快速小范酬練模式下的實驗結(jié)果。
對于系統(tǒng)中的力反饋功能,除了可以根據(jù)扭矩大小調(diào)節(jié)驅(qū)動電壓大小外,還可以避免在突發(fā)情況下機構(gòu)對患者肢體造成的二次損傷,如當(dāng)患者的肢體發(fā)生痙攣時,系統(tǒng)的工作狀態(tài)可以轉(zhuǎn)變?yōu)橥V梗瑥亩Wo患者。實驗測試結(jié)果如圖7(d)所示。圖中尖峰狀的曲線為扭矩信號,當(dāng)機械臂的運動被阻止時,扭矩傳感器可以檢測到很大的扭矩信號,上位機接收到此扭矩信號后,對機械臂狀態(tài)做出判斷,繼而向下位機發(fā)送停止電機工作的指令,使機械臂處于放松狀態(tài),從而避免了對患肢的損傷。
6、結(jié)束語
設(shè)計了一種基于STM32的具有力反收的康復(fù)機器人控制系統(tǒng)。采用扭矩傳感器實現(xiàn)系統(tǒng)的力反饋功能,充分發(fā)揮患者殘存的功目采用位置傳感器采集康:復(fù)機械臂的位置信息,配合PID算法進(jìn)行位置反饋,使控制信號更加準(zhǔn)確。
評論