陳啟明,黃 瑞
(電子科技大學(xué)機(jī)器人研究中心 成都 611731)
近年來針對脊髓損傷引起的運(yùn)動能力損傷患者的下肢外骨骼機(jī)器人引起了學(xué)術(shù)研究和商業(yè)上的廣泛關(guān)注。根據(jù)世界衛(wèi)生組織的數(shù)據(jù),目前全世界每年新增250 000~500 000脊髓損傷患者[1]。脊髓損傷的患者比正常人壽命減少的可能性要高出兩到五倍,并且這種情況在低收入和中等收入國家中尤為突出。故而幫助因?yàn)榧顾钃p傷導(dǎo)致行動能力缺失的患者重獲基本的運(yùn)動能力是為患者本身和社會做出的巨大貢獻(xiàn)。
隨著技術(shù)的不斷進(jìn)步,出現(xiàn)了一些針對脊髓損傷患者的下肢外骨骼機(jī)器人[2-3],其中MindWalker[4-5]、ATLAS[6]、ReWalk[7]、和Elegs[8]下肢外骨骼機(jī)器人在幫助脊髓損傷患者重新獲得運(yùn)動能力方面取得了不錯(cuò)的成果。上述下肢外骨骼機(jī)器人的控制方案基本是采用有限狀態(tài)機(jī)(finite-state machine, FSM)結(jié)構(gòu)結(jié)合關(guān)節(jié)電機(jī)伺服預(yù)定義曲線的方式工作。此類外骨骼機(jī)器人的穿戴者通過人機(jī)交互接口手動控制外骨骼機(jī)器人進(jìn)入不同的任務(wù)狀態(tài),如站立、行走、起來和坐下等。對于這些外骨骼機(jī)器人而言,“何時(shí)”并且“如何”為穿戴者提供幫助是最為關(guān)鍵的問題。理想情況下,外骨骼機(jī)器人按照穿戴者的意圖運(yùn)動,成為穿戴者身體的一部分,這將會使穿戴者感覺不到外骨骼機(jī)器人的存在。然而當(dāng)前的外骨骼機(jī)器中大部分需要直接獲取穿戴者的指令,并按照指令執(zhí)行預(yù)定義的動作。此外,對外骨骼機(jī)器人的誤操作,可能會導(dǎo)致嚴(yán)重的人身安全事故。
綜上所述,外骨骼機(jī)器人識別穿戴者真正運(yùn)動意圖的人機(jī)交互接口尤為重要,良好用戶接口能為穿戴者提供更好的體驗(yàn)效果。HAL系統(tǒng)[9]利用肌電信號識別穿戴者的運(yùn)動意圖和計(jì)算人體關(guān)節(jié)的力矩大小,但是對于大多數(shù)截癱患者而言,其腿部的肌電信號微弱,因此測量難度較大。還有一些外骨骼機(jī)器人利用其腳底壓力和上身姿態(tài)信息通過經(jīng)驗(yàn)公式區(qū)分出穿戴者的運(yùn)動意圖[4-8]。上面所描述的外骨骼機(jī)器人意圖識別方法都存在一些不足,即對不同穿戴者適應(yīng)性低和需要重新訓(xùn)練數(shù)據(jù)并修改經(jīng)驗(yàn)公式的參數(shù)。針對這些問題,本文提出一種新的下肢外骨骼機(jī)器人意圖識別方法。首先,搭建了一個(gè)擁有多種傳感器和多個(gè)關(guān)節(jié)主動驅(qū)動的下肢外骨骼機(jī)器人AIDER。其次,根據(jù)壓力鞋提供的信息計(jì)算出零力矩點(diǎn)ZMP[10]作為主要特征信息,在此基礎(chǔ)上融合其他的傳感器特征信息用作穿戴者意圖識別的在線學(xué)習(xí)數(shù)據(jù)。最后結(jié)合有限狀態(tài)機(jī)的框架采用在線支撐矢量機(jī)的機(jī)器學(xué)習(xí)算法[11](online SVM)學(xué)習(xí)并預(yù)測運(yùn)動意圖。該方法在下肢外骨骼機(jī)器人系統(tǒng)AIDER上實(shí)現(xiàn),驗(yàn)證了本文的方法能有效地檢測出穿戴者運(yùn)動意圖,為穿戴者提供良好的人機(jī)交互體驗(yàn)。
AIDER下肢外骨骼機(jī)器人是一套輔助截癱患者行走的可穿戴設(shè)備,可幫助穿戴者完成站立和行走運(yùn)動。該系統(tǒng)總重30 kg,適用于身高范圍為155~180 cm的用戶,連續(xù)工作時(shí)間不小于3 h。該系統(tǒng)基于人體仿生,對機(jī)械結(jié)構(gòu)整體組成和機(jī)械外形結(jié)構(gòu)進(jìn)行設(shè)計(jì),使其能盡量貼合人體。如圖1所示,該系統(tǒng)共有4個(gè)由伺服直流電機(jī)驅(qū)動組成的主動驅(qū)動關(guān)節(jié),分別負(fù)責(zé)兩個(gè)髖關(guān)節(jié)的屈伸和兩個(gè)膝關(guān)節(jié)的屈伸自由度。經(jīng)過充分考慮,膝關(guān)節(jié)被設(shè)計(jì)為帶有儲能裝置的關(guān)節(jié)結(jié)構(gòu),在支撐過程中進(jìn)行儲能,在擺動過程中釋放支撐過程中所儲存的能量。除此之外,在外骨骼機(jī)器人的腰部、大腿、小腿以及腳等與穿戴者有接觸的地方均采用柔性材料進(jìn)行連接和覆蓋。該系統(tǒng)采用分布式控制網(wǎng)絡(luò),其嵌入式控制系統(tǒng)結(jié)構(gòu)如圖2所示,其中4個(gè)關(guān)節(jié)節(jié)點(diǎn)控制器與主控制器通過CAN總線均互聯(lián)于同一局域網(wǎng)中,主控制器用于實(shí)時(shí)的控制與監(jiān)視。擁有實(shí)時(shí)Linux操作系統(tǒng)的ARM主控制器放置在背部的背包中,4個(gè)關(guān)節(jié)節(jié)點(diǎn)控制器分別置于4個(gè)主動驅(qū)動的關(guān)節(jié)附近,同時(shí)4個(gè)關(guān)節(jié)節(jié)點(diǎn)控制器負(fù)責(zé)采集各個(gè)關(guān)節(jié)傳感器信息并執(zhí)行來自主控制器的命令。電源管理模塊對電池電源進(jìn)行調(diào)理,為整個(gè)系統(tǒng)提供所需電源。
圖1 AIDER穿戴示意圖
圖2 外骨骼嵌入式控制系統(tǒng)結(jié)構(gòu)框圖
AIDER下肢外骨骼機(jī)器人共集成有4種不同類型的傳感器,分別為用于測量關(guān)節(jié)角度的編碼器、慣性測量單元(IMU)、測量拐杖與地面之間傾角的傳感器、以及腳底壓力傳感器。用戶可以通過拐杖末端的按鈕直接操作外骨骼機(jī)器人。
外骨骼在正常工作的情況下是一直緊密地貼合人體并帶動人體進(jìn)行運(yùn)動,其模擬人體自然運(yùn)動過程,包括平地行走、起立坐下、上下臺階等,如圖3所示。
人體運(yùn)動過程中的步態(tài)十分復(fù)雜,圖3a為人體平地自然行走過程,圖3b為人體上臺階過程,圖3c為人體下臺階過程,圖3d為人體坐下的過程,每一項(xiàng)任務(wù)都需要人體各個(gè)關(guān)節(jié)協(xié)調(diào)運(yùn)動才能完成。如平地行走過程可以分為站立、右腿單支撐、雙腿雙支撐和左腿單支撐4種狀態(tài),每個(gè)狀態(tài)到下一個(gè)狀態(tài)的過程中各個(gè)主動驅(qū)動關(guān)節(jié)都對應(yīng)一段預(yù)定義的關(guān)節(jié)軌跡。為了完成自然行走任務(wù),外骨骼主動驅(qū)動關(guān)節(jié)只需要執(zhí)行一個(gè)狀態(tài)切換到另外一個(gè)狀態(tài)過程中預(yù)定義的關(guān)節(jié)軌跡即可。
圖3 人體各類日常運(yùn)動過程示意圖
為了能涵蓋所有的日常任務(wù),本文對這些任務(wù)進(jìn)行建模,設(shè)計(jì)出一個(gè)有層級結(jié)構(gòu)的有限狀態(tài)機(jī)。圖4所示的有限狀態(tài)機(jī)是上層的狀態(tài)機(jī),包含了行走、上臺階、下臺階、起立坐下4種任務(wù)的狀態(tài)機(jī)。如為了完成行走功能,狀態(tài)機(jī)從站立(Standing)狀態(tài)轉(zhuǎn)移到開始行走(Start Walk),然后進(jìn)入連續(xù)行走(Continue Walk),如果想要停止,則從行走狀態(tài)轉(zhuǎn)移到停止行走(End Walk),最終又回到初始的站立(Standing)狀態(tài)。上臺階/下臺階功能的狀態(tài)機(jī)與行走功能的狀態(tài)機(jī)很類似,均從站立(Standing)開始,包含開始上臺階(Start Upstair)/下臺階(Start Downstair)、連續(xù)上臺階(Continue Upstair)/連續(xù)下臺階(Continue Downstair)以及停止上臺階(End Upstair)/停止下臺階(End Downstair)。起立坐下功能狀態(tài)機(jī)從站立(Standing)開始,包含坐下(Sitting Down)、完全坐定(Seated)和站立(Standing Up)狀態(tài)。該外骨骼機(jī)器人從初始狀態(tài)為坐下的狀態(tài)(Seated)啟動,通過穿戴者的命令觸發(fā)站立起來,進(jìn)入雙支撐站立狀態(tài)后便可以轉(zhuǎn)移到其他狀態(tài)。
圖4 上層有限狀態(tài)機(jī)(FSM)
圖5 連續(xù)行走過程的狀態(tài)轉(zhuǎn)移圖
圖4中每一個(gè)狀態(tài)都是一個(gè)小的狀態(tài)機(jī),稱之為子狀態(tài)機(jī)。如圖5為持續(xù)行走過程的狀態(tài)轉(zhuǎn)移圖,將連續(xù)行走過程的狀態(tài)劃分為4個(gè)狀態(tài):
1) 左腿擺動(L Swing):左腿作為擺動腿在空中擺動,從左腿腳尖脫離地面開始到左腿腳跟與地面接觸結(jié)束。
2) 右腿擺動(R Swing):右腿作為擺動腿在空中擺動,從右腿腳尖脫離地面開始到右腿腳跟與地面接觸結(jié)束。
3) 雙支撐左腳在前(Double Stance(L)):雙腳都接觸地面,并且左腳在前。
4) 雙支撐右腳在前(Double Stance(R)):雙腳都接觸地面,并且右腳在前。
在上述FSM結(jié)構(gòu)的基礎(chǔ)上,設(shè)計(jì)了如圖6所示的控制框架。在該框架中,意圖估算器將原始信息轉(zhuǎn)換為意圖,特定的意圖會觸發(fā)外骨骼機(jī)器人伺服相應(yīng)的關(guān)節(jié)軌跡。關(guān)節(jié)軌跡是從正常成年人行走過程中采集的完整步行周期數(shù)據(jù),存儲于主控制器中。此外外骨骼機(jī)器人會根據(jù)軌跡的不同自動調(diào)整PID控制器參數(shù),從而在持續(xù)行走過程中不同狀態(tài)下均達(dá)到良好的伺服效果。
圖6 AIDER外骨骼的控制框圖
依據(jù)上文所述,有限狀態(tài)機(jī)從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的切換需要穿戴者的行走意圖作為觸發(fā)。該意圖可以基于經(jīng)驗(yàn)公式利用行走過程中顯著的運(yùn)動特征信息進(jìn)行意圖的檢測,但是這些方案都存在適應(yīng)性差的問題,即同一組經(jīng)驗(yàn)公式參數(shù)不適用于差異較大的不同穿戴者。針對上述問題,本文提出一種基于機(jī)器學(xué)習(xí)的方式——在線支撐矢量機(jī)(Online SVM),在線學(xué)習(xí)穿戴者的意圖,并依據(jù)學(xué)習(xí)得到的模型進(jìn)行意圖的預(yù)測。在訓(xùn)練數(shù)據(jù)的特征選擇上本文不直接使用傳感器的原始信息,而是采用ZMP作為訓(xùn)練數(shù)據(jù)的重要特征,提高了模型學(xué)習(xí)的速度與準(zhǔn)確度。
AIDER有多個(gè)不同類型的傳感器,可以為意圖檢測提供大量的實(shí)時(shí)數(shù)據(jù)。這些數(shù)據(jù)可以作為行走的特征向量(features),在行走過程中用戶采用拐杖部分的按鈕輸入意圖信息來控制外骨骼進(jìn)行行走,拐杖按鈕記錄的意圖信息就是數(shù)據(jù)的標(biāo)簽(labels)。為了讓外骨骼迅速適配不同的使用者,采用在線訓(xùn)練的策略,與離線策略相比較,在線策略不需要保存并傳輸數(shù)據(jù)到服務(wù)器上進(jìn)行運(yùn)算。
圖7 外骨骼與人行走階段
但是對于運(yùn)行在外骨骼機(jī)器人的控制平臺上(嵌入式平臺上)的在線學(xué)習(xí)算法,其運(yùn)算速度受數(shù)據(jù)維度的影響較大。所以要從原始數(shù)據(jù)中選擇特定的數(shù)據(jù)進(jìn)行融合,穿戴者在使用外骨骼時(shí)不能用自身的腿主動帶動外骨骼進(jìn)行移動,外骨骼機(jī)器人必須驅(qū)動自身連桿帶動穿戴者的腿進(jìn)行移動。因此下肢外骨骼機(jī)器人作為一個(gè)人機(jī)緊密耦合的系統(tǒng),可以被近似建模成人形機(jī)器人。圖7為行走的外骨骼與穿戴者共同行走的過程就是從穩(wěn)定(單腿支撐)到臨界穩(wěn)定(支撐腿切換過程)再到穩(wěn)定的過程。作為人形機(jī)器人行走穩(wěn)定性的重要指標(biāo),零力矩點(diǎn)(ZMP)對于判斷人體的意圖具有顯著性。ZMP的概念由文獻(xiàn)[10]提出,可以利用ZMP來判斷人形機(jī)器人的穩(wěn)定性,該概念通常用于很多雙足人形機(jī)器人的穩(wěn)定性判斷。除了ZMP的數(shù)據(jù)之外,為獲得準(zhǔn)確的人體意圖,本文還采用外骨骼的關(guān)節(jié)的數(shù)據(jù)、IMU采集的姿態(tài)、旋轉(zhuǎn)速度等數(shù)據(jù)作為特征。
ZMP可以通過兩種方法獲?。?) 通過地面反作用力的數(shù)據(jù)獲?。?) 通過逆動力學(xué)模型獲取。從ZMP的概念中,垂直作用力的和為:
式中,r=[δξ0]是地面的向量;ρ(δ,ξ)是垂直作用在r這一點(diǎn)單位面積上的力。在p=[pxpy0]點(diǎn)的力矩為τn(p),其在x軸、y軸和z軸方向的分量分別為:
在ZMP中,τnx=0,τny=0,因?yàn)棣?δ,ξ)是腳上反作用力的分布,所以p點(diǎn)也是壓力中心(COP),其中p點(diǎn)在平面x軸和y軸方向的分量分別為:
計(jì)算出整個(gè)系統(tǒng)的ZMP在平面x軸和y軸方向的分量分別為:
為了獲取ZMP,本文設(shè)計(jì)了一雙內(nèi)嵌MCU和多個(gè)力傳感器的壓力鞋。分析正常成年人行走過程如圖8所示,圖中“1”為金屬面板,“2”為內(nèi)嵌的力傳感器,“3”為橡膠鞋底。在壓力鞋的橡膠鞋底和上表面的金屬面板之間安裝了7個(gè)力傳感器,用于獲取行走過程中腳上反作用力的分布情況。
圖8 正常成年人行走過程
本文采用了在線機(jī)器學(xué)習(xí)在線支撐向量機(jī)算法,通過采集人體的運(yùn)動信息與意圖指令,學(xué)習(xí)意圖模型,并用其判斷人體的行走意圖。支撐向量機(jī)(SVM)已經(jīng)被廣泛應(yīng)用于各種領(lǐng)域并解決了大量的問題,可以找出其最優(yōu)超平面,并以最大幾何距離對數(shù)據(jù)進(jìn)行分類,有:
SVM可以處理線性不可分離的數(shù)據(jù)。在線SVM[10]被提出用以解決訓(xùn)練數(shù)據(jù)不斷增加情況下的分類問題。如圖8所示,行走過程中,穿戴者的意圖著重于是否邁步。使用在線SVM的方法,幾個(gè)步態(tài)周期后外骨骼機(jī)器人就能快速適應(yīng)不同穿戴者做出準(zhǔn)確的意圖判斷:
式中,iy是每個(gè)數(shù)據(jù)點(diǎn)ix的標(biāo)簽;n是數(shù)據(jù)的大小。然后可以得到一個(gè)單位形式的目標(biāo)函數(shù)和拉格朗日對偶性的約束條件。最大間隔的雙重問題為:
式中,iα表示拉格朗日乘子。對于線性不可分的數(shù)據(jù),不能在原始的特征控制中直接找出超平面。但是可以通過一些適當(dāng)?shù)姆蔷€性函數(shù)將原始特征空間映射到另一個(gè)維度遠(yuǎn)遠(yuǎn)超過原空間的新的特征空間,并且在新的特征空間里找到一個(gè)線性超平面來分離數(shù)據(jù)。使用核函數(shù)SVM可以高效地處理這種情況,ix和jx的核函數(shù)為:
式中,K是核函數(shù);φ是特征X的非線性映射函數(shù),并且K可以表示為φ(xi)和φ(xj)的內(nèi)積,φ(xi)和φ(xj)是從原始特征空間到新特征空間的映射。常用的有如下幾種核函數(shù):
1) 線性核函數(shù):
2) 多項(xiàng)式核函數(shù):
式中,R為常數(shù);d為多項(xiàng)式最大階數(shù)。
3) 高斯核函:
式中,σ可用于控制從原始特征空間映射到新特征空間的維度。
選擇3名體型差異較大的健康穿戴者完成該實(shí)驗(yàn)并評估本文提出的方法。外骨骼機(jī)器人每20 ms可以更新一次樣本數(shù)據(jù),該樣本數(shù)據(jù)由慣性測量單元(IMU)和壓力鞋的數(shù)據(jù)組成共17維。其中慣性測量單元固定在外骨骼機(jī)器人的背部,其融合了加速度計(jì)、電子羅盤和陀螺儀的數(shù)據(jù),然后估計(jì)出上身的絕對姿態(tài)(roll, pitch, yaw)。此外,每一個(gè)壓力鞋里面有7個(gè)力傳感器可以作為特征信息的來源。
每個(gè)腳上的ZMP和COP可以通過鞋上的壓力傳感器計(jì)算,結(jié)果如圖9所示,圖中,L COP是左腳COP,R COP是右腳COP,ZMP為外骨骼與穿戴者的耦合體的ZMP。帶有正標(biāo)簽的樣本數(shù)據(jù)是由穿戴者在其邁步前在拐杖末端按鈕按下產(chǎn)生的,帶有負(fù)標(biāo)簽的是隨機(jī)抽樣產(chǎn)生的。該在線SVM算法在內(nèi)核為cotex A8的ARM嵌入式平臺上實(shí)現(xiàn)。
圖9 左右腳COP與ZMP的關(guān)系圖
首先將每種特征的數(shù)據(jù)集訓(xùn)練SVM,以觀察不同特征的分類效果。本文設(shè)計(jì)了4組對比實(shí)驗(yàn),每組實(shí)驗(yàn)的特征類型都有別于其他組實(shí)驗(yàn),分別為ZMP數(shù)據(jù)、原始數(shù)據(jù)、IMU數(shù)據(jù)以及IMU和ZMP作為特征向量。
圖10 不同特征的分類效果圖
圖11 多項(xiàng)式內(nèi)核和高斯內(nèi)核分類效果圖
圖12 多項(xiàng)式內(nèi)核函數(shù)分類預(yù)測效果
分類效果如圖10所示,從圖中可以看出使用IMU與ZMP兩種類型的數(shù)據(jù)集作為特征向量時(shí)能取得最佳的分類效果(95%)。常用的有SVM核函數(shù)、線性核函數(shù)、多項(xiàng)式核函數(shù)和高斯核函數(shù)。為了挑選出比較合適的內(nèi)核函數(shù),分別對多項(xiàng)式內(nèi)核函數(shù)和高斯內(nèi)核函數(shù)進(jìn)行了對比實(shí)驗(yàn),實(shí)驗(yàn)效果如圖11所示,從圖中可以看出隨著樣本數(shù)據(jù)量的增加多項(xiàng)式核函數(shù)效果好于高斯核函數(shù)。經(jīng)過實(shí)驗(yàn)驗(yàn)證,AIDER下肢外骨骼機(jī)器人經(jīng)過50步訓(xùn)練后能對穿戴者運(yùn)動意圖做出準(zhǔn)確的識別,實(shí)驗(yàn)效果如圖12所示。
本文提出了一種利用機(jī)器人零力矩點(diǎn)(ZMP)特征,并基于支撐矢量機(jī)檢測穿戴者運(yùn)動意圖的在線學(xué)習(xí)算法。實(shí)驗(yàn)表明經(jīng)過若干步態(tài)周期的訓(xùn)練,外骨骼機(jī)器人能夠準(zhǔn)確地對穿戴者運(yùn)動的意圖做出判斷。最后3名體型差異較大的健康穿戴者分別使用AIDER下肢外骨骼機(jī)器人完成本文實(shí)驗(yàn),并驗(yàn)證本文提出的方法實(shí)際有效。
在未來的研究工作中將意圖識別在線學(xué)習(xí)方法應(yīng)用于更多的具體問題中,如穿戴者起立坐下運(yùn)動意圖的識別。還可以通過穿戴者的運(yùn)動意圖在線調(diào)整外骨骼運(yùn)動參數(shù),以及通過學(xué)習(xí)的方法讓外骨骼獲得不同工作環(huán)境下的步態(tài)曲線。
[1]World Health Organization. Spinal cord injury[EB/OL].[2017-05-06]. http://www.who.int/mediacentre/factsheets/fs384/en/,2017,Jul.
[2]YAN T, CEMPINI M, ODDO C M, et al. Review of assistive strategies in powered lower-limb orthoses and exoskeletons[J]. Robotics & Autonomous Systems, 2015, 64:120-136.
[3]HUO W, MOHAMMED S, MORENO J C, et al. Lower limb wearable robots for assistance and rehabilitation: a state of the art[J]. IEEE Systems Journal, 2017, 10(3):1068-1081.
[4]WANG L, WANG S, ASSELDONK E H F V, et al. Actively controlled lateral gait assistance in a lower limb exoskeleton[C]//Conference on IEEE/RSJ International Intelligent Robots and Systems. [S.l.]: IEEE, 2013: 965-970.
[5]WANG S, WANG L, MEIJNEKE C, et al. Design and control of the MindWalker exoskeleton[J]. IEEE Transactions on Neural Systems & Rehabilitation Engineering A Publication of the IEEE Engineering in Medicine & Biology Society, 2015, 23(2): 277-286.
[6]SANZ-MERODIO D, CESTARI M, AREVALO J C, et al. A lower-limb exoskeleton for gait assistance in quadriplegia[C]//Conference on IEEE International Robotics and Biomimetics. [S.l.]: IEEE, 2012: 122-127.
[7]TALATY M, ESQUENAZI A, BRICENO J E.Differentiating ability in users of the ReWalkTM powered exoskeleton: an analysis of walking kinematics[C]//Conference on IEEE International Rehabilitation Robotics.[S.l.]: IEEE, 2013: 6650469.
[8]STRAUSSER K A, KAZEROONI H. The development and testing of a human machine interface for a mobile medical exoskeleton[C]//Conference on IEEE/RSJ International Intelligent Robots and Systems. [S.l.]: IEEE, 2011:4911-4916.
[9]HAYASHI T, KAWAMOTO H, SANKAI Y. Control method of robot suit HAL working as operator's muscle using biological and dynamical information[C]//Conference on IEEE/RSJ International Intelligent Robots and Systems.[S.l.]: IEEE, 2005: 3063-3068.
[10]VUKOBRATOVI? M, BOROVAC B. Zero-moment point— thirty five years of its life[J]. International Journal of Humanoid Robotics, 2004, 1(1): 157-173.
[11]CAUWENBERGHS G, POGGIO T. Incremental and decremental support vector machine learning[C]//Conference on International Neural Information Processing Systems. [S.l.]: MIT Press, 2000: 388-394.