《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于CANopen協(xié)議的輪式機(jī)器人控制系統(tǒng)實(shí)現(xiàn)
基于CANopen協(xié)議的輪式機(jī)器人控制系統(tǒng)實(shí)現(xiàn)
來源:微型機(jī)與應(yīng)用2013年第23期
周 旭,嚴(yán)玉龍,王珊珊,李 軍
(南京理工大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210094)
摘要: 針對(duì)當(dāng)前以DSP為機(jī)器人控制器中的串口數(shù)量有限、通信抗干擾能力差等問題,提出了基于CANopen協(xié)議的輪式機(jī)器人運(yùn)動(dòng)控制系統(tǒng),并給出其在DSP上的應(yīng)用實(shí)現(xiàn)。首先介紹了機(jī)器人運(yùn)動(dòng)控制方法,然后介紹了CANopen協(xié)議在DSP上的具體實(shí)現(xiàn),最后在實(shí)際機(jī)器人系統(tǒng)中進(jìn)行測(cè)試。實(shí)驗(yàn)結(jié)果表明,基于CANopen協(xié)議的輪式機(jī)器人控制系統(tǒng)可以滿足機(jī)器人控制的實(shí)時(shí)性和穩(wěn)定性。
Abstract:
Key words :

摘  要: 針對(duì)當(dāng)前以DSP為機(jī)器人控制器中的串口數(shù)量有限、通信抗干擾能力差等問題,提出了基于CANopen協(xié)議的輪式機(jī)器人運(yùn)動(dòng)控制系統(tǒng),并給出其在DSP上的應(yīng)用實(shí)現(xiàn)。首先介紹了機(jī)器人運(yùn)動(dòng)控制方法,然后介紹了CANopen協(xié)議在DSP上的具體實(shí)現(xiàn),最后在實(shí)際機(jī)器人系統(tǒng)中進(jìn)行測(cè)試。實(shí)驗(yàn)結(jié)果表明,基于CANopen協(xié)議的輪式機(jī)器人控制系統(tǒng)可以滿足機(jī)器人控制的實(shí)時(shí)性和穩(wěn)定性。
關(guān)鍵詞: 輪式機(jī)器人;運(yùn)動(dòng)控制系統(tǒng);DSP;CANopen

 CAN總線是一種串行通信協(xié)議,具有較高的通信速率和較強(qiáng)的抗干擾能力,現(xiàn)已被廣泛地應(yīng)用于工業(yè)自動(dòng)化、交通工具、醫(yī)療器械、機(jī)械制造、樓宇控制、自動(dòng)化儀表等眾多領(lǐng)域。CANopen協(xié)議是由CiA(CAN in Automation)組織在CAN標(biāo)準(zhǔn)協(xié)議CAN 2.0協(xié)議、國際標(biāo)準(zhǔn)ISO 11898定義物理層和數(shù)據(jù)鏈路層的基礎(chǔ)上監(jiān)督開發(fā)出的一種高層協(xié)議,是一個(gè)開放的、標(biāo)準(zhǔn)化的應(yīng)用層協(xié)議,在各種控制系統(tǒng)中均有著廣泛的應(yīng)用[1]。
 當(dāng)前,基于DSP的機(jī)器人控制系統(tǒng)中仍存在許多使用串口實(shí)現(xiàn)機(jī)器人執(zhí)行機(jī)構(gòu)(如電機(jī))的驅(qū)動(dòng)。這種方法存在一些缺點(diǎn),如當(dāng)機(jī)器人執(zhí)行機(jī)構(gòu)(即電機(jī))數(shù)量較多時(shí),DSP串口數(shù)量會(huì)不足,需要擴(kuò)展串口。而串口通信速率較慢且抗干擾性不強(qiáng),且串口通信無法實(shí)現(xiàn)多電機(jī)的同步控制。針對(duì)這些問題,本文主要提出了基于CANopen協(xié)議的輪式機(jī)器人控制系統(tǒng),并給出其在TMS320F2812 DSP上的具體實(shí)現(xiàn)。本文首先介紹了兩輪差動(dòng)式移動(dòng)機(jī)器人的動(dòng)力學(xué)模型、基于雙碼盤的機(jī)器人運(yùn)動(dòng)控制方法,然后介紹了CANopen協(xié)議在機(jī)器人運(yùn)動(dòng)控制系統(tǒng)的應(yīng)用及實(shí)現(xiàn),并在實(shí)際機(jī)器人系統(tǒng)中驗(yàn)證了該控制系統(tǒng)的可行性、實(shí)時(shí)性和穩(wěn)定性。
