国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Node.JS的遠程實時虛擬康復訓練系統(tǒng)研究

2016-09-18 01:57:32王清波朱雋典胡志奇王琳斌
中國醫(yī)學裝備 2016年8期
關鍵詞:服務器端瀏覽器藍牙

王清波 虞 成 朱雋典 胡志奇 袁 杰 王琳斌

基于Node.JS的遠程實時虛擬康復訓練系統(tǒng)研究

王清波①虞 成①朱雋典①胡志奇①袁 杰①王琳斌①

目的:建立遠程實時虛擬康復訓練監(jiān)控系統(tǒng),利用虛擬現(xiàn)實的視覺等反饋機制,幫助醫(yī)生及時了解患者現(xiàn)狀并指導下一步康復,便于患者在離院康復過程中接收醫(yī)生專業(yè)化評價。方法:通過Node.JS和Socket.io構建遠程實時數(shù)據(jù)傳輸系統(tǒng),服務器端采用彎曲傳感器測量手指彎曲程度,利用串口通過藍牙模塊傳輸數(shù)據(jù),從而構建無線數(shù)據(jù)手套。同時利用Node.JS構建服務器,使用node-serial port接收串口數(shù)據(jù),并使用Socket.io建立遠程實時連接??蛻舳瞬捎弥С諻ebSocket的Mozilla Firefox瀏覽器,采用網(wǎng)頁形式登錄服務器,接收遠程實時數(shù)據(jù)。通過jUART模塊將數(shù)據(jù)以串口形式發(fā)送,虛擬手模型單元接收串口形式數(shù)據(jù),數(shù)據(jù)提取后用于控制虛擬手。結果:通過Node.JS建立了穩(wěn)定的遠程實時數(shù)據(jù)傳輸,可以將彎曲傳感器數(shù)據(jù)準確傳輸,以控制不同地域下的三維虛擬手模型。結論:構建一套基于Node.JS的遠程實時虛擬康復訓練監(jiān)控系統(tǒng),用于離院后患者脫離醫(yī)生指導下的手部運動康復。結論:遠程實時虛擬康復訓練系統(tǒng)可構建一套基于無線式數(shù)據(jù)手套的虛擬手控制系統(tǒng),能夠有效用于患者的手部運動康復。

彎曲傳感器;虛擬現(xiàn)實;手模型;康復

[First-author's address] Department of Medical Equipment, Hangzhou First People’s Hospital, Hangzhou 310006,China.

有研究顯示,目前在美國和歐洲腦卒中是導致成人卒中后殘疾的首因,且為世界范圍內第二大死因[1]。隨著世界人口逐步老齡化,腦卒中疾病將造成極大的社會負擔,而此種情況在發(fā)展中國家將會更為嚴重[2]。迫于患者家庭經(jīng)濟承擔能力的限制,多數(shù)中風患者在醫(yī)院里進行初步的康復治療之后則立即回到家中進行下步康復進程。因此,有效和低成本的家庭遠程康復就顯得尤為重要。對于患者而言,在家庭康復中的重要問題是無法與醫(yī)生進行有效溝通和交互。為此,本研究設計遠程實時傳輸數(shù)據(jù)系統(tǒng)平臺,通過實現(xiàn)遠程虛擬康復訓練系統(tǒng)的引進,以解決患者通過遠程醫(yī)療在家庭康復的問題。

1 基于Node.JS的遠程實時虛擬康復訓練監(jiān)控系統(tǒng)

實現(xiàn)遠程康復訓練的虛擬交互平臺,即設計能夠遠程實時傳輸數(shù)據(jù)的系統(tǒng)平臺,在測量手指活動角度的數(shù)據(jù)手套基礎上,將患者端數(shù)據(jù)遠程傳輸至醫(yī)生端;然后結合基于網(wǎng)頁的IO讀取技術,利用現(xiàn)有虛擬手訓練,以有效地跟蹤患者手的運動。

遠程虛擬康復訓練監(jiān)控系統(tǒng)包括患者端和醫(yī)生端,將患者數(shù)據(jù)手套測量的數(shù)據(jù)遠程傳輸?shù)结t(yī)生端。由于在常規(guī)情況下患者所處的網(wǎng)絡多為家用網(wǎng)絡,醫(yī)生所處多為醫(yī)院公共網(wǎng)絡下的子節(jié)點,網(wǎng)絡屬于不同的IP段下,無法通過IP直接通訊,故采用通過花生殼申請域名,對動態(tài)域名進行解析的方法,保證系統(tǒng)平臺的通用性。在系統(tǒng)中數(shù)據(jù)平臺部分主要包括服務器設計、實時數(shù)據(jù)通訊模塊和虛擬手模型3部分。其中服務器端負責接收數(shù)據(jù)手套采集的串口數(shù)據(jù),實時數(shù)據(jù)通訊模塊負責服務器端與客戶端之間的實時數(shù)據(jù)傳輸,并將網(wǎng)絡接收的數(shù)據(jù)以串口形式發(fā)送至虛擬手模型單元(如圖1所示)。

