劉義樂, 劉峻巖
(陸軍裝甲兵學院車輛工程系, 北京 100072)
坦克駕駛訓練中,對基礎(chǔ)駕駛動作的考核要求為:在規(guī)定的時間內(nèi)要完成規(guī)定次數(shù)的指定動作,且要保證一定的動作正確率。如:坦克基礎(chǔ)駕駛練習要求,駕駛員在模擬器和駕駛椅訓練時,在100 s內(nèi)完成發(fā)動(1次)、1擋起車(1次)、制動轉(zhuǎn)向(10次)、換2擋(10次)、換1擋(10次)、停車(1次)、熄火(1次),共計34個(次)動作,且錯誤次數(shù)在7個(次)以內(nèi)[1]。在使用駕駛椅訓練時,上述動作評定只能通過教員目視判定。由于操作件多、動作頻率快,大多數(shù)教員只能目視挑選一些典型錯誤動作,難以準確計數(shù)。若引入模擬器和駕駛教練車等具備相應(yīng)動作數(shù)據(jù)存儲裝置的專用訓練器材,則整個訓練過程的各種操作數(shù)據(jù)均可記錄下來,如文獻[2-4]的作者雖然提出了離合器動作識別方法,但無適合的方法對基礎(chǔ)駕駛中多操作件協(xié)同動作進行分析和自動考核。
車載傳感器和訓練裝備技術(shù)的發(fā)展,使得全方位全過程的存儲訓練數(shù)據(jù)變?yōu)榭赡?,也為?shù)字化評估駕駛訓練效果提供了海量的數(shù)據(jù)基礎(chǔ)。然而,如何把這些數(shù)據(jù)所包含的駕駛信息與教材教范中自然語言所描述的駕駛動作相對應(yīng),并根據(jù)考核標準提取相應(yīng)的特征數(shù)據(jù),是駕駛動作分析的重難點工作。鑒于此,筆者結(jié)合駕駛過程中離合、擋位、油門等操作件的動作特點和所采集的駕駛動作數(shù)值特征,提出了采用字符和字串分別表示駕駛單一動作和協(xié)同動作的編碼方法,并依據(jù)《各型坦克駕駛員教材》[5](以下簡稱《教材》)中規(guī)定的動作要領(lǐng),編制了標準協(xié)同動作字符串,最后借鑒成熟的字符串模式匹配算法實現(xiàn)了駕駛協(xié)同動作的準確識別,以期為駕駛訓練自動化考核提供技術(shù)支持。
基于駕駛動作數(shù)據(jù)的獲取來源和存儲形式,把駕駛動作區(qū)分為單一動作和協(xié)同動作。所謂單一動作,是指單一操作件所做的一次運動狀態(tài)改變,用指定的模式編碼表示。如:離合器單一動作,可根據(jù)離合器踏板的位置以及運動速度、運動方向進行識別和分類,并編碼為離合器踏板保持在原始位置C0、踩離合踏板C1、離合器踏板保持在分離位置C2、松離合踏板C3、離合器踏板在半聯(lián)動位置附近運動C4及非上述狀態(tài)的錯誤動作C5等6種動作模式;擋位單一動作,可根據(jù)擋位位置分類,并編碼為空擋位置D0、1擋位置D1、2擋位置D2、3擋位置D3、4擋位置D4、5擋位置D5等6種動作模式;油門單一動作,可根據(jù)油門踏板位移變化量和當前位置進行分類識別,編碼為保持小油門A1、加油 A2、保持大油門A3、減油A4等4種動作模式,識別規(guī)則如表1所示。
表1 油門單一動作模式識別規(guī)則
針對駕駛訓練過程中所采集的油門踏板、離合器踏板位移數(shù)據(jù)和擋位位置數(shù)據(jù),可通過動作模式識別和動作數(shù)據(jù)分割的方法獲得每個操作件單一動作的模式編碼和起始時刻[4]。圖1為離合器、擋位和油門單一動作和協(xié)同動作曲線,其中:各單一動作模式識別結(jié)果由2個元素組成,前一個元素是動作模式編碼,后一個元素是該動作模式的開始時刻??梢钥闯觯?/p>
1) 離合器單一動作模式識別結(jié)果:{C0,1;C1,64;C2,85;C4,158;C3,171;C4,189;C0,196;C1,291;C2,303;C3,312;C1,321;C2,326;C3,341;C0,354;C1,421;C2,431;C3,478;C0,491;C1,627;C2,639;C3,667;C0,679}。
2) 擋位單一動作模式識別結(jié)果:{D0,1;D2,144;D0,314;D3,341;D0,444;D4,481;D0,643;D5,669 }。
3) 油門單一動作模式識別結(jié)果:{A1,1;A2,151;A3,250;A4,291;A1,302;A2,315;A3,320;A4,417;A1,430;A2,457;A3,476;A4,625;A1,633;A2,653;A3,661;A4,672;A3,684;A2,688;A4,695}。
圖1 離合器、擋位、油門的單一動作和協(xié)同動作曲線
由多個操作件的單一動作按時間順序排列的動作,稱為多操作件協(xié)同動作。如:發(fā)動、一擋起車、制動轉(zhuǎn)向、換2擋、換1擋、停車、熄火等均是涉及多個操作件的協(xié)同動作,其中換擋協(xié)同動作通常包括油門、離合器和擋位的協(xié)同,轉(zhuǎn)向協(xié)同動作通常包括油門、擋位和轉(zhuǎn)向操作桿之間的協(xié)同。
標準協(xié)同動作,是指按照《教材》中規(guī)定的正確要領(lǐng)進行操作時,所有操作件按照各自單一動作模式時序進行混合排列的協(xié)同動作。以一代裝備定軸式變速箱1擋換2擋動作為例,《教材》中要求的正確要領(lǐng)為:首先,踏下加油踏板沖車;其次,踏下主離合器踏板,同時松開加油踏板;然后,將變速桿從1擋位置摘到空擋,掛上2擋;最后,迅速平穩(wěn)地松回主離合器踏板,同時加油。
根據(jù)上述動作要領(lǐng),可構(gòu)建一個名稱為“1擋換2擋”的3操作件標準協(xié)同動作,構(gòu)建規(guī)則為:
1) 將該協(xié)同動作命名為3-D1-D2,含義為:包含3個操作件的1擋換2擋協(xié)同動作。
2) 確定該協(xié)同動作所包含的各操作件單一動作模式編碼,按照時間順序混合排列。根據(jù)1擋換2擋的動作要領(lǐng),該協(xié)同動作可表示為A3,C1,C2,A4,D0,D2,C3,C0,A3的混合編碼字符串,稱為協(xié)同動作模式串。當該協(xié)同動作模式串順序來自于《教材》中所規(guī)定的動作要領(lǐng)時,稱為標準協(xié)同動作模式串。
3) 為便于對協(xié)同動作模式串進行存儲和管理,并在更復(fù)雜的科目訓練中進行層次化表示,為每組協(xié)同動作模式串指定一個縮寫編碼,則第i組協(xié)同動作模式串用Mi表示。
4) 該協(xié)同動作可表示為{M1:3-D1-D2:A3,C1,C2,A4,D0,D2,C3,C0,A3},即可以通過系列操作件的單一動作模式的有序組合或單一動作模式字符串來表示一組協(xié)同動作。
《教材》中規(guī)定了成千上萬種協(xié)同動作,只有把每一個協(xié)同動作的正確模式都表示出來,形成較為完備的標準協(xié)同動作模式庫,才能為后續(xù)的動作評價提供對照基準。通過對圖1(d)進行分析可知:該段曲線所包含的協(xié)同動作模式共有4組,如表2所示。
表2 標準協(xié)同動作模式表
標準協(xié)同動作模式庫是駕駛訓練成績評定的標準答案庫,其構(gòu)建質(zhì)量將直接影響訓練成績評定結(jié)果的可信性。通過對照《教材》中對各標準協(xié)同動作的要領(lǐng)描述和所獲得的標準協(xié)同動作模式串,可知標準協(xié)同動作模式庫構(gòu)建時,需要注意以下幾點:
1) 標準協(xié)同動作的命名規(guī)則是一種開放式的規(guī)則,根據(jù)動作類型和評價目標不同,各協(xié)同動作的命名規(guī)則不完全相同,越復(fù)雜的協(xié)同動作、越關(guān)注細節(jié)的協(xié)同動作,命名規(guī)則越復(fù)雜。如:表2中為了區(qū)分兩腳離合器換擋和一腳離合器換擋,每一個協(xié)同動作名稱的后面都單獨增加了一表示離合器動作類型的標志位。
2) 標準協(xié)同動作模式串構(gòu)建自身要完備,要包含《教材》中規(guī)定的每一個動作,尤其是一些《教材》中未明確提出、卻在實際動作曲線中有體現(xiàn)的動作。如:換擋要領(lǐng)中經(jīng)常有“踩下離合器”,在實際動作曲線中,該要領(lǐng)卻不僅僅包含“踩離合”這一個動作,還包含了“離合器踩到分離位置”這個最終狀態(tài)。即標準協(xié)同動作模式串所包含的單一動作數(shù)量并不完全與《教材》中規(guī)定的動作要領(lǐng)數(shù)量完全一致,而通常要大于《教材》中規(guī)定的動作要領(lǐng)數(shù)量,需要駕駛專業(yè)人員和數(shù)據(jù)處理專業(yè)人員來共同構(gòu)建標準協(xié)同動作模式串。
3) 標準協(xié)同動作模式庫構(gòu)建要盡可能全面。只有把所有駕駛員所有可能的正確動作都列為標準協(xié)同動作,才能最大限度地覆蓋駕駛員訓練過程中存在的正確動作。如:《教材》中動作要領(lǐng)中一些要求“同時開始”的動作,要按該操作件位移數(shù)據(jù)的存儲順序進行排列。對于“同時開始”的動作,由于傳感器的響應(yīng)速度、駕駛員動作幅度、各操作件單一動作模式狀態(tài)轉(zhuǎn)換閾值的靈敏度不同,對其模式識別的結(jié)果不一定完全相同,有可能某個動作識別結(jié)果早或晚幾毫秒,將使得無法按照字符串精確匹配。因此,對于“同時開始”的動作,只有羅列出所有可能正確的動作模式串,才能準確反映駕駛員的訓練成績。
“目標”是指訓練過程中所采集到的駕駛員實際動作數(shù)據(jù)??梢园凑詹僮骷我粍幼髂J浇Y(jié)果進行排序,規(guī)則如下:
1) 嚴格按照動作起始時刻順序進行排序。如:對于{C1,40;C2,55;C3,120}、{D2,110}、{A3,120}這種3操作件單一動作代碼,按照模式識別和數(shù)據(jù)分割得到的動作模式編碼及其開始時間先后,其排序應(yīng)為{C1,40;C2,55;D2,110;C3,120;A3,120}。
2) 對于該序列中“同時開始”的動作,可按照所采集的原始數(shù)據(jù)列表順序進行排序。如:對于離合器和油門的“同時動作”{C0,1;A1,1},原始數(shù)據(jù)記錄存儲時,離合器數(shù)據(jù)始終在油門前一列,把離合器動作模式排在前面。
按照上述規(guī)則,圖1(d)中3個操作件的協(xié)同動作曲線可由各操作件單一動作模式時序表示為:{C0,1;D0,1;A1,1;C1,64;C2,85;D2,144;A2,151;C4,158;C3,171;C4,189;C0,196;A3,250;C1,290;A4,291;A1,302;C2,303;C3,312;D0,314;A2,315;A3,320;C1,321;C2,326;C3,341;D3,340;C0,354;A4,417;C1,421;A1,430;C2,431;D0,444;A2,457;A3,476;C3,478;D4,481;C0,491;A4,625;C1,627;A1,633;C2,639;D0,643;A2,653;A3,661;C3,667;D5,669;A4,672;C0,679;A3,684;A2,688,A4,695}。即圖1(d)所包含的協(xié)同動作曲線通過單一動作數(shù)據(jù)分割、模式識別和協(xié)同動作模式串編碼,已轉(zhuǎn)換成為一組包含45個單一動作代碼及其開始時刻的目標字符串。駕駛動作分析的目的為:考核這個目標字符串中是否包含了需要完成的一些指定動作(標準協(xié)同動作模式串),共包含了幾組,是否達到了規(guī)定的考核要求。
模式匹配是數(shù)據(jù)結(jié)構(gòu)和文本搜索中關(guān)于字符串的一種基本運算。假設(shè)P為給定的子(字符)串,稱為模式,T為待查找的文本,稱為目標。從目標T中找出與模式P相同的所有子串,稱為模式匹配。如果T中存在一個或多個模式為P的子串,則給出該模式串在T中的位置,稱為匹配成功;否則,匹配失敗[6]。
駕駛動作分析中,標準協(xié)同動作模式串即是“模式”,而目標協(xié)同動作模式串則是“目標”。駕駛動作模式匹配的含義為:在駕駛員的目標協(xié)同動作模式串中尋找給定的標準協(xié)同動作模式串,評判駕駛員有幾個動作與標準協(xié)同動作模式串相符,從而給出駕駛員在操作動作時序方面的訓練成績。
通過單一動作模式識別分割以及協(xié)同動作模式串構(gòu)建,駕駛動作模式匹配問題已經(jīng)轉(zhuǎn)變?yōu)槌R姷淖址ヅ鋯栴}。
字符串模式匹配中,若一次文本掃描只檢測一個標準字符串與文本的匹配,稱為單模式匹配,常見的匹配算法有Boyer-Moore算法、KMP(Knuth-Morris-Pratt)算法[7]和Quick Search(QS)算法等。其中:KMP算法通過引入失配函數(shù)確定目標串和模式串的回溯起始位置。即每一次的匹配時,目標串的起始位置為上一輪匹配的失配位置,而模式串的起始位置則是重復(fù)字符結(jié)構(gòu)的下一位字符(無重復(fù)字符結(jié)構(gòu),則是模式串的首字符),其算法的復(fù)雜度為O(n+p),其中n、p分別為目標串和模式串的長度。
若只對文本進行一次掃描和匹配就完成對所有標準模式的搜索過程,稱為多模式匹配,常用的匹配算法有Aho-Corasick(AC)算法[8]和SBOM(Set Backward Oracle Matching)算法等[9]。其中:AC算法是一種基于有窮狀態(tài)自動機(Finite State Automata,FSA)算法,匹配操作之前,需要先對模式串集合進行預(yù)處理,形成樹型有限自動機,然后只需對文本串掃描一次,便可以找出與其匹配的所有模式串。
選擇單模式匹配的KMP算法和多模式匹配的AC算法驗證。
對圖1所代表的目標協(xié)同動作模式串,按照每1 000個計數(shù)單位(10 ms)重復(fù)1次的方法,重復(fù)3次,以前文列舉的M1、M2、M3、M4標準串作為模式串,分別采用KMP算法和AC算法進行匹配,其中:KMP算法執(zhí)行時間為0,匹配結(jié)果為
{M1:64-196;1 064-1 196;2 064-2 196},
{M2:250-354;1 250-1 354;2 250-2 354},
{M3:417-491;1 417-1 491;2 417-2 491},
{M4:625-695;1 625-1 695;2 625-2 695},
即給定的目標模式串中共包含3組M1、M2、M3、M4四種標準協(xié)同動作模式;AC算法執(zhí)行時間為160 ms,匹配結(jié)果與KMP算法相同。
根據(jù)模式匹配算法對一段給定時間內(nèi)的目標駕駛協(xié)同動作數(shù)據(jù)進行計算,得到指定駕駛協(xié)同動作中標準協(xié)同動作模式的正確次數(shù)及每次正確動作的開始結(jié)束時間,從而給出該練習的訓練考核成績,實現(xiàn)了駕駛協(xié)同動作的數(shù)字化考核。
筆者給出了單一駕駛動作模式和協(xié)同駕駛動作模式的概念,在KMP算法基礎(chǔ)上,利用本文設(shè)計的單一動作和協(xié)同動作編碼表示方法,完成了駕駛協(xié)同動作識別和模式匹配,對駕駛動作正確完成次數(shù)進行統(tǒng)計,并通過算例進行了驗證。本文提出的方法可以支持駕駛動作的數(shù)字化考核。