《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于ZigBee的多機(jī)器人通信系統(tǒng)的設(shè)計(jì)
基于ZigBee的多機(jī)器人通信系統(tǒng)的設(shè)計(jì)
王艷秋, 萬(wàn)鈞力, 邵旭昂, 倪
摘要: 為解決多機(jī)器人協(xié)作的問(wèn)題,設(shè)計(jì)了可以讓機(jī)器人之間基于ZigBee網(wǎng)絡(luò)進(jìn)行通信的通信方案。機(jī)器人硬件系統(tǒng)中引入了ZigBee節(jié)點(diǎn),多個(gè)機(jī)器人依賴(lài)ZigBee形成一個(gè)星型網(wǎng)絡(luò),每個(gè)機(jī)器人可以通過(guò)中心節(jié)點(diǎn)保持通信。實(shí)驗(yàn)結(jié)果表明,機(jī)器人之間可以可靠地進(jìn)行通信,能夠顯著提高機(jī)器人的工作效率。
Abstract:
Key words :

    摘  要: 為解決多機(jī)器人協(xié)作的問(wèn)題,設(shè)計(jì)了可以讓機(jī)器人之間基于ZigBee網(wǎng)絡(luò)進(jìn)行通信的通信方案。機(jī)器人硬件系統(tǒng)中引入了ZigBee節(jié)點(diǎn),多個(gè)機(jī)器人依賴(lài)ZigBee形成一個(gè)星型網(wǎng)絡(luò),每個(gè)機(jī)器人可以通過(guò)中心節(jié)點(diǎn)保持通信。實(shí)驗(yàn)結(jié)果表明,機(jī)器人之間可以可靠地進(jìn)行通信,能夠顯著提高機(jī)器人的工作效率。 

    關(guān)鍵詞: 多機(jī)器人; 通信; ZigBee; MG2455 

 

    機(jī)器人[1]作為人類(lèi)20世紀(jì)最偉大的發(fā)明之一,在短短的40年內(nèi)發(fā)生了日新月異的變化。隨著社會(huì)生產(chǎn)技術(shù)的飛速發(fā)展,機(jī)器人的應(yīng)用領(lǐng)域也不斷擴(kuò)展,從自動(dòng)化生產(chǎn)線到海洋資源的探索,乃至太空作業(yè)等領(lǐng)域,機(jī)器人可謂是無(wú)處不在。然而就目前的機(jī)器人技術(shù)水平而言,單機(jī)器人在信息的獲取、處理及控制能力等方面都是有限的,對(duì)于復(fù)雜的工作任務(wù)及多變的工作環(huán)境,單機(jī)器人的能力更顯不足。由多個(gè)機(jī)器人組成的群體系統(tǒng)通過(guò)協(xié)調(diào)、協(xié)作來(lái)完成單機(jī)器人無(wú)法或難以完成的工作將是機(jī)器人發(fā)展的一個(gè)趨勢(shì)。目前的多機(jī)器人通信一般采用有線通信的方式,盡管技術(shù)成熟、可靠性高,但由于線纜限制了機(jī)器人的移動(dòng)范圍和靈活性,沒(méi)能得到廣泛的應(yīng)用。ZigBee網(wǎng)絡(luò)技術(shù)是基于802.15.4的無(wú)線通信協(xié)議,具有低成本、低功耗、低傳輸速率的特點(diǎn),并支持星型、樹(shù)狀和網(wǎng)狀等多種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。多機(jī)器人協(xié)作只需要彼此間斷性地傳遞有限的信息,并要盡可能地節(jié)省能量。而ZigBee非常適合這種場(chǎng)合的應(yīng)用。 

1 ZigBee技術(shù)及優(yōu)勢(shì) 

