崔雪渭,彭熙,2,3,顏順,陳含麗子,杜笛簫,楊琬晨
(1 華中師范大學 計算機學院,武漢 430079;2 湖北省高等學校計算機基礎實驗教學示范中心,武漢 430079;3 湖北省人工智能與智慧學習重點實驗室,武漢 430079)
隨著控制技術、信息技術等現代科技的飛速發展,擁有與人手相似結構的仿生機械手已具備很強的靈活性,因而可代替人手完成復雜操作,成為醫療保健、資源勘探、災難救援等諸多領域的實用工具[1]。表面肌電信號(Surface Electromyography,SEMG)是肌肉收縮時伴隨的電信號,是在體表無創檢測肌肉活動的高效方法,在人機交互控制、手勢識別等領域發揮著重要作用[2]。
在仿生機械手結構設計方面,Xu 等人[3]提出了一種與人手高度相似的仿生機械手結構。在肌電信號方面,程揚威[4]對基于多通道表面肌電特征圖像的手勢識別進行了深入研究,通過提取不同表征的肌電特征及深度學習,實現了對不同手勢的精準識別。吳娜[5]也提出了一種基于一維卷積神經網絡-獨立循環神經網絡(Conv1D-IndRNN)模型的手勢識別算法,提升了通過表面肌電信號進行手勢識別的準確率。但是對于如何將肌電信號處理與仿生機械手控制相結合,構成面向仿生機械手的肌電控制系統,卻少見成熟可行的設計。
本文提出了一種面向仿生機械手的肌電控制系統的設計與實現,即仿生機械手能夠實時模擬手部動作,可用于災難救援、醫療恢復,也可用于排爆等高危環境中。
本文所設計的仿生機械手肌電控制系統大致可以分為3 個部分:肌電信號的采集、肌電信號的處理和動作匹配。首先,利用六導聯肌肉電傳感器搭配Arduino UNO 采集肌電信號;然后,樹莓派接收Arduino UNO 傳送的數據,進行數據處理和加工;最后由樹莓派做出判斷,向仿生機械手發出運動指令,使其執行相應的動作。各組成部分的結構框架如圖1 所示。

圖1 仿生機械手肌電控制系統的結構框架Fig.1 Structural framework of myoelectric control system of bionic manipulator
本文選用的肌電傳感器為六導聯肌肉電傳感器,能夠采集人體手臂或者腿部的表面肌電信號,并對其進行一系列的放大與濾波處理。還有2 種通道增益方式,也可結合Arduino UNO 輸出原始肌電信號或者包絡后的肌電信號。
樹莓派是一款基于ARM 的微型電腦主板,以SD/MicroSD 卡為內存硬盤,不僅具備所有PC 的基本功能,還有著豐富的硬件接口。本文使用的樹莓派四代B型,具有40 個引腳接口,不僅可以讀取肌電傳感器采集的肌電信號并進行處理匹配,還可以與仿生機械手進行串口通信,以控制仿生機械手做出與肌電信號相對應的動作。
本文選用了樹莓派和并行舵機控制板協同工作的方式,根據通信原理及舵機控制指令對樹莓派控制系統進行設計。即樹莓派在對肌電信號加以處理后,將進行仿生機械手的動作匹配,再向并行舵機控制板發出相應命令,從而控制仿生機械手對動作進行實時模擬。
肌電信號,是人體運動時肌肉產生的生物電信號,能夠反映肌肉動作的狀態。當人的肌肉在運動時,相應的肌肉群會發生收縮。比如,當人的右手運動時,會受到大腦中樞神經系統的控制,右手骨骼肌的肌肉將會收縮以完成相應動作,此時就會在皮膚表面產生生物電信號。
肌電信號具有微弱性、低頻性、易受干擾性等特點[6],其幅值主要在100~5 000 μV,頻率范圍在0~1 000 Hz,信號中的主要能量和頻譜主要集中在10~500 Hz。同時,采集肌電信號時易受電極位置、皮膚狀態、場所噪音等影響。
目前,肌電信號的采集方式主要有2 種:侵入式采集與非侵入式采集。兩者的區別在于采集的位置和方式不同。其中,侵入式采集需要把針極刺入被試者的肌肉組織內部,這樣一來信號采集的過程就不受外界干擾,但在一定程度上會對被試者造成傷害;非侵入式采集需要把電極貼片與被試者的皮膚表面接觸,通過此種方式采集到的信號就是表面肌電信號。
本文選用六導聯肌肉電傳感器進行肌電信號的非侵入式采集。其前端采集電路通過1~6 通道采集人體手臂或者腿部的肌電信號,并對SEMG 進行一系列的放大與濾波;中端通過單刀雙擲開關切換Envelope Mode 和RAW Mode 輸出信號;后端采用Arduino UNO 采集中端的輸出信號,并控制LED燈發光,可以通過其亮度快速得出SEMG 信號的強度。
肢體所完成的動作是依靠若干肌肉相互協調所致,并非其中一塊肌肉單獨引起的。人體手臂的肌肉分布如圖2 所示。

