《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于嵌入式Linux的上肢康復(fù)機器人用戶系統(tǒng)研究
基于嵌入式Linux的上肢康復(fù)機器人用戶系統(tǒng)研究
來源:電子技術(shù)應(yīng)用2014年第5期
張 穎1,易金花1,張曉玉2,喻洪流1
(1.上海理工大學 醫(yī)療器械與食品學院,上海200093; 2.國家康復(fù)輔具研究中心,北京10002
摘要: 具有上肢功能障礙的腦卒中患者需要進行大量重復(fù)的康復(fù)訓練以恢復(fù)運動功能。為此設(shè)計了一套基于嵌入式計算機的用戶控制系統(tǒng),用以控制上肢康復(fù)訓練機器人的運動。在Linux環(huán)境下利用Qt圖形用戶界面開發(fā)工具設(shè)計完整的用戶界面,完成嵌入式Linux內(nèi)核的移植與驅(qū)動程序的開發(fā),利用真實的關(guān)節(jié)運動信息進行康復(fù)訓練游戲,實現(xiàn)對上肢康復(fù)機器人的主動控制。該系統(tǒng)的設(shè)計目的在于把復(fù)雜的底層控制功能通過簡易的方式表達在用戶界面上,使得康復(fù)醫(yī)師和腦卒中患者可以與康復(fù)訓練機器人進行人機交互,提高康復(fù)訓練效果。
中圖分類號: TP311.52
文獻標識碼: A
文章編號: 0258-7998(2014)05-0014-04
A research of upper limb rehabilitation robot user system based on embedded Linux
Zhang Ying1,Yi Jinhua1,Zhang Xiaoyu2,Yu Hongliu1
1.School of Medical Instrument and Food Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China;2.National Research Center for Rehabilitation Technical Aids,Beijing 100028,China
Abstract: Upper limb rehabilitation of patients with stroke always need repetitive training for motor function rehabilitation. One user control system based on embedded computer was designed to control the rehabilitation robot for upper limb movement. Development tool of Qt graphics user interface was used to develop the whole user interface on Linux. Linux kernel was ported and application program was developed based on existing hardware platforms, rehabilitation robot′s active control was achieved via the rehabilitation training game applying the parameters from joint motions. The function of complex underlying control was displayed by a simple way in the present system, making an easy and tight human-computer interaction between rehabilitation physicians or stroke patients and rehabilitation training robot, also improving the training effect.
Key words : embedded Linux;user operating system;Qt;rehabilitation robot

    隨著機器人技術(shù)和康復(fù)醫(yī)學的發(fā)展,康復(fù)機器人已成為一種新的運動神經(jīng)康復(fù)治療技術(shù),通過康復(fù)訓練運動療法來維持并改善腦卒中偏癱患者的關(guān)節(jié)活動度[1],可防止肌肉萎縮,促進患肢運動功能的恢復(fù),同時改善運動的協(xié)調(diào)性。利用機器人技術(shù)進行康復(fù)訓練,輔助腦卒中引起的上肢功能障礙的恢復(fù),得到了人們越來越廣泛的認可。
    上肢康復(fù)訓練機器人經(jīng)過二十多年的發(fā)展,已取得了很大的進展。通過對上肢康復(fù)訓練機器人發(fā)展現(xiàn)狀的研究[2]可以發(fā)現(xiàn),現(xiàn)有的多種機器人系統(tǒng)在人機交互控制方面仍存在一些不足,人機交互控制系統(tǒng)全部都是基于個人計算機,操作方式主要是通過鼠標與鍵盤[3-4]。一方面這種設(shè)計要求醫(yī)護人員在康復(fù)訓練現(xiàn)場操作設(shè)備,降低了工作效率;另一方面,腦卒中偏癱患者的行動能力通常較弱,很難通過傳統(tǒng)的計算機操作方式進行交互,削弱了患者對自身康復(fù)治療過程的關(guān)注程度與參與程度。本文的目標是設(shè)計并實現(xiàn)一個基于嵌入式Linux的上肢康復(fù)訓練機器人用戶控制系統(tǒng),利用該便攜式終端設(shè)備的移動處理能力,結(jié)合相關(guān)的無線通信模塊和LCD顯示控制模塊,實現(xiàn)訓練時運動關(guān)節(jié)參數(shù)的實時采集、無線傳輸,方便醫(yī)護人員提前設(shè)定針對不同患者的康復(fù)訓練計劃,并在離開康復(fù)訓練現(xiàn)場進行工作的同時又能監(jiān)控處于運行狀態(tài)的上肢康復(fù)訓練機器人,掌握患者的訓練動態(tài),適時做出調(diào)整,提高醫(yī)護人員的工作效率。
1 嵌入式系統(tǒng)框架
    整個用戶系統(tǒng)的原理框架如圖1、圖2所示。圖1為硬件框圖,圖2為軟件框圖。硬件部分包括ARM主控制器開發(fā)平臺和外圍設(shè)備兩大部分。主控芯片包括串口、以太網(wǎng)口、觸屏接口等各類接口,負責對信號進行處理、存儲,LCD控制器和觸屏接口負責控制信號的傳輸以及顯示,通信模塊依據(jù)SPI通信協(xié)議完成信息數(shù)據(jù)在主控制器與外圍設(shè)備(主要是底層動力控制系統(tǒng))間的傳遞。

1.1 處理器的選擇與開發(fā)環(huán)境搭建
    本文選擇了三星公司型號為S5PV210的微處理器作為用戶控制系統(tǒng)的主控芯片。S5PV210基于ARM CortexTM-A8內(nèi)核進行設(shè)計,使用ARM V7指令集。S5PV210的運行主頻高達1 GHz,可以確保嵌入式Linux操作系統(tǒng)及其應(yīng)用程序的及時響應(yīng)并穩(wěn)定運行。本文設(shè)計的嵌入式用戶控制系統(tǒng)硬件基于友善公司推出的mini210開發(fā)板,該開發(fā)板使用了S5PV210微處理器為主控芯片進行設(shè)計,配備7英寸電阻式觸摸屏作為用戶操作的終端設(shè)備。宿主機上搭建的嵌入式開發(fā)環(huán)境包括安裝Linux操作系統(tǒng)、交叉編譯工具以及NFS網(wǎng)絡(luò)文件服務(wù)器的配置和串口調(diào)試終端的選擇等。本文的GUN/Linux操作系統(tǒng)選擇Ubuntu13.04,程序編輯軟件使用gvim,配合gcc/g++編譯器,串口調(diào)試終端使用Minicom,并根據(jù)目標板的配置修改和裁剪了2.6.37版本的Linux內(nèi)核[5]。
1.2 驅(qū)動程序的開發(fā)
    基于嵌入式Linux內(nèi)核的應(yīng)用程序無法像普通單片機程序一樣直接操作GPIO、USB、串口等任何系統(tǒng)外設(shè)模塊,需要使用相應(yīng)外設(shè)的Linux設(shè)備驅(qū)動提供的統(tǒng)一函數(shù)接口API。某些特殊外設(shè)需要按照Linux設(shè)備驅(qū)動規(guī)范自行編寫,本文所涉及的驅(qū)動主要是字符設(shè)備的驅(qū)動[6],包括7英寸LCD控制終端的按鍵驅(qū)動、觸摸屏的驅(qū)動以及SPI通信模塊的驅(qū)動。下面僅以SPI通信協(xié)議為例介紹系統(tǒng)通信模塊的驅(qū)動。
    無線通信模塊采用SI4432芯片,SI4432通過SPI接口與外界進行通信,因此在嵌入式用戶控制系統(tǒng)中,底層SPI驅(qū)動程序主要完成SI4432與S5PV210間的通信。上層SPI驅(qū)動完成通過主控芯片外設(shè)模塊向SI4432發(fā)送指令和數(shù)據(jù),最終由SI4432芯片控制器控制射頻收發(fā)器完成數(shù)據(jù)收發(fā),實現(xiàn)控制終端與底層動力控制系統(tǒng)相應(yīng)無線模塊之間的無線數(shù)據(jù)傳輸。SPI的驅(qū)動結(jié)構(gòu)可以分為3個層次:SPI 核心層、SPI控制器驅(qū)動層和SPI設(shè)備驅(qū)動層。SPI 核心層由Linux內(nèi)核決定,應(yīng)用程序的開發(fā)無需關(guān)心。SPI控制器驅(qū)動可用數(shù)據(jù)結(jié)構(gòu)spi_master來描述,是與處理器平臺相關(guān)的軟件層,本文中對應(yīng)的是ARM系列處理器。SPI設(shè)備驅(qū)動層為應(yīng)用程序接口層,它提供了通過處理器平臺的SPI外設(shè)模塊訪問具體SPI設(shè)備的接口。SPI設(shè)備驅(qū)動層可以用spi_driver和spi_device兩個結(jié)構(gòu)來描述。這3個重要數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系如圖3所示。

      SPI驅(qū)動程序作為字符設(shè)備文件,需要定義SI4432通信芯片的SPI特性參數(shù),并提供S5PV210的SPI控制器對SI4432通信芯片的讀、寫功能函數(shù)接口。本文具體實現(xiàn)的主要函數(shù)接口包括spi_si4432_open(),spi_si4432_read(),spi_si4432_write(),spi_si4432_interrupt(),spi_si4432_ioctl(),spi_si4432_poll(),spi_si4432_
probe(),spi_si4432_message()等。其中最為關(guān)鍵的是讀、寫函數(shù)。讀操作的目的是通過上層SPI驅(qū)動發(fā)送接收指令,然后把接收到的數(shù)據(jù)轉(zhuǎn)存至內(nèi)核緩存區(qū),再由內(nèi)核緩存區(qū)讀入用戶空間數(shù)據(jù)結(jié)構(gòu)中,寫操作與之類似。驅(qū)動程序采用中斷的方式來告訴系統(tǒng)數(shù)據(jù)是否已經(jīng)發(fā)送或者接收完畢。每發(fā)送或接收完一組數(shù)據(jù),中斷信號就被觸發(fā),CPU執(zhí)行中斷處理函數(shù)。
2 嵌入式用戶圖形界面GUI設(shè)計
    本系統(tǒng)選用了嵌入式Linux的主流GUI系統(tǒng)之一Qt作為開發(fā)工具[7]。嵌入式GUI要求直觀、可靠、占用資源少且響應(yīng)迅速,與系統(tǒng)硬件資源有限的情況相符。另外嵌入式GUI應(yīng)具備高度的移植性和剪裁性。Qt以面向?qū)ο蟮腃++語言為基礎(chǔ),通過Qt API接口函數(shù)與Linux I/O設(shè)備直接交互,它采用幀緩存(buffer frame)作為底層圖形接口,將外部設(shè)備抽象為鍵盤和鼠標的輸入事件,具有良好的跨平臺移植性以及強大的API支持。