1.1 ZigBee簡(jiǎn)介

    ZigBee是一組基于IEEE批準(zhǔn)通過(guò)的802.15.4無(wú)線標(biāo)準(zhǔn)研制開(kāi)發(fā)的,是有關(guān)組網(wǎng)、安全和應(yīng)用軟件方面的技術(shù)標(biāo)準(zhǔn)。IEEE僅處理低級(jí)MAC層和物理層協(xié)議,而ZigBee聯(lián)盟對(duì)其網(wǎng)絡(luò)層協(xié)議和API進(jìn)行了標(biāo)準(zhǔn)化。每個(gè)協(xié)調(diào)器可連接多達(dá)255個(gè)節(jié)點(diǎn),而由此形成的ZigBee網(wǎng)絡(luò)對(duì)路由傳輸?shù)臄?shù)目沒(méi)有限制。ZigBee聯(lián)盟還開(kāi)發(fā)了安全層,以保證這種便攜設(shè)備不會(huì)意外泄漏其標(biāo)識(shí)。完整的ZigBee協(xié)議套件由高層應(yīng)用規(guī)范、應(yīng)用層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層組成。網(wǎng)絡(luò)層以上協(xié)議由ZigBee聯(lián)盟制定,IEEE802.15.4負(fù)責(zé)物理層和鏈路層標(biāo)準(zhǔn)。 

1.2 ZigBee優(yōu)勢(shì)

    ZigBee[2]技術(shù)是一種新興的近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的無(wú)線網(wǎng)絡(luò)技術(shù),它是一種介于無(wú)線標(biāo)記技術(shù)和藍(lán)牙之間的技術(shù)提案。主要用于近距離無(wú)線連接。一般而言,隨著通信距離的增大,設(shè)備的復(fù)雜度、功耗以及系統(tǒng)成本都在增加。相對(duì)于現(xiàn)有的各種無(wú)線通信技術(shù),ZigBee技術(shù)將是最低功耗和最低成本的技術(shù)。同時(shí)由于ZigBee技術(shù)的低數(shù)據(jù)速率和通信范圍較小的特點(diǎn),也決定了ZigBee技術(shù)適合于承載數(shù)據(jù)流量較小的業(yè)務(wù)。所以,ZigBee聯(lián)盟預(yù)測(cè)的主要應(yīng)用領(lǐng)域包括工業(yè)控制、消費(fèi)性電子設(shè)備、汽車(chē)自動(dòng)化、農(nóng)業(yè)自動(dòng)化和醫(yī)用設(shè)備控制等。 

2 機(jī)器人通信系統(tǒng)的設(shè)計(jì) 

2.1 系統(tǒng)結(jié)構(gòu)

    多移動(dòng)機(jī)器人通信可以采用ZigBee的星型結(jié)構(gòu),如圖1所示。在這個(gè)網(wǎng)絡(luò)中,充當(dāng)網(wǎng)絡(luò)協(xié)調(diào)器的機(jī)器人負(fù)責(zé)組建網(wǎng)絡(luò),管理網(wǎng)絡(luò),并對(duì)網(wǎng)絡(luò)的安全負(fù)責(zé)。它要存儲(chǔ)網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)的設(shè)備信息, 包括數(shù)據(jù)包轉(zhuǎn)發(fā)表、設(shè)備關(guān)聯(lián)表以及與安全有關(guān)的密鑰等。其他的普通機(jī)器人,使用的ZigBee節(jié)點(diǎn)都是RFD設(shè)備。當(dāng)這類(lèi)機(jī)器人受到某些觸發(fā)時(shí),例如內(nèi)部定時(shí)器時(shí)間到了、外部傳感器采集完數(shù)據(jù)、收到協(xié)調(diào)器要求答復(fù)的命令,就會(huì)向協(xié)調(diào)器傳送數(shù)據(jù)。作為網(wǎng)絡(luò)協(xié)調(diào)器的機(jī)器人可以采用有線的方式和1臺(tái)PC機(jī)相連接,在PC機(jī)上存儲(chǔ)網(wǎng)絡(luò)需要的綁定表、路由表和設(shè)備信息,減小網(wǎng)絡(luò)協(xié)調(diào)器的負(fù)擔(dān),提高網(wǎng)絡(luò)的運(yùn)行效率。 

 

 

