郭迎九 郭瀾 黎恩銘
(1.北京城市學(xué)院信息學(xué)部 北京市 101309 2.北京大學(xué)醫(yī)學(xué)部 北京市 100083)
目前,腦卒中和中風(fēng)發(fā)病率逐年上升[1][2],這種疾病引發(fā)了患者肢體運(yùn)動功能的喪失尤其是上肢運(yùn)動功能的喪失,極大地影響了患者日常的生活。因此腦卒中和中風(fēng)患者的治療和康復(fù)顯得異常迫切和重要。臨床康復(fù)中,康復(fù)醫(yī)師通常以對患肢進(jìn)行一對一的連續(xù)被動訓(xùn)練,勞動強(qiáng)度大,訓(xùn)練效果不能保證,而現(xiàn)有的康復(fù)機(jī)器人和輔助器械智能化水平不高,因此,開發(fā)智能化水平高的康復(fù)機(jī)器人具備很高的應(yīng)用價(jià)值,是當(dāng)今國內(nèi)外研究的熱點(diǎn)領(lǐng)域。
國內(nèi)外在這方面也作了不少研究工作[3]。國內(nèi)哈爾濱工業(yè)大學(xué)等研制了基于SEMG 信號的外骨骼上肢康復(fù)機(jī)器人[4],國外美國、日本等也研制了相應(yīng)的上肢康復(fù)設(shè)備,如2010年日本Akita Prefectural 大學(xué)的Koi-chi Kirihara 等人開發(fā)了氣動式連桿上肢康復(fù)支撐設(shè)備[5]等。
現(xiàn)有的康復(fù)機(jī)器人可以幫助患者進(jìn)行康復(fù)治療,治療效果較傳統(tǒng)方法有明顯的提高,但機(jī)器人的智能化水平不高,需要開發(fā)具備一定智能化水平的康復(fù)機(jī)器人。
我們設(shè)計(jì)的智能康復(fù)機(jī)器人結(jié)構(gòu)如圖1所示。根據(jù)人體解剖學(xué)理論,從康復(fù)運(yùn)動的實(shí)際出發(fā),選擇了上肢最基本也是最重要的3個(gè)自由度:肩部屈/伸、肘部屈/伸和腕部屈/伸。圖1 中從下到上的三個(gè)黑色圓點(diǎn)分標(biāo)對應(yīng)肩關(guān)節(jié)、肘關(guān)節(jié)和腕關(guān)節(jié),它們皆為回轉(zhuǎn)關(guān)節(jié),由伺服電機(jī)通過減速器帶動轉(zhuǎn)動,桿件1、2、3 分別代表臂、前臂和手。3 個(gè)關(guān)節(jié)協(xié)調(diào)運(yùn)動,帶動臂、前臂和手實(shí)現(xiàn)豎直面的預(yù)定軌跡運(yùn)動。通過調(diào)節(jié)機(jī)器人的姿態(tài)和患者手臂的放置方式,可以實(shí)現(xiàn)上肢肌肉的康復(fù)訓(xùn)練(如表1所示意)。
2.2.1 運(yùn)動學(xué)分析
機(jī)械手臂可以認(rèn)為是由一系列關(guān)節(jié)連接起來的連桿機(jī)構(gòu)所構(gòu)成,各關(guān)節(jié)的幾何關(guān)系可通過Denavit-Hartenberg(D-H)參數(shù)表來描述(見表2)。D-H 參數(shù)參數(shù)由桿件長度a、移動關(guān)節(jié)線位移d、桿件扭角α 和轉(zhuǎn)動關(guān)節(jié)角位移θ4 個(gè)分量組成,以描述某一桿件相對于前一桿件的位姿。
機(jī)器人坐標(biāo)系如圖。根據(jù)坐標(biāo)變換的原理,得:

表1:機(jī)器人自由度及相關(guān)運(yùn)動肌肉群

表2:康復(fù)機(jī)器人D-H 參數(shù)表

圖1:康復(fù)機(jī)器人結(jié)構(gòu)簡圖

圖2:仿真三維圖

圖3:Matlab 仿真得到的曲線

圖4:智能控制原理圖

圖5:康復(fù)機(jī)器人BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖

其中,c123=cos(θ1+θ2+θ3),s123=sin(θ1+θ2+θ3),c12=cos(θ1+θ2),s12=sin(θ1+θ2),c1=cos(θ1),s1=sin(θ1)。根據(jù)上述變換矩陣,可求得手部基點(diǎn)位置坐標(biāo)為:

接下來對(1)的變換矩陣進(jìn)行逆變換可以在確定末端坐標(biāo)x,y和φ (φ 是連桿在平面內(nèi)的方位角)的情況下,求解各個(gè)臂夾角。求解結(jié)果如下:

應(yīng)用反切公式計(jì)算θ2:

令:

得:

由:

解出θ3。。接下來我們用Matlab Robotics 仿真軟件對我們的結(jié)果進(jìn)行驗(yàn)證。
2.2.2 運(yùn)動學(xué)仿真
我們利用Matlab Robotics 軟件進(jìn)行仿真的桿件初始化代碼如下:
L1 = Link('alpha',0,'a',0.25,'d',0);
L2 = Link('alpha',0,'a',0.25,'d',0);
L3 = Link('alpha',0,'a',0.125,'d',0);
L4 = Link('alpha',0,'a',0,'d',0);
L5 = Link('alpha',0,'a',0,'d',0);
L6 = Link('alpha',0,'a',0,'d',0);
代碼中,alpha,a,d 為默認(rèn)參數(shù),由于我們只仿真機(jī)器人運(yùn)動軌跡這些參數(shù)可以忽略不計(jì),三連桿的長度分別為0.25 單位,0.25單位和0.125 單位。
連桿構(gòu)建代碼:
Bot=SerialLink([L1 L2 L3 L4 L5 L6]);
終止條件:
qr=[pi/4,pi/4,pi/4,0,0,0];
采樣周期(時(shí)間2 秒,采樣周期50 毫秒):
t=[0:0.05:2];
變換矩陣:
forward_kinematics = fkine(bot,qr);
模擬過程:
bot.ikine(forward_kinematics)
仿真三維模型如圖2所示意。仿真時(shí)間2 秒、采樣周期是50ms,記錄末端點(diǎn)在基坐標(biāo)系各坐標(biāo)軸上的坐標(biāo)值,得到機(jī)器人末端點(diǎn)的位移變化、速度變化和加速度變化,如圖3所示。
圖中,橫坐標(biāo)為時(shí)間(2s),綜坐標(biāo)為位移(米),速度(米/秒),加速度(米/秒2)。臂、前臂、手的長度分別是0.250米,0.250 米,0.125米。仿真與運(yùn)動學(xué)分析一致,為康復(fù)機(jī)器人的設(shè)計(jì)提供了很好的驗(yàn)證工具。通過調(diào)整臂、前臂、手三個(gè)桿件的末端運(yùn)動速度、桿件運(yùn)動夾角θ 等物理量的變化調(diào)整康復(fù)機(jī)器人的運(yùn)動強(qiáng)度。
我們設(shè)計(jì)的智能化控制機(jī)器人利用AD8232 傳感器測量心率并根據(jù)病人心率負(fù)荷要求實(shí)時(shí)調(diào)整康復(fù)機(jī)器人的運(yùn)動強(qiáng)度,從而達(dá)到保證康復(fù)人員安全的目標(biāo)。STM32 單片機(jī)主要采用PWM 方法控制各個(gè)伺服電機(jī)的轉(zhuǎn)速和轉(zhuǎn)角,控制依據(jù)是BP 神經(jīng)網(wǎng)絡(luò)通過機(jī)器學(xué)習(xí)得到的適合康復(fù)人員安全的運(yùn)動強(qiáng)度目標(biāo)。整個(gè)系統(tǒng)為一帶負(fù)反饋的智能控制系統(tǒng)(圖4)。康復(fù)運(yùn)動的心率要求為:



圖6:BP 學(xué)習(xí)結(jié)果

