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