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

基于LCM的無人水面機器人軟件系統設計

2013-04-12 00:00:00管增輝馬元欒寧
現代電子技術 2013年20期

摘 要: 針對港口安全的需要,為了提高監視港口安全的水面機器人軟件系統的可靠性與實時性,提出了基于LCM的改進的機器人軟件系統設計。它可以實時采集水面機器人各傳感器參數,然后利用收集到的參數進行UPSV自身的運動控制,實現智能避障,監測港口安全等功能。在數據采集與通信方面,這套軟件系統是基于LCM進行設計的;在行為控制方面,對其進行了改進,主要采用的是IvP控制模型。

關鍵字: LCM; UPSV; 水面機器人; IvP; 實時系統

中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2013)20?0038?03

0 引 言

一個機器人軟件系統一般分成如下三部分:數據采集,狀態估計,任務執行。為了完成特定的任務,模塊與模塊間需要進行信息交互。現行的操作系統可以很方便的實現在不同計算機上組織不同軟件模塊的通信,這樣以來,就把模塊間數據交換的研究轉變成了對不同進程間的通信的研究。

本軟件采用的是基于發布/訂閱模式的LCM(Lightweight Communications and Marshalling)進行設計的,采用的是UDP多播技術進行通信[1]。LCM是一個針對開發實時性要求較高的消息傳遞系統的開發套件。采用模塊化的設計方式,不同的模塊可以運行在同一個或不同的硬件平臺上,并且不同模塊的開啟與停止互不影響[2]。此外,LCM還提供了一系列的調試工具,方便軟件開發過程中的調試。

1 LCM的基本原理

LCM主要可以分成以下幾個模塊:類型定義模塊、數據編組模塊、通信模塊、調試工具。類型定義模塊,對復合數據類型定義的語法進行了說明,LCM中的不同數據都是通過一個或多個復合數類型進行定義與聲明的;編組模塊主要功能是實現消息的編碼/解碼,經過編碼的數據都以二進制的形式進行傳遞; 通信模塊基于發布/訂閱模式的消息傳遞系統進行設計,采用UDP多播技術作為底層的通信手段。

1.1 類型定義模塊

LCM定義了一個統一的數據類型模式來定義開發過程所用到的一些數據,每一個數據類型的聲明都是一個消息結構體,并且數據類型的定義與平臺無關。下面是一個LCM進行變量聲明的一個例子:

從面可以看出,LCM允許成員變量的嵌套定義。每一個變量都會放在自己相應的filename.lcm文件中,如struct waypoint_t會在文件waypoint_t.lcm中進行定義。LCM中的支持的基本數據類型有整型:int8_t,int16_t,int32_t,int64_t;浮點型:float,double;字符串類型:string;布爾類型: boolean。

另外,LCM還支持用戶自定義的數組類型。數組可采用固定長度和可變長度的方式進行定義。

1.2 數據編組模塊

數據編組將用戶定義的數據編碼成二進制流,這一部分是由LCM自身進行處理的,用戶可以不用關心內部是如何實現的。編組模塊還可以給特定的消息模塊添加一個“數字簽名”處理,“數字簽名”是一個占8 B的變量,它的計算是通過一個Hash函數來求得的。LCM客戶端接收到一個消息時,它首先會解析消息中的“數字簽名”,如果這個“簽名”與它所期待的不一樣,那么客戶端就會報告錯誤。

1.3 通信模塊

LCM中采用的UDP多播技術,它會把接收到的消息全都發送到所有的客戶端,然后客戶端會忽略掉那些所不關心的數據。LCM最大的消息大小為4 GB,它提供了一種最大可能的包傳遞機制,可以最大可能的降低數據傳遞過程中的丟包現象。LCM中的消息通過UDP多播技術在網絡中進行傳輸,當一個進程在一個特定的命名的信道上發送數據后,網絡中的另一個進程可以訂閱同一信道中的數據從而接收傳遞來的消息包。

2 IvP簡介及LCM系統的改進