圖2 人體手臂肌肉分布示意圖Fig.2 Schematic diagram of human arm muscles
經過反復的實驗測試,發現指部的伸屈與肱橈肌、指淺屈肌、指深屈肌、尺側腕屈肌和橈側腕屈肌的關系更加緊密。故將肌電傳感器的一次性貼片電極貼在上述肌肉組織上進行采集。該電極貼片與肌肉接觸面積小,從而能夠減少周邊肌肉對選定肌肉的信號干擾。根據前人的醫學研究發現,在被試者手臂上放置4~5 個電極片,可使動作識別率最大化。
在多通道肌電信號的數據處理中,活動段檢測是極其重要的一個部分,可以確定很多組手勢中每一個手勢動作的起始時刻和終止時刻,對每一個手勢動作進行劃分。信號的活動段檢測能夠對連續多個手勢動作進行準確判別,直接影響著后期的特征提取和模式分類。本文使用移動平均法進行活動段檢測。移動平均法是短時能量檢測算法中一種典型方法,能夠從連續的肌電信號中有效區分出活動段和靜息段,方便不同手勢動作的識別。
在初步采集中,共收集了3 個動作的39 445 條肌電信號數據。由于采集時肌電傳感器使用了2 個通道,因此數據集的總維度是39 445×2,對應39 445個標簽。此后,根據標簽將數據轉換為3 個部分,并在每個部分中進行分組操作,每200 個合并為一組,因此每一組的維度為200×2×1,作為卷積神經網絡的輸入。在訓練過程中將數據集打亂,同時對標簽數據進行one-hot 操作,并取80%作為訓練集,20%作為測試集。在構建神經網絡模型時使用了Python的Keras 模塊,該卷積神經網絡共有5 層、即3 層卷積層和2 層全連接層,如圖3 所示。

圖3 卷積神經網絡模型圖Fig.3 Convolution neural network model
每一層經過卷積操作后得到的特征圖大小的計算公式如下:

特征圖的數目由卷積核個數決定,因此每一次卷積操作之后得到的特征圖大小為(高度,寬度,卷積核個數)。
本文中,選擇了基于梯度優化算法的Adam 優化器,損失函數則選擇了多分類研究任務中常用的categorical_crossentropy。訓練過程共迭代100次,每次訓練的數據樣本量為64。訓練后的損失值如圖4 所示。