1 機(jī)器人導(dǎo)航
1.1 機(jī)器人動(dòng)力學(xué)模型

 圖1是典型的兩輪差動(dòng)式機(jī)器人簡(jiǎn)化模型。其后輪是兩個(gè)同軸的驅(qū)動(dòng)輪,每個(gè)輪子由單獨(dú)的電機(jī)驅(qū)動(dòng);前輪是一個(gè)起支撐作用的萬向輪,保持車體穩(wěn)定。設(shè)機(jī)器人的質(zhì)心為底盤中軸線上的點(diǎn)M,兩驅(qū)動(dòng)輪之間間距為L(zhǎng),驅(qū)動(dòng)輪半徑為r,左右驅(qū)動(dòng)輪電機(jī)角速度分別為?棕l和?棕r,機(jī)器人自身角速度為?棕,機(jī)器人線速度為v,則其運(yùn)動(dòng)學(xué)方程為[2]:




2.1.2 CANopen通信機(jī)制
 CANopen通信模型定義了4種報(bào)文(通信對(duì)象):管理報(bào)文NMT、服務(wù)數(shù)據(jù)對(duì)象SDO、過程數(shù)據(jù)對(duì)象PDO以及特殊功能對(duì)象。
NMT用來傳遞主節(jié)點(diǎn)對(duì)整個(gè)網(wǎng)絡(luò)系統(tǒng)的管理信息。每個(gè)CANopen從節(jié)點(diǎn)都有初始化、預(yù)操作、操作和停止4個(gè)狀態(tài)。NMT負(fù)責(zé)由組節(jié)點(diǎn)控制從節(jié)點(diǎn)在各個(gè)狀態(tài)間的轉(zhuǎn)換,如圖3所示。SDO用來傳遞網(wǎng)絡(luò)系統(tǒng)中的配置信息。PDO用來實(shí)施傳送過程數(shù)據(jù)信息。特殊功能對(duì)象用于同步、應(yīng)急指示和時(shí)間標(biāo)記對(duì)象。

2.2 硬件設(shè)計(jì)
 本文主要研究基于CANopen協(xié)議的輪式機(jī)器人控制系統(tǒng)在DSP上的實(shí)現(xiàn),系統(tǒng)結(jié)構(gòu)如圖4所示。該系統(tǒng)使用TMS320F2812 DSP作為主控芯片,使用3個(gè)ELMO公司生產(chǎn)的Harmonica型伺服電機(jī)驅(qū)動(dòng)器以及3個(gè)MAXON公司生產(chǎn)的伺服電機(jī)作為機(jī)器人運(yùn)動(dòng)的動(dòng)力系統(tǒng),其中兩個(gè)用于底盤運(yùn)動(dòng)控制,一個(gè)用于提升機(jī)構(gòu)運(yùn)動(dòng)控制。DSP與ELMO電機(jī)驅(qū)動(dòng)器之間通過CAN總線及CANopen協(xié)議進(jìn)行通信,主要交換控制命令以及碼盤讀回的信息。

 CAN總線上的信號(hào)使用差分電路進(jìn)行傳送,兩條信號(hào)線被稱為CAN_H和CAN_L,靜態(tài)時(shí)均為2.5 V左右,這時(shí)的狀態(tài)表示邏輯1,用CAN_H的電平比CAN_L的電平高的狀態(tài)表示邏輯0。此時(shí),CAN_H的電平為3.5 V,CAN_L的電平為1.5 V。
    由于TMS320F2812芯片內(nèi)已集成了CAN總線控制器eCAN模塊,所以外部CAN總線的電路設(shè)計(jì)較簡(jiǎn)單,只需將TMS320F2812的CANTX、CANRX引腳連入CAN總線中的CAN_H和CAN_L即可。但是eCAN模塊的引腳電平為3.3 V,為了使其電平符合高速CAN總線的電平特性,在eCAN模塊和CAN總線之間增加CAN的電平轉(zhuǎn)換器件SN65HVD230,同時(shí),總線高低電平之間需要跨接120 ?贅的終端匹配電阻。硬件電路圖如圖5所示。

 

 