1.1服務器設計

1.1.1數(shù)據(jù)手套設計

為檢測手指關節(jié)彎曲角度,許多商用的數(shù)據(jù)手套使用彎曲傳感器(Flex-Sensor),如Nintendo Power數(shù)據(jù)手套。彎曲程度越高,電阻值越大[7]。本研究使用彎曲傳感器作為康復患者手指彎曲角度的測量輸入源。

通過串接角度傳感器電阻,測量角度傳感器的電壓,將其連接到電壓跟隨電路。手指的角度變化通過彎曲傳感器測量后,經(jīng)過分壓電路,跟隨電路經(jīng)STC12C5A60S2的P1口進行AD采集。采集手指角度變化信息后采用藍牙短距離無線通信技術將數(shù)據(jù)傳輸至電腦進行網(wǎng)絡傳輸。藍牙模塊使用HC-05藍牙串口套件,其使用CSR主流藍牙芯片,藍牙V2.0協(xié)議標準[8-9]。

STC12C5A60S2芯片采樣精度為10比特,每組數(shù)據(jù)共5個手指,平均采樣5次,加一組測試數(shù)據(jù),共6組數(shù)據(jù)打文件包傳輸。數(shù)據(jù)格式采用文件包頭+ 6組數(shù)據(jù)區(qū)(手指號+高位數(shù)據(jù)+低位數(shù)據(jù))+文件包尾的形式。在實際使用Node.JS中,利用ASCII碼傳輸,數(shù)據(jù)更直觀有效。文件包頭與文件包尾數(shù)據(jù)采用48~57的阿拉伯數(shù)字,有關手指關節(jié)信息,每個關節(jié)10位數(shù)據(jù),分拆為高位數(shù)據(jù)6位與低位數(shù)據(jù)4位,分別在串口數(shù)據(jù)發(fā)送時加至8位。數(shù)據(jù)轉換為ASCII碼區(qū)64~127的數(shù)據(jù)段和64~79的數(shù)據(jù)段。數(shù)據(jù)由客戶端接收,在控制虛擬手時,轉換為實時數(shù)據(jù)。

1.1.2基于Node.JS的數(shù)據(jù)采集服務器設計

Node.JS是一個開放源代碼,其為跨平臺的、可用于服務器端和網(wǎng)絡應用的運行環(huán)境,Node.JS應用JavaScript語言寫成。Node帶來的高性能I/O用于實時應用,Voxer將Node應用在實時語音上,國內騰訊的朋友網(wǎng)將Node應用在長連接中,以提供實時功能,花瓣網(wǎng)及蘑菇街等公司通過socket.io實現(xiàn)實時通知的功能[10]。

圖1 遠程實時虛擬康復訓練監(jiān)控系統(tǒng)設計圖

為了能夠實時讀取藍牙模塊接收的USB轉串口數(shù)據(jù),需引入SerialPort模塊,而node-serialport 是Node.JS的數(shù)據(jù)包,用來對串口數(shù)據(jù)進行讀寫操作,如“var SerialPort=require(“serialport”). SerialPort”。由于接收到的為串口數(shù)據(jù)流,在函數(shù)serialPort.on'data', function(data)中對串口數(shù)據(jù)進行獲取并按格式進行分包。

1.2實時數(shù)據(jù)通訊模塊

1.2.1基于瀏覽器的實時數(shù)據(jù)傳輸