2.2 機(jī)器人的硬件設(shè)計(jì)

    機(jī)器人的硬件一般包含核心控制器模塊、外界數(shù)據(jù)采集模塊、驅(qū)動(dòng)模塊以及執(zhí)行機(jī)構(gòu)。在本設(shè)計(jì)中加入了無(wú)線通信模塊,其硬件結(jié)構(gòu)如圖2所示。核心控制部分實(shí)際上是一個(gè)典型的嵌入式系統(tǒng)。處理器采用Atmel公司的AT91RM9200處理器,它是一款工業(yè)級(jí)的處理器,ARM920T內(nèi)核,200MIPS的處理速率,外圍接口豐富。ZigBee無(wú)線通信模塊采用韓國(guó)RadioPulse公司的MG2455芯片。當(dāng)機(jī)器人的無(wú)線接收部分接收到命令或數(shù)據(jù)時(shí),由MG2455芯片進(jìn)行相應(yīng)的處理后傳送給高速處理器,由高速處理器來(lái)驅(qū)動(dòng)機(jī)器人的電機(jī)部分,實(shí)現(xiàn)相應(yīng)的操作。當(dāng)機(jī)器人需要向其他機(jī)器人或者PC機(jī)發(fā)送命令或者數(shù)據(jù)時(shí),就由高速處理器把組織好的數(shù)據(jù)發(fā)送給ZigBee節(jié)點(diǎn),ZigBee節(jié)點(diǎn)再把數(shù)據(jù)組裝成幀,從天線發(fā)送出去。可以采用1臺(tái)PC機(jī)來(lái)實(shí)現(xiàn)機(jī)器人的監(jiān)測(cè)與控制,把需要耗費(fèi)時(shí)間和運(yùn)算量的工作轉(zhuǎn)移到PC機(jī)上進(jìn)行,以提高網(wǎng)絡(luò)的運(yùn)行效率。AT91RM9200采用串口與ZigBee通信模塊連接。當(dāng)有數(shù)據(jù)需要傳送時(shí),主動(dòng)方通過(guò)串口發(fā)出中斷由對(duì)方CPU來(lái)處理傳送過(guò)來(lái)的數(shù)據(jù)。由于通信的數(shù)據(jù)量并不是很大并且通信并不很頻繁,所以不會(huì)影響核心控制部分的正常運(yùn)行。各種傳感器和驅(qū)動(dòng)器作為處理器的外設(shè)和系統(tǒng)相連。傳感器采集外界環(huán)境中的各種信息,例如溫度、濕度、亮度。驅(qū)動(dòng)器是各種電機(jī),控制機(jī)器人手和足的運(yùn)動(dòng)。 

 

 

2.3 通信模塊ZigBee節(jié)點(diǎn)的硬件設(shè)計(jì)

    MG2455[3]是韓國(guó)RadioPulse公司推出的用來(lái)實(shí)現(xiàn)嵌入式ZigBee應(yīng)用的片上系統(tǒng)。它支持2.4 GHz IEEE802.15.4/ZigBee協(xié)議,通信距離能夠達(dá)到300 m。在物理層,它使用直接序列擴(kuò)頻技術(shù)和O-QPSK調(diào)制技術(shù),具有很強(qiáng)的抗干擾能力。在MAC層,它采用了CSMA-CA機(jī)制競(jìng)爭(zhēng)信道,提高了信道的利用率。MG2455芯片有3種可選的通信速率:250 kb/s供ZigBee使用,500 kb/s和1 Mb/s的通信速率供傳遞語(yǔ)音和圖像使用。在1.5 V的工作電壓下,可以達(dá)到-98 dBm的接收靈敏度和8 dBm的發(fā)射強(qiáng)度。功耗在芯片進(jìn)入深度睡眠的模式下可以降低到1 ?滋A以下。MG2455芯片的處理速度是標(biāo)準(zhǔn)8051單片機(jī)的12倍,具有96 KB的內(nèi)置Flash和8 KB的數(shù)據(jù)存儲(chǔ)區(qū),1個(gè)SPI接口,2個(gè)串行接口,2個(gè)外部中斷,4個(gè)A/D轉(zhuǎn)換器,4個(gè)定時(shí)器,2個(gè)PWM,22個(gè)普通I/O口。另外,它的體積只有7 mm×7 mm×0.9 mm,外圍電路僅需要一些電感、電容和電阻。天線既可以是鞭狀天線也可以是陶瓷天線或者PCB天線。這些優(yōu)點(diǎn)非常適合于機(jī)器人通信節(jié)點(diǎn)的應(yīng)用。用MG2455芯片實(shí)現(xiàn)的ZigBee節(jié)點(diǎn)硬件原理圖如圖3所示。 

 

 

3 機(jī)器人通信系統(tǒng)的軟件設(shè)計(jì) 