2.1 GUI整體設(shè)計流程
    目前實現(xiàn)的嵌入式用戶控制系統(tǒng)主要包括5大部分:用戶注冊和登錄管理,醫(yī)生控制中心、患者控制中心、設(shè)備控制中心以及康復(fù)訓練游戲。使用對象包括醫(yī)護人員和康復(fù)患者兩類,醫(yī)護人員更加偏向于對上肢康復(fù)訓練機器人的管理、病人訓練計劃的安排及監(jiān)測;患者則更側(cè)重于實際訓練過程的細微調(diào)整、對訓練項目及康復(fù)小游戲的選擇以及執(zhí)行訓練計劃等。由此,在用戶登錄界面選擇不同登錄類型時將進入不同的控制中心面板,從而獲得不同的設(shè)備操作權(quán)限。整個用戶控制系統(tǒng)共繪制了12個主要的操作、顯示面板。
    整個Qt用戶系統(tǒng)界面的設(shè)計采用了QGraphicsView場景-視圖框架,通過在視窗Viewport加載不同的場景Scene來實現(xiàn)窗口部件的切換。以醫(yī)生控制中心面板的構(gòu)建為例,實現(xiàn)了從視圖(QGraphicsView)->場景(QGra-phicsScene)->自定義窗體部件類(QWidget)->子窗口類(QLabel,QSlider等)->信號與槽函數(shù)鏈接(Singnal & Slots)添加的一整套用戶操作系統(tǒng)界面的設(shè)計,共計12個界面之間的快速鏈接跳轉(zhuǎn),方便醫(yī)護人員及患者對終端設(shè)備的操作。