圖7:智能康復(fù)機(jī)器人樣機(jī)
控制采用的BP 網(wǎng)絡(luò)(Back-ProPagation Network)[6]是一種反向傳播神經(jīng)網(wǎng)絡(luò),通過樣本數(shù)據(jù)的訓(xùn)練,不斷修正網(wǎng)絡(luò)權(quán)值和閾值使誤差函數(shù)沿負(fù)梯度方向下降,逼近期望輸出。它是一種應(yīng)用較為廣泛的神經(jīng)網(wǎng)絡(luò)模型,多用于函數(shù)逼近、模型識別分類、數(shù)據(jù)壓縮和時(shí)間序列預(yù)測等。BP 網(wǎng)絡(luò)由輸入層、隱層和輸出層組成,隱層可以有一層或多層。
我們設(shè)計(jì)的BP 神經(jīng)網(wǎng)絡(luò)采用三層,分別為輸入層,隱含層和輸出層,如圖5所示意。輸入層的輸入數(shù)據(jù)分別為:臂、前臂、手運(yùn)動速度以及臂、前臂、手運(yùn)動的角度幅度即最大夾角常θ。模型選擇正切函數(shù)tansig 作為隱層神經(jīng)元的激勵(lì)函數(shù)。隱層神經(jīng)元數(shù)初設(shè)為4。
在康復(fù)病人實(shí)用機(jī)器人之前,我們需要對病人進(jìn)行訓(xùn)練,采集數(shù)據(jù)集作為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)數(shù)據(jù)集,采集的數(shù)據(jù)集包括臂、前臂、手運(yùn)動速度以及臂、前臂、手運(yùn)動的角度幅度即最大夾角常θ 和心率的關(guān)系。學(xué)習(xí)數(shù)據(jù)集完成后,BP 神經(jīng)網(wǎng)絡(luò)就可以進(jìn)行預(yù)測。我們選定的仿真工具為Matlab Neural Network 工具包。仿真預(yù)測設(shè)定網(wǎng)絡(luò)迭代次數(shù)epochs 為5000 次,期望誤差goal 為0.00000001。在實(shí)際訓(xùn)練過程中,由于病人的身體原因,我們選定一康復(fù)病人的16個(gè)樣本集P 目標(biāo)集T 如下所示進(jìn)行預(yù)測學(xué)習(xí)。經(jīng)過173 次學(xué)習(xí)達(dá)到期望誤差,仿真結(jié)果收斂。智能機(jī)器人在正常工作時(shí)可以依據(jù)病人的心率要求按照預(yù)測模型調(diào)整按機(jī)器人運(yùn)動參數(shù)進(jìn)行康復(fù)訓(xùn)練,保證訓(xùn)練的安全。
P=[0.10 0.20 0.15 0.18 0.20 0.22 0.10 0.15 0.18 0.20 0.22 0.10 0.15 0.18 0.20 0.22;
0.10 0.18 0.15 0.18 0.20 0.22 0.10 0.15 0.18 0.20 0.22 0.10 0.15 0.18 0.20 0.22;
0.10 0.20 0.15 0.18 0.20 0.22 0.10 0.15 0.18 0.20 0.22 0.10 0.15 0.18 0.20 0.22;
0.785 0.90 0.785 0.785 0.785 0.785 1.04 1.04 1.04 1.04 1.04 1.57 1.57 1.57 1.57 1.57;
0.785 1.54 0.785 0.785 0.785 0.785 1.04 1.04 1.04 1.04 1.04 1.57 1.57 1.57 1.57 1.57;
0.785 1.60 0.785 0.785 0.785 0.785 1.04 1.04 1.04 1.04 1.04 1.57 1.57 1.57 1.57 1.57;];
T=[80 100 85 88 95 100 83 87 89 99 106 103 107 120 130 136];
如圖6所示,仿真學(xué)習(xí)結(jié)果說明了我們的預(yù)測方法是合理和可行的。預(yù)測模型可以作為控制康復(fù)機(jī)器人運(yùn)動的指導(dǎo)模型,由AD8232 傳感器結(jié)合STM32 PWM 控制器根據(jù)心率運(yùn)動公式給予病人最適合的運(yùn)動參數(shù)。
智能康復(fù)機(jī)器人是醫(yī)療機(jī)器人的一個(gè)重要分支,是康復(fù)機(jī)器人的未來發(fā)展方向。本文設(shè)計(jì)的智能康復(fù)機(jī)器人機(jī)械結(jié)構(gòu)采用鋁制部件,生產(chǎn)成本低,重量輕。采用AD8232 傳感器測量心率,通過STM32 單片機(jī)依據(jù)BP 神經(jīng)網(wǎng)絡(luò)算法智能化控制機(jī)器人,保證康復(fù)人員的安全。文章應(yīng)用Matlab 軟件進(jìn)行了仿真。理論分析、仿真和樣機(jī)實(shí)驗(yàn)證實(shí)了該智能康復(fù)機(jī)器人設(shè)計(jì)的可行性,如圖7所示意。今后要繼續(xù)對智能控制算法進(jìn)行研究。