蘭 韻,劉萬偉,董 威,劉斌斌,付 辰,劉大學(xué)
(1.國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,湖南 長沙 410073;2.中國科學(xué)院軟件所計(jì)算機(jī)科學(xué)國家重點(diǎn)實(shí)驗(yàn)室,北京100000;3.國防科學(xué)技術(shù)大學(xué)機(jī)電工程與自動化學(xué)院,湖南 長沙 410073)
無人駕駛汽車決策系統(tǒng)的規(guī)則描述與代碼生成方法*
蘭 韻1,劉萬偉1,董 威1,劉斌斌1,付 辰2,劉大學(xué)3
(1.國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,湖南 長沙 410073;2.中國科學(xué)院軟件所計(jì)算機(jī)科學(xué)國家重點(diǎn)實(shí)驗(yàn)室,北京100000;3.國防科學(xué)技術(shù)大學(xué)機(jī)電工程與自動化學(xué)院,湖南 長沙 410073)
無人駕駛汽車的高層決策系統(tǒng)是其實(shí)現(xiàn)自主駕駛功能的核心,在決策系統(tǒng)的開發(fā)過程中,由于信號變量與狀態(tài)數(shù)量龐大等原因,系統(tǒng)面臨著可維護(hù)性與可拓展性差的難題。UNMANNED_RULE_ EDIT是面向無人車高層決策系統(tǒng)的規(guī)則編輯與代碼自動生成輔助工具,具有圖形化編輯和代碼自動生成的功能,有利于開發(fā)人員清晰直觀地設(shè)計(jì)規(guī)則,并擺脫繁瑣的編碼工作。主要討論了 UNMANNED_ RULE_EDIT的中間語言(規(guī)則語言)設(shè)計(jì)和代碼自動生成算法。目前,該工具已初步應(yīng)用在國內(nèi)某單位研制的無人車上,為其決策系統(tǒng)的開發(fā)提供便利。
無人駕駛汽車;決策系統(tǒng);規(guī)則語言;代碼自動生成
無人駕駛汽車是信息技術(shù)高度發(fā)展的產(chǎn)物,就是由機(jī)器代替人類駕駛員駕駛汽車[1]。隨著人們對提高工作效率、工作安全性、生活舒適度等需求的日益增長,無人駕駛汽車的研究正引起產(chǎn)業(yè)界和學(xué)術(shù)界的高度關(guān)注。近些年,國內(nèi)外已經(jīng)有大批科研工作者開始投入到這一領(lǐng)域的探索和競爭中。美國谷歌公司的Google Fleet、德國柏林大學(xué)的MIG和我國國防科學(xué)技術(shù)大學(xué)的紅旗 HQ3[2]等都是無人駕駛汽車領(lǐng)域中具有代表性的階段性成果。
無人駕駛系統(tǒng)結(jié)構(gòu)大致可分為若干模塊,如圖1所示。其中決策模塊是無人駕駛汽車系統(tǒng)的核心,其主要任務(wù)是根據(jù)環(huán)境感知系統(tǒng)獲得的環(huán)境信息、車輛當(dāng)前狀態(tài)以及任務(wù)規(guī)劃層規(guī)劃的任務(wù)目標(biāo),采取恰當(dāng)行為,保證車輛順利地完成任務(wù)[3]。
Figure 1 Structure model of the unmanned vehicles圖1 無人車系統(tǒng)結(jié)構(gòu)
當(dāng)前,無人車決策系統(tǒng)涉及到的信號變量多、狀態(tài)多、規(guī)則復(fù)雜,導(dǎo)致開發(fā)和維護(hù)的過程中面臨可拓展性與可維護(hù)性差的問題,嚴(yán)重制約了無人駕駛汽車決策控制系統(tǒng)的設(shè)計(jì)與完善,主要表現(xiàn)在:
(1)早期決策系統(tǒng)的開發(fā)工作都是從編寫代碼開始的,人工編寫代碼的時間開銷在整個工程項(xiàng)目中占據(jù)了相當(dāng)大的比重,致使開發(fā)成本居高不下。
(2)由于程序規(guī)模大,導(dǎo)致了程序可讀性差,可拓展性差。決策系統(tǒng)主要由規(guī)則集構(gòu)成,開發(fā)人員修改規(guī)則時需要直接修改源代碼,對開發(fā)人員帶來很大的負(fù)擔(dān),而且修改一處代碼往往會引起另外多處代碼的修改,這直接導(dǎo)致開發(fā)人員在維護(hù)系統(tǒng)時困難重重。
(3)無人駕駛汽車實(shí)時系統(tǒng)對安全性有極高的要求,無人駕駛汽車運(yùn)行在高度復(fù)雜的動態(tài)環(huán)境中,涉及的參數(shù)變量很多,參數(shù)的取值一般根據(jù)經(jīng)驗(yàn)或者實(shí)驗(yàn)獲取,具有主觀性,設(shè)計(jì)中很容易存在安全隱患。
1.1 研究現(xiàn)狀
模型驅(qū)動的軟件開發(fā)方法是一種用于智能決策系統(tǒng)開發(fā)領(lǐng)域的常用軟件開發(fā)方法,是一種可以把模型與實(shí)現(xiàn)緊密相聯(lián)的技術(shù),其核心思想是圖形化建模,有助于開發(fā)人員將思維精力專注于更高的抽象層面,而不是深陷到繁瑣的代碼實(shí)現(xiàn)中[4]。建立的模型可以根據(jù)一定的規(guī)則自動轉(zhuǎn)化為可執(zhí)行的代碼,如C語言、Java等。因此,模型驅(qū)動的軟件開發(fā)方法核心思想有兩個,分別是圖形建模和代碼自動生成,其優(yōu)點(diǎn)在于[5]:
(1)可以把需求說明以模型的方式表達(dá)出來,即將需求文檔化;
(2)有助于開發(fā)人員將思維精力專注于抽象層次更高的模型層面,有利于開發(fā)人員思考;
(3)可以實(shí)現(xiàn)代碼自動生成,修改代碼時只需要直接修改模型,重新生成代碼即可。
近年來,IBM等大型軟件公司投入到這一領(lǐng)域的研究,形成了一些標(biāo)志性的成果,當(dāng)前市場上已經(jīng)可以購買到多款較為成熟的建模與代碼生成軟件,如基于UML建模與代碼自動生成的商用軟件i Model Studio,它可以使用類圖、順序圖等方式進(jìn)行建模并自動生成代碼;又如基于狀態(tài)機(jī)的建模與代碼自動生成的商用軟件FSME/FSMC,它可以使用畫遷移圖的方式構(gòu)建狀態(tài)機(jī)并自動生成代碼。這些商用軟件已經(jīng)在航天等安全攸關(guān)領(lǐng)域的控制系統(tǒng)得到了應(yīng)用。但是,對于無人駕駛汽車決策子系統(tǒng)的開發(fā),這些商用的代碼生成軟件在實(shí)際應(yīng)用中具有明顯的缺點(diǎn)[6]:
(1)商用代碼生成軟件不是針對無人駕駛汽車系統(tǒng)開發(fā)的應(yīng)用軟件,與無人車決策模塊的規(guī)則模型不相關(guān),不能確保需求和模型的一致性,因此,這些通用的軟件不能很好地保證無人駕駛汽車決策規(guī)則設(shè)計(jì)的正確性。
(2)商用代碼生成軟件不可以根據(jù)無人車的實(shí)際需求和特點(diǎn)進(jìn)行相應(yīng)的配置,只能生成特定格式的通用代碼,因此,它們生成的代碼并不能很好地滿足無人駕駛汽車的實(shí)際需求。
(3)商用代碼生成軟件價格十分昂貴,這嚴(yán)重限制了代碼自動生成技術(shù)在工業(yè)界的推廣與使用。
(4)商用代碼生成軟件使用流程復(fù)雜,需要操作的元素多,不利于開發(fā)人員熟練掌握和運(yùn)用。
1.2 面向無人駕駛汽車的規(guī)則建模與代碼生成的
解決框架
無人車決策系統(tǒng)的開發(fā)是一項(xiàng)龐大的工程,具有高度復(fù)雜性,工作量繁重。在開發(fā)過程中,一套友好的系統(tǒng)開發(fā)輔助工具對于提高開發(fā)效率、保證研發(fā)進(jìn)度起著不可低估的作用。因此,本文旨在針對無人駕駛汽車的特點(diǎn)和需求,設(shè)計(jì)一套基于狀態(tài)機(jī)的規(guī)則建模和代碼自動生成的規(guī)則編輯工具UNMANNED_RULE_EDIT,用以解決系統(tǒng)開發(fā)面臨的工程難題,提高開發(fā)的效率。
針對早期系統(tǒng)代碼量大,以及可拓展性和可維護(hù)性差的問題,開發(fā)人員在決策系統(tǒng)的開發(fā)過程中,可以利用規(guī)則編輯工具UNMANNED_RULE_EDIT直接在列表中編寫規(guī)則,或者直接在狀態(tài)機(jī)圖示上編輯規(guī)則。最終由該工具自動將規(guī)則生成可執(zhí)行的代碼,最終實(shí)現(xiàn)規(guī)則與應(yīng)用程序的分離?!皩懸?guī)則”相比“寫代碼”有明顯的好處:(1)符合直觀,不易出錯;(2)達(dá)到設(shè)計(jì)上的正交,即寫當(dāng)前規(guī)則時不需要關(guān)心其他規(guī)則。
針對設(shè)計(jì)中難免存在安全隱患的問題,UNMANNED_RULE_EDIT運(yùn)用了軟件形式化方法中的模型檢驗(yàn)技術(shù),利用模型檢驗(yàn)工具[7]自動查找規(guī)則設(shè)計(jì)中的BUG,保證決策系統(tǒng)規(guī)則的安全性。
UNMANNED_RULE_EDIT的總體設(shè)計(jì)思路如圖2所示。
Figure 2 Schematic diagram of model checking for unmanned vehicles圖2 模型檢驗(yàn)用于無人駕駛汽車的原理圖
規(guī)則編輯工具UNMANNED_RULE_EDIT的設(shè)計(jì)過程主要分為兩部分:一是中間語言(中間語言是規(guī)則的內(nèi)部表示)的格式和語法的設(shè)計(jì);二是從中間語言到C代碼的轉(zhuǎn)換過程,即代碼自動生成過程。以下章節(jié),我們將對這兩部分分別進(jìn)行介紹。
2.1 無人駕駛汽車決策系統(tǒng)運(yùn)行時模型
決策系統(tǒng)的本質(zhì)是一個表示行為轉(zhuǎn)換的狀態(tài)遷移系統(tǒng),如圖3所示。因此,無人駕駛汽車決策系統(tǒng)的運(yùn)行時模型是一個五元組:
Si是signals的簡寫,代表信號集合;
St是states的簡寫,代表狀態(tài)集合;
I是init的簡寫,代表初始狀態(tài)集合;
E是final的簡寫,代表終止?fàn)顟B(tài)集合;
φ?St×B(Si)×St為遷移規(guī)則集合,B(Si)是Si上的布爾公式集合。
Figure 3 State transition diagram of unmanned vehicles圖3 無人車狀態(tài)遷移圖
2.2 無人駕駛汽車決策規(guī)則描述
對于圖3中的每一條狀態(tài)遷移,都是一條決策判斷的依據(jù),我們稱之為一條“規(guī)則”,表1是規(guī)則表范例。由表1可知,規(guī)則列表是一個三元組:A,其中A代表當(dāng)前狀態(tài),B代表目標(biāo)狀態(tài),conditions代表轉(zhuǎn)移條件。
Table 1 Example of a rule table表1 規(guī)則表范例
車輛狀態(tài)包括進(jìn)入(enter)、自由跟蹤車道線(driving alone)、超車(overtaking)、車輛跟蹤(following)、追趕(pursuit)、停車(stop)、離開(exit)、放棄超車(give_up)共8類行為狀態(tài),還可以往下細(xì)分21類具體狀態(tài),此處不詳細(xì)列出。
conditions由“環(huán)境感知信息判斷條件”、“地圖信息判斷條件”和“車輛自身信息判斷條件”構(gòu)成,其語法的BNF范式定義如下:
在UNMANNED_RULE_EDIT中,開發(fā)人員可以通過列表的形式編寫規(guī)則,清晰簡潔。但是,這些通過列表形式編寫的規(guī)則在軟件內(nèi)部需要有一種特定的表示形式,因此我們引入中間語言的概念,即規(guī)則語言。UNMANNED_RULE_EDIT的中間語言是指規(guī)則在該軟件中的內(nèi)部表示形式,即將規(guī)則用該軟件專用的規(guī)則語言UNMANNED_ RULE_LANGUAGE描述出來。
中間語言UNMANNED_RULE_LANGUAGE由三部分組成,分別是信號變量聲明“SINGNALS”、狀態(tài)聲明“STATES”和遷移條件描述“TRANSITIONS”。用BNF范式定義其語法如下:
procedure::=PROCEDURE{ procedure_body}
中間語言的由信號變量聲明、狀態(tài)聲明、遷移規(guī)則三部分構(gòu)成:
procedure_body::=signals states transitions
信號變量聲明部分:
signals::=SIGNALS[ signals_list] signals_list::=signal;|signal;signals_list signal::=bool var_name
|int var_name
|double var_name
|float var_name
var_name::=[a —z][_a —zA—Z0—9]*
狀態(tài)聲明部分:
states::=STATES[ states_list]
states_list::=state
|state states_list state::=<<state_name>>/*注:<<>>代表
初始狀態(tài)*/
|((st ate_name) )//注(())代表初始狀態(tài)
|[[state_name]]//注:[[]]代表初始狀態(tài)
state_name::= [a —z][_a —z A—Z0—9]*
遷移規(guī)則部分:
transitions::=TRANSITIONS[ transitions_list]
transitions_list::=transition
|transition transitions_list
transition::=state_name:condition→state_name;
|state_name:condition→state_name,
|:condition→state_name,
|:condition→state_name;
condition::=(“[a —z][_!=&|a—z A—Z0—9<>()—]*“)
UNMANNED_RULE_EDIT的中間語言是針對無人駕駛汽車決策系統(tǒng)的狀態(tài)遷移系統(tǒng)屬性,所設(shè)計(jì)的類似有限狀態(tài)自動機(jī)的規(guī)則描述語言,這種中間語言有以下三個優(yōu)點(diǎn):
(1)能夠完整簡潔地描述無人駕駛汽車決策系統(tǒng)的規(guī)則,滿足實(shí)用性。
(2)能夠方便地轉(zhuǎn)換為C代碼。由于中間語言的框架與C語言代碼的框架具有很好的對應(yīng)性,所以能夠方便地將中間語言轉(zhuǎn)換為C語言代碼。
(3)能夠方便地映射為遷移模型,進(jìn)而能夠作為模型檢驗(yàn)工具的輸入。由于中間語言的設(shè)計(jì)是基于有限狀態(tài)自動機(jī)的,所以中間語言可以方便地轉(zhuǎn)化為多種模型檢驗(yàn)軟件所支持的語言,如:Spin、SMV和UPPALL等[5],從而可以使用模型檢驗(yàn)技術(shù)對規(guī)則的正確性進(jìn)行驗(yàn)證。
4.1 映射規(guī)則定義
本節(jié)介紹從規(guī)則到C代碼的轉(zhuǎn)換算法,算法的核心為若干形如“中間碼元語言?(C語言語句,Action;)”的映射規(guī)則。
其中,Action是一組關(guān)于兩個輔助變量_init_ 和_final_的賦值動作,這兩個變量在特定的時機(jī)(比如處理TRANSITIONS關(guān)鍵字時)用以回填。當(dāng)Action=?時,映射關(guān)系可以簡寫成:
中間碼元語言 ?C語言語句
4.2 轉(zhuǎn)換算法
中間碼到C代碼的轉(zhuǎn)換算法由四部分構(gòu)成,分別是:變量模塊SIGNALS到C代碼的轉(zhuǎn)換、狀態(tài)模塊STATES到C代碼的轉(zhuǎn)換、遷移模塊TRANSITIONS到C代碼的轉(zhuǎn)換、總體模塊PRODUCE到C代碼的轉(zhuǎn)換。
變量模塊SIGNALS映射為變量賦值語句。設(shè)sig為單條信號聲明語句“datatype var_ name;”,其對應(yīng)的C語言代碼”datatype var_ name=car_struct.var_name;”為Csig。狀態(tài)模塊STATES映射為狀態(tài)枚舉變量定義、初始狀態(tài)賦值、用于決策的while循環(huán)與switch-case框架。設(shè)“<<state_name>>或((state_name))或[[state_name]]”為單條狀態(tài)聲明語句,其對應(yīng)的C語言代碼為Csta。遷移模塊TRANSITIONS中的一 組 遷 移 規(guī) 則映 射 為case語。設(shè)“A:(condition1)→B”為一組遷移語句trans,其對應(yīng)的C語言代碼為Ctrans??傮w模塊PRODUCE映射為頭文件、庫文件引用、函數(shù)名等框架代碼。設(shè)SIGNALS模塊對應(yīng)的C語言代碼為CSIGNALS,設(shè)STATES模塊對應(yīng)的C語言代碼為CSTATES,設(shè)TRANSITIONS模塊對應(yīng)的C語言代碼為CTRANSITIONS,設(shè)生成的頭文件為PHEAD,設(shè)生成的庫函數(shù)引用等代碼為PINCLUDE。
因此,中間碼到 C代碼的轉(zhuǎn)換算法可以描述為圖4所示。
規(guī)則sig_dec用于處理單條信號聲明的轉(zhuǎn)換,規(guī)則sig_mod代表SIGNALS模塊的轉(zhuǎn)換。規(guī)則sta_dec代表單條狀態(tài)聲明的轉(zhuǎn)換,其中狀態(tài)聲明的轉(zhuǎn)換又分為初始狀態(tài)、中間狀態(tài)、終止?fàn)顟B(tài)三種不同狀態(tài)類型的聲明轉(zhuǎn)換。規(guī)則sta_ini代表初始狀態(tài)的轉(zhuǎn)換,規(guī)則sta_int代表中間狀態(tài)的轉(zhuǎn)換,規(guī)則sta_fin代表終止?fàn)顟B(tài)的轉(zhuǎn)換。規(guī)則sta_mod代表STATES模塊的轉(zhuǎn)換。規(guī)則trans_dec代表遷移條件到CASE語句的轉(zhuǎn)換,規(guī)則trans_mod代表遷移模塊TRANSITIONS的轉(zhuǎn)換。規(guī)則produce_mod代表總體模塊PRODUCE的轉(zhuǎn)換。
我們以無人駕駛車執(zhí)行超車動作為例,分析UNMANNED_RULE_EDIT從構(gòu)建相關(guān)的規(guī)則到生成相應(yīng)的代碼的過程。
無人車的超車動作分為五個狀態(tài),如圖5所示,分別是初始狀態(tài)(init)、超車進(jìn)行中(overtaking)、緊急停車(stop)、放棄超車(give_up)、超車完成(end),其中每條狀態(tài)遷移都是一條規(guī)則。
該過程的中間語言描述如下:
依據(jù)中間語言到C語言的轉(zhuǎn)換算法,生成的C語言代碼如下:
本文介紹了面向無人駕駛汽車決策系統(tǒng)的輔助開發(fā)工具UNMANNED_RULE_EDIT,重點(diǎn)闡述了中間語言(規(guī)則語言)的設(shè)計(jì)和代碼自動生成算法。UNMANNED_RULE_EDIT特別適合于有復(fù)雜控制邏輯的系統(tǒng)開發(fā),在機(jī)器人、無人控制等領(lǐng)域有較大的應(yīng)用潛力。它實(shí)現(xiàn)了軟件開發(fā)便捷性與可靠性的統(tǒng)一:一方面,利用它友好的圖形化規(guī)則編輯功能,使開發(fā)人員能夠直觀方便地設(shè)計(jì)規(guī)則;另一方面,利用它強(qiáng)大的代碼自動生成功能,可以由規(guī)則自動生成關(guān)鍵代碼,大大提高開發(fā)效率,縮短開發(fā)周期,保證軟件質(zhì)量。目前,UNMANNED_RULE_EDIT的應(yīng)用也存在一些缺陷,表現(xiàn)在兩方面:一是自動生成的代碼靈活性不足,為應(yīng)用帶來了一定的困難;二是該工具的模型檢驗(yàn)功能尚未能成功地應(yīng)用,還需完善,這兩方面的不足都是將來我們需要不斷研究的重點(diǎn)。
[1] Huang Yan,Wu Jun,Liu Chun-ming,et al.Overview and key technologies of autonomous vehicles[J],Ordnance Industry Automation,2010,29(11):8-13.(in Chinese)
[2] Wang Bin-long.The design and research of unmanned intelligent vehicle[D].Jinan:Shandong University of Science and Technology,2012.(in Chinese)
[3] Sun Zhen-ping.The intelligent control system for autonomous land vehicle[D].Changsha:National University of De-fense Technology,2004.(in Chinese)
[4] Liu Ran,Chen Ying,Zhao Xiao-lin.Code generation of a visual CASE platform based on UML[J].Journal of Beijing Institute of Technology,2002,22(2):196-200.(in Chinese)
[5] Wang Yun-hua,Chen Wei-wei.Application research on advanced model driven developing method[J].Computer Engineering,2006,32(13):63-65.(in Chinese)
[6] Wang Xue-bin.Research on model driven architecture based model transformation technologies in software engineering [D].Changsha:National University of Defense Technology,2008.(in Chinese)
[7] Holzman G J.The SPIN model checker-primer and reference manual[M].Boston,USA:Addison-Wesley,2003.
[8] Holzmarm G J.The model checker SPIN[J],IEEE Transactions on Software Engineering,1997,23(5):279-295.
附中文參考文獻(xiàn):
[1] 黃巖,吳軍,劉春明,等.自主車輛發(fā)展概況及關(guān)鍵技術(shù)[J].兵工自動化,2010,29(11):8-13.
[2] 王斌龍.無人駕駛智能車設(shè)計(jì)與研發(fā)[D].濟(jì)南:山東科技大學(xué),2012.
[3] 孫振平.自主駕駛汽車智能控制系統(tǒng)[D].長沙:國防科學(xué)技術(shù)大學(xué),2004.
[4] 劉然,陳英,趙小林.基于UML的CASE平臺的代碼自動生成[J].北京理工大學(xué)學(xué)報(bào),2002,22(2):196-200.
[5] 王赟華,陳蔚薇.模型驅(qū)動開發(fā)方法的應(yīng)用研究[J].計(jì)算機(jī)工程,2006,32(13):63-65.
[6] 王學(xué)斌.軟件工程中基于模型驅(qū)動框架的模型轉(zhuǎn)換技術(shù)研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2008.
蘭韻(1989),男,四川宜賓人,碩士,CCF會員(E200036590G),研究方向?yàn)樽詣訖C(jī)理論和可信軟件。E-mail:542567880 @qq.com
LAN Yun,born in 1989,MS,CCF member(E200036590G),his research interests include automata theory,and reliable software.
劉萬偉(1980 ),男,山東平原人,博士,講師,CCF會員(E200012491S),研究方向?yàn)樽詣訖C(jī)理論、時序邏輯和模型檢驗(yàn)。E-mail:wwliu@nudt.edu.cn
LIU Wan-wei,born in 1980,PhD,lecturer,CCF member(E200012491S),his research interests include automata theory,temporal logic,and model checking.
董威(1976),男,陜西咸陽人,博士,教授,研究方向?yàn)檐浖こ?,軟件分析與驗(yàn)證。E-mail:wdong@nudt.edu.cn
DONG Wei,born in 1976,PhD,professor,his research interests include software engineering,software analysis and verification.
劉斌斌(1992),男,吉林公主嶺人,碩士生,研究方向?yàn)樽詣訖C(jī)理論、時序邏輯和模型檢驗(yàn)。E-mail:liubinbin0032@sina. com
LIU Bin-bin,born in 1992,MS candidate,his research interests include automata theory,temporal logic,and model checking.
付辰(1991),男,河北大城人,碩士生,研究方向?yàn)楦怕什l(fā)系統(tǒng)的建模與檢驗(yàn)。E-mail:fuchen789@foxmail.com
FU Chen,born in 1991,MS candidate,his research interests include modeling and checking of probabilistic concurrent system.
劉大學(xué)(1978 ),男,山東章丘人,博士,講師,研究方向?yàn)橐苿訖C(jī)器人、運(yùn)動規(guī)劃、行為決策和 激光雷達(dá)數(shù) 據(jù)處理。E-mail:13508495034@139.com
LIU Da-xue,born in 1978,PhD,lecturer,his research interests include mobile robot,motion planning,decision,and lidar data processing.
Research on rule editing and code generation for the high-level decision system of unmanned vehicles
LAN Yun1,LIU Wan-wei1,DONG Wei1,LIU Bin-bin1,F(xiàn)U Chen2,LIU Da-xue3
(1.College of Computer,National University of Defense Technology,Changsha 410073;
2.State Key Laboratory of Computer Science,Institute of Software,Chinese Academy of Sciences,Beijing 100000;
3.College of Electric Engineering and Automotive,National University of Defense Technology,Changsha 410073,China)
High-level decision systems are the central module of unmanned vehicles.Due to the extremely large amount of states and signals,the development process of the intelligence decision system is very complex,and maintaining such a system will encounter great difficulties.To overcome these problems,we design and implement a rule editing and code generation tool,called UNMANNED_RULE_ EDIT.It features GUI-based editing and automatic code generation and can help developers to generate controlling codes via editing a series of state-transition rules rather than writing codes,thus great succinctness and intuitiveness can be yielded.The paper mainly focuses on the discussion of the rule language and the code generation algorithm.As a preliminary application,this tool has been used in an unmanned vehicle system in China and facilitated the development of its decision system.
unmanned vehicles;intelligence decision system;rule language;code generation
TP311.51
A
10.3969/j.issn.1007-130X.2015.08.014
1007-130X(2015)08-1510-07
2014-10-28;
2014-12-16
國家973計(jì)劃資助項(xiàng)目(2009CB723803);國家自然科學(xué)基金資助項(xiàng)目(60873120,61103012)
通信地址:410073湖南省長沙市國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院計(jì)算機(jī)系 劉萬偉
Address:College of Computer,National University of Defense Technology,Changsha 410073,Hunan,P.R.China