《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于CANopen協(xié)議的救援機(jī)器人調(diào)試系統(tǒng)
Digikey(202412)
2024测试测量培训202410
基于CANopen協(xié)議的救援機(jī)器人調(diào)試系統(tǒng)
來(lái)源:電子技術(shù)應(yīng)用2011年第7期
榮 杰1,饒和昌1,2,許映秋1,錢瑞明1
1.東南大學(xué) 機(jī)械工程學(xué)院,江蘇 南京211189; 2.華中科技大學(xué) 機(jī)械科學(xué)與工程學(xué)院,湖北 武漢430074
摘要: 設(shè)計(jì)了一種基于CANopen協(xié)議的救援機(jī)器人調(diào)試系統(tǒng),設(shè)計(jì)中充分考慮了機(jī)器人運(yùn)動(dòng)關(guān)節(jié)的反饋數(shù)據(jù)優(yōu)化控制參數(shù),從而提高了運(yùn)動(dòng)關(guān)節(jié)控制性能。重點(diǎn)介紹了CANopen從站的軟、硬件設(shè)計(jì)以及主站網(wǎng)絡(luò)管理(NMT)、服務(wù)數(shù)據(jù)對(duì)象(SDO)的實(shí)現(xiàn),并用實(shí)例證明該系統(tǒng)完全能滿足救援機(jī)器人調(diào)試的需要。
中圖分類號(hào): TP273
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 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)場(chǎng),為實(shí)現(xiàn)廢墟環(huán)境下的靈活移動(dòng),增強(qiáng)對(duì)各種復(fù)雜地形的適應(yīng)性,機(jī)器人需要具有多個(gè)關(guān)節(jié),并且各關(guān)節(jié)需要獨(dú)立運(yùn)動(dòng)。在搜索和救援過(guò)程中,為了能在諸如陡坡、樓梯、管道及廢墟等復(fù)雜環(huán)境下自由移動(dòng),要求機(jī)器人具備多種運(yùn)動(dòng)姿態(tài)并且能迅速改變姿態(tài)以滿足不同環(huán)境的需求。因此要求機(jī)器人的各關(guān)節(jié)具有良好的運(yùn)動(dòng)特性。
    關(guān)節(jié)運(yùn)動(dòng)性能的好壞決定了機(jī)器人能否適應(yīng)在復(fù)雜環(huán)境中靈活運(yùn)動(dòng)的要求,是評(píng)價(jià)救援機(jī)器人性能的一個(gè)重要指標(biāo)。為了對(duì)機(jī)器人各關(guān)節(jié)運(yùn)動(dòng)性能進(jìn)行測(cè)評(píng),通過(guò)建立與機(jī)器人各關(guān)節(jié)控制器相連的運(yùn)動(dòng)控制主站,實(shí)現(xiàn)對(duì)關(guān)節(jié)控制器的組態(tài)與監(jiān)視,并通過(guò)分析機(jī)器人運(yùn)動(dòng)關(guān)節(jié)反饋回的數(shù)據(jù)優(yōu)化控制參數(shù),使得運(yùn)動(dòng)關(guān)節(jié)控制性能得以提高。針對(duì)運(yùn)動(dòng)控制中對(duì)各關(guān)節(jié)電機(jī)控制實(shí)時(shí)性與同步性以及結(jié)構(gòu)靈活性的要求,提出了一種基于CANopen協(xié)議的救援機(jī)器人調(diào)試系統(tǒng)。
    CANopen為基于CAN的高層協(xié)議,是最初由BOSCH公司提出的一種串行數(shù)據(jù)通信總線。其具有可靠性高、抗干擾性強(qiáng)、開(kāi)發(fā)簡(jiǎn)單、造價(jià)低廉及其短幀傳輸和無(wú)破壞仲裁技術(shù)等特點(diǎn),應(yīng)用極為廣泛。CANopen是一個(gè)基于CAL的子協(xié)議,采用面向?qū)ο蟮乃枷朐O(shè)計(jì),具有很好的模塊化特性和很高的適應(yīng)性,通過(guò)擴(kuò)展可以適用于大量的應(yīng)用領(lǐng)域[1]。
1 方案設(shè)計(jì)
    圖1所示為救援機(jī)器人調(diào)試系統(tǒng)框圖,包含電機(jī)控制器、基于CAN總線的網(wǎng)絡(luò)構(gòu)架和PC機(jī)上的調(diào)試系統(tǒng)。

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

 


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

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

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

3 CANopen主站設(shè)計(jì)
    CANopen協(xié)議采用對(duì)象字典(OD)、電子數(shù)據(jù)文檔(EDS)等概念來(lái)描述設(shè)備和協(xié)議的相關(guān)信息,還規(guī)定了網(wǎng)絡(luò)管理(NMT)、服務(wù)數(shù)據(jù)對(duì)象(SDO)、過(guò)程數(shù)據(jù)對(duì)象PDO等多種通信機(jī)制[1]。在CANopen主站中,利用LabVIEW實(shí)現(xiàn)了NMT、SDO和PDO等功能。
3.1 NMT
    NMT是提供對(duì)網(wǎng)絡(luò)上所有節(jié)點(diǎn)的狀態(tài)和行為的控制及監(jiān)測(cè)機(jī)制,在CANopen網(wǎng)絡(luò)中只允許一個(gè)NMT主節(jié)點(diǎn)處于激活狀態(tài)。只有NMT主節(jié)點(diǎn)能夠傳送NMT模塊控制報(bào)文,所有從設(shè)備必須支持NMT模塊控制服務(wù)[1]。
    通過(guò)NMT消息可以對(duì)節(jié)點(diǎn)狀態(tài)進(jìn)行操作,LabVIEW中的具體實(shí)現(xiàn)如圖3所示。首先根據(jù)NMT消息格式通過(guò)數(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ù)實(shí)現(xiàn)USB的數(shù)據(jù)發(fā)送。

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

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

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