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

        ?

        基于位置關(guān)聯(lián)的競賽機(jī)器人任務(wù)序列優(yōu)化軟件結(jié)構(gòu)設(shè)計

        2018-01-03 22:29:07徐文
        軟件工程 2018年11期

        徐文

        摘 要:MCU端軟件結(jié)構(gòu)設(shè)計質(zhì)量是影響循跡機(jī)器人工作效率、適應(yīng)突發(fā)任務(wù)變更和異常狀態(tài)能力的重要因素,但目前普適性的改進(jìn)手段不多。本文通過遙控競賽機(jī)器人任務(wù)特征分析,設(shè)計基于位置關(guān)聯(lián)的控制設(shè)備與機(jī)器人間通訊協(xié)議,使用鏈表進(jìn)行任務(wù)節(jié)點的封裝和序列構(gòu)造,最終基于位置信息實施控制流程。結(jié)果表明,任意給定任務(wù)序列能夠準(zhǔn)確實現(xiàn)。相對順序式控制流程,該軟件結(jié)構(gòu)和關(guān)聯(lián)流程設(shè)計在路徑優(yōu)化的同時還能適應(yīng)任務(wù)序列的重整定。

        關(guān)鍵詞:循跡機(jī)器人;任務(wù)序列;軟件結(jié)構(gòu)

        中圖分類號:TP249 文獻(xiàn)標(biāo)識碼:A

        文章編號:2096-1472(2018)-11-31-03

        1 引言(Introduction)

        目前循跡機(jī)器人的應(yīng)用研究側(cè)重于本體組成設(shè)計[1]、路徑優(yōu)化設(shè)計[2]、穩(wěn)定驅(qū)動設(shè)計[3,4]、傳感器選型設(shè)計[5]等領(lǐng)域,機(jī)器人本體MCU(Microcontroller Unit)控制軟件的結(jié)構(gòu)設(shè)計關(guān)注偏低。本文以一款遙控智能賽車(以下稱“循跡機(jī)器人”)、安卓遙控手機(jī)(以下稱“移動控制端”)為實驗對象,以賽道地圖、任務(wù)集合為需求輸入,通過任務(wù)節(jié)點的特征分析,給出有效的循跡機(jī)器人控制軟件結(jié)構(gòu)設(shè)計方案。

        2 任務(wù)分析(Task analysis)

        2.1 任務(wù)概述

        利用移動控制端軟件,控制循跡機(jī)器人完成賽道上的各項任務(wù),如圖1所示。賽道地圖背景色為灰色無光;賽道為白色,寬30cm;尋跡線為黑色,寬3cm;循跡機(jī)器人以循跡線為賽道在行駛的同時完成移動控制端下發(fā)的各工作點任務(wù),以入車庫為任務(wù)終點。圖中A、B、C三個位置為工作點停車線,A、B、兩處可按指令前進(jìn)到工作線位置,C點則通過測距或固定位移方式前進(jìn),停車后執(zhí)行任務(wù)。1#車庫為起點,2~4#為候選入庫停車位。

        2.2 任務(wù)特征細(xì)分

        通過對循跡機(jī)器人(含移動控制端)任務(wù)特征的類屬、執(zhí)行設(shè)備、通訊方式、賽道位置和參數(shù)等維度項的分析,歸結(jié)為表1所示的任務(wù)特征細(xì)分。類屬的候選值有:A循跡路徑驅(qū)動、B信號檢測、C攝像及視頻nfc信息處理、D賽道指令,其中A、B、D類任務(wù)由循跡機(jī)器人執(zhí)行,C類由移動控制端執(zhí)行。執(zhí)行設(shè)備包括:A下位機(jī)(循跡機(jī)器人)、B上位機(jī)(移動控制端)。通訊方式的候選值有:A由上位機(jī)向下位機(jī)單向發(fā)送、B由下位機(jī)向上位機(jī)單向發(fā)送、C雙向傳輸(存在握手需求:即機(jī)器人接受命令并執(zhí)行后需向安卓移動端返回執(zhí)行結(jié)果)、D無需通訊。賽道位置由命令幀或者數(shù)據(jù)報幀決定,表1不作定義。

        2.3 硬件結(jié)構(gòu)

        循跡機(jī)器人的硬件系統(tǒng)構(gòu)成包括:核心板、循跡驅(qū)動板、任務(wù)板和云臺攝像頭等部件。核心板采用宏晶STC15系列IAP15F2K61S2為MCU,通過電纜分別與其他部件連接,Keil C51為開發(fā)平臺。循跡采用8組紅外對管(TCR T5000),驅(qū)動采用L298N器件,用PWM信號驅(qū)動兩側(cè)車輪電機(jī)。任務(wù)板包括超聲波測距、光強(qiáng)度檢測、光敏檢測、紅外收發(fā)等器件。

        3 MCU軟件結(jié)構(gòu)(MCU software structure)

        文獻(xiàn)[6,7]在機(jī)器人本體MCU上采用順序式控制,缺少對于任務(wù)序列的結(jié)構(gòu)性變更、隨機(jī)性調(diào)整的靈活性,軟件的冗余度偏高。本文根據(jù)任務(wù)特征細(xì)分和循跡機(jī)器人硬件結(jié)構(gòu)設(shè)計,MCU軟件結(jié)構(gòu)設(shè)計包括:與移動控制端的通訊協(xié)議、任務(wù)節(jié)點數(shù)據(jù)結(jié)構(gòu)、主控流程。

        3.1 通訊協(xié)議

        移動控制端通過WIFI轉(zhuǎn)串口方式向循跡機(jī)器人發(fā)ASCⅡ格式命令幀,包括下列字段:命令幀起始字符、命令協(xié)議字符(必要時附帶2位十進(jìn)制參數(shù)數(shù))、通訊方式字符(同表1)、機(jī)器人位置(同表2)字符、命令幀結(jié)尾字符。

        循跡機(jī)器人向移動控制端發(fā)送數(shù)據(jù)報幀包括下列字段:數(shù)據(jù)幀起始字符、傳感器數(shù)據(jù)(4位十進(jìn)制數(shù))、信號協(xié)議字符(命令幀中的信號采集命令協(xié)議字符)、機(jī)器人位置(同表2)、數(shù)據(jù)幀結(jié)尾字符。

        循跡機(jī)器人的運(yùn)行狀態(tài)及位置如表2所示。圖1中的三個工作位置中A、B點均有停車線和工作線,C點停車線即工作線。

        3.2 任務(wù)節(jié)點數(shù)據(jù)結(jié)構(gòu)

        循跡機(jī)器人通常在起點處獲得移動控制端下發(fā)的任務(wù)序列,在賽道上亦可隨機(jī)收取新任務(wù)并插入到任務(wù)序列中。異常狀態(tài)(如,出界)下,循跡機(jī)器人可主動插入數(shù)據(jù)報來重構(gòu)任務(wù)序列。根據(jù)循跡機(jī)器人任務(wù)節(jié)點的離散、有序、與位置關(guān)聯(lián)的特點,選擇鏈表表征任務(wù)節(jié)點數(shù)據(jù)結(jié)構(gòu),并實現(xiàn)任務(wù)序列的構(gòu)造與管理。按照循跡機(jī)器人任務(wù)特征細(xì)分(表1),以及命令幀格式、數(shù)據(jù)報幀格式的設(shè)計,且便于反向追溯,循跡任務(wù)鏈表設(shè)計為雙鏈表:

        #define uchar unsigned char //類型定義

        uchar Robot_Status ; //機(jī)器人賽道狀態(tài)、位置

        typedef struct { //循跡任務(wù)鏈表數(shù)據(jù)結(jié)構(gòu)

        char Type; //類屬(缺省值:A)

        char Executor; //執(zhí)行設(shè)備(缺省值:A)

        char CommunicationMode; //通訊方式

        char Command; //命令字符

        uchar Location; //機(jī)器人位置:與執(zhí)行命令關(guān)聯(lián)的Robot_Status位置值,點動命令為空

        uchar Status; //機(jī)器人狀態(tài):當(dāng)前循跡任務(wù)結(jié)束時的Robot_Status狀態(tài)值

        struct Task_Tracking *link_next; //直接后繼循跡任務(wù)的指針

        struct Task_Tracking *link_before; //直接前驅(qū)循跡任務(wù)的指針

        } Task_Tracking;

        Task_Tracking * TrackingNow; //循跡任務(wù)鏈表當(dāng)前節(jié)點指針

        根據(jù)賽道路徑上位置、狀態(tài)的有限可枚舉特征,全局變量Robot_Status的侯選值選取自表2。循跡除外的任務(wù)(以下稱多任務(wù))與機(jī)器人位置關(guān)聯(lián)。參照循跡任務(wù)鏈表和命令協(xié)議字符設(shè)計,多任務(wù)鏈表設(shè)計為單鏈表:

        typedef struct {//多任務(wù)鏈表數(shù)據(jù)結(jié)構(gòu)

        ……

        } Task_Multiple;

        Task_Multiple* MultipleHead; //多任務(wù)鏈表表頭指針

        Task_Multiple中包括:類屬(非A值)、執(zhí)行設(shè)備、通訊方式、命令字符、命令字符附帶2位十進(jìn)制數(shù)、傳感器數(shù)據(jù)4位十進(jìn)制數(shù)、傳感器信號協(xié)議字符、機(jī)器人位置、直接后繼節(jié)點指針等。

        移動控制端下發(fā)任務(wù)序列后循跡機(jī)器人構(gòu)建循跡任務(wù)鏈表和多任務(wù)鏈表,并對循跡任務(wù)鏈表基于位置屬性排序,此時TrackingNow和MultipleHead均為表頭指針。而后進(jìn)入主控流程,通過串口中斷隨機(jī)收新任務(wù)時則插入到任務(wù)鏈表中。

        3.3 主控流程

        在完成系統(tǒng)時鐘、各端口、外設(shè)、定時器、鏈表(初始時節(jié)點為空)及指針等全局變量初始化后,循跡機(jī)器人主控流程如圖2所示,闡述如下:

        0.查詢收到的任務(wù)字符。如有且為A類任務(wù)則插入到循跡任務(wù)鏈表,如有且為其他任務(wù)則插入到多任務(wù)鏈表。

        1.從MultipleHead開始,向鏈表尾部方向移動指針方式查找Location值為空的節(jié)點。未找到則跳轉(zhuǎn)至步驟5。

        2.找到則執(zhí)行節(jié)點任務(wù),完畢后校驗CommunicationMode值。其值不為C跳至步驟4。

        3.值為C,按照表4的結(jié)構(gòu)構(gòu)造一個數(shù)據(jù)報,并通過串口轉(zhuǎn)WiFi發(fā)送至移動控制端。

        4.刪除該節(jié)點,返回步驟1。

        5.校驗TrackingNow,值為空則返回步驟1。

        6.執(zhí)行節(jié)點任務(wù),完畢后用當(dāng)前狀態(tài)位置更新Status并修正Robot_Status。

        7.從MultipleHead開始,向鏈表尾部方向移動指針方式查找Location值與Robot_Status相匹配的節(jié)點,未找到則跳轉(zhuǎn)至步驟11。

        8.找到則執(zhí)行節(jié)點任務(wù),完畢后校驗CommunicationMode值。其值不為C跳至步驟10。

        9.值為C,按照表4的結(jié)構(gòu)構(gòu)造一個數(shù)據(jù)報,并通過串口轉(zhuǎn)WiFi發(fā)送至移動控制端。

        10.刪除該節(jié)點,返回步驟7。

        11.校驗Robot_Status,為異常狀態(tài)或者結(jié)束狀態(tài)值(表5中的1、2、3、13)則按照表4的結(jié)構(gòu)構(gòu)造一個數(shù)據(jù)報,并通過串口轉(zhuǎn)WiFi發(fā)送至移動控制端。

        12.將TrackingNow更新為后繼節(jié)點指針,返回步驟0。

        4 結(jié)論(Conclusion)

        以上MCU端軟件結(jié)構(gòu)設(shè)計經(jīng)試驗證明,能夠有效保障循跡機(jī)器人完成其總體任務(wù)目標(biāo),并在隨機(jī)接收臨時任務(wù)和工作狀態(tài)異常時實時調(diào)整任務(wù)序列,實現(xiàn)任務(wù)序列可整定功能。目前循跡機(jī)器人得到較廣泛用[8],本設(shè)計試圖為結(jié)構(gòu)化生產(chǎn)環(huán)境中提高移動機(jī)器人控制軟件的執(zhí)行效率、降低設(shè)計成本提供案例和建設(shè)思路。

        參考文獻(xiàn)(References)

        [1] 劉強(qiáng),王超然,汪神岳,等.基于嵌入式系統(tǒng)的智能取書機(jī)器人設(shè)計[J].測控技術(shù),2018,37(3):36-40.

        [2] 李元,王石榮,于寧波.基于RGB-D信息的移動機(jī)器人SLAM和路徑規(guī)劃方法研究與實現(xiàn)[J].智能系統(tǒng)學(xué)報,2018,13(3):445-451.

        [3] 黃剛.實時修正偏移量的循跡機(jī)器人控制系統(tǒng)研究與實現(xiàn)[J].儀器儀表學(xué)報,2015,36(11):2538-2546.

        [4] 張志美,程立英,趙以恒,等.基于模糊PID控制算法的導(dǎo)盲機(jī)器人研究[J].沈陽師范大學(xué)學(xué)報(自然科學(xué)版),2015,33(1):81-85.

        [5] 牛國臣,許開魯.基于線性CCD的類人機(jī)器人循跡系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2018,41(5):133-136;140.

        [6] 劉家春,劉利,劉鑫,等.基于競賽的醫(yī)療服務(wù)機(jī)器人控制系統(tǒng)設(shè)計[J].山東理工大學(xué)學(xué)報(自然科學(xué)版),2018,32(2):6-111.

        [7] 張少華,劉富,劉利,等.面向競賽的果園噴藥機(jī)器人設(shè)計[J].機(jī)械工程與自動化,2018(2):153-156.

        [8] 劉立軍.基于單片機(jī)智能循跡機(jī)器人控制系統(tǒng)的設(shè)計與實現(xiàn)[J].儀器儀表用戶,2017,24(5):42-45;68.

        作者簡介:

        徐 文(1967-),男,碩士,高級工程師.研究領(lǐng)域:嵌入式應(yīng)用,自動控制.

        男性一插就想射是因为啥| 久久99精品国产麻豆不卡| 国产无遮挡又黄又爽又色| 亚洲日产无码中文字幕| 北岛玲亚洲一区二区三区| 天天综合天天爱天天做| 手机看片福利一区二区三区| 女高中生自慰污免费网站| av男人的天堂手机免费网站 | 欧美日本精品一区二区三区| 人妻少妇久久中文字幕一区二区| 伊人精品无码AV一区二区三区| 日日噜噜夜夜久久密挑| 国产精品女老熟女一区二区久久夜| 久久精品国产亚洲av四虎| 亚洲AV成人无码国产一区二区| 国产免费一区二区三区三| 日韩人妻中文无码一区二区| 国产免费无码一区二区三区| 国产成年无码aⅴ片在线观看| 人妻人妇av一区二区三区四区| 国产精品99精品久久免费| 极品美女扒开粉嫩小泬| 人妻少妇精品一区二区三区| 风韵人妻丰满熟妇老熟女视频| 国产性生交xxxxx无码| 2021国产成人精品国产| 亚洲一区二区三区毛片| 99久久无色码中文字幕人妻蜜柚| 99热久久这里只精品国产www | 亚洲av无码成人yellow| 亚洲精品区二区三区蜜桃| 国产视频自拍一区在线观看| 亚洲av无码专区电影在线观看| 对白刺激的老熟女露脸| 亚洲av激情一区二区| 国产精品久久久久9999赢消| YW亚洲AV无码乱码在线观看| 国产一区二区三区在线观看黄| 国产人妻大战黑人20p| 欧美激情二区|