class DocCtrlCenterView : public QGraphicsView
//自定義醫(yī)生控制中心視圖
{    …
public:
    DocCtrlCenterView(QWidget*parent, logInInfo logInInfoIn);
//函數(shù)構(gòu)造
    ~DocCtrlCenterView();
    DocCtrlCenter *docCtrlCenter;       //建立場景
private slots:
    void UpdateNow(){this->viewport()->repaint();};
//提供實施刷新的槽函數(shù)
};
class DocCtrlCenter : public QGraphicsScene//自定義場景
{    …
    DocCard *docCard;//聲明場景中的類
    SysCtrlPad *sysCtrlPad;
    …
    QGraphicsProxyWidget* a;//聲明代理Widget
    …
};
2.2 運動參數(shù)存儲與提取
    在用戶控制系統(tǒng)中,需要將醫(yī)生設(shè)定的康復(fù)訓練計劃轉(zhuǎn)換為機器人各個關(guān)節(jié)的電機驅(qū)動參數(shù)[9]并發(fā)送到底層動力控制系統(tǒng)實現(xiàn)對機械臂運動的實時控制,以及得到反饋信息并繪制康復(fù)機器人機械臂的各項關(guān)節(jié)運動參數(shù)。在計劃設(shè)定階段以及從數(shù)據(jù)傳輸模塊讀取運動參數(shù)后,系統(tǒng)會把數(shù)據(jù)分發(fā)到數(shù)據(jù)庫存儲線程進行存儲,存儲數(shù)據(jù)塊大小由緩沖隊列的數(shù)據(jù)塊大小決定。根據(jù)需求,本文使用QSQLite完成數(shù)據(jù)的操作管理。QSQLite是SQLite數(shù)據(jù)庫提供的一個Qt數(shù)據(jù)庫驅(qū)動,通過該驅(qū)動,所有的Qt應(yīng)用程序可方便地訪問SQLite數(shù)據(jù)庫。數(shù)據(jù)庫的設(shè)計包括多張數(shù)據(jù)表格[8],以康復(fù)訓練的被動訓練計劃定制為例,實現(xiàn)該計劃的定制涉及到s_Passive_Exercise、s_ScheduleSet兩個數(shù)據(jù)表,如圖4所示。根據(jù)終端用戶的操作實現(xiàn)對數(shù)據(jù)庫條目以及各項參數(shù)的增加、刪除、更新以及查詢。

