楊琪 李新宇 楊航
摘 要:機(jī)器人的研究設(shè)計(jì)眾多學(xué)科,為了完成預(yù)定的任務(wù),需要眾多的傳感器相互配合協(xié)作才能完成,實(shí)際應(yīng)用中由于傳感器數(shù)量眾多,形式不一給硬件的連接復(fù)雜,給調(diào)試和整體設(shè)計(jì)帶來諸多的不便。
關(guān)鍵詞:ROS;ZigBee;無線通訊;結(jié)合
隨著科技的發(fā)展,機(jī)器人的研究與應(yīng)用逐漸廣泛。自2009年以來ROS(Robot Operate System)的出現(xiàn)掀起了這個(gè)領(lǐng)域的新熱潮。機(jī)器人的研究設(shè)計(jì)眾多學(xué)科,為了完成預(yù)定的任務(wù),需要眾多的傳感器相互配合協(xié)作才能完成,實(shí)際應(yīng)用中由于傳感器數(shù)量眾多,形式不一給硬件的連接復(fù)雜,給調(diào)試和整體設(shè)計(jì)帶來諸多的不便。在學(xué)習(xí)機(jī)器人的過程中將ROS與zigbee結(jié)合起來,建立一個(gè)ROS控制的無線傳感器網(wǎng)絡(luò),發(fā)揮ROS的優(yōu)點(diǎn),改善有線連接的不足。
一、簡(jiǎn)介
1.ROS簡(jiǎn)介
早期的計(jì)算機(jī)沒有操作系統(tǒng),開發(fā)人員需要直接面對(duì)硬件,并且各個(gè)硬件廠商的產(chǎn)品可能提供了不同的接口和使用方法,給開發(fā)人員帶來了許多麻煩和重復(fù)性工作。ROS提供一些標(biāo)準(zhǔn)操作系統(tǒng)服務(wù),例如硬件抽象,底層設(shè)備控制,常用功能實(shí)現(xiàn),進(jìn)程間消息以及數(shù)據(jù)包管理。
2.ZigBee簡(jiǎn)介
Zigbee建立在用于低速無線個(gè)人區(qū)域網(wǎng)(WPAN)的IEEE標(biāo)準(zhǔn)802.15.4中定義的物理層和媒體訪問控制上。該規(guī)范包括四個(gè)附加的關(guān)鍵組件:網(wǎng)絡(luò)層,應(yīng)用層,Zigbee設(shè)備對(duì)象(ZDOs)和制造商定義的應(yīng)用程序?qū)ο?。Zigbee 網(wǎng)絡(luò)層本身支持星型和樹型網(wǎng)絡(luò),以及通用網(wǎng)狀網(wǎng)絡(luò)。
3.FastZigbee的組網(wǎng)結(jié)構(gòu)
在有信號(hào)覆蓋的范圍內(nèi),zigbee網(wǎng)絡(luò)可構(gòu)建多種型態(tài)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),自動(dòng)組網(wǎng)、自動(dòng)尋找最優(yōu)路徑。Zigbee可以建立起大量的終端節(jié)點(diǎn)以及路由端節(jié)點(diǎn)之間的通信,通過zigbee組成的傳感器網(wǎng)絡(luò),終端節(jié)點(diǎn)將采集到的數(shù)據(jù)向網(wǎng)絡(luò)箱路由端節(jié)點(diǎn)發(fā)送,同時(shí)也可以接收路由端節(jié)點(diǎn)發(fā)送來的指令信息。在上圖的網(wǎng)絡(luò)結(jié)構(gòu)中可以看到,zigbee組建的網(wǎng)絡(luò)支持多個(gè)路由端節(jié)點(diǎn)和多個(gè)終端節(jié)點(diǎn)的信息交互,每一個(gè)路由端節(jié)點(diǎn)不止連接一個(gè)終端節(jié)點(diǎn),一個(gè)終端節(jié)點(diǎn)也不止連接一個(gè)路由節(jié)點(diǎn),這樣的通信網(wǎng)絡(luò)具有更高的容錯(cuò)性,即使個(gè)別設(shè)備損壞,通信網(wǎng)絡(luò)仍可正常工作。
二、機(jī)器人的功能模塊簡(jiǎn)述
1.運(yùn)動(dòng)系統(tǒng)
機(jī)器人在執(zhí)行復(fù)雜任務(wù)的過程中,空間位置需要及時(shí)變化,設(shè)計(jì)研究機(jī)器人運(yùn)動(dòng)系統(tǒng)是必不可少的一項(xiàng)工作,在運(yùn)動(dòng)系統(tǒng)的組成主要包括電機(jī),運(yùn)動(dòng)機(jī)構(gòu)(例如:輪子,機(jī)械臂…….),電機(jī)作為一個(gè)動(dòng)力輸出部件,為機(jī)器人進(jìn)行運(yùn)動(dòng)提供動(dòng)力,而在實(shí)際的工作中要求對(duì)機(jī)器人的速度進(jìn)行控制,從而實(shí)現(xiàn)必要的調(diào)控,為了滿足這個(gè)條件,與控制中心的信息交互必不可少。
2.SLAM
SlAM,即時(shí)定位與地圖構(gòu)建,將一個(gè)機(jī)器人放入未知環(huán)境中的未知位置,是否有辦法讓機(jī)器人一邊逐步描繪出此環(huán)境完全的地圖,所謂完全的地圖是指不受障礙行進(jìn)到房間可進(jìn)入的每個(gè)角落。 SLAM功能是機(jī)器人在任意環(huán)境中實(shí)現(xiàn)自主移動(dòng)的前提,完成這項(xiàng)功能,需要雷達(dá)掃描當(dāng)前環(huán)境,進(jìn)行地圖構(gòu)建,實(shí)現(xiàn)避障路徑規(guī)劃,配合運(yùn)動(dòng)系統(tǒng)是機(jī)器人按照SLAM算法建立的路徑進(jìn)行移動(dòng)。
3.其他的傳感器
即使是一個(gè)只要求具有單一功能的機(jī)器人也在需要眾多的傳感器協(xié)助下才能實(shí)現(xiàn),除了特殊功能模塊中要求的雷達(dá),電機(jī)等部件外,還包括眾多的傳感器,例如碰撞傳感器,溫度傳感器,光電開關(guān),這些傳感器有事獨(dú)立于特殊的功能存在,也有在特殊功能的實(shí)現(xiàn)中必不可少。尤其是這類傳感器在機(jī)器人的構(gòu)建中使用數(shù)量多,又需要單獨(dú)工作,更適合用Zigbee組建無線傳感器網(wǎng)絡(luò),實(shí)現(xiàn)與控制中心的信息交互。
三、ROS中的zigbee相關(guān)函數(shù)
def xbee::base::XBeeBase::_wait_for_frame( self )
_wait_for_frame將從串口讀取,直到有效API幀到達(dá)。它會(huì)返回二進(jìn)制數(shù)據(jù)包含在框架內(nèi)。
def xbee::base::XBeeBase::_write (self, data)
將給定的二進(jìn)制數(shù)據(jù)封裝在API幀中,并將結(jié)果寫入串行端口
def xbee::base::XBeeBase::send (self, cmd, kwargs)
當(dāng)使用正確的參數(shù)調(diào)用發(fā)送時(shí),API命令將被寫入包含正確指令和數(shù)據(jù)的XBee設(shè)備的串行端口。
def xbee :: base :: XBeeBase :: wait_read_frame( self )
wait_read_frame調(diào)用XBee._wait_for_frame()并等待,直到串行端口上出現(xiàn)有效幀。一旦它接收到一個(gè)幀,wait_read_frame將嘗試解析其中包含的數(shù)據(jù)并返回結(jié)果。
四、結(jié)語
zigbee技術(shù)是一種近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的雙向無線通信技術(shù)或無線網(wǎng)絡(luò)技術(shù),主要適合于承載數(shù)據(jù)流量較小的業(yè)務(wù),可嵌入各種設(shè)備中。 ROS還提供一組實(shí)用工具和軟件庫,用于維護(hù)、構(gòu)建、編寫和執(zhí)行可用于多個(gè)計(jì)算平臺(tái)的軟件代碼。ROS還聚合了全世界開發(fā)者實(shí)現(xiàn)的大量開源功能包,這些開源功能包與ROS一起構(gòu)成了強(qiáng)大的開源生態(tài)環(huán)境。ROS因?yàn)閷⒐δ芊植荚诟鱾€(gè)節(jié)點(diǎn)之中,節(jié)點(diǎn)間基于消息機(jī)制通信,通訊部分消耗了很多系統(tǒng)資源。尤其是當(dāng)所有節(jié)點(diǎn)位于同一個(gè)處理器時(shí),使得系統(tǒng)必須選用高性能的處理器和存儲(chǔ)系統(tǒng)以彌補(bǔ)損耗。
參考文獻(xiàn):
[1]周興社、楊剛、王嵐等. 《機(jī)器人操作系統(tǒng)ROS原理與應(yīng)用》.機(jī)械工業(yè)出版社.
[2]Aaron Martinez. 《ROS機(jī)器人程序設(shè)計(jì)》 .機(jī)械工業(yè)出版社.
[3]杜軍朝. 《ZigBee技術(shù)原理與實(shí)戰(zhàn)》 . 機(jī)械工業(yè)出版社.
[4]Shahin Farahani. 《ZigBee無線網(wǎng)絡(luò)與收發(fā)器》. 北京航空航天大學(xué)出版社.
作者簡(jiǎn)介:楊琪(1997-),男,漢族,山西陽泉人,上海工程技術(shù)大學(xué)機(jī)械工程學(xué)院,學(xué)歷:本科在讀,研究方向: 機(jī)器人。