本發(fā)明涉及機器人嵌入式編程技術領域,尤其涉及一種機器人跨平臺的圖形化開發(fā)系統(tǒng)。
背景技術:
嵌入式系統(tǒng)體積小,可靠性高,成本低,大多數(shù)機器人開發(fā)主要依賴于嵌入式技術;而圖形化編程具有編程簡單、使用方便等優(yōu)勢,被稱為快速應用程序開發(fā)環(huán)境,因此嵌入式技術與圖形化編程相結合成為一個熱點。機器人開發(fā)涉及到諸多硬件,需要開發(fā)人員具備相關專業(yè)知識,編程的復雜性相對較高,而嵌入式開發(fā)一般基于Linux系統(tǒng)進行編譯和鏈接,Windows系統(tǒng)卻是PC機上最普及的操作系統(tǒng),故為不熟悉Linux系統(tǒng)的開發(fā)人員提供一個完整的嵌入式開發(fā)環(huán)境,為c語言編程基礎較弱的開發(fā)人員提供一個圖形化編程系統(tǒng),極大方便熟悉Windows人員進行機器人圖形化嵌入式開發(fā)已經(jīng)亟待解決的技術問題。
技術實現(xiàn)要素:
本發(fā)明所解決的技術問題在于提供一種機器人跨平臺的圖形化開發(fā)系統(tǒng),以解決上述背景技術中的缺點。
本發(fā)明所解決的技術問題采用以下技術方案來實現(xiàn):
一種機器人跨平臺的圖形化開發(fā)系統(tǒng),包括如下步驟:
1)準備資源文件
針對arm開發(fā)板所使用的軟件系統(tǒng)選用不同編譯工具鏈移植,arm開發(fā)板linux系統(tǒng)包括armel版本和armhf版本,其中,armel版本,將編譯工具鏈arm-none-linux-gnueabi-xxx移植至Windows平臺,生成交叉編譯器和交叉調試器; armhf版本,將編譯工具鏈arm-linux-gnueabihf-xxx移植至Windows平臺,生成交叉編譯器和交叉調試器;
2)創(chuàng)建匿名管道
創(chuàng)建父進程與子進程,子進程繼承父進程的公開句柄,并在父進程創(chuàng)建一條匿名管道,父進程通過匿名管道向cmd中寫交叉編譯命令和交叉調試命令;與此同時,子進程采用讀句柄從此匿名管道中讀數(shù)據(jù),通過匿名管道建立圖形化開發(fā)與cmd聯(lián)系,進而調用交叉編譯器和交叉調試器,以實現(xiàn)圖形化開發(fā)與cmd的信息交換;
3)圖形化界面模塊
采用圖形化開發(fā)工具開發(fā)圖形化用戶界面模塊,圖形化用戶界面模塊包括人機交互模塊、控制器模塊、傳感器模塊和驅動模塊;
①人機交互模塊
人機交互模塊用于實現(xiàn)人與機器人之間的信息交換,包括人到機器人和機器人到人的信息交換兩部分,使用者通過外接裝置向機器人發(fā)送控制指令,同時機器人將當前狀態(tài)發(fā)送到人機交互模塊并在顯示屏顯示;
②控制器模塊
控制器模塊對傳感器模塊輸出的信號進行數(shù)據(jù)整合和算法處理,以確定機器人所處的外部環(huán)境狀態(tài)和當前運動狀態(tài),依此做出決策,并將決策信息傳給驅動模塊;同時,控制器模塊實時向人機交互模塊傳送機器人運動狀態(tài)及外部工作環(huán)境狀態(tài),并通過可視化技術在人機交互界面上顯示;
③驅動模塊
用于接收控制器模塊發(fā)出的信號指令,并將該信號指令通過動力學模型轉換為每個電機需要執(zhí)行的動作;同時,驅動模塊將執(zhí)行結果予以反饋至控制器模塊,供控制器模塊參考并做出相應調整;
④傳感器模塊
傳感器模塊包括激光傳感器、紅外傳感器及光電編碼器,激光傳感器用于獲取機器人前方障礙物距離信息,為建立地圖和自主避障提供數(shù)據(jù);紅外傳感器安裝在機器人后方,以獲取機器人后方障礙物距離信息,為機器人后退時避障提供信息;光電編碼器用于檢測機器人電機轉過的實際圈數(shù)從而實現(xiàn)對里程的計算;
⑤執(zhí)行機構
執(zhí)行機構為機器人本體,用于執(zhí)行驅動模塊轉換后的電機需要執(zhí)行的動作,從而完成預定的工作任務;
4)交叉編譯和調試
將通過圖形化編程生成的c程序經(jīng)過調試、編譯與鏈接生成用于在嵌入式arm開發(fā)板運行的代碼;同時根據(jù)arm開發(fā)板的軟件版本選擇相應的工具鏈,并利用匿名管道向cmd寫命令,從而實現(xiàn)對圖形化編程生成的c程序的交叉編譯和交叉調試;
5)程序下載
當交叉編譯與鏈接生成代碼后,將代碼下載至嵌入式arm開發(fā)板中,以Windows系統(tǒng)為客戶端,arm開發(fā)板為服務器,建立socket,選擇需要的代碼下載到arm開發(fā)板,從而完成機器人的各個動作,即可實現(xiàn)Windows系統(tǒng)與Linux系統(tǒng)的跨平臺編程。
在本發(fā)明中,外接裝置包括鼠標、鍵盤和霍爾遙感。
在本發(fā)明中,圖形化用戶界面模塊中人機交互模塊與控制器模塊雙向連接,控制器模塊與驅動模塊雙向連接,驅動模塊與執(zhí)行機構雙向連接,且傳感器模塊分別與控制器模塊、驅動模塊連接。
在本發(fā)明中,運行在嵌入式arm開發(fā)板上的代碼為二進制代碼。
有益效果: 本發(fā)明提供一種跨平臺圖形化開發(fā)系統(tǒng),為c語言編程基礎較弱的開發(fā)人員提供一個圖形化編程系統(tǒng),開發(fā)者不需要考慮嚴格的語法語義、也不需要花費大量的經(jīng)歷去處理程序代碼的結構問題;為不熟悉Linux軟件開發(fā)人員提供一個完整的嵌入式開發(fā)環(huán)境,有效降低從Windows到Linux跨平臺開發(fā)的難度,避免了開發(fā)人員安裝Windows+Linux雙系統(tǒng)頻繁切換;同時減小機器人系統(tǒng)的開發(fā)難度和開發(fā)周期。
附圖說明
圖1是本發(fā)明的較佳實施例中的圖形化界面模塊示意圖。
具體實施方式
為了使本發(fā)明實現(xiàn)的技術手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結合具體圖示,進一步闡述本發(fā)明。
一種機器人跨平臺的圖形化開發(fā)系統(tǒng),包括如下步驟:
1)準備資源文件
arm開發(fā)板軟件系統(tǒng)有armel版本和armhf版本兩種,針對armel版本,本實施例將編譯工具鏈arm-none-linux-gnueabi-xxx移植至Windows平臺,生成交叉編譯器和交叉調試器;針對armhf版本,將編譯工具鏈arm-linux-gnueabihf-xxx移植至Windows平臺,生成交叉編譯器和交叉調試器;
2)創(chuàng)建匿名管道
創(chuàng)建父進程與子進程,子進程繼承父進程的公開句柄,并在父進程創(chuàng)建一條匿名管道,父進程通過匿名管道向cmd中寫交叉編譯命令和交叉調試命令;與此同時,子進程用讀句柄從此匿名管道中讀數(shù)據(jù),通過匿名管道建立圖形化開發(fā)與cmd聯(lián)系,進而調用交叉編譯器和交叉調試器,以實現(xiàn)圖形化開發(fā)與cmd的信息交換;
3)圖形化界面模塊
采用圖形化開發(fā)工具開發(fā)圖形化用戶界面模塊,圖形化用戶界面模塊包括人機交互模塊、控制器模塊、傳感器模塊和驅動模塊;
①人機交互模塊
人機交互模塊用于實現(xiàn)人與機器人之間的信息交換,包括人到機器人和機器人到人的信息交換兩部分,編程人員可通過鼠標、鍵盤和霍爾遙感向機器人發(fā)送控制指令,同時機器人通過TCP/IP方式將當前狀態(tài)發(fā)送到人機交互模塊并在顯示屏顯示;
②控制器模塊
控制器模塊對傳感器模塊輸出的信號進行數(shù)據(jù)整合和算法處理,以確定機器人所處的外部環(huán)境狀態(tài)和當前運動狀態(tài),依此做出決策,并將決策信息傳給驅動模塊;同時,控制器模塊實時向人機交互層傳送機器人運動狀態(tài)及外部工作環(huán)境狀態(tài),并通過可視化技術在人機交互界面上顯示;
③驅動模塊
驅動模塊用于接收控制器模塊發(fā)出的信號指令,并將該信號指令通過動力學模型轉換為每個電機需要執(zhí)行的動作;同時,驅動模塊將執(zhí)行結果予以反饋至控制器模塊,供控制器模塊參考并做出相應調整;
④傳感器模塊
傳感器模塊包括激光傳感器、紅外傳感器及光電編碼器,激光傳感器用于獲取機器人前方障礙物距離信息,為建立地圖和自主避障提供數(shù)據(jù);紅外傳感器安裝在機器人后方,以獲取機器人后方障礙物距離信息,為機器人后退時避障提供信息;光電編碼器用于檢測機器人電機轉過的實際圈數(shù)從而實現(xiàn)對里程的計算;
⑤執(zhí)行機構
執(zhí)行機構主要是機器人本體,用于執(zhí)行驅動模塊轉換后的電機需要執(zhí)行的動作,從而完成預定的工作任務;
4)交叉編譯和調試
將通過圖形化編程生成的c程序經(jīng)過調試、編譯與鏈接生成用于在嵌入式arm開發(fā)板運行的二進制代碼;根據(jù)arm開發(fā)板的軟件版本選擇相應的工具鏈,利用匿名管道向cmd寫命令,從而實現(xiàn)對圖形化編程生成的c程序的交叉編譯和交叉調試;
5)程序下載
當交叉編譯與鏈接生成二進制代碼后,將二進制代碼通過TCP/IP一鍵下載至嵌入式arm開發(fā)板中,以Windows系統(tǒng)為客戶端,arm開發(fā)板為服務器,建立socket,選擇需要的二進制代碼下載到arm開發(fā)板,從而完成機器人的各個動作,即可實現(xiàn)Windows系統(tǒng)與Linux系統(tǒng)的跨平臺編程。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術人員應該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內。本發(fā)明要求保護范圍由所附的權利要求書及其等效物界定。