通常,瀏覽器訪問網(wǎng)頁時,會向頁面所在的服務器發(fā)送一個HTTP請求,Web服務器確認請求并向瀏覽器發(fā)回響應。在許多情況下,返回的信息到達瀏覽器顯示頁面已經(jīng)過時。由于遠程實時數(shù)據(jù)傳輸是本系統(tǒng)設計的核心,采用Websocket規(guī)范。傳統(tǒng)的WebSocket是HTML5的一種新通信協(xié)議,其實現(xiàn)了瀏覽器與服務器之間的雙向通訊[11]。

而Socket.io是一個完全由JavaScript實現(xiàn)、基于Node.JS、支持WebSocket的協(xié)議用于實時通信以及跨平臺的開源框架,包括了客戶端的JavaScript和服務器端的Node.JS。Socket.io設計的目標為構建能夠在不同瀏覽器和移動設備上良好運行的實時分析系統(tǒng)、二進制流數(shù)據(jù)處理應用、在線聊天室、在線客服系統(tǒng)、評論系統(tǒng)及WebIM系統(tǒng)等。目前,Socket. io已經(jīng)支持主流PC瀏覽器(如IE、Safari、Chrome、Firefox、Opera等)和移動平臺上的瀏覽器(iOS平臺下的Safari、Android平臺下的基于Webkit的瀏覽器等)。

在服務器端,經(jīng)過安裝Socket.io模塊后,在Node.JS程序中引入該模塊:

io =require('socket.io').listen(server)

在客戶端連接,身份識別核對后,開始傳輸串口數(shù)據(jù)

socket.emit('newMsg', socket.name,SerialData, mycolor);

在客戶器端,index.html主頁插入javascript腳本,引入socket.io模塊

<script src="/socket.io/socket.io.js"></ script>

同時自行編寫腳本引入,<script src="scripts/ VirHand.js"></script>

從網(wǎng)頁上接收服務器端推送的實時數(shù)據(jù)

this.socket.on('newMsg', function(user,msg, color)

1.2.2基于jUART的數(shù)據(jù)串口傳輸

基于瀏覽器的數(shù)據(jù)獲取后,需以串口形式將數(shù)據(jù)轉發(fā)至虛擬手操作單元,但在采用瀏覽器模式下,對客戶端硬件I/O的操作比較受限。本系統(tǒng)中采用jUART系統(tǒng)平臺,可以在瀏覽器上進行JavaScript框架下的串口通訊[12]。直接引用該平臺下的相關函數(shù),進行串口通訊,其中recv為接收到串口數(shù)據(jù)時的回調函數(shù)。

1.3虛擬手模型

OpenSceneGraph(簡稱OSG)是開源的高性能三維圖形開發(fā)包,使用OpenGL技術開發(fā),是一套基于C++平臺的應用程序接口(application program interface,API),能夠讓程序員更加快速、便捷地創(chuàng)建高性能、跨平臺的交互式圖形程序,并可廣泛應用于可視化仿真、游戲、虛擬現(xiàn)實、科學計算、三維重建、地理信息、太空探索以及石油礦產等領域[13]。

本研究沿用前期研究的虛擬手OSG模型(部分采用浙江大學求是高等研究院設計的虛擬手)作為展示模型,提供作為患者的手部反饋[14]。在利用遠程數(shù)據(jù)控制虛擬手時,可識別48~57的文件包頭和文件包尾數(shù)據(jù),截取中間位于≥64數(shù)據(jù)區(qū)的數(shù)據(jù),分別減去64后轉換為手指信號+高位數(shù)據(jù)(6位)+低位數(shù)據(jù)(4位)的形式,組合后數(shù)據(jù)用于虛擬手控制,如圖2所示。

圖2 虛擬手模型圖

2 遠程實時虛擬康復訓練監(jiān)控系統(tǒng)應用

2.1服務器端

服務器端包含無線數(shù)據(jù)手套和遠程數(shù)據(jù)傳輸部分。

2.1.1無線數(shù)據(jù)手套

開機上電后自動檢測手指關節(jié)彎曲角度,按照10 Hz/s速度傳輸數(shù)據(jù)。藍牙模塊上電后自動連接,通過串口檢測、接收數(shù)據(jù),并有效傳輸數(shù)據(jù)。彎曲傳感器采用粘合的方式固定在手套上,數(shù)據(jù)手套佩戴舒適。

2.1.2遠程數(shù)據(jù)傳輸

通過node-serialport有效接收、檢測串口數(shù)據(jù)格式后實時發(fā)布數(shù)據(jù)。服務器端利用1~60循環(huán)數(shù)進行數(shù)據(jù)發(fā)送測試,無線數(shù)據(jù)為每秒1組,數(shù)據(jù)格式采用文件包頭+手指序號+數(shù)據(jù)+文件包尾,其中6號序號手指(測試數(shù)據(jù)組)數(shù)據(jù)利用與時間相關的循環(huán)數(shù)替代。服務器與客戶端分別放置于家庭網(wǎng)絡和醫(yī)院辦公網(wǎng)絡,測試前兩地時間與北京時間對齊,客戶端后臺查看數(shù)據(jù)接收,接收時間相較本地時間無明顯延遲(時間延遲<1 s)。

2.2客戶端控制

客戶端部分采用網(wǎng)頁作為數(shù)據(jù)傳輸中介,加載jUART模塊。當通過網(wǎng)頁遠程登錄服務器時,可實時接收服務器傳輸?shù)臄?shù)據(jù),并通過串口模塊將數(shù)據(jù)發(fā)送到虛擬手模型。虛擬手模型可有效接收串口數(shù)據(jù),并實時顯示出該數(shù)據(jù),客戶端接收串口數(shù)據(jù)后直接控制虛擬手,無網(wǎng)絡所引致的延遲,虛擬手控制能夠連續(xù)和穩(wěn)定進行。

