□沈麗云 □尹孟征 □郭鳳仙 □嚴(yán)佳玲 □劉 鵬
上海電氣集團股份有限公司 中央研究院 上海 200070
基于Android的康復(fù)醫(yī)療機器人控制系統(tǒng)設(shè)計與實現(xiàn)
□沈麗云□尹孟征□郭鳳仙□嚴(yán)佳玲□劉鵬
上海電氣集團股份有限公司 中央研究院上海200070
康復(fù)醫(yī)療機器人多采用固定模式的專用控制系統(tǒng),缺少靈活性。以當(dāng)前研究的上肢康復(fù)醫(yī)療機器人樣機為實驗對象,分析并抽象出了控制系統(tǒng)的特點及功能,提出了一種基于Android平臺的無線控制系統(tǒng),明確了功能需求及系統(tǒng)架構(gòu)。控制系統(tǒng)由Android系統(tǒng)及WIFI轉(zhuǎn)換器模塊等組成,通過微弱肌電信號、語音或者既定軌跡實現(xiàn)對機器人速度及方向的控制。測試結(jié)果表明,該系統(tǒng)能夠穩(wěn)定實現(xiàn)既定功能,具有較強的靈活性、通用性、穩(wěn)定性及易用性。
目前,康復(fù)醫(yī)療機器人得到了極大推崇,國內(nèi)外均將其作為重點研究課題。雖然康復(fù)醫(yī)療機器人具有良好發(fā)展前景,但自機器人誕生以來,控制方面基本都采用專用設(shè)備及系統(tǒng),其昂貴的費用及專用性在一定程度上限制了機器人技術(shù)的發(fā)展。此外,這些設(shè)備不便攜帶,在使用范圍上受到一定限制[1]。
隨著計算機技術(shù)的不斷發(fā)展及智能移動互聯(lián)網(wǎng)進入全新時代,原來只能在計算機平臺進行處理的工作現(xiàn)在可以轉(zhuǎn)移到智能終端上來完成。智能手機這類通用設(shè)備,為開發(fā)通用便攜、控制自然靈活、具有良好用戶體驗的機器人控制系統(tǒng)提供了一種有效手段[2]。尤其在康復(fù)醫(yī)療領(lǐng)域,基于移動終端的無線控制大大增加了康復(fù)設(shè)備的靈活性及對活動場地的適應(yīng)性。在智能手機終端操作系統(tǒng)中,目前發(fā)展具代表性的是谷歌公司推出的安卓(Android)系統(tǒng),眾多公司、企業(yè)及政府部門均支持基于Android系統(tǒng)的手機服務(wù),紛紛開發(fā)具有高實用價值的Android軟件[3-4]。當(dāng)前,基于移動智能終端的控制在康復(fù)醫(yī)療機器人應(yīng)用方面相對較少,筆者論述了硬件系統(tǒng)的設(shè)計及Android系統(tǒng)開發(fā)方法,并通過實驗驗證了基于無線保真(WIFI)康復(fù)醫(yī)療機器人的無線控制概念。
1.1系統(tǒng)分析
該系統(tǒng)需要滿足的基本需求是采用手機、平板電腦等移動終端,實現(xiàn)對康復(fù)醫(yī)療機器人的無線控制及狀態(tài)顯示,主要功能如下。
(1)用戶信息注冊及登錄功能;
(2)通過移動終端,與上肢康復(fù)機器人建立基于套接字(Socket)的網(wǎng)絡(luò)通信,并實現(xiàn)控制指令的發(fā)送及運行狀態(tài)的接收等;
(3)參數(shù)設(shè)置功能;
(4)控制康復(fù)醫(yī)療機器人本體,實現(xiàn)肩關(guān)節(jié)、肘關(guān)節(jié)3自由度欠驅(qū)動功能;
(5)實現(xiàn)語音控制、肌電控制及軌跡控制3種控制模式;
(6)語音控制模式下,實現(xiàn)肩向上、肩向下、肘彎曲、肘伸展4種基本動作及其組合動作;
(7)肌電控制模式下,通過采集使用者前臂及上臂的微弱肌電信號,實現(xiàn)對機器人動作的控制;
(8)軌跡控制模式下,通過對上肢康復(fù)過程的分析,實現(xiàn)6條基本康復(fù)訓(xùn)練軌跡;
(9)實現(xiàn)狀態(tài)顯示,包括肩關(guān)節(jié)信號采集板、肩關(guān)節(jié)驅(qū)動器、肩關(guān)節(jié)驅(qū)動器編碼器信息、肘關(guān)節(jié)信號采集板、肘關(guān)節(jié)驅(qū)動器、肘關(guān)節(jié)驅(qū)動器編碼器信息、主控制芯片運行時間等7種狀態(tài)信息。
根據(jù)上述系統(tǒng)功能分析,本系統(tǒng)需建立用戶登錄、參數(shù)設(shè)置及狀態(tài)顯示等3個功能模塊,系統(tǒng)功能框圖如圖1所示。
1.2整體結(jié)構(gòu)設(shè)計
本康復(fù)醫(yī)療機器人的控制系統(tǒng)包括上位機及下位機兩方面,上位機為通過Eclipse平臺設(shè)計、開發(fā)的基于Android操作系統(tǒng)的移動終端用應(yīng)用程序,下位機為具有WIFI功能的上肢康復(fù)醫(yī)療機器人。上位機通過WIFI建立與下位機之間的通信,進而實現(xiàn)對康復(fù)醫(yī)療機器人的無線控制。整體系統(tǒng)結(jié)構(gòu)如圖2所示。
2.1硬件設(shè)計
根據(jù)系統(tǒng)功能分析,硬件系統(tǒng)主要包括主控模塊、肩關(guān)節(jié)電機驅(qū)動、肘關(guān)節(jié)電機驅(qū)動、WIFI模塊、信號采集模塊及電源模塊,如圖3所示。以下對各模塊的設(shè)計進行介紹:

圖1 系統(tǒng)功能框圖

圖3 硬件設(shè)計框圖
(1)主控模塊。采用工業(yè)級雙核處理控制芯片F(xiàn)28M35,該處理器有高達128 KB的片上隨機存儲器(RAM)。
(2)肩關(guān)節(jié)電機驅(qū)動及肘關(guān)節(jié)電機驅(qū)動。采用上海開通數(shù)控有限公司的低壓超小型交流伺服驅(qū)動系統(tǒng)KT260-A-0818,可驅(qū)動功率400 W以下、電壓24~80 V的電機。
(3)WIFI模塊。采用深圳宇泰科技有限公司的UT-9061型模塊,該設(shè)備能夠?qū)崿F(xiàn) WIFI轉(zhuǎn)RS232/485/422,最大傳輸距離可達300 m。
(4)信號采集模塊。信號采集模塊所用芯片為ATMEGA16A型,能夠?qū)崿F(xiàn)肌電信號及語音信號的實時采集。
(5)電源模塊。驅(qū)動器需要24 V供電,信號采集模塊需要7.6 V供電,主控制板需要5 V供電。
2.2 Android移動終端軟件設(shè)計
2.2.1原型圖設(shè)計
原型圖設(shè)計主要是對項目技術(shù)結(jié)構(gòu)的構(gòu)思,為進一步的詳細設(shè)計給出更加精確的設(shè)計步驟及項目進度的預(yù)估[5]。由圖1可知,該控制軟件共分為3部分:用戶登錄,參數(shù)設(shè)置,狀態(tài)顯示。
(1)用戶登錄。在程序啟動的時候,進入啟動界面,用于展示開發(fā)單位的標(biāo)志及開發(fā)者信息等。
一定延時后進入說明界面,該界面說明了用戶在使用該軟件時需要獲取的信息,包括網(wǎng)際協(xié)議(IP)地址、端口、用戶名、密碼。
點擊進入連接界面,建立與服務(wù)端的連接,以實現(xiàn)基于 Socket的 WIFI通信,當(dāng)前 IP地址為10.10.100.254,協(xié)議端口為8899。
點擊進入用戶登錄界面,首次使用時需通過點擊“注冊新用戶”按鈕進入注冊界面,非首次使用直接輸入用戶名及密碼,點擊“登錄”即可進入主控制模式。
(2)參數(shù)設(shè)置。參數(shù)設(shè)置頁面用于設(shè)置樣機參數(shù),包括用戶參數(shù)、系統(tǒng)參數(shù)及開發(fā)參數(shù)。
用戶參數(shù)包括模式切換(語音、肌電、軌跡3種控制模式)、軌跡選擇(由開發(fā)人員根據(jù)不同康復(fù)階段設(shè)定的6條軌跡)及肌電觸發(fā)閾值(當(dāng)肌電信號的采樣值大于該閾值時才會動作)。
系統(tǒng)參數(shù)包括肩關(guān)節(jié)機械角度及對應(yīng)的電機脈沖數(shù)、肘關(guān)節(jié)機械角度及對應(yīng)的電機脈沖數(shù)。
開發(fā)參數(shù)包括康復(fù)機型的選擇。針對不同的用戶群體,分為經(jīng)濟型和高端型兩種。
(3)狀態(tài)顯示。狀態(tài)顯示采用側(cè)邊欄設(shè)計,通過右滑顯示,顯示狀態(tài)包括肩關(guān)節(jié)信號采集板狀態(tài)(0為正常,其余為有錯)、肩關(guān)節(jié)驅(qū)動器狀態(tài)(0為正常,其余為有錯)、肩關(guān)節(jié)驅(qū)動器編碼器信息、肘關(guān)節(jié)信號采集板狀態(tài)(0為正常,其余為有錯)、肘關(guān)節(jié)驅(qū)動器狀態(tài)(0為正常,其余為有錯)、肘關(guān)節(jié)驅(qū)動器編碼器信息、主控制芯片運行時間(min)。
2.2.2流程圖設(shè)計
根據(jù)系統(tǒng)功能需求,明確本系統(tǒng)中軟件設(shè)計基本流程如圖4所示,其中主要難點在于建立基于WIFI的Socket連接、用戶注冊及圖形化顯示。

