朱宏鋒 莊嚴(yán)
1. 知識(shí)背景:
機(jī)器人技術(shù)和應(yīng)用是當(dāng)今國(guó)際技術(shù)發(fā)展的熱點(diǎn)之一,它集成了電子、機(jī)械、計(jì)算機(jī)硬件、軟件、人工智能等眾多科技領(lǐng)域的尖端技術(shù)。目前,國(guó)內(nèi)外的大部分高校都開(kāi)展了機(jī)器人技術(shù)的教學(xué)和科研工作。本論文基于營(yíng)口理工學(xué)院科研項(xiàng)目《基于人工智能圖像識(shí)別技術(shù)在分揀機(jī)器人中的應(yīng)用和開(kāi)發(fā)》,以模塊化機(jī)器人為技術(shù)背景研究基于圖形化的機(jī)器人編程系統(tǒng)。圖形化編程作為一種易于高效易懂的開(kāi)發(fā)方式,具有友好的人機(jī)交互界面、易于理解的程序操作和開(kāi)發(fā)流程、易于操作的程序編譯下載和參數(shù)設(shè)置的方式,能夠提高學(xué)生對(duì)機(jī)器人技術(shù)學(xué)習(xí)的興趣和編程開(kāi)發(fā)的速度。與此同時(shí),通過(guò)可視化編程所開(kāi)發(fā)的程序具有較高的穩(wěn)定性,兼容性和可擴(kuò)展性。因此機(jī)器人的可視化編程技術(shù)目前被廣泛的應(yīng)用在本科機(jī)器人專業(yè)教學(xué)中。
2.圖形化編程系統(tǒng)的軟件框架
機(jī)器人的可視化編程工具其目的是為大專院校學(xué)生使用,易于理解的同時(shí)要兼具兼容性、穩(wěn)定性和可擴(kuò)展性。因此編程系統(tǒng)需要滿足以下要求:
模塊化設(shè)計(jì):
開(kāi)發(fā)系統(tǒng)的各個(gè)編程模塊需要獨(dú)立開(kāi)發(fā)、并提供標(biāo)準(zhǔn)的程序接口,從而實(shí)現(xiàn)每個(gè)模塊功能的同時(shí)還可通過(guò)各模塊的組合生成可執(zhí)行的程序,同時(shí)利于后期軟件的更新升級(jí)功能,具有可擴(kuò)展性。
軟件編程和硬件環(huán)境分離:
針對(duì)不同的機(jī)器人不同的硬件配置如果通過(guò)硬件設(shè)計(jì),其語(yǔ)言和參數(shù)設(shè)置都需要修改,因此在設(shè)計(jì)可視化編程系統(tǒng)時(shí)需要將可視化開(kāi)發(fā)功能和硬件程序生成模塊功能分離,這種設(shè)計(jì)方式針對(duì)于不同硬件其上層界面是完全相同的,降低了學(xué)習(xí)和開(kāi)發(fā)的成本。[1]
3. 軟件模塊和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)
可視化編程系統(tǒng)的實(shí)現(xiàn)需要對(duì)軟件和硬件進(jìn)行模塊封裝和功能抽象,將不同的功能進(jìn)行分離使系統(tǒng)具有對(duì)多種設(shè)備和應(yīng)用領(lǐng)域的擴(kuò)展性。在實(shí)現(xiàn)可視化編程系統(tǒng)的技術(shù)需要具有以下特征:
設(shè)計(jì)的封裝性:
將可視化編程工具的功能進(jìn)行獨(dú)立的封裝,每一種編程功能提供通用的接口以可視化作為表現(xiàn)方式,即軟件系統(tǒng)實(shí)現(xiàn)的圖形工具項(xiàng)。抽象的實(shí)現(xiàn)通過(guò)編程模塊、圖形程序、可視化數(shù)據(jù)和屬性,最終通過(guò)代碼生成器參數(shù)針對(duì)于模塊化機(jī)器人硬件環(huán)境的類C語(yǔ)言代碼,下載到機(jī)器人中實(shí)現(xiàn)其對(duì)應(yīng)的設(shè)計(jì)功能。[2]
功能的模塊化:
根據(jù)所要實(shí)現(xiàn)的不同功能的類型進(jìn)行模塊化分類和設(shè)計(jì),使其實(shí)現(xiàn)編程系統(tǒng)的低耦合、高內(nèi)聚的特征。模塊化設(shè)計(jì)降低了系統(tǒng)的復(fù)雜性,利于軟件的復(fù)用。在實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)中一般采用以下的功能模塊劃分來(lái)實(shí)現(xiàn)對(duì)應(yīng)的功能:
動(dòng)作功能模塊,實(shí)現(xiàn)電機(jī)的參數(shù)設(shè)置、液晶顯示的內(nèi)容、聲音播放以及LED燈的開(kāi)關(guān)功能。
流程控制模塊,實(shí)現(xiàn)軟件編程基本語(yǔ)法和控制流程,包括程序的開(kāi)始、等待、循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)以及切換和終端。
傳感器控制模塊,實(shí)現(xiàn)采集外界環(huán)境或內(nèi)部變量的信號(hào)和狀態(tài),包括程序塊按鈕、顏色傳感器、陀螺儀傳感器、電機(jī)旋轉(zhuǎn)傳感器、溫度傳感器、計(jì)時(shí)器、觸碰傳感器、超聲波傳感器、聲音傳感器等外部設(shè)備。
數(shù)據(jù)操作模塊,實(shí)現(xiàn)了軟件編程的基本數(shù)據(jù)、邏輯運(yùn)算和操作符的功能。包括變量、常量的定義和實(shí)現(xiàn)、邏輯運(yùn)算、數(shù)學(xué)運(yùn)算、位運(yùn)算和隨機(jī)數(shù)等運(yùn)算功能。
基于數(shù)據(jù)流的數(shù)據(jù)交互方式:
圖形化編程方式使用數(shù)據(jù)流作為信息和數(shù)據(jù)的交互方法,即當(dāng)某個(gè)模塊所參與計(jì)算和處理的數(shù)據(jù)流到達(dá)后程序?qū)?yīng)的功能模塊才被調(diào)用執(zhí)行對(duì)應(yīng)的功能。同時(shí)整個(gè)開(kāi)發(fā)系統(tǒng)的功能也是基于數(shù)據(jù)流工作的,僅當(dāng)所有模塊的數(shù)據(jù)全部到達(dá),才進(jìn)行設(shè)計(jì)程序的解釋并生成對(duì)應(yīng)的硬件可執(zhí)行代碼下載到模塊機(jī)器人中。在編譯的過(guò)程中首先根據(jù)每個(gè)功能模塊所負(fù)責(zé)的功能將其轉(zhuǎn)化為類C語(yǔ)言的代碼,完成軟件層的功能。后續(xù)的硬件環(huán)境層根據(jù)對(duì)應(yīng)模塊化機(jī)器人的硬件環(huán)境對(duì)編譯的代碼進(jìn)行進(jìn)一步的處理編譯,會(huì)根據(jù)對(duì)應(yīng)的硬件不同環(huán)境進(jìn)行參數(shù)設(shè)置和編譯代碼。這種方式使開(kāi)發(fā)者不再需要學(xué)習(xí)硬件命令和針對(duì)不同設(shè)備的參數(shù)設(shè)置,使軟件編程完全獨(dú)立硬件環(huán)境,從而提高了開(kāi)發(fā)的效率和程序的穩(wěn)定性。[3]
4.結(jié)語(yǔ):
本文分析了目前應(yīng)用型本科的模塊化機(jī)器人教育和課程安排所采用的可視化編程系統(tǒng)的軟件框架和功能實(shí)現(xiàn)??偨Y(jié)了當(dāng)前廣泛使用的可視化編程開(kāi)發(fā)系統(tǒng)的技術(shù)特點(diǎn)和實(shí)現(xiàn)方式。隨著我國(guó)人工智能和機(jī)器人在教育,服務(wù),制造,運(yùn)輸?shù)雀黝I(lǐng)域的廣泛應(yīng)用,在工科院校的本科教學(xué)階段中大力發(fā)展機(jī)器人技術(shù)和編程開(kāi)發(fā)課程勢(shì)在必行。后續(xù)的機(jī)器人編程還將兼具互聯(lián)網(wǎng)化,遠(yuǎn)程控制和信息收集處理等功能,可視化編程系統(tǒng)脫離了以往針對(duì)硬件編程的約束,降低了入門者的學(xué)習(xí)成本,提高開(kāi)發(fā)的效率和程序的擴(kuò)展性,將在后續(xù)機(jī)器人開(kāi)發(fā)和應(yīng)用中發(fā)揮越來(lái)越大的作用。
參考文獻(xiàn):
[1]邱長(zhǎng)伍,曹其新.機(jī)器人圖形化編程與三維仿真環(huán)境[J].機(jī)器人,2005,27(5):436-441.
[2]劉昱,王立福.一種面向圖形化編程的軟件設(shè)計(jì)方法[J].計(jì)算機(jī)科學(xué),1997(1):73-76.
[3]朱興,IDE集成GCC編譯器的方法[J].指揮控制與仿真,2007(5) :105-107+120.