999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MiroSot大場地足球機器人系統的軟件體系結構研究

2008-12-31 00:00:00景征駿
電腦知識與技術 2008年34期

摘要:為提高MiroSot大場地(11vs11)足球機器人系統的實時性,在分析集控式足球機器人系統的原理以及大場地項目特點的基礎上,建立了大場地足球機器人系統的客戶機/服務器(C/S)模式體系結構。該體系結構通過采用內核同步機制、消息映射等多線程技術和基于Socket的網絡通訊技術實現了雙攝像頭的采集結構和客服模式的雙機通信。其次,提出多級緩沖區的數據管理方式,保證了系統處理數據以及客戶機與服務器之間傳遞數據的實時性和一致性。

關鍵詞:足球機器人;大場地;C/S模式;多線程;多級緩沖

中圖分類號:TP242文獻標識碼:A文章編號:1009-3044(2008)34-1725-03

Study on Software Architecture of Robot Soccer System for MiroSot Large-League

WANG Bo1,2, JING Zheng-jun2

(1.College of Information Engineering, Yangzhou University, Yangzhou 225009, China; 2.Department of Computer Science and Engineering, Jiangsu Teachers University of Technology, Changzhou 213001,China)

Abstract: To improving the real-time of robot soccer system for MiroSot Large-League, this paper proposes and constructs its architecture based on the Client and Server model while analysing the principles of controlled robot soccer systems and thecharactistics of MiroSot Large-League. Using multithreading technique including kernel synchronization system and windows message mapping and adapting network programming based on the Socket achieve the dual cameras capturing construction and communications between the client and server. Then, this paper proposes the data managing way of multi-buffer so as to transfer data correctly between two PCs and to make the system real-time and consistency.

Key words: robot soccer; large playground; client-server model; multi-threads; multi-buffers

1 引言

目前,實物的足球機器人主要包括分布控制式(自主式)足球機器人和集中控制式(集控式)足球機器人,而集控式足球機器人主要是指FIRA(Federationof International Robot Soccer Association)創立并發起的微型機器人MiroSot(Micro-Robot World Soccer Tournament)和Robocup的小型機器人。本文討論的MiroSot大場地足球機器人系統是由機器人小車、視覺、決策、無線通訊四個子系統組成的位置閉環自動控制系統。該系統是主機通過對攝像頭采集的視覺數據進行目標識別并做出決策處理,然后發出命令給場上的機器人,機器人根據命令做出行動反應。“球員”間的信息溝通采用集中感知(視覺)代替了分別感知,并加入了圖像采集與處理環節和無線通信環節。這種系統突出了計算機視覺與機電一體化以及計算機應用技術問題,是向實物機器人足球比賽邁出的第一步[1]。

2 MiroSot大場地足球機器人系統平臺的特點

MiroSot大場地項目具有與其他項目不同的鮮明的特征:超大規模的比賽場地(4400mm×2800mm)和場上“球員”數量的成倍增加(11vs11)。隨著場地尺寸的加大和場上機器人小車數量的增加,系統中各個部分要處理的數據量都在成倍的增加。

足球機器人系統運行時,每秒鐘要處理幾十幀以上的畫面,在畫面之間的間隔時間內不僅要完成視覺識別,還要完成機器人的策略選擇、運動控制等整套工作[2]。因此,實現MiroSot11VS11大場地足球機器人系統的難點,除了如何滿足系統執行的準確性要求外,就是如何提高系統的執行效率,即系統的實時性。系統的執行效率是機器人精確“跑位”的前提,更是系統穩定運行的基礎。目前,已有不少文獻針對大場地系統的某個部分進行了研究,如視覺子系統的識別算法、決策子系統的模型等[3-6]。然而,為了提高系統的執行效率,除了要改進系統各個部分的硬件結構和算法設計,更關鍵的是要為大場地足球機器人系統構建一個合理的系統體系結構,讓系統的各個子系統之間協調工作,各部分之間的數據能快速傳遞。

3 基于C/S模式的大場地足球機器人系統的體系結構

