亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        機(jī)器人控制軟件框架中實(shí)時(shí)任務(wù)模塊的設(shè)計(jì)與實(shí)現(xiàn)

        2013-01-22 05:25:20李曉明孫辰晨
        機(jī)電工程 2013年2期
        關(guān)鍵詞:任務(wù)調(diào)度實(shí)時(shí)性調(diào)用

        李曉明,孫辰晨

        (浙江理工大學(xué)機(jī)械與自動(dòng)控制學(xué)院,浙江杭州310018)

        0 引言

        現(xiàn)代的機(jī)電系統(tǒng)已經(jīng)朝著智能化、網(wǎng)絡(luò)化、分布式的方向發(fā)展,其對(duì)軟件的開(kāi)發(fā)也提出了更高的要求。以機(jī)器人技術(shù)[1-4]為例,單個(gè)機(jī)器人本身就是一個(gè)復(fù)雜的機(jī)電系統(tǒng),需要通過(guò)自身的軟件設(shè)計(jì)來(lái)實(shí)現(xiàn)各種不同功能,適應(yīng)不同的環(huán)境。課題組研究了適用于機(jī)器人此類復(fù)雜機(jī)電系統(tǒng)的軟件開(kāi)發(fā)方法和開(kāi)發(fā)模式,提出了一種輕量級(jí)的基于組件的軟件框架[5-8],可簡(jiǎn)化移動(dòng)機(jī)器人應(yīng)用程序的結(jié)構(gòu),使設(shè)計(jì)工作變得省時(shí)。該架構(gòu)基于組件的軟件工程,保證最大限度的模塊化和可重用性。

        該框架最大的不足是系統(tǒng)的實(shí)時(shí)性問(wèn)題。以機(jī)器人控制為例,在現(xiàn)有軟件平臺(tái)上,研究者盡管可以設(shè)計(jì)出各個(gè)功能模塊,通過(guò)模塊之間的相互協(xié)作和數(shù)據(jù)交換實(shí)現(xiàn)諸如導(dǎo)航、避障等控制任務(wù),但由于其采用多線程實(shí)現(xiàn)機(jī)制,具體功能模塊在實(shí)際運(yùn)行時(shí)無(wú)法確定自己的運(yùn)行時(shí)刻,這對(duì)于一些有實(shí)時(shí)性要求的應(yīng)用場(chǎng)合來(lái)說(shuō)是不符合其要求的。實(shí)時(shí)性要求系統(tǒng)必須對(duì)外來(lái)事件在限定時(shí)間內(nèi)做出反應(yīng)。例如,足球機(jī)器人的策略系統(tǒng)軟件,其功能模塊運(yùn)行必須在兩次圖像采樣之間完成,且功能模塊的運(yùn)行周期要求必須穩(wěn)定和精確,否則諸如預(yù)測(cè)模塊、運(yùn)動(dòng)控制、規(guī)劃等模塊就會(huì)失效。大部分機(jī)器人控制系統(tǒng)對(duì)實(shí)時(shí)性要求非常嚴(yán)格,各控制任務(wù)必須在一定的時(shí)間內(nèi)完成,否則各任務(wù)之間會(huì)產(chǎn)生資源和時(shí)間上的競(jìng)爭(zhēng),造成控制程序產(chǎn)生錯(cuò)誤指令、死鎖甚至崩潰,對(duì)機(jī)器人的性能造成嚴(yán)重影響。所以機(jī)器人實(shí)時(shí)控制部分必須精確安排各任務(wù)的執(zhí)行順序和執(zhí)行時(shí)間,避免上述情況發(fā)生。

        本研究將在上述軟件架構(gòu)的基礎(chǔ)上加入實(shí)時(shí)任務(wù)模塊的設(shè)計(jì),完善系統(tǒng),使其可以實(shí)現(xiàn)機(jī)器人控制的實(shí)時(shí)性。

        1 模塊化機(jī)器人軟件框架

        軟件整個(gè)框架的結(jié)構(gòu)包括:框架的模型、模塊的接口定義、模塊的加載和配置、模塊之間的通訊[9],即Platform平臺(tái)、Module模塊和Wire通訊連線等。

        Platform 類負(fù)責(zé)模塊的加載、運(yùn)行、停止以及銷毀,分析模塊的配置并建立模塊之間的通訊。

        在軟件框架內(nèi)部,以模型Module的概念來(lái)表示一個(gè)功能模塊。一個(gè)軟件系統(tǒng)由許多個(gè)Module 組成,Module之間保證最大程度的獨(dú)立性,每個(gè)Module可以獨(dú)立運(yùn)行于Platform 上(以線程的方式),并通過(guò)端口與外部進(jìn)行通訊。研究者通過(guò)合理劃分Module 的功能,以及不同模塊之間通過(guò)通訊管道進(jìn)行組合,可以實(shí)現(xiàn)不同的系統(tǒng)應(yīng)用,這也是組件編程思想的主要部分。這種模型驅(qū)動(dòng)編程機(jī)制源于Auslander[10-11]提出的基于任務(wù)和狀態(tài)的機(jī)電系統(tǒng)軟件模型以及多智能體的基本模型。

        平臺(tái)中組件之間的通訊采用了基于管道技術(shù)的通訊模型。管道資源由平臺(tái)分配,組件在平臺(tái)中注冊(cè)名字唯一的通訊管道,就可以向管道中寫(xiě)入數(shù)據(jù)或者接收該管道中的數(shù)據(jù)。開(kāi)發(fā)者采用這種方式可以方便地實(shí)現(xiàn)多個(gè)組件的協(xié)作。

        該軟件系統(tǒng)框架的優(yōu)點(diǎn)是,開(kāi)發(fā)者可以專注于組件的開(kāi)發(fā),并可復(fù)用已經(jīng)開(kāi)發(fā)的組件,通過(guò)XML 配置文件對(duì)組件進(jìn)行組合,實(shí)現(xiàn)自己所需要的具體控制應(yīng)用。但由于每個(gè)組件是以單獨(dú)線程的方式在運(yùn)行,對(duì)于機(jī)器人控制系統(tǒng)而言,在任務(wù)這一層次上的管理較為困難;此外,每個(gè)模塊功能的執(zhí)行順序依賴于線程的同步,整體執(zhí)行效率比較低,而整個(gè)系統(tǒng)的控制周期是難以確定的,因此難以應(yīng)用于對(duì)實(shí)時(shí)性有一定要求的機(jī)器人應(yīng)用中。

        2 軟件框架中實(shí)時(shí)任務(wù)模塊的設(shè)計(jì)

        2.1 實(shí)時(shí)性需求

        在復(fù)雜機(jī)電系統(tǒng)或者機(jī)器人等應(yīng)用中通常會(huì)涉及到實(shí)時(shí)控制的問(wèn)題,從簡(jiǎn)單的溫度控制的應(yīng)用到復(fù)雜的機(jī)器人視覺(jué)伺服應(yīng)用等。由于存在著實(shí)時(shí)控制,要求研究者在開(kāi)發(fā)這些軟件的時(shí)候必須考慮實(shí)時(shí)性問(wèn)題。

        對(duì)于任何一個(gè)計(jì)算機(jī)控制系統(tǒng)而言,其控制系統(tǒng)設(shè)計(jì)的一個(gè)重要前提都是采樣周期T。采樣周期決定了控制系統(tǒng)的許多性能,甚至穩(wěn)定性。同理,在實(shí)際控制中精確穩(wěn)定的采樣(控制)周期對(duì)控制系統(tǒng)的實(shí)際控制效果也同樣非常重要。首先,如果在實(shí)際軟件開(kāi)發(fā)中不考慮控制周期的穩(wěn)定性問(wèn)題,那么在實(shí)際控制中由于采樣周期的變化,原先設(shè)計(jì)的控制算法可能不會(huì)達(dá)到預(yù)想的控制效果,甚至失效;其次,即使考慮了控制周期的穩(wěn)定性,但如果實(shí)際執(zhí)行時(shí)控制周期與設(shè)計(jì)時(shí)的采樣周期不一致,同樣會(huì)導(dǎo)致控制系統(tǒng)效果變差或者失控。

        以常用的PID控制器為例:

        當(dāng)T的值發(fā)生變化時(shí),控制器的輸出u也會(huì)發(fā)生變化,并最終影響系統(tǒng)的穩(wěn)定性。因此,對(duì)于面向?qū)崟r(shí)控制的機(jī)電系統(tǒng)軟件框架而言,實(shí)時(shí)性需求應(yīng)當(dāng)包括兩點(diǎn):①能夠提供準(zhǔn)確的采樣周期;②能夠提供穩(wěn)定的采樣周期。

        2.2 模塊化實(shí)時(shí)軟件框架設(shè)計(jì)

        加入實(shí)時(shí)任務(wù)模塊的設(shè)計(jì)后,軟件框架的總體結(jié)構(gòu)圖如圖1所示。

        該設(shè)計(jì)將Platform升級(jí)為具有實(shí)時(shí)功能的運(yùn)行平臺(tái),將組件升級(jí)為包含實(shí)時(shí)任務(wù)接口的組件模型,同時(shí)保留原組件模型為非實(shí)時(shí)組件。Platform平臺(tái)將主要包括實(shí)時(shí)時(shí)鐘設(shè)計(jì)、實(shí)時(shí)任務(wù)調(diào)度設(shè)計(jì)、組件管理模型設(shè)計(jì)、通訊模型設(shè)計(jì)等關(guān)鍵內(nèi)容。其中,組件管理模型設(shè)計(jì)、通訊模型設(shè)計(jì)和原模型基本相同,下面著重介紹實(shí)時(shí)時(shí)鐘和實(shí)時(shí)任務(wù)調(diào)度的設(shè)計(jì)。

        (1)實(shí)時(shí)時(shí)鐘模塊。為了解決控制中的實(shí)時(shí)性問(wèn)題,本研究在平臺(tái)模型中設(shè)置了實(shí)時(shí)時(shí)鐘模塊。實(shí)時(shí)時(shí)鐘模塊的實(shí)現(xiàn)在嵌入式系統(tǒng)中比較容易,但是在基于PC 的系統(tǒng)上很難保證其絕對(duì)的實(shí)時(shí)性,尤其是運(yùn)行于諸如Windows等非實(shí)時(shí)的操作系統(tǒng)上時(shí)。一般情況下,在PC上運(yùn)行的控制系統(tǒng)屬于監(jiān)督控制范疇,即屬于軟實(shí)時(shí)系統(tǒng),其實(shí)時(shí)性要求并非十分苛刻,因此可以采用宿主操作系統(tǒng)提供的時(shí)鐘信號(hào),例如在Win?dows平臺(tái)下的多媒體時(shí)鐘中斷,可以提供精度為1 ms的時(shí)鐘周期,可以滿足大多數(shù)基于PC 的控制需求。例如在基于PC 的運(yùn)動(dòng)控制系統(tǒng)中,當(dāng)運(yùn)動(dòng)出現(xiàn)異常時(shí),運(yùn)動(dòng)控制卡能自動(dòng)進(jìn)入保護(hù)狀態(tài),因此對(duì)于該類控制問(wèn)題,精度為1 ms的采樣周期完全符合要求。事實(shí)上,對(duì)于此類應(yīng)用,精度更差的普通定時(shí)器往往也能滿足要求[12]。但是對(duì)于工業(yè)上的一些實(shí)時(shí)性要求相對(duì)高的實(shí)時(shí)任務(wù),Windows 系統(tǒng)的多媒體擴(kuò)展庫(kù)MMSYSTEM.LIB 提供的多媒體定時(shí)函數(shù)已經(jīng)不能滿足系統(tǒng)需要,例如點(diǎn)膠控制系統(tǒng)[13]。

        (2)實(shí)時(shí)任務(wù)調(diào)度模塊。實(shí)時(shí)時(shí)鐘模塊產(chǎn)生精度為1 ms且指定時(shí)間間隔的時(shí)鐘信號(hào),實(shí)時(shí)任務(wù)調(diào)度模塊負(fù)責(zé)當(dāng)檢測(cè)到時(shí)鐘信號(hào)時(shí)通過(guò)實(shí)時(shí)組件的接口調(diào)用組件中的實(shí)時(shí)任務(wù)程序進(jìn)行執(zhí)行。在設(shè)計(jì)時(shí),本研究要求這些實(shí)時(shí)任務(wù)程序中的代碼應(yīng)盡量做到高效,執(zhí)行時(shí)間短;同時(shí)嚴(yán)格禁止在實(shí)時(shí)任務(wù)模塊中執(zhí)行非實(shí)時(shí)的工作。任務(wù)管理模型中采用了動(dòng)態(tài)的數(shù)據(jù)結(jié)構(gòu)來(lái)維護(hù)平臺(tái)中注冊(cè)的所有實(shí)時(shí)組件,并可以通過(guò)設(shè)計(jì)算法動(dòng)態(tài)地更新不同組件實(shí)時(shí)任務(wù)的優(yōu)先級(jí)和調(diào)用順序,將重要的模塊優(yōu)先執(zhí)行。實(shí)時(shí)任務(wù)調(diào)度模塊嚴(yán)格監(jiān)控每個(gè)任務(wù)的執(zhí)行時(shí)間,會(huì)對(duì)執(zhí)行時(shí)間過(guò)長(zhǎng)的任務(wù)降低其優(yōu)先級(jí),如果時(shí)間片即將用完,將會(huì)停止執(zhí)行后續(xù)任務(wù),保證下一時(shí)鐘信號(hào)來(lái)臨的時(shí)候可以進(jìn)行下一控制周期高優(yōu)先級(jí)的任務(wù)。實(shí)時(shí)任務(wù)調(diào)度示意圖如圖2所示。

        上述實(shí)時(shí)任務(wù)的實(shí)現(xiàn)方法與點(diǎn)膠控制系統(tǒng)中的方法大致相同,都是利用定時(shí)器產(chǎn)生一定周期的定時(shí)中斷,在中斷中執(zhí)行實(shí)時(shí)任務(wù)。不同的是在點(diǎn)膠控制系統(tǒng)中,實(shí)時(shí)任務(wù)執(zhí)行完畢后可自行結(jié)束中斷;但本研究中實(shí)時(shí)時(shí)鐘控制周期一旦確定,即使實(shí)時(shí)任務(wù)結(jié)束后仍有空閑的時(shí)間片,也不能結(jié)束當(dāng)前中斷。

        圖1 具有實(shí)時(shí)功能的軟件框架模型

        圖2 實(shí)時(shí)任務(wù)調(diào)度

        3 實(shí)時(shí)框架的實(shí)現(xiàn)

        3.1 實(shí)時(shí)時(shí)鐘模塊的實(shí)現(xiàn)

        本研究所設(shè)計(jì)的面向機(jī)電系統(tǒng)的軟件框架是基于Java 平臺(tái)開(kāi)發(fā)的,Java 平臺(tái)本身所提供的定時(shí)器顯然無(wú)法滿足前述實(shí)時(shí)性要求,因此必須采用操作系統(tǒng)所提供的精度更高的定時(shí)器中斷。為此,本研究在Windows平臺(tái)上設(shè)計(jì)實(shí)現(xiàn)了精度為1 ms的定時(shí)器,并通過(guò)JNI 技術(shù)將其與Java 平臺(tái)結(jié)合起來(lái),從而實(shí)現(xiàn)了在框架內(nèi)的實(shí)時(shí)時(shí)鐘模型。

        具體模型如圖3所示。

        圖3 Java平臺(tái)的實(shí)時(shí)時(shí)鐘實(shí)現(xiàn)

        在該系統(tǒng)模型中,本研究采用了Java/C 混合編程技術(shù),其中核心是JNI。首先,Java 的實(shí)時(shí)時(shí)鐘模塊在初始化時(shí)通過(guò)JNI調(diào)用響應(yīng)的基于C的多媒體時(shí)鐘初始化函數(shù)進(jìn)行初始化工作,最重要的是設(shè)置時(shí)鐘周期,以及設(shè)置回調(diào)函數(shù)入口地址等;其次Java 的實(shí)時(shí)時(shí)鐘模塊啟動(dòng)時(shí),也要調(diào)用相應(yīng)C函數(shù)啟動(dòng)多媒體定時(shí)器計(jì)數(shù);啟動(dòng)完畢后,多媒體定時(shí)器會(huì)按照預(yù)置的時(shí)間間隔定期調(diào)用C設(shè)置的回調(diào)函數(shù),而回調(diào)函數(shù)則通過(guò)JNI 與Java 虛擬機(jī)通訊,找到實(shí)時(shí)時(shí)鐘模塊并調(diào)用其時(shí)鐘觸發(fā)方法。此時(shí),所有在Java平臺(tái)中注冊(cè)監(jiān)聽(tīng)實(shí)時(shí)時(shí)鐘消息的所有對(duì)象都會(huì)得到通知。

        3.2 實(shí)時(shí)時(shí)鐘開(kāi)發(fā)過(guò)程簡(jiǎn)述

        本研究所采用的工具是Sun公司創(chuàng)建的Java De?velopment Kit(JDK)版本1.6.0_22,以及微軟公司的Vi?sual C++6 開(kāi)發(fā)環(huán)境。本研究設(shè)計(jì)中的Java 語(yǔ)言與C語(yǔ)言相互調(diào)用,這就要用到JNI。JNI是Java Native In?terface 的縮寫(xiě),JNI 是一種機(jī)制,有了它就可以在Java程序中調(diào)用其他本地代碼,或者使本地代碼調(diào)用Java層的代碼。

        在Java程序中,首先要編寫(xiě)帶有native方法的類,要在該類中聲明所調(diào)用的庫(kù)名稱System.LoadLibrary(String libname);在該類中只需要聲明將要調(diào)用的本機(jī)方法,關(guān)鍵字為native,不需要具體實(shí)現(xiàn),實(shí)現(xiàn)放在由C編寫(xiě)的DLL文件中實(shí)現(xiàn)。

        本研究編寫(xiě)好帶有本機(jī)方法的TimerManager 類后,進(jìn)行編譯,生成對(duì)應(yīng)的class 文件。再用javah scc.TimerManager 語(yǔ)句編譯,就會(huì)生成對(duì)應(yīng)的scc_Timer?Manager.h頭文件。

        之后就可運(yùn)用該頭文件中的函數(shù)原型:JNIEXPORT void JNICALL Java_scc_TimerManager_timer(JNIEnv*env,jobject obj)來(lái)編寫(xiě)所需要的DLL文件,來(lái)產(chǎn)生固定周期的時(shí)鐘信號(hào)。

        雖然Win 平臺(tái)下可視化開(kāi)發(fā)工具如VC、Delphi、C++Builder 等都有專用的定時(shí)器控件Timer,而且使用很方便,可以實(shí)現(xiàn)一定的定時(shí)功能,但最小計(jì)時(shí)精度僅為55 ms,且定時(shí)器消息在多任務(wù)操作系統(tǒng)中的優(yōu)先級(jí)很低,不能得到及時(shí)響應(yīng),往往不能滿足實(shí)時(shí)控制環(huán)境下的應(yīng)用。不過(guò)Microsoft公司在Win32 API函數(shù)庫(kù)中已經(jīng)為用戶提供了一組用于高精度計(jì)時(shí)的底層函數(shù),如果用戶使用得當(dāng),計(jì)時(shí)精度可到1 ms。這個(gè)計(jì)時(shí)精度對(duì)于一般的實(shí)時(shí)系統(tǒng)控制完全可以滿足要求。具體應(yīng)用時(shí),研究者可以通過(guò)調(diào)用timeSetEvent()函數(shù),將需要周期性執(zhí)行的任務(wù)定義在LpTimeProc回調(diào)函數(shù)中,從而完成所需處理的事件。需要注意的是,任務(wù)處理的時(shí)間不能大于所設(shè)置的時(shí)鐘周期。定時(shí)器使用完畢后,應(yīng)及時(shí)調(diào)用timeKillEvent()將之釋放。

        前面分析過(guò)Java層和JNI層(即C語(yǔ)言模塊)應(yīng)該可以互相交互,通過(guò)Java 層中的native 函數(shù)可以進(jìn)入到JNI 層,而JNI 層的代碼則通過(guò)JNIEnv 操作Java 層中函數(shù)。JNIEnv是一個(gè)與線程相關(guān)的代表JNI環(huán)境的結(jié)構(gòu)體。JNIEnv實(shí)際上提供了一些JNI系統(tǒng)函數(shù)。通過(guò)這些系統(tǒng)函數(shù)可以調(diào)用java 層中的函數(shù)或者操作jobect。GetObjectClass()方法可以通過(guò)對(duì)象jobect 直接得到其所對(duì)應(yīng)的類的定義。GetMethodID()方法可以得到所需要用到函數(shù)的id。而CallXXXMethod()函數(shù)則實(shí)現(xiàn)了java類中相應(yīng)方法的調(diào)用。這樣就完成了JNI層向java層的調(diào)用。要注意的是這里JNI層中調(diào)用的方法實(shí)際上是java中對(duì)象的成員函數(shù),如果要調(diào)用static 函數(shù)可以使用CallStaticXXXMethod()。這種機(jī)制實(shí)現(xiàn)了native層回調(diào)Java代碼完成相應(yīng)操作。

        該系統(tǒng)實(shí)現(xiàn)中,在回調(diào)函數(shù)void CALLBACK TimeProc()中調(diào)用CallXXXMethod(JNIEnv *env,jclass clazz)方法,從而調(diào)用java 程序中的TimerMan?ager 類中的方法來(lái)觸發(fā)一次時(shí)鐘事件,產(chǎn)生周期為100 ms(可配置)的時(shí)鐘。

        3.3 實(shí)時(shí)任務(wù)調(diào)度模塊的實(shí)現(xiàn)

        實(shí)時(shí)時(shí)鐘模塊解決了實(shí)時(shí)性問(wèn)題,但是大型控制應(yīng)用往往都是多任務(wù)的,為實(shí)現(xiàn)多任務(wù)的實(shí)時(shí)運(yùn)行,就需要利用實(shí)時(shí)任務(wù)調(diào)度模塊。

        本研究對(duì)實(shí)時(shí)任務(wù)的管理通過(guò)一種類似時(shí)間片的方式進(jìn)行。首先,實(shí)時(shí)任務(wù)模塊在初始化時(shí)需要在實(shí)時(shí)任務(wù)調(diào)度模塊中注冊(cè)實(shí)時(shí)任務(wù)信息,主要包括該實(shí)時(shí)任務(wù)的執(zhí)行周期和任務(wù)序號(hào);任務(wù)調(diào)度模塊根據(jù)這些信息確定時(shí)鐘觸發(fā)的頻率以及任務(wù)模塊的調(diào)用順序。在任務(wù)執(zhí)行時(shí),實(shí)時(shí)任務(wù)調(diào)度模塊會(huì)創(chuàng)建優(yōu)先級(jí)較高的線程來(lái)單獨(dú)運(yùn)行實(shí)時(shí)任務(wù);而且其他非實(shí)時(shí)模塊的任務(wù)仍然在其他的線程中運(yùn)行,由于Java線程管理采用的是搶占式,可以保證實(shí)時(shí)模塊的優(yōu)先運(yùn)行。

        對(duì)于超時(shí)運(yùn)行時(shí)間片的實(shí)時(shí)模塊,目前的策略是監(jiān)測(cè)并給出警告。實(shí)時(shí)任務(wù)模塊的設(shè)計(jì)者應(yīng)當(dāng)保證實(shí)時(shí)模塊的任務(wù)能夠在最小的時(shí)間片長(zhǎng)度內(nèi)運(yùn)行完畢。對(duì)于因?yàn)檫\(yùn)算量巨大且無(wú)法優(yōu)化從而需要較多計(jì)算時(shí)間的實(shí)時(shí)任務(wù),只能通過(guò)增大時(shí)間片的方法解決,此時(shí)整個(gè)系統(tǒng)的控制周期也會(huì)隨之增大。

        控制周期、實(shí)時(shí)時(shí)鐘周期和時(shí)間片之間的關(guān)系如圖4所示。

        從圖4 中可以看出,時(shí)間片是任務(wù)執(zhí)行的最小單位,一個(gè)任務(wù)只能占用一個(gè)時(shí)間片,時(shí)間片是由任務(wù)調(diào)度模塊在一個(gè)實(shí)時(shí)時(shí)鐘周期內(nèi)分配給各個(gè)實(shí)時(shí)任務(wù)模塊的,其時(shí)長(zhǎng)是可變的,取決于任務(wù)的數(shù)量和實(shí)時(shí)時(shí)鐘周期的大??;實(shí)時(shí)時(shí)鐘周期是確定的不可改變的,控制周期則由多個(gè)時(shí)鐘周期組成,對(duì)于大部分實(shí)時(shí)控制系統(tǒng)而言,控制周期往往只有一個(gè),因此可以將時(shí)鐘周期設(shè)置為控制周期同樣大?。蝗缬卸鄠€(gè)實(shí)時(shí)控制對(duì)象,應(yīng)將時(shí)鐘周期設(shè)置為多個(gè)控制周期的最大公約數(shù)。

        圖4 控制周期,時(shí)鐘周期和時(shí)間片之間的關(guān)系

        4 系統(tǒng)測(cè)試

        為了測(cè)試系統(tǒng)的實(shí)時(shí)性,本研究只定義了一個(gè)實(shí)時(shí)模塊和一個(gè)非實(shí)時(shí)模塊來(lái)測(cè)試系統(tǒng)。該實(shí)時(shí)模塊只有一個(gè)實(shí)時(shí)任務(wù),其功能就是打印出運(yùn)行時(shí)的系統(tǒng)時(shí)間,通過(guò)分析其間隔的時(shí)間精度與設(shè)計(jì)時(shí)的控制周期的誤差來(lái)驗(yàn)證上述系統(tǒng)的實(shí)時(shí)性,加入非實(shí)時(shí)任務(wù)的目的是驗(yàn)證實(shí)時(shí)任務(wù)的實(shí)時(shí)性是否受非實(shí)時(shí)任務(wù)的影響。

        測(cè)試結(jié)果如圖5所示。從圖5中可以看到,第1次與第2次調(diào)用時(shí)鐘時(shí)系統(tǒng)時(shí)間間隔為98 ms,其余的時(shí)間間隔均為100 ms,與之前設(shè)定的時(shí)鐘周期一致??傻贸鼋Y(jié)論:前面設(shè)計(jì)的實(shí)時(shí)任務(wù)模塊每隔100 ms就將模塊中的實(shí)時(shí)性任務(wù)執(zhí)行一次,可以滿足整個(gè)系統(tǒng)的實(shí)時(shí)性要求。

        圖5 測(cè)試結(jié)果

        5 結(jié)束語(yǔ)

        本研究在原基于組件的機(jī)器人控制軟件框架的基礎(chǔ)上,開(kāi)發(fā)了實(shí)時(shí)任務(wù)模塊,將原系統(tǒng)改造為支持實(shí)時(shí)性軟件開(kāi)發(fā)的軟件框架,基于該框架,可以快速開(kāi)發(fā)具有實(shí)時(shí)性功能要求的控制軟件,重點(diǎn)解決了在Windows平臺(tái)上實(shí)時(shí)時(shí)鐘模塊以及實(shí)時(shí)任務(wù)調(diào)度模塊的實(shí)現(xiàn)方法。

        目前,該軟件框架正用于本課題組RoboCup 小型組足球機(jī)器人控制策略軟件的開(kāi)發(fā)中,在后續(xù)工作中,筆者將重點(diǎn)對(duì)實(shí)時(shí)任務(wù)的調(diào)度算法進(jìn)行研究,重點(diǎn)解決如何能夠發(fā)現(xiàn)用戶開(kāi)發(fā)的實(shí)時(shí)任務(wù)中存在的問(wèn)題,以及如何避免因某一實(shí)時(shí)模塊的問(wèn)題引起整個(gè)應(yīng)用程序?qū)崟r(shí)性變差的問(wèn)題等。

        (References):

        [1]陳萬(wàn)米,張 冰,朱 明,等.智能足球機(jī)器人系統(tǒng)[M].北京:清華大學(xué)出版社,2009.

        [2]李 策.基于DSP和FPGA的小型足球機(jī)器人控制系統(tǒng)的研究[D].大連:大連理工大學(xué)電子與信息工程學(xué)院,2006.

        [3]徐璟業(yè).F-180 小型足球機(jī)器人的無(wú)線通信系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2004(5):60-63.

        [4]張叢榮.足球機(jī)器人運(yùn)動(dòng)控制系統(tǒng)的研究與完善[D].沈陽(yáng):東北大學(xué)信息學(xué)院,2006.

        [5]LI Xiao-ming,JIN Yu-zhen,HU Xu-dong.An XML-driven component based Software Framework for Mobile Robotic Applications[C]//Proceedings of the 2nd IEEE/ASME Inter?national Conference on Mechatronic and Embedded Systems and Applications,MESA 2006.Beijing:[s.n.],2006.

        [6]BRUGALI D,SCANDURRA P.Component-based robotic engineering(part 1)[J].IEEE Robotics and Automation Magazine,2009,16(4):84-96.

        [7]BRUGALI D,SCANDURRA P.Component-based robotic engineering(part 2)[J].IEEE Robotics and Automation Magazine,2010,17(1):100-112.

        [8]INGHAM M,RAGNO R,WILLIAMS B.A Reactive Mod?el-based Programming Language for Robotic Space Explor?ers[C]//Proceedings of ISAIRAS-01,2001.Montered:[s.n.],2000.

        [9]胡海濤.面向?qū)ο蠹夹g(shù)在實(shí)時(shí)系統(tǒng)中的研究與應(yīng)用[D].西安:西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,2003.

        [10]AUSLANDER D M.What is mechatronics[J].IEEE/ASME Transactions on Mechatronics,1996,1(1):5-9.

        [11]AUSLANDER D M,RIDGELY J R,RINGGENBERG J D.Control Software for Mechanical Systems:Object-oriented De?sign in a Real-time World[M].北京:清華大學(xué)出版社,2004.

        [12]李曉明,肖亮亮,孫琛琛.基于VB的通用運(yùn)動(dòng)控制軟件模型設(shè)計(jì)[J].機(jī)電工程,2009,26(12):50-53.

        [13]趙翼翔,陳新度,陳 新.全自動(dòng)芯片粘片機(jī)點(diǎn)膠控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械與電子,2006(3):33-35.

        猜你喜歡
        任務(wù)調(diào)度實(shí)時(shí)性調(diào)用
        基于規(guī)則實(shí)時(shí)性的端云動(dòng)態(tài)分配方法研究
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        基于改進(jìn)NSGA-Ⅱ算法的協(xié)同制造任務(wù)調(diào)度研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        基于時(shí)間負(fù)載均衡蟻群算法的云任務(wù)調(diào)度優(yōu)化
        基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時(shí)性仿真
        航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對(duì)比
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        云計(jì)算環(huán)境中任務(wù)調(diào)度策略
        云計(jì)算中基于進(jìn)化算法的任務(wù)調(diào)度策略
        男人吃奶摸下挵进去啪啪软件| 国产丝袜免费精品一区二区 | 国产精品美女久久久久久 | 99久久综合精品五月天| 久久亚洲av成人无码国产| 日本a在线天堂| 成人午夜免费福利| 国内精品久久人妻性色av| 亚洲成人精品在线一区二区| 一本无码中文字幕在线观| 亚洲av日韩av天堂一区二区三区| 午夜成人鲁丝片午夜精品| 玖玖资源站无码专区| 国产成人精品三级在线影院| 日本一区二区三区在线| 蜜桃在线视频一区二区| 久草青青91在线播放| 欧美人与善在线com| 国产精品综合色区在线观看| 国产成人精品午夜二三区波多野 | 好吊妞视频这里有精品| 爽爽精品dvd蜜桃成熟时电影院| 精品久久无码中文字幕| 中文字幕乱码中文乱码毛片| 一区二区三区国产精品麻豆| 波多野结衣中文字幕一区二区三区| 综合色就爱涩涩涩综合婷婷| 色播久久人人爽人人爽人人片av| 女同久久精品国产99国产精品| 亚洲av永久无码精品水牛影视| 亚洲专区在线观看第三页| 国产亚洲一二三区精品| 国产精品白丝久久av网站| 亚洲欧洲∨国产一区二区三区| 国产av一区二区三区区别| 亚洲伊人久久综合精品| 大又黄又粗又爽少妇毛片| 久久精品一区一区二区乱码| 国产成人无码精品久久久免费| 国产丝袜在线精品丝袜| 乌克兰少妇xxxx做受6|