2.3 各關(guān)節(jié)運動參數(shù)曲線繪制

 


    設(shè)備控制中心提供了關(guān)節(jié)運動參數(shù)曲線繪制功能,該功能通過Qwt(Qt Widgets for Technical Applications)工具庫實現(xiàn)。Qwt提供了一系列GUI組件和曲線繪制的實用類,包括Curves(曲線)、Slider(滾動條)、Dials(圓盤)、Compasses(儀表盤)等。使用QWT繪制數(shù)據(jù)曲線所要用到的主要類包括QwtPlotCanvas與QwtPlotCurve。其中,QwtPlotCanvas類為曲線繪制提供畫板,畫板上則可以繪制曲線、標簽、坐標、網(wǎng)格等組件;QwtPlotCurve類則用于繪制曲線,它由一系列的數(shù)值點組成,有多種顯示方式,包括折線、點狀/平滑曲線等。在程序中,用戶系統(tǒng)定時發(fā)出關(guān)節(jié)運動信息反饋請求,底層動力控制系統(tǒng)收到請求后將檢測到的新的關(guān)節(jié)運動信息反饋給用戶系統(tǒng)。
2.4 康復(fù)訓練游戲
    “反彈球”游戲是通過對Qt社區(qū)提供的開源游戲QBall移植而實現(xiàn)的[9]。原始的QBall游戲只能使用觸摸屏或計算機鍵盤進行控制。本方案中,利用關(guān)節(jié)的真實運動信息控制游戲中虛擬擋塊的左右移動,將程序移植的工作集中在探究關(guān)節(jié)運動號與擋塊位置之間的關(guān)聯(lián)。該游戲控制一個可左右移動的擋塊,將落下的紅球反彈回去,被撞擊到的上方各色的方塊消失,不同的顏色對應(yīng)不同得分,游戲結(jié)束時將給出最終得分。