IvP(Interval Programming)[3]的關鍵在于可以對目標函數分段定義,然后通過設計一個IvP solver,可對近似后的目標函數進行全局優化。

圖1中所示的行為目標函數定義為:

[f(x,y)=Ae-(x-x0)2+(y-y0)22σ2]

式中:A=150;σ=32.4;x0=50;y0=1 150;x,y是該行為的決策變量,取值范圍均為[-250,250]。

圖1(a)是直接把目標函數平均分成了7 056(每一塊小區域的大小是84×84)塊近似的結果;圖1(b)是把目標函數分成了289(每一塊小區域的大小是17×17)塊近似的結果;圖1(c)是直接把目標函數平均分成732塊小的區域。

IvP問題,可歸結為:對于每一個行為,都有與之相對應的目標函數,針對目標函數,利用IvP函數對它進行一系列的近似表達,然后從決策空間中尋找出一個最優決策點,使它滿足式(1),從而將決策點對應的決策變量作為行為選擇的輸出結果。

對于傳統的LCM行為控制模塊進行了改進,采用了LCM與IvP相結合的方式實現控制模塊與其他模塊的通信。LCM主要是實現數據模塊與IvP模塊間的數據通信,IvP主要實現對各個決策命令進行融合,以期達到最佳的路徑決策控制。LCM服務器與各個客戶端間的通信沒有改變,控制模塊會訂閱其他數據模塊的信息,如GPS、AHRS、陀螺儀等數據,然后利用IvP solver做出最優的決策,實現對機器人位姿航向等的控制。控制模塊同樣也會訂閱聲納、質譜儀等數據,實時的向岸基平臺傳送,從而實現對海洋環境的監測。

3 軟件系統設計

3.1 系統的總體框圖

系統的總體框圖如圖2所示。軟件設計的核心在于內部的LCM通信機制和IvP控制模塊。其中,LCM是系統各個模塊通信的橋梁,數據保存客戶端、各傳感器客戶端和IvP控制模塊在一開始的時候會建立起與LCM服務器的連接,連接成功后,當有消息到來時,服務器會向各個客戶端發送數據,每一個客戶端根據自己所訂閱的數據進行取舍。每一個傳感器都對應一個驅動,這些驅動主要負責與LCM的接口的通信,對應的驅動都是一個標準的進程,作為一個客戶端實現與LCM服務器的通信,進行數據的傳輸,每一個傳感器都有一個與之對應的數據類型,例如,GPS的數據類型定義如下:

這個數據結構中存放的是GPS的相關數據,包括時標、經/緯度、速度等,這個數據作為一個數據包在不同的模塊間進行應用。

3.2 系統流程圖

軟件開始的時候,先對各變量進行初始化,把時標timestamp賦初值為0,這個變量對于后面實現傳感器同步起到重要的作用,在數據保存客戶端會把接收到的傳感器數據加上時標timestamp然后進行保存。之后開啟LCM服務器,如果開啟成功,把mFlag賦值為1,配置串口參數,打開串口,建立連接,然后發送傳感器開啟指令進行數據的接收與處理。

在OnNewMail()中,一方面是對接收到的數據進行處理,加上同步時標然后進行保存,另一方面會把接收到的數據傳遞到IvP模塊中,供IvP solver使用;在OnIterate()中主要是完成行為決策的輸出,從而控制機器人的各個方向的運動。

對于IvP模型的行為選擇計算流程如圖4所示。

IvP問題歸結為對于每個行為所對應的目標函數,利用IvP函數[4?5]對其進行近似表達,然后從決策空間中尋找到一個決策點使其滿足上面的條件,從而將決策點對應的決策變量作為行為選擇的輸出結果。

4 結 語

本文首先對LCM的基本原理進行了簡單介紹,然后重點介紹了LCM中的數據類型的定義、數據編組模塊、通信模塊,提出了LCM的改進方法,并對改進方法中采用的行為控制方法進行了說明,著重講解了IvP行為控制的方法。