2.3 軟件設(shè)計(jì)
 電機(jī)控制的通信流程如圖6所示。首先,通過ELMO自帶的配置軟件將各個(gè)電機(jī)驅(qū)動(dòng)器的節(jié)點(diǎn)配置完成并檢查電路無誤后上電,DSP經(jīng)過相關(guān)初始化后等待各個(gè)節(jié)點(diǎn)返回的boot-up信息,等待完畢后通過SDO寫入各個(gè)節(jié)點(diǎn)的參數(shù)配置并將各節(jié)點(diǎn)的狀態(tài)轉(zhuǎn)變?yōu)椴僮鳡顟B(tài),之后通過PDO獲取相應(yīng)信息或者發(fā)送控制命令。
2.4 實(shí)驗(yàn)驗(yàn)證
 首先驗(yàn)證電機(jī)的同步啟動(dòng)問題。為了能更加清晰地觀察多電機(jī)控制效果,在給每個(gè)電機(jī)發(fā)送控制命令之間引入較大的時(shí)間間隔,如5 s。當(dāng)用串口控制時(shí),可以清楚地觀察到一個(gè)電機(jī)是在另一個(gè)電機(jī)啟動(dòng)后5 s才啟動(dòng)的,而用CAN總線和CANopen協(xié)議控制時(shí),雖然每個(gè)電機(jī)接收到啟動(dòng)命令具有5 s的間隔,但是在SYNC同步命令發(fā)送到總線之前,各個(gè)電機(jī)均不會(huì)啟動(dòng),只會(huì)保存接收到的信息,等待DSP(即主站)發(fā)送統(tǒng)一的同步命令或其他更新信息。當(dāng)每個(gè)電機(jī)的驅(qū)動(dòng)器接收到SYNC同步命令后,所有電機(jī)同時(shí)啟動(dòng)。從這點(diǎn)上可以看出,基于CAN總線和CANopen協(xié)議的電機(jī)控制系統(tǒng)具有串口控制無法比擬的同步優(yōu)勢(shì),這在機(jī)器人控制中是十分重要的,雖然在實(shí)際情況中,每個(gè)電機(jī)控制命令之間的間隔較短,但是具有同步控制的電機(jī)控制系統(tǒng)顯然將會(huì)具有更高的控制精度。
 再驗(yàn)證控制算法以及整個(gè)系統(tǒng)的可行性。將機(jī)器人置于坐標(biāo)零點(diǎn),角度偏差為0°,然后啟動(dòng)它追蹤一條預(yù)定義的路徑,該路徑由兩條直線和3個(gè)半圓構(gòu)成,如圖7所示。該圖中設(shè)定路徑以實(shí)線表示,實(shí)際運(yùn)動(dòng)路徑以點(diǎn)線表示,在最大速度為1 m/s的實(shí)驗(yàn)中,機(jī)器人對(duì)路徑的跟蹤效果良好,只是在路徑的曲率變化處有一定的偏移,全局過程中偏移最大量?jī)H12 cm,且最終的定位精度可以達(dá)到1 cm以內(nèi)。

 本文首先介紹了兩輪差動(dòng)式移動(dòng)機(jī)器人的動(dòng)力學(xué)模型以及基于雙碼盤的機(jī)器人運(yùn)動(dòng)控制方法;然后介紹了CANopen協(xié)議在以DSP為主控芯片的機(jī)器人運(yùn)動(dòng)控制系統(tǒng)中的應(yīng)用及實(shí)現(xiàn),其中詳細(xì)介紹了部分軟硬件設(shè)計(jì);最后通過實(shí)際效果驗(yàn)證了該控制系統(tǒng)的可行性、實(shí)時(shí)性和穩(wěn)定性,為機(jī)器人的實(shí)時(shí)同步運(yùn)動(dòng)控制提供參考。
參考文獻(xiàn)
[1] 林茂,賈凱,王金濤,等.CANopen協(xié)議在機(jī)器人控制器中的應(yīng)用[J].微計(jì)算機(jī)信息,2010,26(3-2):152-154.
[2] 王金.雙碼盤定位機(jī)器人的位姿辨識(shí)算法[J].硅谷,2010, 12:53.
[3] 李紀(jì)文.基于陀螺儀的競(jìng)賽機(jī)器人嵌入式控制系統(tǒng)的研究[D].成都:電子科技大學(xué),2008.
[4] Elmo Motion Control. Elmo motion control CANopen DS 301 implementation guide[Z]. 2003.
[5] Elmo Motion Control. Elmo motion control CANopen DSP 402 implementation guide[Z]. 2003.

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