3.1 核心控制器的軟件設(shè)計(jì)

    核心控制器的控制對(duì)象涉及到多個(gè)輸入部件和輸出部件,輸入部件主要是各種傳感器,輸出部件主要是各種伺服電機(jī)。所以,CPU處理的任務(wù)非常復(fù)雜,可以考慮在軟件設(shè)計(jì)方面采用多任務(wù)實(shí)時(shí)操作系統(tǒng)UCOS。設(shè)計(jì)者分別寫(xiě)出控制傳感器和電機(jī)的任務(wù),然后把這些任務(wù)按照重要性賦予一定的優(yōu)先級(jí),讓操作系統(tǒng)輪流調(diào)用這些任務(wù)。 

3.2  ZigBee節(jié)點(diǎn)的軟件設(shè)計(jì)

    針對(duì)MG2455芯片,RadioPulse公司提供了EVK、MDK和ZDK 3種版本的軟件。EVK實(shí)現(xiàn)了MG2455芯片的驅(qū)動(dòng)程序,包括無(wú)線模塊、串口模塊、功率控制模塊等。MG2455芯片通過(guò)中斷實(shí)現(xiàn)物理層的數(shù)據(jù)與無(wú)線發(fā)送緩沖區(qū)、無(wú)線接收緩沖區(qū)的交換。用戶(hù)可以在這個(gè)軟件版本的基礎(chǔ)上實(shí)現(xiàn)各種靈活的上層應(yīng)用;MDK實(shí)現(xiàn)了MAC層的協(xié)議,包括CSMA-CA機(jī)制、數(shù)據(jù)請(qǐng)求、節(jié)點(diǎn)加入請(qǐng)求和節(jié)點(diǎn)離開(kāi)請(qǐng)求等復(fù)雜的原語(yǔ);ZDK完整地實(shí)現(xiàn)了ZigBee協(xié)議定義的NWK、APS、AF、ZDO以及安全層。3種版本的機(jī)器人的應(yīng)用強(qiáng)調(diào)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,所以選擇EVK版本作為開(kāi)發(fā)上層應(yīng)用的軟件基礎(chǔ)。下面主要介紹幾個(gè)重要的函數(shù): 

    (1)void ZHAL_CHANNEL_SET(UINT8 chan);//set the channel 

    void ZHAL_PAN_ID_SET(UINT16 ID);    //set the PAN id 

    void ZHAL_SHORT_ADDR_SET(UINT16 Addr);//set the short address 

    void ZHAL_TXPOWER_SET(UINT8 PowerLevel); //set the power  

    void ZHAL_DATARATE_SET(UINT8 Rate);//set the datarate  

    以上函數(shù)設(shè)置了節(jié)點(diǎn)的通信信道、網(wǎng)絡(luò)ID、網(wǎng)絡(luò)地址、發(fā)射功率和通信速率參數(shù)。 

    (2) UINT8 ZSYS_SEND_PACKET(UINT16 PANID,UINT16 SrcAddr, UINT16 DstAddr, UINT8 MsgLen, UINT8 *MsgBuff, UINT8 AckReq, UINT8 OobIndex);    // send packet 

    源節(jié)點(diǎn)通過(guò)這個(gè)函數(shù)發(fā)送信息給目的節(jié)點(diǎn),參數(shù)包含了網(wǎng)絡(luò)ID號(hào)、源節(jié)點(diǎn)地址、目標(biāo)地址、發(fā)送長(zhǎng)度、發(fā)送內(nèi)容的指針,應(yīng)答標(biāo)識(shí)位和傳輸速率的選擇位。通過(guò)應(yīng)答標(biāo)識(shí)位AckOn參數(shù)告訴目的節(jié)點(diǎn)是否需要回應(yīng)消息。傳輸速率的選擇為:如果發(fā)送信息成功,則返回值為0。 

    (3) MAC_PKT* ZSYS_RX_PACKET_GET( );//receive packet 

    ZSYS_RX_PACKET_CLR( );         //clear receive buffer 

    源節(jié)點(diǎn)通過(guò)這個(gè)函數(shù)在無(wú)線接收緩沖區(qū)接收信息。當(dāng)緩沖區(qū)中具有信息時(shí),函數(shù)會(huì)返回指向數(shù)據(jù)的指針,通過(guò)這個(gè)指針可以訪問(wèn)信息的源地址、信號(hào)強(qiáng)度值以及內(nèi)容;當(dāng)沒(méi)有接收到信息時(shí),函數(shù)返回一個(gè)空指針。當(dāng)無(wú)線緩沖區(qū)的數(shù)據(jù)得到處理后,調(diào)用ZSYS_RX_PACKET_CLR( )函數(shù)清空接收緩沖區(qū)。 

    (4) void ZSYS_UART1_PUT_STRING(UINT8 *StrPtr,UINT8 StrLen)//put message to host 

    UINT8 ZSYS_UART1_GET_STRING(UINT8 *StrPtr,UINT8 StrLen);//get message from host 

    ZigBee節(jié)點(diǎn)通過(guò)這2個(gè)函數(shù)與主控制器芯片AT91RM9200通信。 

