《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于CANopen協(xié)議的救援機器人調(diào)試系統(tǒng)
基于CANopen協(xié)議的救援機器人調(diào)試系統(tǒng)
來源:電子技術(shù)應(yīng)用2011年第7期
榮 杰1,饒和昌1,2,許映秋1,錢瑞明1
1.東南大學(xué) 機械工程學(xué)院,江蘇 南京211189; 2.華中科技大學(xué) 機械科學(xué)與工程學(xué)院,湖北 武漢430074
摘要: 設(shè)計了一種基于CANopen協(xié)議的救援機器人調(diào)試系統(tǒng),設(shè)計中充分考慮了機器人運動關(guān)節(jié)的反饋數(shù)據(jù)優(yōu)化控制參數(shù),從而提高了運動關(guān)節(jié)控制性能。重點介紹了CANopen從站的軟、硬件設(shè)計以及主站網(wǎng)絡(luò)管理(NMT)、服務(wù)數(shù)據(jù)對象(SDO)的實現(xiàn),并用實例證明該系統(tǒng)完全能滿足救援機器人調(diào)試的需要。
中圖分類號: TP273
文獻標(biāo)識碼: B
文章編號: 0258-7998(2011)07-0054-03
The debugging system of rescue robot based on CANopen protocol
Rong Jie1,Rao Hechang1,2,Xu Yingqiu1,Qian Ruiming1
1.School of Mechanical Engineering, Southeast University, Nanjing 211189,China; 2.School of mechanical science and Engineering, Huazhong University of Science & Technology, Wuhan 430074,China
Abstract: A kind of rescue robot based on CANopen protocol is designed,with full consideration on the data optimized control paramter,to improve the control performance of joint movement. Highlighted the design of software and hardware on CANopen slave station and the implements of master network management(NMT), service data objects(SDO). Finally use examples show that the system can meet the needs of rescue robot debugging.
Key words : CANopen;distributed control system;object dictionary


    在災(zāi)后救援現(xiàn)場,為實現(xiàn)廢墟環(huán)境下的靈活移動,增強對各種復(fù)雜地形的適應(yīng)性,機器人需要具有多個關(guān)節(jié),并且各關(guān)節(jié)需要獨立運動。在搜索和救援過程中,為了能在諸如陡坡、樓梯、管道及廢墟等復(fù)雜環(huán)境下自由移動,要求機器人具備多種運動姿態(tài)并且能迅速改變姿態(tài)以滿足不同環(huán)境的需求。因此要求機器人的各關(guān)節(jié)具有良好的運動特性。
    關(guān)節(jié)運動性能的好壞決定了機器人能否適應(yīng)在復(fù)雜環(huán)境中靈活運動的要求,是評價救援機器人性能的一個重要指標(biāo)。為了對機器人各關(guān)節(jié)運動性能進行測評,通過建立與機器人各關(guān)節(jié)控制器相連的運動控制主站,實現(xiàn)對關(guān)節(jié)控制器的組態(tài)與監(jiān)視,并通過分析機器人運動關(guān)節(jié)反饋回的數(shù)據(jù)優(yōu)化控制參數(shù),使得運動關(guān)節(jié)控制性能得以提高。針對運動控制中對各關(guān)節(jié)電機控制實時性與同步性以及結(jié)構(gòu)靈活性的要求,提出了一種基于CANopen協(xié)議的救援機器人調(diào)試系統(tǒng)。
    CANopen為基于CAN的高層協(xié)議,是最初由BOSCH公司提出的一種串行數(shù)據(jù)通信總線。其具有可靠性高、抗干擾性強、開發(fā)簡單、造價低廉及其短幀傳輸和無破壞仲裁技術(shù)等特點,應(yīng)用極為廣泛。CANopen是一個基于CAL的子協(xié)議,采用面向?qū)ο蟮乃枷朐O(shè)計,具有很好的模塊化特性和很高的適應(yīng)性,通過擴展可以適用于大量的應(yīng)用領(lǐng)域[1]。
