標(biāo)準(zhǔn)范圍:
本標(biāo)準(zhǔn)規(guī)定了模塊化和網(wǎng)絡(luò)化構(gòu)建的機(jī)器人產(chǎn)品的軟件資源的功能封裝技術(shù),機(jī)器人軟件開(kāi)發(fā)領(lǐng) 域的組件模型和相應(yīng)的設(shè)計(jì)規(guī)范,以及機(jī)器人組件的集成方法。
本標(biāo)準(zhǔn)適用于機(jī)器人軟件開(kāi)發(fā)領(lǐng)域。非模塊化、網(wǎng)絡(luò)化機(jī)器人系統(tǒng)中的機(jī)器人軟件開(kāi)發(fā)和設(shè)計(jì)亦可參照使用本標(biāo)準(zhǔn)。
本標(biāo)準(zhǔn)針對(duì)機(jī)器人產(chǎn)品軟件資源的功能組件化需求,采用模塊化設(shè)計(jì)思想規(guī)定了模塊化和網(wǎng)絡(luò)化 構(gòu)建的機(jī)器人軟件功能組件框架,包括功能組件的接口描述和狀態(tài)轉(zhuǎn)換,組件化機(jī)器人軟件系統(tǒng)的設(shè)計(jì)方法,為機(jī)器人軟件設(shè)計(jì)者和使用者提供參考。
本標(biāo)準(zhǔn)有助于建立一個(gè)良好的機(jī)器人產(chǎn)業(yè)的生態(tài)環(huán)境。開(kāi)發(fā)人員可以將來(lái)自不同供應(yīng)商的機(jī)器人功能組件結(jié)合到一個(gè)的應(yīng)用程序中,從而使得機(jī)器人和機(jī)器人軟件的開(kāi)發(fā)變得方便和快捷,使得機(jī)器人系統(tǒng)變得靈活和高效。
執(zhí)行狀態(tài)管理:
組件執(zhí)行狀態(tài)描述如下。
———執(zhí)行環(huán)境:是組件內(nèi)線程的抽象表示。線程根據(jù)當(dāng)前狀態(tài)執(zhí)行組件內(nèi)相關(guān)的工作任務(wù)。
———行為內(nèi)核:負(fù)責(zé)組件的內(nèi)部邏輯處理。具體包含一個(gè)有限狀態(tài)機(jī)(FSM)和一個(gè)內(nèi)部邏輯單元,用于計(jì)算和處理不同時(shí)刻組件所處的狀態(tài)模式。
———狀態(tài)自檢:組件可以對(duì)自身狀態(tài)自檢,當(dāng)出現(xiàn)異常時(shí)通過(guò)異常接口對(duì)外通知。
組件狀態(tài)變遷:
創(chuàng)建狀態(tài):
當(dāng)前機(jī)器人功能組件已經(jīng)被實(shí)例化,但是還沒(méi)有完全初始化。處于創(chuàng)建狀態(tài)的機(jī)器人功能組件可以進(jìn)行初始化操作,若初始化成功,則組件變遷到非激活狀態(tài)。
非激活狀態(tài):
當(dāng)前機(jī)器人功能組件已經(jīng)完全初始化,但是沒(méi)有被任何的執(zhí)行環(huán)境所調(diào)用。處于創(chuàng)建狀態(tài)的機(jī)器 人功能組件可以進(jìn)行激活操作,若激活成功,則組件變遷到激活狀態(tài)。
激活狀態(tài):
當(dāng)前機(jī)器人功能組件被至少一個(gè)執(zhí)行環(huán)境調(diào)用,通常當(dāng)前機(jī)器人功能組件的核心功能處于執(zhí)行狀態(tài)。處于激活狀態(tài)的機(jī)器人功能組件可以進(jìn)行失活操作,若失活成功,則組件變遷到非激活狀態(tài)。處于激活狀態(tài)的機(jī)器人功能組件若遇到執(zhí)行錯(cuò)誤,則組件將變遷到與環(huán)境相對(duì)應(yīng)的錯(cuò)誤狀態(tài)。
錯(cuò)誤狀態(tài):
當(dāng)前機(jī)器人功能組件在一個(gè)給定的執(zhí)行環(huán)境遇到問(wèn)題時(shí),處于錯(cuò)誤狀態(tài)的機(jī)器人功能組件可以被重置,如果重置成功,機(jī)器人功能組件的狀態(tài)將會(huì)變遷到非激活狀態(tài),如果重置失敗將還是保持錯(cuò)誤狀態(tài)。