C/S模式體系結構主要是以并行處理的思想將大場地足球機器人系統中的任務進行合理的分解,并使用兩臺計算機來同時處理,以達到提高系統執行效率的目的。如圖1所示,根據整個系統的邏輯功能將任務進行分解,采用讓一臺主機負責視覺任務,另一臺主機負責決策和指令發送任務的系統構成方式。在這種雙機并行處理的系統結構中,兩臺PC通過網線連接來進行通信。其中,主機PC2負責驅動雙攝像頭的圖像采集和整場圖像中的目標識別,在識別完一幀后將信息傳送給主機PC1,PC1在接受到每一幀數據信息后就做出決策處理和指令傳送的工作。在該結構中,根據上位機數據的流向和承擔的任務來看,PC2是整個系統的數據源頭,既是數據的獲得者又是數據的發送者,而PC1則是數據的接受者和決策者。所以,可以稱PC2為客戶機(Client),而PC1為決策服務器(Server)。

4 系統C/S模式的軟件實現

4.1 系統C/S模式的軟件體系結構

根據對大場地足球機器人系統C/S模式的體系結構分析,構建了如圖2所示的軟件體系結構的系統實現方案。從軟件體系結構圖中可知,客戶端PC1上的視覺子系統和服務器PC2上的決策子系統都必須是一個并行的、多線程的應用程序。

在該方案中,客戶機的視覺子系統進程上有三個線程:GUI(界面)線程、圖像采集線程、圖像處理線程。其中GUI線程為主線程,它負責界面處理、系統數據的初始化以及產生子線程等工作,而圖像采集線程、圖像處理線程是后臺的工作線程并通過系統的調度來并發執行的。服務器的決策子系統進程上也是三個線程:GUI(界面)線程、伺服線程、決策線程。其中GUI線程也是主線程,主要是啟動和關閉服務器進程,并在與客戶機通信時實時的更新當前的狀態。伺服線程是負責不斷的接收客戶端傳送過來的數據并通知決策線程。決策線程會在同步機制下和伺服線程協調工作,對接收到的數據進行決策,并向機器人小車發出指令。

這一方案的關鍵就是要建立一個穩定而高效的同步機制,以實現對應用程序內的多個線程的觸發與調度以及相互間的通信,同時保證位于不同主機的進程能實時通信和獨立運行。

4.2 “供應者-消費者”模式的線程同步

在該方案中客戶端視覺子系統的后臺線程(圖像采集線程與圖像處理線程)和決策服務器的后臺線程(伺服線程-決策線程)都是“供應者――消費者”模式[7]:圖像采集線程(提供數據)——圖像處理線程(處理數據),伺服線程(提供數據)——決策線程(處理數據)。為了使線程的觸發更為靈活,線程調度的可控性更強,將操作系統的內核同步機制與Windows消息機制以及全局變量相結合[8],從而形成了一種全新的應用線程同步模型。由于在視覺子系統進程和決策服務器進程的實現過程中采用了相同的線程同步機制,所以下面就只詳細地敘述圖像采集線程與圖像處理線程之間的同步過程。

1) 為了保持各個線程的同步,防止系統資源的泄漏,客戶端GUI主線程中主要工作有以下幾點:

① 初始數字攝像頭的驅動代碼,對畫面的亮度、色度、曝光進行調節。采集色標的顏色,為圖像采集做好準備。本系統使用Basler公司提供的攝像頭驅動程序開發包中的BCAM類。

② 與服務器建立連接,并向服務器端發送決策所需的初始化信息。

③ 創建兩個動態子線程,并分配資源。

④ 定義系統消息WM_GRAB_STOPPED、WM_GRAB_FINISHED以及相應的消息處理函數,這兩個消息均有采集線程發出。消息WM_GRAB_FINISHED是通知攝像頭驅動,表示采集的數據已經被取走,下一幀數據可以存入。消息WM_GRAB_STOPPED以便通知終止采集,從而使系統釋放各個線程資源,保證系統安全結束。

⑤ 定義全局標志量g_bOCROk,該標志量主要是為了線程在對數據緩沖區進行存、取數據時,保持處理數據的連續性。

2) 圖像采集線程是動態子線程,是獲取數據的起始線程,圖像處理子線程是由它來激活的。該采集線程負責接收GDI主線程的命令(如系統開始、結束等)。在系統開始后,采集線程等待攝像頭數據驅動的觸發事件GrabImageEvent來激活并獲取采集端口的一幀圖像數據,然后將數據存入圖像信息緩沖區,同時,此時設置觸發NewDataEvent事件來激活圖像處理線程。該線程的同步流程如圖3所示。另外,由于大場地系統使用了兩個攝像頭采集圖像,為保證采集兩幅圖像的時間沒有差異,采集線程中采用了串行的方式獲取圖像緩沖區中的數據。

