亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于表面肌電信號的人機(jī)交互軟件設(shè)計(jì)

        2021-08-04 08:37:08李建亮王從慶展文豪曲思霖
        計(jì)算機(jī)測量與控制 2021年7期
        關(guān)鍵詞:機(jī)軟件電信號手勢

        李建亮,王從慶,展文豪,曲思霖,張 民

        (1.南京航空航天大學(xué) 自動(dòng)化學(xué)院,南京 210016;2.中國航天員科研訓(xùn)練中心 人因工程國防科技重點(diǎn)實(shí)驗(yàn)室,北京 100094)

        0 引言

        近年來,人類對外太空探索日漸深入,但是空間中位置惡劣的環(huán)境給宇航員帶來了嚴(yán)峻的威脅[1],很多作業(yè)人類無法直接進(jìn)行。鑒于此,操控靈巧手輔助其完成任務(wù)是最有效的手段之一[2]。

        表面肌電信號(surface electromyography,sEMG)是指通過電子儀器設(shè)備檢測到人體肌肉的靜止或者收縮時(shí)的電信號,在生物醫(yī)學(xué)、生物機(jī)械等領(lǐng)域有很好的應(yīng)用價(jià)值[3-5]。主要分為侵入式電極和非侵入式兩類,侵入式電極需要將電極刺入肌肉組織獲取肌肉的電信號,這種方法獲取的信號干擾小,但是會(huì)給用戶帶來嚴(yán)重的損傷。非侵入式方法主要是通過貼片電極的方式采集表面肌電信號,這種方式對用戶很友好,因此非常適合作為控制智能仿真靈巧手的輸入信號[6]。

        在利用sEMG進(jìn)行人機(jī)交互方面,國內(nèi)外很多科研單位進(jìn)行了探索。著名的有加拿大的Thalmic Labs公司設(shè)計(jì)了MYO臂環(huán),讀取手臂肌群的肌電信號,實(shí)現(xiàn)了與無人機(jī)的人機(jī)交互[7]。上海交通大學(xué)和復(fù)旦大學(xué)合作進(jìn)行了“神經(jīng)的運(yùn)動(dòng)控制與控制信息源的研究”,通過提取神經(jīng)信息來完成人機(jī)交互[8]。南京航空航天大學(xué)謝作述等人設(shè)計(jì)了一種16路肌電信號采集的神經(jīng)接口,能夠穩(wěn)定地采集含有豐富運(yùn)動(dòng)信息的肌電信號[9]。利用肌電信號解碼手勢實(shí)現(xiàn)空間機(jī)器人的人機(jī)交互,擺脫了對肢體動(dòng)作的要求,突破了依賴航天員操作鼠標(biāo)鍵盤、操作桿等傳統(tǒng)手動(dòng)控制的局限性,有很大的應(yīng)用價(jià)值。

        基于肌電信號解碼手勢實(shí)現(xiàn)人機(jī)交互系統(tǒng),設(shè)計(jì)一款用戶體驗(yàn)良好的人機(jī)交互軟件是必要的。因此,本文針對16路肌電信號采集神經(jīng)接口設(shè)計(jì)了一款人機(jī)交互軟件,包括肌電信號的顯示,手勢的實(shí)時(shí)解碼,仿真靈巧手的控制等模塊。

        1 實(shí)時(shí)肌電信號解碼與控制系統(tǒng)

        本文搭建的基于肌電信號解碼手勢控制仿真靈巧手系統(tǒng)總體結(jié)構(gòu)如圖1所示,分為下位機(jī)肌電信號采集和上位機(jī)交互軟件兩個(gè)部分。

        圖1 肌電信號解碼與控制系統(tǒng)

        1.1 下位機(jī)肌電信號采集

        下位機(jī)肌電信號采集模塊實(shí)現(xiàn)了采集可靠的16路手臂動(dòng)作電位,并將其發(fā)送至串口。首先是通過16路肌電信號手環(huán)上的電極采集原始肌電信號,然后經(jīng)過濾波放大電路等作預(yù)處理[9],最后經(jīng)過DSP28335將模擬信號轉(zhuǎn)化成數(shù)字信號,在進(jìn)行歸一化處理后,發(fā)送至串口。歸一化處理公式為:

        (1)

        其中:xmin、xmax分別是肌電信號樣本中的最小值和最大值,x為轉(zhuǎn)換前的肌電信號值,a為歸一化后的增益,這里取256,y為轉(zhuǎn)換后的肌電信號值。

        1.2 上位機(jī)人機(jī)交互軟件

        針對基于肌電信號解碼手勢控制的仿真靈巧手系統(tǒng),上位機(jī)人機(jī)交互軟件需要實(shí)現(xiàn)以下幾個(gè)功能:

        1)實(shí)時(shí)接收DSP向串口發(fā)送的數(shù)據(jù),實(shí)現(xiàn)肌電信號的數(shù)據(jù)可視化。當(dāng)出現(xiàn)工頻干擾、電池電量不足、參考電極未接觸良好等外在不良因素,可以通過可視化界面可以高效定位錯(cuò)誤原因。

        2)對肌電信號進(jìn)行實(shí)時(shí)解碼。本文訓(xùn)練了基于支持向量機(jī)(SVM)的解碼模型,設(shè)計(jì)了一種實(shí)時(shí)解碼算法,可以將輸入的肌電信號實(shí)時(shí)解碼,轉(zhuǎn)化成手勢控制信號輸出。此模塊易于擴(kuò)展其它解碼模型,可擴(kuò)展性強(qiáng)。

        3)仿真靈巧手控制。本文通過Unity3d搭建了一個(gè)仿真靈巧手,可以自由調(diào)節(jié)手部關(guān)節(jié)的彎曲角度,模擬空間機(jī)械臂靈巧手,實(shí)現(xiàn)人機(jī)交互。

        2 人機(jī)交互軟件設(shè)計(jì)

        2.1 總體設(shè)計(jì)

        人機(jī)交互軟件程序流程圖如圖2所示。首先進(jìn)行界面的初始化,然后將信號與槽函數(shù)進(jìn)行綁定,之后初始化串口,獲取當(dāng)前開啟的所有串口號,并添加到下拉菜單中,接著初始化狀態(tài)顯示欄,最后運(yùn)行主窗口的顯示。當(dāng)點(diǎn)擊打開串口時(shí),將會(huì)開啟串讀取線程,讀取串口讀取到的數(shù)據(jù),并顯示在窗體中。當(dāng)點(diǎn)擊鏈接動(dòng)畫按鈕時(shí),將會(huì)啟動(dòng)仿真靈巧手,此時(shí)等待接收控制信號。當(dāng)點(diǎn)擊解碼按鈕時(shí),將會(huì)開啟實(shí)時(shí)解碼子進(jìn)程,將肌電信號解碼成手勢發(fā)出控制信號。此時(shí)Unity3D仿真靈巧手接收到控制信號,手指關(guān)節(jié)將會(huì)轉(zhuǎn)動(dòng),做出相應(yīng)的手勢。

        圖2 上位機(jī)軟件程序流程圖

        2.2 串口顯示功能實(shí)現(xiàn)

        軟件設(shè)計(jì)中首先用到的技術(shù)是從串口實(shí)時(shí)讀取數(shù)據(jù)[10],本文在串口功能實(shí)現(xiàn)模塊和實(shí)時(shí)解碼模塊都用到了這個(gè)技術(shù)。在Qt5及以上版本中提供了QSerialPort模塊,這里主要使用了其中的QSerialPort類和QSerialPortInfo類,前者提供了對串口的操作,后者提供了對串口信息的獲取。首先,必須在項(xiàng)目.pro文件中添加QT+=serialport,實(shí)現(xiàn)支持串口功能。然后通過遍歷,將所需要的串口添加到combox中,之后打開串口,設(shè)置波特率、數(shù)據(jù)位、校驗(yàn)位、停止位等,就可以通過read()和write()函數(shù)進(jìn)行數(shù)據(jù)的讀寫。

        2.3 仿真靈巧手控制模塊設(shè)計(jì)

        仿真靈巧手控制模塊實(shí)現(xiàn)了將肌電信號解碼出的手勢用于控制仿靈巧手。本文使用的基于Unity3D的靈巧手模型是專門為WISEGLOVE5數(shù)據(jù)手套開發(fā)的,每個(gè)手指具有3個(gè)自由度,有較高的刷新率,適用于各類實(shí)時(shí)仿真。本文在此基礎(chǔ)上通過設(shè)置每個(gè)手指關(guān)節(jié)的旋轉(zhuǎn)角度定義了3種手勢,即石頭、剪刀和布,便可以滿足本文的仿真控制需求,仿真靈巧手的3種手勢如圖3所示。

        圖3 仿真靈巧手的3種手勢

        實(shí)時(shí)接收控制信號是通過UDP協(xié)議實(shí)現(xiàn)的,程序在刷新過程中一直在等待接收控制指令。當(dāng)點(diǎn)擊運(yùn)行仿真按鈕時(shí),使用Qt中的Process類打開一個(gè)shell進(jìn)程,在此shell中綁定了開啟Unity3D的仿真靈巧手3D模型的啟動(dòng)。

        2.4 實(shí)時(shí)解碼模塊設(shè)計(jì)

        采集到的肌電信號中包含了大量的手勢信息,訓(xùn)練肌電信號解碼模型模塊使用了支持向量機(jī)(SVM)實(shí)現(xiàn)手勢分類。SVM是一種基于統(tǒng)計(jì)學(xué)習(xí)理論的機(jī)器學(xué)習(xí)方法,肌電信號手勢識別方面可以獲得很好的效果[11]。其基本思想是尋找一個(gè)最佳判別超平面,使得其到不同類別的樣本點(diǎn)的邊界距離都能達(dá)到最大。具有學(xué)習(xí)能力強(qiáng),訓(xùn)練時(shí)間短,設(shè)置參數(shù)少等優(yōu)點(diǎn)。本文使用的是線性支持向量機(jī),其分類超平面為:

        w*·x+b*=0

        (2)

        決策函數(shù)為:

        f(x)=sign(w*·x+b*)

        (3)

        其學(xué)習(xí)的優(yōu)化問題為:

        s.t.yi(wi+b)≥1-ξi;ξi≥0;i=1,2,…,N

        (4)

        訓(xùn)練好模型后,針對實(shí)時(shí)解碼功能,本文設(shè)計(jì)了一種基于標(biāo)簽匹配的實(shí)時(shí)解碼算法。首先將串口讀到的數(shù)據(jù)進(jìn)行預(yù)處理,串口數(shù)據(jù)具有17路,其中16路為肌電信號,一路為標(biāo)簽位并設(shè)置為255,通過標(biāo)簽位判別數(shù)據(jù)的完整性。根據(jù)經(jīng)驗(yàn),當(dāng)采集1 700個(gè)數(shù)據(jù)時(shí),進(jìn)行一次手勢識別,同時(shí)保證了實(shí)時(shí)性和準(zhǔn)確性。同時(shí)將讀取到的部分?jǐn)?shù)據(jù)、識別的結(jié)果通過UDP協(xié)議發(fā)出。程序流程圖如圖4所示。當(dāng)點(diǎn)擊實(shí)時(shí)解碼按鈕時(shí),同樣使用Qt中的Process類打開一個(gè)shell進(jìn)程,此shell種綁定了執(zhí)行解碼手勢的代碼。實(shí)時(shí)解碼程序流程圖如圖4所示。

        圖4 實(shí)時(shí)解碼程序流程圖

        3 軟件設(shè)計(jì)關(guān)鍵技術(shù)

        3.1 信號與槽機(jī)制

        信號與槽機(jī)制是Qt的核心機(jī)制之一。信號(Signal)是指在特定情況下被發(fā)射的事件,槽(Slot)是指對信號相應(yīng)的函數(shù),它們的關(guān)聯(lián)是通過connect()函數(shù)實(shí)現(xiàn)的。使用信號與槽機(jī)制必須在類的定義中聲明宏定義Q_OBJECT,此時(shí)元對象編譯器moc在對此類進(jìn)行編譯時(shí),會(huì)產(chǎn)生包含該類的元對象代碼,其中元對象包含了全部信號與槽的名字以及指向這些函數(shù)的指針。本文設(shè)計(jì)的上位機(jī)軟件充分地利用了信號與槽機(jī)制的便利,實(shí)現(xiàn)了高效開發(fā)。

        3.2 多線程與多進(jìn)程

        本文設(shè)計(jì)的人機(jī)交互軟件結(jié)合了多線程技術(shù)與多進(jìn)程技術(shù)[12],開啟了兩個(gè)獨(dú)立的進(jìn)程,分別來啟動(dòng)仿真控制和實(shí)時(shí)手勢解碼,大大提高了主進(jìn)程的效率。另外在接收串口數(shù)據(jù)和接收UDP協(xié)議發(fā)送的數(shù)據(jù)時(shí),開啟了獨(dú)立的線程,可以實(shí)現(xiàn)在用戶主界面不凍結(jié)的情況下執(zhí)行接收串口數(shù)據(jù)這項(xiàng)耗時(shí)的工作。Qt中提供了的QThread模塊和QProcess模塊,可以很方便地實(shí)現(xiàn)多線程與多進(jìn)程。

        3.3 網(wǎng)絡(luò)通信

        本文設(shè)計(jì)的上位機(jī)軟件使用了基于UDP協(xié)議的網(wǎng)絡(luò)通信[13]。Qt中使用QtNetwork模塊來實(shí)現(xiàn)網(wǎng)絡(luò)編程,提供了一層統(tǒng)一的套接字抽象用于編寫不同層次的網(wǎng)絡(luò)編程。QTcpSocket類和QUdpSocket類分別用來實(shí)現(xiàn)TCP通信和UDP通信。TCP是一種可靠的、面向連接、面向數(shù)據(jù)流的傳輸協(xié)議,非常適合數(shù)據(jù)的連續(xù)傳輸。而UDP協(xié)議是一個(gè)輕量級的、面向數(shù)據(jù)報(bào)的、無連接的協(xié)議,適用于大多為短信息或者相應(yīng)需求高等情況。本文設(shè)計(jì)的上位機(jī)軟件中實(shí)時(shí)解碼模塊需要向軟件界面發(fā)送識別結(jié)果,向仿真控制模塊發(fā)送控制指令,由于對實(shí)時(shí)性要求高且數(shù)據(jù)都為短消息,因此都采用UDP協(xié)議進(jìn)行設(shè)計(jì)。由于是本機(jī)通信,IP地址都設(shè)為本機(jī)回環(huán)地址127.0.0.1即可,端口號分別設(shè)置為6 666、7 777。

        4 實(shí)驗(yàn)過程與結(jié)果分析

        4.1 實(shí)驗(yàn)設(shè)備

        本文設(shè)計(jì)的上位機(jī)軟件是在臺式機(jī)上開發(fā)的,系統(tǒng)為Ubuntu18.04發(fā)行版。安裝的環(huán)境有Qt5.9.9、Unity2019.4.9f1、pycharm2020.2.1等。

        實(shí)驗(yàn)機(jī)為一臺戴爾筆記本電腦,也裝了Ubuntu18.04發(fā)行版,不需要Qt和Unity環(huán)境。將在開發(fā)機(jī)上設(shè)計(jì)的上位機(jī)軟件打包,拷貝到實(shí)驗(yàn)機(jī)上,即可使用。

        下位機(jī)硬件部分包括16路肌電信號采集手環(huán)、濾波裝置、DSP28335數(shù)字信號處理器等。

        4.2 數(shù)據(jù)采集與模型訓(xùn)練

        本文采集了十個(gè)人的3種手勢的肌電信號,采樣率為500 Hz,則波特率設(shè)為85 000。每1 700個(gè)數(shù)據(jù)設(shè)置一個(gè)標(biāo)簽,作為一個(gè)樣本。每種手勢采集3 000個(gè)樣本。采集到的數(shù)據(jù)三分之二作為訓(xùn)練集,剩下作為測試集。

        根據(jù)經(jīng)驗(yàn),設(shè)置支持向量機(jī)的懲罰因子為1e-4,平均訓(xùn)練時(shí)間為0.065 s,模型3種手勢識別率達(dá)到98%以上。

        4.3 實(shí)驗(yàn)過程與結(jié)果分析

        首先連接好DSP28335相關(guān)電路,然后將程序下載到芯片中,通過數(shù)據(jù)線將DSP28335與上位機(jī)筆記本相連。測試者處于放松狀態(tài)時(shí),下位機(jī)實(shí)物圖與結(jié)構(gòu)原理圖如圖5所示。

        圖5 下位機(jī)肌電信號采集系統(tǒng)

        打開本文設(shè)計(jì)的上位機(jī)軟件,將自動(dòng)檢測到當(dāng)前使用的串口,并將串口名填充在設(shè)置中,設(shè)置波特率為85 000,校驗(yàn)位為None,數(shù)據(jù)位為8,停止位為1,以16進(jìn)制顯示,然后點(diǎn)擊打開串口,成功接收到串口的數(shù)據(jù),如圖6所示。

        圖6 上位機(jī)接收串口數(shù)據(jù)

        可以看出串口數(shù)據(jù)正常,可以進(jìn)行下面的解碼控制模塊。為了提高系統(tǒng)性能與解碼效率,串口顯示將關(guān)閉,點(diǎn)擊鏈接動(dòng)畫,打開仿真靈巧手子進(jìn)程,等待接收控制指令。接下來點(diǎn)擊解碼按鈕,啟動(dòng)解碼子進(jìn)程,并向仿真靈巧手控制子進(jìn)程發(fā)送控制信號。仿真子進(jìn)程接收到控制信號后,將會(huì)立刻執(zhí)行相應(yīng)的手勢,實(shí)時(shí)結(jié)果如圖7所示。

        圖7 3種手勢解碼結(jié)果

        實(shí)時(shí)解碼手勢并控制仿真靈巧手平均延遲為200 ms,能夠滿足大部分應(yīng)用場景需求。同時(shí),解碼結(jié)果將會(huì)在顯示窗口實(shí)時(shí)顯示,此時(shí)界面如圖8所示。

        圖8 上位機(jī)實(shí)時(shí)解碼與控制界面

        測試結(jié)果表明,本文設(shè)計(jì)的手勢解碼軟件實(shí)時(shí)對3種“石頭”、“剪刀”、“布”3種手勢的識別有很好的結(jié)果,實(shí)現(xiàn)了基于肌電信號的穩(wěn)定可靠識別與控制。

        綜上,本文設(shè)計(jì)的用于肌電信號神經(jīng)接口的上位機(jī)軟件操作簡單、功能齊全,在準(zhǔn)確性和實(shí)時(shí)性上都能滿足基于表面肌電信號解碼與控制系統(tǒng)的需求,不僅保證了系統(tǒng)的實(shí)用性,而且有著良好的人機(jī)界面,提升了用戶體驗(yàn)。

        5 結(jié)束語

        本文設(shè)計(jì)了一款上位機(jī)人機(jī)交互軟件,包括接收并顯示串口數(shù)據(jù)、手勢實(shí)時(shí)解碼、仿真靈巧手控制3個(gè)模塊,實(shí)現(xiàn)了基于肌電信號解碼手勢以及仿真靈巧手的準(zhǔn)確、實(shí)時(shí)控制。但側(cè)重于基于人機(jī)交互軟件的實(shí)現(xiàn),進(jìn)行了3種手勢解碼算法的驗(yàn)證,在以后的研究中可以進(jìn)行更多種手勢解碼算法的研究,讓航天員能夠使用更加豐富的手勢操作靈巧手。

        猜你喜歡
        機(jī)軟件電信號手勢
        基于聯(lián)合聚類分析的單通道腹部心電信號的胎心率提取
        挑戰(zhàn)!神秘手勢
        基于Code Composer Studio3.3完成對心電信號的去噪
        科技傳播(2019年24期)2019-06-15 09:29:28
        V字手勢的由來
        基于隨機(jī)森林的航天器電信號多分類識別方法
        勝利的手勢
        道岔監(jiān)測系統(tǒng)上位機(jī)軟件設(shè)計(jì)
        基于正交試驗(yàn)法的北斗用戶機(jī)軟件測試用例設(shè)計(jì)
        PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
        電子器件(2015年5期)2015-12-29 08:43:12
        基于生物電信號的駕駛疲勞檢測方法
        汽車電器(2014年8期)2014-02-28 12:14:29
        欧美三级超在线视频| 人人妻人人澡人人爽人人精品av | 看黄色亚洲看黄色亚洲| 水蜜桃在线观看一区二区国产| 日本黑人亚洲一区二区 | 男人边吻奶边挵进去视频| 午夜福利不卡无码视频| 加勒比特在线视频播放| 亚洲一区第二区三区四区| 伊人久久精品无码av一区| 在熟睡夫面前侵犯我在线播放| 亚洲 欧美 激情 小说 另类 | 国产自拍视频免费在线观看| 亚洲深深色噜噜狠狠网站| 国产盗摄xxxx视频xxxx| 人妻人人澡人人添人人爽人人玩 | 日本无码人妻波多野结衣| 亚洲aⅴ无码日韩av无码网站| 久久精品熟女亚洲av艳妇| 女优av性天堂网男人天堂| 欧美牲交a欧美牲交aⅴ免费下载 | 无码国产色欲xxxxx视频| 成人永久福利在线观看不卡| 久久精品国产亚洲av一| 91精品国产色综合久久| 亚洲国产天堂久久综合网| 国产色诱视频在线观看| 国产精品国产三级国产在线观 | 高清亚洲成av人片乱码色午夜| 亚洲一区第二区三区四区| 国产做国产爱免费视频| 曰本极品少妇videossexhd| 美女熟妇67194免费入口| 精品国产三区在线观看| 久久久久久av无码免费网站下载| 精品无码久久久久成人漫画 | 日韩av无码成人无码免费| 日韩精品人妻中文字幕有码| 婷婷丁香开心五月综合| 国产欧美一区二区三区在线看| 男人和女人高潮免费网站|