1 方案設(shè)計
    圖1所示為救援機器人調(diào)試系統(tǒng)框圖,包含電機控制器、基于CAN總線的網(wǎng)絡(luò)構(gòu)架和PC機上的調(diào)試系統(tǒng)。

    電機驅(qū)動器控制方法采用了三個基本控制環(huán),即位置環(huán)、轉(zhuǎn)速環(huán)和轉(zhuǎn)矩環(huán),各閉環(huán)采用PID算法控制,以便更加精確地控制電機;同時建立了CANopen從站,通過CAN總線將各電機驅(qū)動器和PC機上的調(diào)試軟件之間進行數(shù)據(jù)交換;PC機則通過PCI-CAN卡實現(xiàn)了CANopen主站,從而方便對電機驅(qū)動器上的電機數(shù)據(jù)進行監(jiān)測和處理,并發(fā)送調(diào)試系統(tǒng)所發(fā)出的命令;采用NI公司的Labview調(diào)試系統(tǒng)上位機的程序編寫。

 


2 CANopen從站設(shè)計
2.1 硬件設(shè)計

    電機控制器用來對救援機器人關(guān)節(jié)進行精確控制,是系統(tǒng)的關(guān)鍵??刂破鞑捎肕C56F8322微控制器作為控制核心,圖2為系統(tǒng)框圖。

    電機控制器采集速度、電流、電壓三種參數(shù),各路采用PID閉環(huán)對電機進行精確控制。CAN總線部分采用MC56F8322內(nèi)置MSCAN模塊,實現(xiàn)了現(xiàn)場總線控制系統(tǒng)的構(gòu)架;CAN總線收發(fā)器與控制器之間采用高速光電隔離器件6N137實現(xiàn)信號隔離;同時采用隔離型DC-DC變換器實現(xiàn)電源隔離,從而提高了現(xiàn)場抗干擾能力。除了以上主要部分以外,還有CPU監(jiān)控器、功能選擇開關(guān)以及LED指示部分。LED分別用于電源指示、CAN接口當(dāng)前的收發(fā)狀態(tài)指示以及接口的通信故障(如總線關(guān)閉)指示。
2.2 軟件設(shè)計
      CANopen從站移植了CANopen協(xié)議的開源代碼CanFestival,該開源代碼實現(xiàn)了CANopen協(xié)議的全部內(nèi)容。在系統(tǒng)軟件設(shè)計時,只需完成CAN的硬件設(shè)置、對象字典的定義以及canDispatch()函數(shù)的調(diào)用即可。
      CANopen協(xié)議的核心部分是對象字典(Object Dictionary),通過對象字典對設(shè)備功能進行描述。CANopen對象字典是一個有序的對象組,每個對象采用一個16位的索引來尋址,其范圍在0x1000~0x9FFF之間。為了允許訪問數(shù)據(jù)結(jié)構(gòu)中的單個元素,定義了一個8 bit的子索引。CANopen設(shè)備的功能及特性用電子數(shù)據(jù)表單(EDS)的形式描述,實際的設(shè)備設(shè)置通過設(shè)備配置文件(DCF)進行描述[1]。系統(tǒng)中電機的速度、電流、電壓是最重要的監(jiān)控信息,故將其定義在如下結(jié)構(gòu)體中:
    typedef  struct{
        float voltage;        //電壓
        float Current;        //電流
        float velocity;        //速度
    }MotorPara;
    本系統(tǒng)的電機控制器是以非標(biāo)準設(shè)備設(shè)計的,根據(jù)對象字典結(jié)構(gòu)應(yīng)定義在制造商特定規(guī)范區(qū)域2000h~5FFFh之間。如表1所示。

3 CANopen主站設(shè)計
    CANopen協(xié)議采用對象字典(OD)、電子數(shù)據(jù)文檔(EDS)等概念來描述設(shè)備和協(xié)議的相關(guān)信息,還規(guī)定了網(wǎng)絡(luò)管理(NMT)、服務(wù)數(shù)據(jù)對象(SDO)、過程數(shù)據(jù)對象PDO等多種通信機制[1]。在CANopen主站中,利用LabVIEW實現(xiàn)了NMT、SDO和PDO等功能。
