《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于CANopen協(xié)議的救援機器人調(diào)試系統(tǒng)
基于CANopen協(xié)議的救援機器人調(diào)試系統(tǒng)
來源:電子技術應用2011年第7期
榮 杰1,饒和昌1,,2,,許映秋1,,錢瑞明1
1.東南大學 機械工程學院,江蘇 南京211189,; 2.華中科技大學 機械科學與工程學院,,湖北 武漢430074
摘要: 設計了一種基于CANopen協(xié)議的救援機器人調(diào)試系統(tǒng),設計中充分考慮了機器人運動關節(jié)的反饋數(shù)據(jù)優(yōu)化控制參數(shù),,從而提高了運動關節(jié)控制性能,。重點介紹了CANopen從站的軟、硬件設計以及主站網(wǎng)絡管理(NMT),、服務數(shù)據(jù)對象(SDO)的實現(xiàn),并用實例證明該系統(tǒng)完全能滿足救援機器人調(diào)試的需要,。
中圖分類號: TP273
文獻標識碼: 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


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

    電機控制器用來對救援機器人關節(jié)進行精確控制,,是系統(tǒng)的關鍵,。控制器采用MC56F8322微控制器作為控制核心,,圖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)控器、功能選擇開關以及LED指示部分,。LED分別用于電源指示,、CAN接口當前的收發(fā)狀態(tài)指示以及接口的通信故障(如總線關閉)指示。
2.2 軟件設計
      CANopen從站移植了CANopen協(xié)議的開源代碼CanFestival,,該開源代碼實現(xiàn)了CANopen協(xié)議的全部內(nèi)容,。在系統(tǒng)軟件設計時,只需完成CAN的硬件設置,、對象字典的定義以及canDispatch()函數(shù)的調(diào)用即可,。
      CANopen協(xié)議的核心部分是對象字典(Object Dictionary),通過對象字典對設備功能進行描述,。CANopen對象字典是一個有序的對象組,,每個對象采用一個16位的索引來尋址,其范圍在0x1000~0x9FFF之間,。為了允許訪問數(shù)據(jù)結(jié)構(gòu)中的單個元素,定義了一個8 bit的子索引,。CANopen設備的功能及特性用電子數(shù)據(jù)表單(EDS)的形式描述,,實際的設備設置通過設備配置文件(DCF)進行描述[1]。系統(tǒng)中電機的速度,、電流,、電壓是最重要的監(jiān)控信息,故將其定義在如下結(jié)構(gòu)體中:
    typedef  struct{
        float voltage,;        //電壓
        float Current,;        //電流
        float velocity;        //速度
    }MotorPara,;
    本系統(tǒng)的電機控制器是以非標準設備設計的,,根據(jù)對象字典結(jié)構(gòu)應定義在制造商特定規(guī)范區(qū)域2000h~5FFFh之間。如表1所示,。

3 CANopen主站設計
    CANopen協(xié)議采用對象字典(OD),、電子數(shù)據(jù)文檔(EDS)等概念來描述設備和協(xié)議的相關信息,還規(guī)定了網(wǎng)絡管理(NMT),、服務數(shù)據(jù)對象(SDO),、過程數(shù)據(jù)對象PDO等多種通信機制[1]。在CANopen主站中,,利用LabVIEW實現(xiàn)了NMT,、SDO和PDO等功能。
3.1 NMT
    NMT是提供對網(wǎng)絡上所有節(jié)點的狀態(tài)和行為的控制及監(jiān)測機制,在CANopen網(wǎng)絡中只允許一個NMT主節(jié)點處于激活狀態(tài),。只有NMT主節(jié)點能夠傳送NMT模塊控制報文,,所有從設備必須支持NMT模塊控制服務[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)/服務器(Server)通信方式, 通過索引和子索引向應用程序提供訪問對象字典的客戶接口,。SDO是一種需要請求和應答的點對點通信方式, 允許任意長度的數(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通信機制中,服務器收到SDO信息后必將應答,,所以主站必須處理服務器返回的SDO消息,。消息的處理過程為,首先根據(jù)COB-ID攜帶的功能碼判斷是否為SDO消息,,然后判斷SDO消息中的命令字字節(jié),,根據(jù)不同的命令字做出相應的處理。
3.3 PDO
    PDO采用生產(chǎn)者/消費者通信方式, 數(shù)據(jù)從一個生產(chǎn)者傳到一個或多個消費者,,數(shù)據(jù)長度限制在8個字節(jié)之內(nèi),。PDO 通信沒有協(xié)議規(guī)定, PDO報文的內(nèi)容是預定義或者在網(wǎng)絡啟動時配置,因此多用于實時數(shù)據(jù)傳輸,,工藝過程中工藝參數(shù)的傳送由PDO實現(xiàn),。CANopen中定義的PDO消息與正常的CAN幀格式相同, LabVIEW下實現(xiàn)方法可參考NMT及SDO。
    調(diào)試系統(tǒng)上位機可以監(jiān)視在不同的PID參數(shù)控制時電機的響應特性,,從而為控制參數(shù)優(yōu)化提供直觀的依據(jù),。由此可見,基于CANopen網(wǎng)絡的救援機器人調(diào)試系統(tǒng)成功地實現(xià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)授權禁止轉(zhuǎn)載。