3) 在圖像數據處理線程等待的NewBufferAvailableEvent 事件被采集線程觸發后,它將進入數據處理模塊。首先,它將從圖像數據緩沖區中獲得新一幀的圖像數據,如果緩沖區不為空,則取出數據進行信息識別,并將識別的結果通過LAN傳給決策服務器。如果緩沖區為空,則再次等待有新一幀數據的觸發事件。在此過程中,通過全局標志量g_bOk來保持存取數據的一致性和處理數據的連續性。該線程的同步流程如圖4所示。

4) 采集線程作為系統的數據源頭,是它激活了識別線程,與之相對應,識別線程就應該隨著采集線程結束而結束,也就是說,識別線程退出的事件將由采集線程來觸發。在采集線程收到QuitEvent事件后,它在結束前向主線程發出安全退出消息WM_GRAB_STOPPED,而主線程再通過 Windows系統消息映射機制來觸發其他靜態子線程的退出事件,并釋放各個系統資源。采用這種“事件觸發,消息回調”的方式結束各個子線程,最大限度的保證了前臺的處理用戶界面的GUI線程與后臺的工作線程之間的獨立性,從而使系統能快速的響應用戶的操作指令,而且也提高了系統運行時的穩定性。

4.3 雙機通信

客戶端與服務器端的通訊主要分為兩個部分:系統初始化的通信和系統運行過程中的數據通信。由圖2所示的軟件結構可知,在系統初始化時客戶端和服務器端的聯系主要有他們的用戶界面線程負責,確保兩端正確的連接,并且將初始化的信息傳給決策服務器,對決策系統進行初始化。初始信息主要包括:開球方、開球方式、場地的選擇等。在系統運行過程中,客戶端的識別線程和服務器端的接收數據伺服線程完成數據的傳送和接收。客戶端向服務器端傳送的數據主要是視覺子系統識別出的目標信息,通信時的協議數據包如表1所示。

表1 雙機通訊的數據包

4.4 數據緩沖區

由于集控式足球機器人系統是一個實時系統,而且各個線程處理的數據類型和處理數據的時間是不一樣的,為了能讓數據在各個線程之間進行平滑流動,并保持高度的連續性和時效性,在實現該系統時采用了多級緩沖的方式來完成線程之間的匹配。系統中設置了三個緩存區:圖像采集緩沖區、識別緩沖區和決策緩沖區。

4.4.1 圖像采集緩沖區

對于圖像采集緩沖區來說,這個空間存儲的是攝像頭獲取的最原始的圖像信息。一幅圖像可以看作是由多個點來組成的,因此,在計算機中就可以用點陣的形式來進行存儲。而在內存中表示點陣最好的數據結構就是用數組。在大場地上,攝像頭拍攝的一幅圖像,我們用的分辨率是780×580。為了操作的方便,表示圖像緩沖區的數組采用了指針數組的方式(如圖5所示)。

對于識別緩沖區和決策緩沖區是采用了循環鏈表和動態內存相結合的數據結構,并且利用隊列的先進先出(FIFO)思想進行設計的。下面就對此進行詳細的分析和討論。

4.4.2 循環鏈隊列

本系統中有最為重要的兩個數據緩沖區:識別數據緩沖區和決策數據緩沖區。識別數據緩沖區存放的是由采集線程從圖像緩沖區里獲取圖像點陣數據后,并經過格式轉換而形成的位圖信息,并由識別線程進行獲取和識別。決策緩沖區存放的數據是經過識別出來的機器人和球的具體的位置信息。而雖然這兩個緩沖區中所存放的數據的類型不一樣,但都采用了循環鏈隊列數據結構來實現的。根據循環鏈隊列的特性并結合系統的要求,設計封裝了CDataQueue類,其靜態的UML數據模型如圖6所示。該循環鏈中可以存放并維護的結點數據類型NewDataStruct有兩種:ImageDataNode結構或DecisionDataNode結構,其中,在創建識別數據緩沖區循環鏈隊列時,ImageDataNode結構體是循環隊列鏈表結點的數據結構,該結點的PBYTE類型指針變量pData將指向存儲某一幀圖像數據的內存空間。而在創建決策數據緩存區循環鏈隊列時,DecisionDataNode結構體為該隊列鏈的結點數據結構,該結點的PBYTE類型指針變量pData將指向存儲圖像處理后識別出的某一幀數據信息。該循環鏈表隊列在系統運行的操作過程中的內存示意如圖7所示。

5 結論