圖4 訓練集和測試集損失值Fig.4 Loss value of training set and test set
考慮到樹莓派達不到正常PC 機的算力,為了能夠在用樹莓派運行時取得實時的效果,本文采用了KNN 分類算法,KNN 算法作為最經典的機器學習算法之一,實現起來也十分簡單。KNN 算法的核心思想為:如果2 個樣本足夠相似,即在特征空間中的距離足夠近,則這2 個樣本大概率屬于同一類別。為了提高判斷的準確率,在實際應用中通常尋找離待測樣本最近的K個樣本,根據K個樣本的類別來判斷待測樣本的類別。在不考慮距離權重時,K個樣本中哪種類別的樣本數量最多,則待測樣本同屬于此類別。本文使用了Sklearn庫中的KNeighborsClassifier 來實現KNN 算法。
首先是采集數據,將采集到的握拳、張開以及Yeah 手勢的數據集分別設置標簽,依據標簽分成三大組。而后將一個標簽中的數據視為KNN 中的一個點,將數據集中80%的數據設置為訓練集,將數據集中20%的數據設置為測試集。
之后將數據進行存儲后便可以進行K個預測投票,再利用測試集中的數據進行測試,發現精度達到96%,屬于簡單的學習任務,適用于KNN 算法。
用新數據預測時,可按行讀取輸入的數據,并按行投票判斷歸屬于哪一類,最終將每一行的結果再依據類別進行累計,輸出累計數目最多的結果。
本機械手具有高度的仿生性能,根據人手手指關節的結構和運動自由度進行設計,采用了連桿結構,使得一個伺服舵機能夠控制一個手指上3 個關節的運動,即伺服舵機通過主舵轉動推動連桿使得一個手指向前彎曲,主舵反方向轉動拉動連桿使得手指伸張,如圖5 所示。這樣的結構能夠使仿生機械手比較輕巧靈活地實現人手的動作。

圖5 機械手連桿結構Fig.5 Connecting rod structure of the manipulator
仿生機械手使用的舵機是LX-224 雙軸總線舵機,如圖6 所示。LX-224 雙軸總線舵機扭矩為20 kg,自由度為180°,能夠充分滿足手指關節的運動需求。

圖6 LX-224 舵機Fig.6 LX-224 steering gear
該舵機為并行舵機,在舵機控制系統中,本文研制并開發了一款具有多并行舵機控制功能的舵機控制板。舵機控制板大多以單片機(STM32/STM8等)作為核心,本文的并行舵機控制板以單片機STM8S003 為主板。STM8S003 提供了10 比特模數轉換器、3 個定時器、1 個串口、1 個IIC 等功能模塊。同時并行舵機控制板內還集成了2 塊PCA9685 作為驅動模塊。驅動模塊PCA9685 是一款IIC 總線控制的16 通道的PWM 波發生器,每個輸出通道都有自己的12 位分辨率固定和頻率單獨的PWM 控制器,該控制器在典型的24~1 526 Hz 的可編程頻率下運行,占空比在0%~100%范圍內可調。PCA9685 還具有一個外部時鐘輸入引腳,可以接受用戶提供的時鐘(最大50 MHz),代替內部25 MHz振蕩器,此功能允許同步多個設備。僅占用主控板的4 個引腳,通過IIC 通信協議就可以驅動16 臺舵機。此外,可以通過級聯的方式最多級聯62 個驅動板。本機械手所使用的并行舵機控制板共級聯了2個驅動板,可以驅動32 臺舵機。
并行舵機控制板如圖7 所示,控制板電路圖如圖8 所示。

圖7 并行舵機控制板Fig.7 Parallel steering gear control board

圖8 舵機控制板電路圖Fig.8 Circuit diagram of steering gear control board
本文所涉及的系統主要由樹莓派4B、并行舵機控制板、并行舵機、肌電傳感器、Arduino 等部分組成。控制系統各模塊硬件連接如圖9 所示。