圖4 軟件設(shè)計流程圖
(1)建立基于WIFI的Socket連接[6]。首先,在工程的AndroidManifest.xml文件中增加WIFI權(quán)限:<uses-permissionandroid:name="android.permission. CHANGE_WIFI_STATE"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
然后,輸入當(dāng)前IP地址和端口,建立Socket連接,并通過DataInputStream及DataOutputStream實現(xiàn)數(shù)據(jù)的通信:
socket=newSocket(IP,Port);//建立Socket連接
DataOutputStream out=new OutputStream(socketRev.
getOutputStream());
out.write(readCom);
out.flush();//數(shù)據(jù)發(fā)送
DataInputStream in=new DataInputStream(socketRev. getInputStream());
byte[]revData=newbyte[in.available()];
in.read(revData);//數(shù)據(jù)接收
(2)用戶注冊。SQLite作為一種輕量級的關(guān)系型數(shù)據(jù)庫,具有體積小、零配置等優(yōu)勢[7],因此本系統(tǒng)采用SQLite進行信息存儲。
首先,創(chuàng)建抽象類SQLiteOpenHelper的子類MySQLiteOpenHelper,實現(xiàn)其onCreate方法,并在該方法中初始化數(shù)據(jù)庫及相關(guān)字段。
Publicclass MySQLiteOpenHelper extends
SQLiteOpenHelper{public MySQLiteOpenHelper(Context context,String name,CursorFactory cursor,int version){super(context,name,cursor,version);}
public void onCreate(SQLiteDatabase db){db.execSQL("CREATE TABLE usertable (username text primary key,password text,age integer,birthday text,teleress text,address text,illness text)");}}
其次,創(chuàng)建并打開數(shù)據(jù)庫。
mySQLiteOpenHelper=new MySQLiteOpenHelper(this,"userinformation.db",null,1);
mydb=mySQLiteOpenHelper.getReadableDatabase();
最后,通過Android API提供的方法添加數(shù)據(jù)。
ContentValues cv=newContentValues();
cv.put("username",username);
mydb.insert("usertable",null,cv);
(3)圖形化顯示。使用第三方類庫achartengine繪制折線圖。
首先,添加achartengine-1.2.0.jar至工程,然后,通過achartengine實現(xiàn)直線圖的繪制。
chartShoulder=ChartFactory.getTimeChartView(this,getDateDemoDataset(),getDemoRenderer(),"hh:mm:ss");
2.3系統(tǒng)測試
本測試系統(tǒng)包括移動終端用應(yīng)用SERobot、WIFI轉(zhuǎn)換器及機器人本體,搭建的上肢康復(fù)醫(yī)療機器人本體如圖5所示。