3 結論

本研究通過Node.JS和Socket.io來構建遠程實時數(shù)據(jù)傳輸系統(tǒng),服務器端完成手指彎曲數(shù)據(jù)采集和遠程實時數(shù)據(jù)推送,客戶端部分完成數(shù)據(jù)獲取和虛擬手模型控制。服務器端采用彎曲傳感器測量手指彎曲程度,轉換成模擬信號后輸入至芯片(STC12C5A60S2)的AD采集單元,并轉換為數(shù)字量然后利用串口通過藍牙模塊傳輸數(shù)據(jù),從而達到構建無線數(shù)據(jù)手套的目的。同時,通過“花生殼”申請域名,利用Node. JS構建服務器,使用node-serialport接收串口數(shù)據(jù),使用Socket.io建立遠程實時連接;客戶端支持WebSocket的Mozilla Firefox,采用網(wǎng)頁形式登錄服務器,實現(xiàn)接收遠程實時數(shù)據(jù)。通過jUART模塊將數(shù)據(jù)以串口形式發(fā)送,虛擬手模型單元接收串口形式數(shù)據(jù),數(shù)據(jù)提取后用于控制虛擬手。該系統(tǒng)穩(wěn)定可靠,能夠達到預期的設計技術要求,可為患者提供帶視覺反饋的自主康復訓練平臺。

[1]Feigin VL.Stroke epidemiology in the developing world[J].Lancet,2005,365(9478):2160-2161.

[2]Donnan GA,F(xiàn)isher M,Macleod M,et al. Stroke[J].Lancet,2008,371(9624):1612-1623.

[3]李海麗,謝叻,魏盛凱,等.手功能康復機器人技術[J].機械設計與研究,2014,30(1):24-28.

[4]Lukas Z,Mario J,Lar S,et al.Increasing patient engagement during virtual realitybased motor rehabilitation[J].Arch Phys Med Rehabil,2013,94(9):1737-1746.

[5]Wang CY,Hwang WJ,F(xiàn)ang JJ,et al. Comparison of virtual reality versus physical reality on movement characteristics of persons with Parkinson's disease:effects of moving targets[J].Arch Phys Med Rehabil,2011,92(8):1238-1245.

[6]Resnik L,Meucci MR,Lieberman-Klinger S,et al. Advanced upper limb prosthetic devices:implications for upper limb prosthetic rehabilitation[J].Arch Phys Med Rehabil,2012,93(4):710-717.

[7]Ibarra Zannatha JM,Tamayo AJ,Sánchez AD,et al.Development of a system based on 3D vision,interactive virtual environments,ergonometric signals and a humanoid for stroke rehabilitation[J].Comput Methods Programs Biomed,2013,112(2):239-249.

[8]樊銳,李茹,王績一.藍牙/ZigBee無線網(wǎng)絡傳輸系統(tǒng)的設計與實現(xiàn)[J].內蒙古大學計算機學院,2013,23(1):209-213.

[9]陳鵬展,祝振敏.基于環(huán)境光能量收集的低功耗藍牙傳感器[J].儀表技術與傳感器,2014(2):4-10.