大場地集控式足球機器人系統是一個復雜的智能體系統,在C/S模式的系統框架中,系統的客戶端(Client)完成了視覺部分的功能,系統的服務器端(Server)則實現了決策部分和指令發送的功能。同時,通過一系列的技術保證了兩部分之間數據傳遞的同步。經反復實驗以及多次國際和國內賽事的情況表明,本文所提出的基于C/S模式的大場地足球機器人系統軟件體系結構是符合大場地比賽需求的,且具有良好的系統穩定性和實時性。

(下轉第1734頁)

(上接第1727頁)

參考文獻:

[1] 洪炳熔.機器人足球比賽—發展人工智能的里程碑[J].電子世界,2000(4):4-5.

[2] 洪炳熔,韓學東,孟偉.機器人足球比賽研究[J].機器人,2003,25(4):373-374.

[3] 吳憲祥,郭寶龍.集控式足球機器人關鍵技術的研究[J].計算機工程,2005,31(17):168-170.

[4] Lee D H,Hwang K H,Kim D E,et al.A Dual Camera Based Vision Processing System of ICRO(KINGGO) For the Large League MIROSOT[C].Singapore 2005 FIRA Robot World Congress,2005.

[5] 徐心和,薛方正,馮挺.集控式足球機器人決策與控制系統設計與開發[J].機器人,2005,27(5):431-433.

[6] Wong C C,Teng H C,Wu C H.Role Construction and Recognition Design for FIRA MiroSot X-Large League[C].KOREA 2004 FIRA Robot World Congress,2004.

[7] Koo M H,Lee Y K,Lee K H,et al.Development of Robot Soccer System for 11-A-SIDE MiroSot[C].2004 FIRA Robot World Congress,2004.

[8] Beveridge J,Wiener R.Multithreading Applications in Win32[M].武漢:華中科技大學出版社,2002.

[9] Richter J.Programming Applications for Microsoft Windows[M].北京:機械工業出版社,2000.

主站蜘蛛池模板: 日本精品中文字幕在线不卡| 思思99热精品在线| 制服丝袜亚洲| 毛片免费在线| 久久久久久高潮白浆| 欧洲日本亚洲中文字幕| 日韩毛片免费视频| 亚洲第一黄色网址| 狠狠色成人综合首页| 99精品伊人久久久大香线蕉| 精品无码日韩国产不卡av| 国产精品黑色丝袜的老师| 欧美精品高清| 日本精品αv中文字幕| 欧美中文字幕无线码视频| 极品私人尤物在线精品首页| 日韩av无码精品专区| 在线看AV天堂| 中文无码精品a∨在线观看| 四虎成人免费毛片| 91麻豆精品视频| 免费在线看黄网址| 在线观看国产小视频| 国产一区在线观看无码| 永久免费无码成人网站| 看av免费毛片手机播放| 欧美一级夜夜爽| 久久婷婷综合色一区二区| 欧美全免费aaaaaa特黄在线| 亚洲日韩日本中文在线| 波多野结衣一区二区三区四区视频| 国产人在线成免费视频| 中文字幕伦视频| 亚洲一区二区约美女探花| 热re99久久精品国99热| 精品福利视频网| 欧美日韩第三页| 亚洲第一成年网| 久久午夜夜伦鲁鲁片不卡| 亚洲成肉网| 亚洲永久免费网站| 青青久视频| 欧美高清国产| 亚洲一区二区成人| 91美女视频在线观看| 香蕉国产精品视频| 国产91视频免费观看| 国产精品欧美日本韩免费一区二区三区不卡| 波多野结衣无码AV在线| 99精品视频在线观看免费播放| 亚洲日韩精品伊甸| 欧美国产三级| 91成人免费观看| 国产99视频精品免费视频7| 色播五月婷婷| 久久久久国产一区二区| 另类专区亚洲| 欧美精品在线免费| 伊人久久大线影院首页| 国产成人免费手机在线观看视频 | 成人国产免费| 久久精品只有这里有| 成人欧美在线观看| 日韩精品一区二区深田咏美| 一本无码在线观看| 国产成人亚洲无吗淙合青草| 欧美一级在线播放| 五月天婷婷网亚洲综合在线| 五月天综合网亚洲综合天堂网| 97国产在线播放| AV网站中文| 激情无码视频在线看| 亚洲乱强伦| 国产精品乱偷免费视频| 99国产精品免费观看视频| 亚洲人成影院午夜网站| 露脸国产精品自产在线播| 日本影院一区| 欧美性精品| 日本国产精品一区久久久| 亚洲午夜福利在线| 免费a级毛片视频|