圖5 上肢康復(fù)醫(yī)療機器人實物圖
(1)打開應(yīng)用SERobot,搜索WIFI,建立基于Socket的無線連接;
(2)用戶登錄后,進行參數(shù)設(shè)置;
(3)進行語音、肌電、軌跡3種控制模式測試,并觀察顯示狀態(tài)與數(shù)據(jù)。
經(jīng)過多次實驗測試,結(jié)果表明,該控制系統(tǒng)能夠穩(wěn)定實現(xiàn)基于WIFI的無線控制(包括語音控制、肌電控制及軌跡控制),控制康復(fù)醫(yī)療機器人本體實現(xiàn)肩關(guān)節(jié)、肘關(guān)節(jié)3自由度欠驅(qū)動功能,同時將數(shù)據(jù)實時反饋至Android客戶端,操作簡單,界面清晰,響應(yīng)靈敏,人機交互體驗良好,系統(tǒng)的性能測試指標(biāo)見表1。
Android客戶端顯示的主控制界面效果如圖6所示。
研究設(shè)計并實現(xiàn)了一種基于Android平臺的康復(fù)醫(yī)療機器人控制系統(tǒng),分析了控制系統(tǒng)的功能需求,建立了系統(tǒng)的整體架構(gòu),分別設(shè)計了系統(tǒng)硬件和軟件部分,并重點分析了建立基于WIFI的Socket連接、用戶注冊及圖形化顯示三部分。測試結(jié)果表明,該系統(tǒng)成功應(yīng)用于上肢康復(fù)醫(yī)療機器人中,實現(xiàn)了機器人的無線控制。此外,該無線控制技術(shù)具有較強的靈活性、通用性及穩(wěn)定性,可應(yīng)用于農(nóng)業(yè)機器人、家用機器人等,具有廣泛的發(fā)展前景。

表1 系統(tǒng)性能測試指標(biāo)

圖6 上位機主控制界面效果圖
[1]吳永琢.基于3G網(wǎng)絡(luò)機器人平臺的研究與設(shè)計[J].制造業(yè)自動化,2012,34(8):99-101.
[2]詹成國,朱偉,徐敏.基于Android的測控裝置人機界面的設(shè)計與開發(fā)[J].電力自動化設(shè)備,2012,32(1):119-122.
[3]林明標(biāo),莫金海.基于安卓手機的無線重力感應(yīng)控制智能小車[J].計算機測量與控制,2015,23(4):1175-1178.
[4]冀龍濤.基于Android手機的家用機器人控制技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[5]eoe移動開發(fā)者社區(qū).Android開發(fā)入門與實戰(zhàn)[M].2版.北京:人民郵電出版社,2013.
[6]邁克爾·卡爾弗特,肯尼恩·多納霍.Java TCP/IP Socket編程(原書第2版)[M].周恒民,譯.北京:機械工業(yè)出版社,2009.
[7] 格蘭特·艾倫,邁克·歐文斯.SQLite權(quán)威指南[M].2版.楊謙,劉義宣,謝志強,譯.北京:電子工業(yè)出版社,2012.
Most rehabilitation medical robot usually adopts dedicated control system with fixed mode that is lack of flexibility.A medical robotic prototype for upper limb rehabilitation under current research was taken as an experimental subject to analyze and abstract the characteristics and functions of the control system and put forward an Android-based wireless control system of which functional requirements and system architecture are defined.Control systemconsists of the Android system and WIFI converter modules.It uses weak muscle signals,voice or preselect path tocontrol the speed and direction ofthe robot.The test results showthat the system is stable toachieve the stated functions with strong flexibility,versatility,stability and is ease touse.
安卓;無線局域網(wǎng);套接字;康復(fù)醫(yī)療機器人
Android;Wireless Lan;Socket;MedicalRobot for Rehabilitation

TP242
A
1672-0555(2016)01-037-05
2015年11月
沈麗云(1989—),女,碩士,主要從事康復(fù)醫(yī)療機器人控制系統(tǒng)及人機交互的研究