參考文獻

[1] MOORE David, OLSON Edwin, HUANG Albert. Lightweight communications and marshalling for low?latency interprocess communications [EB/OL]. [2009?09?02]. http:// www.dspace.mit.edu/handle/1721.1/46708.

[2] 楊芙清,梅宏,李克勤.軟件復用與軟件構件技術[J].電子學報,1999,27(2):68?75.

[3] 蔣大鵬.多水下機器人協調控制技術研究[J].哈爾濱:哈爾濱工程大學,2011.

[4] BENJAMIN M R, CURCIO J A, LEONARD J J, et al. Navigation of unmanned marine vehicles in accordance with the rules of the road [C]// Proceedings 2006 IEEE International Conference on Robotics and Automation. Orlando, FL: IEEE, 2006: 3581?3587.

[5] BENJAMIN M R, SCHMIDT H, NEWMAN P M, et al. Nested autonomy for unmanned marine vehicles with MOOS?IvP [J]. Journal of Field Robotics, 2010, 27(6): 834?875.

[6] 龔建偉,熊光明.Visual C++/Turbo C串口通信編程實中踐[M].2版.北京:電子工業出版社,2007.

主站蜘蛛池模板: 亚洲乱伦视频| 精品成人一区二区| 老司机久久精品视频| 无码精品一区二区久久久| 免费看的一级毛片| 国产男人天堂| 五月天久久婷婷| 国产成人无码播放| 国产女人爽到高潮的免费视频| 国产亚洲第一页| 国产精品lululu在线观看| 成人在线亚洲| 亚洲中文制服丝袜欧美精品| 欧美无专区| 亚洲AV无码久久精品色欲| 全部毛片免费看| 婷婷午夜影院| 欧美福利在线播放| 国产日韩AV高潮在线| 亚洲男人天堂2020| 亚洲国产精品日韩av专区| 国产高清免费午夜在线视频| 久久久久免费精品国产| 国产区免费精品视频| 波多野一区| 91精品aⅴ无码中文字字幕蜜桃| 欧美中文字幕一区二区三区| 国产一级在线播放| 3344在线观看无码| 无套av在线| 久久久黄色片| 亚洲日本中文字幕乱码中文| 四虎成人精品| 中文毛片无遮挡播放免费| 试看120秒男女啪啪免费| 亚洲狼网站狼狼鲁亚洲下载| 免费国产高清视频| 亚洲第一中文字幕| h网址在线观看| AV色爱天堂网| 青青国产成人免费精品视频| 97国产精品视频自在拍| 欧美成人亚洲综合精品欧美激情| 久久99精品久久久久纯品| 亚洲一道AV无码午夜福利| 激情影院内射美女| 熟妇人妻无乱码中文字幕真矢织江 | 久久人搡人人玩人妻精品| 日韩成人在线视频| h视频在线播放| 波多野结衣无码中文字幕在线观看一区二区 | 精品国产香蕉在线播出| 国产a在视频线精品视频下载| 免费av一区二区三区在线| 一级毛片免费观看不卡视频| 国产亚洲一区二区三区在线| 欧美成人免费| 久久先锋资源| 日韩一区二区三免费高清| 亚洲综合亚洲国产尤物| 99久久精品久久久久久婷婷| 日本高清在线看免费观看| 久久福利网| 欧美精品亚洲精品日韩专区va| 亚洲成肉网| 99久久99这里只有免费的精品| 四虎永久在线视频| 青青青视频蜜桃一区二区| 国产对白刺激真实精品91| 国产精品亚洲片在线va| 国产激情无码一区二区免费| 成人福利免费在线观看| 无码一区中文字幕| 国产女人爽到高潮的免费视频 | 国产一二三区视频| 天堂久久久久久中文字幕| 国产99视频精品免费观看9e| 国产精品视频猛进猛出| 九九九久久国产精品| jizz在线免费播放| 国产精品视频猛进猛出| 久久精品国产免费观看频道|