[10]樸靈.深入淺出Node.JS[M].北京:人民郵電出版社,2013:163-164.

[11]Vanessa W,F(xiàn)rank S,Peter M.HTML WebSocket權威指南[M].北京:機械工業(yè)出版社,2014:7-9.

[12]龔君佐.78例手部屈肌肌腱斷裂修復術的臨床療效分析[J].醫(yī)藥衛(wèi)生(全文版),2015(11):93.

[13]楊曉,廉靜靜,張新宇.基于OSG的虛擬場景中包圍盒碰撞檢測的研究[J].計算機技術與發(fā)展,2011,21(9):32-38.

[14]王清波,虞成.基于無線式數(shù)據(jù)手套的虛擬手控制系統(tǒng)研究[J].中國醫(yī)學裝備,2015,14(12):35-37.

[15]李懿,陸光明,金帥,等.手部精細運動獲取缺損數(shù)據(jù)修復方法[J].浙江大學學報,2013,47(6):925-956.

Research of a remote real-time virtual rehabilitation training system based on Node.JS/

WANG Qing-bo, YU Cheng, ZHU Juan-dian, et al//
M China Medical Equipment,2016,13(8):7-10.

Objective: To establish a remote real-time virtual rehabilitation training system by using vision feedback mechanism of virtual reality, help doctors to understand the status of patients in time and facilitate patients to receive doctors’ professional evaluation in the process of rehabilitation out of hospital. Methods: A remote real-time virtual rehabilitation training system was established by Node-JS and Socket.io. The part of server collected the bending angle of finger based on bending sensor and used the serial port to transmit data by blue-tooth, and then the wireless data glove was established. The server was established by Node.JS, using the module of node-serial port to receive serial data and the module of Socket.io to build remote real-time connection. The part of client used Mozilla Firefox browser with websocket support and the web for signing in the server to receive the remote data. The glove data was sent by module of jUART and was received by virtual hand module for virtual hand control. Results:A remote real-time data transmition system was established by Node.JS. It could transmit the bending data accurately to control the 3D virtual hand model under different geographical conditions. Conclusion: A remote real-time virtual rehabilitation training system based on Node.JS could help the hand’s rehabilitation of patients who were out of hospital without doctors’ face to face guidance.

Flex-sensor; Virtual reality; Hand model; Rehabilitation

1672-8270(2016)08-0007-04 [中圖分類號]R318.04

A

王清波,男,(1983- ),碩士,工程師。杭州市第一人民醫(yī)院設備科,從事醫(yī)學生物傳感器檢測等技術項目研究以及醫(yī)療設備的臨床驗證研究、醫(yī)療設備售后的技術支持等工作。

10.3969/J.ISSN.1672-8270.2016.08.003

①杭州市第一人民醫(yī)院設備科 浙江 杭州 310006

2016-04-10

猜你喜歡
服務器端瀏覽器藍牙
藍牙音箱的直線之美
反瀏覽器指紋追蹤
電子制作(2019年10期)2019-06-17 11:45:14
簡單、易用,可玩性強Q AcousticsBT3藍牙音箱
適合自己的才是最好的 德生(TECSUN) BT-50藍牙耳機放大器
淺析異步通信層的架構在ASP.NET 程序中的應用
成功(2018年10期)2018-03-26 02:56:14
緊急:藍牙指尖陀螺自燃!安全隱患頻出
玩具世界(2017年8期)2017-02-06 03:01:38
環(huán)球瀏覽器
再見,那些年我們嘲笑過的IE瀏覽器
英語學習(2015年6期)2016-01-30 00:37:23
在Windows中安裝OpenVPN
網(wǎng)頁防篡改中分布式文件同步復制系統(tǒng)
沙雅县| 三穗县| 岢岚县| 会昌县| 沙河市| 独山县| 普兰店市| 多伦县| 昭平县| 开鲁县| 余姚市| 长兴县| 长乐市| 伊宁县| 怀来县| 阳高县| 沁水县| 遵化市| 九龙城区| 瓦房店市| 江西省| 天台县| 建湖县| 南宫市| 绵阳市| 肥西县| 黎城县| 山西省| 普兰县| 沅陵县| 邯郸市| 济源市| 三门县| 申扎县| 双鸭山市| 青海省| 平顶山市| 无极县| 视频| 宁强县| 财经|