3 實驗驗證
    用戶控制系統(tǒng)的實驗樣機為上海理工大學自行研制的3自由度中央驅(qū)動式上肢康復(fù)機器人[10]。樣機的機械部分與底層動力控制部分不在此論述。為了驗證嵌入式用戶控制系統(tǒng)的性能,設(shè)置實驗場景如下:(1)在設(shè)備控制中心界面設(shè)置機器人單關(guān)節(jié)運動參數(shù),利用傳感器采集驅(qū)動電機角速度、角位移,在參數(shù)輸出面板繪制曲線。(2)在主動訓練模式下進行康復(fù)訓練游戲。
    首先使用嵌入式用戶控制中斷在設(shè)備控制中心界面將肘關(guān)節(jié)的速度設(shè)置為300 r/min,運動范圍上下限設(shè)置為-800°~+800°。點擊運行按鈕使肘關(guān)節(jié)對應(yīng)電機旋轉(zhuǎn),觀察實驗過程中角速度的變化情況。電機從靜止開始加速旋轉(zhuǎn)至設(shè)定值300 r/min時,觀察到設(shè)備控制中心繪制的角速度曲線如圖5所示。從圖中的角速度曲線可看出,電機角速度從0加速至300 r/min用時0.1 s。圖中顯示的加速時間還需考慮數(shù)據(jù)傳輸、軟件分析的時間,其真正代表的是兩個角速度數(shù)據(jù)采集點的時間差,而不是實際意義上的0.1 s,當然,由于底層動力系統(tǒng)及用戶控制系統(tǒng)處理性能較強,這個時間差僅會稍微超過0.1 s。

    經(jīng)實驗驗證,系統(tǒng)能夠?qū)訖C機械臂的運動速度、活動范圍等參數(shù)進行及時響應(yīng)并實現(xiàn)實時調(diào)正,并可將具體的一個自由度上的角速度或角位移參數(shù)通過曲線方式在面板上描繪。在底層動力控制系統(tǒng)運行在正常工作狀態(tài)的條件下,設(shè)定參數(shù)與反饋參數(shù)匹配度較好,并能實現(xiàn)由患者帶動機械臂主動運動進行康復(fù)訓練游戲。
    本文通過深入研究嵌入式Linux系統(tǒng)的原理與使用,以 mini210開發(fā)板為硬件平臺完成了一套應(yīng)用于上肢康復(fù)訓練的嵌入式用戶控制系統(tǒng)的設(shè)計,實現(xiàn)了使用觸屏終端無線控制上肢康復(fù)訓練機器人的運行,并可在終端實時顯示關(guān)節(jié)的角速度、角位移的參數(shù)。同時設(shè)計了名為“反彈球”的康復(fù)訓練小游戲,允許患者操作系統(tǒng)樣機來控制游戲,有助于提高其參與興趣,使其主動完成訓練任務(wù)。控制系統(tǒng)具備智能化的人機交互方式,允許醫(yī)護人員通過設(shè)定機械臂的各項運動參數(shù)來制定量化的康復(fù)訓練計劃,并實現(xiàn)了醫(yī)生與患者之間的遠程溝通以及醫(yī)生與機器、患者與機器間的遠程控制,增強患者對整個康復(fù)訓練過程的參與程度。
參考文獻
[1] 劉學文,陳書江,楊麗,等.關(guān)節(jié)活動度維持及步行訓練對腦卒中偏癱患者肌力的影響[J].中國臨床康復(fù),2003,7(5):802-802.
[2] 李慶玲,孫立寧,杜志江.上肢康復(fù)機器人發(fā)展現(xiàn)狀的分析與研究[J].機械設(shè)計,2008,25(09):1-3.
[3] LUM P S,BURGAR C G,SHOR P C,et al.Robot-assisted movement training compared with conventional therapy techniques for the rehabilitation of upper-limb motor function after stroke[J].Arch.Phys.Med.Rehabil,2002,83(7):952-959.
[4] ABDULLAH H A,TARRY C,DATTA R,et al.Dynamic biomechanical model for assessing and monitoring robotassisted upper-limb therapy[J].J.Rehabil Res.Dev.,2007,44(1):43-62.
[5] 周杰,陳偉海,于守謙.基于ARM的嵌入式系統(tǒng)在機器人控制系統(tǒng)中的應(yīng)用[J].機器人技術(shù),2007,23(01-02):271-274.
[6] CORBET J,RUBIN A,KROAH H.Linux設(shè)備驅(qū)動程序(第3版)[M].北京:中國電力出版社,2005.
[7] 陳鯤,陳云秋,劉信新.基于Qt/Embedded的嵌入式Linux應(yīng)用程序的設(shè)計[J].計算機與數(shù)字工程,2009,37(1):156-161.
[8] 劉治國,陳新華.基于Linux和Qt的智能家居系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(4):23-26.
[9] QBall a simple Breakout clone for Windows and Linux[EB/OL].(2013-xx)[2014-01].http://freecode.com/projects/qball.
[10] 簡卓,易金花,顧余輝,等.索控式三自由度上肢康復(fù)訓練機器人[J].中國康復(fù)理論與實踐,2013,19(1):82-85.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。