本發(fā)明涉及機器人建模技術(shù)領(lǐng)域,尤其涉及一種利用多語言建立機器人模塊的方法。
背景技術(shù):
隨著信息時代的飛速發(fā)展,對軟件的需求量也在快速增長,因此制作軟件的效率也需不斷提高,對于軟件制作人員來說,使用高效的編程技術(shù)能夠最大限度地節(jié)省人力、物力,降低成本,縮短產(chǎn)品開發(fā)周期,搶占市場先機。而軟件編程技術(shù)發(fā)展迅速,其重要組成部分——軟件開發(fā)語言,由開始的機器碼,經(jīng)歷BASIC、C、C ++等發(fā)展為高級語言;軟件的開發(fā)環(huán)境也由文本式的代碼編寫,發(fā)展為可視化的多種工具集成的IDE開發(fā)環(huán)境,作為編程技術(shù)的一種,圖形化編程技術(shù)正走在前沿,是集可視化、對象化、組件化等思想為一體的IDE集成開發(fā)環(huán)境,運用圖形化的編程工具,編程人員可以像制作流程圖一樣,通過簡單地添加和拖動幾個圖形化編程元素,連接必要的輸入輸出端,即可生成所需要的程序;xml技術(shù)因其具備多種特性,正得到越來越廣泛的應(yīng)用,如何將圖形化編程技術(shù)與xml技術(shù)融合,從而發(fā)揮出更大的作用,將開發(fā)人員從繁復(fù)的代碼中解脫出來,使編程工作更高效、更方便具有很重要的意義。
技術(shù)實現(xiàn)要素:
本發(fā)明所解決的技術(shù)問題在于提供一種利用多語言建立機器人模塊的方法,以解決上述背景技術(shù)中的缺點。
本發(fā)明所解決的技術(shù)問題采用以下技術(shù)方案來實現(xiàn):
一種利用多語言建立機器人模塊的方法,在Windows操作系統(tǒng)環(huán)境下,基于Visual Studio 2012開發(fā),包括如下模塊:
1)圖形庫管理模塊
對圖形化編程所需的部件庫進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“復(fù)制”、“粘貼”、“重命名”、“保存”,并采用xml文件保存部件庫基本信息,部件庫包括控制器庫、人機交互庫、驅(qū)動庫、傳感器庫和其他庫,且在每個部件庫分別設(shè)置有控制器;
對圖形化編程所需的文字庫進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“保存”;
對圖形化編程所需的圖形庫進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“保存”;
對圖形化編程所需的算法庫進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“保存”;
對可視化交互式仿真環(huán)境模塊的可視化交互式仿真環(huán)境文件進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“保存”;
2)圖形化編程模塊
在Windows操作系統(tǒng)環(huán)境下,圖形化編程模塊顯示為圖形化編程界面,圖形化編程界面左側(cè)為部件庫,部件庫內(nèi)包含圖形化編程所需的圖形庫,該圖形庫不能在圖形化編程界面下編輯,已在圖形庫管理/部件庫中編輯并保存;在圖形化編程界面下,只能選擇部件庫中的部件進行拖拽以完成連接工作;在進行圖形化編程前,首先在部件庫中新建部件,從部件庫中拖入基本元件,在利用部件庫中的繪圖工具構(gòu)造新建部件模塊的圖形,圖形構(gòu)成完成后,對新建部件圖形接點標識進行屬性設(shè)置,通過圖形的構(gòu)成和接點標識屬性的設(shè)置,一個部件模塊的圖形基本完成;
下面利用圖形化編程編寫該部件模塊對應(yīng)的程序,控制器模塊在部件庫創(chuàng)建時根據(jù)其接口屬性編寫有框架程序main.cpp,其他部件對應(yīng)的是.h程序文件;main.cpp用于實現(xiàn)對各個控制器接口功能調(diào)用,.h程序中的函數(shù)用于完成對部件模塊的功能調(diào)用;部件庫界面下方有兩個編輯區(qū),分別是Windows編輯框和Linux編輯框,在程序編輯框中編輯模塊對應(yīng)的程序,分別是在Windows仿真和Linux實際運行的程序;將與該部件模塊對應(yīng)的部件庫拖入圖形化編程界面,在對每個部件庫的控制器與接口進行連接、屬性設(shè)置,控制器之外的部件需根據(jù)自身接口特性與控制器的相應(yīng)接口連接,同時接口類型識別,然后在進行接口類型匹配判斷,當接口不匹配時,則該部件無法連接,若接口匹配成功,所選用部件控制器調(diào)用函數(shù)進行連線繪制操作,同時對所在部件庫的控制器設(shè)置機器人編號;當部件庫拖入控制器但沒有設(shè)置屬性時,控制器自動識別出錯誤;點擊生成C程序菜單項時,控制器根據(jù)錯誤的類型彈出相應(yīng)的警告,提示進行設(shè)置操作,并中斷生成程序的操作;當拖入的部件是驅(qū)動庫類的部件時,也需設(shè)置屬性;待完成每個部件庫的控制器與接口設(shè)置后,圖形化編程模塊才能生成正確的圖形化編程程序;對于完成圖形化編程的圖形,點擊文件/保存菜單對圖形進行保存,保存為xml文件;
每個部件模塊在Parts庫文件夾下分別擁有一個與部件模塊本身名稱對應(yīng)的子文件夾,在這個子文件夾下,包括與部件模塊本身名稱對應(yīng)的子文件夾所創(chuàng)建部件的信息,如名稱、接口類型、部件類型等;
3)可視化交互式仿真環(huán)境模塊
搭建可視化交互式仿真環(huán)境,結(jié)合圖形化編程模塊以建立機器人模塊的仿真,并根據(jù)圖形化編程模塊編程進度實時在圖形化編程界面顯示當前工作狀態(tài),以實現(xiàn)仿真。
在本發(fā)明中,部件庫中的繪圖工具包括矩形、接口、文本。
在本發(fā)明中,新建部件圖形接點標識屬性的設(shè)置,即設(shè)置接口類型,接口類型包括USBOTG、GPIO、Uart、TCP/IP、CAN、Wifi、I2C、CSPI。
在本發(fā)明中,部件庫的部件接口屬性、接口數(shù)量屬性、文本屬性都可由用戶自定義,并以xml文件保存于電腦的路徑中,xml文件包括矩形框位置、接口位置、接口參數(shù)、接口數(shù)量、文本位置、文本屬性、部件的路徑及部件對應(yīng)算法。
在本發(fā)明中,所有部件的接口信息、連線信息及存放信息分別由xml文件保存。
在本發(fā)明中,各部件庫接口屬性包括USB、Uart、Wifi。
在本發(fā)明中,在程序編輯框還具有對模塊連接的編輯功能,即每個部件可刪除,個別模塊需要設(shè)置屬性;刪除部件時,控制器調(diào)用DeleteNewModule(int i)函數(shù),對選擇的模塊進行類型判斷,然后進行刪除并注銷其存在的標志位,同時調(diào)用DeleteLine(int i,CPoint point0,CPoint point1)函數(shù)將與之的連線也隨之刪除;當移動某一部件時,控制器自動調(diào)用DrawNewModule(CPoint point,int i)或DrawNewControl(int i)任意一個函數(shù)進行移動重繪操作,從而實現(xiàn)模塊的移動功能,同時調(diào)用ReDrawAll()函數(shù),使其連線也隨之移動并保持與接口的連接。
有益效果:
1)本發(fā)明圖形化編程元素表現(xiàn)能力突出,遠遠優(yōu)于代碼,便于從整體上看清程序結(jié)構(gòu),使編程人員保持思路清晰,更好地了解編程的進展狀態(tài);
2)本發(fā)明兼具xml文本描述表現(xiàn)形式、程序文本表現(xiàn)形式及程序的圖形化表現(xiàn)形式,且圖形化程序利用圖形化的開發(fā)環(huán)境,可表現(xiàn)為圖形化編程環(huán)境中的程序圖形,也可表現(xiàn)為完成后生成的系統(tǒng)xml描述;
3)本發(fā)明借助xml自描述性,可方便實現(xiàn)圖形化程序與xml描述之間的項目轉(zhuǎn)換,編程人員可以利用各種各樣的編程器查看程序信息,而不單單依賴原始的開發(fā);
4)本發(fā)明搭積木似的圖形化程序有利于程序中時序結(jié)構(gòu)的調(diào)整,同一程序文件可通過不同的xml文檔與其他語言的轉(zhuǎn)換器,生成不同的程序文件,方便將各段程序封裝起來,實現(xiàn)更深層的封裝,擴大編輯的自由度,從而提高軟件開發(fā)的工作效率。
附圖說明
圖1是本發(fā)明的較佳實施例中的繪圖工具示意圖。
圖2是本發(fā)明的較佳實施例中的驅(qū)動庫示意圖。
圖3是本發(fā)明的較佳實施例中的部件庫示意圖。
圖4是本發(fā)明的較佳實施例中的算法結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明實現(xiàn)的技術(shù)手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結(jié)合具體圖示,進一步闡述本發(fā)明。
一種利用多語言建立機器人模塊的方法,在Windows操作系統(tǒng)環(huán)境下,基于Visual Studio 2012開發(fā),包括如下模塊:
1)圖形庫管理模塊
對圖形化編程所需的部件庫進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“復(fù)制”、“粘貼”、“重命名”、“保存”,并采用xml文件保存部件庫基本信息,部件庫包括控制器(Controllers)庫、人機交互(HIMs)庫、驅(qū)動(Drivers)庫、傳感器(Sensors)庫和其他庫,如圖3所示,且在每個部件庫分別設(shè)置有控制器;
對圖形化編程所需的文字庫進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“保存”;
對圖形化編程所需的圖形庫進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“保存”;
對圖形化編程所需的算法庫進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“保存”;
對可視化交互式仿真環(huán)境模塊的可視化交互式仿真環(huán)境文件進行管理,包括“新建”、“打開”、“導(dǎo)入”、“添加”、“刪除”、“編輯”、“保存”;
2)圖形化編程模塊
在Windows操作系統(tǒng)環(huán)境下,圖形化編程模塊顯示為圖形化編程界面,圖形化編程界面左側(cè)為部件庫,部件庫內(nèi)包含圖形化編程所需的圖形庫,該圖形庫不能在圖形化編程界面下編輯,已在圖形庫管理/部件庫中編輯并保存;在圖形化編程界面下,只能選擇部件庫中的部件進行拖拽以完成連接工作;在進行圖形化編程前,首先在部件庫中新建部件,從部件庫中拖入基本元件,部件庫中有三個繪圖工具,如圖1所示,分別為矩形、接口、文本,將這三個繪圖工具拖入圖形化編程界面右側(cè)的視圖中,構(gòu)成一個部件模塊的圖形,圖形構(gòu)成完成后,需要對接點標識進行屬性設(shè)置,即設(shè)置接口的類型,如USBOTG、GPIO、Uart、TCP/IP、CAN、Wifi、I2C、CSPI等,通過圖形的構(gòu)成和接點屬性的設(shè)置,一個部件模塊的圖形基本完成;
下面編寫該部件模塊對應(yīng)的程序,部件庫界面下方有兩個編輯區(qū),分別是Windows編輯框和Linux編輯框,在程序編輯框中編輯模塊對應(yīng)的程序,分別是在Windows仿真和Linux實際運行的程序;將與該部件模塊對應(yīng)的部件庫拖入圖形化編程界面,在對每個部件庫的控制器與接口進行連接、屬性設(shè)置,各部件都有自己的接口屬性,如USB、Uart、Wifi等,控制器之外的部件需根據(jù)自身接口特性與控制器的相應(yīng)接口連接,此時調(diào)用MKportIsSelected(CPoint point)或者ControllerPortSelected1(CPoint point)函數(shù)進行接口類型識別,然后在進行接口類型匹配判斷,當接口不匹配時,則該部件無法連接,若接口匹配成功,控制器調(diào)用DrawLine(CPoint point0,CPoint point1)函數(shù)進行連線繪制操作,同時對所在部件庫控制器設(shè)置機器人編號;當部件庫拖入控制器但沒有設(shè)置屬性時,控制器自動識別出錯誤;點擊生成C程序菜單項時,控制器根據(jù)錯誤的類型彈出相應(yīng)的警告,提示進行設(shè)置操作,并中斷生成程序的操作;當拖入的部件是驅(qū)動庫類的部件時,也需設(shè)置屬性;待完成每個部件庫的控制器與接口設(shè)置后,圖形化編程模塊才能生成正確的圖形化編程程序;在編程區(qū)域還具有對模塊連接的編輯功能,即每個部件可刪除,個別模塊需要設(shè)置屬性;刪除部件時,控制器調(diào)用DeleteNewModule(int i)函數(shù),對選擇的模塊進行類型判斷,然后進行刪除并注銷其存在的標志位,同時調(diào)用DeleteLine(int i,CPoint point0,CPoint point1)函數(shù)將與之的連線也隨之刪除;移動某一部件時,控制器自動調(diào)用DrawNewModule(CPoint point,int i)或DrawNewControl(int i)任意一個函數(shù)進行移動重繪操作,從而實現(xiàn)模塊的移動功能,同時調(diào)用ReDrawAll()函數(shù),使其連線也隨之移動并保持與接口的連接;對于完成圖形化編程的圖形,點擊文件/保存菜單對圖形進行保存,保存為xml文件,文件保存的具體結(jié)構(gòu),如圖4所示;
每個部件模塊(e.g.:New Module)在Parts庫文件夾下分別擁有一個與部件模塊本身名稱對應(yīng)的子文件夾,在這個子文件夾下,包括與部件模塊本身名稱對應(yīng)的子文件夾所創(chuàng)建部件的信息,如名稱、接口類型、部件類型等;Windows和Linux兩個文件夾中分別包含各自部件模塊對應(yīng)的Windows仿真和Linux實際運行程序,控制器模塊在部件庫創(chuàng)建時根據(jù)其接口屬性編寫有框架程序main.cpp,其他部件對應(yīng)的是.h程序文件;main.cpp在程序生成時起到關(guān)鍵作用,在編寫時需按照控制器的接口進行編寫,同時定義該控制器接口特定的變量以完成圖形化編程對各個連接模塊的信息獲取;通過調(diào)用.h程序中的函數(shù),以完成對部件模塊的功能調(diào)用;
3)可視化交互式仿真環(huán)境模塊
搭建可視化交互式仿真環(huán)境,結(jié)合圖形化編程模塊以建立機器人模塊的仿真,并根據(jù)圖形化編程模塊編程進度實時在圖形化編程界面顯示當前工作狀態(tài),以實現(xiàn)仿真。
在本實施例中,如圖2所示,部件庫的部件接口屬性、接口數(shù)量屬性、文本屬性都可由用戶自定義,并以xml文件保存于電腦的路徑中,xml文件包括矩形框位置、接口位置、接口參數(shù)、接口數(shù)量、文本位置、文本屬性、部件的路徑及部件對應(yīng)算法,圖形化表示包含接口類型與接口參數(shù)等,如將圖2所示的左驅(qū)動部件描述為:<?xmlversion=”1.0”encoding=”utf-8”?> <Rect><point>(3.760,5.800;3.760,6.040;4.080,6.040;4.080,5.800)</point>;<port><portkind>5</portkind></port><Text><Point>(3.800,5.920)</Point ><Text>LDriver</Text></Text>。
在本實施例中,所有部件的接口信息、連線信息及存放信息分別由xml文件保存,如將左驅(qū)動的圖形化編程信息描述為:
<Port><Name>Channel3</Name><Connection>01</Connection><Property>00</Property><part>LDriver</part><Winpath>D:\HDRobots\Lib\Parts\Drivers\LDriver\Windows\LDriver.h</Winpath><Linpath>D:\HDRobots\Lib\Parts\Drivers\LDriver\Linx\LDriver.h</Linpath><InitFunc>LDriverAutoInit</InitFunc><OutFunc>LDriverAutoOut</OutFunc><InFunc>LDriverAutoIn</InFunc></Port>。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要求保護范圍由所附的權(quán)利要求書及其等效物界定。