摘 要: 針對當前以DSP為機器人控制器中的串口數(shù)量有限、通信抗干擾能力差等問題,提出了基于CANopen協(xié)議的輪式機器人運動控制系統(tǒng),并給出其在DSP上的應用實現(xiàn)。首先介紹了機器人運動控制方法,然后介紹了CANopen協(xié)議在DSP上的具體實現(xiàn),最后在實際機器人系統(tǒng)中進行測試。實驗結(jié)果表明,基于CANopen協(xié)議的輪式機器人控制系統(tǒng)可以滿足機器人控制的實時性和穩(wěn)定性。
關(guān)鍵詞: 輪式機器人;運動控制系統(tǒng);DSP;CANopen
CAN總線是一種串行通信協(xié)議,具有較高的通信速率和較強的抗干擾能力,現(xiàn)已被廣泛地應用于工業(yè)自動化、交通工具、醫(yī)療器械、機械制造、樓宇控制、自動化儀表等眾多領(lǐng)域。CANopen協(xié)議是由CiA(CAN in Automation)組織在CAN標準協(xié)議CAN 2.0協(xié)議、國際標準ISO 11898定義物理層和數(shù)據(jù)鏈路層的基礎上監(jiān)督開發(fā)出的一種高層協(xié)議,是一個開放的、標準化的應用層協(xié)議,在各種控制系統(tǒng)中均有著廣泛的應用[1]。
當前,基于DSP的機器人控制系統(tǒng)中仍存在許多使用串口實現(xiàn)機器人執(zhí)行機構(gòu)(如電機)的驅(qū)動。這種方法存在一些缺點,如當機器人執(zhí)行機構(gòu)(即電機)數(shù)量較多時,DSP串口數(shù)量會不足,需要擴展串口。而串口通信速率較慢且抗干擾性不強,且串口通信無法實現(xiàn)多電機的同步控制。針對這些問題,本文主要提出了基于CANopen協(xié)議的輪式機器人控制系統(tǒng),并給出其在TMS320F2812 DSP上的具體實現(xiàn)。本文首先介紹了兩輪差動式移動機器人的動力學模型、基于雙碼盤的機器人運動控制方法,然后介紹了CANopen協(xié)議在機器人運動控制系統(tǒng)的應用及實現(xiàn),并在實際機器人系統(tǒng)中驗證了該控制系統(tǒng)的可行性、實時性和穩(wěn)定性。
1 機器人導航
1.1 機器人動力學模型
圖1是典型的兩輪差動式機器人簡化模型。其后輪是兩個同軸的驅(qū)動輪,每個輪子由單獨的電機驅(qū)動;前輪是一個起支撐作用的萬向輪,保持車體穩(wěn)定。設機器人的質(zhì)心為底盤中軸線上的點M,兩驅(qū)動輪之間間距為L,驅(qū)動輪半徑為r,左右驅(qū)動輪電機角速度分別為?棕l和?棕r,機器人自身角速度為?棕,機器人線速度為v,則其運動學方程為[2]:
2.1.2 CANopen通信機制
CANopen通信模型定義了4種報文(通信對象):管理報文NMT、服務數(shù)據(jù)對象SDO、過程數(shù)據(jù)對象PDO以及特殊功能對象。
NMT用來傳遞主節(jié)點對整個網(wǎng)絡系統(tǒng)的管理信息。每個CANopen從節(jié)點都有初始化、預操作、操作和停止4個狀態(tài)。NMT負責由組節(jié)點控制從節(jié)點在各個狀態(tài)間的轉(zhuǎn)換,如圖3所示。SDO用來傳遞網(wǎng)絡系統(tǒng)中的配置信息。PDO用來實施傳送過程數(shù)據(jù)信息。特殊功能對象用于同步、應急指示和時間標記對象。
2.2 硬件設計
本文主要研究基于CANopen協(xié)議的輪式機器人控制系統(tǒng)在DSP上的實現(xiàn),系統(tǒng)結(jié)構(gòu)如圖4所示。該系統(tǒng)使用TMS320F2812 DSP作為主控芯片,使用3個ELMO公司生產(chǎn)的Harmonica型伺服電機驅(qū)動器以及3個MAXON公司生產(chǎn)的伺服電機作為機器人運動的動力系統(tǒng),其中兩個用于底盤運動控制,一個用于提升機構(gòu)運動控制。DSP與ELMO電機驅(qū)動器之間通過CAN總線及CANopen協(xié)議進行通信,主要交換控制命令以及碼盤讀回的信息。
CAN總線上的信號使用差分電路進行傳送,兩條信號線被稱為CAN_H和CAN_L,靜態(tài)時均為2.5 V左右,這時的狀態(tài)表示邏輯1,用CAN_H的電平比CAN_L的電平高的狀態(tài)表示邏輯0。此時,CAN_H的電平為3.5 V,CAN_L的電平為1.5 V。
由于TMS320F2812芯片內(nèi)已集成了CAN總線控制器eCAN模塊,所以外部CAN總線的電路設計較簡單,只需將TMS320F2812的CANTX、CANRX引腳連入CAN總線中的CAN_H和CAN_L即可。但是eCAN模塊的引腳電平為3.3 V,為了使其電平符合高速CAN總線的電平特性,在eCAN模塊和CAN總線之間增加CAN的電平轉(zhuǎn)換器件SN65HVD230,同時,總線高低電平之間需要跨接120 ?贅的終端匹配電阻。硬件電路圖如圖5所示。
2.3 軟件設計
電機控制的通信流程如圖6所示。首先,通過ELMO自帶的配置軟件將各個電機驅(qū)動器的節(jié)點配置完成并檢查電路無誤后上電,DSP經(jīng)過相關(guān)初始化后等待各個節(jié)點返回的boot-up信息,等待完畢后通過SDO寫入各個節(jié)點的參數(shù)配置并將各節(jié)點的狀態(tài)轉(zhuǎn)變?yōu)椴僮鳡顟B(tài),之后通過PDO獲取相應信息或者發(fā)送控制命令。
2.4 實驗驗證
首先驗證電機的同步啟動問題。為了能更加清晰地觀察多電機控制效果,在給每個電機發(fā)送控制命令之間引入較大的時間間隔,如5 s。當用串口控制時,可以清楚地觀察到一個電機是在另一個電機啟動后5 s才啟動的,而用CAN總線和CANopen協(xié)議控制時,雖然每個電機接收到啟動命令具有5 s的間隔,但是在SYNC同步命令發(fā)送到總線之前,各個電機均不會啟動,只會保存接收到的信息,等待DSP(即主站)發(fā)送統(tǒng)一的同步命令或其他更新信息。當每個電機的驅(qū)動器接收到SYNC同步命令后,所有電機同時啟動。從這點上可以看出,基于CAN總線和CANopen協(xié)議的電機控制系統(tǒng)具有串口控制無法比擬的同步優(yōu)勢,這在機器人控制中是十分重要的,雖然在實際情況中,每個電機控制命令之間的間隔較短,但是具有同步控制的電機控制系統(tǒng)顯然將會具有更高的控制精度。
再驗證控制算法以及整個系統(tǒng)的可行性。將機器人置于坐標零點,角度偏差為0°,然后啟動它追蹤一條預定義的路徑,該路徑由兩條直線和3個半圓構(gòu)成,如圖7所示。該圖中設定路徑以實線表示,實際運動路徑以點線表示,在最大速度為1 m/s的實驗中,機器人對路徑的跟蹤效果良好,只是在路徑的曲率變化處有一定的偏移,全局過程中偏移最大量僅12 cm,且最終的定位精度可以達到1 cm以內(nèi)。
本文首先介紹了兩輪差動式移動機器人的動力學模型以及基于雙碼盤的機器人運動控制方法;然后介紹了CANopen協(xié)議在以DSP為主控芯片的機器人運動控制系統(tǒng)中的應用及實現(xiàn),其中詳細介紹了部分軟硬件設計;最后通過實際效果驗證了該控制系統(tǒng)的可行性、實時性和穩(wěn)定性,為機器人的實時同步運動控制提供參考。
參考文獻
[1] 林茂,賈凱,王金濤,等.CANopen協(xié)議在機器人控制器中的應用[J].微計算機信息,2010,26(3-2):152-154.
[2] 王金.雙碼盤定位機器人的位姿辨識算法[J].硅谷,2010, 12:53.
[3] 李紀文.基于陀螺儀的競賽機器人嵌入式控制系統(tǒng)的研究[D].成都:電子科技大學,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.