3.1 NMT
    NMT是提供對網(wǎng)絡(luò)上所有節(jié)點的狀態(tài)和行為的控制及監(jiān)測機制,在CANopen網(wǎng)絡(luò)中只允許一個NMT主節(jié)點處于激活狀態(tài)。只有NMT主節(jié)點能夠傳送NMT模塊控制報文,所有從設(shè)備必須支持NMT模塊控制服務(wù)[1]。
    通過NMT消息可以對節(jié)點狀態(tài)進行操作,LabVIEW中的具體實現(xiàn)如圖3所示。首先根據(jù)NMT消息格式通過數(shù)組函數(shù)將COB-ID、RTR、LEN、Node-ID及STATUS捆綁為U8數(shù)組,由于VISA僅支持U8字符串發(fā)送數(shù)據(jù),因此需要將U8數(shù)組轉(zhuǎn)換為U8字符串。然后調(diào)用VISA Write函數(shù)實現(xiàn)USB的數(shù)據(jù)發(fā)送。

3.2 SDO
    SDO采用客戶(Client)/服務(wù)器(Server)通信方式, 通過索引和子索引向應(yīng)用程序提供訪問對象字典的客戶接口。SDO是一種需要請求和應(yīng)答的點對點通信方式, 允許任意長度的數(shù)據(jù)通信[1]。PC機上管理控制系統(tǒng)采用SDO方式對通用溫度和整流器控制器參數(shù)進行配置, 完成控制器工藝參數(shù)的配置和控制模式的切換等。
    CANopen協(xié)議規(guī)定SDO消息為8 B長度,第1個字節(jié)為命令碼,第2、3個字節(jié)為索引,第4個字節(jié)為子索引,其余字節(jié)為消息所攜帶的數(shù)據(jù)。與NMT消息處理類似,SDO消息也是先通過數(shù)組函數(shù)根據(jù)SDO的消息格式創(chuàng)建一個U8數(shù)組,之后將數(shù)組轉(zhuǎn)換為U8字符串,最后通過USB發(fā)送。具體實現(xiàn)如圖4所示。

    在CANopen通信機制中,服務(wù)器收到SDO信息后必將應(yīng)答,所以主站必須處理服務(wù)器返回的SDO消息。消息的處理過程為,首先根據(jù)COB-ID攜帶的功能碼判斷是否為SDO消息,然后判斷SDO消息中的命令字字節(jié),根據(jù)不同的命令字做出相應(yīng)的處理。
3.3 PDO
    PDO采用生產(chǎn)者/消費者通信方式, 數(shù)據(jù)從一個生產(chǎn)者傳到一個或多個消費者,數(shù)據(jù)長度限制在8個字節(jié)之內(nèi)。PDO 通信沒有協(xié)議規(guī)定, PDO報文的內(nèi)容是預(yù)定義或者在網(wǎng)絡(luò)啟動時配置,因此多用于實時數(shù)據(jù)傳輸,工藝過程中工藝參數(shù)的傳送由PDO實現(xiàn)。CANopen中定義的PDO消息與正常的CAN幀格式相同, LabVIEW下實現(xiàn)方法可參考NMT及SDO。
    調(diào)試系統(tǒng)上位機可以監(jiān)視在不同的PID參數(shù)控制時電機的響應(yīng)特性,從而為控制參數(shù)優(yōu)化提供直觀的依據(jù)。由此可見,基于CANopen網(wǎng)絡(luò)的救援機器人調(diào)試系統(tǒng)成功地實現(xiàn)了對運動關(guān)節(jié)各項參數(shù)的實時監(jiān)控和控制,并且可以對電機控制參數(shù)進行在線配置,對救援機器人的穩(wěn)定運行提供了極大的保障。
參考文獻
[1] Boterenbrood H.CANopen high-level protocol for CAN-bus[C].N IKHFF Internal Documentation,2000(9).
[2] 王俊波,胥布工.CANopen協(xié)議分析與實現(xiàn)[J].微計算機信息,2006,22(6-2):104-106.

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