3.3 上層協(xié)議的設(shè)計(jì)

    設(shè)計(jì)了一個(gè)簡(jiǎn)單的2個(gè)機(jī)器人協(xié)作的應(yīng)用案例:A機(jī)器人用機(jī)械手臂從筐中取出1個(gè)乒乓球,將其移動(dòng)到合適的位置;B機(jī)器人從墨水瓶里面給筆蘸上墨水,然后在A機(jī)器人手臂上的乒乓球上畫(huà)上一些圖案,在畫(huà)圖案的過(guò)程中,A機(jī)器人會(huì)挪動(dòng)乒乓球的位置。圖案畫(huà)好后,A機(jī)器人將畫(huà)有圖案的機(jī)器人放到另外1個(gè)筐子。針對(duì)這個(gè)案例,設(shè)計(jì)了2個(gè)機(jī)器人之間的通信協(xié)議。圖4是規(guī)定的發(fā)送數(shù)據(jù)的格式,先是1 B的命令前綴,后面是可選的命令參數(shù),主要是坐標(biāo)信息。 

 

 

    (1) A機(jī)器人取到乒乓球后將球移動(dòng)到合適的位置,通知B機(jī)器人可以開(kāi)始下一步工作。此時(shí),A機(jī)器人發(fā)送1個(gè)命令幀給B機(jī)器人,此時(shí)只有命令前綴,而沒(méi)有坐標(biāo)信息。 

    (2) B機(jī)器人收到信息后,到墨水瓶里面去蘸墨水,通知機(jī)器人A要開(kāi)始繪制圖案了。 

    (3) B機(jī)器人會(huì)隔一段時(shí)間告訴A機(jī)器人現(xiàn)在的進(jìn)度情況,A機(jī)器人則根據(jù)B機(jī)器人的進(jìn)度,調(diào)整乒乓球的位置;此時(shí)發(fā)送的信息里面除了命令前綴以外,還有坐標(biāo)信息,這些坐標(biāo)信息代表了當(dāng)前任務(wù)的進(jìn)度。 

    (4) B機(jī)器人畫(huà)圖完成,告訴A機(jī)器人結(jié)束信息,A機(jī)器人將乒乓球放回到筐中。 

    本文分析了機(jī)器人通信的特點(diǎn),結(jié)合ZigBee技術(shù)及發(fā)展現(xiàn)狀,提出了基于ZigBee的機(jī)器人通信方案,即把短距離通信技術(shù)應(yīng)用到機(jī)器人通信中,為機(jī)器人嵌入一個(gè)無(wú)線通信的模塊,就像給機(jī)器人加上了一雙耳朵一樣。詳細(xì)闡述了機(jī)器人的通信模塊的硬件和軟件的設(shè)計(jì)。目前機(jī)器人技術(shù)正在大行其道,可以想像在不遠(yuǎn)的將來(lái),機(jī)器人將為人類(lèi)做各種各樣復(fù)雜的工作。ZigBeec網(wǎng)絡(luò)技術(shù)未來(lái)肯定能在機(jī)器人通信領(lǐng)域中占有一席之地。 

參考文獻(xiàn)

[1] 張海英,劉祚時(shí),林桂娟.群體機(jī)器人研究的現(xiàn)狀和發(fā)展[J]. 電子技術(shù)應(yīng)用,2004,30(2). 

[2] 瞿雷,劉勝德,胡咸斌.ZigBee技術(shù)及應(yīng)用.北京:北京航空航天大學(xué)出版社,2007. 

[3] http://www.radiopulse.co.kr/eng/download/MG2455_MG2450%20Document/ENG/Datasheet/MG2455-F48%20Datasheet_ENG_VER.1.61.pdf. 2008.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。