圖9 控制系統各模塊硬件連接圖Fig.9 Hardware connection diagram of each module of control system
為了滿足本文硬件需要,樹莓派需要設置開機自啟動項,同時通過配置文件來修改樹莓派的設備樹,改變引腳的映射關系,將ttyAMA0 映射到引出的GPIO Tx /Rx上,以此使用高性能的硬件串口。Arduino 需要使用A0~A5和D0~D13的引腳完成與肌電傳感器的數據傳輸、控制LED 燈等功能。此外,還要使用USB 線將Arduino 與樹莓派進行連接。
5.2.1 Arduino 與肌電傳感器之間的通信
Arduino 與肌電傳感器之間通過Arduino的D0和D1引腳來實現串口通信;通過D2~D4引腳分別實現移位寄存器的數據、時鐘和鎖存功能;通過D5和D6引腳來控制燈的按鍵;通過D7~D12引腳輸出的數據來控制傳感器上燈的顏色;通過D13引腳來使能控制燈的模塊;通過A0~A5引腳來接收肌電傳感器的包絡信號。最終能夠通過Arduino 讀取肌電傳感器的肌肉電信號數據。
5.2.2 樹莓派與Arduino 之間的通信
樹莓派與Arduino 之間通過USB 口進行連接,使用串口通信方式。連接后檢查是否存在ttyACM0文件,存在即可正常使用。由于串口通信簡單、并且能夠實現遠距離通信,符合項目要求,所以樹莓派和Arduino 之間使用串口通信。串口通信主要就在于各類參數的匹配,例如波特率、數據位、奇偶校驗。2個端口如要實現通信,這些參數必須匹配。
5.2.3 樹莓派與舵機控制板之間的通信
本文選用了樹莓派和并行舵機控制板協同工作的方式來控制機械手。并行傳輸相比于串行傳輸的優點在于易于實現和速度較快,雖然傳輸距離近,但對本系統來說已經足夠,所以選擇并行傳輸方式,并使用上述自主研制的并行舵機控制板。具體實現方式為:控制板的Tx 接樹莓派的Rx,控制板的Rx 接樹莓派的Tx。本次設計中,圖9 中樹莓派的8 號引腳(TXD)、10 號引腳(RXD)分別與并行舵機控制板的Rx、Tx 引腳相連。最后設置相同的波特率,即可將樹莓派上的指令傳輸給舵機控制板,從而實現對舵機的控制。
本文針對仿生機械手肌電控制系統進行了測試與評估。5 名被試者首先進行表面皮膚處理,然后使用自主設計的上位機軟件采集當前動作的肌電信號,如圖10 所示。

圖10 數據可視化及動作預測Fig.10 Data visualization and action prediction
測試中,握拳、五指張開和Yeah 手勢每個動作各做20次,即每個動作都有100 組數據,分別統計每個動作正確識別的個數、錯誤識別的個數以及識別率見表1。

表1 測試實驗結果統計Tab.1 Statistics of test results
從表1 可以看出,在進行測試的動作中,握拳的識別率最高,達93%,而張開和Yeah 手勢識別率略低。考慮到被試者之間體質差異的問題,這樣的誤差可以理解。另外,實驗過程中還發現,張開和Yeah 手勢之間容易發生錯誤識別,經分析發現是由于兩者肌電信號有時近似度較高。
另一個評估標準是系統的響應時間。實驗中,發現仿生機械手反應相對迅速。為了實現定量分析,對每個動作從開始預測到輸出結果的時間進行了統計。結果表明,系統的平均識別時間為12 s。而本系統每20 ms 采集一條肌電數據,即采集當前動作的400 條肌電數據需要8s,所以預測速度平均為4 s。進一步分析后可知,通過提高采集速度和優化匹配模型,能夠更好、更快地得出結果。
綜上所述,本文的仿生機械手肌電控制系統是合理的。
本文設計了一種基于肌電控制技術的仿生機械手肌電操控系統,由六導聯肌肉電傳感器、肌電信號傳輸導聯線、Arduino UNO 單片機、上位機、樹莓派4B、并行舵機控制板及仿生機械手構成,基本實現了對人手的實時模仿。后續可通過ZigBee 實現遠程控制,進而用于排爆等高危行業和偏癱患者的手部功能恢復等領域。目前由于只采集了3 個動作的肌電數據做測試,存在一定的局限性。但總體上對仿生機械手的后續發展與應用具有一定的借鑒意義。